しばらくの間、eog
とgnome-terminal
が(X)Ubuntu 13.10で非常にゆっくりと起動します。他のGnomeツールも影響を受けると思いますが、他のツールは使用していません。
これで、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 **:アイコンを読み込めませんでした:アイコン「image-loading」がテーマにありません
Gnome's Accessibility Project に属すると思われる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
[...]
残念ながら、これは解決策ではありませんが、この情報が役立つかもしれません。
あなたの問題は、gnome-terminal
とeog
がat-spi D-bus
インスタンスソケットに接続しようとしていることであると思います。
スタートアップ
カジュアルなDバスの2つのインスタンスがあり、マシン上でシステムごとおよびユーザーごとに実行されています。また、特別なアクセシビリティ関連のインスタンスであるat-spi
があり、at-spi-bus-launcher
によって起動されます。
システムごとのインスタンスは、initスクリプトによって開始されます。ミントで/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-busは、gnomeアプリケーションのメッセージブローカーとして機能します。 dbus-glibバインディングの関数を呼び出すことで、メッセージを相互に送信できます(glibは、ほとんどのgnomeアプリケーションで使用される一般的なGnome Cライブラリです)。
さらに、アプリケーションは、まだ開始されていない他のアプリケーションにメッセージを送信できます。その場合、dbusは最初に受信側サービスを開始(「アクティブ化」)してから、メッセージを配信します(多くの場合 gnomeの人が新しいプロセスを開始するために悪用します )。
D-busがアクティブにできるサービスは、/usr/share/dbus-1/
フォルダー内の構成ファイルによって決まります。 system-services
サブフォルダーはシステムごとのdbusインスタンス用、services
-ユーザーごとのインスタンス用です。
また、これらのd-busインスタンスはUNIXドメインソケットを作成し、アプリケーションからのメッセージをリッスンすることにも注意してください。アプリケーションは、起動時にこれらのソケットに接続し、Dバスを介して互いにデータを交換します。ソケットは、ファイルシステムにマッピングされている可能性があります(ソケットが/var/run/dbus/system_bus_socket
にマッピングされているDバスのシステムごとのインスタンスの場合と同様)。
at-pci
インスタンスの設定、つまりgnome-sessionによる起動(/etc/xdg/autostart/at-spi-dbus-bus.desktop
)またはソケットの場所のいずれかを台無しにしたと思います。
残念ながら、何をすべきかについての具体的な考えはありません。 at-pci
およびgnome-terminal
に関するps
またはpstree
情報を提供していただけますか?
私はあなたのエラーメッセージの原因を見つけようとしました:
gnome-terminal のソースコードをgrepしてみました。 grep -r "spi" gnome-terminal/
は結果を返しません。 grep -r "dbus" gnome-terminal/
はいくつかを提供しますが、at-pciではなく通常の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
あるいは、 here で説明されているアクションを反転して有効にすることで、アクセシビリティを無効にすることもできます。 (基本的に、「アクセス可能なアプリケーション開発およびテスト環境のセットアップ」セクションで説明されているように、gconftool-2
のいくつかのフラグを微調整する必要があります)。
at-spi2-core のソースコードをさらに掘り下げました
Master/bus/ at-spi-bus-launcher.c フォルダーのREADMEは、at-spi-bus-launcherがdbusのセッションごとのインスタンスによって期待どおりに起動されることを示しています。興味深いことに、XウィンドウのルートウィンドウプロパティAT_SPI_BUSもあります。xprop --root
コマンドを使用してその値を見つけることができます。
AT_SPI_BUS(STRING) = "unix:abstract=/tmp/dbus-vGwJEbWTQL,guid=76b894a309e380de6265479c53e8b537"
よくわかりませんが、ソケットの場所であると予想していましたが、/tmp
にそのようなファイルはありません。 :(
問題の正確な理由は、通常のシステムごとのdbusが/usr/share/dbus-1/services/org.a11y.Bus.service
ファイルを参照し、gnome-terminalからのatk呼び出しに応答してそれをアクティブ化しようとしているためだと思います(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がカリブーをアクティブ化しようとすると失敗しますが、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)
これで解決します
export NO_AT_BRIDGE=1
alias open='xdg-open '
次に、適切なアプリをトリガーして任意のファイルの問題を開きます(例):
open some-cool-image.jpg