Bug 283445

Summary: [macOS Debug wk2] ASSERTION FAILED: !m_messageReceiverMapCount in webrtc tests
Product: WebKit Reporter: Marta Darbinyan <darbinyan>
Component: MediaAssignee: Marta Darbinyan <darbinyan>
Status: RESOLVED FIXED    
Severity: Normal CC: jean-yves.avenard, jer.noble, philn, webkit-bot-watchers-bugzilla, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   

Marta Darbinyan
Reported 2024-11-20 14:41:18 PST
The following test is a consistent crash on macOS and false positive on EWS. webrtc/vp8-then-h264.html The assertion started within the range of 286802@main change. stderr: ASSERTION FAILED: !m_messageReceiverMapCount /Volumes/Data/worker/Apple-Sequoia-Debug-Build/build/Source/WebKit/Platform/IPC/MessageReceiver.h(50) : virtual IPC::MessageReceiver::~MessageReceiver() 1 0x42bec5c10 IPC::MessageReceiver::~MessageReceiver() 2 0x42e425ff1 WebKit::RemoteRemoteCommandListener::~RemoteRemoteCommandListener() 3 0x42e426115 WebKit::RemoteRemoteCommandListener::~RemoteRemoteCommandListener() 4 0x42e0e51a6 void WTF::ThreadSafeWeakPtrControlBlock::strongDeref<WebKit::RemoteRemoteCommandListener, (WTF::DestructionThread)0>() const::'lambda'()::operator()() const 5 0x42e0e5055 void WTF::ThreadSafeWeakPtrControlBlock::strongDeref<WebKit::RemoteRemoteCommandListener, (WTF::DestructionThread)0>() const 6 0x42e0e4e39 WTF::ThreadSafeRefCountedAndCanMakeThreadSafeWeakPtr<WebKit::RemoteRemoteCommandListener, (WTF::DestructionThread)0>::deref() const 7 0x42e0e4d29 WebKit::RemoteRemoteCommandListener::deref() const 8 0x48780906f WTF::DefaultRefDerefTraits<WebCore::RemoteCommandListener>::derefIfNotNull(WebCore::RemoteCommandListener*) 9 0x4878037e1 WTF::RefPtr<WebCore::RemoteCommandListener, WTF::RawPtrTraits<WebCore::RemoteCommandListener>, WTF::DefaultRefDerefTraits<WebCore::RemoteCommandListener>>::operator=(std::nullptr_t) 10 0x48780368a WebCore::NowPlayingManager::removeClient(WebCore::NowPlayingManagerClient&) 11 0x483f136ca WebCore::MediaSessionManagerCocoa::removeSession(WebCore::PlatformMediaSession&) 12 0x4878b9775 WebCore::PlatformMediaSession::stopSession() 13 0x4869cd87b WebCore::HTMLMediaElement::stop() 14 0x486a924f9 WebCore::HTMLVideoElement::stop() 15 0x48660f0ea _ZZN7WebCore22ScriptExecutionContext20stopActiveDOMObjectsEvENK3$_0clINS_15ActiveDOMObjectEEEDaRT_ 16 0x48660f0a1 WTF::Detail::CallableWrapper<WebCore::ScriptExecutionContext::stopActiveDOMObjects()::$_0, WebCore::ScriptExecutionContext::ShouldContinue, WebCore::ActiveDOMObject&>::call(WebCore::ActiveDOMObject&) 17 0x4865ef74f WTF::Function<WebCore::ScriptExecutionContext::ShouldContinue (WebCore::ActiveDOMObject&)>::operator()(WebCore::ActiveDOMObject&) const 18 0x4865ef585 WebCore::ScriptExecutionContext::forEachActiveDOMObject(WTF::Function<WebCore::ScriptExecutionContext::ShouldContinue (WebCore::ActiveDOMObject&)> const&) const 19 0x4865efd84 WebCore::ScriptExecutionContext::stopActiveDOMObjects() 20 0x486343125 WebCore::Document::stopActiveDOMObjects() 21 0x486342aef WebCore::Document::commonTeardown() 22 0x486357f4a WebCore::Document::willBeRemovedFromFrame() 23 0x4874b393d WebCore::LocalFrame::setView(WTF::RefPtr<WebCore::LocalFrameView, WTF::RawPtrTraits<WebCore::LocalFrameView>, WTF::DefaultRefDerefTraits<WebCore::LocalFrameView>>&&) 24 0x4874b8761 WebCore::LocalFrame::createView(WebCore::IntSize const&, std::__1::optional<WebCore::Color> const&, WebCore::IntSize const&, bool, WebCore::ScrollbarMode, bool, WebCore::ScrollbarMode, bool) 25 0x42e76db9c WebKit::WebLocalFrameLoaderClient::transitionToCommittedForNewPage(WebCore::LocalFrameLoaderClient::InitializingIframe) 26 0x4871b7bbe WebCore::FrameLoader::transitionToCommitted(WebCore::CachedPage*) 27 0x4871b62eb WebCore::FrameLoader::commitProvisionalLoad() 28 0x4871381cf WebCore::DocumentLoader::commitIfReady() 29 0x4871389d6 WebCore::DocumentLoader::finishedLoading() 30 0x487148018 WebCore::DocumentLoader::maybeLoadEmpty() 31 0x48714838b WebCore::DocumentLoader::startLoadingMainResource() com.apple.WebKit.WebContent.Development terminated (pid 48336) for reason: crash LEAK: 1 WebPageProxy Link: https://build.webkit.org/results/Apple-Sequoia-Debug-WK2-Tests/286803@main%20(393)/results.html History: https://results.webkit.org/?flavor=wk2&platform=mac&suite=layout-tests&test=webrtc%2Fvp8-then-h264.html&style=debug
Attachments
Radar WebKit Bug Importer
Comment 1 2024-11-20 14:45:57 PST
EWS
Comment 2 2024-11-20 15:35:25 PST
Test gardening commit 286878@main (e26eb9493ca3): <https://commits.webkit.org/286878@main> Reviewed commits have been landed. Closing PR #36922 and removing active labels.
Marta Darbinyan
Comment 3 2024-11-20 16:39:37 PST
Update: The assertion started within the range of 286800@main change.
Philippe Normand
Comment 4 2024-11-21 00:24:38 PST
I don't think 286800@main is the culprit, it's specific to Linux ports.
Marta Darbinyan
Comment 5 2024-11-21 12:18:45 PST
Looks like another test started failing with same assertion in webrtc after gardening. ``` worker/0 webrtc/vp8-then-h264.html crashed, (stderr lines): 17:22:08.102 1058 worker/0 ASSERTION FAILED: !m_messageReceiverMapCount 17:22:08.102 1058 worker/0 /Volumes/Data/worker/macOS-Sequoia-Debug-Build-EWS/build/Source/WebKit/Platform/IPC/MessageReceiver.h(50) : virtual IPC::MessageReceiver::~MessageReceiver() 17:22:08.102 1058 worker/0 1 0x11a64f800 IPC::MessageReceiver::~MessageReceiver() 17:22:08.102 1058 worker/0 2 0x11cc13148 WebKit::RemoteRemoteCommandListener::~RemoteRemoteCommandListener() 17:22:08.102 1058 worker/0 3 0x11cc132a4 WebKit::RemoteRemoteCommandListener::~RemoteRemoteCommandListener() 17:22:08.102 1058 worker/0 4 0x11c8a6d54 void WTF::ThreadSafeWeakPtrControlBlock::strongDeref<WebKit::RemoteRemoteCommandListener, (WTF::DestructionThread)0>() const::'lambda'()::operator()() const ``` This assertion could be caused by the test that ran before it. webrtc/vp8-then-h264-gpu-process-crash.html.
EWS
Comment 6 2024-11-21 13:23:42 PST
Test gardening commit 286922@main (f20a42cd4e52): <https://commits.webkit.org/286922@main> Reviewed commits have been landed. Closing PR #36972 and removing active labels.
Marta Darbinyan
Comment 7 2024-11-21 16:16:05 PST
We could reproduce the crash by running three webrtc tests together. webrtc/video.html webrtc/vp8-then-h264-gpu-process-crash.html webrtc/vp8-then-h264.html The tests are passing when they are tested separately from each other, so something in combination of three triggers this crash. Here is the narrowed down range when the crash occurred. 286802@main - Failed 286795@main - Passed Range of the suspected changes: https://commits.webkit.org/compare/286795@main...286802@main Command to reproduce: run-webkit-tests --root —debug --force --iterations=1 webrtc/video.html webrtc/vp8-then-h264-gpu-process-crash.html webrtc/vp8-then-h264.html
EWS
Comment 8 2024-11-22 10:18:08 PST
Committed 286967@main (bbf8a24839a0): <https://commits.webkit.org/286967@main> Reviewed commits have been landed. Closing PR #37013 and removing active labels.
Note You need to log in before you can comment on or make changes to this bug.