New issue
Advanced search Search tips

Issue 728982 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug



Sign in to add a comment

xvfb checking / starting loop appears to be broken when an X server already exists

Project Member Reported by tansell@chromium.org, Jun 2 2017

Issue description

The build at https://chromium-swarm.appspot.com/task?id=3680db4c00cc1310&refresh=10&show_raw=1 timed out as it got stuck doing the following;
-----------------------
02:02:16.215 10893 Collecting tests ...
02:02:21.814 10893 chunk slice [0:3792] of 68240 is 3792 tests
02:02:21.814 10893 Parsing expectations ...
02:02:50.116 10893 Found 3792 tests (total 68240); running 3297, skipping 495.
02:02:50.116 10893 Checking build ...
02:02:50.116 10893 
02:02:50.127 10893 "ruby --version" took 0.01s
02:02:50.152 10893 "/usr/sbin/apache2 -v" took 0.03s
02:02:50.153 10893 Clobbering old results in /b/s/w/ioxNKW4O.
02:02:50.158 10893 "xdpyinfo -display :99" took 0.01s
02:02:50.162 10893 "xdpyinfo -display :100" took 0.00s
02:02:50.162 10893 Overriding TMPDIR to "/tmp" for Xvfb, was: /b/s/w/itB5o95C
02:02:50.162 10893 Starting Xvfb with display ":100".
02:02:50.171 10893 "xdpyinfo" took 0.00s
02:02:50.171 10893 xdpyinfo check failed with exit code 1 while starting Xvfb on ":100".
02:02:50.277 10893 "xdpyinfo" took 0.01s
02:02:50.277 10893 xdpyinfo check failed with exit code 1 while starting Xvfb on ":100".
02:02:50.382 10893 "xdpyinfo" took 0.00s
02:02:50.382 10893 xdpyinfo check failed with exit code 1 while starting Xvfb on ":100".
02:02:50.487 10893 "xdpyinfo" took 0.00s
02:02:50.488 10893 xdpyinfo check failed with exit code 1 while starting Xvfb on ":100".
02:02:50.593 10893 "xdpyinfo" took 0.01s
02:02:50.593 10893 xdpyinfo check failed with exit code 1 while starting Xvfb on ":100".
02:02:50.699 10893 "xdpyinfo" took 0.00s
02:02:50.699 10893 xdpyinfo check failed with exit code 1 while starting Xvfb on ":100".
02:02:50.803 10893 "xdpyinfo" took 0.00s
02:02:50.804 10893 xdpyinfo check failed with exit code 1 while starting Xvfb on ":100".
02:02:50.909 10893 "xdpyinfo" took 0.00s
02:02:50.909 10893 xdpyinfo check failed with exit code 1 while starting Xvfb on ":100".
02:02:51.013 10893 "xdpyinfo" took 0.00s
02:02:51.014 10893 xdpyinfo check failed with exit code 1 while starting Xvfb on ":100".
02:02:51.118 10893 "xdpyinfo" took 0.00s
02:02:51.118 10893 xdpyinfo check failed with exit code 1 while starting Xvfb on ":100".
02:02:51.223 10893 "xdpyinfo" took 0.00s
02:02:51.224 10893 xdpyinfo check failed with exit code 1 while starting Xvfb on ":100".
02:02:51.329 10893 "xdpyinfo" took 0.00s
02:02:51.329 10893 xdpyinfo check failed with exit code 1 while starting Xvfb on ":100".
02:02:51.434 10893 "xdpyinfo" took 0.00s
02:02:51.434 10893 xdpyinfo check failed with exit code 1 while starting Xvfb on ":100".
02:02:51.539 10893 "xdpyinfo" took 0.00s
02:02:51.539 10893 xdpyinfo check failed with exit code 1 while starting Xvfb on ":100".
02:02:51.645 10893 "xdpyinfo" took 0.00s
02:02:51.645 10893 xdpyinfo check failed with exit code 1 while starting Xvfb on ":100".
02:02:51.750 10893 "xdpyinfo" took 0.01s
02:02:51.750 10893 xdpyinfo check failed with exit code 1 while starting Xvfb on ":100".
-----------------------

It should have timed out?
 
Cc: -qyears...@chromium.org
Owner: qyears...@chromium.org
Status: Assigned (was: Untriaged)
Ah, you're right -- Currently, in layout_tests/port/linux.py, the loop condition is:

while self.host.time() - start_time < self.XVFB_START_TIMEOUT or self._xvfb_process.poll() is not None:

So, supposing that Xvfb exits with return code 1 and self._xvfb_process.poll() always returns 1, then this loop won't terminate.
Labels: OS-Linux Pri-2 Type-Bug
Status: Started (was: Assigned)
Proposed fix CL: https://chromium-review.googlesource.com/c/522902/
Project Member

Comment 3 by bugdroid1@chromium.org, Jun 7 2017

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

commit c16df6a944ecfa347e1dc4e03262d926175c6a0e
Author: Quinten Yearsley <qyearsley@google.com>
Date: Wed Jun 07 02:38:20 2017

Exit xvfb starting loop if Xvfb has already failed.

This CL modifies the linux port of the layout test runner so that, if
Xvfb exits with a non-zero return code, the the runner shouldn't get into
an infinite loop during set-up.

Bug:  728982 
Change-Id: I1c5bdcf1ab2117121b1d4b2d0ada1df7e6adaef8
Reviewed-on: https://chromium-review.googlesource.com/522902
Reviewed-by: Tim 'mithro' Ansell <tansell@chromium.org>
Commit-Queue: Quinten Yearsley <qyearsley@chromium.org>
Cr-Commit-Position: refs/heads/master@{#477525}
[modify] https://crrev.com/c16df6a944ecfa347e1dc4e03262d926175c6a0e/third_party/WebKit/Tools/Scripts/webkitpy/common/system/executive_mock.py
[modify] https://crrev.com/c16df6a944ecfa347e1dc4e03262d926175c6a0e/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/linux.py
[modify] https://crrev.com/c16df6a944ecfa347e1dc4e03262d926175c6a0e/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/linux_unittest.py

Status: Fixed (was: Started)
Theoretically fixed.

Sign in to add a comment