[Xcb] xcb 1.1 dead lock

Todd Goyen tgoyen at swri.org
Thu Dec 13 00:25:16 PST 2007


Hello All,

I am using Debian Unstable with XCB 1.1 from experimental. 

I have seen a dead lock with the following backtraces. The program uses QT-4.3.3 and calls XInitThreads before anything else is performed. The threads are used with the nVidia driver to  separate OpenGL contexts and keep them synced to VBlank. In this case there were 24 threads 11 of which are OpenGL rendering threads, 1 is the GUI, and 12 are timers. It appears as though XTranslateCoordinates in the main GUI thread caused the deadlock. Any ideas would be helpful.

Thanks

Todd



Main GUI thread:

#0  0xb7fc6410 in __kernel_vsyscall ()
#1  0xb70b2aa5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i686/cmov/libpthread.so.0
#2  0xb73d22b4 in _XConditionWait (cv=0xa6fb21e4, mutex=0x8218b60) at ../../src/locking.c:364
#3  0xb73eb6f2 in process_responses (dpy=0x820fcb0, wait_for_first_event=0, current_error=0xbff709f8, current_request=110778)
    at ../../src/xcb_io.c:75
#4  0xb73ebb2c in _XReply (dpy=0x820fcb0, rep=0xbff70a20, extra=0, discard=1) at ../../src/xcb_io.c:368
#5  0xb73e1564 in XTranslateCoordinates (dpy=0x820fcb0, src_win=423, dest_win=39852741, src_x=904, src_y=861, dst_x=0xbff70a94, dst_y=0xbff70a90, 
    child=0xbff70a8c) at ../../src/TrCoords.c:53
#6  0xb768dd8d in QWidget::mapFromGlobal (this=0x8b9d1a8, pos=@0x81fcd28) at kernel/qwidget_x11.cpp:1010
#7  0xb7621606 in QApplication::notify (this=0x81fcc90, receiver=0x8b9d1a8, e=0xbff70e6c) at kernel/qapplication.cpp:3260
#8  0xb71be7bb in QCoreApplication::notifyInternal (this=0x81fcc90, receiver=0x8b9d1a8, event=0xbff70e6c) at kernel/qcoreapplication.cpp:515
#9  0xb7677302 in QETWidget::translateMouseEvent (this=0x8b9d1a8, event=0xbff71238)
    at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:188
#10 0xb767669c in QApplication::x11ProcessEvent (this=0x81fcc90, event=0xbff71238) at kernel/qapplication_x11.cpp:3019
#11 0xb7699436 in QEventDispatcherX11::processEvents (this=0x8201980, flags=@0xbff712d0) at kernel/qeventdispatcher_x11.cpp:110
#12 0xb71bdb72 in QEventLoop::processEvents (this=0xbff71340, flags=@0xbff71304) at kernel/qeventloop.cpp:125
#13 0xb71bdc7a in QEventLoop::exec (this=0xbff71340, flags=@0xbff71348) at kernel/qeventloop.cpp:171
#14 0xb71c03bd in QCoreApplication::exec () at kernel/qcoreapplication.cpp:744
#15 0xb761dbb7 in QApplication::exec () at kernel/qapplication.cpp:3038
#16 0x080843e6 in main (argc=136043976, argv=0xbff715b4)
at /home/wettoad/Projects/EDAS/EDAS/src/an/gui/main.C:20


5 Threads in.... Wait for XSync...

#0  0xb7fc6410 in __kernel_vsyscall ()
#1  0xb70b2aa5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i686/cmov/libpthread.so.0
#2  0xb73d22b4 in _XConditionWait (cv=0xa6fb21e4, mutex=0x8218b60) at ../../src/locking.c:364
#3  0xb73eb6f2 in process_responses (dpy=0x820fcb0, wait_for_first_event=0, current_error=0xa9491084, current_request=108831)
    at ../../src/xcb_io.c:75
#4  0xb73ebb2c in _XReply (dpy=0x820fcb0, rep=0xa94910ac, extra=0, discard=1) at ../../src/xcb_io.c:368
#5  0xb73dfe3a in XSync (dpy=0x820fcb0, discard=0) at ../../src/Sync.c:48
#6  0xb6d877ea in ?? () from /usr/lib/libGL.so.1
#7  0x0820fcb0 in ?? ()
#8  0x00000000 in ?? ()


12 Threads in... Sleeping, looks OK...

#0  0xb7fc6410 in __kernel_vsyscall ()
#1  0xb6ef6966 in nanosleep () from /lib/i686/cmov/libc.so.6
#2  0xb6f309bc in usleep () from /lib/i686/cmov/libc.so.6
#3  0x081a4870 in NDEImage::ovlBoxRoll (this=0x8aae770) at /home/wettoad/Projects/EDAS/EDAS/src/libraries/widgets/ImageBox/NDEImageOverlay.C:3336
#4  0xb70ae4fb in start_thread () from /lib/i686/cmov/libpthread.so.0
#5  0xb6f3760e in clone () from /lib/i686/cmov/libc.so.6

6 Threads in.... Blocking until condition looks OK....

#0  0xb7fc6410 in __kernel_vsyscall ()
#1  0xb70b2aa5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i686/cmov/libpthread.so.0
#2  0x0819a978 in NDEImage::oglRender (this=0xb4147008) at /home/wettoad/Projects/EDAS/EDAS/src/libraries/widgets/ImageBox/NDEImage.C:1987
#3  0xb70ae4fb in start_thread () from /lib/i686/cmov/libpthread.so.0
#4  0xb6f3760e in clone () from /lib/i686/cmov/libc.so.6



More information about the Xcb mailing list