WJ66880 opened a new issue, #9640:
URL: https://github.com/apache/rocketmq/issues/9640

   ### Before Creating the Bug Report
   
   - [x] I found a bug, not just asking a question, which should be created in 
[GitHub Discussions](https://github.com/apache/rocketmq/discussions).
   
   - [x] I have searched the [GitHub 
Issues](https://github.com/apache/rocketmq/issues) and [GitHub 
Discussions](https://github.com/apache/rocketmq/discussions)  of this 
repository and believe that this is not a duplicate.
   
   - [x] I have confirmed that this bug belongs to the current repository, not 
other repositories of RocketMQ.
   
   
   ### Runtime platform environment
   
   Run org.apache.rocketmq.example.benchmark.TransactionProducer with 
parameters as follow,
   -n 127.0.0.1:9876 -w 1 -s 2028 -su 0.5
   
   ### RocketMQ version
   
   4.3.2, but latest version has the same problem.
   
   ### JDK Version
   
   JDK1.8
   
   ### Describe the Bug
   
   Run org.apache.rocketmq.example.benchmark.TransactionProducer with 
parameters as follow,
   -n 127.0.0.1:9876 -w 1 -s 2028 -su 0.5
   We will soon see the following result, lost of unexpected check, means even 
return commit when execute local transactoin, broker will trigger check back 
either.
   
   <img width="1729" height="626" alt="Image" 
src="https://github.com/user-attachments/assets/7c3f43c2-7993-4759-8b69-fdf9b14a21ef";
 />
   
   The current check back project based on the time diff between broker and 
producer.
   `long valueOfCurrentMinusBorn = System.currentTimeMillis() - 
msgExt.getStoreTimestamp();`
   so, the time diff depends on both the broker system clock and producer 
system clock.
   When producer sends a lot of message, for one message, its half message and 
op message may be far away from each other on time. as a result, 
valueOfCurrentMinusBorn may exceeds the transactionTimeout, 6s default. so 
check back happens.
   
   The check back project should base on the time diff only and not depends on 
the producer system clock.
   On broker, use msg storeTimestamp.
   on producer, use msg bornTimestamp.
   
   ### Steps to Reproduce
   
   Run org.apache.rocketmq.example.benchmark.TransactionProducer with 
parameters as follow,
   -n 127.0.0.1:9876 -w 1 -s 2028 -su 0.5
   
   ### What Did You Expect to See?
   
   Only a very low or nearly zero wrong check back rate when execute local 
transaction method returns commit.
   
   <img width="1734" height="718" alt="Image" 
src="https://github.com/user-attachments/assets/2f8888bf-19ab-4648-b1c1-282846e58b2a";
 />
   
   ### What Did You See Instead?
   
   A very high wrong check back rate when execute local transaction method 
returns commit.
   
   <img width="1729" height="626" alt="Image" 
src="https://github.com/user-attachments/assets/e7accdc0-2ac0-4532-8cfa-4e03cc563432";
 />
   
   ### Additional Context
   
   _No response_


-- 
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