2019/06/29

MATEでストップ環境でアプリケーションの動きがおかしくなった(が、不具合が解消されたところもある)

dynabook SS SX/15AのOSをNetBSD/i386に置き換えて、MATEデスクトップ環境を利用しています。pkgsrcから入れていたアプリケーションの全更新に失敗し、既存の環境が崩壊したので、再構築をしています。今日になって(何故か)昨日まで動いていたアプリケーションの挙動がおかしくなりました。全てを確認している訳ではありませんが、次のような挙動が確認されています。それらは、いずれも昨日までは普通に出来ていたのですが、何故いきなり駄目になったのか分かりません。
  1. MATE端末のウィンドウが開かない。
  2. LibreOfficeのスプラッシュ画面は出てくるのに、そこで止まってしまう。
  3. 画面上部のメニューバーから「システム」→「furusawaのログアウト...」を選んでも、ウィンドウが出てこなくなった。
  4. 画面上部のメニューバーから「システム」の下にあったシャットダウン用のメニューが消えた。
  5. Emacsを立ち上げると、何かキーを押さないとウィンドウが出ない。

バイナリが落ちて(コアを吐いて)動かないのであれば、(それはそれで困りますが)理解できなくもありません。しかしコアは出来ていないのに、アプリケーションが動かないのです。 何が悪いのか見当もつきませんが、唸っていたところで解決するわけではありません。こういう時には何処かにエラー情報が残っていないか探してみるのが、問題解決の第一歩になります。

そこでホームディレクトリで直近の書き込みがあるファイルを探してみると~/.xsession-errorsがありました。ファイル内を確認すると、いろいろな情報が書き込まれていましたが、アプリケーションが利用している共有ライブラリが見つからないというメッセージが2件ありました。まずは、この問題を解決すべきでしょう。

エラーの原因となっている共有ライブラリが属しているパッケージが何かを突き止める必要があります。ちょっと強引な方法ですが/var/db/pkgの下にある+CONTENTSファイルを検索してパッケージを特定しました。特定されたパッケージを削除し、あらためて導入し直しました。これは要するにバージョンの不一致による不整合が起きていたと思われます。今月上旬にはCVSで取得したカレントのpkgsrcを利用してパッケージを更新していましたが、今月下旬になって2019Q1のpkgsrcでビルドされたパッケージを利用することに方針変更しています。このため、一部のパッケージにおいてバージョンの不一致が発生してしまったのだろうと想像しています。

これらを解決したところ、MATEデスクトップ環境の不具合の一部が解決しました。特にCaja(MATE固有のファイルマネージャー)が動くようになりました。しかし相変わらず、MATE端末やLibreOfficeは起動しません。(ディスク不良か何かで)バイナリが壊れたのかと思って、各パッケージを入れ直してみたのですが、問題は解決しませんでした。ところがrootアカウント(MATEデスクトップ環境を利用しておらず、twmを利用した原始的なX11環境です)では、MATE端末もLibreOfficeも動くのです。

他にもエラー情報がないかと思って/var/log/messagesを確認すると、次のようなエラーが出ていました。
Jun 29 20:06:26 dbss dbus-daemon[779]: [system] Activating service name='org.freedesktop.ConsoleKit' requested by ':1.0' (uid=0 pid=829 comm="/usr/pkg/sbin/hald ") (using servicehelper)
Jun 29 20:06:29 dbss dbus-daemon[779]: [system] Activating service name='org.freedesktop.PolicyKit1' requested by ':1.1' (uid=0 pid=290 comm="/usr/pkg/sbin/console-kit-daemon ") (using servicehelper)
Jun 29 20:06:30 dbss dbus-daemon[779]: [system] Activated service 'org.freedesktop.PolicyKit1' failed: Launch helper exited with unknown return code 1
Jun 29 20:06:30 dbss dbus-daemon[779]: [system] Successfully activated service 'org.freedesktop.ConsoleKit'

PolicyKitで起動に失敗しているようなのですが、これを解決する方法が分かりません。しかしPolicyKitは権限に関する機能を担っているはずですから、rootアカウントなら動くのに、一般アカウントでは駄目というのも、関連していそうな気がします。

まだ問題は解決していませんが、解決の方向性は間違っていないような気がしています。

0 件のコメント:

コメントを投稿