[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