Closed Bug 615923 Opened 14 years ago Closed 14 years ago

mochitests-2: intermittent "test_fallback.html | Exited with code 1 during test run" (ASSERTION: XPConnect is being called on a scope without a 'Components' property!)

Categories

(Core :: DOM: Core & HTML, defect)

defect
Not set
major

Tracking

()

VERIFIED FIXED
mozilla2.0b8
Tracking Status
status1.9.2 --- .14-fixed
status1.9.1 --- .17-fixed

People

(Reporter: jdm, Assigned: sgautherie)

References

()

Details

(Keywords: assertion, intermittent-failure, Whiteboard: [test which aborts the suite] )

Attachments

(3 files)

http://tinderbox.mozilla.org/showlog.cgi?log=Firefox/1291226867.1291227768.14402.gz&fulltext=1#err1 Rev3 Fedora 12 mozilla-central debug test mochitests-2/5 on 2010/12/01 10:07:47 s: talos-r3-fed-025 TEST-UNEXPECTED-FAIL | /tests/dom/tests/mochitest/ajax/offline/test_fallback.html | Exited with code 1 during test run PROCESS-CRASH | /tests/dom/tests/mochitest/ajax/offline/test_fallback.html | application crashed (minidump found) Thread 0 (crashed) TEST-UNEXPECTED-FAIL | automationutils.processLeakLog() | missing output line for total leaks! ###!!! ASSERTION: XPConnect is being called on a scope without a 'Components' property!: 'Error', file ../../../../../js/src/xpconnect/src/xpcwrappednativescope.cpp, line 779 DEBUG_CheckForComponentsInScope [xpcwrappednativescope.cpp:780] XPCWrappedNativeScope::FindInJSObjectScope [xpcwrappednativescope.cpp:838] XPCWrappedNativeScope::FindInJSObjectScope [xpcprivate.h:1541] GetContextFromObject [xpcwrappedjsclass.cpp:563] nsXPCWrappedJSClass::CallMethod [xpcwrappedjsclass.cpp:1287] nsXPCWrappedJS::CallMethod [xpcwrappedjs.cpp:588] PrepareAndDispatch [xptcstubs_gcc_x86_unix.cpp:95] nsThread::ProcessNextEvent [nsThread.cpp:626] NS_ProcessNextEvent_P [nsThreadUtils.cpp:250] mozilla::ipc::MessagePump::Run [MessagePump.cpp:110] MessageLoop::RunInternal [message_loop.cc:220] MessageLoop::RunHandler [message_loop.cc:203] MessageLoop::Run [message_loop.cc:176] nsBaseAppShell::Run [nsBaseAppShell.cpp:198] nsAppStartup::Run [nsAppStartup.cpp:191] XRE_main [nsAppRunner.cpp:3691] main [nsBrowserApp.cpp:158] libc.so.6 + 0x16bb6 Assertion failure: obj->containsSlot(slot), at ../../../js/src/jsinterp.cpp:5315 NEXT ERROR TEST-UNEXPECTED-FAIL | /tests/dom/tests/mochitest/ajax/offline/test_fallback.html | Exited with code 1 during test run INFO | automation.py | Application ran for: 0:09:57.954633 INFO | automation.py | Reading PID log: /tmp/tmpyPxkAJpidlog PROCESS-CRASH | /tests/dom/tests/mochitest/ajax/offline/test_fallback.html | application crashed (minidump found) Operating system: Linux 0.0.0 Linux 2.6.31.5-127.fc12.i686.PAE #1 SMP Sat Nov 7 21:25:57 EST 2009 i686 CPU: x86 GenuineIntel family 6 model 23 stepping 10 2 CPUs Crash reason: SIGABRT Crash address: 0x7af Thread 0 (crashed) 0 linux-gate.so + 0x424 eip = 0x0048e424 esp = 0xbfafbb10 ebp = 0xbfafbb28 ebx = 0x000007af esi = 0x00000000 edi = 0x00c7cff4 eax = 0x00000000 ecx = 0x000007af edx = 0x00000006 efl = 0x00200206 Found by: given as instruction pointer in context 1 libxul.so!JS_Assert [jsutil.cpp : 83 + 0xb] eip = 0x02a581f3 esp = 0xbfafbb30 ebp = 0xbfafbb48 Found by: previous frame's frame pointer 2 libxul.so!js::Interpret [jsinterp.cpp : 5315 + 0x3e] eip = 0x02bbeac7 esp = 0xbfafbb50 ebp = 0xbfafca38 ebx = 0x03467194 Found by: call frame info 3 libxul.so!js::RunScript [jsinterp.cpp : 657 + 0x21] eip = 0x0299ca68 esp = 0xbfafca40 ebp = 0xbfafca68 ebx = 0x03467194 esi = 0x00000000 edi = 0xbfafcda0 Found by: call frame info 4 libxul.so!js::Invoke [jsinterp.cpp : 737 + 0x18] eip = 0x0299d758 esp = 0xbfafca70 ebp = 0xbfafcad8 ebx = 0x03467194 esi = 0x00000000 edi = 0xbfafcda0 Found by: call frame info 5 libxul.so!js::ExternalInvoke [jsinterp.cpp : 858 + 0x19] eip = 0x0299e04d esp = 0xbfafcae0 ebp = 0xbfafcb28 ebx = 0x03467194 esi = 0x00000000 edi = 0xbfafcda0 Found by: call frame info 6 libxul.so!js::ExternalInvoke [jsinterp.h : 962 + 0x38] eip = 0x028f2948 esp = 0xbfafcb30 ebp = 0xbfafcb68 ebx = 0x03467194 esi = 0xbfafce18 edi = 0xbfafcda0 Found by: call frame info 7 libxul.so!JS_CallFunctionValue [jsapi.cpp : 4973 + 0x3c] eip = 0x028f2aa8 esp = 0xbfafcb70 ebp = 0xbfafcbb8 ebx = 0x03467194 esi = 0xbfafce18 edi = 0xbfafcda0 Found by: call frame info 8 libxul.so!nsXPCWrappedJSClass::CallMethod [xpcwrappedjsclass.cpp : 1694 + 0x4a] eip = 0x01ebf882 esp = 0xbfafcbc0 ebp = 0xbfafd048 ebx = 0x03467194 esi = 0xb36fe020 edi = 0x01b279fe Found by: call frame info 9 libxul.so!nsXPCWrappedJS::CallMethod [xpcwrappedjs.cpp : 588 + 0x35] eip = 0x01eb623b esp = 0xbfafd050 ebp = 0xbfafd098 ebx = 0x03467194 esi = 0x01ebe37e edi = 0x01eb60d2 Found by: call frame info 10 libxul.so!PrepareAndDispatch [xptcstubs_gcc_x86_unix.cpp : 95 + 0x3a] eip = 0x02729b1c esp = 0xbfafd0a0 ebp = 0xbfafd198 ebx = 0x03467194 esi = 0x00000003 edi = 0x01eb60d2 Found by: call frame info 11 libxul.so!nsThread::ProcessNextEvent [nsThread.cpp : 626 + 0x18] eip = 0x02708f0a esp = 0xbfafd1a0 ebp = 0xbfafd238 ebx = 0x03467194 esi = 0x0945d414 edi = 0x02441ca2 Found by: call frame info 12 libxul.so!NS_ProcessNextEvent_P [nsThreadUtils.cpp : 250 + 0x1f] eip = 0x02690690 esp = 0xbfafd240 ebp = 0xbfafd278 ebx = 0x03467194 esi = 0x00000001 edi = 0x02441ca2 Found by: call frame info 13 libxul.so!mozilla::ipc::MessagePump::Run [MessagePump.cpp : 110 + 0x15] eip = 0x024d98dc esp = 0xbfafd280 ebp = 0xbfafd2c8 ebx = 0x03467194 esi = 0x00000001 edi = 0x02441ca2 Found by: call frame info 14 libxul.so!MessageLoop::RunInternal [message_loop.cc : 219 + 0x22] eip = 0x02774b9f esp = 0xbfafd2d0 ebp = 0xbfafd2f8 ebx = 0x03467194 esi = 0x09bef080 edi = 0x02441ca2 Found by: call frame info 15 libxul.so!MessageLoop::RunHandler [message_loop.cc : 202 + 0xa] eip = 0x02774bb7 esp = 0xbfafd300 ebp = 0xbfafd308 ebx = 0x03467194 esi = 0x09bef080 edi = 0x02441ca2 Found by: call frame info 16 libxul.so!MessageLoop::Run [message_loop.cc : 176 + 0xa] eip = 0x02774c1b esp = 0xbfafd310 ebp = 0xbfafd328 ebx = 0x03467194 esi = 0x09bef080 edi = 0x02441ca2 Found by: call frame info 17 libxul.so!nsBaseAppShell::Run [nsBaseAppShell.cpp : 192 + 0xc] eip = 0x02369a1e esp = 0xbfafd330 ebp = 0xbfafd368 ebx = 0x03467194 esi = 0x09bef080 edi = 0x02441ca2 Found by: call frame info 18 libxul.so!nsAppStartup::Run [nsAppStartup.cpp : 191 + 0x1b] eip = 0x0209c069 esp = 0xbfafd370 ebp = 0xbfafd3a8 ebx = 0x03467194 esi = 0x09bef080 edi = 0x02441ca2 Found by: call frame info 19 libxul.so!XRE_main [nsAppRunner.cpp : 3691 + 0x1b] eip = 0x00fab497 esp = 0xbfafd3b0 ebp = 0xbfafd948 ebx = 0x03467194 esi = 0x09bef080 edi = 0x02441ca2 Found by: call frame info 20 firefox-bin!main [nsBrowserApp.cpp : 158 + 0x1d] eip = 0x08048e42 esp = 0xbfafd950 ebp = 0xbfafd9b8 ebx = 0x0804bacc esi = 0x093f20f0 edi = 0x026f36fc Found by: call frame info 21 libc-2.11.so + 0x16bb5 eip = 0x00afebb6 esp = 0xbfafd9d0 ebp = 0xbfafda48 ebx = 0x00c58ff4 esi = 0x00000000 edi = 0x00000000 Found by: call frame info 22 firefox-bin + 0x9f0 eip = 0x080489f1 esp = 0xbfafda50 ebp = 0x00000000 Found by: previous frame's frame pointer 23 firefox-bin!Output [nsBrowserApp.cpp : 77 + 0x5] eip = 0x08048b42 esp = 0xbfafda54 ebp = 0x00000000 Found by: stack scanning 24 ld-2.11.so + 0xecef eip = 0x00ad4cf0 esp = 0xbfafda68 ebp = 0x00000000 Found by: stack scanning
This started in the changeset after the one for bug 615546.
Blocks: 615546
OS: Mac OS X → All
Version: unspecified → Trunk
Summary: Intermittent assertion in test_fallback.html | Exited with code 1 during test run (ASSERTION: XPConnect is being called on a scope without a 'Components' property!) → mochitests-2: intermittent "test_fallback.html | Exited with code 1 during test run" (ASSERTION: XPConnect is being called on a scope without a 'Components' property!)
The previous build: http://tinderbox.mozilla.org/showlog.cgi?log=Firefox/1291223602.1291226192.7754.gz&fulltext=1 Rev3 Fedora 12 mozilla-central debug test mochitests-2/5 on 2010/12/01 09:13:22 { 5081 INFO TEST-PASS | /tests/dom/tests/mochitest/ajax/offline/test_fallback.html | http://mochi.test:8888/tests/dom/tests/mochitest/ajax/offline/namespace2/non-existing.html should not exist in the offline cache 5082 INFO TEST-END | /tests/dom/tests/mochitest/ajax/offline/test_fallback.html | finished in 6794ms } ***** The first build, which was green: http://tinderbox.mozilla.org/showlog.cgi?log=Firefox/1291224891.1291227563.13488.gz&fulltext=1 Rev3 Fedora 12 mozilla-central debug test mochitests-2/5 on 2010/12/01 09:34:51 { ... 5083 INFO TEST-PASS | /tests/dom/tests/mochitest/ajax/offline/test_fallback.html | http://mochi.test:8888/tests/dom/tests/mochitest/ajax/offline/namespace2/non-existing.html should not exist in the offline cache ###!!! ASSERTION: XPConnect is being called on a scope without a 'Components' property!: 'Error', file ../../../../../js/src/xpconnect/src/xpcwrappednativescope.cpp, line 779 ... JavaScript error: http://mochi.test:8888/tests/SimpleTest/SimpleTest.js, line 555: SimpleTest is undefined 5084 INFO TEST-END | /tests/dom/tests/mochitest/ajax/offline/test_fallback.html | finished in 6033ms } Same "XPConnect" assertion, but "JavaScript error" instead of "Assertion failure: obj->containsSlot(slot)". Code was: { 549SimpleTest._finishNow = function () { 550 if (parentRunner) { 551 // The test is running in an iframe, and its parent has a TestRunner. 552 parentRunner.testFinished(SimpleTest._tests); 553 } else { 554 // The test is running alone in the window. 555 SimpleTest.showReport(); 556 } 557}; } *** Test code is: http://mxr.mozilla.org/mozilla-central/source/dom/tests/mochitest/ajax/offline/test_fallback.html?force=1 107 function finalize() 114 OfflineTest.checkCache("http://mochi.test:8888/tests/dom/tests/mochitest/ajax/offline/namespace2/non-existing.html", false); 115 116 OfflineTest.teardown(); 117 OfflineTest.finish(); http://mxr.mozilla.org/mozilla-central/source/dom/tests/mochitest/ajax/offline/offlineTests.js 145 finish: function() 146 { 147 SimpleTest.finish(); 148 149 if (this._masterWindow) { 150 this._masterWindow.OfflineTest.finish(); 151 window.close(); 152 } 153 }, "I" will have to check how this finish() code is supposed to work exactly... Hints welcomed!
Severity: normal → major
Depends on: 402272
Keywords: assertion
Whiteboard: [orange] → [test which aborts the suite] [orange]
Fixes the 'JavaScript error' on my local Windows 2000.
Assignee: nobody → sgautherie.bz
Status: NEW → ASSIGNED
Attachment #494690 - Flags: review?(jst)
Blocks: 402272
Component: DOM: Core & HTML → DOM: Mozilla Extensions
No longer depends on: 402272
Hardware: x86 → All
Target Milestone: --- → mozilla2.0b8
I can steal the review here. What is exactly cause of the assertion failure? Is it because _slaveWindow is pointing to something non-existing?
(In reply to comment #10) > What is exactly cause of the assertion failure? The issue(s) is that SimpleTest.finish() gets called 1) twice (first from slave window then from master window) 2) synchronously (when test has obviously not fully ended yet) NB: I'm not adding another executeSoon, as bug 615546 will do that automatically.
Comment on attachment 494690 [details] [diff] [review] (Av1) offlineTests.js: Fix finish(), Remove unused _slaveWindow._OfflineSlaveWindow, Merge _isMaster, _slaveWindow and hasSlave() into new _hasSlave [Checked in: Comment 13 & 26 & 28] Yes, that's what I found out during the review as well. Good fix. r=honzab
Attachment #494690 - Flags: review?(jst) → review+
Comment on attachment 494690 [details] [diff] [review] (Av1) offlineTests.js: Fix finish(), Remove unused _slaveWindow._OfflineSlaveWindow, Merge _isMaster, _slaveWindow and hasSlave() into new _hasSlave [Checked in: Comment 13 & 26 & 28] http://hg.mozilla.org/mozilla-central/rev/2357fce3dceb
Attachment #494690 - Attachment description: (Av1) offlineTests.js: Fix finish(), Remove unused _slaveWindow._OfflineSlaveWindow, Merge _isMaster, _slaveWindow and hasSlave() into new _hasSlave → (Av1) offlineTests.js: Fix finish(), Remove unused _slaveWindow._OfflineSlaveWindow, Merge _isMaster, _slaveWindow and hasSlave() into new _hasSlave [Checked in: Comment 13]
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Flags: in-testsuite+
Resolution: --- → FIXED
Hum, the 'offline' tests are still passing, but we get this assertion after each of them now :-/ I need to compile a debug build to check that...
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
I had thought about that |this._masterWindow.| then I forgot about it as I was testing with an opt build :-/
Attachment #495220 - Flags: review?(honzab.moz)
NB: These 'offline' tests report some errors in the Error Console and trigger 3 other assertions ... but all those are unrelated to this bug, so I won't care atm.
Depends on: 443017
Ftr, both Bv1 and Cv1 patches passed on Try: see bug 615546 comment 10.
Comment on attachment 495220 [details] [diff] [review] (Bv1) offlineTests.js: Fully fix finish(), 1 s/dump(/ok(false,/, Fix some nits [Checked in: Comment 21 & 26 & 28] r=honzab
Attachment #495220 - Flags: review?(honzab.moz) → review+
Comment on attachment 495221 [details] [diff] [review] (Cv1) test_fallback.html: Remove unused gManifestUpdated, Fix some nits [Checked in: See comment 24+27 & 26 & 28] >- if (gStep == 105) { >+ if (gStep++ == 105) > finalize(); >- } >- >- ++gStep; You are just simplifying or want to have gStep increased before call to finalize()? If the former, I would rather leave the previous form. ++ in the condition could be overlooked. Up to you. r=honzab.
Attachment #495221 - Flags: review?(honzab.moz) → review+
Comment on attachment 495220 [details] [diff] [review] (Bv1) offlineTests.js: Fully fix finish(), 1 s/dump(/ok(false,/, Fix some nits [Checked in: Comment 21 & 26 & 28] http://hg.mozilla.org/mozilla-central/rev/6d18466cf3e6
Attachment #495220 - Attachment description: (Bv1) offlineTests.js: Fully fix finish(), 1 s/dump(/ok(false,/, Fix some nits → (Bv1) offlineTests.js: Fully fix finish(), 1 s/dump(/ok(false,/, Fix some nits [Checked in: Comment 21]
(In reply to comment #20) > Comment on attachment 495221 [details] [diff] [review] > (Cv1) test_fallback.html: Remove unused gManifestUpdated, Fix some nits > > >- if (gStep == 105) { > >+ if (gStep++ == 105) > > finalize(); > >- } > >- > >- ++gStep; > > You are just simplifying or want to have gStep increased before call to > finalize()? If the former, I would rather leave the previous form. ++ in the > condition could be overlooked. Up to you. Though it's just a nit atm, my main goal is to have nothing executing after finalize(). Having the last/extra gStep increase before the call is just some kind of bonus. I'm fine with leaving the increase as is but adding a |return;| after finalize() instead, if you prefer.
(In reply to comment #22) > I'm fine with leaving the increase as is but adding a |return;| after > finalize() instead, if you prefer. Agree.
Comment on attachment 495221 [details] [diff] [review] (Cv1) test_fallback.html: Remove unused gManifestUpdated, Fix some nits [Checked in: See comment 24+27 & 26 & 28] http://hg.mozilla.org/mozilla-central/rev/25a128ff3cbf
Attachment #495221 - Attachment description: (Cv1) test_fallback.html: Remove unused gManifestUpdated, Fix some nits → (Cv1) test_fallback.html: Remove unused gManifestUpdated, Fix some nits [Checked in: See comment 24]
V.Fixed, per http://tinderbox.mozilla.org/showlog.cgi?log=Firefox/1291771001.1291773143.27597.gz&fulltext=1 WINNT 5.2 mozilla-central debug test mochitests-2/5 on 2010/12/07 17:16:41 and http://tinderbox.mozilla.org/showlog.cgi?log=Firefox/1291774138.1291776469.9513.gz&fulltext=1 WINNT 5.2 mozilla-central debug test mochitests-2/5 on 2010/12/07 18:08:58
Status: REOPENED → RESOLVED
Closed: 14 years ago14 years ago
Resolution: --- → FIXED
Comment on attachment 495221 [details] [diff] [review] (Cv1) test_fallback.html: Remove unused gManifestUpdated, Fix some nits [Checked in: See comment 24+27 & 26 & 28] (In reply to comment #24) > http://hg.mozilla.org/mozilla-central/rev/25a128ff3cbf Cv1, with comment 23 suggestion(s).
Attachment #495221 - Attachment description: (Cv1) test_fallback.html: Remove unused gManifestUpdated, Fix some nits [Checked in: See comment 24] → (Cv1) test_fallback.html: Remove unused gManifestUpdated, Fix some nits [Checked in: See comment 24+27]
And thanks for fixing this, Serge.
Attachment #494690 - Attachment description: (Av1) offlineTests.js: Fix finish(), Remove unused _slaveWindow._OfflineSlaveWindow, Merge _isMaster, _slaveWindow and hasSlave() into new _hasSlave [Checked in: Comment 13] → (Av1) offlineTests.js: Fix finish(), Remove unused _slaveWindow._OfflineSlaveWindow, Merge _isMaster, _slaveWindow and hasSlave() into new _hasSlave [Checked in: Comment 13 & 26 & 28]
Attachment #495220 - Attachment description: (Bv1) offlineTests.js: Fully fix finish(), 1 s/dump(/ok(false,/, Fix some nits [Checked in: Comment 21] → (Bv1) offlineTests.js: Fully fix finish(), 1 s/dump(/ok(false,/, Fix some nits [Checked in: Comment 21 & 26 & 28]
Attachment #495221 - Attachment description: (Cv1) test_fallback.html: Remove unused gManifestUpdated, Fix some nits [Checked in: See comment 24+27] → (Cv1) test_fallback.html: Remove unused gManifestUpdated, Fix some nits [Checked in: See comment 24+27 & 26 & 28]
Whiteboard: [test which aborts the suite] [orange] → [test which aborts the suite]
Component: DOM: Mozilla Extensions → DOM
Component: DOM → DOM: Core & HTML
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: