Title: [177722] trunk/Tools
Revision
177722
Author
[email protected]
Date
2014-12-24 00:34:55 -0800 (Wed, 24 Dec 2014)

Log Message

DumpRenderTree crashes are mis-reported as timeouts on Yosemite
https://bugs.webkit.org/show_bug.cgi?id=139933

Reviewed by Daniel Bates.

Crash logs take a very long time to be generated on Yosemite (rdar://problem/18701447),
and there is no way for run-webkit-tests to tell a crashed process from a frozen one
until ReportCrash lets it go.

Reuse existing machinery that tells run-webkit-tests about crashes. The script may
even get the actual crash log eventually - even when it times out waiting for the log, it
makes a second lookup at the very end, after all tests finish. There may be further
improvements needed here, but this small fix addresses most cases that happen in practice.

* DumpRenderTree/mac/DumpRenderTree.mm:
(writeCrashedMessageOnFatalError):
(dumpRenderTree):
Removed PLATFORM(IOS) ifdefs, this code is just as helpful on Mac.

* Scripts/webkitpy/port/driver.py: (Driver._check_for_driver_crash): Removed an
unhelpful comment.

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (177721 => 177722)


--- trunk/Tools/ChangeLog	2014-12-24 05:34:39 UTC (rev 177721)
+++ trunk/Tools/ChangeLog	2014-12-24 08:34:55 UTC (rev 177722)
@@ -1,5 +1,29 @@
 2014-12-23  Alexey Proskuryakov  <[email protected]>
 
+        DumpRenderTree crashes are mis-reported as timeouts on Yosemite
+        https://bugs.webkit.org/show_bug.cgi?id=139933
+
+        Reviewed by Daniel Bates.
+
+        Crash logs take a very long time to be generated on Yosemite (rdar://problem/18701447),
+        and there is no way for run-webkit-tests to tell a crashed process from a frozen one
+        until ReportCrash lets it go.
+
+        Reuse existing machinery that tells run-webkit-tests about crashes. The script may
+        even get the actual crash log eventually - even when it times out waiting for the log, it
+        makes a second lookup at the very end, after all tests finish. There may be further
+        improvements needed here, but this small fix addresses most cases that happen in practice.
+
+        * DumpRenderTree/mac/DumpRenderTree.mm:
+        (writeCrashedMessageOnFatalError):
+        (dumpRenderTree):
+        Removed PLATFORM(IOS) ifdefs, this code is just as helpful on Mac.
+
+        * Scripts/webkitpy/port/driver.py: (Driver._check_for_driver_crash): Removed an
+        unhelpful comment.
+
+2014-12-23  Alexey Proskuryakov  <[email protected]>
+
         Don't force -O1 for debug ASan builds
         https://bugs.webkit.org/show_bug.cgi?id=139926
 

Modified: trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm (177721 => 177722)


--- trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm	2014-12-24 05:34:39 UTC (rev 177721)
+++ trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm	2014-12-24 08:34:55 UTC (rev 177722)
@@ -1121,7 +1121,6 @@
 #endif
 }
 
-#if PLATFORM(IOS)
 const char crashedMessage[] = "#CRASHED\n";
 
 void writeCrashedMessageOnFatalError(int signalCode)
@@ -1134,7 +1133,6 @@
     write(STDERR_FILENO, &crashedMessage[0], sizeof(crashedMessage) - 1);
     fsync(STDERR_FILENO);
 }
-#endif
 
 void dumpRenderTree(int argc, const char *argv[])
 {
@@ -1150,12 +1148,12 @@
     dup2(outfd, STDOUT_FILENO);
     int errfd = open(stderrPath, O_RDWR | O_NONBLOCK);
     dup2(errfd, STDERR_FILENO);
+#endif
 
     signal(SIGILL, &writeCrashedMessageOnFatalError);
     signal(SIGFPE, &writeCrashedMessageOnFatalError);
     signal(SIGBUS, &writeCrashedMessageOnFatalError);
     signal(SIGSEGV, &writeCrashedMessageOnFatalError);
-#endif
 
     initializeGlobalsFromCommandLineOptions(argc, argv);
     prepareConsistentTestingEnvironment();

Modified: trunk/Tools/Scripts/webkitpy/port/driver.py (177721 => 177722)


--- trunk/Tools/Scripts/webkitpy/port/driver.py	2014-12-24 05:34:39 UTC (rev 177721)
+++ trunk/Tools/Scripts/webkitpy/port/driver.py	2014-12-24 08:34:55 UTC (rev 177722)
@@ -374,8 +374,6 @@
 
     def _check_for_driver_crash(self, error_line):
         if error_line == "#CRASHED\n":
-            # This is used on Windows and iOS to report that the process has crashed
-            # See http://trac.webkit.org/changeset/65537.
             self._crashed_process_name = self._server_process.name()
             self._crashed_pid = self._server_process.pid()
         elif (error_line.startswith("#CRASHED - ")
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to