7.3.7.3.6. -34: GRN_RESOURCE_DEADLOCK_AVOIDED#

7.3.7.3.6.1. 主な原因#

Groongaは loaddelete 等を実行するときにオブジェクトへの書き込みをブロックするためにロックを取得します。その時、既にロックが取得されている場合、Groongaはロックが開放されるのを待ちます。このエラーは、約3時間の間Groongaがロックを取得できなかったときに発生します。

7.3.7.3.6.2. 主な対策#

このエラーが発生した場合、Groongaのデータやインデックスは破損している可能性が高いです。

Groongaのデータベースが壊れているかどうかを確認します。

  1. Groongaを停止します。(この手順は非常に重要です。この手順は必ず実施してください。)

  2. Groongaのデータベースに対して grndb check DATABASE_PATH を実行します。

    grndb については、 ::doc::/reference/executables/grndb.html を参照してください。

  3. Groongaのデータベースが復旧できるかどうかを grndb check のログで確認します。

  4. Groongaのデータベースが復旧できる場合は、 grndb recover DATABASE_PATH を実行します。

    Groongaのデータベースが復旧できない場合は、Groongaのデータベースをバックアップから復旧します。