Bug 252029

Summary: REGRESSION (259938@main?): [ macOS Debug WK2] Flaky ASSERTION FAILED: m_sources.get(identifier) == &source in WebKit::SpeechRecognitionRemoteRealtimeMediaSourceManager::removeSource()
Product: WebKit Reporter: Bri Harris <bharris9>
Component: New BugsAssignee: Bri Harris <bharris9>
Status: RESOLVED FIXED    
Severity: Normal CC: webkit-bot-watchers-bugzilla, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: Other   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=251777
Attachments:
Description Flags
Crash Log Text none

Description Bri Harris 2023-02-09 21:03:45 PST
Created attachment 464934 [details]
Crash Log Text

fast/text/glyph-display-lists/glyph-display-list-scaled-unshared.html

is a constant failure on macOS. 


HISTORY:
https://results.webkit.org/?suite=layout-tests&test=fast%2Ftext%2Fglyph-display-lists%2Fglyph-display-list-scaled-unshared.html

Crash Log Text is attached. 

I was able to reproduce this failure at Venture Debug ToT as follows:

run-webkit-tests fast/text/glyph-display-lists/glyph-display-list-scaled-unshared.html -1
Comment 1 Radar WebKit Bug Importer 2023-02-09 21:04:06 PST
<rdar://problem/105253560>
Comment 2 Bri Harris 2023-02-09 21:04:15 PST
ASSERTION FAILED: m_sources.get(identifier) == &source
/Volumes/Data/worker/macOS-AppleSilicon-Ventura-Debug-Build-EWS/build/Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.cpp(73) : void WebKit::SpeechRecognitionRemoteRealtimeMediaSourceManager::removeSource(WebKit::SpeechRecognitionRemoteRealtimeMediaSource &)
1   0x10b29cdf4 WTFCrash
2   0x12b16c2d0 IPC::Connection* WTF::RawPtrTraits<IPC::Connection>::exchange<std::nullptr_t>(IPC::Connection*&, std::nullptr_t&&)
3   0x12cc54a60 WebKit::SpeechRecognitionRemoteRealtimeMediaSourceManager::removeSource(WebKit::SpeechRecognitionRemoteRealtimeMediaSource&)
4   0x12cc54914 WebKit::SpeechRecognitionRemoteRealtimeMediaSource::~SpeechRecognitionRemoteRealtimeMediaSource()
5   0x12cc54cac WebKit::SpeechRecognitionRemoteRealtimeMediaSource::~SpeechRecognitionRemoteRealtimeMediaSource()
6   0x12cc54cd8 WebKit::SpeechRecognitionRemoteRealtimeMediaSource::~SpeechRecognitionRemoteRealtimeMediaSource()
7   0x12cc60ef8 WTF::ThreadSafeRefCounted<WebCore::RealtimeMediaSource, (WTF::DestructionThread)2>::deref() const::'lambda'()::operator()() const
8   0x12cc60e80 WTF::Detail::CallableWrapper<WTF::ThreadSafeRefCounted<WebCore::RealtimeMediaSource, (WTF::DestructionThread)2>::deref() const::'lambda'(), void>::call()
9   0x10b2c9974 WTF::Function<void ()>::operator()() const
10  0x10b32cf14 WTF::ensureOnMainRunLoop(WTF::Function<void ()>&&)
11  0x12cc60b58 WTF::ThreadSafeRefCounted<WebCore::RealtimeMediaSource, (WTF::DestructionThread)2>::deref() const
12  0x12cc7d0b4 WTF::Ref<WebKit::SpeechRecognitionRemoteRealtimeMediaSource, WTF::RawPtrTraits<WebKit::SpeechRecognitionRemoteRealtimeMediaSource> >::~Ref()
13  0x12cc542ec WTF::Ref<WebKit::SpeechRecognitionRemoteRealtimeMediaSource, WTF::RawPtrTraits<WebKit::SpeechRecognitionRemoteRealtimeMediaSource> >::~Ref()
14  0x12cc5dc50 WTF::KeyValuePair<WTF::ObjectIdentifier<WebCore::RealtimeMediaSourceIdentifierType>, WTF::Ref<WebKit::SpeechRecognitionRemoteRealtimeMediaSource, WTF::RawPtrTraits<WebKit::SpeechRecognitionRemoteRealtimeMediaSource> > >::~KeyValuePair()
15  0x12cc5dc0c WTF::KeyValuePair<WTF::ObjectIdentifier<WebCore::RealtimeMediaSourceIdentifierType>, WTF::Ref<WebKit::SpeechRecognitionRemoteRealtimeMediaSource, WTF::RawPtrTraits<WebKit::SpeechRecognitionRemoteRealtimeMediaSource> > >::~KeyValuePair()
16  0x12cc5db94 WTF::HashTable<WTF::ObjectIdentifier<WebCore::RealtimeMediaSourceIdentifierType>, WTF::KeyValuePair<WTF::ObjectIdentifier<WebCore::RealtimeMediaSourceIdentifierType>, WTF::Ref<WebKit::SpeechRecognitionRemoteRealtimeMediaSource, WTF::RawPtrTraits<WebKit::SpeechRecognitionRemoteRealtimeMediaSource> > >, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WTF::ObjectIdentifier<WebCore::RealtimeMediaSourceIdentifierType>, WTF::Ref<WebKit::SpeechRecognitionRemoteRealtimeMediaSource, WTF::RawPtrTraits<WebKit::SpeechRecognitionRemoteRealtimeMediaSource> > > >, WTF::DefaultHash<WTF::ObjectIdentifier<WebCore::RealtimeMediaSourceIdentifierType> >, WTF::HashMap<WTF::ObjectIdentifier<WebCore::RealtimeMediaSourceIdentifierType>, WTF::Ref<WebKit::SpeechRecognitionRemoteRealtimeMediaSource, WTF::RawPtrTraits<WebKit::SpeechRecognitionRemoteRealtimeMediaSource> >, WTF::DefaultHash<WTF::ObjectIdentifier<WebCore::RealtimeMediaSourceIdentifierType> >, WTF::HashTraits<WTF::ObjectIdentifier<WebCore::RealtimeMediaSourceIdentifierType> >, WTF::HashTraits<WTF::Ref<WebKit::SpeechRecognitionRemoteRealtimeMediaSource, WTF::RawPtrTraits<WebKit::SpeechRecognitionRemoteRealtimeMediaSource> > >, WTF::HashTableTraits>::KeyValuePairTraits, WTF::HashTraits<WTF::ObjectIdentifier<WebCore::RealtimeMediaSourceIdentifierType> > >::deallocateTable(WTF::KeyValuePair<WTF::ObjectIdentifier<WebCore::RealtimeMediaSourceIdentifierType>, WTF::Ref<WebKit::SpeechRecognitionRemoteRealtimeMediaSource, WTF::RawPtrTraits<WebKit::SpeechRecognitionRemoteRealtimeMediaSource> > >*)
17  0x12cc5da74 WTF::HashTable<WTF::ObjectIdentifier<WebCore::RealtimeMediaSourceIdentifierType>, WTF::KeyValuePair<WTF::ObjectIdentifier<WebCore::RealtimeMediaSourceIdentifierType>, WTF::Ref<WebKit::SpeechRecognitionRemoteRealtimeMediaSource, WTF::RawPtrTraits<WebKit::SpeechRecognitionRemoteRealtimeMediaSource> > >, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WTF::ObjectIdentifier<WebCore::RealtimeMediaSourceIdentifierType>, WTF::Ref<WebKit::SpeechRecognitionRemoteRealtimeMediaSource, WTF::RawPtrTraits<WebKit::SpeechRecognitionRemoteRealtimeMediaSource> > > >, WTF::DefaultHash<WTF::ObjectIdentifier<WebCore::RealtimeMediaSourceIdentifierType> >, WTF::HashMap<WTF::ObjectIdentifier<WebCore::RealtimeMediaSourceIdentifierType>, WTF::Ref<WebKit::SpeechRecognitionRemoteRealtimeMediaSource, WTF::RawPtrTraits<WebKit::SpeechRecognitionRemoteRealtimeMediaSource> >, WTF::DefaultHash<WTF::ObjectIdentifier<WebCore::RealtimeMediaSourceIdentifierType> >, WTF::HashTraits<WTF::ObjectIdentifier<WebCore::RealtimeMediaSourceIdentifierType> >, WTF::HashTraits<WTF::Ref<WebKit::SpeechRecognitionRemoteRealtimeMediaSource, WTF::RawPtrTraits<WebKit::SpeechRecognitionRemoteRealtimeMediaSource> > >, WTF::HashTableTraits>::KeyValuePairTraits, WTF::HashTraits<WTF::ObjectIdentifier<WebCore::RealtimeMediaSourceIdentifierType> > >::~HashTable()
18  0x12cc5da24 WTF::HashTable<WTF::ObjectIdentifier<WebCore::RealtimeMediaSourceIdentifierType>, WTF::KeyValuePair<WTF::ObjectIdentifier<WebCore::RealtimeMediaSourceIdentifierType>, WTF::Ref<WebKit::SpeechRecognitionRemoteRealtimeMediaSource, WTF::RawPtrTraits<WebKit::SpeechRecognitionRemoteRealtimeMediaSource> > >, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WTF::ObjectIdentifier<WebCore::RealtimeMediaSourceIdentifierType>, WTF::Ref<WebKit::SpeechRecognitionRemoteRealtimeMediaSource, WTF::RawPtrTraits<WebKit::SpeechRecognitionRemoteRealtimeMediaSource> > > >, WTF::DefaultHash<WTF::ObjectIdentifier<WebCore::RealtimeMediaSourceIdentifierType> >, WTF::HashMap<WTF::ObjectIdentifier<WebCore::RealtimeMediaSourceIdentifierType>, WTF::Ref<WebKit::SpeechRecognitionRemoteRealtimeMediaSource, WTF::RawPtrTraits<WebKit::SpeechRecognitionRemoteRealtimeMediaSource> >, WTF::DefaultHash<WTF::ObjectIdentifier<WebCore::RealtimeMediaSourceIdentifierType> >, WTF::HashTraits<WTF::ObjectIdentifier<WebCore::RealtimeMediaSourceIdentifierType> >, WTF::HashTraits<WTF::Ref<WebKit::SpeechRecognitionRemoteRealtimeMediaSource, WTF::RawPtrTraits<WebKit::SpeechRecognitionRemoteRealtimeMediaSource> > >, WTF::HashTableTraits>::KeyValuePairTraits, WTF::HashTraits<WTF::ObjectIdentifier<WebCore::RealtimeMediaSourceIdentifierType> > >::~HashTable()
19  0x12cc5d9f8 WTF::HashMap<WTF::ObjectIdentifier<WebCore::RealtimeMediaSourceIdentifierType>, WTF::Ref<WebKit::SpeechRecognitionRemoteRealtimeMediaSource, WTF::RawPtrTraits<WebKit::SpeechRecognitionRemoteRealtimeMediaSource> >, WTF::DefaultHash<WTF::ObjectIdentifier<WebCore::RealtimeMediaSourceIdentifierType> >, WTF::HashTraits<WTF::ObjectIdentifier<WebCore::RealtimeMediaSourceIdentifierType> >, WTF::HashTraits<WTF::Ref<WebKit::SpeechRecognitionRemoteRealtimeMediaSource, WTF::RawPtrTraits<WebKit::SpeechRecognitionRemoteRealtimeMediaSource> > >, WTF::HashTableTraits>::~HashMap()
20  0x12cc555b4 WTF::HashMap<WTF::ObjectIdentifier<WebCore::RealtimeMediaSourceIdentifierType>, WTF::Ref<WebKit::SpeechRecognitionRemoteRealtimeMediaSource, WTF::RawPtrTraits<WebKit::SpeechRecognitionRemoteRealtimeMediaSource> >, WTF::DefaultHash<WTF::ObjectIdentifier<WebCore::RealtimeMediaSourceIdentifierType> >, WTF::HashTraits<WTF::ObjectIdentifier<WebCore::RealtimeMediaSourceIdentifierType> >, WTF::HashTraits<WTF::Ref<WebKit::SpeechRecognitionRemoteRealtimeMediaSource, WTF::RawPtrTraits<WebKit::SpeechRecognitionRemoteRealtimeMediaSource> > >, WTF::HashTableTraits>::~HashMap()
21  0x12cc5553c WebKit::SpeechRecognitionRemoteRealtimeMediaSourceManager::~SpeechRecognitionRemoteRealtimeMediaSourceManager()
22  0x12cc555e0 WebKit::SpeechRecognitionRemoteRealtimeMediaSourceManager::~SpeechRecognitionRemoteRealtimeMediaSourceManager()
23  0x12cf41aa8 std::__1::default_delete<WebKit::SpeechRecognitionRemoteRealtimeMediaSourceManager>::operator()(WebKit::SpeechRecognitionRemoteRealtimeMediaSourceManager*) const
24  0x12cf41a24 std::__1::unique_ptr<WebKit::SpeechRecognitionRemoteRealtimeMediaSourceManager, std::__1::default_delete<WebKit::SpeechRecognitionRemoteRealtimeMediaSourceManager> >::reset(WebKit::SpeechRecognitionRemoteRealtimeMediaSourceManager*)
25  0x12cf419b4 std::__1::unique_ptr<WebKit::SpeechRecognitionRemoteRealtimeMediaSourceManager, std::__1::default_delete<WebKit::SpeechRecognitionRemoteRealtimeMediaSourceManager> >::~unique_ptr()
26  0x12cedd9c0 std::__1::unique_ptr<WebKit::SpeechRecognitionRemoteRealtimeMediaSourceManager, std::__1::default_delete<WebKit::SpeechRecognitionRemoteRealtimeMediaSourceManager> >::~unique_ptr()
27  0x12cedd414 WebKit::WebProcessProxy::~WebProcessProxy()
28  0x12cedddf4 WebKit::WebProcessProxy::~WebProcessProxy()
29  0x12cedde74 WebKit::WebProcessProxy::~WebProcessProxy()
30  0x12dfb6db0 WTF::ThreadSafeRefCounted<WebKit::AuxiliaryProcessProxy, (WTF::DestructionThread)2>::deref() const::'lambda'()::operator()() const
31  0x12b6eb65c WTF::Detail::CallableWrapper<WTF::ThreadSafeRefCounted<WebKit::AuxiliaryProcessProxy, (WTF::DestructionThread)2>::deref() const::'lambda'(), void>::call()
Comment 3 Bri Harris 2023-02-09 21:06:08 PST
This test was marked as a test failure with commit 252416@main.

