summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* Redis Benchmark: generate random test dataShooterIT2020-05-221-1/+12
| | | | The function of generating random data is designed by antirez. See #7196.
* Redis-Benchmark: avoid potentical memmory leakinghwware2020-05-221-1/+1
|
* Handle keys with hash tag when computing hash slot using tcl cluster client.WuYunlong2020-05-221-2/+23
|
* Add a test to prove current tcl cluster client can not handle keys with hash ↵WuYunlong2020-05-221-1/+7
| | | | tag.
* Use dictSize to get the size of dict in dict.cShooterIT2020-05-221-2/+2
|
* Converge hash validation for adding and removingMadelyn Olson2020-05-221-14/+21
|
* do not handle --cluster-yes for cluster fix modeBenjamin Sergeant2020-05-221-7/+16
|
* fix typo ...Benjamin Sergeant2020-05-221-1/+1
|
* Redis-cli 6.0.1 `--cluster-yes` doesn't work (fix #7246)Benjamin Sergeant2020-05-221-1/+5
| | | This make it so that all prompts for all redis-cli --cluster commands are automatically answered with a yes.
* fix valgrind test failure in replication testOran Agra2020-05-221-1/+1
| | | | | | in b4416280c i added more keys to that test to make it run longer but in valgrind this now means the test times out, give valgrind more time.
* add regression test for the race in #7205Oran Agra2020-05-221-0/+52
| | | | | | | with the original version of 6.0.0, this test detects an excessive full sync. with the fix in 1a7cd2c0e, this test detects memory corruption, especially when using libc allocator with or without valgrind.
* Improve the PSYNC2 test reliability.antirez2020-05-221-15/+33
|
* Redis 6.0.3.6.0.3antirez2020-05-162-1/+9
|
* Remove the client from CLOSE_ASAP list before caching the master.antirez2020-05-162-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was broken in 1a7cd2c: we identified a crash in the CI, what was happening before the fix should be like that: 1. The client gets in the async free list. 2. However freeClient() gets called again against the same client which is a master. 3. The client arrived in freeClient() with the CLOSE_ASAP flag set. 4. The master gets cached, but NOT removed from the CLOSE_ASAP linked list. 5. The master client that was cached was immediately removed since it was still in the list. 6. Redis accessed a freed cached master. This is how the crash looked like: === REDIS BUG REPORT START: Cut & paste starting from here === 1092:S 16 May 2020 11:44:09.731 # Redis 999.999.999 crashed by signal: 11 1092:S 16 May 2020 11:44:09.731 # Crashed running the instruction at: 0x447e18 1092:S 16 May 2020 11:44:09.731 # Accessing address: 0xffffffffffffffff 1092:S 16 May 2020 11:44:09.731 # Failed assertion: (:0) ------ STACK TRACE ------ EIP: src/redis-server 127.0.0.1:21300(readQueryFromClient+0x48)[0x447e18] And the 0xffff address access likely comes from accessing an SDS that is set to NULL (we go -1 offset to read the header).
* Redis 6.0.2.6.0.2antirez2020-05-152-1/+180
|
* TLS: Fix test failures on recent Debian/Ubuntu.Yossi Gottlieb2020-05-151-20/+0
| | | | | | Seems like on some systems choosing specific TLS v1/v1.1 versions no longer works as expected. Test is reduced for v1.2 now which is still good enough to test the mechansim, and matters most anyway.
* TLS: Add crypto locks for older OpenSSL support.Yossi Gottlieb2020-05-151-0/+45
| | | | | | | This is really required only for older OpenSSL versions. Also, at the moment Redis does not use OpenSSL from multiple threads so this will only be useful if modules end up doing that.
* NetBSD build update.David Carlier2020-05-153-1/+30
| | | | This platform supports CPU affinity (but not OpenBSD).
* Added a refcount on timer events to prevent deletion of recursive timer callsMadelyn Olson2020-05-152-0/+12
|
* Cache master without checking of deferred close flags.antirez2020-05-153-8/+11
| | | | | | | | | | | The context is issue #7205: since the introduction of threaded I/O we close clients asynchronously by default from readQueryFromClient(). So we should no longer prevent the caching of the master client, to later PSYNC incrementally, if such flags are set. However we also don't want the master client to be cached with such flags (would be closed immediately after being restored). And yet we want a way to understand if a master was closed because of a protocol error, and in that case prevent the caching.
* Track events processed while blocked globally.antirez2020-05-145-17/+32
| | | | Related to #7234.
* Some rework of #7234.antirez2020-05-144-65/+77
|
* fix redis 6.0 not freeing closed connections during loading.Oran Agra2020-05-143-58/+133
| | | | | | | | | | | | | | | | | This bug was introduced by a recent change in which readQueryFromClient is using freeClientAsync, and despite the fact that now freeClientsInAsyncFreeQueue is in beforeSleep, that's not enough since it's not called during loading in processEventsWhileBlocked. furthermore, afterSleep was called in that case but beforeSleep wasn't. This bug also caused slowness sine the level-triggered mode of epoll kept signaling these connections as readable causing us to keep doing connRead again and again for ll of these, which keep accumulating. now both before and after sleep are called, but not all of their actions are performed during loading, some are only reserved for the main loop. fixes issue #7215
* Regression test for #7249.antirez2020-05-141-0/+22
|
* rax.c updated from upstream antirez/rax.antirez2020-05-141-2/+4
|
* Tracking: send eviction messages when evicting entries.antirez2020-05-142-12/+29
| | | | A fix for #7249.
* fix unstable replication testOran Agra2020-05-141-2/+2
| | | | | | | | | | | | | | | this test which has coverage for varoius flows of diskless master was failing randomly from time to time. the failure was: [err]: diskless all replicas drop during rdb pipe in tests/integration/replication.tcl log message of '*Diskless rdb transfer, last replica dropped, killing fork child*' not found what seemed to have happened is that the master didn't detect that all replicas dropped by the time the replication ended, it thought that one replica is still connected. now the test takes a few seconds longer but it seems stable.
* Redis Benchmark: Fix coredump because of double freeShooterIT2020-05-091-1/+1
|
* Cluster: clarify we always resolve the sender.antirez2020-05-091-1/+3
|
* Cluster: refactor ping/data delay handling.antirez2020-05-091-11/+13
|
* Cluster: introduce data_received field.antirez2020-05-092-10/+27
| | | | | | | | | | | | | We want to send pings and pongs at specific intervals, since our packets also contain information about the configuration of the cluster and are used for gossip. However since our cluster bus is used in a mixed way for data (such as Pub/Sub or modules cluster messages) and metadata, sometimes a very busy channel may delay the reception of pong packets. So after discussing it in #7216, this commit introduces a new field that is not exposed in the cluster, is only an internal information about the last time we received any data from a given node: we use this field in order to avoid detecting failures, claiming data reception of new data from the node is a proof of liveness.
* stringmatchlen() should not expect null terminated strings.antirez2020-05-081-2/+2
|
* Remove unreachable branch.Brad Dunbar2020-05-081-2/+0
|
* add jemalloc-bg-thread config in redis confhwware2020-05-081-0/+3
|
* add include guard for lolwut.hhwware2020-05-081-0/+6
|
* Don't propagate spurious MULTI on DEBUG LOADAOF.antirez2020-05-082-3/+6
|
* Dump recent backlog on master query generating errors.antirez2020-05-081-0/+29
|
* make struct user anonymous (only typedefed)Titouan Christophe2020-05-081-1/+1
| | | | | | | | | | This works because this struct is never referenced by its name, but always by its type. This prevents a conflict with struct user from <sys/user.h> when compiling against uclibc. Signed-off-by: Titouan Christophe <titouan.christophe@railnova.eu>
* Test: --dont-clean should do first cleanup.antirez2020-05-081-5/+2
|
* Add --user argument to redis-benchmark.c (ACL)Benjamin Sergeant2020-05-081-2/+15
|
* Drop not needed part from #7194.antirez2020-05-081-1/+1
|
* Fix compiler warnings on function rev(unsigned long)Muhammad Zahalqa2020-05-081-3/+3
|
* Move CRC64 initialization in main().antirez2020-05-082-4/+1
|
* Fix CRC64 initialization outside the Redis server itself.antirez2020-05-081-0/+3
|
* Client Side Caching: Add Tracking Prefix Number Stats in Server Infohwware2020-05-083-0/+8
|
* Fix NetBSD build by fixing redis_set_thread_title() support.antirez2020-05-081-1/+4
| | | | See #7188.
* Rework a bit the documentation for CPU pinning.antirez2020-05-082-8/+18
|
* Support setcpuaffinity on linux/bsdzhenwei pi2020-05-0812-1/+180
| | | | | | | | | | | | | | | | | | | | | | | Currently, there are several types of threads/child processes of a redis server. Sometimes we need deeply optimise the performance of redis, so we would like to isolate threads/processes. There were some discussion about cpu affinity cases in the issue: https://github.com/antirez/redis/issues/2863 So implement cpu affinity setting by redis.conf in this patch, then we can config server_cpulist/bio_cpulist/aof_rewrite_cpulist/ bgsave_cpulist by cpu list. Examples of cpulist in redis.conf: server_cpulist 0-7:2 means cpu affinity 0,2,4,6 bio_cpulist 1,3 means cpu affinity 1,3 aof_rewrite_cpulist 8-11 means cpu affinity 8,9,10,11 bgsave_cpulist 1,10-11 means cpu affinity 1,10,11 Test on linux/freebsd, both work fine. Signed-off-by: zhenwei pi <pizhenwei@bytedance.com>
* XPENDING should not update consumer's seen-timeGuy Benoish2020-05-084-20/+33
| | | | | Same goes for XGROUP DELCONSUMER (But in this case, it doesn't have any visible effect)
* optimize memory usage of deferred replies - fixedOran Agra2020-05-081-0/+29
| | | | | | | | | | | | | | | | | | When deffered reply is added the previous reply node cannot be used so all the extra space we allocated in it is wasted. in case someone uses deffered replies in a loop, each time adding a small reply, each of these reply nodes (the small string reply) would have consumed a 16k block. now when we add anther diferred reply node, we trim the unused portion of the previous reply block. see #7123 cherry picked from commit fb732f7a944a4d4c90bb7375cb6030e88211f5aa with fix to handle a crash with LIBC allocator, which apparently can return the same pointer despite changing it's size. i.e. shrinking an allocation of 16k into 56 bytes without changing the pointer.