Gnome-Programme (eog / gnome-terminal) haben einen langsamen Start und erzeugen eine DBus.Error.NoReply-Warnung

10

Seit einiger Zeit eogund gnome-terminalstarten sehr langsam auf meinem (X) Ubuntu 13.10. Ich denke, andere Gnome-Tools sind ebenfalls betroffen, aber ich verwende keine anderen.

Jetzt erhalte ich org.freedesktop.DBus.Error.NoReplyjedes Mal eine Fehlermeldung gnome-terminal:

** (gnome-terminal: 5516): WARNUNG **: Fehler beim Abrufen der Adresse des Eingabehilfenbusses: org.freedesktop.DBus.Error.NoReply: Keine Antwort erhalten. Mögliche Ursachen sind: Die Remoteanwendung hat keine Antwort gesendet, die Sicherheitsrichtlinie für den Nachrichtenbus hat die Antwort blockiert, das Antwortzeitlimit ist abgelaufen oder die Netzwerkverbindung wurde unterbrochen.

und jedes Mal eogbeginnt:

** (eog: 4996): WARNUNG **: Fehler beim Abrufen der Adresse des Eingabehilfenbusses: org.freedesktop.DBus.Error.NoReply: Keine Antwort erhalten. Mögliche Ursachen sind: Die Remoteanwendung hat keine Antwort gesendet, die Sicherheitsrichtlinie für den Nachrichtenbus hat die Antwort blockiert, das Antwortzeitlimit ist abgelaufen oder die Netzwerkverbindung wurde unterbrochen.

(eog: 4996): EOG-WARNUNG **: Symbol konnte nicht geladen werden: Symbol 'Laden von Bildern' im Thema nicht vorhanden

Ich denke, es hat etwas damit zu tun, dass ich einige Programme entferne, die standardmäßig gestartet wurden, einschließlich at-spi2-registrydderer, von denen ich denke, dass sie zu Gnomes Accessibility Project gehören .

Laut dpkg --getselections | grep spi, at-spi2-coreist auf meinem System noch installiert.

Ich erinnere mich, dass ich etwas sehr Hackiges / Dummes getan habe, wie das Austauschen einiger Konfigurationsdateien oder Binärdateien mit leeren Echo-Programmen, um den Start des Dämons zu stoppen.

  • Wie kann ich diesen Fehler beheben?
  • Was verursacht diesen Fehler?

Google erstellt einige at-spi...verwandte Links:

Dies hat möglicherweise mit einem freedesktopverwandten Problem zu tun , das ich habe. nmcliSchauen Sie es sich also an: nmcli freedesktop DBus-Warnungen und -Fehler .


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
quelle
1
Passiert dies bei allen Benutzern oder nur bei Ihnen?
Braiam
@Braiam Ja. Getestet habe ich es nur mit Benutzern rootunter Verwendung su -, dann eog.
Polym
1
Vielleicht könnte strace (zB strace -r) oder ltrace (zB ltrace -r) etwas Licht ins Dunkel bringen.
Cristian Ciupitu
@CristianCiupitu Ich habe die relevanten Daten hinzugefügt. Es gibt 2 Anrufe, die ungefähr 25 Sekunden dauern (!).
Polym
1
Groß! Was ist mit anderen GTK + / GNOME-Programmen, zB geditoder gnome-disks? Sind ihre Spuren ähnlich?
Cristian Ciupitu

Antworten:

6

Leider ist dies keine Lösung, aber diese Informationen können Ihnen hilfreich sein.

Ich denke, Ihr Problem ist das gnome-terminalund Sie eogversuchen, eine Verbindung zu einem at-spi- D-busInstanz-Socket herzustellen , der falsch konfiguriert ist.

Wie D-Bus im Allgemeinen funktioniert:

Anfang

Es gibt zwei Instanzen eines gelegentlichen D-Busses, der auf Ihrem Computer ausgeführt wird, pro System und pro Benutzer, und einen speziellen, auf Barrierefreiheit bezogenen - at-spigestartet von at-spi-bus-launcher.

Die systembezogene Instanz wird durch Init-Skripte gestartet, z /etc/init/dbus. B. auf Mint with .

Die Instanz pro Benutzer wird ausgeführt, wenn Xsession gestartet wird /etc/X11/Xsession.d/75dbus_dbus-launch.

at-spiDie Instanz scheint von gnome-session gestartet zu werden, die .desktopDateien aus dem Systemverzeichnis liest $xdg. At-spi wird von konfiguriert /etc/xdg/autostart/at-spi-dbus-bus.desktop, wodurch die at-spiInstanz gestartet wird .

Funktionsweise und Konfiguration

D-Bus fungiert als Nachrichtenbroker für Gnome-Anwendungen. Sie können sich gegenseitig Nachrichten senden, indem sie Funktionen der dbus-glib-Bindung aufrufen (glib ist die allgemeine Gnome C-Bibliothek, die von den meisten Gnome-Anwendungen verwendet wird).

Darüber hinaus können Anwendungen Nachrichten an andere Anwendungen senden, die noch nicht gestartet wurden. In diesem Fall kann dbus zuerst den Empfängerdienst starten ("aktivieren") und dann eine Nachricht an ihn senden (was häufig von Gnomen missbraucht wird, um neue Prozesse zu starten ).

Geben Sie hier die Bildbeschreibung ein

