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

版本: 6.8-7.7

简要来说,当 Elasticsearch 尝试删除指定存储库中不存在的快照时,会发生此错误。这可能是由于快照名称拼写错误或快照已被删除所致。要解决此问题,请确保快照名称正确且存在于存储库中。如果快照已被删除,则无需采取任何操作。如果错误仍然存在,请检查存储库的健康状况和配置。

日志上下文 #

日志 “Attempting to remove non-existent snapshot [{}] from repository data” 的类名是 RepositoryData.java。我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入了解上下文的人参考:

public RepositoryData removeSnapshot(final SnapshotId snapshotId, final ShardGenerations updatedShardGenerations) {
 Map<SnapshotId, SnapshotId> newSnapshotIds = snapshotIds.values().stream()
 .filter(id -> !snapshotId.equals(id))
 .collect(Collectors.toMap(SnapshotId::getUUID, Function.identity()));
 if (newSnapshotIds.size() == snapshotIds.size()) {
 throw new ResourceNotFoundException("Attempting to remove non-existent snapshot [{}] from repository data", snapshotId);
 }
 Map<SnapshotId, SnapshotState> newSnapshotStates = new HashMap<>(snapshotStates);
 newSnapshotStates.remove(snapshotId.getUUID());
 final Map<SnapshotId, Version> newSnapshotVersions = new HashMap<>(snapshotVersions);
 newSnapshotVersions.remove(snapshotId.getUUID());