From 432f5abb9c62c9091db395d3141c70be6cbf2948 Mon Sep 17 00:00:00 2001 From: Senrian Date: Mon, 2 Mar 2026 03:06:05 +0000 Subject: [PATCH 1/2] [Enhancement] Upgrade Disruptor to 3.4.1 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7d9fbc297c1..cbea3318f8e 100644 --- a/pom.xml +++ b/pom.xml @@ -128,7 +128,7 @@ 2.0.3 1.53.0 3.20.1 - 1.2.10 + 3.4.1 0.9.11 2.9.3 5.3.27 From 0d81e077da1723c81b874efd058a5919cb56728a Mon Sep 17 00:00:00 2001 From: Senrian Date: Mon, 2 Mar 2026 08:39:09 +0000 Subject: [PATCH 2/2] fix: use currOffset instead of nextOffset when delivery fails (ISSUE #9249) When message delivery fails in ScheduleMessageService.DeliverDelayedMessageTimerTask, the offset parameter passed to scheduleNextTimerTask was incorrect. Using nextOffset would skip the current message and potentially lose messages. This fix changes to use currOffset to retry the current message immediately. Compare with version 4.9.8 which uses nextOffset in the loop but correctly passes currOffset when delivery fails. --- .../apache/rocketmq/broker/schedule/ScheduleMessageService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/broker/src/main/java/org/apache/rocketmq/broker/schedule/ScheduleMessageService.java b/broker/src/main/java/org/apache/rocketmq/broker/schedule/ScheduleMessageService.java index ef7e4f67894..6b2b8d44b79 100644 --- a/broker/src/main/java/org/apache/rocketmq/broker/schedule/ScheduleMessageService.java +++ b/broker/src/main/java/org/apache/rocketmq/broker/schedule/ScheduleMessageService.java @@ -473,7 +473,7 @@ public void executeOnTimeUp() { } if (!deliverSuc) { - this.scheduleNextTimerTask(nextOffset, DELAY_FOR_A_WHILE); + this.scheduleNextTimerTask(currOffset, DELAY_FOR_A_WHILE); return; } }