CentOS7.9「Thread died in Berkeley DB library」エラーの修復方法

CentOS7のrpmdbエラーに対処した話

CentOS7.9のyumコマンド実行時にエラー

rpmというCentOSのパッケージ管理システムで起きたエラーの話になります。

Anacron job 'cron.daily'
/etc/cron.daily/logrotate:

サーバーを管理しているPleskからメールを受け取りました。毎日叩かれていたcronのようで、迷惑フォルダ に振り分けられ気付きませんでした。

エラー内容ですが、調べてみるとyumが何かしらで実行中にロックがかかり、以降処理が進まないがために一旦プロセスを強制終了する。これにより下記のrpmdbエラーが発生、データベース破損のお知らせが来ることとなった。

以前似たようなケースで、ゾンビプロセスが大量発生してしまいプロセスを強制終了すらできず、その結果、メモリが枯渇してしまう恐い経験もありました。しかし、今回はログを見る限りプロセスの強制終了は、しっかり行えているようなので気楽に対応できそうです。

error: rpmdb: BDB0113 Thread/process 23354/140189948721280 failed: BDB1507 Thread died in Berkeley DB library
error: db5 error(-30973) from dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db5 -  (-30973)
error: cannot open Packages database in /var/lib/rpm
error: rpmdb: BDB0113 Thread/process 23354/140189948721280 failed: BDB1507 Thread died in Berkeley DB library
error: db5 error(-30973) from dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages database in /var/lib/rpm

rpm –rebuilddb コマンドでエラーが解決しました

参考:rpm -qa gets thread died in Berkeley DB library

rpm --rebuilddb

rpm –rebuilddb コマンド実行後に、エラーレスポンスがなければ修復完了です。

修復できたかどうか確認をする

$ yum list installed | grep openssl
openssl.x86_64                1:1.0.2k-22.el7_9              @updates
openssl-devel.x86_64          1:1.0.2k-22.el7_9              @updates
openssl-libs.x86_64           1:1.0.2k-22.el7_9              @updates

$ rpm -qa | grep openssl
openssl-1.0.2k-22.el7_9.x86_64
openssl-libs-1.0.2k-22.el7_9.x86_64
openssl-devel-1.0.2k-22.el7_9.x86_64  

これでエラーメールも来なくなりました。

About Naoki 24 Articles
デザインを含めたフロントエンドから、インフラ含めたバックエンドまで広く浅く活動しているエンジニアです。主にSaasの開発・営業・運営管理などをしております。毎日デスマーチがモットーなブラックエンジニアです。 私が管理しているクラウドソフトウェアがこちらです→まとめツール倶楽部『MTCsystem』

Be the first to comment

Leave a Reply

Your email address will not be published.


*


CAPTCHA


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)