valkey-io/valkey

[BUG] PUBSUB SHARDNUMSUB doesn't return -CROSSSLOT for cross slot shard-channels

Open

#560 opened on May 27, 2024

View on GitHub
 (5 comments) (0 reactions) (1 assignee)C (1,138 forks)batch import
breaking-changebughelp wanted

Repository metrics

Stars
 (25,779 stars)
PR merge metrics
 (Avg merge 17d 7h) (74 merged PRs in 30d)

Description

Describe the bug

In cluster mode, calling this command with two channels mapping to different slots, like PUBSUB SHARDNUMSUB ch1 ch2, succeeds. It should return a -CROSSSLOT error, like any command with keys of two different slots.

To reproduce

Call the command with two channels mapping to the same node, but different cluster slots.

Expected behavior

-CROSSSLOT error reply.

Additional information

I believe it's enough to add a key specification in the command's JSON file under src/commands/. That would make the generic machinery for cluster crosslot detect the error early and return an error.

Contributor guide