Title: [282228] branches/safari-612-branch/Source/WebKit
- Revision
- 282228
- Author
- [email protected]
- Date
- 2021-09-09 11:04:30 -0700 (Thu, 09 Sep 2021)
Log Message
Cherry-pick r282174. rdar://problem/82931245
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):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@282174 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Modified Paths
Diff
Modified: branches/safari-612-branch/Source/WebKit/ChangeLog (282227 => 282228)
--- branches/safari-612-branch/Source/WebKit/ChangeLog 2021-09-09 18:04:27 UTC (rev 282227)
+++ branches/safari-612-branch/Source/WebKit/ChangeLog 2021-09-09 18:04:30 UTC (rev 282228)
@@ -1,3 +1,48 @@
+2021-09-09 Russell Epstein <[email protected]>
+
+ Cherry-pick r282174. rdar://problem/82931245
+
+ 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):
+
+
+ git-svn-id: https://svn.webkit.org/repository/webkit/trunk@282174 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+ 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 Alan Coon <[email protected]>
Cherry-pick r282090. rdar://problem/82877535
Modified: branches/safari-612-branch/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp (282227 => 282228)
--- branches/safari-612-branch/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp 2021-09-09 18:04:27 UTC (rev 282227)
+++ branches/safari-612-branch/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp 2021-09-09 18:04:30 UTC (rev 282228)
@@ -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: branches/safari-612-branch/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp (282227 => 282228)
--- branches/safari-612-branch/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp 2021-09-09 18:04:27 UTC (rev 282227)
+++ branches/safari-612-branch/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp 2021-09-09 18:04:30 UTC (rev 282228)
@@ -1745,7 +1745,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