Closed
Bug 927939
Opened 12 years ago
Closed 12 years ago
GenerationalGC: Mochitest test_bug773962.xul crashes with assertion failure on IsBackgroundFinalized()
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
FIXED
mozilla28
People
(Reporter: jonco, Assigned: jonco)
References
Details
Attachments
(2 files)
|
1.12 KB,
patch
|
jonco
:
review+
terrence
:
checkin+
|
Details | Diff | Splinter Review |
|
1.29 KB,
patch
|
terrence
:
review+
|
Details | Diff | Splinter Review |
From: https://tbpl.mozilla.org/php/getParsedLog.php?id=29201618&full=1&branch=try#error0
11:08:21 INFO - 12717 INFO TEST-START | chrome://mochitests/content/chrome/js/xpconnect/tests/chrome
...
11:08:22 INFO - [Parent 2315] WARNING: Refusing to create a location in the wrong scope because the docshell is being destroyed: file ../../../dom/base/nsDOMClassInfo.cpp, line 3804
11:08:22 INFO - [Parent 2315] WARNING: NS_ENSURE_SUCCESS(rv, DoubleWrap(cx, obj, flags)) failed with result 0x8000FFFF: file ../../../../js/xpconnect/wrappers/WrapperFactory.cpp, line 225
11:08:22 INFO - [Parent 2315] WARNING: Refusing to create a location in the wrong scope because the docshell is being destroyed: file ../../../dom/base/nsDOMClassInfo.cpp, line 3804
11:08:22 INFO - [Parent 2315] WARNING: NS_ENSURE_SUCCESS(rv, DoubleWrap(cx, obj, flags)) failed with result 0x8000FFFF: file ../../../../js/xpconnect/wrappers/WrapperFactory.cpp, line 225
11:08:22 INFO - [Parent 2315] WARNING: Refusing to create a location in the wrong scope because the docshell is being destroyed: file ../../../dom/base/nsDOMClassInfo.cpp, line 3804
11:08:22 INFO - [Parent 2315] WARNING: NS_ENSURE_SUCCESS(rv, DoubleWrap(cx, obj, flags)) failed with result 0x8000FFFF: file ../../../../js/xpconnect/wrappers/WrapperFactory.cpp, line 225
11:08:22 INFO - [Parent 2315] WARNING: Refusing to create a location in the wrong scope because the docshell is being destroyed: file ../../../dom/base/nsDOMClassInfo.cpp, line 3804
11:08:22 INFO - [Parent 2315] WARNING: NS_ENSURE_SUCCESS(rv, DoubleWrap(cx, obj, flags)) failed with result 0x8000FFFF: file ../../../../js/xpconnect/wrappers/WrapperFactory.cpp, line 225
11:08:22 INFO - Assertion failure: IsBackgroundFinalized(a->tenuredGetAllocKind()) == IsBackgroundFinalized(b->tenuredGetAllocKind()), at ../../../js/src/jsobj.cpp:2157
11:08:23 INFO - WARNING: shutting down early because of crash!: file ../../../../dom/plugins/ipc/PluginModuleChild.cpp, line 697
11:08:23 INFO - WARNING: plugin process _exit()ing: file ../../../../dom/plugins/ipc/PluginModuleChild.cpp, line 662
11:08:23 INFO - INFO | runtests.py | exit 2816
11:08:23 INFO - INFO | runtests.py | Application ran for: 0:13:03.003471
11:08:23 INFO - INFO | zombiecheck | Reading PID log: /tmp/tmpKm1NaNpidlog
11:08:23 INFO - ==> process 2315 launched child process 2369
11:08:23 INFO - ==> process 2315 launched child process 2399
11:08:23 INFO - ==> process 2315 launched child process 2408
11:08:23 INFO - ==> process 2315 launched child process 2413
11:08:23 INFO - ==> process 2315 launched child process 2417
11:08:23 INFO - ==> process 2315 launched child process 2421
11:08:23 INFO - ==> process 2315 launched child process 2427
11:08:23 INFO - INFO | zombiecheck | Checking for orphan process with PID: 2369
11:08:23 INFO - INFO | zombiecheck | Checking for orphan process with PID: 2399
11:08:23 INFO - INFO | zombiecheck | Checking for orphan process with PID: 2408
11:08:23 INFO - INFO | zombiecheck | Checking for orphan process with PID: 2413
11:08:23 INFO - INFO | zombiecheck | Checking for orphan process with PID: 2417
11:08:23 INFO - INFO | zombiecheck | Checking for orphan process with PID: 2421
11:08:23 INFO - INFO | zombiecheck | Checking for orphan process with PID: 2427
11:08:33 WARNING - PROCESS-CRASH | chrome://mochitests/content/chrome/js/xpconnect/tests/chrome/test_bug773962.xul | application crashed [@ js::detail::HashTable<js::HashMapEntry<JSObject*, unsigned long long>, js::HashMap<JSObject*, unsigned long long, js::PointerHasher<JSObject*, 3u>, js::SystemAllocPolicy>::MapHashPolicy, js::SystemAllocPolicy>::lookup(JSObject* const&, unsigned int, unsigned int) const]
11:08:33 INFO - Crash dump filename: /tmp/tmp0roQgi/minidumps/2dc2a386-5239-9d6b-7d9ab1bb-673c9cb2.dmp
11:08:33 INFO - Operating system: Linux
11:08:33 INFO - 0.0.0 Linux 3.2.0-23-generic-pae #36-Ubuntu SMP Tue Apr 10 22:19:09 UTC 2012 i686
11:08:33 INFO - CPU: x86
11:08:33 INFO - GenuineIntel family 6 model 45 stepping 7
11:08:33 INFO - 1 CPU
11:08:33 INFO - Crash reason: SIGSEGV
11:08:33 INFO - Crash address: 0x0
11:08:33 INFO - Thread 0 (crashed)
11:08:33 INFO - 0 libxul.so!js::detail::HashTable<js::HashMapEntry<JSObject*, unsigned long long>, js::HashMap<JSObject*, unsigned long long, js::PointerHasher<JSObject*, 3u>, js::SystemAllocPolicy>::MapHashPolicy, js::SystemAllocPolicy>::lookup(JSObject* const&, unsigned int, unsigned int) const [HashTable.h:c7bfbb5bf23d : 1079 + 0x19]
11:08:33 INFO - eip = 0xb44b9598 esp = 0xbf8b3a50 ebp = 0xbf8b3a88 ebx = 0xb716d8a8
11:08:33 INFO - esi = 0x09b1c8d0 edi = 0xbf8b3aec eax = 0x00000000 ecx = 0xb2f498ac
11:08:33 INFO - edx = 0x00000000 efl = 0x00210282
11:08:33 INFO - Found by: given as instruction pointer in context
11:08:33 INFO - 1 libxul.so!js::detail::HashTable<js::HashMapEntry<JSObject*, unsigned long long>, js::HashMap<JSObject*, unsigned long long, js::PointerHasher<JSObject*, 3u>, js::SystemAllocPolicy>::MapHashPolicy, js::SystemAllocPolicy>::lookup(JSObject* const&) const [HashTable.h:c7bfbb5bf23d : 1395 + 0x9]
11:08:33 INFO - eip = 0xb44b972c esp = 0xbf8b3a90 ebp = 0xbf8b3ab8 ebx = 0xb716d8a8
11:08:33 INFO - esi = 0xbf8b3aa8 edi = 0xbf8b3aec
11:08:33 INFO - Found by: call frame info
11:08:33 INFO - 2 libxul.so!mozilla::jsipc::ObjectIdCache::keyMarkCallback(JSTracer*, void*, void*) [HashTable.h:c7bfbb5bf23d : 92 + 0xe]
11:08:33 INFO - eip = 0xb44ba8bd esp = 0xbf8b3ac0 ebp = 0xbf8b3b08 ebx = 0xb716d8a8
11:08:33 INFO - esi = 0x09b1c8d0 edi = 0xbf8b3ae8
11:08:33 INFO - Found by: call frame info
11:08:33 INFO - 3 libxul.so!js::gc::StoreBuffer::CallbackRef::mark(JSTracer*) [StoreBuffer.h:c7bfbb5bf23d : 340 + 0x16]
11:08:33 INFO - eip = 0xb51e6270 esp = 0xbf8b3b10 ebp = 0xbf8b3b28 ebx = 0xb716d8a8
11:08:33 INFO - esi = 0x09aeeb50 edi = 0x09aee478
11:08:33 INFO - Found by: call frame info
11:08:33 INFO - 4 libxul.so!js::gc::StoreBuffer::GenericBuffer::mark(JSTracer*) [StoreBuffer.cpp:c7bfbb5bf23d : 184 + 0x10]
11:08:33 INFO - eip = 0xb50f4708 esp = 0xbf8b3b30 ebp = 0xbf8b3b68 ebx = 0xb716d8a8
11:08:33 INFO - esi = 0x09aeeb50 edi = 0x09aee478
11:08:33 INFO - Found by: call frame info
11:08:33 INFO - 5 libxul.so!js::Nursery::collect(JSRuntime*, JS::gcreason::Reason) [Nursery.cpp:c7bfbb5bf23d : 603 + 0x14]
11:08:33 INFO - eip = 0xb55d3f3b esp = 0xbf8b3b70 ebp = 0xbf8b3c08 ebx = 0xb716d8a8
11:08:33 INFO - esi = 0xbf8b3ba4 edi = 0x099389b0
11:08:33 INFO - Found by: call frame info
11:08:33 INFO - 6 libxul.so!js::MinorGC(JSRuntime*, JS::gcreason::Reason) [jsgc.cpp:c7bfbb5bf23d : 4769 + 0x17]
11:08:33 INFO - eip = 0xb51fc2b1 esp = 0xbf8b3c10 ebp = 0xbf8b3c28 ebx = 0xb716d8a8
11:08:33 INFO - esi = 0x09932ed8 edi = 0x099389b0
11:08:33 INFO - Found by: call frame info
11:08:33 INFO - 7 libxul.so!Collect [jsgc.cpp:c7bfbb5bf23d : 4627 + 0xb]
11:08:33 INFO - eip = 0xb521519c esp = 0xbf8b3c30 ebp = 0xbf8b3cd8 ebx = 0xb716d8a8
11:08:33 INFO - esi = 0x09932ed8 edi = 0x099389b0
11:08:33 INFO - Found by: call frame info
11:08:33 INFO - 8 libxul.so!js::GC(JSRuntime*, js::JSGCInvocationKind, JS::gcreason::Reason) [jsgc.cpp:c7bfbb5bf23d : 4694 + 0x22]
11:08:33 INFO - eip = 0xb521582b esp = 0xbf8b3ce0 ebp = 0xbf8b3cf8 ebx = 0xb716d8a8
11:08:33 INFO - esi = 0x09932ed8 edi = 0x00000033
11:08:33 INFO - Found by: call frame info
11:08:33 INFO - 9 libxul.so!JS::GCForReason(JSRuntime*, JS::gcreason::Reason) [jsfriendapi.cpp:c7bfbb5bf23d : 192 + 0x17]
11:08:33 INFO - eip = 0xb51e7aee esp = 0xbf8b3d00 ebp = 0xbf8b3d18 ebx = 0xb716d8a8
11:08:33 INFO - esi = 0x09932ed8 edi = 0x00000033
11:08:33 INFO - Found by: call frame info
11:08:33 INFO - 10 libxul.so!mozilla::CycleCollectedJSRuntime::Collect(unsigned int) const [CycleCollectedJSRuntime.cpp:c7bfbb5bf23d : 945 + 0xa]
11:08:33 INFO - eip = 0xb49c1211 esp = 0xbf8b3d20 ebp = 0xbf8b3d48 ebx = 0xb716d8a8
11:08:33 INFO - esi = 0x09932ed8 edi = 0x00000033
11:08:33 INFO - Found by: call frame info
11:08:33 INFO - 11 libxul.so!nsCycleCollector::BeginCollection(ccType, nsICycleCollectorListener*) [nsCycleCollector.cpp:c7bfbb5bf23d : 2761 + 0xf]
11:08:33 INFO - eip = 0xb49cad93 esp = 0xbf8b3d50 ebp = 0xbf8b3e08 ebx = 0xb716d8a8
11:08:33 INFO - esi = 0x09831600 edi = 0x00000000
11:08:33 INFO - Found by: call frame info
11:08:33 INFO - 12 libxul.so!nsCycleCollector::Collect(ccType, nsTArray<PtrInfo*>*, nsCycleCollectorResults*, nsICycleCollectorListener*) [nsCycleCollector.cpp:c7bfbb5bf23d : 2693 + 0xe]
11:08:33 INFO - eip = 0xb49caee4 esp = 0xbf8b3e10 ebp = 0xbf8b3e38 ebx = 0xb716d8a8
11:08:33 INFO - esi = 0x09831600 edi = 0xb5b95134
11:08:33 INFO - Found by: call frame info
11:08:33 INFO - 13 libxul.so!nsCycleCollector::ShutdownCollect() [nsCycleCollector.cpp:c7bfbb5bf23d : 2673 + 0x17]
11:08:33 INFO - eip = 0xb49cb070 esp = 0xbf8b3e40 ebp = 0xbf8b7d08 ebx = 0xb716d8a8
11:08:33 INFO - esi = 0x00000000 edi = 0xb5b95134
11:08:33 INFO - Found by: call frame info
11:08:33 INFO - 14 libxul.so!nsCycleCollector_shutdown() [nsCycleCollector.cpp:c7bfbb5bf23d : 3169 + 0x7]
11:08:33 INFO - eip = 0xb49cb139 esp = 0xbf8b7d10 ebp = 0xbf8b7d48 ebx = 0xb716d8a8
11:08:33 INFO - esi = 0x09835668 edi = 0xbf8b7d6c
11:08:33 INFO - Found by: call frame info
11:08:33 INFO - 15 libxul.so!mozilla::ShutdownXPCOM(nsIServiceManager*) [nsXPComInit.cpp:c7bfbb5bf23d : 751 + 0x4]
11:08:33 INFO - eip = 0xb49762f6 esp = 0xbf8b7d50 ebp = 0xbf8b7d98 ebx = 0xb716d8a8
11:08:34 INFO - esi = 0xbf8b7d6c edi = 0xbf8b7d6c
11:08:34 INFO - Found by: call frame info
11:08:34 INFO - 16 libxul.so!XRE_TermEmbedding [nsEmbedFunctions.cpp:c7bfbb5bf23d : 199 + 0xb]
11:08:34 INFO - eip = 0xb34414b0 esp = 0xbf8b7da0 ebp = 0xbf8b7db8 ebx = 0xb716d8a8
11:08:34 INFO - esi = 0x097af11c edi = 0xbf8b7e68
11:08:34 INFO - Found by: call frame info
11:08:34 INFO - 17 libxul.so!mozilla::ipc::ScopedXREEmbed::Stop() [ScopedXREEmbed.cpp:c7bfbb5bf23d : 110 + 0x4]
11:08:34 INFO - eip = 0xb450e5e9 esp = 0xbf8b7dc0 ebp = 0xbf8b7dc8 ebx = 0xb716d8a8
11:08:34 INFO - esi = 0x097af11c edi = 0xbf8b7e68
11:08:34 INFO - Found by: call frame info
11:08:34 INFO - 18 libxul.so!XRE_InitChildProcess [nsEmbedFunctions.cpp:c7bfbb5bf23d : 555 + 0xf]
11:08:34 INFO - eip = 0xb3442630 esp = 0xbf8b7dd0 ebp = 0xbf8b88f8 ebx = 0xb716d8a8
11:08:34 INFO - esi = 0xbf8b7e08 edi = 0xbf8b7e68
11:08:34 INFO - Found by: call frame info
11:08:34 INFO - 19 plugin-container!main [MozillaRuntimeMain.cpp:c7bfbb5bf23d : 116 + 0xa]
11:08:34 INFO - eip = 0x0804a0bb esp = 0xbf8b8900 ebp = 0xbf8b8928 ebx = 0x0805a5e4
11:08:34 INFO - esi = 0x00000009 edi = 0xbf8b89d4
11:08:34 INFO - Found by: call frame info
11:08:34 INFO - 20 libc-2.15.so + 0x194d2
11:08:34 INFO - eip = 0xb2dc04d3 esp = 0xbf8b8930 ebp = 0x00000000
11:08:34 INFO - Found by: previous frame's frame pointer
11:08:34 INFO - 21 libc-2.15.so + 0x194d2
11:08:34 INFO - eip = 0xb2dc04d3 esp = 0xbf8b8940 ebp = 0x00000000
11:08:34 INFO - Found by: stack scanning
11:08:34 INFO - 22 libc-2.15.so + 0x1a0ff3
11:08:34 INFO - eip = 0xb2f47ff4 esp = 0xbf8b8968 ebp = 0x00000000
11:08:34 INFO - Found by: stack scanning
11:08:34 INFO - 23 ld-2.15.so + 0x1469f
11:08:34 INFO - eip = 0xb772f6a0 esp = 0xbf8b8998 ebp = 0x00000000
11:08:34 INFO - Found by: stack scanning
11:08:34 INFO - 24 libc-2.15.so + 0x193e8
11:08:34 INFO - eip = 0xb2dc03e9 esp = 0xbf8b899c ebp = 0x00000000
11:08:34 INFO - Found by: stack scanning
11:08:34 INFO - 25 ld-2.15.so + 0x20ff3
11:08:34 INFO - eip = 0xb773bff4 esp = 0xbf8b89a0 ebp = 0x00000000
11:08:34 INFO - Found by: stack scanning
11:08:34 INFO - 26 plugin-container + 0x207b
11:08:34 INFO - eip = 0x0804a07c esp = 0xbf8b89b4 ebp = 0x00000000
11:08:34 INFO - Found by: stack scanning
11:08:34 INFO - 27 ld-2.15.so + 0xf26f
11:08:34 INFO - eip = 0xb772a270 esp = 0xbf8b89c8 ebp = 0x00000000
11:08:34 INFO - Found by: stack scanning
11:08:34 INFO - 28 ld-2.15.so + 0x21917
11:08:34 INFO - eip = 0xb773c918 esp = 0xbf8b89d0 ebp = 0x00000000
11:08:34 INFO - Found by: stack scanning
Updated•12 years ago
|
Assignee: nobody → terrence
Comment 1•12 years ago
|
||
I can repro this fairly reliably on the first run, even under gdb. Subsequent runs or runs with watchpoints set do not repro, sadly.
My first hypothesis was that this must be caused by proxy using the virtual finalizeInBackground for creation whereas the nursery is using CanBeFinalizedInBackground when tenuring. This is dumb: we know all things in the nursery are background finalizable, so we shouldn't ever tenure into a foreground finalizable arena in any case. I've attached a patch for this issue.
Sadly, this doesn't fix the problem, however. I'll keep looking.
Attachment #826121 -
Flags: review?(jcoppeard)
Comment 2•12 years ago
|
||
Hey, I just saw your patch at [1] and figured it would fix this. Went to dup and found it's the same bug number. ;-)
1 - https://hg.mozilla.org/try/rev/dc50523091d8
| Assignee | ||
Comment 3•12 years ago
|
||
Comment on attachment 826121 [details] [diff] [review]
always_tenure_to_background-v0.diff
Review of attachment 826121 [details] [diff] [review]:
-----------------------------------------------------------------
Looks good!
For the purposes of documentation as much as anything else, can we also assert |CanBeFinalizedInBackground(kind, obj->getClass())| ?
Attachment #826121 -
Flags: review?(jcoppeard) → review+
| Assignee | ||
Comment 4•12 years ago
|
||
As you saw, I had a patch for this :)
Updated•12 years ago
|
Component: JavaScript Engine → Developer Tools
Product: Core → Firefox
Comment 5•12 years ago
|
||
Oops, wrong bug...
Component: Developer Tools → JavaScript Engine
Product: Firefox → Core
Comment 6•12 years ago
|
||
Comment on attachment 826686 [details] [diff] [review]
2 - finalize-in-background
Review of attachment 826686 [details] [diff] [review]:
-----------------------------------------------------------------
r=me
Attachment #826686 -
Flags: review?(terrence) → review+
Comment 7•12 years ago
|
||
(In reply to Jon Coppeard (:jonco) from comment #3)
> Comment on attachment 826121 [details] [diff] [review]
> always_tenure_to_background-v0.diff
>
> Review of attachment 826121 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> Looks good!
>
> For the purposes of documentation as much as anything else, can we also
> assert |CanBeFinalizedInBackground(kind, obj->getClass())| ?
Good idea!
https://hg.mozilla.org/integration/mozilla-inbound/rev/e8c9664d36d2
Updated•12 years ago
|
Attachment #826121 -
Flags: checkin+
Updated•12 years ago
|
Whiteboard: [leave open
| Assignee | ||
Comment 8•12 years ago
|
||
Whiteboard: [leave open
Comment 9•12 years ago
|
||
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla28
Comment 10•12 years ago
|
||
You need to log in
before you can comment on or make changes to this bug.
Description
•