New issue
Advanced search Search tips

Issue 682711 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jan 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 1
Type: Bug



Sign in to add a comment

run-webkit-tests run-webkit-tests for the second time gives error - wptserve not killed after run

Project Member Reported by nzolghadr@chromium.org, Jan 19 2017

Issue description

When I run the
./third_party/WebKit/Tools/Scripts/run-webkit-tests external/wpt/[any subfolder]

for the second time I get this error:

Starting WPTServe ...                                                                          
ServerError raised: Port 8001 is already in use.
Traceback (most recent call last):
  File "/usr/local/google/home/nzolghadr/chromium/src/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py", line 67, in main
    return run(port, options, args, stderr, stdout).exit_code
  File "/usr/local/google/home/nzolghadr/chromium/src/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py", line 580, in run
    run_details = _run_tests(port, options, args, printer)
  File "/usr/local/google/home/nzolghadr/chromium/src/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py", line 571, in _run_tests
    return manager.run(args)
  File "/usr/local/google/home/nzolghadr/chromium/src/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py", line 127, in run
    self._start_servers(tests_to_run)
  File "/usr/local/google/home/nzolghadr/chromium/src/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py", line 365, in _start_servers
    self._port.start_wptserve()
  File "/usr/local/google/home/nzolghadr/chromium/src/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/base.py", line 1172, in start_wptserve
    server.start()
  File "/usr/local/google/home/nzolghadr/chromium/src/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/servers/server_base.py", line 100, in start
    self._check_that_all_ports_are_available()
  File "/usr/local/google/home/nzolghadr/chromium/src/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/servers/server_base.py", line 276, in _check_that_all_ports_are_available
    raise ServerError('Port %d is already in use.' % port)
ServerError: Port 8001 is already in use.

The only workaround is to kill the process manually.

 
Cc: falken@chromium.org
falken@, it seems that when the script tries to run the WptServe it gives this error. Is it because it doesn't kill it properly after each run?
Cc: tkent@chromium.org jeffcarp@chromium.org
Labels: -Pri-3 Pri-2
Status: Available (was: Untriaged)
Summary: run-webkit-tests run-webkit-tests for the second time gives error - wptserve not killed after run (was: run-webkit-tests for the second time gives error)
I've reproduced this too, and I also think that wptserve is not killed properly sometimes. After killing the wptserve processes manually, running for a second time works again.
Cc: mek@chromium.org
Labels: -Pri-2 Pri-1
Owner: qyears...@chromium.org
Status: Assigned (was: Available)
Caused by http://crrev.com/2624093003, but if possible I'd like to avoid reverting that CL, since then we may have to disable wptserve again.
Just confirmed locally that that undoing http://crrev.com/2624093003 does solve this on my workstation.
Project Member

Comment 5 by bugdroid1@chromium.org, Jan 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/896b0f4ea756385f66de7b31c52fccf728a02cb6

commit 896b0f4ea756385f66de7b31c52fccf728a02cb6
Author: qyearsley <qyearsley@chromium.org>
Date: Fri Jan 20 01:46:13 2017

When killing wptserve, use Executive.interrupt on non-Windows platforms.

Before http://crrev.com/2624093003, the test runner would hang in a busy
loop while trying to kill wptserve.

After that CL, though, when running run-webkit-tests locally on Linux,
wptserve wouldn't be effectively killed before the next run.

This CL is meant to make it so that it behaves more like it did before
(using interrupt instead of kill for non-Windows platforms), but still
only tries to kill wptserve for 20 seconds, with 1-second sleeps between
attempts.

I tried locally to see what would happen if I undid the change in
http://crrev.com/2624093003 but only changed _stop_running_server to
use kill_process on all platforms (not just Windows), and confirmed that
this apparently doesn't kill the process properly on my workstation.

BUG= 669802 , 682711 

Review-Url: https://codereview.chromium.org/2649433002
Cr-Commit-Position: refs/heads/master@{#444933}

[modify] https://crrev.com/896b0f4ea756385f66de7b31c52fccf728a02cb6/third_party/WebKit/Tools/Scripts/webkitpy/common/system/executive_mock.py
[modify] https://crrev.com/896b0f4ea756385f66de7b31c52fccf728a02cb6/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/servers/wptserve.py

Status: Fixed (was: Assigned)
This should now be fixed.

Comment 7 by falken@chromium.org, Jan 23 2017

Nice, thanks for keeping wptserve enabled!

Sign in to add a comment