This is an automated email from the ASF dual-hosted git repository.

mmerli 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 99bff72b7d2 [fix][test] Fix flaky test testShadowWrites (#22745)
99bff72b7d2 is described below

commit 99bff72b7d22879a84c358b7657e954f0524371f
Author: Zike Yang <z...@apache.org>
AuthorDate: Thu May 23 11:22:58 2024 +0800

    [fix][test] Fix flaky test testShadowWrites (#22745)
---
 .../mledger/impl/ShadowManagedLedgerImplTest.java   | 21 +++++++++------------
 1 file changed, 9 insertions(+), 12 deletions(-)

diff --git 
a/managed-ledger/src/test/java/org/apache/bookkeeper/mledger/impl/ShadowManagedLedgerImplTest.java
 
b/managed-ledger/src/test/java/org/apache/bookkeeper/mledger/impl/ShadowManagedLedgerImplTest.java
index 2aa04197ab9..13dee4812b4 100644
--- 
a/managed-ledger/src/test/java/org/apache/bookkeeper/mledger/impl/ShadowManagedLedgerImplTest.java
+++ 
b/managed-ledger/src/test/java/org/apache/bookkeeper/mledger/impl/ShadowManagedLedgerImplTest.java
@@ -51,7 +51,7 @@ public class ShadowManagedLedgerImplTest extends 
MockedBookKeeperTestCase {
         return (ShadowManagedLedgerImpl) shadowML;
     }
 
-    @Test(groups = "flaky")
+    @Test
     public void testShadowWrites() throws Exception {
         ManagedLedgerImpl sourceML = (ManagedLedgerImpl) 
factory.open("source_ML", new ManagedLedgerConfig()
                 .setMaxEntriesPerLedger(2)
@@ -76,16 +76,13 @@ public class ShadowManagedLedgerImplTest extends 
MockedBookKeeperTestCase {
         //Add new data to source ML
         Position newPos = sourceML.addEntry(data);
 
-        // The state should not be the same.
-        log.info("Source.LCE={},Shadow.LCE={}", sourceML.lastConfirmedEntry, 
shadowML.lastConfirmedEntry);
-        assertNotEquals(sourceML.lastConfirmedEntry, 
shadowML.lastConfirmedEntry);
-
         //Add new data to source ML, and a new ledger rolled
-        newPos = sourceML.addEntry(data);
-        assertEquals(sourceML.ledgers.size(), 4);
-        
Awaitility.await().untilAsserted(()->assertEquals(shadowML.ledgers.size(), 4));
+        Awaitility.await().untilAsserted(() -> {
+            assertEquals(sourceML.ledgers.size(), 4);
+            assertEquals(shadowML.ledgers.size(), 4);
+            assertEquals(sourceML.lastConfirmedEntry, 
shadowML.lastConfirmedEntry);
+        });
         log.info("Source.LCE={},Shadow.LCE={}", sourceML.lastConfirmedEntry, 
shadowML.lastConfirmedEntry);
-        
Awaitility.await().untilAsserted(()->assertEquals(sourceML.lastConfirmedEntry, 
shadowML.lastConfirmedEntry));
 
         {// test write entry with ledgerId < currentLedger
             CompletableFuture<Position> future = new CompletableFuture<>();
@@ -146,10 +143,10 @@ public class ShadowManagedLedgerImplTest extends 
MockedBookKeeperTestCase {
             }, fakePos);
             //This write will be queued unit new ledger is rolled in source.
 
-            newPos = sourceML.addEntry(data); // new ledger rolled.
-            newPos = sourceML.addEntry(data);
+            sourceML.addEntry(data); // new ledger rolled.
+            sourceML.addEntry(data);
             Awaitility.await().untilAsserted(() -> {
-                assertEquals(shadowML.ledgers.size(), 6);
+                assertEquals(shadowML.ledgers.size(), 5);
                 assertEquals(shadowML.currentLedgerEntries, 0);
             });
             assertEquals(future.get(), fakePos);

Reply via email to