版本: 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;
}





