Fix flaky replication test

This commit is contained in:
Ozan Tezcan 2025-05-13 09:21:04 +03:00
parent 65e164caff
commit b6b85ace57
1 changed files with 10 additions and 15 deletions

View File

@ -248,9 +248,8 @@ start_server {tags {"repl external:skip"}} {
populate 10000 master 10000 ;# 10k keys of 10k, means 100mb
$replica config set loading-process-events-interval-bytes 262144 ;# process events every 256kb of rdb or command stream
# Start write traffic writing at most 5mbps
set load_handle [start_write_load $master_host $master_port 100 "key1" 10000 2]
# Start write traffic
set load_handle [start_write_load $master_host $master_port 100 "key1" 5000 4]
set prev_used [s 0 used_memory]
@ -296,15 +295,12 @@ start_server {tags {"repl external:skip"}} {
puts "peak_master_slave_buf_size $peak_master_slave_buf_size"
puts "peak_replica_buf_size $peak_replica_buf_size"
}
# Valgrind contribute to flakiness of this test
if {!$::valgrind} {
# memory on the master is less than 3mb (TODO: Fine tune thresholds)
assert_lessthan [expr $peak_master_used_mem - $prev_used - $backlog_size] 3000000
assert_lessthan $peak_master_rpl_buf [expr {$backlog_size + 1000000}]
assert_lessthan $peak_master_slave_buf_size 1000000
# buffers in the replica are more than 10mb
assert_morethan $peak_replica_buf_size 10000000
}
# memory on the master is less than 1mb
assert_lessthan [expr $peak_master_used_mem - $prev_used - $backlog_size] 1000000
assert_lessthan $peak_master_rpl_buf [expr {$backlog_size + 1000000}]
assert_lessthan $peak_master_slave_buf_size 1000000
# buffers in the replica are more than 5mb
assert_morethan $peak_replica_buf_size 5000000
stop_write_load $load_handle
}
@ -437,11 +433,10 @@ start_server {tags {"repl external:skip"}} {
fail "Replica did not start loading"
}
# Generate some traffic for backlog ~2mb
# Generate replication traffic of ~20mb to disconnect the slave on obuf limit
populate 20 master 1000000 -1
set res [wait_for_log_messages -1 {"*Client * closed * for overcoming of output buffer limits.*"} $loglines 1000 10]
set loglines [lindex $res 1]
wait_for_log_messages -1 {"*Client * closed * for overcoming of output buffer limits.*"} $loglines 1000 10
$replica config set key-load-delay 0
# Wait until replica loads RDB