This was also marked as a disabled test; however, it is still failing on EWS consistently and replicating without force on macOS.
Comment 4 Ryan Haddad 2023-02-10 14:32:20 PST
It looks like this test is marked as [ Pass Failure ], but only for the mac-wk1 debug configuration.

This assertion failure is new, and https://commits.webkit.org/259938@main seems like it could be the culprit.
Comment 5 Ryan Haddad 2023-02-10 14:39:31 PST
(In reply to Bri Harris from comment #3)
> This was also marked as a disabled test; however, it is still failing on EWS
> consistently and replicating without force on macOS.

It is still running on macOS WK2 since the flaky failure expectation is limited to macOS WK1. It doesn't look like it is consistently failing on EWS, but rather frequently hitting the assertion you pasted above.
Comment 6 Ryan Haddad 2023-02-10 14:44:39 PST
fast/text/bulgarian-system-language-shaping.html is also hitting this assertion frequently

https://results.webkit.org/?suite=layout-tests&test=fast%2Ftext%2Fbulgarian-system-language-shaping.html&flavor=wk2&style=debug
Comment 7 Ryan Haddad 2023-02-10 14:54:56 PST
I can reliably reproduce with the following

run-webkit-tests --debug --no-retry fast/speechrecognition/start-second-recognition.html fast/text/bulgarian-system-language-shaping.html --child-processes 1
Comment 8 Bri Harris 2023-02-10 15:40:39 PST
Reverted 259938@main. Will verify if issue resolves since the change.
Comment 9 Bri Harris 2023-02-10 16:01:42 PST
Re-opening for pull request https://github.com/WebKit/WebKit/pull/9954
Comment 10 EWS 2023-02-10 16:04:44 PST
Test gardening commit 260133@main (86a2473681b7): <https://commits.webkit.org/260133@main>

Reviewed commits have been landed. Closing PR #9954 and removing active labels.
Comment 11 EWS 2023-02-10 16:48:20 PST
Committed 260138@main (52d3713b1a6a): <https://commits.webkit.org/260138@main>

Reviewed commits have been landed. Closing PR #9959 and removing active labels.