Bug 187804

Summary: [GStreamer][MSE] imported/w3c/web-platform-tests/media-source/mediasource-seek-beyond-duration.html crashes
Product: WebKit Reporter: Philippe Normand <pnormand>
Component: PlatformAssignee: Philippe Normand <philn>
Status: REOPENED    
Severity: Normal CC: aboya, calvaris, eocanha, fujii.hironori, philn, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
bt none

Philippe Normand
Reported 2018-07-19 08:44:24 PDT
Thread 1 (Thread 0x7f047fce33c0 (LWP 46277)): #0 0x00007f048e1a7406 in WTFCrash () at /home/slave/webkitgtk/gtk-linux-64-debug/build/Source/WTF/wtf/Assertions.cpp:267 #1 0x00007f049ad2814c in (anonymous namespace)::MediaPlayerPrivateGStreamerMSE::doSeek (this=0x7f0413e35000) at /home/slave/webkitgtk/gtk-linux-64-debug/build/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:330 #2 0x00007f049ad2732e in (anonymous namespace)::MediaPlayerPrivateGStreamerMSE::seek (this=0x7f0413e35000, time=...) at /home/slave/webkitgtk/gtk-linux-64-debug/build/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:197 #3 0x00007f049a43baa6 in (anonymous namespace)::MediaPlayerPrivateInterface::seekWithTolerance (this=0x7f0413e35000, time=...) at ../../Source/WebCore/platform/graphics/MediaPlayerPrivate.h:99 #4 0x00007f049a4309e3 in (anonymous namespace)::MediaPlayer::seekWithTolerance (this=0x7f047f3a1d80, time=..., negativeTolerance=..., positiveTolerance=...) at ../../Source/WebCore/platform/graphics/MediaPlayer.cpp:626 #5 0x00007f0499d5ba99 in (anonymous namespace)::HTMLMediaElement::seekTask (this=0x7f0411a02508) at ../../Source/WebCore/html/HTMLMediaElement.cpp:3074 #6 0x00007f0499d9a18a in std::__invoke_impl<void, void (WebCore::HTMLMediaElement::* const&)(), WebCore::HTMLMediaElement*&> (__f=@0x7eef180c60c8: (void ((anonymous namespace)::HTMLMediaElement::*)((anonymous namespace)::HTMLMediaElement * const)) 0x7f0499d5b4ca <(anonymous namespace)::HTMLMediaElement::seekTask()>, __t=@0x7eef180c60d8: 0x7f0411a02508) at /usr/include/c++/6/functional:227 #7 0x00007f0499d9a0af in std::__invoke<void (WebCore::HTMLMediaElement::* const&)(), WebCore::HTMLMediaElement*&> (__fn=@0x7eef180c60c8: (void ((anonymous namespace)::HTMLMediaElement::*)((anonymous namespace)::HTMLMediaElement * const)) 0x7f0499d5b4ca <(anonymous namespace)::HTMLMediaElement::seekTask()>, __args#0=@0x7eef180c60d8: 0x7f0411a02508) at /usr/include/c++/6/functional:251 #8 0x00007f0499d9a006 in std::_Mem_fn_base<void (WebCore::HTMLMediaElement::*)(), true>::operator()<WebCore::HTMLMediaElement*&> (this=0x7eef180c60c8, __args#0=@0x7eef180c60d8: 0x7f0411a02508) at /usr/include/c++/6/functional:604 #9 0x00007f0499d99dce in std::_Bind<std::_Mem_fn<void (WebCore::HTMLMediaElement::*)()>(WebCore::HTMLMediaElement*)>::__call<void, 0ul>(<unknown type in /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37, CU 0x0, DIE 0x321aa4>, std::_Index_tuple<0ul>) (this=0x7eef180c60c8, __args=<unknown type in /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37, CU 0x0, DIE 0x321aa4>) at /usr/include/c++/6/functional:934 #10 0x00007f0499d989c6 in std::_Bind<std::_Mem_fn<void (WebCore::HTMLMediaElement::*)()>(WebCore::HTMLMediaElement*)>::operator()<>(void) (this=0x7eef180c60c8) at /usr/include/c++/6/functional:993 #11 0x00007f0499d9779c in WTF::Function<void()>::CallableWrapper<std::_Bind<std::_Mem_fn<void (WebCore::HTMLMediaElement::*)()>(WebCore::HTMLMediaElement*)> >::call(void) (this=0x7eef180c60c0) at DerivedSources/ForwardingHeaders/wtf/Function.h:101 #12 0x00007f0497d7ed8a in WTF::Function<void()>::operator()(void) const (this=0x7eef180fd7a8) at DerivedSources/ForwardingHeaders/wtf/Function.h:56 #13 0x00007f04994a1edc in (anonymous namespace)::GenericTaskQueue<WebCore::Timer>::<lambda()>::operator()(void) const (__closure=0x7eef180fd7a0) at ../../Source/WebCore/platform/GenericTaskQueue.h:94 #14 0x00007f04994a3320 in WTF::Function<void()>::CallableWrapper<WebCore::GenericTaskQueue<T>::enqueueTask(WebCore::GenericTaskQueue<T>::TaskFunction&&) [with T = WebCore::Timer; WebCore::GenericTaskQueue<T>::TaskFunction = WTF::Function<void()>]::<lambda()> >::call(void) (this=0x7eef180fd798) at DerivedSources/ForwardingHeaders/wtf/Function.h:101 #15 0x00007f0497d7ed8a in WTF::Function<void()>::operator()(void) const (this=0x7ffcd5b7c098) at DerivedSources/ForwardingHeaders/wtf/Function.h:56 #16 0x00007f049a2f792b in (anonymous namespace)::TaskDispatcher<WebCore::Timer>::dispatchOneTask (this=0x7f0411a027a0) at ../../Source/WebCore/platform/GenericTaskQueue.cpp:80 #17 0x00007f049a2f7818 in (anonymous namespace)::TaskDispatcher<WebCore::Timer>::sharedTimerFired () at ../../Source/WebCore/platform/GenericTaskQueue.cpp:65 #18 0x00007f049a2f76a5 in (anonymous namespace)::TaskDispatcher<WebCore::Timer>::<lambda()>::operator()(void) const (__closure=0x7f04112178b8) at ../../Source/WebCore/platform/GenericTaskQueue.cpp:49 #19 0x00007f049a2f811a in WTF::Function<void()>::CallableWrapper<WebCore::TaskDispatcher<WebCore::Timer>::sharedTimer()::<lambda()> >::call(void) (this=0x7f04112178b0) at DerivedSources/ForwardingHeaders/wtf/Function.h:101 #20 0x00007f0497d7ed8a in WTF::Function<void()>::operator()(void) const (this=0x7f04a04d7260 <_ZZN7WebCore14TaskDispatcherINS_5TimerEE11sharedTimerEvE5timer+64>) at DerivedSources/ForwardingHeaders/wtf/Function.h:56 #21 0x00007f0497d8e010 in (anonymous namespace)::Timer::fired (this=0x7f04a04d7220 <_ZZN7WebCore14TaskDispatcherINS_5TimerEE11sharedTimerEvE5timer>) at ../../Source/WebCore/platform/Timer.h:131 #22 0x00007f049a3262b6 in (anonymous namespace)::ThreadTimers::sharedTimerFiredInternal (this=0x7f047f37f730) at ../../Source/WebCore/platform/ThreadTimers.cpp:117 #23 0x00007f049a325ddb in (anonymous namespace)::ThreadTimers::<lambda()>::operator()(void) const (__closure=0x7f047f3fa348) at ../../Source/WebCore/platform/ThreadTimers.cpp:69 #24 0x00007f049a33097c in WTF::Function<void()>::CallableWrapper<WebCore::ThreadTimers::setSharedTimer(WebCore::SharedTimer*)::<lambda()> >::call(void) (this=0x7f047f3fa340) at DerivedSources/ForwardingHeaders/wtf/Function.h:101 #25 0x00007f0497d7ed8a in WTF::Function<void()>::operator()(void) const (this=0x7f04a04d7408 <_ZZN7WebCore21MainThreadSharedTimer9singletonEvE8instance+8>) at DerivedSources/ForwardingHeaders/wtf/Function.h:56 #26 0x00007f049a304ed7 in (anonymous namespace)::MainThreadSharedTimer::fired (this=0x7f04a04d7400 <_ZZN7WebCore21MainThreadSharedTimer9singletonEvE8instance>) at ../../Source/WebCore/platform/MainThreadSharedTimer.cpp:54 #27 0x00007f049a308e50 in WTF::RunLoop::Timer<WebCore::MainThreadSharedTimer>::fired (this=0x7f04a04d7410 <_ZZN7WebCore21MainThreadSharedTimer9singletonEvE8instance+16>) at DerivedSources/ForwardingHeaders/wtf/RunLoop.h:149 #28 0x00007f048e220d97 in WTF::RunLoop::TimerBase::<lambda(gpointer)>::operator()(gpointer) const (__closure=0x0, userData=0x7f04a04d7410 <_ZZN7WebCore21MainThreadSharedTimer9singletonEvE8instance+16>) at /home/slave/webkitgtk/gtk-linux-64-debug/build/Source/WTF/wtf/glib/RunLoopGLib.cpp:170 #29 0x00007f048e220def in WTF::RunLoop::TimerBase::<lambda(gpointer)>::_FUN(gpointer) () at /home/slave/webkitgtk/gtk-linux-64-debug/build/Source/WTF/wtf/glib/RunLoopGLib.cpp:176 #30 0x00007f048e22051a in WTF::<lambda(GSource*, GSourceFunc, gpointer)>::operator()(GSource *, GSourceFunc, gpointer) const (__closure=0x0, source=0x558d529dc690, callback=0x7f048e220dd2 <WTF::RunLoop::TimerBase::<lambda(gpointer)>::_FUN(gpointer)>, userData=0x7f04a04d7410 <_ZZN7WebCore21MainThreadSharedTimer9singletonEvE8instance+16>) at /home/slave/webkitgtk/gtk-linux-64-debug/build/Source/WTF/wtf/glib/RunLoopGLib.cpp:45 #31 0x00007f048e220549 in WTF::<lambda(GSource*, GSourceFunc, gpointer)>::_FUN(GSource *, GSourceFunc, gpointer) () at /home/slave/webkitgtk/gtk-linux-64-debug/build/Source/WTF/wtf/glib/RunLoopGLib.cpp:46 #32 0x00007f04878d381a in g_main_dispatch () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/glib-2.54.2/glib/gmain.c:3148 #33 g_main_context_dispatch () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/glib-2.54.2/glib/gmain.c:3813 #34 0x00007f04878d3ba8 in g_main_context_iterate () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/glib-2.54.2/glib/gmain.c:3886 #35 0x00007f04878d3ec2 in g_main_loop_run () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/glib-2.54.2/glib/gmain.c:4082 #36 0x00007f048e220a57 in WTF::RunLoop::run () at /home/slave/webkitgtk/gtk-linux-64-debug/build/Source/WTF/wtf/glib/RunLoopGLib.cpp:96 #37 0x00007f04989138f1 in (anonymous namespace)::ChildProcessMain<WebKit::WebProcess, WebKit::WebProcessMain> (argc=3, argv=0x7ffcd5b7c648) at ../../Source/WebKit/Shared/unix/ChildProcessMain.h:61 #38 0x00007f049891336c in (anonymous namespace)::WebProcessMainUnix (argc=3, argv=0x7ffcd5b7c648) at ../../Source/WebKit/WebProcess/gtk/WebProcessMainGtk.cpp:67 #39 0x0000558d519d6e5b in main (argc=3, argv=0x7ffcd5b7c648) at /home/slave/webkitgtk/gtk-linux-64-debug/build/Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp:52 STDERR: STDERR: warning: core file may not match specified executable file. STDERR: g_object_set_is_valid_property: object class 'WebKitMediaSrc' has no property named 'current-video' STDERR: g_object_set_is_valid_property: object class 'WebKitMediaSrc' has no property named 'current-video' STDERR: ASSERTION FAILED: !m_mseSeekCompleted STDERR: /home/slave/webkitgtk/gtk-linux-64-debug/build/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp(330) : bool WebCore::MediaPlayerPrivateGStreamerMSE::doSeek() STDERR: 1 0x7f048e1a7401 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(WTFCrash+0x9) [0x7f048e1a7401] STDERR: 2 0x7f049ad2814c /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::MediaPlayerPrivateGStreamerMSE::doSeek()+0x98e) [0x7f049ad2814c] STDERR: 3 0x7f049ad2732e /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::MediaPlayerPrivateGStreamerMSE::seek(WTF::MediaTime const&)+0x330) [0x7f049ad2732e] STDERR: 4 0x7f049a43baa6 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::MediaPlayerPrivateInterface::seekWithTolerance(WTF::MediaTime const&, WTF::MediaTime const&, WTF::MediaTime const&)+0x38) [0x7f049a43baa6] STDERR: 5 0x7f049a4309e3 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::MediaPlayer::seekWithTolerance(WTF::MediaTime const&, WTF::MediaTime const&, WTF::MediaTime const&)+0x47) [0x7f049a4309e3] STDERR: 6 0x7f0499d5ba99 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::HTMLMediaElement::seekTask()+0x5cf) [0x7f0499d5ba99] STDERR: 7 0x7f0499d9a18a /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(void std::__invoke_impl<void, void (WebCore::HTMLMediaElement::* const&)(), WebCore::HTMLMediaElement*&>(std::__invoke_memfun_deref, void (WebCore::HTMLMediaElement::* const&)(), WebCore::HTMLMediaElement*&)+0x66) [0x7f0499d9a18a] STDERR: 8 0x7f0499d9a0af /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(std::result_of<void (WebCore::HTMLMediaElement::* const&(WebCore::HTMLMediaElement*&))()>::type std::__invoke<void (WebCore::HTMLMediaElement::* const&)(), WebCore::HTMLMediaElement*&>(void (WebCore::HTMLMediaElement::* const&)(), WebCore::HTMLMediaElement*&)+0x3f) [0x7f0499d9a0af] STDERR: 9 0x7f0499d9a006 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(decltype (__invoke((*this)._M_pmf, (forward<WebCore::HTMLMediaElement*&>)({parm#1}))) std::_Mem_fn_base<void (WebCore::HTMLMediaElement::*)(), true>::operator()<WebCore::HTMLMediaElement*&>(WebCore::HTMLMediaElement*&) const+0x2e) [0x7f0499d9a006] STDERR: 10 0x7f0499d99dce /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(void std::_Bind<std::_Mem_fn<void (WebCore::HTMLMediaElement::*)()> (WebCore::HTMLMediaElement*)>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>)+0x48) [0x7f0499d99dce] STDERR: 11 0x7f0499d989c6 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(void std::_Bind<std::_Mem_fn<void (WebCore::HTMLMediaElement::*)()> (WebCore::HTMLMediaElement*)>::operator()<, void>()+0x2a) [0x7f0499d989c6] STDERR: 12 0x7f0499d9779c /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WTF::Function<void ()>::CallableWrapper<std::_Bind<std::_Mem_fn<void (WebCore::HTMLMediaElement::*)()> (WebCore::HTMLMediaElement*)> >::call()+0x1c) [0x7f0499d9779c] STDERR: 13 0x7f0497d7ed8a /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WTF::Function<void ()>::operator()() const+0x5e) [0x7f0497d7ed8a] STDERR: 14 0x7f04994a1edc /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::GenericTaskQueue<WebCore::Timer>::enqueueTask(WTF::Function<void ()>&&)::{lambda()#1}::operator()() const+0x80) [0x7f04994a1edc] STDERR: 15 0x7f04994a3320 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WTF::Function<void ()>::CallableWrapper<WebCore::GenericTaskQueue<WebCore::Timer>::enqueueTask(WTF::Function<void ()>&&)::{lambda()#1}>::call()+0x1c) [0x7f04994a3320] STDERR: 16 0x7f0497d7ed8a /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WTF::Function<void ()>::operator()() const+0x5e) [0x7f0497d7ed8a] STDERR: 17 0x7f049a2f792b /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::TaskDispatcher<WebCore::Timer>::dispatchOneTask()+0x67) [0x7f049a2f792b] STDERR: 18 0x7f049a2f7818 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::TaskDispatcher<WebCore::Timer>::sharedTimerFired()+0xe6) [0x7f049a2f7818] STDERR: 19 0x7f049a2f76a5 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(+0xaa8e6a5) [0x7f049a2f76a5] STDERR: 20 0x7f049a2f811a /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(+0xaa8f11a) [0x7f049a2f811a] STDERR: 21 0x7f0497d7ed8a /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WTF::Function<void ()>::operator()() const+0x5e) [0x7f0497d7ed8a] STDERR: 22 0x7f0497d8e010 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::Timer::fired()+0x1c) [0x7f0497d8e010] STDERR: 23 0x7f049a3262b6 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::ThreadTimers::sharedTimerFiredInternal()+0x216) [0x7f049a3262b6] STDERR: 24 0x7f049a325ddb /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(+0xaabcddb) [0x7f049a325ddb] STDERR: 25 0x7f049a33097c /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(+0xaac797c) [0x7f049a33097c] STDERR: 26 0x7f0497d7ed8a /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WTF::Function<void ()>::operator()() const+0x5e) [0x7f0497d7ed8a] STDERR: 27 0x7f049a304ed7 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::MainThreadSharedTimer::fired()+0x57) [0x7f049a304ed7] STDERR: 28 0x7f049a308e50 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WTF::RunLoop::Timer<WebCore::MainThreadSharedTimer>::fired()+0x66) [0x7f049a308e50] STDERR: 29 0x7f048e220d97 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(+0x2e76d97) [0x7f048e220d97] STDERR: 30 0x7f048e220def /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(+0x2e76def) [0x7f048e220def] STDERR: 31 0x7f048e22051a /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(+0x2e7651a) [0x7f048e22051a]
Attachments
bt (204.15 KB, text/plain)
2024-06-26 01:58 PDT, Philippe Normand
no flags
Enrique Ocaña
Comment 1 2018-07-20 01:31:24 PDT
I've just noticed that the block of code affected by the assert is very different in the downstream WPE implementation we maintain, where we've extensively tested the seek behaviour: https://github.com/WebPlatformForEmbedded/WPEWebKit/blob/cc88c3c/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp#L324 https://github.com/WebKit/webkit/blob/dc5795c/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp#L318 It might be worth to examine the differences in the seek algorithms between both versions and see what can be improved upstream.
Xabier Rodríguez Calvar
Comment 2 2021-03-26 05:31:02 PDT
There is a crash in debug mode with the ASSERT(!m_mseSeekCompleted) on MediaPlayerPrivateGStreamerMSE::doSeek. This needs to be removed to avoid the crash in debug mode because in our case for this test, we complete the seek without marking it as incomplete first. If you remove this, the only thing that is left is fixing the release bug, which is still there.
Philippe Normand
Comment 3 2024-06-26 01:58:14 PDT
Created attachment 471748 [details] bt That code has changed quite a bit since 2018... New ASSERT in NativePromise.
Philippe Normand
Comment 4 2024-06-26 02:17:35 PDT
EWS
Comment 5 2024-06-26 02:19:51 PDT
Committed 280365@main (3402d3c3b3ae): <https://commits.webkit.org/280365@main> Reviewed commits have been landed. Closing PR #30184 and removing active labels.
Radar WebKit Bug Importer
Comment 6 2024-06-26 02:20:15 PDT
Philippe Normand
Comment 7 2024-06-26 02:22:50 PDT
This would need a patch.
Fujii Hironori
Comment 8 2025-12-30 03:25:59 PST
https://build.webkit.org/results/GTK-Linux-64-bit-Debug-Tests/304985@main%20(17781)/imported/w3c/web-platform-tests/media-source/mediasource-seek-beyond-duration-crash-log.txt Thread 1 (Thread 0x7f6abc796ec0 (LWP 3751308)): #0 __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:44 #1 __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78 #2 __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ./nptl/pthread_kill.c:89 #3 0x00007f6acae3327e in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26 #4 0x00007f6acae168ff in __GI_abort () at ./stdlib/abort.c:79 #5 0x00007f6ac0d6190d in std::__glibcxx_assert_fail(char const*, int, char const*, char const*) () at /lib/x86_64-linux-gnu/libstdc++.so.6 #6 0x00007f6adefc5a89 in std::_Optional_base_impl<WTF::NativePromiseProducer<WTF::MediaTime, WebCore::PlatformMediaError, 16u>, std::_Optional_base<WTF::NativePromiseProducer<WTF::MediaTime, WebCore::PlatformMediaError, 16u>, false, false> >::_M_get (this=0x7f6ab2404b40) at /usr/include/c++/13/optional:479 #7 0x00007f6adefbf512 in std::optional<WTF::NativePromiseProducer<WTF::MediaTime, WebCore::PlatformMediaError, 16u> >::operator-> (this=0x7f6ab2404b40) at /usr/include/c++/13/optional:968 #8 0x00007f6adefb5d7a in WebCore::MediaSource::waitForTarget (this=0x7f6ab2404a60, target=...) at ../../../Source/WebCore/Modules/mediasource/MediaSource.cpp:409 #9 0x00007f6adefb4077 in WebCore::MediaSourceClientImpl::waitForTarget(WebCore::SeekTarget const&)::{lambda(WebCore::MediaSource&)#1}::operator()(WebCore::MediaSource&) (__closure=0x7f6ab2403608, parent=...) at ../../../Source/WebCore/Modules/mediasource/MediaSource.cpp:163 #10 0x00007f6adefef2f2 in WTF::Detail::CallableWrapper<WebCore::MediaSourceClientImpl::waitForTarget(WebCore::SeekTarget const&)::{lambda(WebCore::MediaSource&)#1}, void, WebCore::MediaSource&>::call(WebCore::MediaSource&) (this=0x7f6ab2403600, in#0=...) at WTF/Headers/wtf/Function.h:59 #11 0x00007f6adefbded1 in WTF::Function<void (WebCore::MediaSource&)>::operator()(WebCore::MediaSource&) const (this=0x7f6ab2364b48, in#0=...) at WTF/Headers/wtf/Function.h:103 #12 0x00007f6adefb3a54 in WebCore::MediaSourceClientImpl::ensureWeakOnDispatcher(WTF::Function<void (WebCore::MediaSource&)>&&, bool) const::{lambda()#1}::operator()() const (__closure=0x7f6ab2364b48) at ../../../Source/WebCore/Modules/mediasource/MediaSource.cpp:119 #13 0x00007f6adefee16e in WebCore::MediaSourceClientImpl::ensureWeakOnDispatcher(WTF::Function<void (WebCore::MediaSource&)>&&, bool) const::{lambda(auto:1&)#1}::operator()<WebCore::ScriptExecutionContext>(WebCore::ScriptExecutionContext&) const (__closure=0x7f6ab2364b48) at ../../../Source/WebCore/Modules/mediasource/MediaSource.cpp:122 #14 0x00007f6adefee1a6 in WTF::Detail::CallableWrapper<WebCore::MediaSourceClientImpl::ensureWeakOnDispatcher(WTF::Function<void (WebCore::MediaSource&)>&&, bool) const::{lambda(auto:1&)#1}, void, WebCore::ScriptExecutionContext&>::call(WebCore::ScriptExecutionContext&) (this=0x7f6ab2364b40, in#0=...) at WTF/Headers/wtf/Function.h:59 #15 0x00007f6adec03759 in WTF::Function<void (WebCore::ScriptExecutionContext&)>::operator()(WebCore::ScriptExecutionContext&) const (this=0x7ffef6d4ba00, in#0=...) at WTF/Headers/wtf/Function.h:103 #16 0x00007f6adf5e82ad in WebCore::ScriptExecutionContext::Task::performTask (this=0x7ffef6d4ba00, context=...) at WebCore/PrivateHeaders/WebCore/ScriptExecutionContext.h:279 #17 0x00007f6ae0e317f1 in WebCore::ScriptExecutionContext::ensureOnContextThread (identifier=..., task=...) at ../../../Source/WebCore/dom/ScriptExecutionContext.cpp:808 #18 0x00007f6adefb3d1e in WebCore::MediaSourceClientImpl::ensureWeakOnDispatcher(WTF::Function<void (WebCore::MediaSource&)>&&, bool) const (this=0x7f6ab23578a0, function=..., forceRun=false) at ../../../Source/WebCore/Modules/mediasource/MediaSource.cpp:121 #19 0x00007f6adefb428a in WebCore::MediaSourceClientImpl::waitForTarget (this=0x7f6ab23578a0, target=...) at ../../../Source/WebCore/Modules/mediasource/MediaSource.cpp:162 #20 0x00007f6ae249e4f0 in WebCore::MediaSourcePrivate::waitForTarget (this=0x7f6ab2384960, target=...) at ../../../Source/WebCore/platform/graphics/MediaSourcePrivate.cpp:103 #21 0x00007f6ae2790a61 in WebCore::MediaPlayerPrivateGStreamerMSE::doSeek (this=0x7f6ab000c000, target=..., rate=1, isAsync=false, isSegment=false) at ../../../Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:314 #22 0x00007f6ae278fdeb in WebCore::MediaPlayerPrivateGStreamerMSE::seekToTarget (this=0x7f6ab000c000, target=...) at ../../../Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:247 #23 0x00007f6ae2479da5 in WebCore::MediaPlayer::seekToTarget (this=0x7f6ab223e080, target=...) at ../../../Source/WebCore/platform/graphics/MediaPlayer.cpp:864 #24 0x00007f6ae122fe26 in WebCore::HTMLMediaElement::seekTask (this=0x7f6ab0222800) at ../../../Source/WebCore/html/HTMLMediaElement.cpp:4040 #25 0x00007f6ae125fea0 in operator()<WebCore::HTMLMediaElement> (__closure=0x7f6ab261b348, element=warning: RTTI symbol not found for class 'WebCore::HTMLVideoElement' ...) at ../../../Source/WebCore/html/HTMLMediaElement.cpp:3941 #26 0x00007f6ae125fed0 in operator() (__closure=0x7f6ab261b348) at WebCore/PrivateHeaders/WebCore/ActiveDOMObject.h:123 #27 0x00007f6ae12c9a80 in WTF::Detail::CallableWrapper<WebCore::ActiveDOMObject::queueCancellableTaskKeepingObjectAlive<WebCore::HTMLMediaElement, WebCore::HTMLMediaElement::seekWithTolerance(const WebCore::SeekTarget&, bool)::<lambda(auto:614&)> >(WebCore::HTMLMediaElement&, WebCore::TaskSource, WTF::TaskCancellationGroup&, WebCore::HTMLMediaElement::seekWithTolerance(const WebCore::SeekTarget&, bool)::<lambda(auto:614&)>&&)::<lambda()>, void>::call(void) (this=0x7f6ab261b340) at WTF/Headers/wtf/Function.h:59 #28 0x00007f6ad9039f7d in WTF::Function<void ()>::operator()() const (this=0x7f6ab23649b0) at WTF/Headers/wtf/Function.h:103 #29 0x00007f6adf89f8fa in WTF::CancellableTask::operator() (this=0x7f6ab23649a0) at WTF/Headers/wtf/CancellableTask.h:100 #30 0x00007f6ae125ff14 in operator() (__closure=0x7f6ab2364998) at WebCore/PrivateHeaders/WebCore/ActiveDOMObject.h:128 #31 0x00007f6ae12c9a5c in WTF::Detail::CallableWrapper<WebCore::ActiveDOMObject::queueCancellableTaskKeepingObjectAlive<WebCore::HTMLMediaElement, WebCore::HTMLMediaElement::seekWithTolerance(const WebCore::SeekTarget&, bool)::<lambda(auto:614&)> >(WebCore::HTMLMediaElement&, WebCore::TaskSource, WTF::TaskCancellationGroup&, WebCore::HTMLMediaElement::seekWithTolerance(const WebCore::SeekTarget&, bool)::<lambda(auto:614&)>&&)::<lambda()>, void>::call(void) (this=0x7f6ab2364990) at WTF/Headers/wtf/Function.h:59 #32 0x00007f6ad9039f7d in WTF::Function<void ()>::operator()() const (this=0x7f6ab23649e0) at WTF/Headers/wtf/Function.h:103 #33 0x00007f6ae0d0c6bc in WebCore::EventLoopFunctionDispatchTask::execute (this=0x7f6ab23649c0) at ../../../Source/WebCore/dom/EventLoop.cpp:551 #34 0x00007f6ae0d0b04e in WebCore::EventLoop::run (this=0x7f6ab21d6e00, deadline=std::optional = {...}) at ../../../Source/WebCore/dom/EventLoop.cpp:337 #35 0x00007f6ae0f099ad in WebCore::WindowEventLoop::didReachTimeToRun (this=0x7f6ab21d6e00) at ../../../Source/WebCore/dom/WindowEventLoop.cpp:233 #36 0x00007f6ae0f0e010 in WebCore::Timer::Timer<WebCore::WindowEventLoop, WebCore::WindowEventLoop>(WebCore::WindowEventLoop&, void (WebCore::WindowEventLoop::*)())::{lambda()#1}::operator()() const (__closure=0x7f6ab21c8758) at WebCore/PrivateHeaders/WebCore/Timer.h:167 #37 0x00007f6ae0f21618 in WTF::Detail::CallableWrapper<WebCore::Timer::Timer<WebCore::WindowEventLoop, WebCore::WindowEventLoop>(WebCore::WindowEventLoop&, void (WebCore::WindowEventLoop::*)())::{lambda()#1}, void>::call() (this=0x7f6ab21c8750) at WTF/Headers/wtf/Function.h:59 #38 0x00007f6ad9039f7d in WTF::Function<void ()>::operator()() const (this=0x7f6ab21d6f58) at WTF/Headers/wtf/Function.h:103 #39 0x00007f6ada0b35f4 in WebCore::Timer::fired (this=0x7f6ab21d6f20) at WebCore/PrivateHeaders/WebCore/Timer.h:189 #40 0x00007f6ae217afe5 in WebCore::ThreadTimers::sharedTimerFiredInternal (this=0x7f6ab20d9a40) at ../../../Source/WebCore/platform/ThreadTimers.cpp:138 #41 0x00007f6ae217a7c9 in operator() (__closure=0x7f6ab20017e8) at ../../../Source/WebCore/platform/ThreadTimers.cpp:74 #42 0x00007f6ae218d0c6 in WTF::Detail::CallableWrapper<WebCore::ThreadTimers::setSharedTimer(WebCore::SharedTimer*)::<lambda()>, void>::call(void) (this=0x7f6ab20017e0) at WTF/Headers/wtf/Function.h:59 #43 0x00007f6ad9039f7d in WTF::Function<void ()>::operator()() const (this=0x7f6ae57bacb0 <WebCore::MainThreadSharedTimer::singleton()::instance+48>) at WTF/Headers/wtf/Function.h:103 #44 0x00007f6ae210ec58 in WebCore::MainThreadSharedTimer::fired (this=0x7f6ae57bac80 <WebCore::MainThreadSharedTimer::singleton()::instance>) at ../../../Source/WebCore/platform/MainThreadSharedTimer.cpp:85 #45 0x00007f6ae2110d68 in WTF::RunLoop::Timer::Timer<WebCore::MainThreadSharedTimer>(WTF::Ref<WTF::RunLoop, WTF::RawPtrTraits<WTF::RunLoop>, WTF::DefaultRefDerefTraits<WTF::RunLoop> >&&, WTF::ASCIILiteral, WebCore::MainThreadSharedTimer*, void (WebCore::MainThreadSharedTimer::*)())::{lambda()#1}::operator()() const (__closure=0x7f6ab20d9a78) at WTF/Headers/wtf/RunLoop.h:220 #46 0x00007f6ae2116922 in WTF::Detail::CallableWrapper<WTF::RunLoop::Timer::Timer<WebCore::MainThreadSharedTimer>(WTF::Ref<WTF::RunLoop, WTF::RawPtrTraits<WTF::RunLoop>, WTF::DefaultRefDerefTraits<WTF::RunLoop> >&&, WTF::ASCIILiteral, WebCore::MainThreadSharedTimer*, void (WebCore::MainThreadSharedTimer::*)())::{lambda()#1}, void>::call() (this=0x7f6ab20d9a70) at WTF/Headers/wtf/Function.h:59 #47 0x00007f6ad9039f7d in WTF::Function<void ()>::operator()() const (this=0x7f6ae57bacf0 <WebCore::MainThreadSharedTimer::singleton()::instance+112>) at WTF/Headers/wtf/Function.h:103 #48 0x00007f6ada24472e in WTF::RunLoop::Timer::fired (this=0x7f6ae57bacb8 <WebCore::MainThreadSharedTimer::singleton()::instance+56>) at WTF/Headers/wtf/RunLoop.h:262 #49 0x00007f6ac9731b5f in operator() (__closure=0x0, userData=0x7f6ae57bacb8 <WebCore::MainThreadSharedTimer::singleton()::instance+56>) at ../../../Source/WTF/wtf/glib/RunLoopGLib.cpp:327 #50 0x00007f6ac9731ba3 in _FUN () at ../../../Source/WTF/wtf/glib/RunLoopGLib.cpp:331 #51 0x00007f6ac9730728 in operator() (__closure=0x0, source=0x558ca0ddaaa0, callback=0x7f6ac9731b82 <_FUN(gpointer)>, userData=0x7f6ae57bacb8 <WebCore::MainThreadSharedTimer::singleton()::instance+56>) at ../../../Source/WTF/wtf/glib/RunLoopGLib.cpp:115 #52 0x00007f6ac9730795 in _FUN () at ../../../Source/WTF/wtf/glib/RunLoopGLib.cpp:118 #53 0x00007f6ac3bc649e in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #54 0x00007f6ac3bc6710 in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #55 0x00007f6ac9731119 in WTF::RunLoop::runGLibMainLoopIteration (this=0x7f6ab201c110, mayBlock=WTF::RunLoop::MayBlock::Yes) at ../../../Source/WTF/wtf/glib/RunLoopGLib.cpp:190 #56 0x00007f6ac9731188 in WTF::RunLoop::runGLibMainLoop (this=0x7f6ab201c110) at ../../../Source/WTF/wtf/glib/RunLoopGLib.cpp:199 #57 0x00007f6ac9731250 in WTF::RunLoop::run () at ../../../Source/WTF/wtf/glib/RunLoopGLib.cpp:212 #58 0x00007f6adbe0c3c2 in WebKit::AuxiliaryProcessMainBase<WebKit::WebProcess, true>::run (this=0x7ffef6d4c620, argc=4, argv=0x7ffef6d4c7e8) at ../../../Source/WebKit/Shared/AuxiliaryProcessMain.h:77 #59 0x00007f6adbe0ba45 in WebKit::AuxiliaryProcessMain<WebKit::WebProcessMainGtk> (argc=4, argv=0x7ffef6d4c7e8) at ../../../Source/WebKit/Shared/AuxiliaryProcessMain.h:103 #60 0x00007f6adbe0b1aa in WebKit::WebProcessMain (argc=4, argv=0x7ffef6d4c7e8) at ../../../Source/WebKit/WebProcess/gtk/WebProcessMainGtk.cpp:117 #61 0x0000558c8f4417ed in main (argc=4, argv=0x7ffef6d4c7e8) at ../../../Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp:31
Fujii Hironori
Comment 9 2026-01-01 17:35:25 PST
Created a new ticket bug#304834 for the nullopt dereferencing problem.
Note You need to log in before you can comment on or make changes to this bug.