그놈 프로그램 (eog / gnome-terminal)은 느리게 시작하여 DBus를 생성합니다.


10

얼마 동안, eog그리고 gnome-terminal아주 천천히 내 (X) 우분투 13.10 시작하고있다. 다른 그놈 도구도 영향을받는다고 생각하지만 다른 도구는 사용하지 않습니다.

이제 시작할 org.freedesktop.DBus.Error.NoReply때마다 오류가 발생 gnome-terminal합니다.

** (gnome-terminal : 5516) : 경고 ** : 접근성 버스 주소 검색 오류 : org.freedesktop.DBus.Error.NoReply : 회신을받지 못했습니다. 가능한 원인은 다음과 같습니다. 원격 애플리케이션이 응답을 보내지 않았거나, 메시지 버스 보안 정책이 응답을 차단했거나, 응답 시간이 만료되었거나, 네트워크 연결이 끊어졌습니다.

그리고 eog시작할 때마다 :

** (eog : 4996) : 경고 ** : 접근성 버스 주소 검색 오류 : org.freedesktop.DBus.Error.NoReply : 응답을받지 못했습니다. 가능한 원인은 다음과 같습니다. 원격 애플리케이션이 응답을 보내지 않았거나, 메시지 버스 보안 정책이 응답을 차단했거나, 응답 시간이 만료되었거나, 네트워크 연결이 끊어졌습니다.

(eog : 4996) : EOG-WARNING ** : 아이콘을로드 할 수 없음 : 아이콘 '이미지로드 중'이 테마에 없습니다

나는 그것이 Gnome의 접근성 프로젝트에at-spi2-registryd 속한다고 생각하는 것을 포함하여 기본적으로 시작된 일부 프로그램을 제거하는 것과 관련이 있다고 생각 합니다.

에 따르면 dpkg --getselections | grep spi, at-spi2-core여전히 내 시스템에 설치됩니다.

데몬의 시작을 막기 위해 빈 에코 프로그램으로 일부 구성 파일이나 바이너리를 교환하는 것과 같이 매우 해킹 / 바보 같은 일을 기억합니다.

  • 이 오류를 어떻게 해결할 수 있습니까?
  • 이 오류의 원인은 무엇입니까?

Google은 몇 가지 at-spi...관련 링크를 생성 합니다.

이것은 freedesktop내가 가진 관련 문제 와 관련 이있을 수 nmcli있으므로 nmcli freedesktop DBus warnings and errors을 살펴보십시오 .


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
모든 사용자 또는 귀하의 사용자에게만 해당됩니까?
Braiam

@Braiam 예. 방금 ,을 root사용하여 사용자와 함께 테스트했습니다 . su -eog
polym

1
아마도 strace (예 :)strace -r 또는 ltrace (예 :)가ltrace -r 약간의 빛을 비출 수 있습니다.
Cristian Ciupitu

@CristianCiupitu 관련 데이터를 추가했습니다. 약 25 초 (!)의 통화가 2 개 있습니다.
polym

1
큰! 다른 어떤 GTK + / GNOME 프로그램, 예를 들어 약 gedit또는 gnome-disks? 그들의 흔적이 비슷합니까?
Cristian Ciupitu

답변:


6

불행히도 이것은 해결책이 아니지만이 정보가 도움이 될 수 있습니다.

나는 당신의 문제가 인 생각 gnome-terminaleog가 AT-SPI로 연결을 시도하는 D-bus잘못 구성되어 예를 소켓.

D- 버스의 일반적인 작동 방식 :

스타트 업

시스템, 시스템 및 사용자별로 실행되는 일반 D- 버스 인스턴스는 2 개이며, 특수 액세스 가능성 관련 하나 at-spi는로 시작합니다 at-spi-bus-launcher.

시스템 별 인스턴스는 init 스크립트로 시작합니다 (예 : Mint with) /etc/init/dbus.

Xsession이 시작될 때 사용자 별 인스턴스가 실행됩니다 /etc/X11/Xsession.d/75dbus_dbus-launch.

at-spi인스턴스 .desktop는 시스템 $xdg디렉토리 에서 파일 을 읽는 gnome-session에 의해 시작된 것으로 보입니다 . At-spi는 /etc/xdg/autostart/at-spi-dbus-bus.desktop로 시작하여 at-spi인스턴스 를 시작 합니다.

기능 및 구성

D- 버스는 그놈 응용 프로그램의 메시지 브로커로 작동합니다. dbus-glib 바인딩 기능을 호출하여 서로에게 메시지를 보낼 수 있습니다 (glib는 대부분의 그놈 응용 프로그램에서 사용하는 일반 Gnome C 라이브러리입니다).

또한 응용 프로그램은 아직 시작되지 않은 다른 응용 프로그램으로 메시지를 보낼 수 있습니다. 이 경우 dbus는 먼저 수신자 서비스를 시작 ( "활성화") 한 다음 메시지를 전달할 수 있습니다 ( 그놈 사용자 는 종종 새로운 프로세스를 시작하기 위해 남용합니다 ).

여기에 이미지 설명을 입력하십시오

