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





