WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
NEW
Bug 259504
[GStreamer][MSE] Crash after 10 seconds on watchdog thread due to deadlock when destroying ~MediaPlayerPrivateGStreamer
https://bugs.webkit.org/show_bug.cgi?id=259504
Summary
[GStreamer][MSE] Crash after 10 seconds on watchdog thread due to deadlock wh...
Michael Catanzaro
Reported
2023-07-25 15:52:54 PDT
Created
attachment 467118
[details]
Backtrace Here's yet another web process crash when the watchdog thread detects the main thread has hung 10 seconds after the UI process connection closed: Thread 1 (Thread 0x7fe2027f86c0 (LWP 202)): #0 g_log_structured_array (log_level=<optimized out>, fields=0x7fe2027f76f0, n_fields=3) at ../glib/gmessages.c:555 #1 0x00007fe2d74c16ec in g_log_default_handler (log_domain=log_domain@entry=0x0, log_level=log_level@entry=6, message=message@entry=0x7fe2de9f07f0 "WebProcess didn't exit as expected after the UI process connection was closed", unused_data=unused_data@entry=0x0) at ../glib/gmessages.c:3284 #2 0x00007fe2d0041242 in trap_handler (log_domain=log_domain@entry=0x0, log_level=log_level@entry=6, message=message@entry=0x7fe2de9f07f0 "WebProcess didn't exit as expected after the UI process connection was closed", user_data=user_data@entry=0x0) at ../lib/ephy-debug.c:104 #3 0x00007fe2d74c1996 in g_logv (log_domain=0x0, log_level=G_LOG_LEVEL_ERROR, format=<optimized out>, args=args@entry=0x7fe2027f7870) at ../glib/gmessages.c:1391 #4 0x00007fe2d74c1c83 in g_log (log_domain=<optimized out>, log_level=<optimized out>, format=<optimized out>) at ../glib/gmessages.c:1460 #5 0x00007fe2dc547a9d in WebKit::crashAfter10Seconds(IPC::Connection*)::$_0::operator()() const (this=<optimized out>) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebKit/WebProcess/WebProcess.cpp:282 At the time of the crash, the main thread appears to be deadlocked deep in GStreamer: Thread 5 (Thread 0x7fe2d383af40 (LWP 2)): #0 futex_wait (private=0, expected=2, futex_word=0x7fe0f8013170) at ../sysdeps/nptl/futex-internal.h:146 #1 __GI___lll_lock_wait (futex=futex@entry=0x7fe0f8013170, private=0) at lowlevellock.c:49 #2 0x00007fe2db6a5477 in lll_mutex_lock_optimized (mutex=0x7fe0f8013170) at pthread_mutex_lock.c:48 #3 ___pthread_mutex_lock (mutex=0x7fe0f8013170) at pthread_mutex_lock.c:128 #4 0x00007fe2d751634d in g_rec_mutex_lock (mutex=mutex@entry=0x7fe0f801d470) at ../glib/gthread-posix.c:397 #5 0x00007fe2d80bee4a in post_activate (new_mode=<optimized out>, pad=<optimized out>) at ../gst/gstpad.c:1050 #6 activate_mode_internal (pad=pad@entry=0x7fe0f801d400 [GstProxyPad|proxypad92], parent=parent@entry=0x7fe0f801d190 [GstGhostPad|audio_0], mode=mode@entry=GST_PAD_MODE_PUSH, active=active@entry=0) at ../gst/gstpad.c:1228 #7 0x00007fe2d80bfc87 in gst_pad_activate_mode (pad=0x7fe0f801d400 [GstProxyPad|proxypad92], mode=GST_PAD_MODE_PUSH, active=0) at ../gst/gstpad.c:1326 #8 0x00007fe2d80aca39 in gst_ghost_pad_activate_push_default (pad=<optimized out>, parent=<optimized out>, active=0) at ../gst/gstghostpad.c:371 #9 0x00007fe2d80bee07 in activate_mode_internal (pad=pad@entry=0x7fe0f801d190 [GstGhostPad|audio_0], parent=parent@entry=0x560e4f7bea30 [GstURIDecodeBin3|uridecodebin3], mode=mode@entry=GST_PAD_MODE_PUSH, active=active@entry=0) at ../gst/gstpad.c:1221 #10 0x00007fe2d80bf93b in gst_pad_set_active (pad=0x7fe0f801d190 [GstGhostPad|audio_0], active=0) at ../gst/gstpad.c:1119 #11 0x00007fe2d8078f9b in activate_pads (vpad=<optimized out>, ret=0x7ffcb91ec2c0, active=0x7ffcb91ec2bc) at ../gst/gstbin.c:2630 #12 0x00007fe2d80b0b15 in gst_iterator_fold (it=0x560e4f769db0, func=0x7fe2d8078f70 <activate_pads>, ret=0x7ffcb91ec2c0, user_data=0x7ffcb91ec2bc) at ../gst/gstiterator.c:617 #13 0x00007fe2d80790b0 in iterator_activate_fold_with_resync (user_data=0x7ffcb91ec2bc, iter=0x560e4f769db0) at ../gst/gstbin.c:2653 #14 gst_bin_src_pads_activate (bin=bin@entry=0x560e4f7bea30 [GstURIDecodeBin3|uridecodebin3], active=<optimized out>, active@entry=0) at ../gst/gstbin.c:2687 #15 0x00007fe2d807a88c in gst_bin_change_state_func (element=0x560e4f7bea30 [GstURIDecodeBin3|uridecodebin3], transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../gst/gstbin.c:2881 #16 0x00007fe24fb98fa3 in gst_uri_decode_bin3_change_state (element=0x560e4f7bea30 [GstURIDecodeBin3|uridecodebin3], transition=<optimized out>) at ../gst/playback/gsturidecodebin3.c:1990 #17 0x00007fe2d80a25c4 in gst_element_change_state (element=element@entry=0x560e4f7bea30 [GstURIDecodeBin3|uridecodebin3], transition=transition@entry=GST_STATE_CHANGE_PAUSED_TO_READY) at ../gst/gstelement.c:3093 #18 0x00007fe2d80a2b79 in gst_element_set_state_func (element=0x560e4f7bea30 [GstURIDecodeBin3|uridecodebin3], state=GST_STATE_READY) at ../gst/gstelement.c:3047 #19 0x00007fe2d807adb8 in gst_bin_element_set_state (next=<optimized out>, current=<optimized out>, start_time=0 [0:00:00.000000000], base_time=0 [0:00:00.000000000], element=0x560e4f7bea30 [GstURIDecodeBin3|uridecodebin3], bin=<optimized out>) at ../gst/gstbin.c:2582 #20 gst_bin_change_state_func (element=0x560e4f7bde10 [GstPlayBin3|MSE-ndp_video_player_1690325110275-5], transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../gst/gstbin.c:2931 #21 0x00007fe24fbbd059 in gst_play_bin3_change_state (element=0x560e4f7bde10 [GstPlayBin3|MSE-ndp_video_player_1690325110275-5], transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../gst/playback/gstplaybin3.c:2701 #22 0x00007fe2d80a25c4 in gst_element_change_state (element=element@entry=0x560e4f7bde10 [GstPlayBin3|MSE-ndp_video_player_1690325110275-5], transition=transition@entry=GST_STATE_CHANGE_PAUSED_TO_READY) at ../gst/gstelement.c:3093 #23 0x00007fe2d80a2b79 in gst_element_set_state_func (element=0x560e4f7bde10 [GstPlayBin3|MSE-ndp_video_player_1690325110275-5], state=GST_STATE_NULL) at ../gst/gstelement.c:3047 #24 0x00007fe2ddf0aefb in WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer() (this=0x7fe209d2de80) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:247 All-threads backtrace is attached. The other relevant threads are thread 26 and thread 36.
Attachments
Backtrace
(94.03 KB, text/plain)
2023-07-25 15:52 PDT
,
Michael Catanzaro
no flags
Details
View All
Add attachment
proposed patch, testcase, etc.
Philippe Normand
Comment 1
2023-07-26 02:39:06 PDT
Seems like our MSE src element doesn't react to flush-start/stop events? Before pushing buffers to the pads we should check if we were asked to flush, like basesrc does...
Alicia Boya García
Comment 2
2023-07-26 07:42:52 PDT
(In reply to Philippe Normand from
comment #1
)
> Seems like our MSE src element doesn't react to flush-start/stop events? > Before pushing buffers to the pads we should check if we were asked to > flush, like basesrc does...
How did you trace this to WebKitMediaSrc and flush-start/stop events? I cannot seem to find the clues in the backtrace. What am I missing?
Philippe Normand
Comment 3
2023-07-26 08:06:16 PDT
Just a hunch. This needs investigation for which I don't have time :)
Alicia Boya García
Comment 4
2023-07-26 08:55:34 PDT
I see. I don't think that is the problem because: Regarding:
> Seems like our MSE src element doesn't react to flush-start/stop events?
I don't see any flush in the backtrace. And regarding:
> Before pushing buffers to the pads we should check if we were asked to flush, like basesrc does...
WebKitMediaSrc checks this already. // Wait to receive an object from the queue (if we didn't get one already) or flush. streamingMembers->queueChangedOrFlushedCondition.wait(streamingMembers.mutex(), [&]() { return streamingMembers->isFlushing || object; }); { // Ensure that notifyWhenNotEmpty()'s callback (if any) is cleared after this point. DataMutexLocker queue { stream->track->queueDataMutex() }; queue->resetNotEmptyHandler(); } if (streamingMembers->isFlushing) { gst_pad_pause_task(pad); return; } What I see in the backtrace, rather than a flush, is a pad deactivation. On pad deactivations, WebKitMediaSrc unlocks the streaming thread, as expected. // Unblock the streaming thread. RefPtr<Stream>& stream = WEBKIT_MEDIA_SRC_PAD(pad)->priv->stream; { DataMutexLocker streamingMembers { stream->streamingMembersDataMutex }; streamingMembers->isFlushing = true; streamingMembers->padLinkedOrFlushedCondition.notifyOne(); streamingMembers->queueChangedOrFlushedCondition.notifyOne(); } // Following gstbasesrc implementation, this code is not flushing downstream. // If there is any possibility of the streaming thread being blocked downstream the caller MUST flush before. // Otherwise a deadlock would occur as the next function tries to join the thread. gst_pad_stop_task(pad); { DataMutexLocker streamingMembers { stream->streamingMembersDataMutex }; streamingMembers->isFlushing = false; } But the traceback doesn't contain any calls to webKitMediaSrcActivateMode(), suggesting the process is getting stuck before it gets there. Indeed, here we see the stuck thread trying to deactivate proxypad92 (linked to the ghostpad audio_0 of uridecodebin3): Thread 5 (Thread 0x7fe2d383af40 (LWP 2)): #0 futex_wait (private=0, expected=2, futex_word=0x7fe0f8013170) at ../sysdeps/nptl/futex-internal.h:146 #1 __GI___lll_lock_wait (futex=futex@entry=0x7fe0f8013170, private=0) at lowlevellock.c:49 #2 0x00007fe2db6a5477 in lll_mutex_lock_optimized (mutex=0x7fe0f8013170) at pthread_mutex_lock.c:48 #3 ___pthread_mutex_lock (mutex=0x7fe0f8013170) at pthread_mutex_lock.c:128 #4 0x00007fe2d751634d in g_rec_mutex_lock (mutex=mutex@entry=0x7fe0f801d470) at ../glib/gthread-posix.c:397 #5 0x00007fe2d80bee4a in post_activate (new_mode=<optimized out>, pad=<optimized out>) at ../gst/gstpad.c:1050 #6 activate_mode_internal (pad=pad@entry=0x7fe0f801d400 [GstProxyPad|proxypad92], parent=parent@entry=0x7fe0f801d190 [GstGhostPad|audio_0], mode=mode@entry=GST_PAD_MODE_PUSH, active=active@entry=0) at ../gst/gstpad.c:1228 #7 0x00007fe2d80bfc87 in gst_pad_activate_mode (pad=0x7fe0f801d400 [GstProxyPad|proxypad92], mode=GST_PAD_MODE_PUSH, active=0) at ../gst/gstpad.c:1326 #8 0x00007fe2d80aca39 in gst_ghost_pad_activate_push_default (pad=<optimized out>, parent=<optimized out>, active=0) at ../gst/gstghostpad.c:371 #9 0x00007fe2d80bee07 in activate_mode_internal (pad=pad@entry=0x7fe0f801d190 [GstGhostPad|audio_0], parent=parent@entry=0x560e4f7bea30 [GstURIDecodeBin3|uridecodebin3], mode=mode@entry=GST_PAD_MODE_PUSH, active=active@entry=0) at ../gst/gstpad.c:1221 #10 0x00007fe2d80bf93b in gst_pad_set_active (pad=0x7fe0f801d190 [GstGhostPad|audio_0], active=0) at ../gst/gstpad.c:1119 #11 0x00007fe2d8078f9b in activate_pads (vpad=<optimized out>, ret=0x7ffcb91ec2c0, active=0x7ffcb91ec2bc) at ../gst/gstbin.c:2630 #12 0x00007fe2d80b0b15 in gst_iterator_fold (it=0x560e4f769db0, func=0x7fe2d8078f70 <activate_pads>, ret=0x7ffcb91ec2c0, user_data=0x7ffcb91ec2bc) at ../gst/gstiterator.c:617 #13 0x00007fe2d80790b0 in iterator_activate_fold_with_resync (user_data=0x7ffcb91ec2bc, iter=0x560e4f769db0) at ../gst/gstbin.c:2653 #14 gst_bin_src_pads_activate (bin=bin@entry=0x560e4f7bea30 [GstURIDecodeBin3|uridecodebin3], active=<optimized out>, active@entry=0) at ../gst/gstbin.c:2687 That recursive mutex that is being waited for in post_activate is the stream lock of proxypad92. Now, who is holding proxypad92's stream lock? Thread 36 (Thread 0x7fe0edffb6c0 (LWP 196)): #0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38 #1 0x00007fe2d7516f6d in g_cond_wait (cond=cond@entry=0x560e4f5ebd18, mutex=mutex@entry=0x560e4f5ebca8) at ../glib/gthread-posix.c:1475 #2 0x00007fe2d80bd3fd in do_probe_callbacks (pad=0x560e4f5ebc90 [GstProxyPad|proxypad82], info=<optimized out>, defaultval=<optimized out>) at ../gst/gstpad.c:3899 #3 0x00007fe2d80cc66a in gst_pad_push_event_unchecked (pad=0x560e4f5ebc90 [GstProxyPad|proxypad82], event=0x7fe0b000e600 [GstEvent], type=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5521 #4 0x00007fe2d80c6f68 in push_sticky (pad=pad@entry=0x560e4f5ebc90 [GstProxyPad|proxypad82], ev=ev@entry=0x7fe0edff98d0, user_data=user_data@entry=0x7fe0edff9940) at ../gst/gstpad.c:4057 #5 0x00007fe2d80bc2b5 in events_foreach (pad=0x560e4f5ebc90 [GstProxyPad|proxypad82], func=0x7fe2d80c6ec0 <push_sticky>, user_data=0x7fe0edff9940) at ../gst/gstpad.c:613 #6 0x00007fe2d80cce11 in check_sticky (event=0x7fe0b000e600 [GstEvent], pad=0x560e4f5ebc90 [GstProxyPad|proxypad82]) at ../gst/gstpad.c:4116 #7 gst_pad_push_event (pad=0x560e4f5ebc90 [GstProxyPad|proxypad82], event=0x7fe0b000e600 [GstEvent]) at ../gst/gstpad.c:5705 #8 0x00007fe2d80c6ea3 in event_forward_func (pad=pad@entry=0x560e4f5ebc90 [GstProxyPad|proxypad82], data=data@entry=0x7fe0edff9a60) at ../gst/gstpad.c:3130 #9 0x00007fe2d80c6c1e in gst_pad_forward (pad=pad@entry=0x560e4f5eb8b0 [GstGhostPad|audio_sink], forward=forward@entry=0x7fe2d80c6de0 <event_forward_func>, user_data=user_data@entry=0x7fe0edff9a60) at ../gst/gstpad.c:3084 #10 0x00007fe2d80c6d09 in gst_pad_event_default (pad=0x560e4f5eb8b0 [GstGhostPad|audio_sink], parent=<optimized out>, event=0x7fe0b000e600 [GstEvent]) at ../gst/gstpad.c:3181 #11 0x00007fe2d80cbabd in gst_pad_send_event_unchecked (pad=pad@entry=0x560e4f5eb8b0 [GstGhostPad|audio_sink], event=event@entry=0x7fe0b000e600 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5939 #12 0x00007fe2d80cc1a7 in gst_pad_push_event_unchecked (pad=0x7fe0f801d190 [GstGhostPad|audio_0], event=0x7fe0b000e600 [GstEvent], type=<optimized out>) at ../gst/gstpad.c:5572 #13 0x00007fe2d80c6f68 in push_sticky (pad=pad@entry=0x7fe0f801d190 [GstGhostPad|audio_0], ev=ev@entry=0x7fe0edff9cc0, user_data=user_data@entry=0x7fe0edff9d30) at ../gst/gstpad.c:4057 #14 0x00007fe2d80bc2b5 in events_foreach (pad=0x7fe0f801d190 [GstGhostPad|audio_0], func=0x7fe2d80c6ec0 <push_sticky>, user_data=0x7fe0edff9d30) at ../gst/gstpad.c:613 #15 0x00007fe2d80cce11 in check_sticky (event=0x7fe0b000e600 [GstEvent], pad=0x7fe0f801d190 [GstGhostPad|audio_0]) at ../gst/gstpad.c:4116 #16 gst_pad_push_event (pad=0x7fe0f801d190 [GstGhostPad|audio_0], event=0x7fe0b000e600 [GstEvent]) at ../gst/gstpad.c:5705 #17 0x00007fe2d80c6ea3 in event_forward_func (pad=pad@entry=0x7fe0f801d190 [GstGhostPad|audio_0], data=data@entry=0x7fe0edff9e50) at ../gst/gstpad.c:3130 #18 0x00007fe2d80c6c1e in gst_pad_forward (pad=pad@entry=0x7fe0f801d400 [GstProxyPad|proxypad92], forward=forward@entry=0x7fe2d80c6de0 <event_forward_func>, user_data=user_data@entry=0x7fe0edff9e50) at ../gst/gstpad.c:3084 #19 0x00007fe2d80c6d09 in gst_pad_event_default (pad=0x7fe0f801d400 [GstProxyPad|proxypad92], parent=<optimized out>, event=0x7fe0b000e600 [GstEvent]) at ../gst/gstpad.c:3181 #20 0x00007fe2d80cbabd in gst_pad_send_event_unchecked (pad=pad@entry=0x7fe0f801d400 [GstProxyPad|proxypad92], event=event@entry=0x7fe0b000e600 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5939 #21 0x00007fe2d80cc1a7 in gst_pad_push_event_unchecked (pad=0x7fe0f8012660 [GstGhostPad|audio_0], event=0x7fe0b000e600 [GstEvent], type=<optimized out>) at ../gst/gstpad.c:5572 #22 0x00007fe2d80c6f68 in push_sticky (pad=pad@entry=0x7fe0f8012660 [GstGhostPad|audio_0], ev=ev@entry=0x7fe0edffa0b0, user_data=user_data@entry=0x7fe0edffa120) at ../gst/gstpad.c:4057 #23 0x00007fe2d80bc2b5 in events_foreach (pad=0x7fe0f8012660 [GstGhostPad|audio_0], func=0x7fe2d80c6ec0 <push_sticky>, user_data=0x7fe0edffa120) at ../gst/gstpad.c:613 #24 0x00007fe2d80cce11 in check_sticky (event=0x7fe0b000e600 [GstEvent], pad=0x7fe0f8012660 [GstGhostPad|audio_0]) at ../gst/gstpad.c:4116 #25 gst_pad_push_event (pad=0x7fe0f8012660 [GstGhostPad|audio_0], event=0x7fe0b000e600 [GstEvent]) at ../gst/gstpad.c:5705 #26 0x00007fe2d80c6ea3 in event_forward_func (pad=pad@entry=0x7fe0f8012660 [GstGhostPad|audio_0], data=data@entry=0x7fe0edffa240) at ../gst/gstpad.c:3130 #27 0x00007fe2d80c6c1e in gst_pad_forward (pad=pad@entry=0x7fe0f8009a90 [GstProxyPad|proxypad91], forward=forward@entry=0x7fe2d80c6de0 <event_forward_func>, user_data=user_data@entry=0x7fe0edffa240) at ../gst/gstpad.c:3084 #28 0x00007fe2d80c6d09 in gst_pad_event_default (pad=0x7fe0f8009a90 [GstProxyPad|proxypad91], parent=<optimized out>, event=0x7fe0b000e600 [GstEvent]) at ../gst/gstpad.c:3181 #29 0x00007fe2d80cbabd in gst_pad_send_event_unchecked (pad=pad@entry=0x7fe0f8009a90 [GstProxyPad|proxypad91], event=event@entry=0x7fe0b000e600 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5939 #30 0x00007fe2d80cc1a7 in gst_pad_push_event_unchecked (pad=0x7fe0f8005180 [GstPad|src], event=0x7fe0b000e600 [GstEvent], type=<optimized out>) at ../gst/gstpad.c:5572 #31 0x00007fe2d80c6f68 in push_sticky (pad=pad@entry=0x7fe0f8005180 [GstPad|src], ev=ev@entry=0x7fe0edffa4a0, user_data=user_data@entry=0x7fe0edffa510) at ../gst/gstpad.c:4057 #32 0x00007fe2d80bc2b5 in events_foreach (pad=0x7fe0f8005180 [GstPad|src], func=0x7fe2d80c6ec0 <push_sticky>, user_data=0x7fe0edffa510) at ../gst/gstpad.c:613 #33 0x00007fe2d80cce11 in check_sticky (event=0x7fe0b000e600 [GstEvent], pad=0x7fe0f8005180 [GstPad|src]) at ../gst/gstpad.c:4116 #34 gst_pad_push_event (pad=0x7fe0f8005180 [GstPad|src], event=0x7fe0b000e600 [GstEvent]) at ../gst/gstpad.c:5705 #35 0x00007fe2d80cbabd in gst_pad_send_event_unchecked (pad=pad@entry=0x7fe0f80021a0 [GstPad|sink], event=event@entry=0x7fe0b000e600 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5939 #36 0x00007fe2d80cc1a7 in gst_pad_push_event_unchecked (pad=0x7fe0b00116e0 [GstMultiQueuePad|src_0], event=0x7fe0b000e600 [GstEvent], type=<optimized out>) at ../gst/gstpad.c:5572 #37 0x00007fe2d80c6f68 in push_sticky (pad=0x7fe0b00116e0 [GstMultiQueuePad|src_0], ev=0x7fe0edffa780, user_data=0x7fe0edffa800) at ../gst/gstpad.c:4057 #38 0x00007fe2d80bc2b5 in events_foreach (pad=0x7fe0b00116e0 [GstMultiQueuePad|src_0], func=0x7fe2d80cac80 <sticky_changed>, user_data=0x7fe0edffa800) at ../gst/gstpad.c:613 #39 0x00007fe2d80cc5f9 in gst_pad_push_event_unchecked (pad=0x7fe0b00116e0 [GstMultiQueuePad|src_0], event=0x7fe0b000ff40 [GstEvent], type=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5548 #40 0x00007fe2d80c6f68 in push_sticky (pad=pad@entry=0x7fe0b00116e0 [GstMultiQueuePad|src_0], ev=ev@entry=0x7fe0edffa920, user_data=user_data@entry=0x7fe0edffa990) at ../gst/gstpad.c:4057 #41 0x00007fe2d80bc2b5 in events_foreach (pad=0x7fe0b00116e0 [GstMultiQueuePad|src_0], func=0x7fe2d80c6ec0 <push_sticky>, user_data=0x7fe0edffa990) at ../gst/gstpad.c:613 #42 0x00007fe2d80cce11 in check_sticky (event=0x7fe0b000ff40 [GstEvent], pad=0x7fe0b00116e0 [GstMultiQueuePad|src_0]) at ../gst/gstpad.c:4116 #43 gst_pad_push_event (pad=pad@entry=0x7fe0b00116e0 [GstMultiQueuePad|src_0], event=event@entry=0x7fe0b000ff40 [GstEvent]) at ../gst/gstpad.c:5705 #44 0x00007fe24ff54aa3 in gst_single_queue_push_one (allow_drop=<synthetic pointer>, object=0x7fe0b000ff40 [GstEvent], sq=0x7fe0b0010b10, mq=<optimized out>) at ../plugins/elements/gstmultiqueue.c:2079 #45 gst_multi_queue_loop (pad=<optimized out>) at ../plugins/elements/gstmultiqueue.c:2358 #46 0x00007fe2d80fd134 in gst_task_func (task=0x7fe0b0011ae0 [GstTask|multiqueue5:src_0]) at ../gst/gsttask.c:384 #47 0x00007fe2d74e8582 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/gthreadpool.c:350 #48 0x00007fe2d74e7b59 in g_thread_proxy (data=0x7fe2c40019d0) at ../glib/gthread.c:831 #49 0x00007fe2db6a1e09 in start_thread (arg=<optimized out>) at pthread_create.c:444 #50 0x00007fe2db728d74 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:100 In that trace we can see that a pad downstream of proxypad92, proxypad82 is waiting for a blocking probe to be removed. proxypad82 is connected to audio_sink, presumably from playsink -- wish the gdb script printed the elements parenting the pads. playsink does in fact use blocking probes, which are added and removed with its audio_set_blocked/video_set_blocked functions. I know for a fact that playsink has race conditions in the handling of flushes, because I'm working on fixing them. The same kind of issues also exist in decodebin3 and presumably more of the playbin3 ecosystem. I wouldn't be surprised at all if the pad deactivation is also racy. Notably, notice: Thread 5 (Thread 0x7fe2d383af40 (LWP 2)): [...] #19 0x00007fe2d807adb8 in gst_bin_element_set_state (next=<optimized out>, current=<optimized out>, start_time=0 [0:00:00.000000000], base_time=0 [0:00:00.000000000], element=0x560e4f7bea30 [GstURIDecodeBin3|uridecodebin3], bin=<optimized out>) at ../gst/gstbin.c:2582 #20 gst_bin_change_state_func (element=0x560e4f7bde10 [GstPlayBin3|MSE-ndp_video_player_1690325110275-5], transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../gst/gstbin.c:2931 gst_bin_change_state_func is meant to iterate changing state from downstream to upstream. There we see it changing the state to uridecodebin3, but has it actually changed the state for playsink first? Knowing that blocking probes get removed on pad deactivation (see pre_activate() in gstpad.c, case GST_PAD_MODE_NONE), I suspect it has not.
Michael Catanzaro
Comment 5
2024-04-17 08:46:19 PDT
Comment hidden (obsolete)
Found a reproducer for this one: visit
https://imgur.com/a/soPf1H6
and the web process will deadlock after about 5 seconds.
Philippe Normand
Comment 6
2024-04-17 13:07:03 PDT
Comment hidden (obsolete)
(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@entry=0x7efd18000b90, nfds=nfds@entry=3, timeout=<optimized out>, timeout@entry=0x0, sigmask=sigmask@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@entry=0x5569d5585770, nfds=nfds@entry=2, timeout=<optimized out>, timeout@entry=0x0, sigmask=sigmask@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@entry=0x7efcc8001000, nfds=nfds@entry=1, timeout=<optimized out>, timeout@entry=0x0, sigmask=sigmask@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@entry=0x7efc94001000, nfds=nfds@entry=1, timeout=<optimized out>, timeout@entry=0x7efcbbdffac0, sigmask=sigmask@entry=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:42 12 Thread 0x7efd1f4006c0 (LWP 10) 0x00007efd3b31c560 in __GI_ppoll (fds=fds@entry=0x7efcbc001000, nfds=nfds@entry=1, timeout=<optimized out>, timeout@entry=0x0, sigmask=sigmask@entry=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:42 13 Thread 0x7efd1fe006c0 (LWP 9) 0x00007efd3b31c560 in __GI_ppoll (fds=fds@entry=0x7efcc0001000, nfds=nfds@entry=1, timeout=<optimized out>, timeout@entry=0x0, sigmask=sigmask@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@entry=0x7efc6c001000, nfds=nfds@entry=1, timeout=<optimized out>, timeout@entry=0x0, sigmask=sigmask@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@entry=0x7efcb4001000, nfds=nfds@entry=1, timeout=<optimized out>, timeout@entry=0x0, sigmask=sigmask@entry=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:42 23 Thread 0x7efc8de006c0 (LWP 39) 0x00007efd3b31c560 in __GI_ppoll (fds=fds@entry=0x7efc58001000, nfds=nfds@entry=1, timeout=<optimized out>, timeout@entry=0x0, sigmask=sigmask@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@entry=0x7efc74001000, nfds=nfds@entry=1, timeout=<optimized out>, timeout@entry=0x0, sigmask=sigmask@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@entry=0x7efd29c681e0, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87 #2 0x00007efd3b29e78f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x7efd29c681e0, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@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@entry=0x5569d5b17510 [WebKitWebSrc|source], offset=146694, length=<optimized out>, buf=buf@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)
Philippe Normand
Comment 7
2024-04-17 13:10:15 PDT
Comment hidden (obsolete)
(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) bt #0 futex_wait (private=0, expected=2, futex_word=0x5569d5b16c20) at ../sysdeps/nptl/futex-internal.h:146 #1 __GI___lll_lock_wait (futex=futex@entry=0x5569d5b16c20, private=0) at lowlevellock.c:49 #2 0x00007efd3b2a5527 in lll_mutex_lock_optimized (mutex=0x5569d5b16c20) at pthread_mutex_lock.c:48 #3 ___pthread_mutex_lock (mutex=0x5569d5b16c20) at pthread_mutex_lock.c:128 #4 0x00007efd36f798fd in g_rec_mutex_lock (mutex=mutex@entry=0x5569d5b17880) at ../glib/gthread-posix.c:397 #5 0x00007efd37a7999f in gst_pad_pause_task (pad=0x5569d5b17810 [GstPad|src]) at ../gst/gstpad.c:6422 #6 0x00007efd37b73aa1 in gst_base_src_perform_seek (src=0x5569d5b17510 [WebKitWebSrc|source], event=0x5569d5b09c90 [GstEvent], unlock=1) at ../libs/gst/base/gstbasesrc.c:1735 #7 0x00007efd37b6e08e in gst_base_src_event (pad=<optimized out>, parent=0x5569d5b17510 [WebKitWebSrc|source], event=0x5569d5b09c90 [GstEvent]) at ../libs/gst/base/gstbasesrc.c:2167 #8 0x00007efd37a756bd in gst_pad_send_event_unchecked (pad=pad@entry=0x5569d5b17810 [GstPad|src], event=event@entry=0x5569d5b09c90 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5965 #9 0x00007efd37a75da3 in gst_pad_push_event_unchecked (pad=pad@entry=0x5569d5b1a4e0 [GstPad|sink], event=event@entry=0x5569d5b09c90 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5598 #10 0x00007efd37a79216 in gst_pad_push_event (pad=0x5569d5b1a4e0 [GstPad|sink], event=0x5569d5b09c90 [GstEvent]) at ../gst/gstpad.c:5737 #11 0x00007efd37a756bd in gst_pad_send_event_unchecked (pad=pad@entry=0x5569d5adf3e0 [GstPad|src], event=event@entry=0x5569d5b09c90 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5965 #12 0x00007efd37a75da3 in gst_pad_push_event_unchecked (pad=pad@entry=0x7efc9c0a6d90 [GstPad|sink], event=event@entry=0x5569d5b09c90 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5598 #13 0x00007efd37a79216 in gst_pad_push_event (pad=0x7efc9c0a6d90 [GstPad|sink], event=0x5569d5b09c90 [GstEvent]) at ../gst/gstpad.c:5737 #14 0x00007efd37a756bd in gst_pad_send_event_unchecked (pad=pad@entry=0x7efc9c0a7170 [GstPad|src], event=event@entry=0x5569d5b09c90 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5965 #15 0x00007efd37a75da3 in gst_pad_push_event_unchecked (pad=pad@entry=0x7efc9c02f560 [GstGhostPad|sink], event=event@entry=0x5569d5b09c90 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5598 #16 0x00007efd37a79216 in gst_pad_push_event (pad=0x7efc9c02f560 [GstGhostPad|sink], event=0x5569d5b09c90 [GstEvent]) at ../gst/gstpad.c:5737 #17 0x00007efd37a708e3 in event_forward_func (pad=pad@entry=0x7efc9c02f560 [GstGhostPad|sink], data=data@entry=0x7ffe07524030) at ../gst/gstpad.c:3156 #18 0x00007efd37a7065e in gst_pad_forward (pad=pad@entry=0x7efc9c02f850 [GstProxyPad|proxypad5], forward=forward@entry=0x7efd37a70820 <event_forward_func>, user_data=user_data@entry=0x7ffe07524030) at ../gst/gstpad.c:3110 #19 0x00007efd37a70749 in gst_pad_event_default (pad=0x7efc9c02f850 [GstProxyPad|proxypad5], parent=<optimized out>, event=0x5569d5b09c90 [GstEvent]) at ../gst/gstpad.c:3207 #20 0x00007efd37a756bd in gst_pad_send_event_unchecked (pad=pad@entry=0x7efc9c02f850 [GstProxyPad|proxypad5], event=event@entry=0x5569d5b09c90 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5965 #21 0x00007efd37a75da3 in gst_pad_push_event_unchecked (pad=pad@entry=0x7efc9c02eec0 [GstPad|sink], event=event@entry=0x5569d5b09c90 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5598 #22 0x00007efd37a79216 in gst_pad_push_event (pad=0x7efc9c02eec0 [GstPad|sink], event=0x5569d5b09c90 [GstEvent]) at ../gst/gstpad.c:5737 #23 0x00007efd37a756bd in gst_pad_send_event_unchecked (pad=pad@entry=0x7efc9c02f1b0 [GstPad|src], event=event@entry=0x5569d5b09c90 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5965 #24 0x00007efd37a75da3 in gst_pad_push_event_unchecked (pad=pad@entry=0x7efc3c21e660 [GstPad|sink], event=event@entry=0x5569d5b09c90 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5598 #25 0x00007efd37a79216 in gst_pad_push_event (pad=0x7efc3c21e660 [GstPad|sink], event=event@entry=0x5569d5b09c90 [GstEvent]) at ../gst/gstpad.c:5737 #26 0x00007efd1f52975d in gst_qtdemux_do_push_seek (event=0x5569d5b09c90 [GstEvent], pad=<optimized out>, qtdemux=0x7efc3c21e080 [GstQTDemux|qtdemux0]) at ../gst/isomp4/qtdemux.c:1362 #27 gst_qtdemux_handle_src_event (pad=<optimized out>, parent=0x7efc3c21e080 [GstQTDemux|qtdemux0], event=0x5569d5b09c20 [GstEvent]) at ../gst/isomp4/qtdemux.c:1694 #28 0x00007efd37a756bd in gst_pad_send_event_unchecked (pad=pad@entry=0x7efc3c22cf70 [GstPad|video_0], event=event@entry=0x5569d5b09c20 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5965 #29 0x00007efd37a75da3 in gst_pad_push_event_unchecked (pad=pad@entry=0x7efc3c232250 [GstMultiQueuePad|sink_0], event=event@entry=0x5569d5b09c20 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5598 #30 0x00007efd37a79216 in gst_pad_push_event (pad=pad@entry=0x7efc3c232250 [GstMultiQueuePad|sink_0], event=event@entry=0x5569d5b09c20 [GstEvent]) at ../gst/gstpad.c:5737 #31 0x00007efd2b51210b in gst_multi_queue_src_event (pad=<optimized out>, parent=<optimized out>, event=0x5569d5b09c20 [GstEvent]) at ../plugins/elements/gstmultiqueue.c:3013 #32 0x00007efd37a756bd in gst_pad_send_event_unchecked (pad=pad@entry=0x7efc3c231940 [GstMultiQueuePad|src_0], event=event@entry=0x5569d5b09c20 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5965 #33 0x00007efd37a75da3 in gst_pad_push_event_unchecked (pad=pad@entry=0x7efc3c235b40 [GstPad|sink], event=event@entry=0x5569d5b09c20 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5598 #34 0x00007efd37a79216 in gst_pad_push_event (pad=0x7efc3c235b40 [GstPad|sink], event=0x5569d5b09c20 [GstEvent]) at ../gst/gstpad.c:5737 #35 0x00007efd37b53604 in gst_base_parse_handle_seek (event=0x5569d5b09c20 [GstEvent], parse=0x7efc3c234cd0 [GstH264Parse|h264parse0]) at ../libs/gst/base/gstbaseparse.c:4615 #36 gst_base_parse_src_event_default (parse=0x7efc3c234cd0 [GstH264Parse|h264parse0], event=0x5569d5b09c20 [GstEvent]) at ../libs/gst/base/gstbaseparse.c:1740 #37 0x00007efd37a756bd in gst_pad_send_event_unchecked (pad=pad@entry=0x7efc3c235ec0 [GstPad|src], event=event@entry=0x5569d5b09c20 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5965 #38 0x00007efd37a75da3 in gst_pad_push_event_unchecked (pad=pad@entry=0x7efc3c23a1a0 [GstPad|sink], event=event@entry=0x5569d5b09c20 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5598 #39 0x00007efd37a79216 in gst_pad_push_event (pad=0x7efc3c23a1a0 [GstPad|sink], event=0x5569d5b09c20 [GstEvent]) at ../gst/gstpad.c:5737 #40 0x00007efd37a756bd in gst_pad_send_event_unchecked (pad=pad@entry=0x7efc3c23a580 [GstPad|src], event=event@entry=0x5569d5b09c20 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5965 #41 0x00007efd37a75da3 in gst_pad_push_event_unchecked (pad=pad@entry=0x7efc3c2cb7a0 [GstPad|sink], event=event@entry=0x5569d5b09c20 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5598 #42 0x00007efd37a79216 in gst_pad_push_event (pad=0x7efc3c2cb7a0 [GstPad|sink], event=event@entry=0x5569d5b09c20 [GstEvent]) at ../gst/gstpad.c:5737 #43 0x00007efd3788b259 in gst_video_decoder_src_event_default (decoder=0x7efc3c2a5870 [GstVaH264Dec|vah264dec0], event=0x5569d5b09c20 [GstEvent]) at ../gst-libs/gst/video/gstvideodecoder.c:1804 #44 0x00007efd37a756bd in gst_pad_send_event_unchecked (pad=pad@entry=0x7efc3c2f0700 [GstPad|src], event=event@entry=0x5569d5b09c20 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5965 #45 0x00007efd37a75da3 in gst_pad_push_event_unchecked (pad=pad@entry=0x7efc3c22ed90 [GstProxyPad|proxypad7], event=event@entry=0x5569d5b09c20 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5598 #46 0x00007efd37a79216 in gst_pad_push_event (pad=0x7efc3c22ed90 [GstProxyPad|proxypad7], event=0x5569d5b09c20 [GstEvent]) at ../gst/gstpad.c:5737 #47 0x00007efd37a708e3 in event_forward_func (pad=pad@entry=0x7efc3c22ed90 [GstProxyPad|proxypad7], data=data@entry=0x7ffe07525340) at ../gst/gstpad.c:3156 #48 0x00007efd37a7065e in gst_pad_forward (pad=pad@entry=0x7efc3c22ead0 [GstDecodePad|src_0], forward=forward@entry=0x7efd37a70820 <event_forward_func>, user_data=user_data@entry=0x7ffe07525340) at ../gst/gstpad.c:3110 #49 0x00007efd37a70749 in gst_pad_event_default (pad=0x7efc3c22ead0 [GstDecodePad|src_0], parent=<optimized out>, event=0x5569d5b09c20 [GstEvent]) at ../gst/gstpad.c:3207 #50 0x00007efd37a756bd in gst_pad_send_event_unchecked (pad=pad@entry=0x7efc3c22ead0 [GstDecodePad|src_0], event=event@entry=0x5569d5b09c20 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5965 #51 0x00007efd37a75da3 in gst_pad_push_event_unchecked (pad=pad@entry=0x7efc38121b00 [GstProxyPad|proxypad8], event=event@entry=0x5569d5b09c20 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5598 #52 0x00007efd37a79216 in gst_pad_push_event (pad=0x7efc38121b00 [GstProxyPad|proxypad8], event=0x5569d5b09c20 [GstEvent]) at ../gst/gstpad.c:5737 #53 0x00007efd37a708e3 in event_forward_func (pad=pad@entry=0x7efc38121b00 [GstProxyPad|proxypad8], data=data@entry=0x7ffe07525650) at ../gst/gstpad.c:3156 #54 0x00007efd37a7065e in gst_pad_forward (pad=pad@entry=0x7efc38121890 [GstGhostPad|src_0], forward=forward@entry=0x7efd37a70820 <event_forward_func>, user_data=user_data@entry=0x7ffe07525650) at ../gst/gstpad.c:3110 #55 0x00007efd37a70749 in gst_pad_event_default (pad=0x7efc38121890 [GstGhostPad|src_0], parent=<optimized out>, event=0x5569d5b09c20 [GstEvent]) at ../gst/gstpad.c:3207 #56 0x00007efd37a756bd in gst_pad_send_event_unchecked (pad=pad@entry=0x7efc38121890 [GstGhostPad|src_0], event=event@entry=0x5569d5b09c20 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5965 #57 0x00007efd37a75da3 in gst_pad_push_event_unchecked (pad=pad@entry=0x7efc38125020 [GstSelectorPad|sink_0], event=event@entry=0x5569d5b09c20 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5598 #58 0x00007efd37a79216 in gst_pad_push_event (pad=pad@entry=0x7efc38125020 [GstSelectorPad|sink_0], event=event@entry=0x5569d5b09c20 [GstEvent]) at ../gst/gstpad.c:5737 #59 0x00007efd2b509530 in gst_input_selector_event (pad=0x7efc381248f0 [GstPad|src], parent=0x7efc38124730 [GstInputSelector|inputselector0], event=0x5569d5b09c20 [GstEvent]) at ../plugins/elements/gstinputselector.c:1677 #60 0x00007efd37a756bd in gst_pad_send_event_unchecked (pad=pad@entry=0x7efc381248f0 [GstPad|src], event=event@entry=0x5569d5b09c20 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5965 #61 0x00007efd37a75da3 in gst_pad_push_event_unchecked (pad=pad@entry=0x7efc38125950 [GstGhostPad|video_sink], event=event@entry=0x5569d5b09c20 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5598 #62 0x00007efd37a79216 in gst_pad_push_event (pad=0x7efc38125950 [GstGhostPad|video_sink], event=0x5569d5b09c20 [GstEvent]) at ../gst/gstpad.c:5737 #63 0x00007efd37a708e3 in event_forward_func (pad=pad@entry=0x7efc38125950 [GstGhostPad|video_sink], data=data@entry=0x7ffe07525bd0) at ../gst/gstpad.c:3156 #64 0x00007efd37a7065e in gst_pad_forward (pad=pad@entry=0x7efc38125bc0 [GstProxyPad|proxypad9], forward=forward@entry=0x7efd37a70820 <event_forward_func>, user_data=user_data@entry=0x7ffe07525bd0) at ../gst/gstpad.c:3110 #65 0x00007efd37a70749 in gst_pad_event_default (pad=0x7efc38125bc0 [GstProxyPad|proxypad9], parent=<optimized out>, event=0x5569d5b09c20 [GstEvent]) at ../gst/gstpad.c:3207 #66 0x00007efd37a756bd in gst_pad_send_event_unchecked (pad=pad@entry=0x7efc38125bc0 [GstProxyPad|proxypad9], event=event@entry=0x5569d5b09c20 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5965 #67 0x00007efd37a75da3 in gst_pad_push_event_unchecked (pad=pad@entry=0x7efc3815d340 [GstStreamSyncPad|sink_0], event=event@entry=0x5569d5b09c20 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5598 #68 0x00007efd37a79216 in gst_pad_push_event (pad=0x7efc3815d340 [GstStreamSyncPad|sink_0], event=0x5569d5b09c20 [GstEvent]) at ../gst/gstpad.c:5737 #69 0x00007efd37a708e3 in event_forward_func (pad=pad@entry=0x7efc3815d340 [GstStreamSyncPad|sink_0], data=data@entry=0x7ffe07525ee0) at ../gst/gstpad.c:3156 #70 0x00007efd37a7065e in gst_pad_forward (pad=pad@entry=0x7efc3815d6c0 [GstStreamSyncPad|src_0], forward=forward@entry=0x7efd37a70820 <event_forward_func>, user_data=user_data@entry=0x7ffe07525ee0) at ../gst/gstpad.c:3110 #71 0x00007efd37a70749 in gst_pad_event_default (pad=0x7efc3815d6c0 [GstStreamSyncPad|src_0], parent=<optimized out>, event=0x5569d5b09c20 [GstEvent]) at ../gst/gstpad.c:3207 #72 0x00007efd37a756bd in gst_pad_send_event_unchecked (pad=pad@entry=0x7efc3815d6c0 [GstStreamSyncPad|src_0], event=event@entry=0x5569d5af9600 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5965 #73 0x00007efd37a75da3 in gst_pad_push_event_unchecked (pad=pad@entry=0x7efc3817bb00 [GstGhostPad|sink], event=event@entry=0x5569d5af9600 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5598 #74 0x00007efd37a79216 in gst_pad_push_event (pad=0x7efc3817bb00 [GstGhostPad|sink], event=0x5569d5af9600 [GstEvent]) at ../gst/gstpad.c:5737 #75 0x00007efd37a708e3 in event_forward_func (pad=pad@entry=0x7efc3817bb00 [GstGhostPad|sink], data=data@entry=0x7ffe075261f0) at ../gst/gstpad.c:3156 #76 0x00007efd37a7065e in gst_pad_forward (pad=pad@entry=0x7efc3817bd70 [GstProxyPad|proxypad13], forward=forward@entry=0x7efd37a70820 <event_forward_func>, user_data=user_data@entry=0x7ffe075261f0) at ../gst/gstpad.c:3110 #77 0x00007efd37a70749 in gst_pad_event_default (pad=0x7efc3817bd70 [GstProxyPad|proxypad13], parent=<optimized out>, event=0x5569d5af9600 [GstEvent]) at ../gst/gstpad.c:3207 #78 0x00007efd37a756bd in gst_pad_send_event_unchecked (pad=pad@entry=0x7efc3817bd70 [GstProxyPad|proxypad13], event=event@entry=0x5569d5af9600 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5965 #79 0x00007efd37a75da3 in gst_pad_push_event_unchecked (pad=pad@entry=0x7efc38161a80 [GstPad|sink], event=event@entry=0x5569d5af9600 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5598 #80 0x00007efd37a79216 in gst_pad_push_event (pad=0x7efc38161a80 [GstPad|sink], event=0x5569d5af9600 [GstEvent]) at ../gst/gstpad.c:5737 #81 0x00007efd0fff58ce in gst_video_convert_scale_src_event (trans=0x7efc381674a0 [GstVideoConvert|vdconv], event=0x5569d5af9600 [GstEvent]) at ../gst/videoconvertscale/gstvideoconvertscale.c:1798 #82 0x00007efd37a756bd in gst_pad_send_event_unchecked (pad=pad@entry=0x7efc381633b0 [GstPad|src], event=event@entry=0x5569d5af9600 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5965 #83 0x00007efd37a75da3 in gst_pad_push_event_unchecked (pad=pad@entry=0x7efc3817a760 [GstPad|sink], event=event@entry=0x5569d5af9600 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5598 #84 0x00007efd37a79216 in gst_pad_push_event (pad=0x7efc3817a760 [GstPad|sink], event=0x5569d5af9600 [GstEvent]) at ../gst/gstpad.c:5737 #85 0x00007efd37a708e3 in event_forward_func (pad=pad@entry=0x7efc3817a760 [GstPad|sink], data=data@entry=0x7ffe07526740) at ../gst/gstpad.c:3156 #86 0x00007efd37a7065e in gst_pad_forward (pad=pad@entry=0x7efc3817ac60 [GstPad|src], forward=forward@entry=0x7efd37a70820 <event_forward_func>, user_data=user_data@entry=0x7ffe07526740) at ../gst/gstpad.c:3110 #87 0x00007efd37a70749 in gst_pad_event_default (pad=0x7efc3817ac60 [GstPad|src], parent=<optimized out>, event=0x5569d5af9600 [GstEvent]) at ../gst/gstpad.c:3207 #88 0x00007efd37a756bd in gst_pad_send_event_unchecked (pad=pad@entry=0x7efc3817ac60 [GstPad|src], event=event@entry=0x5569d5af9600 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5965 #89 0x00007efd37a75da3 in gst_pad_push_event_unchecked (pad=pad@entry=0x7efc3817c560 [GstProxyPad|proxypad14], event=event@entry=0x5569d5af9600 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5598 #90 0x00007efd37a79216 in gst_pad_push_event (pad=0x7efc3817c560 [GstProxyPad|proxypad14], event=0x5569d5af9600 [GstEvent]) at ../gst/gstpad.c:5737 #91 0x00007efd37a708e3 in event_forward_func (pad=pad@entry=0x7efc3817c560 [GstProxyPad|proxypad14], data=data@entry=0x7ffe07526a50) at ../gst/gstpad.c:3156 #92 0x00007efd37a7065e in gst_pad_forward (pad=pad@entry=0x7efc3817c160 [GstGhostPad|src], forward=forward@entry=0x7efd37a70820 <event_forward_func>, user_data=user_data@entry=0x7ffe07526a50) at ../gst/gstpad.c:3110 #93 0x00007efd37a70749 in gst_pad_event_default (pad=0x7efc3817c160 [GstGhostPad|src], parent=<optimized out>, event=0x5569d5af9600 [GstEvent]) at ../gst/gstpad.c:3207 #94 0x00007efd37a756bd in gst_pad_send_event_unchecked (pad=pad@entry=0x7efc3817c160 [GstGhostPad|src], event=event@entry=0x5569d5af9600 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5965 #95 0x00007efd37a75da3 in gst_pad_push_event_unchecked (pad=pad@entry=0x7efc38163000 [GstGhostPad|sink], event=event@entry=0x5569d5af9600 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5598 #96 0x00007efd37a79216 in gst_pad_push_event (pad=0x7efc38163000 [GstGhostPad|sink], event=0x5569d5af9600 [GstEvent]) at ../gst/gstpad.c:5737 #97 0x00007efd37a708e3 in event_forward_func (pad=pad@entry=0x7efc38163000 [GstGhostPad|sink], data=data@entry=0x7ffe07526d60) at ../gst/gstpad.c:3156 #98 0x00007efd37a7065e in gst_pad_forward (pad=pad@entry=0x7efc3815fb20 [GstProxyPad|proxypad12], forward=forward@entry=0x7efd37a70820 <event_forward_func>, user_data=user_data@entry=0x7ffe07526d60) at ../gst/gstpad.c:3110 #99 0x00007efd37a70749 in gst_pad_event_default (pad=0x7efc3815fb20 [GstProxyPad|proxypad12], parent=<optimized out>, event=0x5569d5af9600 [GstEvent]) at ../gst/gstpad.c:3207 #100 0x00007efd37a756bd in gst_pad_send_event_unchecked (pad=pad@entry=0x7efc3815fb20 [GstProxyPad|proxypad12], event=event@entry=0x5569d5af9600 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5965 #101 0x00007efd37a75da3 in gst_pad_push_event_unchecked (pad=pad@entry=0x7efc38127220 [GstPad|sink], event=event@entry=0x5569d5af9600 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5598 #102 0x00007efd37a79216 in gst_pad_push_event (pad=0x7efc38127220 [GstPad|sink], event=0x5569d5af9600 [GstEvent]) at ../gst/gstpad.c:5737 #103 0x00007efd37a708e3 in event_forward_func (pad=pad@entry=0x7efc38127220 [GstPad|sink], data=data@entry=0x7ffe07527070) at ../gst/gstpad.c:3156 #104 0x00007efd37a7065e in gst_pad_forward (pad=pad@entry=0x7efc381276e0 [GstPad|src], forward=forward@entry=0x7efd37a70820 <event_forward_func>, user_data=user_data@entry=0x7ffe07527070) at ../gst/gstpad.c:3110 #105 0x00007efd37a70749 in gst_pad_event_default (pad=0x7efc381276e0 [GstPad|src], parent=<optimized out>, event=0x5569d5af9600 [GstEvent]) at ../gst/gstpad.c:3207 #106 0x00007efd37a756bd in gst_pad_send_event_unchecked (pad=pad@entry=0x7efc381276e0 [GstPad|src], event=event@entry=0x5569d5af9600 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5965 #107 0x00007efd37a75da3 in gst_pad_push_event_unchecked (pad=pad@entry=0x7efc3812aca0 [GstGhostPad|sink], event=event@entry=0x5569d5af9600 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5598 #108 0x00007efd37a79216 in gst_pad_push_event (pad=0x7efc3812aca0 [GstGhostPad|sink], event=0x5569d5af9600 [GstEvent]) at ../gst/gstpad.c:5737 #109 0x00007efd37a708e3 in event_forward_func (pad=pad@entry=0x7efc3812aca0 [GstGhostPad|sink], data=data@entry=0x7ffe07527380) at ../gst/gstpad.c:3156 #110 0x00007efd37a7065e in gst_pad_forward (pad=pad@entry=0x7efc3812b0a0 [GstProxyPad|proxypad10], forward=forward@entry=0x7efd37a70820 <event_forward_func>, user_data=user_data@entry=0x7ffe07527380) at ../gst/gstpad.c:3110 #111 0x00007efd37a70749 in gst_pad_event_default (pad=0x7efc3812b0a0 [GstProxyPad|proxypad10], parent=<optimized out>, event=0x5569d5af9600 [GstEvent]) at ../gst/gstpad.c:3207 #112 0x00007efd37a756bd in gst_pad_send_event_unchecked (pad=pad@entry=0x7efc3812b0a0 [GstProxyPad|proxypad10], event=event@entry=0x5569d5af9600 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5965 #113 0x00007efd37a75da3 in gst_pad_push_event_unchecked (pad=pad@entry=0x7efc3815c110 [GstPad|sink], event=event@entry=0x5569d5af9600 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5598 #114 0x00007efd37a79216 in gst_pad_push_event (pad=0x7efc3815c110 [GstPad|sink], event=0x5569d5af9600 [GstEvent]) at ../gst/gstpad.c:5737 #115 0x00007efd0fff58ce in gst_video_convert_scale_src_event (trans=0x7efc3815abe0 [GstVideoConvert|conv], event=0x5569d5af9600 [GstEvent]) at ../gst/videoconvertscale/gstvideoconvertscale.c:1798 #116 0x00007efd37a756bd in gst_pad_send_event_unchecked (pad=pad@entry=0x7efc38163810 [GstPad|src], event=event@entry=0x5569d5af9600 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5965 #117 0x00007efd37a75da3 in gst_pad_push_event_unchecked (pad=pad@entry=0x7efc38163fa0 [GstPad|sink], event=event@entry=0x5569d5af9600 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5598 #118 0x00007efd37a79216 in gst_pad_push_event (pad=0x7efc38163fa0 [GstPad|sink], event=0x5569d5af9600 [GstEvent]) at ../gst/gstpad.c:5737 #119 0x00007efd0fff58ce in gst_video_convert_scale_src_event (trans=0x7efc38163bc0 [GstVideoScale|scale], event=0x5569d5af9600 [GstEvent]) at ../gst/videoconvertscale/gstvideoconvertscale.c:1798 #120 0x00007efd37a756bd in gst_pad_send_event_unchecked (pad=pad@entry=0x7efc38164230 [GstPad|src], event=event@entry=0x5569d5af9600 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5965 #121 0x00007efd37a75da3 in gst_pad_push_event_unchecked (pad=pad@entry=0x7efc38132fd0 [GstPad|sink], event=event@entry=0x5569d5af9600 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5598 #122 0x00007efd37a79216 in gst_pad_push_event (pad=0x7efc38132fd0 [GstPad|sink], event=0x5569d5af9600 [GstEvent]) at ../gst/gstpad.c:5737 #123 0x00007efd37a756bd in gst_pad_send_event_unchecked (pad=pad@entry=0x7efc381333f0 [GstPad|src], event=event@entry=0x5569d5af9600 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5965 #124 0x00007efd37a75da3 in gst_pad_push_event_unchecked (pad=pad@entry=0x7efc38164ab0 [GstPad|sink], event=event@entry=0x5569d5af9600 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5598 #125 0x00007efd37a79216 in gst_pad_push_event (pad=0x7efc38164ab0 [GstPad|sink], event=0x5569d5af9600 [GstEvent]) at ../gst/gstpad.c:5737 #126 0x00007efd0fff58ce in gst_video_convert_scale_src_event (trans=0x7efc381646d0 [GstVideoConvert|conv2], event=0x5569d5af9600 [GstEvent]) at ../gst/videoconvertscale/gstvideoconvertscale.c:1798 #127 0x00007efd37a756bd in gst_pad_send_event_unchecked (pad=pad@entry=0x7efc3815cf20 [GstPad|src], event=event@entry=0x5569d5af9600 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5965 #128 0x00007efd37a75da3 in gst_pad_push_event_unchecked (pad=pad@entry=0x7efc3812ba00 [GstProxyPad|proxypad11], event=event@entry=0x5569d5af9600 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5598 #129 0x00007efd37a79216 in gst_pad_push_event (pad=0x7efc3812ba00 [GstProxyPad|proxypad11], event=0x5569d5af9600 [GstEvent]) at ../gst/gstpad.c:5737 #130 0x00007efd37a708e3 in event_forward_func (pad=pad@entry=0x7efc3812ba00 [GstProxyPad|proxypad11], data=data@entry=0x7ffe07527f50) at ../gst/gstpad.c:3156 #131 0x00007efd37a7065e in gst_pad_forward (pad=pad@entry=0x7efc3812b600 [GstGhostPad|src], forward=forward@entry=0x7efd37a70820 <event_forward_func>, user_data=user_data@entry=0x7ffe07527f50) at ../gst/gstpad.c:3110 #132 0x00007efd37a70749 in gst_pad_event_default (pad=0x7efc3812b600 [GstGhostPad|src], parent=<optimized out>, event=0x5569d5af9600 [GstEvent]) at ../gst/gstpad.c:3207 #133 0x00007efd37a756bd in gst_pad_send_event_unchecked (pad=pad@entry=0x7efc3812b600 [GstGhostPad|src], event=event@entry=0x5569d5af9600 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5965 #134 0x00007efd37a75da3 in gst_pad_push_event_unchecked (pad=pad@entry=0x5569d5afdfc0 [GstGhostPad|sink], event=event@entry=0x5569d5af9600 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5598 #135 0x00007efd37a79216 in gst_pad_push_event (pad=0x5569d5afdfc0 [GstGhostPad|sink], event=0x5569d5af9600 [GstEvent]) at ../gst/gstpad.c:5737 #136 0x00007efd37a708e3 in event_forward_func (pad=pad@entry=0x5569d5afdfc0 [GstGhostPad|sink], data=data@entry=0x7ffe07528260) at ../gst/gstpad.c:3156 #137 0x00007efd37a7065e in gst_pad_forward (pad=pad@entry=0x5569d5afe2d0 [GstProxyPad|proxypad4], forward=forward@entry=0x7efd37a70820 <event_forward_func>, user_data=user_data@entry=0x7ffe07528260) at ../gst/gstpad.c:3110 #138 0x00007efd37a70749 in gst_pad_event_default (pad=0x5569d5afe2d0 [GstProxyPad|proxypad4], parent=<optimized out>, event=0x5569d5af9600 [GstEvent]) at ../gst/gstpad.c:3207 #139 0x00007efd37a756bd in gst_pad_send_event_unchecked (pad=pad@entry=0x5569d5afe2d0 [GstProxyPad|proxypad4], event=event@entry=0x5569d5af9600 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5965 #140 0x00007efd37a75da3 in gst_pad_push_event_unchecked (pad=pad@entry=0x5569d5afb180 [GstPad|sink], event=event@entry=0x5569d5af9600 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at ../gst/gstpad.c:5598 #141 0x00007efd37a79216 in gst_pad_push_event (pad=pad@entry=0x5569d5afb180 [GstPad|sink], event=event@entry=0x5569d5af9600 [GstEvent]) at ../gst/gstpad.c:5737 #142 0x00007efd37b65858 in gst_base_sink_send_event (element=0x5569d5afae70 [WebKitAppSinkWithWorkarounds|webkit-dmabuf-video-appsink], event=0x5569d5af9600 [GstEvent]) at ../libs/gst/base/gstbasesink.c:5121 #143 0x00007efd37a4c627 in gst_element_send_event (element=0x5569d5afae70 [WebKitAppSinkWithWorkarounds|webkit-dmabuf-video-appsink], event=0x5569d5af9600 [GstEvent]) at ../gst/gstelement.c:1994 #144 0x00007efd37a25d17 in gst_bin_send_event (element=<optimized out>, event=0x5569d5af9600 [GstEvent]) at ../gst/gstbin.c:3134 #145 0x00007efd37a4c627 in gst_element_send_event (element=0x5569d5afa3c0 [WebKitDMABufVideoSink|webkitdmabufvideosink0], event=0x5569d5af9600 [GstEvent]) at ../gst/gstelement.c:1994 #146 0x00007efd37a25d17 in gst_bin_send_event (element=<optimized out>, event=0x5569d5af9600 [GstEvent]) at ../gst/gstbin.c:3134 #147 0x00007efd37a4c627 in gst_element_send_event (element=0x7efc38126890 [GstBin|vbin], event=event@entry=0x5569d5af9600 [GstEvent]) at ../gst/gstelement.c:1994 #148 0x00007efd2b484f3d in gst_play_sink_send_event_to_sink (playsink=0x5569d5af4720 [GstPlaySink|playsink], event=0x5569d5af9600 [GstEvent], force_video=0) at ../gst/playback/gstplaysink.c:4891 #149 0x00007efd37a4c627 in gst_element_send_event (element=0x5569d5af4720 [GstPlaySink|playsink], event=0x5569d5af9600 [GstEvent]) at ../gst/gstelement.c:1994 #150 0x00007efd37a4c627 in gst_element_send_event (element=0x5569d5af1430 [GstPlayBin|media-player-0], event=0x5569d5af9600 [GstEvent]) at ../gst/gstelement.c:1994 #151 0x00007efd3ddf3dd5 in WebCore::MediaPlayerPrivateGStreamer::doSeek (this=0x7efd29bcd620, target=<optimized out>, rate=<optimized out>) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:524 #152 0x00007efd3ddf31e8 in WebCore::MediaPlayerPrivateGStreamer::play (this=0x7efd29bcd620) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:433 #153 0x00007efd3d69a474 in WebCore::HTMLMediaElement::playPlayer (this=0x7efcc5029480) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebCore/html/HTMLMediaElement.cpp:6143 #154 WebCore::HTMLMediaElement::updatePlayState (this=0x7efcc5029480) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebCore/html/HTMLMediaElement.cpp:6079 #155 0x00007efd3d697e6a in WebCore::HTMLMediaElement::setReadyState (this=0x7efcc5029480, state=WebCore::MediaPlayerReadyState::HaveEnoughData) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebCore/html/HTMLMediaElement.cpp:3016 #156 0x00007efd3d696b39 in WebCore::HTMLMediaElement::mediaPlayerReadyStateChanged (this=0x7efcc5029480) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebCore/html/HTMLMediaElement.cpp:2760 #157 0x00007efd3dd3f6ab in WebCore::MediaPlayer::readyStateChanged (this=0x7efd29388240) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebCore/platform/graphics/MediaPlayer.cpp:1438 #158 0x00007efd3ddfe579 in WebCore::MediaPlayerPrivateGStreamer::updateStates (this=0x7efd29bcd620) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:2700 #159 0x00007efd3ddfae62 in WebCore::MediaPlayerPrivateGStreamer::handleMessage (this=0x7efd29bcd620, message=<optimized out>) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1977 #160 0x00007efd3dddb0fa in WTF::Function<void (_GstMessage*)>::operator()(_GstMessage*) const (this=0x7efc8e008408, in=0x7efc3817d910 [GstMessage]) at WTF/Headers/wtf/Function.h:82 #161 WebCore::connectSimpleBusMessageCallback(_GstElement*, WTF::Function<void (_GstMessage*)>&&)::$_0::operator()(_GstBus*, _GstMessage*, void*) const (userData=0x7efc8e008400, this=<optimized out>, message=<optimized out>) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp:588 #162 WebCore::connectSimpleBusMessageCallback(_GstElement*, WTF::Function<void (_GstMessage*)>&&)::$_0::__invoke(_GstBus*, _GstMessage*, void*) (message=0x7efc3817d910 [GstMessage], userData=0x7efc8e008400) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp:588 #167 0x00007efd37544ed3 in <emit signal 'message:state-changed' on instance 0x5569d5af2000 [GstBus]> (instance=instance@entry=0x5569d5af2000, signal_id=<optimized out>, detail=<optimized out>) at ../gobject/gsignal.c:3583 #163 0x00007efd3752ad5a in g_cclosure_marshal_VOID__BOXEDv (closure=0x5569d5af34d0, return_value=<optimized out>, instance=0x5569d5af2000, args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=0x5569d585a380) at ../gobject/gmarshal.c:1686 #164 0x00007efd37527912 in _g_closure_invoke_va (closure=0x5569d5af34d0, return_value=0x0, instance=0x5569d5af2000, args=0x7ffe07529070, n_params=1, param_types=0x5569d585a380) at ../gobject/gclosure.c:897 #165 0x00007efd3753eeff in signal_emit_valist_unlocked (instance=instance@entry=0x5569d5af2000, signal_id=signal_id@entry=73, detail=detail@entry=340, var_args=var_args@entry=0x7ffe07529070) at ../gobject/gsignal.c:3424 #166 0x00007efd37544e11 in g_signal_emit_valist (instance=0x5569d5af2000, signal_id=73, detail=340, var_args=0x7ffe07529070) at ../gobject/gsignal.c:3263 #168 0x00007efd37a36dfb in gst_bus_async_signal_func (bus=0x5569d5af2000 [GstBus|bus4], message=0x7efc3817d910 [GstMessage], data=<optimized out>) at ../gst/gstbus.c:1280 #169 0x00007efd37a37677 in gst_bus_source_dispatch (source=0x5569d5af3360, callback=0x7efd37a36da0 <gst_bus_async_signal_func>, user_data=0x0) at ../gst/gstbus.c:821 #170 0x00007efd36f19697 in g_main_dispatch (context=context@entry=0x5569d5583370) at ../glib/gmain.c:3348 #171 0x00007efd36f1b837 in g_main_context_dispatch_unlocked (context=0x5569d5583370) at ../glib/gmain.c:4197 #172 g_main_context_iterate_unlocked (context=0x5569d5583370, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4262 #173 0x00007efd36f1c2d7 in g_main_loop_run (loop=0x5569d557bd60) at ../glib/gmain.c:4464 #174 0x00007efd3abf2241 in WTF::RunLoop::run () at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WTF/wtf/glib/RunLoopGLib.cpp:108 #175 0x00007efd3c2c8b32 in WebKit::AuxiliaryProcessMainBase<WebKit::WebProcess, true>::run (this=0x7ffe07529360, argc=3, argv=<optimized out>) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebKit/Shared/AuxiliaryProcessMain.h:72 #176 WebKit::AuxiliaryProcessMain<WebKit::WebProcessMainGtk> (argc=3, argv=<optimized out>) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebKit/Shared/AuxiliaryProcessMain.h:98 #177 0x00007efd3b23b08a in __libc_start_call_main (main=main@entry=0x5569d3ea5150 <main(int, char**)>, argc=argc@entry=3, argv=argv@entry=0x7ffe075294f8) at ../sysdeps/nptl/libc_start_call_main.h:58 #178 0x00007efd3b23b14b in __libc_start_main_impl (main=0x5569d3ea5150 <main(int, char**)>, argc=3, argv=0x7ffe075294f8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffe075294e8) at ../csu/libc-start.c:360 #179 0x00005569d3ea5085 in _start () at ../sysdeps/x86_64/start.S:115 (gdb)
Michael Catanzaro
Comment 8
2024-04-17 14:47:46 PDT
Comment hidden (obsolete)
I assumed it was this bug due to all the gst_pad frames in the backtrace. Should I report a separate bug? Actually, I've been avoiding reporting a *lot* of bugs involving gst_pad simply because I figured you already knew about this one.
Philippe Normand
Comment 9
2024-04-18 10:20:00 PDT
Comment hidden (obsolete)
(In reply to Michael Catanzaro from
comment #8
)
> I assumed it was this bug due to all the gst_pad frames in the backtrace. > Should I report a separate bug? >
Yes please. And sorry, I'm swamped in other tasks and actually supposed to give priority to WebRTC...
> Actually, I've been avoiding reporting a *lot* of bugs involving gst_pad > simply because I figured you already knew about this one.
Well, not reporting bugs simplifies triaging, for sure... Having clear deadlock cases like this one, shouldn't be hard to fix. What is more worrying is that we still leak memory, without clear reproduction cases... :(
Michael Catanzaro
Comment 10
2024-04-18 12:44:30 PDT
Comment hidden (obsolete)
Split to
bug #272912
. I'll mark these comments as Obsolete since they're long and you say it's not related to this bug.
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