Closed Bug 792304 Opened 12 years ago Closed 10 years ago

Intermittent 10.8 crash in test_bug494328.html because test_contextmenu.html goes into fullscreen [@ libobjc.A.dylib + 0x62d0]

Categories

(Firefox :: General, defect)

x86_64
macOS
defect
Not set
critical

Tracking

()

RESOLVED FIXED
Firefox 41
Tracking Status
firefox39 --- wontfix
firefox40 --- wontfix
firefox41 --- fixed
firefox-esr31 --- unaffected
firefox-esr38 --- unaffected
b2g18 --- disabled
b2g18-v1.0.1 --- disabled

People

(Reporter: philor, Assigned: xidorn)

References

Details

(Keywords: crash, intermittent-failure)

Crash Data

We know that fullscreen on 10.7+ kind of, it's not quite, it um, might not be the most cooperative thing in testing. See the bits in http://mxr.mozilla.org/mozilla-central/source/content/html/content/test/test_fullscreen-api.html?force=1#65 and below where we slather on setTimeouts to survive going into fullscreen, and the bits in http://mxr.mozilla.org/mozilla-central/source/dom/tests/mochitest/pointerlock/test_pointerlock-api.html?force=1#85 where we just say the hell with it. 10.8 kicks that up a notch, hitting ObjC exceptions until it finally manages to crash, in the case of test_contextmenu.html conveniently doing so in components/feeds/test/test_bug494328.html to try to shift the blame. https://tbpl.mozilla.org/php/getParsedLog.php?id=15322145&tree=Mozilla-Inbound Rev5 MacOSX Mountain Lion 10.8 mozilla-inbound opt test mochitests-1/5 on 2012-09-18 16:56:01 PDT for push 94de0e883fdd slave: talos-mtnlion-r5-014 2861 INFO TEST-END | /tests/browser/base/content/test/test_contextmenu.html | finished in 6871ms (another test ensues, shifting the blame) 2891 INFO TEST-START | /tests/browser/base/content/test/test_offlineNotification.html 2012-09-18 16:56:54.881 firefox-bin[836:707] void _NSMoveWindowToSpaceUnlessSticky(NSInteger, CGSSpaceID): CGSGetWindowTags(cid, win, tags, kCGSRealMaximumTagSize) returned CGError 1000 on line 1247 2892 INFO Error: Unable to restore focus, expect failures and timeouts. 2012-09-18 16:56:57.833 firefox-bin[836:707] *** Assertion failure in -[_NSWindowFullScreenTransition transitionedWindowFrame], /SourceCache/AppKit/AppKit-1187/AppKit.subproj/NSWindowFullScreenTransition.m:1485 2012-09-18 16:56:57.833 firefox-bin[836:707] Mozilla has caught an Obj-C exception [NSInternalInconsistencyException: transitionedWindow must not be nil] (repeats while things churn) 2938 INFO TEST-PASS | /tests/browser/components/feeds/test/test_bug494328.html | frame not reloaded successfully - 2 should equal 2 2012-09-18 16:57:01.631 firefox-bin[836:707] *** Assertion failure in -[_NSWindowFullScreenTransition transitionedWindowFrame], /SourceCache/AppKit/AppKit-1187/AppKit.subproj/NSWindowFullScreenTransition.m:1485 2012-09-18 16:57:01.631 firefox-bin[836:707] Mozilla has caught an Obj-C exception [NSInternalInconsistencyException: transitionedWindow must not be nil] 2012-09-18 16:57:01.660 firefox-bin[836:707] *** Assertion failure in -[_NSWindowFullScreenTransition transitionedWindowFrame], /SourceCache/AppKit/AppKit-1187/AppKit.subproj/NSWindowFullScreenTransition.m:1485 2012-09-18 16:57:01.661 firefox-bin[836:707] Mozilla has caught an Obj-C exception [NSInternalInconsistencyException: transitionedWindow must not be nil] 2012-09-18 16:57:01.685 firefox-bin[836:707] *** Assertion failure in -[_NSWindowFullScreenTransition transitionedWindowFrame], /SourceCache/AppKit/AppKit-1187/AppKit.subproj/NSWindowFullScreenTransition.m:1485 2012-09-18 16:57:01.685 firefox-bin[836:707] Mozilla has caught an Obj-C exception [NSInternalInconsistencyException: transitionedWindow must not be nil] 2012-09-18 16:57:01.710 firefox-bin[836:707] *** Assertion failure in -[_NSWindowFullScreenTransition transitionedWindowFrame], /SourceCache/AppKit/AppKit-1187/AppKit.subproj/NSWindowFullScreenTransition.m:1485 2012-09-18 16:57:01.711 firefox-bin[836:707] Mozilla has caught an Obj-C exception [NSInternalInconsistencyException: transitionedWindow must not be nil] 2939 INFO Error: Unable to restore focus, expect failures and timeouts. 2012-09-18 16:57:04.616 firefox-bin[836:707] *** Assertion failure in -[_NSWindowFullScreenTransition transitionedWindowFrame], /SourceCache/AppKit/AppKit-1187/AppKit.subproj/NSWindowFullScreenTransition.m:1485 2012-09-18 16:57:04.617 firefox-bin[836:707] Mozilla has caught an Obj-C exception [NSInternalInconsistencyException: transitionedWindow must not be nil] 2012-09-18 16:57:04.659 firefox-bin[836:707] *** Assertion failure in -[_NSWindowFullScreenTransition transitionedWindowFrame], /SourceCache/AppKit/AppKit-1187/AppKit.subproj/NSWindowFullScreenTransition.m:1485 2012-09-18 16:57:04.660 firefox-bin[836:707] Mozilla has caught an Obj-C exception [NSInternalInconsistencyException: transitionedWindow must not be nil] TEST-UNEXPECTED-FAIL | /tests/browser/components/feeds/test/test_bug494328.html | Exited with code 1 during test run INFO | automation.py | Application ran for: 0:00:28.604602 INFO | automation.py | Reading PID log: /var/folders/5s/p34wrbxn7bx4tr_8mg2x35f400000w/T/tmpurpKClpidlog Downloading symbols from: http://ftp.mozilla.org/pub/mozilla.org/firefox/tinderbox-builds/mozilla-inbound-macosx64/1348008236/firefox-18.0a1.en-US.mac.crashreporter-symbols.zip PROCESS-CRASH | /tests/browser/components/feeds/test/test_bug494328.html | application crashed (minidump found) Crash dump filename: /var/folders/5s/p34wrbxn7bx4tr_8mg2x35f400000w/T/tmpVcFVsD/minidumps/74757F5C-6AD3-4029-A78E-C01EB222D035.dmp Operating system: Mac OS X 10.8.0 12A269 CPU: amd64 family 6 model 42 stepping 7 8 CPUs Crash reason: EXC_BAD_ACCESS / KERN_INVALID_ADDRESS Crash address: 0xffffffffc0000012 Thread 0 (crashed) 0 libobjc.A.dylib + 0x62d0 rbx = 0x5fbf6398 r12 = 0x1c5ff370 r13 = 0x12b97e80 r14 = 0x5fbf6398 r15 = 0x864102c0 rip = 0x864102d0 rsp = 0x5fbf6330 rbp = 0x5fbf6380 Found by: given as instruction pointer in context 1 XUL!GetObjCExceptionInfo [mac_utils.mm : 15 + 0x10] rip = 0x01195538 rsp = 0x5fbf6340 Found by: stack scanning 2 XUL!CrashReporter::AppendObjCExceptionInfoToAppNotes [nsExceptionHandler.cpp : 1578 + 0x7] rip = 0x0119376a rsp = 0x5fbf6390 Found by: stack scanning 3 XUL!nsGetServiceByCIDWithError::operator() [nsComponentManagerUtils.cpp : 48 + 0xf] rip = 0x020bf500 rsp = 0x5fbf63c0 Found by: stack scanning 4 XUL!nsCOMPtr_base::assign_from_gs_contractid [nsCOMPtr.cpp : 92 + 0xa] rip = 0x020be633 rsp = 0x5fbf63e0 Found by: stack scanning 5 XUL!nsCocoaWindow::Create [mozilla-inbound:tions.h:94de0e883fdd : 45 + 0xb] rip = 0x01e6a17a rsp = 0x5fbf6410 Found by: stack scanning 6 XUL + 0xd0c39f rip = 0x01e863a0 rsp = 0x5fbf6478 Found by: stack scanning 7 XUL!nsComponentManagerImpl::CreateInstance [mozilla-inbound::94de0e883fdd : 408 + 0x9] rip = 0x020fc7a5 rsp = 0x5fbf64a0 Found by: stack scanning 8 XUL!nsCreateInstanceByCID::operator() [nsComponentManagerUtils.cpp : 124 + 0x7] rip = 0x020bf344 rsp = 0x5fbf64e0 Found by: stack scanning 9 XUL!nsCOMPtr_base::assign_from_helper [nsCOMPtr.cpp : 110 + 0x11] rip = 0x020be6cb rsp = 0x5fbf6500 Found by: stack scanning 10 XUL!nsChildView::AllocateChildPopupWidget [mozilla-inbound::94de0e883fdd : 603 + 0x13] rip = 0x01e84c0f rsp = 0x5fbf6520 Found by: stack scanning 11 XUL!nsBaseWidget::CreateChild [nsBaseWidget.cpp : 265 + 0x15] rip = 0x01eaacdc rsp = 0x5fbf6560 Found by: stack scanning 12 XUL!nsView::CreateWidgetForPopup [nsView.cpp : 614 + 0xb] rip = 0x017e2064 rsp = 0x5fbf65d0 Found by: stack scanning 13 XUL!nsMenuPopupFrame::CreateWidgetForView [nsMenuPopupFrame.cpp : 295 + 0x12] rip = 0x015015ae rsp = 0x5fbf6620 Found by: stack scanning
Whiteboard: [orange]
Keywords: crash
Severity: normal → critical
Crash Signature: [@ libobjc.A.dylib@0x62d0]
Summary: Intermittent 10.8 crash in test_bug494328.html because test_contextmenu.html goes into fullscreen → Intermittent 10.8 crash in test_bug494328.html because test_contextmenu.html goes into fullscreen [@ libobjc.A.dylib + 0x62d0]
smaug, philor believes this to be related to going into fullscreen. cpearce wrote most of that code, but has now left. As reviewer of the fullscreen landing, please can you take a look at this.
Flags: needinfo?(bugs)
No. Chris can look at this.
Flags: needinfo?(bugs)
And by cpearce I was thinking of cjones, oops - sorry!
Flags: needinfo?(cpearce)
That's a crash in Mac widget code, I haven't had much to do with that. I think Mats did some work in that area most recently?
Flags: needinfo?(cpearce) → needinfo?(matspal)
> XUL!nsMenuPopupFrame::CreateWidgetForView [nsMenuPopupFrame.cpp : 295 + 0x12] ... rings a bell about an old crash bug that we have crash-stats reports about but we couldn't figure out, iirc. Neil might remember more. Fwiw, here's the full stack (some of these symbols are certainly wrong): 0 libobjc.A.dylib 1 XUL!GetObjCExceptionInfo 2 XUL!nsComponentManagerImpl::GetServiceByContractID 3 XUL!CrashReporter::AppendObjCExceptionInfoToAppNotes 4 XUL!nsGetServiceByContractID::operator()(nsID const&, void**) const 5 XUL!nsCOMPtr_base::assign_from_gs_contractid 6 XUL!nsCocoaWindow::Create 7 XUL!nsCOMPtr_base::assign_from_helper 8 XUL!nsBaseWidget::CreateChild 9 XUL!nsView::CreateWidgetForPopup 10 XUL!nsMenuPopupFrame::CreateWidgetForView 11 XUL!PL_DHashTableOperate 12 XUL!_ZL13decompose_seq 13 XUL!mozilla::FramePropertyTable::Set 14 XUL!nsViewManager::SetViewZIndex 15 XUL!SearchTable 16 XUL!nsDocLoader::QueryInterface 17 XUL!nsMenuPopupFrame::Init 18 XUL!nsCSSFrameConstructor::ConstructFrameFromItemInternal This trail looks valid though: 6 XUL!nsCocoaWindow::Create 8 XUL!nsBaseWidget::CreateChild 9 XUL!nsView::CreateWidgetForPopup 10 XUL!nsMenuPopupFrame::CreateWidgetForView 17 XUL!nsMenuPopupFrame::Init
Flags: needinfo?(matspal)
That said, given the Cocoa errors leading up the crash (see comment 0) it would be interesting to see the stack for those. BTW, why are Obj-C exceptions not fatal? Do we have a pref to make them fatal that we can turn on for the tests involved?
The "*** Assertion failure in -[_NSWindowFullScreenTransition transitionedWindowFrame]" also rings a bell for me -- not because of an old bug, but because I've seen it. If I remember right it was in connection with my work on bug 740923. It'll be a while before I have time to work on this.
> BTW, why are Obj-C exceptions not fatal? Sometimes they are and sometimes they aren't. It depends on where in OS code they happen. Though usually in my experience they're not fatal. For a while we deliberately made them all fatal (or as many as we had control over), in connection with our work on bug 163260. But this was a terrible mistake and was eventually rectified. Likewise our work on bug 163260 turned out to be completely misguided.
I'll tentatively assign this bug to myself, as I've done for bug 802504. But it'll be a while before I can get to it. In the meantime I think the test associated with this bug should be disabled.
Assignee: nobody → smichaud
I was having trouble with this assertion hitting a lot. Based on comment 131, I disabled the test on 10.8. https://hg.mozilla.org/integration/mozilla-inbound/rev/8cda8247066b
Steven, this is one of our most frequent remaining failures on the b2g18 branches. Are you still looking at this or should I just uplift the disabling patch from comment 177?
Flags: needinfo?(smichaud)
Go ahead and uplift the disabling patch. It'll be several weeks before I can even think about working on this.
Flags: needinfo?(smichaud)
Moved the disabling into the manifest, and switched it to disable anything that's not 10.6, in https://hg.mozilla.org/integration/mozilla-inbound/rev/c09784f0bf81
Blocks: 1121199
No longer blocks: 1121199
We are no longer using the system fullscreen transition on OS X 10.7+ since bug 1105939.
Blocks: 1170369
Status: NEW → RESOLVED
Closed: 10 years ago
Depends on: 1105939
Resolution: --- → FIXED
Whiteboard: [leave open]
Assignee: smichaud → quanxunzhen
Target Milestone: --- → Firefox 41
You need to log in before you can comment on or make changes to this bug.