Too many pending states pending – How to solve this Elasticsearch exception

Opster Team

August-23, Version: 6.8-7.17

Briefly, this error occurs when there are too many cluster state updates that are yet to be processed by Elasticsearch. This could be due to a high rate of index creation, deletion, or updates to cluster settings. To resolve this issue, you can consider reducing the rate of these operations or increasing the capacity of your Elasticsearch cluster. Additionally, ensure that your cluster’s master node is not overwhelmed with other tasks, as this could slow down the processing of cluster state updates.

This guide will help you check for common problems that cause the log ” too many pending states ([{}] pending) ” to appear. To understand the issues related to this log, read the explanation below about the following Elasticsearch concepts: discovery.

Log Context

Log “too many pending states ([{}] pending)” class name is PendingClusterStatesQueue.java. We extracted the following from Elasticsearch source code for those seeking an in-depth context :

 if (pendingStates.size() > maxQueueSize) {
 ClusterStateContext context = pendingStates.remove(0);
 logger.warn("dropping pending state [{}]. more than [{}] pending states."; context; maxQueueSize);
 if (context.committed()) {
 context.listener.onNewClusterStateFailed(
 new ElasticsearchException("too many pending states ([{}] pending)"; maxQueueSize)
 );
 }
 }
 }

 

 [ratemypost]