Unverified Commit fa600496 authored by chenyang8094's avatar chenyang8094 Committed by GitHub
Browse files

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: default avatarOran Agra <oran@redislabs.com>
parent 495ac8b7
......@@ -478,26 +478,26 @@ tags {"aof external:skip"} {
}
test {EVAL timeout with slow verbatim Lua script from AOF} {
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]
}
start_server [list overrides [list dir $server_path appendonly no 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
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
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment