- 03 Mar, 2021 2 commits
-
-
yoav-steinberg authored
When no connected clients variables stopped being updated instead of being zeroed over time. The other changes are cleanup and optimization (avoiding an unnecessary division per client)
-
Wen Hui authored
-
- 02 Mar, 2021 2 commits
-
-
Yossi Gottlieb authored
Co-authored-by:
Oran Agra <oran@redislabs.com>
-
Yossi Gottlieb authored
Fixes #8574
-
- 01 Mar, 2021 6 commits
-
-
YaacovHazan authored
the tests were unable to connect to the server since the attempted to use normal tcp
-
Oran Agra authored
When sanitizing the stream listpack, we need to count the deleted records too. otherwise the last line that checks the next pointer fails. Add test to cover that state in the stream tests.
-
YaacovHazan authored
Add ability to modify port, tls-port and bind configurations by CONFIG SET command. To simplify the code and make it cleaner, a new structure added, socketFds, which contains the file descriptors array and its counter, and used for TCP, TLS and Cluster sockets file descriptors.
-
Bonsai authored
Because when the RM_Call is invoked. It will create a faker client. The point is client connection is NULL, so server will crash in connGetInfo Co-authored-by:
Viktor Söderqvist <viktor.soderqvist@est.tech>
-
David Gilman authored
The arm_thread_state64_get_pc used later in the file is defined in mach kernel headers. Apparently they get included if you use the system malloc but not if you use jemalloc.
-
Qu Chen authored
DB ID used to be parsed as a long for SWAPDB command, now make it into an int to be consistent with other commands that parses the DB ID argument like SELECT, MOVE, COPY. See #8085 The implication is that the error message when the provided db index is greater than 4M changes slightly.
-
- 28 Feb, 2021 3 commits
-
-
Pavlo Yatsukhnenko authored
This could happen on an invalid use, when trying to create a cluster with a single node and provide it's address 3 time to satisfy redis-cli requirements.
-
Bonsai authored
Adding RM_GetClientUserNameById to get the ACL user name of a client connection.
-
Viktor Söderqvist authored
A single client pointer is added in the server struct. This is initialized by the first RM_Call() and reused for every subsequent RM_Call() except if it's already in use, which means that it's not used for (recursive) module calls to modules. For these, a new "fake" client is created each time. Other changes: * Avoid allocating a dict iterator in pubsubUnsubscribeAllChannels when not needed
-
- 26 Feb, 2021 1 commit
-
-
Madelyn Olson authored
Moved additional configs to generic infrastructure.
-
- 25 Feb, 2021 2 commits
-
-
Wen Hui authored
After reconnect, the prompt was showing the db ID and multi state of the previous connection.
-
Yossi Gottlieb authored
* Add better control of malloc_usable_size() usage. * Use malloc_usable_size on alpine libc daily job. * Add no-malloc-usable-size daily jobs. * Fix zmalloc(0) when HAVE_MALLOC_SIZE is undefined. In order to align with the jemalloc behavior, this should never return NULL or OOM panic.
-
- 24 Feb, 2021 8 commits
-
-
Madelyn Olson authored
-
sundb authored
-
guybe7 authored
This aligns better with other commands, specifically XADD
-
guybe7 authored
Fix command arity. Other than key name it must at least take the trimming strategy and it's limit
-
Huang Zw authored
This commit fixes a bug in what's currently dead code in redis. In quicklistDelRange when delete entry from entry.offset to node tail, extent only need gte node->count - entry.offset, not node->count Co-authored-by:
Yoav Steinberg <yoav@redislabs.com>
-
Yossi Gottlieb authored
-
Yossi Gottlieb authored
-
Huang Zw authored
not ACL_DENIED_AUTH
-
- 23 Feb, 2021 3 commits
-
-
guybe7 authored
server may still be LOADING the RDB when receiving the ping
-
Yossi Gottlieb authored
Also adds a new daily CI test, relying on the fact that we don't use malloc_size() on alpine libmusl. Fixes #8531
-
Yossi Gottlieb authored
* Remove linux/version.h dependency. This introduces unnecessary dependencies, and generally not a good idea as the platform we build on may be different than the platform we run on. To determine if sync_file_range exists we can simply rely on header file hints. * Fix setproctitle() on libmusl. The previous ifdef checks were a bit too strict for no apparent reason. * Fix tests failure on Linux with no backtrace. * Add alpine daily CI job.
-
- 22 Feb, 2021 6 commits
-
-
Oran Agra authored
-
Yossi Gottlieb authored
On 32-bit systems, setting the proto-max-bulk-len config parameter to a high value may result with integer overflow and a subsequent heap overflow when parsing an input bulk (CVE-2021-21309). This fix has two parts: Set a reasonable limit to the config parameter. Add additional checks to prevent the problem in other potential but unknown code paths.
-
Harkrishn Patro authored
This validation was only done for sub-commands and not for commands. These would have been valid (not produce any error) ACL SETUSER bob +@all +client ACL SETUSER bob +client +client so no reason for this one to fail: ACL SETUSER bob +client +client|id One example why this is needed is that pfdebug wasn't part of the @hyperloglog group and now it is. so something like: acl setuser user1 +@hyperloglog +pfdebug|test would have succeeded in early 6.0.x, and fail in 6.2 RC3 Co-authored-by:
Harkrishn Patro <harkrisp@amazon.com> Co-authored-by:
Madelyn Olson <madelyneolson@gmail.com> Co-authored-by:
Oran Agra <oran@redislabs.com>
-
Huang Zw authored
If we set stream-node-max-bytes = 0, then we insert entry then delete, do this many times, the last stream node will be very big.
-
Wen Hui authored
SRANDMEMBER with negative count (non unique) can return the same member multiple times, and the order of elements in the returned collection matters. For these reasons returning a RESP3 Set type is not valid for the negative count, but also not really valid for the positive (unique) variant either (the command returns an array of random picks, not a set) This PR also contains a minor optimization for SRANDMEMBER, HRANDFIELD, and ZRANDMEMBER, to avoid the temporary dict from being rehashed while it grows. Co-authored-by:
Oran Agra <oran@redislabs.com>
-
sundb authored
When milliseconds == LLONG_MAX / 1000, *1000 will not overflow.
-
- 21 Feb, 2021 3 commits
-
-
Yossi Gottlieb authored
Originally this was limited to IPv6 address length, but effectively it has been used for host names and now that Sentinel accepts that as well we need to be able to store full hostnames. Fixes #8507
-
Huang Zw authored
When redis responds with tracking-redir-broken push message (RESP3), it was responding with a broken protocol: an array of 3 elements, but only pushes 2 elements. Some bugs in the test make this pass. Read the push reply will consume an extra reply, because the reply length is 3, but there are only two elements, so the next reply will be treated as third element. So the test is corrected too. Other changes: * checkPrefixCollisionsOrReply success should return 1 instead of -1, this bug didn't have any implications. * improve client tracking tests to validate more of the response it reads.
-
Gnanesh authored
Respond with error if expire time overflows from positive to negative of vice versa. * `SETEX`, `SET EX`, `GETEX` etc would have already error on negative value, but now they would also error on overflows (i.e. when the input was positive but after the manipulation it becomes negative, which would have passed before) * `EXPIRE` and `EXPIREAT` was ok taking negative values (would implicitly delete the key), we keep that, but we do error if the user provided a value that changes sign when manipulated (except the case of changing sign when `basetime` is added) Signed-off-by:
Gnanesh <gnaneshkunal@outlook.com> Co-authored-by:
Oran Agra <oran@redislabs.com>
-
- 20 Feb, 2021 1 commit
-
-
Jim Brunner authored
The `dict` field `iterators` is misleading and incorrect. This variable is used for 1 purpose - to pause rehashing. The current `iterators` field doesn't actually count "iterators". It counts "safe iterators". But - it doesn't actually count safe iterators either. For one, it's only incremented once the safe iterator begins to iterate, not when it's created. It's also incremented in `dictScan` to prevent rehashing (and commented to make it clear why `iterators` is being incremented during a scan). This update renames the field as `pauserehash` and creates 2 helper macros `dictPauseRehashing(d)` and `dictResumeRehashing(d)`
-
- 19 Feb, 2021 1 commit
-
-
sundb authored
fixes timing issue, fork didn't always get to set the oom score before the test verified it.
-
- 17 Feb, 2021 2 commits
-
-
Harkrishn Patro authored
Remove redundant pubsub list to store the patterns.
-
Oran Agra authored
Valgrind warns about `write` accessing uninitialized memory, which was the struct padding.
-