Closed Bug 772782 Opened 13 years ago Closed 13 years ago

crash in DocAccessible::Shutdown @ NotificationController::Shutdown

Categories

(Core :: Disability Access APIs, defect)

ARM
Android
defect
Not set
critical

Tracking

()

RESOLVED FIXED
mozilla18

People

(Reporter: scoobidiver, Assigned: drexler)

Details

(Keywords: crash, Whiteboard: [good first bug][mentor=surkov.alexander@gmail.com][lang=c++])

Crash Data

Attachments

(1 file)

There's one crash in 16.0a1/20120710: Signature NotificationController::Shutdown More Reports Search UUID 417b23ee-0065-45a7-addb-484362120710 Date Processed 2012-07-10 18:36:13 Uptime 572 Last Crash 2.2 days before submission Install Age 2.9 hours since version was first installed. Install Time 2012-07-10 15:39:17 Product FennecAndroid Version 16.0a1 Build ID 20120710030551 Release Channel nightly OS Linux OS Version 0.0.0 Linux 3.1.10-01872-g764d388-dirty #364 PREEMPT Mon Jun 18 12:20:58 CEST 2012 armv7l Build Architecture arm Build Architecture Info Crash Reason SIGSEGV Crash Address 0x160 App Notes AdapterDescription: 'Imagination Technologies -- PowerVR SGX 540 -- OpenGL ES 2.0 build 1.8@785978 -- Model: GT-I9000, Product: GT-I9000, Manufacturer: samsung, Hardware: aries' EGL? EGL+ GL Context? GL Context+ GL Layers? GL Layers+ samsung GT-I9000 samsung/full_galaxysmtd/galaxysmtd:4.0.4/IMM76D/eng.ar.20120201.181605:user/release-keys Processor Notes This dump is too long and has triggered the automatic truncation routine EMCheckCompatibility True Adapter Vendor ID Imagination Technologies Adapter Device ID PowerVR SGX 540 Frame Module Signature Source 0 libxul.so NotificationController::Shutdown nsIPresShell.h:1283 1 libxul.so DocAccessible::Shutdown accessible/src/generic/DocAccessible.cpp:639 2 libxul.so nsAccDocManager::HandleEvent accessible/src/base/nsAccDocManager.cpp:283 3 libxul.so nsEventListenerManager::HandleEventSubType content/events/src/nsEventListenerManager.cpp:820 4 libxul.so nsEventListenerManager::HandleEventInternal content/events/src/nsEventListenerManager.cpp:893 5 libxul.so nsEventTargetChainItem::HandleEvent content/events/src/nsEventListenerManager.h:143 6 libxul.so nsEventTargetChainItem::HandleEventTargetChain content/events/src/nsEventDispatcher.cpp:286 7 libxul.so nsEventDispatcher::Dispatch content/events/src/nsEventDispatcher.cpp:639 8 libxul.so nsEventDispatcher::DispatchDOMEvent content/events/src/nsEventDispatcher.cpp:701 9 libxul.so nsDocument::DispatchPageTransition content/base/src/nsDocument.cpp:7205 10 libxul.so nsDocument::OnPageHide content/base/src/nsDocument.cpp:7316 11 libxul.so DocumentViewerImpl::PageHide layout/base/nsDocumentViewer.cpp:1232 12 libxul.so nsDocShell::FirePageHideNotification docshell/base/nsDocShell.cpp:1615 13 libxul.so nsDocShell::Destroy docshell/base/nsDocShell.cpp:4691 14 libxul.so nsFrameLoader::Finalize content/base/src/nsFrameLoader.cpp:544 15 libxul.so nsDocument::MaybeInitializeFinalizeFrameLoaders content/base/src/nsDocument.cpp:5424 16 libxul.so nsDocument::EndUpdate content/base/src/nsDocument.cpp:3963 17 libxul.so nsXULDocument::EndUpdate content/xul/document/src/nsXULDocument.cpp:3302 18 libxul.so mozAutoDocUpdate::~mozAutoDocUpdate content/base/src/mozAutoDocUpdate.h:35 19 libxul.so nsINode::doRemoveChildAt content/base/src/nsINode.cpp:1365 20 libxul.so nsGenericElement::RemoveChildAt content/base/src/nsGenericElement.cpp:2628 21 libxul.so nsXULElement::RemoveChildAt content/xul/content/src/nsXULElement.cpp:941 22 libxul.so nsINode::RemoveChild content/base/src/nsINode.cpp:453 23 libxul.so nsIDOMNode_RemoveChild obj-firefox/js/xpconnect/src/dom_quickstubs.cpp:5358 24 libxul.so js::InvokeKernel js/src/jscntxtinlines.h:400 25 libxul.so js::Interpret js/src/jsinterp.cpp:2439 ... More reports at: https://crash-stats.mozilla.com/report/list?signature=NotificationController%3A%3AShutdown
Never seen this crash myself.
Eitan, any thoughts on this one?
No, that looks like a tough one.
It seems presshell is dead at this point (see http://hg.mozilla.org/mozilla-central/annotate/02b26fb307b4/layout/base/nsIPresShell.h#l1283). Boris, is that possible?
Seems plausible: NotificationObserver just holds a weak ref, and we're tearing down the document...
(In reply to Boris Zbarsky (:bz) from comment #5) > Seems plausible: NotificationObserver just holds a weak ref, and we're > tearing down the document... presshell shutdowns the document accessible when presshell is destroyed (http://mxr.mozilla.org/mozilla-central/source/layout/base/nsPresShell.cpp#941). Then it should mean that somebody recreates the document after presshell destroyed and before the document tearing down. Boris, can you take a look at the code where we create a document accessible (http://mxr.mozilla.org/mozilla-central/source/accessible/src/base/nsAccDocManager.cpp#351) and say how we can protect from that case please?
> Then it should mean that somebody recreates the document after presshell destroyed and > before the document tearing down. I'm not sure what you mean there.
Oh, someone recreates the mAccDocument? You could refuse to let it be created if there is no presshell or if it's being destroyed...
(In reply to Boris Zbarsky (:bz) from comment #8) > Oh, someone recreates the mAccDocument? yes > You could refuse to let it be created if there is no presshell or if it's > being destroyed... we have checks (http://mxr.mozilla.org/mozilla-central/source/accessible/src/base/nsAccDocManager.cpp#351): nsIPresShell* presShell = aDocument->GetShell(); if (!presShell || !presShell->GetRootFrame()) I guess it doesn't allow to handle destroyed presshell. What else should we have?
Check IsDestroying()?
Assignee: nobody → surkov.alexander
(In reply to Boris Zbarsky (:bz) from comment #10) > Check IsDestroying()? ok, thank you
Assignee: surkov.alexander → nobody
Whiteboard: [native-crash] → [good first bug][mentor=surkov.alexander@gmail.com][lang=c++]
Attached patch patchSplinter Review
Attachment #656701 - Flags: review?(surkov.alexander)
Comment on attachment 656701 [details] [diff] [review] patch Review of attachment 656701 [details] [diff] [review]: ----------------------------------------------------------------- r=me, thank you. Andrew, do you need any help to land it?
Attachment #656701 - Flags: review?(surkov.alexander) → review+
Assignee: nobody → andrew.quartey
Status: ASSIGNED → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla18
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: