mirror of
http://github.com/valkey-io/valkey
synced 2024-11-23 03:33:28 +00:00
Fix EVAL timeout test failed on freebsd (#10098)
* Refactor EVAL timeout test * since the test used r config set appendonly yes which generates a rewrite, it missed it's purpose * Fix the bug that start_server returns before redis starts ready, which affects when multiple tests share the same dir. * Elapsed time tracking no loner needed Co-authored-by: Oran Agra <oran@redislabs.com>
This commit is contained in:
parent
495ac8b79a
commit
fa60049648
@ -478,26 +478,26 @@ tags {"aof external:skip"} {
|
||||
}
|
||||
|
||||
test {EVAL timeout with slow verbatim Lua script from AOF} {
|
||||
create_aof $aof_dirpath $aof_file {
|
||||
append_to_aof [formatCommand select 9]
|
||||
append_to_aof [formatCommand eval {redis.call('set',KEYS[1],'y'); for i=1,1500000 do redis.call('ping') end return 'ok'} 1 x]
|
||||
}
|
||||
|
||||
start_server [list overrides [list dir $server_path appendonly no lua-time-limit 1 aof-use-rdb-preamble no]] {
|
||||
start_server [list overrides [list dir $server_path appendonly yes lua-time-limit 1 aof-use-rdb-preamble no]] {
|
||||
# generate a long running script that is propagated to the AOF as script
|
||||
# make sure that the script times out during loading
|
||||
create_aof $aof_dirpath $aof_file {
|
||||
append_to_aof [formatCommand select 9]
|
||||
append_to_aof [formatCommand eval {redis.call('set',KEYS[1],'y'); for i=1,1500000 do redis.call('ping') end return 'ok'} 1 x]
|
||||
}
|
||||
set rd [redis_deferring_client]
|
||||
r config set appendonly yes
|
||||
set start [clock clicks -milliseconds]
|
||||
$rd debug loadaof
|
||||
$rd flush
|
||||
after 100
|
||||
wait_for_condition 100 10 {
|
||||
[s loading] == 1
|
||||
} else {
|
||||
fail "server didn't start loading"
|
||||
}
|
||||
catch {r ping} err
|
||||
assert_match {LOADING*} $err
|
||||
$rd read
|
||||
set elapsed [expr [clock clicks -milliseconds]-$start]
|
||||
if {$::verbose} { puts "loading took $elapsed milliseconds" }
|
||||
$rd close
|
||||
wait_for_log_messages 0 {"*Slow script detected*"} 0 100 100
|
||||
assert_equal [r get x] y
|
||||
}
|
||||
}
|
||||
|
@ -505,6 +505,10 @@ proc start_server {options {code undefined}} {
|
||||
close $fd
|
||||
}
|
||||
|
||||
# We may have a stdout left over from the previous tests, so we need
|
||||
# to get the current count of ready logs
|
||||
set previous_ready_count [count_message_lines $stdout "Ready to accept"]
|
||||
|
||||
# We need a loop here to retry with different ports.
|
||||
set server_started 0
|
||||
while {$server_started == 0} {
|
||||
@ -585,7 +589,7 @@ proc start_server {options {code undefined}} {
|
||||
|
||||
while 1 {
|
||||
# check that the server actually started and is ready for connections
|
||||
if {[count_message_lines $stdout "Ready to accept"] > 0} {
|
||||
if {[count_message_lines $stdout "Ready to accept"] > $previous_ready_count} {
|
||||
break
|
||||
}
|
||||
after 10
|
||||
|
Loading…
Reference in New Issue
Block a user