Intermittent browser_e10s_switchbrowser.js | Found a tab after previous test timed out: http://example.org/browser/browser/base/content/test/general/dummy_page.html - expected PASS

RESOLVED FIXED in Firefox 38

Status

()

RESOLVED FIXED
4 years ago
4 years ago

People

(Reporter: cbook, Assigned: ttaubert)

Tracking

(Blocks: 1 bug, {intermittent-failure})

unspecified
Firefox 39
x86
Windows 8
intermittent-failure
Points:
1
Bug Flags:
firefox-backlog +
in-testsuite +
qe-verify -

Firefox Tracking Flags

(e10s+, firefox37 unaffected, firefox38 fixed, firefox39 fixed, firefox-esr31 unaffected)

Details

(URL)

Attachments

(1 attachment, 1 obsolete attachment)

(Reporter)

Description

4 years ago
Windows 8 64-bit b2g-inbound opt test mochitest-e10s-browser-chrome-1

https://treeherder.mozilla.org/ui/logviewer.html#?job_id=762927&repo=b2g-inbound

00:40:03 INFO - 415 INFO TEST-UNEXPECTED-FAIL | chrome://mochitests/content/browser/browser/base/content/test/general/browser_e10s_switchbrowser.js | Found a tab after previous test timed out: http://example.org/browser/browser/base/content/test/general/dummy_page.html - expected PASS
Comment hidden (Treeherder Robot)
Blocks: 984139
tracking-e10s: --- → +
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
(Assignee)

Comment 59

4 years ago
All of the latest logs show:

Console message: [JavaScript Error: "undefined" {file: "chrome://browser/content/tabbrowser.xml" line: 543}]
Console message: [JavaScript Error: "Error: operation not possible on dead CPOW"]

The tabbrowser tries to notify waitForDocLoadComplete()'s progress listener and that fails sometimes due to CPOW madness. We should move that load progress listener to the content script, like waitForDocLoadAndStopIt() does. And probably unify the two functions.
(Assignee)

Comment 60

4 years ago
Created attachment 8576048 [details] [diff] [review]
0001-Bug-1093660-Fix-intermittent-browser_e10s_switchbrow.patch

Took a closer look at the failure again and I think there's an easier solution. We log the loaded URI in waitForDocLoadComplete() and retrieve it through a CPOW: gBrowser.contentWindow.location. That's also the line that is reported as failing. If we just fix that I hope we can fix this failure and a few others.
Assignee: nobody → ttaubert
Status: NEW → ASSIGNED
Attachment #8576048 - Flags: review?(gijskruitbosch+bugs)
(Assignee)

Updated

4 years ago
Iteration: --- → 39.2 - 23 Mar
Points: --- → 1
Flags: qe-verify-
Flags: firefox-backlog+

Comment 61

4 years ago
Comment on attachment 8576048 [details] [diff] [review]
0001-Bug-1093660-Fix-intermittent-browser_e10s_switchbrow.patch

Review of attachment 8576048 [details] [diff] [review]:
-----------------------------------------------------------------

People pass tab.linkedBrowser to this function, e.g. browser/base/content/test/general/browser_bug575561.js .


Seems like the default param should be aBrowser=gBrowser.selectedBrowser instead?
Attachment #8576048 - Flags: review?(gijskruitbosch+bugs) → review-

Comment 62

4 years ago
(Also, can you do a separate patch to move this to BrowserTestUtils? I promise quick reviews!)
(Assignee)

Comment 63

4 years ago
(In reply to :Gijs Kruitbosch from comment #62)
> (Also, can you do a separate patch to move this to BrowserTestUtils? I
> promise quick reviews!)

BrowserTestUtils has something similar like that already, browserLoaded(). This works a little differently and I fear it justifies having its own bug due to all the possible breakage.
(Assignee)

Comment 64

4 years ago
Created attachment 8576066 [details] [diff] [review]
0001-Bug-1093660-Fix-intermittent-browser_e10s_switchbrow.patch, v2
Attachment #8576048 - Attachment is obsolete: true
Attachment #8576066 - Flags: review?(gijskruitbosch+bugs)

Comment 65

4 years ago
Comment on attachment 8576066 [details] [diff] [review]
0001-Bug-1093660-Fix-intermittent-browser_e10s_switchbrow.patch, v2

Review of attachment 8576066 [details] [diff] [review]:
-----------------------------------------------------------------

::: browser/base/content/test/general/head.js
@@ +427,5 @@
>          if ((flags & docStop) == docStop && status != Cr.NS_BINDING_ABORTED) {
>            aBrowser.removeProgressListener(this);
>            waitForDocLoadComplete.listeners.delete(this);
> +
> +          let chan = req.QueryInterface(Ci.nsIChannel);

Try push because I bet there's silly request objects for which this can fail? :-)

@@ +428,5 @@
>            aBrowser.removeProgressListener(this);
>            waitForDocLoadComplete.listeners.delete(this);
> +
> +          let chan = req.QueryInterface(Ci.nsIChannel);
> +          info("Browser loaded " + chan.originalURI.spec);

Vaguely curious if this ever differs from .location. Guessing it doesn't matter too much because it's just logging, so w/e. :-)
Attachment #8576066 - Flags: review?(gijskruitbosch+bugs) → review+
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
https://hg.mozilla.org/mozilla-central/rev/fa2cd844dcc9
Status: ASSIGNED → RESOLVED
Last Resolved: 4 years ago
status-firefox39: --- → fixed
Flags: in-testsuite+
Resolution: --- → FIXED
Target Milestone: --- → Firefox 39
status-firefox37: --- → unaffected
status-firefox38: --- → affected
status-firefox-esr31: --- → unaffected
You need to log in before you can comment on or make changes to this bug.