Title: [280160] trunk/Source/WebKit
- Revision
- 280160
- Author
- [email protected]
- Date
- 2021-07-21 13:59:27 -0700 (Wed, 21 Jul 2021)
Log Message
RunningBoard kills the network process if it is still holding the "holding locked file" assertion upon suspension
https://bugs.webkit.org/show_bug.cgi?id=228148
Reviewed by Sihui Liu.
RunningBoard kills the network process if it is still holding the "holding locked file" assertion upon suspension
because our assertion type is "uninterruptible" and we don't release it when it gets invalidated. To address the
issue, we now use an "interruptible" assertion instead when holding locked files.
* NetworkProcess/ios/NetworkProcessIOS.mm:
(WebKit::NetworkProcess::setIsHoldingLockedFiles):
* UIProcess/ProcessAssertion.h:
* UIProcess/ProcessThrottler.cpp:
(WebKit::ProcessThrottler::assertionName const):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didSetAssertionType):
* UIProcess/ios/ProcessAssertionIOS.mm:
(WebKit::runningBoardNameForAssertionType):
(WebKit::runningBoardDomainForAssertionType):
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (280159 => 280160)
--- trunk/Source/WebKit/ChangeLog 2021-07-21 20:33:31 UTC (rev 280159)
+++ trunk/Source/WebKit/ChangeLog 2021-07-21 20:59:27 UTC (rev 280160)
@@ -1,3 +1,25 @@
+2021-07-21 Chris Dumez <[email protected]>
+
+ RunningBoard kills the network process if it is still holding the "holding locked file" assertion upon suspension
+ https://bugs.webkit.org/show_bug.cgi?id=228148
+
+ Reviewed by Sihui Liu.
+
+ RunningBoard kills the network process if it is still holding the "holding locked file" assertion upon suspension
+ because our assertion type is "uninterruptible" and we don't release it when it gets invalidated. To address the
+ issue, we now use an "interruptible" assertion instead when holding locked files.
+
+ * NetworkProcess/ios/NetworkProcessIOS.mm:
+ (WebKit::NetworkProcess::setIsHoldingLockedFiles):
+ * UIProcess/ProcessAssertion.h:
+ * UIProcess/ProcessThrottler.cpp:
+ (WebKit::ProcessThrottler::assertionName const):
+ * UIProcess/WebProcessProxy.cpp:
+ (WebKit::WebProcessProxy::didSetAssertionType):
+ * UIProcess/ios/ProcessAssertionIOS.mm:
+ (WebKit::runningBoardNameForAssertionType):
+ (WebKit::runningBoardDomainForAssertionType):
+
2021-07-21 Alex Christensen <[email protected]>
Add linkedOnOrAfter check for r269162
Modified: trunk/Source/WebKit/NetworkProcess/ios/NetworkProcessIOS.mm (280159 => 280160)
--- trunk/Source/WebKit/NetworkProcess/ios/NetworkProcessIOS.mm 2021-07-21 20:33:31 UTC (rev 280159)
+++ trunk/Source/WebKit/NetworkProcess/ios/NetworkProcessIOS.mm 2021-07-21 20:59:27 UTC (rev 280160)
@@ -112,7 +112,7 @@
// We synchronously take a process assertion when beginning a SQLite transaction so that we don't get suspended
// while holding a locked file. We would get killed if suspended while holding locked files.
- m_holdingLockedFileAssertion = ProcessAssertion::create(getCurrentProcessID(), "Network Process is holding locked files"_s, ProcessAssertionType::FinishTaskUninterruptable, ProcessAssertion::Mode::Sync);
+ m_holdingLockedFileAssertion = ProcessAssertion::create(getCurrentProcessID(), "Network Process is holding locked files"_s, ProcessAssertionType::FinishTaskInterruptable, ProcessAssertion::Mode::Sync);
m_holdingLockedFileAssertion->setPrepareForInvalidationHandler([this, weakThis = makeWeakPtr(*this)]() mutable {
ASSERT(isMainRunLoop());
if (!weakThis)
Modified: trunk/Source/WebKit/UIProcess/ProcessAssertion.h (280159 => 280160)
--- trunk/Source/WebKit/UIProcess/ProcessAssertion.h 2021-07-21 20:33:31 UTC (rev 280159)
+++ trunk/Source/WebKit/UIProcess/ProcessAssertion.h 2021-07-21 20:59:27 UTC (rev 280160)
@@ -51,7 +51,7 @@
UnboundedNetworking,
Foreground,
MediaPlayback,
- FinishTaskUninterruptable,
+ FinishTaskInterruptable,
};
class ProcessAssertion : public ThreadSafeRefCounted<ProcessAssertion>, public CanMakeWeakPtr<ProcessAssertion, WeakPtrFactoryInitialization::Eager> {
Modified: trunk/Source/WebKit/UIProcess/ProcessThrottler.cpp (280159 => 280160)
--- trunk/Source/WebKit/UIProcess/ProcessThrottler.cpp 2021-07-21 20:33:31 UTC (rev 280159)
+++ trunk/Source/WebKit/UIProcess/ProcessThrottler.cpp 2021-07-21 20:59:27 UTC (rev 280160)
@@ -112,7 +112,7 @@
return "Suspended"_s;
case ProcessAssertionType::UnboundedNetworking:
case ProcessAssertionType::MediaPlayback:
- case ProcessAssertionType::FinishTaskUninterruptable:
+ case ProcessAssertionType::FinishTaskInterruptable:
ASSERT_NOT_REACHED(); // These other assertion types are not used by the ProcessThrottler.
break;
}
Modified: trunk/Source/WebKit/UIProcess/WebProcessProxy.cpp (280159 => 280160)
--- trunk/Source/WebKit/UIProcess/WebProcessProxy.cpp 2021-07-21 20:33:31 UTC (rev 280159)
+++ trunk/Source/WebKit/UIProcess/WebProcessProxy.cpp 2021-07-21 20:59:27 UTC (rev 280160)
@@ -1470,7 +1470,7 @@
case ProcessAssertionType::MediaPlayback:
case ProcessAssertionType::UnboundedNetworking:
- case ProcessAssertionType::FinishTaskUninterruptable:
+ case ProcessAssertionType::FinishTaskInterruptable:
ASSERT_NOT_REACHED();
}
Modified: trunk/Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm (280159 => 280160)
--- trunk/Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm 2021-07-21 20:33:31 UTC (rev 280159)
+++ trunk/Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm 2021-07-21 20:59:27 UTC (rev 280160)
@@ -305,8 +305,8 @@
return @"Foreground";
case ProcessAssertionType::MediaPlayback:
return @"MediaPlayback";
- case ProcessAssertionType::FinishTaskUninterruptable:
- return @"FinishTaskUninterruptable";
+ case ProcessAssertionType::FinishTaskInterruptable:
+ return @"FinishTaskInterruptable";
}
}
@@ -319,7 +319,7 @@
case ProcessAssertionType::Foreground:
case ProcessAssertionType::MediaPlayback:
return @"com.apple.webkit";
- case ProcessAssertionType::FinishTaskUninterruptable:
+ case ProcessAssertionType::FinishTaskInterruptable:
return @"com.apple.common";
}
}
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes