[Bug] IndexStoreService reports success after index writes exhaust retries
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 78/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Quiet
- Tech stack
- java
- Domain
- distributed-systems
Research direction
Start in the tieredstore module at IndexStoreService.putKey and inspect how it handles the three IndexFile.putKey attempts and their AppendResult values. Use the deterministic unit-test scenario with currentWriteFile returning FILE_FULL; done means exhausted retries return the final failed result while the normal success path and retry behavior remain unchanged.
Written by the indexing model from the issue text.
Description
Runtime platform environment
macOS; reproduced with a deterministic unit test in the tieredstore module.
RocketMQ version
Branch: develop
Git commit: fd0c95920e0deac96ce2ae27442747cc5e65e930
JDK Version
Eclipse Temurin 17.0.19+10
Describe the Bug
IndexStoreService.putKey retries an index write three times. If every attempt fails, it logs an error but returns AppendResult.SUCCESS, so callers can treat an index entry that was never stored as successful.
Steps to Reproduce
- Set
currentWriteFileto anIndexFilewhoseputKeyreturnsFILE_FULL. - Keep file rotation from replacing that test file.
- Call
IndexStoreService.putKey. - Observe three failed attempts followed by a
SUCCESSresult.
What Did You Expect to See?
The method should return the final failed AppendResult after all retries are exhausted.
What Did You See Instead?
The method returns SUCCESS despite all three writes returning FILE_FULL.
Additional Context
The normal success path and the existing three-attempt retry behavior do not need to change.
- Dominant language
- Java
- Stars
- 22.6k
- Forks
- 12k
- Avg merge
- 3d 12h
- Merged PRs (30d)
- 25
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from apache/rocketmq
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
Difficulty 1/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
[Bug] TopicValidator rejects V2 retry topic names containing `+` separator introduced by KeyBuilder Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
infinispan/infinispan#18150 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
untriaged
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
opensearch-project/k-NN#3597 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100