From c36260d55b854aab9045409ed668895e8d6c8ed6 Mon Sep 17 00:00:00 2001 From: nicochen Date: Wed, 20 Sep 2023 14:29:15 +0800 Subject: [PATCH] fix repair.sh analyze table get warn snap id --- .../server/maintainer/command/TableAvailableAnalyzer.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ams/ams-server/src/main/java/com/netease/arctic/ams/server/maintainer/command/TableAvailableAnalyzer.java b/ams/ams-server/src/main/java/com/netease/arctic/ams/server/maintainer/command/TableAvailableAnalyzer.java index 31b338be8f..a6be31a2e2 100644 --- a/ams/ams-server/src/main/java/com/netease/arctic/ams/server/maintainer/command/TableAvailableAnalyzer.java +++ b/ams/ams-server/src/main/java/com/netease/arctic/ams/server/maintainer/command/TableAvailableAnalyzer.java @@ -19,6 +19,7 @@ package com.netease.arctic.ams.server.maintainer.command; import com.google.common.collect.Iterables; +import com.google.common.collect.Lists; import com.netease.arctic.ams.server.maintainer.RepairUtil; import com.netease.arctic.catalog.ArcticCatalog; import com.netease.arctic.catalog.CatalogManager; @@ -43,6 +44,9 @@ import org.jetbrains.annotations.NotNull; import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -159,7 +163,9 @@ private TableAnalyzeResult check(UnkeyedTable table) { //find can roll back snapshot Iterable remainSnapshot = Iterables.filter(table.snapshots(), s -> !s.equals(currentSnapshot)); - Iterable maxFindSnapshot = Iterables.limit(remainSnapshot, maxFindSnapshotNum); + List maxFindSnapshot = Arrays.asList(Iterables.toArray(remainSnapshot, Snapshot.class)); + Collections.reverse(maxFindSnapshot); + maxFindSnapshot = maxFindSnapshot.subList(0, Math.min(maxFindSnapshot.size(), maxFindSnapshotNum)); Iterable okSnapshot = Iterables.filter(maxFindSnapshot, s -> checkSnapshot(table, s).isOk()); Iterable finalOkSnapshot = Iterables.limit(okSnapshot, maxRollbackSnapNum); List rollbackSnapshot = new ArrayList<>();