Skip to content

Commit 1a136a3

Browse files
committed
Fix, added check to make sure the owner node knows the new node
Signed-off-by: Hanxi Zhang <hanxizh@amazon.com>
1 parent 5c9be0e commit 1a136a3

2 files changed

Lines changed: 11 additions & 14 deletions

File tree

tests/support/cluster_util.tcl

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -459,13 +459,12 @@ proc wait_for_slot_state {srv_idx pattern} {
459459
}
460460
}
461461

462-
# Check if server_a knows node_b_id
463-
proc server_knows_node {server_a node_b_id} {
464-
set nodes [get_cluster_nodes $server_a]
465-
foreach n $nodes {
466-
if {[dict get $n id] eq $node_b_id} {
467-
return 1
462+
# Returns the test index of a node given its node ID
463+
proc get_node_index_by_id {node_id} {
464+
for {set i 0} {$i < [llength $::servers]} {incr i} {
465+
if {[R $i CLUSTER MYID] eq $node_id} {
466+
return $i
468467
}
469468
}
470-
return 0
469+
return -1 ;# not found
471470
}

tests/unit/cluster/cli.tcl

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -295,15 +295,13 @@ test {Migrate the last slot away from a node using valkey-cli} {
295295
set owner_r [valkey $owner_host $owner_port 0 $::tls]
296296
set owner_id [$owner_r CLUSTER MYID]
297297

298-
# Wait until owner node knows the new node
298+
# get the index of the owner node
299+
set owner_index [get_node_index_by_id $owner_id]
300+
299301
wait_for_condition 1000 50 {
300-
set found 0
301-
foreach n [get_cluster_nodes $owner_id] {
302-
if {[dict get $n id] eq $newnode_id} { set found 1; break }
303-
}
304-
$found
302+
[cluster_get_node_by_id $owner_index $newnode_id] ne {}
305303
} else {
306-
fail "Owner node does not know the new node yet"
304+
fail "Owner node never learned the new node"
307305
}
308306

309307
# Move slot to new node using plain commands

0 commit comments

Comments
 (0)