Closed
Bug 1305659
Opened 8 years ago
Closed 8 years ago
[e10s] Calling forward() and an remoteness change involved cause Marionette to hang with: IOError: Process has been unexpectedly closed (Exit code: -15) (Reason: [Errno 61] Connection refused)
Categories
(Remote Protocol :: Marionette, defect)
Tracking
(firefox50 wontfix, firefox51 wontfix, firefox52 fixed, firefox-esr52 fixed, firefox53 fixed, firefox54 fixed, firefox55 fixed)
RESOLVED
FIXED
mozilla55
People
(Reporter: whimboo, Assigned: whimboo)
References
(Blocks 1 open bug)
Details
(Whiteboard: [fixed by bug 1330348])
Attachments
(1 file)
1.11 KB,
text/plain
|
Details |
I noticed that behavior while working on bug 1259055. When updating TestAboutPages.test_back_forward() with a call to forward() Marionette hangs until the socket timeout and gets killed:
2:16.56 TEST_END: MainThread ERROR, expected PASS
Traceback (most recent call last):
File "/Volumes/data/code/gecko/testing/marionette/harness/marionette/marionette_test/testcases.py", line 163, in run
testMethod()
File "/Volumes/data/code/gecko/_a/test_minimized.py", line 27, in test_back_forward_remote_non_remote
self.marionette.navigate(self.remote_uri)
File "/Volumes/data/code/gecko/testing/marionette/client/marionette_driver/marionette.py", line 1488, in navigate
self._send_message("get", {"url": url})
File "/Volumes/data/code/gecko/testing/marionette/client/marionette_driver/decorators.py", line 55, in _
m.force_shutdown()
File "/Volumes/data/code/gecko/testing/marionette/client/marionette_driver/decorators.py", line 42, in _
return func(*args, **kwargs)
File "/Volumes/data/code/gecko/testing/marionette/client/marionette_driver/marionette.py", line 682, in _send_message
msg = self.client.request(name, params)
File "/Volumes/data/code/gecko/testing/marionette/client/marionette_driver/transport.py", line 274, in request
self.send(cmd)
File "/Volumes/data/code/gecko/testing/marionette/client/marionette_driver/transport.py", line 236, in send
self.connect()
File "/Volumes/data/code/gecko/testing/marionette/client/marionette_driver/transport.py", line 214, in connect
self.sock.connect((self.addr, self.port))
File "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", line 228, in meth
return getattr(self._sock,name)(*args)
IOError: Process has been closed (Exit code: -15) (Reason: [Errno 61] Connection refused)
Here the last successful commands then the communication stopped working:
> 1474965609246 Marionette TRACE conn5 -> [0,9,"goForward",null]
> 1474965609363 Marionette TRACE conn5 <- [1,9,null,{}]
> 1474965609375 Marionette TRACE conn5 -> [0,10,"getCurrentUrl",null]
We never get a response with the current URI here.
This is an e10s only related issue.
Updated•8 years ago
|
Blocks: e10s-tests
Assignee | ||
Updated•8 years ago
|
Attachment #8795187 -
Attachment mime type: text/x-python-script → text/plain
Assignee | ||
Comment 1•8 years ago
|
||
Here the actual failure message:
File "/Volumes/data/code/gecko/testing/marionette/harness/marionette/marionette_test/testcases.py", line 166, in run
testMethod()
File "/Volumes/data/code/gecko/_a/test_second.py", line 27, in test_back_forward_remote_non_remote
self.marionette.navigate(self.remote_uri)
File "/Volumes/data/code/gecko/testing/marionette/client/marionette_driver/marionette.py", line 1624, in navigate
self._send_message("get", {"url": url})
File "/Volumes/data/code/gecko/testing/marionette/client/marionette_driver/decorators.py", line 28, in _
m.handle_socket_failure()
File "/Volumes/data/code/gecko/testing/marionette/client/marionette_driver/decorators.py", line 23, in _
return func(*args, **kwargs)
File "/Volumes/data/code/gecko/testing/marionette/client/marionette_driver/marionette.py", line 707, in _send_message
msg = self.client.request(name, params)
File "/Volumes/data/code/gecko/testing/marionette/client/marionette_driver/transport.py", line 283, in request
self.send(cmd)
File "/Volumes/data/code/gecko/testing/marionette/client/marionette_driver/transport.py", line 245, in send
self.connect()
File "/Volumes/data/code/gecko/testing/marionette/client/marionette_driver/transport.py", line 223, in connect
self.sock.connect((self.addr, self.port))
File "/usr/local/Cellar/python/2.7.12_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", line 228, in meth
return getattr(self._sock,name)(*args)
status-firefox53:
--- → affected
Summary: [e10s] Marionette hangs when calling forward() and an remoteness change involved → [e10s] Calling forward() and an remoteness change involved cause Marionette to hang with: IOError: Process has been unexpectedly closed (Exit code: -15) (Reason: [Errno 61] Connection refused)
Assignee | ||
Comment 2•8 years ago
|
||
So a debug build actually shows an assertion:
[Child 14272] ###!!! ASSERTION: no SHEntry for a non-transient viewer?: 'NS_IsAboutBlank(mCurrentURI)', file /builds/slave/m-cen-m64-d-000000000000000000/build/src/docshell/base/nsDocShell.cpp, line 11601
It means that somehow the communication dies for Marionette components and Firefox finally gets killed by the OS due to no data received over the socket. It also means that we are blocked on bug 1301399 now.
Whiteboard: [blocked by bug 1301399]
Assignee | ||
Comment 3•8 years ago
|
||
The IOError is caused by Marionette as it kills Firefox after 60s with a socket timeout due to get() doesn't respond within that time period - the default page load timeout is 300s. See bug 1322277 for how we can improve that.
Depends on: 1322277
Assignee | ||
Comment 5•8 years ago
|
||
With my patch on bug 1330348 landed this is no longer an issue.
Assignee: nobody → hskupin
Status: NEW → RESOLVED
Closed: 8 years ago
status-firefox54:
--- → affected
status-firefox55:
--- → fixed
status-firefox-esr52:
--- → affected
Resolution: --- → FIXED
Whiteboard: [blocked by bug 1301399] → [fixed by bug 1330348]
Target Milestone: --- → mozilla55
Assignee | ||
Updated•8 years ago
|
Updated•2 years ago
|
Product: Testing → Remote Protocol
You need to log in
before you can comment on or make changes to this bug.
Description
•