Gnome programları (eog / gnome-terminali) yavaş başlatılır ve bir DBus üretilir.


10

Bir süredir eogve gnome-terminal(X) Ubuntu 13.10 üzerinde çok yavaş başlıyor. Diğer Gnome araçlarının da etkilendiğini düşünüyorum, ancak başkalarını kullanmıyorum.

Şimdi org.freedesktop.DBus.Error.NoReplyher gnome-terminalbaşladığımda bir hata alıyorum :

** (gnome terminali: 5516): UYARI **: Erişilebilirlik veri yolu adresi alınırken hata oluştu: org.freedesktop.DBus.Error.NoReply: Yanıt gelmedi. Olası nedenler şunlardır: uzak uygulama bir yanıt göndermedi, ileti veri yolu güvenlik ilkesi yanıtı engelledi, yanıt zaman aşımı süresi doldu veya ağ bağlantısı kesildi.

ve her seferinde eogbaşlar:

** (eog: 4996): UYARI **: Erişilebilirlik veri yolu adresi alınırken hata oluştu: org.freedesktop.DBus.Error.NoReply: Yanıt gelmedi. Olası nedenler şunlardır: uzak uygulama bir yanıt göndermedi, ileti veri yolu güvenlik ilkesi yanıtı engelledi, yanıt zaman aşımı süresi doldu veya ağ bağlantısı kesildi.

(eog: 4996): EOG-UYARI **: Simge yüklenemedi: Temada 'resim yükleme' simgesi yok

Bence Gnome'un Erişilebilirlik Projesi'neat-spi2-registryd ait olduğunu düşündüğüm, varsayılan olarak başlayan bazı programları kaldırmakla ilgili bir şey olduğunu düşünüyorum .

Göre dpkg --getselections | grep spi, at-spi2-corehalen sistemimde yüklü.

Daemon başlamasını durdurmak için boş yapılandırma programları ile bazı yapılandırma dosyaları veya ikili alışverişi gibi çok kötü / aptalca bir şey yapmayı hatırlıyorum.

  • Bu hatayı nasıl düzeltebilirim?
  • Bu hataya ne sebep olur?

Google, at-spi...ilgili bazı bağlantılar üretir :

Bu, freedesktopilgili bir sorunla ilgili olabilir nmcli, bu yüzden lütfen bir göz atın: nmcli freedesktop DBus uyarıları ve hataları .


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
Bu, tüm kullanıcılarınızla mı yoksa yalnızca sizinkilerle mi olur?
Braiam

@Braiam Evet. Ben sadece , o zaman rootkullanarak kullanıcı ile test . su -eog
Polym

1
Belki strace (örneğin strace -r) veya ltrace (örn. ltrace -r) Biraz ışık tutabilir.
Cristian Ciupitu

@CristianCiupitu İlgili verileri ekledim. Yaklaşık 25 saniye süren 2 çağrı vardır (!).
Polym

1
Harika! Peki ya diğer GTK + / GNOME programları, örneğin geditveya gnome-disks? İzleri benzer mi?
Cristian Ciupitu

Yanıtlar:


6

Ne yazık ki, bu bir çözüm değildir, ancak bu bilgi size yardımcı olabilir.

Bence, sorununuz budur gnome-terminalve yanlış yapılandırılmış eogbir at-spi D-busörneği soketine bağlanmaya çalışıyoruz .

D-bus genel olarak nasıl çalışır:

Başlamak

Makinenizde, sistem başına ve kullanıcı başına çalışan 2 sıradan D-bus örneği ve at-spibaşlatılan özel erişilebilirlikle ilgili bir tane vardır at-spi-bus-launcher.

Sistem başına örnek init komut dosyaları tarafından başlatılır, örneğin Mint with ile /etc/init/dbus.

Xsession başladığında kullanıcı başına örnek çalıştırılır /etc/X11/Xsession.d/75dbus_dbus-launch.

at-spiÖrneğin, .desktopdosyaları sistem $xdgdizininden okuyan gnome-session tarafından başlatılır . At-spi, örneği /etc/xdg/autostart/at-spi-dbus-bus.desktopbaşlatan tarafından yapılandırılır at-spi.

İşleyiş ve yapılandırma

D-bus, gnome uygulamaları için bir mesaj komisyoncusu olarak çalışır. Dbus-glib bağlamanın fonksiyonlarını çağırarak birbirlerine mesaj gönderebilirler (glib, çoğu gnome uygulaması tarafından kullanılan genel Gnome C kütüphanesidir).

Ayrıca, uygulamalar henüz başlatılmamış diğer uygulamalara mesaj gönderebilir. Bu durumda, dbus önce alıcı hizmetini başlatabilir ("etkinleştirebilir") ve sonra ona mesaj gönderebilir (bu genellikle gnome çocuklar tarafından yeni süreçler başlatmak için istismar edilir ).

resim açıklamasını buraya girin

D-bus'ın hangi hizmetleri etkinleştirebileceği /usr/share/dbus-1/klasördeki yapılandırma dosyaları tarafından belirlenir . system-servicesalt klasör, sistem başına dbus örneği içindir, services- kullanıcı başına.

