Title: [133506] trunk/Tools
Revision
133506
Author
[email protected]
Date
2012-11-05 11:21:39 -0800 (Mon, 05 Nov 2012)

Log Message

The layout test runner shouldn't wait for data if stdout/stderr have been closed
https://bugs.webkit.org/show_bug.cgi?id=101233

Reviewed by Dirk Pranke.

Trying to read the file descriptor for the stdout or stderr pipes when DumpRenderTree
has crashed during a Chromium Android layout test-run, which uses FIFOs for
communication, causes the File.fileno() method to raise a ValueError. Return early
if either of the pipes has already been closed.

* Scripts/webkitpy/layout_tests/port/server_process.py:
(ServerProcess._wait_for_data_and_update_buffers_using_select):

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (133505 => 133506)


--- trunk/Tools/ChangeLog	2012-11-05 19:17:13 UTC (rev 133505)
+++ trunk/Tools/ChangeLog	2012-11-05 19:21:39 UTC (rev 133506)
@@ -1,3 +1,18 @@
+2012-11-05  Peter Beverloo  <[email protected]>
+
+        The layout test runner shouldn't wait for data if stdout/stderr have been closed
+        https://bugs.webkit.org/show_bug.cgi?id=101233
+
+        Reviewed by Dirk Pranke.
+
+        Trying to read the file descriptor for the stdout or stderr pipes when DumpRenderTree
+        has crashed during a Chromium Android layout test-run, which uses FIFOs for
+        communication, causes the File.fileno() method to raise a ValueError. Return early
+        if either of the pipes has already been closed.
+
+        * Scripts/webkitpy/layout_tests/port/server_process.py:
+        (ServerProcess._wait_for_data_and_update_buffers_using_select):
+
 2012-11-05  Dirk Pranke  <[email protected]>
 
         webkit-patch rebaseline is broken

Modified: trunk/Tools/Scripts/webkitpy/layout_tests/port/server_process.py (133505 => 133506)


--- trunk/Tools/Scripts/webkitpy/layout_tests/port/server_process.py	2012-11-05 19:17:13 UTC (rev 133505)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/port/server_process.py	2012-11-05 19:21:39 UTC (rev 133506)
@@ -226,6 +226,11 @@
         return output
 
     def _wait_for_data_and_update_buffers_using_select(self, deadline, stopping=False):
+        if self._proc.stdout.closed or self._proc.stderr.closed:
+            # If the process crashed and is using FIFOs, like Chromium Android, the
+            # stdout and stderr pipes will be closed.
+            return
+
         out_fd = self._proc.stdout.fileno()
         err_fd = self._proc.stderr.fileno()
         select_fds = (out_fd, err_fd)
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to