[FIXED] Consumer skips some messages (WQ / Interest Streams) #6526
+27
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Consumers could occasionally skip messages given specific message removal patterns. This was most prevalent for WorkQueue and Interest-based streams.
The issue lies in both
ss.First
andss.Last
being lazy and needing to be recalculated once they are needed.ss.Last
was not recalculated before, but it is since #6235 ensuring the subject state remains correct.However, if
ss.Last
was overwritten after a new message was ingested into the stream, thess.lastNeedsUpdate
flag was not updated. Which resulted inss.Last
being recalculated to a lower value, skipping over the message with the sequence that was previouslyss.Last
.Signed-off-by: Maurice van Veen github@mauricevanveen.com