[webkit-changes] [WebKit/WebKit] 8ff9aa: Fix assertion in WebSWClientConnection::matchRegis...

Alex Christensen noreply at github.com
Thu Sep 19 20:00:31 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 8ff9aac9dafb83663ae8f82da58a742ce5d270ea
      https://github.com/WebKit/WebKit/commit/8ff9aac9dafb83663ae8f82da58a742ce5d270ea
  Author: Alex Christensen <achristensen at apple.com>
  Date:   2024-09-19 (Thu, 19 Sep 2024)

  Changed paths:
    M Source/WebKit/WebProcess/Storage/WebSWClientConnection.cpp

  Log Message:
  -----------
  Fix assertion in WebSWClientConnection::matchRegistration after network process crash
https://bugs.webkit.org/show_bug.cgi?id=280005
rdar://136310625

Reviewed by Youenn Fablet.

This fixes an assertion I saw on a bot with this stack trace:

ASSERTION FAILED: Completion handler should always be called
!m_function
.../WebKitBuild/Debug/usr/local/include/wtf/CompletionHandler.h(66) : WTF::CompletionHandler<void (std::optional<WebCore::ServiceWorkerRegistrationData> &&)>::~CompletionHandler()
1   WTF::CompletionHandler<void (std::__1::optional<WebCore::ServiceWorkerRegistrationData>&&)>::~CompletionHandler()
2   WTF::CompletionHandler<void (std::__1::optional<WebCore::ServiceWorkerRegistrationData>&&)>::~CompletionHandler()
3   WebKit::WebSWClientConnection::matchRegistration(WebCore::SecurityOriginData&&, WTF::URL const&, WTF::CompletionHandler<void (std::__1::optional<WebCore::ServiceWorkerRegistrationData>&&)>&&)::$_10::~$_10()
4   WebKit::WebSWClientConnection::matchRegistration(WebCore::SecurityOriginData&&, WTF::URL const&, WTF::CompletionHandler<void (std::__1::optional<WebCore::ServiceWorkerRegistrationData>&&)>&&)::$_10::~$_10()
5   WTF::Detail::CallableWrapper<WebKit::WebSWClientConnection::matchRegistration(WebCore::SecurityOriginData&&, WTF::URL const&, WTF::CompletionHandler<void (std::__1::optional<WebCore::ServiceWorkerRegistrationData>&&)>&&)::$_10, void>::~CallableWrapper()
6   WTF::Detail::CallableWrapper<WebKit::WebSWClientConnection::matchRegistration(WebCore::SecurityOriginData&&, WTF::URL const&, WTF::CompletionHandler<void (std::__1::optional<WebCore::ServiceWorkerRegistrationData>&&)>&&)::$_10, void>::~CallableWrapper()
7   WTF::Detail::CallableWrapper<WebKit::WebSWClientConnection::matchRegistration(WebCore::SecurityOriginData&&, WTF::URL const&, WTF::CompletionHandler<void (std::__1::optional<WebCore::ServiceWorkerRegistrationData>&&)>&&)::$_10, void>::~CallableWrapper()
8   std::__1::default_delete<WTF::Detail::CallableWrapperBase<void>>::operator()[abi:sn170006](WTF::Detail::CallableWrapperBase<void>*) const
9   std::__1::unique_ptr<WTF::Detail::CallableWrapperBase<void>, std::__1::default_delete<WTF::Detail::CallableWrapperBase<void>>>::reset[abi:sn170006](WTF::Detail::CallableWrapperBase<void>*)
10  std::__1::unique_ptr<WTF::Detail::CallableWrapperBase<void>, std::__1::default_delete<WTF::Detail::CallableWrapperBase<void>>>::~unique_ptr[abi:sn170006]()
11  std::__1::unique_ptr<WTF::Detail::CallableWrapperBase<void>, std::__1::default_delete<WTF::Detail::CallableWrapperBase<void>>>::~unique_ptr[abi:sn170006]()
12  WTF::Function<void ()>::~Function()
13  WTF::Function<void ()>::~Function()
14  WTF::VectorDestructor<true, WTF::Function<void ()>>::destruct(WTF::Function<void ()>*, WTF::Function<void ()>*)
15  WTF::VectorTypeOperations<WTF::Function<void ()>>::destruct(WTF::Function<void ()>*, WTF::Function<void ()>*)
16  WTF::Deque<WTF::Function<void ()>, 0ul>::destroyAll()
17  WTF::Deque<WTF::Function<void ()>, 0ul>::~Deque()
18  WTF::Deque<WTF::Function<void ()>, 0ul>::~Deque()
19  WebKit::WebSWClientConnection::~WebSWClientConnection()
20  WebKit::WebSWClientConnection::~WebSWClientConnection()
21  WebKit::WebSWClientConnection::~WebSWClientConnection()
22  WTF::RefCounted<WebCore::SWClientConnection>::deref() const
23  WTF::DefaultRefDerefTraits<WebKit::WebSWClientConnection>::derefIfNotNull(WebKit::WebSWClientConnection*)
24  WTF::RefPtr<WebKit::WebSWClientConnection, WTF::RawPtrTraits<WebKit::WebSWClientConnection>, WTF::DefaultRefDerefTraits<WebKit::WebSWClientConnection>>::~RefPtr()
25  WTF::RefPtr<WebKit::WebSWClientConnection, WTF::RawPtrTraits<WebKit::WebSWClientConnection>, WTF::DefaultRefDerefTraits<WebKit::WebSWClientConnection>>::~RefPtr()
26  WebKit::NetworkProcessConnection::didClose(IPC::Connection&)
27  IPC::Connection::dispatchDidCloseAndInvalidate()::$_14::operator()() const
28  WTF::Detail::CallableWrapper<IPC::Connection::dispatchDidCloseAndInvalidate()::$_14, void>::call()
29  WTF::Function<void ()>::operator()() const
30  WTF::RunLoop::performWork()
31  WTF::RunLoop::performWork(void*)

* Source/WebKit/WebProcess/Storage/WebSWClientConnection.cpp:
(WebKit::WebSWClientConnection::matchRegistration):

Canonical link: https://commits.webkit.org/283969@main



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list