From d2538aa293d7b1cd6f77980b7c2d893ab4e6db01 Mon Sep 17 00:00:00 2001 From: Dream95 Date: Wed, 17 Jun 2026 17:58:44 +0800 Subject: [PATCH] [fix][client] Fix UnAckedMessageRedeliveryTracker to skip cancelled timeouts Signed-off-by: Dream95 --- .../pulsar/client/impl/UnAckedMessageRedeliveryTracker.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/UnAckedMessageRedeliveryTracker.java b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/UnAckedMessageRedeliveryTracker.java index 39fda87f024f4..b6b4449fc359e 100644 --- a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/UnAckedMessageRedeliveryTracker.java +++ b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/UnAckedMessageRedeliveryTracker.java @@ -57,6 +57,10 @@ public UnAckedMessageRedeliveryTracker(PulsarClientImpl client, ConsumerBase timeout = client.timer().newTimeout(new TimerTask() { @Override public void run(Timeout t) throws Exception { + if (t.isCancelled()) { + return; + } + writeLock.lock(); try { HashSet headPartition = redeliveryTimePartitions.removeFirst();