Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 255117 - app-emulation/vmware-server-console-1.0.8.126538 doesn't launch, xcb_xlib_unlock: Assertion `c->xlib.lock' failed
Summary: app-emulation/vmware-server-console-1.0.8.126538 doesn't launch, xcb_xlib_unl...
Status: RESOLVED CANTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: x86 Linux
: High normal with 1 vote (vote)
Assignee: Gentoo VMWare Bug Squashers [disabled]
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-01-16 01:04 UTC by Alexander Wigen
Modified: 2011-03-17 13:09 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alexander Wigen 2009-01-16 01:04:30 UTC
When x11-libs/libX11-1.1.5 is compiled with the xcb USE flag vmware-server-console can't start with the following output:

Locking assertion failure.  Backtrace:                                                                      
#0 /usr/lib/libxcb-xlib.so.0 [0xb6fba7aa]                                                                   
vmware-server-console: xcb_xlib.c:82: xcb_xlib_unlock: Assertion `c->xlib.lock' failed.     

                


Reproducible: Always

Steps to Reproduce:
1. Install libX11 with xcb support (USE=xcb)
2. Attempt to launch vmware-server-console


Actual Results:  
The application crashes on this assert:

Locking assertion failure.  Backtrace:                                                                      
#0 /usr/lib/libxcb-xlib.so.0 [0xb6fba7aa]                                                                   
vmware-server-console: xcb_xlib.c:82: xcb_xlib_unlock: Assertion `c->xlib.lock' failed.


Expected Results:  
The application should launch.

Until vmware fixes the application there exists a workaround:

1. Download http://http.us.debian.org/debian/pool/main/libx/libx11/libx11-6_1.0.3-7_i386.deb
2. Unpack and put the lib in /opt/vmware/server/console/lib/lib/libX11.so.6/
3. Edit /opt/vmware/server/console/lib/lib/wrapper-gtk24.sh and add vm_append_lib 'libX11.so.6' after the vm_append_lib 'libXrender.so.1'

Now the application will be launched using the "non-xcb" library and not crash on the assert.

Thanks to http://support.zenwalk.org/viewtopic.php?t=17086 for the fix.
Comment 1 Mike Auty (RETIRED) gentoo-dev 2009-01-16 09:53:43 UTC
I have libX11-1.1.5 compiled with XCB, and vmware-server-console starts fine, so could you please attach your emerge --info, and mention if you think there's anything unusual about your setup that might be causing this problem?

Could you also try running vmware-server-console with the environment variable LIBXCB_ALLOW_SLOPPY_LOCK="1", since that seems like a much easier workaround for people if it works?
Comment 2 Rumi Szabolcs 2009-02-01 04:20:42 UTC
I can confirm this one. Here is my backtrace: 

$ vmware-server-console  

