RESOLVED FIXED 209977
REGRESSION (r259383-259384): ASSERTION FAILED: 'Completion handler should always be called' seen with http/wpt/service-workers/service-worker-different-process.https.html
https://bugs.webkit.org/show_bug.cgi?id=209977
Summary REGRESSION (r259383-259384): ASSERTION FAILED: 'Completion handler should alw...
Ryan Haddad
Reported 2020-04-03 11:07:46 PDT
The following is seen on iOS and macOS debug bots with http/wpt/service-workers/service-worker-different-process.https.html ASSERTION FAILED: Completion handler should always be called !m_function /Volumes/Data/slave/catalina-debug/build/WebKitBuild/Debug/usr/local/include/wtf/CompletionHandler.h(53) : WTF::CompletionHandler<void (IPC::Decoder *)>::~CompletionHandler() 1 0x10b99ef29 WTFCrash 2 0x11281c037 WTF::CompletionHandler<void (IPC::Decoder*)>::~CompletionHandler() 3 0x1127fba95 WTF::CompletionHandler<void (IPC::Decoder*)>::~CompletionHandler() 4 0x112b35a45 std::__1::pair<WTF::CompletionHandler<void (IPC::Decoder*)>, unsigned long long>::~pair() 5 0x112b35a05 std::__1::pair<WTF::CompletionHandler<void (IPC::Decoder*)>, unsigned long long>::~pair() 6 0x112b359cf WTF::Optional_base<std::__1::pair<WTF::CompletionHandler<void (IPC::Decoder*)>, unsigned long long> >::~Optional_base() 7 0x112b35998 WTF::Optional<std::__1::pair<WTF::CompletionHandler<void (IPC::Decoder*)>, unsigned long long> >::~Optional() 8 0x112b35575 WTF::Optional<std::__1::pair<WTF::CompletionHandler<void (IPC::Decoder*)>, unsigned long long> >::~Optional() 9 0x113475746 WebKit::AuxiliaryProcessProxy::PendingMessage::~PendingMessage() 10 0x11346f2d5 WebKit::AuxiliaryProcessProxy::PendingMessage::~PendingMessage() 11 0x11347801f WTF::VectorDestructor<true, WebKit::AuxiliaryProcessProxy::PendingMessage>::destruct(WebKit::AuxiliaryProcessProxy::PendingMessage*, WebKit::AuxiliaryProcessProxy::PendingMessage*) 12 0x113477f7d WTF::VectorTypeOperations<WebKit::AuxiliaryProcessProxy::PendingMessage>::destruct(WebKit::AuxiliaryProcessProxy::PendingMessage*, WebKit::AuxiliaryProcessProxy::PendingMessage*) 13 0x113477f40 WTF::Vector<WebKit::AuxiliaryProcessProxy::PendingMessage, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc>::~Vector() 14 0x11346e895 WTF::Vector<WebKit::AuxiliaryProcessProxy::PendingMessage, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc>::~Vector() 15 0x11346e7c1 WebKit::AuxiliaryProcessProxy::~AuxiliaryProcessProxy() 16 0x1136b17c7 WebKit::WebProcessProxy::~WebProcessProxy() 17 0x1136b1c55 WebKit::WebProcessProxy::~WebProcessProxy() 18 0x1136b1cdc WebKit::WebProcessProxy::~WebProcessProxy() 19 0x1133026e4 WTF::ThreadSafeRefCounted<WebKit::WebProcessProxy, (WTF::DestructionThread)0>::deref() const::'lambda'()::operator()() const 20 0x11330267d WTF::ThreadSafeRefCounted<WebKit::WebProcessProxy, (WTF::DestructionThread)0>::deref() const 21 0x11330262e WebKit::WebProcessProxy::deref() 22 0x11356a58e void WTF::derefIfNotNull<WebKit::WebProcessProxy>(WebKit::WebProcessProxy*) 23 0x11356a559 WTF::RefPtr<WebKit::WebProcessProxy, WTF::DumbPtrTraits<WebKit::WebProcessProxy> >::~RefPtr() 24 0x1135316b5 WTF::RefPtr<WebKit::WebProcessProxy, WTF::DumbPtrTraits<WebKit::WebProcessProxy> >::~RefPtr() 25 0x1136a3fe1 WebKit::WebProcessPool::disconnectProcess(WebKit::WebProcessProxy*) 26 0x113698d0d WebKit::WebProcessProxy::shutDown() 27 0x1136b258c WebKit::WebProcessProxy::maybeShutDown() 28 0x1136a959c WebKit::WebProcessProxy::disableServiceWorkers() 29 0x11369fc63 WebKit::WebProcessPool::terminateServiceWorkers() 30 0x1136b00d7 WebKit::WebProcessPool::setUseSeparateServiceWorkerProcess(bool) 31 0x113848fce WKContextSetUseSeparateServiceWorkerProcess https://results.webkit.org/?suite=layout-tests&test=http%2Fwpt%2Fservice-workers%2Fservice-worker-different-process.https.html
Attachments
crash log (96.82 KB, text/plain)
2020-04-03 11:08 PDT, Ryan Haddad
no flags
Patch (1.75 KB, patch)
2020-04-07 04:34 PDT, youenn fablet
no flags
Ryan Haddad
Comment 1 2020-04-03 11:08:04 PDT
Created attachment 395396 [details] crash log
Ryan Haddad
Comment 2 2020-04-03 11:09:01 PDT
youenn fablet
Comment 3 2020-04-07 04:34:06 PDT
EWS
Comment 4 2020-04-07 09:09:48 PDT
Committed r259640: <https://trac.webkit.org/changeset/259640> All reviewed patches have been landed. Closing bug and clearing flags on attachment 395669 [details].
Darin Adler
Comment 5 2020-04-12 14:37:51 PDT
Comment on attachment 395669 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=395669&action=review > Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp:52 > + auto pendingMessages = WTFMove(m_pendingMessages); > + for (auto& pendingMessage : pendingMessages) { You can write it like this: for (auto& message : std::exchange(m_pendingMessages, { })) I think it’s better.
Note You need to log in before you can comment on or make changes to this bug.