Bug 226248 - REGRESSION: [iOS] ASSERTION FAILED: !m_messageReceiverMapCount under WebKit::RemoteRemoteCommandListener::~RemoteRemoteCommandListener()
Summary: REGRESSION: [iOS] ASSERTION FAILED: !m_messageReceiverMapCount under WebKit::...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Media (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: youenn fablet
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2021-05-25 16:12 PDT by Ryan Haddad
Modified: 2021-07-20 14:15 PDT (History)
10 users (show)

See Also:


Attachments
Patch (10.29 KB, patch)
2021-07-06 03:11 PDT, youenn fablet
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Ryan Haddad 2021-05-25 16:12:08 PDT
Seeing the flaky assert below on iOS simulator debug bots with the following layout tests

fast/events/tabindex-focus-blur-all.html
media/media-blocked-by-willsendrequest.html
media/modern-media-controls/mute-button/mute-button.html

ASSERTION FAILED: !m_messageReceiverMapCount
/Volumes/Data/worker/ios-simulator-14-debug/build/Source/WebKit/Platform/IPC/MessageReceiver.h(41) : virtual IPC::MessageReceiver::~MessageReceiver()
1   0x173a7ed99 WTFCrash
2   0x1580b131b WTFCrashWithInfo(int, char const*, char const*, int)
3   0x1580f5818 IPC::MessageReceiver::~MessageReceiver()
4   0x159d4deff WebKit::RemoteRemoteCommandListener::~RemoteRemoteCommandListener()
5   0x159d4e015 WebKit::RemoteRemoteCommandListener::~RemoteRemoteCommandListener()
6   0x159d4e07c WebKit::RemoteRemoteCommandListener::~RemoteRemoteCommandListener()
7   0x18019dc4f std::__1::default_delete<WebCore::RemoteCommandListener>::operator()(WebCore::RemoteCommandListener*) const
8   0x18019dbcf std::__1::unique_ptr<WebCore::RemoteCommandListener, std::__1::default_delete<WebCore::RemoteCommandListener> >::reset(WebCore::RemoteCommandListener*)
9   0x1801926a7 std::__1::unique_ptr<WebCore::RemoteCommandListener, std::__1::default_delete<WebCore::RemoteCommandListener> >::operator=(std::nullptr_t)
10  0x180192519 WebCore::NowPlayingManager::removeClient(WebCore::NowPlayingManager::Client&)
11  0x17db86ba8 WebCore::MediaSessionManagerCocoa::removeSession(WebCore::PlatformMediaSession&)
12  0x180220ecc WebCore::PlatformMediaSession::stopSession()
13  0x17f5a877c WebCore::HTMLMediaElement::stop()
14  0x17f212ebd auto WebCore::ScriptExecutionContext::stopActiveDOMObjects()::$_3::operator()<WebCore::ActiveDOMObject>(WebCore::ActiveDOMObject&) const
15  0x17f212e53 WTF::Detail::CallableWrapper<WebCore::ScriptExecutionContext::stopActiveDOMObjects()::$_3, WebCore::ScriptExecutionContext::ShouldContinue, WebCore::ActiveDOMObject&>::call(WebCore::ActiveDOMObject&)
16  0x17f1fb93a WTF::Function<WebCore::ScriptExecutionContext::ShouldContinue (WebCore::ActiveDOMObject&)>::operator()(WebCore::ActiveDOMObject&) const
17  0x17f1fb790 WebCore::ScriptExecutionContext::forEachActiveDOMObject(WTF::Function<WebCore::ScriptExecutionContext::ShouldContinue (WebCore::ActiveDOMObject&)> const&) const
18  0x17f1fbca7 WebCore::ScriptExecutionContext::stopActiveDOMObjects()
19  0x17efba2ef WebCore::Document::stopActiveDOMObjects()
20  0x17efba08c WebCore::Document::commonTeardown()
21  0x17efc732b WebCore::Document::willBeRemovedFromFrame()
22  0x17ff289b3 WebCore::Frame::setView(WTF::RefPtr<WebCore::FrameView, WTF::RawPtrTraits<WebCore::FrameView>, WTF::DefaultRefDerefTraits<WebCore::FrameView> >&&)
23  0x17fcf409e WebCore::FrameLoader::closeAndRemoveChild(WebCore::Frame&)
24  0x17fcf3fa3 WebCore::FrameLoader::detachFromParent()
25  0x17fce6f4a WebCore::FrameLoader::detachChildren()
26  0x17fcf3f0c WebCore::FrameLoader::detachFromParent()
27  0x17fcf473d WebCore::FrameLoader::frameDetached()
28  0x17f546099 WebCore::HTMLFrameOwnerElement::disconnectContentFrame()
29  0x17ef725f1 WebCore::disconnectSubframes(WebCore::ContainerNode&, WebCore::SubframeDisconnectPolicy)
30  0x17ef50ba5 WebCore::disconnectSubframesIfNeeded(WebCore::ContainerNode&, WebCore::SubframeDisconnectPolicy)
31  0x17ef4d64d WebCore::ContainerNode::removeAllChildrenWithScriptAssertion(WebCore::ContainerNode::ChildChange::Source, WebCore::ContainerNode::DeferChildrenChanged)
com.apple.WebKit.WebContent.Development terminated (pid 34892) because the process crashed

https://results.webkit.org/?suite=layout-tests&suite=layout-tests&suite=layout-tests&test=fast%2Fevents%2Ftabindex-focus-blur-all.html&test=media%2Fmedia-blocked-by-willsendrequest.html&test=media%2Fmodern-media-controls%2Fmute-button%2Fmute-button.html
Comment 1 Radar WebKit Bug Importer 2021-05-25 16:12:22 PDT
<rdar://problem/78481758>
Comment 2 Ryan Haddad 2021-05-25 16:13:40 PDT
Maybe related to "[Cocoa] Enable MediaSession and MediaSessionCoordinator experimental features
" https://trac.webkit.org/changeset/276338/webkit?
Comment 3 Eric Carlson 2021-05-25 16:42:30 PDT
(In reply to Ryan Haddad from comment #2)
> Maybe related to "[Cocoa] Enable MediaSession and MediaSessionCoordinator
> experimental features
> " https://trac.webkit.org/changeset/276338/webkit?

No, RemoteRemoteCommandListener is used to hook up to NowPlaying.
Comment 4 youenn fablet 2021-07-06 03:11:45 PDT
Created attachment 432915 [details]
Patch
Comment 5 EWS 2021-07-06 09:02:31 PDT
Committed r279584 (239415@main): <https://commits.webkit.org/239415@main>

All reviewed patches have been landed. Closing bug and clearing flags on attachment 432915 [details].