Locking assertion failure.  Backtrace:
#0 /usr/lib/libxcb-xlib.so.0 [0xb6ff3858]
#1 /usr/lib/libxcb-xlib.so.0(xcb_xlib_unlock+0x31) [0xb6ff39b1]
#2 /usr/lib/libX11.so.6(_XReply+0xfd) [0xb7e67c5d]
#3 /opt/vmware/server/console/lib/lib/libXrender.so.1/libXrender.so.1(XRenderQueryFormats+0x109) [0xb7d45969]
#4 /opt/vmware/server/console/lib/lib/libXrender.so.1/libXrender.so.1(XRenderFindFormat+0x4c) [0xb7d45f4c]
#5 /opt/vmware/server/console/lib/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0 [0xb7b8b180]
#6 /opt/vmware/server/console/lib/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0 [0xb7b8bd2c]
#7 /opt/vmware/server/console/lib/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0(gdk_draw_pixbuf+0x270) [0xb7b5bc14]
#8 /opt/vmware/server/console/lib/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0 [0xb7b6824f]
#9 /opt/vmware/server/console/lib/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0(gdk_draw_pixbuf+0x270) [0xb7b5bc14]
#10 /opt/vmware/server/console/lib/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0(gdk_pixbuf_render_pixmap_and_mask_for_colormap+0x255) [0xb7b67b34]
#11 /opt/vmware/server/console/lib/lib/libgtk-x11-2.0.so.0/libgtk-x11-2.0.so.0 [0xb7a6c298]
#12 /opt/vmware/server/console/lib/lib/libgtk-x11-2.0.so.0/libgtk-x11-2.0.so.0 [0xb7a6c586]
#13 /opt/vmware/server/console/lib/lib/libgtk-x11-2.0.so.0/libgtk-x11-2.0.so.0 [0xb7a6e77e]
#14 /opt/vmware/server/console/lib/lib/libgobject-2.0.so.0/libgobject-2.0.so.0(g_cclosure_marshal_VOID__VOID+0xd1) [0xb7c81459]
#15 /opt/vmware/server/console/lib/lib/libgobject-2.0.so.0/libgobject-2.0.so.0 [0xb7c693a1]
#16 /opt/vmware/server/console/lib/lib/libgobject-2.0.so.0/libgobject-2.0.so.0(g_closure_invoke+0x1b1) [0xb7c69076]
#17 /opt/vmware/server/console/lib/lib/libgobject-2.0.so.0/libgobject-2.0.so.0 [0xb7c806eb]
#18 /opt/vmware/server/console/lib/lib/libgobject-2.0.so.0/libgobject-2.0.so.0(g_signal_emit_valist+0x91e) [0xb7c7fd46]
#19 /opt/vmware/server/console/lib/lib/libgobject-2.0.so.0/libgobject-2.0.so.0(g_signal_emit+0x38) [0xb7c800b8]
vmware-server-console: xcb_xlib.c:82: xcb_xlib_unlock: Assertion `c->xlib.lock' failed.

Tried this with the following library versions:

USE="xcb ipv6" libX11-1.1.4, libxcb-1.1, xcb-proto-1.1
USE="xcb ipv6" libX11-1.1.5, libxcb-1.1, xcb-proto-1.1
USE="xcb -ipv6" libX11-1.1.5, libxcb-1.1, xcb-proto-1.1
USE="xcb -ipv6" libX11-1.1.5, libxcb-1.1.90.1, xcb-proto-1.2

All the same assertion failure as above.

Then I've set the environment variable:

$ export LIBXCB_ALLOW_SLOPPY_LOCK="1"

After this (with any version of the libs):

$ vmware-server-console

Locking assertion failure.  Backtrace:
#0 /usr/lib/libxcb-xlib.so.0 [0xb6fb3858]
#1 /usr/lib/libxcb-xlib.so.0(xcb_xlib_unlock+0x31) [0xb6fb39b1]
#2 /usr/lib/libX11.so.6(_XReply+0xfd) [0xb7e27c5d]
#3 /opt/vmware/server/console/lib/lib/libXrender.so.1/libXrender.so.1(XRenderQueryFormats+0x109) [0xb7d05969]
#4 /opt/vmware/server/console/lib/lib/libXrender.so.1/libXrender.so.1(XRenderFindFormat+0x4c) [0xb7d05f4c]
#5 /opt/vmware/server/console/lib/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0 [0xb7b4b180]
#6 /opt/vmware/server/console/lib/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0 [0xb7b4bd2c]
#7 /opt/vmware/server/console/lib/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0(gdk_draw_pixbuf+0x270) [0xb7b1bc14]
#8 /opt/vmware/server/console/lib/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0 [0xb7b2824f]
#9 /opt/vmware/server/console/lib/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0(gdk_draw_pixbuf+0x270) [0xb7b1bc14]
#10 /opt/vmware/server/console/lib/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0(gdk_pixbuf_render_pixmap_and_mask_for_colormap+0x255) [0xb7b27b34]
#11 /opt/vmware/server/console/lib/lib/libgtk-x11-2.0.so.0/libgtk-x11-2.0.so.0 [0xb7a2c298]
#12 /opt/vmware/server/console/lib/lib/libgtk-x11-2.0.so.0/libgtk-x11-2.0.so.0 [0xb7a2c586]
#13 /opt/vmware/server/console/lib/lib/libgtk-x11-2.0.so.0/libgtk-x11-2.0.so.0 [0xb7a2e77e]
#14 /opt/vmware/server/console/lib/lib/libgobject-2.0.so.0/libgobject-2.0.so.0(g_cclosure_marshal_VOID__VOID+0xd1) [0xb7c41459]
#15 /opt/vmware/server/console/lib/lib/libgobject-2.0.so.0/libgobject-2.0.so.0 [0xb7c293a1]
#16 /opt/vmware/server/console/lib/lib/libgobject-2.0.so.0/libgobject-2.0.so.0(g_closure_invoke+0x1b1) [0xb7c29076]
#17 /opt/vmware/server/console/lib/lib/libgobject-2.0.so.0/libgobject-2.0.so.0 [0xb7c406eb]
#18 /opt/vmware/server/console/lib/lib/libgobject-2.0.so.0/libgobject-2.0.so.0(g_signal_emit_valist+0x91e) [0xb7c3fd46]
#19 /opt/vmware/server/console/lib/lib/libgobject-2.0.so.0/libgobject-2.0.so.0(g_signal_emit+0x38) [0xb7c400b8]
Locking assertion failure.  Backtrace:
#0 /usr/lib/libxcb-xlib.so.0 [0xb6fb3858]
#1 /usr/lib/libxcb-xlib.so.0(xcb_xlib_lock+0x2e) [0xb6fb391e]
#2 /usr/lib/libX11.so.6 [0xb7e26fe8]
#3 /usr/lib/libX11.so.6(XAddExtension+0x2c) [0xb7e0a6fc]
#4 /opt/vmware/server/console/lib/lib/libXft.so.2/libXft.so.2(_XftDisplayInfoGet+0x77) [0xb7cfded7]
#5 /opt/vmware/server/console/lib/lib/libXft.so.2/libXft.so.2 [0xb7cfc8b1]
#6 /opt/vmware/server/console/lib/lib/libXft.so.2/libXft.so.2 [0xb7cfcd39]
#7 /opt/vmware/server/console/lib/lib/libXft.so.2/libXft.so.2(XftDrawPicture+0x10) [0xb7cfcec0]
#8 /opt/vmware/server/console/lib/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0 [0xb7b499b6]
#9 /opt/vmware/server/console/lib/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0 [0xb7b4bd75]
#10 /opt/vmware/server/console/lib/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0(gdk_draw_pixbuf+0x270) [0xb7b1bc14]
#11 /opt/vmware/server/console/lib/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0 [0xb7b2824f]
#12 /opt/vmware/server/console/lib/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0(gdk_draw_pixbuf+0x270) [0xb7b1bc14]
#13 /opt/vmware/server/console/lib/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0(gdk_pixbuf_render_pixmap_and_mask_for_colormap+0x255) [0xb7b27b34]
#14 /opt/vmware/server/console/lib/lib/libgtk-x11-2.0.so.0/libgtk-x11-2.0.so.0 [0xb7a2c298]
#15 /opt/vmware/server/console/lib/lib/libgtk-x11-2.0.so.0/libgtk-x11-2.0.so.0 [0xb7a2c586]
#16 /opt/vmware/server/console/lib/lib/libgtk-x11-2.0.so.0/libgtk-x11-2.0.so.0 [0xb7a2e77e]
#17 /opt/vmware/server/console/lib/lib/libgobject-2.0.so.0/libgobject-2.0.so.0(g_cclosure_marshal_VOID__VOID+0xd1) [0xb7c41459]
#18 /opt/vmware/server/console/lib/lib/libgobject-2.0.so.0/libgobject-2.0.so.0 [0xb7c293a1]
#19 /opt/vmware/server/console/lib/lib/libgobject-2.0.so.0/libgobject-2.0.so.0(g_closure_invoke+0x1b1) [0xb7c29076]
vmware-server-console: xcb_lock.c:77: _XGetXCBBuffer: Assertion `((int) ((xcb_req) - (dpy->request)) >= 0)' failed.
Comment 3 Rumi Szabolcs 2009-02-01 04:41:18 UTC
The Debian guys here suggest to install gtkhtml-3.18.3:

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=486507

