[Bug 706553] New: context creation is not thread safe

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Wed Aug 21 23:30:34 PDT 2013


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

           Summary: context creation is not thread safe
    Classification: Platform
           Product: GStreamer
           Version: git
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-gl
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: ystreet00 at gmail.com
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


I can get a trace as follows almost every time with GST_DEBUG=gl*:9 make
libs/gstglmemory.gdb.  Most of the time it will hang with the glmixer element
although I have seen it less with glfilter subclasses as well albiet, less
often.

gstglmixer.c:2141:gst_gl_mixer_change_state:<glmosaic> stopping collectpads

0:01:05.319824401  4500       0x795cf0 INFO                glwindow
gstglwindow.c:174:gst_gl_window_finalize: send quit gl window loop
0:01:05.319849823  4500       0x795cf0 LOG                 glwindow
gstglwindow_x11.c:739:gst_gl_window_x11_quit: sending quit
0:01:05.319874547  4500       0x795cf0 LOG                 glwindow
gstglwindow_x11.c:743:gst_gl_window_x11_quit: quit sent
0:01:05.319883067  4500       0x795cf0 INFO                glwindow
gstglwindow.c:301:gst_gl_window_quit: quit sent to gl window loop
0:01:05.319900039  4500       0x67c680 DEBUG               glwindow
gstglwindow.c:281:gst_gl_window_run: running
^C
Program received signal SIGINT, Interrupt.
pthread_cond_wait@@GLIBC_2.3.2 () at
../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
185    ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: No such file
or directory.
(gdb) thread apply all bt

Thread 13 (Thread 0x2aaab135b700 (LWP 4519)):
#0  0x00002aaaaba653cd in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x00002aaaab47c2ac in g_main_context_poll (n_fds=2, fds=0x2aaab4282690,
timeout=-1, context=0x2aaab42098e0, 
    priority=<optimised out>) at gmain.c:3999
#2  g_main_context_iterate (context=0x2aaab42098e0, block=block at entry=1,
dispatch=dispatch at entry=1, self=<optimised out>)
    at gmain.c:3700
#3  0x00002aaaab47c78a in g_main_loop_run (loop=0x2aaab42098a0) at gmain.c:3899
#4  0x00002aaaac902d6e in gst_gl_window_x11_run (window=0x7ae810) at
gstglwindow_x11.c:634
#5  0x00002aaaac8f71f5 in gst_gl_window_run (window=0x7ae810) at
gstglwindow.c:282
#6  0x00002aaaac8fa23a in _gst_gl_window_thread_create_context
(window=0x7ae810) at gstglwindow.c:735
#7  0x00002aaaab4a0825 in g_thread_proxy (data=0x67c680) at gthread.c:798
#8  0x00002aaaab762f8e in start_thread (arg=0x2aaab135b700) at
pthread_create.c:311
#9  0x00002aaaaba71e1d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 1 (Thread 0x2aaaaaad64c0 (LWP 4500)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at
../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00002aaaab4bc2af in g_cond_wait (cond=0x7ae7d8, mutex=<optimised out>) at
gthread-posix.c:753
#2  0x00002aaaac8f765c in gst_gl_window_quit (window=0x7ae810) at
gstglwindow.c:305
#3  0x00002aaaac8f5ec0 in gst_gl_window_finalize (object=0x7ae810) at
gstglwindow.c:175
#4  0x00002aaaac90023a in gst_gl_window_x11_finalize (object=0x7ae810) at
gstglwindow_x11.c:134
#5  0x00002aaaab1f84c8 in g_object_unref (_object=0x7ae810) at gobject.c:3194
#6  0x00002aaaac8c94b1 in gst_gl_display_finalize (object=0x839030) at
gstgldisplay.c:85
#7  0x00002aaaab1f84c8 in g_object_unref (_object=0x839030) at gobject.c:3194
#8  0x00002aaaac8e25bd in gst_gl_mixer_change_state (element=0x8361c0,
transition=GST_STATE_CHANGE_PAUSED_TO_READY)
    at gstglmixer.c:2176
#9  0x00002aaaaaf314cc in gst_element_change_state
(element=element at entry=0x8361c0, transition=<optimised out>)
    at gstelement.c:2605
#10 0x00002aaaaaf31ea5 in gst_element_set_state_func (element=0x8361c0,
state=GST_STATE_NULL) at gstelement.c:2561
#11 0x0000000000402759 in test_state_changes_up_and_down_seq (__i__=0) at
generic/states.c:128
#12 0x00002aaaaacdc813 in tcase_run_tfun_nofork (i=0, tc=0x630c60, sr=0x79f730,
tfun=<optimised out>) at check_run.c:314
#13 srunner_iterate_tcase_tfuns (tc=0x630c60, sr=<optimised out>) at
check_run.c:181
#14 srunner_run_tcase (tc=0x630c60, sr=0x79f730) at check_run.c:302
#15 srunner_iterate_suites (sr=0x79f730, print_mode=<optimised out>) at
check_run.c:150
#16 srunner_run_all (sr=sr at entry=0x79f730,
print_mode=print_mode at entry=CK_NORMAL) at check_run.c:561
---Type <return> to continue, or q <return> to quit---
#17 0x00002aaaaacd66ed in gst_check_run_suite (suite=<optimised out>,
name=<optimised out>, fname=0x404d80 "generic/states.c")
    at gstcheck.c:689
#18 0x00000000004034da in main (argc=1, argv=0x7fffffffcd08) at
generic/states.c:221
(gdb)

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