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);
 

Reply via email to