Closed
Bug 789921
Opened 12 years ago
Closed 12 years ago
Hangs from GC
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
DUPLICATE
of bug 810127
People
(Reporter: vladan, Unassigned)
Details
(Whiteboard: [js:p1])
There were 853 main-thread hangs reported to Telemetry from Windows Nightly builds over the last month with the following stack..
JSScript::markChildren(JSTracer *) (in mozjs.dll)
-> js::gc::MarkUnbarriered<JSScript> (in mozjs.dll)
-> fun_trace (in mozjs.dll)
-> js::GCMarker::processMarkStackTop(js::SliceBudget &) (in mozjs.dll)
-> js::GCMarker::drainMarkStack(js::SliceBudget &) (in mozjs.dll)
-> GCCycle (in mozjs.dll)
-> Collect (in mozjs.dll)
-> js::GCFinalSlice(JSRuntime *,js::JSGCInvocationKind,js::gcreason::Reason) (in mozjs.dll)
-> CCTimerFired (in xul.dll)
-> nsThread::ProcessNextEvent(bool,bool *) (in xul.dll)
Could you explain more about this? What counts as a hang? And do all 853 stacks look exactly like this, or is it just that the stacks all end in JSScript::markChildren(JSTracer *) (as you might see in crashstats)?
Reporter | ||
Comment 2•12 years ago
|
||
We consider that a hang has occurred if the main thread takes longer than 5 seconds to process an event. When a hang is detected, the hang's duration and the main thread's call stack are reported to Telemetry. Note that we only report "transient hangs" to Telemetry, permanent hangs are not reported with this mechanism. Also, only the Windows Nightly builds report these hangs. You can get a bit more info in this blog post: https://blog.mozilla.org/vdjeric/2012/03/21/introducing-chrome-hang-reporting-and-the-symbolication-server/
The stack in Comment #1 came from a compilation of hang reports from August and September. In that time period we had 132,764 hang stacks, with 16,759 unique stacks. Hang stacks containing the same 10 frames as the stack in Comment #1 were reported 853 times.
You can see the full list of hangs with 100 reports or more here: https://etherpad.mozilla.org/chromehangs
Reporter | ||
Comment 3•12 years ago
|
||
Let me know if you need any more info for this
Updated•12 years ago
|
Whiteboard: [js:p1]
Comment 4•12 years ago
|
||
I think this is a dupe of bug 810022 since CCTimerFired is in the stack. Dedupe if you disable.
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → DUPLICATE
Comment 5•12 years ago
|
||
Bug 810127 is the chrome hang one, not bug 810022.
Comment 6•12 years ago
|
||
You can see js::GCFinalSlice on the stack (finish off the current incremental GC), rather than GCForReason (do a full GC right now).
You need to log in
before you can comment on or make changes to this bug.
Description
•