Closed
Bug 1240231
Opened 8 years ago
Closed 8 years ago
Intermittent browser_wa_properties-view-params.js | application crashed [@ js::gc::ZoneCellIterUnderGC::ZoneCellIterUnderGC(JS::Zone*, js::gc::AllocKind)]
Categories
(Core :: JavaScript: GC, defect)
Core
JavaScript: GC
Tracking
()
RESOLVED
DUPLICATE
of bug 1237795
People
(Reporter: KWierso, Unassigned)
References
Details
(Keywords: assertion, crash, intermittent-failure)
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment 5•8 years ago
|
||
GC crash it appears. Terrence, any thoughts? :) Assertion failure: zone->runtimeFromAnyThread()->gc.nursery.isEmpty(), at /builds/slave/try-m64-d-00000000000000000000/build/src/js/src/jsgcinlines.h:247 10:09:46 WARNING - PROCESS-CRASH | devtools/client/webaudioeditor/test/browser_wa_properties-view-params.js | application crashed [@ js::gc::ZoneCellIterUnderGC::ZoneCellIterUnderGC(JS::Zone*, js::gc::AllocKind)] 10:09:46 INFO - Crash dump filename: /var/folders/5D/5DY0jF3XFEWKauREF9-mc++++-k/-Tmp-/tmpwHftMz.mozrunner/minidumps/B03B8423-5583-40E3-997E-AF7B3B7D6208.dmp 10:09:46 INFO - Operating system: Mac OS X 10:09:46 INFO - 10.6.8 10K549 10:09:46 INFO - CPU: amd64 10:09:46 INFO - family 6 model 23 stepping 10 10:09:46 INFO - 2 CPUs 10:09:46 INFO - Crash reason: EXC_BAD_ACCESS / KERN_INVALID_ADDRESS 10:09:46 INFO - Crash address: 0x0 10:09:46 INFO - Process uptime: 119 seconds 10:09:46 INFO - Thread 0 (crashed) 10:09:46 INFO - 0 XUL!js::gc::ZoneCellIterUnderGC::ZoneCellIterUnderGC(JS::Zone*, js::gc::AllocKind) [jsgcinlines.h:bc058a50af58 : 247 + 0x0] 10:09:46 INFO - rax = 0x0000000000000000 rdx = 0x0000000000000000 10:09:46 INFO - rcx = 0x0000000000000001 rbx = 0x00007fff7012b2f8 10:09:46 INFO - rsi = 0x0000000000000000 rdi = 0x00007fff7012ea60 10:09:46 INFO - rbp = 0x00007fff5fbf90e0 rsp = 0x00007fff5fbf90c0 10:09:46 INFO - r8 = 0x00007fff7012ea60 r9 = 0x0000000000000000 10:09:46 INFO - r10 = 0x0000000000000400 r11 = 0x0000000000000246 10:09:46 INFO - r12 = 0x000000011da08000 r13 = 0x0000000135be2000 10:09:46 INFO - r14 = 0x000000000000000e r15 = 0x000000012526d000 10:09:46 INFO - rip = 0x0000000106139a11 10:09:46 INFO - Found by: given as instruction pointer in context 10:09:46 INFO - 1 XUL!js::IterateScripts(JSRuntime*, JSCompartment*, void*, void (*)(JSRuntime*, void*, JSScript*)) [jsgcinlines.h:bc058a50af58 : 246 + 0xa] 10:09:46 INFO - rbx = 0x000000011da08750 rbp = 0x00007fff5fbf91d0 10:09:46 INFO - rsp = 0x00007fff5fbf90f0 r12 = 0x000000011da08000 10:09:46 INFO - r13 = 0x0000000135be2000 r14 = 0x0000000106251ff0 10:09:46 INFO - r15 = 0x00007fff5fbf92a0 rip = 0x000000010647ef0f 10:09:46 INFO - Found by: call frame info 10:09:46 INFO - 2 XUL!js::Debugger::ScriptQuery::findScripts() [Debugger.cpp:bc058a50af58 : 3800 + 0xf] 10:09:46 INFO - rbx = 0x00007fff5fbf9288 rbp = 0x00007fff5fbf9260 10:09:46 INFO - rsp = 0x00007fff5fbf91e0 r12 = 0x000000010b270000 10:09:46 INFO - r13 = 0x00007fff5fbf92a0 r14 = 0x00007fff5fbf95c8 10:09:46 INFO - r15 = 0x0000000121323800 rip = 0x0000000106243b7a 10:09:46 INFO - Found by: call frame info 10:09:46 INFO - 3 XUL!js::Debugger::findScripts(JSContext*, unsigned int, JS::Value*) [Debugger.cpp:bc058a50af58 : 4056 + 0x5] 10:09:46 INFO - rbx = 0x00007fff5fbf9288 rbp = 0x00007fff5fbf9460 10:09:46 INFO - rsp = 0x00007fff5fbf9270 r12 = 0x000000010b270000 10:09:46 INFO - r13 = 0x00007fff5fbf95d8 r14 = 0x00007fff5fbf95c8 10:09:46 INFO - r15 = 0x0000000121323800 rip = 0x000000010621a172 10:09:46 INFO - Found by: call frame info 10:09:46 INFO - 4 XUL!js::CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) [jscntxtinlines.h:bc058a50af58 : 235 + 0x5] 10:09:46 INFO - rbx = 0x0000000106219f90 rbp = 0x00007fff5fbf94b0 10:09:46 INFO - rsp = 0x00007fff5fbf9470 r12 = 0x00007fff5fbf9570 10:09:46 INFO - r13 = 0x00007fff5fbf9480 r14 = 0x000000010b270000 10:09:46 INFO - r15 = 0x00000000ffffffff rip = 0x0000000106298695 10:09:46 INFO - Found by: call frame info 10:09:46 INFO - 5 XUL!js::Invoke(JSContext*, JS::CallArgs const&, js::MaybeConstruct) [Interpreter.cpp:bc058a50af58 : 463 + 0xe] 10:09:46 INFO - rbx = 0x00007fff5fbf9570 rbp = 0x00007fff5fbf9540 10:09:46 INFO - rsp = 0x00007fff5fbf94c0 r12 = 0x0000000000000000 10:09:46 INFO - r13 = 0x0000000000000002 r14 = 0x000000011da08000 10:09:46 INFO - r15 = 0x000000010b270000 rip = 0x0000000106265ace 10:09:46 INFO - Found by: call frame info 10:09:46 INFO - 6 XUL!js::Invoke(JSContext*, JS::Value const&, JS::Value const&, unsigned int, JS::Value const*, JS::MutableHandle<JS::Value>) [Interpreter.cpp:bc058a50af58 : 527 + 0xc] 10:09:46 INFO - rbx = 0x0000000000000000 rbp = 0x00007fff5fbf9640 10:09:46 INFO - rsp = 0x00007fff5fbf9550 r12 = 0x00007fff5fbf9570 10:09:46 INFO - r13 = 0x00007fff5fbf9660 r14 = 0x0000000000000001 10:09:46 INFO - r15 = 0x000000011faf52e8 rip = 0x000000010628bdb0 10:09:46 INFO - Found by: call frame info 10:09:46 INFO - 7 XUL!js::DirectProxyHandler::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const [DirectProxyHandler.cpp:bc058a50af58 : 77 + 0x8] 10:09:46 INFO - rbx = 0x000000010b270000 rbp = 0x00007fff5fbf9680 10:09:46 INFO - rsp = 0x00007fff5fbf9650 r12 = 0x0000000000000001 10:09:46 INFO - r13 = 0x00000001078dd090 r14 = 0x00007fff5fbf97f8 10:09:46 INFO - r15 = 0x00007fff5fbf9650 rip = 0x00000001061daaa2 10:09:46 INFO - Found by: call frame info 10:09:46 INFO - 8 XUL!js::CrossCompartmentWrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const [CrossCompartmentWrapper.cpp:bc058a50af58 : 289 + 0x13] 10:09:46 INFO - rbx = 0x000000010b270000 rbp = 0x00007fff5fbf9700 10:09:46 INFO - rsp = 0x00007fff5fbf9690 r12 = 0x0000000000000001 10:09:46 INFO - r13 = 0x00000001078dd090 r14 = 0x00007fff5fbf97f8 10:09:46 INFO - r15 = 0x00007fff5fbf97f0 rip = 0x00000001061bef6f 10:09:46 INFO - Found by: call frame info 10:09:46 INFO - 9 XUL!xpc::AddonWrapper<js::CrossCompartmentWrapper>::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const [AddonWrapper.cpp:bc058a50af58 : 141 + 0x11] 10:09:46 INFO - rbx = 0x000000010b270000 rbp = 0x00007fff5fbf9740 10:09:46 INFO - rsp = 0x00007fff5fbf9710 r12 = 0x000000010833a060 10:09:46 INFO - r13 = 0x00000001088c3120 r14 = 0x00007fff5fbf97f8 10:09:46 INFO - r15 = 0x00007fff5fbf97f0 rip = 0x00000001025a1a6e 10:09:46 INFO - Found by: call frame info 10:09:46 INFO - 10 XUL!js::Proxy::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) [Proxy.cpp:bc058a50af58 : 391 + 0x14] 10:09:46 INFO - rbx = 0x000000010b270000 rbp = 0x00007fff5fbf97d0 10:09:46 INFO - rsp = 0x00007fff5fbf9750 r12 = 0x000000010833a060 10:09:46 INFO - r13 = 0x00000001088c3120 r14 = 0x000000010881ca30 10:09:46 INFO - r15 = 0x00007fff5fbf97f0 rip = 0x00000001061df66b 10:09:46 INFO - Found by: call frame info 10:09:46 INFO - 11 XUL!js::proxy_Call(JSContext*, unsigned int, JS::Value*) [Proxy.cpp:bc058a50af58 : 683 + 0x8] 10:09:46 INFO - rbx = 0x000000010b270000 rbp = 0x00007fff5fbf9820 10:09:46 INFO - rsp = 0x00007fff5fbf97e0 r12 = 0x00007fff5fbf9a58 10:09:46 INFO - r13 = 0x00007fff5fbf9840 r14 = 0x00007fff5fbf97e0 10:09:46 INFO - r15 = 0x00000000ffffffff rip = 0x00000001061e0f6e 10:09:46 INFO - Found by: call frame info 10:09:46 INFO - 12 XUL!js::CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) [jscntxtinlines.h:bc058a50af58 : 235 + 0x5] 10:09:46 INFO - rbx = 0x00000001061e0ee0 rbp = 0x00007fff5fbf9870 10:09:46 INFO - rsp = 0x00007fff5fbf9830 r12 = 0x00007fff5fbf9a58 10:09:46 INFO - r13 = 0x00007fff5fbf9840 r14 = 0x000000010b270000 10:09:46 INFO - r15 = 0x00000000ffffffff rip = 0x0000000106298695 10:09:46 INFO - Found by: call frame info 10:09:46 INFO - 13 XUL!js::Invoke(JSContext*, JS::CallArgs const&, js::MaybeConstruct) [Interpreter.cpp:bc058a50af58 : 463 + 0xe] 10:09:46 INFO - rbx = 0x00007fff5fbf9a58 rbp = 0x00007fff5fbf9900 10:09:46 INFO - rsp = 0x00007fff5fbf9880 r12 = 0x0000000000000000 10:09:46 INFO - r13 = 0x0000000000000002 r14 = 0x000000011da08000 10:09:46 INFO - r15 = 0x000000010b270000 rip = 0x0000000106265ace 10:09:46 INFO - Found by: call frame info 10:09:46 INFO - 14 XUL!Interpret [Interpreter.cpp:bc058a50af58 : 2798 + 0xa] 10:09:46 INFO - rbx = 0x000000011faf52e0 rbp = 0x00007fff5fbf9de0 10:09:46 INFO - rsp = 0x00007fff5fbf9910 r12 = 0x00007fff5fbf9ca0 10:09:46 INFO - r13 = 0x000000010b270000 r14 = 0x000000010b270000 10:09:46 INFO - r15 = 0xfffc000000000000 rip = 0x00000001062823d0 10:09:46 INFO - Found by: call frame info 10:09:46 INFO - 15 XUL!js::RunScript(JSContext*, js::RunState&) [Interpreter.cpp:bc058a50af58 : 425 + 0xb] 10:09:46 INFO - rbx = 0x0000000124a90f30 rbp = 0x00007fff5fbf9e30 10:09:46 INFO - rsp = 0x00007fff5fbf9df0 r12 = 0x0000000000000000 10:09:46 INFO - r13 = 0x0000000000000002 r14 = 0x00007fff5fbf9e60 10:09:46 INFO - r15 = 0x000000010b270000 rip = 0x0000000106276492 10:09:46 INFO - Found by: call frame info
Comment 6•8 years ago
|
||
NPE with no poison values in the regs indicates an actual nullptr in either the zone or zone->runtime_. Jim landed a patch to Debugger::findScripts very recently in bug 1239813, I think to try to fix this, or something like it. Forwarding the NI? to Jim and Steve.
Flags: needinfo?(terrence)
Flags: needinfo?(sphink)
Flags: needinfo?(jimb)
Comment 7•8 years ago
|
||
Hm. The recent change was bug 1239813, which added an AutoEnterIteration guard to prevent findScripts from holding a ScriptQuery object live across a GC that might collect one of the compartments it was storing. I would guess that something is not happy in the situation where you have a compartment that is now empty and would have been GC'd had it not been suppressed. Though I don't see it. The most dangerous path seems to be if our ScriptQuery has a single compartment, in which case IterateScripts will grab that compartment's zone (which would presumably be the nullptr that we're crashing on here.) zone_ is just a field on the compartment, so I don't see how that could break?
Flags: needinfo?(sphink)
Comment 8•8 years ago
|
||
I landed bug 1239813 seven days ago, but this crash has been occurring for around five weeks. Jandem drafted some assertions in bug 1239813 that should give some insight into these. I've pinged him to get them landed.
Flags: needinfo?(jimb)
Comment 9•8 years ago
|
||
This crash is pretty easy to hit on OSX w/ e10s enabled, FWIW.
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Updated•8 years ago
|
You need to log in
before you can comment on or make changes to this bug.
Description
•