Skip to content

Commit cc1dd90

Browse files
committed
acceptance: deflake test_demo_node_cmds
Previously the acceptance test `test_demo_node_cmds`, which attempts to shutdown and decommission some nodes using the `cockroach demo` CLI, would sometimes be flaky due to delays in propagating information via gossip. This change fixes these flakes by utilizing the virtual table `crdb_internal.kv_node_liveness` rather than the gossip-based `gossip_liveness` virtual table. Fixes: cockroachdb#76391 Release note: None
1 parent 3ef6592 commit cc1dd90

File tree

1 file changed

+26
-32
lines changed

1 file changed

+26
-32
lines changed

pkg/cli/interactive_tests/test_demo_node_cmds.tcl

Lines changed: 26 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -67,31 +67,26 @@ send "\\demo restart 3\r"
6767
eexpect "node 3 has been restarted"
6868
eexpect "defaultdb>"
6969

70-
# NB: this is flaky, sometimes n3 is still marked as draining due to
71-
# gossip propagation delays. See:
72-
# https://github.com/cockroachdb/cockroach/issues/76391
73-
# send "select node_id, draining, decommissioning, membership from crdb_internal.gossip_liveness ORDER BY node_id;\r"
74-
# eexpect "1 | false | false | active"
75-
# eexpect "2 | false | false | active"
76-
# eexpect "3 | false | false | active"
77-
# eexpect "4 | false | false | active"
78-
# eexpect "5 | false | false | active"
79-
# eexpect "defaultdb>"
80-
81-
# Try commissioning commands
70+
send "select node_id, draining, decommissioning, membership from crdb_internal.gossip_liveness ORDER BY node_id;\r"
71+
eexpect "1 | f | f | active"
72+
eexpect "2 | f | f | active"
73+
eexpect "3 | f | f | active"
74+
eexpect "4 | f | f | active"
75+
eexpect "5 | f | f | active"
76+
eexpect "defaultdb>"
77+
78+
# Try decommissioning commands
8279
send "\\demo decommission 4\r"
8380
eexpect "node 4 has been decommissioned"
8481
eexpect "defaultdb>"
8582

86-
# NB: skipping this out of an abundance of caution, see:
87-
# https://github.com/cockroachdb/cockroach/issues/76391
88-
# send "select node_id, draining, decommissioning, membership from crdb_internal.gossip_liveness ORDER BY node_id;\r"
89-
# eexpect "1 | false | false | active"
90-
# eexpect "2 | false | false | active"
91-
# eexpect "3 | false | false | active"
92-
# eexpect "4 | false | true | decommissioned"
93-
# eexpect "5 | false | false | active"
94-
# eexpect "defaultdb>"
83+
send "select node_id, draining, membership from crdb_internal.kv_node_liveness ORDER BY node_id;\r"
84+
eexpect "1 | f | active"
85+
eexpect "2 | f | active"
86+
eexpect "3 | f | active"
87+
eexpect "4 | f | decommissioned"
88+
eexpect "5 | f | active"
89+
eexpect "defaultdb>"
9590

9691
send "\\demo recommission 4\r"
9792
eexpect "can only recommission a decommissioning node"
@@ -128,17 +123,16 @@ eexpect "node 6 has been shutdown"
128123
set timeout 30
129124
eexpect "defaultdb>"
130125

131-
# By now the node should have stabilized in gossip which allows us to query the more detailed information there.
132-
# NB: skip this to avoid flakes, see:
133-
# https://github.com/cockroachdb/cockroach/issues/76391
134-
# send "select node_id, draining, decommissioning, membership from crdb_internal.gossip_liveness ORDER BY node_id;\r"
135-
# eexpect "1 | false | false | active"
136-
# eexpect "2 | false | false | active"
137-
# eexpect "3 | false | false | active"
138-
# eexpect "4 | false | true | decommissioned"
139-
# eexpect "5 | false | false | active"
140-
# eexpect "6 | true | false | active"
141-
# eexpect "defaultdb>"
126+
# NB: use kv_node_liveness to avoid flakes due to gossip delays.
127+
# See https://github.com/cockroachdb/cockroach/issues/76391
128+
send "select node_id, draining, membership from crdb_internal.kv_node_liveness ORDER BY node_id;\r"
129+
eexpect "1 | f | active"
130+
eexpect "2 | f | active"
131+
eexpect "3 | f | active"
132+
eexpect "4 | f | decommissioned"
133+
eexpect "5 | f | active"
134+
eexpect "6 | t | active"
135+
eexpect "defaultdb>"
142136

143137
send "\\q\r"
144138
eexpect eof

0 commit comments

Comments
 (0)