[Bug 754198] glimagesink: Xlib / xcb assertion with client-draw signal

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Fri Sep 4 07:17:12 PDT 2015


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

--- Comment #12 from Vasilis Liaskovitis <vliaskov at gmail.com> ---
(In reply to Matthew Waters from comment #10)
> Ok, I'm working on a bug report for the intel crash.
> 
> It looks like some debugging is required for the radeon issue.  I'm not
> exactly sure where that's coming from.  Vasilis, could you try adding an
> XSynchonize(display, True) call into both
> gst-libs/gst/gl/x11/gstgldisplay_x11.c and
> gst-libs/gst/gl/x11/gstglwindow_x11.c directly after XOpenDisplay is called
> anywhere and get new backtraces.

With XSynchonize(display, True) after XOpenDisplay() calls in the files above,
I still get same kinds of backtraces:

- from _create_context_with_flags  (same as backtrace 1), but these are less
frequent now, perhaps due to the synchronize calls. They have happened rarely
though.

- Many backtraces are from glfwPollEvents or glfwSwapbuffer, so this may be a
libglfw3 problem (although the testcase calls XInitThreads first thing in main
function) e.g.

(gdb) bt
#0  0x00007ffff6508cc9 in __GI_raise (sig=sig at entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00007ffff650c0d8 in __GI_abort () at abort.c:89
#2  0x00007ffff6501b86 in __assert_fail_base (fmt=0x7ffff6652830 "%s%s%s:%u:
%s%sAssertion `%s' failed.\n%n", assertion=assertion at entry=0x7ffff76a5390
"!xcb_xlib_threads_sequence_lost",
    file=file at entry=0x7ffff76a51db "../../src/xcb_io.c", line=line at entry=274,
function=function at entry=0x7ffff76a5696 <__PRETTY_FUNCTION__.14364>
"poll_for_event") at assert.c:92
#3  0x00007ffff6501c32 in __GI___assert_fail
(assertion=assertion at entry=0x7ffff76a5390 "!xcb_xlib_threads_sequence_lost",
file=file at entry=0x7ffff76a51db "../../src/xcb_io.c", line=line at entry=274,
    function=function at entry=0x7ffff76a5696 <__PRETTY_FUNCTION__.14364>
"poll_for_event") at assert.c:101
#4  0x00007ffff7635c69 in poll_for_event (dpy=dpy at entry=0x60fd40) at
../../src/xcb_io.c:271
#5  0x00007ffff7635cfc in poll_for_response (dpy=dpy at entry=0x60fd40) at
../../src/xcb_io.c:289
#6  0x00007ffff7635fcd in _XEventsQueued (dpy=0x60fd40, mode=mode at entry=1) at
../../src/xcb_io.c:363
#7  0x00007ffff7636273 in _XFlush (dpy=<optimized out>) at
../../src/xcb_io.c:514
#8  0x00007ffff7638c75 in _XGetRequest (dpy=dpy at entry=0x60fd40,
type=type at entry=43 '+', len=len at entry=4) at ../../src/XlibInt.c:1735
#9  0x00007ffff76320bb in XSync (dpy=0x60fd40, discard=0) at
../../src/Sync.c:43
#10 0x00007ffff796e53c in dri2SwapBuffers (pdraw=0x8abe30, target_msc=0,
divisor=0, remainder=<optimized out>, flush=<optimized out>) at
../../../../src/glx/dri2_glx.c:815
#11 0x00007ffff7bd3c2f in _glfwPlatformSwapBuffers () from
/opt/devel/hw-decoding/trunk/ext/lib64/libglfw.so.3
#12 0x00007ffff7bc5c2d in glfwSwapBuffers () from
/opt/devel/hw-decoding/trunk/ext/lib64/libglfw.so.3
#13 0x0000000000402108 in main (argc=2, argv=0x7fffffffdd88) at
testcase-xcbfail.c:232


- I have also seen this backtrace 2-3 times from gst_gl_context_glx_activate /
MakeCurrentContext:

Program received signal SIGABRT, Aborted.
[Switching to Thread 0x7fff956fa700 (LWP 7685)]
0x00007ffff3d41cc9 in __GI_raise (sig=sig at entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
56    ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  0x00007ffff3d41cc9 in __GI_raise (sig=sig at entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00007ffff3d450d8 in __GI_abort () at abort.c:89
#2  0x00007ffff3d3ab86 in __assert_fail_base (fmt=0x7ffff3e8b830 "%s%s%s:%u:
%s%sAssertion `%s' failed.\n%n", assertion=assertion at entry=0x7ffff4ede390
"!xcb_xlib_threads_sequence_lost",
    file=file at entry=0x7ffff4ede1db "../../src/xcb_io.c", line=line at entry=274,
function=function at entry=0x7ffff4ede696 <__PRETTY_FUNCTION__.14364>
"poll_for_event") at assert.c:92
#3  0x00007ffff3d3ac32 in __GI___assert_fail
(assertion=assertion at entry=0x7ffff4ede390 "!xcb_xlib_threads_sequence_lost",
file=file at entry=0x7ffff4ede1db "../../src/xcb_io.c", line=line at entry=274,
    function=function at entry=0x7ffff4ede696 <__PRETTY_FUNCTION__.14364>
"poll_for_event") at assert.c:101
#4  0x00007ffff4e6ec69 in poll_for_event (dpy=dpy at entry=0x635a50) at
../../src/xcb_io.c:271
#5  0x00007ffff4e6ecfc in poll_for_response (dpy=dpy at entry=0x635a50) at
../../src/xcb_io.c:289
#6  0x00007ffff4e6efcd in _XEventsQueued (dpy=0x635a50, mode=mode at entry=1) at
../../src/xcb_io.c:363
#7  0x00007ffff4e6f273 in _XFlush (dpy=<optimized out>) at
../../src/xcb_io.c:514
#8  0x00007ffff4e71c75 in _XGetRequest (dpy=0x635a50, type=<optimized out>,
len=8) at ../../src/XlibInt.c:1735
#9  0x00007ffff74fb6be in DRI2CreateDrawable (dpy=0x635a50, drawable=75497474)
at ../../../../src/glx/dri2.c:380
#10 0x00007ffff74fc492 in dri2CreateDrawable (base=0x65cff0,
xDrawable=75497474, drawable=75497474, config_base=0x6c4700) at
../../../../src/glx/dri2_glx.c:407
#11 0x00007ffff74fa08f in driFetchDrawable (gc=0x7fffa8010d00,
glxDrawable=75497474) at ../../../../src/glx/dri_common.c:408
#12 0x00007ffff74fd70f in dri2_bind_context (context=0x7fffa8010d00,
old=<optimized out>, draw=75497474, read=75497474) at
../../../../src/glx/dri2_glx.c:145
#13 0x00007ffff74da24a in MakeContextCurrent (dpy=0x635a50, draw=75497474,
read=75497474, gc_user=0x7fffa8010d00) at ../../../../src/glx/glxcurrent.c:228
#14 0x00007ffff4105f82 in gst_gl_context_glx_activate (context=0x7fffcc1a07f0,
activate=1) at gstglcontext_glx.c:434
#15 0x00007ffff40e45cf in gst_gl_context_activate
(context=context at entry=0x7fffcc1a07f0, activate=activate at entry=1) at
gstglcontext.c:695
#16 0x00007ffff40e5c52 in gst_gl_context_create_thread (context=0x7fffcc1a07f0)
at gstglcontext.c:1301
#17 0x00007ffff4392455 in g_thread_proxy (data=0x7fffd4056c50) at gthread.c:764
#18 0x00007ffff5170182 in start_thread (arg=0x7fff956fa700) at
pthread_create.c:312
#19 0x00007ffff3e0547d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:111

These are with:
libx11 - 1.6.2
libxcb - 1.11
mesa - 10.7.1 or 11.1
libdrm - 2.4.64
linux - 3.19.0 (i will try with newer kernel)

I use libxcb-1.1 because of a bug in libxcb-1.0 (../../src/xcb_conn.c:186:
write_vec: Assertion `!c->out.queue_len' failed).  See also
https://bugzilla.gnome.org/show_bug.cgi?id=741900

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