summaryrefslogtreecommitdiff
path: root/src/commands/cluster-failover.json
diff options
context:
space:
mode:
authorOran Agra <oran@redislabs.com>2021-12-22 14:11:16 +0200
committerGitHub <noreply@github.com>2021-12-22 14:11:16 +0200
commit41e6e05deed42f5e9598ce9c9d4adb276c7ee22e (patch)
tree3669b373b54c307bf7a1532786252d715ec0c783 /src/commands/cluster-failover.json
parentad55fbaabb853d553b58ed951da1890590d3b835 (diff)
downloadredis-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.json1
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"