Closed
Bug 1242119
Opened 9 years ago
Closed 9 years ago
Intermittent xpcshell-child-process.ini:dom/indexedDB/test/unit/test_transaction_abort.js,test_multientry.js,test_blocked_order.js | application crashed [@ moz_abort]
Categories
(Core :: Gecko Profiler, defect)
Core
Gecko Profiler
Tracking
()
RESOLVED
FIXED
mozilla47
Tracking | Status | |
---|---|---|
firefox47 | --- | fixed |
People
(Reporter: philor, Assigned: mccr8)
References
Details
(Keywords: intermittent-failure, Whiteboard: [MemShrink])
Attachments
(2 files)
1.56 KB,
patch
|
froydnj
:
review+
|
Details | Diff | Splinter Review |
1.08 KB,
patch
|
froydnj
:
review+
|
Details | Diff | Splinter Review |
Reporter | ||
Updated•9 years ago
|
Summary: Intermittent xpcshell-child-process.ini:dom/indexedDB/test/unit/test_transaction_abort.js | application crashed [@ moz_abort] → Intermittent xpcshell-child-process.ini:dom/indexedDB/test/unit/test_transaction_abort.js,test_multientry.js | application crashed [@ moz_abort]
It looks like we're destroying a Mutex too late, and the deadlock detector is already shut down. Should this be using OffTheBooksMutex
Component: DOM: IndexedDB → Gecko Profiler
Flags: needinfo?(nfroyd)
Flags: needinfo?(bgirard)
![]() |
||
Comment 2•9 years ago
|
||
I assume this is sRegisteredThreadsMutex, which we're so eager to destroy, we try to do it twice:
http://mxr.mozilla.org/mozilla-central/source/tools/profiler/core/platform.cpp#139
But on Windows, we go through:
http://mxr.mozilla.org/mozilla-central/source/xpcom/build/XPCOMInit.cpp#971
which runs before profiler_shutdown() and thereby destroys the Mutex via the UniquePtr destructor registered at static construction time, rather than explicit shutdown later on.
What I don't get (having not looked at this very long) is why are we not hitting this more often?
Flags: needinfo?(nfroyd)
Reporter | ||
Updated•9 years ago
|
Summary: Intermittent xpcshell-child-process.ini:dom/indexedDB/test/unit/test_transaction_abort.js,test_multientry.js | application crashed [@ moz_abort] → Intermittent xpcshell-child-process.ini:dom/indexedDB/test/unit/test_transaction_abort.js,test_multientry.js,test_blocked_order.js | application crashed [@ moz_abort]
Comment hidden (Intermittent Failures Robot) |
Comment 4•9 years ago
|
||
IMO this is really a regression caused by bug 1035454 which introduced a huge footgun to paper of it's own issues. I wouldn't be overly surprised if there was other similar bugs caused by this but we don't have a way to filter on winxp only intermittent issues.
Ideally we would backout http://hg.mozilla.org/mozilla-central/rev/9134c098f0ee. It is stated to be temporary anyways. Otherwise we might want to consider using _exit(0) instead which IIRC wont run static destructors.
Otherwise if we want to plaster over a plaster bug we can use OffTheBooksMutex =\.
Depends on: 1035454
Flags: needinfo?(continuation)
Assignee | ||
Comment 5•9 years ago
|
||
(In reply to Benoit Girard (:BenWa) from comment #4)
> Ideally we would backout
> http://hg.mozilla.org/mozilla-central/rev/9134c098f0ee. It is stated to be
> temporary anyways.
I can see if the issue in bug 1083664 went away, and if it still around, see if the WebRTC people have a preference between investigating the issue and disabling the test on XP.
> Otherwise we might want to consider using _exit(0)
> instead which IIRC wont run static destructors.
Ah, good point. That's what ContentChild::QuickExit() does.
Assignee | ||
Updated•9 years ago
|
Assignee: nobody → continuation
Flags: needinfo?(continuation)
Assignee | ||
Comment 6•9 years ago
|
||
changing to _exit() seems to work:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=4be9c404009d
But the WebRTC intermittent failure seems to have gone away, so I'll try just removing this chunk of code once I've worked out a leak suppression that works. (Removing the block causes us to run leak checking on WindowsXP, and we don't run it at all in m-c right now, so there are additional leaks revealed.)
Assignee | ||
Comment 7•9 years ago
|
||
This was disabled because it was causing intermittent failures in a test, but that failure seems to have stopped.
This will cause us to start doing leak checking in content processes on Windows XP. (We do not run them on other Windows platforms either due to bug 1219369.)
try run with a bunch of retriggers for the test suite with the WebRTC failure:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=edf6c3934483
The oranges are all leaks, because this patch makes it so that we actually run leak checking on Windows XP. I'm adding suppressions for these leaks in bug 1219919.
Here is a try run with those suppressions added:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=bdc3933abda0
Attachment #8715024 -
Flags: review?(nfroyd)
Assignee | ||
Comment 8•9 years ago
|
||
This skips destructors, so hopefully it avoids some odd behaviors. My attempt to do a try run for this failed somehow, but it seems better than leaving it alone. I split this into a separate patch to make it easier to back out one without backing out the other. I also updated the comment.
Attachment #8715026 -
Flags: review?(nfroyd)
Assignee | ||
Comment 9•9 years ago
|
||
I'm marking this MemShrink because the patch is needed to run leak checking on Windows XP content processes.
Whiteboard: [MemShrink]
![]() |
||
Updated•9 years ago
|
Attachment #8715024 -
Flags: review?(nfroyd) → review+
![]() |
||
Comment 10•9 years ago
|
||
Comment on attachment 8715026 [details] [diff] [review]
part 2 - Use _exit(0) to exit in B2G debug content processes.
Review of attachment 8715026 [details] [diff] [review]:
-----------------------------------------------------------------
Why are we changing the B2G behavior in a Windows intermittent bug? For consistency with the (former) Windows implementation?
r=me with answers to the above.
Attachment #8715026 -
Flags: review?(nfroyd) → review+
Assignee | ||
Comment 11•9 years ago
|
||
(In reply to Nathan Froyd [:froydnj] from comment #10)
> Why are we changing the B2G behavior in a Windows intermittent bug? For
> consistency with the (former) Windows implementation?
I'll file a separate bug for part 2. Benoit just pointed out in this bug that exit() instead of _exit() is probably a bad idea, so I figured I'd fix it.
Assignee | ||
Comment 12•9 years ago
|
||
Filed bug 1245513 for the B2G changes.
Comment 13•9 years ago
|
||
Comment 14•9 years ago
|
||
bugherder |
Status: NEW → RESOLVED
Closed: 9 years ago
status-firefox47:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla47
Updated•9 years ago
|
Flags: needinfo?(bgirard)
Comment hidden (Intermittent Failures Robot) |
You need to log in
before you can comment on or make changes to this bug.
Description
•