Closed Bug 1604593 Opened 3 years ago Closed 3 years ago

Intermittent [tier2] GECKO(1115) | Assertion failure: IsWindowProxy(obj), at /builds/worker/workspace/build/src/js/src/vm/Compartment.cpp:247

Categories

(Core :: JavaScript Engine, defect, P3)

defect

Tracking

()

RESOLVED FIXED
Fission Milestone M6
Tracking Status
firefox73 --- disabled
firefox74 --- disabled
firefox75 --- fixed

People

(Reporter: intermittent-bug-filer, Assigned: mccr8)

References

Details

(Keywords: intermittent-failure)

Attachments

(2 files)

Filed by: nerli [at] mozilla.com
Parsed log: https://treeherder.mozilla.org/logviewer.html#?job_id=281582578&repo=mozilla-central
Full log: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/LQoO9xzrR8ezROtOZI5pDA/runs/0/artifacts/public/logs/live_backing.log


[task 2019-12-17T18:11:05.788Z] 18:11:05 INFO - TEST-START | devtools/client/webconsole/test/browser/browser_webconsole_block_mixedcontent_securityerrors.js
[task 2019-12-17T18:11:05.933Z] 18:11:05 INFO - GECKO(1115) | [Child 1987: Main Thread]: I/DocShellAndDOMWindowLeak --DOCSHELL 0x7f32638d2800 == 0 [pid = 1987] [id = {1dc04f68-a72e-4a76-a711-57c911ce8d06}] [url = http://example.com/browser/devtools/client/webconsole/test/browser/test-batching.html]
[task 2019-12-17T18:11:06.094Z] 18:11:06 INFO - GECKO(1115) | ### XPCOM_MEM_BLOAT_LOG defined -- logging bloat/leaks to /tmp/tmpeALGdu.mozrunner/runtests_leaks_tab_pid2013.log
[task 2019-12-17T18:11:06.135Z] 18:11:06 INFO - GECKO(1115) | [Child 2013, Main Thread] WARNING: No CID found when attempting to map contract ID: file /builds/worker/workspace/build/src/xpcom/components/nsComponentManager.cpp, line 727
[task 2019-12-17T18:11:06.191Z] 18:11:06 INFO - GECKO(1115) | [Child 1987: Main Thread]: I/DocShellAndDOMWindowLeak --DOMWINDOW == 1 (0x7f32648dbf20) [pid = 1987] [serial = 1] [outer = (nil)] [url = http://example.com/browser/devtools/client/webconsole/test/browser/test-batching.html]
[task 2019-12-17T18:11:06.192Z] 18:11:06 INFO - GECKO(1115) | [Child 1987: Main Thread]: I/DocShellAndDOMWindowLeak --DOMWINDOW == 0 (0x7f326347b400) [pid = 1987] [serial = 3] [outer = (nil)] [url = http://example.com/browser/devtools/client/webconsole/test/browser/test-batching.html]
[task 2019-12-17T18:11:06.235Z] 18:11:06 INFO - GECKO(1115) | [Child 1987, Main Thread] WARNING: Extra shutdown CC: 'i < NORMAL_SHUTDOWN_COLLECTIONS', file /builds/worker/workspace/build/src/xpcom/base/nsCycleCollector.cpp, line 3361
[task 2019-12-17T18:11:06.318Z] 18:11:06 INFO - GECKO(1115) | nsStringStats
[task 2019-12-17T18:11:06.319Z] 18:11:06 INFO - GECKO(1115) | => mAllocCount: 14006
[task 2019-12-17T18:11:06.320Z] 18:11:06 INFO - GECKO(1115) | => mReallocCount: 0
[task 2019-12-17T18:11:06.321Z] 18:11:06 INFO - GECKO(1115) | => mFreeCount: 14006
[task 2019-12-17T18:11:06.322Z] 18:11:06 INFO - GECKO(1115) | => mShareCount: 12245
[task 2019-12-17T18:11:06.323Z] 18:11:06 INFO - GECKO(1115) | => mAdoptCount: 696
[task 2019-12-17T18:11:06.323Z] 18:11:06 INFO - GECKO(1115) | => mAdoptFreeCount: 700
[task 2019-12-17T18:11:06.324Z] 18:11:06 INFO - GECKO(1115) | => Process ID: 1987, Thread ID: 139854856202048
[task 2019-12-17T18:11:06.339Z] 18:11:06 INFO - GECKO(1115) | Couldn't convert chrome URL: chrome://branding/locale/brand.properties
[task 2019-12-17T18:11:06.380Z] 18:11:06 INFO - GECKO(1115) | [Parent 1115: Main Thread]: I/DocShellAndDOMWindowLeak --DOMWINDOW == 23 (0x7fee128f03e0) [pid = 1115] [serial = 773] [outer = (nil)] [url = chrome://devtools/content/webconsole/index.html]
[task 2019-12-17T18:11:06.380Z] 18:11:06 INFO - GECKO(1115) | [Parent 1115: Main Thread]: I/DocShellAndDOMWindowLeak --DOCSHELL 0x7fee1374b800 == 8 [pid = 1115] [id = {80104327-ad42-4ef5-a84e-18767004a3ad}] [url = chrome://devtools/content/webconsole/index.html]
[task 2019-12-17T18:11:06.382Z] 18:11:06 INFO - GECKO(1115) | [Parent 1115: Main Thread]: I/DocShellAndDOMWindowLeak --DOCSHELL 0x7fee12561800 == 7 [pid = 1115] [id = {79747750-956b-48ca-877c-a2b7f4c0a750}] [url = chrome://devtools/content/webconsole/index.html]
[task 2019-12-17T18:11:06.529Z] 18:11:06 INFO - GECKO(1115) | [Child 2013, Main Thread] WARNING: could not set real-time limit at process startup: file /builds/worker/workspace/build/src/dom/ipc/ContentChild.cpp, line 1819
[task 2019-12-17T18:11:06.535Z] 18:11:06 INFO - GECKO(1115) | [Child 2013: Main Thread]: I/DocShellAndDOMWindowLeak ++DOCSHELL 0x7fb5f97d2800 == 1 [pid = 2013] [id = {f19f5feb-9003-4bb7-b4e1-897999a9c3e4}]
[task 2019-12-17T18:11:06.586Z] 18:11:06 INFO - GECKO(1115) | [Parent 1115: Main Thread]: I/DocShellAndDOMWindowLeak --DOMWINDOW == 22 (0x7fee128f0020) [pid = 1115] [serial = 769] [outer = (nil)] [url = about:devtools-toolbox]
[task 2019-12-17T18:11:06.586Z] 18:11:06 INFO - GECKO(1115) | [Parent 1115: Main Thread]: I/DocShellAndDOMWindowLeak --DOMWINDOW == 21 (0x7fee06439b60) [pid = 1115] [serial = 767] [outer = (nil)] [url = chrome://devtools/content/webconsole/index.html]
[task 2019-12-17T18:11:06.587Z] 18:11:06 INFO - GECKO(1115) | [Parent 1115: Main Thread]: I/DocShellAndDOMWindowLeak --DOMWINDOW == 20 (0x7fee064395c0) [pid = 1115] [serial = 763] [outer = (nil)] [url = about:devtools-toolbox]
[task 2019-12-17T18:11:06.664Z] 18:11:06 INFO - GECKO(1115) | [Child 2013: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 1 (0x7fb5fa6b2f20) [pid = 2013] [serial = 1] [outer = (nil)]
[task 2019-12-17T18:11:06.664Z] 18:11:06 INFO - GECKO(1115) | [Child 2013, Main Thread] WARNING: NS_ENSURE_TRUE(mPresShell) failed: file /builds/worker/workspace/build/src/layout/base/nsPresContext.cpp, line 848
[task 2019-12-17T18:11:06.665Z] 18:11:06 INFO - GECKO(1115) | [Child 2013: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 2 (0x7fb5f9371400) [pid = 2013] [serial = 2] [outer = 0x7fb5fa6b2f20]
[task 2019-12-17T18:11:06.827Z] 18:11:06 INFO - GECKO(1115) | [Parent 1115, Main Thread] WARNING: we only accept nsIURI interface type, patch welcome: file /builds/worker/workspace/build/src/dom/ipc/PropertyBagUtils.cpp, line 112
[task 2019-12-17T18:11:06.829Z] 18:11:06 INFO - GECKO(1115) | [Child 2013, Main Thread] WARNING: Trying to request nsIHttpChannel from DocumentChannelChild, this is likely broken: file /builds/worker/workspace/build/src/netwerk/ipc/DocumentChannelChild.cpp, line 63
[task 2019-12-17T18:11:06.865Z] 18:11:06 INFO - GECKO(1115) | [Child 2013: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 3 (0x7fb5f937c800) [pid = 2013] [serial = 3] [outer = 0x7fb5fa6b2f20]
[task 2019-12-17T18:11:06.886Z] 18:11:06 INFO - GECKO(1115) | [Child 2013, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x805E0006: file /builds/worker/workspace/build/src/dom/security/nsContentSecurityManager.cpp, line 906
[task 2019-12-17T18:11:06.887Z] 18:11:06 INFO - GECKO(1115) | [Child 2013, Main Thread] WARNING: 'NS_FAILED(rv)', file /builds/worker/workspace/build/src/netwerk/protocol/http/HttpChannelChild.cpp, line 2434
[task 2019-12-17T18:11:06.984Z] 18:11:06 INFO - GECKO(1115) | [Child 2013: Main Thread]: I/DocShellAndDOMWindowLeak ++DOCSHELL 0x7fb5f93cd000 == 2 [pid = 2013] [id = {0d378f38-bfd6-499c-97b1-04ca9c9653e3}]
[task 2019-12-17T18:11:06.984Z] 18:11:06 INFO - GECKO(1115) | [Child 2013: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 4 (0x7fb5fa6b2020) [pid = 2013] [serial = 4] [outer = (nil)]
[task 2019-12-17T18:11:06.984Z] 18:11:06 INFO - GECKO(1115) | [Child 2013, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x805E0006: file /builds/worker/workspace/build/src/dom/security/nsContentSecurityManager.cpp, line 906
[task 2019-12-17T18:11:06.984Z] 18:11:06 INFO - GECKO(1115) | [Child 2013, Main Thread] WARNING: 'NS_FAILED(rv)', file /builds/worker/workspace/build/src/netwerk/protocol/http/HttpChannelChild.cpp, line 2434
[task 2019-12-17T18:11:06.984Z] 18:11:06 INFO - GECKO(1115) | [Child 2013, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x805E0006: file /builds/worker/workspace/build/src/dom/security/nsContentSecurityManager.cpp, line 906
[task 2019-12-17T18:11:06.984Z] 18:11:06 INFO - GECKO(1115) | [Child 2013, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x805E0006: file /builds/worker/workspace/build/src/netwerk/ipc/DocumentChannelChild.cpp, line 119
[task 2019-12-17T18:11:06.984Z] 18:11:06 INFO - GECKO(1115) | [Child 2013, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x805E0006: file /builds/worker/workspace/build/src/docshell/base/nsDocShell.cpp, line 10269
[task 2019-12-17T18:11:06.984Z] 18:11:06 INFO - GECKO(1115) | [Child 2013: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 5 (0x7fb5fa4d4800) [pid = 2013] [serial = 5] [outer = 0x7fb5fa6b2020]
[task 2019-12-17T18:11:06.999Z] 18:11:06 INFO - GECKO(1115) | [Child 2013, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x805E0006: file /builds/worker/workspace/build/src/dom/base/nsFrameLoader.cpp, line 665
[task 2019-12-17T18:11:07.226Z] 18:11:07 INFO - GECKO(1115) | [Parent 1115: Main Thread]: I/DocShellAndDOMWindowLeak ++DOCSHELL 0x7fee12570000 == 8 [pid = 1115] [id = {3288e534-df1b-4614-95f3-d1cae9b5a8a0}]
[task 2019-12-17T18:11:07.226Z] 18:11:07 INFO - GECKO(1115) | [Parent 1115: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 21 (0x7fee06439b60) [pid = 1115] [serial = 781] [outer = (nil)]
[task 2019-12-17T18:11:07.233Z] 18:11:07 INFO - GECKO(1115) | [Parent 1115: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 22 (0x7fee12864c00) [pid = 1115] [serial = 782] [outer = 0x7fee06439b60]
[task 2019-12-17T18:11:07.255Z] 18:11:07 INFO - GECKO(1115) | [Parent 1115: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 23 (0x7fee12866400) [pid = 1115] [serial = 783] [outer = 0x7fee06439b60]
[task 2019-12-17T18:11:07.303Z] 18:11:07 INFO - GECKO(1115) | [Parent 1115: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 24 (0x7fee1ba93c00) [pid = 1115] [serial = 784] [outer = 0x7fee06439b60]
[task 2019-12-17T18:11:07.424Z] 18:11:07 INFO - GECKO(1115) | [Parent 1115, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005: file /builds/worker/workspace/build/src/dom/base/nsContentUtils.cpp, line 3719
[task 2019-12-17T18:11:07.706Z] 18:11:07 INFO - GECKO(1115) | [Parent 1115: Main Thread]: I/DocShellAndDOMWindowLeak ++DOCSHELL 0x7fee1255d000 == 9 [pid = 1115] [id = {49d2b077-85a8-47b0-8f53-b52152f3a2c6}]
[task 2019-12-17T18:11:07.707Z] 18:11:07 INFO - GECKO(1115) | [Parent 1115: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 25 (0x7fee0643ae20) [pid = 1115] [serial = 785] [outer = (nil)]
[task 2019-12-17T18:11:07.707Z] 18:11:07 INFO - GECKO(1115) | [Parent 1115: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 26 (0x7fee1b398000) [pid = 1115] [serial = 786] [outer = 0x7fee0643ae20]
[task 2019-12-17T18:11:08.067Z] 18:11:08 INFO - GECKO(1115) | [Parent 1115: Main Thread]: I/DocShellAndDOMWindowLeak --DOCSHELL 0x7fee12564800 == 8 [pid = 1115] [id = {488991f2-e47f-46bd-9453-0ff7746fa3c3}] [url = about:devtools-toolbox]
[task 2019-12-17T18:11:08.345Z] 18:11:08 INFO - GECKO(1115) | [Parent 1115, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, nullptr) failed with result 0x804B000A: file /builds/worker/workspace/build/src/extensions/permissions/nsPermission.cpp, line 45
[task 2019-12-17T18:11:08.346Z] 18:11:08 INFO - GECKO(1115) | [Parent 1115, Main Thread] WARNING: '!principal', file /builds/worker/workspace/build/src/netwerk/cookie/CookieSettings.cpp, line 132
[task 2019-12-17T18:11:08.347Z] 18:11:08 INFO - GECKO(1115) | [Parent 1115, Main Thread] WARNING: 'NS_FAILED(rv)', file /builds/worker/workspace/build/src/toolkit/components/antitracking/StorageAccess.cpp, line 33
[task 2019-12-17T18:11:09.271Z] 18:11:09 INFO - GECKO(1115) | [Parent 1115, Main Thread] WARNING: we only accept nsIURI interface type, patch welcome: file /builds/worker/workspace/build/src/dom/ipc/PropertyBagUtils.cpp, line 112
[task 2019-12-17T18:11:09.272Z] 18:11:09 INFO - GECKO(1115) | [Child 2013, Main Thread] WARNING: Trying to request nsIHttpChannel from DocumentChannelChild, this is likely broken: file /builds/worker/workspace/build/src/netwerk/ipc/DocumentChannelChild.cpp, line 63
[task 2019-12-17T18:11:09.272Z] 18:11:09 INFO - GECKO(1115) | [Child 2013, Main Thread] WARNING: Trying to request nsIHttpChannel from DocumentChannelChild, this is likely broken: file /builds/worker/workspace/build/src/netwerk/ipc/DocumentChannelChild.cpp, line 63
[task 2019-12-17T18:11:09.288Z] 18:11:09 INFO - GECKO(1115) | [Child 2013: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 6 (0x7fb5fa642000) [pid = 2013] [serial = 6] [outer = 0x7fb5fa6b2f20]
[task 2019-12-17T18:11:09.289Z] 18:11:09 INFO - GECKO(1115) | [Child 2013, Main Thread] WARNING: Page was shift reloaded, skipping ServiceWorker control: file /builds/worker/workspace/build/src/dom/base/Document.cpp, line 6821
[task 2019-12-17T18:11:09.636Z] 18:11:09 INFO - GECKO(1115) | [Child 2013: Main Thread]: I/DocShellAndDOMWindowLeak ++DOCSHELL 0x7fb5f6c03800 == 3 [pid = 2013] [id = {efe7bf67-9ee8-4260-aaa1-1faf570a5a07}]
[task 2019-12-17T18:11:09.636Z] 18:11:09 INFO - GECKO(1115) | [Child 2013: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 7 (0x7fb5fa6b3a60) [pid = 2013] [serial = 7] [outer = (nil)]
[task 2019-12-17T18:11:09.644Z] 18:11:09 INFO - GECKO(1115) | [Child 2013: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 8 (0x7fb5fa649400) [pid = 2013] [serial = 8] [outer = 0x7fb5fa6b3a60]
[task 2019-12-17T18:11:10.034Z] 18:11:10 INFO - GECKO(1115) | ### XPCOM_MEM_BLOAT_LOG defined -- logging bloat/leaks to /tmp/tmpeALGdu.mozrunner/runtests_leaks_tab_pid2045.log
[task 2019-12-17T18:11:10.055Z] 18:11:10 INFO - GECKO(1115) | [Child 2045, Main Thread] WARNING: No CID found when attempting to map contract ID: file /builds/worker/workspace/build/src/xpcom/components/nsComponentManager.cpp, line 727
[task 2019-12-17T18:11:10.198Z] 18:11:10 INFO - GECKO(1115) | Couldn't convert chrome URL: chrome://branding/locale/brand.properties
[task 2019-12-17T18:11:10.218Z] 18:11:10 INFO - GECKO(1115) | [Child 2013, Main Thread] WARNING: Trying to request nsIHttpChannel from DocumentChannelChild, this is likely broken: file /builds/worker/workspace/build/src/netwerk/ipc/DocumentChannelChild.cpp, line 63
[task 2019-12-17T18:11:10.219Z] 18:11:10 INFO - GECKO(1115) | [Child 2013, Main Thread] WARNING: Trying to request nsIHttpChannel from DocumentChannelChild, this is likely broken: file /builds/worker/workspace/build/src/netwerk/ipc/DocumentChannelChild.cpp, line 63
[task 2019-12-17T18:11:10.219Z] 18:11:10 INFO - GECKO(1115) | [Child 2013, Main Thread] WARNING: NS_ENSURE_TRUE(request) failed: file /builds/worker/workspace/build/src/netwerk/base/nsLoadGroup.cpp, line 574
[task 2019-12-17T18:11:10.294Z] 18:11:10 INFO - GECKO(1115) | Assertion failure: IsWindowProxy(obj), at /builds/worker/workspace/build/src/js/src/vm/Compartment.cpp:247
[task 2019-12-17T18:11:10.398Z] 18:11:10 INFO - GECKO(1115) | [Child 2045, Main Thread] WARNING: could not set real-time limit at process startup: file /builds/worker/workspace/build/src/dom/ipc/ContentChild.cpp, line 1819
[task 2019-12-17T18:11:10.418Z] 18:11:10 INFO - GECKO(1115) | [Child 2045: Main Thread]: I/DocShellAndDOMWindowLeak ++DOCSHELL 0x7f4962fcf000 == 1 [pid = 2045] [id = {efe7bf67-9ee8-4260-aaa1-1faf570a5a07}]
[task 2019-12-17T18:11:10.480Z] 18:11:10 INFO - GECKO(1115) | [Child 2045: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 1 (0x7f4962e84f20) [pid = 2045] [serial = 1] [outer = (nil)]
[task 2019-12-17T18:11:10.483Z] 18:11:10 INFO - GECKO(1115) | [Child 2045, Main Thread] WARNING: NS_ENSURE_TRUE(mPresShell) failed: file /builds/worker/workspace/build/src/layout/base/nsPresContext.cpp, line 848
[task 2019-12-17T18:11:10.484Z] 18:11:10 INFO - GECKO(1115) | [Child 2045: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 2 (0x7f4962a6e400) [pid = 2045] [serial = 2] [outer = 0x7f4962e84f20]
[task 2019-12-17T18:11:13.178Z] 18:11:13 INFO - GECKO(1115) | [Parent 1115: Main Thread]: I/DocShellAndDOMWindowLeak --DOMWINDOW == 25 (0x7fee12558800) [pid = 1115] [serial = 776] [outer = (nil)] [url = about:blank]
[task 2019-12-17T18:11:13.178Z] 18:11:13 INFO - GECKO(1115) | [Parent 1115: Main Thread]: I/DocShellAndDOMWindowLeak --DOMWINDOW == 24 (0x7fee1254b800) [pid = 1115] [serial = 777] [outer = (nil)] [url = about:blank]
[task 2019-12-17T18:11:13.178Z] 18:11:13 INFO - GECKO(1115) | [Parent 1115: Main Thread]: I/DocShellAndDOMWindowLeak --DOMWINDOW == 23 (0x7fee1ba8d800) [pid = 1115] [serial = 772] [outer = (nil)] [url = about:devtools-toolbox]
[task 2019-12-17T18:11:13.178Z] 18:11:13 INFO - GECKO(1115) | [Parent 1115: Main Thread]: I/DocShellAndDOMWindowLeak --DOMWINDOW == 22 (0x7fee1b39ec00) [pid = 1115] [serial = 774] [outer = (nil)] [url = about:blank]
[task 2019-12-17T18:11:13.178Z] 18:11:13 INFO - GECKO(1115) | [Parent 1115: Main Thread]: I/DocShellAndDOMWindowLeak --DOMWINDOW == 21 (0x7fee1283dc00) [pid = 1115] [serial = 768] [outer = (nil)] [url = about:blank]
[task 2019-12-17T18:11:13.178Z] 18:11:13 INFO - GECKO(1115) | [Parent 1115: Main Thread]: I/DocShellAndDOMWindowLeak --DOMWINDOW == 20 (0x7fee1283f400) [pid = 1115] [serial = 766] [outer = (nil)] [url = about:devtools-toolbox]
[task 2019-12-17T18:11:14.048Z] 18:11:14 INFO - GECKO(1115) | [Child 1237: Main Thread]: I/DocShellAndDOMWindowLeak --DOCSHELL 0x7f85a3684800 == 0 [pid = 1237] [id = {54f6bfe9-68d5-4c2a-825a-684e3851c052}] [url = about:blank]
[task 2019-12-17T18:11:14.728Z] 18:11:14 INFO - GECKO(1115) | ###!!! [Parent][MessageChannel] Error: (msgtype=0xB7000A,name=PWindowGlobal::Msg_RawMessage) Channel error: cannot send/recv
[task 2019-12-17T18:11:14.729Z] 18:11:14 INFO - GECKO(1115) | console.warn: "IGNORED REDUX ACTION:" ({type:"AUTOCOMPLETE_CLEAR"})
[task 2019-12-17T18:11:14.736Z] 18:11:14 INFO - GECKO(1115) | ###!!! [Parent][MessageChannel] Error: (msgtype=0x1E0059,name=PBrowser::Msg_UpdateEffects) Channel error: cannot send/recv
[task 2019-12-17T18:11:14.737Z] 18:11:14 INFO - GECKO(1115) | ###!!! [Parent][MessageChannel] Error: (msgtype=0x1E0053,name=PBrowser::Msg_FlushTabState) Channel error: cannot send/recv
[task 2019-12-17T18:11:14.737Z] 18:11:14 INFO - GECKO(1115) | ###!!! [Parent][MessageChannel] Error: (msgtype=0x1E0097,name=PBrowser::Msg_Destroy) Channel error: cannot send/recv
[task 2019-12-17T18:11:14.740Z] 18:11:14 INFO - GECKO(1115) | [Parent 1115, Main Thread] WARNING: '!inner', file /builds/worker/workspace/build/src/dom/ipc/JSWindowActorService.cpp, line 181
[task 2019-12-17T18:11:14.743Z] 18:11:14 INFO - GECKO(1115) | [Parent 1115, Main Thread] WARNING: '!contentChild', file /builds/worker/workspace/build/src/dom/base/ContentBlockingLog.cpp, line 133
[task 2019-12-17T18:11:14.752Z] 18:11:14 INFO - GECKO(1115) | ###!!! [Parent][RunMessage] Error: Channel error: cannot send/recv
[task 2019-12-17T18:11:14.753Z] 18:11:14 INFO - GECKO(1115) | ###!!! [Parent][RunMessage] Error: Channel error: cannot send/recv
[task 2019-12-17T18:11:14.753Z] 18:11:14 INFO - GECKO(1115) | ###!!! [Parent][RunMessage] Error: Channel error: cannot send/recv
[task 2019-12-17T18:11:14.754Z] 18:11:14 INFO - GECKO(1115) | ###!!! [Parent][RunMessage] Error: Channel error: cannot send/recv
[task 2019-12-17T18:11:14.754Z] 18:11:14 INFO - GECKO(1115) | ###!!! [Parent][RunMessage] Error: Channel error: cannot send/recv
[task 2019-12-17T18:11:14.754Z] 18:11:14 INFO - GECKO(1115) | ###!!! [Parent][RunMessage] Error: Channel error: cannot send/recv
[task 2019-12-17T18:11:14.754Z] 18:11:14 INFO - GECKO(1115) | ###!!! [Parent][RunMessage] Error: Channel error: cannot send/recv
[task 2019-12-17T18:11:14.754Z] 18:11:14 INFO - GECKO(1115) | ###!!! [Parent][RunMessage] Error: Channel error: cannot send/recv
[task 2019-12-17T18:11:14.755Z] 18:11:14 INFO - GECKO(1115) | ###!!! [Parent][RunMessage] Error: Channel error: cannot send/recv
[task 2019-12-17T18:11:14.755Z] 18:11:14 INFO - GECKO(1115) | ###!!! [Parent][RunMessage] Error: Channel error: cannot send/recv
[task 2019-12-17T18:11:14.755Z] 18:11:14 INFO - GECKO(1115) | ###!!! [Parent][RunMessage] Error: Channel error: cannot send/recv
[task 2019-12-17T18:11:14.759Z] 18:11:14 INFO - GECKO(1115) | [Parent 1115: Main Thread]: I/DocShellAndDOMWindowLeak --DOMWINDOW == 19 (0x7fee128f0200) [pid = 1115] [serial = 775] [outer = (nil)] [url = about:devtools-toolbox]
[task 2019-12-17T18:11:14.759Z] 18:11:14 INFO - GECKO(1115) | [Parent 1115: Main Thread]: I/DocShellAndDOMWindowLeak --DOCSHELL 0x7fee12570800 == 7 [pid = 1115] [id = {6b4a0002-3291-491e-ae5c-997814c4a6e3}] [url = chrome://devtools/content/webconsole/index.html]
[task 2019-12-17T18:11:14.759Z] 18:11:14 INFO - GECKO(1115) | [Parent 1115: Main Thread]: I/DocShellAndDOMWindowLeak --DOMWINDOW == 18 (0x7fee13705100) [pid = 1115] [serial = 779] [outer = (nil)] [url = chrome://devtools/content/webconsole/index.html]
[task 2019-12-17T18:11:14.840Z] 18:11:14 INFO - GECKO(1115) | [Parent 1115, Main Thread] WARNING: we only accept nsIURI interface type, patch welcome: file /builds/worker/workspace/build/src/dom/ipc/PropertyBagUtils.cpp, line 112
[task 2019-12-17T18:11:14.842Z] 18:11:14 INFO - GECKO(1115) | [Child 2045, Main Thread] WARNING: 'self->mIsBeingDestroyed', file /builds/worker/workspace/build/src/docshell/base/nsDocShell.cpp, line 12781
[task 2019-12-17T18:11:14.878Z] 18:11:14 INFO - GECKO(1115) | ###!!! [Parent][RunMessage] Error: Channel closing: too late to send/recv, messages will be lost
[task 2019-12-17T18:11:14.879Z] 18:11:14 INFO - GECKO(1115) | [Child 2045: Main Thread]: I/DocShellAndDOMWindowLeak --DOCSHELL 0x7f4962fcf000 == 0 [pid = 2045] [id = {efe7bf67-9ee8-4260-aaa1-1faf570a5a07}] [url = about:blank]
[task 2019-12-17T18:11:14.915Z] 18:11:14 INFO - GECKO(1115) | [Parent 1115, Cache2 I/O] WARNING: 'NS_FAILED(aResult)', file /builds/worker/workspace/build/src/netwerk/cache2/CacheFile.cpp, line 651
[task 2019-12-17T18:11:14.974Z] 18:11:14 INFO - GECKO(1115) | MEMORY STAT | vsize 3555MB | residentFast 607MB | heapAllocated 221MB

Flags: needinfo?(jcoppeard)

No, I don't think that's related. It only added some assertions to the GC.

Flags: needinfo?(jcoppeard)

This might be some kind of issue with the JS debugger not dealing with remote window proxies. I'm not sure what might have changed recently that would set that off.

We call ToWindowProxyIfWindow on a Window object (IsWindow returns true). Then we unwrap that (to handle CCWs) and check for dead wrappers. After that we expect the object to be a WindowProxy but it isn't...

This happens I think because we call unsafeDereference() on a Debugger.Object wrapper for a global/window?

After that we expect the object to be a WindowProxy but it isn't...

Hmm. I think at this point the object could be a remote windowproxy instead of a normal WindowProxy there.

I've tried to reproduce this today on the revision in question (930ad6def3c7) and haven't managed to yet.

I'm going to see whether I can get it in Pernosco, perhaps.

OK, with some help from Kyle I got this in Pernosco. https://pernos.co/debug/1Stv_5P3ZP-Z8mQz4iYkDg/index.html#f{m[B3Yv,Eg0/_,t[AjQ,CYE_,f{e[B3Yv,EgnW_,s{afxmNrgAA,bASE,oHaExqg,uHY04Kg___ for a debugging session with some notes attached.

And yes, we are trying to unsafeDereference() a Debugger.Object for different-compartment Window, which is not the active window in its browsing context, and the active window is in another process. So when we to ToWindowProxyIfWindow on it we get a RemoteOuterWindowProxy and that fails the IsWindowProxy assert.

I guess we should do the following:

  1. Audit all callsites of ToWindowProxyIfWindow to make sure they're OK with getting a RemoteOuterWindowProxy.
  2. Audit the downstream wrap code in particular to make sure it's ok with getting a RemoteOuterWindowProxy.
  3. Write a testcase. I'm not sure whether there's a non-debugger way to get here; it's not common for Gecko code to be storing a Window to start with, much less to then try to wrap it into a different compartment. Web IDL APIs that are supposed to return a WindowProxy return the browsing context, not an nsGlobalWindowInner, so can't reach this state.
Fission Milestone: --- → ?

I just checked the uses of ToWindowProxyIfWindow in dom/ and they are fine.

Summary: Perma GECKO(1115) | Assertion failure: IsWindowProxy(obj), at /builds/worker/workspace/build/src/js/src/vm/Compartment.cpp:247 → Intermittent [tier2] GECKO(1115) | Assertion failure: IsWindowProxy(obj), at /builds/worker/workspace/build/src/js/src/vm/Compartment.cpp:247

(In reply to Boris Zbarsky [:bzbarsky, bz on IRC] from comment #6)

  1. Audit all callsites of ToWindowProxyIfWindow to make sure they're OK with getting a RemoteOuterWindowProxy.
  2. Audit the downstream wrap code in particular to make sure it's ok with getting a RemoteOuterWindowProxy.

Andrew, can you please audit the WindowProxy functions bz suggested in comment 6 (or recommend someone else)?

kmag suspects this is debugger bug, possibly related to transplanted windows wrapped in debugger objects.

Nika suggests this bug block Fission Nightly (M6).

Fission Milestone: ? → M6
Flags: needinfo?(continuation)
Priority: P5 → P3

kmag suspects this is debugger bug, possibly related to transplanted windows wrapped in debugger objects.

There's not need to "suspect" that. You can just explicitly see it in the Pernosco trace linked in comment 6. Or could when it still existed...

Sure, I can add this onto my list of things to do.

Flags: needinfo?(continuation)

Sure, I'll look. You could try disabling devtools/client/webconsole/test/browser/browser_webconsole_warning_group_multiples.js under Fission in the meanwhile. The failures look like they are happening with that test.

Flags: needinfo?(continuation)

Looks like it might actually be happening during devtools/client/webconsole/test/browser/browser_webconsole_block_mixedcontent_securityerrors.js? I'm not sure. I haven't been able to reproduce it locally yet.

(In reply to Andrew McCreight [:mccr8] from comment #19)

Looks like it might actually be happening during devtools/client/webconsole/test/browser/browser_webconsole_block_mixedcontent_securityerrors.js? I'm not sure. I haven't been able to reproduce it locally yet.

Looked in ~20 failure logs, might be more, and assertion occurs in browser_webconsole_block_mixedcontent_securityerrors.js

Assignee: nobody → apavel
Status: NEW → ASSIGNED
Pushed by shindli@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/ac6edc02f133
disable browser_webconsole_block_mixedcontent_securityerrors.js on fission r=mccr8
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla75

browser_webconsole_block_mixedcontent_securityerrors.js was only disabled on fission here so re-opening.

Assignee: apavel → nobody
Status: RESOLVED → REOPENED
Keywords: leave-open
Resolution: FIXED → ---
Whiteboard: [stockwell disabled]
Target Milestone: mozilla75 → ---

I'm trying to understand what is going wrong here. Boris's comment 6 about how we should audit call sites for ToWindowProxyIfWindow sounds reasonable to me, but I don't understand how it helps us with this particular crash.

Maybe what is happening here is that we have an outer window O with an inner window I. This means that O is the window proxy of I. Then we navigate O to some other origin that causes it to be moved out of process. This makes us do a brain transplant on O, so that O is now a remote outer window, which means that the window proxy field of I is now a remote window. That seems like it doesn't make much sense. I think that normally this doesn't matter because nobody has a direct reference to an inner window, but apparently these debugger objects do.

Would we have nuked the realm of I on a navigation that didn't make us change processes? That would make js::AllowNewWrapper() return false. It looks like we do call FreeInnerObjects() on the old inner in SetNewDocument(), which would nuke the old inner eventually (if it isn't being bfcached).

Maybe js::AllowNewWrapper() should detect the case where an inner window has a remote window proxy as its "outer". That seems bad.

which means that the window proxy field of I is now a remote window.

Yep.

That seems like it doesn't make much sense.

I think our options are to either make sure this does not happen or to make consumers deal with it. The latter is where auditing ToWindowProxyIfWindow callsites comes in.

Would we have nuked the realm of I on a navigation that didn't make us change processes?

Generally no. Also, if I is bfcached, then when we go back we're going to re-brain-transplant and end up with a real WindowProxy there again, right? Modulo whatever the fission/bfcache interaction is.

which would nuke the old inner eventually

Where?

(In reply to Boris Zbarsky [:bzbarsky, bz on IRC] from comment #27)

I think our options are to either make sure this does not happen or to make consumers deal with it. The latter is where auditing ToWindowProxyIfWindow callsites comes in.

Ah, I see. It just feels kind of bogus to call a function that purports to return the window proxy for an inner, but in effect returns a window proxy for some other inner. I wouldn't be surprised if there's some weird behavior in the debugger here in the non-Fission case, but maybe it just doesn't cause issues.

Would we have nuked the realm of I on a navigation that didn't make us change processes?

Generally no. Also, if I is bfcached, then when we go back we're going to re-brain-transplant and end up with a real WindowProxy there again, right? Modulo whatever the fission/bfcache interaction is.

It does seem like we would, in the window destroyed event, at least in the non-BFcached case. But that doesn't happen synchronously, in any event, so we can't rely on it.

which would nuke the old inner eventually

Where?

WindowDestroyedEvent::Run().

WindowDestroyedEvent::Run().

Ah, yes. That still wouldn't nuke content->content references into the old window, which could still call functions from it, etc, right?

(In reply to Boris Zbarsky [:bzbarsky, bz on IRC] from comment #29)

Ah, yes. That still wouldn't nuke content->content references into the old window, which could still call functions from it, etc, right?

For this specific case, I don't believe that matters. Nuking the realm sets the nukedIncomingWrappers flag, which means js::AllowNewWrapper() will fail and getNonWrapperObjectForCurrentCompartment() will return a dead proxy object instead of a window proxy. I guess that doesn't help the other users of ToWindowProxyIfWindow() if they don't call AllowNewWrapper.

I spent probably too much time trying to get my head around how inner(outer(i)) != i but I guess that's okay enough.

I think the fix for this immediate issue is just to weaken the assert to accept either a window proxy or a remote window proxy.

I've started auditing the other call sites, but I haven't finished yet. For a lot of them, it seems like something weird and wrongish will happen if they get a remote window proxy, but not really any more wrong than if it had happened in the non-Fission case and they just got an outer for some other inner.

That's on file as bug 1588284. I don't know if it is related to this or not, but it is certainly suspicious that it is in the same test.

See Also: → 1588284

I started thinking about how to test this. Bug 1223372 added a chrome test test_windowProxyDeadWrapper.html, but it doesn't seem to actually hit the code that the patch in that bug added any more. The original STR from that bug, running devtools/shared/webconsole/test/chrome/, does seem to hit it at least.

I figured out a way to trip the assertion, though it is pretty horrible. I modified file_postMessage_parent.html, which is the page loaded in the iframe in the Fission transplant test browser_windowProxy_transplant.js. I used SpecialPowers to listen for "inner-window-nuked" (which should happen after we've navigated the iframe out of process), and then run SpecialPowers.Cu.getGlobalForObject({});. That snippet of code, which is taken from test_windowProxyDeadWrapper.html, grabs the global of an object in the current window, then wraps it, which ends up in the scenario Boris outlined in comment 6 and triggers the assert.

I audited callers of ToWindowProxyIfWindow(). Boris said the DOM uses are okay.

  • JavaScriptShared::findObjectById(): If you have a CPOW target object with an Xray waiver, it calls ToWindowProxyIfWindow() on it, then wraps it. I guess that's okay.
  • ScriptedCallerGlobal: This is a testing function used for JIT tests. It looks like it won't crash if we return a remote window proxy, but the result surely can't qualify as a "scripted caller global". The tests involved don't seem to do any kind of navigation, Fission or otherwise, so maybe that's okay. (The result is probably not really valid in either case.)
  • ObjectGlobal and FirstGlobalInCompartment: These look like the same basic situation as ScriptedCallerGlobal.
  • ValueToWindowProxyIfWindow: used to forward to the proxy in Proxy::get and Proxy::set. I'd guess that this will throw an error if the receiver is an inner that has an "outer" that is remote, but that's probably what we want to have happen.
  • NewGlobal in the shell: This gets passed a freshly created global, so no issues there.
  • dom_get_global in the shell: Similar issues as ScriptedCallerGlobal above.
  • Other caller in Compartment::getNonWrapperObjectForCurrentCompartment(): won't immediately fail at least. called by wrap and rewrap.
  • GlobalObject::maybeResolveGlobalThis(): This will try to call js::DefineDataProperty on the remote window proxy. Which I think/hope should fail and throw some kind of exception? Probably similar behavior to the non-Fission case?
  • js::SetPrototype(): This is trying to prevent "cyclical prototype chains" by checking if the outer is on the proto chain(?). I'm not sure if it ever can be, but feels reasonable in either case.
  • js::GetThisValue(): "this" can end up as a remote window proxy, but I guess that's okay.
  • nsXPCComponents_Utils::GetGlobalForObject: Just passed back to JS, so okay I guess.
  • Callers of Compartment::getNonWrapperObjectForCurrentCompartment(): wrap, rewrap. rewrap looked okay.
  • Callers of wrap(): Seemed okay. One of the callers is JS_WrapObject(), which has over 1000 callers, mostly in bindings code. I spot checked a few of them, and they looked okay.

If we try to wrap an inner whose outer has navigated out of process,
then we'll get a remote window proxy, not a window proxy.

This was happening during the JS devtools test
browser_webconsole_block_mixedcontent_securityerrors.js

Assignee: nobody → continuation

I'm not sure if it ever can be [re proto chains]

It can't be in a cyclic one, because window and windowproxy and remotewindowproxy all have immutable prototypes.

As long as the rest of the wrap() algorithm is ok with having a remotewindowproxy here, sounds like things are fine.

Pushed by amccreight@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/77174cb8538c
Weaken assert in getNonWrapperObjectForCurrentCompartment(). r=bzbarsky

This is a Fission-only issue (and just an assert) so no need to backport.

Status: REOPENED → RESOLVED
Closed: 3 years ago3 years ago
Keywords: leave-open
Resolution: --- → FIXED
Whiteboard: [stockwell disabled]
You need to log in before you can comment on or make changes to this bug.