Describe the bug One test fail

A short description of the bug. Testing solo test [err]: Active defrag in tests/unit/memefficiency.tcl Expected 38 <= 30 (context: type eval line 113 cmd {assert {$max_latency <= 30}} proc ::test)

To reproduce Try Make test on last version (wget https://download.redis.io/redis-stable.tar.gz) with tcl8.6

Expected behavior Pass

Additional information

Testing solo test [ignore]: Test LPUSH and LPOP on plain nodes over 4GB: large memory flag not provided [ignore]: Test LINDEX and LINSERT on plain nodes over 4GB: large memory flag not provided [ignore]: Test LTRIM on plain nodes over 4GB: large memory flag not provided [ignore]: Test LREM on plain nodes over 4GB: large memory flag not provided [ignore]: Test LSET on plain nodes over 4GB: large memory flag not provided [ignore]: Test LMOVE on plain nodes over 4GB: large memory flag not provided

Testing solo test [ignore]: SADD, SCARD, SISMEMBER - large data: large memory flag not provided

Testing solo test [ignore]: BIT pos larger than UINT_MAX: large memory flag not provided [ignore]: SETBIT values larger than UINT32_MAX and lzf_compress/lzf_decompress correctly: large memory flag not provided

Testing solo test [ignore]: XADD one huge field: large memory flag not provided [ignore]: XADD one huge field - 1: large memory flag not provided [ignore]: several XADD big fields: large memory flag not provided [ignore]: single XADD big fields: large memory flag not provided [ignore]: hash with many big fields: large memory flag not provided [ignore]: hash with one huge field: large memory flag not provided

Testing solo test [err]: Active defrag in tests/unit/memefficiency.tcl Expected 38 <= 30 (context: type eval line 113 cmd {assert {$max_latency <= 30}} proc ::test) [ok]: Active defrag eval scripts (11348 ms) [ok]: Active defrag big keys (74509 ms) [ok]: Active defrag big list (64162 ms) [ok]: Active defrag edge case (91244 ms)

               The End

Execution time of different units: 1 seconds - unit/info-command 1 seconds - unit/printver 2 seconds - unit/type/incr 4 seconds - unit/info 5 seconds - unit/auth 6 seconds - unit/keyspace 8 seconds - unit/protocol 1 seconds - unit/quit 11 seconds - unit/type/stream-cgroups 8 seconds - unit/multi 3 seconds - unit/acl-v2 11 seconds - unit/acl 20 seconds - unit/expire 31 seconds - unit/type/list 29 seconds - integration/block-repl 66 seconds - unit/aofrw 87 seconds - unit/type/hash 90 seconds - unit/scan 103 seconds - unit/type/string 103 seconds - unit/other 118 seconds - unit/type/set 77 seconds - integration/replication-3 128 seconds - unit/sort 132 seconds - unit/dump 48 seconds - integration/shutdown 22 seconds - integration/corrupt-dump-fuzzer 5 seconds - integration/convert-zipmap-hash-on-load 2 seconds - integration/convert-ziplist-hash-on-load 39 seconds - integration/aof-multi-part 3 seconds - integration/convert-ziplist-zset-on-load 4 seconds - integration/logging 137 seconds - integration/replication-2 25 seconds - integration/psync2-pingoff 27 seconds - integration/psync2-reg 65 seconds - integration/rdb 10 seconds - integration/failover 32 seconds - integration/psync2-master-restart 3 seconds - unit/pubsub 48 seconds - integration/psync2 10 seconds - integration/dismiss-mem 11 seconds - integration/redis-benchmark 3 seconds - unit/pubsubshard 3 seconds - unit/slowlog 86 seconds - integration/corrupt-dump 11 seconds - unit/functions 218 seconds - unit/type/list-3 2 seconds - unit/limits 131 seconds - integration/replication-buffer 7 seconds - unit/introspection-2 211 seconds - unit/latency-monitor 12 seconds - unit/bitfield 52 seconds - unit/introspection 50 seconds - unit/bitops 162 seconds - integration/aof 13 seconds - unit/lazyfree 5 seconds - unit/wait 3 seconds - unit/pause 1 seconds - unit/tls 4 seconds - unit/querybuf 5 seconds - unit/tracking 3 seconds - unit/oom-score-adj 3 seconds - unit/shutdown 8 seconds - unit/networking 86 seconds - unit/scripting 1 seconds - unit/violations 2 seconds - unit/replybufsize 3 seconds - unit/cluster-scripting 70 seconds - unit/memefficiency 6 seconds - unit/cluster/misc 6 seconds - unit/cluster/links 307 seconds - unit/type/list-2 128 seconds - integration/redis-cli 34 seconds - unit/cluster 317 seconds - unit/type/zset 237 seconds - integration/replication-psync 64 seconds - unit/pendingquerybuf 132 seconds - unit/obuf-limits 277 seconds - integration/replication-4 69 seconds - unit/client-eviction 365 seconds - unit/type/stream 169 seconds - unit/hyperloglog 306 seconds - unit/geo 559 seconds - integration/replication 377 seconds - unit/maxmemory 0 seconds - list-large-memory 1 seconds - set-large-memory 0 seconds - bitops-large-memory 2 seconds - violations 328 seconds - defrag

!!! WARNING The following tests failed:

*** [err]: Active defrag in tests/unit/memefficiency.tcl Expected 38 <= 30 (context: type eval line 113 cmd {assert {$max_latency <= 30}} proc ::test) Cleanup: may take some time... OK make[1]: *** [Makefile:427: test] Error 1 make[1]: Leaving directory '/down-redis/redis-stable/src' make: *** [Makefile:6: test] Error 2

Comment From: enjoy-binbin

@rnek0 thanks for the report, this is a timing issue, for now you can just ignore it. Can you tell us the os, the system architecture

@oranagra I often see this failure on my Daily. In most cases, it failed in test-ubuntu-32bit (the AOF loading one), with the range in (31, 40), not sure why. do you think we need to update the threshold?

Comment From: oranagra

well, it says:

                # due to high fragmentation, 100hz, and active-defrag-cycle-max set to 75,
                # we expect max latency to be not much higher than 7.5ms but due to rare slowness threshold is set higher

but considering the test machines are sometimes slow, and all sort of quirks could happen (which do not indicate a bug), and we've already set to 30, i suppose we can set it a little bit higher

Comment From: rnek0

This is a small vm :

Debian GNU/Linux 11 (bullseye)

cat /etc/debian_version
11.6

One proc
cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
1

One core
cat /proc/cpuinfo | grep proc | wc -l
1

lscpu | grep Architecture
Architecture: x86_64

I had connection problems after installing with make install, so I took the maintainer version as indicated here:

https://redis.io/docs/getting-started/installation/install-redis-on-linux/

After that everything seems to be working fine.
Indeed it's more an indication for your tests than a real bug, the compilation ended well.

thank you for your work