yuluo-yx opened a new issue, #10872:
URL: https://github.com/apache/rocketmq/issues/10872

   ### Before Creating the Bug Report
   
   - [x] I found a bug, not just a question.
   - [x] I searched open GitHub Issues and pull requests and found no duplicate.
   - [x] I confirmed that this bug belongs to Apache RocketMQ.
   
   ### Runtime platform environment
   
   macOS (Darwin), reproduced with an isolated local unit test.
   
   ### RocketMQ version
   
   Branch: develop
   Git commit: fd0c95920e0deac96ce2ae27442747cc5e65e930
   
   ### JDK Version
   
   Zulu OpenJDK 8 (8.94.0.17)
   
   ### Describe the Bug
   
   HookUtils converts relative timer delays using unchecked long multiplication 
and addition. A very large delay can overflow into a past timestamp, bypass the 
future-delay validation, and be accepted as an immediate message.
   
   ### Steps to Reproduce
   
   1. Create a timer message with TIMER_DELAY_SEC or TIMER_DELAY_MS set to 
Long.MAX_VALUE.
   2. Pass it through HookUtils.handleScheduleMessage.
   3. Observe that the overflowing delay is not rejected as an illegal timer 
message.
   
   ### What Did You Expect to See?
   
   A relative delay that cannot be represented as an absolute millisecond 
timestamp should return WHEEL_TIMER_MSG_ILLEGAL.
   
   ### What Did You See Instead?
   
   Overflow wraps the calculated delivery timestamp and the message can follow 
the immediate-message path.
   
   ### Additional Context
   
   Both seconds and milliseconds paths have deterministic unit reproductions in 
HookUtilsTest.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to