diff options
author | Oran Agra <oran@redislabs.com> | 2021-12-22 14:11:16 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-22 14:11:16 +0200 |
commit | 41e6e05deed42f5e9598ce9c9d4adb276c7ee22e (patch) | |
tree | 3669b373b54c307bf7a1532786252d715ec0c783 /src/commands/cluster-failover.json | |
parent | ad55fbaabb853d553b58ed951da1890590d3b835 (diff) | |
download | redis-41e6e05deed42f5e9598ce9c9d4adb276c7ee22e.tar.gz |
Allow most CONFIG SET during loading, block some commands in async-loading (#9878)
## background
Till now CONFIG SET was blocked during loading.
(In the not so distant past, GET was disallowed too)
We recently (not released yet) added an async-loading mode, see #9323,
and during that time it'll serve CONFIG SET and any other command.
And now we realized (#9770) that some configs, and commands are dangerous
during async-loading.
## changes
* Allow most CONFIG SET during loading (both on async-loading and normal loading)
* Allow CONFIG REWRITE and CONFIG RESETSTAT during loading
* Block a few config during loading (`appendonly`, `repl-diskless-load`, and `dir`)
* Block a few commands during loading (list below)
## the blocked commands:
* SAVE - obviously we don't wanna start a foregreound save during loading 8-)
* BGSAVE - we don't mind to schedule one, but we don't wanna fork now
* BGREWRITEAOF - we don't mind to schedule one, but we don't wanna fork now
* MODULE - we obviously don't wanna unload a module during replication / rdb loading
(MODULE HELP and MODULE LIST are not blocked)
* SYNC / PSYNC - we're in the middle of RDB loading from master, must not allow sync
requests now.
* REPLICAOF / SLAVEOF - we're in the middle of replicating, maybe it makes sense to let
the user abort it, but he couldn't do that so far, i don't wanna take any risk of bugs due to odd state.
* CLUSTER - only allow [HELP, SLOTS, NODES, INFO, MYID, LINKS, KEYSLOT, COUNTKEYSINSLOT,
GETKEYSINSLOT, RESET, REPLICAS, COUNT_FAILURE_REPORTS], for others, preserve the status quo
## other fixes
* processEventsWhileBlocked had an issue when being nested, this could happen with a busy script
during async loading (new), but also in a busy script during AOF loading (old). this lead to a crash in
the scenario described in #6988
Diffstat (limited to 'src/commands/cluster-failover.json')
-rw-r--r-- | src/commands/cluster-failover.json | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/commands/cluster-failover.json b/src/commands/cluster-failover.json index 366fc2f21..6dcb381ae 100644 --- a/src/commands/cluster-failover.json +++ b/src/commands/cluster-failover.json @@ -8,6 +8,7 @@ "container": "CLUSTER", "function": "clusterCommand", "command_flags": [ + "NO_ASYNC_LOADING", "ADMIN", "RANDOM", "STALE" |