Well, I've downgraded from gtkhtml-3.24.2 to gtkhtml-3.18.3
to see and it did not fix anything, symptoms remained the same...
Comment 4 Rumi Szabolcs 2009-02-01 05:28:01 UTC
Good news.

I've started to disable certain combinations of the vmware shipped
libs by renaming their directories to *.DISABLED. The concept was
to keep the required ancient libs like old openssl, old expat, and
also the old lib*mm abstraction level but replace the underlying
x11/glib/gtk+ libraries with the modern ones from gentoo /usr/lib
that correctly support xcb.

Well, one could probably experiment a bit more of what else could
be kept or disabled but anyway, below is a working set:

# ls -1 /opt/vmware/server/console/lib/lib
libXft.so.2.DISABLED
libXrender.so.1.DISABLED
libart_lgpl_2.so.2
libatk-1.0.so.0.DISABLED
libatkmm-1.6.so.1
libcrypto.so.0.9.7
libexpat.so.0
libfontconfig.so.1
libfreetype.so.6
libgcc_s.so.1
libgdk-x11-2.0.so.0.DISABLED
libgdk_pixbuf-2.0.so.0.DISABLED
libgdkmm-2.4.so.1.DISABLED
libglade-2.0.so.0.DISABLED
libglib-2.0.so.0.DISABLED
libglibmm-2.4.so.1
libglibmm_generate_extra_defs-2.4.so.1
libgmodule-2.0.so.0.DISABLED
libgnomecanvas-2.so.0.DISABLED
libgnomecanvasmm-2.6.so.1
libgobject-2.0.so.0.DISABLED
libgthread-2.0.so.0.DISABLED
libgtk-x11-2.0.so.0.DISABLED
libgtkmm-2.4.so.1
libpango-1.0.so.0.DISABLED
libpangoft2-1.0.so.0.DISABLED
libpangomm-1.4.so.1
libpangox-1.0.so.0.DISABLED
libpangoxft-1.0.so.0.DISABLED
libpng12.so.0.DISABLED
librsvg-2.so.2
libsexy.so.1
libsexymm.so.1
libsigc-2.0.so.0
libssl.so.0.9.7
libstdc++.so.5
libview.so.2
libxml2.so.2

With this set of libs and with LIBXCB_ALLOW_SLOPPY_LOCK="0"
I was able to start vmware-server-console without any errors.
Comment 5 Rémi Cardona (RETIRED) gentoo-dev 2009-09-13 08:11:14 UTC
Bundled libs are evil :) Not an xcb bug then.

Thanks
Comment 6 Vadim Kuznetsov (RETIRED) gentoo-dev 2011-03-17 13:09:46 UTC
vmware-server 1.0.x not in the portage anymore.
Bug 354383.