[webkit-changes] [WebKit/WebKit] 4bd0c1: TestWebKitAPI.GPUProcess.WebProcessTerminationAfte...
mattwoodrow
noreply at github.com
Wed Oct 25 12:11:58 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 4bd0c17eea89ee6f3c609105a538196e5d518886
https://github.com/WebKit/WebKit/commit/4bd0c17eea89ee6f3c609105a538196e5d518886
Author: Matt Woodrow <mattwoodrow at apple.com>
Date: 2023-10-25 (Wed, 25 Oct 2023)
Changed paths:
M Source/WebKit/Platform/IPC/Connection.cpp
M Tools/TestWebKitAPI/Tests/IPC/ConnectionTests.cpp
Log Message:
-----------
TestWebKitAPI.GPUProcess.WebProcessTerminationAfterTooManyGPUProcessCrashes is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=263338
<rdar://117166263>
Reviewed by Kimmo Kinnunen.
nderingBackendProxy::ensureGPUProcessConnection can create both the main connection to the GPU process, and then send the
creation for the stream connection over that.
If the GPUP crashes before that main connection finishes connecting, then the message containing the stream connection
constructor is still in m_outgoingMessages.
We then block the main thread waiting on a sync message from the stream connection. We can’t process the incoming did
close message from the main connection, since we’re blocking the thread, and the stream connection doesn’t stop waiting
because the construction handle is still alive.
Making Connection::connectionDidClose() also clear m_outgoingMessages fixes the timeout.
* Source/WebKit/Platform/IPC/Connection.cpp:
(IPC::Connection::connectionDidClose):
* Tools/TestWebKitAPI/Tests/IPC/ConnectionTests.cpp:
(TestWebKitAPI::MockTestSyncMessage::name):
(TestWebKitAPI::MockTestSyncMessage::arguments):
(TestWebKitAPI::MockTestSyncMessage::MockTestSyncMessage):
(TestWebKitAPI::TEST_F):
Canonical link: https://commits.webkit.org/269773@main
More information about the webkit-changes
mailing list