8000 Cluster: ASKING before MULTI is used up by the first queued command, so EXEC on an importing slot gets MOVED · Issue #698 · kividbio/kividb · GitHub
[go: up one dir, main page]

Skip to content
< 8000 link rel="preload" as="image" href="https://github.githubassets.com/assets/platform-dark-ac89fbf373737ed3.png"/>

Cluster: ASKING before MULTI is used up by the first queued command, so EXEC on an importing slot gets MOVED #698

Open

Description

@murtazayusuf

Found while working on #640.

On a node importing a slot, ASKING; MULTI; SET k v; EXEC answers MOVED, with no pause involved. Redis 8.10.2 runs the transaction.

KiviDB uses up the ASKING flag on the first command after it, which is MULTI, so the queued SET no longer has it when EXEC runs. An ASKING sent inside the MULTI is just queued, which doesn't help either. In Redis the flag lasts until the command it applies to has run, and EXEC runs the queued commands with it.

redis-cli and cluster clients send ASKING then MULTI after an ASK redirect inside a transaction, so this breaks transactions on keys that are moving during a reshard.

Activity

  1. added
    bugSomething isn't working
    redis-compatA test in Redis's own test suite fails against KiviDB
    on Nov 13, 2026
  2. magic-peach commented on Nov 13, 2026

    @magic-peach
    Contributor

    @murtazayusuf I would like to work on this!

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

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingclusterCluster moderedis-compatA test in Redis's own test suite fails against KiviDB

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

    0