Forwarding a Ubuntu bug: https://bugs.edge.launchpad.net/ubuntu/+source/libxcb/+bug/232364 A number of Xubuntu users have been experiencing failures on startup when launching dbus-launch. Backtraces indicate the problem always occurs during a select() call in _xcb_in_read_block. The freezes are intermittently reproducible (i.e., restart several times and eventually it'll come up). (gdb) bt #0 0xb8002424 in __kernel_vsyscall () #1 0xb7e8484d in select () from /lib/tls/i686/cmov/libc.so.6 #2 0xb7da309a in _xcb_in_read_block (c=0x80579a8, buf=0x8057040, len=8) at xcb_in.c:248 #3 0xb7da2343 in xcb_connect_to_fd (fd=13, auth_info=0xbff1cdf0) at xcb_conn.c:133 #4 0xb7da4a51 in xcb_connect (displayname=0x0, screenp=0x0) at xcb_util.c:279 #5 0xb7f43717 in _XConnectXCB () from /usr/lib/libX11.so.6 #6 0xb7f2c029 in XOpenDisplay () from /usr/lib/libX11.so.6 #7 0x0804b3de in x11_init () at dbus-launch-x11.c:218 #8 0x0804abb2 in main (argc=5, argv=0xbff1d5a4) at dbus-launch.c:432 (gdb) quit strace also shows that the hang is occurring on a select call: select(14, [13], NULL, NULL, NULL
Some logs... Xorg.0.log: http://launchpadlibrarian.net/15420742/Xorg.0.log xinitrc: http://launchpadlibrarian.net/15420770/xinitrc lsof: http://launchpadlibrarian.net/15315169/lsof This patch was attempted as a test, but found to make no difference: http://launchpadlibrarian.net/14669590/xcb_in.diff
Hi, I'm the Xubuntu Team Lead. Please let me know if I can do anything to assist in fixing/testing this bug. Cheers,
Created attachment 17263 [details] dbus-launch trace cody-somerville@mercurial:~$ cat /usr/bin/dbus-launch #!/bin/sh exec /usr/bin/strace /usr/bin/dbus-launch.real "$@" 2> /tmp/dbus-launch.out
Created attachment 17264 [details] strace after killing process
Created attachment 17265 [details] lsof output
Created attachment 17266 [details] fd/pid listing
From the postkill: [pid 7877] read(20, 0x8056f3c, 4096) = -1 EAGAIN (Resource temporarily unavailable) [pid 7877] ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbfd17a18) = -1 ENOTTY (Inappropriate ioctl for device) [pid 7877] select(21, [20], NULL, [20], NULL) = 1 (in [20]) [pid 7877] read(20, "", 4096) = 0
I can't actually believe this was ever an XCB bug. The strace output posted on the launchpad bug shows that it was waiting for the connection setup response from the X server, and if that never arrived, it's hard to imagine how it could be XCB's fault. I could believe, though, that two instances of dbus-launch somehow deadlocked against each other. Perhaps one calls XGrabServer, then waits for the other one to finish connecting to the X server? The fix that Ubuntu seems to have settled on, if I'm reading the launchpad bug correctly, is to ensure that there aren't two dbus-launch instances racing each other. That seems plausible to me.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct.