Arch Linuxを実行しているコンピュータがありますが、起動に問題があります。ブロックデバイスでpvscanを待ち、90秒間停止して放棄します。 (実際には、pvscanプロセスはそれ以降のlvmコマンドと同様にまだ中断されています。)時にはうまくいきます。
もう少し調べたところ、起動時に中断されるlvmetad(8)がこの中断の原因であるようです。
lvmetad[360]: Cannot lock lockfile [/run/lvmetad.pid], error was [Resource temporarily unavailable]
起動してシャットダウンして再起動すると、停止したpvscanプロセスがロック解除され、操作が完了し、すべてが正常に戻ります(lvmコマンドが再び機能するなど)。
ログでこれを確認できます。パスツールビン
lvmetadの詳細を下げようとしましたが、エラーのみが発生しました。
時々起動に通常より少し時間がかかり(ルートパーティションを待っている間)、lvmetadは正常に起動します(しかし実際には関係があるかどうかはわかりません)。
このエラーを回避する方法を知っていますか?
私が集めた追加情報:
- fcntl() が EAGAIN で失敗したときに「ファイルを記録できません」エラーが発生しました。
- 非常に小さいpid(ログに表示されている失敗したプロセスよりはるかに小さい)でシステム上で実行されているlvmetadがあります。
- lvm2-lvmetad.serviceによって生成されたlvmetadプロセスは-fで実行されるため、実行中のプロセスではありません。
- 最初のものは2番目のものより3秒早く始まります(システム化前)。
initrdのlvm2コンポーネントのクリーンアップフックは初期lvmetadを終了する必要がありますが、何らかの理由で機能しません。
run_cleanuphook() {
kill $(cat /run/lvmetad.pid)
}
起動後にプロセスを終了しても機能しません。
デバッグトレースを行いましたが(3番目のリンクを投稿できませんでした。2番目の貼り付けの最後にしました)、メインスレッドが別のスレッドが終了するのを待っていて、FD 6で読み取っている間にclient_threadがハングしたようです。 (/run/lvm/lvmetad.socket)