You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have confirmed that this bug belongs to the current repository, not other repositories of RocketMQ.
Runtime platform environment
OS: CentOS 6.9
RocketMQ version
branch: (develop|tag 5.1.4) version: 5.1.4
JDK Version
JDK: 1.8.0_202
Describe the Bug
When I enable slaveActingMaster and remoteEscape,send some messages to master,then close it,slave throw exceptions as follows:
2023-11-28 17:56:25 INFO TimerDequeuePutMessageService - Unknown error
java.lang.NullPointerException: null
at org.apache.rocketmq.store.timer.TimerMessageStore.doPut(TimerMessageStore.java:1088)
at org.apache.rocketmq.store.timer.TimerMessageStore.access$1900(TimerMessageStore.java:71)
at org.apache.rocketmq.store.timer.TimerMessageStore$TimerDequeuePutMessageService.run(TimerMessageStore.java:1487)
at java.lang.Thread.run(Thread.java:748)
2023-11-28 17:56:25 INFO TimerDequeuePutMessageService - Unknown error
java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:542)
at java.lang.Integer.parseInt(Integer.java:615)
at org.apache.rocketmq.store.timer.TimerMessageStore.convertMessage(TimerMessageStore.java:1142)
at org.apache.rocketmq.store.timer.TimerMessageStore.convert(TimerMessageStore.java:1059)
at org.apache.rocketmq.store.timer.TimerMessageStore.access$1800(TimerMessageStore.java:71)
at org.apache.rocketmq.store.timer.TimerMessageStore$TimerDequeuePutMessageService.run(TimerMessageStore.java:1486)
at java.lang.Thread.run(Thread.java:748)
I fixed the exception,and repeat previous steps,after I restarted master, the consumer received repeated messages。
Deploy one NameServer and tow group of brokers, such as:
master: broker-a,slave: broker-a-s
master: broker-b,slave: broker-b-s
Run consumer and send some timer messages,such as: message.setDeliverTimeMs(System.currentTimeMillis() + 5 * 60_000L);
Close the master, slave will throw NPE and NumberFormatException when timer message escape。
The second problem reproduce steps:
After I fix the exception and repeat previous steps。
Restart master, the consumer will receive repeated messages。
For example, the producer sent 10 messages and received 10 messages before the master restarted. After the master restarted, it repeatedly received the previously received messages.
What Did You Expect to See?
Slave not throw exception。
Consumer not revieve repeated messages.
What Did You See Instead?
Slave throw exception。
Consumer revieve repeated messages.
Additional Context
No response
The text was updated successfully, but these errors were encountered:
* fix NullPointerException when message escape to remote
* fix NumberFormatException when message retry to escape to remote
* fix timerCheckPoint of the master is not updated, causing the timer message to be replayed after master is restarted
* Use properties copies instead of referencing the same map when converting message
gaoyf
added a commit
to sohutv/rocketmq
that referenced
this issue
Mar 13, 2024
Before Creating the Bug Report
I found a bug, not just asking a question, which should be created in GitHub Discussions.
I have searched the GitHub Issues and GitHub Discussions of this repository and believe that this is not a duplicate.
I have confirmed that this bug belongs to the current repository, not other repositories of RocketMQ.
Runtime platform environment
OS: CentOS 6.9
RocketMQ version
branch: (develop|tag 5.1.4) version: 5.1.4
JDK Version
JDK: 1.8.0_202
Describe the Bug
When I enable slaveActingMaster and remoteEscape,send some messages to master,then close it,slave throw exceptions as follows:
I fixed the exception,and repeat previous steps,after I restarted master, the consumer received repeated messages。
Steps to Reproduce
The first problem reproduce steps:
supportActingMaster=true
enableSlaveActingMaster=true
enableRemoteEscape=true
totalReplicas=2
message.setDeliverTimeMs(System.currentTimeMillis() + 5 * 60_000L);
The second problem reproduce steps:
For example, the producer sent 10 messages and received 10 messages before the master restarted. After the master restarted, it repeatedly received the previously received messages.
What Did You Expect to See?
What Did You See Instead?
Additional Context
No response
The text was updated successfully, but these errors were encountered: