В течение некоторого времени eog
и gnome-terminal
очень медленно запускаются на моей (X) Ubuntu 13.10. Я думаю, что другие инструменты Gnome тоже затронуты, но я не использую другие.
Теперь я получаю сообщение org.freedesktop.DBus.Error.NoReply
об ошибке при каждом gnome-terminal
запуске:
** (терминал gnome: 5516): ПРЕДУПРЕЖДЕНИЕ **: Ошибка при получении адреса шины доступности: org.freedesktop.DBus.Error.NoReply: Не получен ответ. Возможные причины: удаленное приложение не отправило ответ, политика безопасности шины сообщений заблокировала ответ, истекло время ожидания ответа или было разорвано сетевое соединение.
и каждый раз eog
начинается:
** (eog: 4996): ПРЕДУПРЕЖДЕНИЕ **: Ошибка при получении адреса шины доступности: org.freedesktop.DBus.Error.NoReply: Не получен ответ. Возможные причины: удаленное приложение не отправило ответ, политика безопасности шины сообщений заблокировала ответ, истекло время ожидания ответа или было разорвано сетевое соединение.
(eog: 4996): EOG-WARNING **: не удалось загрузить значок: значок «загрузка изображения» отсутствует в теме
Я думаю, что это как-то связано с удалением некоторых программ, которые запускались по умолчанию, в том числе at-spi2-registryd
, которые, я думаю, принадлежат проекту доступности Gnome .
По словам dpkg --getselections | grep spi
, at-spi2-core
по - прежнему установлена на моей системе.
Я помню, что делал что-то очень хакерское / глупое, например, обменивал некоторые конфигурационные файлы или двоичные файлы с пустыми эхо-программами, чтобы остановить запуск демона.
- Как я могу исправить эту ошибку?
- Что вызывает эту ошибку?
Google производит некоторые at-spi...
связанные ссылки:
- https://lists.ubuntu.com/archives/ubuntu-accessibility-bugs/2013-August/006261.html
- https://lists.ubuntu.com/archives/ubuntu-accessibility-bugs/2013-August/006264.html
Это может быть связано со freedesktop
связанной с этим проблемой, с которой я столкнулся nmcli
, поэтому, пожалуйста, посмотрите на нее: 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
[...]
root
помощью пользователяsu -
, затемeog
.strace -r
) или ltrace (напримерltrace -r
) могут пролить свет.gedit
илиgnome-disks
? Их следы похожи?Ответы:
К сожалению, это не решение, но эта информация может вам помочь.
Я думаю, ваша проблема в том , что
gnome-terminal
иeog
пытаются подключиться к AT-SPID-bus
экземпляра сокета, который неправильно сконфигурирован.Как работает D-bus в целом:
Запускать
Есть 2 случая случайной D-шины, запущенной на вашей машине, для системы и для пользователя, и один, связанный с доступностью, -
at-spi
запущенныйat-spi-bus-launcher
.Экземпляр системы запускается сценариями инициализации, например, с Mint
/etc/init/dbus
.Экземпляр для пользователя запускается при запуске Xsession
/etc/X11/Xsession.d/75dbus_dbus-launch
.at-spi
кажется, что экземпляр запускается gnome-session, которая читает.desktop
файлы из системного$xdg
каталога. At-spi настроен/etc/xdg/autostart/at-spi-dbus-bus.desktop
, который запускаетat-spi
экземпляр.Функционирование и настройка
D-bus работает как брокер сообщений для приложений gnome. Они могут отправлять сообщения друг другу, вызывая функции привязки dbus-glib (glib - это общая библиотека Gnome C, которая используется большинством приложений gnome).
Более того, приложения могут отправлять сообщения другим приложениям, которые еще не были запущены. В этом случае dbus может сначала запустить («активировать») службу получателя, а затем доставить ей сообщение (которое часто используют гномы для запуска новых процессов ).
Какие сервисы может активировать D-bus, определяется конфигурационными файлами в
/usr/share/dbus-1/
папке.system-services
подпапка предназначена для экземпляра dbus для системы,services
- для каждого пользователя.Также обратите внимание, что эти экземпляры d-bus создают сокет UNIX-домена и прослушивают сообщения от приложений. Приложения подключаются к этим разъемам при запуске и обмениваются данными друг с другом через D-шину. Сокеты могут быть сопоставлены с файловой системой (как для системного экземпляра D-шины, чей сокет сопоставлен
/var/run/dbus/system_bus_socket
) или нет.Как решить вашу проблему (на самом деле я не знаю)
Я предполагаю, что вы испортили конфигурацию
at-pci
экземпляра: либо его запуск с помощью gnome-session (/etc/xdg/autostart/at-spi-dbus-bus.desktop
), либо его расположение в сокете.К сожалению, у меня нет более конкретных идей о том, что делать. Не могли бы вы предоставить
ps
илиpstree
информацию, касающуюсяat-pci
иgnome-terminal
?Обновить
Я попытался выяснить источник вашего сообщения об ошибке:
Я попытался очистить исходный код терминала gnome .
grep -r "spi" gnome-terminal/
не дает никаких результатов;grep -r "dbus" gnome-terminal/
дает некоторые, но они, похоже, связаны с обычным dbus, а не at-pci. Так что, я думаю, gnome-терминал не имеетat-spi2
прямого доступа .Вместо этого, просто некоторые виджеты gtk неявно вызывают
gail
илиatk
функции , которые, в свою очередь, пытаются взаимодействовать сat-spi
подсистемой и не в состоянии сделать это, потому что вы убили ее:Итак, я думаю, что решение для вас - восстановить следующие файлы
at-spi2-core
пакета (на основеdpkg -L at-spi2-core
) или просто переустановить весь пакет:АЛЬТЕРНАТИВНО, вы можете попытаться отключить доступ, изменив действия, описанные здесь, чтобы включить его. (По сути, вам нужно настроить некоторые флаги,
gconftool-2
как описано в разделе «Настройка доступной среды разработки приложений и тестирования»).Бесполезная, но интересная информация
Я сделал еще несколько копаний в исходном коде at-spi2-core
README в папке master / bus / at-spi-bus-launcher.c сообщает, что at-spi-bus-launcher запускается при каждом сеансе экземпляра dbus, как и ожидалось. Интересно, что есть также свойство корневого окна X windows AT_SPI_BUS, вы можете найти его значение с помощью
xprop --root
команды, и для меня оно равноЯ не знаю, что это, я ожидал, что это будет расположение сокета, но
/tmp
для меня такого файла нет . :(Обновление 2
Я думаю, что точная причина вашей проблемы может заключаться в том, что обычный системный dbus видит ваш
/usr/share/dbus-1/services/org.a11y.Bus.service
файл и пытается активировать его в ответ на вызовы atk из gnome-терминала (потому что вашиgconf
илиdconf
настройки имеют доступность, и это заставляет виджеты gtk доставлять сообщения дляat-spi
). Это не удается, потому что вы удалилиat-spi-bus-launcher
двоичный файл.Что заставляет меня так думать, так это мой собственный опыт
Caribou Antler
. Caribou - это хреновая виртуальная клавиатура, установленная вместе с Debian. У меня есть планшет Debian 7, на котором я установил другую виртуальную клавиатуру из репозитория Ubuntu - потрясающую OnBoard. Дело в том, что обе клавиатуры включаются / выключаются одним и тем же ключом доступа в dconf. Поэтому, если ключ включен, оба активируются нажатием на GtkEntry или GtkTextView, так что дерьмовый карибу не позволяет моей OnBoard работать должным образом. И если я отключаю доступ в gconf / dconf, OnBoard тоже отключается. :(Поэтому я сделал грубый хак и просто закомментировал содержимое моего
/usr/share/dbus-1/services/org.gnome.Caribou.Antler.service
файла. Теперь, когда dbus пытается активировать Caribou, он терпит неудачу, в то время как OnBoard активируется нормально.Но когда я запускаю графическое приложение из терминала, например
sublime_text
, я получаю сообщение об ошибке, которое отформатировано очень похоже на ваше:источник
Это решает это для меня
затем вызвать соответствующее приложение, чтобы открыть произвольную проблему файла (например):
источник