After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 796745 - dashdemux: Crash playing DASH URL
dashdemux: Crash playing DASH URL
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
1.14.1
Other Linux
: Normal normal
: 1.14.3
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2018-07-03 19:37 UTC by Xavier Claessens
Modified: 2018-08-16 20:22 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
dashdemux: Always create the adapter (1.21 KB, patch)
2018-08-16 19:44 UTC, Nicolas Dufresne (ndufresne)
committed Details | Review

Description Xavier Claessens 2018-07-03 19:37:31 UTC
gst-play and totem both crash with that URL:

http://san-dfw-ote-vorigin-01.quickplay.com/Content/DASH_dash.00/Live/channel(AUDHD-3304.dfw-ote.720)/manifest_mobile.mpd

Before crashing there are many criticals, I guess the first one is where the problem start, so here is the backtrace with G_DEBUG=fatal-warnings:
** (gst-play-1.0:13181): CRITICAL **: 15:35:03.187: gst_adapter_available: assertion 'GST_IS_ADAPTER (adapter)' failed

Thread 15 "queue4:src" received signal SIGTRAP, Trace/breakpoint trap.

Thread 140736649475840 (LWP 13198)

  • #0 0x00007ffff6c02c41 in
  • #1 g_logv
  • #2 g_log
  • #3 gst_adapter_available
  • #4 0x00007fffde9d01c5 in
  • #5 0x00007fffde59dbba in
  • #6 0x00007ffff71915fb in
  • #7 gst_pad_push
  • #8 gst_proxy_pad_chain_default
  • #9 0x00007ffff71915fb in
  • #10 gst_pad_push
  • #11 0x00007fffef8b2659 in
  • #12 0x00007ffff71c5f79 in
  • #13 0x00007ffff6c257d0 in
  • #14 0x00007ffff6c24e05 in
  • #15 start_thread
    at pthread_create.c line 463
  • #16 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 95

Comment 1 Sebastian Dröge (slomo) 2018-07-03 22:01:03 UTC
And here with actual debug symbols. Problem is that the dash_stream->adapter is NULL

  • #0 _g_log_abort
    at ../../../../glib/gmessages.c line 583
  • #1 g_logv
    at ../../../../glib/gmessages.c line 1391
  • #2 g_log
    at ../../../../glib/gmessages.c line 1432
  • #3 g_return_if_fail_warning
  • #4 gst_adapter_available
    at gstadapter.c line 1321
  • #5 gst_dash_demux_data_received
    at gstdashdemux.c line 3451
  • #6 _src_chain
    at gstadaptivedemux.c line 2645
  • #7 gst_pad_chain_data_unchecked
    at gstpad.c line 4330
  • #8 gst_pad_push_data
    at gstpad.c line 4586
  • #9 gst_pad_push
    at gstpad.c line 4705
  • #10 gst_proxy_pad_chain_default
    at gstghostpad.c line 127
  • #11 gst_pad_chain_data_unchecked
    at gstpad.c line 4330
  • #12 gst_pad_push_data
    at gstpad.c line 4586
  • #13 gst_pad_push
    at gstpad.c line 4705
  • #14 gst_queue_push_one
    at gstqueue.c line 1384
  • #15 gst_queue_loop
    at gstqueue.c line 1537
  • #16 gst_task_func
    at gsttask.c line 328
  • #17 default_func
    at gsttaskpool.c line 69
  • #18 g_thread_pool_thread_proxy
    at ../../../../glib/gthreadpool.c line 307
  • #19 g_thread_proxy
    at ../../../../glib/gthread.c line 784
  • #20 start_thread
    at pthread_create.c line 463
  • #21 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 95

Comment 2 Nicolas Dufresne (ndufresne) 2018-07-03 23:16:58 UTC
I've done a quick test simply creating the adapter in that function and it worked. I guess the right fix is to understand the logic for creating or not this adapter, and fix it, the lazy fix would be to always create it.
Comment 3 Nicolas Dufresne (ndufresne) 2018-08-16 19:44:17 UTC
Created attachment 373364 [details] [review]
dashdemux: Always create the adapter

Worst case it will be empty. This fixes a crash when the base class
calls data_received() when the stream is neither is_isobmff or
has_isoff_ondemand_profile.
Comment 4 Xavier Claessens 2018-08-16 19:59:19 UTC
+1
Comment 5 Nicolas Dufresne (ndufresne) 2018-08-16 20:00:14 UTC
Attachment 373364 [details] pushed as 694d9dc - dashdemux: Always create the adapter
Comment 6 Nicolas Dufresne (ndufresne) 2018-08-16 20:22:21 UTC
Also in 1.14 8c49fbcac0b03860a20286a0813b7b63d15172c4