Welche Dienste D-Bus aktivieren kann, wird durch die Konfigurationsdateien im /usr/share/dbus-1/Ordner bestimmt. system-servicesDer Unterordner gilt für die dbus-Instanz pro System, servicesfür eine pro Benutzer.

Beachten Sie auch, dass diese D-Bus-Instanzen einen UNIX-Domänen-Socket erstellen und auf Nachrichten von Anwendungen warten. Anwendungen stellen beim Start eine Verbindung zu diesen Sockeln her und tauschen Daten über den D-Bus miteinander aus. Sockets können dem Dateisystem zugeordnet werden (wie bei der Systeminstanz des D-Busses, dessen Socket zugeordnet ist /var/run/dbus/system_bus_socket) oder nicht.

Wie Sie Ihr Problem lösen können (ich weiß es eigentlich nicht)

Ich vermute, Sie haben die Konfiguration der at-pciInstanz durcheinander gebracht : entweder den Start durch gnome-session ( /etc/xdg/autostart/at-spi-dbus-bus.desktop) oder den Socket-Speicherort.

Leider habe ich keine konkreten Vorstellungen mehr, was zu tun ist. Könnten Sie Ihre liefern psoder pstreeInformationen in Bezug auf at-pciund gnome-terminal?

Aktualisieren

Ich habe versucht, die Quelle Ihrer Fehlermeldung herauszufinden:

Ich habe versucht, den Quellcode von gnome-terminal zu erfassen . grep -r "spi" gnome-terminal/gibt keine Ergebnisse; grep -r "dbus" gnome-terminal/gibt einige, aber sie scheinen mit dem normalen dbus verwandt zu sein, nicht mit at-pci. Ich glaube, das Gnome-Terminal greift nicht at-spi2direkt zu.

Stattdessen rufengailatk nur einige GTK-Widgets implizit oder Funktionen auf , die wiederum versuchen, mit dem at-spiSubsystem zu interagieren, und dies nicht tun, weil Sie es getötet haben:

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein

Ich denke, die Lösung für Sie besteht darin, die folgenden at-spi2-corePaketdateien (basierend auf dpkg -L at-spi2-core) wiederherzustellen oder einfach das gesamte Paket neu zu installieren:

/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

ALTERNATIV können Sie versuchen, die Barrierefreiheit zu deaktivieren, indem Sie die hier beschriebenen Aktionen invertieren , um sie zu aktivieren. (Grundsätzlich müssen Sie einige Flags anpassen, gconftool-2wie im Abschnitt "Einrichten der zugänglichen Anwendungsentwicklungs- und Testumgebung" beschrieben.)

Nutzlose, aber interessante Infos

Ich habe noch etwas mehr im Quellcode von at-spi2-core gesucht

Die README -Datei im Ordner master / bus / at-spi-bus-launcher.c gibt an , dass at-spi-bus-launcher erwartungsgemäß von einer Instanz pro Sitzung von dbus gestartet wird. Interessanterweise gibt es auch eine X-Windows-Root-Window-Eigenschaft AT_SPI_BUS, deren Wert Sie über den xprop --rootBefehl ermitteln können und die für mich gleich ist

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

Ich weiß nicht, was es ist, ich habe erwartet, dass es sich um einen Socket-Speicherort handelt, aber es gibt keine solche Datei /tmpfür mich. :(

Update 2

Ich denke, der genaue Grund für Ihr Problem könnte sein, dass der normale dbus pro System Ihre /usr/share/dbus-1/services/org.a11y.Bus.serviceDatei sieht und versucht, sie als Reaktion auf atk-Aufrufe vom gnome-terminal zu aktivieren (da für Ihre gconfoder dconfEinstellungen die Barrierefreiheit aktiviert ist und dies gtk-Widgets anweist, zu liefern Nachrichten an at-spi). Dies schlägt fehl, da Sie die at-spi-bus-launcherBinärdatei entfernt haben.

Was mich so denken lässt, ist meine eigene Erfahrung mit Caribou Antler. Caribou ist eine beschissene virtuelle Tastatur, die mit Debian installiert wurde. Ich habe ein Debian 7-Tablet, auf dem ich eine weitere virtuelle Tastatur aus dem Ubuntu-Repository installiert habe - das fantastische OnBoard. Die Sache ist, dass beide Tastaturen mit demselben Eingabehilfen in dconf ein- und ausgeschaltet werden. Wenn also die Taste eingeschaltet ist, werden beide durch Klicken auf GtkEntry oder GtkTextView aktiviert, damit das beschissene Karibu mein OnBoard nicht richtig funktionieren lässt. Und wenn ich die Barrierefreiheit in gconf / dconf deaktiviere, ist OnBoard ebenfalls deaktiviert. :(

Also habe ich einen groben Hack gemacht und nur den Inhalt meiner /usr/share/dbus-1/services/org.gnome.Caribou.Antler.serviceDatei auskommentiert. Wenn dbus nun versucht, Caribou zu aktivieren, schlägt dies fehl, während OnBoard in Ordnung aktiviert ist.

Wenn ich jedoch eine grafische App vom Terminal aus starte, z. B. sublime_text, erhalte ich eine Fehlermeldung, die sehr ähnlich wie Ihre formatiert ist:

(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
quelle
2

Das löst es für mich

export NO_AT_BRIDGE=1

alias open='xdg-open '

um dann die entsprechende App auszulösen, um ein beliebiges Dateiproblem zu öffnen (zum Beispiel):

open some-cool-image.jpg
Scott Stensland
quelle