版本: 6.8-8.9
简要来说,当Elasticsearch操作正在等待一个已在进行中的集群状态更改时,就会出现此错误。这可能是由于网络缓慢、索引负载过重或集群状态过大导致的。要解决此问题,您可以尝试减少索引负载、提高网络速度或减小集群状态的大小。此外,请确保您的Elasticsearch集群具有足够的资源来处理工作负载。如果问题仍然存在,请考虑升级您的Elasticsearch版本,因为某些旧版本在集群状态管理方面存在已知问题。
日志上下文 #
日志"already waiting for a cluster state change"的类名是 ClusterStateObserver.java。我们从Elasticsearch源代码中提取了以下内容,供那些寻求深入背景知识的人参考:
* @param timeOutValue a timeout for waiting. If null the global observer timeout will be used.
*/
public void waitForNextChange(Listener listener; PredicatestatePredicate; @Nullable TimeValue timeOutValue) {
listener = new ContextPreservingListener(listener; contextHolder.newRestorableContext(false));
if (observingContext.get() != null) {
throw new ElasticsearchException("already waiting for a cluster state change");
} Long timeoutTimeLeftMS;
if (timeOutValue == null) {
timeOutValue = this.timeOutValue;





