Static topic mapping may select a stale epoch when the epoch delta overflows
- Dominant language
- Java
- Stars
- 22.6k
- Forks
- 12k
- Avg merge
- 3d 1h
- Merged PRs (30d)
- 27
Description
### Description
Static topic mapping sorts long epoch values by subtracting them and narrowing the result to int. When two epochs differ by more than Integer.MAX_VALUE, the comparator can reverse their order. In replacement mode, checkAndBuildMappingItems then keeps the stale broker mapping instead of the latest one.
### Expected behavior
Epochs should be ordered with Long.compare so the newest mapping always wins without arithmetic overflow.
### Reproduction
Create two mapping details for the same logical queue with epochs 0 and Long.MAX_VALUE, call checkAndBuildMappingItems with replace enabled, and observe that the epoch-0 mapping is selected.
Contributor guide
Research direction
Start at checkAndBuildMappingItems and trace the replacement-mode ordering of mapping details for the same logical queue. Reproduce the issue with epochs 0 and Long.MAX_VALUE, then verify that the latest epoch is selected without overflow and add or run a regression check for that behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- distributed-systems
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 78/100