mirror of https://github.com/redis/redis.git
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 |
||
|---|---|---|
| .. | ||
| auth.tcl | ||
| blockedclient.tcl | ||
| blockonbackground.tcl | ||
| blockonkeys.tcl | ||
| commandfilter.tcl | ||
| datatype.tcl | ||
| defrag.tcl | ||
| fork.tcl | ||
| getkeys.tcl | ||
| hash.tcl | ||
| hooks.tcl | ||
| infotest.tcl | ||
| keyspace_events.tcl | ||
| misc.tcl | ||
| propagate.tcl | ||
| scan.tcl | ||
| stream.tcl | ||
| test_lazyfree.tcl | ||
| testrdb.tcl | ||
| timer.tcl | ||
| zset.tcl | ||