WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
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
Add attachment
proposed patch, testcase, etc.
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
Pull request:
https://github.com/WebKit/WebKit/pull/9429
ChangSeok Oh
Comment 11
2023-02-01 10:04:46 PST
Pull request:
https://github.com/WebKit/WebKit/pull/9461
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.
Top of Page
Format For Printing
XML
Clone This Bug