Bug 8650

Summary: vino-2.16.0 fails a lock assertion using XCB
Product: xorg Reporter: Mike Auty <mike.auty>
Component: * OtherAssignee: Josh Triplett <josh>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: high CC: dberkholz
Version: unspecified   
Hardware: x86 (IA32)   
OS: Linux (All)   
URL: http://bugs.gentoo.org/show_bug.cgi?id=151397
Whiteboard:
i915 platform: i915 features:

Description Mike Auty 2006-10-15 09:07:59 UTC
I've been testing XCB under Gentoo and I was asked to file this bug upstream,
unfortunately my system's built with omit-frame-pointer, so I can't offer any
more detail into where the problem occurs.  If there's any patches anyone would
like me to try, I'll be happy to give them a go...

Mike  5:)

Original bug report:

Hiya, again, I should be providing a patch but I really haven't the fogiest
what's going on in there, so best I can do is report it, sorry...

I have:

x11-libs/libX11-1.0.99.1-r1 with XCB support
x11-libs/libXrandr-1.1.1-r1
x11-libs/libXcomposite-0.3-r1
net-misc/vino-2.16.0

When starting vino-server with:

DISPLAY=":0" /usr/libexec/vino-server
--oaf-activate-iid=OAFIID:GNOME_RemoteDesktopServer
and attempting to connect, I get the following:

