MATEデスクトップ環境は動いているようだし、ときどき不調なアプリケーションもあるものの、全般的に動いているように見えるので、大筋でうまくいっているものと思っていました。ところが昨日になって、動いていた筈の「MATE端末」や「LibreOffice6」などが立ち上がらなくなりました。他にも不具合がありますが、根本的に問題を抱えているようなので、調査してみます。できれば復旧もさせたいところです。
トラブルに見舞われたら、冷静に情報を集めるのが問題解決の第一歩です。昨日は~/.xsession-errorsを参照し、怪しい現象は対処しましたが、まだ解決に至りません。そこで今日は/var/log/messagesにある問題に対処します。該当箇所を以下に示しますが、怪しいのはorg.freedesktop.PolicyKit1が不明なエラーで落ちている点です。
Jun 30 13:03:54 dbss dbus-daemon[907]: [system] Activating service name='org.freedesktop.ConsoleKit' requested by ':1.0' (uid=0 pid=289 comm="/usr/pkg/sbin/hald ") (using servicehelper)
Jun 30 13:03:58 dbss dbus-daemon[907]: [system] Activating service name='org.freedesktop.PolicyKit1' requested by ':1.1' (uid=0 pid=1055 comm="/usr/pkg/sbin/console-kit-daemon ") (using servicehelper)
Jun 30 13:03:58 dbss dbus-daemon[907]: [system] Activated service 'org.freedesktop.PolicyKit1' failed: Launch helper exited with unknown return code 1
Jun 30 13:03:59 dbss dbus-daemon[907]: [system] Successfully activated service 'org.freedesktop.ConsoleKit'
Jun 30 13:57:17 dbss dbus-daemon[907]: [system] Activating service name='org.freedesktop.PolicyKit1' requested by ':1.12' (uid=0 pid=1529 comm="pkcheck --list-temp ") (using servicehelper)
Jun 30 13:57:17 dbss dbus-daemon[907]: [system] Activated service 'org.freedesktop.PolicyKit1' failed: Launch helper exited with unknown return code 1
エラーメッセージを手掛かりにWebを検索してみましたが、有用な情報に辿りつけません。そこでPolicyKitよりも検索対象を広げて調べてみたところ「dbus-daemon のログについて」という情報に辿りつきました。ここに書かれているのは、僕が対処しようとしている問題とは関係ありませんが、調査手順が具体的に書かれているので、とても参考になります。
その手順に従い「org.freedesktop.PolicyKit1」というファイルを探したら、以下のようになりました。
# locate org.freedesktop.PolicyKit1次に手順に書かれているように、ファイルの中身を確認します。
/usr/pkg/etc/dbus-1/system.d/org.freedesktop.PolicyKit1.conf
/usr/pkg/share/dbus-1/system-services/org.freedesktop.PolicyKit1.service
/usr/pkg/share/examples/polkit/dbus-1/system.d/org.freedesktop.PolicyKit1.conf
/var/db/pkg.refcount/files/usr/pkg/etc/dbus-1/system.d/org.freedesktop.PolicyKit1.conf
/var/db/pkg.refcount/files/usr/pkg/etc/dbus-1/system.d/org.freedesktop.PolicyKit1.conf/+PERMISSIONS
/var/db/pkg.refcount/files/usr/pkg/etc/dbus-1/system.d/org.freedesktop.PolicyKit1.conf/polkit-0.113nb3
# cat -n /usr/pkg/share/dbus-1/system-services/org.freedesktop.PolicyKit1.service「Eexc=」で指定されているファイルを実行したところ、共有ライブラリが見つからず落ちてしまいました。
1 [D-BUS Service]
2 Name=org.freedesktop.PolicyKit1
3 Exec=/usr/pkg/lib/polkit-1/polkitd --no-debug
4 User=root
5 SystemdService=polkit.service
# /usr/pkg/lib/polkit-1/polkitd --helpおそらく、これが原因でしょう。共有ライブラリの参照状況と、ディレクトリに存在しているファイルを確認すると、不整合がありました。
/usr/pkg/lib/libmozjs-52.so: Shared object "libicui18n.so.64" not found
# ldd /usr/pkg/lib/libmozjs-52.so最新のpkgsrcが使われたものと、2019Q1のpkgsrcが使われたものが混在しており、このような不整合が起きたと思われます。これを解決するには共有ライブラリ「libmozjs-52.so」を担っているパッケージを見つけ、入れ換える必要があります。/var/db/pkgの下にあるファイル「+CONTENTS」を検索したところ、パッケージ「spidermonkey52」であることがわかりました。インストールされていたのは「spidermonkey52-52.7.4nb9」だったのですが、2019Q1では「spidermonkey52-52.7.4nb6」と僅かにバージョンが低いことが分かりました。
/usr/pkg/lib/libmozjs-52.so:
-lpthread.1 => /usr/lib/libpthread.so.1
-lc.12 => /usr/lib/libc.so.12
-licui18n.64 => not found
-licuuc.64 => not found
-licudata.64 => not found
-lplds4 => /usr/pkg/lib/nspr/libplds4.so
-lnspr4 => /usr/pkg/lib/nspr/libnspr4.so
-lgcc_s.1 => /usr/lib/libgcc_s.so.1
-lplc4 => /usr/pkg/lib/nspr/libplc4.so
-lz.1 => /usr/lib/libz.so.1
-lm.0 => /usr/lib/libm.so.0
-lstdc++.9 => /usr/lib/libstdc++.so.9
# ls -l /usr/pkg/lib/libicuuc.so.*
lrwxr-xr-x 1 root wheel 16 Apr 6 22:59 /usr/pkg/lib/libicuuc.so.63 -> libicuuc.so.63.1
-rwxr-xr-x 1 root wheel 1874408 Apr 6 22:59 /usr/pkg/lib/libicuuc.so.63.1
問題となるパッケージを入れ替えたところ、共有ライブラリの不整合がなくなり、実行できるようになりました。
# ldd /usr/pkg/lib/libmozjs-52.soここでマシンをリブートし、あらためて/var/log/messagesを確認すると、不具合が解消していることが確認できました。
/usr/pkg/lib/libmozjs-52.so:
-lpthread.1 => /usr/lib/libpthread.so.1
-lc.12 => /usr/lib/libc.so.12
-licui18n.63 => /usr/pkg/lib/libicui18n.so.63
-licuuc.63 => /usr/pkg/lib/libicuuc.so.63
-licudata.63 => /usr/pkg/lib/libicudata.so.63
-lstdc++.8 => /usr/lib/libstdc++.so.8
-lm.0 => /usr/lib/libm.so.0
-lgcc_s.1 => /usr/lib/libgcc_s.so.1
-lplds4 => /usr/pkg/lib/nspr/libplds4.so
-lnspr4 => /usr/pkg/lib/nspr/libnspr4.so
-lplc4 => /usr/pkg/lib/nspr/libplc4.so
-lz.1 => /usr/lib/libz.so.1
# /usr/pkg/lib/polkit-1/polkitd --help
Usage:
polkitd [OPTION?] polkit system daemon
Help Options:
-h, --help Show help options
Application Options:
-r, --replace Replace existing daemon
-n, --no-debug Don't print debug information
Jun 30 14:27:10 dbss dbus-daemon[96]: [system] Activating service name='org.freedesktop.ConsoleKit' requested by ':1.0' (uid=0 pid=105 comm="/usr/pkg/sbin/hald ") (using servicehelper)個人アカウントでログインし、MATEデスクトップ環境を利用してみたところ、問題となっていた不具合が解消しているのを確認できました。MATE端末もLibreOfficeも動きますし、Emacsも問題ありません。
Jun 30 14:27:14 dbss dbus-daemon[96]: [system] Activating service name='org.freedesktop.PolicyKit1' requested by ':1.1' (uid=0 pid=619 comm="/usr/pkg/sbin/console-kit-daemon ") (using servicehelper)
Jun 30 14:27:15 dbss dbus-daemon[96]: [system] Successfully activated service 'org.freedesktop.ConsoleKit'
Jun 30 14:27:35 dbss dbus-daemon[96]: [system] Successfully activated service 'org.freedesktop.PolicyKit1'
Jun 30 14:29:18 dbss dbus-daemon[792]: [session uid=1000 pid=437] Activating service name='org.freedesktop.portal.IBus' requested by ':1.0' (uid=1000 pid=205 comm="/usr/pkg/bin/ibus-daemon ")
Jun 30 14:29:18 dbss dbus-daemon[792]: [session uid=1000 pid=437] Successfully activated service 'org.freedesktop.portal.IBus'
Jun 30 14:29:21 dbss dbus-daemon[792]: [session uid=1000 pid=437] Activating service name='org.a11y.Bus' requested by ':1.3' (uid=1000 pid=835 comm="/usr/pkg/libexec/ibus-x11 --kill-daemon ")
Jun 30 14:29:21 dbss dbus-daemon[264]: [session uid=1000 pid=1305] Activating service name='org.a11y.Bus' requested by ':1.0' (uid=1000 pid=1007 comm="mate-session ")
Jun 30 14:29:21 dbss dbus-daemon[264]: [session uid=1000 pid=1305] Successfully activated service 'org.a11y.Bus'
Jun 30 14:29:21 dbss dbus-daemon[792]: [session uid=1000 pid=437] Successfully activated service 'org.a11y.Bus'
Jun 30 14:29:22 dbss dbus-daemon[264]: [session uid=1000 pid=1305] Activating service name='ca.desrt.dconf' requested by ':1.3' (uid=1000 pid=1007 comm="mate-session ")
Jun 30 14:29:22 dbss dbus-daemon[264]: [session uid=1000 pid=1305] Successfully activated service 'ca.desrt.dconf'
Jun 30 14:29:38 dbss dbus-daemon[96]: [system] Activating service name='org.freedesktop.UPower' requested by ':1.9' (uid=1000 pid=1187 comm="mate-power-manager ") (using servicehelper)
Jun 30 14:29:39 dbss dbus-daemon[96]: [system] Successfully activated service 'org.freedesktop.UPower'
Jun 30 14:29:42 dbss dbus-daemon[264]: [session uid=1000 pid=1305] Activating service name='org.mate.panel.applet.SensorsAppletFactory' requested by ':1.10' (uid=1000 pid=933 comm="mate-panel ")
Jun 30 14:29:42 dbss dbus-daemon[264]: [session uid=1000 pid=1305] Activating service name='org.mate.panel.applet.MultiLoadAppletFactory' requested by ':1.10' (uid=1000 pid=933 comm="mate-panel ")
Jun 30 14:29:42 dbss dbus-daemon[264]: [session uid=1000 pid=1305] Successfully activated service 'org.mate.panel.applet.MultiLoadAppletFactory'
Jun 30 14:29:42 dbss dbus-daemon[264]: [session uid=1000 pid=1305] Successfully activated service 'org.mate.panel.applet.SensorsAppletFactory'
Jun 30 14:29:45 dbss dbus-daemon[96]: [system] Activating service name='org.mate.SettingsDaemon.DateTimeMechanism' requested by ':1.11' (uid=1000 pid=933 comm="mate-panel ") (using servicehelper)
Jun 30 14:29:45 dbss dbus-daemon[96]: [system] Successfully activated service 'org.mate.SettingsDaemon.DateTimeMechanism'
以上で、重大な不具合は解決しましたが、まだ完全な状態とも言えない状況です。NetBSDのpkgsrcにあるMATEには不具合が残っているのか、それとも僕の環境に怪しい箇所が残っているのか、わかりません。これからも調査を続けていくつもりです。