Closed Bug 1446293 Opened 7 years ago Closed 7 years ago

Intermittent testing\marionette\harness\marionette_harness\tests\unit\test_navigation.py TestBackForwardNavigation.test_non_remote_about_pages | JavascriptException: TypeError: win is null

Categories

(Testing :: Marionette Client and Harness, defect, P5)

Version 3
defect

Tracking

(Not tracked)

RESOLVED INCOMPLETE

People

(Reporter: intermittent-bug-filer, Unassigned)

References

Details

(Keywords: intermittent-failure)

Attachments

(1 file)

Filed by: rgurzau [at] mozilla.com https://treeherder.mozilla.org/logviewer.html#?job_id=168413111&repo=mozilla-inbound https://queue.taskcluster.net/v1/task/bj7kT0fnTWie8BtrQulctA/runs/0/artifacts/public/logs/live_backing.log 06:50:26 ERROR - TEST-UNEXPECTED-ERROR | testing\marionette\harness\marionette_harness\tests\unit\test_navigation.py TestBackForwardNavigation.test_non_remote_about_pages | JavascriptException: TypeError: win is null 06:50:26 INFO - stacktrace: 06:50:26 INFO - execute_script @test_navigation.py, line 111 06:50:26 INFO - inline javascript, line 16 06:50:26 INFO - src: " if (win.BrowserApp) {" 06:50:26 INFO - Stack: 06:50:26 INFO - @test_navigation.py:16:1 06:50:26 INFO - @test_navigation.py:0:2 06:50:26 INFO - evaluate.sandbox/promise<@chrome://marionette/content/evaluate.js:163:13 06:50:26 INFO - evaluate.sandbox@chrome://marionette/content/evaluate.js:114:17 06:50:26 INFO - GeckoDriver.prototype.execute_@chrome://marionette/content/driver.js:1024:19 06:50:26 INFO - async*GeckoDriver.prototype.executeScript@chrome://marionette/content/driver.js:887:27 06:50:26 INFO - Async*despatch@chrome://marionette/content/server.js:288:20 06:50:26 INFO - async*execute@chrome://marionette/content/server.js:262:11 06:50:26 INFO - async*onPacket/<@chrome://marionette/content/server.js:237:15 06:50:26 INFO - async*onPacket@chrome://marionette/content/server.js:236:8 06:50:26 INFO - _onJSONObjectReady/<@chrome://marionette/content/transport.js:500:9
Attached image screenshot
All the failures are happening on Windows 10 only, and what fails here is that `RecentWindow.getMostRecentBrowserWindow()` returns `null`. It means we are talking about that code: https://dxr.mozilla.org/mozilla-central/rev/b906009d875d1f5d29b0d1252cdb43a9b1a5889c/browser/modules/RecentWindow.jsm#56-62 This can only happen when `getZOrderDOMWindowEnumerator()` returns no elements. But the screenshot shows that there is a window with 2 tabs. I have a hard time to find the definition of that method. Neil, do you know if something changed in that code lately?
Flags: needinfo?(enndeakin)
Did this just start failing recently? The only bug I can think of is 1439875 and related.
Flags: needinfo?(enndeakin)
(In reply to Neil Deakin from comment #4) > Did this just start failing recently? The only bug I can think of is 1439875 > and related. The first time this failure occurred was 13 days ago. Then we had only 3 failures in a week because it started Friday. But then last week it increased to 22 failures. So yes, it's around the time when the patches of bug 1439875 landed. Thank you for the hint! Emilio, can you please have a look at comment 3? Could this be a side-effect from your patch?
Flags: needinfo?(emilio)
Perhaps, yeah... But it's not clear to me how to go about figuring this out. What do I need to do to run the test? My idea is to try to repro under rr chaos mode and figure out what's going on, but lacking that I don't have a good sense of how this may be happening. Chances are that the test / the code it's testing is somewhat racy, this test is testing navigation stuff, and I suspect that across navigations getting the DOM window corresponding to a docshell can fail.
Flags: needinfo?(emilio)
Emilio, as usual you can use `mach` to run the tests. It means that the following basic command will run the test for you: > mach test testing/marionette/harness/marionette_harness/tests/unit/test_navigation.py If you want to see all the log output add `-vv` for trace logs, and `--gecko-log -` to print it all to the command line. If you miss the latter a file called `gecko.log` will be created. You don't necessarily have to build Firefox, but you can use `--binary %path%` to run a specific binary. Please note that this failure so far only occurs for opt/pgo builds.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → INCOMPLETE
Product: Testing → Remote Protocol
Moving bug to Testing::Marionette Client and Harness component per bug 1815831.
Component: Marionette → Marionette Client and Harness
Product: Remote Protocol → Testing
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: