This is an automated email from the ASF dual-hosted git repository.

technoboy 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 14b08210a02 [improve][broker]Skip to mark delete if the target 
position of expira… (#24881)
14b08210a02 is described below

commit 14b08210a02a4cd7dcffdd941a27d9fd7092a2d4
Author: fengyubiao <[email protected]>
AuthorDate: Mon Oct 27 11:10:38 2025 +0800

    [improve][broker]Skip to mark delete if the target position of expira… 
(#24881)
    
    Co-authored-by: Jiwei Guo <[email protected]>
    Co-authored-by: Zixuan Liu <[email protected]>
---
 .../broker/service/persistent/PersistentMessageExpiryMonitor.java     | 4 ++++
 1 file changed, 4 insertions(+)

diff --git 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/PersistentMessageExpiryMonitor.java
 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/PersistentMessageExpiryMonitor.java
index 9191080d671..98b30bb7b9f 100644
--- 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/PersistentMessageExpiryMonitor.java
+++ 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/PersistentMessageExpiryMonitor.java
@@ -231,6 +231,10 @@ public class PersistentMessageExpiryMonitor implements 
FindEntryCallback, Messag
     @Override
     public void findEntryComplete(Position position, Object ctx) {
         if (position != null) {
+            var markDeletedPosition = cursor.getMarkDeletedPosition();
+            if (markDeletedPosition != null && 
markDeletedPosition.compareTo(position) >= 0) {
+                return;
+            }
             log.info("[{}][{}] Expiring all messages until position {}", 
topicName, subName, position);
             Position prevMarkDeletePos = cursor.getMarkDeletedPosition();
             cursor.asyncMarkDelete(position, cursor.getProperties(), 
markDeleteCallback,

Reply via email to