Bug 259287 - RELEASE_ASSERT(isSuspensionImminent == IsSuspensionImminent::Yes) under ProcessThrottler::sendPrepareToSuspendIPC()
Summary: RELEASE_ASSERT(isSuspensionImminent == IsSuspensionImminent::Yes) under Proce...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit2 (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Chris Dumez
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2023-07-17 12:15 PDT by Chris Dumez
Modified: 2023-07-17 15:30 PDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Chris Dumez 2023-07-17 12:15:58 PDT
RELEASE_ASSERT(isSuspensionImminent == IsSuspensionImminent::Yes) under ProcessThrottler::sendPrepareToSuspendIPC():
   14 WTFCrashWithInfo(int, char const*, char const*, int)
 ==> 14 WebKit::ProcessThrottler::sendPrepareToSuspendIPC(WebKit::IsSuspensionImminent) <==
          14 WebKit::ProcessThrottler::removeActivity(WebKit::ProcessThrottlerActivity&)
            14 WebKit::ProcessThrottlerActivity::invalidate()
              14 WebKit::ProcessThrottlerActivity::~ProcessThrottlerActivity()
                14 WebKit::ProcessThrottlerActivity::~ProcessThrottlerActivity()
                  14 std::__1::default_delete<WebKit::ProcessThrottlerActivity>::operator()[abi:v160002](WebKit::ProcessThrottlerActivity*) const
                    14 std::__1::unique_ptr<WebKit::ProcessThrottlerActivity, std::__1::default_delete<WebKit::ProcessThrottlerActivity> >::reset[abi:v160002](WebKit::ProcessThrottlerActivity*)
                      14 decltype(auto) std::__1::__variant_detail::__visitation::__base::__visit_alt_at[abi:v160002]<void std::__1::__variant_detail::__assignment<std::__1::__variant_detail::__traits<std::nullptr_t, WTF::UniqueRef<WebKit::ProcessThrottlerActivity> > >::__generic_assign[abi:v160002]<std::__1::__variant_detail::__move_assignment<std::__1::__variant_detail::__traits<std::nullptr_t, WTF::UniqueRef<WebKit::ProcessThrottlerActivity> >, (std::__1::__variant_detail::_Trait)1> >(std::__1::__variant_detail::__move_assignment<std::__1::__variant_detail::__traits<std::nullptr_t, WTF::UniqueRef<WebKit::ProcessThrottlerActivity> >, (std::__1::__variant_detail::_Trait)1>&&)::'lambda'(std::__1::__variant_detail::__move_assignment<std::__1::__variant_detail::__traits<std::nullptr_t, WTF::UniqueRef<WebKit::ProcessThrottlerActivity> >, (std::__1::__variant_detail::_Trait)1>&, auto&&), std::__1::__variant_detail::__assignment<std::__1::__variant_detail::__traits<std::nullptr_t, WTF::UniqueRef<WebKit::ProcessThrottlerActivity> > >&, std::__1::__variant_detail::__move_assignment<std::__1::__variant_detail::__traits<std::nullptr_t, WTF::UniqueRef<WebKit::ProcessThrottlerActivity> >, (std::__1::__variant_detail::_Trait)1> >(unsigned long, std::__1::__variant_detail::__move_assignment<std::__1::__variant_detail::__traits<std::nullptr_t, WTF::UniqueRef<WebKit::ProcessThrottlerActivity> >, (std::__1::__variant_detail::_Trait)1>&&, void std::__1::__variant_detail::__assignment<std::__1::__variant_detail::__traits<std::nullptr_t, WTF::UniqueRef<WebKit::ProcessThrottlerActivity> > >::__generic_assign[abi:v160002]<std::__1::__variant_detail::__move_assignment<std::__1::__variant_detail::__traits<std::nullptr_t, WTF::UniqueRef<WebKit::ProcessThrottlerActivity> >, (std::__1::__variant_detail::_Trait)1> >(std::__1::__variant_detail::__move_assignment<std::__1::__variant_detail::__traits<std::nullptr_t, WTF::UniqueRef<WebKit::ProcessThrottlerActivity> >, (std::__1::__variant_detail::_Trait)1>&&)::'lambda'(std::__1::__variant_detail::__move_assignment<std::__1::__variant_detail::__traits<std::nullptr_t, WTF::UniqueRef<WebKit::ProcessThrottlerActivity> >, (std::__1::__variant_detail::_Trait)1>&, auto&&)&&...)
                        14 void std::__1::__variant_detail::__assignment<std::__1::__variant_detail::__traits<std::nullptr_t, WTF::UniqueRef<WebKit::ProcessThrottlerActivity> > >::__generic_assign[abi:v160002]<std::__1::__variant_detail::__move_assignment<std::__1::__variant_detail::__traits<std::nullptr_t, WTF::UniqueRef<WebKit::ProcessThrottlerActivity> >, (std::__1::__variant_detail::_Trait)1> >(std::__1::__variant_detail::__move_assignment<std::__1::__variant_detail::__traits<std::nullptr_t, WTF::UniqueRef<WebKit::ProcessThrottlerActivity> >, (std::__1::__variant_detail::_Trait)1>&&)
                          14 std::__1::__variant_detail::__move_assignment<std::__1::__variant_detail::__traits<std::nullptr_t, WTF::UniqueRef<WebKit::ProcessThrottlerActivity> >, (std::__1::__variant_detail::_Trait)1>::operator=(std::__1::__variant_detail::__move_assignment<std::__1::__variant_detail::__traits<std::nullptr_t, WTF::UniqueRef<WebKit::ProcessThrottlerActivity> >, (std::__1::__variant_detail::_Trait)1>&&)
                            14 std::__1::__variant_detail::__copy_assignment<std::__1::__variant_detail::__traits<std::nullptr_t, WTF::UniqueRef<WebKit::ProcessThrottlerActivity> >, (std::__1::__variant_detail::_Trait)2>::operator=(std::__1::__variant_detail::__copy_assignment<std::__1::__variant_detail::__traits<std::nullptr_t, WTF::UniqueRef<WebKit::ProcessThrottlerActivity> >, (std::__1::__variant_detail::_Trait)2>&&)
                              14 std::__1::__variant_detail::__impl<std::nullptr_t, WTF::UniqueRef<WebKit::ProcessThrottlerActivity> >::operator=(std::__1::__variant_detail::__impl<std::nullptr_t, WTF::UniqueRef<WebKit::ProcessThrottlerActivity> >&&)
                                14 std::__1::variant<std::nullptr_t, WTF::UniqueRef<WebKit::ProcessThrottlerActivity> >::operator=(std::__1::variant<std::nullptr_t, WTF::UniqueRef<WebKit::ProcessThrottlerActivity> >&&)
                                  14 WebKit::ProcessThrottlerTimedActivity::operator=(std::__1::variant<std::nullptr_t, WTF::UniqueRef<WebKit::ProcessThrottlerActivity> >&&)
                                    14 WebKit::AuxiliaryProcessProxy::wakeUpTemporarilyForIPC()
                                      14 WebKit::AuxiliaryProcessProxy::didFinishLaunching(WebKit::ProcessLauncher*, IPC::Connection::Identifier)::$_6::operator()() const
                                        14 WTF::Detail::CallableWrapper<WebKit::AuxiliaryProcessProxy::didFinishLaunching(WebKit::ProcessLauncher*, IPC::Connection::Identifier)::$_6, void>::call()
                                          14 WTF::Function<void ()>::operator()() const
                                            14 IPC::Connection::sendMessage(WTF::UniqueRef<IPC::Encoder>&&, WTF::OptionSet<IPC::SendOption>, std::__1::optional<WTF::Thread::QOS>)
                                              14 IPC::Connection::sendMessageWithAsyncReply(WTF::UniqueRef<IPC::Encoder>&&, IPC::ConnectionAsyncReplyHandler, WTF::OptionSet<IPC::SendOption>, std::__1::optional<WTF::Thread::QOS>)
                                                14 WebKit::AuxiliaryProcessProxy::sendMessage(WTF::UniqueRef<IPC::Encoder>&&, WTF::OptionSet<IPC::SendOption>, std::__1::optional<IPC::ConnectionAsyncReplyHandler>, WebKit::AuxiliaryProcessProxy::ShouldStartProcessThrottlerActivity)
                                                  14 WTF::ObjectIdentifierGeneric<IPC::AsyncReplyIDType, WTF::ObjectIdentifierThreadSafeAccessTraits> WebKit::AuxiliaryProcessProxy::sendWithAsyncReply<Messages::WebProcess::PrepareToSuspend, WTF::CompletionHandler<void ()> >(Messages::WebProcess::PrepareToSuspend&&, WTF::CompletionHandler<void ()>&&, unsigned long long, WTF::OptionSet<IPC::SendOption>, WebKit::AuxiliaryProcessProxy::ShouldStartProcessThrottlerActivity)
                                                    14 WebKit::WebProcessProxy::sendPrepareToSuspend(WebKit::IsSuspensionImminent, double, WTF::CompletionHandler<void ()>&&)
                                                      14 WebKit::ProcessThrottler::sendPrepareToSuspendIPC(WebKit::IsSuspensionImminent)
                                                        14 WebKit::ProcessThrottler::removeActivity(WebKit::ProcessThrottlerActivity&)
                                                          14 WebKit::ProcessThrottlerActivity::invalidate()
                                                            14 WebKit::ProcessThrottler::invalidateAllActivities()
                                                              14 WebKit::ProcessThrottler::setAllowsActivities(bool)
                                                                14 WebKit::WebProcessPool::setProcessesShouldSuspend(bool)
Comment 1 Chris Dumez 2023-07-17 12:16:06 PDT
<rdar://110941932>
Comment 2 Chris Dumez 2023-07-17 12:32:42 PDT
Pull request: https://github.com/WebKit/WebKit/pull/15890
Comment 3 EWS 2023-07-17 15:30:01 PDT
Committed 266113@main (30bf9977849a): <https://commits.webkit.org/266113@main>

Reviewed commits have been landed. Closing PR #15890 and removing active labels.