Title: [292869] trunk/Source/WebKit
Revision
292869
Author
[email protected]
Date
2022-04-14 08:48:20 -0700 (Thu, 14 Apr 2022)

Log Message

REGRESSION (249029@main): http/wpt/cache-storage/cache-storage-networkprocess-crash.html is a flaky CRASH with ASSERTION FAILED: m_pageMap.isEmpty()
https://bugs.webkit.org/show_bug.cgi?id=239095
<rdar://problem/91595784>

Reviewed by Chris Dumez.

We send the same IPC message to close WebSWContextManagerConnection from either network process or UIProcess.
To prevent closing twice the same connection, we exit early if the connection is closed.

Covered by existing tests.

* WebProcess/Storage/WebSWContextManagerConnection.cpp:
* WebProcess/Storage/WebSharedWorkerContextManagerConnection.cpp:

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (292868 => 292869)


--- trunk/Source/WebKit/ChangeLog	2022-04-14 15:44:26 UTC (rev 292868)
+++ trunk/Source/WebKit/ChangeLog	2022-04-14 15:48:20 UTC (rev 292869)
@@ -1,3 +1,19 @@
+2022-04-14  Youenn Fablet  <[email protected]>
+
+        REGRESSION (249029@main): http/wpt/cache-storage/cache-storage-networkprocess-crash.html is a flaky CRASH with ASSERTION FAILED: m_pageMap.isEmpty()
+        https://bugs.webkit.org/show_bug.cgi?id=239095
+        <rdar://problem/91595784>
+
+        Reviewed by Chris Dumez.
+
+        We send the same IPC message to close WebSWContextManagerConnection from either network process or UIProcess.
+        To prevent closing twice the same connection, we exit early if the connection is closed.
+
+        Covered by existing tests.
+
+        * WebProcess/Storage/WebSWContextManagerConnection.cpp:
+        * WebProcess/Storage/WebSharedWorkerContextManagerConnection.cpp:
+
 2022-04-14  Kate Cheney  <[email protected]>
 
         WKWebView: navigator.serviceWorker.register method fails for a new version of an already registered service worker.

Modified: trunk/Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.cpp (292868 => 292869)


--- trunk/Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.cpp	2022-04-14 15:44:26 UTC (rev 292868)
+++ trunk/Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.cpp	2022-04-14 15:48:20 UTC (rev 292869)
@@ -373,7 +373,10 @@
 
 void WebSWContextManagerConnection::close()
 {
-    RELEASE_LOG(ServiceWorker, "Service worker process is requested to stop all service workers");
+    RELEASE_LOG(ServiceWorker, "Service worker process is requested to stop all service workers (already stopped = %d)", isClosed());
+    if (isClosed())
+        return;
+
     setAsClosed();
 
     m_connectionToNetworkProcess->send(Messages::NetworkConnectionToWebProcess::CloseSWContextConnection { }, 0);

Modified: trunk/Source/WebKit/WebProcess/Storage/WebSharedWorkerContextManagerConnection.cpp (292868 => 292869)


--- trunk/Source/WebKit/WebProcess/Storage/WebSharedWorkerContextManagerConnection.cpp	2022-04-14 15:44:26 UTC (rev 292868)
+++ trunk/Source/WebKit/WebProcess/Storage/WebSharedWorkerContextManagerConnection.cpp	2022-04-14 15:48:20 UTC (rev 292869)
@@ -118,7 +118,10 @@
 
 void WebSharedWorkerContextManagerConnection::close()
 {
-    RELEASE_LOG(SharedWorker, "WebSharedWorkerContextManagerConnection::close: Shared worker process is requested to stop all shared workers");
+    RELEASE_LOG(SharedWorker, "WebSharedWorkerContextManagerConnection::close: Shared worker process is requested to stop all shared workers (already stopped = %d)", isClosed());
+    if (isClosed())
+        return;
+
     setAsClosed();
 
     m_connectionToNetworkProcess->send(Messages::NetworkConnectionToWebProcess::CloseSharedWorkerContextConnection { }, 0);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to