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

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