Closed Bug 1030577 Opened 11 years ago Closed 11 years ago

Intermittent TEST-UNEXPECTED-FAIL | browser_audionode-actor-get-params-01.js | application terminated with exit code 2147483651 | application crashed [@ js::gc::AutoTraceSession::AutoTraceSession(JSRuntime *,js::HeapState)]

Categories

(Core :: JavaScript: GC, defect)

x86_64
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla33
Tracking Status
firefox31 --- unaffected
firefox32 --- fixed
firefox33 --- fixed
firefox-esr24 --- unaffected

People

(Reporter: nigelb, Assigned: terrence)

References

()

Details

(Keywords: intermittent-failure)

Attachments

(1 file)

WINNT 6.2 mozilla-central debug test mochitest-devtools-chrome-3 on 2014-06-25 19:33:45 PDT for push 464bca437658 slave: t-w864-ix-043 https://tbpl.mozilla.org/php/getParsedLog.php?id=42494778&tree=Mozilla-Central 19:50:38 INFO - Assertion failure: rt->gc.nursery.isEmpty(), at c:\builds\moz2_slave\m-cen-w32-d-000000000000000000\build\js\src\jsgc.cpp:4475 19:50:45 INFO - TEST-INFO | Main app process: exit status 80000003 19:50:45 WARNING - TEST-UNEXPECTED-FAIL | chrome://mochitests/content/browser/browser/devtools/webaudioeditor/test/browser_audionode-actor-get-params-01.js | application terminated with exit code 2147483651 19:50:45 INFO - INFO | runtests.py | Application ran for: 0:13:17.022000 19:50:45 INFO - INFO | zombiecheck | Reading PID log: c:\users\cltbld~1.t-w\appdata\local\temp\tmpqmtfxdpidlog 19:50:52 WARNING - PROCESS-CRASH | chrome://mochitests/content/browser/browser/devtools/webaudioeditor/test/browser_audionode-actor-get-params-01.js | application crashed [@ js::gc::AutoTraceSession::AutoTraceSession(JSRuntime *,js::HeapState)] 19:50:52 INFO - Crash dump filename: c:\users\cltbld~1.t-w\appdata\local\temp\tmpe8rwme.mozrunner\minidumps\040ba5d3-e32f-4e45-b11d-bb77a11ac9de.dmp 19:50:52 INFO - Operating system: Windows NT 19:50:52 INFO - 6.2.9200 19:50:52 INFO - CPU: x86 19:50:52 INFO - GenuineIntel family 6 model 30 stepping 5 19:50:52 INFO - 8 CPUs 19:50:52 INFO - Crash reason: EXCEPTION_BREAKPOINT 19:50:52 INFO - Crash address: 0x70f90eda 19:50:52 INFO - Thread 0 (crashed) 19:50:52 INFO - 0 mozjs.dll!js::gc::AutoTraceSession::AutoTraceSession(JSRuntime *,js::HeapState) [jsgc.cpp:464bca437658 : 4471 + 0x3e] 19:50:52 INFO - eip = 0x70f90eda esp = 0x00d2f040 ebp = 0x00d2f054 ebx = 0x00d2f070 19:50:52 INFO - esi = 0x6f721ec6 edi = 0x00000002 eax = 0x00000000 ecx = 0x6f72ff12 19:50:52 INFO - edx = 0x00d2d444 efl = 0x00200212 19:50:52 INFO - Found by: given as instruction pointer in context 19:50:52 INFO - 1 mozjs.dll!js::gc::GCRuntime::gcCycle(bool,__int64,js::JSGCInvocationKind,JS::gcreason::Reason) [jsgc.cpp:464bca437658 : 4888 + 0xc] 19:50:52 INFO - eip = 0x70ffc328 esp = 0x00d2f05c ebp = 0x00d2f098 19:50:52 INFO - Found by: call frame info 19:50:52 INFO - 2 mozjs.dll!js::gc::GCRuntime::collect(bool,__int64,js::JSGCInvocationKind,JS::gcreason::Reason) [jsgc.cpp:464bca437658 : 5084 + 0x1e] 19:50:52 INFO - eip = 0x70ffc895 esp = 0x00d2f0a0 ebp = 0x00d2f144 19:50:52 INFO - Found by: call frame info 19:50:52 INFO - 3 mozjs.dll!js::gc::GCRuntime::gcSlice(js::JSGCInvocationKind,JS::gcreason::Reason,__int64) [jsgc.cpp:464bca437658 : 5135 + 0x12] 19:50:52 INFO - eip = 0x70ffca77 esp = 0x00d2f14c ebp = 0x00d2f164 19:50:52 INFO - Found by: call frame info 19:50:52 INFO - 4 mozjs.dll!JS::IncrementalGC(JSRuntime *,JS::gcreason::Reason,__int64) [jsfriendapi.cpp:464bca437658 : 202 + 0x1b] 19:50:52 INFO - eip = 0x70fff44f esp = 0x00d2f16c ebp = 0x00d2f17c 19:50:52 INFO - Found by: call frame info 19:50:52 INFO - 5 xul.dll!nsJSContext::GarbageCollectNow(JS::gcreason::Reason,nsJSContext::IsIncremental,nsJSContext::IsShrinking,__int64) [nsJSEnvironment.cpp:464bca437658 : 1705 + 0x14] 19:50:52 INFO - eip = 0x7216a323 esp = 0x00d2f184 ebp = 0x00d2f1a4 19:50:52 INFO - Found by: call frame info 19:50:52 INFO - 6 xul.dll!GCTimerFired(nsITimer *,void *) [nsJSEnvironment.cpp:464bca437658 : 2202 + 0xe] 19:50:52 INFO - eip = 0x7216a93a esp = 0x00d2f1ac ebp = 0x00d2f1c0 19:50:52 INFO - Found by: call frame info 19:50:52 INFO - 7 xul.dll!nsTimerImpl::Fire() [nsTimerImpl.cpp:464bca437658 : 618 + 0x5] 19:50:52 INFO - eip = 0x7135ac3e esp = 0x00d2f1c8 ebp = 0x00d2f27c 19:50:52 INFO - Found by: call frame info 19:50:52 INFO - 8 xul.dll!nsTimerEvent::Run() [nsTimerImpl.cpp:464bca437658 : 711 + 0xe] 19:50:52 INFO - eip = 0x7135ada7 esp = 0x00d2f284 ebp = 0x00d2f2ac 19:50:52 INFO - Found by: call frame info 19:50:52 INFO - 9 xul.dll!nsThread::ProcessNextEvent(bool,bool *) [nsThread.cpp:464bca437658 : 766 + 0xd]
Do you think these failures could be caused from the GC additions in web audio? Or any insight what this could be?
Flags: needinfo?(ehsan)
This is a GC related assertion, I don't know what might have caused it, but Terrence or Steve might have an idea.
Component: Developer Tools: Web Audio Editor → JavaScript: GC
Flags: needinfo?(terrence)
Flags: needinfo?(sphink)
Flags: needinfo?(ehsan)
Product: Firefox → Core
This can happen if the GC_BEGIN callback executes any JS code. I think that the intent is for this to be allowed, so it would be a bug with GGC. I'll prep a patch to fix this.
Assignee: nobody → terrence
Status: NEW → ASSIGNED
Flags: needinfo?(terrence)
Flags: needinfo?(sphink)
Terrence, thanks for checking this out! Do you thing bug 1036890 would also be caused by this?
This moves the MinorGC and AutoDisableStoreBuffer down into gcCycle, after the begin callback. I thought initially that the stats would want to continue starting after MinorGC, so squashed the 3 counters into a struct so we could pass them easily to gcCycle. On second thought, however, it occurred to me that the MinorGC would generally be too short to register significantly on that timer, so moved the AutoGCSlice up for simplicity. I kept the ZoneGCStats struct despite this because I think it reads a bit cleaner. Thoughts?
Attachment #8455460 - Flags: review?(jcoppeard)
Comment on attachment 8455460 [details] [diff] [review] do_minorgc_after_begin_callback-v0.diff Review of attachment 8455460 [details] [diff] [review]: ----------------------------------------------------------------- Yes, ZoneStats does make things a bit simpler. I'm surprised that the callbacks are allowed to execute JS code, but if that's what's intended then so be it.
Attachment #8455460 - Flags: review?(jcoppeard) → review+
https://hg.mozilla.org/integration/mozilla-inbound/rev/67373fe39c53 (In reply to Jon Coppeard (:jonco) from comment #21) > Comment on attachment 8455460 [details] [diff] [review] > do_minorgc_after_begin_callback-v0.diff > > Review of attachment 8455460 [details] [diff] [review]: > ----------------------------------------------------------------- > > Yes, ZoneStats does make things a bit simpler. > > I'm surprised that the callbacks are allowed to execute JS code, but if > that's what's intended then so be it. Or run CC or whatever, apparently.
Blocks: 1036890
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla33
Please request Aurora approval for this when you get a chance.
Flags: needinfo?(terrence)
Comment on attachment 8455460 [details] [diff] [review] do_minorgc_after_begin_callback-v0.diff Approval Request Comment [Feature/regressing bug #]: GGC. [User impact if declined]: Rare, intermittent crashes. [Describe test coverage new/current, TBPL]: 1 day on tbpl. [Risks and why]: Low to none. [String/UUID change made/needed]: None.
Attachment #8455460 - Flags: approval-mozilla-aurora?
Flags: needinfo?(terrence)
Attachment #8455460 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: