📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

版本: 6.8-8.9

简而言之,当Elasticsearch仍在处理先前的集群状态更改时,如果尝试更改当前集群状态,就会出现此错误。这可能是由于高负载或网络速度慢导致状态更改延迟造成的。要解决此问题,您可以尝试以下方法:1) 增加集群状态更改的超时设置。2) 优化集群以更好地处理高负载,这可能涉及添加更多节点或增加硬件资源。3) 检查网络是否存在可能导致延迟的问题并进行修复。

日志上下文 #

日志"cannot set current cluster state while waiting for a cluster state change"的类名是 ClusterStateObserver.java。我们从Elasticsearch源代码中提取了以下内容,供那些寻求深入上下文的人参考:

}  /** 将最后观察到的状态设置为当前应用的集群状态并返回它 */
 public ClusterState setAndGetObservedState() {
 if (observingContext.get() != null) {
 throw new ElasticsearchException("cannot set current cluster state while waiting for a cluster state change");
 }
 ClusterState clusterState = clusterApplierService.state();
 lastObservedVersion = clusterState.version();
 return clusterState;
 }