[Bug 773546] double free or corruption when running parallel vaapi encoders in a loop

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Mon Nov 7 15:37:35 UTC 2016


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

--- Comment #19 from Florent ThiƩry <florent.thiery at ubicast.eu> ---
Using systemd's coredumps makes it possible to debug the python execve-spawned
gst-launch, and confirms it is the same issue (leak in ensure_profiles):

$ coredumpctl list | tail -n 1
lun. 2016-11-07 16:31:29 CET   3708  1000  1000   6 *
/home/fthiery/gst/master/gstreamer/tools/.libs/lt-gst-launch-1.0
$ coredumpctl gdb 3708

(gdb) bt
#0  0x00007fc015a9e04f in raise () at /usr/lib/libc.so.6
#1  0x00007fc015a9f47a in abort () at /usr/lib/libc.so.6
#2  0x00007fc015adbc50 in __libc_message () at /usr/lib/libc.so.6
#3  0x00007fc015ae1fe6 in malloc_printerr () at /usr/lib/libc.so.6
#4  0x00007fc015ae27de in _int_free () at /usr/lib/libc.so.6
#5  0x00007fc015ae4f58 in _int_realloc () at /usr/lib/libc.so.6
#6  0x00007fc015ae64f9 in realloc () at /usr/lib/libc.so.6
#7  0x00007fc016481c58 in g_realloc () at /usr/lib/libglib-2.0.so.0
#8  0x00007fc01644f869 in  () at /usr/lib/libglib-2.0.so.0
#9  0x00007fc01644fbe8 in g_array_append_vals () at /usr/lib/libglib-2.0.so.0
#10 0x00007fc013caaf18 in ensure_profiles (display=display at entry=0xc0e2f0) at
gstvaapidisplay.c:577
#11 0x00007fc013cac9ae in gst_vaapi_display_get_encode_profiles
(display=0xc0e2f0) at gstvaapidisplay.c:1507
#12 0x00007fc013cc1cd9 in get_compatible_profile (encoder=0x7fc008002c00) at
gstvaapiencoder.c:482
#13 0x00007fc013cc1cd9 in get_profile (encoder=encoder at entry=0x7fc008002c00) at
gstvaapiencoder.c:504
#14 0x00007fc013cc1cd9 in get_config_attribute
(encoder=encoder at entry=0x7fc008002c00,
type=type at entry=VAConfigAttribRateControl,
out_value_ptr=out_value_ptr at entry=0x7fc00e1e599c) at gstvaapiencoder.c:517
#15 0x00007fc013cc2a4d in get_rate_control_mask (encoder=0x7fc008002c00) at
gstvaapiencoder.c:850
#16 0x00007fc013cc2a4d in gst_vaapi_encoder_set_rate_control
(encoder=0x7fc008002c00, rate_control=GST_VAAPI_RATECONTROL_CQP) at
gstvaapiencoder.c:894
#17 0x00007fc013cc2f57 in set_property (value=<optimized out>, prop_id=1,
encoder=0x7fc008002c00) at gstvaapiencoder.c:780
#18 0x00007fc013cc2f57 in gst_vaapi_encoder_set_property
(encoder=encoder at entry=0x7fc008002c00, prop_id=1, value=<optimized out>,
value at entry=0x0) at gstvaapiencoder.c:825
#19 0x00007fc013cc31b6 in gst_vaapi_encoder_init_properties
(encoder=0x7fc008002c00) at gstvaapiencoder.c:1034
#20 0x00007fc013cc31b6 in gst_vaapi_encoder_init (display=<optimized out>,
encoder=0x7fc008002c00) at gstvaapiencoder.c:1081
#21 0x00007fc013cc31b6 in gst_vaapi_encoder_new (klass=<optimized out>,
display=<optimized out>) at gstvaapiencoder.c:1132
#22 0x00007fc013c95143 in ensure_encoder (encode=encode at entry=0xc5b520) at
gstvaapiencode.c:407
#23 0x00007fc013c9587f in gst_vaapiencode_set_format (venc=0xc5b520,
state=0xc3da80) at gstvaapiencode.c:476
#24 0x00007fc014689346 in gst_video_encoder_setcaps (caps=0xc3c1e0,
encoder=0xc5b520) at gstvideoencoder.c:613
#25 0x00007fc014689346 in gst_video_encoder_sink_event_default
(encoder=0xc5b520, event=0x7fbff0004090) at gstvideoencoder.c:965
#26 0x00007fc013c94b97 in gst_vaapiencode_sink_event (venc=0xc5b520,
event=0x7fbff0004090) at gstvaapiencode.c:626
#27 0x00007fc01758bda7 in gst_pad_send_event_unchecked (pad=pad at entry=0xc01920,
event=event at entry=0x7fbff0004090, type=<optimized out>,
type at entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at gstpad.c:5609
#28 0x00007fc01758c23e in gst_pad_push_event_unchecked (pad=pad at entry=0xc016e0,
event=0x7fbff0004090, type=type at entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at
gstpad.c:5265
#29 0x00007fc01758c640 in push_sticky (pad=pad at entry=0xc016e0,
ev=ev at entry=0x7fc00e1e5d50, user_data=user_data at entry=0x7fc00e1e5db0) at
gstpad.c:3808
#30 0x00007fc01758a337 in events_foreach (pad=pad at entry=0xc016e0,
func=func at entry=0x7fc01758c4f0 <push_sticky>,
user_data=user_data at entry=0x7fc00e1e5db0) at gstpad.c:603
#31 0x00007fc0175968e1 in check_sticky (event=0x7fbff0004090, pad=0xc016e0) at
gstpad.c:3865
#32 0x00007fc0175968e1 in gst_pad_push_event (pad=0xc016e0,
event=event at entry=0x7fbff0004090) at gstpad.c:5396
#33 0x00007fc014d73867 in gst_queue_push_one (queue=0xc40510) at
gstqueue.c:1429
#34 0x00007fc014d73867 in gst_queue_loop (pad=<optimized out>) at
gstqueue.c:1506
#35 0x00007fc0175c09a1 in gst_task_func (task=0xc0e4d0) at gsttask.c:334
#36 0x00007fc0164a4ace in  () at /usr/lib/libglib-2.0.so.0
#37 0x00007fc0164a40d5 in  () at /usr/lib/libglib-2.0.so.0
#38 0x00007fc015e10454 in start_thread () at /usr/lib/libpthread.so.0
#39 0x00007fc015b537df in clone () at /usr/lib/libc.so.6

-- 
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