You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by pe...@apache.org on 2022/07/18 01:50:48 UTC
[pulsar] branch master updated: [fix][broker] BadVersionException when splitting bundles, delay 100ms and try again (#16612)
This is an automated email from the ASF dual-hosted git repository.
penghui pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git
The following commit(s) were added to refs/heads/master by this push:
new 630c7589bbb [fix][broker] BadVersionException when splitting bundles, delay 100ms and try again (#16612)
630c7589bbb is described below
commit 630c7589bbba46a0b99327caa4e28664784b8bc2
Author: Baodi Shi <wu...@icloud.com>
AuthorDate: Mon Jul 18 09:50:42 2022 +0800
[fix][broker] BadVersionException when splitting bundles, delay 100ms and try again (#16612)
---
.../java/org/apache/pulsar/broker/namespace/NamespaceService.java | 6 ++++--
.../src/test/java/org/apache/pulsar/broker/admin/AdminApiTest.java | 6 +++---
2 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/namespace/NamespaceService.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/namespace/NamespaceService.java
index eecabf3fb36..c6eb1024a13 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/namespace/NamespaceService.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/namespace/NamespaceService.java
@@ -21,6 +21,7 @@ package org.apache.pulsar.broker.namespace;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
import static java.lang.String.format;
+import static java.util.concurrent.TimeUnit.MILLISECONDS;
import static java.util.concurrent.TimeUnit.SECONDS;
import static org.apache.commons.lang3.StringUtils.isNotBlank;
import static org.apache.pulsar.common.naming.NamespaceName.SYSTEM_NAMESPACE;
@@ -899,9 +900,10 @@ public class NamespaceService implements AutoCloseable {
// retry several times on BadVersion
if ((t.getCause() instanceof MetadataStoreException.BadVersionException)
&& (counter.decrementAndGet() >= 0)) {
- pulsar.getOrderedExecutor()
+ pulsar.getExecutor().schedule(() -> pulsar.getOrderedExecutor()
.execute(() -> splitAndOwnBundleOnceAndRetry(
- bundle, unload, counter, completionFuture, splitAlgorithm, boundaries));
+ bundle, unload, counter, completionFuture, splitAlgorithm, boundaries)),
+ 100, MILLISECONDS);
} else if (t instanceof IllegalArgumentException) {
completionFuture.completeExceptionally(t);
} else {
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiTest.java
index 24fba4126a6..ece5f8d8302 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiTest.java
@@ -1717,7 +1717,7 @@ public class AdminApiTest extends MockedPulsarServiceBaseTest {
try {
admin.namespaces().splitNamespaceBundle(namespace, "0x00000000_0xffffffff", false, null);
} catch (Exception e) {
- fail("split bundle shouldn't have thrown exception");
+ fail("split bundle shouldn't have thrown exception", e);
}
// bundle-factory cache must have updated split bundles
@@ -1745,7 +1745,7 @@ public class AdminApiTest extends MockedPulsarServiceBaseTest {
f.get();
}
} catch (Exception e) {
- fail("split bundle shouldn't have thrown exception");
+ fail("split bundle shouldn't have thrown exception", e);
}
Awaitility.await().untilAsserted(() ->
@@ -1780,7 +1780,7 @@ public class AdminApiTest extends MockedPulsarServiceBaseTest {
f.get();
}
} catch (Exception e) {
- fail("split bundle shouldn't have thrown exception");
+ fail("split bundle shouldn't have thrown exception", e);
}
Awaitility.await().untilAsserted(() ->
assertEquals(bundleFactory.getBundles(NamespaceName.get(namespace)).getBundles().size(), 8));