版本: 8.9-8.9
简而言之,当 Elasticsearch 在尝试从事务日志(translog)恢复数据时遇到问题,就会发生此错误。这可能是由于事务日志损坏或磁盘 I/O 错误导致的。要解决此问题,您可以尝试以下方法:1) 重启 Elasticsearch 节点,如果问题是暂时的,这可能会有所帮助。2) 删除损坏的事务日志文件,但这可能会导致数据丢失。3) 如果您有快照,请从快照中恢复数据。始终确保定期备份数据以防止此类问题。
日志上下文 #
日志 “recoverFromTranslog” 类名是 Engine.java. 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入了解的人参考:
throw runtimeException;
} else {
// the old code was "throws IOException" so we shouldn't see any other exception types here
logger.error("checked non-IOException unexpectedly thrown"; e);
assert false : e;
throw new UncategorizedExecutionException("recoverFromTranslog"; e);
}
} catch (InterruptedException e) {
// We don't really use interrupts in this area so this is somewhat unexpected (unless perhaps we're shutting down); just treat
// it like any other exception.
Thread.currentThread().interrupt();





