Closed Bug 1397675 Opened 2 years ago Closed 2 years ago
Immediately quit the application if no connection can be made during startup
59 bytes, text/x-review-board-request
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.
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.
The following failing Mochitest shows that my patch is working fine: https://treeherder.mozilla.org/#/jobs?repo=try&revision=a86a93afe649&bugfiler&selectedJob=130582432 [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 - runtests.py | 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/runtests.py", 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/runtests.py", 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/decorators.py", 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/decorators.py", 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/marionette.py", 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/transport.py", 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/socket.py", 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.
Comment on attachment 8905639 [details] Bug 1397675 - Immediately kill the process if no connection can be made after startup. https://reviewboard.mozilla.org/r/177430/#review184664
Attachment #8905639 - Flags: review?(mjzffr) → review+
Pushed by email@example.com: https://hg.mozilla.org/integration/autoland/rev/50288d4db7ec Immediately kill the process if no connection can be made after startup. r=maja_zf
Depends on: 1416747
You need to log in before you can comment on or make changes to this bug.