- 24 May, 2020 1 commit
-
-
Oran Agra authored
-
- 22 May, 2020 7 commits
-
-
antirez authored
Otherwise we run into that: Backtrace: src/redis-server 127.0.0.1:21322(logStackTrace+0x45)[0x479035] src/redis-server 127.0.0.1:21322(sigsegvHandler+0xb9)[0x4797f9] /lib/x86_64-linux-gnu/libpthread.so.0(+0x11390)[0x7fd373c5e390] src/redis-server 127.0.0.1:21322(_serverAssert+0x6a)[0x47660a] src/redis-server 127.0.0.1:21322(freeReplicationBacklog+0x42)[0x451282] src/redis-server 127.0.0.1:21322[0x4552d4] src/redis-server 127.0.0.1:21322[0x4c5593] src/redis-server 127.0.0.1:21322(aeProcessEvents+0x2e6)[0x42e786] src/redis-server 127.0.0.1:21322(aeMain+0x1d)[0x42eb0d] src/redis-server 127.0.0.1:21322(main+0x4c5)[0x42b145] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7fd3738a3830] src/redis-server 127.0.0.1:21322(_start+0x29)[0x42b409] Since we disconnect all the replicas and free the replication backlog in certain replication paths, and the code that will free the replication backlog expects that no replica is connected. However we still need to free the replicas asynchronously in certain cases, as documented in the top comment of disconnectSlaves().
-
antirez authored
-
antirez authored
Citing from the issue: btw I suggest we change this fix to something else: * We revert the fix. * We add a call that disconnects chained replicas in the place where we trim the replica (that is a master i this case) offset. This way we can avoid disconnections when there is no trimming of the backlog. Note that we now want to disconnect replicas asynchronously in disconnectSlaves(), because it's in general safer now that we can call it from freeClient(). Otherwise for instance the command: CLIENT KILL TYPE master May crash: clientCommand() starts running the linked of of clients, looking for clients to kill. However it finds the master, kills it calling freeClient(), but this in turn calls replicationCacheMaster() that may also call disconnectSlaves() now. So the linked list iterator of the clientCommand() will no longer be valid.
-
Salvatore Sanfilippo authored
Implements sendfile for redis.
-
Salvatore Sanfilippo authored
EAGAIN not handled for TLS during diskless load
-
Salvatore Sanfilippo authored
Disconnect chained replicas when the replica performs PSYNC with the master always to avoid replication offset mismatch between master and chained replicas
-
Qu Chen authored
Disconnect chained replicas when the replica performs PSYNC with the master always to avoid replication offset mismatch between master and chained replicas.
-
- 21 May, 2020 11 commits
-
-
Madelyn Olson authored
-
Salvatore Sanfilippo authored
fix server crash for STRALGO command
-
hwware authored
-
hwware authored
-
Salvatore Sanfilippo authored
Replace 'addDeferredMultiBulkLength' with 'addReplyDeferredLen' in comment
-
Salvatore Sanfilippo authored
TLS: Improve tls-protocols clarity in redis.conf.
-
Salvatore Sanfilippo authored
Fix reply bytes calculation error on 32bit platform
-
ShooterIT authored
-
ShooterIT authored
Fix #7275.
-
Salvatore Sanfilippo authored
Tracking: flag CLIENT_TRACKING_BROKEN_REDIR when redir broken
-
zhaozhao.zz authored
-
- 20 May, 2020 4 commits
-
-
Salvatore Sanfilippo authored
fix a rare active defrag edge case bug leading to stagnation
-
Oran Agra authored
There's a rare case which leads to stagnation in the defragger, causing it to keep scanning the keyspace and do nothing (not moving any allocation), this happens when all the allocator slabs of a certain bin have the same % utilization, but the slab from which new allocations are made have a lower utilization. this commit fixes it by removing the current slab from the overall average utilization of the bin, and also eliminate any precision loss in the utilization calculation and move the decision about the defrag to reside inside jemalloc. and also add a test that consistently reproduce this issue.
-
Yossi Gottlieb authored
-
Oran Agra authored
also support: debug mallctl-str thread.tcache.flush VOID
-
- 19 May, 2020 5 commits
-
-
Salvatore Sanfilippo authored
fix clear USER_FLAG_ALLCOMMANDS flag in acl
-
Salvatore Sanfilippo authored
Redis Benchmark: make test data better
-
Salvatore Sanfilippo authored
Redis-Benchmark: avoid potentical memmory leaking
-
Salvatore Sanfilippo authored
Tcl client support hash tagged keys.
-
hwware authored
-
- 18 May, 2020 7 commits
-
-
hujie authored
in ACLSetUserCommandBit, when the command bit overflows, no operation is performed, so no need clear the USER_FLAG_ALLCOMMANDS flag. in ACLSetUser, when adding subcommand, we don't need to call ACLGetCommandID ahead since subcommand may be empty.
-
ShooterIT authored
The function of generating random data is designed by antirez. See #7196.
-
Salvatore Sanfilippo authored
Use dictSize to get the size of dict in dict.c
-
Salvatore Sanfilippo authored
Converge hash validation for adding and removing
-
Salvatore Sanfilippo authored
Redis-cli 6.0.1 `--cluster-yes` doesn't work (fix #7246)
-
Salvatore Sanfilippo authored
fix valgrind test failure in replication test
-
- 17 May, 2020 4 commits
-
-
antirez authored
-
antirez authored
-
Salvatore Sanfilippo authored
add regression test for the race in #7205
-
- 16 May, 2020 1 commit
-
-
antirez authored
This was broken in 1a7cd2c0: 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).
-