Closed Bug 1240179 Opened 9 years ago Closed 9 years ago

[e10s] Javascript error when run under XVFB: Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIMessageSender.sendAsyncMessage] (chrome://marionette/content/listener.js, line 410)

Categories

(Remote Protocol :: Marionette, defect)

defect
Not set
normal

Tracking

(firefox43 unaffected, firefox44 affected, firefox45 affected, firefox46 affected)

RESOLVED INVALID
Tracking Status
firefox43 --- unaffected
firefox44 --- affected
firefox45 --- affected
firefox46 --- affected

People

(Reporter: whimboo, Unassigned)

Details

(Keywords: regression, regressionwindow-wanted)

Today i have seen the following failure a lot of times in a Travis build. I can reproduce it locally when run under XVFB and e10s mode turned on: Here the command for firefox-ui-tests: DISPLAY=:99.0 && firefox-ui-functional --binary /mozilla/bin/nightly/firefox --e10s firefox_puppeteer/tests/ --pref "marionette.logging:True" Here some line from a local log and Marionette debugging turned on: 1452892022269 Marionette TRACE conn89 -> [0,74,"getCurrentChromeWindowHandle",null] 1452892022269 Marionette TRACE conn89 <- [1,74,null,{"value":"3"}] JavaScript error: chrome://marionette/content/listener.js, line 410: NS_ERROR_ILLEGAL_VALUE: Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIMessageSender.sendAsyncMessage] 1452892022272 Marionette TRACE conn89 -> [0,75,"executeScript",{"scriptTimeout":null,"newSandbox":true,"args":["3"],"filename":"windows.py","script":"\n Components.utils.import(\"resource://gre/modules/Services.jsm\");\n let win = Services.wm.getOuterWindowWithId(Number(arguments[0]));\n return win.document.readyState == 'complete';\n ","sandbox":"default","line":108}] 1452892022273 Marionette TRACE conn89 <- [1,75,null,{"value":true}]
I can reproduce this failure down to beta 44.0. The last release of Firefox is not affected.
I’m unable to run the tests using the command you provided above: (_env)% firefox-ui-functional --binary /home/ato/1/gecko/build/desktop-release/dist/bin/firefox-bin --e10s firefox_puppeteer/tests/ --pref "marionette.logging:True" Using workspace for temporary data: "/home/ato/1/firefox-ui-tests" Profile destination is TMP starting httpd running httpd on http://127.0.0.1:40905/ Failure during test execution. Traceback (most recent call last): File "/home/ato/1/firefox-ui-tests/_env/local/lib/python2.7/site-packages/marionette_client-2.0.0-py2.7.egg/marionette/runtests.py", line 71, in run runner.run_tests(tests) File "/home/ato/1/firefox-ui-tests/_env/local/lib/python2.7/site-packages/marionette_client-2.0.0-py2.7.egg/marionette/runner/base.py", line 850, in run_tests % '\n '.join(invalid_tests)) Exception: Tests file names must starts with 'test_'. Invalid test names: /home/ato/1/firefox-ui-tests/firefox_puppeteer/tests
Flags: needinfo?(hskupin)
Yesterday I merged the python_packages branch for bug 1232967 into mozilla-central. So the path to the puppeteer tests have been changed: https://github.com/mozilla/firefox-ui-tests/tree/mozilla-central/firefox_ui_tests/firefox_ui_tests/puppeteer
Flags: needinfo?(hskupin)
Thanks! The command `firefox-ui-functional --binary /home/ato/1/gecko/build/desktop-release/dist/bin/firefox-bin --e10s firefox_ui_tests/firefox_ui_tests/puppeteer --pref "marionette.logging:True"` appears to work.
This is the same problem you will run into if you wrap your command using xvfb-run. The explanation is that certain parts of the Firefox UI needs a window manager in order to function normally. If you imagine wrapping your command in a naïve xvfb wrapper that includes a window manager such as this: #!/bin/sh DISPLAY=:99 Xvfb $DISPLAY -ac +extension RANDR & matchbox-window-manager & exec $@ All the tests will pass: % chmod +x xvfb-wm-run % ./xvfb-wm-run firefox-ui-functional --binary /home/ato/Code/gecko/build/desktop-release/dist/bin/firefox-bin firefox_ui_tests/firefox_ui_tests/puppeteer/test_toolbars.py --pref "marionette.logging:True" … SUMMARY ------- passed: 13 failed: 0 todo: 0 It is possible that replacing matchbox-window-manager with xinit will work if you have that installed.
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → INVALID
Product: Testing → Remote Protocol
You need to log in before you can comment on or make changes to this bug.