[Bug 735042] New: videoaggregator: race of vagg->info on pad removal

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Tue Aug 19 03:27:00 PDT 2014


https://bugzilla.gnome.org/show_bug.cgi?id=735042
  GStreamer | gst-plugins-bad | git

           Summary: videoaggregator: race of vagg->info on pad removal
    Classification: Platform
           Product: GStreamer
           Version: git
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gst-plugins-bad
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: ystreet00 at gmail.com
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


gst_videoaggregator_release_pad() calls update_converters() with the
videoaggregator lock but update_src_caps without that lock.  In that time, the
aggregate() function (from aggregator) could be called.

How it may manifest is with the following critical and backtrace:

GStreamer-CRITICAL **: _gst_util_uint64_scale: assertion 'denom != 0' failed

(gdb) bt
#0  g_logv (log_domain=0x7ffff7b80bc5 <g_log_domain_gstreamer> "GStreamer",
log_level=G_LOG_LEVEL_CRITICAL, 
    format=<optimized out>, args=args at entry=0x7fffefa82b78) at gmessages.c:1038
#1  0x00007ffff7595b32 in g_log (log_domain=<optimized out>,
log_level=log_level at entry=G_LOG_LEVEL_CRITICAL, 
    format=format at entry=0x7ffff7602d5a "%s: assertion '%s' failed") at
gmessages.c:1071
#2  0x00007ffff7595b59 in g_return_if_fail_warning (log_domain=<optimized out>, 
    pretty_function=pretty_function at entry=0x7ffff7ba12d0 <__func__.19353>
"_gst_util_uint64_scale", 
    expression=expression at entry=0x7ffff7b9fc61 "denom != 0") at
gmessages.c:1080
#3  0x00007ffff7b63053 in _gst_util_uint64_scale (val=<optimized out>,
num=<optimized out>, denom=<optimized out>, 
    correct=<optimized out>) at gstutils.c:479
#4  0x00007ffff549d595 in gst_videoaggregator_aggregate (agg=0x0) at
gstvideoaggregator.c:1198
#5  0x00007ffff528d45f in aggregate_func (self=0x810340) at gstaggregator.c:423
#6  0x00007ffff758ea5d in g_main_dispatch (context=0x8106c0) at gmain.c:3064
#7  g_main_context_dispatch (context=context at entry=0x8106c0) at gmain.c:3663
#8  0x00007ffff758edf8 in g_main_context_iterate
(context=context at entry=0x8106c0, block=block at entry=1, 
    dispatch=dispatch at entry=1, self=<optimized out>) at gmain.c:3734
#9  0x00007ffff758ee9c in g_main_context_iteration (context=0x8106c0,
may_block=1) at gmain.c:3795
#10 0x00007ffff7b5dc47 in gst_task_func (task=0x827050) at gsttask.c:317
#11 0x00007ffff75b5218 in g_thread_pool_thread_proxy (data=<optimized out>) at
gthreadpool.c:307
#12 0x00007ffff75b4895 in g_thread_proxy (data=0x6564f0) at gthread.c:764
#13 0x00007ffff732f124 in start_thread () from /usr/lib/libpthread.so.0
#14 0x00007ffff70634bd in clone () from /usr/lib/libc.so.6

update_converters() does not deal with the framerate and if the aggregate
function is called in between update_converters() and update_src_caps(), there
could be a 0/1 framerate in vagg->info which fails with the above backtrace.

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- 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