FreeBSD サーバー上で、夜間だけ boinc を動かしていますが、プロセスが走っていないことに気付きました。
手動で起動すると、stderrdae.txt に
SIGSEGV: segmentation violation Exiting...
というメッセージを残して、プロセスが終わってしまいます。
やむを得ず、boinc フォルダー以下を消去し初期化してみたところ、boinc-client は走るものの、プロジェクトクライアントが起動する時点で、上記エラーが記録されて終了してしまいます。
つまり、プロジェクトの計算段階になると、止まってしまう。
これで、約2週間悩んでいたのですが、ふと、私は boinc-client のバージョンを凍結していることを思い出しました。
凍結している理由は、BoincをLinuxエミュレーションで動かしているので、pkg コマンドでバイナリメンテナンスしてしまうと Linuxエミュレーションを使用しないバイナリーに更新されてしまうためです。そうなると、またソースから Linuxエミュレーションでビルドし直さないといけなくなります。これが面倒なので、boinc-client なんてサーバーと通信するのが役目だろう〜とロックして放置していました。
なので、Boinc clientのバージョンは 7.2.33 のまま。
ひょっとして、boinc-client のバージョンが古くなりすぎて、クライアントが対応できなくなってしまった?
確認するために、boinc-client のバージョンを上げてみることにしました。
まず、
pkg unlock boinc-client
でロックを解除し、その後、
pkg upgrade
で依存関係にあるパッケージもろともバイナリー更新。
続いて、/usr/ports/net/boinc-client/ に移動して、
make deinstall reinstall
を実行。(FreeBSD専用をアンインストールし、linuxエミュレーションのものをインストール)
この後、boinc-client を起動し、プロジェクトを登録してみたところ、落ちません!ちゃんとプロジェクトが連続稼働します。原因は、boinc-client が古くなってしまったことのようです。
14-Apr-2019 19:17:50 [---] Starting BOINC client version 7.8.6 for i386-pc-freebsd 14-Apr-2019 19:17:50 [---] Version change (7.2.33 -> 7.8.6)
パッケージを凍結しているアプリも時々確認しなくちゃいけないのですが、これがなかなか難しい。
次回同様の現象が起きるのに備えて、記録しておくのが精一杯。