Closed Bug 1030577 Opened 5 years ago Closed 5 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

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
https://hg.mozilla.org/mozilla-central/rev/67373fe39c53
Status: ASSIGNED → RESOLVED
Closed: 5 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.