mirror of
https://github.com/fluencelabs/redis
synced 2025-04-01 15:21:03 +00:00
Cluster regression test for #3043.
The test works but is very slow so far, since it involves resharding 1/5 of all the cluster slots from master 0 to the other 4 masters and back into the original master.
This commit is contained in:
parent
4fdde78c72
commit
9c48f28e54
61
tests/cluster/tests/12-replica-migration-2.tcl
Normal file
61
tests/cluster/tests/12-replica-migration-2.tcl
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
# Replica migration test #2.
|
||||||
|
#
|
||||||
|
# Check that the status of master that can be targeted by replica migration
|
||||||
|
# is acquired again, after being getting slots again, in a cluster where the
|
||||||
|
# other masters have slaves.
|
||||||
|
|
||||||
|
source "../tests/includes/init-tests.tcl"
|
||||||
|
|
||||||
|
# Create a cluster with 5 master and 10 slaves, so that we have 2
|
||||||
|
# slaves for each master.
|
||||||
|
test "Create a 5 nodes cluster" {
|
||||||
|
create_cluster 5 10
|
||||||
|
}
|
||||||
|
|
||||||
|
test "Cluster is up" {
|
||||||
|
assert_cluster_state ok
|
||||||
|
}
|
||||||
|
|
||||||
|
test "Each master should have two replicas attached" {
|
||||||
|
foreach_redis_id id {
|
||||||
|
if {$id < 5} {
|
||||||
|
wait_for_condition 1000 50 {
|
||||||
|
[llength [lindex [R 0 role] 2]] == 2
|
||||||
|
} else {
|
||||||
|
fail "Master #$id does not have 2 slaves as expected"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
set master0_id [dict get [get_myself 0] id]
|
||||||
|
test "Resharding all the master #0 slots away from it" {
|
||||||
|
set output [exec \
|
||||||
|
../../../src/redis-trib.rb rebalance \
|
||||||
|
--weight ${master0_id}=0 \
|
||||||
|
127.0.0.1:[get_instance_attrib redis 0 port] >@ stdout]
|
||||||
|
}
|
||||||
|
|
||||||
|
test "Master #0 should lose its replicas" {
|
||||||
|
wait_for_condition 1000 50 {
|
||||||
|
[llength [lindex [R 0 role] 2]] == 0
|
||||||
|
} else {
|
||||||
|
fail "Master #0 still has replicas"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
test "Resharding all the master #0 slots back to it" {
|
||||||
|
set output [exec \
|
||||||
|
../../../src/redis-trib.rb rebalance \
|
||||||
|
--weight ${master0_id}=1 \
|
||||||
|
--use-empty-masters \
|
||||||
|
127.0.0.1:[get_instance_attrib redis 0 port]]
|
||||||
|
}
|
||||||
|
|
||||||
|
test "Master #0 should re-acquire one or more replicas" {
|
||||||
|
wait_for_condition 1000 50 {
|
||||||
|
[llength [lindex [R 0 role] 2]] >= 1
|
||||||
|
} else {
|
||||||
|
fail "Master #0 has no has replicas"
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user