Title: [282174] trunk/Source/WebKit
- Revision
- 282174
- Author
- [email protected]
- Date
- 2021-09-08 14:56:20 -0700 (Wed, 08 Sep 2021)
Log Message
Remove responsiveness timer in NetworkProcessProxy::getNetworkProcessConnection
https://bugs.webkit.org/show_bug.cgi?id=230016
rdar://problem/80760179
Reviewed by Chris Dumez.
We've seen evidence that network process may be blocked in initializeNetworkProcess. Since we have a 3-second
responsiveness timer in NetworkProcessProxy::getNetworkProcessConnection, blocked network process will be killed
and a new network process will be launched for getting connection. However, the new network process may get
stuck in initializeNetworkProcess too. In this case, web process will crash for not being able to get network
process connection.
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::getNetworkProcessConnection):
* UIProcess/WebsiteData/WebsiteDataStore.cpp: change RELEASE_ASSERT_NOT_REACHED_WITH_MESSAGE to
RELEASE_LOG_ERROR as the message is not printed in non-debug build.
(WebKit::WebsiteDataStore::getNetworkProcessConnection):
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (282173 => 282174)
--- trunk/Source/WebKit/ChangeLog 2021-09-08 21:41:42 UTC (rev 282173)
+++ trunk/Source/WebKit/ChangeLog 2021-09-08 21:56:20 UTC (rev 282174)
@@ -1,5 +1,25 @@
2021-09-08 Sihui Liu <[email protected]>
+ Remove responsiveness timer in NetworkProcessProxy::getNetworkProcessConnection
+ https://bugs.webkit.org/show_bug.cgi?id=230016
+ rdar://problem/80760179
+
+ Reviewed by Chris Dumez.
+
+ We've seen evidence that network process may be blocked in initializeNetworkProcess. Since we have a 3-second
+ responsiveness timer in NetworkProcessProxy::getNetworkProcessConnection, blocked network process will be killed
+ and a new network process will be launched for getting connection. However, the new network process may get
+ stuck in initializeNetworkProcess too. In this case, web process will crash for not being able to get network
+ process connection.
+
+ * UIProcess/Network/NetworkProcessProxy.cpp:
+ (WebKit::NetworkProcessProxy::getNetworkProcessConnection):
+ * UIProcess/WebsiteData/WebsiteDataStore.cpp: change RELEASE_ASSERT_NOT_REACHED_WITH_MESSAGE to
+ RELEASE_LOG_ERROR as the message is not printed in non-debug build.
+ (WebKit::WebsiteDataStore::getNetworkProcessConnection):
+
+2021-09-08 Sihui Liu <[email protected]>
+
Regression (r282130): [ macOS iOS wk2 ] imported/w3c/web-platform-tests/storage/persisted.https.any.html is failing
https://bugs.webkit.org/show_bug.cgi?id=230053
<rdar://problem/82879548>
Modified: trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp (282173 => 282174)
--- trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp 2021-09-08 21:41:42 UTC (rev 282173)
+++ trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp 2021-09-08 21:56:20 UTC (rev 282174)
@@ -250,7 +250,8 @@
void NetworkProcessProxy::getNetworkProcessConnection(WebProcessProxy& webProcessProxy, Messages::WebProcessProxy::GetNetworkProcessConnection::DelayedReply&& reply)
{
RELEASE_LOG(ProcessSuspension, "%p - NetworkProcessProxy is taking a background assertion because a web process is requesting a connection", this);
- startResponsivenessTimer(UseLazyStop::No);
+ if (!isLaunching())
+ startResponsivenessTimer(UseLazyStop::No);
sendWithAsyncReply(Messages::NetworkProcess::CreateNetworkConnectionToWebProcess { webProcessProxy.coreProcessIdentifier(), webProcessProxy.sessionID() }, [this, weakThis = makeWeakPtr(*this), reply = WTFMove(reply)](auto&& identifier, auto cookieAcceptPolicy) mutable {
if (!weakThis) {
RELEASE_LOG_ERROR(Process, "NetworkProcessProxy::getNetworkProcessConnection: NetworkProcessProxy deallocated during connection establishment");
Modified: trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp (282173 => 282174)
--- trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp 2021-09-08 21:41:42 UTC (rev 282173)
+++ trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp 2021-09-08 21:56:20 UTC (rev 282174)
@@ -1748,7 +1748,8 @@
networkProcessIdentifier = networkProcessProxy->processIdentifier();
networkProcessState = networkProcessProxy->stateString();
}
- RELEASE_ASSERT_NOT_REACHED_WITH_MESSAGE("WebsiteDataStore::getNetworkProcessConnection: Failed to get connection - networkProcessProxy=%p, networkProcessIdentifier=%d, processState=%s, webProcessProxy=%p, webProcessIdentifier=%d", networkProcessProxy.get(), networkProcessIdentifier, networkProcessState.utf8().data(), webProcessProxy.get(), webProcessProxy->processIdentifier());
+ RELEASE_LOG_ERROR(Process, "WebsiteDataStore::getNetworkProcessConnection: Failed to get connection - networkProcessProxy=%p, networkProcessIdentifier=%d, processState=%s, webProcessProxy=%p, webProcessIdentifier=%d", networkProcessProxy.get(), networkProcessIdentifier, networkProcessState.utf8().data(), webProcessProxy.get(), webProcessProxy->processIdentifier());
+ RELEASE_ASSERT_NOT_REACHED();
#endif
};
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes