redict/src
guybe7 e58118cda6
Fix edge-case when a module client is unblocked (#8618)
Scenario:
1. A module client is blocked on keys with a timeout
2. Shortly before the timeout expires, the key is being populated and signaled
   as ready
3. Redis calls moduleTryServeClientBlockedOnKey (which replies to client) and
   then moduleUnblockClient
4. moduleUnblockClient doesn't really unblock the client, it writes to
   server.module_blocked_pipe and only marks the BC as unblocked.
5. beforeSleep kics in, by this time the client still exists and techincally
   timed-out. beforeSleep replies to the timeout client (double reply) and
   only then moduleHandleBlockedClients is called, reading from module_blocked_pipe
   and calling unblockClient

The solution is similar to what was done in moduleTryServeClientBlockedOnKey: we
should avoid re-processing an already-unblocked client
2021-03-08 19:00:19 +02:00
..
modules More modules API ref formatting fixes (#8344) 2021-01-20 11:47:06 +02:00
.gitignore
acl.c Moved requirepass and querybuf length to generic configs (#8557) 2021-02-25 21:00:27 -08:00
adlist.c optimization src/adlist.c:listJoin() 2020-11-09 21:48:56 -08:00
adlist.h Speedup: unblock clients on keys in O(1). 2020-04-08 12:55:57 +02:00
ae_epoll.c Use FD_CLOEXEC in Sentinel, so that FDs don't leak to the scripts it runs (#8242) 2021-01-19 22:57:30 +02:00
ae_evport.c Use FD_CLOEXEC in Sentinel, so that FDs don't leak to the scripts it runs (#8242) 2021-01-19 22:57:30 +02:00
ae_kqueue.c Use FD_CLOEXEC in Sentinel, so that FDs don't leak to the scripts it runs (#8242) 2021-01-19 22:57:30 +02:00
ae_select.c Include 'fd_set' type name 2016-06-07 16:46:00 -04:00
ae.c Use FD_CLOEXEC in Sentinel, so that FDs don't leak to the scripts it runs (#8242) 2021-01-19 22:57:30 +02:00
ae.h Use H/W Monotonic clock and updates to AE (#7644) 2020-08-28 11:54:10 +03:00
anet.c Add hostname support in Sentinel. (#8282) 2021-01-28 12:09:11 +02:00
anet.h Add hostname support in Sentinel. (#8282) 2021-01-28 12:09:11 +02:00
aof.c Adds INFO fields to track fork child progress (#8414) 2021-02-16 16:06:51 +02:00
asciilogo.h string literal should be const char* 2020-03-07 19:38:27 +08:00
atomicvar.h Several (mostly Solaris-related) cleanups (#8171) 2020-12-13 17:09:54 +02:00
bio.c Cleanup key tracking documentation and table management (#8039) 2020-12-23 19:13:12 -08:00
bio.h Cleanup key tracking documentation and table management (#8039) 2020-12-23 19:13:12 -08:00
bitops.c Flow through the error handling path for most errors (#8226) 2020-12-23 19:06:25 -08:00
blocked.c Enabled background and reply time tracking on blocked on keys/blocked on background work clients (#7491) 2021-01-29 15:38:30 +02:00
childinfo.c solve valgrind warning in child_info (#8505) 2021-02-17 12:30:29 +02:00
cli_common.c Add --insecure option to command line tools. (#8416) 2021-02-07 12:36:56 +02:00
cli_common.h Add --insecure option to command line tools. (#8416) 2021-02-07 12:36:56 +02:00
cluster.c Make port, tls-port and bind configurations modifiable (#8510) 2021-03-01 16:04:44 +02:00
cluster.h Optimize performance of clusterGenNodesDescription for large clusters (#8182) 2021-01-13 12:36:03 -08:00
config.c Remove some dead code (#8605) 2021-03-05 09:54:34 -08:00
config.h Fix failed tests on Linux Alpine and add a CI job. (#8532) 2021-02-23 12:57:45 +02:00
connection.c fix: call CLIENT INFO from redis module will crash the server (#8560) 2021-03-01 08:18:14 +02:00
connection.h Add local address to CLIENT LIST, and a CLIENT KILL filter. (#7913) 2020-10-28 21:13:44 +02:00
connhelpers.h Conns: Fix connClose() / connAccept() behavior. 2020-03-22 14:42:03 +02:00
crc16_slottable.h Added basic support for clusters to redis-benchmark. 2019-03-01 17:53:14 +01:00
crc16.c RDMF (Redis/Disque merge friendlyness) refactoring WIP 1. 2015-07-26 15:17:18 +02:00
crc64.c Fix compile warning when define REDIS_TEST (#8261) 2021-01-09 19:52:42 +02:00
crc64.h Implemented CRC64 based on slice by 4 2020-04-24 17:00:03 -07:00
crcspeed.c Fix rdb checksum / crc64 on bigendian (#8270) 2021-01-05 09:15:10 +02:00
crcspeed.h Added crcspeed library 2020-04-24 17:11:21 -07:00
db.c Make dbid range check for SWAPDB command consistent with SELECT, MOVE, and COPY. (#8555) 2021-03-01 07:54:52 +02:00
debug.c Fix compliation on arm64 Mac with jemalloc (#8458) 2021-03-01 08:15:26 +02:00
debugmacro.h Fix some redundancy use of semicolon in do-while macros (#8221) 2020-12-21 22:57:45 -08:00
defrag.c Fix typo and some out of date comments (#8449) 2021-02-08 09:29:32 -08:00
dict.c dict: pause rehash, minor readability refactor (#8515) 2021-02-20 12:56:30 +02:00
dict.h dict: pause rehash, minor readability refactor (#8515) 2021-02-20 12:56:30 +02:00
endianconv.c Squash merging 125 typo/grammar/comment/doc PRs (#7773) 2020-09-10 13:43:38 +03:00
endianconv.h Fix typo 2018-07-03 18:19:46 +02:00
evict.c Fix typo and some out of date comments (#8449) 2021-02-08 09:29:32 -08:00
expire.c EXPIRE, EXPIREAT, SETEX, GETEX: Return error when expire time overflows (#8287) 2021-02-21 09:09:54 +02:00
fmacros.h Fix failed tests on Linux Alpine and add a CI job. (#8532) 2021-02-23 12:57:45 +02:00
geo.c GEOSEARCH bybox bug fixes and new fuzzy tester (#8445) 2021-02-04 18:08:35 +02:00
geo.h RDMF (Redis/Disque merge friendlyness) refactoring WIP 1. 2015-07-26 15:17:18 +02:00
geohash_helper.c GEOSEARCH bybox bug fixes and new fuzzy tester (#8445) 2021-02-04 18:08:35 +02:00
geohash_helper.h GEOSEARCH bybox bug fixes and new fuzzy tester (#8445) 2021-02-04 18:08:35 +02:00
geohash.c FIX: truncate max/min longitude,latitude related geo_point (ex: {180, 85.05112878} ) 2020-04-09 17:48:29 +08:00
geohash.h Add GEOSEARCH / GEOSEARCHSTORE commands (#8094) 2020-12-12 02:21:05 +02:00
gopher.c Gopher: don't add the Lastline. 2019-02-24 21:38:15 +01:00
help.h update help.h from redis.io commands.json (#8524) 2021-02-22 15:48:17 +02:00
hyperloglog.c Flow through the error handling path for most errors (#8226) 2020-12-23 19:06:25 -08:00
intset.c Fix compile warning when define REDIS_TEST (#8261) 2021-01-09 19:52:42 +02:00
intset.h Sanitize dump payload: validate no duplicate records in hash/zset/intset 2020-12-06 14:54:34 +02:00
latency.c HELP subcommand, continued (#5531) 2021-01-04 17:02:57 +02:00
latency.h Disable THP if enabled (#7381) 2020-10-27 15:04:18 +02:00
lazyfree.c Add lazyfree-lazy-user-flush config to control default behavior of FLUSH[ALL|DB], SCRIPT FLUSH (#8258) 2021-01-15 15:32:58 +02:00
listpack_malloc.h Optimize listpack for stream usage to avoid repeated reallocs (#6281) 2021-02-16 16:17:38 +02:00
listpack.c Optimize listpack for stream usage to avoid repeated reallocs (#6281) 2021-02-16 16:17:38 +02:00
listpack.h Optimize listpack for stream usage to avoid repeated reallocs (#6281) 2021-02-16 16:17:38 +02:00
localtime.c update leap year comment when div by 400 2018-09-18 17:04:00 +08:00
lolwut5.c Cleanup clang warnings. (#8546) 2021-02-24 10:10:02 +02:00
lolwut6.c LOLWUT 6: always pick a default color sequence. 2019-10-28 11:10:58 +01:00
lolwut.c Squash merging 125 typo/grammar/comment/doc PRs (#7773) 2020-09-10 13:43:38 +03:00
lolwut.h add include guard for lolwut.h 2020-05-05 23:35:08 -04:00
lzf_c.c Upgrade LZF to 3.6 (2011) from 3.5 (2009) 2015-01-02 11:16:10 -05:00
lzf_d.c Sanitize dump payload: fuzz tester and fixes for segfaults and leaks it exposed 2020-12-06 14:54:34 +02:00
lzf.h No more trailing spaces in Redis source code. 2014-06-26 18:48:40 +02:00
lzfP.h Squash merging 125 typo/grammar/comment/doc PRs (#7773) 2020-09-10 13:43:38 +03:00
Makefile Cleanup clang warnings. (#8546) 2021-02-24 10:10:02 +02:00
memtest.c Add support for Haiku OS (#7435) 2020-09-29 15:52:13 +03:00
mkreleasehdr.sh Update mkreleasehdr.sh 2019-11-19 17:23:47 +08:00
module.c Fix edge-case when a module client is unblocked (#8618) 2021-03-08 19:00:19 +02:00
monotonic.c Use H/W Monotonic clock and updates to AE (#7644) 2020-08-28 11:54:10 +03:00
monotonic.h Use H/W Monotonic clock and updates to AE (#7644) 2020-08-28 11:54:10 +03:00
mt19937-64.c Fix random element selection for large hash tables. (#8133) 2020-12-23 15:52:07 +02:00
mt19937-64.h Fix random element selection for large hash tables. (#8133) 2020-12-23 15:52:07 +02:00
multi.c Swapdb should make transaction fail if there is any client watching keys (#8239) 2021-01-04 14:48:28 +02:00
networking.c Fix allowed length for REPLCONF ip-address. (#8517) 2021-02-21 11:22:36 +02:00
notify.c Squash merging 125 typo/grammar/comment/doc PRs (#7773) 2020-09-10 13:43:38 +03:00
object.c Moved most static strings into the shared structure (#8411) 2021-02-09 11:52:28 -08:00
pqsort.c No more trailing spaces in Redis source code. 2014-06-26 18:48:40 +02:00
pqsort.h
pubsub.c Shared reusable client for RM_Call() (#8516) 2021-02-28 14:11:18 +02:00
quicklist.c Fix memory overlap in quicklistRotate (#8599) 2021-03-04 13:12:00 +02:00
quicklist.h Squash merging 125 typo/grammar/comment/doc PRs (#7773) 2020-09-10 13:43:38 +03:00
rand.c Use 'void' for zero-argument functions 2014-08-08 10:05:32 +02:00
rand.h
rax_malloc.h Cluster: hash slots tracking using a radix tree. 2017-03-27 16:37:22 +02:00
rax.c Fix compile warning when define REDIS_TEST (#8261) 2021-01-09 19:52:42 +02:00
rax.h Squash merging 125 typo/grammar/comment/doc PRs (#7773) 2020-09-10 13:43:38 +03:00
rdb.c Fix errors when loading RDB with missing modules. (#8579) 2021-03-02 09:39:37 +02:00
rdb.h Fix typo and some out of date comments (#8449) 2021-02-08 09:29:32 -08:00
redis-benchmark.c remove unused latency variable (#8597) 2021-03-05 09:29:52 -08:00
redis-check-aof.c Enlarge error buffer in redis-check-aof.c to remove compiler warning of output truncation through snprintf format string 2019-05-08 12:13:45 +01:00
redis-check-rdb.c Fix random element selection for large hash tables. (#8133) 2020-12-23 15:52:07 +02:00
redis-cli.c Wrong usage sdscatprintf in redis-cli. (#8604) 2021-03-08 12:57:27 +02:00
redis-trib.rb Redis-trib deprecated: it no longer works and it 2018-07-13 10:51:58 +02:00
redisassert.h Sanitize dump payload: performance optimizations and tuning 2020-12-06 14:54:34 +02:00
redismodule.h Fix RedisModule_IsAOFClient Redis Module API (#8596) 2021-03-04 13:02:23 +02:00
release.c Speedup INFO server section. 2019-10-02 11:30:20 +02:00
replication.c Fix allowed length for REPLCONF ip-address. (#8517) 2021-02-21 11:22:36 +02:00
rio.c more strict check in rioConnRead (#7564) 2020-07-24 14:40:19 +08:00
rio.h diskless replication rdb transfer uses pipe, and writes to sockets form the parent process. 2019-10-07 21:06:30 +03:00
scripting.c Use addReplyErrorObject with shared.noscripterr (#8544) 2021-02-24 08:45:13 -08:00
sds.c Fix integer overflow (CVE-2021-21309). (#8522) 2021-02-22 15:41:32 +02:00
sds.h Add proc-title-template option. (#8397) 2021-01-28 18:17:39 +02:00
sdsalloc.h Sanitize dump payload: fail RESTORE if memory allocation fails 2020-12-06 14:54:34 +02:00
sentinel.c Fix typo in sentinel.c (#8600) 2021-03-05 09:32:11 -08:00
server.c Cleanup: dictEncObjHash remove redundant conditional statement (#8488) 2021-03-07 18:09:12 +02:00
server.h Remove some dead code (#8605) 2021-03-05 09:54:34 -08:00
setcpuaffinity.c cpu affinity: DragonFlyBSD support (#7956) 2020-10-25 14:14:05 +02:00
setproctitle.c Fix failed tests on Linux Alpine and add a CI job. (#8532) 2021-02-23 12:57:45 +02:00
sha1.c sha1.c: use standard uint32_t. 2015-04-27 12:07:49 +02:00
sha1.h sha1.c: use standard uint32_t. 2015-04-27 12:07:49 +02:00
sha256.c ACL: add slightly modified version of sha256.c for password hashing. 2019-09-12 12:21:37 +02:00
sha256.h ACL: add slightly modified version of sha256.c for password hashing. 2019-09-12 12:21:37 +02:00
siphash.c Squash merging 125 typo/grammar/comment/doc PRs (#7773) 2020-09-10 13:43:38 +03:00
slowlog.c HELP subcommand, continued (#5531) 2021-01-04 17:02:57 +02:00
slowlog.h Added the missed macro definition in slowlog.h 2019-12-02 00:28:41 -05:00
solarisfixes.h Check for __sun macro in solarisfixes.h, not in includers. 2015-01-09 11:23:22 +01:00
sort.c sort Command lookupKeyRead and lookupKeyWrite are used on the opposite (#8283) 2021-01-04 10:28:47 +02:00
sparkline.c Squash merging 125 typo/grammar/comment/doc PRs (#7773) 2020-09-10 13:43:38 +03:00
sparkline.h LATENCY GRAPH implemented. 2014-07-02 16:31:22 +02:00
stream.h Add modules API for streams (#8288) 2021-01-28 16:19:43 +02:00
syncio.c syncWithMaster(): non blocking state machine. 2015-08-06 18:12:20 +02:00
t_hash.c SRANDMEMBER RESP3 return should be Array, not Set (#8504) 2021-02-22 15:00:59 +02:00
t_list.c Use stack for decoding integer-encoded values in list push 2021-02-16 13:01:14 +02:00
t_set.c SRANDMEMBER RESP3 return should be Array, not Set (#8504) 2021-02-22 15:00:59 +02:00
t_stream.c fix stream deep sanitization with deleted records (#8568) 2021-03-01 17:23:29 +02:00
t_string.c Improve overflow check of expire time (#8519) 2021-02-22 08:45:26 +02:00
t_zset.c SRANDMEMBER RESP3 return should be Array, not Set (#8504) 2021-02-22 15:00:59 +02:00
testhelp.h Fix some redundancy use of semicolon in do-while macros (#8221) 2020-12-21 22:57:45 -08:00
timeout.c Add missing calls to raxStop (#7532) 2020-07-21 08:13:05 +03:00
tls.c Improve SSL cleanup handling. (#8589) 2021-03-03 10:08:06 +02:00
tracking.c Client tracking tracking-redir-broken push len is 2 not 3 (#8456) 2021-02-21 09:34:46 +02:00
util.c Escape unsafe field name characters in INFO. (#8492) 2021-02-15 17:08:53 +02:00
util.h Escape unsafe field name characters in INFO. (#8492) 2021-02-15 17:08:53 +02:00
valgrind.sup Sanitize dump payload: fuzz tester and fixes for segfaults and leaks it exposed 2020-12-06 14:54:34 +02:00
version.h Add Module API for version and compatibility checks (#7865) 2020-10-11 17:21:58 +03:00
ziplist.c Add ziplistReplace, in-place optimized for elements of same size 2021-02-16 13:01:14 +02:00
ziplist.h Add ziplistReplace, in-place optimized for elements of same size 2021-02-16 13:01:14 +02:00
zipmap.c Sanitize dump payload: ziplist, listpack, zipmap, intset, stream 2020-12-06 14:54:34 +02:00
zipmap.h Sanitize dump payload: ziplist, listpack, zipmap, intset, stream 2020-12-06 14:54:34 +02:00
zmalloc.c Cleanup usage of malloc_usable_size. (#8554) 2021-02-25 09:24:41 +02:00
zmalloc.h Fix FreeBSD <12.x builds. (#8603) 2021-03-07 14:14:23 +02:00