版本: 7.8-8.9
简而言之,当 Elasticsearch 分片的恢复过程被中断或停止时,会出现此错误。这可能是由于节点离开集群、更高优先级的恢复过程启动,或手动干预造成的。要解决此问题,您可以尝试重新启动恢复过程,确保所有节点稳定并连接到集群,或检查是否有任何可能干扰恢复的正在进行的进程。如果问题持续存在,考虑通过添加更多节点或提高网络稳定性来增强集群的韧性。
日志上下文 #
日志"恢复被取消"的类名是 RemoteRecoveryTargetHandler.java. 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入背景的人参考:
public void cancel() {
isCancelled = true;
if (onGoingRetryableActions.isEmpty()) {
return;
}
final RuntimeException exception = new CancellableThreads.ExecutionCancelledException("recovery was cancelled");
// Dispatch to generic as cancellation calls can come on the cluster state applier thread
threadPool.generic().execute(() -> {
for (RetryableActionaction : onGoingRetryableActions.values()) {
action.cancel(exception);
}





