📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

版本: 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);
 }