nodece commented on code in PR #24244:
URL: https://github.com/apache/pulsar/pull/24244#discussion_r2074697784


##########
managed-ledger/src/test/java/org/apache/bookkeeper/mledger/impl/ManagedCursorTest.java:
##########
@@ -1843,6 +1843,12 @@ void 
testSkipEntriesWithIndividualDeletedMessages(boolean useOpenRangeSet) throw
         Position pos4 = ledger.addEntry("dummy-entry-4".getBytes(Encoding));
         Position pos5 = ledger.addEntry("dummy-entry-5".getBytes(Encoding));
 
+        // Wait until a new ledger is created after the previous one has been 
closed.
+        // This happens because maxEntriesPerLedger is set to 5, so a new 
ledger is opened after every 5 entries.
+        Awaitility.await().untilAsserted(() -> {
+            assertTrue(ledger.getLedgersInfo().lastEntry().getKey() > 
pos5.getLedgerId());
+        });

Review Comment:
   > Is it safe to assume that outside of the test code, it is also always 
waited until the new ledger is created?
   
   No, this is an async operation.
   
   
https://github.com/apache/pulsar/blob/9a1124516ed46cf59cba39ffa7b12a0caf7b9d80/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedLedgerImpl.java#L1888-L1900
   
   > I am wondering if this actually is a flaky test or if there is an 
underlying issue that different operations (adding entry, deleting entry, 
skipping) can be executed concurrently which may lead to undesired states.
   
   adding entry, deleting entry, skipping works fine. We must wait for the new 
