I have three systems up to date with 10/9/2007 rawhide and each hangs at logout. On my laptop with intel graphics, running compiz or metacity, when I log out, everything usually disappears except the desktop background image but gdm does not come back up. Same thing with shutdown or reboot. If I go to a text console and kill just gnome-session, things progress as expected and gdm comes back up. On the laptop, I've just logged in and then immediately logged out. Just the desktop background image is shown. These are the processes under my userid left running: tjb 21913 1 0 11:28 ? 00:00:00 /usr/bin/gnome-keyring-daemon -d tjb 21914 3521 0 11:28 ? 00:00:00 -/bin/tcsh -c /usr/bin/dbus-launch --exit-with-session gnome-session tjb 21986 21914 0 11:28 ? 00:00:00 /usr/bin/ssh-agent /bin/sh -c exec -l /bin/tcsh -c "/usr/bin/dbus-launch --exit-with-session gnome-session" tjb 22013 21914 0 11:28 ? 00:00:00 gnome-session tjb 22016 1 0 11:28 ? 00:00:00 /usr/bin/dbus-launch --exit-with-session gnome-session tjb 22017 1 0 11:28 ? 00:00:00 /bin/dbus-daemon --fork --print-pid 4 --print-address 6 --session tjb 22019 1 0 11:28 ? 00:00:00 /usr/libexec/gconfd-2 5 tjb 22023 1 0 11:28 ? 00:00:00 /usr/libexec/gnome-settings-daemon tjb 22035 1 0 11:28 ? 00:00:00 /usr/libexec/bonobo-activation-server --ac-activate --ior-output-fd=21 tjb 22041 1 0 11:28 ? 00:00:00 /usr/libexec/vino-server --oaf-activate-iid=OAFIID:GNOME_RemoteDesktopServer --oaf-ior-fd=17 tjb 22043 22013 0 11:28 ? 00:00:00 gnome-panel --sm-client-id default2 tjb 22047 1 0 11:28 ? 00:00:00 gtk-window-decorator tjb 22051 22013 0 11:28 ? 00:00:00 bluetooth-applet tjb 22054 22013 0 11:28 ? 00:00:00 /usr/bin/gnome-obex-server tjb 22065 22013 0 11:28 ? 00:00:00 nm-applet --sm-disable tjb 22068 22013 0 11:28 ? 00:00:00 python /usr/share/system-config-printer/applet.py tjb 22069 22013 0 11:28 ? 00:00:00 /usr/bin/python -tt /usr/bin/puplet tjb 22071 1 0 11:28 ? 00:00:00 /usr/libexec/gnome-vfs-daemon tjb 22085 1 0 11:28 ? 00:00:00 /usr/libexec/notification-daemon tjb 22088 1 0 11:28 ? 00:00:00 /usr/libexec/wnck-applet --oaf-activate-iid=OAFIID:GNOME_Wncklet_Factory --oaf-ior-fd=23 tjb 22153 1 0 11:28 ? 00:00:00 gnome-screensaver tjb 22161 1 0 11:28 ? 00:00:00 python /usr/lib64/deskbar-applet/deskbar-applet --oaf-activate-iid=OAFIID:Deskbar_Applet_Factory --oaf-ior-fd=27 tjb 22164 1 0 11:28 ? 00:00:00 /usr/libexec/notification-area-applet --oaf-activate-iid=OAFIID:GNOME_NotificationAreaApplet_Factory --oaf-ior-fd=31 tjb 22166 1 0 11:28 ? 00:00:00 /usr/libexec/cpufreq-applet --oaf-activate-iid=OAFIID:GNOME_CPUFreqApplet_Factory --oaf-ior-fd=33 tjb 22168 1 0 11:28 ? 00:00:00 /usr/bin/gnome-brightness-applet --oaf-activate-iid=OAFIID:GNOME_BrightnessApplet_Factory --oaf-ior-fd=41 tjb 22172 1 0 11:28 ? 00:00:00 /usr/libexec/evolution-data-server-1.12 --oaf-activate-iid=OAFIID:GNOME_Evolution_DataServer_BookFactory:1.2 --oaf-ior-fd=35 tjb 22174 1 1 11:28 ? 00:00:02 /usr/libexec/multiload-applet-2 --oaf-activate-iid=OAFIID:GNOME_MultiLoadApplet_Factory --oaf-ior-fd=42 tjb 22179 1 0 11:28 ? 00:00:00 /usr/libexec/gweather-applet-2 --oaf-activate-iid=OAFIID:GNOME_GWeatherApplet_Factory --oaf-ior-fd=41 tjb 22185 1 0 11:28 ? 00:00:00 /usr/libexec/clock-applet --oaf-activate-iid=OAFIID:GNOME_ClockApplet_Factory --oaf-ior-fd=43 tjb 22187 1 0 11:28 ? 00:00:00 /usr/libexec/gam_server Killing gnome-session allows gdm to come back up but leaves these processes running under my userid: tjb 22019 1 0 11:28 ? 00:00:00 /usr/libexec/gconfd-2 5 tjb 22035 1 0 11:28 ? 00:00:00 /usr/libexec/bonobo-activation-server --ac-activate --ior-output-fd=21 tjb 22041 1 0 11:28 ? 00:00:00 /usr/libexec/vino-server --oaf-activate-iid=OAFIID:GNOME_RemoteDesktopServer --oaf-ior-fd=17 tjb 22172 1 0 11:28 ? 00:00:00 /usr/libexec/evolution-data-server-1.12 --oaf-activate-iid=OAFIID:GNOME_Evolution_DataServer_BookFactory:1.2 --oaf-ior-fd=35
From a quick experiment, it seems to be vino-server that keeps the session from dying ? when I killed that, the session goes away.
Indeed, running gnome-session with verbose logging, the very last thing is the debug message saying that it is waiting for vino-server to shut down
Here is the relevant part of the vino-server backtrace. It runs into an assert early on (and then gets stuck trying to launch bug-buddy, but that is not relevant here) #13 <signal handler called> #14 0x00110402 in __kernel_vsyscall () #15 0x00a93630 in raise () from /lib/libc.so.6 #16 0x00a94f31 in abort () from /lib/libc.so.6 #17 0x00a8c8ee in __assert_fail () from /lib/libc.so.6 #18 0x00d1c714 in xcb_xlib_lock () from /usr/lib/libxcb-xlib.so.0 #19 0x001831a8 in _XCBLockDisplay (dpy=0x987cd40) at xcb_lock.c:21 #20 0x001cf7ae in XkbGetMapChanges (dpy=0x987cd40, xkb=0x9894840, changes=0xbf910186) at XKBGetMap.c:804 #21 0x001ccc54 in XkbRefreshKeyboardMapping (event=0xbf910338) at XKBBind.c:372 #22 0x08050aea in _ORBIT_skel_small_Bonobo_Unknown_queryInterface () #23 0x0033b231 in gdk_event_apply_filters (xevent=0xbf910338, event=0x98875b0, filters=0x9ac) at gdkevents-x11.c:345 #24 0x0033cc7f in gdk_event_translate (display=0x9884020, event=0x98875b0, xevent=0xbf910338, return_exposes=0) at gdkevents-x11.c:896 #25 0x0033f36c in _gdk_events_queue (display=0x9884020) at gdkevents-x11.c:2285 #26 0x0033f86f in gdk_event_dispatch (source=0x9887bb8, callback=0,
Whee. XKB is dumb and locks more than it should. Fixed in libX11 1.1.3-2.