Pencil and xcb_xlib_lock: Assertion `!c->xlib.lock’ failed.

After a try on Xubuntu (the light desktop XFCE version of Ubuntu) of Pencil Gnu GPL licensed animation software (for GNU/Linux, Mac OSX and clone of Wine including MS version called something like ixpi).


Pencil is a young but really good application for animation. It’s mainly oriented to traditional drawing animation, but can be used for other things.

Features :

* multilayer (several bitmap layers (on demand), several vector layers (on demand), one(SVN include several) camera layer, SVN include sound layers)

* pan, zoom, rotate of the view (allowing drawing on a rotated canvas) objects and camera

* tablet pen pressure management for drawing (on pencil, brush and dip pen).

* onionskin for the pleasure of animators :)

* import of bitmaps (and SVG vector format as bitmap).

* export as MOV, only on Mac and perhaps wine clones)

* export frame by frame png (with transparency) or opaque jpeg, this should be reopened easily with Gimp Animation Package or assembled in a movie with mencoder (in mplayer project) and transcode.

* export as SWF movie (my test was not really good, only vector part worked perfectly in svn version, with libming version 0.4.0.beta5)

* timeline with keying of layers objects

* interpolation of camera movements

* palette management (GPL gimp/Inkscape/Agave palette format isn’t managed for now)

Update : The following described problem was due to libXi < 1.1.3, you can easily correct this by installing libXi-1.1.3 (lib) and the dependence inputproto >= 1.4 (proto), the last one are on mirrors, go to individual subdir and then the lib or proto subdirs to get these versions. Upgrade only these two libs works with 7.2

I really liked it, then tried to compile it on my main Linux From Scratch production computer, the compilation works perfectly, but sadly, when I tried to launch it on my LFS box, I obtained the following error:

Pencil: xcb_xlib.c:41: xcb_xlib_lock: Assertion `!c->xlib.lock' failed. Aborted

This is a common problem on xlib coded application, that yet aren’t tested on libxcb_xlib systems. XCB is a replacement of Xlib on X11 graphic interface, that allow faster access to graphical ressources a better way. XlibXcb is a wrapper to Xlib, allowing application coded for xlib to take transparently benefits of the new xcb architectures. But there is still some software that aren’t compatible, due to some light errors on (un)locking.

Some GNU/Linux distro patched libxcb to automatically pass this or doesn’t install xcb_xlib wrapper to avoid errors.

Some other have patched it with an environment variable to set to avoid the bug:

export LIBXCB_ALLOW_SLOPPY_LOCK=1 launch_your_application

Else the main two possible errors, for not corrected applications are:

xcb_xlib.c:41: xcb_xlib_lock: Assertion `!c->xlib.lock' failed. xcb_xlib.c:50: xcb_xlib_unlock: Assertion `c->xlib.lock' failed.

More information on this Debian-devel message:

The libxcb patch proposed in Linux from scratch with LIBXCB_ALLOW_SLOPPY_LOCK settable variable.

I don’t have only the bug only with Pencil, but with few other applications:

xsetwacom (from linuxwacom project) and few other. Searching on Google, at least some release of Sun implementation of Java suffer the same bug.

I hop this will help some people using those application and having bug to find a mean to avoid it until these application are patched.

Leave a comment

You must be