Hi, I'm trying to build redis on alpine 3.16 but when running "make test" it fails with the following output:

[err]: CONFIG SET oom-score-adj works as expected in tests/unit/oom-score-adj.tcl
Expected [get_oom_score_adj] == [expr 1000 + 10] (context: type eval line 8 cmd {assert {[get_oom_score_adj] == [expr $base + 10]}} proc ::test)
[exception]: Executing test client: invalid argument.
invalid argument
    while executing
"close $fd"
    (procedure "set_oom_score_adj" line 7)
    invoked from within
"set_oom_score_adj $other_val2"
    ("uplevel" body line 9)
    invoked from within
"uplevel 1 $code"
    (procedure "test" line 51)
    invoked from within
"test {CONFIG SET oom-score-adj-values doesn't touch proc when disabled} {
            set orig_osa [get_oom_score_adj]

            set ot..."
    ("uplevel" body line 82)
    invoked from within
"uplevel 1 $code "
    (procedure "start_server" line 3)
    invoked from within
"start_server {tags {"oom-score-adj external:skip"}} {
        proc get_oom_score_adj {{pid ""}} {
            if {$pid == ""} {
                set pi..."
    (file "tests/unit/oom-score-adj.tcl" line 5)
    invoked from within
"source $path"
    (procedure "execute_test_file" line 4)
    invoked from within
"execute_test_file $data"
    (procedure "test_client_main" line 10)
    invoked from within
"test_client_main $::test_server_port "
Killing still running Redis server 1322
Killing still running Redis server 2822
Killing still running Redis server 2844
Killing still running Redis server 2897
Killing still running Redis server 3120
Killing still running Redis server 3152
Killing still running Redis server 3487
Killing still running Redis server 3541
Killing still running Redis server 3567
Killing still running Redis server 3596
Killing still running Redis server 3615
Killing still running Redis server 3632
Killing still running Redis server 3649
Killing still running Redis server 3666
Killing still running Redis server 3688
Killing still running Redis server 3706
Killing still running Redis server 3722
Killing still running Redis server 3986
Killing still running Redis server 4287
Killing still running Redis server 4663
Killing still running Redis server 4717
Killing still running Redis server 5398
Killing still running Redis server 5486
Killing still running Redis server 6467
Killing still running Redis server 6618
Killing still running Redis server 6653
Killing still running Redis server 6679
Killing still running Redis server 6718
Killing still running Redis server 6771
Killing still running Redis server 6814
Killing still running Redis server 6841
Killing still running Redis server 6856
Killing still running Redis server 6931
Killing still running Redis server 6983
Killing still running Redis server 7014
Killing still running Redis server 7105
Killing still running Redis server 7340
Killing still running Redis server 7492
Killing still running Redis server 7694
Killing still running Redis server 7757
Killing still running Redis server 7822
Killing still running Redis server 8042
Killing still running Redis server 8936
Killing still running Redis server 9024
Killing still running Redis server 9323
Killing still running Redis server 9598
Killing still running Redis server 9879
Killing still running Redis server 10020
Killing still running Redis server 10343
Killing still running Redis server 10427
Killing still running Redis server 10455
Killing still running Redis server 10503
Killing still running Redis server 11572
Killing still running Redis server 11779
Killing still running Redis server 11802
I/O error reading reply
    while executing
"{*}$r del $k"
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 [lindex $args $path]"
    (procedure "randpath" line 3)
    invoked from within
"randpath {
                {*}$r set $k $v
            } {
                {*}$r lpush $k $v
            } {
                {*}$r sadd $k $v
        ..."
    (procedure "createComplexDataset" line 36)
    invoked from within
"createComplexDataset $r $ops"
    (procedure "bg_complex_data" line 5)
    invoked from within
"bg_complex_data [lindex $argv 0] [lindex $argv 1] [lindex $argv 2] [lindex $argv 3] [lindex $argv 4]"
    (file "tests/helpers/bg_complex_data.tcl" line 13)
I/O error reading reply
    while executing
"{*}$r type $k"
    (procedure "findKeyWithType" line 7)
    invoked from within
"findKeyWithType {*}$r zset"
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 [lindex $args $path]"
    (procedure "randpath" line 3)
    invoked from within
"randpath {{*}$r zadd $k $d $v}  {{*}$r zrem $k $v}  {
                            set otherzset [findKeyWithType {*}$r zset]
                         ..."
    (procedure "createComplexDataset" line 74)
    invoked from within
"createComplexDataset $r $ops"
    (procedure "bg_complex_data" line 5)
    invoked from within
"bg_complex_data [lindex $argv 0] [lindex $argv 1] [lindex $argv 2] [lindex $argv 3] [lindex $argv 4]"
    (file "tests/helpers/bg_complex_data.tcl" line 13)
I/O error reading reply
    while executing
"{*}$r type $k"
    (procedure "createComplexDataset" line 33)
    invoked from within
"createComplexDataset $r $ops"
    (procedure "bg_complex_data" line 5)
    invoked from within
"bg_complex_data [lindex $argv 0] [lindex $argv 1] [lindex $argv 2] [lindex $argv 3] [lindex $argv 4]"
    (file "tests/helpers/bg_complex_data.tcl" line 13)
Killing still running Redis server 11861
Killing still running Redis server 11857
Killing still running Redis server 11892
Killing still running Redis server 11969
Killing still running Redis server 12040
Killing still running Redis server 12058
Killing still running Redis server 12500
Killing still running Redis server 12716
Killing still running Redis server 12748
Killing still running Redis server 12848
I/O error reading reply
    while executing
"$r set [expr rand()] [expr rand()]"
    (procedure "gen_write_load" line 7)
    invoked from within
"gen_write_load [lindex $argv 0] [lindex $argv 1] [lindex $argv 2] [lindex $argv 3]"
    (file "tests/helpers/gen_write_load.tcl" line 18)
Killing still running Redis server 12954
I/O error reading reply
    while executing
"{*}$r type $k"
    (procedure "findKeyWithType" line 7)
    invoked from within
"findKeyWithType {*}$r zset"
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 [lindex $args $path]"
    (procedure "randpath" line 3)
    invoked from within
"randpath {{*}$r zadd $k $d $v}  {{*}$r zrem $k $v}  {
                            set otherzset [findKeyWithType {*}$r zset]
                         ..."
    (procedure "createComplexDataset" line 74)
    invoked from within
"createComplexDataset $r $ops"
    (procedure "bg_complex_data" line 5)
    invoked from within
"bg_complex_data [lindex $argv 0] [lindex $argv 1] [lindex $argv 2] [lindex $argv 3] [lindex $argv 4]"
    (file "tests/helpers/bg_complex_data.tcl" line 13)
Killing still running Redis server 12998
I/O error reading reply
    while executing
"{*}$r type $k"
    (procedure "findKeyWithType" line 7)
    invoked from within
"findKeyWithType {*}$r zset"
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 [lindex $args $path]"
    (procedure "randpath" line 3)
    invoked from within
"randpath {{*}$r zadd $k $d $v}  {{*}$r zrem $k $v}  {
                            set otherzset [findKeyWithType {*}$r zset]
                         ..."
    (procedure "createComplexDataset" line 74)
    invoked from within
"createComplexDataset $r $ops"
    (procedure "bg_complex_data" line 5)
    invoked from within
"bg_complex_data [lindex $argv 0] [lindex $argv 1] [lindex $argv 2] [lindex $argv 3] [lindex $argv 4]"
    (file "tests/helpers/bg_complex_data.tcl" line 13)
Killing still running Redis server 13117
I/O error reading reply
    while executing
"{*}$r zadd $k $d $v"
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 [lindex $args $path]"
    (procedure "randpath" line 3)
    invoked from within
"randpath {
                {*}$r set $k $v
            } {
                {*}$r lpush $k $v
            } {
                {*}$r sadd $k $v
        ..."
    (procedure "createComplexDataset" line 36)
    invoked from within
"createComplexDataset $r $ops"
    (procedure "bg_complex_data" line 5)
    invoked from within
"bg_complex_data [lindex $argv 0] [lindex $argv 1] [lindex $argv 2] [lindex $argv 3] [lindex $argv 4]"
    (file "tests/helpers/bg_complex_data.tcl" line 13)
make[2]: *** [Makefile:447: test] Error 1

To build redis before testing I ran: make distclean && make V=1 MALLOC=libc && make test

Comment From: sundb

@nadavtsa What version are you using? From the logs, I guess you should be using 7.x. Are you running in docker or on mac M1? Do you fail every time or just this once?

Comment From: oranagra

For the record, we do run our daily tests on alpine (alpine:latest image): https://github.com/redis/redis/actions/runs/3690431795/jobs/6247418673

As far as i can tell, this specific failure looks more like a TCL issue (not a redis issue)

Comment From: nadavtsa

@sundb I'm using redis 7.0.5 and running in docker. I actually solved this issue by setting the oom_score_adj of all processes to zero before building redis with the following loop:

for d in /proc/* ; do [[ -d "$d" && -f "$d"/oom_score_adj ]] && echo "0" > "$d"/oom_score_adj ; done

It seems that for some reason, before building Redis, the oom_score_adj of some processes was already set close enough to 1000 and when the oom test ran the commands:

r config set oom-score-adj-values "10 20 30"
r config set oom-score-adj yes

The OOM Killer was called and killed the process.