Title: [238343] trunk/Source/WebKit
Revision
238343
Author
cdu...@apple.com
Date
2018-11-16 22:46:55 -0800 (Fri, 16 Nov 2018)

Log Message

Regression(ProcessPrewarming) Assertion hit in NetworkProcessProxy destructor
https://bugs.webkit.org/show_bug.cgi?id=191800

Reviewed by Ryosuke Niwa.

Make sure the NetworkProcessProxy destructor calls its remaining m_pendingConnectionReplies
completion handlers to avoid hitting an assertion in the CompletionHandler destructor.

Prewarmed WebProcess do not keep the ProcessPool alive and thus not the NetworkProcessProxy
either. As a result, it is possible for NetworkProcessProxy to have pending connection
requests from those prewarmed processes when it is destroyed. Similar story for the
suspended page processes when they are destroyed.

* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::~NetworkProcessProxy):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (238342 => 238343)


--- trunk/Source/WebKit/ChangeLog	2018-11-17 06:03:19 UTC (rev 238342)
+++ trunk/Source/WebKit/ChangeLog	2018-11-17 06:46:55 UTC (rev 238343)
@@ -1,3 +1,21 @@
+2018-11-16  Chris Dumez  <cdu...@apple.com>
+
+        Regression(ProcessPrewarming) Assertion hit in NetworkProcessProxy destructor
+        https://bugs.webkit.org/show_bug.cgi?id=191800
+
+        Reviewed by Ryosuke Niwa.
+
+        Make sure the NetworkProcessProxy destructor calls its remaining m_pendingConnectionReplies
+        completion handlers to avoid hitting an assertion in the CompletionHandler destructor.
+
+        Prewarmed WebProcess do not keep the ProcessPool alive and thus not the NetworkProcessProxy
+        either. As a result, it is possible for NetworkProcessProxy to have pending connection
+        requests from those prewarmed processes when it is destroyed. Similar story for the
+        suspended page processes when they are destroyed.
+
+        * UIProcess/Network/NetworkProcessProxy.cpp:
+        (WebKit::NetworkProcessProxy::~NetworkProcessProxy):
+
 2018-11-16  Alex Christensen  <achristen...@webkit.org>
 
         Tweak _showSafeBrowsingWarningWithTitle SPI

Modified: trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp (238342 => 238343)


--- trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp	2018-11-17 06:03:19 UTC (rev 238342)
+++ trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp	2018-11-17 06:46:55 UTC (rev 238343)
@@ -89,6 +89,9 @@
     for (auto* proxy : m_webUserContentControllerProxies)
         proxy->removeNetworkProcess(*this);
 #endif
+
+    for (auto& reply : m_pendingConnectionReplies)
+        reply.second({ });
 }
 
 void NetworkProcessProxy::getLaunchOptions(ProcessLauncher::LaunchOptions& launchOptions)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to