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

   The issue tracker is used for bug reporting purposes **ONLY** whereas 
feature request needs to follow the [RIP 
process](https://github.com/apache/rocketmq/wiki/RocketMQ-Improvement-Proposal).
 To avoid unnecessary duplication, please check whether there is a previous 
issue before filing a new one.
   
   It is recommended to start a discussion thread in the [mailing 
lists](http://rocketmq.apache.org/about/contact/) or [github 
discussions](https://github.com/apache/rocketmq/discussions) in cases of 
discussing your deployment plan, API clarification, and other non-bug-reporting 
issues.
   We welcome any friendly suggestions, bug fixes, collaboration, and other 
improvements.
   
   Please ensure that your bug report is clear and self-contained. Otherwise, 
it would take additional rounds of communication, thus more time, to understand 
the problem itself.
   
   Generally, fixing an issue goes through the following steps:
   1. Understand the issue reported;
   1. Reproduce the unexpected behavior locally;
   1. Perform root cause analysis to identify the underlying problem;
   1. Create test cases to cover the identified problem;
   1. Work out a solution to rectify the behavior and make the newly created 
test cases pass;
   1. Make a pull request and go through peer review;
   
   As a result, it would be very helpful yet challenging if you could provide 
an isolated project reproducing your reported issue. Anyway, please ensure your 
issue report is informative enough for the community to pick up. At a minimum, 
include the following hints:
   
   **BUG REPORT**
   
   1. Please describe the issue you observed:
   
   After running the 5.1.0 cluster for a while, there were cases where the 
consume queue offset were misplaced, and the error log frequently appeared in 
the storeerror.log.
   
   
![image](https://user-images.githubusercontent.com/21963954/231098266-d824f1dc-7ae1-48af-ae29-4c9bbbd31d25.png)
   
   expectLogicOffset is greater than currentLogicOffset, which means that the 
queueOffset in the topicQueueTable in memory is greater than the actual offset 
of the ConsumeQueue file.
   
   
![image](https://user-images.githubusercontent.com/21963954/231098671-f9dc14f4-3ea9-4f7f-94bb-9629b4ae87fd.png)
   
   2. Cause analysis
   
   In the store.log, it was found that there were message's properties ​​that 
were too long, exceeding the maximum value of short.
   
   When message put to commitlog, the offset in the topicQueueTable will be 
increased first, and then the message will be encoded.
   
   
![image](https://user-images.githubusercontent.com/21963954/231099405-ec9f8d50-460f-4d30-9764-862e698c5863.png)
   
   
![image](https://user-images.githubusercontent.com/21963954/231099444-95bb5333-efd7-4b54-9701-5cc0d22e3f68.png)
   
   The encode process will verify the length of the propertites. If the 
verification fails, the message will not be written to the commit log, but the 
offset in the topicQueueTable has already been increased, resulting in the 
above phenomenon (the queueOffset in the topicQueueTable in memory is greater 
than the actual offset in the cq file).
   
   
![image](https://user-images.githubusercontent.com/21963954/231099788-4a37116d-9f97-4b15-bc08-e86180fa102d.png)
   


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