Closed Bug 1397675 Opened 2 years ago Closed 2 years ago

Immediately quit the application if no connection can be made during startup


(Testing :: Marionette, enhancement, P1)

57 Branch


(firefox57 fixed)

Tracking Status
firefox57 --- fixed


(Reporter: whimboo, Assigned: whimboo)




(1 file)

As seen while investigating bug 1362293 we do not immediately kill the process when a connection attempt times out during startup. Instead `_handle_socket_failure` is getting called because `raise_for_port` uses the `@do_process_check` decorator. This is wrong because this method is just a utility method, and calling code has to use this decorator only.

As result of this we have an additional 120s delay during startup because `_handle_socket_failure` waits for the application to close. But given that no command has been run yet, this will not happen. So we are safe in forcing a shutdown of the process.

Maybe this gives us more ideas what's wrong with bug 1362293.
Attachment #8905639 - Flags: review?(mjzffr)
I have to revise this patch in regards of test suites making only use of Marionette to install extensions, but not to start the binary.
Priority: -- → P1
The following failing Mochitest shows that my patch is working fine:

[task 2017-09-13T08:41:43.831693Z] 08:41:43     INFO - Application command: /builds/worker/workspace/build/application/firefox/firefox -marionette -foreground -profile /tmp/tmp6JqmF3.mozrunner
[task 2017-09-13T08:41:43.871223Z] 08:41:43     INFO - | Application pid: 2660
[task 2017-09-13T08:41:43.874276Z] 08:41:43     INFO - TEST-INFO | started process GECKO(2660)
[task 2017-09-13T08:42:43.889715Z] 08:42:43     INFO -  Traceback (most recent call last):
[task 2017-09-13T08:42:43.892906Z] 08:42:43     INFO -    File "/builds/worker/workspace/build/tests/mochitest/", line 2635, in doTests
[task 2017-09-13T08:42:43.894930Z] 08:42:43     INFO -      marionette_args=marionette_args,
[task 2017-09-13T08:42:43.896905Z] 08:42:43     INFO -    File "/builds/worker/workspace/build/tests/mochitest/", line 2165, in runApp
[task 2017-09-13T08:42:43.898836Z] 08:42:43     INFO -      self.marionette.start_session(timeout=port_timeout)
[task 2017-09-13T08:42:43.901362Z] 08:42:43     INFO -    File "/builds/worker/workspace/build/venv/local/lib/python2.7/site-packages/marionette_driver/", line 28, in _
[task 2017-09-13T08:42:43.903278Z] 08:42:43     INFO -      m._handle_socket_failure()
[task 2017-09-13T08:42:43.914077Z] 08:42:43     INFO -    File "/builds/worker/workspace/build/venv/local/lib/python2.7/site-packages/marionette_driver/", line 23, in _
[task 2017-09-13T08:42:43.916660Z] 08:42:43     INFO -      return func(*args, **kwargs)
[task 2017-09-13T08:42:43.918745Z] 08:42:43     INFO -    File "/builds/worker/workspace/build/venv/local/lib/python2.7/site-packages/marionette_driver/", line 1227, in start_session
[task 2017-09-13T08:42:43.920695Z] 08:42:43     INFO -      self.protocol, _ = self.client.connect()
[task 2017-09-13T08:42:43.922818Z] 08:42:43     INFO -    File "/builds/worker/workspace/build/venv/local/lib/python2.7/site-packages/marionette_driver/", line 223, in connect
[task 2017-09-13T08:42:43.925004Z] 08:42:43     INFO -      self.sock.connect((self.addr, self.port))
[task 2017-09-13T08:42:43.929669Z] 08:42:43     INFO -    File "/usr/lib/python2.7/", line 228, in meth
[task 2017-09-13T08:42:43.931578Z] 08:42:43     INFO -      return getattr(self._sock,name)(*args)
[task 2017-09-13T08:42:43.933813Z] 08:42:43     INFO -  error: [Errno 111] Connection refused

Mochitest is inappropriately setting 60s only for the timeout, so we now fail exactly 60s afterward and not 180s! I will bump this timeout once this bug is fixed via bug 1399592.
Attachment #8905639 - Flags: review?(mjzffr)
Comment on attachment 8905639 [details]
Bug 1397675 - Immediately kill the process if no connection can be made after startup.
Attachment #8905639 - Flags: review?(mjzffr) → review+
Pushed by
Immediately kill the process if no connection can be made after startup. r=maja_zf
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla57
Depends on: 1400594
You need to log in before you can comment on or make changes to this bug.