#13645·Redis

[BUG] invalidation messages received before ACK of SUBSCRIBE __redis__:invalidate

Author: nunojpgCreated Nov 8, 2024Updated Sep 25, 2026

Tried with 6, 7 and 8 on Docker.

I use a connection pair where I do on A:

CLIENT TRACKING ON REDIRECT <B id> prefix <...> BCAST NOLOOP

And on B:

SUBSCRIBE __redis__:invalidate

In answer to this I get ">3\r\n$9\r\nsubscribe\r\n$20\r\n__redis__:invalidate\r\n:1\r\n" as expected and then the invalidation messages can follow, eg:

>3\r\n$9\r\nsubscribe\r\n$20\r\n__redis__:invalidate\r\n:1\r\n
>2\r\n$10\r\ninvalidate\r\n*1\r\n$23\r\nb:05aabbccddeeff:Cmd111\r\n
>2\r\n$10\r\ninvalidate\r\n*1\r\n$23\r\nb:05aabbccddeeff:Cmd112\r\n
>2\r\n$10\r\ninvalidate\r\n*1\r\n$23\r\nb:05aabbccddeeff:Cmd113\r\n
>2\r\n$10\r\ninvalidate\r\n*1\r\n$23\r\nb:05aabbccddeeff:Cmd114\r\n

BUT if when I issue the SUBSCRIBE while already settings keys externally at a high rate I have cases where I see:

>2\r\n$10\r\ninvalidate\r\n*1\r\n$23\r\nb:05aabbccddeeff:Cmd111\r\n
>2\r\n$10\r\ninvalidate\r\n*1\r\n$23\r\nb:05aabbccddeeff:Cmd112\r\n
>3\r\n$9\r\nsubscribe\r\n$20\r\n__redis__:invalidate\r\n:1\r\n
>2\r\n$10\r\ninvalidate\r\n*1\r\n$23\r\nb:05aabbccddeeff:Cmd113\r\n
>2\r\n$10\r\ninvalidate\r\n*1\r\n$23\r\nb:05aabbccddeeff:Cmd114\r\n

Is it allowed to receive the subscribe ACK out of order or is this a bug?