2019-06-30

「Activated service 'org.freedesktop.PolicyKit1' failed: Launch helper exited with unknown return code 1」が解決

dynabook SS SX/15AをNetBSD/i386にして、MATEデスクトップ環境を入れて利用しています。アプリケーションはpkgsrcから入れていますが、CVSでpkgsrcを最新にして、今月上旬からpkg_rolling-replaceで全更新をするつもりでした。しかしトラブルが続き、今月下旬になっても完了しないので、2019Q1のpkgsrcでビルドされたバイナリを利用したpkginで全更新を完了させました。

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
     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
Eexc=」で指定されているファイルを実行したところ、共有ライブラリが見つからず落ちてしまいました。
 # /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
/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
最新のpkgsrcが使われたものと、2019Q1のpkgsrcが使われたものが混在しており、このような不整合が起きたと思われます。これを解決するには共有ライブラリ「libmozjs-52.so」を担っているパッケージを見つけ、入れ換える必要があります。/var/db/pkgの下にあるファイル「+CONTENTS」を検索したところ、パッケージ「spidermonkey52」であることがわかりました。インストールされていたのは「spidermonkey52-52.7.4nb9」だったのですが、2019Q1では「spidermonkey52-52.7.4nb6」と僅かにバージョンが低いことが分かりました。

問題となるパッケージを入れ替えたところ、共有ライブラリの不整合がなくなり、実行できるようになりました。
# ldd /usr/pkg/lib/libmozjs-52.so
/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
ここでマシンをリブートし、あらためて/var/log/messagesを確認すると、不具合が解消していることが確認できました。
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)
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'
個人アカウントでログインし、MATEデスクトップ環境を利用してみたところ、問題となっていた不具合が解消しているのを確認できました。MATE端末もLibreOfficeも動きますし、Emacsも問題ありません。

以上で、重大な不具合は解決しましたが、まだ完全な状態とも言えない状況です。NetBSDのpkgsrcにあるMATEには不具合が残っているのか、それとも僕の環境に怪しい箇所が残っているのか、わかりません。これからも調査を続けていくつもりです。

0 件のコメント:

コメントを投稿