D- 버스가 활성화 할 수있는 서비스는 /usr/share/dbus-1/폴더의 구성 파일에 따라 결정됩니다 . system-services하위 폴더는 시스템 별 dbus 인스턴스 용이며 services사용자 별입니다.

또한 이러한 d- 버스 인스턴스는 UNIX 도메인 소켓을 만들고 응용 프로그램의 메시지를 수신합니다. 응용 프로그램은 시작시 해당 소켓에 연결하고 D- 버스를 통해 서로 데이터를 교환합니다. 소켓은 파일 시스템에 매핑 될 수 있습니다 (소켓이에 매핑 된 D- 버스의 시스템 별 인스턴스와 동일 /var/run/dbus/system_bus_socket).

문제를 해결하는 방법 (실제로 모르겠습니다)

at-pcignome-session ( /etc/xdg/autostart/at-spi-dbus-bus.desktop)에 의한 시작 또는 소켓 위치 와 같은 인스턴스 구성을 엉망으로 생각합니다 .

불행히도, 나는 무엇을 해야할지에 대한 더 구체적인 아이디어가 없습니다. 와 관련 하여 귀하 ps또는 pstree정보 를 제공 할 수 있습니까?at-pcignome-terminal

최신 정보

오류 메시지의 출처를 찾으려고했습니다.

gnome-terminal 의 소스 코드를 잡으려고했습니다 . grep -r "spi" gnome-terminal/결과를 제공하지 않습니다. grep -r "dbus" gnome-terminal/일부를 제공하지만 atcci가 아닌 일반 dbus와 관련이있는 것 같습니다. 따라서 gnome-terminal은 at-spi2직접 액세스하지 않습니다 .

대신, 일부 gtk 위젯은 암시 적으로 호출 gail또는 atk함수 이며, 이는 at-spi하위 시스템과 상호 작용하려고 시도 하지 않고 실패하면 다음과 같이 종료합니다.

여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오

따라서 해결책은 다음 at-spi2-core패키지 파일 (기반 dpkg -L at-spi2-core) 을 복원 하거나 전체 패키지를 다시 설치하는 것입니다.

/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

또는 여기 에 설명 된 작업을 반전시켜 액세스 가능성을 비활성화 할 수 있습니다. (기본적으로 gconftool-2"액세스 가능한 응용 프로그램 개발 및 테스트 환경 설정"섹션에 설명 된대로 일부 플래그를 조정 해야합니다.)

쓸모 없지만 흥미로운 정보

at-spi2-core 의 소스 코드에서 좀 더 파고 들었습니다.

master / bus / at-spi-bus-launcher.c 폴더의 README는 at-spi-bus-launcher가 예상대로 dbus의 세션 별 인스턴스에 의해 시작되었음을 알려줍니다. 흥미롭게도 X windows root window 속성 AT_SPI_BUS도 있습니다. xprop --root명령을 통해 값을 찾을 수 있습니다.

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

나는 그것이 무엇인지, 소켓 위치가 될 것으로 예상했지만 그와 같은 파일은 없습니다 /tmp. :(

업데이트 2

문제의 정확한 원인은 일반적인 시스템 당 dbus가 /usr/share/dbus-1/services/org.a11y.Bus.service파일을 보고 gnome-terminal의 atk 호출에 응답 하여 파일을 활성화하려고하기 때문일 수 있습니다 ( gconf또는 dconf설정에 접근성이 활성화되어 있기 때문에 gtk 위젯이 전달하도록 지시합니다) 님에게 보내는 메시지 at-spi). 실패로 인해 at-spi-bus-launcher바이너리를 제거했습니다 .

내가 그렇게 생각하는 것은에 대한 나의 경험 Caribou Antler이다. 순록은 데비안과 함께 설치되는 칙칙한 가상 키보드입니다. 데비안 7 태블릿이 있는데 우분투 저장소에서 멋진 가상 키보드 인 멋진 OnBoard를 설치했습니다. 문제는 dconf의 동일한 접근성 키로 두 키보드를 켜거나 끕니다. 따라서 키가 켜져 있으면 GtkEntry 또는 GtkTextView를 클릭하여 둘 다 활성화 되므로 칙칙한 순록이 내 OnBoard가 올바르게 작동하지 않습니다. gconf / dconf에서 내게 필요한 옵션을 비활성화하면 OnBoard도 비활성화됩니다. :(

그래서 나는 거친 해킹을하고 내 /usr/share/dbus-1/services/org.gnome.Caribou.Antler.service파일 의 내용을 주석 처리했습니다 . 이제 dbus가 순록을 활성화하려고하면 실패하고 OnBoard는 정상적으로 활성화됩니다.

그러나와 같은 터미널에서 일부 그래픽 응용 프로그램을 시작 sublime_text하면 오류 메시지가 표시됩니다.

(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

이것은 나를 위해 그것을 해결

export NO_AT_BRIDGE=1

alias open='xdg-open '

그런 다음 임의의 파일 문제를 여는 적절한 앱을 트리거하십시오 (예 :).

open some-cool-image.jpg
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.