- 08 Sep, 2020 1 commit
-
-
bodong.ybd authored
1) cur_test: when restart_server, "no such variable" error occurs ./runtest --single integration/rdb test {client freed during loading} SET ::cur_test restart_server kill_server test "Check for memory leaks (pid $pid)" SET ::cur_test UNSET ::cur_test UNSET ::cur_test // This global variable has been unset. 2) `ps --ppid` not available on macOS platform, can be replaced with `pgrep -P pid`.
-
- 06 Sep, 2020 4 commits
-
-
Oran Agra authored
Starting redis 6.0 and the changes we made to the diskless master to be suitable for TLS, I made the master avoid reaping (wait3) the pid of the child until we know all replicas are done reading their rdb. I did that in order to avoid a state where the rdb_child_pid is -1 but we don't yet want to start another fork (still busy serving that data to replicas). It turns out that the solution used so far was problematic in case the fork child was being killed (e.g. by the kernel OOM killer), in that case there's a chance that we currently disabled the read event on the rdb pipe, since we're waiting for a replica to become writable again. and in that scenario the master would have never realized the child exited, and the replica will remain hung too. Note that there's no mechanism to detect a hung replica while it's in rdb transfer state. The solution here is to add another pipe which is used by the parent to tell the child it is safe to exit. this mean that when the child exits, for whatever reason, it is safe to reap it. Besides that, i'm re-introducing an adjustment to REPLCONF ACK which was part of #6271 (Accelerate diskless master connections) but was dropped when that PR was rebased after the TLS fork/pipe changes (5a477946). Now that RdbPipeCleanup no longer calls checkChildrenDone, and the ACK has chance to detect that the child exited, it should be the one to call it so that we don't have to wait for cron (server.hz) to do that.
-
Oran Agra authored
- redirect valgrind reports to a dedicated file rather than console - try to avoid killing instances with SIGKILL so that we get the memory leak report (killing with SIGTERM before resorting to SIGKILL) - search for valgrind reports when done, print them and fail the tests - add --dont-clean option to keep the logs on exit - fix exit error code when crash is found (would have exited with 0) changes that affect the normal redis test suite: - refactor check_valgrind_errors into two functions one to search and one to report - move the search half into util.tcl to serve the cluster tests too - ignore "address range perms" valgrind warnings which seem non relevant.
-
Oran Agra authored
reduce code duplication in aof.tcl. move creation of clients into the test so that it can be skipped
-
Oran Agra authored
-
- 03 Sep, 2020 1 commit
-
-
Oran Agra authored
During long running scripts or loading RDB/AOF, we may need to do some defragging. Since processEventsWhileBlocked is called periodically at unknown intervals, and many cron jobs either depend on run_with_period (including active defrag), or rely on being called at server.hz rate (i.e. active defrag knows ho much time to run by looking at server.hz), the whileBlockedCron may have to run a loop triggering the cron jobs in it (currently only active defrag) several times. Other changes: - Adding a test for defrag during aof loading. - Changing key-load-delay config to take negative values for fractions of a microsecond sleep
-
- 28 Jul, 2020 1 commit
-
-
Oran Agra authored
- the test now waits for specific set of log messages rather than wait for timeout looking for just one message. - we don't wanna sample the current length of the log after an action, due to a race, we need to start the search from the line number of the last message we where waiting for. - when attempting to trigger a full sync, use multi-exec to avoid a race where the replica manages to re-connect before we completed the set of actions that should force a full sync. - fix verify_log_message which was broken and unused
-
- 21 Jul, 2020 1 commit
-
-
Remi Collet authored
-
- 10 Jul, 2020 1 commit
-
-
Oran Agra authored
tests were sensitive to additional log lines appearing in the log causing the search to come empty handed. instead of just looking for the n last log lines, capture the log lines before performing the action, and then search from that offset.
-
- 27 May, 2020 1 commit
-
-
Oran Agra authored
i.e. don't start the search from scratch hitting the used ones again. this will also reduce the likelihood of collisions (if there are any left) by increasing the time until we re-use a port we did use in the past.
-
- 26 May, 2020 1 commit
-
-
Oran Agra authored
apparently when running tests in parallel (the default of --clients 16), there's a chance for two tests to use the same port. specifically, one test might shutdown a master and still have the replica up, and then another test will re-use the port number of master for another master, and then that replica will connect to the master of the other test. this can cause a master to count too many full syncs and fail a test if we run the tests with --single integration/psync2 --loop --stop see Probmem 2 in #7314
-
- 07 Oct, 2019 1 commit
-
-
Yossi Gottlieb authored
* Introduce a connection abstraction layer for all socket operations and integrate it across the code base. * Provide an optional TLS connections implementation based on OpenSSL. * Pull a newer version of hiredis with TLS support. * Tests, redis-cli updates for TLS support.
-
- 17 Jul, 2019 1 commit
-
-
Oran Agra authored
now that replica can read rdb directly from the socket, it should avoid exiting on short read and instead try to re-sync. this commit tries to have minimal effects on non-diskless rdb reading. and includes a test that tries to trigger this scenario on various read cases.
-
- 08 Jul, 2019 1 commit
-
-
Oran Agra authored
The implementation of the diskless replication was currently diskless only on the master side. The slave side was still storing the received rdb file to the disk before loading it back in and parsing it. This commit adds two modes to load rdb directly from socket: 1) when-empty 2) using "swapdb" the third mode of using diskless slave by flushdb is risky and currently not included. other changes: -------------- distinguish between aof configuration and state so that we can re-enable aof only when sync eventually succeeds (and not when exiting from readSyncBulkPayload after a failed attempt) also a CONFIG GET and INFO during rdb loading would have lied When loading rdb from the network, don't kill the server on short read (that can be a network error) Fix rdb check when performed on preamble AOF tests: run replication tests for diskless slave too make replication test a bit more aggressive Add test for diskless load swapdb
-
- 12 Nov, 2018 1 commit
-
-
Oran Agra authored
-
- 13 Jul, 2018 2 commits
- 05 Aug, 2015 1 commit
-
-
antirez authored
-
- 25 Aug, 2014 1 commit
-
-
Mariano Pérez Rodríguez authored
Uses ANSI "default background" color code after closing tests so any non-black terminals don't remain polluted. Fixes #1649 Closes #1912
-
- 10 Jul, 2014 1 commit
-
-
antirez authored
-
- 30 Jun, 2014 1 commit
-
-
antirez authored
The function will only return ports that have also port+10000 free, so that Redis Cluster instances can be executed at the returned port.
-
- 17 Feb, 2014 2 commits
- 25 Jun, 2013 1 commit
-
-
antirez authored
-
- 11 Jun, 2012 1 commit
-
-
antirez authored
A new stress test was added to stress test the code converting a ziplist into an hash table. In this commit also randomValue helper function was modified to also return negative values.
-
- 02 Jun, 2012 1 commit
-
-
antirez authored
wait_for_condition is now used instead of the usual "after 1000" (that is the way to sleep in Tcl). This should avoid to find the replica in a state where it is loading the RDB in memory, returning -LOADING error. This test used to fail when running the test over valgrind, due to the added latencies.
-
- 25 May, 2012 1 commit
-
- 22 May, 2012 1 commit
-
-
antirez authored
Due to a change in the format of the bug report in case of crash of failed assertion the test suite was no longer able to properly log it. Instead just a protocol error was logged by the Redis TCL client that provided no clue about the actual problem. This commit resolves the issue by logging everything from the first line of the log including the string REDIS BUG REPORT, till the end of the file.
-
- 16 Nov, 2011 1 commit
-
-
antirez authored
-
- 10 Dec, 2010 1 commit
-
-
Pieter Noordhuis authored
-
- 04 Nov, 2010 1 commit
-
-
antirez authored
-
- 03 Aug, 2010 1 commit
-
-
antirez authored
-
- 28 Jul, 2010 1 commit
-
-
antirez authored
better random dataset creation function in test. master-slave replication test now is able to save the two datasets in CSV when an inconsistency is detected.
-
- 27 Jul, 2010 1 commit
-
-
antirez authored
-
- 06 Jul, 2010 1 commit
-
-
antirez authored
-
- 19 May, 2010 1 commit
-
-
Pieter Noordhuis authored
-
- 15 May, 2010 1 commit
-
-
Pieter Noordhuis authored
print warnings in redis log when a test raises an exception (very likely to be caused by something like a failed assertion)
-
- 14 May, 2010 3 commits
-
-
Pieter Noordhuis authored
-
Pieter Noordhuis authored
-
antirez authored
-