Unverified Commit cd6b3d55 authored by yoav-steinberg's avatar yoav-steinberg Committed by GitHub
Browse files

Archive external redis log in external tests (#9765)

On test failure store the external redis server logs as CI artifacts so we can review them.

Write test name to server log for external server tests.
This is attempted and silently failed in case external server doesn't support it.
Note that in non-external server mode we use a more robust method of writing to the log which doesn't depend on the
server actually running/working. This isn't possible for externl servers and required for some complex tests which are
skipped in external mode anyway.

Cleanup: remove dup code.
parent f069d09e
...@@ -15,12 +15,18 @@ jobs: ...@@ -15,12 +15,18 @@ jobs:
- name: Build - name: Build
run: make REDIS_CFLAGS=-Werror run: make REDIS_CFLAGS=-Werror
- name: Start redis-server - name: Start redis-server
run: ./src/redis-server --daemonize yes run: ./src/redis-server --daemonize yes --logfile external-redis.log
- name: Run external test - name: Run external test
run: | run: |
./runtest \ ./runtest \
--host 127.0.0.1 --port 6379 \ --host 127.0.0.1 --port 6379 \
--tags -slow --tags -slow
- name: Archive redis log
if: ${{ failure() }}
uses: actions/upload-artifact@v2
with:
name: test-external-redis-log
path: external-redis.log
test-external-cluster: test-external-cluster:
runs-on: ubuntu-latest runs-on: ubuntu-latest
...@@ -30,7 +36,7 @@ jobs: ...@@ -30,7 +36,7 @@ jobs:
- name: Build - name: Build
run: make REDIS_CFLAGS=-Werror run: make REDIS_CFLAGS=-Werror
- name: Start redis-server - name: Start redis-server
run: ./src/redis-server --cluster-enabled yes --daemonize yes run: ./src/redis-server --cluster-enabled yes --daemonize yes --logfile external-redis.log
- name: Create a single node cluster - name: Create a single node cluster
run: ./src/redis-cli cluster addslots $(for slot in {0..16383}; do echo $slot; done); sleep 5 run: ./src/redis-cli cluster addslots $(for slot in {0..16383}; do echo $slot; done); sleep 5
- name: Run external test - name: Run external test
...@@ -39,4 +45,10 @@ jobs: ...@@ -39,4 +45,10 @@ jobs:
--host 127.0.0.1 --port 6379 \ --host 127.0.0.1 --port 6379 \
--cluster-mode \ --cluster-mode \
--tags -slow --tags -slow
- name: Archive redis log
if: ${{ failure() }}
uses: actions/upload-artifact@v2
with:
name: test-external-cluster-log
path: external-redis.log
...@@ -152,11 +152,17 @@ proc test {name code {okpattern undefined} {tags {}}} { ...@@ -152,11 +152,17 @@ proc test {name code {okpattern undefined} {tags {}}} {
set details {} set details {}
lappend details "$name in $::curfile" lappend details "$name in $::curfile"
# set a cur_test global to be logged into new servers that are spown # set a cur_test global to be logged into new servers that are spawn
# and log the test name in all existing servers # and log the test name in all existing servers
set prev_test $::cur_test set prev_test $::cur_test
set ::cur_test "$name in $::curfile" set ::cur_test "$name in $::curfile"
if {!$::external} { if {$::external} {
catch {
set r [redis [srv 0 host] [srv 0 port] 0 $::tls]
$r debug log "### Starting test $::cur_test"
$r close
}
} else {
foreach srv $::servers { foreach srv $::servers {
set stdout [dict get $srv stdout] set stdout [dict get $srv stdout]
set fd [open $stdout "a+"] set fd [open $stdout "a+"]
......
...@@ -699,14 +699,6 @@ proc generate_fuzzy_traffic_on_key {key duration} { ...@@ -699,14 +699,6 @@ proc generate_fuzzy_traffic_on_key {key duration} {
return $sent return $sent
} }
# write line to server log file
proc write_log_line {srv_idx msg} {
set logfile [srv $srv_idx stdout]
set fd [open $logfile "a+"]
puts $fd "### $msg"
close $fd
}
proc string2printable s { proc string2printable s {
set res {} set res {}
set has_special_chars false set has_special_chars false
......
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