ビットコイン・インスティテュート

-datadirの​指定で​問題が​発生

psyvenrix 2010年7月28日13:38 UTC

致命的な問題ではないが、datadirオプションにピリオド(カレントディレクトリ)以外のものを指定すると、コンソールとdebug.logに必ず以下のエラーメッセージが出るのが不思議だ。Arch Linuxのターミナルのセッションでbitcoindを使っている。GUIはまったく使っていない(SSH経由でアクセスするヘッドレスのマシンだ)。

コンソールの出力:


EXCEPTION: 22DbRunRecoveryException DbEnv::open: DB_RUNRECOVERY: Fatal error, run database recovery bitcoin in AppInit()

terminate called after throwing an instance of ‘DbRunRecoveryException’ what(): DbEnv::open: DB_RUNRECOVERY: Fatal error, run database recovery

datadir内のdebug.logの出力:

Bitcoin version 0.3.4.0 beta Default data directory /home/psyvenrix/.bitcoin Bound to port 8333 Loading addresses… dbenv.open strLogDir=./datadir2/database strErrorFile=./datadir2/db.log


EXCEPTION: 22DbRunRecoveryException DbEnv::open: DB_RUNRECOVERY: Fatal error, run database recovery bitcoin in AppInit()

これはSVNのビルドだ。メインサイトのtar.gzはopenssl 0.9.8あたりにリンクされていると思うが、私のArch Linuxのシステムは1.0.0だと思うので、最新のSVNソースを取ってきてビルドした(Makefileを少しいじった以外は、問題なくコンパイルできた)。

バイナリのあるディレクトリと上のdatadirの両方のパーミッションを確認したが、どちらも私のログインユーザーで書き込める(裏でACL/SELinuxの仕掛けもない)。

ビットコインを使い始めたばかりなので、そのディレクトリの中身が新規生成されたもの(つまり、すべてをrm -rfしてから、存在しない新しいディレクトリでbitcoindを起動し、必要なファイルが作られるのを確認したあとにクラッシュする)なのに、リカバリ系のエラーが出るのは不思議だ。

誰か、何か心当たりはない?