エラーメッセージ:「Can't call method min_digest_id on an undefined value」(未定義の値に min_digest_id メソッドを呼び出せません)

以下の pmx-qdigest エラーは隔離検索データベース (/opt/pmx/var/qdigest/scan.db) が破損していることが原因で発生している可能性があります。

Can't call method "min_digest_id" on an undefined value /opt/pmx/bin/pmx-qdigest line n
  • 以下のコマンドを実行して確認を行います。
    pmx-qdigest --dump

    この方法で各種ダイジェストおよびユーザー別の隔離 ID のリストが作成されずに上記のようなエラーが返される場合、scan.db ファイルが原因である可能性が非常に高いと考えられます。

  • ファイルの権限や所有者が正しいかどうかを確認してください。
    permissions:-rw-r--r--
    owner:       pmx
    group:       pmx
  • これらが正しくない場合は chmod または chown で修正することで問題が解決する可能性があります。権限および所有者が正しい場合、または、これらの設定をデフォルトに戻しても問題が解決されない場合は、新規に scan.db ファイルを作成します。
    cd 'pmx prefix'/var/counters
    mv scan.db scan.db.broken
    pmx-qdigest --earliest <YYYY-MM-DD hh:mm:ss>

    <YYYY-MM-DD hh:mm:ss> には、ダイジェストに含める最も古いメッセージの日付を設定します。隔離検索がこの時点から開始されます。

    pmx-qdigest コマンドが完了すると scan.db データベースが再生成されます。次回の隔離ダイジェストは、実行中に検出された最後の隔離 ID (この場合、隔離ディレクトリ内にある最新のメッセージ) から始まります 。

    次回に pmx-qdigest がスケジューラによって実行されると通常のように処理が実行されます。