libX11/XCB problems in Hardy
Bryce Harrington
bryce at canonical.com
Thu Jun 26 20:25:08 BST 2008
On Fri, Jun 20, 2008 at 07:33:25PM -0700, Bryce Harrington wrote:
> A couple fairly subtle but serious issues have come to light in Hardy
> relating to XCB-enablement in libX11, and I wanted to send this note
> to notify of a pending change we'll push out once we have a bit more
> verification.
To follow up on this, it's looking like we will probably not require
making this drastic of a change to Hardy, so I wanted to give an update
on where we are.
One problem that came to light is that it appears compiz depends on
XCB. According to compiz's NEWS file, XCB has been required since
0.5.4. Running compiz without an XCB-enabled libx11 causes compiz to
crash. There does not appear to be a configure flag for controlling the
dependence on XCB.
Thus, to avoid breaking compiz, deploying a noxcb libX11 would at a
minimum require adding #ifdefs and other non-trivial changes to compiz.
We also can't say for certainty whether other apps have similarly
adopted XCB dependencies since we turned it on. These two factors
pretty much kill off the chance that we could SRU such a change.
> 185311 locking assertion failure, xorg/libsdl (13 dupes)
> Particularly afflicting OpenOffice.org users
In testing a non-xcb libX11, it was found that it does indeed make the
issue go away, however our working theory at this time is that the issue
is not entirely xcb's fault; the calling application apparently maps
libXrandr into memory twice, and it's *this* which triggers the error
(maybe xrandr is calling xcb twice, which results in two lock attempts,
the second of which deadlocks??)
Chris has a fix for this double-libXrandr problem, and if it tests well,
it should be quite safe and an SRU for deploying it should be
straightforward.
> 232364 dbus-launch hangs at session start waiting on socket output in libxcb
> Particularly afflicting Xubuntu users
Exploring this further, it was found that gnome-screensaver sometimes
caused a startup of a dbus service prior to the point Xubuntu launched
dbus officially. As a result, the second dbus service would trigger xcb
to establish a second lock, thus deadlocking X. Cody found that by
simply moving the gnome screensaver stuff to after the dbus launch, the
deadlocks stopped happening. I understood that Cody felt this to be an
acceptable workaround for Hardy and got the change in for 8.04.1. (Cody
please correct any points I got wrong there.)
I anticipate that if we run into further such xcb locking issues with
other apps, that similar workarounds can be employed to avoid the
deadlocks, so we should be able to adequately cope with the issues if
they pop up in other applications in the future.
Meanwhile, I plan to work with XCB upstream to get these issues properly
fixed in Intrepid.
Bryce
More information about the ubuntu-devel
mailing list