Comment 9 for bug 36321

Revision history for this message
Didier L (l-farquaad) wrote :

I think that bug comes from the fact that it is GDM that manages halt and reboot (because only root can do that). To do that, it uses a socket file which is /tmp/.gdm_socket. On the other side, gnome-panels sends request through that socket using (I think) gdmflexiserver, as stated in the other bug (44585). Here, under Xgl, here is what I have:
$ gdmflexiserver -a -c QUERY_LOGOUT_ACTION

(process:10648): GLib-GObject-CRITICAL **: gtype.c:2215: initialization assertion failed, use IA__g_type_init() prior to this function

(process:10648): Gdk-CRITICAL **: gdk_display_get_name: assertion `GDK_IS_DISPLAY (display)' failed
ERROR 100 Not authenticated

But if I tell him to use the display 0 then...
$ DISPLAY=:0 gdmflexiserver -a -c QUERY_LOGOUT_ACTION

(process:10653): GLib-GObject-CRITICAL **: gtype.c:2215: initialization assertion failed, use IA__g_type_init() prior to this function

(process:10653): Gdk-CRITICAL **: gdk_display_get_name: assertion `GDK_IS_DISPLAY (display)' failed
OK HALT;REBOOT;SUSPEND;HIBERNATE

So I suppose that gnome-panel, which is launched by gnome-session itself having DISPLAY=:1 receives the same answer and so, does not show those options.

I just wonder why hibernate and suspend appear, and even work (I only tried suspend) as it should also be gdm (or at least a program launched as root) which manages that...