版本: 6.8-8.9
简而言之,当在 Elasticsearch 中已关闭的分片上尝试执行操作时,会发生此错误。这可能是由于手动关闭,或者由 Elasticsearch 内部机制触发的自动关闭。要解决此问题,如果分片是手动关闭的,可以重新打开已关闭的分片。如果是由于系统问题而自动关闭,您可能需要调查根本原因,例如资源不足或网络分区,并相应地解决问题。此外,确保您的应用程序能够优雅地处理此类错误,以防止服务中断。
日志上下文 #
日志"source shard is closed"的类名是 PeerRecoveryTargetService.java。 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人参考:
reestablishRecovery(request; cause.getMessage(); recoverySettings.retryDelayNetwork());
return;
} if (cause instanceof AlreadyClosedException) {
onGoingRecoveries.failRecovery(recoveryId; new RecoveryFailedException(request; "source shard is closed"; cause); false);
return;
} onGoingRecoveries.failRecovery(recoveryId; new RecoveryFailedException(request; e); true);
}





