Closed Bug 1228390 Opened 9 years ago Closed 7 years ago

[e10s] Interacting with the first tab after a restart of the application will cause Marionette to hang

Categories

(Remote Protocol :: Marionette, defect)

45 Branch
defect
Not set
critical

Tracking

(e10s+)

RESOLVED WORKSFORME
Tracking Status
e10s + ---

People

(Reporter: mconley, Unassigned)

References

(Blocks 1 open bug)

Details

(Keywords: hang, pi-marionette-server)

Attachments

(1 file)

While attempting to write a test for bug 1228120, I ran into this problem. Basically, the test opens several windows (private and normal) with some number of tabs each. Then it restarts the browser session.

My test is supposed to ensure that the right windows are restored on application start. I'm attempting to do that by iterating the opened windows and examining each tab location.

Unfortunately, after a restart, accessing the window tabs seems to not work. The test runner just silently hangs. Using pdb, I can see that the problem is that attempting to access a location results in a "*** NoSuchWindowException: NoSuchWindowException: Unable to locate window" Exception, which for some reason wasn't being sent to the console.

In any case, I need a way of accessing the URLs of the opened tabs in current windows in order to make sure they match the expected set, and this bug is stopping me.
For reference, the (WIP) test I've written can be seen in https://github.com/mozilla/firefox-ui-tests/pull/292
I will have a look into that now.
Assignee: nobody → hskupin
Status: NEW → ASSIGNED
I checked the PR and found the problem, which was not that obvious first when skimming over. But now it's clear why you see a hang. But this hang has to be after the tab locations have been printed. The reason is that line: https://github.com/mozilla/firefox-ui-tests/pull/292/files#diff-b3eb7c44135f095d996f105de4ec5b5eR46

You are closing all windows but as exception you specify a tab instead of the original browser window. Beside that you also want to close the additional tabs you opened in that window to not cause a handle leak message.

Mike, does it fix for you?
Talked with Mike on IRC and he mentioned to me that he was using --e10s. So I can clearly reproduce his problem now.
Summary: After a restart, cannot access browser window tab locations → [e10s] After a restart of the application, cannot access browser window tab locations
So this is not an issue with our Firefox UI tests but with Marionette itself. Whenever I restart the application and try to interact with the first tab of the window, Marionette hangs. I will upload a testcase which perfectly demonstrates that. Chris, any idea what this could be?
Assignee: hskupin → nobody
Severity: normal → critical
Status: ASSIGNED → NEW
Component: Firefox UI Tests → Marionette
Keywords: hang
Product: Mozilla QA → Testing
QA Contact: hskupin
Summary: [e10s] After a restart of the application, cannot access browser window tab locations → [e10s] Interacting with the first tab after a restart of the application will cause Marionette to hang
Version: Version 3 → 45 Branch
This looks to be hanging inside the server:

** Trying to retrieve window location... will hang
1448912558977	Marionette	DEBUG	conn1 -> {"name":"getWindowHandle"}
1448912558979	Marionette	DEBUG	conn1 client <- {"value":"8"}
1448912558982	Marionette	DEBUG	conn1 -> {"name":"getCurrentUrl"}
Blocks: e10s-tests
tracking-e10s: --- → +
Maybe the problem here is due to the docshell assertion I can see in a debug build which is similar to the one as filed as bug 623436.
The testcase as attached works for me now. So it looks like we are all set for this bug.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → WORKSFORME
Product: Testing → Remote Protocol
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: