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