RESOLVED FIXED 226928
REGRESSION: [ BigSur iOS wk1 Debug ] imported/w3c/web-platform-tests/html/dom/usvstring-reflection.https.html is flaky crashing
https://bugs.webkit.org/show_bug.cgi?id=226928
Summary REGRESSION: [ BigSur iOS wk1 Debug ] imported/w3c/web-platform-tests/html/dom...
Truitt Savell
Reported 2021-06-11 10:37:30 PDT
imported/w3c/web-platform-tests/html/dom/usvstring-reflection.https.html this test began crashing recently around r278704 on BigSur Debug wk1 queues and at least once on iOS debug History: https://results.webkit.org/?suite=layout-tests&test=imported/w3c/web-platform-tests/html/dom/usvstring-reflection.https.html log: (audio_processing_impl.cc:278): Injected APM submodules: Echo control factory: 0 Echo detector: 0 Capture analyzer: 0 Capture post processor: 0 Render pre processor: 0 (webrtc_voice_engine.cc:268): WebRtcVoiceEngine::WebRtcVoiceEngine (webrtc_video_engine.cc:628): WebRtcVideoEngine::WebRtcVideoEngine() (webrtc_voice_engine.cc:290): WebRtcVoiceEngine::Init
Attachments
Patch (2.37 KB, patch)
2021-06-15 05:52 PDT, youenn fablet
no flags
Radar WebKit Bug Importer
Comment 1 2021-06-11 10:37:50 PDT
Truitt Savell
Comment 2 2021-06-11 12:16:48 PDT
I have not been able to reproduce this failure locally yet
Chris Dumez
Comment 3 2021-06-11 14:27:42 PDT
Thread 35 Crashed:: rtc-low-prio 0 libwebrtc.dylib 0x00000001234887c1 webrtc::(anonymous namespace)::TaskQueueStdlib::GetNextTask() + 257 (task_queue_stdlib.cc:193) 1 libwebrtc.dylib 0x0000000123488583 webrtc::(anonymous namespace)::TaskQueueStdlib::ProcessTasks() + 51 (task_queue_stdlib.cc:226) 2 libwebrtc.dylib 0x000000012348853f webrtc::(anonymous namespace)::TaskQueueStdlib::TaskQueueStdlib(std::__1::basic_string_view<char, std::__1::char_traits<char> >, rtc::ThreadPriority)::$_1::operator()() const + 47 (task_queue_stdlib.cc:127) 3 libwebrtc.dylib 0x00000001234884ed decltype(std::__1::forward<webrtc::(anonymous namespace)::TaskQueueStdlib::TaskQueueStdlib(std::__1::basic_string_view<char, std::__1::char_traits<char> >, rtc::ThreadPriority)::$_1&>(fp)()) std::__1::__invoke<webrtc::(anonymous namespace)::TaskQueueStdlib::TaskQueueStdlib(std::__1::basic_string_view<char, std::__1::char_traits<char> >, rtc::ThreadPriority)::$_1&>(webrtc::(anonymous namespace)::TaskQueueStdlib::TaskQueueStdlib(std::__1::basic_string_view<char, std::__1::char_traits<char> >, rtc::ThreadPriority)::$_1&) + 29 (type_traits:3747) 4 libwebrtc.dylib 0x000000012348849d void std::__1::__invoke_void_return_wrapper<void>::__call<webrtc::(anonymous namespace)::TaskQueueStdlib::TaskQueueStdlib(std::__1::basic_string_view<char, std::__1::char_traits<char> >, rtc::ThreadPriority)::$_1&>(webrtc::(anonymous namespace)::TaskQueueStdlib::TaskQueueStdlib(std::__1::basic_string_view<char, std::__1::char_traits<char> >, rtc::ThreadPriority)::$_1&) + 29 (__functional_base:348) 5 libwebrtc.dylib 0x000000012348846d std::__1::__function::__alloc_func<webrtc::(anonymous namespace)::TaskQueueStdlib::TaskQueueStdlib(std::__1::basic_string_view<char, std::__1::char_traits<char> >, rtc::ThreadPriority)::$_1, std::__1::allocator<webrtc::(anonymous namespace)::TaskQueueStdlib::TaskQueueStdlib(std::__1::basic_string_view<char, std::__1::char_traits<char> >, rtc::ThreadPriority)::$_1>, void ()>::operator()() + 29 (functional:1553) 6 libwebrtc.dylib 0x000000012348717e std::__1::__function::__func<webrtc::(anonymous namespace)::TaskQueueStdlib::TaskQueueStdlib(std::__1::basic_string_view<char, std::__1::char_traits<char> >, rtc::ThreadPriority)::$_1, std::__1::allocator<webrtc::(anonymous namespace)::TaskQueueStdlib::TaskQueueStdlib(std::__1::basic_string_view<char, std::__1::char_traits<char> >, rtc::ThreadPriority)::$_1>, void ()>::operator()() + 30 (functional:1727) 7 libwebrtc.dylib 0x00000001223753f5 std::__1::__function::__value_func<void ()>::operator()() const + 53 (functional:1880) 8 libwebrtc.dylib 0x0000000122375395 std::__1::function<void ()>::operator()() const + 21 (functional:2555) 9 libwebrtc.dylib 0x0000000122cd0f26 rtc::PlatformThread::SpawnThread(std::__1::function<void ()>, std::__1::basic_string_view<char, std::__1::char_traits<char> >, rtc::ThreadAttributes, bool)::$_1::operator()() const + 70 (platform_thread.cc:185) 10 libwebrtc.dylib 0x0000000122cd0ebd decltype(std::__1::forward<rtc::PlatformThread::SpawnThread(std::__1::function<void ()>, std::__1::basic_string_view<char, std::__1::char_traits<char> >, rtc::ThreadAttributes, bool)::$_1&>(fp)()) std::__1::__invoke<rtc::PlatformThread::SpawnThread(std::__1::function<void ()>, std::__1::basic_string_view<char, std::__1::char_traits<char> >, rtc::ThreadAttributes, bool)::$_1&>(rtc::PlatformThread::SpawnThread(std::__1::function<void ()>, std::__1::basic_string_view<char, std::__1::char_traits<char> >, rtc::ThreadAttributes, bool)::$_1&) + 29 (type_traits:3747) 11 libwebrtc.dylib 0x0000000122cd0e6d void std::__1::__invoke_void_return_wrapper<void>::__call<rtc::PlatformThread::SpawnThread(std::__1::function<void ()>, std::__1::basic_string_view<char, std::__1::char_traits<char> >, rtc::ThreadAttributes, bool)::$_1&>(rtc::PlatformThread::SpawnThread(std::__1::function<void ()>, std::__1::basic_string_view<char, std::__1::char_traits<char> >, rtc::ThreadAttributes, bool)::$_1&) + 29 (__functional_base:348) 12 libwebrtc.dylib 0x0000000122cd0e3d std::__1::__function::__alloc_func<rtc::PlatformThread::SpawnThread(std::__1::function<void ()>, std::__1::basic_string_view<char, std::__1::char_traits<char> >, rtc::ThreadAttributes, bool)::$_1, std::__1::allocator<rtc::PlatformThread::SpawnThread(std::__1::function<void ()>, std::__1::basic_string_view<char, std::__1::char_traits<char> >, rtc::ThreadAttributes, bool)::$_1>, void ()>::operator()() + 29 (functional:1553) 13 libwebrtc.dylib 0x0000000122ccf9fe std::__1::__function::__func<rtc::PlatformThread::SpawnThread(std::__1::function<void ()>, std::__1::basic_string_view<char, std::__1::char_traits<char> >, rtc::ThreadAttributes, bool)::$_1, std::__1::allocator<rtc::PlatformThread::SpawnThread(std::__1::function<void ()>, std::__1::basic_string_view<char, std::__1::char_traits<char> >, rtc::ThreadAttributes, bool)::$_1>, void ()>::operator()() + 30 (functional:1727) 14 libwebrtc.dylib 0x00000001223753f5 std::__1::__function::__value_func<void ()>::operator()() const + 53 (functional:1880) 15 libwebrtc.dylib 0x0000000122375395 std::__1::function<void ()>::operator()() const + 21 (functional:2555) 16 libwebrtc.dylib 0x0000000122cceb8d rtc::(anonymous namespace)::RunPlatformThread(void*) + 29 (platform_thread.cc:101) 17 libsystem_pthread.dylib 0x00007fff205db8fc 0x7fff205d5000 + 26876 18 libsystem_pthread.dylib 0x00007fff205d7443 0x7fff205d5000 + 9283
Chris Dumez
Comment 4 2021-06-11 14:28:42 PDT
Potential regression from the WebRTC update in r278701.
youenn fablet
Comment 5 2021-06-15 05:52:10 PDT
youenn fablet
Comment 6 2021-06-15 05:53:49 PDT
(In reply to Chris Dumez from comment #4) > Potential regression from the WebRTC update in r278701. It seems so. From what I can see, it seems that we create a thread that will start before all the thread owner members are initialised.
Eric Carlson
Comment 7 2021-06-15 08:25:55 PDT
Comment on attachment 431427 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=431427&action=review > Source/ThirdParty/libwebrtc/ChangeLog:12 > + Update to create thread_ before all other members. Don't you mean *after* all other members?
EWS
Comment 8 2021-06-15 11:22:05 PDT
Committed r278886 (238828@main): <https://commits.webkit.org/238828@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 431427 [details].
youenn fablet
Comment 9 2021-06-15 14:03:48 PDT
(In reply to Eric Carlson from comment #7) > Comment on attachment 431427 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=431427&action=review > > > Source/ThirdParty/libwebrtc/ChangeLog:12 > > + Update to create thread_ before all other members. > > Don't you mean *after* all other members? Right, will fix the changelog, thanks for the review and the cq+
Note You need to log in before you can comment on or make changes to this bug.