版本: 6.8-7.15
简而言之,当 Elasticsearch 尝试恢复分片时发现相同分片的恢复进程已在进行中,就会出现此错误。这可能是由于网络故障或节点故障造成的。要解决此问题,您可以尝试以下方法:1) 重启 Elasticsearch 节点,这可能有助于重置恢复进程。2) 检查集群运行状况,确保所有节点都正确连接。3) 如果错误仍然存在,您可能需要使用集群 reroute API 手动重新路由分片。
日志上下文 #
日志"recovery with same target already registered; waiting for"的类名是 PeerRecoverySourceService.java. 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人参考:
*/
synchronized TupleaddNewRecovery(StartRecoveryRequest request;
IndexShard shard) {
for (RecoverySourceHandler existingHandler : recoveryHandlers.keySet()) {
if (existingHandler.getRequest().targetAllocationId().equals(request.targetAllocationId())) {
throw new DelayRecoveryException("recovery with same target already registered; waiting for " +
"previous recovery attempt to be cancelled or completed");
}
}
final Tuplehandlers = createRecoverySourceHandler(request; shard);
recoveryHandlers.put(handlers.v1(); handlers.v2());





