FreeBSD11: portsnap が metadata is corrupt で失敗

管理している FreeBSDサーバーから、自動パッケージメンテナンスがエラーになったと記録されてデイリーレポートが送られてきました。

/usr/sbin/portsnap: cannot open de7f291484bf265db8fdb34d727b142e4e5a24302052e143624ae384e38e07c0.gz: No such file or directory
Looking up portsnap.FreeBSD.org mirrors... 4 mirrors found.
Fetching snapshot tag from ipv4.aws.portsnap.freebsd.org... done.
Fetching snapshot metadata... done.
Updating from Thu Apr  1 02:05:17 JST 2021 to Thu Apr 15 02:12:31 JST 2021.
Fetching 5 metadata patches... done.
Applying metadata patches... done.
Fetching 5 metadata files... metadata is corrupt.

過去にも送られてきたことがあるメッセージで、/var/db/portsnap か /usr/ports 下のファイルが壊れたことを示すメッセージです。または、freebsd.org ports サーバー側のファイルが壊れたか。

今回は、5台のサーバーが全て metadata is corrupted. になっていたため、恐らくサーバー側の問題だろうと放置していました。

しかし、数日しても直らない。
仕方がないので、手動で「portsnap fetch update」を発行したところ、5台中4台は復活。

しかし、1台だけ修復できません。
コマンドのエラーメッセージだけでは原因が判らなかったのですが、ふと、portsnap には debugオプションが隠しモードになっていることを思い出しました。
–debug を付加してコマンドを実行してみたのが以下。

# portsnap --debug fetch update
Looking up portsnap.FreeBSD.org mirrors... 4 mirrors found.
Fetching snapshot tag from ipv4.aws.portsnap.freebsd.org... 
fetch: http://ipv4.aws.portsnap.freebsd.org/latest.ssl: No error: 0
failed.
Fetching snapshot tag from ipv6.aws.portsnap.freebsd.org... 
fetch: http://ipv6.aws.portsnap.freebsd.org/latest.ssl: No address record
failed.
Fetching snapshot tag from metapeer.portsnap.freebsd.org... 
latest.ssl                                             256  B  284 kBps    00s
/usr/sbin/portsnap: openssl: not found
invalid snapshot tag.
Fetching snapshot tag from your-org.portsnap.freebsd.org... 
latest.ssl                                             256  B  286 kBps    00s
/usr/sbin/portsnap: openssl: not found
invalid snapshot tag.
No mirrors remaining, giving up.

なんと、openssl コマンドが消えている!openssl が無くなってしまい、サーバーとHTTPS接続できなくなったのが原因のようです。パッケージをメンテナンスしていると、時々予想外のコマンドが道連れ削除されてしまうんですよねぇ。そういえば数日前に、50個以上の大量パッケージがアップデートされたことを思い出しました。

pkg install openssl で、openssl を再インストールし、portsnap コマンドを手動発行して問題解決。

ひょっとすると、ports データベースが壊れたのは、大量のパッケージ更新を行ったことと関係しているのか。

コメントを残す