shard_lock_obtain_failed_exception: Obtaining shard lock timed out(シャードロックの取得がタイムアウト)
Elasticsearch意味
Elasticsearch がシャードを操作するために必要なローカルディレクトリロック (shard lock) をタイムアウト内に取得できなかった。シャードを起動または再割り当てできなかった。
原因
同じシャードの以前のコピー (close/relocation 後) がまだロックを解放していない、遅い/ハングした I/O、ディスクの問題、またはノードの高速な再起動後にクリーンアップされていない古いシャード状態。通常は一時的だが、継続する場合シャードは UNASSIGNED のままとなる。
対処方法
シャードが未割り当ての理由を確認する: GET _cluster/allocation/explain。ほとんどの場合ロックはまもなく解放され、クラスタが自動的に再試行する。必要に応じて POST _cluster/reroute?retry_failed=true で再割り当てをトリガーする。継続する場合は、影響を受けたノードのログで I/O/ディスクエラーを調べ、ディスクの健全性を確認する。問題のノードをクリーンに再起動するとロックが解消されることがある。
同じデータベースの他の項目
- receive_timeout_transport_exceptionRequest timed out waiting for a response from another node(別のノードからの応答待ちで要求がタイムアウト)
- routing_missing_exceptionRouting value is required for this document(このドキュメントにはルーティング値が必要)
- too_many_buckets_exceptionTrying to create too many buckets(作成しようとしたバケットが多すぎる)
- parsing_exceptionFailed to parse the search request / query DSL(検索要求 / query DSL の解析に失敗)
- max_bytes_length_exceeded_exceptionDocument contains at least one immense term that is too long(ドキュメントに長すぎる巨大な term が少なくとも 1 つ含まれる)
- illegal_argument_exception_total_fieldsLimit of total fields has been exceeded(フィールド総数の上限を超えた)
- verification_exceptionverification_exception: Found N problem(s) — Unknown column / Unknown index (ES|QL, SQL, EQL)(検証例外: N 件の問題 — 不明な列 / 不明なインデックス)