elasticsearch config_error ai_generated true

Elasticsearch解析异常:在管道 [my_pipeline] 中检测到循环引用

ElasticsearchParseException: circular reference detected in pipeline [my_pipeline]

ID: elasticsearch/ingest-pipeline-circular-reference

其他格式: JSON · Markdown 中文 · English
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.

generic

官方文档

https://www.elastic.co/guide/en/elasticsearch/reference/current/ingest-pipeline-processors.html

解决方案

  1. 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.
  2. 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.

无效尝试

常见但无效的做法:

  1. 95% 失败

    Restarting Elasticsearch nodes does not break the circular pipeline definition; the pipeline configuration persists in the cluster state.

  2. 80% 失败

    Deleting the pipeline by name fails because the circular reference prevents the pipeline from being parsed or removed cleanly.