[Webkit-unassigned] [Bug 259504] [GStreamer][MSE] Crash after 10 seconds on watchdog thread due to deadlock when destroying ~MediaPlayerPrivateGStreamer
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Wed Apr 17 13:07:03 PDT 2024
https://bugs.webkit.org/show_bug.cgi?id=259504
--- Comment #6 from Philippe Normand <philn at igalia.com> ---
(In reply to Michael Catanzaro from comment #5)
> Found a reproducer for this one: visit https://imgur.com/a/soPf1H6 and the
> web process will deadlock after about 5 seconds.
Well that doesn't seem related to MSE:
Core was generated by `/usr/libexec/webkitgtk-6.0/WebKitWebProcess 45 71'.
Program terminated with signal SIGTRAP, Trace/breakpoint trap.
#0 g_log_structured_array (log_level=<optimized out>, fields=0x7efcc73ff6f0, n_fields=3) at ../glib/gmessages.c:426
426 G_BREAKPOINT ();
[Current thread is 1 (Thread 0x7efcc74006c0 (LWP 48))]
(gdb) t 3
[Switching to thread 3 (Thread 0x7efd33271a40 (LWP 2))]
#0 futex_wait (private=0, expected=2, futex_word=0x5569d5b16c20) at ../sysdeps/nptl/futex-internal.h:146
146 int err = lll_futex_timed_wait (futex_word, expected, NULL, private);
(gdb) f 2
#2 0x00007efd3b2a5527 in lll_mutex_lock_optimized (mutex=0x5569d5b16c20) at pthread_mutex_lock.c:48
48 lll_lock (mutex->__data.__lock, private);
(gdb) p *mutex
$1 = {__data = {__lock = 2, __count = 1, __owner = 14, __nusers = 1, __kind = 1, __spins = 0, __elision = 0, __list = {__prev = 0x0, __next = 0x0}},
__size = "\002\000\000\000\001\000\000\000\016\000\000\000\001\000\000\000\001", '\000' <repeats 22 times>, __align = 4294967298}
(gdb) info threads
Id Target Id Frame
1 Thread 0x7efcc74006c0 (LWP 48) g_log_structured_array (log_level=<optimized out>, fields=0x7efcc73ff6f0, n_fields=3) at ../glib/gmessages.c:426
2 Thread 0x7efd2be006c0 (LWP 6) 0x00007efd3b31c560 in __GI_ppoll (fds=fds at entry=0x7efd18000b90, nfds=nfds at entry=3, timeout=<optimized out>, timeout at entry=0x0, sigmask=sigmask at entry=0x0)
at ../sysdeps/unix/sysv/linux/ppoll.c:42
* 3 Thread 0x7efd33271a40 (LWP 2) futex_wait (private=0, expected=2, futex_word=0x5569d5b16c20) at ../sysdeps/nptl/futex-internal.h:146
4 Thread 0x7efd312006c0 (LWP 5) 0x00007efd3b31c560 in __GI_ppoll (fds=fds at entry=0x5569d5585770, nfds=nfds at entry=2, timeout=<optimized out>, timeout at entry=0x0, sigmask=sigmask at entry=0x0)
at ../sysdeps/unix/sysv/linux/ppoll.c:42
5 Thread 0x7efd32c006c0 (LWP 3) syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
6 Thread 0x7efd28a006c0 (LWP 8) 0x00007efd3b31c560 in __GI_ppoll (fds=fds at entry=0x7efcc8001000, nfds=nfds at entry=1, timeout=<optimized out>, timeout at entry=0x0, sigmask=sigmask at entry=0x0)
at ../sysdeps/unix/sysv/linux/ppoll.c:42
7 Thread 0x7efd31c006c0 (LWP 4) syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
8 Thread 0x7efccda006c0 (LWP 12) 0x00007efd3b29e709 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x5569d55fa378) at futex-internal.c:57
9 Thread 0x7efd2b4006c0 (LWP 7) 0x00007efd3b29e709 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x7efd2b3ffb80, op=393, expected=0, futex_word=0x7efd1000ea50) at futex-internal.c:57
10 Thread 0x7efc834006c0 (LWP 43) 0x00007efd3b29e709 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x7efc8e568164) at futex-internal.c:57
11 Thread 0x7efcbbe006c0 (LWP 15) 0x00007efd3b31c560 in __GI_ppoll (fds=fds at entry=0x7efc94001000, nfds=nfds at entry=1, timeout=<optimized out>, timeout at entry=0x7efcbbdffac0, sigmask=sigmask at entry=0x0)
at ../sysdeps/unix/sysv/linux/ppoll.c:42
12 Thread 0x7efd1f4006c0 (LWP 10) 0x00007efd3b31c560 in __GI_ppoll (fds=fds at entry=0x7efcbc001000, nfds=nfds at entry=1, timeout=<optimized out>, timeout at entry=0x0, sigmask=sigmask at entry=0x0)
at ../sysdeps/unix/sysv/linux/ppoll.c:42
13 Thread 0x7efd1fe006c0 (LWP 9) 0x00007efd3b31c560 in __GI_ppoll (fds=fds at entry=0x7efcc0001000, nfds=nfds at entry=1, timeout=<optimized out>, timeout at entry=0x0, sigmask=sigmask at entry=0x0)
at ../sysdeps/unix/sysv/linux/ppoll.c:42
14 Thread 0x7efc738006c0 (LWP 45) syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
15 Thread 0x7efca5e006c0 (LWP 24) 0x00007efd3b31c560 in __GI_ppoll (fds=fds at entry=0x7efc6c001000, nfds=nfds at entry=1, timeout=<optimized out>, timeout at entry=0x0, sigmask=sigmask at entry=0x0)
at ../sysdeps/unix/sysv/linux/ppoll.c:42
16 Thread 0x7efcbaa006c0 (LWP 17) 0x00007efd3b29e709 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x7efd305a35d0) at futex-internal.c:57
17 Thread 0x7efc83e006c0 (LWP 42) 0x00007efd3b29e709 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x7efc8e558164) at futex-internal.c:57
18 Thread 0x7efcbb4006c0 (LWP 16) 0x00007efd3b29e709 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x7efc940040f8) at futex-internal.c:57
19 Thread 0x7efc72e006c0 (LWP 46) syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
20 Thread 0x7efcb96006c0 (LWP 19) 0x00007efd3b29e709 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x7efd304ed5d0) at futex-internal.c:57
21 Thread 0x7efcba0006c0 (LWP 18) 0x00007efd3b29e709 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x7efc94031a88) at futex-internal.c:57
22 Thread 0x7efd1ca006c0 (LWP 11) 0x00007efd3b31c560 in __GI_ppoll (fds=fds at entry=0x7efcb4001000, nfds=nfds at entry=1, timeout=<optimized out>, timeout at entry=0x0, sigmask=sigmask at entry=0x0)
at ../sysdeps/unix/sysv/linux/ppoll.c:42
23 Thread 0x7efc8de006c0 (LWP 39) 0x00007efd3b31c560 in __GI_ppoll (fds=fds at entry=0x7efc58001000, nfds=nfds at entry=1, timeout=<optimized out>, timeout at entry=0x0, sigmask=sigmask at entry=0x0)
at ../sysdeps/unix/sysv/linux/ppoll.c:42
24 Thread 0x7efccd0006c0 (LWP 13) 0x00007efd3b29e709 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x5569d5600780) at futex-internal.c:57
25 Thread 0x7efcacc006c0 (LWP 23) 0x00007efd3b31c560 in __GI_ppoll (fds=fds at entry=0x7efc74001000, nfds=nfds at entry=1, timeout=<optimized out>, timeout at entry=0x0, sigmask=sigmask at entry=0x0)
at ../sysdeps/unix/sysv/linux/ppoll.c:42
26 Thread 0x7efc8d4006c0 (LWP 40) 0x00007efd3b29e709 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x7efc8e548164) at futex-internal.c:57
27 Thread 0x7efcc7e006c0 (LWP 14) 0x00007efd3b29e709 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x7efd29c681e0) at futex-internal.c:57
28 Thread 0x7efc8ca006c0 (LWP 41) 0x00007efd3b29e709 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x7efc8e524164) at futex-internal.c:57
29 Thread 0x7efc6be006c0 (LWP 47) syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
(gdb) t 27
[Switching to thread 27 (Thread 0x7efcc7e006c0 (LWP 14))]
#0 0x00007efd3b29e709 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x7efd29c681e0) at futex-internal.c:57
57 return INTERNAL_SYSCALL_CANCEL (futex_time64, futex_word, op, expected,
(gdb) bt
#0 0x00007efd3b29e709 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x7efd29c681e0) at futex-internal.c:57
#1 __futex_abstimed_wait_common (futex_word=futex_word at entry=0x7efd29c681e0, expected=expected at entry=0, clockid=clockid at entry=0, abstime=abstime at entry=0x0, private=private at entry=0, cancel=cancel at entry=true)
at futex-internal.c:87
#2 0x00007efd3b29e78f in __GI___futex_abstimed_wait_cancelable64
(futex_word=futex_word at entry=0x7efd29c681e0, expected=expected at entry=0, clockid=clockid at entry=0, abstime=abstime at entry=0x0, private=private at entry=0) at futex-internal.c:139
#3 0x00007efd3b2a1089 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=<optimized out>, cond=0x7efd29c681b8) at pthread_cond_wait.c:503
#4 ___pthread_cond_wait (cond=0x7efd29c681b8, mutex=<optimized out>) at pthread_cond_wait.c:618
#5 0x00007efd3abf6791 in WTF::ThreadCondition::wait (this=<optimized out>, mutex=<optimized out>) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WTF/wtf/posix/ThreadingPOSIX.cpp:654
#6 0x00007efd3abf6791 in WTF::ThreadCondition::timedWait () at /usr/lib/x86_64-linux-gnu/libjavascriptcoregtk-6.0.so.1
#7 0x00007efd3ab8af93 in WTF::ParkingLot::parkConditionallyImpl(void const*, WTF::ScopedLambda<bool ()> const&, WTF::ScopedLambda<void ()> const&, WTF::TimeWithDynamicClockType const&)
(address=0x5569d5b173e1, validation=..., beforeSleep=..., timeout=...) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WTF/wtf/ParkingLot.cpp:595
#8 0x00007efd3be6617d in WTF::ParkingLot::parkConditionally<WTF::Condition::waitUntilUnchecked<WTF::Lock>(WTF::Lock&, WTF::TimeWithDynamicClockType const&)::{lambda()#1}, WTF::Condition::waitUntilUnchecked<WTF::Lock>(WTF::Lock&, WTF::TimeWithDynamicClockType const&)::{lambda()#2}>(void const*, WTF::Condition::waitUntilUnchecked<WTF::Lock>(WTF::Lock&, WTF::TimeWithDynamicClockType const&)::{lambda()#1} const&, WTF::Condition::waitUntilUnchecked<WTF::Lock>(WTF::Lock&, WTF::TimeWithDynamicClockType const&)::{lambda()#2} const&, WTF::TimeWithDynamicClockType const&)
(address=0x5569d5b173e1, validation=..., beforeSleep=..., timeout=...) at WTF/Headers/wtf/ParkingLot.h:82
#9 WTF::Condition::waitUntilUnchecked<WTF::Lock> (this=0x5569d5b173e1, lock=..., timeout=...) at WTF/Headers/wtf/Condition.h:192
#10 0x00007efd3de1d9b8 in WTF::Condition::waitUntil (this=0x5569d5b173e1, timeout=..., lock=<optimized out>) at WTF/Headers/wtf/Condition.h:77
#11 WTF::Condition::wait (this=0x5569d5b173e1, lock=<optimized out>) at WTF/Headers/wtf/Condition.h:127
#12 WTF::Condition::wait<webKitWebSrcCreate(_GstPushSrc*, _GstBuffer**)::$_3>(WTF::Lock&, webKitWebSrcCreate(_GstPushSrc*, _GstBuffer**)::$_3 const&)
(this=0x5569d5b173e1, lock=<optimized out>, predicate=<optimized out>) at WTF/Headers/wtf/Condition.h:141
#13 webKitWebSrcCreate (pushSrc=0x5569d5b17510 [WebKitWebSrc|source], buffer=0x7efcc7dff9a8)
at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:534
#14 0x00007efd37b6fa23 in gst_base_src_get_range (src=src at entry=0x5569d5b17510 [WebKitWebSrc|source], offset=146694, length=<optimized out>, buf=buf at entry=0x7efcc7dffa90) at ../libs/gst/base/gstbasesrc.c:2592
#15 0x00007efd37b72bca in gst_base_src_loop (pad=0x5569d5b17810 [GstPad|src]) at ../libs/gst/base/gstbasesrc.c:2916
#16 0x00007efd37aa4214 in gst_task_func (task=0x5569d5adfc60 [GstTask|source:src]) at ../gst/gsttask.c:384
#17 0x00007efd36f4ba62 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/gthreadpool.c:336
#18 0x00007efd36f4aec9 in g_thread_proxy (data=0x7efd24000b90) at ../glib/gthread.c:835
#19 0x00007efd3b2a1e39 in start_thread (arg=<optimized out>) at pthread_create.c:444
#20 0x00007efd3b3299c4 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:100
(gdb)
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20240417/08eb6a83/attachment-0001.htm>
More information about the webkit-unassigned
mailing list