Closed
Bug 717758
Opened 13 years ago
Closed 11 years ago
abort() isn't caught by Breakpad (e.g. pure virtual calls, stack buffer overflow checks)
Categories
(Toolkit :: Crash Reporting, defect)
Tracking
()
RESOLVED
FIXED
mozilla27
People
(Reporter: joe, Assigned: ted)
References
Details
(Keywords: sec-want)
Attachments
(4 files)
991 bytes,
text/plain
|
Details | |
4.27 KB,
patch
|
glandium
:
review+
|
Details | Diff | Splinter Review |
1.94 KB,
patch
|
jmaher
:
review+
|
Details | Diff | Splinter Review |
6.11 KB,
patch
|
Details | Diff | Splinter Review |
Pure virtual calls explicitly call abort(), killing Firefox, but they aren't caught by Breakpad, so Firefox just disappears on people when they happen.
Comment 1•13 years ago
|
||
Yes, abort() on Mac doesn't trigger breakpad. Is there a way to alter the default behavior, perhaps by implementing or injecting an alternative _purecall?
Assignee | ||
Comment 2•13 years ago
|
||
We also don't handle stack overflow on Mac (bug 507876), or unhandled C++ exceptions (http://code.google.com/p/google-breakpad/issues/detail?id=318).
There's an upstream report about potentially handling SIGABRT, but it hasn't gone anywhere:
http://code.google.com/p/google-breakpad/issues/detail?id=343
Comment 4•12 years ago
|
||
I hit the same problem today with a stack buffer overflow (bug 866544).
Keywords: sec-want
Summary: Pure virtual calls aren't caught by Breakpad → abort() isn't caught by Breakpad (e.g. pure virtual calls, stack buffer overflow checks)
Comment 5•12 years ago
|
||
Updated•12 years ago
|
Updated•12 years ago
|
Severity: normal → major
Comment 6•11 years ago
|
||
Also happens with release-mode assertion failures in system libraries (e.g. bug 903722).
Assignee | ||
Comment 7•11 years ago
|
||
This might be fixable with the WIP patch I mentioned in bug 525296, since that catches SIGABRT.
Assignee | ||
Comment 8•11 years ago
|
||
Patch up for upstream review:
https://breakpad.appspot.com/618002/
Turns out it was not hard to finish up, I should have done that ages ago.
Assignee: nobody → ted
Assignee | ||
Comment 9•11 years ago
|
||
Landed this upstream, I'll get our in-tree copy updated (or cherrypick this):
http://code.google.com/p/google-breakpad/source/detail?r=1205
Assignee | ||
Comment 10•11 years ago
|
||
Try build available with this patch if you want to sanity check some cases:
http://ftp.mozilla.org/pub/mozilla.org/firefox/try-builds/tmielczarek@mozilla.com-443970023f3a/try-macosx64/firefox-26.0a1.en-US.mac.dmg
Assignee | ||
Comment 11•11 years ago
|
||
I'm just going to cherry-pick the patch from upstream and land it. I added a unit test here for sanity's sake. Try push here also for sanity:
https://tbpl.mozilla.org/?tree=Try&rev=24c8d5b62900
Attachment #805324 -
Flags: review?(mh+mozilla)
Assignee | ||
Comment 12•11 years ago
|
||
Being lazy, just going to put this patch here too. Since SIGABRT didn't work on Mac historically we didn't try to use it in automation.py. This patch changes that. It's also going to bitrot jhammel's big Mochitest-rework patch, but what can you do?
Attachment #805459 -
Flags: review?(jmaher)
Assignee | ||
Comment 13•11 years ago
|
||
This is the upstream patch with r=mento.
Comment 14•11 years ago
|
||
Comment on attachment 805459 [details] [diff] [review]
kill hung processes with SIGABRT on OS X in automation.py
Review of attachment 805459 [details] [diff] [review]:
-----------------------------------------------------------------
can't argue with this.
Attachment #805459 -
Flags: review?(jmaher) → review+
Updated•11 years ago
|
Attachment #805324 -
Flags: review?(mh+mozilla) → review+
Assignee | ||
Comment 15•11 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/62cba8b2fd7d
https://hg.mozilla.org/mozilla-central/rev/742c8c54c8fc
https://hg.mozilla.org/mozilla-central/rev/751208f98deb
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla27
You need to log in
before you can comment on or make changes to this bug.
Description
•