Closed Bug 789921 Opened 12 years ago Closed 12 years ago

Hangs from GC

Categories

(Core :: JavaScript Engine, defect)

16 Branch
defect
Not set
normal

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)?
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
Let me know if you need any more info for this
Whiteboard: [js:p1]
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
Bug 810127 is the chrome hang one, not bug 810022.
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.