This is an automated email from the ASF dual-hosted git repository.
lhotari 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 2144968bd0a [fix][test] Fix flaky
ConsumedLedgersTrimTest.testAdminTrimLedgers (#25360)
2144968bd0a is described below
commit 2144968bd0a86290699d0b2c33478bbe2785c75a
Author: Matteo Merli <[email protected]>
AuthorDate: Thu Mar 19 15:16:52 2026 -0700
[fix][test] Fix flaky ConsumedLedgersTrimTest.testAdminTrimLedgers (#25360)
---
.../pulsar/broker/service/ConsumedLedgersTrimTest.java | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)
diff --git
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/ConsumedLedgersTrimTest.java
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/ConsumedLedgersTrimTest.java
index a961eef21ae..7d673decd2a 100644
---
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/ConsumedLedgersTrimTest.java
+++
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/ConsumedLedgersTrimTest.java
@@ -189,7 +189,6 @@ public class ConsumedLedgersTrimTest extends
SharedPulsarBaseTest {
Producer<byte[]> producer = pulsarClient.newProducer()
.topic(partitionedTopic)
.enableBatching(false)
- .producerName("producer-name")
.create();
@Cleanup
Consumer<byte[]> consumer =
pulsarClient.newConsumer().topic(partitionedTopic)
@@ -218,9 +217,19 @@ public class ConsumedLedgersTrimTest extends
SharedPulsarBaseTest {
consumer.acknowledge(msg);
}
//consumed ledger should be cleaned
- admin.topics().trimTopic(partitionedTopic);
- Awaitility.await().atMost(30, TimeUnit.SECONDS).untilAsserted(() ->
-
Assert.assertEquals(managedLedger.getLedgersInfoAsList().size(), 1));
+ // After trimming, the managed ledger should have at most 2 ledgers
remaining:
+ // - The ledger containing the last confirmed entry (cannot be trimmed)
+ // - Possibly an empty active ledger if the last write caused a
rollover
+ // (with maxEntriesPerLedger=2, if partition-0 receives an even
number of
+ // messages, the last ledger is full and a new empty active ledger
is created)
+ // Re-trigger trim inside the loop because
trimConsumedLedgersInBackground() is async
+ // and the mark-delete position may not have been persisted yet on the
first call.
+ Awaitility.await().atMost(30, TimeUnit.SECONDS).untilAsserted(() -> {
+
managedLedger.trimConsumedLedgersInBackground(CompletableFuture.completedFuture(null));
+ Assert.assertTrue(managedLedger.getLedgersInfoAsList().size() <= 2,
+ "Expected at most 2 ledgers after trim, but found "
+ + managedLedger.getLedgersInfoAsList().size());
+ });
}