Skip to content

Make cluster scans best-effort with partial coverage - #4213

Draft
lh0156 wants to merge 1 commit into
redis:masterfrom
lh0156:agent/scan-best-effort
Draft

Make cluster scans best-effort with partial coverage#4213
lh0156 wants to merge 1 commit into
redis:masterfrom
lh0156:agent/scan-best-effort

Conversation

@lh0156

@lh0156 lh0156 commented Jul 26, 2026

Copy link
Copy Markdown

Fixes #3411

What changed

  • Make cluster scan_iter() best-effort when require_full_coverage=False.
  • Skip only per-node ConnectionError and TimeoutError failures while continuing to scan reachable nodes.
  • Preserve fail-fast behavior when require_full_coverage=True.
  • Continue to propagate Redis command errors such as ResponseError.
  • Keep synchronous and asynchronous cluster clients consistent.
  • Add regression tests for both clients and the failure boundaries.

Verification

  • pytest -q tests/test_cluster.py -k 'cluster_scan_iter' — 4 passed
  • pytest -q tests/test_asyncio/test_cluster.py -k 'cluster_scan_iter' — 5 passed
  • invoke linters
  • ruff format --check
  • git diff --check
  • python -m compileall

The full Redis Cluster integration suite requires local Redis cluster services, which are not available in this workspace.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

cluster - scan do not respect require_full_coverage at false

1 participant