From 370ab4c4db9f5ec83d9ceb3edf9518ad322f31f3 Mon Sep 17 00:00:00 2001 From: Oran Agra Date: Thu, 1 Apr 2021 09:44:44 +0300 Subject: [PATCH] Solve sentinel test issue in TLS due to recent tests change. (#8728) 5629dbe71 added a change that configures the tcp (plaintext) port alongside the tls port, this causes the INFO command for tcp_port to return that instead of the tls port when running in tls, and that broke the sentinel tests that query it. the fix is to add a method that gets the right port from CONFIG instead of relying on the tcp_port info field. --- tests/instances.tcl | 8 ++++++++ tests/sentinel/tests/00-base.tcl | 4 ++-- tests/sentinel/tests/01-conf-update.tcl | 2 +- tests/sentinel/tests/02-slaves-reconf.tcl | 4 ++-- tests/sentinel/tests/05-manual.tcl | 2 +- 5 files changed, 14 insertions(+), 6 deletions(-) diff --git a/tests/instances.tcl b/tests/instances.tcl index ad605c316..1395efa0c 100644 --- a/tests/instances.tcl +++ b/tests/instances.tcl @@ -499,6 +499,14 @@ proc RI {n field} { get_info_field [R $n info] $field } +proc RPort {n} { + if {$::tls} { + return [lindex [R $n config get tls-port] 1] + } else { + return [lindex [R $n config get port] 1] + } +} + # Iterate over IDs of sentinel or redis instances. proc foreach_instance_id {instances idvar code} { upvar 1 $idvar id diff --git a/tests/sentinel/tests/00-base.tcl b/tests/sentinel/tests/00-base.tcl index 75baf9817..a1bbb2789 100644 --- a/tests/sentinel/tests/00-base.tcl +++ b/tests/sentinel/tests/00-base.tcl @@ -9,7 +9,7 @@ if {$::simulate_error} { } test "Basic failover works if the master is down" { - set old_port [RI $master_id tcp_port] + set old_port [RPort $master_id] set addr [S 0 SENTINEL GET-MASTER-ADDR-BY-NAME mymaster] assert {[lindex $addr 1] == $old_port} kill_instance redis $master_id @@ -53,7 +53,7 @@ test "ODOWN is not possible without N (quorum) Sentinels reports" { foreach_sentinel_id id { S $id SENTINEL SET mymaster quorum [expr $sentinels+1] } - set old_port [RI $master_id tcp_port] + set old_port [RPort $master_id] set addr [S 0 SENTINEL GET-MASTER-ADDR-BY-NAME mymaster] assert {[lindex $addr 1] == $old_port} kill_instance redis $master_id diff --git a/tests/sentinel/tests/01-conf-update.tcl b/tests/sentinel/tests/01-conf-update.tcl index d45b1b08e..5dca55601 100644 --- a/tests/sentinel/tests/01-conf-update.tcl +++ b/tests/sentinel/tests/01-conf-update.tcl @@ -3,7 +3,7 @@ source "../tests/includes/init-tests.tcl" test "We can failover with Sentinel 1 crashed" { - set old_port [RI $master_id tcp_port] + set old_port [RPort $master_id] set addr [S 0 SENTINEL GET-MASTER-ADDR-BY-NAME mymaster] assert {[lindex $addr 1] == $old_port} diff --git a/tests/sentinel/tests/02-slaves-reconf.tcl b/tests/sentinel/tests/02-slaves-reconf.tcl index 28964c968..9edf775ec 100644 --- a/tests/sentinel/tests/02-slaves-reconf.tcl +++ b/tests/sentinel/tests/02-slaves-reconf.tcl @@ -10,7 +10,7 @@ source "../tests/includes/init-tests.tcl" proc 02_test_slaves_replication {} { uplevel 1 { test "Check that slaves replicate from current master" { - set master_port [RI $master_id tcp_port] + set master_port [RPort $master_id] foreach_redis_id id { if {$id == $master_id} continue if {[instance_is_killed redis $id]} continue @@ -28,7 +28,7 @@ proc 02_test_slaves_replication {} { proc 02_crash_and_failover {} { uplevel 1 { test "Crash the master and force a failover" { - set old_port [RI $master_id tcp_port] + set old_port [RPort $master_id] set addr [S 0 SENTINEL GET-MASTER-ADDR-BY-NAME mymaster] assert {[lindex $addr 1] == $old_port} kill_instance redis $master_id diff --git a/tests/sentinel/tests/05-manual.tcl b/tests/sentinel/tests/05-manual.tcl index ed568aa03..c97a0e53c 100644 --- a/tests/sentinel/tests/05-manual.tcl +++ b/tests/sentinel/tests/05-manual.tcl @@ -3,7 +3,7 @@ source "../tests/includes/init-tests.tcl" test "Manual failover works" { - set old_port [RI $master_id tcp_port] + set old_port [RPort $master_id] set addr [S 0 SENTINEL GET-MASTER-ADDR-BY-NAME mymaster] assert {[lindex $addr 1] == $old_port} catch {S 0 SENTINEL FAILOVER mymaster} reply