You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bookkeeper.apache.org by si...@apache.org on 2016/11/09 02:06:00 UTC

bookkeeper git commit: BOOKKEEPER-903: metaformat command fix

Repository: bookkeeper
Updated Branches:
  refs/heads/master 0abf37c64 -> 309cbba65


BOOKKEEPER-903: metaformat command fix

metaformat command should delete underreplicated ledger
znodes and lock nodes

Author: Charan Reddy Guttapalem <cg...@salesforce.com>

Reviewers: sijie@apache.org <si...@apache.org>

Closes #62 from reddycharan/metaformatfix


Project: http://git-wip-us.apache.org/repos/asf/bookkeeper/repo
Commit: http://git-wip-us.apache.org/repos/asf/bookkeeper/commit/309cbba6
Tree: http://git-wip-us.apache.org/repos/asf/bookkeeper/tree/309cbba6
Diff: http://git-wip-us.apache.org/repos/asf/bookkeeper/diff/309cbba6

Branch: refs/heads/master
Commit: 309cbba65c8532ef84c70efe181b3162e3078333
Parents: 0abf37c
Author: Charan Reddy Guttapalem <cg...@salesforce.com>
Authored: Tue Nov 8 18:05:57 2016 -0800
Committer: Sijie Guo <si...@apache.org>
Committed: Tue Nov 8 18:05:57 2016 -0800

----------------------------------------------------------------------
 .../apache/bookkeeper/client/BookKeeperAdmin.java  | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/bookkeeper/blob/309cbba6/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeperAdmin.java
----------------------------------------------------------------------
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeperAdmin.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeperAdmin.java
index dd8fde4..bec0e81 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeperAdmin.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeperAdmin.java
@@ -45,6 +45,7 @@ import org.apache.bookkeeper.client.BookKeeper.SyncOpenCallback;
 import org.apache.bookkeeper.client.LedgerFragmentReplicator.SingleFragmentCallback;
 import org.apache.bookkeeper.conf.ClientConfiguration;
 import org.apache.bookkeeper.meta.LedgerManager.LedgerRangeIterator;
+import org.apache.bookkeeper.meta.ZkLedgerUnderreplicationManager;
 import org.apache.bookkeeper.net.BookieSocketAddress;
 import org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.MultiCallback;
 import org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.Processor;
@@ -939,7 +940,23 @@ public class BookKeeperAdmin {
             bkc = new BookKeeper(conf, zkc);
             // Format all ledger metadata layout
             bkc.ledgerManagerFactory.format(conf, zkc);
+            
+            // Clear underreplicated ledgers
+            try {
+                ZKUtil.deleteRecursive(zkc, ZkLedgerUnderreplicationManager.getBasePath(conf.getZkLedgersRootPath())
+                        + BookKeeperConstants.DEFAULT_ZK_LEDGERS_ROOT_PATH);
+            } catch (KeeperException.NoNodeException e) {
+                LOG.debug("underreplicated ledgers root path node not exists in zookeeper to delete");
+            }
 
+            // Clear underreplicatedledger locks
+            try {
+                ZKUtil.deleteRecursive(zkc, ZkLedgerUnderreplicationManager.getBasePath(conf.getZkLedgersRootPath())
+                        + '/' + BookKeeperConstants.UNDER_REPLICATION_LOCK);
+            } catch (KeeperException.NoNodeException e) {
+                LOG.debug("underreplicatedledger locks node not exists in zookeeper to delete");
+            }
+            
             // Clear the cookies
             try {
                 ZKUtil.deleteRecursive(zkc, conf.getZkLedgersRootPath()