Skip to content

fix(cluster): release forbidden slot range on CLUSTER RESET#3545

Open
git-hulk wants to merge 1 commit into
apache:unstablefrom
git-hulk:fix-forbidden-slot-after-reset
Open

fix(cluster): release forbidden slot range on CLUSTER RESET#3545
git-hulk wants to merge 1 commit into
apache:unstablefrom
git-hulk:fix-forbidden-slot-after-reset

Conversation

@git-hulk

@git-hulk git-hulk commented Jul 5, 2026

Copy link
Copy Markdown
Member

After a slot has been migrated away, the source node keeps forbidden_slot_range_ set. That is normally harmless because the topology no longer routes the slot to this node, so the forbidden-slot check is never reached. But CLUSTER RESET clears the topology while leaving the migrator's forbidden range intact — a subsequent SETNODES that reassigns the slot back to this node then spuriously rejects writes with TRYAGAIN Can't write to slot being migrated. Explicitly release the forbidden slot range in Cluster::Reset to fix this.

Assistant-By: Claude Opus 4.7

After a slot has been migrated away, the source node keeps
`forbidden_slot_range_` set. That is normally harmless because the
topology no longer routes the slot to this node, so the forbidden-slot
check is never reached. But `CLUSTER RESET` clears the topology while
leaving the migrator's forbidden range intact — a subsequent SETNODES
that reassigns the slot back to this node then spuriously rejects
writes with `TRYAGAIN Can't write to slot being migrated`. Explicitly
release the forbidden slot range in `Cluster::Reset` to fix this.

Assistant-By: Claude Opus 4.7
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.

1 participant