hrsakai opened a new pull request, #17343:
URL: https://github.com/apache/pulsar/pull/17343

   * I reopened #14486 as a new PR.
   
   ### Motivation
   In my environment, sometimes found following logs.
   ```
   2022-08-26T00:41:52,420+0000 [bookkeeper-ml-scheduler-OrderedScheduler-0-0] 
WARN  org.apache.bookkeeper.mledger.impl.ManagedCursorImpl - 
[public/default/persistent/log-topic1][sub1] Failed to flush mark-delete 
position
   org.apache.bookkeeper.mledger.ManagedLedgerException: 
java.lang.IllegalArgumentException: Mark deleting an already mark-deleted 
position. Current mark-delete: 49:106343 -- attempted mark delete: 49:106338
   Caused by: java.lang.IllegalArgumentException: Mark deleting an already 
mark-deleted position. Current mark-delete: 49:106343 -- attempted mark delete: 
49:106338
        at 
org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.setAcknowledgedPosition(ManagedCursorImpl.java:1722)
 ~[managed-ledger.jar:2.11.0-SNAPSHOT]
        at 
org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.asyncMarkDelete(ManagedCursorImpl.java:1862)
 ~[managed-ledger.jar:2.11.0-SNAPSHOT]
        at 
org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.flush(ManagedCursorImpl.java:3254)
 ~[managed-ledger.jar:2.11.0-SNAPSHOT]
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerFactoryImpl.lambda$flushCursors$1(ManagedLedgerFactoryImpl.java:240)
 ~[managed-ledger.jar:2.11.0-SNAPSHOT]
        at java.lang.Iterable.forEach(Iterable.java:75) ~[?:?]
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerFactoryImpl.lambda$flushCursors$2(ManagedLedgerFactoryImpl.java:240)
 ~[managed-ledger.jar:2.11.0-SNAPSHOT]
        at 
java.util.concurrent.ConcurrentHashMap$ValuesView.forEach(ConcurrentHashMap.java:4780)
 ~[?:?]
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerFactoryImpl.flushCursors(ManagedLedgerFactoryImpl.java:236)
 ~[managed-ledger.jar:2.11.0-SNAPSHOT]
        at 
org.apache.pulsar.common.util.Runnables$CatchingAndLoggingRunnable.run(Runnables.java:54)
 ~[pulsar-common.jar:2.11.0-SNAPSHOT]
        at 
org.apache.bookkeeper.common.util.OrderedExecutor$TimedRunnable.run(OrderedExecutor.java:214)
 ~[bookkeeper-common-4.15.0.jar:4.15.0]
        at 
com.google.common.util.concurrent.MoreExecutors$ScheduledListeningDecorator$NeverSuccessfulListenableFutureTask.run(MoreExecutors.java:718)
 ~[guava-31.0.1-jre.jar:?]
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[?:?]
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) 
~[?:?]
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
 ~[?:?]
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) 
~[?:?]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) 
~[?:?]
        at 
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
 ~[netty-common-4.1.77.Final.jar:4.1.77.Final]
        at java.lang.Thread.run(Thread.java:833) ~[?:?]
   ```
   
   * This is because periodic flush try to update mark delete position to old 
position.
    In the log above, it tried to update mark delete position from `49:106343` 
to `49:106338`.
   
   ### Modifications
   
   * Logging with debug level because the marker location was already marked 
for deletion.
   
   ### Reproduces
   * Start standalone with `managedLedgerCursorPositionFlushSeconds=1 `
   * Create a producer and consumer with same topic.
   * Continue to  send and recieve/acknowledge messages.
   * Wait a minute and it will happen.


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to