RESOLVED FIXED 250656
[GStreamer] Fix a failure of fast/speechsynthesis/voices-non-mock.html
https://bugs.webkit.org/show_bug.cgi?id=250656
Summary [GStreamer] Fix a failure of fast/speechsynthesis/voices-non-mock.html
ChangSeok Oh
Reported 2023-01-15 15:52:11 PST
SSIA.
Attachments
ChangSeok Oh
Comment 1 2023-01-15 20:40:27 PST
20:34:53.697 2 summarizing results 20:34:53.697 2 Test timing: 20:34:53.697 2 63.08 total testing time 20:34:53.697 2 20:34:53.697 2 Thread timing: 20:34:53.697 2 worker/0: 13 tests, 34.97 secs 20:34:53.697 2 34.97 cumulative, 5.00 optimal 20:34:53.697 2 20:34:53.697 2 PER TEST TIME IN TESTSHELL (seconds): 20:34:53.697 2 Median: 0.133 20:34:53.697 2 Mean: 2.637 20:34:53.697 2 90th percentile: 1.020 20:34:53.697 2 99th percentile: 31.310 20:34:53.697 2 Standard dev: 7.953 20:34:53.697 2 20:34:53.697 2 20:34:53.697 2 10 slowest tests that are not marked as SLOW and did not timeout/crash: 20:34:53.697 2 fast/speechsynthesis/speech-synthesis-speak-empty-string.html took 1.0 seconds 20:34:53.697 2 fast/speechsynthesis/speech-synthesis-boundary-events.html took 0.9 seconds 20:34:53.697 2 fast/speechsynthesis/speech-synthesis-pause-resume.html took 0.2 seconds 20:34:53.697 2 fast/speechsynthesis/speech-synthesis-utterance-uses-voice.html took 0.2 seconds 20:34:53.697 2 fast/speechsynthesis/speech-synthesis-gc-utterance-crash.html took 0.2 seconds 20:34:53.698 2 fast/speechsynthesis/speech-synthesis-speak.html took 0.2 seconds 20:34:53.698 2 fast/speechsynthesis/speech-synthesis-elapsed-time.html took 0.1 seconds 20:34:53.698 2 fast/speechsynthesis/speech-synthesis-cancel-crash.html took 0.1 seconds 20:34:53.698 2 fast/speechsynthesis/speech-synthesis-cancel.html took 0.1 seconds 20:34:53.698 2 fast/speechsynthesis/speech-synthesis-voices.html took 0.1 seconds 20:34:53.698 2 20:34:53.698 2 Tests marked as SLOW: 20:34:53.698 2 20:34:53.698 2 Tests that timed out or crashed: 20:34:53.698 2 fast/speechsynthesis/speech-synthesis-real-client-version.html took 31.3 seconds 20:34:53.698 2 20:34:53.698 2 Time to process slowest subdirectories: 20:34:53.698 2 all_tests took 35.0 seconds to run 13 tests. 20:34:53.698 2 20:34:53.698 2 20:34:53.698 2 22 tests ran as expected, 4 didn't: 20:34:53.698 2 20:34:53.698 2 Writing JSON files in /app/webkit/WebKitBuild/Release/layout-test-results. 20:34:53.699 2 Finished writing JSON file for the test results server. 20:34:53.702 2 Testing completed, Exit status: 2 => Results: 22/26 tests passed (84.6%) => Tests to be fixed (2): 1 crashes (50.0%) => Tests that will only be fixed if they crash (WONTFIX) (0): Regressions: Unexpected crashes (1) fast/speechsynthesis/speech-synthesis-real-client-version.html [ Crash ] Regressions: Unexpected text-only failures (1) fast/speechsynthesis/voices-non-mock.html [ Failure ]
Philippe Normand
Comment 2 2023-01-16 02:27:02 PST
Can you post the crash backtrace?
ChangSeok Oh
Comment 3 2023-01-22 23:52:16 PST
(In reply to Philippe Normand from comment #2) > Can you post the crash backtrace? Sure. #0 0x00007ffff1ecbdd8 in WTF::String::tryGetUTF8(WTF::ConversionMode) const () from target:/app/webkit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.1.so.0 #1 0x00007ffff1ecbea0 in WTF::String::utf8(WTF::ConversionMode) const () from target:/app/webkit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.1.so.0 #2 0x00007ffff51985ea in webKitFliteSrcSetUtterance(_WebKitFliteSrc*, WTF::String const&, WebCore::PlatformSpeechSynthesisVoice const&) () from target:/app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.1.so.0 #3 0x00007ffff51914e8 in WebCore::GstSpeechSynthesisWrapper::speakUtterance(WTF::RefPtr<WebCore::PlatformSpeechSynthesisUtterance, WTF::RawPtrTraits<WebCore::PlatformSpeechSynthesisUtterance>, WTF::DefaultRefDerefTraits<WebCore::PlatformSpeechSynthesisUtterance> >&&) [clone .part.0] () from target:/app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.1.so.0 #4 0x00007ffff51923f5 in WebCore::PlatformSpeechSynthesizer::speak(WTF::RefPtr<WebCore::PlatformSpeechSynthesisUtterance, WTF::RawPtrTraits<WebCore::PlatformSpeechSynthesisUtterance>, WTF::DefaultRefDerefTraits<WebCore::PlatformSpeechSynthesisUtterance> >&&) () from target:/app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.1.so.0 #5 0x00007ffff5f5f312 in WebCore::SpeechSynthesis::startSpeakingImmediately(WebCore::SpeechSynthesisUtterance&) () from target:/app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.1.so.0 #6 0x00007ffff5b39f98 in WebCore::jsSpeechSynthesisPrototypeFunction_speak(JSC::JSGlobalObject*, JSC::CallFrame*) () from target:/app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.1.so.0 #7 0x00007fff90008038 in ?? () #8 0x00007fffffffc180 in ?? () #9 0x00007ffff093a5e4 in js_trampoline_op_call () from target:/app/webkit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.1.so.0 #10 0x0000000000000000 in ?? () The fix is coming. But we need to discuss the failure for fast/speechsynthesis/voices-non-mock.html The GTK/WPE fails in shouldBeTrue("voiceCount > 20"). This means we need more than 20 voices to pass the test. Currently, GTK/WPE ports have 4 voices. I don't know why 20 here though, a possible fix is to make it shouldBeTrue("voiceCount > 0")? Any thought?
chris fleizach
Comment 4 2023-01-23 00:31:59 PST
(In reply to ChangSeok Oh from comment #3) > (In reply to Philippe Normand from comment #2) > > Can you post the crash backtrace? > > Sure. > > #0 0x00007ffff1ecbdd8 in WTF::String::tryGetUTF8(WTF::ConversionMode) const > () > from > target:/app/webkit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.1.so.0 > > #1 0x00007ffff1ecbea0 in WTF::String::utf8(WTF::ConversionMode) const () > > from > target:/app/webkit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.1.so.0 > > #2 0x00007ffff51985ea in webKitFliteSrcSetUtterance(_WebKitFliteSrc*, > WTF::String const&, WebCore::PlatformSpeechSynthesisVoice const&) () from > target:/app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.1.so.0 > #3 0x00007ffff51914e8 in > WebCore::GstSpeechSynthesisWrapper::speakUtterance(WTF::RefPtr<WebCore:: > PlatformSpeechSynthesisUtterance, > WTF::RawPtrTraits<WebCore::PlatformSpeechSynthesisUtterance>, > WTF::DefaultRefDerefTraits<WebCore::PlatformSpeechSynthesisUtterance> >&&) > [clone .part.0] () > from target:/app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.1.so.0 > > #4 0x00007ffff51923f5 in > WebCore::PlatformSpeechSynthesizer::speak(WTF::RefPtr<WebCore:: > PlatformSpeechSynthesisUtterance, > WTF::RawPtrTraits<WebCore::PlatformSpeechSynthesisUtterance>, > WTF::DefaultRefDerefTraits<WebCore::PlatformSpeechSynthesisUtterance> >&&) () > from target:/app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.1.so.0 > > #5 0x00007ffff5f5f312 in > WebCore::SpeechSynthesis::startSpeakingImmediately(WebCore:: > SpeechSynthesisUtterance&) () from > target:/app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.1.so.0 > #6 0x00007ffff5b39f98 in > WebCore::jsSpeechSynthesisPrototypeFunction_speak(JSC::JSGlobalObject*, > JSC::CallFrame*) () from > target:/app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.1.so.0 > #7 0x00007fff90008038 in ?? () > > #8 0x00007fffffffc180 in ?? () > > #9 0x00007ffff093a5e4 in js_trampoline_op_call () > > from > target:/app/webkit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.1.so.0 > > #10 0x0000000000000000 in ?? () > > The fix is coming. But we need to discuss the failure for > fast/speechsynthesis/voices-non-mock.html > > The GTK/WPE fails in shouldBeTrue("voiceCount > 20"). This means we need > more than 20 voices to pass the test. Currently, GTK/WPE ports have 4 > voices. I don't know why 20 here though, a possible fix is to make it > shouldBeTrue("voiceCount > 0")? Any thought? That was fairly specific for Apple platforms. The number is irrelevant as long as you can confirm you're getting something expected. If, on Mac, we only got 4 voices, that would be a regression...
Philippe Normand
Comment 5 2023-01-23 00:37:54 PST
The value should be queried through a new Internals method then. There we can handle the various platforms and what they expect.
ChangSeok Oh
Comment 6 2023-01-23 18:12:32 PST
(In reply to Philippe Normand from comment #5) > The value should be queried through a new Internals method then. There we > can handle the various platforms and what they expect. O.K. It sounds like more effort than expected. Let's spin off the crash into a separate bug [1]. I will fix it first. [1] https://bugs.webkit.org/show_bug.cgi?id=251056
ChangSeok Oh
Comment 7 2023-01-31 00:54:11 PST
(In reply to Philippe Normand from comment #5) > The value should be queried through a new Internals method then. There we > can handle the various platforms and what they expect. I thought about adding a new method to the Internals a bit. Do we expect the new method returns a hard-coded value of the expected voice count or available voice count on the testing platform? For the latter, adding a new method is pointless I think. Because the new method returns the same value of window.speechSynthesis.getVoices().length in the test. If the purpose of the test checks if speechSynthesis is properly initialized with some voices, I think testing shouldBeTrue("voiceCount > 0") should be enough for all platforms. Any thought?
Philippe Normand
Comment 8 2023-01-31 03:39:04 PST
> If the purpose of the test checks if speechSynthesis is properly initialized with some voices, I think testing shouldBeTrue("voiceCount > 0") should be enough for all platforms. Any thought? IIUC Chris's comment this kind of test wouldn't be sufficient for Apple platforms. Maybe I misunderstood...
ChangSeok Oh
Comment 9 2023-01-31 12:14:22 PST
(In reply to Philippe Normand from comment #8) > > If the purpose of the test checks if speechSynthesis is properly initialized with some voices, I think testing shouldBeTrue("voiceCount > 0") should be enough for all platforms. Any thought? > > IIUC Chris's comment this kind of test wouldn't be sufficient for Apple > platforms. Maybe I misunderstood... Well, then we go to a route of adding an Internals method that returns a hard-coded value for the testing platform.
ChangSeok Oh
Comment 10 2023-01-31 22:03:57 PST
ChangSeok Oh
Comment 11 2023-02-01 10:04:46 PST
EWS
Comment 12 2023-02-03 10:15:34 PST
Committed 259820@main (3aad9165b15d): <https://commits.webkit.org/259820@main> Reviewed commits have been landed. Closing PR #9429 and removing active labels.
Note You need to log in before you can comment on or make changes to this bug.