redict/tests/unit
Oran Agra 573246f73c
if diskless repl child is killed, make sure to reap the pid (#7742)
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 (5a47794).
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.
2020-09-06 16:43:57 +03:00
..
moduleapi test infra - reduce disk space usage 2020-09-06 09:59:19 +03:00
type Add test coverage for CLIENT UNBLOCK (#7712) 2020-08-27 08:09:39 +03:00
acl.tcl Fix command help for unexpected options (#7476) 2020-07-15 12:38:22 +03:00
aofrw.tcl AOF: run tests with preamble off when it makes sense. 2018-03-25 13:03:38 +02:00
auth.tcl ACL: AUTH + no default user password raises an error. 2019-01-17 18:30:23 +01:00
bitfield.tcl Fix BITFIELD_RO test. 2020-03-23 12:02:12 +01:00
bitops.tcl Regression test for #3282. 2016-06-15 11:49:49 +02:00
dump.tcl Test:Fix invalid cases in hash.tcl and dump.tcl (#4611) 2020-08-12 10:25:24 +08:00
expire.tcl AOF: append origin SET if no expire option 2020-06-03 17:55:18 +08:00
geo.tcl Revert "Geo: output 10 chars of geohash, not 11." 2019-12-18 12:54:46 +01:00
hyperloglog.tcl HyperLogLog: speedup fuzz test. 2019-03-15 17:13:19 +01:00
introspection-2.tcl fix #5024 - commandstats for multi-exec were logged as EXEC. 2018-09-30 12:43:11 +03:00
introspection.tcl TLS: Session caching configuration support. (#7420) 2020-07-10 11:33:47 +03:00
keyspace.tcl Test: MOVE expire test improved. 2015-09-14 12:35:55 +02:00
latency-monitor.tcl Fix command help for unexpected options (#7476) 2020-07-15 12:38:22 +03:00
lazyfree.tcl Test: basic lazyfree unit test. 2015-10-09 09:47:17 +02:00
limits.tcl TLS: Connections refactoring and TLS support. 2019-10-07 21:06:13 +03:00
maxmemory.tcl make replication tests more stable on slow machines 2019-05-05 08:25:01 +03:00
memefficiency.tcl Run active defrag while blocked / loading (#7726) 2020-09-03 08:47:29 +03:00
multi.tcl EXEC with only read commands should not be rejected when OOM (#7696) 2020-08-27 09:19:24 +03:00
obuf-limits.tcl Fix test false positive introduced by threaded I/O. 2019-05-13 17:27:10 +02:00
oom-score-adj.tcl if diskless repl child is killed, make sure to reap the pid (#7742) 2020-09-06 16:43:57 +03:00
other.tcl tests: each test client work on a distinct port range 2020-05-26 11:17:08 +03:00
pendingquerybuf.tcl Slave removal: remove slave from top-level tests descriptions. 2018-09-11 15:32:28 +02:00
printver.tcl Print version info before running the test 2011-05-20 11:44:54 +02:00
protocol.tcl TLS: Connections refactoring and TLS support. 2019-10-07 21:06:13 +03:00
pubsub.tcl pubsub: Return integers for NUMSUB, not strings 2014-08-08 11:19:37 +02:00
quit.tcl Add tests for OK on QUIT 2010-10-15 12:54:53 +02:00
scan.tcl Implement SCAN cursor [TYPE type] modifier suggested in issue #6107. 2019-05-22 16:39:04 +01:00
scripting.tcl XREAD and XREADGROUP should not be allowed from scripts when BLOCK option is being used 2020-03-26 15:46:31 +02:00
slowlog.tcl Test: fix slowlog test false positive. 2019-05-14 16:55:52 +02:00
sort.tcl Config: Add quicklist, remove old list options 2015-01-02 11:16:10 -05:00
tls.tcl Add optional tls verification (#7502) 2020-07-28 10:45:21 +03:00
tracking.tcl Regression test for #7249. 2020-05-14 11:27:31 +02:00
wait.tcl Tests: fix redis-cli with remote hosts. (#7693) 2020-08-23 10:17:43 +03:00