You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bookkeeper.apache.org by ju...@apache.org on 2019/05/01 03:20:37 UTC
[bookkeeper] branch master updated: Explicit error message if
extent is not present on ZK (#2066)
This is an automated email from the ASF dual-hosted git repository.
jujjuri pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git
The following commit(s) were added to refs/heads/master by this push:
new 9bb7e4b Explicit error message if extent is not present on ZK (#2066)
9bb7e4b is described below
commit 9bb7e4b8245507ce1aefc9ff9a316c1407016240
Author: Venkateswararao Jujjuri (JV) <ju...@gmail.com>
AuthorDate: Tue Apr 30 20:20:32 2019 -0700
Explicit error message if extent is not present on ZK (#2066)
* Explicit error message if extent is not present on ZK
Client can get no extent error in the following two scenarios.
1. When client attempted to read/open an extent that
is not on ZK (metadata server)
2. When client attempted to read a Ledger which is on metadata
server, but somehow missing on bookies (Data server)
It is quite confusing to get the same error, NoSuchLedgerExists
for both these cases. This checkin introduced a new error at the
BookKeeper client level, NoSuchLedgerExistsOnMetadataServer if
it is not available on ZK.
For errors related to Ledger is not available on bookie,
I left NoSuchLedgerExists as-is(instead of changing it to
NoSuchLedgerExistsOnDataServer) to minimize code changes.
This change alone provides enough distinction between these
two types of errors.
Signed-off-by: Venkateswararao Jujjuri (JV) <vj...@salesforce.com>
* Checkstyle fixes
* Some more fixes
* Fixing DL test fixes
---
.../bookkeeper/bookie/ScanAndCompareGarbageCollector.java | 2 +-
.../main/java/org/apache/bookkeeper/client/BKException.java | 10 ++++++++++
.../java/org/apache/bookkeeper/client/BookKeeperAdmin.java | 5 +++--
.../main/java/org/apache/bookkeeper/client/LedgerChecker.java | 3 ++-
.../main/java/org/apache/bookkeeper/client/UpdateLedgerOp.java | 2 +-
.../java/org/apache/bookkeeper/client/api/BKException.java | 7 ++++++-
.../org/apache/bookkeeper/client/impl/OpenBuilderBase.java | 2 +-
.../org/apache/bookkeeper/meta/AbstractZkLedgerManager.java | 7 ++++---
.../main/java/org/apache/bookkeeper/meta/LedgerManager.java | 4 ++--
.../org/apache/bookkeeper/meta/MSLedgerManagerFactory.java | 9 +++++----
.../main/java/org/apache/bookkeeper/replication/Auditor.java | 6 +++---
.../org/apache/bookkeeper/replication/BookieLedgerIndexer.java | 2 +-
.../org/apache/bookkeeper/replication/ReplicationWorker.java | 10 +++++-----
.../test/java/org/apache/bookkeeper/client/MockBookKeeper.java | 8 ++++----
.../org/apache/bookkeeper/client/MockBookKeeperTestCase.java | 4 ++--
.../org/apache/bookkeeper/client/api/BookKeeperApiTest.java | 6 +++---
.../apache/bookkeeper/client/api/BookKeeperBuildersTest.java | 6 +++---
.../apache/bookkeeper/meta/AbstractZkLedgerManagerTest.java | 2 +-
.../test/java/org/apache/bookkeeper/meta/GcLedgersTest.java | 7 ++++---
.../java/org/apache/distributedlog/bk/TestLedgerAllocator.java | 2 +-
.../apache/distributedlog/tools/TestDistributedLogTool.java | 6 +++---
.../bookkeeper/tests/integration/TestBookieShellCluster.java | 3 ++-
22 files changed, 67 insertions(+), 46 deletions(-)
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/ScanAndCompareGarbageCollector.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/ScanAndCompareGarbageCollector.java
index b1e7722..247b610 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/ScanAndCompareGarbageCollector.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/ScanAndCompareGarbageCollector.java
@@ -171,7 +171,7 @@ public class ScanAndCompareGarbageCollector implements GarbageCollector {
} catch (BKException e) {
rc = e.getCode();
}
- if (rc != BKException.Code.NoSuchLedgerExistsException) {
+ if (rc != BKException.Code.NoSuchLedgerExistsOnMetadataServerException) {
LOG.warn("Ledger {} Missing in metadata list, but ledgerManager returned rc: {}.",
bkLid, rc);
continue;
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BKException.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BKException.java
index 781a07b..a3f03c2 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BKException.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BKException.java
@@ -72,6 +72,8 @@ public abstract class BKException extends org.apache.bookkeeper.client.api.BKExc
return new BKNotEnoughBookiesException();
case Code.NoSuchLedgerExistsException:
return new BKNoSuchLedgerExistsException();
+ case Code.NoSuchLedgerExistsOnMetadataServerException:
+ return new BKNoSuchLedgerExistsOnMetadataServerException();
case Code.BookieHandleNotAvailableException:
return new BKBookieHandleNotAvailableException();
case Code.ZKException:
@@ -279,6 +281,14 @@ public abstract class BKException extends org.apache.bookkeeper.client.api.BKExc
super(BKException.Code.NoSuchLedgerExistsException);
}
}
+ /**
+ * Bookkeeper no such ledger exists on metadata server exception.
+ */
+ public static class BKNoSuchLedgerExistsOnMetadataServerException extends BKException {
+ public BKNoSuchLedgerExistsOnMetadataServerException() {
+ super(Code.NoSuchLedgerExistsOnMetadataServerException);
+ }
+ }
/**
* Bookkeeper bookie handle not available exception.
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 9303ffd..6d2319c 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
@@ -492,7 +492,7 @@ public class BookKeeperAdmin implements AutoCloseable {
bkc.getLedgerManager().readLedgerMetadata(lid)
.whenComplete((metadata, exception) -> {
if (BKException.getExceptionCode(exception)
- == BKException.Code.NoSuchLedgerExistsException) {
+ == BKException.Code.NoSuchLedgerExistsOnMetadataServerException) {
// the ledger was deleted during this iteration.
cb.processResult(BKException.Code.OK, null, null);
return;
@@ -1541,7 +1541,8 @@ public class BookKeeperAdmin implements AutoCloseable {
throw new RuntimeException(ie);
} catch (ExecutionException e) {
if (e.getCause() != null
- && e.getCause().getClass().equals(BKException.BKNoSuchLedgerExistsException.class)) {
+ && e.getCause().getClass()
+ .equals(BKException.BKNoSuchLedgerExistsOnMetadataServerException.class)) {
LOG.debug("Ledger: {} has been deleted", ledgerId);
return false;
} else {
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerChecker.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerChecker.java
index b9745a9..fe6370b 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerChecker.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerChecker.java
@@ -264,7 +264,8 @@ public class LedgerChecker {
public void readEntryComplete(int rc, long ledgerId, long entryId,
ByteBuf buffer, Object ctx) {
- if (BKException.Code.NoSuchEntryException != rc && BKException.Code.NoSuchLedgerExistsException != rc) {
+ if (BKException.Code.NoSuchEntryException != rc && BKException.Code.NoSuchLedgerExistsException != rc
+ && BKException.Code.NoSuchLedgerExistsOnMetadataServerException != rc) {
entryMayExist.set(true);
}
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/UpdateLedgerOp.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/UpdateLedgerOp.java
index 6fce7e1..268eff6 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/UpdateLedgerOp.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/UpdateLedgerOp.java
@@ -116,7 +116,7 @@ public class UpdateLedgerOp {
outstanding.add(writePromise);
writePromise.whenComplete((metadata, ex) -> {
if (ex != null
- && !(ex instanceof BKException.BKNoSuchLedgerExistsException)) {
+ && !(ex instanceof BKException.BKNoSuchLedgerExistsOnMetadataServerException)) {
String error = String.format("Failed to update ledger metadata %s, replacing %s with %s",
ledgerId, oldBookieId, newBookieId);
LOG.error(error, ex);
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/api/BKException.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/api/BKException.java
index 058a9a7..0ec0997 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/api/BKException.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/api/BKException.java
@@ -116,7 +116,9 @@ public class BKException extends Exception {
case Code.NotEnoughBookiesException:
return "Not enough non-faulty bookies available";
case Code.NoSuchLedgerExistsException:
- return "No such ledger exists";
+ return "No such ledger exists on Bookies";
+ case Code.NoSuchLedgerExistsOnMetadataServerException:
+ return "No such ledger exists on Metadata Server";
case Code.BookieHandleNotAvailableException:
return "Bookie handle is not available";
case Code.ZKException:
@@ -242,6 +244,9 @@ public class BKException extends Exception {
int TimeoutException = -23;
int SecurityException = -24;
+ /** No such ledger exists one metadata server. */
+ int NoSuchLedgerExistsOnMetadataServerException = -25;
+
/**
* Operation is illegal.
*/
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/impl/OpenBuilderBase.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/impl/OpenBuilderBase.java
index c2c4c35..07e8615 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/impl/OpenBuilderBase.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/impl/OpenBuilderBase.java
@@ -66,7 +66,7 @@ public abstract class OpenBuilderBase implements OpenBuilder {
protected int validate() {
if (ledgerId < 0) {
LOG.error("invalid ledgerId {} < 0", ledgerId);
- return Code.NoSuchLedgerExistsException;
+ return Code.NoSuchLedgerExistsOnMetadataServerException;
}
return Code.OK;
}
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/AbstractZkLedgerManager.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/AbstractZkLedgerManager.java
index 9308bfb..79a4f50 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/AbstractZkLedgerManager.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/AbstractZkLedgerManager.java
@@ -129,7 +129,8 @@ public abstract class AbstractZkLedgerManager implements LedgerManager, Watcher
}
});
}
- } else if (BKException.getExceptionCode(exception) == BKException.Code.NoSuchLedgerExistsException) {
+ } else if (BKException.getExceptionCode(exception)
+ == BKException.Code.NoSuchLedgerExistsOnMetadataServerException) {
// the ledger is removed, do nothing
Set<LedgerMetadataListener> listenerSet = listeners.remove(ledgerId);
if (null != listenerSet) {
@@ -437,7 +438,7 @@ public abstract class AbstractZkLedgerManager implements LedgerManager, Watcher
LOG.debug("No such ledger: " + ledgerId,
KeeperException.create(KeeperException.Code.get(rc), path));
}
- promise.completeExceptionally(new BKException.BKNoSuchLedgerExistsException());
+ promise.completeExceptionally(new BKException.BKNoSuchLedgerExistsOnMetadataServerException());
return;
}
if (rc != KeeperException.Code.OK.intValue()) {
@@ -494,7 +495,7 @@ public abstract class AbstractZkLedgerManager implements LedgerManager, Watcher
promise.complete(new Versioned<>(metadata, new LongVersion(stat.getVersion())));
} else if (KeeperException.Code.NONODE.intValue() == rc) {
LOG.warn("Ledger node does not exist in ZooKeeper: ledgerId={}", ledgerId);
- promise.completeExceptionally(new BKException.BKNoSuchLedgerExistsException());
+ promise.completeExceptionally(new BKException.BKNoSuchLedgerExistsOnMetadataServerException());
} else {
LOG.warn("Conditional update ledger metadata failed: {}", KeeperException.Code.get(rc));
promise.completeExceptionally(new BKException.ZKException());
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerManager.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerManager.java
index 039ff7c..15da14b 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerManager.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerManager.java
@@ -65,7 +65,7 @@ public interface LedgerManager extends Closeable {
* @return Future which, when completed, denotes that the ledger metadata has been removed.
* Completed with an exception:<ul>
* <li>{@link BKException.BKMetadataVersionException} if version doesn't match</li>
- * <li>{@link BKException.BKNoSuchLedgerExistsException} if ledger not exist</li>
+ * <li>{@link BKException.BKNoSuchLedgerExistsOnMetadataServerException} if ledger not exist</li>
* <li>{@link BKException.ZKException} for other issues</li>
* </ul>
*/
@@ -78,7 +78,7 @@ public interface LedgerManager extends Closeable {
* Ledger Id
* @return Future which, when completed, contains the requested versioned metadata.
* Completed with an exception::<ul>
- * <li>{@link BKException.BKNoSuchLedgerExistsException} if ledger not exist</li>
+ * <li>{@link BKException.BKNoSuchLedgerExistsOnMetadataServerException} if ledger not exist</li>
* <li>{@link BKException.ZKException} for other issues</li>
* </ul>
*/
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/MSLedgerManagerFactory.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/MSLedgerManagerFactory.java
index 266db3a..201a0a3 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/MSLedgerManagerFactory.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/MSLedgerManagerFactory.java
@@ -263,7 +263,8 @@ public class MSLedgerManagerFactory extends AbstractZkLedgerManagerFactory {
}
});
}
- } else if (BKException.getExceptionCode(exception) == BKException.Code.NoSuchLedgerExistsException) {
+ } else if (BKException.getExceptionCode(exception)
+ == BKException.Code.NoSuchLedgerExistsOnMetadataServerException) {
// the ledger is removed, do nothing
Set<LedgerMetadataListener> listenerSet = listeners.remove(ledgerId);
if (null != listenerSet) {
@@ -416,7 +417,7 @@ public class MSLedgerManagerFactory extends AbstractZkLedgerManagerFactory {
int bkRc;
if (MSException.Code.NoKey.getCode() == rc) {
LOG.warn("Ledger entry does not exist in meta table: ledgerId={}", ledgerId);
- promise.completeExceptionally(new BKException.BKNoSuchLedgerExistsException());
+ promise.completeExceptionally(new BKException.BKNoSuchLedgerExistsOnMetadataServerException());
} else if (MSException.Code.OK.getCode() == rc) {
FutureUtils.complete(promise, null);
} else {
@@ -438,7 +439,7 @@ public class MSLedgerManagerFactory extends AbstractZkLedgerManagerFactory {
if (MSException.Code.NoKey.getCode() == rc) {
LOG.error("No ledger metadata found for ledger " + ledgerId + " : ",
MSException.create(MSException.Code.get(rc), "No key " + key + " found."));
- promise.completeExceptionally(new BKException.BKNoSuchLedgerExistsException());
+ promise.completeExceptionally(new BKException.BKNoSuchLedgerExistsOnMetadataServerException());
return;
}
if (MSException.Code.OK.getCode() != rc) {
@@ -489,7 +490,7 @@ public class MSLedgerManagerFactory extends AbstractZkLedgerManagerFactory {
promise.completeExceptionally(new BKException.BKMetadataVersionException());
} else if (MSException.Code.NoKey.getCode() == rc) {
LOG.warn("Ledger {} doesn't exist when writing its ledger metadata.", ledgerId);
- promise.completeExceptionally(new BKException.BKNoSuchLedgerExistsException());
+ promise.completeExceptionally(new BKException.BKNoSuchLedgerExistsOnMetadataServerException());
} else if (MSException.Code.OK.getCode() == rc) {
promise.complete(new Versioned<>(metadata, version));
} else {
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/replication/Auditor.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/replication/Auditor.java
index ad58849..cbf9b45 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/replication/Auditor.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/replication/Auditor.java
@@ -895,7 +895,7 @@ public class Auditor implements AutoCloseable {
numFragmentsPerLedger.registerSuccessfulValue(lh.getNumFragments());
numBookiesPerLedger.registerSuccessfulValue(lh.getNumBookies());
numLedgersChecked.inc();
- } else if (Code.NoSuchLedgerExistsException == rc) {
+ } else if (Code.NoSuchLedgerExistsOnMetadataServerException == rc) {
if (LOG.isDebugEnabled()) {
LOG.debug("Ledger {} was deleted before we could check it", ledgerId);
}
@@ -966,8 +966,8 @@ public class Auditor implements AutoCloseable {
}
}
iterCallback.processResult(BKException.Code.OK, null, null);
- } else if (BKException
- .getExceptionCode(exception) == BKException.Code.NoSuchLedgerExistsException) {
+ } else if (BKException.getExceptionCode(exception)
+ == BKException.Code.NoSuchLedgerExistsOnMetadataServerException) {
LOG.debug("Ignoring replication of already deleted ledger {}", ledgerId);
iterCallback.processResult(BKException.Code.OK, null, null);
} else {
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/replication/BookieLedgerIndexer.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/replication/BookieLedgerIndexer.java
index c09a770..026fd72 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/replication/BookieLedgerIndexer.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/replication/BookieLedgerIndexer.java
@@ -76,7 +76,7 @@ public class BookieLedgerIndexer {
}
iterCallback.processResult(BKException.Code.OK, null, null);
} else if (BKException.getExceptionCode(exception)
- == BKException.Code.NoSuchLedgerExistsException) {
+ == BKException.Code.NoSuchLedgerExistsOnMetadataServerException) {
LOG.info("Ignoring replication of already deleted ledger {}", ledgerId);
iterCallback.processResult(BKException.Code.OK, null, null);
} else {
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/replication/ReplicationWorker.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/replication/ReplicationWorker.java
index 74d2081..1bba2d5 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/replication/ReplicationWorker.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/replication/ReplicationWorker.java
@@ -45,7 +45,7 @@ import java.util.concurrent.atomic.AtomicInteger;
import org.apache.bookkeeper.bookie.BookieThread;
import org.apache.bookkeeper.client.BKException;
-import org.apache.bookkeeper.client.BKException.BKNoSuchLedgerExistsException;
+import org.apache.bookkeeper.client.BKException.BKNoSuchLedgerExistsOnMetadataServerException;
import org.apache.bookkeeper.client.BKException.BKNotEnoughBookiesException;
import org.apache.bookkeeper.client.BookKeeper;
import org.apache.bookkeeper.client.BookKeeperAdmin;
@@ -330,14 +330,14 @@ public class ReplicationWorker implements Runnable {
return false;
}
- } catch (BKNoSuchLedgerExistsException e) {
+ } catch (BKNoSuchLedgerExistsOnMetadataServerException e) {
// Ledger might have been deleted by user
- LOG.info("BKNoSuchLedgerExistsException while opening "
+ LOG.info("BKNoSuchLedgerExistsOnMetadataServerException while opening "
+ "ledger {} for replication. Other clients "
+ "might have deleted the ledger. "
+ "So, no harm to continue", ledgerIdToReplicate);
underreplicationManager.markLedgerReplicated(ledgerIdToReplicate);
- getExceptionCounter("BKNoSuchLedgerExistsException").inc();
+ getExceptionCounter("BKNoSuchLedgerExistsOnMetadataServerException").inc();
return false;
} catch (BKNotEnoughBookiesException e) {
logBKExceptionAndReleaseLedger(e, ledgerIdToReplicate);
@@ -456,7 +456,7 @@ public class ReplicationWorker implements Runnable {
Thread.currentThread().interrupt();
LOG.info("InterruptedException while fencing the ledger {}"
+ " for rereplication of postponed ledgers", ledgerId, e);
- } catch (BKNoSuchLedgerExistsException bknsle) {
+ } catch (BKNoSuchLedgerExistsOnMetadataServerException bknsle) {
if (LOG.isDebugEnabled()) {
LOG.debug("Ledger {} was deleted, safe to continue", ledgerId, bknsle);
}
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/MockBookKeeper.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/MockBookKeeper.java
index c65e070..81212d1 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/MockBookKeeper.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/MockBookKeeper.java
@@ -163,7 +163,7 @@ public class MockBookKeeper extends BookKeeper {
MockLedgerHandle lh = ledgers.get(lId);
if (lh == null) {
- cb.openComplete(BKException.Code.NoSuchLedgerExistsException, null, ctx);
+ cb.openComplete(BKException.Code.NoSuchLedgerExistsOnMetadataServerException, null, ctx);
} else if (lh.digest != digestType) {
cb.openComplete(BKException.Code.DigestMatchException, null, ctx);
} else if (!Arrays.equals(lh.passwd, passwd)) {
@@ -190,7 +190,7 @@ public class MockBookKeeper extends BookKeeper {
ledgers.remove(lId);
cb.deleteComplete(0, ctx);
} else {
- cb.deleteComplete(BKException.Code.NoSuchLedgerExistsException, ctx);
+ cb.deleteComplete(BKException.Code.NoSuchLedgerExistsOnMetadataServerException, ctx);
}
}
@@ -203,7 +203,7 @@ public class MockBookKeeper extends BookKeeper {
}
if (!ledgers.containsKey(lId)) {
- throw BKException.create(BKException.Code.NoSuchLedgerExistsException);
+ throw BKException.create(BKException.Code.NoSuchLedgerExistsOnMetadataServerException);
}
ledgers.remove(lId);
@@ -238,7 +238,7 @@ public class MockBookKeeper extends BookKeeper {
MockLedgerHandle lh = ledgers.get(ledgerId);
if (lh == null) {
- promise.completeExceptionally(new BKException.BKNoSuchLedgerExistsException());
+ promise.completeExceptionally(new BKException.BKNoSuchLedgerExistsOnMetadataServerException());
} else if (lh.digest != DigestType.fromApiDigestType(digestType)) {
promise.completeExceptionally(new BKException.BKDigestMatchException());
} else if (!Arrays.equals(lh.passwd, password)) {
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/MockBookKeeperTestCase.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/MockBookKeeperTestCase.java
index 69b5635..c5878f1 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/MockBookKeeperTestCase.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/MockBookKeeperTestCase.java
@@ -379,7 +379,7 @@ public abstract class MockBookKeeperTestCase {
executor.executeOrdered(ledgerId, () -> {
LedgerMetadata ledgerMetadata = mockLedgerMetadataRegistry.get(ledgerId);
if (ledgerMetadata == null) {
- promise.completeExceptionally(new BKException.BKNoSuchLedgerExistsException());
+ promise.completeExceptionally(new BKException.BKNoSuchLedgerExistsOnMetadataServerException());
} else {
promise.complete(new Versioned<>(ledgerMetadata, new LongVersion(1)));
}
@@ -398,7 +398,7 @@ public abstract class MockBookKeeperTestCase {
if (mockLedgerMetadataRegistry.remove(ledgerId) != null) {
promise.complete(null);
} else {
- promise.completeExceptionally(new BKException.BKNoSuchLedgerExistsException());
+ promise.completeExceptionally(new BKException.BKNoSuchLedgerExistsOnMetadataServerException());
}
});
return promise;
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/api/BookKeeperApiTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/api/BookKeeperApiTest.java
index 5429c0d..a71002d 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/api/BookKeeperApiTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/api/BookKeeperApiTest.java
@@ -41,7 +41,7 @@ import org.apache.bookkeeper.client.BKException;
import org.apache.bookkeeper.client.BKException.BKDigestMatchException;
import org.apache.bookkeeper.client.BKException.BKDuplicateEntryIdException;
import org.apache.bookkeeper.client.BKException.BKLedgerFencedException;
-import org.apache.bookkeeper.client.BKException.BKNoSuchLedgerExistsException;
+import org.apache.bookkeeper.client.BKException.BKNoSuchLedgerExistsOnMetadataServerException;
import org.apache.bookkeeper.client.BKException.BKUnauthorizedAccessException;
import org.apache.bookkeeper.client.MockBookKeeperTestCase;
import org.apache.bookkeeper.conf.ClientConfiguration;
@@ -339,7 +339,7 @@ public class BookKeeperApiTest extends MockBookKeeperTestCase {
}
}
- @Test(expected = BKNoSuchLedgerExistsException.class)
+ @Test(expected = BKNoSuchLedgerExistsOnMetadataServerException.class)
public void testDeleteLedger() throws Exception {
long lId;
@@ -358,7 +358,7 @@ public class BookKeeperApiTest extends MockBookKeeperTestCase {
.execute());
}
- @Test(expected = BKNoSuchLedgerExistsException.class)
+ @Test(expected = BKNoSuchLedgerExistsOnMetadataServerException.class)
public void testCannotDeleteLedgerTwice() throws Exception {
long lId;
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/api/BookKeeperBuildersTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/api/BookKeeperBuildersTest.java
index 85cb727..f0e07e2 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/api/BookKeeperBuildersTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/api/BookKeeperBuildersTest.java
@@ -30,7 +30,7 @@ import java.util.HashMap;
import java.util.Map;
import org.apache.bookkeeper.client.BKException.BKClientClosedException;
import org.apache.bookkeeper.client.BKException.BKIncorrectParameterException;
-import org.apache.bookkeeper.client.BKException.BKNoSuchLedgerExistsException;
+import org.apache.bookkeeper.client.BKException.BKNoSuchLedgerExistsOnMetadataServerException;
import org.apache.bookkeeper.client.BookKeeper;
import org.apache.bookkeeper.client.LedgerHandle;
import org.apache.bookkeeper.client.LedgerMetadataBuilder;
@@ -307,12 +307,12 @@ public class BookKeeperBuildersTest extends MockBookKeeperTestCase {
fail("shoud not be able to create a ledger with such specs");
}
- @Test(expected = BKNoSuchLedgerExistsException.class)
+ @Test(expected = BKNoSuchLedgerExistsOnMetadataServerException.class)
public void testOpenLedgerNoId() throws Exception {
result(newOpenLedgerOp().execute());
}
- @Test(expected = BKNoSuchLedgerExistsException.class)
+ @Test(expected = BKNoSuchLedgerExistsOnMetadataServerException.class)
public void testOpenLedgerBadId() throws Exception {
result(newOpenLedgerOp()
.withPassword(password)
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/AbstractZkLedgerManagerTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/AbstractZkLedgerManagerTest.java
index 2c0ae4f..0dc2b53 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/AbstractZkLedgerManagerTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/AbstractZkLedgerManagerTest.java
@@ -366,7 +366,7 @@ public class AbstractZkLedgerManagerTest extends MockZooKeeperTestCase {
result(ledgerManager.readLedgerMetadata(ledgerId));
fail("Should fail on reading ledger metadata if a ledger doesn't exist");
} catch (BKException bke) {
- assertEquals(Code.NoSuchLedgerExistsException, bke.getCode());
+ assertEquals(Code.NoSuchLedgerExistsOnMetadataServerException, bke.getCode());
}
verify(mockZk, times(1))
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/GcLedgersTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/GcLedgersTest.java
index 37eacf4..10f7048 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/GcLedgersTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/GcLedgersTest.java
@@ -406,7 +406,7 @@ public class GcLedgersTest extends LedgerManagerTestCase {
*
* ScanAndCompareGarbageCollector/GC should clean data of ledger only if both the LedgerManager.getLedgerRanges says
* that ledger is not existing and also ledgerManager.readLedgerMetadata fails with error
- * NoSuchLedgerExistsException.
+ * NoSuchLedgerExistsOnMetadataServerException.
*
*/
@Test
@@ -464,7 +464,7 @@ public class GcLedgersTest extends LedgerManagerTestCase {
*
* ScanAndCompareGarbageCollector/GC should clean data of ledger only if both the LedgerManager.getLedgerRanges says
* that ledger is not existing and also ledgerManager.readLedgerMetadata fails with error
- * NoSuchLedgerExistsException.
+ * NoSuchLedgerExistsOnMetadataServerException.
*
*/
@Test
@@ -508,7 +508,8 @@ public class GcLedgersTest extends LedgerManagerTestCase {
*
* ScanAndCompareGarbageCollector/GC should clean data of ledger only if both the LedgerManager.getLedgerRanges says
* that ledger is not existing and also ledgerManager.readLedgerMetadata fails with error
- * NoSuchLedgerExistsException, but is shouldn't delete if the readLedgerMetadata fails with any other error.
+ * NoSuchLedgerExistsOnMetadataServerException, but is shouldn't delete if the readLedgerMetadata fails with any
+ * other error.
*/
@Test
public void testGcLedgersIfReadLedgerMetadataFailsForDeletedLedgers() throws Exception {
diff --git a/stream/distributedlog/core/src/test/java/org/apache/distributedlog/bk/TestLedgerAllocator.java b/stream/distributedlog/core/src/test/java/org/apache/distributedlog/bk/TestLedgerAllocator.java
index 1786fe4..011562e 100644
--- a/stream/distributedlog/core/src/test/java/org/apache/distributedlog/bk/TestLedgerAllocator.java
+++ b/stream/distributedlog/core/src/test/java/org/apache/distributedlog/bk/TestLedgerAllocator.java
@@ -271,7 +271,7 @@ public class TestLedgerAllocator extends TestDistributedLogBase {
try {
bkc.get().openLedger(lh1.getId(), BookKeeper.DigestType.CRC32, dlConf.getBKDigestPW().getBytes());
fail("LedgerHandle allocated by allocator1 should be deleted.");
- } catch (BKException.BKNoSuchLedgerExistsException nslee) {
+ } catch (BKException.BKNoSuchLedgerExistsOnMetadataServerException nslee) {
// as expected
}
long eid = lh2.addEntry("hello world".getBytes());
diff --git a/stream/distributedlog/core/src/test/java/org/apache/distributedlog/tools/TestDistributedLogTool.java b/stream/distributedlog/core/src/test/java/org/apache/distributedlog/tools/TestDistributedLogTool.java
index 553e017..4e03554 100644
--- a/stream/distributedlog/core/src/test/java/org/apache/distributedlog/tools/TestDistributedLogTool.java
+++ b/stream/distributedlog/core/src/test/java/org/apache/distributedlog/tools/TestDistributedLogTool.java
@@ -22,7 +22,7 @@ import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.net.URI;
-import org.apache.bookkeeper.client.BKException.BKNoSuchLedgerExistsException;
+import org.apache.bookkeeper.client.BKException.BKNoSuchLedgerExistsOnMetadataServerException;
import org.apache.bookkeeper.common.util.ReflectionUtils;
import org.apache.distributedlog.DLMTestUtil;
import org.apache.distributedlog.DLSN;
@@ -203,7 +203,7 @@ public class TestDistributedLogTool extends TestDistributedLogBase {
// correct functionality.
try {
cmd.runCmd();
- } catch (BKNoSuchLedgerExistsException ex) {
+ } catch (BKNoSuchLedgerExistsOnMetadataServerException ex) {
}
}
@@ -214,7 +214,7 @@ public class TestDistributedLogTool extends TestDistributedLogBase {
cmd.setLedgerId(99999999);
try {
cmd.runCmd();
- } catch (BKNoSuchLedgerExistsException ex) {
+ } catch (BKNoSuchLedgerExistsOnMetadataServerException ex) {
}
}
diff --git a/tests/integration/smoke/src/test/java/org/apache/bookkeeper/tests/integration/TestBookieShellCluster.java b/tests/integration/smoke/src/test/java/org/apache/bookkeeper/tests/integration/TestBookieShellCluster.java
index c68a3e1..6a6c879 100644
--- a/tests/integration/smoke/src/test/java/org/apache/bookkeeper/tests/integration/TestBookieShellCluster.java
+++ b/tests/integration/smoke/src/test/java/org/apache/bookkeeper/tests/integration/TestBookieShellCluster.java
@@ -211,7 +211,8 @@ public class TestBookieShellCluster extends BookieShellTestBase {
validateNEntries(bk, ledgerId, numEntries);
Assert.fail("Shouldn't have been able to find anything");
} catch (ExecutionException ee) {
- Assert.assertEquals(ee.getCause().getClass(), BKException.BKNoSuchLedgerExistsException.class);
+ Assert.assertEquals(ee.getCause().getClass(),
+ BKException.BKNoSuchLedgerExistsOnMetadataServerException.class);
}
log.info("Restore the ledger metadata");