Bug 227501

Summary: imported/w3c/web-platform-tests/speech-api/SpeechSynthesis-speak-events.html is crashing in debug
Product: WebKit Reporter: Chris Dumez <cdumez>
Component: WebCore Misc.Assignee: youenn fablet <youennf>
Status: NEW ---    
Severity: Normal CC: ayumi_kojima, ehutchison, jenner, sihui_liu, webkit-bug-importer, youennf
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=227503
https://bugs.webkit.org/show_bug.cgi?id=232267
Attachments:
Description Flags
Update Test Expectations
none
Update Test Expectations none

Description Chris Dumez 2021-06-29 13:32:20 PDT
imported/w3c/web-platform-tests/speech-api/SpeechSynthesis-speak-events.html is crashing in debug:
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.JavaScriptCore      	0x000000011f11081e WTFCrash + 14 (Assertions.cpp:321)
1   com.apple.WebCore             	0x0000000162ed064b WTFCrashWithInfo(int, char const*, char const*, int) + 27 (Assertions.h:697)
2   com.apple.WebCore             	0x0000000164f8c4bc -[WebSpeechSynthesisWrapper speakUtterance:] + 108 (PlatformSpeechSynthesizerMac.mm:88)
3   com.apple.WebCore             	0x0000000164f8d7fd WebCore::PlatformSpeechSynthesizer::speak(WTF::RefPtr<WebCore::PlatformSpeechSynthesisUtterance, WTF::RawPtrTraits<WebCore::PlatformSpeechSynthesisUtterance>, WTF::DefaultRefDerefTraits<WebCore::PlatformSpeechSynthesisUtterance> >&&) + 205 (PlatformSpeechSynthesizerMac.mm:270)
4   com.apple.WebKit              	0x0000000139598f5f WebKit::WebPageProxy::speechSynthesisSpeak(WTF::String const&, WTF::String const&, float, float, float, WTF::MonotonicTime, WTF::String const&, WTF::String const&, WTF::String const&, bool, bool, WTF::CompletionHandler<void ()>&&) + 495 (WebPageProxy.cpp:10397)
5   com.apple.WebKit              	0x000000013a2e2cf0 void IPC::callMemberFunctionImpl<WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(WTF::String const&, WTF::String const&, float, float, float, WTF::MonotonicTime, WTF::String const&, WTF::String const&, WTF::String const&, bool, bool, WTF::CompletionHandler<void ()>&&), void (), std::__1::tuple<WTF::String, WTF::String, float, float, float, WTF::MonotonicTime, WTF::String, WTF::String, WTF::String, bool, bool>, 0ul, 1ul, 2ul, 3ul, 4ul, 5ul, 6ul, 7ul, 8ul, 9ul, 10ul>(WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(WTF::String const&, WTF::String const&, float, float, float, WTF::MonotonicTime, WTF::String const&, WTF::String const&, WTF::String const&, bool, bool, WTF::CompletionHandler<void ()>&&), WTF::CompletionHandler<void ()>&&, std::__1::tuple<WTF::String, WTF::String, float, float, float, WTF::MonotonicTime, WTF::String, WTF::String, WTF::String, bool, bool>&&, std::__1::integer_sequence<unsigned long, 0ul, 1ul, 2ul, 3ul, 4ul, 5ul, 6ul, 7ul, 8ul, 9ul, 10ul>) + 512 (HandleMessage.h:57)
6   com.apple.WebKit              	0x000000013a2dbbf2 void IPC::callMemberFunction<WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(WTF::String const&, WTF::String const&, float, float, float, WTF::MonotonicTime, WTF::String const&, WTF::String const&, WTF::String const&, bool, bool, WTF::CompletionHandler<void ()>&&), void (), std::__1::tuple<WTF::String, WTF::String, float, float, float, WTF::MonotonicTime, WTF::String, WTF::String, WTF::String, bool, bool>, std::__1::integer_sequence<unsigned long, 0ul, 1ul, 2ul, 3ul, 4ul, 5ul, 6ul, 7ul, 8ul, 9ul, 10ul> >(std::__1::tuple<WTF::String, WTF::String, float, float, float, WTF::MonotonicTime, WTF::String, WTF::String, WTF::String, bool, bool>&&, WTF::CompletionHandler<void ()>&&, WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(WTF::String const&, WTF::String const&, float, float, float, WTF::MonotonicTime, WTF::String const&, WTF::String const&, WTF::String const&, bool, bool, WTF::CompletionHandler<void ()>&&)) + 130 (HandleMessage.h:63)
7   com.apple.WebKit              	0x000000013a25d378 void IPC::handleMessageAsync<Messages::WebPageProxy::SpeechSynthesisSpeak, WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(WTF::String const&, WTF::String const&, float, float, float, WTF::MonotonicTime, WTF::String const&, WTF::String const&, WTF::String const&, bool, bool, WTF::CompletionHandler<void ()>&&)>(IPC::Connection&, IPC::Decoder&, WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(WTF::String const&, WTF::String const&, float, float, float, WTF::MonotonicTime, WTF::String const&, WTF::String const&, WTF::String const&, bool, bool, WTF::CompletionHandler<void ()>&&)) + 344 (HandleMessage.h:197)
8   com.apple.WebKit              	0x000000013a25300b WebKit::WebPageProxy::didReceiveMessage(IPC::Connection&, IPC::Decoder&) + 22683 (WebPageProxyMessageReceiver.cpp:1692)
9   com.apple.WebKit              	0x000000013853c773 IPC::MessageReceiverMap::dispatchMessage(IPC::Connection&, IPC::Decoder&) + 387 (MessageReceiverMap.cpp:129)
10  com.apple.WebKit              	0x00000001393d258c WebKit::AuxiliaryProcessProxy::dispatchMessage(IPC::Connection&, IPC::Decoder&) + 44 (AuxiliaryProcessProxy.cpp:234)
11  com.apple.WebKit              	0x0000000139678fd9 WebKit::WebProcessProxy::didReceiveMessage(IPC::Connection&, IPC::Decoder&) + 41 (WebProcessProxy.cpp:848)
12  com.apple.WebKit              	0x000000013805570e IPC::Connection::dispatchMessage(IPC::Decoder&) + 494 (Connection.cpp:1058)
13  com.apple.WebKit              	0x0000000138055eb2 IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >) + 610 (Connection.cpp:1103)
14  com.apple.WebKit              	0x0000000138054574 IPC::Connection::dispatchIncomingMessages() + 868 (Connection.cpp:1207)
15  com.apple.WebKit              	0x00000001380776b6 IPC::Connection::MessagesThrottler::scheduleMessagesDispatch()::$_14::operator()() + 118 (Connection.cpp:1139)
16  com.apple.WebKit              	0x0000000138077599 WTF::Detail::CallableWrapper<IPC::Connection::MessagesThrottler::scheduleMessagesDispatch()::$_14, void>::call() + 25 (Function.h:53)
17  com.apple.JavaScriptCore      	0x000000011f139722 WTF::Function<void ()>::operator()() const + 130 (Function.h:82)

