Closed Bug 367006 Opened 18 years ago Closed 18 years ago

[@ nsJSContext::LoadEnd] with cycle collection

Categories

(Core :: XPCOM, defect)

x86
All
defect
Not set
critical

Tracking

()

RESOLVED FIXED

People

(Reporter: philor, Assigned: jst)

References

Details

(Keywords: topcrash)

Crash Data

Attachments

(1 file)

Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.9a2pre) Gecko/20070114 Firefox/3.0a2pre ID:2007011416 Two crashes, over two days, with a Firefox self-build on Intel Mac. Both times, Google search results were loading in a background tab, once from a context menu search for selected text, once from a bookmark keyword typed in the addressbar, and then backgrounded. No idea whether the site, or the background/foreground is significant. Crashed thread, from Apple crash report: Exception: EXC_BAD_ACCESS (0x0001) Codes: KERN_PROTECTION_FAILURE (0x0002) at 0x00000000 Thread 0 Crashed: 0 org.mozilla.firefox 0x00479f09 nsJSContext::LoadEnd() + 41 1 org.mozilla.firefox 0x00178736 NS_NewDocumentViewer(nsIDocumentViewer**) + 752 2 org.mozilla.firefox 0x0051cfea nsDocShell::EndPageLoad(nsIWebProgress*, nsIChannel*, unsigned) + 82 3 org.mozilla.firefox 0x0024ec58 nsWebShell::EndPageLoad(nsIWebProgress*, nsIChannel*, unsigned) + 190 4 org.mozilla.firefox 0x00523f7a nsDocShell::CreateAboutBlankContentViewer(nsIPrincipal*) + 1706 5 org.mozilla.firefox 0x00250a69 nsDocLoader::FireOnStateChange(nsIWebProgress*, nsIRequest*, int, unsigned) + 287 6 org.mozilla.firefox 0x00250dc1 nsDocLoader::doStopDocumentLoad(nsIRequest*, unsigned) + 49 7 org.mozilla.firefox 0x00250ecd nsDocLoader::DocLoaderIsEmpty() + 229 8 org.mozilla.firefox 0x002512e2 nsDocLoader::doStartDocumentLoad() + 678 9 org.mozilla.firefox 0x0006a925 nsLoadGroup::~nsLoadGroup [in-charge]() + 719 10 org.mozilla.firefox 0x0026bc08 imgRequestProxy::RemoveFromLoadGroup(int) + 66 11 org.mozilla.firefox 0x0026bc7f imgRequestProxy::OnStopRequest(nsIRequest*, nsISupports*, unsigned, int) + 81 12 org.mozilla.firefox 0x005329f9 imgRequest::RemoveProxy(imgRequestProxy*, unsigned, int) + 111 13 org.mozilla.firefox 0x0026b846 imgRequestProxy::ChangeOwner(imgRequest*) + 218 14 org.mozilla.firefox 0x004a2bdb nsImageLoadingContent::DestroyImageLoadingContent() + 39 15 org.mozilla.firefox 0x00190010 nsHTMLImageElement::~nsHTMLImageElement [in-charge deleting]() + 56 16 org.mozilla.firefox 0x004559fe nsNodeUtils::LastRelease(nsINode*, int) + 424 17 org.mozilla.firefox 0x0044a8bc nsGenericElement::LeaveLink(nsPresContext*) + 286 18 org.mozilla.firefox 0x0019005f nsHTMLImageElement::~nsHTMLImageElement [in-charge deleting]() + 135 19 org.mozilla.firefox 0x0034ca4b XPCJSRuntime::GCCallback(JSContext*, JSGCStatus) + 1399 20 libjsd.dylib 0x018dccb8 NSGetModule + 11216 21 org.mozilla.firefox 0x00479f61 nsJSContext::LoadEnd() + 129 22 libmozjs.dylib 0x00d33ae5 js_GC + 2908 23 libmozjs.dylib 0x00d080a2 JS_GC + 66 24 org.mozilla.firefox 0x000abf8f nsXPConnect::BeginCycleCollection() + 201 25 libxpcom_core.dylib 0x00df253c nsCycleCollector::Collect() + 36 26 libxpcom_core.dylib 0x00df2d71 nsCycleCollector_collect() + 35 27 org.mozilla.firefox 0x0047a3f8 nsJSContext::FireGCTimer(int) + 224 28 libxpcom_core.dylib 0x00de8a4b nsTimerImpl::Fire() + 145 29 libxpcom_core.dylib 0x00de8c2a nsTimerImpl::InitCommon(unsigned, unsigned) + 296 30 libxpcom_core.dylib 0x00de66e2 nsThread::nsChainedEventQueue::PutEvent(nsIRunnable*) + 1024 31 libxpcom_core.dylib 0x00db1fd5 NS_ProcessNextEvent_P(nsIThread*, int) + 53 32 org.mozilla.firefox 0x0053383d nsBaseAppShell::DoProcessNextNativeEvent(int) + 103 33 org.mozilla.firefox 0x0026e91d nsAppShell::ProcessNextNativeEvent(int) + 525 34 org.mozilla.firefox 0x0026eb47 nsAppShell::ProcessNextNativeEvent(int) + 1079 35 com.apple.Foundation 0x9260b0c7 __NSFireDelayedPerform + 403 36 com.apple.CoreFoundation 0x90829bc9 CFRunLoopRunSpecific + 3341 37 com.apple.CoreFoundation 0x90828eb5 CFRunLoopRunInMode + 61 38 com.apple.HIToolbox 0x92dcdb90 RunCurrentEventLoopInMode + 285 39 com.apple.HIToolbox 0x92dcd297 ReceiveNextEventCommon + 385 40 com.apple.HIToolbox 0x92dcd0ee BlockUntilNextEventMatchingListInMode + 81 41 com.apple.AppKit 0x9326f465 _DPSNextEvent + 572 42 com.apple.AppKit 0x9326f056 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 137 43 org.mozilla.firefox 0x0026e7ab nsAppShell::ProcessNextNativeEvent(int) + 155 44 org.mozilla.firefox 0x005337f8 nsBaseAppShell::DoProcessNextNativeEvent(int) + 34 45 org.mozilla.firefox 0x005339f0 nsBaseAppShell::Init() + 234 46 org.mozilla.firefox 0x0026e982 nsAppShell::ProcessNextNativeEvent(int) + 626 47 libxpcom_core.dylib 0x00de6681 nsThread::nsChainedEventQueue::PutEvent(nsIRunnable*) + 927 48 libxpcom_core.dylib 0x00db207a NS_ProcessPendingEvents_P(nsIThread*, unsigned) + 70 49 org.mozilla.firefox 0x005337b3 nsBaseAppShell::NativeEventCallback() + 71 50 org.mozilla.firefox 0x0026e5ce nsAppShell::ProcessGeckoEvents() + 176 51 org.mozilla.firefox 0x0026eb23 nsAppShell::ProcessNextNativeEvent(int) + 1043 52 com.apple.Foundation 0x92646a4c __NSFireMachPort + 307 53 com.apple.CoreFoundation 0x90839773 __CFMachPortPerform + 136 54 com.apple.CoreFoundation 0x90829a14 CFRunLoopRunSpecific + 2904 55 com.apple.CoreFoundation 0x90828eb5 CFRunLoopRunInMode + 61 56 com.apple.HIToolbox 0x92dcdb90 RunCurrentEventLoopInMode + 285 57 com.apple.HIToolbox 0x92dcd1ce ReceiveNextEventCommon + 184 58 com.apple.HIToolbox 0x92dcd0ee BlockUntilNextEventMatchingListInMode + 81 59 com.apple.AppKit 0x9326f465 _DPSNextEvent + 572 60 com.apple.AppKit 0x9326f056 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 137 61 com.apple.AppKit 0x93268ddb -[NSApplication run] + 512 62 org.mozilla.firefox 0x0026e8ff nsAppShell::ProcessNextNativeEvent(int) + 495 63 org.mozilla.firefox 0x002dbb21 nsAppStartup::AttemptingQuit(int) + 245 64 org.mozilla.firefox 0x00006a9c XRE_main + 10478 65 org.mozilla.firefox 0x0000244c main + 32 66 org.mozilla.firefox 0x000023d2 start + 270 67 org.mozilla.firefox 0x000022ed start + 41
Apparently background isn't significant; same stack with Google loading in the foreground. /me looks for a new search engine
[@ nsJSContext::LoadEnd] is currently #5 topcrasher. TB stack traces aren't too useful in this case.
Flags: blocking1.9?
OS: Mac OS X → All
(In reply to comment #0) > Codes: KERN_PROTECTION_FAILURE (0x0002) at 0x00000000 > > Thread 0 Crashed: > 0 org.mozilla.firefox 0x00479f09 nsJSContext::LoadEnd() + 41 Hmm, must be sGCTimer that's null when sLoadInProgressGCTimer is true with no pending loads. Odd... > 26 libxpcom_core.dylib 0x00df2d71 nsCycleCollector_collect() + > 35 > 27 org.mozilla.firefox 0x0047a3f8 > nsJSContext::FireGCTimer(int) + 224 This however is even more odd. We're calling the cycle collector from nsJSContext::FireGCTimer(), but the only case when we do that is when we fail to create a timer! I can't imagine why that would fail, other than being out of memory which doesn't sound likely. I don't understand why we'd fail to create a timer, but I do see how that could cause crashes if the stack here reflects what's really going on here. I've got a patch that should fix that...
This makes sLoadInProgressGCTimer reflect reality even in error cases etc.
Attachment #252707 - Flags: superreview?(jonas)
Attachment #252707 - Flags: review?(jonas)
Comment on attachment 252707 [details] [diff] [review] Better book keeping of timer related state. Weird, but the patch is the right thing to do anyway. r/sr=sicking
Attachment #252707 - Flags: superreview?(jonas)
Attachment #252707 - Flags: superreview+
Attachment #252707 - Flags: review?(jonas)
Attachment #252707 - Flags: review+
Fix checked in, let's see if this crasher truly does go away.
No new crashes since 2007012504
Assignee: nobody → jst
Status: NEW → RESOLVED
Closed: 18 years ago
Flags: blocking1.9?
Resolution: --- → FIXED
Crash Signature: [@ nsJSContext::LoadEnd]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: