This is an automated email from the ASF dual-hosted git repository. lhotari pushed a commit to branch branch-4.0 in repository https://gitbox.apache.org/repos/asf/pulsar.git
commit 5bdc5aa589c74432332faa4f439336c99e0d64af 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]> (cherry picked from commit 14b08210a02a4cd7dcffdd941a27d9fd7092a2d4) --- .../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 a51f02b0c0d..d0194a0d2fa 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 @@ -232,6 +232,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,
