7.3.8.3.6. -34: GRN_RESOURCE_DEADLOCK_AVOIDED — Groonga v16.0.4ドキュメント

本文へスキップ
`Ctrl`+`K`

# 7.3.8.3.6. `-34: GRN_RESOURCE_DEADLOCK_AVOIDED`

## 7.3.8.3.6.1. 主な原因

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

## 7.3.8.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のデータベースをバックアップから復旧します。