ledger to be created, otherwise, this test will fail.
   
   Failure log:
   ```
   2025-05-03T22:01:34,698 - INFO  - 
[test-OrderedScheduler-1-0:PulsarMockBookKeeper@139] - Creating ledger 3
   2025-05-03T22:01:34,699 - INFO  - 
[test-OrderedScheduler-1-0:ManagedLedgerImpl@587] - 
[testSkipEntriesWithIndividualDeletedMessages209171743259970] Created ledger 3 
after closed null
   2025-05-03T22:01:34,699 - INFO  - 
[bookkeeper-ml-scheduler-OrderedScheduler-9-0:ManagedLedgerFactoryImpl$2@420] - 
[testSkipEntriesWithIndividualDeletedMessages209171743259970] Successfully 
initialize managed ledger
   2025-05-03T22:01:34,699 - INFO  - 
[TestNG-method=testSkipEntriesWithIndividualDeletedMessages-1:ManagedCursorImpl@771]
 - [testSkipEntriesWithIndividualDeletedMessages209171743259970] Cursor c1 
recovered to position 3:-1
   2025-05-03T22:01:34,699 - INFO  - 
[bookkeeper-ml-scheduler-OrderedScheduler-9-0:ManagedLedgerImpl$6@1022] - 
[testSkipEntriesWithIndividualDeletedMessages209171743259970] Opened new 
cursor: 
ManagedCursorImpl{ledger=testSkipEntriesWithIndividualDeletedMessages209171743259970,
 name=c1, ackPos=3:-1, readPos=3:0}
   2025-05-03T22:01:34,707 - INFO  - [test-OrderedScheduler-1-0:OpAddEntry@265] 
- [testSkipEntriesWithIndividualDeletedMessages209171743259970] Closing ledger 
3 for being full
   2025-05-03T22:01:34,707 - INFO  - 
[test-OrderedScheduler-1-0:ManagedLedgerImpl@1890] - 
[testSkipEntriesWithIndividualDeletedMessages209171743259970] Creating a new 
ledger after closed 3
   2025-05-03T22:01:34,707 - INFO  - 
[TestNG-method=testSkipEntriesWithIndividualDeletedMessages-1:ManagedCursorImpl@2148]
 - state_update: NoLedger
   java.lang.RuntimeException: print stack
        at 
org.apache.bookkeeper.client.PulsarMockBookKeeper.asyncCreateLedger(PulsarMockBookKeeper.java:132)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.asyncCreateLedger(ManagedLedgerImpl.java:4207)
        at 
org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.doCreateNewMetadataLedger(ManagedCursorImpl.java:3100)
        at 
org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.createNewMetadataLedger(ManagedCursorImpl.java:3065)
        at 
org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.createNewMetadataLedger(ManagedCursorImpl.java:2991)
        at 
org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.startCreatingNewMetadataLedger(ManagedCursorImpl.java:2984)
        at 
org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.internalAsyncMarkDelete(ManagedCursorImpl.java:2158)
        at 
org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.asyncDelete(ManagedCursorImpl.java:2495)
        at 
org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.delete(ManagedCursorImpl.java:2315)
        at 
org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.delete(ManagedCursorImpl.java:2295)
        at 
org.apache.bookkeeper.mledger.impl.ManagedCursorTest.testSkipEntriesWithIndividualDeletedMessages(ManagedCursorTest.java:1847)
        at 
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
        at java.base/java.lang.reflect.Method.invoke(Method.java:580)
        at 
org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
        at 
org.testng.internal.invokers.InvokeMethodRunnable.runOne(InvokeMethodRunnable.java:47)
        at 
org.testng.internal.invokers.InvokeMethodRunnable.call(InvokeMethodRunnable.java:76)
        at 
org.testng.internal.invokers.InvokeMethodRunnable.call(InvokeMethodRunnable.java:11)
        at 
java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
        at --- Async.Stack.Trace --- (captured by IntelliJ IDEA debugger)
        at java.base/java.util.concurrent.FutureTask.<init>(FutureTask.java:132)
        at 
java.base/java.util.concurrent.AbstractExecutorService.newTaskFor(AbstractExecutorService.java:113)
        at 
java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:144)
        at 
org.testng.internal.invokers.MethodInvocationHelper.invokeWithTimeoutWithNewExecutor(MethodInvocationHelper.java:385)
        at 
org.testng.internal.invokers.MethodInvocationHelper.invokeWithTimeout(MethodInvocationHelper.java:303)
        at 
org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:686)
        at 
org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:221)
        at 
org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:50)
        at 
org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:969)
        at 
org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:194)
        at 
org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
        at 
org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
        at org.testng.TestRunner.privateRun(TestRunner.java:829)
        at org.testng.TestRunner.run(TestRunner.java:602)
        at org.testng.SuiteRunner.runTest(SuiteRunner.java:437)
        at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:431)
        at org.testng.SuiteRunner.privateRun(SuiteRunner.java:391)
        at org.testng.SuiteRunner.run(SuiteRunner.java:330)
        at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
        at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
        at org.testng.TestNG.runSuitesSequentially(TestNG.java:1256)
        at org.testng.TestNG.runSuitesLocally(TestNG.java:1176)
        at org.testng.TestNG.runSuites(TestNG.java:1099)
        at org.testng.TestNG.run(TestNG.java:1067)
        at com.intellij.rt.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:65)
        at 
com.intellij.rt.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:105)
   java.lang.RuntimeException: print stack
        at 
org.apache.bookkeeper.client.PulsarMockBookKeeper.asyncCreateLedger(PulsarMockBookKeeper.java:132)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.asyncCreateLedger(ManagedLedgerImpl.java:4207)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.lambda$createLedgerAfterClosed$25(ManagedLedgerImpl.java:1898)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService$SafeRunnable.run(SingleThreadSafeScheduledExecutorService.java:46)
        at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
        at 
java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
        at --- Async.Stack.Trace --- (captured by IntelliJ IDEA debugger)
        at java.base/java.util.concurrent.FutureTask.<init>(FutureTask.java:151)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.<init>(ScheduledThreadPoolExecutor.java:215)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.schedule(ScheduledThreadPoolExecutor.java:561)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService.schedule(SingleThreadSafeScheduledExecutorService.java:55)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.execute(ScheduledThreadPoolExecutor.java:705)
        at 
com.google.common.util.concurrent.MoreExecutors$ListeningDecorator.execute(MoreExecutors.java:640)
        at 
com.google.common.util.concurrent.ForwardingExecutorService.execute(ForwardingExecutorService.java:110)
        at 
org.apache.bookkeeper.common.util.BoundedScheduledExecutorService.execute(BoundedScheduledExecutorService.java:132)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.createLedgerAfterClosed(ManagedLedgerImpl.java:1897)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.ledgerClosed(ManagedLedgerImpl.java:1878)
        at 
org.apache.bookkeeper.mledger.impl.OpAddEntry.closeComplete(OpAddEntry.java:296)
        at 
org.apache.bookkeeper.client.PulsarMockLedgerHandle.lambda$asyncClose$1(PulsarMockLedgerHandle.java:96)
        at 
java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:863)
        at 
java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:841)
        at 
java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService$SafeRunnable.run(SingleThreadSafeScheduledExecutorService.java:46)
        at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
        at 
java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
        at --- Async.Stack.Trace --- (captured by IntelliJ IDEA debugger)
        at java.base/java.util.concurrent.FutureTask.<init>(FutureTask.java:151)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.<init>(ScheduledThreadPoolExecutor.java:215)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.schedule(ScheduledThreadPoolExecutor.java:561)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService.schedule(SingleThreadSafeScheduledExecutorService.java:55)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.execute(ScheduledThreadPoolExecutor.java:705)
        at 
com.google.common.util.concurrent.MoreExecutors$ListeningDecorator.execute(MoreExecutors.java:640)
        at 
com.google.common.util.concurrent.ForwardingExecutorService.execute(ForwardingExecutorService.java:110)
        at 
org.apache.bookkeeper.common.util.BoundedScheduledExecutorService.execute(BoundedScheduledExecutorService.java:132)
        at 
java.base/java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572)
        at 
java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:854)
        at 
java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:841)
        at 
java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
        at 
java.base/java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614)
        at 
java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1163)
        at 
java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService$SafeRunnable.run(SingleThreadSafeScheduledExecutorService.java:46)
        at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
        at 
java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
        at --- Async.Stack.Trace --- (captured by IntelliJ IDEA debugger)
        at java.base/java.util.concurrent.FutureTask.<init>(FutureTask.java:151)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.<init>(ScheduledThreadPoolExecutor.java:215)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.schedule(ScheduledThreadPoolExecutor.java:561)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService.schedule(SingleThreadSafeScheduledExecutorService.java:55)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.execute(ScheduledThreadPoolExecutor.java:705)
        at 
com.google.common.util.concurrent.MoreExecutors$ListeningDecorator.execute(MoreExecutors.java:640)
        at 
com.google.common.util.concurrent.ForwardingExecutorService.execute(ForwardingExecutorService.java:110)
        at 
org.apache.bookkeeper.common.util.BoundedScheduledExecutorService.execute(BoundedScheduledExecutorService.java:132)
        at 
java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1184)
        at 
java.base/java.util.concurrent.CompletableFuture.thenComposeAsync(CompletableFuture.java:2352)
        at 
org.apache.bookkeeper.client.PulsarMockLedgerHandle.asyncClose(PulsarMockLedgerHandle.java:81)
        at 
org.apache.bookkeeper.mledger.impl.OpAddEntry.run(OpAddEntry.java:268)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService$SafeRunnable.run(SingleThreadSafeScheduledExecutorService.java:46)
        at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
        at 
java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
        at --- Async.Stack.Trace --- (captured by IntelliJ IDEA debugger)
        at java.base/java.util.concurrent.FutureTask.<init>(FutureTask.java:151)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.<init>(ScheduledThreadPoolExecutor.java:215)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.schedule(ScheduledThreadPoolExecutor.java:561)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService.schedule(SingleThreadSafeScheduledExecutorService.java:55)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.execute(ScheduledThreadPoolExecutor.java:705)
        at 
com.google.common.util.concurrent.MoreExecutors$ListeningDecorator.execute(MoreExecutors.java:640)
        at 
com.google.common.util.concurrent.ForwardingExecutorService.execute(ForwardingExecutorService.java:110)
        at 
org.apache.bookkeeper.common.util.BoundedScheduledExecutorService.execute(BoundedScheduledExecutorService.java:132)
        at 
org.apache.bookkeeper.mledger.impl.OpAddEntry.addComplete(OpAddEntry.java:226)
        at 
org.apache.bookkeeper.client.PulsarMockLedgerHandle.lambda$asyncAddEntry$5(PulsarMockLedgerHandle.java:207)
        at 
java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:863)
        at 
java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:841)
        at 
java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService$SafeRunnable.run(SingleThreadSafeScheduledExecutorService.java:46)
        at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
        at 
java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
        at --- Async.Stack.Trace --- (captured by IntelliJ IDEA debugger)
        at java.base/java.util.concurrent.FutureTask.<init>(FutureTask.java:151)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.<init>(ScheduledThreadPoolExecutor.java:215)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.schedule(ScheduledThreadPoolExecutor.java:561)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService.schedule(SingleThreadSafeScheduledExecutorService.java:55)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.execute(ScheduledThreadPoolExecutor.java:705)
        at 
com.google.common.util.concurrent.MoreExecutors$ListeningDecorator.execute(MoreExecutors.java:640)
        at 
com.google.common.util.concurrent.ForwardingExecutorService.execute(ForwardingExecutorService.java:110)
        at 
org.apache.bookkeeper.common.util.BoundedScheduledExecutorService.execute(BoundedScheduledExecutorService.java:132)
        at 
java.base/java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572)
        at 
java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:854)
        at 
java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:841)
        at 
java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
        at 
java.base/java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614)
        at 
java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1163)
        at 
java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService$SafeRunnable.run(SingleThreadSafeScheduledExecutorService.java:46)
        at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
        at 
java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
        at --- Async.Stack.Trace --- (captured by IntelliJ IDEA debugger)
        at java.base/java.util.concurrent.FutureTask.<init>(FutureTask.java:151)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.<init>(ScheduledThreadPoolExecutor.java:215)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.schedule(ScheduledThreadPoolExecutor.java:561)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService.schedule(SingleThreadSafeScheduledExecutorService.java:55)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.execute(ScheduledThreadPoolExecutor.java:705)
        at 
com.google.common.util.concurrent.MoreExecutors$ListeningDecorator.execute(MoreExecutors.java:640)
        at 
com.google.common.util.concurrent.ForwardingExecutorService.execute(ForwardingExecutorService.java:110)
        at 
org.apache.bookkeeper.common.util.BoundedScheduledExecutorService.execute(BoundedScheduledExecutorService.java:132)
        at 
java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1184)
        at 
java.base/java.util.concurrent.CompletableFuture.thenComposeAsync(CompletableFuture.java:2352)
        at 
org.apache.bookkeeper.client.PulsarMockLedgerHandle.asyncAddEntry(PulsarMockLedgerHandle.java:171)
        at 
org.apache.bookkeeper.mledger.impl.OpAddEntry.initiate(OpAddEntry.java:161)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.internalAsyncAddEntry(ManagedLedgerImpl.java:882)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.lambda$asyncAddEntry$4(ManagedLedgerImpl.java:813)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService$SafeRunnable.run(SingleThreadSafeScheduledExecutorService.java:46)
        at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
        at 
java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
        at --- Async.Stack.Trace --- (captured by IntelliJ IDEA debugger)
        at java.base/java.util.concurrent.FutureTask.<init>(FutureTask.java:151)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.<init>(ScheduledThreadPoolExecutor.java:215)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.schedule(ScheduledThreadPoolExecutor.java:561)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService.schedule(SingleThreadSafeScheduledExecutorService.java:55)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.execute(ScheduledThreadPoolExecutor.java:705)
        at 
com.google.common.util.concurrent.MoreExecutors$ListeningDecorator.execute(MoreExecutors.java:640)
        at 
com.google.common.util.concurrent.ForwardingExecutorService.execute(ForwardingExecutorService.java:110)
        at 
org.apache.bookkeeper.common.util.BoundedScheduledExecutorService.execute(BoundedScheduledExecutorService.java:132)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.asyncAddEntry(ManagedLedgerImpl.java:810)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.asyncAddEntry(ManagedLedgerImpl.java:792)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.addEntry(ManagedLedgerImpl.java:752)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.addEntry(ManagedLedgerImpl.java:737)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.addEntry(ManagedLedgerImpl.java:727)
        at 
org.apache.bookkeeper.mledger.impl.ManagedCursorTest.testSkipEntriesWithIndividualDeletedMessages(ManagedCursorTest.java:1844)
        at 
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
        at java.base/java.lang.reflect.Method.invoke(Method.java:580)
        at 
org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
        at 
org.testng.internal.invokers.InvokeMethodRunnable.runOne(InvokeMethodRunnable.java:47)
        at 
org.testng.internal.invokers.InvokeMethodRunnable.call(InvokeMethodRunnable.java:76)
        at 
org.testng.internal.invokers.InvokeMethodRunnable.call(InvokeMethodRunnable.java:11)
        at 
java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
        at --- Async.Stack.Trace --- (captured by IntelliJ IDEA debugger)
        at java.base/java.util.concurrent.FutureTask.<init>(FutureTask.java:132)
        at 
java.base/java.util.concurrent.AbstractExecutorService.newTaskFor(AbstractExecutorService.java:113)
        at 
java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:144)
        at 
org.testng.internal.invokers.MethodInvocationHelper.invokeWithTimeoutWithNewExecutor(MethodInvocationHelper.java:385)
        at 
org.testng.internal.invokers.MethodInvocationHelper.invokeWithTimeout(MethodInvocationHelper.java:303)
        at 
org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:686)
        at 
org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:221)
        at 
org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:50)
        at 
org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:969)
        at 
org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:194)
        at 
org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
        at 
org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
        at org.testng.TestRunner.privateRun(TestRunner.java:829)
        at org.testng.TestRunner.run(TestRunner.java:602)
        at org.testng.SuiteRunner.runTest(SuiteRunner.java:437)
        at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:431)
        at org.testng.SuiteRunner.privateRun(SuiteRunner.java:391)
        at org.testng.SuiteRunner.run(SuiteRunner.java:330)
        at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
        at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
        at org.testng.TestNG.runSuitesSequentially(TestNG.java:1256)
        at org.testng.TestNG.runSuitesLocally(TestNG.java:1176)
        at org.testng.TestNG.runSuites(TestNG.java:1099)
        at org.testng.TestNG.run(TestNG.java:1067)
        at com.intellij.rt.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:65)
        at 
com.intellij.rt.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:105)
   2025-05-03T22:01:34,708 - INFO  - 
[test-OrderedScheduler-1-0:PulsarMockBookKeeper@139] - Creating ledger 4
   2025-05-03T22:01:34,708 - INFO  - 
[test-OrderedScheduler-1-0:PulsarMockBookKeeper@139] - Creating ledger 5
   2025-05-03T22:01:34,709 - INFO  - 
[test-OrderedScheduler-1-0:ManagedLedgerImpl@1691] - 
[testSkipEntriesWithIndividualDeletedMessages209171743259970] Created new 
ledger 5
   2025-05-03T22:01:34,710 - INFO  - 
[bookkeeper-ml-scheduler-OrderedScheduler-9-0:ManagedCursorImpl$32@3397] - 
[testSkipEntriesWithIndividualDeletedMessages209171743259970] Updated cursor c1 
with ledger id 4 md-position=3:-1 rd-position=3:0
   2025-05-03T22:01:34,714 - INFO  - 
[TestNG-method=testSkipEntriesWithIndividualDeletedMessages-1:ManagedCursorTest@1850]
 -  Skip entry
   2025-05-03T22:01:34,714 - INFO  - 
[TestNG-method=testSkipEntriesWithIndividualDeletedMessages-1:ManagedCursorImpl@1855]
 - [testSkipEntriesWithIndividualDeletedMessages209171743259970] Skipping 3 
entries on cursor c1
   ```
   
   Success log:
   ```
   2025-05-03T22:01:24,515 - INFO  - 
[test-OrderedScheduler-0-0:PulsarMockBookKeeper@139] - Creating ledger 3
   2025-05-03T22:01:24,591 - INFO  - 
[test-OrderedScheduler-0-0:ManagedLedgerImpl@587] - 
[testSkipEntriesWithIndividualDeletedMessages209161062148779] Created ledger 3 
after closed null
   2025-05-03T22:01:24,640 - INFO  - 
[bookkeeper-ml-scheduler-OrderedScheduler-0-0:ManagedLedgerFactoryImpl$2@420] - 
[testSkipEntriesWithIndividualDeletedMessages209161062148779] Successfully 
initialize managed ledger
   2025-05-03T22:01:24,686 - INFO  - 
[TestNG-method=testSkipEntriesWithIndividualDeletedMessages-1:ManagedCursorImpl@771]
 - [testSkipEntriesWithIndividualDeletedMessages209161062148779] Cursor c1 
recovered to position 3:-1
   2025-05-03T22:01:24,721 - INFO  - 
[bookkeeper-ml-scheduler-OrderedScheduler-0-0:ManagedLedgerImpl$6@1022] - 
[testSkipEntriesWithIndividualDeletedMessages209161062148779] Opened new 
cursor: 
ManagedCursorImpl{ledger=testSkipEntriesWithIndividualDeletedMessages209161062148779,
 name=c1, ackPos=3:-1, readPos=3:0}
   2025-05-03T22:01:24,773 - INFO  - [test-OrderedScheduler-0-0:OpAddEntry@265] 
- [testSkipEntriesWithIndividualDeletedMessages209161062148779] Closing ledger 
3 for being full
   2025-05-03T22:01:24,776 - INFO  - 
[test-OrderedScheduler-0-0:ManagedLedgerImpl@1890] - 
[testSkipEntriesWithIndividualDeletedMessages209161062148779] Creating a new 
ledger after closed 3
   java.lang.RuntimeException: print stack
        at 
org.apache.bookkeeper.client.PulsarMockBookKeeper.asyncCreateLedger(PulsarMockBookKeeper.java:132)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.asyncCreateLedger(ManagedLedgerImpl.java:4207)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.lambda$createLedgerAfterClosed$25(ManagedLedgerImpl.java:1898)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService$SafeRunnable.run(SingleThreadSafeScheduledExecutorService.java:46)
        at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
        at 
java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
        at --- Async.Stack.Trace --- (captured by IntelliJ IDEA debugger)
        at java.base/java.util.concurrent.FutureTask.<init>(FutureTask.java:151)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.<init>(ScheduledThreadPoolExecutor.java:215)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.schedule(ScheduledThreadPoolExecutor.java:561)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService.schedule(SingleThreadSafeScheduledExecutorService.java:55)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.execute(ScheduledThreadPoolExecutor.java:705)
        at 
com.google.common.util.concurrent.MoreExecutors$ListeningDecorator.execute(MoreExecutors.java:640)
        at 
com.google.common.util.concurrent.ForwardingExecutorService.execute(ForwardingExecutorService.java:110)
        at 
org.apache.bookkeeper.common.util.BoundedScheduledExecutorService.execute(BoundedScheduledExecutorService.java:132)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.createLedgerAfterClosed(ManagedLedgerImpl.java:1897)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.ledgerClosed(ManagedLedgerImpl.java:1878)
        at 
org.apache.bookkeeper.mledger.impl.OpAddEntry.closeComplete(OpAddEntry.java:296)
        at 
org.apache.bookkeeper.client.PulsarMockLedgerHandle.lambda$asyncClose$1(PulsarMockLedgerHandle.java:96)
        at 
java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:863)
        at 
java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:841)
        at 
java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService$SafeRunnable.run(SingleThreadSafeScheduledExecutorService.java:46)
        at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
        at 
java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
        at --- Async.Stack.Trace --- (captured by IntelliJ IDEA debugger)
        at java.base/java.util.concurrent.FutureTask.<init>(FutureTask.java:151)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.<init>(ScheduledThreadPoolExecutor.java:215)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.schedule(ScheduledThreadPoolExecutor.java:561)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService.schedule(SingleThreadSafeScheduledExecutorService.java:55)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.execute(ScheduledThreadPoolExecutor.java:705)
        at 
com.google.common.util.concurrent.MoreExecutors$ListeningDecorator.execute(MoreExecutors.java:640)
        at 
com.google.common.util.concurrent.ForwardingExecutorService.execute(ForwardingExecutorService.java:110)
        at 
org.apache.bookkeeper.common.util.BoundedScheduledExecutorService.execute(BoundedScheduledExecutorService.java:132)
        at 
java.base/java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572)
        at 
java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:854)
        at 
java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:841)
        at 
java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
        at 
java.base/java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614)
        at 
java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1163)
        at 
java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService$SafeRunnable.run(SingleThreadSafeScheduledExecutorService.java:46)
        at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
        at 
java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
        at --- Async.Stack.Trace --- (captured by IntelliJ IDEA debugger)
        at java.base/java.util.concurrent.FutureTask.<init>(FutureTask.java:151)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.<init>(ScheduledThreadPoolExecutor.java:215)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.schedule(ScheduledThreadPoolExecutor.java:561)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService.schedule(SingleThreadSafeScheduledExecutorService.java:55)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.execute(ScheduledThreadPoolExecutor.java:705)
        at 
com.google.common.util.concurrent.MoreExecutors$ListeningDecorator.execute(MoreExecutors.java:640)
        at 
com.google.common.util.concurrent.ForwardingExecutorService.execute(ForwardingExecutorService.java:110)
        at 
org.apache.bookkeeper.common.util.BoundedScheduledExecutorService.execute(BoundedScheduledExecutorService.java:132)
        at 
java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1184)
        at 
java.base/java.util.concurrent.CompletableFuture.thenComposeAsync(CompletableFuture.java:2352)
        at 
org.apache.bookkeeper.client.PulsarMockLedgerHandle.asyncClose(PulsarMockLedgerHandle.java:81)
        at 
org.apache.bookkeeper.mledger.impl.OpAddEntry.run(OpAddEntry.java:268)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService$SafeRunnable.run(SingleThreadSafeScheduledExecutorService.java:46)
        at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
        at 
java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
        at --- Async.Stack.Trace --- (captured by IntelliJ IDEA debugger)
        at java.base/java.util.concurrent.FutureTask.<init>(FutureTask.java:151)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.<init>(ScheduledThreadPoolExecutor.java:215)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.schedule(ScheduledThreadPoolExecutor.java:561)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService.schedule(SingleThreadSafeScheduledExecutorService.java:55)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.execute(ScheduledThreadPoolExecutor.java:705)
        at 
com.google.common.util.concurrent.MoreExecutors$ListeningDecorator.execute(MoreExecutors.java:640)
        at 
com.google.common.util.concurrent.ForwardingExecutorService.execute(ForwardingExecutorService.java:110)
        at 
org.apache.bookkeeper.common.util.BoundedScheduledExecutorService.execute(BoundedScheduledExecutorService.java:132)
        at 
org.apache.bookkeeper.mledger.impl.OpAddEntry.addComplete(OpAddEntry.java:226)
        at 
org.apache.bookkeeper.client.PulsarMockLedgerHandle.lambda$asyncAddEntry$5(PulsarMockLedgerHandle.java:207)
        at 
java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:863)
        at 
java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:841)
        at 
java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService$SafeRunnable.run(SingleThreadSafeScheduledExecutorService.java:46)
        at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
        at 
java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
        at --- Async.Stack.Trace --- (captured by IntelliJ IDEA debugger)
        at java.base/java.util.concurrent.FutureTask.<init>(FutureTask.java:151)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.<init>(ScheduledThreadPoolExecutor.java:215)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.schedule(ScheduledThreadPoolExecutor.java:561)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService.schedule(SingleThreadSafeScheduledExecutorService.java:55)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.execute(ScheduledThreadPoolExecutor.java:705)
        at 
com.google.common.util.concurrent.MoreExecutors$ListeningDecorator.execute(MoreExecutors.java:640)
        at 
com.google.common.util.concurrent.ForwardingExecutorService.execute(ForwardingExecutorService.java:110)
        at 
org.apache.bookkeeper.common.util.BoundedScheduledExecutorService.execute(BoundedScheduledExecutorService.java:132)
        at 
java.base/java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572)
        at 
java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:854)
        at 
java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:841)
        at 
java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
        at 
java.base/java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614)
        at 
java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1163)
        at 
java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService$SafeRunnable.run(SingleThreadSafeScheduledExecutorService.java:46)
        at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
        at 
java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
        at --- Async.Stack.Trace --- (captured by IntelliJ IDEA debugger)
        at java.base/java.util.concurrent.FutureTask.<init>(FutureTask.java:151)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.<init>(ScheduledThreadPoolExecutor.java:215)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.schedule(ScheduledThreadPoolExecutor.java:561)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService.schedule(SingleThreadSafeScheduledExecutorService.java:55)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.execute(ScheduledThreadPoolExecutor.java:705)
        at 
com.google.common.util.concurrent.MoreExecutors$ListeningDecorator.execute(MoreExecutors.java:640)
        at 
com.google.common.util.concurrent.ForwardingExecutorService.execute(ForwardingExecutorService.java:110)
        at 
org.apache.bookkeeper.common.util.BoundedScheduledExecutorService.execute(BoundedScheduledExecutorService.java:132)
        at 
java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1184)
        at 
java.base/java.util.concurrent.CompletableFuture.thenComposeAsync(CompletableFuture.java:2352)
        at 
org.apache.bookkeeper.client.PulsarMockLedgerHandle.asyncAddEntry(PulsarMockLedgerHandle.java:171)
        at 
org.apache.bookkeeper.mledger.impl.OpAddEntry.initiate(OpAddEntry.java:161)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.internalAsyncAddEntry(ManagedLedgerImpl.java:882)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.lambda$asyncAddEntry$4(ManagedLedgerImpl.java:813)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService$SafeRunnable.run(SingleThreadSafeScheduledExecutorService.java:46)
        at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
        at 
java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
        at --- Async.Stack.Trace --- (captured by IntelliJ IDEA debugger)
        at java.base/java.util.concurrent.FutureTask.<init>(FutureTask.java:151)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.<init>(ScheduledThreadPoolExecutor.java:215)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.schedule(ScheduledThreadPoolExecutor.java:561)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService.schedule(SingleThreadSafeScheduledExecutorService.java:55)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.execute(ScheduledThreadPoolExecutor.java:705)
        at 
com.google.common.util.concurrent.MoreExecutors$ListeningDecorator.execute(MoreExecutors.java:640)
        at 
com.google.common.util.concurrent.ForwardingExecutorService.execute(ForwardingExecutorService.java:110)
        at 
org.apache.bookkeeper.common.util.BoundedScheduledExecutorService.execute(BoundedScheduledExecutorService.java:132)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.asyncAddEntry(ManagedLedgerImpl.java:810)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.asyncAddEntry(ManagedLedgerImpl.java:792)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.addEntry(ManagedLedgerImpl.java:752)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.addEntry(ManagedLedgerImpl.java:737)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.addEntry(ManagedLedgerImpl.java:727)
        at 
org.apache.bookkeeper.mledger.impl.ManagedCursorTest.testSkipEntriesWithIndividualDeletedMessages(ManagedCursorTest.java:1844)
        at 
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
        at java.base/java.lang.reflect.Method.invoke(Method.java:580)
        at 
org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
        at 
org.testng.internal.invokers.InvokeMethodRunnable.runOne(InvokeMethodRunnable.java:47)
        at 
org.testng.internal.invokers.InvokeMethodRunnable.call(InvokeMethodRunnable.java:76)
        at 
org.testng.internal.invokers.InvokeMethodRunnable.call(InvokeMethodRunnable.java:11)
        at 
java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
        at --- Async.Stack.Trace --- (captured by IntelliJ IDEA debugger)
        at java.base/java.util.concurrent.FutureTask.<init>(FutureTask.java:132)
        at 
java.base/java.util.concurrent.AbstractExecutorService.newTaskFor(AbstractExecutorService.java:113)
        at 
java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:144)
        at 
org.testng.internal.invokers.MethodInvocationHelper.invokeWithTimeoutWithNewExecutor(MethodInvocationHelper.java:385)
        at 
org.testng.internal.invokers.MethodInvocationHelper.invokeWithTimeout(MethodInvocationHelper.java:303)
        at 
org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:686)
        at 
org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:221)
        at 
org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:50)
        at 
org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:969)
        at 
org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:194)
        at 
org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
        at 
org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
        at org.testng.TestRunner.privateRun(TestRunner.java:829)
        at org.testng.TestRunner.run(TestRunner.java:602)
        at org.testng.SuiteRunner.runTest(SuiteRunner.java:437)
        at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:431)
        at org.testng.SuiteRunner.privateRun(SuiteRunner.java:391)
        at org.testng.SuiteRunner.run(SuiteRunner.java:330)
        at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
        at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
        at org.testng.TestNG.runSuitesSequentially(TestNG.java:1256)
        at org.testng.TestNG.runSuitesLocally(TestNG.java:1176)
        at org.testng.TestNG.runSuites(TestNG.java:1099)
        at org.testng.TestNG.run(TestNG.java:1067)
        at com.intellij.rt.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:65)
        at 
com.intellij.rt.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:105)
   2025-05-03T22:01:24,787 - INFO  - 
[test-OrderedScheduler-0-0:PulsarMockBookKeeper@139] - Creating ledger 4
   2025-05-03T22:01:24,788 - INFO  - 
[test-OrderedScheduler-0-0:ManagedLedgerImpl@1691] - 
[testSkipEntriesWithIndividualDeletedMessages209161062148779] Created new 
ledger 4
   2025-05-03T22:01:24,790 - INFO  - 
[bookkeeper-ml-scheduler-OrderedScheduler-0-0:ManagedLedgerImpl@2557] - 
lastAckedPosition: 3:-1, markDelete: 3:-1
   2025-05-03T22:01:24,791 - INFO  - 
[bookkeeper-ml-scheduler-OrderedScheduler-0-0:ManagedLedgerImpl@2568] - zixuan 
no reset
   2025-05-03T22:01:24,805 - INFO  - 
[TestNG-method=testSkipEntriesWithIndividualDeletedMessages-1:ManagedCursorImpl@2148]
 - state_update: NoLedger
   java.lang.RuntimeException: print s
        at 
org.apache.bookkeeper.client.PulsarMockBookKeeper.asyncCreateLedger(PulsarMockBookKeeper.java:132)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.asyncCreateLedger(ManagedLedgerImpl.java:4207)
        at 
org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.doCreateNewMetadataLedger(ManagedCursorImpl.java:3100)
        at 
org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.createNewMetadataLedger(ManagedCursorImpl.java:3065)
        at 
org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.createNewMetadataLedger(ManagedCursorImpl.java:2991)
        at 
org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.startCreatingNewMetadataLedger(ManagedCursorImpl.java:2984)
        at 
org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.internalAsyncMarkDelete(ManagedCursorImpl.java:2158)
        at 
org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.asyncDelete(ManagedCursorImpl.java:2495)
        at 
org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.delete(ManagedCursorImpl.java:2315)
        at 
org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.delete(ManagedCursorImpl.java:2295)
        at 
org.apache.bookkeeper.mledger.impl.ManagedCursorTest.testSkipEntriesWithIndividualDeletedMessages(ManagedCursorTest.java:1847)
        at 
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
        at java.base/java.lang.reflect.Method.invoke(Method.java:580)
        at 
org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
        at 
org.testng.internal.invokers.InvokeMethodRunnable.runOne(InvokeMethodRunnable.java:47)
        at 
org.testng.internal.invokers.InvokeMethodRunnable.call(InvokeMethodRunnable.java:76)
        at 
org.testng.internal.invokers.InvokeMethodRunnable.call(InvokeMethodRunnable.java:11)
        at 
java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
        at --- Async.Stack.Trace --- (captured by IntelliJ IDEA debugger)
        at java.base/java.util.concurrent.FutureTask.<init>(FutureTask.java:132)
        at 
java.base/java.util.concurrent.AbstractExecutorService.newTaskFor(AbstractExecutorService.java:113)
        at 
java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:144)
        at 
org.testng.internal.invokers.MethodInvocationHelper.invokeWithTimeoutWithNewExecutor(MethodInvocationHelper.java:385)
        at 
org.testng.internal.invokers.MethodInvocationHelper.invokeWithTimeout(MethodInvocationHelper.java:303)
        at 
org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:686)
        at 
org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:221)
        at 
org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:50)
        at 
org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:969)
        at 
org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:194)
        at 
org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
        at 
org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
        at org.testng.TestRunner.privateRun(TestRunner.java:829)
        at org.testng.TestRunner.run(TestRunner.java:602)
        at org.testng.SuiteRunner.runTest(SuiteRunner.java:437)
        at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:431)
        at org.testng.SuiteRunner.privateRun(SuiteRunner.java:391)
        at org.testng.SuiteRunner.run(SuiteRunner.java:330)
        at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
        at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
        at org.testng.TestNG.runSuitesSequentially(TestNG.java:1256)
        at org.testng.TestNG.runSuitesLocally(TestNG.java:1176)
        at org.testng.TestNG.runSuites(TestNG.java:1099)
        at org.testng.TestNG.run(TestNG.java:1067)
        at com.intellij.rt.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:65)
        at 
com.intellij.rt.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:105)
   2025-05-03T22:01:24,808 - INFO  - 
[test-OrderedScheduler-0-0:PulsarMockBookKeeper@139] - Creating ledger 5
   2025-05-03T22:01:24,830 - INFO  - 
[bookkeeper-ml-scheduler-OrderedScheduler-0-0:ManagedCursorImpl$32@3397] - 
[testSkipEntriesWithIndividualDeletedMessages209161062148779] Updated cursor c1 
with ledger id 5 md-position=3:-1 rd-position=3:0
   2025-05-03T22:01:24,840 - INFO  - 
[TestNG-method=testSkipEntriesWithIndividualDeletedMessages-1:ManagedCursorImpl@1855]
 - [testSkipEntriesWithIndividualDeletedMessages209161062148779] Skipping 3 
entries on cursor c1
   2025-05-03T22:01:24,989 - INFO  - [test-OrderedScheduler-0-0:OpAddEntry@265] 
- [testSkipEntriesWithIndividualDeletedMessages209161062148779] Closing ledger 
4 for being full
   2025-05-03T22:01:24,990 - INFO  - 
[test-OrderedScheduler-0-0:ManagedLedgerImpl@1890] - 
[testSkipEntriesWithIndividualDeletedMessages209161062148779] Creating a new 
ledger after closed 4
   java.lang.RuntimeException: print stack
        at 
org.apache.bookkeeper.client.PulsarMockBookKeeper.asyncCreateLedger(PulsarMockBookKeeper.java:132)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.asyncCreateLedger(ManagedLedgerImpl.java:4207)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.lambda$createLedgerAfterClosed$25(ManagedLedgerImpl.java:1898)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService$SafeRunnable.run(SingleThreadSafeScheduledExecutorService.java:46)
        at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
        at 
java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
        at --- Async.Stack.Trace --- (captured by IntelliJ IDEA debugger)
        at java.base/java.util.concurrent.FutureTask.<init>(FutureTask.java:151)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.<init>(ScheduledThreadPoolExecutor.java:215)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.schedule(ScheduledThreadPoolExecutor.java:561)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService.schedule(SingleThreadSafeScheduledExecutorService.java:55)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.execute(ScheduledThreadPoolExecutor.java:705)
        at 
com.google.common.util.concurrent.MoreExecutors$ListeningDecorator.execute(MoreExecutors.java:640)
        at 
com.google.common.util.concurrent.ForwardingExecutorService.execute(ForwardingExecutorService.java:110)
        at 
org.apache.bookkeeper.common.util.BoundedScheduledExecutorService.execute(BoundedScheduledExecutorService.java:132)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.createLedgerAfterClosed(ManagedLedgerImpl.java:1897)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.ledgerClosed(ManagedLedgerImpl.java:1878)
        at 
org.apache.bookkeeper.mledger.impl.OpAddEntry.closeComplete(OpAddEntry.java:296)
        at 
org.apache.bookkeeper.client.PulsarMockLedgerHandle.lambda$asyncClose$1(PulsarMockLedgerHandle.java:96)
        at 
java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:863)
        at 
java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:841)
        at 
java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService$SafeRunnable.run(SingleThreadSafeScheduledExecutorService.java:46)
        at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
        at 
java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
        at --- Async.Stack.Trace --- (captured by IntelliJ IDEA debugger)
        at java.base/java.util.concurrent.FutureTask.<init>(FutureTask.java:151)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.<init>(ScheduledThreadPoolExecutor.java:215)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.schedule(ScheduledThreadPoolExecutor.java:561)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService.schedule(SingleThreadSafeScheduledExecutorService.java:55)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.execute(ScheduledThreadPoolExecutor.java:705)
        at 
com.google.common.util.concurrent.MoreExecutors$ListeningDecorator.execute(MoreExecutors.java:640)
        at 
com.google.common.util.concurrent.ForwardingExecutorService.execute(ForwardingExecutorService.java:110)
        at 
org.apache.bookkeeper.common.util.BoundedScheduledExecutorService.execute(BoundedScheduledExecutorService.java:132)
        at 
java.base/java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572)
        at 
java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:854)
        at 
java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:841)
        at 
java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
        at 
java.base/java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614)
        at 
java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1163)
        at 
java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService$SafeRunnable.run(SingleThreadSafeScheduledExecutorService.java:46)
        at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
        at 
java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
        at --- Async.Stack.Trace --- (captured by IntelliJ IDEA debugger)
        at java.base/java.util.concurrent.FutureTask.<init>(FutureTask.java:151)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.<init>(ScheduledThreadPoolExecutor.java:215)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.schedule(ScheduledThreadPoolExecutor.java:561)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService.schedule(SingleThreadSafeScheduledExecutorService.java:55)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.execute(ScheduledThreadPoolExecutor.java:705)
        at 
com.google.common.util.concurrent.MoreExecutors$ListeningDecorator.execute(MoreExecutors.java:640)
        at 
com.google.common.util.concurrent.ForwardingExecutorService.execute(ForwardingExecutorService.java:110)
        at 
org.apache.bookkeeper.common.util.BoundedScheduledExecutorService.execute(BoundedScheduledExecutorService.java:132)
        at 
java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1184)
        at 
java.base/java.util.concurrent.CompletableFuture.thenComposeAsync(CompletableFuture.java:2352)
        at 
org.apache.bookkeeper.client.PulsarMockLedgerHandle.asyncClose(PulsarMockLedgerHandle.java:81)
        at 
org.apache.bookkeeper.mledger.impl.OpAddEntry.run(OpAddEntry.java:268)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService$SafeRunnable.run(SingleThreadSafeScheduledExecutorService.java:46)
        at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
        at 
java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
        at --- Async.Stack.Trace --- (captured by IntelliJ IDEA debugger)
        at java.base/java.util.concurrent.FutureTask.<init>(FutureTask.java:151)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.<init>(ScheduledThreadPoolExecutor.java:215)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.schedule(ScheduledThreadPoolExecutor.java:561)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService.schedule(SingleThreadSafeScheduledExecutorService.java:55)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.execute(ScheduledThreadPoolExecutor.java:705)
        at 
com.google.common.util.concurrent.MoreExecutors$ListeningDecorator.execute(MoreExecutors.java:640)
        at 
com.google.common.util.concurrent.ForwardingExecutorService.execute(ForwardingExecutorService.java:110)
        at 
org.apache.bookkeeper.common.util.BoundedScheduledExecutorService.execute(BoundedScheduledExecutorService.java:132)
        at 
org.apache.bookkeeper.mledger.impl.OpAddEntry.addComplete(OpAddEntry.java:226)
        at 
org.apache.bookkeeper.client.PulsarMockLedgerHandle.lambda$asyncAddEntry$5(PulsarMockLedgerHandle.java:207)
        at 
java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:863)
        at 
java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:841)
        at 
java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService$SafeRunnable.run(SingleThreadSafeScheduledExecutorService.java:46)
        at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
        at 
java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
        at --- Async.Stack.Trace --- (captured by IntelliJ IDEA debugger)
        at java.base/java.util.concurrent.FutureTask.<init>(FutureTask.java:151)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.<init>(ScheduledThreadPoolExecutor.java:215)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.schedule(ScheduledThreadPoolExecutor.java:561)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService.schedule(SingleThreadSafeScheduledExecutorService.java:55)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.execute(ScheduledThreadPoolExecutor.java:705)
        at 
com.google.common.util.concurrent.MoreExecutors$ListeningDecorator.execute(MoreExecutors.java:640)
        at 
com.google.common.util.concurrent.ForwardingExecutorService.execute(ForwardingExecutorService.java:110)
        at 
org.apache.bookkeeper.common.util.BoundedScheduledExecutorService.execute(BoundedScheduledExecutorService.java:132)
        at 
java.base/java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572)
        at 
java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:854)
        at 
java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:841)
        at 
java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
        at 
java.base/java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614)
        at 
java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1163)
        at 
java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService$SafeRunnable.run(SingleThreadSafeScheduledExecutorService.java:46)
        at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
        at 
java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
        at --- Async.Stack.Trace --- (captured by IntelliJ IDEA debugger)
        at java.base/java.util.concurrent.FutureTask.<init>(FutureTask.java:151)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.<init>(ScheduledThreadPoolExecutor.java:215)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.schedule(ScheduledThreadPoolExecutor.java:561)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService.schedule(SingleThreadSafeScheduledExecutorService.java:55)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.execute(ScheduledThreadPoolExecutor.java:705)
        at 
com.google.common.util.concurrent.MoreExecutors$ListeningDecorator.execute(MoreExecutors.java:640)
        at 
com.google.common.util.concurrent.ForwardingExecutorService.execute(ForwardingExecutorService.java:110)
        at 
org.apache.bookkeeper.common.util.BoundedScheduledExecutorService.execute(BoundedScheduledExecutorService.java:132)
        at 
java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1184)
        at 
java.base/java.util.concurrent.CompletableFuture.thenComposeAsync(CompletableFuture.java:2352)
        at 
org.apache.bookkeeper.client.PulsarMockLedgerHandle.asyncAddEntry(PulsarMockLedgerHandle.java:171)
        at 
org.apache.bookkeeper.mledger.impl.OpAddEntry.initiate(OpAddEntry.java:161)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.internalAsyncAddEntry(ManagedLedgerImpl.java:882)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.lambda$asyncAddEntry$4(ManagedLedgerImpl.java:813)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService$SafeRunnable.run(SingleThreadSafeScheduledExecutorService.java:46)
        at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
        at 
java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
        at --- Async.Stack.Trace --- (captured by IntelliJ IDEA debugger)
        at java.base/java.util.concurrent.FutureTask.<init>(FutureTask.java:151)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.<init>(ScheduledThreadPoolExecutor.java:215)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.schedule(ScheduledThreadPoolExecutor.java:561)
        at 
org.apache.bookkeeper.common.util.SingleThreadSafeScheduledExecutorService.schedule(SingleThreadSafeScheduledExecutorService.java:55)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor.execute(ScheduledThreadPoolExecutor.java:705)
        at 
com.google.common.util.concurrent.MoreExecutors$ListeningDecorator.execute(MoreExecutors.java:640)
        at 
com.google.common.util.concurrent.ForwardingExecutorService.execute(ForwardingExecutorService.java:110)
        at 
org.apache.bookkeeper.common.util.BoundedScheduledExecutorService.execute(BoundedScheduledExecutorService.java:132)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.asyncAddEntry(ManagedLedgerImpl.java:810)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.asyncAddEntry(ManagedLedgerImpl.java:792)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.addEntry(ManagedLedgerImpl.java:752)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.addEntry(ManagedLedgerImpl.java:737)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.addEntry(ManagedLedgerImpl.java:727)
        at 
org.apache.bookkeeper.mledger.impl.ManagedCursorTest.testSkipEntriesWithIndividualDeletedMessages(ManagedCursorTest.java:1863)
        at 
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
        at java.base/java.lang.reflect.Method.invoke(Method.java:580)
        at 
org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
        at 
org.testng.internal.invokers.InvokeMethodRunnable.runOne(InvokeMethodRunnable.java:47)
        at 
org.testng.internal.invokers.InvokeMethodRunnable.call(InvokeMethodRunnable.java:76)
        at 
org.testng.internal.invokers.InvokeMethodRunnable.call(InvokeMethodRunnable.java:11)
        at 
java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
        at --- Async.Stack.Trace --- (captured by IntelliJ IDEA debugger)
        at java.base/java.util.concurrent.FutureTask.<init>(FutureTask.java:132)
        at 
java.base/java.util.concurrent.AbstractExecutorService.newTaskFor(AbstractExecutorService.java:113)
        at 
java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:144)
        at 
org.testng.internal.invokers.MethodInvocationHelper.invokeWithTimeoutWithNewExecutor(MethodInvocationHelper.java:385)
        at 
org.testng.internal.invokers.MethodInvocationHelper.invokeWithTimeout(MethodInvocationHelper.java:303)
        at 
org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:686)
        at 
org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:221)
        at 
org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:50)
        at 
org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:969)
        at 
org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:194)
        at 
org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
        at 
org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
        at org.testng.TestRunner.privateRun(TestRunner.java:829)
        at org.testng.TestRunner.run(TestRunner.java:602)
        at org.testng.SuiteRunner.runTest(SuiteRunner.java:437)
        at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:431)
        at org.testng.SuiteRunner.privateRun(SuiteRunner.java:391)
        at org.testng.SuiteRunner.run(SuiteRunner.java:330)
        at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
        at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
        at org.testng.TestNG.runSuitesSequentially(TestNG.java:1256)
        at org.testng.TestNG.runSuitesLocally(TestNG.java:1176)
        at org.testng.TestNG.runSuites(TestNG.java:1099)
        at org.testng.TestNG.run(TestNG.java:1067)
        at com.intellij.rt.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:65)
        at 
com.intellij.rt.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:105)
   2025-05-03T22:01:24,998 - INFO  - 
[test-OrderedScheduler-0-0:PulsarMockBookKeeper@139] - Creating ledger 6
   2025-05-03T22:01:24,998 - INFO  - 
[test-OrderedScheduler-0-0:ManagedLedgerImpl@1691] - 
[testSkipEntriesWithIndividualDeletedMessages209161062148779] Created new 
ledger 6
   2025-05-03T22:01:24,998 - INFO  - 
[TestNG-method=testSkipEntriesWithIndividualDeletedMessages-1:ManagedCursorImpl@2148]
 - state_update: Open
   2025-05-03T22:01:24,999 - INFO  - 
[bookkeeper-ml-scheduler-OrderedScheduler-0-0:ManagedLedgerImpl@2557] - 
lastAckedPosition: 4:-1, markDelete: 3:4
   2025-05-03T22:01:24,999 - INFO  - 
[bookkeeper-ml-scheduler-OrderedScheduler-0-0:ManagedLedgerImpl@2560] - Reset 
cursor:ManagedCursorImpl{ledger=testSkipEntriesWithIndividualDeletedMessages209161062148779,
 name=c1, ackPos=3:4, readPos=4:0} to 4:-1 since ledger consumed completely
   2025-05-03T22:01:25,002 - INFO  - 
[bookkeeper-ml-scheduler-OrderedScheduler-0-0:ManagedLedgerImpl$17@2903] - 
[testSkipEntriesWithIndividualDeletedMessages209161062148779] End 
TrimConsumedLedgers. ledgers=2 totalSize=65
   2025-05-03T22:01:25,002 - INFO  - 
[TestNG-method=testSkipEntriesWithIndividualDeletedMessages-1:ManagedCursorImpl@1855]
 - [testSkipEntriesWithIndividualDeletedMessages209161062148779] Skipping 4 
entries on cursor c1
   2025-05-03T22:01:25,002 - INFO  - 
[bookkeeper-ml-scheduler-OrderedScheduler-0-0:ManagedLedgerImpl$17@2910] - 
[testSkipEntriesWithIndividualDeletedMessages209161062148779] Removing ledger 3 
- size: 65
   ```
   



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@pulsar.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to