Closed Bug 1032011 Opened 10 years ago Closed 10 years ago

Intermittent B2G debug mochitest-9,12 "MOZ_Assert: Assertion failure: mActorDestroyed (ChildImpl::ActorDestroy not called in time), at ipc/glue/BackgroundImpl.cpp:380"

Categories

(Core :: DOM: Workers, defect)

x86_64
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla33
Tracking Status
firefox31 --- unaffected
firefox32 --- unaffected
firefox33 --- fixed
firefox-esr24 --- unaffected
b2g-v1.4 --- unaffected
b2g-v2.0 --- unaffected
b2g-v2.1 --- fixed

People

(Reporter: nigelb, Assigned: bkelly)

References

()

Details

(Keywords: intermittent-failure)

Attachments

(1 file, 7 obsolete files)

Not sure if DOM is right place or this needs to go into Firefox OS b2g_emulator_vm b2g-inbound debug test mochitest-debug-12 on 2014-06-28 22:24:35 PDT for push 5a63232687d1 slave: tst-linux64-spot-609 https://tbpl.mozilla.org/php/getParsedLog.php?id=42710769&tree=B2g-Inbound 22:39:49 INFO - 06-29 05:37:42.646 730 730 I Gecko : [Child 730] WARNING: Failed to retarget HTML data delivery to the parser thread.: file ../../../gecko/parser/html/nsHtml5StreamParser.cpp, line 947 22:39:49 INFO - 06-29 05:37:49.546 730 730 I Gecko : --DOMWINDOW == 2 (0x4408fad0) [pid = 730] [serial = 2] [outer = 0x4408f730] [url = about:blank] 22:39:49 INFO - 06-29 05:37:52.125 656 656 I Gecko : [Parent 656] WARNING: A control runnable was posted to a worker that is already shutting down!: file ../../../gecko/dom/workers/WorkerPrivate.cpp, line 2256 22:39:49 INFO - 06-29 05:37:52.155 656 656 I Gecko : [Parent 656] WARNING: A control runnable was posted to a worker that is already shutting down!: file ../../../gecko/dom/workers/WorkerPrivate.cpp, line 2256 22:39:49 INFO - 06-29 05:37:52.155 656 656 I Gecko : [Parent 656] WARNING: A control runnable was posted to a worker that is already shutting down!: file ../../../gecko/dom/workers/WorkerPrivate.cpp, line 2256 22:39:49 INFO - 06-29 05:37:52.155 656 656 I Gecko : [Parent 656] WARNING: A control runnable was posted to a worker that is already shutting down!: file ../../../gecko/dom/workers/WorkerPrivate.cpp, line 2256 22:39:49 INFO - 06-29 05:37:52.596 730 730 I Gecko : [Child 730] WARNING: NS_ENSURE_TRUE(startupCache) failed: file ../../../gecko/dom/xbl/nsXBLDocumentInfo.cpp, line 238 22:39:49 INFO - 06-29 05:37:52.676 730 730 I Gecko : [Child 730] WARNING: NS_ENSURE_TRUE(startupCache) failed: file ../../../gecko/dom/xbl/nsXBLDocumentInfo.cpp, line 306 22:39:49 INFO - 06-29 05:37:52.785 730 730 I Gecko : ++DOCSHELL 0x440d0000 == 2 [pid = 730] [id = 2] 22:39:49 INFO - 06-29 05:37:52.795 730 730 I Gecko : ++DOMWINDOW == 3 (0x4408fad0) [pid = 730] [serial = 4] [outer = 0x0] 22:39:49 INFO - 06-29 05:37:52.835 730 730 I Gecko : [Child 730] WARNING: NS_ENSURE_TRUE(nsContentUtils::GetCurrentJSContext()) failed: file ../../../gecko/docshell/base/nsDocShell.cpp, line 8693 22:39:49 INFO - 06-29 05:37:53.636 730 730 I Gecko : [Child 730] WARNING: NS_ENSURE_TRUE(globalObject && globalObject->GetGlobalJSObject()) failed: file ../../../../../gecko/content/html/document/src/nsHTMLContentSink.cpp, line 741 22:39:49 INFO - 06-29 05:37:53.686 730 730 I Gecko : ++DOMWINDOW == 4 (0x44090210) [pid = 730] [serial = 5] [outer = 0x4408fad0] 22:39:49 INFO - 06-29 05:37:54.195 730 730 E GeckoConsole: [JavaScript Warning: "No meta-viewport tag found. Please explicitly specify one to prevent unexpected behavioural changes in future versions. For more help https://developer.mozilla.org/en/docs/Mozilla/Mobile/Viewport_meta_tag" {file: "http://mochi.test:8888/tests/?autorun=1&timeout=420&closeWhenDone=1&logFile=%2Fdata%2Flocal%2Ftests%2Flog%2Fmochitest.log&fileLevel=INFO&consoleLevel=INFO&totalChunks=15&thisChunk=12&hideResultsTable=1&dumpOutputDirectory=%2Ftmp&quiet=true&manifestFile=tests.json" line: 0}] 22:39:49 INFO - 06-29 05:37:55.045 730 730 I Gecko : [Child 730] WARNING: Transparent content with displayports can be expensive.: file ../../../gecko/layout/base/nsDisplayList.cpp, line 1371 22:39:49 INFO - 06-29 05:37:55.326 656 731 D : HostConnection::get() New Host Connection established 0x476b0f80, tid 731 22:39:49 INFO - 06-29 05:37:55.406 730 744 D : HostConnection::get() New Host Connection established 0x44a51c40, tid 744 22:39:49 INFO - 06-29 05:37:55.476 730 730 D : HostConnection::get() New Host Connection established 0x44a51c80, tid 730 22:39:49 INFO - 06-29 05:37:59.496 730 730 I GeckoDump: 0 INFO Running tests 1589-1733/2166 22:39:49 INFO - 06-29 05:37:59.516 730 730 I GeckoDump: 1 INFO SimpleTest START 22:39:49 INFO - 06-29 05:37:59.915 730 730 I GeckoDump: 2 INFO TEST-START | /tests/dom/workers/test/test_bug1002702.html 22:39:49 INFO - 06-29 05:37:59.955 730 730 I Gecko : [Child 730] WARNING: TabChild::SetFocus not supported in TabChild: file ../../../gecko/dom/ipc/TabChild.cpp, line 1137 22:39:49 INFO - 06-29 05:38:00.145 656 656 I Gecko : [Parent 656] WARNING: No docshells for remote frames!: file ../../../../gecko/content/base/src/nsFrameLoader.cpp, line 631 22:39:49 INFO - 06-29 05:38:00.316 730 730 I Gecko : [Child 730] WARNING: Transparent content with displayports can be expensive.: file ../../../gecko/layout/base/nsDisplayList.cpp, line 1371 22:39:49 INFO - 06-29 05:38:01.576 730 730 I Gecko : ++DOMWINDOW == 5 (0x440903e0) [pid = 730] [serial = 6] [outer = 0x4408fad0] 22:39:49 INFO - 06-29 05:38:02.726 730 730 I Gecko : [Child 730] WARNING: Transparent content with displayports can be expensive.: file ../../../gecko/layout/base/nsDisplayList.cpp, line 1371 22:39:49 INFO - 06-29 05:38:03.296 730 730 I Gecko : [Child 730] WARNING: Transparent content with displayports can be expensive.: file ../../../gecko/layout/base/nsDisplayList.cpp, line 1371 22:39:49 INFO - 06-29 05:38:03.965 730 730 I Gecko : [Child 730] WARNING: Transparent content with displayports can be expensive.: file ../../../gecko/layout/base/nsDisplayList.cpp, line 1371 22:39:49 INFO - 06-29 05:38:04.245 730 730 I Gecko : ++DOMWINDOW == 6 (0x440905b0) [pid = 730] [serial = 7] [outer = 0x4408fad0] 22:39:49 INFO - 06-29 05:38:04.825 730 730 I Gecko : [Child 730] WARNING: Failed to retarget HTML data delivery to the parser thread.: file ../../../gecko/parser/html/nsHtml5StreamParser.cpp, line 947 22:39:49 INFO - 06-29 05:38:05.165 730 730 I Gecko : [Child 730] WARNING: Transparent content with displayports can be expensive.: file ../../../gecko/layout/base/nsDisplayList.cpp, line 1371 22:39:49 INFO - 06-29 05:38:06.295 730 730 I Gecko : [Child 730] WARNING: Called close() before start()!: 'mStarted', file ../../../gecko/dom/workers/MessagePort.cpp, line 214 22:39:49 INFO - 06-29 05:38:09.286 730 730 I Gecko : [Child 730] WARNING: Transparent content with displayports can be expensive.: file ../../../gecko/layout/base/nsDisplayList.cpp, line 1371 22:39:49 INFO - 06-29 05:38:09.396 730 730 E GeckoConsole: [JavaScript Warning: "The character encoding of a framed document was not declared. The document may appear different if viewed without the document framing it." {file: "http://mochi.test:8888/tests/dom/workers/test/test_bug1002702.html" line: 0}] 22:39:49 INFO - 06-29 05:38:09.427 730 730 I Gecko : [Child 730] WARNING: Unable to printf the requested string due to error.: file ../../../gecko/ipc/chromium/src/base/string_util.cc, line 427 22:39:49 INFO - 06-29 05:38:09.676 730 730 I Gecko : [Child 730] WARNING: Transparent content with displayports can be expensive.: file ../../../gecko/layout/base/nsDisplayList.cpp, line 1371 22:39:49 INFO - 06-29 05:38:11.706 730 730 I GeckoDump: 3 INFO TEST-INFO | MEMORY STAT vsize after test: 99393536 22:39:49 INFO - 06-29 05:38:11.815 730 730 I GeckoDump: 4 INFO TEST-INFO | MEMORY STAT vsizeMaxContiguous not supported in this build configuration. 22:39:49 INFO - 06-29 05:38:12.045 730 730 I GeckoDump: 5 INFO TEST-INFO | MEMORY STAT residentFast after test: 49848320 22:39:49 INFO - 06-29 05:38:12.225 730 730 I GeckoDump: 6 INFO TEST-INFO | MEMORY STAT heapAllocated after test: 15230480 22:39:49 INFO - 06-29 05:38:12.415 730 749 F MOZ_Assert: Assertion failure: mActorDestroyed (ChildImpl::ActorDestroy not called in time), at ../../../gecko/ipc/glue/BackgroundImpl.cpp:380 22:39:49 INFO - 06-29 05:38:14.376 656 668 I Gecko : [Parent 656] WARNING: pipe error (80): Connection reset by peer: file ../../../gecko/ipc/chromium/src/chrome/common/ipc_channel_posix.cc, line 450 22:39:49 INFO - 06-29 05:38:15.115 656 656 I Gecko : 22:39:49 INFO - 06-29 05:38:15.115 656 656 I Gecko : ###!!! [Parent][OnMaybeDequeueOne] Error: Channel error: cannot send/recv 22:39:49 INFO - 06-29 05:38:15.115 656 656 I Gecko : 22:39:49 INFO - 06-29 05:38:15.115 656 656 I Gecko : 22:39:49 INFO - 06-29 05:38:15.115 656 656 I Gecko : ###!!! [Parent][OnMaybeDequeueOne] Error: Channel error: cannot send/recv 22:39:49 INFO - 06-29 05:38:15.115 656 656 I Gecko : 22:39:49 INFO - 06-29 05:38:15.125 656 656 I Gecko : 22:39:49 INFO - 06-29 05:38:15.125 656 656 I Gecko : ###!!! [Parent][OnMaybeDequeueOne] Error: Channel error: cannot send/recv 22:39:49 INFO - 06-29 05:38:15.125 656 656 I Gecko : 22:39:49 INFO - 06-29 05:38:15.125 656 656 I Gecko : 22:39:49 INFO - 06-29 05:38:15.125 656 656 I Gecko : ###!!! [Parent][OnMaybeDequeueOne] Error: Channel error: cannot send/recv 22:39:49 INFO - 06-29 05:38:15.125 656 656 I Gecko : 22:39:49 INFO - 06-29 05:38:15.135 656 656 I Gecko : 22:39:49 INFO - 06-29 05:38:15.135 656 656 I Gecko : ###!!! [Parent][OnMaybeDequeueOne] Error: Channel error: cannot send/recv 22:39:49 INFO - 06-29 05:38:15.135 656 656 I Gecko : 22:39:49 INFO - 06-29 05:38:15.135 656 656 I Gecko : 22:39:49 INFO - 06-29 05:38:15.135 656 656 I Gecko : ###!!! [Parent][OnMaybeDequeueOne] Error: Channel error: cannot send/recv 22:39:49 INFO - 06-29 05:38:15.135 656 656 I Gecko : 22:39:49 INFO - 06-29 05:38:15.135 656 656 I Gecko : 22:39:49 INFO - 06-29 05:38:15.135 656 656 I Gecko : ###!!! [Parent][OnMaybeDequeueOne] Error: Channel error: cannot send/recv 22:39:49 INFO - 06-29 05:38:15.135 656 656 I Gecko : 22:39:49 INFO - 06-29 05:38:15.145 656 656 I Gecko : 22:39:49 INFO - 06-29 05:38:15.145 656 656 I Gecko : ###!!! [Parent][MessageChannel] Error: Channel error: cannot send/recv 22:39:49 INFO - 06-29 05:38:15.145 656 656 I Gecko : 22:39:49 INFO - 06-29 05:38:15.276 656 656 I Gecko : ############ ErrorPage.js 22:39:49 INFO - 06-29 05:38:15.336 656 656 I Gecko : [Parent 656] WARNING: RemoveObserver() called for unregistered observer: file ../../gecko/hal/Hal.cpp, line 204 22:39:49 INFO - 06-29 05:38:15.347 656 656 I Gecko : [Parent 656] WARNING: RemoveObserver() called for unregistered observer: file ../../gecko/hal/Hal.cpp, line 204 22:39:49 INFO - 06-29 05:38:15.347 656 656 I Gecko : [Parent 656] WARNING: RemoveObserver() called for unregistered observer: file ../../gecko/hal/Hal.cpp, line 204 22:39:49 INFO - 06-29 05:38:15.347 656 656 I Gecko : [Parent 656] WARNING: RemoveObserver() called for unregistered observer: file ../../gecko/hal/Hal.cpp, line 204 22:39:49 INFO - 06-29 05:38:15.347 656 656 I Gecko : [Parent 656] WARNING: RemoveObserver() called for unregistered observer: file ../../gecko/hal/Hal.cpp, line 204 22:39:49 INFO - 06-29 05:38:15.526 40 40 D AudioHardwareInterface: setMode(NORMAL) 22:39:49 INFO - 06-29 05:38:15.526 40 40 W AudioPolicyManagerBase: setPhoneState() setting same state 0 22:39:49 INFO - 06-29 05:38:15.546 656 656 I Gecko : [Parent 656] WARNING: NS_ENSURE_TRUE(mCallback) failed: file ../../../../gecko/content/base/src/nsFrameMessageManager.cpp, line 671 22:39:49 WARNING - 06-29 05:38:15.576 656 656 E GeckoConsole: [JavaScript Error: "NS_ERROR_NOT_INITIALIZED: Component returned failure code: 0xc1f30001 (NS_ERROR_NOT_INITIALIZED) [nsIMessageSender.sendAsyncMessage]" {file: "chrome://specialpowers/content/SpecialPowersObserver.js" line: 96}] 22:39:49 INFO - 06-29 05:38:15.676 656 656 I Gecko : [Parent 656] WARNING: FileDescriptorSet destroyed with unconsumed descriptors: file ../../../gecko/ipc/chromium/src/chrome/common/file_descriptor_set_posix.cc, line 20 22:39:49 INFO - 06-29 05:38:15.835 656 656 I Gecko : [Parent 656] WARNING: NS_ENSURE_TRUE(mCallback) failed: file ../../../../gecko/content/base/src/nsFrameMessageManager.cpp, line 671 22:39:49 INFO - 06-29 05:38:15.865 656 656 I Gecko : [Parent 656] WARNING: NS_ENSURE_TRUE(mCallback) failed: file ../../../../gecko/content/base/src/nsFrameMessageManager.cpp, line 671 22:39:49 INFO - 06-29 05:38:16.025 656 656 I Gecko : --DOCSHELL 0x47d4e000 == 1 [pid = 656] [id = 2] 22:39:49 INFO - 06-29 05:38:16.045 656 656 I Gecko : --DOCSHELL 0x45921400 == 0 [pid = 656] [id = 1] 22:39:49 INFO - 06-29 05:38:16.396 656 656 I Gecko : [Parent 656] WARNING: An event was posted to a thread that will never run it (rejected): file ../../../gecko/xpcom/threads/nsThread.cpp, line 462 22:39:49 INFO - 06-29 05:38:16.396 656 656 I Gecko : [Parent 656] WARNING: unable to post continuation event: file ../../../gecko/xpcom/io/nsStreamUtils.cpp, line 455 22:39:49 INFO - 06-29 05:38:21.805 656 688 I Gecko : Destroying context 0x477c6880 surface 0x477c6850 on display 0x1 22:39:49 INFO - 06-29 05:38:22.426 656 656 I Gecko : -*- NetworkService: NetworkService shutdown 22:39:49 INFO - 06-29 05:38:22.915 656 656 I Gecko : [Parent 656] WARNING: Disconnect: No ongoing file transfer to stop: file ../../../gecko/dom/bluetooth/bluez/BluetoothOppManager.cpp, line 1537 22:39:49 INFO - 06-29 05:38:22.935 656 656 I Gecko : [Parent 656] WARNING: SCO has been already disconnected.: file ../../../gecko/dom/bluetooth/bluez/BluetoothHfpManager.cpp, line 1965 22:39:49 INFO - 06-29 05:38:23.696 656 656 I Gonk : RIL[0]: OnDisconnect 22:39:49 INFO - 06-29 05:38:23.765 656 656 I GonkMemoryPressure: Observed XPCOM shutdown. 22:39:49 INFO - 06-29 05:38:25.125 656 656 I Gecko : [Parent 656] ###!!! ASSERTION: Using observer service after XPCOM shutdown!: 'Error', file ../../../gecko/xpcom/ds/nsObserverService.cpp, line 261 22:39:49 INFO - 06-29 05:38:25.125 656 656 I Gecko : [Parent 656] WARNING: Failed to remove shutdown observer!: file ../../../gecko/dom/bluetooth/bluez/BluetoothOppManager.cpp, line 213 22:39:49 INFO - 06-29 05:38:25.125 656 656 I Gecko : [Parent 656] ###!!! ASSERTION: Using observer service after XPCOM shutdown!: 'Error', file ../../../gecko/xpcom/ds/nsObserverService.cpp, line 261 22:39:49 INFO - 06-29 05:38:25.125 656 656 I Gecko : [Parent 656] WARNING: Failed to remove shutdown observer!: file ../../../gecko/dom/bluetooth/bluez/BluetoothA2dpManager.cpp, line 79 22:39:49 INFO - 06-29 05:38:25.135 656 656 I Gecko : [Parent 656] ###!!! ASSERTION: Using observer service after XPCOM shutdown!: 'Error', file ../../../gecko/xpcom/ds/nsObserverService.cpp, line 261 22:39:49 INFO - 06-29 05:38:25.135 656 656 I Gecko : [Parent 656] WARNING: Failed to remove shutdown observer!: file ../../../gecko/dom/bluetooth/BluetoothHidManager.cpp, line 77 22:39:49 INFO - 06-29 05:38:25.145 656 656 I Gecko : [Parent 656] ###!!! ASSERTION: Using observer service after XPCOM shutdown!: 'Error', file ../../../gecko/xpcom/ds/nsObserverService.cpp, line 261 22:39:49 INFO - 06-29 05:38:25.165 656 656 I Gecko : [Parent 656] ###!!! ASSERTION: Using observer service after XPCOM shutdown!: 'Error', file ../../../gecko/xpcom/ds/nsObserverService.cpp, line 261 22:39:49 INFO - 06-29 05:38:25.165 656 656 I Gecko : [Parent 656] WARNING: Failed to remove observers!: file ../../../gecko/dom/bluetooth/bluez/BluetoothHfpManager.cpp, line 479 22:39:49 INFO - 06-29 05:38:25.185 656 656 I Gecko : [Parent 656] ###!!! ASSERTION: Using observer service after XPCOM shutdown!: 'Error', file ../../../gecko/xpcom/ds/nsObserverService.cpp, line 261 22:39:49 INFO - 06-29 05:38:25.205 656 656 I Gecko : [Parent 656] WARNING: NS_ENSURE_TRUE(obs) failed: file ../../../../gecko/dom/system/gonk/AudioManager.cpp, line 484 22:39:49 INFO - 06-29 05:38:31.466 656 656 I Gecko : [Parent 656] WARNING: unable to Flush() dirty datasource during XPCOM shutdown: file ../../../../gecko/rdf/base/src/nsRDFXMLDataSource.cpp, line 747 22:39:49 INFO - 06-29 05:38:39.475 656 656 I Gecko : --DOMWINDOW == 3 (0x49251a80) [pid = 656] [serial = 5] [outer = 0x0] [url = app://test-container.gaiamobile.org/index.html] 22:39:49 INFO - 06-29 05:38:39.486 656 656 I Gecko : --DOMWINDOW == 2 (0x4459c520) [pid = 656] [serial = 3] [outer = 0x0] [url = app://test-container.gaiamobile.org/index.html] 22:39:49 INFO - 06-29 05:38:42.145 656 656 I Gecko : [Parent 656] WARNING: Leaking the RDF Service.: file ../../../gecko/rdf/build/nsRDFModule.cpp, line 165 22:39:49 INFO - 06-29 05:38:42.205 656 656 I Gecko : [Parent 656] ###!!! ASSERTION: Component Manager being held past XPCOM shutdown.: 'cnt == 0', file ../../../gecko/xpcom/build/nsXPComInit.cpp, line 957 22:39:49 INFO - 06-29 05:38:42.205 656 656 I Gecko : [Parent 656] WARNING: '!compMgr', file /builds/slave/b2g_b2g-in_emu-d_dep-000000000/build/gecko/xpcom/glue/nsComponentManagerUtils.cpp, line 62 22:39:49 INFO - 06-29 05:38:42.298 656 656 I Gecko : [Parent 656] WARNING: XPCOM objects created/destroyed from static ctor/dtor: file ../../../gecko/xpcom/base/nsTraceRefcnt.cpp, line 144 22:39:49 INFO - 06-29 05:38:42.298 656 656 I Gecko : [Parent 656] WARNING: XPCOM objects created/destroyed from static ctor/dtor: file ../../../gecko/xpcom/base/nsTraceRefcnt.cpp, line 144 22:39:49 INFO - 06-29 05:38:42.305 656 656 I Gecko : [Parent 656] WARNING: XPCOM objects created/destroyed from static ctor/dtor: file ../../../gecko/xpcom/base/nsTraceRefcnt.cpp, line 144 22:39:49 INFO - 06-29 05:38:42.305 656 656 I Gecko : [Parent 656] WARNING: XPCOM objects created/destroyed from static ctor/dtor: file ../../../gecko/xpcom/base/nsTraceRefcnt.cpp, line 144 22:39:49 INFO - 06-29 05:38:42.305 656 656 I Gecko : [Parent 656] WARNING: XPCOM objects created/destroyed from static ctor/dtor: file ../../../gecko/xpcom/base/nsTraceRefcnt.cpp, line 144 22:39:49 INFO - 06-29 05:38:42.305 656 656 I Gecko : [Parent 656] WARNING: XPCOM objects created/destroyed from static ctor/dtor: file ../../../gecko/xpcom/base/nsTraceRefcnt.cpp, line 144 22:39:49 INFO - 06-29 05:38:42.326 656 656 I Gecko : [Parent 656] WARNING: XPCOM objects created/destroyed from static ctor/dtor: file ../../../gecko/xpcom/base/nsTraceRefcnt.cpp, line 144 22:39:49 INFO - 06-29 05:38:42.326 656 656 I Gecko : [Parent 656] WARNING: XPCOM objects created/destroyed from static ctor/dtor: file ../../../gecko/xpcom/base/nsTraceRefcnt.cpp, line 144 22:39:49 INFO - 06-29 05:38:42.336 656 656 I Gecko : [Parent 656] WARNING: XPCOM objects created/destroyed from static ctor/dtor: file ../../../gecko/xpcom/base/nsTraceRefcnt.cpp, line 144 22:39:49 INFO - 06-29 05:38:42.436 33 33 I ServiceManager: service 'media.resource_manager' died 22:39:49 INFO - 06-29 05:38:42.436 33 33 I ServiceManager: service 'permission' died 22:39:49 INFO - Return code: 0 22:39:49 INFO - Running command: ['ps', '-C', 'emulator'] 22:39:49 INFO - Copy/paste: ps -C emulator 22:39:49 INFO - PID TTY TIME CMD 22:39:49 ERROR - Return code: 1 22:39:49 INFO - Running command: ['/builds/slave/test/build/emulator/b2g-distro/out/host/linux-x86/bin/adb', 'devices'] 22:39:49 INFO - Copy/paste: /builds/slave/test/build/emulator/b2g-distro/out/host/linux-x86/bin/adb devices 22:39:49 INFO - List of devices attached 22:39:49 INFO - Return code: 0 22:39:49 INFO - Copying /builds/slave/test/build/emulator-5554.log to /builds/slave/test/build/blobber_upload_dir/emulator-5554.log 22:39:49 INFO - Copying /builds/slave/test/build/qemu.log to /builds/slave/test/build/blobber_upload_dir/qemu.log 22:39:49 INFO - TinderboxPrint: mochitest<br/><em class="testfail">T-FAIL</em> 22:39:49 WARNING - # TBPL WARNING # 22:39:49 WARNING - The mochitest suite: mochitest-12 ran with return status: WARNING 22:39:49 INFO - Running post-action listener: _resource_record_post_action 22:39:49 INFO - Running post-run listener: _resource_record_post_run 22:39:50 INFO - Total resource usage - Wall time: 835s; CPU: 92.0%; Read bytes: 34938880; Write bytes: 190173184; Read time: 7232; Write time: 392476 22:39:50 INFO - install - Wall time: 0s; CPU: Can't collect data; Read bytes: 0; Write bytes: 0; Read time: 0; Write time: 0 22:39:50 INFO - run-tests - Wall time: 835s; CPU: 92.0%; Read bytes: 30986240; Write bytes: 189534208; Read time: 6964; Write time: 392400 22:39:50 INFO - Running post-run listener: _upload_blobber_files 22:39:50 INFO - Blob upload gear active. 22:39:50 INFO - Preparing to upload files from /builds/slave/test/build/blobber_upload_dir. 22:39:50 INFO - Files from /builds/slave/test/build/blobber_upload_dir are to be uploaded with <b2g-inbound> branch at the following location(s): https://blobupload.elasticbeanstalk.com 22:39:50 INFO - Running command: ['/builds/slave/test/build/venv/bin/python', '/builds/slave/test/build/venv/bin/blobberc.py', '-u', 'https://blobupload.elasticbeanstalk.com', '-a', '/builds/slave/test/oauth.txt', '-b', 'b2g-inbound', '-d', '/builds/slave/test/build/blobber_upload_dir'] 22:39:50 INFO - Copy/paste: /builds/slave/test/build/venv/bin/python /builds/slave/test/build/venv/bin/blobberc.py -u https://blobupload.elasticbeanstalk.com -a /builds/slave/test/oauth.txt -b b2g-inbound -d /builds/slave/test/build/blobber_upload_dir 22:39:51 INFO - (blobuploader) - INFO - Open directory for files ... 22:39:51 INFO - (blobuploader) - INFO - Uploading /builds/slave/test/build/blobber_upload_dir/qemu.log ... 22:39:51 INFO - (blobuploader) - INFO - Using https://blobupload.elasticbeanstalk.com 22:39:51 INFO - (blobuploader) - INFO - Uploading, attempt #1. 22:39:52 INFO - (blobuploader) - INFO - TinderboxPrint: <a href='http://mozilla-releng-blobs.s3.amazonaws.com/blobs/b2g-inbound/sha512/bd3f49cec0f3bce15a2351853361ab283ca9a0aa6d26d3d3b9ff179e429d629ea81f07102fc935bfaf9d13c9b8842a4c9c79cd84ced250536c8a997fdbf95dbc'>qemu.log</a>: uploaded 22:39:52 INFO - (blobuploader) - INFO - Blobserver returned 202. File uploaded! 22:39:52 INFO - (blobuploader) - INFO - Done attempting. 22:39:52 INFO - (blobuploader) - INFO - Uploading /builds/slave/test/build/blobber_upload_dir/emulator-5554.log ... 22:39:52 INFO - (blobuploader) - INFO - Using https://blobupload.elasticbeanstalk.com 22:39:52 INFO - (blobuploader) - INFO - Uploading, attempt #1. 22:39:53 INFO - (blobuploader) - INFO - TinderboxPrint: <a href='http://mozilla-releng-blobs.s3.amazonaws.com/blobs/b2g-inbound/sha512/b58e70108a2bcce6c5185e92ad4bcc25f1dedbc4814f8458630b68f68c1f34c1c9097b58253a4688afd9a5610bab1f2e21a3068cd62a6ce43ef8b592844c1b13'>emulator-5554.log</a>: uploaded 22:39:53 INFO - (blobuploader) - INFO - Blobserver returned 202. File uploaded! 22:39:53 INFO - (blobuploader) - INFO - Done attempting. 22:39:53 INFO - (blobuploader) - INFO - Iteration through files over. 22:39:53 INFO - Return code: 0 22:39:53 INFO - Copying logs to upload dir... 22:39:53 INFO - mkdir: /builds/slave/test/build/upload/logs program finished with exit code 1
Near as I could tell, this started on m-c with the merge from m-i in https://tbpl.mozilla.org/?rev=afa67a2f7905, despite not having happened on m-i. My theory, since I'd previously clobbered m-i, was that something in that merge needed a clobber, so I clobbered everything and it looked to be slowing down, but then the one in https://tbpl.mozilla.org/?tree=Mozilla-Inbound&rev=e453f32c9c75 was pretty firmly post-clobber.
I'll investigate this today. Current guess is its related to this earlier in the log: [Child 730] WARNING: Called close() before start()!: 'mStarted', file ../../../gecko/dom/workers/MessagePort.cpp, line 214 Which may be a case we did not consider in the code.
Assignee: nobody → bkelly
Status: NEW → ASSIGNED
The failing test does this: var port = new SharedWorker('data:application/javascript,1').port; port.close(); SpecialPowers.forceGC(); ok(true, "No crash \\o/"); So definitely seems possible we are hitting some race related to "closed before we started".
(Tweaking summary to make this TBPL starrable)
Summary: Intermittent MOZ_Assert: Assertion failure: mActorDestroyed (ChildImpl::ActorDestroy not called in time), at ../../../gecko/ipc/glue/BackgroundImpl.cpp:380 → Intermittent B2G debug mochitest-12 "MOZ_Assert: Assertion failure: mActorDestroyed (ChildImpl::ActorDestroy not called in time), at ipc/glue/BackgroundImpl.cpp:380" ("Return code: 1")
(In reply to Ed Morley [:edmorley UTC+0] from comment #7) > (Tweaking summary to make this TBPL starrable) Bah I've just remembered we blacklisted "Return code: 1" (it had too many results).
Summary: Intermittent B2G debug mochitest-12 "MOZ_Assert: Assertion failure: mActorDestroyed (ChildImpl::ActorDestroy not called in time), at ipc/glue/BackgroundImpl.cpp:380" ("Return code: 1") → Intermittent B2G debug mochitest-12 "MOZ_Assert: Assertion failure: mActorDestroyed (ChildImpl::ActorDestroy not called in time), at ipc/glue/BackgroundImpl.cpp:380"
Spent most of today trying to reproduce locally, but unfortunately haven't had any luck. I got an emulator build running, but it won't reproduce on my fast dev machine. I'm going to fall back to try-debugging.
Unsure if it's related, but this just failed on OSX with the same assertion failure: https://tbpl.mozilla.org/php/getParsedLog.php?id=42808855&tree=Mozilla-Inbound I filed it as bug 1032605 in case it's a separate issue.
I've found at least one problem where this assert is incorrect if we trigger a shutdown before the actor is opened. I'm testing a bunch of try pushes to see if this is the main issue now.
Debugging this through try is going slow, but this patch might help. It attempts to handle asynchronous ActorDestroy() calls which can happen under certain error conditions. https://tbpl.mozilla.org/?tree=Try&rev=aaf02d4d0ec6
Finally got some good debug out that shows that this error is occurring because we take this path: http://dxr.mozilla.org/mozilla-central/source/ipc/glue/MessageChannel.cpp#1664 Which is the async path comment 29 tries to fix. That patch is looking good so far, but I want to do a number of retriggers to see if I can get any of these failures to re-occur.
Unfortunately that patch seems to have trouble on the b2g debug emulator for some reason. Again, this does not reproduce on my local debug emulator build. Very frustrating. Debugging on try is so slow I'm starting to lean towards a backout for now.
Just an update. I still feel the solution here is making the code support async ActorDestroy(). I'm working through the issues with that in the debugger now. If I don't have a patch by the end of today, then I'll back out bug 1013571 until I can resolve this.
I have a solution that solves things in the debugger. I will have a new try build up shortly.
Updated patch and try build: https://tbpl.mozilla.org/?tree=Try&rev=a0e05edae990 Asking for review immediately since these fixes will be needed no matter what. We must handle async MessageChannel::Close() in the error case and we must fix DoWorkRunnable::Cancel().
Attachment #8448877 - Attachment is obsolete: true
Attachment #8450250 - Flags: review?(bent.mozilla)
Comment on attachment 8450250 [details] [diff] [review] Handle async ActorDestroy() callback when closing PBackground. (v1) Review of attachment 8450250 [details] [diff] [review]: ----------------------------------------------------------------- ::: ipc/glue/BackgroundImpl.cpp @@ +410,5 @@ > static BackgroundChildImpl::ThreadLocal* > GetThreadLocalForCurrentThread(); > > + void > + DoRelease() Nit: Let's call this "ProxyReleaseToMainThread" @@ +424,5 @@ > + if (mActorDestroyed) { > + DoRelease(); > + return; > + } > + mReleaseOnActorDestroy = true; Please assert that this is false first. @@ +440,5 @@ > + // handle both. ReleaseOnActorDestroy() will free the actor > + // immediately in the sync case or defer until ActorDestroy in the > + // async case. > + ChildImpl* actor; > + threadLocalInfo->mActor.forget(&actor); Rather than increasing the refcount for an unbounded time lets add a self-ref nsRefPtr that gets set in this case. @@ +452,5 @@ > DispatchFailureCallback(nsIEventTarget* aEventTarget); > > // This class is reference counted. > ~ChildImpl() > { Can't we keep this? @@ +2021,1 @@ > mActorDestroyed = true; Hm, why'd you change the order here? ::: ipc/glue/MessagePump.cpp @@ +60,5 @@ > NS_DECL_NSICANCELABLERUNNABLE > > + // The pump reuses the same DoWorkRunnable object, so allow > + // the cancel to be cleared before rescheduling. > + void ClearCancel() This is racy... Let's remove all the canceled flags since this is a runnable that gets reused
Attachment #8450250 - Flags: review?(bent.mozilla) → review-
(In reply to ben turner [:bent] (use the needinfo? flag!) from comment #55) > Can't we keep this? Er, there was an assertion there before, now it's gone.
Updated patch with review feedback. I might have gone overboard with the comments. https://tbpl.mozilla.org/?tree=Try&rev=e7a200c07c2d
Attachment #8450250 - Attachment is obsolete: true
Attachment #8450315 - Flags: review?(bent.mozilla)
Comment on attachment 8450315 [details] [diff] [review] Handle async ActorDestroy() callback when closing PBackground. (v2) Review of attachment 8450315 [details] [diff] [review]: ----------------------------------------------------------------- ::: ipc/glue/BackgroundImpl.cpp @@ +413,5 @@ > + ProxyReleaseToMainThread() > + { > + // ChildImpl uses non-threadsafe ref counts, so we must release on > + // the same thread where it was created; the main thread. > + mSelfRefWhileWaitingForActorDestroy.forget(); Nit: I'd prefer you forget() to a stack ChildImpl* that you then pass to NS_NewNonOwningRunnableMethod. @@ +427,5 @@ > + MOZ_ASSERT(!mSelfRefWhileWaitingForActorDestroy); > + mSelfRefWhileWaitingForActorDestroy = this; > + if (mActorDestroyed) { > + ProxyReleaseToMainThread(); > + return; Nit: No need for this return anymore. @@ +445,5 @@ > + // immediately in the sync case or defer until ActorDestroy in the > + // async case. > + ChildImpl* actor; > + threadLocalInfo->mActor.forget(&actor); > + actor->ReleaseOnActorDestroy(); This will leak, you're going to have two refs now...
Attachment #8450315 - Flags: review?(bent.mozilla) → review-
Attachment #8450315 - Attachment is obsolete: true
Attachment #8450399 - Flags: review?(bent.mozilla)
Comment on attachment 8450399 [details] [diff] [review] Handle async ActorDestroy() callback when closing PBackground. (v3) Review of attachment 8450399 [details] [diff] [review]: ----------------------------------------------------------------- r=me with these fixes, thanks a ton! ::: ipc/glue/BackgroundImpl.cpp @@ +409,5 @@ > static BackgroundChildImpl::ThreadLocal* > GetThreadLocalForCurrentThread(); > > + void > + ProxyReleaseToMainThread() Nit: This is only called once now so let's remove the method and inline it into ActorDestroy. @@ +414,5 @@ > + { > + // ChildImpl uses non-threadsafe ref counts, so we must release on > + // the same thread where it was created; the main thread. > + ChildImpl* actor; > + mSelfRefWhileWaitingForActorDestroy.forget(&actor); Nit: MOZ_ASSERT(actor) here, and then add a newline after. @@ +433,5 @@ > + // released automatically when ActorDestroy() is called; either > + // immediately or later. > + ChildImpl* actor; > + threadLocalInfo->mActor.forget(&actor); > + MOZ_ASSERT(!actor->mSelfRefWhileWaitingForActorDestroy); Nit: Please add a newline above here. @@ +435,5 @@ > + ChildImpl* actor; > + threadLocalInfo->mActor.forget(&actor); > + MOZ_ASSERT(!actor->mSelfRefWhileWaitingForActorDestroy); > + actor->mSelfRefWhileWaitingForActorDestroy = dont_AddRef(actor); > + actor->Close(); Nit: and here @@ +2011,5 @@ > ChildImpl::ActorDestroy(ActorDestroyReason aWhy) > { > AssertIsOnBoundThread(); > > mActorDestroyed = true; Nit: Can you add a MOZ_ASSERT(!mActorDestroyed) before this please? @@ +2013,5 @@ > AssertIsOnBoundThread(); > > mActorDestroyed = true; > BackgroundChildImpl::ActorDestroy(aWhy); > + if (mSelfRefWhileWaitingForActorDestroy) { Nit: Newline above here.
Attachment #8450399 - Flags: review?(bent.mozilla) → review+
Updated with review feedback. One last try build for sanity: https://tbpl.mozilla.org/?tree=Try&rev=fc84d80ce4e4 I also verified the patch again in the debugger.
Attachment #8450399 - Attachment is obsolete: true
Attachment #8450417 - Flags: review+
There is still a race... try is unhappy.
Updated to delay the start of release until ActorDestroy call stack has completed. I'm short on time at the moment, so this is only lightly tested locally. Here is the try build: https://tbpl.mozilla.org/?tree=Try&rev=0f91738896b3
Attachment #8450417 - Attachment is obsolete: true
Attachment #8450556 - Flags: review?(bent.mozilla)
Comment on attachment 8450556 [details] [diff] [review] Handle async ActorDestroy() callback when closing PBackground. (v5) Review of attachment 8450556 [details] [diff] [review]: ----------------------------------------------------------------- I think this is ok, but there are some cases we won't handle properly still. Whether they're possible or not... I don't know. See below for places to add assertions. ::: ipc/glue/BackgroundImpl.cpp @@ +353,5 @@ > nsIThread* mBoundThread; > #endif > > + bool mActorDestroyed; > + nsRefPtr<ChildImpl> mSelfRefWhileWaitingForActorDestroy; Nit: put the bool last. @@ +414,5 @@ > > static void > ThreadLocalDestructor(void* aThreadLocal) > { > auto threadLocalInfo = static_cast<ThreadLocalInfo*>(aThreadLocal); We may need some additional state here... If the thread is really going away (as opposed to if we're calling CloseForCurrentThread()) then this code is going to not work at all... Maybe we shouldn't have to worry about it yet since we should always call CloseForCurrentThread() before the thread dies. @@ +428,3 @@ > > + MOZ_ASSERT(!actor->mSelfRefWhileWaitingForActorDestroy); > + actor->mSelfRefWhileWaitingForActorDestroy = dont_AddRef(actor); Hmm... So what happens here if mActorDestroyed is already true? I think this case is also possible... Maybe MOZ_ASSERT(!mActorDestroyed) for now to see if we have to worry about it? @@ +793,5 @@ > + } > + > + NS_DECL_ISUPPORTS > + NS_DECL_NSIRUNNABLE > + NS_DECL_NSICANCELABLERUNNABLE Nit: These two runnable DECLS should be moved after the destructor in the private section @@ +798,5 @@ > + > +private: > + ~DelayedReleaseRunnable() > + { > + } Nit: { } @@ +1948,5 @@ > + > + AutoRestore<bool> restore(mCallingRunWhileCanceled); > + mCallingRunWhileCanceled = true; > + > + Run(); Nit: MOZ_ALWAYS_TRUE(NS_SUCCEEDED(Run())); @@ +2074,3 @@ > BackgroundChildImpl::ActorDestroy(aWhy); > + > + if (mSelfRefWhileWaitingForActorDestroy) { This should always be set now, right? Unless we're somehow being called not from ThreadLocalDestructor... Maybe you should just assert this currently. @@ +2077,5 @@ > + // We need to release, but there is additional teardown work for the actor > + // after leaving ActorDestroy(). Therefore, dispatch to the current thread > + // to guarantee this work has completed before starting the release. > + nsCOMPtr<nsIRunnable> delayedRelease = > + new ChildImpl::DelayedReleaseRunnable(mSelfRefWhileWaitingForActorDestroy.forget()); Nit: No need for 'ChildImpl::'
Attachment #8450556 - Flags: review?(bent.mozilla) → review+
I guess this doesn't handle the case where the parent side closes the actor. In that case we would get ActorDestroy() prior to ThreadLocalDestructor, right? As I understand it, though, that can't happen since it would mean the parent process is closing before the child process.
Updated for review feedback. https://tbpl.mozilla.org/?tree=Try&rev=da0512893f3e I will wait for try build and some extra pushes to go green before landing. Hope to do so later tonight, though.
Attachment #8450556 - Attachment is obsolete: true
Attachment #8450633 - Flags: review+
Summary: Intermittent B2G debug mochitest-12 "MOZ_Assert: Assertion failure: mActorDestroyed (ChildImpl::ActorDestroy not called in time), at ipc/glue/BackgroundImpl.cpp:380" → Intermittent B2G debug mochitest-9,12 "MOZ_Assert: Assertion failure: mActorDestroyed (ChildImpl::ActorDestroy not called in time), at ipc/glue/BackgroundImpl.cpp:380"
We still have a problem. We now have a race between when we dispatch DelayedReleaseRunnable to the current thread and when mWorkerPrivate gets set to null. Unfortunately the worker thread requires an mWorkerPrivate to dispatch a runnable to itself. I tried spinning on the NS_ProcessNextEvent() in ThreadLocalDestructor(), but this hit more assertions due to the worker private being torn down. Its painful, but it seems we need to bounce three times here. Worker->Main, Main->Worker, Worker->Main. Or create a worker state where we can dispatch to ourselves.
I pushed a backout of bug 1013571 to mozilla-inbound. See bug 1013571 comment 58. I don't know if we want to keep this bug open because of all the review info or move the relanding discussion back over to bug 1013571.
Here's a different approach to dealing with the async Close() which should avoid all of these races. Here we spin the event loop and essentially block in the ThreadLocalDestructor until we see mActorDestroyed go true. This simplifies things and avoids the need to add all the extra bounces, etc. Let's see how try does: https://tbpl.mozilla.org/?tree=Try&rev=dbcd0cef2cce
Attachment #8450633 - Attachment is obsolete: true
Since the original patch was backed out, I think this is fixed for now. I'm moving patch review stuff back to bug 1013571 now that its reopened.
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: