- 27 Oct, 2020 2 commits
-
-
Madelyn Olson authored
-
Madelyn Olson authored
-
- 26 Oct, 2020 3 commits
-
-
Yossi Gottlieb authored
When using a system with no malloc_usable_size(), zmalloc_size() assumed that the heap allocator always returns blocks that are long-padded. This may not always be the case, and will result with zmalloc_size() returning a size that is bigger than allocated. At least in one case this leads to out of bound write, process crash and a potential security vulnerability. Effectively this does not affect the vast majority of users, who use jemalloc or glibc. This problem along with a (different) fix was reported by Drew DeVault.
-
Oran Agra authored
The tests sometimes fail to find a log message. Recently i added a print that shows the log files that are searched and it shows that the message was in deed there. The only reason i can't think of for this seach to fail, is we we happened to read an incomplete line, which didn't match our pattern and then on the next iteration we would continue reading from the line after it. The fix is to always re-evaluation the previous line.
-
filipe oliveira authored
- add test suite coverage for redis-benchmark - add --version (similar to what redis-cli has) - fix bug sending more requests than intended when pipeline > 1. - when done sending requests, avoid freeing client in the write handler, in theory before responses are received (probably dead code since the read handler will call clientDone first) Co-authored-by:
Oran Agra <oran@redislabs.com>
-
- 25 Oct, 2020 3 commits
-
-
Itamar Haber authored
Adds the `COMMAND` command to Sentinel.
-
David CARLIER authored
-
Zach Fewtrell authored
-
- 23 Oct, 2020 1 commit
-
-
WuYunlong authored
`info Persistence` will include correct (updated) rdb_last_bgsave_time_sec For diskless bgsave (sockets) too (like a few other persistence info fields). Refactor code to reduce duplicate code.
-
- 22 Oct, 2020 4 commits
-
-
Wen Hui authored
Previous code would have added default redis save parameters to the config file on rewrite, which would have been silently ignored when the config file is loaded. The new code avoids adding this, and also actively removes these lines If added by a previous config rewrite.
-
Qu Chen authored
This wrong behavior was backed by a test, and also documentation, and dates back to 2010. But it makes no sense to anyone involved so it was decided to change that. Note that 20eeddfb (invalidate watch on expire on access) was released in 6.0 RC2 and 2d1968f8 released in in 6.0.0 GA (invalidate watch when key is evicted). both of which do similar changes.
-
Oran Agra authored
-
Yossi Gottlieb authored
Useful for running tests on systems which may be way slower than usual.
-
- 20 Oct, 2020 2 commits
-
-
filipe oliveira authored
Fixed bug concerning redis-benchmark non clustered benchmark forcing always the same hash tag {tag} (#7931) Adding the ":{tag}" only if --cluster is used, so that when used against a proxy it generates traffic to all shards. Co-authored-by:
Oran Agra <oran@redislabs.com>
-
Oran Agra authored
-
- 19 Oct, 2020 2 commits
-
-
Wen Hui authored
minor fix for a bug which happen on error handling code and doesn't look like it could have caused any real harm (fd number wouldn't have been reused yet)
-
Wen Hui authored
This commit implements ACL for Sentinel mode, main work of this PR includes: - Update Sentinel command table in order to better support ACLs. - Fix couple of things which currently blocks the support for ACL on sentinel mode. - Provide "sentinel sentinel-user" and "sentinel sentinel-pass " configuration in order to let sentinel authenticate with a specific user in other sentinels. - requirepass is kept just for compatibility with old config files Co-authored-by:
Oran Agra <oran@redislabs.com>
-
- 18 Oct, 2020 5 commits
-
-
Oran Agra authored
In some cases one command added a very big bulk of memory, and this would be "resolved" by the eviction before the next command. Seeing an unexplained mass eviction we would wish to know the highest momentary usage too. Tracking it in call() and beforeSleep() adds some hooks in AOF and RDB loading. The fix in clientsCronTrackExpansiveClients is related to #7874
-
Yossi Gottlieb authored
-
Wen Hui authored
introduces a NOMKSTREAM option for xadd command, this would be useful for some use cases when we do not want to create new stream by default: XADD key [MAXLEN [~|=] <count>] [NOMKSTREAM] <ID or *> [field value] [field value]
-
Pierre Jambet authored
Reference the correct "case", case 4, in the comment explaining the need for case 3, when the number of request items is too close to the cardinality of the set. Case 4 is indeed the "natural approach" referenced earlier in that sentence.
-
Tommy Joe Lund authored
-
- 14 Oct, 2020 1 commit
-
-
Oran Agra authored
This is a compatibility issue with redis 5.0 that was introduced by ACL. Before this commit, setting requirepass to an empty string will result in a server that needs an empty AUTH, unlike redis 5.0 which would accept connections without an AUTH.
-
- 13 Oct, 2020 4 commits
-
-
guybe7 authored
If 'delta' is negative 'mem_freed' may underflow and cause the while loop to exit prematurely (And not evicting enough memory) mem_freed can be negative when: 1. We use lazy free (consuming memory by appending to a list) 2. Thread doing an allocation between the two calls to zmalloc_used_memory.
-
Hanif Ariffin authored
Only used by DEBUG and testing code. Signed-off-by:
Hanif Bin Ariffin <hanif.ariffin.4326@gmail.com>
-
WuYunlong authored
-
Wang Yuan authored
If we fail or stop to rewrite aof, we need to remove temporary aof. We also remove temporary rdb when replicas abort to receive rdb. But currently we delete them in main thread, to avoid blocking, we should use bg_unlink to remove them in a background thread. Btw, we have already used this way to removed child process temporary rdb.
-
- 12 Oct, 2020 1 commit
-
-
guybe7 authored
- Clarify some documentation comments - Make sure blocked-on-keys client privdata is accessible from withing the timeout callback - Handle blocked clients in beforeSleep - In case a key becomes "ready" outside of processCommand See #7879 #7880
-
- 11 Oct, 2020 8 commits
-
-
Andreas Lind authored
-
Yossi Gottlieb authored
This cleans up and simplifies the API by passing the command name as the first argument. Previously the command name was specified explicitly, but was still included in the argv.
-
Meir Shpilraien (Spielrein) authored
* Introduce a new API's: RM_GetContextFlagsAll, and RM_GetKeyspaceNotificationFlagsAll that will return the full flags mask of each feature. The module writer can check base on this value if the Flags he needs are supported or not. * For each flag, introduce a new value on redismodule.h, this value represents the LAST value and should be there as a reminder to update it when a new value is added, also it will be used in the code to calculate the full flags mask (assuming flags are incrementally increasing). In addition, stated that the module writer should not use the LAST flag directly and he should use the GetFlagAll API's. * Introduce a new API: RM_IsSubEventSupported, that returns for a given event and subevent, whether or not the subevent supported. * Introduce a new macro RMAPI_FUNC_SUPPORTED(func) that returns whether or not a function API is supported by comparing it to NULL. * Introduce a new API: int RM_GetServerVersion();, that will return the current Redis version in the format 0x00MMmmpp; e.g. 0x00060008; * Changed unstable version from 999.999.999 to 255.255.255 Co-authored-by:
Oran Agra <oran@redislabs.com> Co-authored-by:
Yossi Gottlieb <yossigo@gmail.com>
-
Yossi Gottlieb authored
This API function makes it possible to retrieve the X.509 certificate used by clients to authenticate TLS connections.
-
Yossi Gottlieb authored
The main motivation here is to provide a way for modules to create a single, global context that can be used for logging. Currently, it is possible to obtain a thread-safe context that is not attached to any blocked client by using `RM_GetThreadSafeContext`. However, the attached context is not linked to the module identity so log messages produced are not tagged with the module name. Ideally we'd fix this in `RM_GetThreadSafeContext` itself but as it doesn't accept the current context as an argument there's no way to do that in a backwards compatible manner.
-
Yossi Gottlieb authored
This is essentially the same as calling COMMAND GETKEYS but provides a more efficient interface that can be used in every context (i.e. not a Redis command).
-
Yossi Gottlieb authored
Avoid using a static buffer for short key index responses, and make it caller's responsibility to stack-allocate a result type. Responses that don't fit are still allocated on the heap.
-
Uri Shachar authored
This allows supplying secret configuration (for example - masterauth) via a secure channel instead of having it in a plaintext file / command line param, while still allowing for most of the configuration to reside there. Also, remove 'special' case handling for --check-rdb which hasn't been relevant since 4.0.0.
-
- 08 Oct, 2020 2 commits
-
-
Felipe Machado authored
Adding [B]LMOVE <src> <dst> RIGHT|LEFT RIGHT|LEFT. deprecating [B]RPOPLPUSH. Note that when receiving a BRPOPLPUSH we'll still propagate an RPOPLPUSH, but on BLMOVE RIGHT LEFT we'll propagate an LMOVE improvement to existing tests - Replace "after 1000" with "wait_for_condition" when wait for clients to block/unblock. - Add a pre-existing element to target list on basic tests so that we can check if the new element was added to the correct side of the list. - check command stats on the replica to make sure the right command was replicated Co-authored-by:
Oran Agra <oran@redislabs.com>
-
Madelyn Olson authored
-
- 07 Oct, 2020 1 commit
-
-
Oran Agra authored
- si_code can be very useful info some day. - a clear indication that redis was killed by an external user
-
- 06 Oct, 2020 1 commit
-
-
Oran Agra authored
I suppose that it was overlooked, since till recently none of the blocked commands were readonly. other changes: - add test for the above. - add better support for additional (and deferring) clients for cluster tests - improve a test which left the client in MULTI state.
-