summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Drop useless line from replicationCacheMaster().no-mo-firstantirez2020-05-271-2/+0
|
* Another meaningful offset test removed.antirez2020-05-271-100/+0
|
* Remove the PSYNC2 meaningful offset test.antirez2020-05-272-113/+0
|
* Remove the meaningful offset feature.antirez2020-05-274-93/+10
| | | | | | After a closer look, the Redis core devleopers all believe that this was too fragile, caused many bugs that we didn't expect and that were very hard to track. Better to find an alternative solution that is simpler.
* Set a protocol error if master use the inline protocol.antirez2020-05-271-2/+17
| | | | | | | | We want to react a bit more aggressively if we sense that the master is sending us some corrupted stream. By setting the protocol error we both ensure that the replica will disconnect, and avoid caching the master so that a full SYNC will be required. This is protective against replication bugs.
* Merge branch 'unstable' of github.com:/antirez/redis into unstableantirez2020-05-262-27/+49
|\
| * Merge pull request #7328 from oranagra/daily_tls_testSalvatore Sanfilippo2020-05-262-27/+49
| |\ | | | | | | avoid using sendfile if tls-replication is enabled
| | * daily CI test with tlsOran Agra2020-05-261-0/+15
| | |
| | * avoid using sendfile if tls-replication is enabledOran Agra2020-05-261-27/+34
| | | | | | | | | | | | | | | this obviously broke the tests, but went unnoticed so far since tls wasn't often tested.
* | | Replication: log backlog creation event.antirez2020-05-261-0/+3
|/ /
* | Test: PSYNC2 test can now show server logs.antirez2020-05-251-25/+88
| |
* | Clarify what is happening in PR #7320.antirez2020-05-251-1/+5
| |
* | Merge pull request #7320 from ↵Salvatore Sanfilippo2020-05-251-3/+3
|\ \ | |/ |/| | | | | soloestoy/second-replid-offset-should-be-meaningful-offset PSYNC2: second_replid_offset should be real meaningful offset
| * PSYNC2: second_replid_offset should be real meaningful offsetzhaozhao.zz2020-05-251-3/+3
|/ | | | | | | | | After adjustMeaningfulReplOffset(), all the other related variable should be updated, including server.second_replid_offset. Or the old version redis like 5.0 may receive wrong data from replication stream, cause redis 5.0 can sync with redis 6.0, but doesn't know meaningful offset.
* Merge pull request #7315 from oranagra/ci-32bitSalvatore Sanfilippo2020-05-242-0/+34
|\ | | | | add CI for 32bit build
| * add CI for 32bit buildOran Agra2020-05-242-0/+34
|/
* Make disconnectSlaves() synchronous in the base case.antirez2020-05-223-9/+20
| | | | | | | | | | | | | | | | | | | | | | | | | 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().
* Merge branch 'unstable' of github.com:/antirez/redis into unstableantirez2020-05-222-2/+55
|\
| * Merge pull request #7096 from ShooterIT/sendfileSalvatore Sanfilippo2020-05-222-2/+55
| |\ | | | | | | Implements sendfile for redis.
| | * Implements sendfile for redis.ShooterIT2020-04-142-2/+55
| | |
* | | Fix #7306 less aggressively.antirez2020-05-222-17/+29
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Merge pull request #7305 from madolson/unstable-connectionSalvatore Sanfilippo2020-05-221-0/+4
|\ \ | | | | | | EAGAIN not handled for TLS during diskless load
| * | EAGAIN for tls during diskless loadMadelyn Olson2020-05-211-0/+4
| | |
* | | Merge pull request #7306 from QuChen88/chained-replica-offsetSalvatore Sanfilippo2020-05-222-3/+60
|\ \ \ | | | | | | | | Disconnect chained replicas when the replica performs PSYNC with the master always to avoid replication offset mismatch between master and chained replicas
| * | | Disconnect chained replicas when the replica performs PSYNC with the master ↵Qu Chen2020-05-212-3/+60
|/ / / | | | | | | | | | always to avoid replication offset mismatch between master and chained replicas.
* | | Merge pull request #7304 from hwware/lcs_fixSalvatore Sanfilippo2020-05-221-2/+2
|\ \ \ | |/ / |/| | fix server crash for STRALGO command
| * | using moreargs variablehwware2020-05-211-2/+2
| | |
| * | fix server crash for STRALGO commandhwware2020-05-211-2/+2
|/ /
* | Merge pull request #7300 from ShooterIT/commentSalvatore Sanfilippo2020-05-211-2/+2
|\ \ | | | | | | Replace 'addDeferredMultiBulkLength' with 'addReplyDeferredLen' in comment
| * | Replace addDeferredMultiBulkLength with addReplyDeferredLen in commentShooterIT2020-05-211-2/+2
| | |
* | | Merge pull request #7288 from yossigo/tls-protocols-redis-conf-exampleSalvatore Sanfilippo2020-05-211-2/+3
|\ \ \ | | | | | | | | TLS: Improve tls-protocols clarity in redis.conf.
| * | | TLS: Improve tls-protocols clarity in redis.conf.Yossi Gottlieb2020-05-201-2/+3
| | | |
* | | | Merge pull request #7299 from ShooterIT/reply-bytesSalvatore Sanfilippo2020-05-211-1/+1
|\ \ \ \ | | | | | | | | | | Fix reply bytes calculation error on 32bit platform
| * | | | Fix reply bytes calculation errorShooterIT2020-05-211-1/+1
| | |/ / | |/| | | | | | | | | | Fix #7275.
* | | | Merge pull request #7296 from soloestoy/tracking-broken-redirSalvatore Sanfilippo2020-05-211-0/+1
|\ \ \ \ | |/ / / |/| | | Tracking: flag CLIENT_TRACKING_BROKEN_REDIR when redir broken
| * | | Tracking: flag CLIENT_TRACKING_BROKEN_REDIR when redir brokenzhaozhao.zz2020-05-211-0/+1
|/ / /
* | | Merge pull request #7289 from oranagra/defrag_edge_caseSalvatore Sanfilippo2020-05-205-30/+173
|\ \ \ | |/ / |/| | fix a rare active defrag edge case bug leading to stagnation
| * | fix a rare active defrag edge case bug leading to stagnationOran Agra2020-05-204-23/+146
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | improve DEBUG MALLCTL to be able to write to write only fields.Oran Agra2020-05-201-7/+27
|/ / | | | | | | | | also support: debug mallctl-str thread.tcache.flush VOID
* | Merge pull request #7276 from hujiecs/fix-clear-all-command-flag-in-aclSalvatore Sanfilippo2020-05-191-4/+5
|\ \ | | | | | | fix clear USER_FLAG_ALLCOMMANDS flag in acl
| * | fix clear USER_FLAG_ALLCOMMANDS flag in aclhujie2020-05-191-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | Merge pull request #7196 from ShooterIT/benchmarkSalvatore Sanfilippo2020-05-191-1/+12
|\ \ \ | | | | | | | | Redis Benchmark: make test data better
| * | | Redis Benchmark: generate random test dataShooterIT2020-05-181-1/+12
| | | | | | | | | | | | | | | | The function of generating random data is designed by antirez. See #7196.
* | | | Merge pull request #7279 from hwware/benchmark_leak_fixSalvatore Sanfilippo2020-05-191-1/+1
|\ \ \ \ | | | | | | | | | | Redis-Benchmark: avoid potentical memmory leaking
| * | | | Redis-Benchmark: avoid potentical memmory leakinghwware2020-05-181-1/+1
| | |/ / | |/| |
* | | | Merge pull request #7232 from trevor211/handleHashTagWhenComputingHashSlotSalvatore Sanfilippo2020-05-192-3/+30
|\ \ \ \ | |/ / / |/| | | Tcl client support hash tagged keys.
| * | | Handle keys with hash tag when computing hash slot using tcl cluster client.WuYunlong2020-05-111-2/+23
| | | |
| * | | Add a test to prove current tcl cluster client can not handle keys with hash ↵WuYunlong2020-05-111-1/+7
| | | | | | | | | | | | | | | | tag.
* | | | Merge pull request #7252 from ShooterIT/dictsizeSalvatore Sanfilippo2020-05-181-2/+2
|\ \ \ \ | | | | | | | | | | Use dictSize to get the size of dict in dict.c
| * | | | Use dictSize to get the size of dict in dict.cShooterIT2020-05-071-2/+2
| | | | |