From 63f77698cf3b48b8d3bc1cb18e35fd257bb30fe8 Mon Sep 17 00:00:00 2001 From: Moti Cohen Date: Mon, 28 Mar 2022 12:40:52 +0300 Subject: [PATCH] Fix sentinel test SDOWN is triggered by non-responding instance (#10484) A timing issue of debug sleep master isn't long enough to ensure that master is down and let the test identify it. Replaced the code with suspend PID until verified master-is-down. --- tests/sentinel/tests/07-down-conditions.tcl | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tests/sentinel/tests/07-down-conditions.tcl b/tests/sentinel/tests/07-down-conditions.tcl index e7e33a29a..bb24d6dff 100644 --- a/tests/sentinel/tests/07-down-conditions.tcl +++ b/tests/sentinel/tests/07-down-conditions.tcl @@ -24,7 +24,6 @@ proc ensure_master_up {} { } } - proc ensure_master_down {} { S $::alive_sentinel sentinel debug info-period 1000 S $::alive_sentinel sentinel debug ping-period 100 @@ -45,10 +44,14 @@ test "Crash the majority of Sentinels to prevent failovers for this unit" { } test "SDOWN is triggered by non-responding but not crashed instance" { - lassign [S $::alive_sentinel SENTINEL GET-MASTER-ADDR-BY-NAME mymaster] host port ensure_master_up - exec ../../../src/redis-cli -h $host -p $port {*}[rediscli_tls_config "../../../tests"] debug sleep 3 > /dev/null & + set master_addr [S $::alive_sentinel SENTINEL GET-MASTER-ADDR-BY-NAME mymaster] + set master_id [get_instance_id_by_port redis [lindex $master_addr 1]] + + set pid [get_instance_attrib redis $master_id pid] + exec kill -SIGSTOP $pid ensure_master_down + exec kill -SIGCONT $pid ensure_master_up }