[Bug 704237] New: glimagesink: Using sink->display after it was removed

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Mon Jul 15 04:22:52 PDT 2013


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

           Summary: glimagesink: Using sink->display after it was removed
    Classification: Platform
           Product: GStreamer
           Version: git
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gst-plugins-gl
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: slomo at circular-chaos.org
         QAContact: gstreamer-bugs at lists.freedesktop.org
                CC: ystreet00 at gmail.com
     GNOME version: ---


Pipeline: gst-launch-1.0 videotestsrc ! "video/x-raw,format=RGB" ! glimagesink

Stopped via ctrl+c often gives the following crash. Which happens because the
sink went PAUSED->READY somewhere in the middle of gst_glimage_sink_on_draw(),
and the state change function sets sink->display to NULL.

Thread 4 (Thread 0x7f6d9b421700 (LWP 12853)):
#0  0x00007f6da0a17acd in nanosleep () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f6da0e96778 in g_usleep (microseconds=microseconds at entry=1000000)
    at /tmp/buildd/glib2.0-2.36.3/./glib/gtimer.c:261
#2  0x00000000004040da in fault_spin () at gst-launch.c:112
#3  fault_handler_sighandler (signum=11) at gst-launch.c:93
#4  <signal handler called>
#5  0x00007f6d9fe713d7 in gst_glimage_sink_on_draw (gl_sink=0xba8f90)
    at gstglimagesink.c:970
#6  0x00007f6d9fc4c1c3 in gst_gl_window_x11_handle_event (window_x11=0xf14030)
    at gstglwindow_x11.c:666
#7  0x00007f6d9fc4c385 in x11_event_source_dispatch
(base=base at entry=0x7f6d94001130, 
    callback=0x0, data=0x0) at x11_event_source.c:69
#8  0x00007f6da0e70ea6 in g_main_dispatch (context=0x7f6d940011b0)
    at /tmp/buildd/glib2.0-2.36.3/./glib/gmain.c:3054
#9  g_main_context_dispatch (context=context at entry=0x7f6d940011b0)
    at /tmp/buildd/glib2.0-2.36.3/./glib/gmain.c:3630
#10 0x00007f6da0e711f8 in g_main_context_iterate (context=0x7f6d940011b0, 
    block=block at entry=1, dispatch=dispatch at entry=1, self=<optimized out>)
    at /tmp/buildd/glib2.0-2.36.3/./glib/gmain.c:3701
#11 0x00007f6da0e715fa in g_main_loop_run (loop=0x7f6d94001310)
    at /tmp/buildd/glib2.0-2.36.3/./glib/gmain.c:3895
#12 0x00007f6d9fc46aee in gst_gl_window_run (window=0xf14030) at
gstglwindow.c:282
#13 0x00007f6d9fc47f18 in _gst_gl_window_thread_create_context
(window=0xf14030)
    at gstglwindow.c:725
#14 0x00007f6da0e951d5 in g_thread_proxy (data=0xf0d450)
    at /tmp/buildd/glib2.0-2.36.3/./glib/gthread.c:798
#15 0x00007f6da0a10e0e in start_thread (arg=0x7f6d9b421700) at
pthread_create.c:311
#16 0x00007f6da074593d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 3 (Thread 0x7f6d98def700 (LWP 12854)):
---Type <return> to continue, or q <return> to quit---
#0  pthread_cond_wait@@GLIBC_2.3.2 ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f6da0eb0507 in g_cond_wait (cond=cond at entry=0x7f6d98deea10, 
    mutex=mutex at entry=0x7f6d98deea08)
    at /tmp/buildd/glib2.0-2.36.3/./glib/gthread-posix.c:756
#2  0x00007f6d9fc4bdab in gst_gl_window_x11_send_message (window=<optimized
out>, 
    callback=<optimized out>, data=<optimized out>) at gstglwindow_x11.c:749
#3  0x00007f6d9fc46dcd in gst_gl_window_send_message (window=0xf14030, 
    callback=0x7f6d9fc488d0 <gst_gl_display_del_texture_window_cb>,
data=0xf01240)
    at gstglwindow.c:323