Not a regression, just a newly imported WPT test.
Comment 1 Radar WebKit Bug Importer 2021-07-06 13:33:35 PDT
<rdar://problem/80228401>
Comment 2 Eric Hutchison 2021-07-19 17:50:02 PDT
Created attachment 433840 [details]
Update Test Expectations
Comment 3 Eric Hutchison 2021-07-19 18:10:48 PDT
Created attachment 433842 [details]
Update Test Expectations
Comment 4 Robert Jenner 2021-07-19 18:13:12 PDT
Comment on attachment 433842 [details]
Update Test Expectations

Clearing flags on attachment: 433842

Committed r280063 (239796@main): <https://commits.webkit.org/239796@main>
Comment 5 Robert Jenner 2021-07-19 18:18:03 PDT
(In reply to Robert Jenner from comment #4)
> Comment on attachment 433842 [details]
> Update Test Expectations
> 
> Clearing flags on attachment: 433842
> 
> Committed r280063 (239796@main): <https://commits.webkit.org/239796@main>

There was an expectation set for the test to [ skip ] on Debug iOS. But then there was another expectation set for [ Pass Failure ] for iOS-wk2 that overrode that. 

The expectation for iOS-wk2 is now set to [ Release ] so the [ Pass Failure ] isn't overriding the [ Skip ] for Debug ios.
Comment 6 ayumi_kojima 2021-07-28 09:14:33 PDT
(In reply to Robert Jenner from comment #5)
> (In reply to Robert Jenner from comment #4)
> > Comment on attachment 433842 [details]
> > Update Test Expectations
> > 
> > Clearing flags on attachment: 433842
> > 
> > Committed r280063 (239796@main): <https://commits.webkit.org/239796@main>
> 
> There was an expectation set for the test to [ skip ] on Debug iOS. But then
> there was another expectation set for [ Pass Failure ] for iOS-wk2 that
> overrode that. 
> 
> The expectation for iOS-wk2 is now set to [ Release ] so the [ Pass Failure
> ] isn't overriding the [ Skip ] for Debug ios.

Looks like [ Release ] was added to a wrong test. The test is now set to [ Release ]: https://trac.webkit.org/changeset/280388/webkit