Bug 259886

Summary: Crash under ProcessThrottlerActivity::isValid()
Product: WebKit Reporter: Chris Dumez <cdumez>
Component: WebKit2Assignee: Chris Dumez <cdumez>
Status: RESOLVED FIXED    
Severity: Normal CC: kkinnunen, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   

Description Chris Dumez 2023-08-07 08:43:21 PDT
Crash under ProcessThrottlerActivity::isValid():
```
  6 WebKit::ProcessThrottlerActivity::isValid() const
        6 WebKit::ProcessThrottler::isValidBackgroundActivity(std::__1::variant<std::nullptr_t, WTF::UniqueRef<WebKit::ProcessThrottlerActivity> > const&)
   ==> 6 WebKit::AuxiliaryProcessProxy::wakeUpTemporarilyForIPC() <==
            6 WebKit::AuxiliaryProcessProxy::didFinishLaunching(WebKit::ProcessLauncher*, IPC::Connection::Identifier)::$_7::operator()() const
              6 WTF::Detail::CallableWrapper<WebKit::AuxiliaryProcessProxy::didFinishLaunching(WebKit::ProcessLauncher*, IPC::Connection::Identifier)::$_7, void>::call()
                6 WTF::Function<void ()>::operator()() const
                  6 IPC::Connection::sendMessage(WTF::UniqueRef<IPC::Encoder>&&, WTF::OptionSet<IPC::SendOption>, std::__1::optional<WTF::Thread::QOS>)
                    6 IPC::Connection::sendMessageWithAsyncReply(WTF::UniqueRef<IPC::Encoder>&&, IPC::ConnectionAsyncReplyHandler, WTF::OptionSet<IPC::SendOption>, std::__1::optional<WTF::Thread::QOS>)
                      6 WebKit::AuxiliaryProcessProxy::sendMessage(WTF::UniqueRef<IPC::Encoder>&&, WTF::OptionSet<IPC::SendOption>, std::__1::optional<IPC::ConnectionAsyncReplyHandler>, WebKit::AuxiliaryProcessProxy::ShouldStartProcessThrottlerActivity)
                        6 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)
                          6 WebKit::WebProcessProxy::sendPrepareToSuspend(WebKit::IsSuspensionImminent, double, WTF::CompletionHandler<void ()>&&)
                            6 WebKit::ProcessThrottler::sendPrepareToSuspendIPC(WebKit::IsSuspensionImminent)
                              6 WebKit::ProcessThrottler::removeActivity(WebKit::ProcessThrottlerActivity&)
                                6 WebKit::ProcessThrottlerActivity::invalidate()
                                  6 WebKit::ProcessThrottlerActivity::~ProcessThrottlerActivity()
                                    6 WebKit::ProcessThrottlerActivity::~ProcessThrottlerActivity()
                                      6 std::__1::default_delete<WebKit::ProcessThrottlerActivity>::operator()[abi:v160006](WebKit::ProcessThrottlerActivity*) const
                                        6 std::__1::unique_ptr<WebKit::ProcessThrottlerActivity, std::__1::default_delete<WebKit::ProcessThrottlerActivity> >::reset[abi:v160006](WebKit::ProcessThrottlerActivity*)
                                          6 decltype(auto) std::__1::__variant_detail::__visitation::__base::__visit_alt[abi:v160006]<std::__1::__variant_detail::__dtor<std::__1::__variant_detail::__traits<std::nullptr_t, WTF::UniqueRef<WebKit::ProcessThrottlerActivity> >, (std::__1::__variant_detail::_Trait)1>::__destroy[abi:v160006]()::'lambda'(auto&), std::__1::__variant_detail::__dtor<std::__1::__variant_detail::__traits<std::nullptr_t, WTF::UniqueRef<WebKit::ProcessThrottlerActivity> >, (std::__1::__variant_detail::_Trait)1>&>(auto&&, (std::__1::__variant_detail::_Trait)1&&...)
                                            6 std::__1::__variant_detail::__dtor<std::__1::__variant_detail::__traits<std::nullptr_t, WTF::UniqueRef<WebKit::ProcessThrottlerActivity> >, (std::__1::__variant_detail::_Trait)1>::__destroy[abi:v160006]()
                                              6 auto& std::__1::__variant_detail::__assignment<std::__1::__variant_detail::__traits<std::nullptr_t, WTF::UniqueRef<WebKit::ProcessThrottlerActivity> > >::__emplace[abi:v160006]<0ul, std::nullptr_t>(std::nullptr_t&&)
                                                6 void std::__1::__variant_detail::__assignment<std::__1::__variant_detail::__traits<std::nullptr_t, WTF::UniqueRef<WebKit::ProcessThrottlerActivity> > >::__assign_alt[abi:v160006]<0ul, std::nullptr_t, std::nullptr_t>(std::__1::__variant_detail::__alt<0ul, std::nullptr_t>&, std::nullptr_t&&)::'unnamed'::operator()(std::__1::integral_constant<bool, true>) const
                                                  6 void std::__1::__variant_detail::__assignment<std::__1::__variant_detail::__traits<std::nullptr_t, WTF::UniqueRef<WebKit::ProcessThrottlerActivity> > >::__assign_alt[abi:v160006]<0ul, std::nullptr_t, std::nullptr_t>(std::__1::__variant_detail::__alt<0ul, std::nullptr_t>&, std::nullptr_t&&)
                                                    6 void std::__1::__variant_detail::__impl<std::nullptr_t, WTF::UniqueRef<WebKit::ProcessThrottlerActivity> >::__assign[abi:v160006]<0ul, std::nullptr_t>(std::nullptr_t&&)
                                                      6 std::__1::variant<std::nullptr_t, WTF::UniqueRef<WebKit::ProcessThrottlerActivity> >& std::__1::variant<std::nullptr_t, WTF::UniqueRef<WebKit::ProcessThrottlerActivity> >::operator=[abi:v160006]<std::nullptr_t, 0, std::nullptr_t, 0ul, 0>(std::nullptr_t&&)
                                                        6 WebKit::ProcessThrottlerTimedActivity::activityTimedOut()
                                                          6 WTF::Function<void ()>::operator()() const
                                                            6 WTF::RunLoop::Timer::fired()
```
Comment 1 Chris Dumez 2023-08-07 08:43:30 PDT
<rdar://113459152>
Comment 2 Chris Dumez 2023-08-07 08:47:28 PDT
Pull request: https://github.com/WebKit/WebKit/pull/16439
Comment 3 EWS 2023-08-07 11:03:25 PDT
Committed 266642@main (fe792fdab477): <https://commits.webkit.org/266642@main>

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