This is an automated email from the ASF dual-hosted git repository. dlmarion pushed a commit to branch 3.1 in repository https://gitbox.apache.org/repos/asf/accumulo.git
The following commit(s) were added to refs/heads/3.1 by this push: new cf74fee972 Fixed bug in UpgradeCoordinator comparing against the same version (#5366) cf74fee972 is described below commit cf74fee9726059042280ceae43670476b8f6bb7b Author: Dave Marion <dlmar...@apache.org> AuthorDate: Fri Feb 28 15:47:49 2025 -0500 Fixed bug in UpgradeCoordinator comparing against the same version (#5366) A minor bug introduced in #5357 where the UpgradeCoordinator was comparing the stored progress version against the wrong variable which ended up skipping the Upgraders altogether. --- .../manager/upgrade/UpgradeCoordinator.java | 55 ++++++++++++---------- 1 file changed, 29 insertions(+), 26 deletions(-) diff --git a/server/manager/src/main/java/org/apache/accumulo/manager/upgrade/UpgradeCoordinator.java b/server/manager/src/main/java/org/apache/accumulo/manager/upgrade/UpgradeCoordinator.java index 9cde40436d..6435da438b 100644 --- a/server/manager/src/main/java/org/apache/accumulo/manager/upgrade/UpgradeCoordinator.java +++ b/server/manager/src/main/java/org/apache/accumulo/manager/upgrade/UpgradeCoordinator.java @@ -192,20 +192,21 @@ public class UpgradeCoordinator { final UpgradeProgress progress = progressTracker.getProgress(); - for (int v = currentVersion; v < AccumuloDataVersion.get(); v++) { - if (progress.getZooKeeperVersion() >= currentVersion) { + for (int upgradeVersion = currentVersion; upgradeVersion < AccumuloDataVersion.get(); + upgradeVersion++) { + if (progress.getZooKeeperVersion() >= upgradeVersion) { log.info( "ZooKeeper has already been upgraded to version {}, moving on to next upgrader", - currentVersion); + upgradeVersion); continue; } - log.info("Upgrading Zookeeper - current version {} as step towards target version {}", v, - AccumuloDataVersion.get()); - var upgrader = upgraders.get(v); + log.info("Upgrading Zookeeper - current version {} as step towards target version {}", + upgradeVersion, AccumuloDataVersion.get()); + var upgrader = upgraders.get(upgradeVersion); Objects.requireNonNull(upgrader, - "upgrade ZooKeeper: failed to find upgrader for version " + currentVersion); + "upgrade ZooKeeper: failed to find upgrader for version " + upgradeVersion); upgrader.upgradeZookeeper(context); - progressTracker.updateZooKeeperVersion(v); + progressTracker.updateZooKeeperVersion(upgradeVersion); } } @@ -231,38 +232,40 @@ public class UpgradeCoordinator { .withQueue(new SynchronousQueue<>()).build().submit(() -> { try { UpgradeProgress progress = progressTracker.getProgress(); - for (int v = currentVersion; v < AccumuloDataVersion.get(); v++) { - if (progress.getRootVersion() >= currentVersion) { + for (int upgradeVersion = currentVersion; upgradeVersion < AccumuloDataVersion.get(); + upgradeVersion++) { + if (progress.getRootVersion() >= upgradeVersion) { log.info( "Root table has already been upgraded to version {}, moving on to next upgrader", - currentVersion); + upgradeVersion); continue; } - log.info("Upgrading Root - current version {} as step towards target version {}", v, - AccumuloDataVersion.get()); - var upgrader = upgraders.get(v); + log.info("Upgrading Root - current version {} as step towards target version {}", + upgradeVersion, AccumuloDataVersion.get()); + var upgrader = upgraders.get(upgradeVersion); Objects.requireNonNull(upgrader, - "upgrade root: failed to find root upgrader for version " + currentVersion); - upgraders.get(v).upgradeRoot(context); - progressTracker.updateRootVersion(v); + "upgrade root: failed to find root upgrader for version " + upgradeVersion); + upgraders.get(upgradeVersion).upgradeRoot(context); + progressTracker.updateRootVersion(upgradeVersion); } setStatus(UpgradeStatus.UPGRADED_ROOT, eventCoordinator); - for (int v = currentVersion; v < AccumuloDataVersion.get(); v++) { - if (progress.getMetadataVersion() >= currentVersion) { + for (int upgradeVersion = currentVersion; upgradeVersion < AccumuloDataVersion.get(); + upgradeVersion++) { + if (progress.getMetadataVersion() >= upgradeVersion) { log.info( "Metadata table has already been upgraded to version {}, moving on to next upgrader", - currentVersion); + upgradeVersion); continue; } log.info( - "Upgrading Metadata - current version {} as step towards target version {}", v, - AccumuloDataVersion.get()); - var upgrader = upgraders.get(v); + "Upgrading Metadata - current version {} as step towards target version {}", + upgradeVersion, AccumuloDataVersion.get()); + var upgrader = upgraders.get(upgradeVersion); Objects.requireNonNull(upgrader, - "upgrade metadata: failed to find upgrader for version " + currentVersion); - upgraders.get(v).upgradeMetadata(context); - progressTracker.updateMetadataVersion(v); + "upgrade metadata: failed to find upgrader for version " + upgradeVersion); + upgraders.get(upgradeVersion).upgradeMetadata(context); + progressTracker.updateMetadataVersion(upgradeVersion); } setStatus(UpgradeStatus.UPGRADED_METADATA, eventCoordinator);