Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What does "Client failed to connect to the D-BUS daemon" mean?

I am using a very complex setup to test various non-public webpages. I use jenkins to run the python-selenium tests within a dockerimage. That way, I am completely independent of the jenkins environment and can create my own environment. In this environment I have the following software installed:

  • Ubuntu 16.04.3
  • Firefox: Mozilla Firefox 57.0.1
  • geckodriver: 0.18.0
  • nosetests: 1.3.7
  • selenium: 3.8.0

When running the tests, which mostly succeed, I see in the geckodriver.log output messages like

(firefox:55): GConf-WARNING **: Client failed to connect to the D-BUS daemon:
/usr/bin/dbus-launch terminated abnormally without any error message

My questions:

  • What does this message mean?
  • Could that be an indication of the reason why sometimes the tests are failing?
  • If so, how to fix it?
like image 449
Alex Avatar asked Dec 22 '17 06:12

Alex


2 Answers

The error you are seeing is :

(firefox:55): GConf-WARNING **: Client failed to connect to the D-BUS daemon:
/usr/bin/dbus-launch terminated abnormally without any error message

So it is clear Firefox attempts to connect to D-BUS daemon and fails as dbus-launch gets terminated abnormally.


dbus-launch

dbus-launch is basically the utility to start a message bus by firefox through a shell script. It would normally be called from a user's login scripts. dbus-launch launches a session bus instance and print the address and pid of that instance to standard output.

You can read more about dbus-launch from the Linux man page


Root Cause

This error can arise if you use su (root), sudo, suedit, gksu. The main reason is DBUS_SESSION_BUS_ADDRESS retains its value when you su instead of picking up the value in /root/.dbus/session-bus.

Here you will find a detailed discussion on GConf Error: No D-BUS daemon running?! How to reinstall or fix?.

Another possible reason may be the base Firefox Browser version may be an older version on which updates were taken to reach the current version.


Solution :

There are a couple of solutions available to address this ubuntu related issue as follows :

  • Before you start Firefox you have to type export $(dbus-launch)
  • However this may result into another error with NSS_USE_SHARED_DB. So you have to use export NSS_USE_SHARED_DB=ENABLED as well.
  • The most convenient way would be to put all the configuration with in .bashrc file :

    export $(dbus-launch)
    export NSS_USE_SHARED_DB=ENABLED
    firefox &
    

This discussion speaks about the solution in details.

  • If dbus-launch is not installed on your system you have to install dbus-x11 package which contains the dbus-launch program.
  • An effective solution would be to uninstall the older base version of Firefox Browser and install a recent released GA version of Firefox Browser.

Best Approach

The issue with dbus-launch was addressed properly by both Ubuntu and Mozila. To overcome this error you need to follow the below mentioned steps :

  • Keep your Ubuntu os updated with the Latest Patch Releases and updates.
  • Always use the latest released version of Selenium-Python client, WebDriver variant e.g. GeckoDriver and Web Browser, e.g. Firefox Browser.
  • Clean and Build the Project Workspace afresh through your IDE before and after executing your Test Suite.
  • Clear the Browser Cache before and after the execution of your Tests.
  • If you have to uninstall any of the Web Client variants (e.g. Mozilla Firefox) you can use Revo Uninstallar with Moderate Memory Scan so that the stale registry settings are discarded.
  • Use CCleaner tool regularly to wipe away the OS chores including the stale rust_mozprofile directories.
like image 167
undetected Selenium Avatar answered Oct 11 '22 15:10

undetected Selenium


What does this message mean?

DBus is a message bus system for interprocess commutation. There is an open geckodriver issue on a similar if not the same subject:

  • request to geckodriver fails with no meaningful log entry when there is no access to $HOME/.mozilla or $HOME/.cache

Could that be an indication of the reason why sometimes the tests are failing?

The warning should not really affect the tests but it's difficult to speculate about your intermittent test failures without seeing what is actually happening in your tests.

If so, how to fix it?

Here are some things to try:

  • upgrade geckodriver to the latest stable version (currently 0.19.1)
  • update Firefox to the latest nightly version (currently 58)
  • try this answer
  • try this answer
like image 22
alecxe Avatar answered Oct 11 '22 16:10

alecxe