From 5f0119ca91ad37d8b656d51bcfc46c600d177e8f Mon Sep 17 00:00:00 2001 From: sundb Date: Sat, 12 Feb 2022 02:15:52 +0800 Subject: Fix duplicate module options define (#10284) The bug is introduced by #9323. (released in 7.0 RC1) The define of `REDISMODULE_OPTIONS_HANDLE_IO_ERRORS` and `REDISMODULE_OPTION_NO_IMPLICIT_SIGNAL_MODIFIED` have the same value. This will result in skipping `signalModifiedKey()` after `RM_CloseKey()` if the module has set `REDISMODULE_OPTIONS_HANDLE_REPL_ASYNC_LOAD` option. The implication is missing WATCH and client side tracking invalidations. Other changes: - add `no-implicit-signal-modified` to the options in INFO modules Co-authored-by: Oran Agra --- src/redismodule.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/redismodule.h') diff --git a/src/redismodule.h b/src/redismodule.h index 3b125a4ec..aea64174e 100644 --- a/src/redismodule.h +++ b/src/redismodule.h @@ -236,14 +236,14 @@ typedef uint64_t RedisModuleTimerID; /* Declare that the module can handle errors with RedisModule_SetModuleOptions. */ #define REDISMODULE_OPTIONS_HANDLE_IO_ERRORS (1<<0) -/* Declare that the module can handle diskless async replication with RedisModule_SetModuleOptions. */ -#define REDISMODULE_OPTIONS_HANDLE_REPL_ASYNC_LOAD (1<<1) - /* When set, Redis will not call RedisModule_SignalModifiedKey(), implicitly in * RedisModule_CloseKey, and the module needs to do that when manually when keys * are modified from the user's sperspective, to invalidate WATCH. */ #define REDISMODULE_OPTION_NO_IMPLICIT_SIGNAL_MODIFIED (1<<1) +/* Declare that the module can handle diskless async replication with RedisModule_SetModuleOptions. */ +#define REDISMODULE_OPTIONS_HANDLE_REPL_ASYNC_LOAD (1<<2) + /* Definitions for RedisModule_SetCommandInfo. */ typedef enum { -- cgit v1.2.1