#4  0x00007f6d9fc48d49 in gst_gl_display_del_texture (display=0xf01240, 
    pTexture=pTexture at entry=0x7f6d8c0081a8) at gstglutils.c:254
#5  0x00007f6d9fc31e25 in _gl_mem_free (allocator=<optimized out>,
mem=0x7f6d8c008130)
    at gstglmemory.c:338
#6  0x00007f6da16f22cd in _gst_memory_free (mem=0x7f6d8c008130) at
gstmemory.c:97
#7  0x00007f6da16ca26e in gst_memory_unref (memory=<optimized out>)
    at ../gst/gstmemory.h:325
#8  _gst_buffer_free (buffer=0x7f6d8c007180) at gstbuffer.c:578
#9  0x00007f6da16ce193 in default_stop (pool=0xf029b0) at gstbufferpool.c:382
#10 0x00007f6da16cdeec in do_stop (pool=pool at entry=0xf029b0) at
gstbufferpool.c:402
#11 0x00007f6da16cfa78 in dec_outstanding (pool=0xf029b0) at
gstbufferpool.c:1036
#12 gst_buffer_pool_release_buffer (pool=0xf029b0, buffer=0x7f6d8c007070)
    at gstbufferpool.c:1156
#13 0x00007f6da16ca363 in _gst_buffer_dispose (buffer=0x7f6d8c007070) at
gstbuffer.c:540
#14 0x00007f6da16f321e in gst_mini_object_unref (mini_object=0x7f6d8c007070)
    at gstminiobject.c:448
#15 0x00007f6da16f6741 in gst_pad_push_data (pad=pad at entry=0xf020f0, 
    type=type at entry=4112, data=0x7f6d8c007070) at gstpad.c:3963
#16 0x00007f6da16fddc6 in gst_pad_push (pad=pad at entry=0xf020f0,
buffer=<optimized out>)
    at gstpad.c:4044
#17 0x00007f6da15ee33d in gst_base_src_loop (pad=0xf020f0) at gstbasesrc.c:2738
#18 0x00007f6da1724ad9 in gst_task_func (task=0xf2b000) at gsttask.c:316
---Type <return> to continue, or q <return> to quit---
#19 0x00007f6da0e95b96 in g_thread_pool_thread_proxy (data=<optimized out>)
    at /tmp/buildd/glib2.0-2.36.3/./glib/gthreadpool.c:309
#20 0x00007f6da0e951d5 in g_thread_proxy (data=0xf0d4f0)
    at /tmp/buildd/glib2.0-2.36.3/./glib/gthread.c:798
#21 0x00007f6da0a10e0e in start_thread (arg=0x7f6d98def700) at
pthread_create.c:311
#22 0x00007f6da074593d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 2 (Thread 0x7f6d93fff700 (LWP 12855)):
#0  0x00007f6da073a19d in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f6da0e71194 in g_main_context_poll (priority=2147483647, n_fds=1, 
    fds=0x7f6d880008c0, timeout=-1, context=0xe7f400)
    at /tmp/buildd/glib2.0-2.36.3/./glib/gmain.c:3995
#2  g_main_context_iterate (context=context at entry=0xe7f400,
block=block at entry=1, 
    dispatch=dispatch at entry=1, self=<optimized out>)
    at /tmp/buildd/glib2.0-2.36.3/./glib/gmain.c:3696
#3  0x00007f6da0e7129c in g_main_context_iteration (context=0xe7f400, 
    may_block=may_block at entry=1) at
/tmp/buildd/glib2.0-2.36.3/./glib/gmain.c:3762
#4  0x00007f6da0e712e9 in glib_worker_main (data=<optimized out>)
    at /tmp/buildd/glib2.0-2.36.3/./glib/gmain.c:5427
#5  0x00007f6da0e951d5 in g_thread_proxy (data=0xf0d400)
    at /tmp/buildd/glib2.0-2.36.3/./glib/gthread.c:798
#6  0x00007f6da0a10e0e in start_thread (arg=0x7f6d93fff700) at
pthread_create.c:311
#7  0x00007f6da074593d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 1 (Thread 0x7f6da1660700 (LWP 12810)):
#0  __lll_lock_wait () at
../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135
#1  0x00007f6da0a12f57 in _L_lock_1027 () from
/lib/x86_64-linux-gnu/libpthread.so.0
#2  0x00007f6da0a12de9 in __GI___pthread_mutex_lock (mutex=0xd58b30)
    at pthread_mutex_lock.c:85
