Các chương trình Gnome (eog / gnome-terminal) khởi động chậm và tạo ra DBus.Error.NoReply Cảnh báo


10

Đôi khi, eoggnome-terminalbắt đầu rất chậm trên (13) Ubuntu 13.10 của tôi. Tôi nghĩ các công cụ Gnome khác cũng bị ảnh hưởng, nhưng tôi không sử dụng bất kỳ công cụ nào khác.

Bây giờ tôi gặp org.freedesktop.DBus.Error.NoReplylỗi mỗi lần gnome-terminalbắt đầu:

** (gnome-terminal: 5516): CẢNH BÁO **: Lỗi khi truy xuất địa chỉ bus khả năng truy cập: org.freedesktop.DBus.Error.NoReply: Không nhận được phản hồi. Các nguyên nhân có thể bao gồm: ứng dụng từ xa không gửi trả lời, chính sách bảo mật bus tin nhắn đã chặn trả lời, hết thời gian trả lời hoặc kết nối mạng bị hỏng.

và mỗi lần eogbắt đầu:

** (eog: 4996): CẢNH BÁO **: Lỗi khi truy xuất địa chỉ xe buýt khả năng truy cập: org.freedesktop.DBus.Error.NoReply: Không nhận được phản hồi. Các nguyên nhân có thể bao gồm: ứng dụng từ xa không gửi trả lời, chính sách bảo mật bus tin nhắn đã chặn trả lời, hết thời gian trả lời hoặc kết nối mạng bị hỏng.

(eog: 4996): EOG-CẢNH BÁO **: Không thể tải biểu tượng: Biểu tượng 'tải hình ảnh' không có trong chủ đề

Tôi nghĩ rằng nó có liên quan đến tôi khi xóa một số chương trình bắt đầu theo mặc định, bao gồm at-spi2-registryd, mà tôi nghĩ thuộc về Dự án Trợ năng của Gnome .

Theo dpkg --getselections | grep spi, at-spi2-corevẫn được cài đặt trên hệ thống của tôi.

Tôi nhớ đã làm một cái gì đó rất hacky / ngu ngốc như trao đổi một số tập tin cấu hình hoặc nhị phân với các chương trình echo trống để ngăn daemon bắt đầu.

  • Làm thế nào tôi có thể sửa lỗi này?
  • Điều gì gây ra lỗi này?

Google sản xuất một số at-spi...liên kết liên quan:

Điều này có thể freedesktopliên quan đến một vấn đề liên quan mà tôi gặp phải nmcli, vì vậy xin hãy xem xét: các cảnh báo và lỗi DBus của nmcli freedesktop .


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
Điều này xảy ra với tất cả người dùng hay chỉ của bạn?
Braiam

@Braiam Vâng. Tôi chỉ thử nó với người dùng rootbằng cách sử dụng su -, sau đó eog.
polym

1
Có lẽ strace (ví dụ strace -r) hoặc ltrace (ví dụ ltrace -r) có thể làm sáng tỏ một số.
Cristian Ciupitu

@CristianCiupitu Tôi đã thêm các dữ liệu liên quan. Có 2 cuộc gọi mất khoảng 25 giây (!).
polym

1
Tuyệt quá! Còn các chương trình GTK + / Gnome khác, ví dụ gedithay gnome-disks? Là dấu vết của họ tương tự?
Cristian Ciupitu

Câu trả lời:


6

Thật không may, đây không phải là một giải pháp, nhưng thông tin này có thể giúp ích cho bạn.

Tôi nghĩ, vấn đề của bạn là như vậy gnome-terminaleogđang cố gắng kết nối với một D-busổ cắm cá thể at-spi , được cấu hình sai.

Cách thức hoạt động của xe buýt D:

Khởi nghiệp

Có 2 trường hợp xe buýt D thông thường, chạy trên máy của bạn, mỗi hệ thống và mỗi người dùng và một trường hợp đặc biệt liên quan đến khả năng truy cập - at-spi, bắt đầu bằng at-spi-bus-launcher.

Ví dụ trên mỗi hệ thống được bắt đầu bởi init script, ví dụ như trên Mint với /etc/init/dbus.

Ví dụ cho mỗi người dùng được chạy, khi Xsession bắt đầu /etc/X11/Xsession.d/75dbus_dbus-launch.

at-spicá thể dường như được bắt đầu bởi gnome-session, nó đọc .desktopcác tệp từ $xdgthư mục hệ thống . At-spi được cấu hình bởi /etc/xdg/autostart/at-spi-dbus-bus.desktop, bắt đầu at-spicá thể.

Chức năng và cấu hình

D-bus hoạt động như một nhà môi giới tin nhắn cho các ứng dụng gnome. Họ có thể gửi tin nhắn cho nhau bằng cách gọi các chức năng của liên kết dbus-glib (glib là thư viện Gnome C chung, được sử dụng bởi hầu hết các ứng dụng gnome).

Hơn nữa, các ứng dụng có thể gửi tin nhắn đến các ứng dụng khác, chưa được bắt đầu. Trong trường hợp đó, dbus trước tiên có thể bắt đầu ("kích hoạt") dịch vụ người nhận và sau đó gửi tin nhắn đến nó (thường bị những kẻ gnome lạm dụng để bắt đầu các quy trình mới ).

nhập mô tả hình ảnh ở đây

Những dịch vụ nào D-bus có thể kích hoạt được xác định bởi các tệp cấu hình trong /usr/share/dbus-1/thư mục. system-servicesthư mục con dành cho phiên bản dbus trên mỗi hệ thống, services- cho mỗi người dùng.

