gnome 2.30 slow startup (Could not ask session manager if shut down is available)

裴国兴 pagxir at
Mon Jul 26 15:12:34 UTC 2010

Recently, I update my FreeBSD to 8.1, and Found that gnome 2.30 startup very
slow. It take one nimus or more to finish startup.
When startup, the gnome-panel will display after nautilus about 30 seconds.

>From the console,  I see that

1、gnome-session[1935]: WARNING: Application 'metacity.desktop' failed to
register before timeout
--------- after about 30 seconds ----------
2、** (gnome-panel:1966): WARNING **: Could not ask session manager if shut
down is available: Did not receive a reply. Possible causes include: the
remote application did not send a reply, the message bus security policy
blocked the reply, the reply timeout expired, or the network connection was

I recompile metacity, and "WARNING: Application 'metacity.desktop' failed to
register before timeout" disappear.

I try to recompile gnome-session, but not work.
Finally, I do a little change for gnome-session and compile, it work.
the change file is gsm_manager.c
        GsmConsolekit *consolekit;
        gboolean can_suspend = 0;
        gboolean can_hibernate = 0;

#if 0
        g_object_get (manager->priv->dkp_client,
                      "can-suspend", &can_suspend,
                      "can-hibernate", &can_hibernate,

        g_debug ("GsmManager: CanShutdown called");

        g_return_val_if_fail (GSM_IS_MANAGER (manager), FALSE);

        consolekit = gsm_get_consolekit ();
        *shutdown_available = gsm_consolekit_can_stop (consolekit)
                              || gsm_consolekit_can_restart (consolekit)
                              || can_suspend
                              || can_hibernate;
        g_object_unref (consolekit);
        *shutdown_available = 0;

I use following command to start session

setenv GNOME_SESSION "/usr/local/bin/ck-launch-session
env LC_ALL=zh_CN.UTF-8 XMODIFIERS=@im=ibus startx $GNOME_SESSION

I also found that if login user is  root, it works very well.

The question is why the g_object_get call will take such a long time on
non-root user.

More information about the freebsd-current mailing list