Saturday, April 12, 2014

God N Solves “Failed to connect to configuration server”

When I heard about the heartbleed bug, I updated my CentOS 6.3 server’s openssl library.  The next day, I tried to run meld.  Here’s the traceback (emphasis added):

Traceback (most recent call last):
  File "/usr/local/bin/meld", line 138, in <module>
    main()
  File "/usr/local/bin/meld", line 129, in main
    from meld.meldapp import app
  File "/usr/local/lib/meld/meld/meldapp.py", line 199, in <module>
    app = MeldApp()
  File "/usr/local/lib/meld/meld/meldapp.py", line 113, in __init__
    self.prefs = preferences.MeldPreferences()
  File "/usr/local/lib/meld/meld/preferences.py", line 265, in __init__
    super(MeldPreferences, self).__init__("/apps/meld", self.defaults)
  File "/usr/local/lib/meld/meld/util/prefs.py", line 93, in __init__
    self._gconf.add_dir(rootkey, gconf.CLIENT_PRELOAD_NONE)
glib.GError: Failed to contact configuration server; some possible causes are that you need to enable TCP/IP networking for ORBit, or you have stale NFS locks due to a system crash. See http://projects.gnome.org/gconf/ for information. (Details -  1: Failed to get connection to session: /bin/dbus-launch terminated abnormally without any error message)

What I found after a great deal of research (and the usual head-banging) is that the error means exactly what it says.

Almost.

It turned out that /bin/dbus-launch did not exist, not that it terminated abnormally.  “Why not?” I asked.

I finally found the answer in Redhat bug 172231.  They moved it.  Back in 2005 (or before).

Meld, installed and working on my system for years (well, for a minimum of 444 days, to be exact, which was when I finally dumped the frustrating SuSE distro and installed CentOS 6.3), suddenly stopped working by throwing the above exception, after openssl was updated.  And they moved a file it depends upon in 2005?

Where does it live now?  Inside the dbus-x11 package, which I didn’t have (the server can compile and run X programs, but the display is on a different system, and I don’t have a desktop installed—thus, no Gnome, no KDE). To fix the problem, I did the following:

    $ yum install dbus-x11

Then,

    $ whence dbus-launch
    $ /usr/bin/dbus-launch

Finally,

  $ ln -s /usr/bin/dbus-launch /bin/dbus-launch
  $ meld






God N is happy.  Or as happy as he gets.  Until the next problem.

One does wonder:  where did /bin/dbus-launch go?  When I updated openssl, there was a long list of dependencies that would be installed and updated—and possibly deleted—which I, like everyone else, never read.  I suspect that the dbus package was updated, which removed /bin/dbus-launch.  The lesson is, always read the list of dependencies before hitting the Y key.

Will I learn from this mistake?  Maybe.  At least this time I wrote down the answer.



Note:  In case you’re wondering, “ORBit” is is a CORBA 2.4 compliant Object Request Broker (ORB), originally written to serve as middleware for the GNOME project.

No comments:

Post a Comment