Title: [282091] trunk/Tools
Revision
282091
Author
jbed...@apple.com
Date
2021-09-07 09:37:33 -0700 (Tue, 07 Sep 2021)

Log Message

Exception in run-webkit-tests: Bad file descriptor (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=229994

Reviewed by Aakash Jain.

* Scripts/webkitpy/port/server_process.py:
(ServerProcess.write): Catch "Bad file descriptor."
(ServerProcess._wait_for_data_and_update_buffers_using_select): Ditto.

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (282090 => 282091)


--- trunk/Tools/ChangeLog	2021-09-07 16:30:15 UTC (rev 282090)
+++ trunk/Tools/ChangeLog	2021-09-07 16:37:33 UTC (rev 282091)
@@ -1,5 +1,16 @@
 2021-09-07  Jonathan Bedard  <jbed...@apple.com>
 
+        Exception in run-webkit-tests: Bad file descriptor (Part 1)
+        https://bugs.webkit.org/show_bug.cgi?id=229994
+
+        Reviewed by Aakash Jain.
+
+        * Scripts/webkitpy/port/server_process.py:
+        (ServerProcess.write): Catch "Bad file descriptor."
+        (ServerProcess._wait_for_data_and_update_buffers_using_select): Ditto.
+
+2021-09-07  Jonathan Bedard  <jbed...@apple.com>
+
         run_webkit_tests failed to print error message in python3 in linux_get_crash_log.py
         https://bugs.webkit.org/show_bug.cgi?id=229971
 

Modified: trunk/Tools/Scripts/webkitpy/port/server_process.py (282090 => 282091)


--- trunk/Tools/Scripts/webkitpy/port/server_process.py	2021-09-07 16:30:15 UTC (rev 282090)
+++ trunk/Tools/Scripts/webkitpy/port/server_process.py	2021-09-07 16:37:33 UTC (rev 282091)
@@ -184,7 +184,7 @@
         try:
             self._proc.stdin.write(string_utils.encode(bytes))
             self._proc.stdin.flush()
-        except (IOError, ValueError):
+        except (IOError, OSError, ValueError):
             self.stop(0.0)
             # stop() calls _reset(), so we have to set crashed to True after calling stop()
             # unless we already know that this is a timeout.
@@ -284,6 +284,10 @@
         select_fds = (out_fd, err_fd)
         try:
             read_fds, _, _ = select.select(select_fds, [], select_fds, max(deadline - time.time(), 0))
+        except OSError:
+            # FIXME: https://bugs.webkit.org/show_bug.cgi?id=229994
+            _log.debug('Caught OSError for {}, continuing'.format(self.pid()))
+            return
         except select.error as e:
             # We can ignore EINVAL since it's likely the process just crashed and we'll
             # figure that out the next time through the loop in _read().
@@ -312,6 +316,10 @@
                     _log.debug('{} because of no data while reading stdout for the server process.'.format(self._crash_message))
                     self._crashed = True
                 self._error += data
+        except OSError:
+            # FIXME: https://bugs.webkit.org/show_bug.cgi?id=229994
+            _log.debug('Caught OSError for {}, continuing'.format(self.pid()))
+            pass
         except IOError:
             # We can ignore the IOErrors because we will detect if the subporcess crashed
             # the next time through the loop in _read()
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to