From 712e50ed49060d6db2046dbfb2430f0dc9412a5e Mon Sep 17 00:00:00 2001 From: Dave Marion Date: Wed, 29 Jan 2025 07:50:27 -0500 Subject: [PATCH] Removed call to ServiceLock that checked lock data equivalence (#5291) Closes #5288 --- .../core/fate/zookeeper/ServiceLock.java | 28 ------------------- .../apache/accumulo/server/util/ZooZap.java | 4 ++- 2 files changed, 3 insertions(+), 29 deletions(-) diff --git a/core/src/main/java/org/apache/accumulo/core/fate/zookeeper/ServiceLock.java b/core/src/main/java/org/apache/accumulo/core/fate/zookeeper/ServiceLock.java index 375c2ef665a..c6478baff36 100644 --- a/core/src/main/java/org/apache/accumulo/core/fate/zookeeper/ServiceLock.java +++ b/core/src/main/java/org/apache/accumulo/core/fate/zookeeper/ServiceLock.java @@ -18,7 +18,6 @@ */ package org.apache.accumulo.core.fate.zookeeper; -import static java.nio.charset.StandardCharsets.UTF_8; import static java.util.Objects.requireNonNull; import java.util.ArrayList; @@ -736,33 +735,6 @@ public static void deleteLock(ZooReaderWriter zk, ServiceLockPath path) } - public static boolean deleteLock(ZooReaderWriter zk, ServiceLockPath path, String lockData) - throws InterruptedException, KeeperException { - - List children = validateAndSort(path, zk.getChildren(path.toString())); - - if (children.isEmpty()) { - throw new IllegalStateException("No lock is held at " + path); - } - - String lockNode = children.get(0); - - if (!lockNode.startsWith(ZLOCK_PREFIX)) { - throw new RuntimeException("Node " + lockNode + " at " + path + " is not a lock node"); - } - - byte[] data = zk.getData(path + "/" + lockNode); - - if (lockData.equals(new String(data, UTF_8))) { - String pathToDelete = path + "/" + lockNode; - LOG.debug("Deleting all at path {} due to lock deletion", pathToDelete); - zk.recursiveDelete(pathToDelete, NodeMissingPolicy.FAIL); - return true; - } - - return false; - } - /** * Checks that the lock still exists in ZooKeeper. The typical mechanism for determining if a lock * is lost depends on a Watcher set on the lock node. There exists a case where the Watcher may diff --git a/server/base/src/main/java/org/apache/accumulo/server/util/ZooZap.java b/server/base/src/main/java/org/apache/accumulo/server/util/ZooZap.java index d16b9fe9843..54c596ea050 100644 --- a/server/base/src/main/java/org/apache/accumulo/server/util/ZooZap.java +++ b/server/base/src/main/java/org/apache/accumulo/server/util/ZooZap.java @@ -141,7 +141,9 @@ public void zap(SiteConfiguration siteConf, String... args) { } else { var zLockPath = ServiceLock.path(tserversPath + "/" + child); if (!zoo.getChildren(zLockPath.toString()).isEmpty()) { - if (!ServiceLock.deleteLock(zoo, zLockPath, "tserver")) { + try { + ServiceLock.deleteLock(zoo, zLockPath); + } catch (RuntimeException e) { message("Did not delete " + tserversPath + "/" + child, opts); } }