GNOME Bugzilla – Bug 792536
Immediate SegFault of gst-validate with a certain given (ok, broken) pipeline
Last modified: 2018-04-27 15:35:11 UTC
Example with qtdemux: (I know splitmuxsrc already contains the demuxer...) # gst-validate-1.0 --set-scenario only-header-file splitmuxsrc location=big_buck_bunny_1080p_h264.mov ! qtdemux ! fakesink ========================================= Running scenario only-header-file on pipeline pipeline0 ========================================= Starting pipeline Pipeline started Executing stop: Segmentation fault # cat only-header-file description, duration=65.0, min-media-duration=65.0 Example with qtmux: (I know splitmuxsrc already contains the demuxer...) # gst-launch-1.0 --version Invalid byte sequence in conversion input Invalid byte sequence in conversion input gst-launch-1.0 version 1.12.4 GStreamer 1.12.4 Unknown package origin # uname -a Linux buildroot 4.15.0-rc6-20180102-1 #2 SMP PREEMPT Wed Jan 10 18:50:37 CET 2018 armv7l GNU/Linux # gst-validate-1.0 --set-scenario only-header-file splitmuxsrc location=big_buck _bunny_1080p_h264.mov ! qtmux ! fakesink # gdb --args gst-validate-1.0 --set-scenario only-header-file splitmuxsrc locati on=big_buck_bunny_1080p_h264.mov ! qtdemux ! fakesink GNU gdb (GDB) 8.0.1 Copyright (C) 2017 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "arm-buildroot-linux-gnueabihf". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from gst-validate-1.0...(no debugging symbols found)...done. (gdb) run Starting program: /usr/bin/gst-validate-1.0 --set-scenario only-header-file splitmuxsrc location=big_buck_bunny_1080p_h264.mov \! qtdemux \! fakesink [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/libthread_db.so.1". [New Thread 0x75e4f420 (LWP 764)] ========================================= Running scenario only-header-file on pipeline pipeline0 ========================================= Starting pipeline [New Thread 0x754ff420 (LWP 765)] [New Thread 0x74aff420 (LWP 766)] [New Thread 0x74153420 (LWP 767)] [New Thread 0x737ff420 (LWP 768)] Pipeline started Executing stop: Thread 6 "splitmuxsrc0:vi" received signal SIGSEGV, Segmentation fault.
+ Trace 238338
Thread 1937765408 (LWP 768)
Format of my text got lost. Reformat entry somehow?
Could you check what's happening in gdb? Is the monitor variable NULL? or monitor->last_query_res ?
(gdb) p monitor $1 = (GstValidatePadMonitor *) 0x0
Can you share the scenario file in order to let someone reproduce ?
Hi Nicolas, I think everything is in my first entry. What is missing? Scenario is "only-header-file", which content I have display via "cat". Best regards, Marie
(In reply to Martin Maurer from comment #5) > Hi Nicolas, > I think everything is in my first entry. What is missing? > Scenario is "only-header-file", which content I have display via "cat". > Best regards, > Marie Yeah, I am able to reproduce, I am gonna fix it.
commit ba3b27fa8356f84148c6f2b8274baf9604e8f9f8 (HEAD -> master) Author: Thibault Saunier <tsaunier@igalia.com> Date: Fri Apr 27 17:32:38 2018 +0200 validate: pipeline: Handle the case where a pad has no monitor We do not monitor ghost pads, only real pads, so this is a totally legitimate case. https://bugzilla.gnome.org/show_bug.cgi?id=792536