Closed
Bug 932736
Opened 11 years ago
Closed 11 years ago
GenerationalGC: Worker thread assertion failure: !cx->isHeapBusy() in browser tests
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
DUPLICATE
of bug 928050
People
(Reporter: jonco, Assigned: jonco)
References
Details
Attachments
(1 file)
(deleted),
patch
|
Details | Diff | Splinter Review |
There are occacsional assertion failures in browser builds like this:
12:55:51 INFO - Assertion failure: !cx->isHeapBusy(), at ../../../js/src/jsgc.cpp:1520
12:55:51 INFO - WARNING: shutting down early because of crash!: file ../../../../dom/plugins/ipc/PluginModuleChild.cpp, line 697
12:55:51 INFO - WARNING: plugin process _exit()ing: file ../../../../dom/plugins/ipc/PluginModuleChild.cpp, line 662
12:55:51 WARNING - TEST-UNEXPECTED-FAIL | chrome://mochitests/content/chrome/dom/plugins/test/mochitest/test_privatemode_perwindowpb.xul | application terminated with exit code 256
12:55:51 INFO - INFO | runtests.py | Application ran for: 0:05:44.184714
12:55:51 INFO - INFO | zombiecheck | Reading PID log: /var/folders/41/l9ff8g1n5_5bqz6g9l0vmccm00000w/T/tmp0Q8spepidlog
12:56:05 WARNING - PROCESS-CRASH | chrome://mochitests/content/chrome/dom/plugins/test/mochitest/test_privatemode_perwindowpb.xul | application crashed [@ void* js::gc::ArenaLists::refillFreeList<(js::AllowGC)1>(js::ThreadSafeContext*, js::gc::AllocKind)]
12:56:05 INFO - Crash dump filename: /var/folders/41/l9ff8g1n5_5bqz6g9l0vmccm00000w/T/tmpmoBSmA/minidumps/9F5F6C3F-AEDB-4EA7-BF86-D4A5EC00C70D.dmp
12:56:05 INFO - Operating system: Mac OS X
12:56:05 INFO - 10.8.0 12A269
12:56:05 INFO - CPU: amd64
12:56:05 INFO - family 6 model 42 stepping 7
12:56:05 INFO - 8 CPUs
12:56:05 INFO - Crash reason: EXC_BAD_ACCESS / KERN_INVALID_ADDRESS
12:56:05 INFO - Crash address: 0x0
12:56:05 INFO - Thread 16 (crashed)
12:56:05 INFO - 0 XUL!void* js::gc::ArenaLists::refillFreeList<(js::AllowGC)1>(js::ThreadSafeContext*, js::gc::AllocKind) [jsgcinlines.h:333718aa86a2 : 48 + 0x0]
12:56:05 INFO - rbx = 0x00007fff799a4c68 r12 = 0x000000015649d000
12:56:05 INFO - r13 = 0x0000000130a8d0f0 r14 = 0x00000000000000c0
12:56:05 INFO - r15 = 0x000000000000000c rip = 0x000000010370e6da
12:56:05 INFO - rsp = 0x000000010f701fa0 rbp = 0x000000010f702000
12:56:05 INFO - Found by: given as instruction pointer in context
12:56:05 INFO - 1 XUL!JSScript* js::gc::NewGCThing<JSScript, (js::AllowGC)1>(js::ThreadSafeContext*, js::gc::AllocKind, unsigned long, js::gc::InitialHeap) [jsgcinlines.h:333718aa86a2 : 441 + 0xa]
12:56:05 INFO - rbx = 0x000000016400be30 r12 = 0x000000015649d000
12:56:05 INFO - r13 = 0x0000000130a8d0f0 r14 = 0x000000016400bef8
12:56:05 INFO - r15 = 0x00000000000000c0 rip = 0x00000001037c2c10
12:56:05 INFO - rsp = 0x000000010f702010 rbp = 0x000000010f702050
12:56:05 INFO - Found by: call frame info
12:56:05 INFO - 2 XUL!JSScript::Create(js::ExclusiveContext*, JS::Handle<JSObject*>, bool, JS::CompileOptions const&, unsigned int, JS::Handle<js::ScriptSourceObject*>, unsigned int, unsigned int) [jsgcinlines.h:333718aa86a2 : 491 + 0x16]
12:56:05 INFO - rbx = 0x0000000130a8d108 r12 = 0x000000010f7023a0
12:56:05 INFO - r13 = 0x000000010f7023b0 r14 = 0x0000000130a8d0f0
12:56:05 INFO - r15 = 0x000000010f7023b0 rip = 0x00000001037b0168
12:56:05 INFO - rsp = 0x000000010f702060 rbp = 0x000000010f7020c0
12:56:05 INFO - Found by: call frame info
12:56:05 INFO - 3 XUL!EmitFunc [BytecodeEmitter.cpp:333718aa86a2 : 4839 + 0x26]
12:56:05 INFO - rbx = 0x0000000130a8d108 r12 = 0x0000000130a8d0f0
12:56:05 INFO - r13 = 0x000000010f702d98 r14 = 0x000000012a905f00
12:56:05 INFO - r15 = 0x000000010f7023b0 rip = 0x00000001036106b7
12:56:05 INFO - rsp = 0x000000010f7020d0 rbp = 0x000000010f702460
12:56:05 INFO - Found by: call frame info
...
12:56:05 INFO - Thread 0
12:56:05 INFO - 0 XUL!js::gc::Cell::arenaHeader() const [HeapAPI.h:333718aa86a2 : 128 + 0x7]
12:56:05 INFO - rbx = 0x000000011a03acb8 r12 = 0x0000000104010162
12:56:05 INFO - r13 = 0x000000010ae013c0 r14 = 0x00007fff5fbfd1c0
12:56:05 INFO - r15 = 0x0000000109829b58 rip = 0x00000001036f3576
12:56:05 INFO - rsp = 0x00007fff5fbfd010 rbp = 0x00007fff5fbfd020
12:56:05 INFO - Found by: given as instruction pointer in context
12:56:05 INFO - 1 XUL!js::gc::Cell::tenuredZone() const [Heap.h:333718aa86a2 : 1020 + 0x4]
12:56:05 INFO - rbx = 0x000000011a03acb8 r12 = 0x0000000104010162
12:56:05 INFO - r13 = 0x000000010ae013c0 r14 = 0x00007fff5fbfd1c0
12:56:05 INFO - r15 = 0x0000000109829b58 rip = 0x00000001036f281f
12:56:05 INFO - rsp = 0x00007fff5fbfd030 rbp = 0x00007fff5fbfd040
12:56:05 INFO - Found by: call frame info
12:56:05 INFO - 2 XUL!js::Nursery::moveToTenured(js::gc::MinorCollectionTracer*, JSObject*) [Barrier.h:333718aa86a2 : 153 + 0x4]
12:56:05 INFO - rbx = 0x0000000157ac2730 r12 = 0x0000000104010162
12:56:05 INFO - r13 = 0x000000010ae013c0 r14 = 0x00007fff5fbfd1c0
12:56:05 INFO - r15 = 0x0000000109829b58 rip = 0x000000010366b8d0
12:56:05 INFO - rsp = 0x00007fff5fbfd050 rbp = 0x00007fff5fbfd080
12:56:05 INFO - Found by: call frame info
12:56:05 INFO - 3 XUL!js::Nursery::MinorGCCallback(JSTracer*, void**, JSGCTraceKind) [Nursery.cpp:333718aa86a2 : 574 + 0xe]
12:56:05 INFO - rbx = 0x0000000157ac2730 r12 = 0x0000000104010162
12:56:05 INFO - r13 = 0x000000010ae013c0 r14 = 0x00007fff5fbfd1c0
12:56:05 INFO - r15 = 0x00007fff5fbfd1c8 rip = 0x000000010366c32c
12:56:05 INFO - rsp = 0x00007fff5fbfd090 rbp = 0x00007fff5fbfd0a0
12:56:05 INFO - Found by: call frame info
Assignee | ||
Comment 1•11 years ago
|
||
Off thread compilation is trying to allocate a JSScript while a minor GC is happening on the main thread.
There is currently no protection against this happening.
Assignee | ||
Comment 2•11 years ago
|
||
Here's a small patch to pause workers while we run minor GC.
If it becomes the case that workers don't allocate any more we can take this out again.
Assignee: nobody → jcoppeard
Attachment #825431 -
Flags: review?(terrence)
Comment 3•11 years ago
|
||
Comment on attachment 825431 [details] [diff] [review]
bug932736-pause-workers
Review of attachment 825431 [details] [diff] [review]:
-----------------------------------------------------------------
It makes sense to me, but Brian is really the person to ask.
Attachment #825431 -
Flags: review?(terrence) → review?(bhackett1024)
This problem should be fixed by bug 928050.
Comment 5•11 years ago
|
||
Comment on attachment 825431 [details] [diff] [review]
bug932736-pause-workers
Yeah, can this wait for bug 928050?
Attachment #825431 -
Flags: review?(bhackett1024)
Assignee | ||
Comment 6•11 years ago
|
||
(In reply to Brian Hackett (:bhackett) from comment #5)
Sure.
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → DUPLICATE
Comment 7•11 years ago
|
||
I just noticed that this pauses workers for minor GC. That happened accidentally when the off-main-thread ion builder went in and it killed ggc performance so hard that it brought down AWFY for four days. I expect that the timeouts on [1] are probably due to this patch.
1 - https://tbpl.mozilla.org/?showall=1&tree=Try&rev=64651a1a79ca
Assignee | ||
Comment 8•11 years ago
|
||
(In reply to Terrence Cole [:terrence] from comment #7)
Ah, thanks for that. I'm going to keep testing with this patch because it fixes the assertions, but I'll ignore the timeouts.
You need to log in
before you can comment on or make changes to this bug.
Description
•