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]