Skip to content

Stop asking for confirmation before Redis blocking commands the provider refuses - #1174

Merged
cevheri merged 2 commits into
libredb:mainfrom
niukanen1:fix/1164-redis-blocking-destructive
Sep 28, 2026
Merged

cevheri merged 2 commits into
libredb:mainfrom
niukanen1:fix/1164-redis-blocking-destructive

Conversation

@niukanen1

Copy link
Copy Markdown
Contributor

Fixes #1164

Since #1121 RedisProvider.query() refuses the blocking list-pop commands before they reach the server, but REDIS_DESTRUCTIVE_COMMANDS still contained BLPOP, BRPOP, BLMPOP, BLMOVE, BRPOPLPUSH, BZPOPMIN, BZPOPMAX and BZMPOP, so the user was first asked to confirm and then told the command will not run.

The eight names are removed from the vocabulary; their non-blocking forms stay. The docblock now says the vocabulary names only commands the provider runs and points to sharedConnectionRefusal and section 5.2b of the Redis provider doc, which also gained a sentence to that effect in its confirmation-gate section

…the provider refuses

The blocking list-pop commands are refused by query() before they reach
the server, so the dialog asked for confirmation and the results panel
then said the command will not run. The non-blocking forms stay in the
vocabulary and the dialog asks for them as before
…ibredb#1164)

Only LPOP was asserted, so deleting any of the other seven from the
vocabulary left every test green. Also names the refused family as list
and sorted-set pops, since BZPOPMIN, BZPOPMAX and BZMPOP are not list
commands.
@cevheri

cevheri commented Sep 28, 2026

Copy link
Copy Markdown
Member

Thanks, this does what #1164 asked. The eight blocking names are gone and their non-blocking forms stay. The new tests fail on main (8 of 8) and pass here. I checked it in the app against redis 8.10.2: BLPOP queue 0, blpop queue 0 and the JSON form of BZPOPMIN go straight to the refusal with no dialog, and LPOP, RPOP and ZPOPMIN still ask.

I pushed one small commit on top, 8956f33. Among the non-blocking forms only LPOP was asserted, so deleting any of the other seven from the set left every test green. They are pinned now. The commit also calls the refused family "list and sorted-set pops", because BZPOPMIN, BZPOPMAX and BZMPOP are not list commands. Nothing else is needed from you.

@codecov

codecov Bot commented Sep 28, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@cevheri
cevheri merged commit a493061 into libredb:main Sep 28, 2026
24 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Redis: the confirmation dialog asks about blocking commands the provider now refuses

2 participants