[Bug 777449] New: basetransform: Freeze when GST_ELEMENT_ERROR in transform_caps

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Wed Jan 18 13:39:20 UTC 2017


https://bugzilla.gnome.org/show_bug.cgi?id=777449

            Bug ID: 777449
           Summary: basetransform: Freeze when GST_ELEMENT_ERROR in
                    transform_caps
    Classification: Platform
           Product: GStreamer
           Version: git master
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gstreamer (core)
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: vivia at ahiru.eu
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

Created a "freezer" element (code is trivial, but still attached) that is
basically an empty GstBaseTransform, except it posts a GST_ELEMENT_ERROR in
transform_caps and returns empty caps. The following line freezes the pipeline:

gst-launch-1.0 audiotestsrc ! "audio/x-raw" ! freezer ! fakesink

gdb backtrace:

Thread 1 (Thread 0x7ffff7fb3700 (LWP 26359)):
#0  0x00007ffff6a550f9 in syscall ()
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff73c777c in g_mutex_lock_slowpath
(mutex=mutex at entry=0x55555597a128) at ././glib/gthread-posix.c:1313
#2  0x00007ffff73c7ff2 in g_mutex_lock (mutex=mutex at entry=0x55555597a128)
    at ././glib/gthread-posix.c:1337
#3  0x00007ffff7ad3084 in gst_object_get_parent (object=0x55555597a110
[GstFreezer]) at gstobject.c:733
#4  0x00007ffff7ad36c4 in gst_object_get_path_string
(object=object at entry=0x55555597a110 [GstFreezer]) at gstobject.c:984
#5  0x00007ffff7afe0d8 in gst_element_message_full_with_details
(element=0x55555597a110 [GstFreezer], type=type at entry=GST_MESSAGE_ERROR,
domain=domain at entry=2366, code=code at entry=5, text=text at entry=0x55555597e5e0
"Freezer is configured to not work", debug=debug at entry=0x5555558f5220 "Please
use another element", file=0x7ffff4e66220 "gstfreezer.c",
function=0x7ffff4e66310 <__func__.21230> "gst_freezer_transform_caps",
line=105, structure=0x0) at gstelement.c:1924
#6  0x00007ffff7afe218 in gst_element_message_full (element=<optimized out>,
type=type at entry=GST_MESSAGE_ERROR, domain=domain at entry=2366, code=code at entry=5,
text=text at entry=0x55555597e5e0 "Freezer is configured to not work",
debug=debug at entry=0x5555558f5220 "Please use another element",
file=0x7ffff4e66220 "gstfreezer.c", function=0x7ffff4e66310 <__func__.21230>
"gst_freezer_transform_caps", line=---Type <return> to continue, or q <return>
to quit---
105) at gstelement.c:1999
#7  0x00007ffff4e660e4 in gst_freezer_transform_caps (trans=0x55555597a110
[GstFreezer], direction=<optimized out>, caps=<optimized out>,
filter=<optimized out>) at gstfreezer.c:103
#8  0x00007ffff5770e8a in gst_base_transform_transform_caps
(trans=trans at entry=0x55555597a110 [GstFreezer], direction=GST_PAD_SRC,
caps=caps at entry=0x5555557c0de0, filter=filter at entry=0x0) at
gstbasetransform.c:536
#9  0x00007ffff57754c4 in gst_base_transform_query_caps (filter=0x0,
pad=0x5555559762b0 [GstPad], trans=0x55555597a110 [GstFreezer]) at
gstbasetransform.c:757
#10 0x00007ffff57754c4 in gst_base_transform_default_query
(trans=0x55555597a110 [GstFreezer], direction=<optimized out>,
query=0x555555984630)
    at gstbasetransform.c:1603
#11 0x00007ffff7b1cbd8 in gst_pad_query (pad=pad at entry=0x5555559762b0 [GstPad],
query=query at entry=0x555555984630) at gstpad.c:3949
#12 0x00007ffff7b55b74 in gst_pad_query_caps (pad=pad at entry=0x5555559762b0
[GstPad], filter=filter at entry=0x0) at gstutils.c:2905
#13 0x00007ffff7b6ca96 in gst_parse_element_can_do_caps
(e=e at entry=0x55555597a110 [GstFreezer], dir=dir at entry=GST_PAD_SINK,
link_caps=0x5555557c0d40)
    at ./grammar.y:603
#14 0x00007ffff7b70a63 in gst_parse_perform_link (graph=0x7fffffffac20,
link=0x555555969980) at ./grammar.y:702
#15 0x00007ffff7b70a63 in priv_gst_parse_launch (str=str at entry=0x55555596d000
"audiotestsrc ! audio/x-raw ! freezer ! fakesink ",
error=error at entry=0x7fffffffaca8, ctx=ctx at entry=0x0,
flags=flags at entry=GST_PARSE_FLAG_NONE)
    at ./grammar.y:1254
#16 0x00007ffff7b66eef in gst_parse_launch_full
(pipeline_description=0x55555596d000 "audiotestsrc ! audio/x-raw ! freezer !
fakesink ", context=context at entry=0x0, flags=flags at entry=GST_PARSE_FLAG_NONE,
error=error at entry=0x7fffffffad68)
    at gstparse.c:327
#17 0x00007ffff7b67190 in gst_parse_launchv_full (argv=<optimized out>,
context=0x0, flags=GST_PARSE_FLAG_NONE, error=0x7fffffffad68) at gstparse.c:262
#18 0x000055555555774d in main (argc=<optimized out>, argv=<optimized out>)
    at gst-launch.c:1041

Log file:
https;//ahiru.eu/~vivia/freezer-log.xz

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list