Changeset 177722 in webkit


Ignore:
Timestamp:
Dec 24, 2014 12:34:55 AM (9 years ago)
Author:
ap@apple.com
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.

Location:
trunk/Tools
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/ChangeLog

    r177718 r177722  
     12014-12-23  Alexey Proskuryakov  <ap@apple.com>
     2
     3        DumpRenderTree crashes are mis-reported as timeouts on Yosemite
     4        https://bugs.webkit.org/show_bug.cgi?id=139933
     5
     6        Reviewed by Daniel Bates.
     7
     8        Crash logs take a very long time to be generated on Yosemite (rdar://problem/18701447),
     9        and there is no way for run-webkit-tests to tell a crashed process from a frozen one
     10        until ReportCrash lets it go.
     11
     12        Reuse existing machinery that tells run-webkit-tests about crashes. The script may
     13        even get the actual crash log eventually - even when it times out waiting for the log, it
     14        makes a second lookup at the very end, after all tests finish. There may be further
     15        improvements needed here, but this small fix addresses most cases that happen in practice.
     16
     17        * DumpRenderTree/mac/DumpRenderTree.mm:
     18        (writeCrashedMessageOnFatalError):
     19        (dumpRenderTree):
     20        Removed PLATFORM(IOS) ifdefs, this code is just as helpful on Mac.
     21
     22        * Scripts/webkitpy/port/driver.py: (Driver._check_for_driver_crash): Removed an
     23        unhelpful comment.
     24
    1252014-12-23  Alexey Proskuryakov  <ap@apple.com>
    226
  • trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm

    r177363 r177722  
    11221122}
    11231123
    1124 #if PLATFORM(IOS)
    11251124const char crashedMessage[] = "#CRASHED\n";
    11261125
     
    11351134    fsync(STDERR_FILENO);
    11361135}
    1137 #endif
    11381136
    11391137void dumpRenderTree(int argc, const char *argv[])
     
    11511149    int errfd = open(stderrPath, O_RDWR | O_NONBLOCK);
    11521150    dup2(errfd, STDERR_FILENO);
     1151#endif
    11531152
    11541153    signal(SIGILL, &writeCrashedMessageOnFatalError);
     
    11561155    signal(SIGBUS, &writeCrashedMessageOnFatalError);
    11571156    signal(SIGSEGV, &writeCrashedMessageOnFatalError);
    1158 #endif
    11591157
    11601158    initializeGlobalsFromCommandLineOptions(argc, argv);
  • trunk/Tools/Scripts/webkitpy/port/driver.py

    r177471 r177722  
    375375    def _check_for_driver_crash(self, error_line):
    376376        if error_line == "#CRASHED\n":
    377             # This is used on Windows and iOS to report that the process has crashed
    378             # See http://trac.webkit.org/changeset/65537.
    379377            self._crashed_process_name = self._server_process.name()
    380378            self._crashed_pid = self._server_process.pid()
Note: See TracChangeset for help on using the changeset viewer.