Les programmes Gnome (eog / gnome-terminal) démarrent lentement et produisent un avertissement DBus.Error.NoRhness

10

Depuis quelque temps, eoget gnome-terminaldémarrent très lentement sur mon (X) Ubuntu 13.10. Je pense que d'autres outils Gnome sont également affectés, mais je n'en utilise aucun autre.

Maintenant, je reçois une org.freedesktop.DBus.Error.NoReplyerreur à chaque gnome-terminaldémarrage:

** (gnome-terminal: 5516): AVERTISSEMENT **: Erreur lors de la récupération de l'adresse du bus d'accessibilité: org.freedesktop.DBus.Error.NoRPONSE: n'a pas reçu de réponse. Les causes possibles sont les suivantes: l'application distante n'a pas envoyé de réponse, la stratégie de sécurité du bus de messages a bloqué la réponse, le délai de réponse a expiré ou la connexion réseau a été interrompue.

et à chaque fois eogcommence:

** (eog: 4996): AVERTISSEMENT **: Erreur lors de la récupération de l'adresse du bus d'accessibilité: org.freedesktop.DBus.Error.NoRply: n'a pas reçu de réponse. Les causes possibles sont les suivantes: l'application distante n'a pas envoyé de réponse, la stratégie de sécurité du bus de messages a bloqué la réponse, le délai de réponse a expiré ou la connexion réseau a été interrompue.

(eog: 4996): EOG-WARNING **: Impossible de charger l'icône: l'icône 'image-loading' n'est pas présente dans le thème

Je pense que cela a quelque chose à voir avec la suppression de certains programmes qui commençaient par défaut, y compris at-spi2-registryd, qui, je pense, appartiennent au projet d'accessibilité de Gnome .

Selon dpkg --getselections | grep spi, at-spi2-coreest toujours installé sur mon système.

Je me souviens avoir fait quelque chose de très hacky / stupide comme échanger des fichiers de configuration ou des binaires avec des programmes d'écho vides pour arrêter le démarrage du démon.

  • Comment puis-je corriger cette erreur?
  • Qu'est-ce qui cause cette erreur?

Google produit at-spi...des liens connexes:

Cela peut être freedesktoplié à un problème connexe que j'ai avec nmcli, alors veuillez y jeter un œil: avertissements et erreurs nmcli freedesktop DBus .


ltrace -r eog:

0.000000 __libc_start_main(0x41e210, 2, 0x7fff41235b18, 0x45c020, 0x45c0b0 <unfinished ...>
0.000734 bindtextdomain("eog", "/usr/share/locale") = "/usr/share/locale"
0.001297 bind_textdomain_codeset(0x463fff, 0x45c0f6, 1, 0, 65535) = 0x1d59750
0.000863 textdomain("eog")                     = "eog"
0.000759 dcgettext(0, 0x45c0fc, 5, 0x676f65, 65535) = 0x45c0fc
0.000718 g_option_context_new(0x45c0fc, 1, 2, 3, 0) = 0x1d598e0
0.000711 g_option_context_add_main_entries(0x1d598e0, 0x45c300, 0x463fff, 0x1d59940, 88) = 0
0.000668 gtk_get_option_group(1, 0x7f161670f2e0, 0x1d59960, 0x7f161670bec0, 0) = 0x1d5ccd0
0.003283 g_option_context_add_group(0x1d598e0, 0x1d5ccd0, 0x1d5cf60, 0x7f161670bec0, 3) = 0x1d5d000
0.000711 g_irepository_get_option_group(0, 0, 0x1d5d000, 0x1d50670, 0) = 0x1d5cf80
0.000845 g_option_context_add_group(0x1d598e0, 0x1d5cf80, 0x1d5d830, 3, 3) = 0x1d5d000
0.000613 g_option_context_parse(0x1d598e0, 0x7fff41235a0c, 0x7fff41235a00, 0x7fff41235a18, 0
** (eog:2797): WARNING **: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.NoReply: 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 broken.
) = 1
25.069454 g_option_context_free(0x1d598e0, 0x7fff41235b18, 0x7fff41235b20, 0x7fff412373c4, 2) = 0
0.000330 xmp_init(0x7f1616281740, 0xffffffff, 0, 0x7f1616281768, 0) = 1
0.001356 g_getenv(0x45c905, 0x1dbb610, 0x1dbb5c0, 1, 3) = 0

[...]

0.000509 g_object_ref(0x204f240, 3, 1, 51, 0x7f16080008e0) = 0x204f240
0.000681 g_queue_push_tail(0x1d5d780, 0x204f240, 2, 51, 0x204d270) = 0x1ff5ce0
0.000793 g_cond_broadcast(0x67b7d0, 0x1ff5ce0, 0, 16, 0) = 0
0.000797 g_mutex_unlock(0x67b7c0, 132, 1, -1, 0x7f16080008e0) = 0
0.000716 g_object_unref(0x204f240, 0, 0x7f16080008e0, -1, 0x7f16080008e0) = 2

(eog:2797): EOG-WARNING **: Couldn't load icon: Icon 'image-loading' not present in theme
0.048019 gtk_icon_view_get_type(0x1fb23b0, 0x450510, 0x1fb23b0, 0x7f1616703450, 0x1d50a60) = 0x2015420
0.000800 g_type_check_instance_cast(0x1fb23b0, 0x2015420, 0x1fb23b0, 0x7f1616703450, 0x1d50a60) = 0x1fb23b0
0.000743 gtk_icon_view_get_visible_range(0x1fb23b0, 0x7fff41235820, 0x7fff41235828, 0x2015420, 0x2015420) = 0
0.000588 gtk_icon_view_get_type(0x1fb23b0, 0x450510, 0x1fb23b0, 0x7f1616703450, 0x1d50a60) = 0x2015420

[...]

ltrace -r gnome-terminal:

[...]

0.000543 g_str_hash(0x7f1ba08d1617, 0x7f1ba08d1617, 0x21cd180, 0, 0x219d050) = 0x6e8257f7
0.000714 g_str_hash(0x7f1ba08d194c, 0x7f1ba08d194c, 0, 0x7f1ba08d194c, 0) = 0x24119b48
0.000490 g_str_hash(0x7f1ba08d194c, 0x7f1ba08d194c, 0x21bcaa0, 0, 0x219d050) = 0x24119b48
0.000655 g_str_hash(0x7f1ba12f72c7, 0x7f1ba12f72c7, 0, 0x7f1ba12f72c7, 40) = 0xac0d625f
0.000596 g_str_hash(0x7f1ba12f72c7, 0x7f1ba12f72c7, 0x21bcc20, 0, 0x219d050) = 0xac0d625f

[...]

** (gnome-terminal:5758): WARNING **: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.NoReply: 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 broken.
25.036838 g_str_hash(0x7f1ba0b4452a, 0x7f1ba0b4452a, 0, 0x7f1ba0b4452a, 508) = 0xa59bb851
0.000696 g_str_hash(0x21b18bc, 0x21b18bc, 0x21d7080, 0, 509) = 0xa59bb851
0.000501 g_str_hash(0x7f1ba13cf396, 0x7f1ba13cf396, 0, 0x7f1ba13cf396, 24) = 0x22c79e89
0.000550 g_str_hash(0x7f1ba13cf396, 0x7f1ba13cf396, 0x21d7150, 0, 0x219d050) = 0x22c79e89
0.003683 g_str_hash(0x7f1ba0dc076b, 0x7f1ba0dc076b, 0, 0x7f1ba0dc076b, 384) = 0xa4fa89ab

strace -r eog:

[...]
0.000268 poll([{fd=3, events=POLLIN}], 1, 25000) = 1 ([{fd=3, revents=POLLIN}])
0.000723 recvmsg(3, {msg_name(0)=NULL, msg_iov(1)=[{"l\2\1\1\v\0\0\0\1\0\0\0=\0\0\0\6\1s\0\6\0\0\0:1.307\0\0"..., 2048}], msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_CMSG_CLOEXEC) = 262
0.000351 recvmsg(3, 0x7ffff251a080, MSG_CMSG_CLOEXEC) = -1 EAGAIN (Resource temporarily unavailable)
0.000339 sendmsg(3, {msg_name(0)=NULL, msg_iov(2)=[{"l\1\0\1\0\0\0\0\2\0\0\0[\0\0\0\1\1o\0\r\0\0\0/org/a11"..., 112}, {"", 0}], msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL) = 112
0.000354 poll([{fd=3, events=POLLIN}], 1, 25000) = 0 (Timeout)
25.025550 open("/usr/lib/x86_64-linux-gnu/charset.alias", O_RDONLY) = -1 ENOENT (No such file or directory)
0.000410 write(2, "\n** (eog:2786): WARNING **: Erro"..., 319
** (eog:2786): WARNING **: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.NoReply: 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 broken.
) = 319
0.000660 socket(PF_LOCAL, SOCK_STREAM|SOCK_CLOEXEC, 0) = 4
0.000305 connect(4, {sa_family=AF_LOCAL, sun_path=@"/tmp/.X11-unix/X0"}, 20) = 0
0.000243 getpeername(4, {sa_family=AF_LOCAL, sun_path=@"/tmp/.X11-unix/X0"}, [20]) = 0

[...]

0.000054 poll([{fd=4, events=POLLIN}], 1, 4294967295) = 1 ([{fd=4, revents=POLLIN}])
0.000029 recvfrom(4, "\1\0\213\0\0\0\0\0\240\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 4096, 0, NULL, NULL) = 32
0.000027 recvfrom(4, 0x1709c34, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)
0.000026 recvfrom(4, 0x1709c34, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)
0.000027 poll([{fd=4, events=POLLIN|POLLOUT}], 1, 4294967295) = 1 ([{fd=4, revents=POLLOUT}])

(eog:2786): EOG-WARNING **: Couldn't load icon: Icon 'image-loading' not present in theme
) = 16
0.000056 poll([{fd=4, events=POLLIN}], 1, 4294967295) = 1 ([{fd=4, revents=POLLIN}])
0.000029 recvfrom(4, "\1\0\214\0\0\0\0\0\241\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 4096, 0, NULL, NULL) = 32
0.000028 recvfrom(4, 0x1709c34, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)
0.000026 recvfrom(4, 0x1709c34, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)
0.000032 poll([{fd=4, events=POLLIN|POLLOUT}], 1, 4294967295) = 1 ([{fd=4, revents=POLLOUT}])

strace -r gnome-terminal:

[...]

0.000406 recvmsg(3, 0x7fffb9bbc6e0, MSG_CMSG_CLOEXEC) = -1 EAGAIN (Resource temporarily unavailable)
0.000434 sendmsg(3, {msg_name(0)=NULL, msg_iov(2)=[{"l\1\0\1\0\0\0\0\2\0\0\0[\0\0\0\1\1o\0\r\0\0\0/org/a11"..., 112}, {"", 0}], msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL) = 112
0.000328 poll([{fd=3, events=POLLIN}], 1, 25000) = 0 (Timeout)
25.006307 open("/usr/lib/x86_64-linux-gnu/charset.alias", O_RDONLY) = -1 ENOENT (No such file or directory)
0.000486 write(2, "\n** (gnome-terminal:5885): WARNI"..., 330
** (gnome-terminal:5885): WARNING **: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.NoReply: 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 broken.
) = 330
0.000519 socket(PF_LOCAL, SOCK_STREAM|SOCK_CLOEXEC, 0) = 4
0.000118 connect(4, {sa_family=AF_LOCAL, sun_path=@"/tmp/.X11-unix/X0"}, 20) = 0
0.000125 getpeername(4, {sa_family=AF_LOCAL, sun_path=@"/tmp/.X11-unix/X0"}, [20]) = 0

[...]
polym
la source
1
Cela se produit-il avec tous les utilisateurs ou uniquement avec le vôtre?
Braiam
@Braiam Oui. Je viens de le tester avec l'utilisateur rooten utilisant su -alors eog.
polym
1
Peut-être que strace (par exemple strace -r) ou ltrace (par exemple ltrace -r) pourrait faire la lumière.
Cristian Ciupitu
@CristianCiupitu J'ai ajouté les données pertinentes. Il y a 2 appels qui prennent environ 25 secondes (!).
polym
1
Génial! Qu'en est-il des autres programmes GTK + / GNOME, par exemple geditou gnome-disks? Leurs traces sont-elles similaires?
Cristian Ciupitu

Réponses:

6

Malheureusement, ce n'est pas une solution, mais ces informations pourraient vous être utiles.

Je pense que votre problème est que gnome-terminalet eogessayez de vous connecter à un D-bussocket d'instance at-spi , qui est mal configuré.

Comment fonctionne D-bus en général:

Commencez

Il y a 2 instances de bus D occasionnel, fonctionnant sur votre machine, par système et par utilisateur, et une spéciale liée à l'accessibilité - at-spi, démarrée par at-spi-bus-launcher.

L'instance par système est démarrée par des scripts d'initialisation, par exemple sur Mint avec /etc/init/dbus.

L'instance par utilisateur est exécutée au démarrage de Xsession /etc/X11/Xsession.d/75dbus_dbus-launch.

at-spil'instance semble être démarrée par gnome-session, qui lit les .desktopfichiers du $xdgrépertoire système . At-spi est configuré par /etc/xdg/autostart/at-spi-dbus-bus.desktop, qui démarre l' at-spiinstance.

Fonctionnement et configuration

D-bus fonctionne comme un courtier de messages pour les applications gnome. Ils peuvent s'envoyer des messages en appelant des fonctions de liaison dbus-glib (glib est la bibliothèque générale de Gnome C, qui est utilisée par la plupart des applications gnome).

De plus, les applications peuvent envoyer des messages à d'autres applications qui n'ont pas encore été démarrées. Dans ce cas, dbus peut d'abord démarrer ("activer") le service destinataire, puis lui délivrer un message (qui est souvent abusé par les gnomes pour démarrer de nouveaux processus ).

entrez la description de l'image ici

Les services que D-bus peut activer sont déterminés par les fichiers de configuration dans le /usr/share/dbus-1/dossier. system-servicesle sous-dossier est pour l'instance dbus par système, services- pour l' instance par utilisateur.

Notez également que ces instances d-bus créent un socket de domaine UNIX et écoutent les messages des applications. Les applications se connectent à ces prises au démarrage et échangent des données entre elles via le D-bus. Les sockets peuvent être mappés au système de fichiers (comme pour l'instance de D-bus par système, dont le socket est mappé /var/run/dbus/system_bus_socket) ou non.

Comment résoudre votre problème (je ne sais pas, en fait)

Je suppose que vous avez foiré la configuration de l' at-pciinstance: soit son démarrage par gnome-session ( /etc/xdg/autostart/at-spi-dbus-bus.desktop) ou son emplacement de socket.

Malheureusement, je n'ai pas d'idées plus concrètes sur ce qu'il faut faire. Pourriez - vous fournir votre psou pstreeinformation, en ce qui concerne at-pciet gnome-terminal?

Mettre à jour

J'ai essayé de trouver la source de votre message d'erreur:

J'ai essayé de récupérer le code source de gnome-terminal . grep -r "spi" gnome-terminal/ne donne aucun résultat; grep -r "dbus" gnome-terminal/en donne, mais ils semblent être liés au dbus normal, pas à at-pci. Donc, je pense que gnome-terminal n'accède pas at-spi2directement.

Au lieu de cela, seuls certains widgets gtk appellent gailou implicitement des atkfonctions , qui à leur tour essaient d'interagir avec le at-spisous-système et échouent, car vous l'avez tué:

entrez la description de l'image ici entrez la description de l'image ici

Donc, je pense que la solution pour vous est de restaurer les fichiers de at-spi2-corepackage suivants (basés sur dpkg -L at-spi2-core) ou simplement de réinstaller le package entier:

/usr/lib/at-spi2-core/at-spi-bus-launcher
/usr/lib/at-spi2-core/at-spi2-registryd
/usr/share/upstart/xdg/autostart/at-spi-dbus-bus.desktop
/usr/share/upstart/sessions/at-spi2-registryd.conf
/usr/share/doc/at-spi2-core/README
/usr/share/doc/at-spi2-core/copyright
/usr/share/doc/at-spi2-core/NEWS.gz
/usr/share/dbus-1/services/org.a11y.atspi.Registry.service
/usr/share/dbus-1/services/org.a11y.Bus.service
/etc/at-spi2/accessibility.conf
/etc/xdg/autostart/at-spi-dbus-bus.desktop
/etc/X11/Xsession.d/90qt-a11y
/usr/share/doc/at-spi2-core/changelog.Debian.gz

ALTERNATIVEMENT, vous pouvez essayer de désactiver l'accessibilité en inversant les actions décrites ici pour l'activer. (Fondamentalement, vous devrez modifier certains indicateurs gconftool-2comme décrit dans la section "Configuration de l'environnement de développement et de test d'applications accessibles").

Infos inutiles mais intéressantes

J'ai creusé un peu plus dans le code source de at-spi2-core

README sur le dossier master / bus / at-spi-bus-launcher.c indique que at-spi-bus-launcher est démarré par l'instance de dbus par session comme prévu. Fait intéressant, il existe également une propriété de fenêtre racine X windows AT_SPI_BUS, vous pouvez trouver sa valeur via la xprop --rootcommande et pour moi, elle est égale à

AT_SPI_BUS(STRING) = "unix:abstract=/tmp/dbus-vGwJEbWTQL,guid=76b894a309e380de6265479c53e8b537"

Je ne sais pas ce que c'est, je m'attendais à ce que ce soit un emplacement de socket, mais il n'y a pas un tel fichier /tmppour moi. :(

Update 2

Je pense que la raison précise de votre problème pourrait être que le dbus ordinaire par système voit votre /usr/share/dbus-1/services/org.a11y.Bus.servicefichier et essaie de l'activer en réponse aux appels ATK de gnome-terminal (parce que vos paramètres gconfou dconfont l'accessibilité activée et cela indique aux widgets gtk de fournir messages à at-spi). Cela échoue, car vous avez supprimé le at-spi-bus-launcherbinaire.

Ce qui me fait penser, c'est ma propre expérience avec Caribou Antler. Caribou est un clavier virtuel merdique, installé avec Debian. J'ai une tablette Debian 7, où j'ai installé un autre clavier virtuel à partir du référentiel Ubuntu - le génial OnBoard. Le fait est que les deux claviers sont activés / désactivés par la même clé d'accessibilité dans dconf. Donc, si la clé est activée, les deux sont activés en cliquant sur GtkEntry ou GtkTextView afin que le merde Caribou ne laisse pas mon OnBoard fonctionner correctement. Et si je désactive l'accessibilité dans gconf / dconf, OnBoard est également désactivé. :(

J'ai donc fait un hack grossier et j'ai juste commenté le contenu de mon /usr/share/dbus-1/services/org.gnome.Caribou.Antler.servicefichier. Maintenant, quand dbus essaie d'activer Caribou, il échoue, tandis que OnBoard est activé ok.

Mais lorsque je démarre une application graphique à partir d'un terminal, par exemple sublime_text, je reçois un message d'erreur, qui est formaté de manière très similaire au vôtre:

(sublime_text:4797): CARIBOU-CRITICAL **: file caribou-gtk-module.c: line1041: unexpected error: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.Caribou.Keyboard was not provided by any .service files (g-dbus-error-quark, 2)
Boris Burkov
la source
2

Cela le résout pour moi

export NO_AT_BRIDGE=1

alias open='xdg-open '

puis pour déclencher l'application appropriée pour ouvrir un problème de fichier arbitraire (par exemple):

open some-cool-image.jpg
Scott Stensland
la source