- 03 May, 2021 14 commits
-
-
filipe oliveira authored
- Immediately exit on errors that are not related to topology updates. - Deprecates the `-e` option ( retro compatible ) and warns that we now exit immediately on errors that are not related to topology updates. - Fixed wrongfully failing on config fetch error (warning only). This only affects RE. Bottom line: - MOVED and ASK errors will not show any warning (unlike the throttled error with `-e` before). - CLUSTERDOWN still prints an error unconditionally and sleeps for 1 second. - other errors are fatal. (cherry picked from commit ef6f9023)
-
yoav-steinberg authored
Specifically we had issues with NTP sync failure which was resolved here: https://github.com/vmactions/freebsd-vm/commit/457af7345642e154a79d219971a2d4a7c7fe2118 (cherry picked from commit 2e88b063)
-
Oran Agra authored
This solves an issue reported in #8712 in which a replica would bypass the client write pause check and cause an assertion due to executing a write command during failover. The fact is that we don't expect replicas to execute any command other than maybe REPLCONF and PING, etc. but matching against the ADMIN command flag is insufficient, so instead i just block keyspace access for now. (cherry picked from commit 46f4ebbe)
-
Yossi Gottlieb authored
(cherry picked from commit ebfbb091)
-
Yang Bodong authored
(cherry picked from commit 8423b77f)
-
Istemi Ekin Akkus authored
(cherry picked from commit af035c1e)
-
zyxwvu Shi authored
This prevents a case where NTP moves the system clock forward resulting in a false detection of a busy script. Signed-off-by:
zyxwvu Shi <i@shiyc.cn> (cherry picked from commit f61c37ce)
-
Wang Yuan authored
Modules event subscribers may get wrong things in notifyKeyspaceEvent callback, such as wrong number of keys, or be able to lookup this key. This commit changes the order to be like the one in evict.c. Cleanup: Since we know the key exists (it expires now), db*Delete is sure to return 1, so there's no need to check it's output (misleading). (cherry picked from commit 63acfe4b)
-
Madelyn Olson authored
Interior rax pointers were not being freed (cherry picked from commit c73b4ddf)
- 20 Apr, 2021 1 commit
-
-
Oran Agra authored
Release 6.2.2
-
- 19 Apr, 2021 8 commits
-
-
Oran Agra authored
-
Oran Agra authored
-
Viktor Söderqvist authored
-
Hanna Fadida authored
Adding a new type mask for key space notification, REDISMODULE_NOTIFY_MODULE, to enable unique notifications from commands on REDISMODULE_KEYTYPE_MODULE type keys (which is currently unsupported). Modules can subscribe to a module key keyspace notification by RM_SubscribeToKeyspaceEvents, and clients by notify-keyspace-events of redis.conf or via the CONFIG SET, with the characters 'd' or 'A' (REDISMODULE_NOTIFY_MODULE type mask is part of the '**A**ll' notation for key space notifications). Refactor: move some pubsub test infra from pubsub.tcl to util.tcl to be re-used by other tests.
-
guybe7 authored
Before this commit using RM_Call without "!" could cause the master to lazy-expire a key (delete it) but without replicating to replicas. This could cause the replica's memory usage to gradually grow and could also cause consistency issues if the master and replica have a clock diff. This bug was introduced in #8617 Added a test which demonstrates that scenario.
-
Harkrishn Patro authored
In the initial release of Redis 6.2 setting a user to only allow pubsub access to a specific channel, and doing ACL SAVE, resulted in an assertion when ACL LOAD was used. This was later changed by #8723 (not yet released), but still not properly resolved (now it errors instead of crash). The problem is that the server that generates an ACL file, doesn't know what would be the setting of the acl-pubsub-default config in the server that will load it. so ACL SAVE needs to always start with resetchannels directive. This should still be compatible with old acl files (from redis 6.0), and ones from earlier versions of 6.2 that didn't mess with channels. Co-authored-by:
Harkrishn Patro <harkrisp@amazon.com> Co-authored-by:
Oran Agra <oran@redislabs.com>
-
sundb authored
The tail size of c->reply is 16kb, but in the test only publish a few chars each time, due to a change in #8699, the obuf limit is now checked a new memory allocation is made, so this test would have sometimes failed to trigger a soft limit disconnection in time. The solution is to write bigger payloads to the output buffer, but still limit their rate (not more than 100k/s).
-
Wen Hui authored
When replica never successfully connect to master, server.repl_down_since will be initialized to 0, therefore, the info master_link_down_since_seconds was showing the current unix timestamp, which does not make much sense. This commit fixes the issue by showing master_link_down_since_seconds to -1. means the replica never connect to master before. This commit also resets this variable back to 0 when a replica is turned into a master, so that it'll behave the same if the master is later turned into a replica again. The implication of this change is that if some app is checking if the value is > 60 do something, like conclude the replica is stale, this could case harm (changing a big positive number with a small one).
-
- 18 Apr, 2021 3 commits
-
-
Yossi Gottlieb authored
Disables #8649 and subsequent attempts to stabilize the test.
-
Oran Agra authored
In github actions CI with valgrind, i saw that even the fast replica (one that wasn't paused), didn't get to complete the replication fast enough, and ended up getting disconnected by timeout. Additionally, due to a typo in uname, we didn't get to actually run the CPU efficiency part of the test.
-
Oran Agra authored
1. the `dump_logs` option would have printed only logs of servers that were spawn before the test proc started, and not ones that the test proc started inside it. 2. when a server proc catches an exception it should normally forward the exception upwards, specifically when it's an assertion that should be caught by a test proc above. however, in `durable` mode, we caught all exceptions printed them to stdout and let the code continue, this was wrong to do for assertions, which should have still been propagated to the test function. 3. don't bother to search for crash log to print if we printed the the entire log anyway 4. if no crash log was found, no need to print anything (i.e. the fact it wasn't found) 5. rename warnings_from_file to crashlog_from_file
-
- 16 Apr, 2021 1 commit
-
-
guybe7 authored
Fixes #8797
-
- 15 Apr, 2021 4 commits
-
-
Wen Hui authored
-
guybe7 authored
-
guybe7 authored
Starting redis 6.0 (part of the TLS feature), diskless master uses pipe from the fork child so that the parent is the one sending data to the replicas. This mechanism has an issue in which a hung replica will cause the master to wait for it to read the data sent to it forever, thus preventing the fork child from terminating and preventing the creations of any other forks. This PR adds a timeout mechanism, much like the ACK-based timeout, we disconnect replicas that aren't reading the RDB file fast enough.
-
Bonsai authored
-
- 14 Apr, 2021 2 commits
-
-
Bonsai authored
-
YaacovHazan authored
replace the hardcoded after 2000, with waiting for the sync and wait for condition
-
- 13 Apr, 2021 7 commits
-
-
Viktor Söderqvist authored
* Modules API docs: Link API function names to their definitions Occurrences of API functions are linked to their definition. A function index with links to all functions is added on the bottom of the page. Comment blocks in module.c starting with a markdown h2 heading are used as sections. A table of contents is generated from these headings. The functions names are changed from h2 to h3, since they are now rendered as sub-headings within each section. Existing sections in module.c are used with some minor changes. Some documentation text is added or sligtly modified. The markdown renderer will add IDs which may clash with our generated IDs. By prefixing section IDs with "section-" we make them different. Replace double dashes with a unicode long ndash
-
Huang Zhw authored
-
Viktor Söderqvist authored
In a code example, using RedisModule_FreeString instead of RedisModule_Free makes it behave correctly regardless of whether automatic memory is used or not.
-
Oran Agra authored
-
Wen Hui authored
-
Oran Agra authored
server.client_pause_end_time is uninitialized, or actually 0, at startup, which means this method would think the timeout was reached and go look for paused clients. This causes no harm since unpauseClients will not find any paused clients.
-