Cũng lưu ý rằng các trường hợp d-bus đó tạo ra một ổ cắm tên miền UNIX và lắng nghe các thông báo từ các ứng dụng. Các ứng dụng kết nối với các ổ cắm đó khi khởi động và trao đổi dữ liệu với nhau thông qua D-bus. Các ổ cắm có thể được ánh xạ tới hệ thống tệp (như đối với mỗi hệ thống của D-bus, có ổ cắm được ánh xạ tới /var/run/dbus/system_bus_socket) hoặc không.

Làm thế nào để giải quyết vấn đề của bạn (thực sự tôi không biết)

Tôi đoán rằng bạn đã làm hỏng cấu hình của at-pcicá thể: hoặc là khởi động bởi gnome-session ( /etc/xdg/autostart/at-spi-dbus-bus.desktop) hoặc vị trí ổ cắm của nó.

Thật không may, tôi không có ý tưởng cụ thể hơn về những việc cần làm. Bạn có thể cung cấp pshoặc pstreethông tin của bạn , liên quan at-pcignome-terminal?

Cập nhật

Tôi đã cố gắng tìm ra nguồn thông báo lỗi của bạn:

Tôi đã thử lấy mã nguồn của gnome-terminal . grep -r "spi" gnome-terminal/không đưa ra bất kỳ kết quả nào; grep -r "dbus" gnome-terminal/đưa ra một số, nhưng chúng dường như có liên quan đến dbus bình thường, không phải là at-pci. Vì vậy, tôi tin rằng, gnome-terminal không truy cập at-spi2trực tiếp.

Thay vào đó, chỉ một số widget gtk đang gọi ngầm gailhoặc các atkhàm , lần lượt cố gắng tương tác với at-spihệ thống con và không làm như vậy, vì bạn đã giết nó:

nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây

Vì vậy, tôi nghĩ giải pháp cho bạn là khôi phục các tệp sau của at-spi2-coregói (dựa trên dpkg -L at-spi2-core) hoặc chỉ cài đặt lại toàn bộ gói:

/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

THAY ĐỔI, bạn có thể cố gắng vô hiệu hóa khả năng truy cập bằng cách đảo ngược các hành động, được mô tả ở đây để kích hoạt nó. (Về cơ bản, bạn sẽ phải điều chỉnh một số cờ gconftool-2như được mô tả trong phần "Thiết lập môi trường thử nghiệm và phát triển ứng dụng có thể truy cập").

Vô dụng, nhưng thông tin thú vị

Tôi đã thực hiện thêm một số hoạt động đào mã nguồn của at-spi2-core

README tại thư mục master / bus / at-spi-bus-launcher.c cho biết at-spi-bus-launcher được khởi động bởi phiên bản dbus mỗi phiên như mong đợi. Thật thú vị, cũng có một thuộc tính cửa sổ gốc X windows ATinksI_BUS, bạn có thể tìm thấy giá trị của nó thông qua xprop --rootlệnh và đối với tôi nó bằng

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

Tôi không biết, đó là gì, tôi dự đoán nó sẽ là một vị trí ổ cắm, nhưng không có tệp nào như vậy /tmpcho tôi. :

Cập nhật 2

Tôi nghĩ lý do chính xác của vấn đề của bạn có thể là bình thường dbus mỗi hệ thống thấy bạn /usr/share/dbus-1/services/org.a11y.Bus.servicetập tin và đang cố gắng để kích hoạt nó để đáp ứng với ATK cuộc gọi từ gnome-terminal (vì bạn gconfhoặc dconfcài đặt đã tiếp cận được kích hoạt và điều này nói với các widget gtk để cung cấp tin nhắn đến at-spi). Điều này không thành công, vì bạn đã loại bỏ at-spi-bus-launchernhị phân.

Điều khiến tôi nghĩ như vậy là kinh nghiệm của riêng tôi với Caribou Antler. Caribou là một bàn phím ảo tồi tệ, được cài đặt với Debian. Tôi đã có một máy tính bảng Debian 7, nơi tôi đã cài đặt một bàn phím ảo khác từ kho lưu trữ Ubuntu - OnBoard tuyệt vời. Có một điều là cả hai bàn phím đều được bật / tắt bởi cùng một phím trợ năng trong dconf. Vì vậy, nếu khóa được bật, cả hai đều được kích hoạt bằng cách nhấp vào GtkEntry hoặc GtkTextView để Caribou shitty không cho phép OnBoard của tôi hoạt động chính xác. Và nếu tôi vô hiệu hóa khả năng truy cập trong gconf / dconf, OnBoard cũng bị tắt. :

Vì vậy, tôi đã thực hiện một hack thô và chỉ nhận xét nội dung của /usr/share/dbus-1/services/org.gnome.Caribou.Antler.servicetập tin của tôi . Bây giờ khi dbus đang cố gắng kích hoạt Caribou thì không thành công, trong khi OnBoard được kích hoạt ok.

Nhưng khi tôi khởi động một số ứng dụng đồ họa từ thiết bị đầu cuối, chẳng hạn như sublime_text, tôi nhận được một thông báo lỗi, được định dạng theo cách rất giống với ứng dụng của bạn:

(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

Điều này giải quyết nó cho tôi

export NO_AT_BRIDGE=1

alias open='xdg-open '

sau đó để kích hoạt ứng dụng thích hợp để mở sự cố tệp tùy ý (ví dụ):

open some-cool-image.jpg
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.