This is an automated email from the ASF dual-hosted git repository.
eolivelli 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 5a87c47705a [broker] Do not log stacktrace for 'Failed to flush
mark-delete position' case (#17432)
5a87c47705a is described below
commit 5a87c47705a156534c7be42dce2cc71707e80998
Author: Enrico Olivelli <[email protected]>
AuthorDate: Wed Sep 14 10:02:58 2022 +0200
[broker] Do not log stacktrace for 'Failed to flush mark-delete position'
case (#17432)
---
.../bookkeeper/mledger/impl/ManagedCursorImpl.java | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git
a/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedCursorImpl.java
b/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedCursorImpl.java
index 59da6fc81da..107390084d6 100644
---
a/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedCursorImpl.java
+++
b/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedCursorImpl.java
@@ -1729,7 +1729,7 @@ public class ManagedCursorImpl implements ManagedCursor {
*/
PositionImpl setAcknowledgedPosition(PositionImpl newMarkDeletePosition) {
if (newMarkDeletePosition.compareTo(markDeletePosition) < 0) {
- throw new IllegalArgumentException(
+ throw new MarkDeletingMarkedPosition(
"Mark deleting an already mark-deleted position. Current
mark-delete: " + markDeletePosition
+ " -- attempted mark delete: " +
newMarkDeletePosition);
}
@@ -1800,6 +1800,12 @@ public class ManagedCursorImpl implements ManagedCursor {
asyncMarkDelete(position, Collections.emptyMap(), callback, ctx);
}
+ private final class MarkDeletingMarkedPosition extends
IllegalArgumentException {
+ public MarkDeletingMarkedPosition(String s) {
+ super(s);
+ }
+ }
+
@Override
public void asyncMarkDelete(final Position position, Map<String, Long>
properties,
final MarkDeleteCallback callback, final Object ctx) {
@@ -3289,7 +3295,13 @@ public class ManagedCursorImpl implements ManagedCursor {
@Override
public void markDeleteFailed(ManagedLedgerException exception,
Object ctx) {
- log.warn("[{}][{}] Failed to flush mark-delete position",
ledger.getName(), name, exception);
+ if (exception.getCause() instanceof
MarkDeletingMarkedPosition) {
+ // this is not actually a problem, we should not log a
stacktrace
+ log.info("[{}][{}] Cannot flush mark-delete position: {}",
ledger.getName(),
+ name, exception.getCause().getMessage());
+ } else {
+ log.warn("[{}][{}] Failed to flush mark-delete position",
ledger.getName(), name, exception);
+ }
}
}, null);
}