This is an automated email from the ASF dual-hosted git repository.
jinrongtong pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/rocketmq.git
The following commit(s) were added to refs/heads/develop by this push:
new fbe9f733b9 [ISSUE #9721] Fix TimerDequeueGetService thread not exiting
after shutdown
fbe9f733b9 is described below
commit fbe9f733b96b3c28d789bf1b81108cb490e7d83d
Author: rongtong <[email protected]>
AuthorDate: Sun Sep 21 09:56:23 2025 +0800
[ISSUE #9721] Fix TimerDequeueGetService thread not exiting after shutdown
- Add isRunningDequeue() check in checkDequeueLatch while loop
- Exit loop immediately when service is stopped to avoid thread blocking
- Ensure moveReadTime is not executed during shutdown process
- Improve system stability and reliability
---
.../main/java/org/apache/rocketmq/store/timer/TimerMessageStore.java | 5 +++++
1 file changed, 5 insertions(+)
diff --git
a/store/src/main/java/org/apache/rocketmq/store/timer/TimerMessageStore.java
b/store/src/main/java/org/apache/rocketmq/store/timer/TimerMessageStore.java
index f021237751..80184422e0 100644
--- a/store/src/main/java/org/apache/rocketmq/store/timer/TimerMessageStore.java
+++ b/store/src/main/java/org/apache/rocketmq/store/timer/TimerMessageStore.java
@@ -953,6 +953,11 @@ public class TimerMessageStore {
}
int checkNum = 0;
while (true) {
+ if (!isRunningDequeue()) {
+ LOGGER.info("Not Running dequeue, skip checkDequeueLatch for
delayedTime:{}", delayedTime);
+ break;
+ }
+
if (dequeuePutQueue.size() > 0
|| !checkStateForGetMessages(AbstractStateService.WAITING)
|| !checkStateForPutMessages(AbstractStateService.WAITING)) {