Los programas Gnome (eog / gnome-terminal) tienen un inicio lento y producen una advertencia DBus.Error.NoReply

10

Desde hace algún tiempo, eogy gnome-terminalestoy comenzando muy lentamente en mi (X) Ubuntu 13.10. Creo que otras herramientas de Gnome también se ven afectadas, pero no uso ninguna otra.

Ahora recibo un org.freedesktop.DBus.Error.NoReplyerror cada vez que gnome-terminalcomienza:

** (gnome-terminal: 5516): ADVERTENCIA **: Error al recuperar la dirección del bus de accesibilidad: org.freedesktop.DBus.Error.NoReply: no recibió una respuesta. Las causas posibles incluyen: la aplicación remota no envió una respuesta, la política de seguridad del bus de mensajes bloqueó la respuesta, el tiempo de espera de respuesta expiró o la conexión de red se interrumpió.

y cada vez que eogcomienza:

** (eog: 4996): ADVERTENCIA **: Error al recuperar la dirección del bus de accesibilidad: org.freedesktop.DBus.Error.NoReply: no recibió una respuesta. Las causas posibles incluyen: la aplicación remota no envió una respuesta, la política de seguridad del bus de mensajes bloqueó la respuesta, el tiempo de espera de respuesta expiró o la conexión de red se interrumpió.

(eog: 4996): EOG-WARNING **: No se pudo cargar el icono: el icono 'carga de imagen' no está presente en el tema

Creo que tiene algo que ver conmigo al eliminar algunos programas que se estaban iniciando por defecto, incluido at-spi2-registryd, que creo que pertenece al Proyecto de Accesibilidad de Gnome .

Según dpkg --getselections | grep spi, at-spi2-coretodavía está instalado en mi sistema.

Recuerdo haber hecho algo muy hacky / estúpido como intercambiar algunos archivos de configuración o binarios con programas de eco vacíos para detener el inicio del demonio.

  • ¿Cómo puedo solucionar este error?
  • ¿Qué causa este error?

Google produce algunos at-spi...enlaces relacionados:

Esto podría tener que ver con un freedesktopproblema relacionado con el que tengo nmcli, así que échale un vistazo: advertencias y errores de 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

[...]
polimero
fuente
1
¿Esto sucede con todos los usuarios o solo con los suyos?
Braiam
@Braiam Sí. Simplemente lo probé con el usuario rootusando su -, entonces eog.
polym
1
Quizás strace (p strace -r. Ej. ) O ltrace (p ltrace -r. Ej. ) Podrían arrojar algo de luz.
Cristian Ciupitu
@CristianCiupitu He agregado los datos relevantes. Hay 2 llamadas que tardan unos 25 segundos (!).
Polym
1
¡Excelente! ¿Qué pasa con otros programas GTK + / GNOME, por ejemplo gedito gnome-disks? ¿Son similares sus huellas?
Cristian Ciupitu

Respuestas:

6

Desafortunadamente, esta no es una solución, pero esta información podría serle de ayuda.

Creo que su problema es eso gnome-terminale eogintenta conectarse a un D-bussocket de instancia at-spi , que está mal configurado.

Cómo funciona D-bus en general:

Puesta en marcha

Hay 2 instancias de D-bus casual, que se ejecutan en su máquina, por sistema y por usuario, y una especial relacionada con la accesibilidad at-spi, iniciada por at-spi-bus-launcher.

La instancia por sistema se inicia mediante scripts de inicio, por ejemplo, en Mint con /etc/init/dbus.

La instancia por usuario se ejecuta cuando se inicia Xsession /etc/X11/Xsession.d/75dbus_dbus-launch.

at-spiLa instancia parece ser iniciada por gnome-session, que lee .desktoparchivos del $xdgdirectorio del sistema . At-spi está configurado por /etc/xdg/autostart/at-spi-dbus-bus.desktop, que inicia la at-spiinstancia.

Funcionamiento y configuración.

D-bus funciona como un agente de mensajes para aplicaciones gnome. Pueden enviarse mensajes entre sí llamando a funciones de enlace dbus-glib (glib es la biblioteca general de Gnome C, que es utilizada por la mayoría de las aplicaciones de gnome).

Además, las aplicaciones pueden enviar mensajes a otras aplicaciones que aún no se iniciaron. En ese caso, dbus primero puede iniciar ("activar") el servicio del destinatario y luego entregarle un mensaje (que a menudo es maltratado por gnome guys para iniciar nuevos procesos ).

