summaryrefslogtreecommitdiff
path: root/src/blocked.c
diff options
context:
space:
mode:
authorguybe7 <guy.benoish@redislabs.com>2021-03-15 20:19:57 +0100
committerGitHub <noreply@github.com>2021-03-15 21:19:57 +0200
commitdba33a943d508bc5929db4950b4abadf6278ef02 (patch)
tree95b02562a6a38779eaf98017f6b027be845a1151 /src/blocked.c
parent84d056d0f742444819355d6018a2329ede838215 (diff)
downloadredis-dba33a943d508bc5929db4950b4abadf6278ef02.tar.gz
Missing EXEC on modules propagation after failed EVAL execution (#8654)
1. moduleReplicateMultiIfNeeded should use server.in_eval like moduleHandlePropagationAfterCommandCallback 2. server.in_eval could have been set to 1 and not reset back to 0 (a lot of missed early-exits after in_eval is already 1) Note: The new assertions in processCommand cover (2) and I added two module tests to cover (1) Implications: If an EVAL that failed (and thus left server.in_eval=1) runs before a module command that replicates, the replication stream will contain MULTI (because moduleReplicateMultiIfNeeded used to check server.lua_caller which is NULL at this point) but not EXEC (because server.in_eval==1) This only affects modules as module.c the only user of server.in_eval. Affects versions 6.2.0, 6.2.1
Diffstat (limited to 'src/blocked.c')
0 files changed, 0 insertions, 0 deletions