I programmi Gnome (eog / gnome-terminal) hanno un avvio lento e producono un avviso DBus.Error.NoReply


10

Da qualche tempo, eoge gnome-terminalsto iniziando molto lentamente sul mio (X) Ubuntu 13.10. Penso che anche altri strumenti di Gnome siano interessati, ma non ne uso altri.

Ora ricevo un org.freedesktop.DBus.Error.NoReplyerrore ogni volta che gnome-terminalinizia:

** (gnome-terminal: 5516): AVVERTENZA **: errore durante il recupero dell'indirizzo del bus di accessibilità: org.freedesktop.DBus.Error.NoReply: Non ho ricevuto una risposta. Le possibili cause includono: l'applicazione remota non ha inviato una risposta, la politica di sicurezza del bus messaggi ha bloccato la risposta, il timeout della risposta è scaduto o la connessione di rete è stata interrotta.

e ogni volta che eoginizia:

** (eog: 4996): AVVISO **: errore durante il recupero dell'indirizzo del bus di accessibilità: org.freedesktop.DBus.Error.NoReply: non è stata ricevuta una risposta. Le possibili cause includono: l'applicazione remota non ha inviato una risposta, la politica di sicurezza del bus messaggi ha bloccato la risposta, il timeout della risposta è scaduto o la connessione di rete è stata interrotta.

(eog: 4996): EOG-WARNING **: Impossibile caricare l'icona: icona 'caricamento immagine' non presente nel tema

Penso che abbia qualcosa a che fare con la mia rimozione di alcuni programmi che sono stati avviati per impostazione predefinita, incluso at-spi2-registryd, che penso appartenga al Progetto di accessibilità di Gnome .

Secondo dpkg --getselections | grep spi, at-spi2-coreè ancora installato sul mio sistema.

Ricordo di aver fatto qualcosa di molto confuso / stupido come scambiare alcuni file di configurazione o binari con programmi di eco vuoti per fermare l'avvio del demone.

  • Come posso correggere questo errore?
  • Cosa causa questo errore?

Google produce alcuni at-spi...link correlati:

Questo potrebbe avere a che fare con un freedesktopproblema correlato che ho riscontrato nmcli, quindi per favore dai un'occhiata: nmcli freedesktop DBus avvertimenti ed errori .


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

[...]

1
Questo succede con tutti gli utenti o solo con i tuoi?
Braiam,

@Braiam Sì. L'ho appena testato con l'utente rootusando su -, quindi eog.
polimero

1
Forse strace (es. strace -r) O ltrace (es. ltrace -r) Potrebbero far luce.
Cristian Ciupitu,

@CristianCiupitu Ho aggiunto i dati rilevanti. Ci sono 2 chiamate che impiegano circa 25 secondi (!).
polimero

1
Grande! Che dire di altri programmi GTK + / GNOME, ad esempio gedito gnome-disks? Le loro tracce sono simili?
Cristian Ciupitu,

Risposte:


6

Sfortunatamente, questa non è una soluzione, ma queste informazioni potrebbero esserti utili.

Penso che il tuo problema sia questo gnome-terminale eogstia tentando di connettersi a un D-bussocket di istanza at-spi , che è configurato in modo errato.

Come funziona D-bus in generale:

Avviare

Esistono 2 istanze di D-bus casuali, in esecuzione sulla macchina, per sistema e per utente e una speciale relativa all'accessibilità - at-spi, avviata da at-spi-bus-launcher.

L'istanza per sistema è avviata dagli script init, ad es. Su Mint con /etc/init/dbus.

L'istanza per utente viene eseguita all'avvio di Xsession /etc/X11/Xsession.d/75dbus_dbus-launch.

at-spiL'istanza sembra essere avviata da gnome-session, che legge i .desktopfile dalla $xdgdirectory di sistema . At-spi è configurato da /etc/xdg/autostart/at-spi-dbus-bus.desktop, che avvia at-spiistanza.

Funzionamento e configurazione

D-bus funziona come broker di messaggi per applicazioni gnome. Possono scambiarsi messaggi chiamando le funzioni dell'associazione dbus-glib (glib è la libreria Gnome C generale, che viene utilizzata dalla maggior parte delle applicazioni gnome).

Inoltre, le applicazioni possono inviare messaggi ad altre applicazioni non ancora avviate. In tal caso dbus può prima avviare ("attivare") il servizio destinatario e quindi consegnare il messaggio (che viene spesso abusato dai gnomi per avviare nuovi processi ).

inserisci qui la descrizione dell'immagine

