diff options
author | antirez <antirez@gmail.com> | 2018-08-31 16:43:38 +0200 |
---|---|---|
committer | antirez <antirez@gmail.com> | 2018-09-04 12:53:53 +0200 |
commit | 42bce87a83d40c8dfb678ba4f37229b527a79ed7 (patch) | |
tree | 184048738c4ee32e9a43a9261be12da69299e6f5 | |
parent | 8bf42f603188ef10ff649a85323f1e29535ec667 (diff) | |
download | redis-42bce87a83d40c8dfb678ba4f37229b527a79ed7.tar.gz |
Test: processing of master stream in slave -BUSY state.
See #5297.
-rw-r--r-- | tests/integration/replication.tcl | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/tests/integration/replication.tcl b/tests/integration/replication.tcl index e811cf0ee..56d2de1cc 100644 --- a/tests/integration/replication.tcl +++ b/tests/integration/replication.tcl @@ -266,3 +266,47 @@ foreach dl {no yes} { } } } + +start_server {tags {"repl"}} { + set master [srv 0 client] + set master_host [srv 0 host] + set master_port [srv 0 port] + set load_handle0 [start_write_load $master_host $master_port 3] + start_server {} { + test "Master stream is correctly processed while the slave has a script in -BUSY state" { + set slave [srv 0 client] + puts [srv 0 port] + $slave config set lua-time-limit 500 + $slave slaveof $master_host $master_port + + # Wait for the slave to be online + wait_for_condition 500 100 { + [lindex [$slave role] 3] eq {connected} + } else { + fail "Slave still not connected after some time" + } + + # Wait some time to make sure the master is sending data + # to the slave. + after 5000 + + # Stop the ability of the slave to process data by sendig + # a script that will put it in BUSY state. + $slave eval {for i=1,3000000000 do end} 0 + + # Wait some time again so that more master stream will + # be processed. + after 2000 + + # Stop the write load + stop_write_load $load_handle0 + + # number of keys + wait_for_condition 500 100 { + [$master debug digest] eq [$slave debug digest] + } else { + fail "Different datasets between slave and master" + } + } + } +} |