1
1
start_server {tags {" scan-consistency-on-failover external:skip" }} {
2
- proc full_scan_keys {c prefix} {
3
- set cur 0
4
- set out {}
5
- while {1} {
6
- # count 1 to make the ordering fully observable
7
- set res [$c scan $cur count 1]
8
- set cur [lindex $res 0]
9
- set keys [lindex $res 1]
10
- foreach k $keys {
11
- if {[string match " ${prefix} *" $k ]} {
12
- lappend out $k
13
- }
14
- }
15
- if {$cur eq " 0" } break
16
- }
17
- return $out
18
- }
19
2
20
3
set fixed_seed " 00112233445566778899aabbccddeeff"
21
4
set shared_overrides [list appendonly no save " " db-hash-seed $fixed_seed activedefrag no hz 1]
@@ -25,9 +8,6 @@ start_server {tags {"scan-consistency-on-failover external:skip"}} {
25
8
set primary_port [srv 0 port]
26
9
27
10
start_server [list overrides $shared_overrides ] {
28
- set replica_host [srv 0 host]
29
- set replica_port [srv 0 port]
30
-
31
11
set primary [srv -1 client]
32
12
set replica [srv 0 client]
33
13
@@ -46,26 +26,13 @@ start_server {tags {"scan-consistency-on-failover external:skip"}} {
46
26
fail " replica did not catch up dbsize (primary=[ $primary dbsize] , replica=[ $replica dbsize] )"
47
27
}
48
28
49
- wait_for_condition 200 50 {
50
- ![string match {Hash table 1 stats*} [$primary debug htstats 9]] &&
51
- ![string match {Hash table 1 stats*} [$replica debug htstats 9]] &&
52
- [dict get [$primary memory stats] db.dict.rehashing.count] == 0 &&
53
- [dict get [$replica memory stats] db.dict.rehashing.count] == 0
54
- } else {
55
- fail " hash tables still rehashing on primary/replica"
29
+ set cursor {{0} {}}
30
+ while {1} {
31
+ set cursor_next [$primary scan [lindex $cursor 0]]
32
+ assert_equal $cursor_next [$replica scan [lindex $cursor 0]]
33
+ if {[lindex $cursor_next 0] eq " 0" } break
34
+ set cursor $cursor_next
56
35
}
57
-
58
- set pseed [$primary config get db-hash-seed]
59
- set rseed [$replica config get db-hash-seed]
60
- assert_equal $pseed $rseed
61
-
62
- set pkeys [full_scan_keys $primary " k:" ]
63
- set rkeys [full_scan_keys $replica " k:" ]
64
-
65
- assert_equal [$primary dbsize] [llength $pkeys ]
66
- assert_equal [$replica dbsize] [llength $rkeys ]
67
- assert_equal [llength $pkeys ] [llength $rkeys ]
68
- assert_equal $pkeys $rkeys
69
36
}
70
37
}
71
38
}
0 commit comments