Bug 283445
| Summary: | [macOS Debug wk2] ASSERTION FAILED: !m_messageReceiverMapCount in webrtc tests | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Marta Darbinyan <darbinyan> |
| Component: | Media | Assignee: | 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
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 | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/140302668>
EWS
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
Update: The assertion started within the range of 286800@main change.
Philippe Normand
I don't think 286800@main is the culprit, it's specific to Linux ports.
Marta Darbinyan
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
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
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
Committed 286967@main (bbf8a24839a0): <https://commits.webkit.org/286967@main>
Reviewed commits have been landed. Closing PR #37013 and removing active labels.