IOR:0194d4bf2200000049444c3a474e4f4d452f52656d6f74654465736b746f702f5368656c6c3a312e3000fb57030000000054424f540000000101027705000000554e4958000000000a0000006c6f63616c686f73740001052a0000002f746d702f6f726269742d6d696b652f6c696e632d373163342d302d3238623839376637663063653800000000000000caaedfba54000000010102002a0000002f746d702f6f726269742d6d696b652f6c696e632d373163342d302d323862383937663766306365380000001c00000000000000b90868a8ec592828c02b28282828282804000000bd201070010000004800000001006d7002000000050000001c00000000000000b90868a8ec592828c02b28282828282804000000bd20107001000000140000000100000001000105000000000901010000000000
15/10/2006 00:16:27 Autoprobing TCP port 
15/10/2006 00:16:27 Autoprobing selected port 5900
15/10/2006 00:16:27 Advertising security type: 'TLS' (18)
15/10/2006 00:16:27 Advertising authentication type: 'VNC Authentication' (2)
15/10/2006 00:16:27 Advertising security type: 'VNC Authentication' (2)
15/10/2006 00:16:29 Got connection from client 127.0.0.1
15/10/2006 00:16:29   other clients:
vino-server: xcb_xlib.c:50: xcb_xlib_unlock: Assertion `c->xlib.lock' failed.

That last line is obviously the unusual one, the vnc connection then
immediately dies.

As ever I'm happy to try out whatever weird and wonderful patches you may want
to help get this thing fixed.  If there's any further information I can provide
to help, please just ask...  5:)
Comment 1 Josh Triplett 2006-10-16 02:10:29 UTC
This bug doesn't belong to XCB; this assertion from XCB just means that
something called UnlockDisplay when it didn't have the display locked.  This
assertion should always indicate a bug in some software invoking Xlib/XCB,
rather than a bug in Xlib/XCB itself.

A backtrace might help us track down who we should reassign this bug to.  In the
meantime, I've made this bug no longer block the 1.0 release-tracking bug 6797.
Comment 2 Josh Triplett 2006-10-16 02:35:01 UTC
I've managed to reproduce this problem here.

Versions:
vino from Debian package 2.13.5-3
libX11 from current GIT, commit 256eba6b40c5f811a03b04abf5f85f728ee3ab5d
libXCB 1.0-RC2
Current unstable versions of Xorg libraries, which correspond roughly to Xorg 7.1:

ii  libxau6                         1.0.1-2         X11 authorisation library
ii  libxaw-headers                  1.0.2-4         X11 Athena Widget library
(development heade
ii  libxaw7                         1.0.2-4         X11 Athena Widget library
ii  libxcomposite1                  0.3-2           X11 Composite extension library
ii  libxcursor1                     1.1.7-4         X cursor management library
ii  libxdamage1                     1.0.3-2         X11 damaged region extension
library
ii  libxdmcp6                       1.0.1-2         X11 Display Manager Control
Protocol library
ii  libxevie1                       1.0.1-3         X11 EvIE extension library
ii  libxext6                        1.0.1-2         X11 miscellaneous extension
library
ii  libxfixes3                      4.0.1-4         X11 miscellaneous 'fixes'
extension library
ii  libxfont1                       1.2.2-1         X11 font rasterisation library
ii  libxft2                         2.1.8.2-8       FreeType-based font drawing
library for X
ii  libxi6                          1.0.1-3         X11 Input extension library
ii  libxkbfile1                     1.0.3-2         X11 keyboard file
manipulation library
ii  libxkbui1                       1.0.2-2         X11 keyboard UI presentation
library
ii  libxklavier10                   2.2-3           X Keyboard Extension
high-level API
ii  libxmu-headers                  1.0.2-2         X11 miscellaneous utility
library headers
ii  libxmu6                         1.0.2-2         X11 miscellaneous utility
library
ii  libxmuu1                        1.0.2-2         X11 miscellaneous
micro-utility library
ii  libxp6                          1.0.0.xsf1-1    X Printing Extension
(Xprint) client library
ii  libxpm4                         3.5.5-2         X11 pixmap library
ii  libxrandr2                      1.1.0.2-4       X11 RandR extension library
ii  libxrender1                     0.9.1-3         X Rendering Extension client
library
ii  libxres1                        1.0.1-2         X11 Resource extension library
ii  libxss1                         1.1.0-1         X11 Screen Saver extension
library
ii  libxt6                          1.0.2-2         X11 toolkit intrinsics library
ii  libxtrap6                       1.0.0-4         X11 event trapping extension
library
ii  libxtst6                        1.0.1-5         X11 Testing -- Resource
extension library
ii  libxv1                          1.0.2-1         X11 Video extension library
ii  libxvmc1                        1.0.2-2         X11 Video extension library
ii  libxxf86dga1                    1.0.1-2         X11 Direct Graphics Access
extension library
ii  libxxf86misc1                   1.0.1-2         X11 XFree86 miscellaneous
extension library
ii  libxxf86vm1                     1.0.1-2         X11 XFree86 video mode
extension library
Comment 3 Josh Triplett 2006-10-16 02:40:56 UTC
Backtrace (just with debugging symbols from -dbg packages):
#0  0xffffe410 in __kernel_vsyscall ()
#1  0xa774a821 in raise () from /lib/tls/i686/cmov/libc.so.6
#2  0xa774bfb9 in abort () from /lib/tls/i686/cmov/libc.so.6
#3  0xa7743fcf in __assert_fail () from /lib/tls/i686/cmov/libc.so.6
#4  0xa7248770 in xcb_xlib_unlock (c=0x808aa60) at xcb_xlib.c:50
#5  0xa78f55d4 in _XCBUnlockDisplay (dpy=0x808a520) at xcb_lock.c:34
#6  0xa789ffdb in XDamageQueryVersion (dpy=0x808a520, major_versionp=0xaf9dca00,
minor_versionp=0xaf9dc9fc) at ../../src/Xdamage.c:308
#7  0x0804ec71 in ?? ()
#8  0x0808a520 in ?? ()
#9  0xaf9dca00 in ?? ()
#10 0xaf9dc9fc in ?? ()
#11 0x080b0d20 in ?? ()
#12 0x00000000 in ?? ()
Comment 4 Josh Triplett 2006-10-16 03:12:18 UTC
I've tracked this down to a bug in XDamageQueryVersion: it calls UnlockDisplay
and SyncHandle without having called LockDisplay.  I've fixed this in libXdamage
master, in commit 31829be123a9ce58bf8e0c4718815b7b63d0d512.
Comment 5 Josh Triplett 2006-10-16 03:12:46 UTC
I've tracked this down to a bug in XDamageQueryVersion: it calls UnlockDisplay
and SyncHandle without having called LockDisplay.  I've fixed this in libXdamage
master, in commit 31829be123a9ce58bf8e0c4718815b7b63d0d512.
Comment 6 Mike Auty 2006-10-16 06:27:26 UTC
Wow, one hour turn around!  Sorry to have filed it under the wrong component. 
Thanks again for fixing it so quickly, I can't wait to see hit XCB hit the
mainstream...  5:)

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.