web-dev-qa-db-fra.com

Que signifie "Échec de la connexion du client au démon D-BUS"?

J'utilise une configuration très complexe pour tester diverses pages Web non publiques. J'utilise jenkins pour exécuter les tests python-Selenium dans une image docker. De cette façon, je suis complètement indépendant de l'environnement Jenkins et je peux créer mon propre environnement. Dans cet environnement, les logiciels suivants sont installés:

  • Ubuntu 16.04.3
  • Firefox: Mozilla Firefox 57.0.1
  • geckodriver: 0.18.0
  • nosetests: 1.3.7
  • Sélénium: 3.8.0

Lors de l'exécution des tests, qui réussissent généralement, je vois dans le geckodriver.log des messages de sortie comme

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

Mes questions: 

  • Que signifie ce message?
  • Cela pourrait-il être une indication de la raison pour laquelle parfois les tests échouent? 
  • Si oui, comment y remédier?
12
Alex

L'erreur que vous voyez est la suivante:

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

Il est donc clair que Firefox tente de se connecter à démon D-BUS et fails car dbus-launch se termine de manière anormale.

dbus-launch

dbus-launch est en gros le utilitaire permettant de démarrer un bus de messages avec firefox via un script Shell. Il serait normalement appelé à partir des scripts de connexion d'un utilisateur. dbus-launch lance une instance de bus de session et imprime les address et pid de cette instance sur la sortie standard.

Vous pouvez en savoir plus sur dbus-launch du Linux man page

Cause racine de l'erreur

Cette erreur peut survenir si vous utilisez su (racine) _, Sudo, suedit, gksu. La raison principale est DBUS_SESSION_BUS_ADDRESS retains its value when youSUinstead of picking up the value in /root/.dbus/session-bus/.

Vous trouverez une discussion détaillée sur GConf-WARNING **: Client failed to connect to the D-BUS daemon:here .

Une autre raison possible peut être la version de base Firefox du navigateur peut être une version plus ancienne sur laquelle des mises à jour ont été prises pour atteindre la version actuelle.

Solution :

Deux solutions sont disponibles pour résoudre ce problème connexe Ubuntu comme suit:

  • Avant de démarrer Firefox, vous devez taper export $ (dbus-launch)} _
  • Cependant, cela peut entraîner une autre erreur avec NSS_USE_SHARED_DB. Vous devez donc également utiliser export NSS_USE_SHARED_DB = ENABLED.
  • Le moyen le plus pratique serait de mettre toute la configuration dans le fichier .bashrc:

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

Cette discussion parle de la solution en détail.

  • Si dbus-launch n'est pas installé sur votre système, vous devez installer le package dbus-x11 qui contient le programme dbus-launch.
  • Une solution efficace consisterait à désinstaller l'ancienne version de base de Firefox Browser via Revo Uninstallar et à installer une version récente GA de Firefox Browser.

Meilleure approche

Le problème avec dbus-launch a été résolu correctement par Ubuntu et Mozila. Pour surmonter cette erreur, vous devez suivre les étapes mentionnées ci-dessous:

  • Gardez votre Ubuntu _ OS mise à jour avec les dernières mises à jour de correctifs et Updates.
  • Utilisez toujours la dernière version publiée de Selenium-Python client , WebDriver variant ( GeckoDriver ) et Web Browser (Firefox Browser)
  • Clean and Build le espace de travail du projet _ a actualisé votre IDE avant et après l'exécution de votre Test Suite.
  • Clear le cache du navigateur avant et après l'exécution de votre Tests.
  • Si vous devez uninstall l'une des variantes Web Client (Mozilla Firefox), utilisez Revo Uninstallar avec analyse de mémoire modérée afin que le paramètres de registre périmé sont jetés.
  • Utilisez régulièrement l’outil CCleaner pour effacer les tâches du système d’exploitation, y compris l’ancien Rust_mozprofile directories .
4
DebanjanB

Que signifie ce message?

DBus est un système de bus de messages pour la commutation interprocessus. Il existe une question ouverte geckodriver sur un sujet similaire, sinon identique:

Cela pourrait-il être une indication de la raison pour laquelle parfois les tests échouent?

L'avertissement ne devrait pas vraiment affecter les tests, mais il est difficile de spéculer sur vos échecs de test intermittents sans voir ce qui se passe réellement dans vos tests.

Si oui, comment y remédier?

Voici quelques choses à essayer:

1
alecxe

Pour moi, la solution a été d'installer dbus-x11

apt install dbus-x11
0
wintel2006