Repository navigation
fix: reclaim pending messages after empty stream reads - #142
Open
adrian-dankiv-webflow wants to merge 1 commit into
Open
adrian-dankiv-webflow wants to merge 1 commit into
adrian-dankiv-webflow wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
An empty XREADGROUP poll must still reach XAUTOCLAIM. Since #125, the early continue skips reclaim whenever no new messages arrive. A worker can die with a pending message and replacement workers never recover it until a fresh task is enqueued.
Remove the early continue and add a regression test that seeds an eligible pending message without enqueuing any fresh work. The claim transaction and release-before-yield behavior from #126 remain unchanged.
Validation: the added regression test passes locally against Redis 7 with redis-py 8.1 and Python 3.14. Two integration checks also pass with this exact two-line patch: idle-stream recovery and lock release before delivery. An idle-stream probe reproduces the failure on stock 1.2.4. Upstream CI remains pending.