Assertion failure: mIsProcessManager, at dom/base/nsFrameMessageManager.cpp:1020

RESOLVED FIXED in Firefox 62

Status

()

defect
P2
normal
RESOLVED FIXED
a year ago
2 months ago

People

(Reporter: xidorn, Assigned: peterv)

Tracking

Trunk
mozilla62
Points:
---

Firefox Tracking Flags

(firefox-esr52 unaffected, firefox-esr60 unaffected, firefox60 unaffected, firefox61 wontfix, firefox62 fixed)

Details

Attachments

(2 attachments)

I hit this assertion when trying to dig into some object.

Steps to reproduce:
1. open Browser Toolbox from Web Developer menu
2. in the Console tab, input "window" and enter, you would see "ChromeWindow ..." shows up in the console
3. click the triangle before "ChromeWindow" to expand the details

Expected result:
The details show up, or at least it doesn't crash.

Actual result:
It asserts in debug build (and I don't know what would happen in release build).

There is a JavaScript error first:
> JavaScript error: objdir/dist/bin/components/amInstallTrigger.js, line 41: NS_NOINTERFACE: Component returned failure code: 0x80004002 (NS_NOINTERFACE) [nsIInterfaceRequestor.getInterface]

Then it asserts:
> Assertion failure: mIsProcessManager, at dom/base/nsFrameMessageManager.cpp:1020
> #01: mozilla::dom::ChromeMessageBroadcasterBinding::get_initialProcessData (objdir\dom\bindings\messagemanagerbinding.cpp:1224)
> #02: mozilla::dom::GenericBindingGetter (dom\bindings\bindingutils.cpp:2903)
> #03: js::CallJSNative (js\src\vm\jscontext-inl.h:290)
> #04: js::InternalCallOrConstruct (js\src\vm\interpreter.cpp:467)
> #05: js::Call (js\src\vm\interpreter.cpp:535)
> #06: js::ForwardingProxyHandler::call (js\src\proxy\wrapper.cpp:176)
> #07: js::CrossCompartmentWrapper::call (js\src\proxy\crosscompartmentwrapper.cpp:358)
> #08: js::proxy_Call (js\src\proxy\proxy.cpp:769)
> #09: js::CallJSNative (js\src\vm\jscontext-inl.h:290)
> #10: js::InternalCallOrConstruct (js\src\vm\interpreter.cpp:449)
> #11: js::Call (js\src\vm\interpreter.cpp:535)
> #12: js::DebuggerObject::call (js\src\vm\debugger.cpp:10529)
> #13: js::DebuggerObject::callMethod (js\src\vm\debugger.cpp:9549)
> #14: js::CallJSNative (js\src\vm\jscontext-inl.h:290)
> #15: js::InternalCallOrConstruct (js\src\vm\interpreter.cpp:467)
> #16: js::Call (js\src\vm\interpreter.cpp:535)
> #17: js::ForwardingProxyHandler::call (js\src\proxy\wrapper.cpp:176)
> #18: js::CrossCompartmentWrapper::call (js\src\proxy\crosscompartmentwrapper.cpp:358)
> #19: js::proxy_Call (js\src\proxy\proxy.cpp:769)
> #20: js::CallJSNative (js\src\vm\jscontext-inl.h:290)
> #21: js::InternalCallOrConstruct (js\src\vm\interpreter.cpp:449)
> #22: js::jit::DoCallFallback (js\src\jit\baselineic.cpp:2380)
Assignee

Updated

a year ago
Assignee: nobody → peterv
Status: NEW → ASSIGNED
Priority: -- → P2
Assignee

Comment 2

a year ago
Posted patch v1Splinter Review
Reusing the same class for process and non-process managers wasn't working so well after all.
Attachment #8973731 - Flags: review?(bzbarsky)
Comment on attachment 8973731 [details] [diff] [review]
v1

The commit message here could be a lot more useful, both in terms of review and future archeology.

In particular, it should look something like this:

  Bug 1451973 - Split off process from non-process message managers.

and then a separate paragraph explaining _why_ they are being split.  I would have really liked to see that part...

ChromeMessageBroadcaster.h should explain what that class is for.  So should ChromeMessageSender.h, MessageBroadcaster.h, MessageListenerManager.h,  MessageSender.h.  Some of these are old, but some are new.

>+++ b/dom/base/MessageBroadcaster.cpp
>+MessageBroadcaster::MessageBroadcaster(MessageBroadcaster* aParentManager,
....
>                            MessageManagerFlags::MM_BROADCASTER |
>                            MessageManagerFlags::MM_CHROME)

This doesn't make sense to me.  Why are we always adding MM_CHROME?

More to the point, if we always do this here, why do we also add those flags in the ChromeMessageBroadcaster constructor call to this constructor?

r=me with those fixed
Attachment #8973731 - Flags: review?(bzbarsky) → review+
Backed out changeset 5bb547481faf (bug 1451973) for testChild failures on a CLOSED TREE

Backout link: https://hg.mozilla.org/integration/mozilla-inbound/rev/b479a3309609c69098ab05bf46e0e6c0b04d2a4e

Push with failures: https://treeherder.mozilla.org/#/jobs?repo=mozilla-inbound&revision=5bb547481fafdc098c8a611aff9765b41e91468d

Log link: https://treeherder.mozilla.org/logviewer.html#?job_id=180213709&repo=mozilla-inbound&lineNumber=39585

Log snippet: 
[task 2018-05-25T11:14:03.861Z] 11:14:03     INFO - /builds/worker/workspace/build/src/testing/xpcshell/selftest.py
[task 2018-05-25T11:14:03.862Z] 11:14:03     INFO - ============================= test session starts ==============================
[task 2018-05-25T11:14:03.862Z] 11:14:03     INFO - platform linux2 -- Python 2.7.9, pytest-3.1.3, py-1.4.34, pluggy-0.4.0 -- /builds/worker/workspace/build/src/obj-firefox/_virtualenvs/init/bin/python
[task 2018-05-25T11:14:03.862Z] 11:14:03     INFO - rootdir: /builds/worker/workspace/build/src, inifile:
[task 2018-05-25T11:14:03.862Z] 11:14:03     INFO - collecting ... collected 55 items
[task 2018-05-25T11:14:03.862Z] 11:14:03     INFO - ../testing/xpcshell/selftest.py::XPCShellTestsTests::testAddTaskRunNextTest PASSED
[task 2018-05-25T11:14:03.863Z] 11:14:03     INFO - ../testing/xpcshell/selftest.py::XPCShellTestsTests::testAddTaskSkip PASSED
[task 2018-05-25T11:14:03.863Z] 11:14:03     INFO - ../testing/xpcshell/selftest.py::XPCShellTestsTests::testAddTaskSkipAll PASSED
[task 2018-05-25T11:14:03.863Z] 11:14:03     INFO - ../testing/xpcshell/selftest.py::XPCShellTestsTests::testAddTaskStackTrace PASSED
[task 2018-05-25T11:14:03.863Z] 11:14:03     INFO - ../testing/xpcshell/selftest.py::XPCShellTestsTests::testAddTaskTestFailureInside PASSED
[task 2018-05-25T11:14:03.863Z] 11:14:03     INFO - ../testing/xpcshell/selftest.py::XPCShellTestsTests::testAddTaskTestMultiple PASSED
[task 2018-05-25T11:14:03.864Z] 11:14:03     INFO - ../testing/xpcshell/selftest.py::XPCShellTestsTests::testAddTaskTestRejected PASSED
[task 2018-05-25T11:14:03.864Z] 11:14:03     INFO - ../testing/xpcshell/selftest.py::XPCShellTestsTests::testAddTaskTestSingle PASSED
[task 2018-05-25T11:14:03.864Z] 11:14:03     INFO - ../testing/xpcshell/selftest.py::XPCShellTestsTests::testAddTestFailing PASSED
[task 2018-05-25T11:14:03.864Z] 11:14:03     INFO - ../testing/xpcshell/selftest.py::XPCShellTestsTests::testAddTestSimple PASSED
[task 2018-05-25T11:14:03.864Z] 11:14:03     INFO - ../testing/xpcshell/selftest.py::XPCShellTestsTests::testAddTestUncaughtRejection PASSED
[task 2018-05-25T11:14:03.864Z] 11:14:03     INFO - ../testing/xpcshell/selftest.py::XPCShellTestsTests::testAddTestUncaughtRejectionJSM PASSED
[task 2018-05-25T11:14:03.865Z] 11:14:03     INFO - ../testing/xpcshell/selftest.py::XPCShellTestsTests::testAssertStack <- ../../../../../usr/lib/python2.7/unittest/case.py SKIPPED
[task 2018-05-25T11:14:03.865Z] 11:14:03     INFO - ../testing/xpcshell/selftest.py::XPCShellTestsTests::testAsyncCleanup PASSED
[task 2018-05-25T11:14:03.865Z] 11:14:03  WARNING - ../testing/xpcshell/selftest.py::XPCShellTestsTests::testChild TEST-UNEXPECTED-FAIL
[task 2018-05-25T11:14:03.866Z] 11:14:03  WARNING - ../testing/xpcshell/selftest.py::XPCShellTestsTests::testChildFail TEST-UNEXPECTED-FAIL
[task 2018-05-25T11:14:03.866Z] 11:14:03  WARNING - ../testing/xpcshell/selftest.py::XPCShellTestsTests::testChildHang TEST-UNEXPECTED-FAIL
[task 2018-05-25T11:14:03.866Z] 11:14:03  WARNING - ../testing/xpcshell/selftest.py::XPCShellTestsTests::testChildMozinfo TEST-UNEXPECTED-FAIL
[task 2018-05-25T11:14:03.867Z] 11:14:03  WARNING - ../testing/xpcshell/selftest.py::XPCShellTestsTests::testChildPass TEST-UNEXPECTED-FAIL
[task 2018-05-25T11:14:03.867Z] 11:14:03     INFO - ../testing/xpcshell/selftest.py::XPCShellTestsTests::testDoPrintWhenVerboseExplicit PASSED
Flags: needinfo?(peterv)
Backed out changeset f65b3816a198 (bug 1451973) for tps failure on multiple files. CLOSED TREE

Log:
https://treeherder.mozilla.org/logviewer.html#?job_id=180284702&repo=mozilla-inbound&lineNumber=1011

INFO -  TEST-INFO | started process 16688 (/home/cltbld/workspace/build/application/firefox/firefox  http://localhost:49277/getInfo.html)
10:12:07     INFO -  1527268327218	addons.xpi-utils	WARN	Error: Synchronously loading the add-ons database (resource://gre/modules/addons/XPIDatabase.jsm:1386:17) JS Stack trace: syncLoadDB@XPIDatabase.jsm:1386:17
10:12:07     INFO -  checkForChanges@XPIProvider.jsm:2775:9
10:12:07     INFO -  startup@XPIProvider.jsm:2324:25
10:12:07     INFO -  callProvider@AddonManager.jsm:205:12
10:12:07     INFO -  _startProvider@AddonManager.jsm:653:5
10:12:07     INFO -  startup@AddonManager.jsm:812:9
10:12:07     INFO -  startup@AddonManager.jsm:2864:5
10:12:07     INFO -  observe@addonManager.js:66:9
10:12:07     INFO -  ATTENTION: default value of option force_s3tc_enable overridden by environment.
10:12:07     INFO -  ATTENTION: default value of option force_s3tc_enable overridden by environment.
10:12:09     INFO -  __metrics	Screen width/height:1600/1200
10:12:09     INFO -  	colorDepth:24
10:12:09     INFO -  	Browser inner width/height: 1280/966
10:12:09     INFO -  __metrics
10:12:09    ERROR -  JavaScript error: file:///tmp/tmpdrWRwV/profile/extensions/tabswitch-talos@mozilla.org/api.js, line 322: TypeError: Services.ppmm.loadFrameScript is not a function
10:12:09     INFO -  *** UTM:SVC TimerManager:registerTimer called after profile-before-change notification. Ignoring timer registration for id: telemetry_modules_ping
10:12:09     INFO -  TEST-INFO | 16688: exit 0
10:12:09     INFO -  Browser initialized.
10:12:10     INFO -  Running cycle 1/1 for tps test...
10:12:10     INFO -  Using env: {'DISPLAY': ':0',
10:12:10     INFO -   'GECKO_HEAD_REPOSITORY': 'https://hg.mozilla.org/integration/mozilla-inbound',
10:12:10     INFO -   'GECKO_HEAD_REV': 'f65b3816a19815dfeaab98a3f833aee3faa0ac78',
10:12:10     INFO -   'HOME': '/home/cltbld',
10:12:10     INFO -   'JSGC_DISABLE_POISONING': '1',
10:12:10     INFO -   'LD_LIBRARY_PATH': '/home/cltbld/workspace/build/application/firefox',
10:12:10     INFO -   'LOGNAME': 'cltbld',
10:12:10     INFO -   'MINIDUMP_SAVE_PATH': '/home/cltbld/workspace/build/blobber_upload_dir',
10:12:10     INFO -   'MINIDUMP_STACKWALK': '/home/cltbld/workspace/build/linux64-minidump_stackwalk',
10:12:10     INFO -   'MOZHARNESS_CONFIG': 'talos/linux_config.py',
10:12:10     INFO -   'MOZHARNESS_SCRIPT': 'talos_script.py',
10:12:10     INFO -   'MOZHARNESS_URL': 'https://queue.taskcluster.net/v1/task/KDMBEZyLSQ61MKO5SqPfFw/artifacts/public/build/mozharness.zip',
10:12:10     INFO -   'MOZILLA_BUILD_URL': 'https://queue.taskcluster.net/v1/task/KDMBEZyLSQ61MKO5SqPfFw/artifacts/public/build/target.tar.bz2',
10:12:10     INFO -   'MOZ_ACCELERATED': '1',
10:12:10     INFO -   'MOZ_AUTOMATION': '1',
10:12:10     INFO -   'MOZ_CRASHREPORTER': '1',
10:12:10     INFO -   'MOZ_CRASHREPORTER_NO_REPORT': '1',
10:12:10     INFO -   'MOZ_DISABLE_NONLOCAL_CONNECTIONS': '1',
10:12:10     INFO -   'MOZ_HIDE_RESULTS_TABLE': '1',
10:12:10     INFO -   'MOZ_NODE_PATH': '/usr/local/bin/node',
10:12:10     INFO -   'MOZ_NO_REMOTE': '1',
10:12:10     INFO -   'MOZ_SOURCE_CHANGESET': 'f65b3816a19815dfeaab98a3f833aee3faa0ac78',
10:12:10     INFO -   'MOZ_SOURCE_REPO': 'https://hg.mozilla.org/integration/mozilla-inbound',
10:12:10     INFO -   'MOZ_UPLOAD_DIR': '/home/cltbld/workspace/build/blobber_upload_dir',
10:12:10     INFO -   'MOZ_WEBRENDER': '1',
10:12:10     INFO -   'NEED_XVFB': 'false',
10:12:10     INFO -   'NO_EM_RESTART': '1',
10:12:10     INFO -   'NO_FAIL_ON_TEST_ERRORS': '1',
10:12:10     INFO -   'OLDPWD': '/home/cltbld/workspace',
10:12:10     INFO -   'PATH': '/home/cltbld/workspace/build/venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11',
10:12:10     INFO -   'PWD': '/home/cltbld/workspace',
10:12:10     INFO -   'PYTHONPATH': '/home/cltbld/workspace/build/tests/talos',
10:12:10     INFO -   'RUN_ID': '0',
10:12:10     INFO -   'RUST_BACKTRACE': 'full',
10:12:10     INFO -   'SCRIPTSPATH': '/home/cltbld/workspace/mozharness',
10:12:10     INFO -   'SHLVL': '1',
10:12:10     INFO -   'STYLO_FORCE_ENABLED': '1',
10:12:10     INFO -   'TASK_ID': 'crVdxY3CQjypsM1Y9t1vYQ',
10:12:10     INFO -   'USER': 'cltbld',
10:12:10     INFO -   'XDG_RUNTIME_DIR': '/run/user/1000',
10:12:10     INFO -   'XDG_SESSION_ID': 'c1',
10:12:10     INFO -   'XPCOM_DEBUG_BREAK': 'warn'}
10:12:10     INFO -  TEST-INFO | started process 16970 (/home/cltbld/workspace/build/application/firefox/firefox -profile /tmp/tmpdrWRwV/profile)
10:12:10     INFO -  PID 16970 | ATTENTION: default value of option force_s3tc_enable overridden by environment.
10:12:10     INFO -  PID 16970 | ATTENTION: default value of option force_s3tc_enable overridden by environment.
[taskcluster:error]  Task killed because maxRunTime was exceeded
cleanup
++ cleanup
++ local rv=0

Push with failures:
https://treeherder.mozilla.org/#/jobs?repo=mozilla-inbound&revision=f65b3816a19815dfeaab98a3f833aee3faa0ac78

Backout:
https://hg.mozilla.org/integration/mozilla-inbound/rev/a57e7b90902df9982253c21a11f10791d5fb73b9
Comment on attachment 8980761 [details] [diff] [review]
Use loadProcessScript instead of loadFrameScript with process message manager.

Yeah, this makes way more sense. Sorry for the delay, and thanks!
Attachment #8980761 - Flags: review?(mconley) → review+
https://hg.mozilla.org/integration/mozilla-inbound/rev/91627f5e19c7e5722405e8098f0084c394557593
Bug 1451973 - Use loadProcessScript instead of loadFrameScript with process message manager. r=mconley.

https://hg.mozilla.org/integration/mozilla-inbound/rev/22e014e0bea4a4a87d23a48007c014e3a54b37cb
Bug 1451973 - Split off process from non-process message managers. r=bz.

Comment 13

a year ago
bugherder
https://hg.mozilla.org/mozilla-central/rev/91627f5e19c7
https://hg.mozilla.org/mozilla-central/rev/22e014e0bea4
Status: ASSIGNED → RESOLVED
Last Resolved: a year ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla62
Component: DOM → DOM: Core & HTML
Product: Core → Core
You need to log in before you can comment on or make changes to this bug.