Quali servizi può attivare D-bus è determinato dai file di configurazione nella /usr/share/dbus-1/cartella. system-servicesla sottocartella è per l'istanza dbus per sistema, services- per quella per utente.

Si noti inoltre che tali istanze di d-bus creano un socket di dominio UNIX e ascoltano i messaggi dalle applicazioni. Le applicazioni si collegano a tali socket all'avvio e si scambiano dati tramite D-bus. I socket possono essere associati al file system (come per l'istanza per sistema di D-bus, il cui socket è mappato /var/run/dbus/system_bus_socket) oppure no.

Come risolvere il tuo problema (in realtà non lo so)

Immagino che tu abbia incasinato la configurazione at-pcidell'istanza: o il suo avvio da gnome-session ( /etc/xdg/autostart/at-spi-dbus-bus.desktop) o la sua posizione del socket.

Sfortunatamente, non ho altre idee concrete su cosa fare. Potresti fornire le tue informazioni pso pstree, riguardo at-pcie gnome-terminal?

Aggiornare

Ho provato a scoprire l'origine del tuo messaggio di errore:

Ho provato a grepping il codice sorgente di gnome-terminal . grep -r "spi" gnome-terminal/non dà alcun risultato; grep -r "dbus" gnome-terminal/ne dà alcuni, ma sembrano essere correlati al normale dbus, non a-pci. Quindi, credo, gnome-terminal non accede at-spi2direttamente.

Invece, solo alcuni widget GTK stanno chiamando gailo atkfunzioni implicitamente , che a loro volta cercano di interagire con il at-spisottosistema e non riescono a farlo, perché l'hai ucciso:

inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine

Quindi, penso che la soluzione per te sia ripristinare i seguenti file del at-spi2-corepacchetto (basato su dpkg -L at-spi2-core) o semplicemente reinstallare l'intero pacchetto:

/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

ALTERNATIVAMENTE, potresti provare a disabilitare l'accessibilità invertendo le azioni, descritte qui per abilitarlo. (Fondamentalmente, dovrete modificare alcuni flag gconftool-2come descritto nella sezione "Impostazione dell'ambiente di sviluppo e test delle applicazioni accessibili").

Informazioni inutili, ma interessanti

Ho fatto qualche altro scavo nel codice sorgente di at-spi2-core

Il file README nella cartella master / bus / at-spi-bus-launcher.c indica che il programma di avvio at-spi-bus è avviato dall'istanza di dbus per sessione come previsto. È interessante notare che c'è anche una proprietà della finestra radice di X windows AT_SPI_BUS, puoi trovarne il valore tramite xprop --rootcomando e per me è uguale

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

Non so cosa sia, mi aspettavo che fosse una posizione socket, ma non esiste un file simile /tmpper me. :(

Aggiornamento 2

Penso che la ragione precisa del tuo problema potrebbe essere che il normale dbus per sistema vede il tuo /usr/share/dbus-1/services/org.a11y.Bus.servicefile e sta provando ad attivarlo in risposta alle chiamate atk da gnome-terminal (perché il tuo gconfo le dconfimpostazioni hanno l'accessibilità abilitata e questo dice ai widget GTK di consegnare messaggi a at-spi). Questo non riesce, perché hai rimosso il at-spi-bus-launcherbinario.

Ciò che mi fa pensare è la mia esperienza con Caribou Antler. Caribou è una tastiera virtuale di merda, installata con Debian. Ho un tablet Debian 7, dove ho installato un'altra tastiera virtuale dal repository Ubuntu - il fantastico OnBoard. Il fatto è che entrambe le tastiere sono attivate / disattivate dalla stessa chiave di accessibilità in dconf. Quindi, se la chiave è attiva, entrambi sono attivati ​​da un clic su GtkEntry o GtkTextView in modo che il caribù di merda non permetta al mio OnBoard di funzionare correttamente. E se disabilito l'accessibilità in gconf / dconf, anche OnBoard è disabilitato. :(

Quindi ho fatto un hack rozzo e ho appena commentato il contenuto del mio /usr/share/dbus-1/services/org.gnome.Caribou.Antler.servicefile. Ora quando dbus sta provando ad attivare Caribou, fallisce, mentre OnBoard è attivato ok.

Ma quando avvio un'app grafica dal terminale, come ad esempio sublime_text, ricevo un messaggio di errore, che è formattato in modo molto simile al tuo:

(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)

2

Questo lo risolve per me

export NO_AT_BRIDGE=1

alias open='xdg-open '

quindi per attivare l'app appropriata per aprire il problema di file arbitrario (ad esempio):

open some-cool-image.jpg
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.