Ayrıca, bu d-bus örneklerinin UNIX etki alanı soketi oluşturduğunu ve uygulamalardan gelen mesajları dinlediğini unutmayın. Uygulamalar başlangıçta bu soketlere bağlanır ve D-bus ile birbirleriyle veri alışverişi yapar. Yuvalar dosya sistemine (soketi eşlenen D-veri yolu başına sistem örneği için olduğu gibi /var/run/dbus/system_bus_socket) eşlenebilir veya eşleştirilemez .

Sorununuzu nasıl çözersiniz (aslında bilmiyorum)

Sanırım at-pciörnek yapılandırmasını berbat : ya gnome-session ( /etc/xdg/autostart/at-spi-dbus-bus.desktop) ile başlangıç ​​veya soket konumu.

Ne yazık ki, ne yapacağım hakkında daha somut bir fikrim yok. Ve ile ilgili bilgilerinizi psveya pstreebilgilerinizi verebilir misiniz ?at-pcignome-terminal

Güncelleme

Hata mesajınızın kaynağını bulmaya çalıştım:

GNOME terminalinin kaynak kodunu açmayı denedim . grep -r "spi" gnome-terminal/sonuç vermez; grep -r "dbus" gnome-terminal/Bazılarını verir, ancak normal pist ile ilgili gibi görünüyorlar, pci ile değil. Yani, inanıyorum ki, gnome terminali at-spi2doğrudan erişmiyor .

Bunun yerine, sadece bazı gtk widget'ları örtük olarak çağırıyor gailveya atkişlevler , bu da at-spialt sistemle etkileşime girmeye çalışıyor ve bunu yapmıyor, onu öldürdüğünüz için:

resim açıklamasını buraya girin resim açıklamasını buraya girin

Bu yüzden, sizin için çözümün, aşağıdaki at-spi2-corepaket dosyalarını (tabanlı dpkg -L at-spi2-core) geri yüklemek veya tüm paketi yeniden yüklemek olduğunu düşünüyorum:

/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

Alternatif olarak, etkinleştirmek için burada açıklanan eylemleri tersine çevirerek erişilebilirliği devre dışı bırakmayı deneyebilirsiniz . (Temel olarak, gconftool-2"Erişilebilir uygulama geliştirme ve test ortamını ayarlama" bölümünde açıklandığı gibi bazı bayrakları ayarlamanız gerekir).

Yararsız, ama ilginç bilgi

At-spi2-core'un kaynak kodunda biraz daha kazma yaptım

Master / bus / at-spi-bus-launcher.c klasöründeki README, at-spi-bus-launcher'ın beklendiği gibi oturum başına dbus örneği tarafından başlatıldığını bildirir. İlginç bir şekilde, AT_SPI_BUS bir X windows kök pencere özelliği de var, değerini xprop --rootkomutla bulabilirsiniz ve benim için eşittir

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

Bilmiyorum, ne olduğunu, bir soket konumu olmasını bekledim, ama /tmpbenim için böyle bir dosya yok . :(

Güncelleme 2

Ben Sorunun kesin nedeni sıradan başına sistemine dbus senin gördüğü olabileceğini düşünüyorum /usr/share/dbus-1/services/org.a11y.Bus.servicedosya ve gnome-terminali senin yüzünden (den atk çağrılarına yanıt olarak etkinleştirmek için çalışıyor gconfya da dconfayarlar erişilebilirlik sağladı ve bu teslim etmek gtk widget'lar söyler mesaj at-spi). Bu başarısız olur, çünkü at-spi-bus-launcherikili dosyayı kaldırdınız .

Beni böyle düşündüren şey, kendi deneyimim Caribou Antler. Caribou, Debian ile kurulan boktan bir sanal klavyedir. Ubuntu deposundan başka bir sanal klavye yüklediğim Debian 7 tabletim var - harika OnBoard. Mesele şu ki, her iki klavyenin dconf'daki aynı erişilebilirlik anahtarı tarafından açılması / kapatılması. Anahtar açıksa, her ikisi de GtkEntry veya GtkTextView tıklamasıyla etkinleştirilir, böylece boktan Caribou OnBoard'umun düzgün çalışmasına izin vermez. Ve gconf / dconf içinde erişilebilirliği devre dışı bırakırsam, OnBoard da devre dışı bırakılır. :(

Bu yüzden kaba bir hack yaptım ve sadece dosyamın içeriğini yorumladım /usr/share/dbus-1/services/org.gnome.Caribou.Antler.service. Şimdi dbus Caribou'yu etkinleştirmeye çalışırken, OnBoard etkinleştirildiğinde başarısız oluyor.

Ancak, terminalden bazı grafiksel uygulamaları başlattığımda sublime_text, kendinize çok benzer bir şekilde biçimlendirilmiş bir hata mesajı alıyorum:

(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

Bu benim için çözer

export NO_AT_BRIDGE=1

alias open='xdg-open '

ardından rasgele dosya sorununu açmak için uygun uygulamayı tetiklemek için (örneğin):

open some-cool-image.jpg
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.