Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 4bd0c17eea89ee6f3c609105a538196e5d518886
https://github.com/WebKit/WebKit/commit/4bd0c17eea89ee6f3c609105a538196e5d518886
Author: Matt Woodrow <[email protected]>
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
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes