This is an automated email from the ASF dual-hosted git repository.
sijie 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 28dee84 LedgerManagerIteratorTest: avoid ledger collision
28dee84 is described below
commit 28dee8464764b0edceeb31ce24424f0947b5789b
Author: Samuel Just <[email protected]>
AuthorDate: Wed Jun 20 08:36:51 2018 -0700
LedgerManagerIteratorTest: avoid ledger collision
For the non-LHLM managers, the ledger space seems to be small enough to
allow collisions to occasionally cause a test failure. Remember
created ledgers to avoid collisions.
(bug W-5104859)
Signed-off-by: Samuel Just <sjustsalesforce.com>
Author: Samuel Just <[email protected]>
Reviewers: Charan Reddy Guttapalem <[email protected]>, Sijie Guo
<[email protected]>
This closes #1526 from
athanatos/forupstream/wip-ledger-manager-iterator-test
---
.../java/org/apache/bookkeeper/meta/LedgerManagerIteratorTest.java | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git
a/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/LedgerManagerIteratorTest.java
b/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/LedgerManagerIteratorTest.java
index 97a0ab7..1bd32c5 100644
---
a/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/LedgerManagerIteratorTest.java
+++
b/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/LedgerManagerIteratorTest.java
@@ -52,6 +52,7 @@ import
org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback;
import org.apache.bookkeeper.util.MathUtils;
import org.apache.bookkeeper.util.ZkUtils;
import org.apache.bookkeeper.versioning.Version;
+import org.apache.mina.util.ConcurrentHashSet;
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.ZooDefs;
import org.junit.After;
@@ -414,6 +415,7 @@ public class LedgerManagerIteratorTest extends
LedgerManagerTestCase {
final long start = MathUtils.nowInNano();
final CountDownLatch latch = new CountDownLatch(1);
ArrayList<Thread> threads = new ArrayList<>();
+ final ConcurrentHashSet<Long> createdLedgers = new
ConcurrentHashSet<>();
for (int i = 0; i < numWriters; ++i) {
Thread thread = new Thread(safeWrapper(() -> {
LedgerManager writerLM = getIndependentLedgerManager();
@@ -431,7 +433,7 @@ public class LedgerManagerIteratorTest extends
LedgerManagerTestCase {
if (!longRange) {
candidate %= 1000000;
}
- } while (mustExist.contains(candidate));
+ } while (mustExist.contains(candidate) ||
!createdLedgers.add(candidate));
try {
createLedger(writerLM, candidate, Optional.empty());
removeLedger(writerLM, candidate, Optional.empty());