elasticsearch
config_error
ai_generated
true
Elasticsearch解析异常:在管道 [my_pipeline] 中检测到循环引用
ElasticsearchParseException: circular reference detected in pipeline [my_pipeline]
ID: elasticsearch/ingest-pipeline-circular-reference
88%修复率
85%置信度
1证据数
2023-04-12首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| 7.17.0 | active | — | — | — |
| 8.5.0 | active | — | — | — |
| 8.10.0 | active | — | — | — |
根因分析
一个摄取管道直接或间接通过其他管道引用自身,创建了Elasticsearch无法解析的无限循环。
English
An ingest pipeline references itself directly or indirectly through other pipelines, creating an infinite loop that Elasticsearch cannot resolve.
官方文档
https://www.elastic.co/guide/en/elasticsearch/reference/current/ingest-pipeline-processors.html解决方案
-
Use the Cluster State API to manually remove the pipeline definition from the cluster state: PUT /_cluster/state/metadata?pretty and then patch the metadata to delete the circular pipeline entry. Alternatively, use the following curl command to delete the pipeline after clearing the reference: curl -X DELETE 'localhost:9200/_ingest/pipeline/my_pipeline' but ensure no other pipeline references it first.
-
Temporarily disable the pipeline by setting its version to a negative value via the Cluster Settings API: PUT /_cluster/settings { 'transient': { 'ingest.pipelines.my_pipeline.enabled': false } } and then fix the pipeline definition.
无效尝试
常见但无效的做法:
-
95% 失败
Restarting Elasticsearch nodes does not break the circular pipeline definition; the pipeline configuration persists in the cluster state.
-
80% 失败
Deleting the pipeline by name fails because the circular reference prevents the pipeline from being parsed or removed cleanly.