- 15 Jun, 2021 1 commit
-
-
yvette903 authored
Fix crash when using io-threads-do-reads and issuing CLIENT PAUSE and CLIENT UNPAUSE. This issue was introduced in redis 6.2 together with the FAILOVER command.
-
- 14 Jun, 2021 5 commits
-
-
Binbin authored
This was already the case before this commit, but it wasn't clear / intended in the code, now it does.
-
ZhaolongLi authored
Co-authored-by:
lizhaolong.lzl <lizhaolong.lzl@B-54MPMD6R-0221.local>
-
ZhaolongLi authored
Co-authored-by:
lizhaolong.lzl <lizhaolong.lzl@B-54MPMD6R-0221.local>
-
YaacovHazan authored
Today when we load the AOF on startup, the loadAppendOnlyFile checks if the file is openning for reading. This check is redundent (dead code) as we open the AOF file for writing at initServer, and the file will always be existing for the loadAppendOnlyFile. In this commit: - remove all the exit(1) from loadAppendOnlyFile, as it is the caller responsibility to decide what to do in case of failure. - move the opening of the AOF file for writing, to be after we loading it. - avoid return -ERR in DEBUG LOADAOF, when the AOF is existing but empty
-
fishsalter authored
-
- 13 Jun, 2021 3 commits
-
-
Binbin authored
SINTERSTORE would have deleted the dest key right away, even when later on it is bound to fail on an (WRONGTYPE) error. With this change it first picks up all the input keys, and only later delete the dest key if one is empty. Also add more tests for some commands. Mainly focus on - `wrong type error`: expand test case (base on sinter bug) in non-store variant add tests for store variant (although it exists in non-store variant, i think it would be better to have same tests) - the dstkey result when we meet `non-exist key (empty set)` in *store sdiff: - improve test case about wrong type error (the one we found in sinter, although it is safe in sdiff) - add test about using non-exist key (treat it like an empty set) sdiffstore: - according to sdiff test case, also add some tests about `wrong type error` and `non-exist key` - the different is that in sdiffstore, we will consider the `dstkey` result sunion/sunionstore add more tests (same as above) sinter/sinterstore also same as above ...
-
Binbin authored
Minor code cleanup.
-
ny0312 authored
The root cause is that one test (`5 keys in, 5 keys out`) is leaking a volatile key that can expire while another later test(`All TTL in commands are propagated as absolute timestamp in replication stream`) is running. Such leaked expiration injects an unexpected `DEL` command into the replication command during the later test, causing it to fail. The fixes are two fold: 1. Plug the leak in the first test. 2. Add FLUSHALL to the later test, to avoid future interference from other tests.
-
- 10 Jun, 2021 2 commits
-
-
ZhaolongLi authored
-
Binbin authored
This PR adds a spell checker CI action that will fail future PRs if they introduce typos and spelling mistakes. This spell checker is based on blacklist of common spelling mistakes, so it will not catch everything, but at least it is also unlikely to cause false positives. Besides that, the PR also fixes many spelling mistakes and types, not all are a result of the spell checker we use. Here's a summary of other changes: 1. Scanned the entire source code and fixes all sorts of typos and spelling mistakes (including missing or extra spaces). 2. Outdated function / variable / argument names in comments 3. Fix outdated keyspace masks error log when we check `config.notify-keyspace-events` in loadServerConfigFromString. 4. Trim the white space at the end of line in `module.c`. Check: https://github.com/redis/redis/pull/7751 5. Some outdated https link URLs. 6. Fix some outdated comment. Such as: - In README: about the rdb, we used to said create a `thread`, change to `process` - dbRandomKey function coment (about the dictGetRandomKey, change to dictGetFairRandomKey) - notifyKeyspaceEvent fucntion comment (add type arg) - Some others minor fix in comment (Most of them are incorrectly quoted by variable names) 7. Modified the error log so that users can easily distinguish between TCP and TLS in `changeBindAddr`
-
- 08 Jun, 2021 5 commits
-
-
Wang Yuan authored
When we allocate a client struct with 16k reply buffer, the allocator we may give us 20K, This commit makes use of that extra space. Additionally, it tries to store whatever it can from the reply into the static 'buf' before allocating a new node for the reply list.
-
Yang Bodong authored
It could be useful for debugging to know which client got disconnected.
-
guybe7 authored
sometimes you can be very deep in the call stack, without access to argv. once you're there you may want your reply/log to contain the command name.
-
ikeberlein authored
redis-cli is grep friendly for all commands but SUBSCRIBE/PSUBSCRIBE. it is unable to process output from these commands line by line piped to another program because of output buffering. to overcome this situation I propose to flush stdout each time when it is written with reply from these commands the same way it is already done for all other commands.
-
Huang Zhw authored
* clusterManagerAddSlots check argv_idx error. * clusterManagerLoadInfoFromNode remove unused param opts. * redis-cli node->ip may be an sds or a c string. Using %s to format is always right, %S may be wrong. * In clusterManagerFixOpenSlot clusterManagerBumpEpoch call is redundant, because it is already called in clusterManagerSetSlotOwner. * redis-cli cluster help add more commands in help messages.
-
- 07 Jun, 2021 4 commits
-
-
Fabian Eichinger authored
Till now GET and NX were mutually exclusive. This change make their combination mean a "Get or Set" command. If the key exists it returns the old value and avoids setting, and if it does't exist it returns nil and sets it to the new value (possibly with expiry time)
-
Huang Zhw authored
The decision to stop trimming due to LIMIT in XADD and XTRIM was after the limit was reached. i.e. the code was deleting **at least** that count of records (from the LIMIT argument's perspective, not the MAXLEN), instead of **up to** that count of records. see #9046
-
Jeremy Kun authored
-
ZhaolongLi authored
Co-authored-by:
lizhaolong.lzl <lizhaolong.lzl@B-54MPMD6R-0221.local>
-
- 06 Jun, 2021 2 commits
-
-
Huang Zhw authored
xtrimCommand call streamParseAddOrTrimArgsOrReply should use xadd==0. When the syntax is valid, it does not cause any bugs because the params of XADD is superset of XTRIM. Just XTRIM will not respond with error on invalid syntax. The syntax of XADD will also be accpeted by XTRIM.
-
Binbin authored
Also the bug that currently does not cause memory leaks. Because op->type = OBJ_ZSET, in zuiClearIterator, we will do nothing. Just a cleanup that zuiInitIterator and zuiClearIterator should appear in pairs.
-
- 04 Jun, 2021 1 commit
-
-
Wen Hui authored
-
- 03 Jun, 2021 1 commit
-
-
Wen Hui authored
-
- 02 Jun, 2021 2 commits
-
-
Huang Zhw authored
In clusterManagerCommandImport strcat was used to concat COPY and REPLACE, the space maybe not enough. If we use --cluster-replace but not --cluster-copy, the MIGRATE command contained COPY instead of REPLACE.
-
pgxiaolianzi authored
-
- 01 Jun, 2021 4 commits
-
-
zhaozhao.zz authored
-
zhaozhao.zz authored
-
zhaozhao.zz authored
-
Oran Agra authored
An integer overflow bug in Redis version 6.0 or newer can be exploited using the STRALGO LCS command to corrupt the heap and potentially result with remote code execution. This is a result of an incomplete fix by CVE-2021-29477.
-
- 30 May, 2021 3 commits
-
-
Binbin authored
Without this fix, FLUSHALL ASYNC would have freed these in a background thread, even if they didn't contain many elements (unlike how it works with other structures), which could be inefficient.
-
Wang Yuan authored
Make aof rewrite buffer memory size more accurate, before, there may be 20% deviation with its real memory usage. The implication are both lower memory usage, and also a more accurate INFO.
-
ny0312 authored
Till now, on replica full-sync we used to transfer absolute time for TTL, however when a command arrived (EXPIRE or EXPIREAT), we used to propagate it as is to replicas (possibly with relative time), but always translate it to EXPIREAT (absolute time) to AOF. This commit changes that and will always use absolute time for propagation. see discussion in #8433 Furthermore, we Introduce new commands: `EXPIRETIME/PEXPIRETIME` that allow extracting the absolute TTL time from a key.
-
- 26 May, 2021 1 commit
-
-
YaacovHazan authored
In diskless replication, we create a read pipe for the RDB, between the child and the parent. When we close this pipe (fd), the read handler also needs to be removed from the event loop (if it still registered). Otherwise, next time we will use the same fd, the registration will be fail (panic), because we will use EPOLL_CTL_MOD (the fd still register in the event loop), on fd that already removed from epoll_ctl
-
- 24 May, 2021 1 commit
-
-
Wen Hui authored
fix for recent breakage from #8958, did a mistake when updating the pr.
-
- 23 May, 2021 1 commit
-
-
Wen Hui authored
-
- 22 May, 2021 1 commit
-
-
wuYin authored
Already verified that start < len, so if end >= len, then start cannot be > len.
-
- 20 May, 2021 2 commits
-
-
Wang Yuan authored
In theory we should have used zmalloc_usable_size, but it may be slower, and now after #7875, there's no actual difference. So this change isn't making a dramatic change. Co-authored-by:
Oran Agra <oran@redislabs.com>
-
Wang Yuan authored
According jemalloc size classes, we may allocate much more memory than our setting of repl_backlog_size, but we don't make full use of it.
-
- 19 May, 2021 1 commit
-
-
Madelyn Olson authored
Redact commands that include sensitive data from slowlog and monitor
-