#3  0x00007f6da16ffa74 in gst_pad_stop_task (pad=0xf020f0) at gstpad.c:5470
#4  0x00007f6da15ea31f in gst_base_src_stop (basesrc=basesrc at entry=0xdc4a00)
    at gstbasesrc.c:3362
---Type <return> to continue, or q <return> to quit---
#5  0x00007f6da15f09c2 in gst_base_src_activate_push (pad=0xf020f0, active=0, 
    parent=<optimized out>) at gstbasesrc.c:3529
#6  gst_base_src_activate_mode (pad=0xf020f0, parent=<optimized out>, 
    mode=<optimized out>, active=0) at gstbasesrc.c:3599
#7  0x00007f6da16fadbd in gst_pad_activate_mode (pad=pad at entry=0xf020f0, 
    mode=mode at entry=GST_PAD_MODE_PUSH, active=active at entry=0) at gstpad.c:1081
#8  0x00007f6da16fb500 in gst_pad_set_active (pad=0xf020f0, active=0) at
gstpad.c:967
#9  0x00007f6da16df53b in activate_pads (vpad=<optimized out>,
ret=0x7fff54885f30, 
    active=0x7fff54885f8c) at gstelement.c:2690
#10 0x00007f6da16ee6cc in gst_iterator_fold (it=it at entry=0xf10140, 
    func=func at entry=0x7f6da16df520 <activate_pads>,
ret=ret at entry=0x7fff54885f30, 
    user_data=user_data at entry=0x7fff54885f8c) at gstiterator.c:614
#11 0x00007f6da16df7ba in iterator_activate_fold_with_resync
(iter=iter at entry=0xf10140, 
    user_data=user_data at entry=0x7fff54885f8c, func=0x7f6da16df520
<activate_pads>)
    at gstelement.c:2710
#12 0x00007f6da16e14a0 in gst_element_pads_activate
(element=element at entry=0xdc4a00, 
    active=0) at gstelement.c:2746
#13 0x00007f6da16e17fa in gst_element_change_state_func (element=0xdc4a00, 
    transition=GST_STATE_CHANGE_PAUSED_TO_READY) at gstelement.c:2818
#14 0x00007f6da15eeb93 in gst_base_src_change_state (element=0xdc4a00, 
    transition=GST_STATE_CHANGE_PAUSED_TO_READY) at gstbasesrc.c:3636
#15 0x00007f6da16e3372 in gst_element_change_state
(element=element at entry=0xdc4a00, 
    transition=transition at entry=GST_STATE_CHANGE_PAUSED_TO_READY) at
gstelement.c:2605
#16 0x00007f6da16e3a4c in gst_element_set_state_func (element=0xdc4a00, 
    state=GST_STATE_READY) at gstelement.c:2561
#17 0x00007f6da16c96b6 in gst_bin_element_set_state (next=GST_STATE_READY, 
    current=GST_STATE_PAUSED, start_time=4568411538, base_time=13196258643571, 
    element=0xdc4a00, bin=0xf0e040) at gstbin.c:2297
#18 gst_bin_change_state_func (element=0xf0e040, 
    transition=GST_STATE_CHANGE_PAUSED_TO_READY) at gstbin.c:2599
#19 0x00007f6da170131f in gst_pipeline_change_state (element=0xf0e040, 
    transition=GST_STATE_CHANGE_PAUSED_TO_READY) at gstpipeline.c:471
---Type <return> to continue, or q <return> to quit---
#20 0x00007f6da16e3372 in gst_element_change_state
(element=element at entry=0xf0e040, 
    transition=transition at entry=GST_STATE_CHANGE_PAUSED_TO_READY) at
gstelement.c:2605
#21 0x00007f6da16e3a4c in gst_element_set_state_func (element=0xf0e040, 
    state=GST_STATE_READY) at gstelement.c:2561
#22 0x0000000000403c21 in main (argc=6, argv=0x7fff548867a8) at
gst-launch.c:1194

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