Summary: | ASSERTION FAILURE (r220931): !m_function in ~CompletionHandler() after switch tabs | ||||||
---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Daniel Bates <dbates> | ||||
Component: | WebKit Misc. | Assignee: | Chris Dumez <cdumez> | ||||
Status: | RESOLVED FIXED | ||||||
Severity: | Normal | CC: | achristensen, beidson, cdumez, ggaren, webkit-bug-importer | ||||
Priority: | P2 | Keywords: | InRadar, Regression | ||||
Version: | WebKit Local Build | ||||||
Hardware: | iPhone / iPad | ||||||
OS: | iOS 13 | ||||||
Bug Depends on: | 175721 | ||||||
Bug Blocks: | |||||||
Attachments: |
|
Description
Daniel Bates
2020-05-29 11:30:00 PDT
Steps to repro: 1. Open one tab to apple.com 2. Create a new tab showing favorites view 3. Switch to apple.com I suspect the issue could be related to WebProcess::cancelMarkAllLayersVolatile(), which I believe gets called when cancelling suspension. cancelMarkAllLayersVolatile() destroys m_pageMarkingLayersAsVolatileCounter which may not have called its CompletionHandler yet. (In reply to Chris Dumez from comment #3) > I suspect the issue could be related to > WebProcess::cancelMarkAllLayersVolatile(), which I believe gets called when > cancelling suspension. cancelMarkAllLayersVolatile() destroys > m_pageMarkingLayersAsVolatileCounter which may not have called its > CompletionHandler yet. Yes, this is what I see: Thread 0 name: Dispatch queue: com.apple.main-thread Thread 0 Crashed: 0 WebKit 0x0000000101014b20 WTFCrashWithInfo(int, char const*, char const*, int) + 20 1 WebKit 0x00000001014930c4 WTF::Detail::CallableWrapper<WebKit::WebProcess::markAllLayersVolatile(WTF::CompletionHandler<void (bool)>&&)::$_2, void, WTF::RefCounterEvent>::call(WTF::RefCounterEvent) + 0 2 WebKit 0x0000000101493560 std::__1::unique_ptr<WTF::RefCounter<WebKit::WebProcess::PageMarkingLayersAsVolatileCounterType>, std::__1::default_delete<WTF::RefCounter<WebKit::WebProcess::PageMarkingLayersAsVolatileCounterType> > >::reset(WTF::RefCounter<WebKit::WebProcess::PageMarkingLayersAsVolatileCounterType>*) + 76 3 WebKit 0x000000010148edfc WebKit::WebProcess::cancelMarkAllLayersVolatile() + 40 4 WebKit 0x000000010148f080 WebKit::WebProcess::processDidResume() + 192 5 WebKit 0x000000010102e4d0 IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >) + 204 6 WebKit 0x000000010102e780 IPC::Connection::dispatchOneIncomingMessage() + 232 7 JavaScriptCore 0x00000001039aa324 WTF::RunLoop::performWork() + 688 8 JavaScriptCore 0x00000001039aa4e0 WTF::RunLoop::performWork(void*) + 36 9 CoreFoundation 0x00000001b1c5bb04 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24 Created attachment 400616 [details]
Patch
Committed r262380: <https://trac.webkit.org/changeset/262380> All reviewed patches have been landed. Closing bug and clearing flags on attachment 400616 [details]. |