Source node does not have the shard listed in its state as allocated on the node – Elasticsearch Error How To Solve Related Issues



Source node does not have the shard listed in its state as allocated on the node – Elasticsearch Error How To Solve Related Issues

Updated: July-20

Elasticsearch Version: 1.7-8.0

Before you begin reading this guide, we recommend you try running the Elasticsearch Error Check-Up  which can resolve issues causing many errors 

 

This guide will help you check for common problems that cause the log “source node does not have the shard listed in its state as allocated on the node” to appear. It’s important to understand the issues related to the log, so to get started, read the general overview on common issues and tips related to the Elasticsearch concepts: recovery, source, shard, indices, node.


Advanced users might want to skip right to the common problems section in each concept or try running the Check-Up which analyses ES to discover the cause of many errors and provides suitable actionable recommendations (free tool that requires no installation). 

Log Context

Log”source node does not have the shard listed in its state as allocated on the node”classname  is RecoverySourceHandler.java
We extracted the following from Elasticsearch source code for those seeking an in-depth context :

final IndexShardRoutingTable routingTable = shard.getReplicationGroup().getRoutingTable();
  ShardRouting targetShardRouting = routingTable.getByAllocationId(request.targetAllocationId());
  if (targetShardRouting == null) {
  logger.debug("delaying recovery of {} as it is not listed as assigned to target node {}"; request.shardId();
  request.targetNode());
  throw new DelayRecoveryException("source node does not have the shard listed in its state as allocated on the node");
  }
  assert targetShardRouting.initializing() : "expected recovery target to be initializing but was " + targetShardRouting;
  retentionLeaseRef.set(
  shard.getRetentionLeases().get(ReplicationTracker.getPeerRecoveryRetentionLeaseId(targetShardRouting)));
  }; shardId + " validating recovery target ["+ request.targetAllocationId() + "] registered ";

Related issues to this log

We have gathered selected Q&A from the community and issues from Github, that can help fix related issues please review the following for further information :

1 ElasticSearch: Unassigned Shards, how to fix? -views 222,252 ,score 164

Shard initialization stuck – RecoveryFailedException – Elasticsearch …  



Find Configuration Errors

Analyze Now