[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\nBUT 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\nIs it allowed to receive the subscribe ACK out of order or is this a bug?
Source: redis/redis