ingrese la descripción de la imagen aquí

Los servicios que D-bus puede activar están determinados por los archivos de configuración en la /usr/share/dbus-1/carpeta. system-servicesla subcarpeta es para la instancia de dbus por sistema, services- para una por usuario.

Tenga en cuenta también que esas instancias de d-bus crean un socket de dominio UNIX y escuchan los mensajes de las aplicaciones. Las aplicaciones se conectan a esos sockets en el inicio e intercambian datos entre sí a través de D-bus. Los sockets pueden asignarse al sistema de archivos (como para la instancia de D-bus por sistema, cuyo socket está asignado /var/run/dbus/system_bus_socket) o no.

Cómo resolver tu problema (no sé, en realidad)

Supongo que arruinó la configuración de la at-pciinstancia: ya sea su inicio por gnome-session ( /etc/xdg/autostart/at-spi-dbus-bus.desktop) o su ubicación de socket.

Desafortunadamente, no tengo más ideas concretas sobre qué hacer. ¿Podría proporcionar su información pso pstreeinformación sobre at-pciy gnome-terminal?

Actualizar

Traté de averiguar la fuente de su mensaje de error:

He intentado grepping el código fuente de gnome-terminal . grep -r "spi" gnome-terminal/no da ningún resultado; grep -r "dbus" gnome-terminal/da algunos, pero parecen estar relacionados con el dbus normal, no con at-pci. Entonces, creo que gnome-terminal no accede at-spi2directamente.

En cambio, solo algunos widgets gtk están llamando gailo atkfunciones implícitamente , que a su vez intentan interactuar con el at-spisubsistema y no lo hacen, porque lo has matado:

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Entonces, creo que la solución para usted es restaurar los siguientes archivos del at-spi2-corepaquete (basados ​​en dpkg -L at-spi2-core) o simplemente reinstalar todo el paquete:

/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, podría intentar deshabilitar la accesibilidad invirtiendo las acciones, descritas aquí para habilitarla. (Básicamente, tendrá que modificar algunos indicadores gconftool-2como se describe en la sección "Configuración del entorno de prueba y desarrollo de aplicaciones accesibles").

Información inútil pero interesante

He profundizado un poco más en el código fuente de at-spi2-core

README en la carpeta master / bus / at-spi-bus-launcher.c indica que at-spi-bus-launcher se inicia por instancia de dbus por sesión como se esperaba. Curiosamente, también hay una propiedad de ventana raíz de Windows X AT_SPI_BUS, puede encontrar su valor a través del xprop --rootcomando y para mí es igual

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

No sé qué es, esperaba que fuera una ubicación de socket, pero no hay tal archivo /tmppara mí. :(

Actualización 2

Creo que la razón exacta de su problema podría ser que la ordinaria dbus por sistema ve su /usr/share/dbus-1/services/org.a11y.Bus.servicearchivo y está tratando de activarlo en respuesta a ATK llamadas de gnome-terminal (debido a sus gconfo dconfajustes han permitido la accesibilidad y esto le dice a controles GTK para entregar mensajes a at-spi). Esto falla, porque ha eliminado el at-spi-bus-launcherbinario.

Lo que me hace pensar así es mi propia experiencia Caribou Antler. Caribou es un teclado virtual de mierda, instalado con Debian. Tengo una tableta Debian 7, donde instalé otro teclado virtual del repositorio de Ubuntu: el increíble OnBoard. La cuestión es que ambos teclados se activan / desactivan mediante la misma tecla de accesibilidad en dconf. Entonces, si la tecla está activada, ambas se activan haciendo clic en GtkEntry o GtkTextView para que Caribou no permita que mi dispositivo a bordo funcione correctamente. Y si desactivo la accesibilidad en gconf / dconf, OnBoard también se desactiva. :(

Así que hice un hack crudo y solo comenté el contenido de mi /usr/share/dbus-1/services/org.gnome.Caribou.Antler.servicearchivo. Ahora, cuando dbus está tratando de activar Caribou, falla, mientras que OnBoard está activado.

Pero cuando inicio alguna aplicación gráfica desde la terminal, como sublime_text, recibo un mensaje de error, que está formateado de una manera muy similar a la suya:

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

Esto me soluciona

export NO_AT_BRIDGE=1

alias open='xdg-open '

luego para activar la aplicación adecuada para abrir un problema de archivo arbitrario (por ejemplo):

open some-cool-image.jpg
Scott Stensland
fuente