gst-play/gstplaybin3: assertion failed: (combine->sinkpad == NULL) in reconfigure_output
Describe your issue
gst-play-1.0
crashes due to assertion error in reconfigure_output
after failing to play an invalid AAC file.
Expected Behavior
Error about invalid file is reported, but the player does not crash, playback continues on the next file.
Observed Behavior
Setup
- Operating System: Arch Linux
- Device: Computer
- GStreamer Version: 1.24.0
-
Command line:
gst-play-1.0 1.aac 2.mp3
Steps to reproduce the bug
- open terminal
- type
gst-play-1.0 1.aac 2.mp3
(the files are attached)
How reproducible is the bug?
Every time.
Screenshots if relevant
n/a
Solutions you have tried
n/a
Related non-duplicate issues
n/a
Additional Information
Backtrace
#0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1 0x00007ffff7893393 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#2 0x00007ffff78426c8 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3 0x00007ffff782a4b8 in __GI_abort () at abort.c:79
#4 0x00007ffff7b560ee in g_assertion_message
(domain=domain@entry=0x0, file=file@entry=0x7ffff7401b80 "../gstreamer/subprojects/gst-plugins-base/gst/playback/gstplaybin3.c", line=line@entry=2622, func=func@entry=0x7ffff7408eb0 <__func__.26.lto_priv.2> "reconfigure_output", message=message@entry=0x7fffd8019010 "assertion failed: (combine->sinkpad == NULL)") at ../glib/glib/gtestutils.c:3497
#5 0x00007ffff7bb7220 in g_assertion_message_expr
(domain=domain@entry=0x0, file=file@entry=0x7ffff7401b80 "../gstreamer/subprojects/gst-plugins-base/gst/playback/gstplaybin3.c", line=line@entry=2622, func=func@entry=0x7ffff7408eb0 <__func__.26.lto_priv.2> "reconfigure_output", expr=expr@entry=0x7ffff73fba8b "combine->sinkpad == NULL") at ../glib/glib/gtestutils.c:3523
#6 0x00007ffff73dd8d4 in reconfigure_output (playbin=0x55555571c210 [GstPlayBin3|playbin]) at ../gstreamer/subprojects/gst-plugins-base/gst/playback/gstplaybin3.c:2622
#7 0x00007ffff73cffcc in gst_play_bin3_handle_message (bin=0x55555571c210 [GstBin|playbin], msg=0x7fffe802d9b0) at ../gstreamer/subprojects/gst-plugins-base/gst/playback/gstplaybin3.c:2007
#8 0x00007ffff7d77a2c in bin_bus_handler (bus=<optimized out>, message=<optimized out>, bin=<optimized out>) at ../gstreamer/subprojects/gstreamer/gst/gstbin.c:3263
#9 0x00007ffff7d8eb9b in gst_bus_post (bus=0x55555571c5a0 [GstBus|bus0], message=0x7fffe802d9b0) at ../gstreamer/subprojects/gstreamer/gst/gstbus.c:358
#10 0x00007ffff7da2d6c in gst_element_post_message_default (element=element@entry=0x5555557273e0 [GstElement|uridecodebin3], message=0x7fffe802d9b0)
at ../gstreamer/subprojects/gstreamer/gst/gstelement.c:2127
#11 0x00007ffff7d81650 in gst_bin_post_message (element=0x5555557273e0 [GstElement|uridecodebin3], msg=0x7fffe802d9b0) at ../gstreamer/subprojects/gstreamer/gst/gstbin.c:2789
#12 0x00007ffff7da0799 in gst_element_post_message (element=0x5555557273e0 [GstElement|uridecodebin3], message=0x7fffe802d9b0) at ../gstreamer/subprojects/gstreamer/gst/gstelement.c:2170
#13 0x00007ffff7d77a2c in bin_bus_handler (bus=<optimized out>, message=<optimized out>, bin=<optimized out>) at ../gstreamer/subprojects/gstreamer/gst/gstbin.c:3263
#14 0x00007ffff7d8eb9b in gst_bus_post (bus=0x5555557276b0 [GstBus|bus2], message=0x7fffe802d9b0) at ../gstreamer/subprojects/gstreamer/gst/gstbus.c:358
#15 0x00007ffff7da2d6c in gst_element_post_message_default (element=element@entry=0x5555557295d0 [GstElement|decodebin3-0], message=0x7fffe802d9b0)
at ../gstreamer/subprojects/gstreamer/gst/gstelement.c:2127
#16 0x00007ffff7d81650 in gst_bin_post_message (element=0x5555557295d0 [GstElement|decodebin3-0], msg=0x7fffe802d9b0) at ../gstreamer/subprojects/gstreamer/gst/gstbin.c:2789
#17 0x00007ffff7da0799 in gst_element_post_message (element=element@entry=0x5555557295d0 [GstElement|decodebin3-0], message=message@entry=0x7fffe802d9b0)
at ../gstreamer/subprojects/gstreamer/gst/gstelement.c:2170
#18 0x00007ffff73a04da in sink_event_function (sinkpad=0x55555572a070 [GstPad|sink], dbin=0x5555557295d0 [GstDecodebin3|decodebin3-0], event=0x7fffd8018ba0)
at ../gstreamer/subprojects/gst-plugins-base/gst/playback/gstdecodebin3.c:1427
#19 0x00007ffff7dcdb46 in gst_pad_send_event_unchecked (pad=pad@entry=0x55555572a070 [GstPad|sink], event=event@entry=0x7fffd8018ba0, type=<optimized out>,
type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gstreamer/subprojects/gstreamer/gst/gstpad.c:5971
#20 0x00007ffff7dce1e6 in gst_pad_push_event_unchecked (pad=pad@entry=0x7fffd8017f80 [GstPad|src_1], event=0x7fffd8018ba0, type=<optimized out>,
type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gstreamer/subprojects/gstreamer/gst/gstpad.c:5604
#21 0x00007ffff7dce929 in push_sticky (pad=pad@entry=0x7fffd8017f80 [GstPad|src_1], ev=ev@entry=0x7ffff63ff8d0, user_data=user_data@entry=0x7ffff63ff940)
at ../gstreamer/subprojects/gstreamer/gst/gstpad.c:4083
#22 0x00007ffff7dc2e8e in events_foreach (pad=0x7fffd8017f80 [GstPad|src_1], func=0x7ffff7dce880 <push_sticky>, user_data=0x7ffff63ff940)
at ../gstreamer/subprojects/gstreamer/gst/gstpad.c:613
#23 0x00007ffff7dd19a0 in check_sticky (event=0x7fffd8018ba0, pad=0x7fffd8017f80 [GstPad|src_1]) at ../gstreamer/subprojects/gstreamer/gst/gstpad.c:4142
#24 gst_pad_push_event (pad=0x7fffd8017f80 [GstPad|src_1], event=0x7fffd8018ba0) at ../gstreamer/subprojects/gstreamer/gst/gstpad.c:5737
#25 0x00007ffff7dc8ace in event_forward_func (pad=0x7fffd8017f80 [GstPad|src_1], data=0x7ffff63ffa40) at ../gstreamer/subprojects/gstreamer/gst/gstpad.c:3156
#26 0x00007ffff7dc884d in gst_pad_forward
(pad=pad@entry=0x7fffd8018300 [GstPad|proxypad13], forward=forward@entry=0x7ffff7dc8a10 <event_forward_func>, user_data=user_data@entry=0x7ffff63ffa40)
at ../gstreamer/subprojects/gstreamer/gst/gstpad.c:3110
#27 0x00007ffff7dc8936 in gst_pad_event_default (pad=0x7fffd8018300 [GstPad|proxypad13], parent=<optimized out>, event=0x7fffd8018ba0) at ../gstreamer/subprojects/gstreamer/gst/gstpad.c:3207
#28 0x00007ffff7dcdb46 in gst_pad_send_event_unchecked (pad=pad@entry=0x7fffd8018300 [GstPad|proxypad13], event=event@entry=0x7fffd8018ba0, type=<optimized out>,
type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gstreamer/subprojects/gstreamer/gst/gstpad.c:5971
#29 0x00007ffff7dce1e6 in gst_pad_push_event_unchecked (pad=pad@entry=0x7fffd8017bf0 [GstPad|src_0], event=0x7fffd8018ba0, type=<optimized out>,
type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gstreamer/subprojects/gstreamer/gst/gstpad.c:5604
#30 0x00007ffff7dce929 in push_sticky (pad=pad@entry=0x7fffd8017bf0 [GstPad|src_0], ev=ev@entry=0x7ffff63ffc50, user_data=user_data@entry=0x7ffff63ffcc0)
at ../gstreamer/subprojects/gstreamer/gst/gstpad.c:4083
#31 0x00007ffff7dc2e8e in events_foreach (pad=0x7fffd8017bf0 [GstPad|src_0], func=0x7ffff7dce880 <push_sticky>, user_data=0x7ffff63ffcc0)
--Type <RET> for more, q to quit, c to continue without paging--c
at ../gstreamer/subprojects/gstreamer/gst/gstpad.c:613
#32 0x00007ffff7dd19a0 in check_sticky (event=0x7fffd8018ba0, pad=0x7fffd8017bf0 [GstPad|src_0]) at ../gstreamer/subprojects/gstreamer/gst/gstpad.c:4142
#33 gst_pad_push_event (pad=pad@entry=0x7fffd8017bf0 [GstPad|src_0], event=event@entry=0x7fffd8018ba0) at ../gstreamer/subprojects/gstreamer/gst/gstpad.c:5737
#34 0x00007ffff7343130 in gst_single_queue_push_one (allow_drop=<synthetic pointer>, object=0x7fffd8018ba0, sq=0x7fffd8005030, mq=<optimized out>)
at ../gstreamer/subprojects/gstreamer/plugins/elements/gstmultiqueue.c:2066
#35 gst_multi_queue_loop (pad=<optimized out>) at ../gstreamer/subprojects/gstreamer/plugins/elements/gstmultiqueue.c:2345
#36 0x00007ffff7e03563 in gst_task_func (task=0x7fffd8004ec0 [GstTask|multiqueue2:src_0]) at ../gstreamer/subprojects/gstreamer/gst/gsttask.c:399
#37 0x00007ffff7bc6523 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/glib/gthreadpool.c:350
#38 0x00007ffff7bc3a45 in g_thread_proxy (data=0x7ffff0000b90) at ../glib/glib/gthread.c:831
#39 0x00007ffff789155a in start_thread (arg=<optimized out>) at pthread_create.c:447
#40 0x00007ffff790ea3c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
Verbose output
Press 'k' to see a list of keyboard shortcuts.
Now playing /tmp/1.aac
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3: instant-uri = false
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstDecodebin3:decodebin3-0: caps = video/x-raw(ANY); audio/x-raw(ANY); text/x-raw(ANY); subpicture/x-dvd; subpicture/x-dvb; subpicture/x-xsub; subpicture/x-pgs; closedcaption/x-cea-608; closedcaption/x-cea-708; application/x-onvif-metadata; application/x-ssa; application/x-ass; application/x-subtitle; application/x-subtitle-sami; application/x-subtitle-tmplayer; application/x-subtitle-mpl2; application/x-subtitle-dks; application/x-subtitle-qttext; application/x-subtitle-lrc; application/x-subtitle-vtt; application/x-subtitle-avi; application/x-ogm-text
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3: uri = file:///tmp/1.aac
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0: source = "\(GstFileSrc\)\ filesrc0"
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3: current-uri = file:///tmp/1.aac
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3: current-suburi = (null)
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstTypeFindElement:typefindelement0.GstPad:src: caps = audio/mpeg, framed=(boolean)false, mpegversion=(int)4, stream-format=(string)adif
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstTypeFindElement:typefindelement0.GstPad:src: caps = NULL
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstParseBin:parsebin0/GstTypeFindElement:typefind.GstPad:src: caps = audio/mpeg, framed=(boolean)false, mpegversion=(int)4, stream-format=(string)adif
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstParseBin:parsebin0/GstTypeFindElement:typefind.GstPad:src: caps = NULL
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstParseBin:parsebin0/GstAacParse:aacparse0.GstPad:src: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)1, base-profile=(string)ssr, profile=(string)ssr, rate=(int)48000, channels=(int)2, stream-format=(string)adif
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstParseBin:parsebin0.GstParsePad:src_0: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)1, base-profile=(string)ssr, profile=(string)ssr, rate=(int)48000, channels=(int)2, stream-format=(string)adif
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstMultiQueue:multiqueue1.GstMultiQueuePad:sink_0: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)1, base-profile=(string)ssr, profile=(string)ssr, rate=(int)48000, channels=(int)2, stream-format=(string)adif
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstParseBin:parsebin0.GstParsePad:src_0.GstProxyPad:proxypad2: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)1, base-profile=(string)ssr, profile=(string)ssr, rate=(int)48000, channels=(int)2, stream-format=(string)adif
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstMultiQueue:multiqueue1.GstMultiQueuePad:src_0: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)1, base-profile=(string)ssr, profile=(string)ssr, rate=(int)48000, channels=(int)2, stream-format=(string)adif
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0.GstGhostPad:src_0: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)1, base-profile=(string)ssr, profile=(string)ssr, rate=(int)48000, channels=(int)2, stream-format=(string)adif
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstDecodebin3:decodebin3-0.GstGhostPad:sink.GstProxyPad:proxypad0: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)1, base-profile=(string)ssr, profile=(string)ssr, rate=(int)48000, channels=(int)2, stream-format=(string)adif
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstDecodebin3:decodebin3-0/GstIdentity:identity0.GstPad:src: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)1, base-profile=(string)ssr, profile=(string)ssr, rate=(int)48000, channels=(int)2, stream-format=(string)adif
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstDecodebin3:decodebin3-0/GstIdentity:identity0.GstPad:sink: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)1, base-profile=(string)ssr, profile=(string)ssr, rate=(int)48000, channels=(int)2, stream-format=(string)adif
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstDecodebin3:decodebin3-0.GstGhostPad:sink: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)1, base-profile=(string)ssr, profile=(string)ssr, rate=(int)48000, channels=(int)2, stream-format=(string)adif
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0.GstGhostPad:src_0.GstProxyPad:proxypad3: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)1, base-profile=(string)ssr, profile=(string)ssr, rate=(int)48000, channels=(int)2, stream-format=(string)adif
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstDecodebin3:decodebin3-0/GstMultiQueue:multiqueue0.GstMultiQueuePad:sink_0: group-id = 2
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstDecodebin3:decodebin3-0/GstMultiQueue:multiqueue0.GstMultiQueuePad:sink_0: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)1, base-profile=(string)ssr, profile=(string)ssr, rate=(int)48000, channels=(int)2, stream-format=(string)adif
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstDecodebin3:decodebin3-0/GstMultiQueue:multiqueue0.GstMultiQueuePad:src_0: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)1, base-profile=(string)ssr, profile=(string)ssr, rate=(int)48000, channels=(int)2, stream-format=(string)adif
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstDecodebin3:decodebin3-0/GstFdkAacDec:fdkaacdec0.GstPad:sink: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)1, base-profile=(string)ssr, profile=(string)ssr, rate=(int)48000, channels=(int)2, stream-format=(string)adif
ERROR No valid frames decoded before end of stream for file:///tmp/1.aac
ERROR debug information: ../gstreamer/subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c(2506): gst_audio_decoder_sink_eventfunc (): /GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstDecodebin3:decodebin3-0/GstFdkAacDec:fdkaacdec0:
no valid frames found
Now playing /tmp/2.mp3
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstDecodebin3:decodebin3-0: caps = video/x-raw(ANY); audio/x-raw(ANY); text/x-raw(ANY); subpicture/x-dvd; subpicture/x-dvb; subpicture/x-xsub; subpicture/x-pgs; closedcaption/x-cea-608; closedcaption/x-cea-708; application/x-onvif-metadata; application/x-ssa; application/x-ass; application/x-subtitle; application/x-subtitle-sami; application/x-subtitle-tmplayer; application/x-subtitle-mpl2; application/x-subtitle-dks; application/x-subtitle-qttext; application/x-subtitle-lrc; application/x-subtitle-vtt; application/x-subtitle-avi; application/x-ogm-text
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0: uri = file:///tmp/2.mp3
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3: uri = file:///tmp/2.mp3
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3: current-uri = file:///tmp/2.mp3
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3: current-suburi = (null)
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0: source = "\(GstFileSrc\)\ filesrc1"
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstTypeFindElement:typefindelement1.GstPad:src: caps = audio/mpeg, mpegversion=(int)1, layer=(int)3, parsed=(boolean)false
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstTypeFindElement:typefindelement1.GstPad:src: caps = NULL
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstParseBin:parsebin1/GstTypeFindElement:typefind.GstPad:src: caps = audio/mpeg, mpegversion=(int)1, layer=(int)3, parsed=(boolean)false
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstParseBin:parsebin1/GstTypeFindElement:typefind.GstPad:src: caps = NULL
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstParseBin:parsebin1/GstMpegAudioParse:mpegaudioparse0.GstPad:src: caps = audio/mpeg, mpegversion=(int)1, mpegaudioversion=(int)1, layer=(int)3, rate=(int)44100, channels=(int)1, parsed=(boolean)true
**
ERROR:../gstreamer/subprojects/gst-plugins-base/gst/playback/gstplaybin3.c:2622:reconfigure_output: assertion failed: (combine->sinkpad == NULL)
Bail out! ERROR:../gstreamer/subprojects/gst-plugins-base/gst/playback/gstplaybin3.c:2622:reconfigure_output: assertion failed: (combine->sinkpad == NULL)
Edited by Naglis Jonaitis