Changeset 201263 in webkit


Ignore:
Timestamp:
May 22, 2016 3:55:23 PM (8 years ago)
Author:
ap@apple.com
Message:

RELEASE_ASSERT(TestController::singleton().isCurrentInvocation(testInvocation)) is sometimes hit when running tests
https://bugs.webkit.org/show_bug.cgi?id=157977
rdar://problem/20874156

Reviewed by David Kilzer.

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::invoke): Be more certain to launch a new process when there was
a timeout detected. If we don't, there is a chance that the process is not quite frozen,
and will still send a response that we no longer expect.
(WTR::TestInvocation::dumpWebProcessUnresponsiveness): Print timeout details to stderr
too, as stdout is not available, at least not in the case that I was observing.

Location:
trunk/Tools
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/ChangeLog

    r201255 r201263  
     12016-05-22  Alexey Proskuryakov  <ap@apple.com>
     2
     3        RELEASE_ASSERT(TestController::singleton().isCurrentInvocation(testInvocation)) is sometimes hit when running tests
     4        https://bugs.webkit.org/show_bug.cgi?id=157977
     5        rdar://problem/20874156
     6
     7        Reviewed by David Kilzer.
     8
     9        * WebKitTestRunner/TestInvocation.cpp:
     10        (WTR::TestInvocation::invoke): Be more certain to launch a new process when there was
     11        a timeout detected. If we don't, there is a chance that the process is not quite frozen,
     12        and will still send a response that we no longer expect.
     13        (WTR::TestInvocation::dumpWebProcessUnresponsiveness): Print timeout details to stderr
     14        too, as stdout is not available, at least not in the case that I was observing.
     15
    1162016-05-22  Brady Eidson  <beidson@apple.com>
    217
  • trunk/Tools/WebKitTestRunner/TestInvocation.cpp

    r201081 r201263  
    173173    if (m_webProcessIsUnresponsive)
    174174        dumpWebProcessUnresponsiveness();
    175     else if (!TestController::singleton().resetStateToConsistentValues(m_options)) {
    176         // The process froze while loading about:blank, let's start a fresh one.
    177         // It would be nice to report that the previous test froze after dumping results, but we have no way to do that.
    178         TestController::singleton().terminateWebContentProcess();
    179         // Make sure that we have a process, as invoke() will need one to send bundle messages for the next test.
    180         TestController::singleton().reattachPageToWebProcess();
    181     }
     175    else if (TestController::singleton().resetStateToConsistentValues(m_options))
     176        return;
     177    else
     178        dumpWebProcessUnresponsiveness("TestController::resetStateToConsistentValues failed\n");
     179
     180    // The process is unresponsive, so let's start a new one.
     181    TestController::singleton().terminateWebContentProcess();
     182    // Make sure that we have a process, as invoke() will need one to send bundle messages for the next test.
     183    TestController::singleton().reattachPageToWebProcess();
    182184}
    183185
     
    189191void TestInvocation::dumpWebProcessUnresponsiveness(const char* errorMessage)
    190192{
     193    fprintf(stderr, "%s", errorMessage);
    191194    char errorMessageToStderr[1024];
    192195#if PLATFORM(COCOA)
Note: See TracChangeset for help on using the changeset viewer.