Closed
Bug 981023
Opened 11 years ago
Closed 11 years ago
Expose ASAN and LSAN errors in TBPL
Categories
(Tree Management Graveyard :: TBPL, defect)
Tree Management Graveyard
TBPL
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: mccr8, Assigned: mccr8)
References
(Blocks 1 open bug)
Details
Attachments
(1 file)
(deleted),
patch
|
emorley
:
review+
|
Details | Diff | Splinter Review |
Right now, ASAN failures just show up in TBPL as crashes or timeouts, which is not good. ASAN seems to have a nice little summary for its failures, so it should be easy to do, once I figure out the right place to modify. Bug 966864 does a similar thing for Valgrind.
ASAN produces output like:
SUMMARY: AddressSanitizer: use-after-poison filename:linenumber functionname
which seems pretty complete. There's also heap-buffer-overflow and use-after-free. Decoder, if you know of any others, let me know.
Another issue is that right now the filename seems to include a bunch of builder path gunk, which would be nice to clean up.
Once this is done for ASAN, it should be easy to add additional things for LSAN, which are probably in the same general format.
Comment 1•11 years ago
|
||
Honestly, this can probably be handled on the TBPL side if you're happy with the output in the logs and the failure codes it makes.
https://mxr.mozilla.org/webtools-central/source/tbpl/php/inc/GeneralErrorFilter.php
Assignee | ||
Updated•11 years ago
|
Component: Mochitest → Tinderboxpushlog
Product: Testing → Webtools
Version: unspecified → Trunk
Assignee | ||
Comment 2•11 years ago
|
||
I guess I don't even need to know a list of the specific errors, we can just match anything starting with "SUMMARY: AddressSanitizer".
Comment 3•11 years ago
|
||
Here's a list of things that may show up instead of heap-buffer-overflow (directly copied from the source):
heap-use-after-free (maybe just use-after-free in older versions?)
stack-buffer-underflow
stack-buffer-overflow
initialization-order-fiasco
use-after-poison
container-overflow
stack-use-after-return (not enabled right now on TBPL)
stack-use-after-scope (not enabled right now on TBPL)
global-buffer-overflow
And then there is things like:
ERROR: AddressSanitizer: attempting double-free on ...
ERROR: AddressSanitizer: attempting free on address ...
ERROR: AddressSanitizer: alloc-dealloc-mismatch (not enabled right now on TBPL)
ERROR: AddressSanitizer: attempting to call malloc_usable_size() for pointer which is not owned
ERROR: AddressSanitizer: attempting to call __asan_get_allocated_size() for pointer which is not owned
ERROR: AddressSanitizer: %s: memory ranges [%p,%p) and [%p, %p) overlap
There are more obscure ones, but I guess these are the most common.
Assignee | ||
Comment 4•11 years ago
|
||
Well, I think this is what I need to do, but I'm not able to get the Vagrant local testing environment to work, so I'm not sure.
Assignee | ||
Comment 5•11 years ago
|
||
Is this simple enough to get reviewed and land as-is, or should I work some more on local testing?
Things seem to be going awry with vagrant here:
notice: /Stage[main]/Tbpl-base/Exec[/bin/cp -v /var/www/tbpl/php/config.php.example /var/www/tbpl/php/config.php]/returns: /bin/cp: cannot create regular file `/var/www/tbpl/php/config.php': Permission denied
Flags: needinfo?(emorley)
Comment 6•11 years ago
|
||
Comment on attachment 8387786 [details] [diff] [review]
match ASAN and LSAN errors
Review of attachment 8387786 [details] [diff] [review]:
-----------------------------------------------------------------
(In reply to Andrew McCreight [:mccr8] from comment #5)
> Is this simple enough to get reviewed and land as-is, or should I work some
> more on local testing?
Yeah this is fine as is - thank you for the patch :-)
> Things seem to be going awry with vagrant here:
> notice: /Stage[main]/Tbpl-base/Exec[/bin/cp -v
> /var/www/tbpl/php/config.php.example /var/www/tbpl/php/config.php]/returns:
> /bin/cp: cannot create regular file `/var/www/tbpl/php/config.php':
> Permission denied
As part of the Vagrant initial-setup, it attempts to copy the example config to the live one (which should get mirrored back to the sourcedir outside the VM) - not sure why this isn't working, unless the user/group under which the VM is running doesn't have permissions to the srcdir on your machine? A manual copy of config.php.example to config.php will get you past this step (and it would then be skipped for future runs too). I'll have a look and see if there's anything obvious amiss with the Vagrant config anyway :-)
Attachment #8387786 -
Flags: review+
Assignee | ||
Comment 7•11 years ago
|
||
Thanks! Can you check it in, or should I? I don't know what the landing procedure might be besides pushing to the HG repo.
Flags: needinfo?(emorley)
Comment 8•11 years ago
|
||
Go ahead and push it :)
Assignee | ||
Comment 9•11 years ago
|
||
Assignee | ||
Comment 10•11 years ago
|
||
If updates to TBPL retroactively apply to old pushes (I assume they do?) then this try push has plenty of LSAN failures to see if it worked:
https://tbpl.mozilla.org/?tree=Try&rev=a9a80c84b8b5
Assignee | ||
Updated•11 years ago
|
Summary: Expose ASAN errors in TBPL → Expose ASAN and LSAN errors in TBPL
Comment 11•11 years ago
|
||
Having the SUMMARY: in front of the line is a bit ugly (and could complicate starring bugs since it will likely affect what we need to put in the summary for TBPL to match). Can we just drop it so they're outputted as "LeakSanitizer: 32856 byte(s) leaked in 1 allocation(s)." ? Even better would be if we could get the test name on the same line - like "LeakSanitizer: TestAppShellSteadyState | 32856 byte(s) leaked in 1 allocation(s)." or something to that affect. I'm very much open to suggestions.
Comment 12•11 years ago
|
||
LeakSanitizer | TestAppShellSteadyState | 3... rather than LeakSanitizer: - a test name is the thing between the first and second pipe when there is at least one character after the second pipe.
Comment 13•11 years ago
|
||
(In reply to Andrew McCreight [:mccr8] from comment #9)
> https://hg.mozilla.org/webtools/tbpl/rev/d4ae8aa22660
In production :)
Let's track further improvements to this in follow-up bugs.
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Updated•10 years ago
|
Product: Webtools → Tree Management
Updated•10 years ago
|
Product: Tree Management → Tree Management Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•