Commit de0919cd authored by Oran Agra's avatar Oran Agra
Browse files

Attempt to fix sporadic test failures due to wait_for_log_messages (#7955)

The tests sometimes fail to find a log message.
Recently i added a print that shows the log files that are searched
and it shows that the message was in deed there.
The only reason i can't think of for this seach to fail, is we we
happened to read an incomplete line, which didn't match our pattern and
then on the next iteration we would continue reading from the line after
it.

The fix is to always re-evaluation the previous line.

(cherry picked from commit 4e2e5be2)
parent 5aa0fef2
...@@ -128,6 +128,8 @@ proc wait_for_log_messages {srv_idx patterns from_line maxtries delay} { ...@@ -128,6 +128,8 @@ proc wait_for_log_messages {srv_idx patterns from_line maxtries delay} {
set next_line [expr $from_line + 1] ;# searching form the line after set next_line [expr $from_line + 1] ;# searching form the line after
set stdout [srv $srv_idx stdout] set stdout [srv $srv_idx stdout]
while {$retry} { while {$retry} {
# re-read the last line (unless it's before to our first), last time we read it, it might have been incomplete
set next_line [expr $next_line - 1 > $from_line + 1 ? $next_line - 1 : $from_line + 1]
set result [exec tail -n +$next_line < $stdout] set result [exec tail -n +$next_line < $stdout]
set result [split $result "\n"] set result [split $result "\n"]
foreach line $result { foreach line $result {
......
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