Diff of the two buildlogs: -- --- b1/build.log 2025-10-24 18:24:42.421734062 +0000 +++ b2/build.log 2025-10-24 19:27:58.190690305 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Fri Oct 24 05:25:45 -12 2025 -I: pbuilder-time-stamp: 1761326745 +I: Current time: Fri Nov 27 14:47:44 +14 2026 +I: pbuilder-time-stamp: 1795740464 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration @@ -28,53 +28,85 @@ dpkg-source: info: applying 0004-Add-support-for-USE_SYSTEM_JEMALLOC-flag.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/2462283/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/3261370/tmp/hooks/D01_modify_environment starting +debug: Running on codethink03-arm64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Nov 27 00:47 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/3261370/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/3261370/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='arm64' - DEBIAN_FRONTEND='noninteractive' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="3" [2]="3" [3]="1" [4]="release" [5]="aarch64-unknown-linux-gnu") + BASH_VERSION='5.3.3(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=arm64 + DEBIAN_FRONTEND=noninteractive DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 ' - DISTRIBUTION='unstable' - HOME='/root' - HOST_ARCH='arm64' + DIRSTACK=() + DISTRIBUTION=unstable + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=aarch64 + HOST_ARCH=arm64 IFS=' ' - INVOCATION_ID='6ac4f1c6e11f424a8a1713cb71c87321' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='2462283' - PS1='# ' - PS2='> ' + INVOCATION_ID=7a9eeb2c740c4dbdac5da72a900cba29 + LANG=C + LANGUAGE=nl_BE:nl + LC_ALL=C + MACHTYPE=aarch64-unknown-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=3261370 PS4='+ ' - PWD='/' - SHELL='/bin/bash' - SHLVL='2' - SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.L7jYMgSO/pbuilderrc_jXuN --distribution unstable --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.L7jYMgSO/b1 --logfile b1/build.log valkey_8.1.4+dfsg1-1.dsc' - SUDO_GID='109' - SUDO_HOME='/var/lib/jenkins' - SUDO_UID='104' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://192.168.101.4:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.L7jYMgSO/pbuilderrc_GSwX --distribution unstable --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.L7jYMgSO/b2 --logfile b2/build.log valkey_8.1.4+dfsg1-1.dsc' + SUDO_GID=109 + SUDO_HOME=/var/lib/jenkins + SUDO_UID=104 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://192.168.101.4:3128 I: uname -a - Linux codethink04-arm64 6.12.48+deb13-cloud-arm64 #1 SMP Debian 6.12.48-1 (2025-09-20) aarch64 GNU/Linux + Linux i-capture-the-hostname 6.12.48+deb13-cloud-arm64 #1 SMP Debian 6.12.48-1 (2025-09-20) aarch64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Aug 10 12:30 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/2462283/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Aug 10 2025 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/3261370/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -196,7 +228,7 @@ Get: 58 http://deb.debian.org/debian unstable/main arm64 tcl8.6 arm64 8.6.17+dfsg-1 [121 kB] Get: 59 http://deb.debian.org/debian unstable/main arm64 tcl arm64 8.6.16 [4096 B] Get: 60 http://deb.debian.org/debian unstable/main arm64 tcl-tls arm64 1.8.0-2 [61.1 kB] -Fetched 21.9 MB in 0s (57.5 MB/s) +Fetched 21.9 MB in 0s (119 MB/s) Preconfiguring packages ... Selecting previously unselected package tzdata. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19962 files and directories currently installed.) @@ -398,8 +430,8 @@ Setting up tzdata (2025b-5) ... Current default time zone: 'Etc/UTC' -Local time is now: Fri Oct 24 17:25:58 UTC 2025. -Universal Time is now: Fri Oct 24 17:25:58 UTC 2025. +Local time is now: Fri Nov 27 00:48:01 UTC 2026. +Universal Time is now: Fri Nov 27 00:48:01 UTC 2026. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up libjemalloc-dev (5.3.0-3) ... @@ -461,7 +493,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/valkey-8.1.4+dfsg1/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../valkey_8.1.4+dfsg1-1_source.changes +I: user script /srv/workspace/pbuilder/3261370/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for unstable +I: user script /srv/workspace/pbuilder/3261370/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/valkey-8.1.4+dfsg1/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../valkey_8.1.4+dfsg1-1_source.changes dpkg-buildpackage: info: source package valkey dpkg-buildpackage: info: source version 8.1.4+dfsg1-1 dpkg-buildpackage: info: source distribution unstable @@ -565,59 +601,60 @@ (echo "-g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables" > .make-cflags) (echo "-flto=auto -ffat-lto-objects -Wl,-z,relro -Wl,-z,now -Wl,-no-as-needed -ldl -latomic -llzf" > .make-ldflags) MAKE hiredis -cd hiredis && make static USE_SSL=1 MAKE linenoise -cd linenoise && make +cd hiredis && make static USE_SSL=1 MAKE lua -MAKE hdr_histogram +cd linenoise && make cd lua/src && make all CFLAGS="-Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 " MYLDFLAGS="-flto=auto -ffat-lto-objects -Wl,-z,relro -Wl,-z,now -Wl,-no-as-needed -ldl -latomic -llzf" AR="ar rc" -make[5]: Entering directory '/build/reproducible-path/valkey-8.1.4+dfsg1/deps/hiredis' +MAKE hdr_histogram +MAKE fpconv cd hdr_histogram && make +cd fpconv && make +make[5]: Entering directory '/build/reproducible-path/valkey-8.1.4+dfsg1/deps/hiredis' make[5]: Entering directory '/build/reproducible-path/valkey-8.1.4+dfsg1/deps/linenoise' cc -Wall -Os -g -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -Wdate-time -D_FORTIFY_SOURCE=2 -c linenoise.c -MAKE fpconv -cd fpconv && make make[5]: Entering directory '/build/reproducible-path/valkey-8.1.4+dfsg1/deps/hdr_histogram' cc -std=c99 -Wall -Os -g -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -Wdate-time -D_FORTIFY_SOURCE=2 -DHDR_MALLOC_INCLUDE=\"hdr_redis_malloc.h\" -c hdr_histogram.c make[5]: Entering directory '/build/reproducible-path/valkey-8.1.4+dfsg1/deps/lua/src' cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lapi.o lapi.c -cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lcode.o lcode.c -cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o ldebug.o ldebug.c make[5]: Entering directory '/build/reproducible-path/valkey-8.1.4+dfsg1/deps/fpconv' cc -Wall -Os -g -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -Wdate-time -D_FORTIFY_SOURCE=2 -c fpconv_dtoa.c +cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lcode.o lcode.c +cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o ldebug.o ldebug.c cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o ldo.o ldo.c cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o ldump.o ldump.c -cc -std=c99 -c -O3 -fPIC -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -DHIREDIS_TEST_SSL -Wall -Wextra -Werror -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -g -ggdb -pedantic alloc.c cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lfunc.o lfunc.c cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lgc.o lgc.c cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o llex.o llex.c +cc -std=c99 -c -O3 -fPIC -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -DHIREDIS_TEST_SSL -Wall -Wextra -Werror -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -g -ggdb -pedantic alloc.c cc -std=c99 -c -O3 -fPIC -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -DHIREDIS_TEST_SSL -Wall -Wextra -Werror -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -g -ggdb -pedantic net.c +cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lmem.o lmem.c +cc -std=c99 -c -O3 -fPIC -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -DHIREDIS_TEST_SSL -Wall -Wextra -Werror -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -g -ggdb -pedantic hiredis.c ar rcs libfpconv.a fpconv_dtoa.o make[5]: Leaving directory '/build/reproducible-path/valkey-8.1.4+dfsg1/deps/fpconv' -cc -std=c99 -c -O3 -fPIC -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -DHIREDIS_TEST_SSL -Wall -Wextra -Werror -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -g -ggdb -pedantic hiredis.c -cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lmem.o lmem.c +cc -std=c99 -c -O3 -fPIC -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -DHIREDIS_TEST_SSL -Wall -Wextra -Werror -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -g -ggdb -pedantic sds.c +cc -std=c99 -c -O3 -fPIC -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -DHIREDIS_TEST_SSL -Wall -Wextra -Werror -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -g -ggdb -pedantic async.c +cc -std=c99 -c -O3 -fPIC -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -DHIREDIS_TEST_SSL -Wall -Wextra -Werror -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -g -ggdb -pedantic read.c cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lobject.o lobject.c cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lopcodes.o lopcodes.c +cc -std=c99 -c -O3 -fPIC -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -DHIREDIS_TEST_SSL -Wall -Wextra -Werror -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -g -ggdb -pedantic sockcompat.c cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lparser.o lparser.c cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lstate.o lstate.c +cc -std=c99 -c -O3 -fPIC -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -DHIREDIS_TEST_SSL -Wall -Wextra -Werror -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -g -ggdb -pedantic ssl.c cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lstring.o lstring.c -cc -std=c99 -c -O3 -fPIC -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -DHIREDIS_TEST_SSL -Wall -Wextra -Werror -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -g -ggdb -pedantic sds.c cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o ltable.o ltable.c -cc -std=c99 -c -O3 -fPIC -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -DHIREDIS_TEST_SSL -Wall -Wextra -Werror -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -g -ggdb -pedantic async.c -cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o ltm.o ltm.c -cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lundump.o lundump.c ar rcs libhdrhistogram.a hdr_histogram.o make[5]: Leaving directory '/build/reproducible-path/valkey-8.1.4+dfsg1/deps/hdr_histogram' -cc -std=c99 -c -O3 -fPIC -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -DHIREDIS_TEST_SSL -Wall -Wextra -Werror -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -g -ggdb -pedantic read.c +cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o ltm.o ltm.c +cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lundump.o lundump.c make[5]: Leaving directory '/build/reproducible-path/valkey-8.1.4+dfsg1/deps/linenoise' cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lvm.o lvm.c cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lzio.o lzio.c cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o strbuf.o strbuf.c cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o fpconv.o fpconv.c +ar rcs libhiredis_ssl.a ssl.o cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lauxlib.o lauxlib.c cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lbaselib.o lbaselib.c -cc -std=c99 -c -O3 -fPIC -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -DHIREDIS_TEST_SSL -Wall -Wextra -Werror -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -g -ggdb -pedantic sockcompat.c -cc -std=c99 -c -O3 -fPIC -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -DHIREDIS_TEST_SSL -Wall -Wextra -Werror -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -g -ggdb -pedantic ssl.c cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o ldblib.o ldblib.c cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o liolib.o liolib.c cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lmathlib.o lmathlib.c @@ -625,17 +662,16 @@ cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o ltablib.o ltablib.c cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lstrlib.o lstrlib.c cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o loadlib.o loadlib.c +ar rcs libhiredis.a alloc.o net.o hiredis.o sds.o async.o read.o sockcompat.o cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o linit.o linit.c +make[5]: Leaving directory '/build/reproducible-path/valkey-8.1.4+dfsg1/deps/hiredis' cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lua_cjson.o lua_cjson.c -ar rcs libhiredis_ssl.a ssl.o cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lua_struct.o lua_struct.c cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lua_cmsgpack.o lua_cmsgpack.c cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lua_bit.o lua_bit.c cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lua.o lua.c cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o luac.o luac.c cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.1.4+dfsg1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include/liblzf -funwind-tables -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o print.o print.c -ar rcs libhiredis.a alloc.o net.o hiredis.o sds.o async.o read.o sockcompat.o -make[5]: Leaving directory '/build/reproducible-path/valkey-8.1.4+dfsg1/deps/hiredis' ar rc liblua.a lapi.o lcode.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o strbuf.o fpconv.o lauxlib.o lbaselib.o ldblib.o liolib.o lmathlib.o loslib.o ltablib.o lstrlib.o loadlib.o linit.o lua_cjson.o lua_struct.o lua_cmsgpack.o lua_bit.o # DLL needs all object files ranlib liblua.a cc -o lua -flto=auto -ffat-lto-objects -Wl,-z,relro -Wl,-z,now -Wl,-no-as-needed -ldl -latomic -llzf lua.o liblua.a -lm @@ -779,39 +815,39 @@ Certificate request self-signature ok subject=O=Valkey Test, CN=Generic-cert Generating DH parameters, 2048 bit long safe prime -..........................................................................................................+..................+.....................................................................................................................................................................................................................................................................+.............................................................+....................+...................................................................................................................................................................................................................+....................................................................................+..............................................+....................................................................................................................................................................................+..........................................+.............................................................................................+............................................................................................+...............................................................................................................................................................................+...........................................................................................................................................................................................................+............................................................................................+..................................................................................................................................................................................+............................+....................................................................................................................................................................................................................................................................+............+...............................................................................................................................................................................................................+.........................................................................................................................................................................................+.......................................+.............................................................................................................................................................+..........................................+.+...........................................................................+...........................................................................................................................................+.....................................................................................................................................................................................+......................+............+...............................................................+...................+...............................................................................................................................+............................................................................+...................................+............+....+...............................................................................................................................................................................................................................................................................+....................................................................................................................................................................+.............................................................................................................+.........................................................................................................................................................................................+........................................................................................................+..........................+.......................................................................................................................................................+......................................................................................................................................................................................+..............................+...........+.........+.................................................................................................................................+...................................................................................................................................+...................................................................................................................................................................................+.............................................................................................+................+........................................................................................................+..........................................................................................................................+...................................................................................................+................................................................................................................................................................................................................................................+..................................................................................................+.................................................................................................................................................................................................+..........................................................................+.....................................................................................................................................................................................................................................................................................+............+....+..........................................................................................................................................................................................................................................................................................................................................+.........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................+......+............................+..........................................................................................................................................................................................................................+............................................................+.....................................................+.................................................+............................................................................................................................+..................................................................................+...................................................................................................................................................................................+..................................................................................................................................................................................................+................................................................................................................................+..................+.............................................................................................................................+.....................+..........................................................................................................................+.................................................+.......................................................................................+...........................................................................+.......................................++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++* +........................................................................................................................................................................................................................................+.........................................................................................................................................................................................................................................................................................................................................................................................................................................+.................................................................................................................................+...............................................................................................................................................................+....................+..........................................................................................................................+........................................................................................+.................................................................................................................................................................+...................................................................................................................................................................+..................................................................................................................................................................+...........................................................................................................+..................................................................................+....................................................................................................................+..................................................................................................................................................................+......................................................+............+.......+..............................................................................................................................+......................................................................................+................................................................................................................+..............................................+.......................................................................................................................................................................................+.........................................................+...+.........................................................................................+....................................................................................................................................................+................+.....................................................................................+..............+.............................................................................................+...+................................................................+....................................+.......................................................................................................................................................+......................................................................................................................................+.+.............................................................................................................................................+...............................................................................................................................................................................................................................................................................................................................................+..............................................................................................................................................................................................................................................................................................................................................................+..........................................................................................................................................+.................+............................................+...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++* # Avoid race conditions in upstream testsuite ./runtest --clients 1 --verbose --dump-logs --tls || true Cleanup: may take some time... OK Starting test server at port 21079 -[ready]: 2496038 +[ready]: 3264194 Testing unit/wait === (wait network external:skip) Starting server on 127.0.0.1:21111 ok === () Starting server on 127.0.0.1:21113 ok -[ok]: Setup slave (106 ms) -[ok]: WAIT out of range timeout (milliseconds) (1 ms) -[ok]: WAIT should acknowledge 1 additional copy of the data (765 ms) -[ok]: WAIT should not acknowledge 2 additional copies of the data (1010 ms) -[ok]: WAIT should not acknowledge 1 additional copy if slave is blocked (1130 ms) -[ok]: WAIT implicitly blocks on client pause since ACKs aren't sent (1114 ms) -[ok]: WAIT replica multiple clients unblock - reuse last result (82 ms) +[ok]: Setup slave (104 ms) +[ok]: WAIT out of range timeout (milliseconds) (2 ms) +[ok]: WAIT should acknowledge 1 additional copy of the data (747 ms) +[ok]: WAIT should not acknowledge 2 additional copies of the data (1007 ms) +[ok]: WAIT should not acknowledge 1 additional copy if slave is blocked (1113 ms) +[ok]: WAIT implicitly blocks on client pause since ACKs aren't sent (1108 ms) +[ok]: WAIT replica multiple clients unblock - reuse last result (94 ms) === () Starting server on 127.0.0.1:21115 ok -[ok]: Setup a new replica (103 ms) -[ok]: WAIT in script will work (1858 ms) +[ok]: Setup a new replica (107 ms) +[ok]: WAIT in script will work (1760 ms) === () Starting server on 127.0.0.1:21117 ok -[ok]: WAITAOF local copy before fsync (64 ms) -[ok]: WAITAOF local copy everysec (0 ms) -[ok]: WAITAOF local copy with appendfsync always (1 ms) -[ok]: WAITAOF local wait and then stop aof (20 ms) -[ok]: WAITAOF local on server with aof disabled (2 ms) -[ok]: WAITAOF local if AOFRW was postponed (280 ms) +[ok]: WAITAOF local copy before fsync (146 ms) +[ok]: WAITAOF local copy everysec (1 ms) +[ok]: WAITAOF local copy with appendfsync always (2 ms) +[ok]: WAITAOF local wait and then stop aof (38 ms) +[ok]: WAITAOF local on server with aof disabled (0 ms) +[ok]: WAITAOF local if AOFRW was postponed (263 ms) === () Starting server on 127.0.0.1:21119 ok -[ok]: WAITAOF on demoted master gets unblocked with an error (22 ms) -[ok]: WAITAOF replica copy before fsync (71 ms) -[ok]: WAITAOF replica copy everysec (635 ms) +[ok]: WAITAOF on demoted master gets unblocked with an error (35 ms) +[ok]: WAITAOF replica copy before fsync (135 ms) +[ok]: WAITAOF replica copy everysec (550 ms) Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: WAITAOF replica copy everysec with AOFRW (1012 ms) +Waiting for background AOF rewrite to finish... [ok]: WAITAOF replica copy everysec with AOFRW (1009 ms) Waiting for background AOF rewrite to finish... Waiting for background AOF rewrite to finish... @@ -832,43 +868,43 @@ Waiting for background AOF rewrite to finish... Waiting for background AOF rewrite to finish... Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: WAITAOF replica copy everysec with slow AOFRW (2034 ms) +Waiting for background AOF rewrite to finish... [ok]: WAITAOF replica copy everysec with slow AOFRW (2032 ms) Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: WAITAOF replica copy everysec->always with AOFRW (112 ms) -[ok]: WAITAOF replica copy appendfsync always (0 ms) -[ok]: WAITAOF replica copy if replica is blocked (144 ms) -[ok]: WAITAOF replica multiple clients unblock - reuse last result (77 ms) +Waiting for background AOF rewrite to finish... [ok]: WAITAOF replica copy everysec->always with AOFRW (107 ms) +[ok]: WAITAOF replica copy appendfsync always (2 ms) +[ok]: WAITAOF replica copy if replica is blocked (128 ms) +[ok]: WAITAOF replica multiple clients unblock - reuse last result (92 ms) [ok]: WAITAOF on promoted replica (1 ms) -[ok]: WAITAOF master that loses a replica and backlog is dropped (2004 ms) -[ok]: WAITAOF master without backlog, wait is released when the replica finishes full-sync (747 ms) -[ok]: WAITAOF master isn't configured to do AOF (1012 ms) +[ok]: WAITAOF master that loses a replica and backlog is dropped (2006 ms) +[ok]: WAITAOF master without backlog, wait is released when the replica finishes full-sync (724 ms) +[ok]: WAITAOF master isn't configured to do AOF (1007 ms) Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: WAITAOF replica isn't configured to do AOF (113 ms) +Waiting for background AOF rewrite to finish... [ok]: WAITAOF replica isn't configured to do AOF (106 ms) Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: WAITAOF both local and replica got AOF enabled at runtime (894 ms) -[ok]: WAITAOF master sends PING after last write (1203 ms) -[ok]: WAITAOF master client didn't send any write command (1220 ms) +Waiting for background AOF rewrite to finish... [ok]: WAITAOF both local and replica got AOF enabled at runtime (904 ms) +[ok]: WAITAOF master sends PING after last write (1204 ms) +[ok]: WAITAOF master client didn't send any write command (1235 ms) [ok]: WAITAOF master client didn't send any command (1205 ms) === () Starting server on 127.0.0.1:21121 ok === () Starting server on 127.0.0.1:21123 ok -[ok]: WAITAOF when replica switches between masters, fsync: no (3701 ms) +[ok]: WAITAOF when replica switches between masters, fsync: no (3585 ms) === () Starting server on 127.0.0.1:21125 ok === () Starting server on 127.0.0.1:21127 ok -[ok]: WAITAOF when replica switches between masters, fsync: everysec (2488 ms) +[ok]: WAITAOF when replica switches between masters, fsync: everysec (2471 ms) === () Starting server on 127.0.0.1:21129 ok === () Starting server on 127.0.0.1:21131 ok -[ok]: WAITAOF when replica switches between masters, fsync: always (1472 ms) +[ok]: WAITAOF when replica switches between masters, fsync: always (1565 ms) === (failover external:skip) Starting server on 127.0.0.1:21133 ok === () Starting server on 127.0.0.1:21135 ok === () Starting server on 127.0.0.1:21137 ok -[ok]: setup replication for following tests (103 ms) +[ok]: setup replication for following tests (104 ms) Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: WAIT and WAITAOF replica multiple clients unblock - reuse last result (1614 ms) -[1/129 done]: unit/wait (31 seconds) +Waiting for background AOF rewrite to finish... [ok]: WAIT and WAITAOF replica multiple clients unblock - reuse last result (1561 ms) +[1/129 done]: unit/wait (30 seconds) Testing unit/violations [ignore]: large memory flag not provided [ignore]: large memory flag not provided @@ -878,102 +914,102 @@ [ignore]: large memory flag not provided === () Starting server on 127.0.0.1:21139 ok [ok]: SORT adds integer field to list (2 ms) -[2/129 done]: unit/violations (0 seconds) +[2/129 done]: unit/violations (1 seconds) Testing unit/tracking === (tracking network logreqres:skip) Starting server on 127.0.0.1:21141 ok -[ok]: Client tracking prefixes memory overhead (607 ms) -[ok]: Clients are able to enable tracking and redirect it (1 ms) -[ok]: The other connection is able to get invalidations (0 ms) +[ok]: Client tracking prefixes memory overhead (417 ms) +[ok]: Clients are able to enable tracking and redirect it (0 ms) +[ok]: The other connection is able to get invalidations (1 ms) [ok]: The client is now able to disable tracking (1 ms) [ok]: Clients can enable the BCAST mode with the empty prefix (0 ms) -[ok]: The connection gets invalidation messages about all the keys (0 ms) -[ok]: Clients can enable the BCAST mode with prefixes (1 ms) -[ok]: Adding prefixes to BCAST mode works (1 ms) -[ok]: Tracking NOLOOP mode in standard mode works (1 ms) -[ok]: Tracking NOLOOP mode in BCAST mode works (0 ms) -[ok]: Tracking gets notification of expired keys (1007 ms) -[ok]: Tracking gets notification of lazy expired keys (108 ms) -[ok]: HELLO 3 reply is correct (0 ms) -[ok]: RESP3 based basic invalidation (1 ms) -[ok]: RESP3 tracking redirection (1 ms) -[ok]: Invalidations of previous keys can be redirected after switching to RESP3 (1 ms) -[ok]: Invalidations of new keys can be redirected after switching to RESP3 (0 ms) -[ok]: Invalid keys should not be tracked for scripts in NOLOOP mode (0 ms) -[ok]: Tracking only occurs for scripts when a command calls a read-only command (2 ms) -[ok]: RESP3 Client gets tracking-redir-broken push message after cached key changed when rediretion client is terminated (27 ms) -[ok]: Different clients can redirect to the same connection (1 ms) -[ok]: Different clients using different protocols can track the same key (1 ms) +[ok]: The connection gets invalidation messages about all the keys (1 ms) +[ok]: Clients can enable the BCAST mode with prefixes (2 ms) +[ok]: Adding prefixes to BCAST mode works (0 ms) +[ok]: Tracking NOLOOP mode in standard mode works (2 ms) +[ok]: Tracking NOLOOP mode in BCAST mode works (2 ms) +[ok]: Tracking gets notification of expired keys (1004 ms) +[ok]: Tracking gets notification of lazy expired keys (104 ms) +[ok]: HELLO 3 reply is correct (1 ms) +[ok]: RESP3 based basic invalidation (2 ms) +[ok]: RESP3 tracking redirection (2 ms) +[ok]: Invalidations of previous keys can be redirected after switching to RESP3 (2 ms) +[ok]: Invalidations of new keys can be redirected after switching to RESP3 (1 ms) +[ok]: Invalid keys should not be tracked for scripts in NOLOOP mode (2 ms) +[ok]: Tracking only occurs for scripts when a command calls a read-only command (4 ms) +[ok]: RESP3 Client gets tracking-redir-broken push message after cached key changed when rediretion client is terminated (35 ms) +[ok]: Different clients can redirect to the same connection (2 ms) +[ok]: Different clients using different protocols can track the same key (2 ms) [ok]: No invalidation message when using OPTIN option (1 ms) -[ok]: Invalidation message sent when using OPTIN option with CLIENT CACHING yes (6 ms) -[ok]: Invalidation message sent when using OPTOUT option (1 ms) -[ok]: No invalidation message when using OPTOUT option with CLIENT CACHING no (1 ms) -[ok]: Able to redirect to a RESP3 client (1 ms) -[ok]: After switching from normal tracking to BCAST mode, no invalidation message is produced for pre-BCAST keys (1 ms) -[ok]: BCAST with prefix collisions throw errors (22 ms) -[ok]: hdel deliver invalidate message after response in the same connection (0 ms) -[ok]: Tracking invalidation message is not interleaved with multiple keys response (112 ms) -[ok]: Tracking invalidation message is not interleaved with transaction response (5 ms) -[ok]: Tracking invalidation message of eviction keys should be before response (3 ms) -[ok]: Unblocked BLMOVE gets notification after response (1 ms) -[ok]: Tracking gets notification on tracking table key eviction (9 ms) -[ok]: Invalidation message received for flushall (41 ms) -[ok]: Invalidation message received for flushdb (43 ms) -[ok]: Test ASYNC flushall (46 ms) -[ok]: flushdb tracking invalidation message is not interleaved with transaction response (45 ms) -[ok]: Server is able to evacuate enough keys when num of keys surpasses limit by more than defined initial effort (236 ms) -[ok]: Tracking info is correct (43 ms) -[ok]: CLIENT GETREDIR provides correct client id (4 ms) -[ok]: CLIENT TRACKINGINFO provides reasonable results when tracking off (1 ms) +[ok]: Invalidation message sent when using OPTIN option with CLIENT CACHING yes (1 ms) +[ok]: Invalidation message sent when using OPTOUT option (2 ms) +[ok]: No invalidation message when using OPTOUT option with CLIENT CACHING no (3 ms) +[ok]: Able to redirect to a RESP3 client (3 ms) +[ok]: After switching from normal tracking to BCAST mode, no invalidation message is produced for pre-BCAST keys (3 ms) +[ok]: BCAST with prefix collisions throw errors (35 ms) +[ok]: hdel deliver invalidate message after response in the same connection (3 ms) +[ok]: Tracking invalidation message is not interleaved with multiple keys response (114 ms) +[ok]: Tracking invalidation message is not interleaved with transaction response (3 ms) +[ok]: Tracking invalidation message of eviction keys should be before response (8 ms) +[ok]: Unblocked BLMOVE gets notification after response (2 ms) +[ok]: Tracking gets notification on tracking table key eviction (66 ms) +[ok]: Invalidation message received for flushall (69 ms) +[ok]: Invalidation message received for flushdb (68 ms) +[ok]: Test ASYNC flushall (70 ms) +[ok]: flushdb tracking invalidation message is not interleaved with transaction response (70 ms) +[ok]: Server is able to evacuate enough keys when num of keys surpasses limit by more than defined initial effort (339 ms) +[ok]: Tracking info is correct (72 ms) +[ok]: CLIENT GETREDIR provides correct client id (1 ms) +[ok]: CLIENT TRACKINGINFO provides reasonable results when tracking off (0 ms) [ok]: CLIENT TRACKINGINFO provides reasonable results when tracking on (0 ms) [ok]: CLIENT TRACKINGINFO provides reasonable results when tracking on with options (0 ms) -[ok]: CLIENT TRACKINGINFO provides reasonable results when tracking optin (1 ms) -[ok]: CLIENT TRACKINGINFO provides reasonable results when tracking optout (1 ms) -[ok]: CLIENT TRACKINGINFO provides reasonable results when tracking bcast mode (0 ms) -[ok]: CLIENT TRACKINGINFO provides reasonable results when tracking redir broken (44 ms) -[ok]: Regression test for #11715 (43 ms) -[ok]: RESP3 based basic invalidation with client reply off (46 ms) -[ok]: RESP2 based basic invalidation with client reply off (78 ms) -[ok]: RESP3 based basic redirect invalidation with client reply off (59 ms) -[ok]: RESP3 based basic tracking-redir-broken with client reply off (26 ms) +[ok]: CLIENT TRACKINGINFO provides reasonable results when tracking optin (2 ms) +[ok]: CLIENT TRACKINGINFO provides reasonable results when tracking optout (2 ms) +[ok]: CLIENT TRACKINGINFO provides reasonable results when tracking bcast mode (2 ms) +[ok]: CLIENT TRACKINGINFO provides reasonable results when tracking redir broken (66 ms) +[ok]: Regression test for #11715 (66 ms) +[ok]: RESP3 based basic invalidation with client reply off (65 ms) +[ok]: RESP2 based basic invalidation with client reply off (105 ms) +[ok]: RESP3 based basic redirect invalidation with client reply off (102 ms) +[ok]: RESP3 based basic tracking-redir-broken with client reply off (69 ms) === (tracking network) Starting server on 127.0.0.1:21143 ok -[ok]: CLIENT TRACKINGINFO when start (0 ms) -[ok]: Coverage: Basic CLIENT CACHING (23 ms) +[ok]: CLIENT TRACKINGINFO when start (1 ms) +[ok]: Coverage: Basic CLIENT CACHING (35 ms) [ok]: Coverage: Basic CLIENT REPLY (0 ms) [ok]: Coverage: Basic CLIENT TRACKINGINFO (1 ms) -[ok]: Coverage: Basic CLIENT GETREDIR (0 ms) +[ok]: Coverage: Basic CLIENT GETREDIR (1 ms) [3/129 done]: unit/tracking (3 seconds) Testing unit/tls === (tls) Starting server on 127.0.0.1:21145 ok -[ok]: TLS: Not accepting non-TLS connections on a TLS port (3 ms) -[ok]: TLS: Verify tls-auth-clients behaves as expected (38 ms) -[ok]: TLS: Verify tls-protocols behaves as expected (26 ms) -[ok]: TLS: Verify tls-ciphers behaves as expected (54 ms) -[ok]: TLS: Verify tls-prefer-server-ciphers behaves as expected (56 ms) +[ok]: TLS: Not accepting non-TLS connections on a TLS port (1 ms) +[ok]: TLS: Verify tls-auth-clients behaves as expected (68 ms) +[ok]: TLS: Verify tls-protocols behaves as expected (45 ms) +[ok]: TLS: Verify tls-ciphers behaves as expected (85 ms) +[ok]: TLS: Verify tls-prefer-server-ciphers behaves as expected (85 ms) === () Starting server on 127.0.0.1:21147 ok -[ok]: TLS: Verify tls-cert-file is also used as a client cert if none specified (353 ms) -[ok]: TLS: switch between tcp and tls ports (35 ms) -[ok]: TLS: Working with an encrypted keyfile (23 ms) +[ok]: TLS: Verify tls-cert-file is also used as a client cert if none specified (355 ms) +[ok]: TLS: switch between tcp and tls ports (69 ms) +[ok]: TLS: Working with an encrypted keyfile (29 ms) [4/129 done]: unit/tls (1 seconds) Testing unit/sort === (sort) Starting server on 127.0.0.1:21149 ok [ok]: Listpack: SORT BY key (1 ms) -[ok]: Listpack: SORT BY key with limit (2 ms) +[ok]: Listpack: SORT BY key with limit (1 ms) [ok]: Listpack: SORT BY hash field (0 ms) [ok]: Quicklist: SORT BY key (7 ms) [ok]: Quicklist: SORT BY key with limit (1 ms) [ok]: Quicklist: SORT BY hash field (7 ms) -[ok]: Big Quicklist: SORT BY key (270 ms) -[ok]: Big Quicklist: SORT BY key with limit (5 ms) -[ok]: Big Quicklist: SORT BY hash field (272 ms) +[ok]: Big Quicklist: SORT BY key (313 ms) +[ok]: Big Quicklist: SORT BY key with limit (11 ms) +[ok]: Big Quicklist: SORT BY hash field (325 ms) [ok]: Intset: SORT BY key (0 ms) -[ok]: Intset: SORT BY key with limit (1 ms) -[ok]: Intset: SORT BY hash field (0 ms) -[ok]: Hash table: SORT BY key (8 ms) -[ok]: Hash table: SORT BY key with limit (1 ms) +[ok]: Intset: SORT BY key with limit (0 ms) +[ok]: Intset: SORT BY hash field (1 ms) +[ok]: Hash table: SORT BY key (9 ms) +[ok]: Hash table: SORT BY key with limit (0 ms) [ok]: Hash table: SORT BY hash field (8 ms) -[ok]: Big Hash table: SORT BY key (294 ms) -[ok]: Big Hash table: SORT BY key with limit (7 ms) -[ok]: Big Hash table: SORT BY hash field (295 ms) +[ok]: Big Hash table: SORT BY key (320 ms) +[ok]: Big Hash table: SORT BY key with limit (15 ms) +[ok]: Big Hash table: SORT BY hash field (329 ms) [ok]: SORT GET # (1 ms) [ok]: SORT GET (0 ms) [ok]: SORT_RO GET (0 ms) @@ -987,151 +1023,151 @@ [ok]: SORT ALPHA against integer encoded strings (1 ms) [ok]: SORT sorted set (1 ms) [ok]: SORT sorted set BY nosort should retain ordering (1 ms) -[ok]: SORT sorted set BY nosort + LIMIT (1 ms) +[ok]: SORT sorted set BY nosort + LIMIT (2 ms) [ok]: SORT sorted set BY nosort works as expected from scripts (1 ms) [ok]: SORT sorted set: +inf and -inf handling (1 ms) [ok]: SORT regression for issue #19, sorting floats (1 ms) [ok]: SORT with STORE returns zero if result is empty (github issue 224) (0 ms) [ok]: SORT with STORE does not create empty lists (github issue 224) (0 ms) [ok]: SORT with STORE removes key if result is empty (github issue 227) (1 ms) -[ok]: SORT with BY and STORE should still order output (0 ms) -[ok]: SORT will complain with numerical sorting and bad doubles (1) (1 ms) -[ok]: SORT will complain with numerical sorting and bad doubles (2) (0 ms) +[ok]: SORT with BY and STORE should still order output (1 ms) +[ok]: SORT will complain with numerical sorting and bad doubles (1) (0 ms) +[ok]: SORT will complain with numerical sorting and bad doubles (2) (1 ms) [ok]: SORT BY sub-sorts lexicographically if score is the same (1 ms) [ok]: SORT GET with pattern ending with just -> does not get hash field (0 ms) -[ok]: SORT by nosort retains native order for lists (0 ms) +[ok]: SORT by nosort retains native order for lists (1 ms) [ok]: SORT by nosort plus store retains native order for lists (0 ms) -[ok]: SORT by nosort with limit returns based on original list order (0 ms) +[ok]: SORT by nosort with limit returns based on original list order (1 ms) [ok]: SORT_RO - Successful case (0 ms) [ok]: SORT_RO - Cannot run with STORE arg (0 ms) - Average time to sort: 0.17999999999999999 milliseconds [ok]: SORT speed, 100 element list BY key, 100 times (18 ms) + Average time to sort: 0.23000000000000001 milliseconds [ok]: SORT speed, 100 element list BY key, 100 times (23 ms) - Average time to sort: 0.19 milliseconds [ok]: SORT speed, 100 element list BY hash field, 100 times (20 ms) + Average time to sort: 0.25 milliseconds [ok]: SORT speed, 100 element list BY hash field, 100 times (25 ms) - Average time to sort: 0.14000000000000001 milliseconds [ok]: SORT speed, 100 element list directly, 100 times (16 ms) + Average time to sort: 0.16 milliseconds [ok]: SORT speed, 100 element list directly, 100 times (16 ms) - Average time to sort: 0.14000000000000001 milliseconds [ok]: SORT speed, 100 element list BY , 100 times (15 ms) -[ok]: SETRANGE with huge offset (0 ms) -[ok]: SORT STORE quicklist with the right options (56 ms) + Average time to sort: 0.14999999999999999 milliseconds [ok]: SORT speed, 100 element list BY , 100 times (15 ms) +[ok]: SETRANGE with huge offset (1 ms) +[ok]: SORT STORE quicklist with the right options (48 ms) === (external:skip cluster sort) Starting server on 127.0.0.1:21151 ok [ok]: sort by in cluster mode (1 ms) [ok]: sort get in cluster mode (0 ms) -[ok]: sort_ro by in cluster mode (11 ms) -[ok]: sort_ro get in cluster mode (1 ms) -[5/129 done]: unit/sort (10 seconds) +[ok]: sort_ro by in cluster mode (0 ms) +[ok]: sort_ro get in cluster mode (0 ms) +[5/129 done]: unit/sort (9 seconds) Testing unit/slowlog === (slowlog) Starting server on 127.0.0.1:21153 ok [ok]: SLOWLOG - check that it starts with an empty log (0 ms) [ok]: SLOWLOG - only logs commands taking more time than specified (201 ms) -[ok]: SLOWLOG - zero max length is correctly handled (15 ms) -[ok]: SLOWLOG - max entries is correctly handled (23 ms) -[ok]: SLOWLOG - GET optional argument to limit output len works (2 ms) +[ok]: SLOWLOG - zero max length is correctly handled (16 ms) +[ok]: SLOWLOG - max entries is correctly handled (17 ms) +[ok]: SLOWLOG - GET optional argument to limit output len works (3 ms) [ok]: SLOWLOG - RESET subcommand works (1 ms) [ok]: SLOWLOG - logged entry sanity check (201 ms) -[ok]: SLOWLOG - Certain commands are omitted that contain sensitive information (9 ms) -[ok]: SLOWLOG - Some commands can redact sensitive fields (1 ms) -[ok]: SLOWLOG - Rewritten commands are logged as their original command (25 ms) -[ok]: SLOWLOG - commands with too many arguments are trimmed (1 ms) -[ok]: SLOWLOG - too long arguments are trimmed (0 ms) +[ok]: SLOWLOG - Certain commands are omitted that contain sensitive information (5 ms) +[ok]: SLOWLOG - Some commands can redact sensitive fields (3 ms) +[ok]: SLOWLOG - Rewritten commands are logged as their original command (37 ms) +[ok]: SLOWLOG - commands with too many arguments are trimmed (2 ms) +[ok]: SLOWLOG - too long arguments are trimmed (2 ms) [ok]: SLOWLOG - EXEC is not logged, just executed commands (202 ms) -[ok]: SLOWLOG - can clean older entries (203 ms) -[ok]: SLOWLOG - can be disabled (407 ms) -[ok]: SLOWLOG - count must be >= -1 (1 ms) -[ok]: SLOWLOG - get all slow logs (2 ms) -[ok]: SLOWLOG - blocking command is reported only after unblocked (24 ms) +[ok]: SLOWLOG - can clean older entries (202 ms) +[ok]: SLOWLOG - can be disabled (403 ms) +[ok]: SLOWLOG - count must be >= -1 (0 ms) +[ok]: SLOWLOG - get all slow logs (3 ms) +[ok]: SLOWLOG - blocking command is reported only after unblocked (35 ms) [ok]: SLOWLOG - the commands in script are recorded normally - is_eval: 0 (2 ms) -[ok]: SLOWLOG - the commands in script are recorded normally - is_eval: 1 (1 ms) +[ok]: SLOWLOG - the commands in script are recorded normally - is_eval: 1 (2 ms) [6/129 done]: unit/slowlog (2 seconds) Testing unit/shutdown === (shutdown external:skip) Starting server on 127.0.0.1:21155 ok -[ok]: Temp rdb will be deleted if we use bg_unlink when shutdown (155 ms) +[ok]: Temp rdb will be deleted if we use bg_unlink when shutdown (137 ms) === (shutdown external:skip) Starting server on 127.0.0.1:21157 ok [ok]: SHUTDOWN ABORT can cancel SIGTERM (15 ms) -[ok]: Temp rdb will be deleted in signal handle (41 ms) +[ok]: Temp rdb will be deleted in signal handle (39 ms) === (shutdown external:skip) Starting server on 127.0.0.1:21159 ok -[ok]: RDB save will be failed in shutdown (10 ms) -[ok]: SHUTDOWN will abort if rdb save failed on signal (40 ms) +[ok]: RDB save will be failed in shutdown (6 ms) +[ok]: SHUTDOWN will abort if rdb save failed on signal (50 ms) [ok]: SHUTDOWN will abort if rdb save failed on shutdown command (1 ms) -[ok]: SHUTDOWN can proceed if shutdown command was with nosave (4 ms) -[ok]: Clean up rdb same named folder (1 ms) +[ok]: SHUTDOWN can proceed if shutdown command was with nosave (5 ms) +[ok]: Clean up rdb same named folder (2 ms) === (shutdown external:skip) Starting server on 127.0.0.1:21161 ok -[ok]: SHUTDOWN SIGTERM will abort if there's an initial AOFRW - default (72 ms) +[ok]: SHUTDOWN SIGTERM will abort if there's an initial AOFRW - default (55 ms) [7/129 done]: unit/shutdown (1 seconds) Testing unit/scripting === (scripting) Starting server on 127.0.0.1:21163 ok [ok]: EVAL - Does Lua interpreter replies to our requests? (1 ms) -[ok]: EVAL - Return _G (0 ms) -[ok]: EVAL - Return table with a metatable that raise error (1 ms) -[ok]: EVAL - Return table with a metatable that call server (1 ms) +[ok]: EVAL - Return _G (1 ms) +[ok]: EVAL - Return table with a metatable that raise error (0 ms) +[ok]: EVAL - Return table with a metatable that call server (0 ms) [ok]: EVAL - Lua integer -> Redis protocol type conversion (0 ms) [ok]: EVAL - Lua string -> Redis protocol type conversion (1 ms) [ok]: EVAL - Lua true boolean -> Redis protocol type conversion (0 ms) [ok]: EVAL - Lua false boolean -> Redis protocol type conversion (1 ms) [ok]: EVAL - Lua status code reply -> Redis protocol type conversion (0 ms) -[ok]: EVAL - Lua error reply -> Redis protocol type conversion (3 ms) -[ok]: EVAL - Lua table -> Redis protocol type conversion (0 ms) +[ok]: EVAL - Lua error reply -> Redis protocol type conversion (0 ms) +[ok]: EVAL - Lua table -> Redis protocol type conversion (1 ms) [ok]: EVAL - Are the KEYS and ARGV arrays populated correctly? (1 ms) -[ok]: EVAL - is Lua able to call Redis API? (0 ms) +[ok]: EVAL - is Lua able to call Redis API? (1 ms) [ok]: EVAL - Redis integer -> Lua type conversion (1 ms) -[ok]: EVAL - Lua number -> Redis integer conversion (1 ms) -[ok]: EVAL - Redis bulk -> Lua type conversion (4 ms) +[ok]: EVAL - Lua number -> Redis integer conversion (0 ms) +[ok]: EVAL - Redis bulk -> Lua type conversion (0 ms) [ok]: EVAL - Redis multi bulk -> Lua type conversion (1 ms) -[ok]: EVAL - Redis status reply -> Lua type conversion (0 ms) -[ok]: EVAL - Redis error reply -> Lua type conversion (1 ms) -[ok]: EVAL - Redis nil bulk reply -> Lua type conversion (1 ms) +[ok]: EVAL - Redis status reply -> Lua type conversion (1 ms) +[ok]: EVAL - Redis error reply -> Lua type conversion (0 ms) +[ok]: EVAL - Redis nil bulk reply -> Lua type conversion (0 ms) [ok]: EVAL - Is the Lua client using the currently selected DB? (1 ms) [ok]: EVAL - SELECT inside Lua should not affect the caller (1 ms) -[ok]: EVAL - Scripts do not block on blpop command (6 ms) -[ok]: EVAL - Scripts do not block on brpop command (2 ms) -[ok]: EVAL - Scripts do not block on brpoplpush command (2 ms) -[ok]: EVAL - Scripts do not block on blmove command (0 ms) +[ok]: EVAL - Scripts do not block on blpop command (1 ms) +[ok]: EVAL - Scripts do not block on brpop command (1 ms) +[ok]: EVAL - Scripts do not block on brpoplpush command (1 ms) +[ok]: EVAL - Scripts do not block on blmove command (1 ms) [ok]: EVAL - Scripts do not block on bzpopmin command (1 ms) [ok]: EVAL - Scripts do not block on bzpopmax command (1 ms) [ok]: EVAL - Scripts do not block on wait (1 ms) -[ok]: EVAL - Scripts do not block on waitaof (4 ms) +[ok]: EVAL - Scripts do not block on waitaof (1 ms) [ok]: EVAL - Scripts do not block on XREAD with BLOCK option (1 ms) -[ok]: EVAL - Scripts do not block on XREADGROUP with BLOCK option (1 ms) +[ok]: EVAL - Scripts do not block on XREADGROUP with BLOCK option (0 ms) [ok]: EVAL - Scripts do not block on XREAD with BLOCK option -- non empty stream (1 ms) [ok]: EVAL - Scripts do not block on XREADGROUP with BLOCK option -- non empty stream (1 ms) [ok]: EVAL - Scripts can run non-deterministic commands (1 ms) [ok]: EVAL - No arguments to redis.call/pcall is considered an error (0 ms) [ok]: EVAL - redis.call variant raises a Lua error on Redis cmd error (1) (0 ms) -[ok]: EVAL - redis.call variant raises a Lua error on Redis cmd error (1) (2 ms) +[ok]: EVAL - redis.call variant raises a Lua error on Redis cmd error (1) (1 ms) [ok]: EVAL - redis.call variant raises a Lua error on Redis cmd error (1) (1 ms) [ignore]: EVAL - JSON string encoding a string larger than 2GB: large memory flag not provided [ok]: EVAL - JSON numeric decoding (1 ms) [ok]: EVAL - JSON string decoding (0 ms) [ok]: EVAL - JSON smoke test (1 ms) -[ok]: EVAL - cmsgpack can pack double? (5 ms) +[ok]: EVAL - cmsgpack can pack double? (0 ms) [ok]: EVAL - cmsgpack can pack negative int64? (1 ms) -[ok]: EVAL - cmsgpack pack/unpack smoke test (395 ms) +[ok]: EVAL - cmsgpack pack/unpack smoke test (300 ms) [ok]: EVAL - cmsgpack can pack and unpack circular references? (1 ms) [ok]: EVAL - Numerical sanity check from bitop (1 ms) -[ok]: EVAL - Verify minimal bitop functionality (0 ms) -[ok]: EVAL - Able to parse trailing comments (0 ms) +[ok]: EVAL - Verify minimal bitop functionality (1 ms) +[ok]: EVAL - Able to parse trailing comments (1 ms) [ok]: EVAL_RO - Successful case (1 ms) -[ok]: EVAL_RO - Cannot run write commands (0 ms) +[ok]: EVAL_RO - Cannot run write commands (1 ms) [ok]: redis.sha1hex() implementation (1 ms) -[ok]: Measures elapsed time os.clock() (1012 ms) +[ok]: Measures elapsed time os.clock() (1001 ms) [ok]: Prohibit dangerous lua methods in sandbox (1 ms) -[ok]: Verify execution of prohibit dangerous Lua methods will fail (3 ms) -[ok]: Globals protection reading an undeclared global variable (1 ms) -[ok]: Globals protection setting an undeclared global* (0 ms) +[ok]: Verify execution of prohibit dangerous Lua methods will fail (4 ms) +[ok]: Globals protection reading an undeclared global variable (0 ms) +[ok]: Globals protection setting an undeclared global* (1 ms) [ok]: lua bit.tohex bug (1 ms) [ok]: Test an example script DECR_IF_GT (2 ms) -[ok]: EVAL does not leak in the Lua stack (772 ms) +[ok]: EVAL does not leak in the Lua stack (747 ms) [ok]: Call Redis command with many args from Lua (issue #1764) (1 ms) -[ok]: Number conversion precision test (issue #1118) (1 ms) +[ok]: Number conversion precision test (issue #1118) (0 ms) [ok]: String containing number precision test (regression of issue #1118) (0 ms) [ok]: Verify negative arg count is error instead of crash (issue #1842) (1 ms) [ok]: Scripts can handle commands with incorrect arity (0 ms) [ok]: Correct handling of reused argv (issue #1939) (1 ms) [ok]: Functions in the Redis namespace are able to report errors (0 ms) -[ok]: CLUSTER RESET can not be invoke from within a script (1 ms) -[ok]: Script with RESP3 map (1 ms) -[ok]: Script return recursive object (81 ms) -[ok]: Script check unpack with massive arguments (3 ms) +[ok]: CLUSTER RESET can not be invoke from within a script (0 ms) +[ok]: Script with RESP3 map (2 ms) +[ok]: Script return recursive object (80 ms) +[ok]: Script check unpack with massive arguments (4 ms) [ok]: Script read key with expiration set (1 ms) [ok]: Script del key with expiration set (0 ms) [ok]: Script ACL check (2 ms) @@ -1139,319 +1175,319 @@ [ok]: Try trick global protection 1 (0 ms) [ok]: Try trick global protection 2 (1 ms) [ok]: Try trick global protection 3 (0 ms) -[ok]: Try trick global protection 4 (1 ms) +[ok]: Try trick global protection 4 (0 ms) [ok]: Try trick readonly table on valkey table (0 ms) -[ok]: Try trick readonly table on json table (1 ms) +[ok]: Try trick readonly table on json table (0 ms) [ok]: Try trick readonly table on cmsgpack table (0 ms) [ok]: Try trick readonly table on bit table (0 ms) [ok]: Test loadfile are not available (0 ms) [ok]: Test dofile are not available (0 ms) -[ok]: Test print are not available (1 ms) +[ok]: Test print are not available (0 ms) [ignore]: large memory flag not provided === (scripting) Starting server on 127.0.0.1:21165 ok -[ok]: Timedout read-only scripts can be killed by SCRIPT KILL (419 ms) -[ok]: Timedout read-only scripts can be killed by SCRIPT KILL even when use pcall (71 ms) -[ok]: Timedout script does not cause a false dead client (138 ms) -[ok]: Timedout script link is still usable after Lua returns (110 ms) -[ok]: Timedout scripts and unblocked command (275 ms) -[ok]: Timedout scripts that modified data can't be killed by SCRIPT KILL (220 ms) -[ok]: SHUTDOWN NOSAVE can kill a timedout script anyway (4 ms) +[ok]: Timedout read-only scripts can be killed by SCRIPT KILL (436 ms) +[ok]: Timedout read-only scripts can be killed by SCRIPT KILL even when use pcall (133 ms) +[ok]: Timedout script does not cause a false dead client (75 ms) +[ok]: Timedout script link is still usable after Lua returns (73 ms) +[ok]: Timedout scripts and unblocked command (388 ms) +[ok]: Timedout scripts that modified data can't be killed by SCRIPT KILL (226 ms) +[ok]: SHUTDOWN NOSAVE can kill a timedout script anyway (5 ms) === (scripting repl needs:debug external:skip) Starting server on 127.0.0.1:21167 ok === () Starting server on 127.0.0.1:21169 ok [ok]: Before the replica connects we issue two EVAL commands (1 ms) -[ok]: Connect a replica to the master instance (114 ms) -[ok]: Replication of script multiple pushes to list with BLPOP (629 ms) -[ok]: Lua scripts using SELECT are replicated correctly (5 ms) +[ok]: Connect a replica to the master instance (105 ms) +[ok]: Replication of script multiple pushes to list with BLPOP (642 ms) +[ok]: Lua scripts using SELECT are replicated correctly (3 ms) === (scripting repl external:skip) Starting server on 127.0.0.1:21171 ok === () Starting server on 127.0.0.1:21173 ok -[ok]: Connect a replica to the master instance (108 ms) +[ok]: Connect a replica to the master instance (104 ms) [ok]: Redis.replicate_commands() can be issued anywhere now (1 ms) -[ok]: Redis.set_repl() can be issued before replicate_commands() now (0 ms) +[ok]: Redis.set_repl() can be issued before replicate_commands() now (1 ms) [ok]: Redis.set_repl() don't accept invalid values (1 ms) -[ok]: Test selective replication of certain commands from Lua (611 ms) -[ok]: PRNG is seeded randomly for command replication (1 ms) -[ok]: Using side effects is not a problem with command replication (7 ms) +[ok]: Test selective replication of certain commands from Lua (610 ms) +[ok]: PRNG is seeded randomly for command replication (2 ms) +[ok]: Using side effects is not a problem with command replication (2 ms) === (scripting needs:debug) Starting server on 127.0.0.1:21175 ok -[ok]: test RESP2/2 big number protocol parsing (0 ms) +[ok]: test RESP2/2 big number protocol parsing (1 ms) [ok]: test RESP2/2 malformed big number protocol parsing (1 ms) -[ok]: test RESP2/2 map protocol parsing (0 ms) -[ok]: test RESP2/2 set protocol parsing (1 ms) +[ok]: test RESP2/2 map protocol parsing (1 ms) +[ok]: test RESP2/2 set protocol parsing (0 ms) [ok]: test RESP2/2 double protocol parsing (0 ms) -[ok]: test RESP2/2 null protocol parsing (0 ms) -[ok]: test RESP2/2 verbatim protocol parsing (1 ms) -[ok]: test RESP2/2 true protocol parsing (1 ms) +[ok]: test RESP2/2 null protocol parsing (1 ms) +[ok]: test RESP2/2 verbatim protocol parsing (2 ms) +[ok]: test RESP2/2 true protocol parsing (0 ms) [ok]: test RESP2/2 false protocol parsing (0 ms) -[ok]: test RESP2/3 big number protocol parsing (0 ms) +[ok]: test RESP2/3 big number protocol parsing (1 ms) [ok]: test RESP2/3 malformed big number protocol parsing (1 ms) [ok]: test RESP2/3 map protocol parsing (1 ms) -[ok]: test RESP2/3 set protocol parsing (0 ms) -[ok]: test RESP2/3 double protocol parsing (3 ms) +[ok]: test RESP2/3 set protocol parsing (1 ms) +[ok]: test RESP2/3 double protocol parsing (1 ms) [ok]: test RESP2/3 null protocol parsing (1 ms) [ok]: test RESP2/3 verbatim protocol parsing (0 ms) -[ok]: test RESP2/3 true protocol parsing (1 ms) +[ok]: test RESP2/3 true protocol parsing (0 ms) [ok]: test RESP2/3 false protocol parsing (0 ms) [ok]: test RESP3/2 big number protocol parsing (1 ms) -[ok]: test RESP3/2 malformed big number protocol parsing (0 ms) +[ok]: test RESP3/2 malformed big number protocol parsing (1 ms) [ok]: test RESP3/2 map protocol parsing (1 ms) -[ok]: test RESP3/2 set protocol parsing (4 ms) +[ok]: test RESP3/2 set protocol parsing (1 ms) [ok]: test RESP3/2 double protocol parsing (1 ms) -[ok]: test RESP3/2 null protocol parsing (0 ms) -[ok]: test RESP3/2 verbatim protocol parsing (0 ms) -[ok]: test RESP3/2 true protocol parsing (0 ms) -[ok]: test RESP3/2 false protocol parsing (6 ms) +[ok]: test RESP3/2 null protocol parsing (1 ms) +[ok]: test RESP3/2 verbatim protocol parsing (1 ms) +[ok]: test RESP3/2 true protocol parsing (1 ms) +[ok]: test RESP3/2 false protocol parsing (1 ms) [ok]: test RESP3/3 big number protocol parsing (0 ms) [ok]: test RESP3/3 malformed big number protocol parsing (1 ms) -[ok]: test RESP3/3 map protocol parsing (0 ms) -[ok]: test RESP3/3 set protocol parsing (0 ms) +[ok]: test RESP3/3 map protocol parsing (1 ms) +[ok]: test RESP3/3 set protocol parsing (1 ms) [ok]: test RESP3/3 double protocol parsing (0 ms) [ok]: test RESP3/3 null protocol parsing (0 ms) [ok]: test RESP3/3 verbatim protocol parsing (1 ms) -[ok]: test RESP3/3 true protocol parsing (0 ms) -[ok]: test RESP3/3 false protocol parsing (1 ms) -[ok]: test resp3 attribute protocol parsing (0 ms) +[ok]: test RESP3/3 true protocol parsing (1 ms) +[ok]: test RESP3/3 false protocol parsing (0 ms) +[ok]: test resp3 attribute protocol parsing (1 ms) [ok]: Script block the time during execution (11 ms) -[ok]: Script delete the expired key (4 ms) -[ok]: TIME command using cached time (14 ms) -[ok]: Script block the time in some expiration related commands (82 ms) -[ok]: RESTORE expired keys with expiration time (15 ms) +[ok]: Script delete the expired key (5 ms) +[ok]: TIME command using cached time (11 ms) +[ok]: Script block the time in some expiration related commands (83 ms) +[ok]: RESTORE expired keys with expiration time (11 ms) === (scripting) Starting server on 127.0.0.1:21177 ok [ok]: EVAL - Does Lua interpreter replies to our requests? (1 ms) -[ok]: EVAL - Return _G (0 ms) +[ok]: EVAL - Return _G (1 ms) [ok]: EVAL - Return table with a metatable that raise error (1 ms) [ok]: EVAL - Return table with a metatable that call server (1 ms) -[ok]: EVAL - Lua integer -> Redis protocol type conversion (0 ms) +[ok]: EVAL - Lua integer -> Redis protocol type conversion (2 ms) [ok]: EVAL - Lua string -> Redis protocol type conversion (0 ms) [ok]: EVAL - Lua true boolean -> Redis protocol type conversion (0 ms) -[ok]: EVAL - Lua false boolean -> Redis protocol type conversion (0 ms) -[ok]: EVAL - Lua status code reply -> Redis protocol type conversion (1 ms) +[ok]: EVAL - Lua false boolean -> Redis protocol type conversion (1 ms) +[ok]: EVAL - Lua status code reply -> Redis protocol type conversion (0 ms) [ok]: EVAL - Lua error reply -> Redis protocol type conversion (0 ms) [ok]: EVAL - Lua table -> Redis protocol type conversion (0 ms) -[ok]: EVAL - Are the KEYS and ARGV arrays populated correctly? (0 ms) -[ok]: EVAL - is Lua able to call Redis API? (0 ms) +[ok]: EVAL - Are the KEYS and ARGV arrays populated correctly? (1 ms) +[ok]: EVAL - is Lua able to call Redis API? (1 ms) [ok]: EVAL - Redis integer -> Lua type conversion (1 ms) [ok]: EVAL - Lua number -> Redis integer conversion (0 ms) -[ok]: EVAL - Redis bulk -> Lua type conversion (0 ms) -[ok]: EVAL - Redis multi bulk -> Lua type conversion (1 ms) +[ok]: EVAL - Redis bulk -> Lua type conversion (1 ms) +[ok]: EVAL - Redis multi bulk -> Lua type conversion (2 ms) [ok]: EVAL - Redis status reply -> Lua type conversion (1 ms) -[ok]: EVAL - Redis error reply -> Lua type conversion (0 ms) -[ok]: EVAL - Redis nil bulk reply -> Lua type conversion (0 ms) +[ok]: EVAL - Redis error reply -> Lua type conversion (1 ms) +[ok]: EVAL - Redis nil bulk reply -> Lua type conversion (1 ms) [ok]: EVAL - Is the Lua client using the currently selected DB? (1 ms) [ok]: EVAL - SELECT inside Lua should not affect the caller (1 ms) -[ok]: EVAL - Scripts do not block on blpop command (5 ms) -[ok]: EVAL - Scripts do not block on brpop command (1 ms) +[ok]: EVAL - Scripts do not block on blpop command (1 ms) +[ok]: EVAL - Scripts do not block on brpop command (2 ms) [ok]: EVAL - Scripts do not block on brpoplpush command (1 ms) -[ok]: EVAL - Scripts do not block on blmove command (1 ms) -[ok]: EVAL - Scripts do not block on bzpopmin command (0 ms) -[ok]: EVAL - Scripts do not block on bzpopmax command (0 ms) -[ok]: EVAL - Scripts do not block on wait (0 ms) -[ok]: EVAL - Scripts do not block on waitaof (1 ms) -[ok]: EVAL - Scripts do not block on XREAD with BLOCK option (1 ms) -[ok]: EVAL - Scripts do not block on XREADGROUP with BLOCK option (0 ms) -[ok]: EVAL - Scripts do not block on XREAD with BLOCK option -- non empty stream (5 ms) -[ok]: EVAL - Scripts do not block on XREADGROUP with BLOCK option -- non empty stream (0 ms) -[ok]: EVAL - Scripts can run non-deterministic commands (0 ms) +[ok]: EVAL - Scripts do not block on blmove command (2 ms) +[ok]: EVAL - Scripts do not block on bzpopmin command (2 ms) +[ok]: EVAL - Scripts do not block on bzpopmax command (2 ms) +[ok]: EVAL - Scripts do not block on wait (1 ms) +[ok]: EVAL - Scripts do not block on waitaof (0 ms) +[ok]: EVAL - Scripts do not block on XREAD with BLOCK option (2 ms) +[ok]: EVAL - Scripts do not block on XREADGROUP with BLOCK option (1 ms) +[ok]: EVAL - Scripts do not block on XREAD with BLOCK option -- non empty stream (2 ms) +[ok]: EVAL - Scripts do not block on XREADGROUP with BLOCK option -- non empty stream (1 ms) +[ok]: EVAL - Scripts can run non-deterministic commands (1 ms) [ok]: EVAL - No arguments to redis.call/pcall is considered an error (1 ms) -[ok]: EVAL - redis.call variant raises a Lua error on Redis cmd error (1) (0 ms) +[ok]: EVAL - redis.call variant raises a Lua error on Redis cmd error (1) (1 ms) [ok]: EVAL - redis.call variant raises a Lua error on Redis cmd error (1) (1 ms) [ok]: EVAL - redis.call variant raises a Lua error on Redis cmd error (1) (1 ms) [ignore]: EVAL - JSON string encoding a string larger than 2GB: large memory flag not provided -[ok]: EVAL - JSON numeric decoding (0 ms) +[ok]: EVAL - JSON numeric decoding (1 ms) [ok]: EVAL - JSON string decoding (1 ms) [ok]: EVAL - JSON smoke test (0 ms) [ok]: EVAL - cmsgpack can pack double? (0 ms) -[ok]: EVAL - cmsgpack can pack negative int64? (0 ms) -[ok]: EVAL - cmsgpack pack/unpack smoke test (390 ms) -[ok]: EVAL - cmsgpack can pack and unpack circular references? (0 ms) +[ok]: EVAL - cmsgpack can pack negative int64? (1 ms) +[ok]: EVAL - cmsgpack pack/unpack smoke test (313 ms) +[ok]: EVAL - cmsgpack can pack and unpack circular references? (1 ms) [ok]: EVAL - Numerical sanity check from bitop (1 ms) -[ok]: EVAL - Verify minimal bitop functionality (1 ms) +[ok]: EVAL - Verify minimal bitop functionality (0 ms) [ok]: EVAL - Able to parse trailing comments (0 ms) -[ok]: EVAL_RO - Successful case (0 ms) +[ok]: EVAL_RO - Successful case (1 ms) [ok]: EVAL_RO - Cannot run write commands (1 ms) [ok]: redis.sha1hex() implementation (1 ms) [ok]: Measures elapsed time os.clock() (1001 ms) -[ok]: Prohibit dangerous lua methods in sandbox (0 ms) -[ok]: Verify execution of prohibit dangerous Lua methods will fail (2 ms) +[ok]: Prohibit dangerous lua methods in sandbox (1 ms) +[ok]: Verify execution of prohibit dangerous Lua methods will fail (4 ms) [ok]: Globals protection reading an undeclared global variable (0 ms) [ok]: Globals protection setting an undeclared global* (1 ms) [ok]: lua bit.tohex bug (1 ms) [ok]: Test an example script DECR_IF_GT (2 ms) -[ok]: EVAL does not leak in the Lua stack (846 ms) +[ok]: EVAL does not leak in the Lua stack (788 ms) [ok]: Call Redis command with many args from Lua (issue #1764) (1 ms) -[ok]: Number conversion precision test (issue #1118) (0 ms) -[ok]: String containing number precision test (regression of issue #1118) (1 ms) -[ok]: Verify negative arg count is error instead of crash (issue #1842) (0 ms) -[ok]: Scripts can handle commands with incorrect arity (1 ms) +[ok]: Number conversion precision test (issue #1118) (1 ms) +[ok]: String containing number precision test (regression of issue #1118) (0 ms) +[ok]: Verify negative arg count is error instead of crash (issue #1842) (1 ms) +[ok]: Scripts can handle commands with incorrect arity (0 ms) [ok]: Correct handling of reused argv (issue #1939) (0 ms) [ok]: Functions in the Redis namespace are able to report errors (0 ms) [ok]: CLUSTER RESET can not be invoke from within a script (0 ms) [ok]: Script with RESP3 map (1 ms) -[ok]: Script return recursive object (80 ms) -[ok]: Script check unpack with massive arguments (3 ms) -[ok]: Script read key with expiration set (0 ms) -[ok]: Script del key with expiration set (0 ms) +[ok]: Script return recursive object (88 ms) +[ok]: Script check unpack with massive arguments (7 ms) +[ok]: Script read key with expiration set (1 ms) +[ok]: Script del key with expiration set (1 ms) [ok]: Script ACL check (2 ms) -[ok]: Binary code loading failed (0 ms) -[ok]: Try trick global protection 1 (1 ms) -[ok]: Try trick global protection 2 (0 ms) -[ok]: Try trick global protection 3 (1 ms) -[ok]: Try trick global protection 4 (0 ms) -[ok]: Try trick readonly table on valkey table (1 ms) -[ok]: Try trick readonly table on json table (0 ms) -[ok]: Try trick readonly table on cmsgpack table (1 ms) -[ok]: Try trick readonly table on bit table (0 ms) -[ok]: Test loadfile are not available (1 ms) +[ok]: Binary code loading failed (1 ms) +[ok]: Try trick global protection 1 (0 ms) +[ok]: Try trick global protection 2 (1 ms) +[ok]: Try trick global protection 3 (0 ms) +[ok]: Try trick global protection 4 (1 ms) +[ok]: Try trick readonly table on valkey table (0 ms) +[ok]: Try trick readonly table on json table (1 ms) +[ok]: Try trick readonly table on cmsgpack table (0 ms) +[ok]: Try trick readonly table on bit table (1 ms) +[ok]: Test loadfile are not available (0 ms) [ok]: Test dofile are not available (0 ms) [ok]: Test print are not available (0 ms) [ignore]: large memory flag not provided === (scripting) Starting server on 127.0.0.1:21179 ok -[ok]: Timedout read-only scripts can be killed by SCRIPT KILL (424 ms) -[ok]: Timedout read-only scripts can be killed by SCRIPT KILL even when use pcall (166 ms) -[ok]: Timedout script does not cause a false dead client (168 ms) -[ok]: Timedout script link is still usable after Lua returns (117 ms) -[ok]: Timedout scripts and unblocked command (337 ms) -[ok]: Timedout scripts that modified data can't be killed by SCRIPT KILL (218 ms) -[ok]: SHUTDOWN NOSAVE can kill a timedout script anyway (3 ms) +[ok]: Timedout read-only scripts can be killed by SCRIPT KILL (438 ms) +[ok]: Timedout read-only scripts can be killed by SCRIPT KILL even when use pcall (134 ms) +[ok]: Timedout script does not cause a false dead client (110 ms) +[ok]: Timedout script link is still usable after Lua returns (76 ms) +[ok]: Timedout scripts and unblocked command (411 ms) +[ok]: Timedout scripts that modified data can't be killed by SCRIPT KILL (227 ms) +[ok]: SHUTDOWN NOSAVE can kill a timedout script anyway (5 ms) === (scripting repl needs:debug external:skip) Starting server on 127.0.0.1:21181 ok === () Starting server on 127.0.0.1:21183 ok -[ok]: Before the replica connects we issue two EVAL commands (1 ms) -[ok]: Connect a replica to the master instance (103 ms) -[ok]: Replication of script multiple pushes to list with BLPOP (633 ms) -[ok]: Lua scripts using SELECT are replicated correctly (2 ms) +[ok]: Before the replica connects we issue two EVAL commands (2 ms) +[ok]: Connect a replica to the master instance (104 ms) +[ok]: Replication of script multiple pushes to list with BLPOP (644 ms) +[ok]: Lua scripts using SELECT are replicated correctly (3 ms) === (scripting repl external:skip) Starting server on 127.0.0.1:21185 ok === () Starting server on 127.0.0.1:21187 ok -[ok]: Connect a replica to the master instance (105 ms) +[ok]: Connect a replica to the master instance (104 ms) [ok]: Redis.replicate_commands() can be issued anywhere now (1 ms) -[ok]: Redis.set_repl() can be issued before replicate_commands() now (2 ms) +[ok]: Redis.set_repl() can be issued before replicate_commands() now (1 ms) [ok]: Redis.set_repl() don't accept invalid values (1 ms) -[ok]: Test selective replication of certain commands from Lua (715 ms) -[ok]: PRNG is seeded randomly for command replication (1 ms) -[ok]: Using side effects is not a problem with command replication (1 ms) +[ok]: Test selective replication of certain commands from Lua (611 ms) +[ok]: PRNG is seeded randomly for command replication (2 ms) +[ok]: Using side effects is not a problem with command replication (2 ms) === (scripting needs:debug) Starting server on 127.0.0.1:21189 ok [ok]: test RESP2/2 big number protocol parsing (1 ms) [ok]: test RESP2/2 malformed big number protocol parsing (1 ms) -[ok]: test RESP2/2 map protocol parsing (0 ms) -[ok]: test RESP2/2 set protocol parsing (0 ms) +[ok]: test RESP2/2 map protocol parsing (1 ms) +[ok]: test RESP2/2 set protocol parsing (1 ms) [ok]: test RESP2/2 double protocol parsing (0 ms) [ok]: test RESP2/2 null protocol parsing (1 ms) -[ok]: test RESP2/2 verbatim protocol parsing (0 ms) -[ok]: test RESP2/2 true protocol parsing (0 ms) +[ok]: test RESP2/2 verbatim protocol parsing (1 ms) +[ok]: test RESP2/2 true protocol parsing (1 ms) [ok]: test RESP2/2 false protocol parsing (0 ms) [ok]: test RESP2/3 big number protocol parsing (1 ms) [ok]: test RESP2/3 malformed big number protocol parsing (0 ms) -[ok]: test RESP2/3 map protocol parsing (0 ms) -[ok]: test RESP2/3 set protocol parsing (0 ms) -[ok]: test RESP2/3 double protocol parsing (3 ms) -[ok]: test RESP2/3 null protocol parsing (1 ms) +[ok]: test RESP2/3 map protocol parsing (1 ms) +[ok]: test RESP2/3 set protocol parsing (1 ms) +[ok]: test RESP2/3 double protocol parsing (1 ms) +[ok]: test RESP2/3 null protocol parsing (0 ms) [ok]: test RESP2/3 verbatim protocol parsing (1 ms) -[ok]: test RESP2/3 true protocol parsing (6 ms) -[ok]: test RESP2/3 false protocol parsing (1 ms) -[ok]: test RESP3/2 big number protocol parsing (0 ms) -[ok]: test RESP3/2 malformed big number protocol parsing (0 ms) +[ok]: test RESP2/3 true protocol parsing (1 ms) +[ok]: test RESP2/3 false protocol parsing (0 ms) +[ok]: test RESP3/2 big number protocol parsing (1 ms) +[ok]: test RESP3/2 malformed big number protocol parsing (1 ms) [ok]: test RESP3/2 map protocol parsing (1 ms) -[ok]: test RESP3/2 set protocol parsing (1 ms) -[ok]: test RESP3/2 double protocol parsing (1 ms) -[ok]: test RESP3/2 null protocol parsing (0 ms) +[ok]: test RESP3/2 set protocol parsing (0 ms) +[ok]: test RESP3/2 double protocol parsing (0 ms) +[ok]: test RESP3/2 null protocol parsing (1 ms) [ok]: test RESP3/2 verbatim protocol parsing (0 ms) [ok]: test RESP3/2 true protocol parsing (1 ms) [ok]: test RESP3/2 false protocol parsing (1 ms) -[ok]: test RESP3/3 big number protocol parsing (1 ms) -[ok]: test RESP3/3 malformed big number protocol parsing (4 ms) +[ok]: test RESP3/3 big number protocol parsing (0 ms) +[ok]: test RESP3/3 malformed big number protocol parsing (1 ms) [ok]: test RESP3/3 map protocol parsing (1 ms) [ok]: test RESP3/3 set protocol parsing (1 ms) [ok]: test RESP3/3 double protocol parsing (0 ms) [ok]: test RESP3/3 null protocol parsing (0 ms) -[ok]: test RESP3/3 verbatim protocol parsing (5 ms) -[ok]: test RESP3/3 true protocol parsing (1 ms) -[ok]: test RESP3/3 false protocol parsing (0 ms) +[ok]: test RESP3/3 verbatim protocol parsing (1 ms) +[ok]: test RESP3/3 true protocol parsing (0 ms) +[ok]: test RESP3/3 false protocol parsing (1 ms) [ok]: test resp3 attribute protocol parsing (0 ms) -[ok]: Script block the time during execution (11 ms) -[ok]: Script delete the expired key (3 ms) +[ok]: Script block the time during execution (12 ms) +[ok]: Script delete the expired key (4 ms) [ok]: TIME command using cached time (11 ms) -[ok]: Script block the time in some expiration related commands (84 ms) +[ok]: Script block the time in some expiration related commands (83 ms) [ok]: RESTORE expired keys with expiration time (11 ms) === (scripting) Starting server on 127.0.0.1:21191 ok -[ok]: EVAL - Does Lua interpreter replies to our requests? (2 ms) -[ok]: EVAL - Return _G (4 ms) +[ok]: EVAL - Does Lua interpreter replies to our requests? (0 ms) +[ok]: EVAL - Return _G (1 ms) [ok]: EVAL - Return table with a metatable that raise error (0 ms) [ok]: EVAL - Return table with a metatable that call server (1 ms) [ok]: EVAL - Lua integer -> Redis protocol type conversion (0 ms) -[ok]: EVAL - Lua string -> Redis protocol type conversion (0 ms) +[ok]: EVAL - Lua string -> Redis protocol type conversion (1 ms) [ok]: EVAL - Lua true boolean -> Redis protocol type conversion (0 ms) [ok]: EVAL - Lua false boolean -> Redis protocol type conversion (1 ms) [ok]: EVAL - Lua status code reply -> Redis protocol type conversion (0 ms) [ok]: EVAL - Lua error reply -> Redis protocol type conversion (0 ms) [ok]: EVAL - Lua table -> Redis protocol type conversion (0 ms) -[ok]: EVAL - Are the KEYS and ARGV arrays populated correctly? (1 ms) -[ok]: EVAL - is Lua able to call Redis API? (0 ms) -[ok]: EVAL - Redis integer -> Lua type conversion (0 ms) +[ok]: EVAL - Are the KEYS and ARGV arrays populated correctly? (0 ms) +[ok]: EVAL - is Lua able to call Redis API? (1 ms) +[ok]: EVAL - Redis integer -> Lua type conversion (1 ms) [ok]: EVAL - Lua number -> Redis integer conversion (0 ms) [ok]: EVAL - Redis bulk -> Lua type conversion (0 ms) -[ok]: EVAL - Redis multi bulk -> Lua type conversion (4 ms) +[ok]: EVAL - Redis multi bulk -> Lua type conversion (2 ms) [ok]: EVAL - Redis status reply -> Lua type conversion (0 ms) -[ok]: EVAL - Redis error reply -> Lua type conversion (3 ms) -[ok]: EVAL - Redis nil bulk reply -> Lua type conversion (1 ms) +[ok]: EVAL - Redis error reply -> Lua type conversion (1 ms) +[ok]: EVAL - Redis nil bulk reply -> Lua type conversion (0 ms) [ok]: EVAL - Is the Lua client using the currently selected DB? (0 ms) [ok]: EVAL - SELECT inside Lua should not affect the caller (1 ms) -[ok]: EVAL - Scripts do not block on blpop command (0 ms) +[ok]: EVAL - Scripts do not block on blpop command (1 ms) [ok]: EVAL - Scripts do not block on brpop command (1 ms) -[ok]: EVAL - Scripts do not block on brpoplpush command (0 ms) +[ok]: EVAL - Scripts do not block on brpoplpush command (1 ms) [ok]: EVAL - Scripts do not block on blmove command (1 ms) -[ok]: EVAL - Scripts do not block on bzpopmin command (0 ms) -[ok]: EVAL - Scripts do not block on bzpopmax command (0 ms) +[ok]: EVAL - Scripts do not block on bzpopmin command (1 ms) +[ok]: EVAL - Scripts do not block on bzpopmax command (1 ms) [ok]: EVAL - Scripts do not block on wait (0 ms) -[ok]: EVAL - Scripts do not block on waitaof (0 ms) +[ok]: EVAL - Scripts do not block on waitaof (1 ms) [ok]: EVAL - Scripts do not block on XREAD with BLOCK option (1 ms) [ok]: EVAL - Scripts do not block on XREADGROUP with BLOCK option (0 ms) [ok]: EVAL - Scripts do not block on XREAD with BLOCK option -- non empty stream (1 ms) -[ok]: EVAL - Scripts do not block on XREADGROUP with BLOCK option -- non empty stream (0 ms) -[ok]: EVAL - Scripts can run non-deterministic commands (0 ms) -[ok]: EVAL - No arguments to redis.call/pcall is considered an error (4 ms) -[ok]: EVAL - redis.call variant raises a Lua error on Redis cmd error (1) (0 ms) +[ok]: EVAL - Scripts do not block on XREADGROUP with BLOCK option -- non empty stream (1 ms) +[ok]: EVAL - Scripts can run non-deterministic commands (1 ms) +[ok]: EVAL - No arguments to redis.call/pcall is considered an error (0 ms) [ok]: EVAL - redis.call variant raises a Lua error on Redis cmd error (1) (0 ms) [ok]: EVAL - redis.call variant raises a Lua error on Redis cmd error (1) (0 ms) +[ok]: EVAL - redis.call variant raises a Lua error on Redis cmd error (1) (1 ms) [ignore]: EVAL - JSON string encoding a string larger than 2GB: large memory flag not provided -[ok]: EVAL - JSON numeric decoding (0 ms) -[ok]: EVAL - JSON string decoding (1 ms) -[ok]: EVAL - JSON smoke test (0 ms) +[ok]: EVAL - JSON numeric decoding (1 ms) +[ok]: EVAL - JSON string decoding (0 ms) +[ok]: EVAL - JSON smoke test (1 ms) [ok]: EVAL - cmsgpack can pack double? (0 ms) [ok]: EVAL - cmsgpack can pack negative int64? (0 ms) -[ok]: EVAL - cmsgpack pack/unpack smoke test (346 ms) -[ok]: EVAL - cmsgpack can pack and unpack circular references? (0 ms) +[ok]: EVAL - cmsgpack pack/unpack smoke test (321 ms) +[ok]: EVAL - cmsgpack can pack and unpack circular references? (1 ms) [ok]: EVAL - Numerical sanity check from bitop (1 ms) -[ok]: EVAL - Verify minimal bitop functionality (0 ms) +[ok]: EVAL - Verify minimal bitop functionality (1 ms) [ok]: EVAL - Able to parse trailing comments (0 ms) [ok]: EVAL_RO - Successful case (1 ms) -[ok]: EVAL_RO - Cannot run write commands (0 ms) -[ok]: redis.sha1hex() implementation (1 ms) -[ok]: Measures elapsed time os.clock() (1000 ms) -[ok]: Prohibit dangerous lua methods in sandbox (0 ms) +[ok]: EVAL_RO - Cannot run write commands (1 ms) +[ok]: redis.sha1hex() implementation (0 ms) +[ok]: Measures elapsed time os.clock() (1001 ms) +[ok]: Prohibit dangerous lua methods in sandbox (1 ms) [ok]: Verify execution of prohibit dangerous Lua methods will fail (2 ms) -[ok]: Globals protection reading an undeclared global variable (0 ms) +[ok]: Globals protection reading an undeclared global variable (1 ms) [ok]: Globals protection setting an undeclared global* (0 ms) -[ok]: lua bit.tohex bug (0 ms) +[ok]: lua bit.tohex bug (1 ms) [ok]: Test an example script DECR_IF_GT (1 ms) -[ok]: EVAL does not leak in the Lua stack (516 ms) +[ok]: EVAL does not leak in the Lua stack (423 ms) [ok]: Call Redis command with many args from Lua (issue #1764) (1 ms) [ok]: Number conversion precision test (issue #1118) (0 ms) [ok]: String containing number precision test (regression of issue #1118) (0 ms) -[ok]: Verify negative arg count is error instead of crash (issue #1842) (0 ms) -[ok]: Scripts can handle commands with incorrect arity (1 ms) -[ok]: Correct handling of reused argv (issue #1939) (0 ms) +[ok]: Verify negative arg count is error instead of crash (issue #1842) (1 ms) +[ok]: Scripts can handle commands with incorrect arity (0 ms) +[ok]: Correct handling of reused argv (issue #1939) (1 ms) [ok]: Functions in the Redis namespace are able to report errors (0 ms) [ok]: CLUSTER RESET can not be invoke from within a script (0 ms) -[ok]: Script with RESP3 map (2 ms) -[ok]: Script return recursive object (84 ms) -[ok]: Script check unpack with massive arguments (3 ms) -[ok]: Script read key with expiration set (0 ms) -[ok]: Script del key with expiration set (1 ms) -[ok]: Script ACL check (1 ms) +[ok]: Script with RESP3 map (1 ms) +[ok]: Script return recursive object (81 ms) +[ok]: Script check unpack with massive arguments (9 ms) +[ok]: Script read key with expiration set (1 ms) +[ok]: Script del key with expiration set (0 ms) +[ok]: Script ACL check (2 ms) [ok]: Binary code loading failed (0 ms) [ok]: Try trick global protection 1 (0 ms) -[ok]: Try trick global protection 2 (0 ms) -[ok]: Try trick global protection 3 (1 ms) +[ok]: Try trick global protection 2 (1 ms) +[ok]: Try trick global protection 3 (0 ms) [ok]: Try trick global protection 4 (0 ms) -[ok]: Try trick readonly table on valkey table (0 ms) -[ok]: Try trick readonly table on json table (1 ms) +[ok]: Try trick readonly table on valkey table (1 ms) +[ok]: Try trick readonly table on json table (0 ms) [ok]: Try trick readonly table on cmsgpack table (0 ms) [ok]: Try trick readonly table on bit table (0 ms) [ok]: Test loadfile are not available (0 ms) @@ -1459,738 +1495,737 @@ [ok]: Test print are not available (0 ms) [ignore]: large memory flag not provided === (scripting) Starting server on 127.0.0.1:21193 ok -[ok]: Timedout read-only scripts can be killed by SCRIPT KILL (428 ms) -[ok]: Timedout read-only scripts can be killed by SCRIPT KILL even when use pcall (145 ms) -[ok]: Timedout script does not cause a false dead client (166 ms) -[ok]: Timedout script link is still usable after Lua returns (108 ms) -[ok]: Timedout scripts and unblocked command (269 ms) -[ok]: Timedout scripts that modified data can't be killed by SCRIPT KILL (217 ms) -[ok]: SHUTDOWN NOSAVE can kill a timedout script anyway (6 ms) +[ok]: Timedout read-only scripts can be killed by SCRIPT KILL (435 ms) +[ok]: Timedout read-only scripts can be killed by SCRIPT KILL even when use pcall (126 ms) +[ok]: Timedout script does not cause a false dead client (109 ms) +[ok]: Timedout script link is still usable after Lua returns (76 ms) +[ok]: Timedout scripts and unblocked command (393 ms) +[ok]: Timedout scripts that modified data can't be killed by SCRIPT KILL (225 ms) +[ok]: SHUTDOWN NOSAVE can kill a timedout script anyway (5 ms) === (scripting repl needs:debug external:skip) Starting server on 127.0.0.1:21195 ok === () Starting server on 127.0.0.1:21197 ok -[ok]: Before the replica connects we issue two EVAL commands (2 ms) -[ok]: Connect a replica to the master instance (102 ms) -[ok]: Replication of script multiple pushes to list with BLPOP (16 ms) -[ok]: Lua scripts using SELECT are replicated correctly (1 ms) +[ok]: Before the replica connects we issue two EVAL commands (1 ms) +[ok]: Connect a replica to the master instance (105 ms) +[ok]: Replication of script multiple pushes to list with BLPOP (643 ms) +[ok]: Lua scripts using SELECT are replicated correctly (2 ms) === (scripting repl external:skip) Starting server on 127.0.0.1:21199 ok === () Starting server on 127.0.0.1:21201 ok -[ok]: Connect a replica to the master instance (126 ms) +[ok]: Connect a replica to the master instance (105 ms) [ok]: Redis.replicate_commands() can be issued anywhere now (1 ms) [ok]: Redis.set_repl() can be issued before replicate_commands() now (0 ms) [ok]: Redis.set_repl() don't accept invalid values (0 ms) -[ok]: Test selective replication of certain commands from Lua (608 ms) +[ok]: Test selective replication of certain commands from Lua (610 ms) [ok]: PRNG is seeded randomly for command replication (1 ms) -[ok]: Using side effects is not a problem with command replication (1 ms) +[ok]: Using side effects is not a problem with command replication (2 ms) === (scripting needs:debug) Starting server on 127.0.0.1:21203 ok -[ok]: test RESP2/2 big number protocol parsing (1 ms) -[ok]: test RESP2/2 malformed big number protocol parsing (0 ms) +[ok]: test RESP2/2 big number protocol parsing (0 ms) +[ok]: test RESP2/2 malformed big number protocol parsing (1 ms) [ok]: test RESP2/2 map protocol parsing (0 ms) -[ok]: test RESP2/2 set protocol parsing (1 ms) -[ok]: test RESP2/2 double protocol parsing (0 ms) +[ok]: test RESP2/2 set protocol parsing (0 ms) +[ok]: test RESP2/2 double protocol parsing (1 ms) [ok]: test RESP2/2 null protocol parsing (0 ms) -[ok]: test RESP2/2 verbatim protocol parsing (0 ms) +[ok]: test RESP2/2 verbatim protocol parsing (1 ms) [ok]: test RESP2/2 true protocol parsing (0 ms) [ok]: test RESP2/2 false protocol parsing (0 ms) -[ok]: test RESP2/3 big number protocol parsing (1 ms) -[ok]: test RESP2/3 malformed big number protocol parsing (0 ms) +[ok]: test RESP2/3 big number protocol parsing (0 ms) +[ok]: test RESP2/3 malformed big number protocol parsing (1 ms) [ok]: test RESP2/3 map protocol parsing (0 ms) [ok]: test RESP2/3 set protocol parsing (1 ms) [ok]: test RESP2/3 double protocol parsing (0 ms) -[ok]: test RESP2/3 null protocol parsing (0 ms) +[ok]: test RESP2/3 null protocol parsing (1 ms) [ok]: test RESP2/3 verbatim protocol parsing (0 ms) -[ok]: test RESP2/3 true protocol parsing (0 ms) -[ok]: test RESP2/3 false protocol parsing (2 ms) -[ok]: test RESP3/2 big number protocol parsing (0 ms) +[ok]: test RESP2/3 true protocol parsing (1 ms) +[ok]: test RESP2/3 false protocol parsing (0 ms) +[ok]: test RESP3/2 big number protocol parsing (1 ms) [ok]: test RESP3/2 malformed big number protocol parsing (0 ms) -[ok]: test RESP3/2 map protocol parsing (0 ms) -[ok]: test RESP3/2 set protocol parsing (0 ms) +[ok]: test RESP3/2 map protocol parsing (1 ms) +[ok]: test RESP3/2 set protocol parsing (1 ms) [ok]: test RESP3/2 double protocol parsing (0 ms) -[ok]: test RESP3/2 null protocol parsing (0 ms) -[ok]: test RESP3/2 verbatim protocol parsing (1 ms) +[ok]: test RESP3/2 null protocol parsing (1 ms) +[ok]: test RESP3/2 verbatim protocol parsing (0 ms) [ok]: test RESP3/2 true protocol parsing (0 ms) -[ok]: test RESP3/2 false protocol parsing (5 ms) +[ok]: test RESP3/2 false protocol parsing (0 ms) [ok]: test RESP3/3 big number protocol parsing (0 ms) -[ok]: test RESP3/3 malformed big number protocol parsing (0 ms) +[ok]: test RESP3/3 malformed big number protocol parsing (1 ms) [ok]: test RESP3/3 map protocol parsing (0 ms) -[ok]: test RESP3/3 set protocol parsing (0 ms) +[ok]: test RESP3/3 set protocol parsing (1 ms) [ok]: test RESP3/3 double protocol parsing (0 ms) -[ok]: test RESP3/3 null protocol parsing (0 ms) -[ok]: test RESP3/3 verbatim protocol parsing (1 ms) -[ok]: test RESP3/3 true protocol parsing (0 ms) +[ok]: test RESP3/3 null protocol parsing (1 ms) +[ok]: test RESP3/3 verbatim protocol parsing (0 ms) +[ok]: test RESP3/3 true protocol parsing (1 ms) [ok]: test RESP3/3 false protocol parsing (0 ms) -[ok]: test resp3 attribute protocol parsing (1 ms) -[ok]: Script block the time during execution (16 ms) +[ok]: test resp3 attribute protocol parsing (0 ms) +[ok]: Script block the time during execution (11 ms) [ok]: Script delete the expired key (4 ms) [ok]: TIME command using cached time (11 ms) -[ok]: Script block the time in some expiration related commands (85 ms) +[ok]: Script block the time in some expiration related commands (82 ms) [ok]: RESTORE expired keys with expiration time (11 ms) === (scripting) Starting server on 127.0.0.1:21205 ok [ok]: Script - disallow write on OOM (1 ms) -[ok]: EVAL - Does Lua interpreter replies to our requests? (0 ms) +[ok]: EVAL - Does Lua interpreter replies to our requests? (1 ms) [ok]: EVAL - Return _G (0 ms) -[ok]: EVAL - Return table with a metatable that raise error (0 ms) +[ok]: EVAL - Return table with a metatable that raise error (1 ms) [ok]: EVAL - Return table with a metatable that call server (0 ms) [ok]: EVAL - Lua integer -> Redis protocol type conversion (0 ms) -[ok]: EVAL - Lua string -> Redis protocol type conversion (1 ms) -[ok]: EVAL - Lua true boolean -> Redis protocol type conversion (0 ms) +[ok]: EVAL - Lua string -> Redis protocol type conversion (0 ms) +[ok]: EVAL - Lua true boolean -> Redis protocol type conversion (1 ms) [ok]: EVAL - Lua false boolean -> Redis protocol type conversion (0 ms) [ok]: EVAL - Lua status code reply -> Redis protocol type conversion (0 ms) -[ok]: EVAL - Lua error reply -> Redis protocol type conversion (0 ms) +[ok]: EVAL - Lua error reply -> Redis protocol type conversion (1 ms) [ok]: EVAL - Lua table -> Redis protocol type conversion (0 ms) -[ok]: EVAL - Are the KEYS and ARGV arrays populated correctly? (0 ms) +[ok]: EVAL - Are the KEYS and ARGV arrays populated correctly? (1 ms) [ok]: EVAL - is Lua able to call Redis API? (0 ms) -[ok]: EVALSHA - Can we call a SHA1 if already defined? (0 ms) +[ok]: EVALSHA - Can we call a SHA1 if already defined? (1 ms) [ok]: EVALSHA_RO - Can we call a SHA1 if already defined? (0 ms) -[ok]: EVALSHA - Can we call a SHA1 in uppercase? (7 ms) +[ok]: EVALSHA - Can we call a SHA1 in uppercase? (1 ms) [ok]: EVALSHA - Do we get an error on invalid SHA1? (0 ms) -[ok]: EVALSHA - Do we get an error on non defined SHA1? (1 ms) -[ok]: EVAL - Redis integer -> Lua type conversion (0 ms) -[ok]: EVAL - Lua number -> Redis integer conversion (0 ms) -[ok]: EVAL - Redis bulk -> Lua type conversion (0 ms) +[ok]: EVALSHA - Do we get an error on non defined SHA1? (0 ms) +[ok]: EVAL - Redis integer -> Lua type conversion (1 ms) +[ok]: EVAL - Lua number -> Redis integer conversion (1 ms) +[ok]: EVAL - Redis bulk -> Lua type conversion (1 ms) [ok]: EVAL - Redis multi bulk -> Lua type conversion (1 ms) [ok]: EVAL - Redis status reply -> Lua type conversion (0 ms) -[ok]: EVAL - Redis error reply -> Lua type conversion (0 ms) -[ok]: EVAL - Redis nil bulk reply -> Lua type conversion (1 ms) -[ok]: EVAL - Is the Lua client using the currently selected DB? (0 ms) +[ok]: EVAL - Redis error reply -> Lua type conversion (1 ms) +[ok]: EVAL - Redis nil bulk reply -> Lua type conversion (0 ms) +[ok]: EVAL - Is the Lua client using the currently selected DB? (1 ms) [ok]: EVAL - SELECT inside Lua should not affect the caller (1 ms) -[ok]: EVAL - Scripts do not block on blpop command (0 ms) +[ok]: EVAL - Scripts do not block on blpop command (1 ms) [ok]: EVAL - Scripts do not block on brpop command (1 ms) -[ok]: EVAL - Scripts do not block on brpoplpush command (0 ms) -[ok]: EVAL - Scripts do not block on blmove command (1 ms) -[ok]: EVAL - Scripts do not block on bzpopmin command (0 ms) -[ok]: EVAL - Scripts do not block on bzpopmax command (0 ms) -[ok]: EVAL - Scripts do not block on wait (0 ms) -[ok]: EVAL - Scripts do not block on waitaof (1 ms) -[ok]: EVAL - Scripts do not block on XREAD with BLOCK option (3 ms) +[ok]: EVAL - Scripts do not block on brpoplpush command (1 ms) +[ok]: EVAL - Scripts do not block on blmove command (0 ms) +[ok]: EVAL - Scripts do not block on bzpopmin command (2 ms) +[ok]: EVAL - Scripts do not block on bzpopmax command (1 ms) +[ok]: EVAL - Scripts do not block on wait (1 ms) +[ok]: EVAL - Scripts do not block on waitaof (0 ms) +[ok]: EVAL - Scripts do not block on XREAD with BLOCK option (1 ms) [ok]: EVAL - Scripts do not block on XREADGROUP with BLOCK option (1 ms) -[ok]: EVAL - Scripts do not block on XREAD with BLOCK option -- non empty stream (0 ms) -[ok]: EVAL - Scripts do not block on XREADGROUP with BLOCK option -- non empty stream (0 ms) +[ok]: EVAL - Scripts do not block on XREAD with BLOCK option -- non empty stream (1 ms) +[ok]: EVAL - Scripts do not block on XREADGROUP with BLOCK option -- non empty stream (1 ms) [ok]: EVAL - Scripts can run non-deterministic commands (0 ms) [ok]: EVAL - No arguments to redis.call/pcall is considered an error (1 ms) [ok]: EVAL - redis.call variant raises a Lua error on Redis cmd error (1) (0 ms) -[ok]: EVAL - redis.call variant raises a Lua error on Redis cmd error (1) (0 ms) [ok]: EVAL - redis.call variant raises a Lua error on Redis cmd error (1) (1 ms) +[ok]: EVAL - redis.call variant raises a Lua error on Redis cmd error (1) (0 ms) [ignore]: EVAL - JSON string encoding a string larger than 2GB: large memory flag not provided -[ok]: EVAL - JSON numeric decoding (0 ms) +[ok]: EVAL - JSON numeric decoding (1 ms) [ok]: EVAL - JSON string decoding (0 ms) -[ok]: EVAL - JSON smoke test (3 ms) +[ok]: EVAL - JSON smoke test (1 ms) [ok]: EVAL - cmsgpack can pack double? (1 ms) [ok]: EVAL - cmsgpack can pack negative int64? (0 ms) -[ok]: EVAL - cmsgpack pack/unpack smoke test (508 ms) -[ok]: EVAL - cmsgpack can pack and unpack circular references? (0 ms) -[ok]: EVAL - Numerical sanity check from bitop (1 ms) -[ok]: EVAL - Verify minimal bitop functionality (0 ms) +[ok]: EVAL - cmsgpack pack/unpack smoke test (317 ms) +[ok]: EVAL - cmsgpack can pack and unpack circular references? (1 ms) +[ok]: EVAL - Numerical sanity check from bitop (0 ms) +[ok]: EVAL - Verify minimal bitop functionality (1 ms) [ok]: EVAL - Able to parse trailing comments (0 ms) [ok]: EVAL_RO - Successful case (1 ms) [ok]: EVAL_RO - Cannot run write commands (0 ms) [ok]: SCRIPTING FLUSH - is able to clear the scripts cache? (23 ms) -[ok]: EVAL - Test table unpack with invalid indexes (1 ms) +[ok]: EVAL - Test table unpack with invalid indexes (2 ms) [ok]: Try trick readonly table on basic types metatable (1 ms) [ok]: Dynamic reset of lua engine with insecure API config change (1 ms) -[ok]: SCRIPTING FLUSH ASYNC (12 ms) -[ok]: SCRIPT EXISTS - can detect already defined scripts? (0 ms) +[ok]: SCRIPTING FLUSH ASYNC (16 ms) +[ok]: SCRIPT EXISTS - can detect already defined scripts? (1 ms) [ok]: SCRIPT LOAD - is able to register scripts in the scripting cache (0 ms) [ok]: SCRIPT SHOW - is able to dump scripts from the scripting cache (1 ms) [ok]: SCRIPT SHOW - wrong sha1 length or invalid sha1 char return noscript error (0 ms) [ok]: SCRIPT SHOW - script not exist return noscript error (1 ms) -[ok]: SORT is normally not alpha re-ordered for the scripting engine (0 ms) +[ok]: SORT is normally not alpha re-ordered for the scripting engine (1 ms) [ok]: SORT BY output gets ordered for scripting (1 ms) [ok]: SORT BY with GET gets ordered for scripting (1 ms) [ok]: redis.sha1hex() implementation (0 ms) -[ok]: Measures elapsed time os.clock() (997 ms) -[ok]: Prohibit dangerous lua methods in sandbox (1 ms) -[ok]: Verify execution of prohibit dangerous Lua methods will fail (1 ms) -[ok]: Globals protection reading an undeclared global variable (0 ms) -[ok]: Globals protection setting an undeclared global* (1 ms) -[ok]: lua bit.tohex bug (0 ms) +[ok]: Measures elapsed time os.clock() (999 ms) +[ok]: Prohibit dangerous lua methods in sandbox (0 ms) +[ok]: Verify execution of prohibit dangerous Lua methods will fail (2 ms) +[ok]: Globals protection reading an undeclared global variable (1 ms) +[ok]: Globals protection setting an undeclared global* (0 ms) +[ok]: lua bit.tohex bug (1 ms) [ok]: Test an example script DECR_IF_GT (1 ms) -[ok]: random numbers are random now (0 ms) -[ok]: Scripting engine PRNG can be seeded correctly (1 ms) -[ok]: EVAL does not leak in the Lua stack (402 ms) -[ok]: SPOP: We can call scripts rewriting client->argv from Lua (105 ms) -[ok]: MGET: mget shouldn't be propagated in Lua (100 ms) +[ok]: random numbers are random now (1 ms) +[ok]: Scripting engine PRNG can be seeded correctly (0 ms) +[ok]: EVAL does not leak in the Lua stack (383 ms) +[ok]: SPOP: We can call scripts rewriting client->argv from Lua (119 ms) +[ok]: MGET: mget shouldn't be propagated in Lua (99 ms) [ok]: EXPIRE: We can call scripts rewriting client->argv from Lua (100 ms) === (scripting) Starting server on 127.0.0.1:21207 ok [ok]: INCRBYFLOAT: We can call scripts expanding client->argv from Lua (360 ms) -[ok]: Call Redis command with many args from Lua (issue #1764) (3 ms) -[ok]: Number conversion precision test (issue #1118) (0 ms) +[ok]: Call Redis command with many args from Lua (issue #1764) (2 ms) +[ok]: Number conversion precision test (issue #1118) (1 ms) [ok]: String containing number precision test (regression of issue #1118) (0 ms) -[ok]: Verify negative arg count is error instead of crash (issue #1842) (1 ms) +[ok]: Verify negative arg count is error instead of crash (issue #1842) (0 ms) [ok]: Scripts can handle commands with incorrect arity (1 ms) [ok]: Correct handling of reused argv (issue #1939) (0 ms) [ok]: Functions in the Redis namespace are able to report errors (0 ms) [ok]: CLUSTER RESET can not be invoke from within a script (0 ms) -[ok]: Script with RESP3 map (3 ms) -[ok]: Script return recursive object (91 ms) -[ok]: Script check unpack with massive arguments (3 ms) +[ok]: Script with RESP3 map (2 ms) +[ok]: Script return recursive object (147 ms) +[ok]: Script check unpack with massive arguments (9 ms) [ok]: Script read key with expiration set (1 ms) -[ok]: Script del key with expiration set (1 ms) +[ok]: Script del key with expiration set (0 ms) [ok]: Script ACL check (1 ms) [ok]: Binary code loading failed (0 ms) [ok]: Try trick global protection 1 (0 ms) [ok]: Try trick global protection 2 (0 ms) -[ok]: Try trick global protection 3 (1 ms) -[ok]: Try trick global protection 4 (0 ms) +[ok]: Try trick global protection 3 (0 ms) +[ok]: Try trick global protection 4 (1 ms) [ok]: Try trick readonly table on valkey table (0 ms) [ok]: Try trick readonly table on json table (0 ms) [ok]: Try trick readonly table on cmsgpack table (0 ms) [ok]: Try trick readonly table on bit table (1 ms) [ok]: Test loadfile are not available (0 ms) -[ok]: Test dofile are not available (1 ms) +[ok]: Test dofile are not available (0 ms) [ok]: Test print are not available (0 ms) [ignore]: large memory flag not provided === (scripting) Starting server on 127.0.0.1:21209 ok -[ok]: Timedout read-only scripts can be killed by SCRIPT KILL (418 ms) -[ok]: Timedout read-only scripts can be killed by SCRIPT KILL even when use pcall (164 ms) -[ok]: Timedout script does not cause a false dead client (156 ms) -[ok]: Timedout script link is still usable after Lua returns (115 ms) -[ok]: Timedout scripts and unblocked command (394 ms) +[ok]: Timedout read-only scripts can be killed by SCRIPT KILL (424 ms) +[ok]: Timedout read-only scripts can be killed by SCRIPT KILL even when use pcall (83 ms) +[ok]: Timedout script does not cause a false dead client (91 ms) +[ok]: Timedout script link is still usable after Lua returns (74 ms) +[ok]: Timedout scripts and unblocked command (387 ms) [ok]: Timedout scripts that modified data can't be killed by SCRIPT KILL (225 ms) -[ok]: SHUTDOWN NOSAVE can kill a timedout script anyway (3 ms) +[ok]: SHUTDOWN NOSAVE can kill a timedout script anyway (5 ms) === (scripting repl needs:debug external:skip) Starting server on 127.0.0.1:21211 ok === () Starting server on 127.0.0.1:21213 ok [ok]: Before the replica connects we issue two EVAL commands (1 ms) -[ok]: Connect a replica to the master instance (102 ms) -[ok]: Now use EVALSHA against the master, with both SHAs (4 ms) +[ok]: Connect a replica to the master instance (104 ms) +[ok]: Now use EVALSHA against the master, with both SHAs (1 ms) [ok]: 'x' should be '4' for EVALSHA being replicated by effects (606 ms) -[ok]: Replication of script multiple pushes to list with BLPOP (22 ms) +[ok]: Replication of script multiple pushes to list with BLPOP (32 ms) [ok]: EVALSHA replication when first call is readonly (1 ms) -[ok]: Lua scripts using SELECT are replicated correctly (7 ms) +[ok]: Lua scripts using SELECT are replicated correctly (2 ms) === (scripting repl external:skip) Starting server on 127.0.0.1:21215 ok === () Starting server on 127.0.0.1:21217 ok -[ok]: Connect a replica to the master instance (103 ms) -[ok]: Redis.replicate_commands() can be issued anywhere now (0 ms) -[ok]: Redis.set_repl() can be issued before replicate_commands() now (0 ms) +[ok]: Connect a replica to the master instance (104 ms) +[ok]: Redis.replicate_commands() can be issued anywhere now (1 ms) +[ok]: Redis.set_repl() can be issued before replicate_commands() now (1 ms) [ok]: Redis.set_repl() don't accept invalid values (0 ms) -[ok]: Test selective replication of certain commands from Lua (718 ms) +[ok]: Test selective replication of certain commands from Lua (609 ms) [ok]: PRNG is seeded randomly for command replication (1 ms) [ok]: Using side effects is not a problem with command replication (1 ms) === (scripting external:skip) Starting server on 127.0.0.1:21219 ok === (scripting needs:debug external:skip) Starting server on 127.0.0.1:21221 ok -[ok]: Test scripting debug protocol parsing (8 ms) -[ok]: Test scripting debug lua stack overflow (19 ms) -[ok]: Test scripting debug lua server invocations (14 ms) +[ok]: Test scripting debug protocol parsing (1 ms) +[ok]: Test scripting debug lua stack overflow (32 ms) +[ok]: Test scripting debug lua server invocations (32 ms) === (scripting external:skip) Starting server on 127.0.0.1:21223 ok -[ok]: Lua scripts eviction does not generate many scripts (255 ms) -[ok]: Lua scripts eviction is plain LRU (127 ms) -[ok]: Lua scripts eviction does not affect script load (197 ms) -[ok]: Lua scripts promoted from eval to script load (97 ms) +[ok]: Lua scripts eviction does not generate many scripts (172 ms) +[ok]: Lua scripts eviction is plain LRU (60 ms) +[ok]: Lua scripts eviction does not affect script load (131 ms) +[ok]: Lua scripts promoted from eval to script load (73 ms) === (scripting needs:debug) Starting server on 127.0.0.1:21225 ok [ok]: test RESP2/2 big number protocol parsing (0 ms) -[ok]: test RESP2/2 malformed big number protocol parsing (7 ms) -[ok]: test RESP2/2 map protocol parsing (0 ms) +[ok]: test RESP2/2 malformed big number protocol parsing (0 ms) +[ok]: test RESP2/2 map protocol parsing (1 ms) [ok]: test RESP2/2 set protocol parsing (0 ms) -[ok]: test RESP2/2 double protocol parsing (0 ms) +[ok]: test RESP2/2 double protocol parsing (1 ms) [ok]: test RESP2/2 null protocol parsing (0 ms) -[ok]: test RESP2/2 verbatim protocol parsing (1 ms) +[ok]: test RESP2/2 verbatim protocol parsing (0 ms) [ok]: test RESP2/2 true protocol parsing (0 ms) [ok]: test RESP2/2 false protocol parsing (0 ms) [ok]: test RESP2/3 big number protocol parsing (0 ms) [ok]: test RESP2/3 malformed big number protocol parsing (0 ms) -[ok]: test RESP2/3 map protocol parsing (1 ms) +[ok]: test RESP2/3 map protocol parsing (0 ms) [ok]: test RESP2/3 set protocol parsing (0 ms) [ok]: test RESP2/3 double protocol parsing (0 ms) -[ok]: test RESP2/3 null protocol parsing (0 ms) +[ok]: test RESP2/3 null protocol parsing (1 ms) [ok]: test RESP2/3 verbatim protocol parsing (0 ms) [ok]: test RESP2/3 true protocol parsing (0 ms) -[ok]: test RESP2/3 false protocol parsing (0 ms) +[ok]: test RESP2/3 false protocol parsing (1 ms) [ok]: test RESP3/2 big number protocol parsing (0 ms) [ok]: test RESP3/2 malformed big number protocol parsing (0 ms) -[ok]: test RESP3/2 map protocol parsing (1 ms) +[ok]: test RESP3/2 map protocol parsing (0 ms) [ok]: test RESP3/2 set protocol parsing (0 ms) [ok]: test RESP3/2 double protocol parsing (0 ms) -[ok]: test RESP3/2 null protocol parsing (1 ms) +[ok]: test RESP3/2 null protocol parsing (0 ms) [ok]: test RESP3/2 verbatim protocol parsing (0 ms) [ok]: test RESP3/2 true protocol parsing (0 ms) [ok]: test RESP3/2 false protocol parsing (0 ms) [ok]: test RESP3/3 big number protocol parsing (0 ms) -[ok]: test RESP3/3 malformed big number protocol parsing (0 ms) -[ok]: test RESP3/3 map protocol parsing (1 ms) +[ok]: test RESP3/3 malformed big number protocol parsing (1 ms) +[ok]: test RESP3/3 map protocol parsing (0 ms) [ok]: test RESP3/3 set protocol parsing (0 ms) -[ok]: test RESP3/3 double protocol parsing (2 ms) +[ok]: test RESP3/3 double protocol parsing (0 ms) [ok]: test RESP3/3 null protocol parsing (0 ms) -[ok]: test RESP3/3 verbatim protocol parsing (1 ms) +[ok]: test RESP3/3 verbatim protocol parsing (0 ms) [ok]: test RESP3/3 true protocol parsing (0 ms) [ok]: test RESP3/3 false protocol parsing (0 ms) -[ok]: test resp3 attribute protocol parsing (1 ms) -[ok]: Script block the time during execution (10 ms) +[ok]: test resp3 attribute protocol parsing (0 ms) +[ok]: Script block the time during execution (11 ms) [ok]: Script delete the expired key (4 ms) -[ok]: TIME command using cached time (12 ms) -[ok]: Script block the time in some expiration related commands (82 ms) -[ok]: RESTORE expired keys with expiration time (10 ms) +[ok]: TIME command using cached time (11 ms) +[ok]: Script block the time in some expiration related commands (83 ms) +[ok]: RESTORE expired keys with expiration time (11 ms) === (scripting) Starting server on 127.0.0.1:21227 ok -[ok]: Shebang support for lua engine (6 ms) -[ok]: Unknown shebang option (1 ms) -[ok]: Unknown shebang flag (3 ms) -[ok]: allow-oom shebang flag (2 ms) +[ok]: Shebang support for lua engine (1 ms) +[ok]: Unknown shebang option (0 ms) +[ok]: Unknown shebang flag (1 ms) +[ok]: allow-oom shebang flag (3 ms) [ok]: no-writes shebang flag (0 ms) === (external:skip) Starting server on 127.0.0.1:21229 ok -[ok]: no-writes shebang flag on replica (151 ms) -[ok]: not enough good replicas (1 ms) +[ok]: no-writes shebang flag on replica (171 ms) +[ok]: not enough good replicas (2 ms) === (external:skip) Starting server on 127.0.0.1:21231 ok -[ok]: not enough good replicas state change during long script (661 ms) -[ok]: allow-stale shebang flag (3 ms) -[ok]: reject script do not cause a Lua stack leak (15 ms) +[ok]: not enough good replicas state change during long script (658 ms) +[ok]: allow-stale shebang flag (2 ms) +[ok]: reject script do not cause a Lua stack leak (9 ms) === (scripting) Starting server on 127.0.0.1:21233 ok -[ok]: Consistent eval error reporting (32 ms) -[ok]: LUA redis.error_reply API (0 ms) +[ok]: Consistent eval error reporting (19 ms) +[ok]: LUA redis.error_reply API (1 ms) [ok]: LUA redis.error_reply API with empty string (1 ms) [ok]: LUA redis.status_reply API (1 ms) [ok]: LUA test pcall (0 ms) -[ok]: LUA test pcall with error (0 ms) -[ok]: LUA test pcall with non string/integer arg (1 ms) -[ok]: LUA test trim string as expected (1 ms) -[ok]: EVAL - Scripts support NULL byte (0 ms) -[ok]: EVAL - explicit error() call handling (0 ms) -[8/129 done]: unit/scripting (38 seconds) +[ok]: LUA test pcall with error (1 ms) +[ok]: LUA test pcall with non string/integer arg (0 ms) +[ok]: LUA test trim string as expected (2 ms) +[ok]: EVAL - Scripts support NULL byte (1 ms) +[ok]: EVAL - explicit error() call handling (1 ms) +[8/129 done]: unit/scripting (39 seconds) Testing unit/scan === (scan network standalone) Starting server on 127.0.0.1:21235 ok -[ok]: {standalone} SCAN basic (139 ms) -[ok]: {standalone} SCAN COUNT (119 ms) -[ok]: {standalone} SCAN MATCH (105 ms) -[ok]: {standalone} SCAN TYPE (132 ms) -[ok]: {standalone} SCAN unknown type (102 ms) -[ok]: {standalone} SCAN with expired keys (141 ms) -[ok]: {standalone} SCAN with expired keys with TYPE filter (128 ms) -[ok]: {standalone} SSCAN with encoding intset (1 ms) +[ok]: {standalone} SCAN basic (104 ms) +[ok]: {standalone} SCAN COUNT (71 ms) +[ok]: {standalone} SCAN MATCH (94 ms) +[ok]: {standalone} SCAN TYPE (113 ms) +[ok]: {standalone} SCAN unknown type (58 ms) +[ok]: {standalone} SCAN with expired keys (64 ms) +[ok]: {standalone} SCAN with expired keys with TYPE filter (62 ms) +[ok]: {standalone} SSCAN with encoding intset (2 ms) [ok]: {standalone} SSCAN with encoding listpack (1 ms) -[ok]: {standalone} SSCAN with encoding hashtable (10 ms) -[ok]: {standalone} HSCAN with encoding listpack (2 ms) -[ok]: {standalone} HSCAN with encoding hashtable (95 ms) -[ok]: {standalone} ZSCAN with encoding listpack (8 ms) -[ok]: {standalone} ZSCAN with encoding skiplist (100 ms) -[ok]: {standalone} SCAN guarantees check under write load (35 ms) +[ok]: {standalone} SSCAN with encoding hashtable (3 ms) +[ok]: {standalone} HSCAN with encoding listpack (1 ms) +[ok]: {standalone} HSCAN with encoding hashtable (73 ms) +[ok]: {standalone} ZSCAN with encoding listpack (4 ms) +[ok]: {standalone} ZSCAN with encoding skiplist (89 ms) +[ok]: {standalone} SCAN guarantees check under write load (22 ms) [ok]: {standalone} SSCAN with integer encoded object (issue #1345) (0 ms) -[ok]: {standalone} SSCAN with PATTERN (1 ms) +[ok]: {standalone} SSCAN with PATTERN (0 ms) [ok]: {standalone} HSCAN with PATTERN (0 ms) -[ok]: {standalone} HSCAN with NOVALUES (1 ms) +[ok]: {standalone} HSCAN with NOVALUES (0 ms) [ok]: {standalone} ZSCAN with PATTERN (0 ms) -[ok]: {standalone} ZSCAN with NOSCORES (1 ms) -[ok]: {standalone} ZSCAN scores: regression test for issue #2175 (55 ms) -[ok]: {standalone} SCAN regression test for issue #4906 (11310 ms) -[ok]: {standalone} SCAN MATCH pattern implies cluster slot (44 ms) +[ok]: {standalone} ZSCAN with NOSCORES (0 ms) +[ok]: {standalone} ZSCAN scores: regression test for issue #2175 (54 ms) +[ok]: {standalone} SCAN regression test for issue #4906 (7626 ms) +[ok]: {standalone} SCAN MATCH pattern implies cluster slot (39 ms) === (external:skip cluster scan) Starting server on 127.0.0.1:21237 ok -[ok]: {cluster} SCAN basic (120 ms) -[ok]: {cluster} SCAN COUNT (115 ms) -[ok]: {cluster} SCAN MATCH (109 ms) -[ok]: {cluster} SCAN TYPE (141 ms) -[ok]: {cluster} SCAN unknown type (101 ms) -[ok]: {cluster} SCAN with expired keys (122 ms) -[ok]: {cluster} SCAN with expired keys with TYPE filter (129 ms) +[ok]: {cluster} SCAN basic (122 ms) +[ok]: {cluster} SCAN COUNT (83 ms) +[ok]: {cluster} SCAN MATCH (54 ms) +[ok]: {cluster} SCAN TYPE (79 ms) +[ok]: {cluster} SCAN unknown type (46 ms) +[ok]: {cluster} SCAN with expired keys (60 ms) +[ok]: {cluster} SCAN with expired keys with TYPE filter (61 ms) [ok]: {cluster} SSCAN with encoding intset (2 ms) -[ok]: {cluster} SSCAN with encoding listpack (4 ms) -[ok]: {cluster} SSCAN with encoding hashtable (8 ms) -[ok]: {cluster} HSCAN with encoding listpack (2 ms) -[ok]: {cluster} HSCAN with encoding hashtable (101 ms) -[ok]: {cluster} ZSCAN with encoding listpack (6 ms) -[ok]: {cluster} ZSCAN with encoding skiplist (106 ms) -[ok]: {cluster} SCAN guarantees check under write load (39 ms) +[ok]: {cluster} SSCAN with encoding listpack (1 ms) +[ok]: {cluster} SSCAN with encoding hashtable (3 ms) +[ok]: {cluster} HSCAN with encoding listpack (1 ms) +[ok]: {cluster} HSCAN with encoding hashtable (74 ms) +[ok]: {cluster} ZSCAN with encoding listpack (3 ms) +[ok]: {cluster} ZSCAN with encoding skiplist (80 ms) +[ok]: {cluster} SCAN guarantees check under write load (29 ms) [ok]: {cluster} SSCAN with integer encoded object (issue #1345) (1 ms) [ok]: {cluster} SSCAN with PATTERN (0 ms) -[ok]: {cluster} HSCAN with PATTERN (0 ms) +[ok]: {cluster} HSCAN with PATTERN (1 ms) [ok]: {cluster} HSCAN with NOVALUES (0 ms) -[ok]: {cluster} ZSCAN with PATTERN (0 ms) -[ok]: {cluster} ZSCAN with NOSCORES (1 ms) -[ok]: {cluster} ZSCAN scores: regression test for issue #2175 (54 ms) -[ok]: {cluster} SCAN regression test for issue #4906 (12552 ms) -[ok]: {cluster} SCAN MATCH pattern implies cluster slot (74 ms) -[9/129 done]: unit/scan (29 seconds) +[ok]: {cluster} ZSCAN with PATTERN (1 ms) +[ok]: {cluster} ZSCAN with NOSCORES (0 ms) +[ok]: {cluster} ZSCAN scores: regression test for issue #2175 (59 ms) +[ok]: {cluster} SCAN regression test for issue #4906 (7814 ms) +[ok]: {cluster} SCAN MATCH pattern implies cluster slot (21 ms) +[9/129 done]: unit/scan (20 seconds) Testing unit/replybufsize === (replybufsize) Starting server on 127.0.0.1:21239 ok -[ok]: verify reply buffer limits (683 ms) +[ok]: verify reply buffer limits (688 ms) [10/129 done]: unit/replybufsize (1 seconds) Testing unit/quit === (quit) Starting server on 127.0.0.1:21241 ok -[ok]: QUIT returns OK (20 ms) -[ok]: Pipelined commands after QUIT must not be executed (33 ms) -[ok]: Pipelined commands after QUIT that exceed read buffer size (45 ms) +[ok]: QUIT returns OK (32 ms) +[ok]: Pipelined commands after QUIT must not be executed (63 ms) +[ok]: Pipelined commands after QUIT that exceed read buffer size (62 ms) [11/129 done]: unit/quit (0 seconds) Testing unit/querybuf === (querybuf slow) Starting server on 127.0.0.1:21243 ok -[ok]: query buffer resized correctly (2169 ms) -[ok]: query buffer resized correctly when not idle (48 ms) -[ok]: query buffer resized correctly with fat argv (2955 ms) +[ok]: query buffer resized correctly (2271 ms) +[ok]: query buffer resized correctly when not idle (67 ms) +[ok]: query buffer resized correctly with fat argv (2926 ms) [12/129 done]: unit/querybuf (6 seconds) Testing unit/pubsubshard === (pubsubshard external:skip) Starting server on 127.0.0.1:21245 ok -[ok]: SPUBLISH/SSUBSCRIBE basics (21 ms) -[ok]: SPUBLISH/SSUBSCRIBE with two clients (41 ms) -[ok]: SPUBLISH/SSUBSCRIBE after UNSUBSCRIBE without arguments (20 ms) -[ok]: SSUBSCRIBE to one channel more than once (16 ms) -[ok]: SUNSUBSCRIBE from non-subscribed channels (20 ms) +[ok]: SPUBLISH/SSUBSCRIBE basics (33 ms) +[ok]: SPUBLISH/SSUBSCRIBE with two clients (62 ms) +[ok]: SPUBLISH/SSUBSCRIBE after UNSUBSCRIBE without arguments (32 ms) +[ok]: SSUBSCRIBE to one channel more than once (32 ms) +[ok]: SUNSUBSCRIBE from non-subscribed channels (32 ms) [ok]: PUBSUB command basics (0 ms) -[ok]: SPUBLISH/SSUBSCRIBE with two clients (41 ms) -[ok]: SPUBLISH/SSUBSCRIBE with PUBLISH/SUBSCRIBE (29 ms) +[ok]: SPUBLISH/SSUBSCRIBE with two clients (63 ms) +[ok]: SPUBLISH/SSUBSCRIBE with PUBLISH/SUBSCRIBE (63 ms) [ok]: PubSubShard with CLIENT REPLY OFF (117 ms) === (pubsubshard external:skip) Starting server on 127.0.0.1:21247 ok === (pubsubshard external:skip) Starting server on 127.0.0.1:21249 ok -[ok]: setup replication for following tests (103 ms) -[ok]: publish message to master and receive on replica (41 ms) -Waiting for process 2507279 to exit... +[ok]: setup replication for following tests (104 ms) +[ok]: publish message to master and receive on replica (65 ms) +Waiting for process 3267245 to exit... [13/129 done]: unit/pubsubshard (2 seconds) Testing unit/pubsub === (pubsub network) Starting server on 127.0.0.1:21251 ok -[ok]: Pub/Sub PING on RESP2 (7 ms) +[ok]: Pub/Sub PING on RESP2 (16 ms) [ok]: Pub/Sub PING on RESP3 (1 ms) -[ok]: PUBLISH/SUBSCRIBE basics (17 ms) -[ok]: PUBLISH/SUBSCRIBE with two clients (36 ms) -[ok]: PUBLISH/SUBSCRIBE after UNSUBSCRIBE without arguments (20 ms) -[ok]: SUBSCRIBE to one channel more than once (23 ms) -[ok]: UNSUBSCRIBE from non-subscribed channels (16 ms) -[ok]: PUBLISH/PSUBSCRIBE basics (17 ms) -[ok]: PUBLISH/PSUBSCRIBE with two clients (39 ms) -[ok]: PUBLISH/PSUBSCRIBE after PUNSUBSCRIBE without arguments (12 ms) -[ok]: PubSub messages with CLIENT REPLY OFF (99 ms) -[ok]: PUNSUBSCRIBE from non-subscribed channels (21 ms) -[ok]: NUMSUB returns numbers, not strings (#1561) (1 ms) -[ok]: NUMPATs returns the number of unique patterns (40 ms) -[ok]: Mix SUBSCRIBE and PSUBSCRIBE (26 ms) -[ok]: PUNSUBSCRIBE and UNSUBSCRIBE should always reply (0 ms) -[ok]: Keyspace notifications: we receive keyspace notifications (72 ms) -[ok]: Keyspace notifications: we receive keyevent notifications (64 ms) -[ok]: Keyspace notifications: we can receive both kind of events (20 ms) -[ok]: Keyspace notifications: we are able to mask events (21 ms) -[ok]: Keyspace notifications: general events test (21 ms) -[ok]: Keyspace notifications: list events test (29 ms) -[ok]: Keyspace notifications: set events test (17 ms) -[ok]: Keyspace notifications: zset events test (22 ms) -[ok]: Keyspace notifications: hash events test (26 ms) -[ok]: Keyspace notifications: stream events test (27 ms) -[ok]: Keyspace notifications: expired events (triggered expire) (118 ms) -[ok]: Keyspace notifications: expired events (background expire) (131 ms) -[ok]: Keyspace notification: expired event (Expiration time is already expired) (22 ms) -[ok]: Keyspace notifications: evicted events (24 ms) -[ok]: Keyspace notifications: test CONFIG GET/SET of event flags (1 ms) -[ok]: Keyspace notifications: new key test (21 ms) -[ok]: publish to self inside multi (5 ms) +[ok]: PUBLISH/SUBSCRIBE basics (60 ms) +[ok]: PUBLISH/SUBSCRIBE with two clients (93 ms) +[ok]: PUBLISH/SUBSCRIBE after UNSUBSCRIBE without arguments (39 ms) +[ok]: SUBSCRIBE to one channel more than once (31 ms) +[ok]: UNSUBSCRIBE from non-subscribed channels (39 ms) +[ok]: PUBLISH/PSUBSCRIBE basics (44 ms) +[ok]: PUBLISH/PSUBSCRIBE with two clients (69 ms) +[ok]: PUBLISH/PSUBSCRIBE after PUNSUBSCRIBE without arguments (38 ms) +[ok]: PubSub messages with CLIENT REPLY OFF (122 ms) +[ok]: PUNSUBSCRIBE from non-subscribed channels (32 ms) +[ok]: NUMSUB returns numbers, not strings (#1561) (0 ms) +[ok]: NUMPATs returns the number of unique patterns (88 ms) +[ok]: Mix SUBSCRIBE and PSUBSCRIBE (44 ms) +[ok]: PUNSUBSCRIBE and UNSUBSCRIBE should always reply (1 ms) +[ok]: Keyspace notifications: we receive keyspace notifications (83 ms) +[ok]: Keyspace notifications: we receive keyevent notifications (99 ms) +[ok]: Keyspace notifications: we can receive both kind of events (42 ms) +[ok]: Keyspace notifications: we are able to mask events (27 ms) +[ok]: Keyspace notifications: general events test (42 ms) +[ok]: Keyspace notifications: list events test (55 ms) +[ok]: Keyspace notifications: set events test (27 ms) +[ok]: Keyspace notifications: zset events test (59 ms) +[ok]: Keyspace notifications: hash events test (28 ms) +[ok]: Keyspace notifications: stream events test (43 ms) +[ok]: Keyspace notifications: expired events (triggered expire) (136 ms) +[ok]: Keyspace notifications: expired events (background expire) (218 ms) +[ok]: Keyspace notification: expired event (Expiration time is already expired) (54 ms) +[ok]: Keyspace notifications: evicted events (81 ms) +[ok]: Keyspace notifications: test CONFIG GET/SET of event flags (2 ms) +[ok]: Keyspace notifications: new key test (51 ms) +[ok]: publish to self inside multi (17 ms) [ok]: publish to self inside script (1 ms) [ok]: unsubscribe inside multi, and publish to self (2 ms) -[14/129 done]: unit/pubsub (2 seconds) +[14/129 done]: unit/pubsub (3 seconds) Testing unit/protocol === (protocol network) Starting server on 127.0.0.1:21253 ok -[ok]: Handle an empty query (62 ms) -[ok]: Negative multibulk length (66 ms) -[ok]: Out of range multibulk length (26 ms) -[ok]: Wrong multibulk payload header (27 ms) -[ok]: Negative multibulk payload length (17 ms) -[ok]: Out of range multibulk payload length (23 ms) -[ok]: Non-number multibulk payload length (21 ms) -[ok]: Multi bulk request not followed by bulk arguments (21 ms) -[ok]: Generic wrong number of args (21 ms) -[ok]: Unbalanced number of quotes (21 ms) -[ok]: Protocol desync regression test #1 (23 ms) +[ok]: Handle an empty query (92 ms) +[ok]: Negative multibulk length (91 ms) +[ok]: Out of range multibulk length (50 ms) +[ok]: Wrong multibulk payload header (60 ms) +[ok]: Negative multibulk payload length (26 ms) +[ok]: Out of range multibulk payload length (40 ms) +[ok]: Non-number multibulk payload length (33 ms) +[ok]: Multi bulk request not followed by bulk arguments (40 ms) +[ok]: Generic wrong number of args (32 ms) +[ok]: Unbalanced number of quotes (33 ms) +[ok]: Protocol desync regression test #1 (29 ms) [ok]: Protocol desync regression test #2 (23 ms) -[ok]: Protocol desync regression test #3 (54 ms) -[ok]: Protocol desync regression test #4 (26 ms) -[ok]: raw protocol response (0 ms) -[ok]: raw protocol response - deferred (4 ms) +[ok]: Protocol desync regression test #3 (23 ms) +[ok]: Protocol desync regression test #4 (23 ms) +[ok]: raw protocol response (1 ms) +[ok]: raw protocol response - deferred (0 ms) [ok]: raw protocol response - multiline (1 ms) [ok]: RESP3 attributes (1 ms) -[ok]: RESP3 attributes readraw (0 ms) +[ok]: RESP3 attributes readraw (1 ms) [ok]: RESP3 attributes on RESP2 (1 ms) [ok]: test big number parsing (0 ms) [ok]: test bool parsing (1 ms) -[ok]: test verbatim str parsing (0 ms) -[ok]: test large number of args (51 ms) +[ok]: test verbatim str parsing (1 ms) +[ok]: test large number of args (44 ms) [ok]: test argument rewriting - issue 9598 (1 ms) === (protocol hello logreqres:skip) Starting server on 127.0.0.1:21255 ok -[ok]: HELLO without protover (7 ms) -[ok]: HELLO and availability-zone (1 ms) +[ok]: HELLO without protover (2 ms) +[ok]: HELLO and availability-zone (2 ms) === (regression) Starting server on 127.0.0.1:21257 ok -[ok]: Regression for a crash with blocking ops and pipelining (21 ms) +[ok]: Regression for a crash with blocking ops and pipelining (32 ms) [15/129 done]: unit/protocol (1 seconds) Testing unit/pause === (pause network) Starting server on 127.0.0.1:21259 ok -[ok]: Test check paused info in info clients (2079 ms) -[ok]: Test read commands are not blocked by client pause (22 ms) -[ok]: Test old pause-all takes precedence over new pause-write (less restrictive) (330 ms) -[ok]: Test new pause time is smaller than old one, then old time preserved (119 ms) -[ok]: Test write commands are paused by RO (19 ms) -[ok]: Test special commands are paused by RO (37 ms) -[ok]: Test read/admin multi-execs are not blocked by pause RO (20 ms) -[ok]: Test write multi-execs are blocked by pause RO (20 ms) -[ok]: Test scripts are blocked by pause RO (40 ms) -[ok]: Test RO scripts are not blocked by pause RO (20 ms) -[ok]: Test read-only scripts in multi-exec are not blocked by pause RO (23 ms) -[ok]: Test write scripts in multi-exec are blocked by pause RO (41 ms) +[ok]: Test check paused info in info clients (2065 ms) +[ok]: Test read commands are not blocked by client pause (33 ms) +[ok]: Test old pause-all takes precedence over new pause-write (less restrictive) (316 ms) +[ok]: Test new pause time is smaller than old one, then old time preserved (134 ms) +[ok]: Test write commands are paused by RO (33 ms) +[ok]: Test special commands are paused by RO (66 ms) +[ok]: Test read/admin multi-execs are not blocked by pause RO (34 ms) +[ok]: Test write multi-execs are blocked by pause RO (34 ms) +[ok]: Test scripts are blocked by pause RO (64 ms) +[ok]: Test RO scripts are not blocked by pause RO (35 ms) +[ok]: Test read-only scripts in multi-exec are not blocked by pause RO (34 ms) +[ok]: Test write scripts in multi-exec are blocked by pause RO (67 ms) [ok]: Test may-replicate commands are rejected in RO scripts (1 ms) -[ok]: Test multiple clients can be queued up and unblocked (52 ms) -[ok]: Test clients with syntax errors will get responses immediately (6 ms) -[ok]: Test eviction is skipped during client pause (3 ms) -[ok]: Test both active and passive expires are skipped during client pause (106 ms) -[ok]: Test that client pause starts at the end of a transaction (21 ms) +[ok]: Test multiple clients can be queued up and unblocked (98 ms) +[ok]: Test clients with syntax errors will get responses immediately (1 ms) +[ok]: Test eviction is skipped during client pause (5 ms) +[ok]: Test both active and passive expires are skipped during client pause (107 ms) +[ok]: Test that client pause starts at the end of a transaction (37 ms) === (needs:repl external:skip) Starting server on 127.0.0.1:21261 ok -[ok]: Test when replica paused, offset would not grow (829 ms) -[ok]: Test replica offset would grow after unpause (5 ms) -[ok]: Test the randomkey command will not cause the server to get into an infinite loop during the client pause write (6 ms) -[ok]: CLIENT UNBLOCK is not allow to unblock client blocked by CLIENT PAUSE (40 ms) +[ok]: Test when replica paused, offset would not grow (823 ms) +[ok]: Test replica offset would grow after unpause (2 ms) +[ok]: Test the randomkey command will not cause the server to get into an infinite loop during the client pause write (7 ms) +[ok]: CLIENT UNBLOCK is not allow to unblock client blocked by CLIENT PAUSE (67 ms) === (external:skip cluster pause network) Starting server on 127.0.0.1:21263 ok === (external:skip cluster pause network) Starting server on 127.0.0.1:21265 ok -[ok]: Test check paused info during the cluster failover in info clients (77 ms) -[16/129 done]: unit/pause (15 seconds) +[ok]: Test check paused info during the cluster failover in info clients (76 ms) +[16/129 done]: unit/pause (16 seconds) Testing unit/other === (other) Starting server on 127.0.0.1:21267 ok -[ok]: Coverage: HELP commands (8 ms) -[ok]: Coverage: MEMORY MALLOC-STATS (1 ms) -[ok]: Coverage: MEMORY PURGE (6 ms) +[ok]: Coverage: HELP commands (6 ms) +[ok]: Coverage: MEMORY MALLOC-STATS (4 ms) +[ok]: Coverage: MEMORY PURGE (1 ms) [ok]: Coverage: ECHO (0 ms) -[ok]: SAVE - make sure there are all the types as values (2 ms) -[ok]: FUZZ stresser with data model binary (536 ms) -[ok]: FUZZ stresser with data model alpha (456 ms) -[ok]: FUZZ stresser with data model compr (429 ms) +[ok]: SAVE - make sure there are all the types as values (3 ms) +[ok]: FUZZ stresser with data model binary (570 ms) +[ok]: FUZZ stresser with data model alpha (576 ms) +[ok]: FUZZ stresser with data model compr (455 ms) === (external:skip) Starting server on 127.0.0.1:21269 ok [ok]: FLUSHALL should not reset the dirty counter if we disable save (1 ms) -[ok]: FLUSHALL should reset the dirty counter to 0 if we enable save (3 ms) +[ok]: FLUSHALL should reset the dirty counter to 0 if we enable save (1 ms) Waiting for background save to finish... -Waiting for background save to finish... [ok]: BGSAVE (106 ms) +Waiting for background save to finish... [ok]: BGSAVE (108 ms) [ok]: SELECT an out of range DB (0 ms) -[ok]: Check consistency of different data types after a reload (750 ms) +[ok]: Check consistency of different data types after a reload (678 ms) -Waiting for background AOF rewrite to finish... [ok]: Same dataset digest if saving/reloading as AOF? (186 ms) +Waiting for background AOF rewrite to finish... [ok]: Same dataset digest if saving/reloading as AOF? (145 ms) Waiting for background AOF rewrite to finish... Waiting for background AOF rewrite to finish... [ok]: EXPIRES after a reload (snapshot + append only file rewrite) (105 ms) -Waiting for background AOF rewrite to finish... [ok]: EXPIRES after AOF reload (without rewrite) (2064 ms) -[ok]: PIPELINING stresser (also a regression for the old epoll bug) (754 ms) +Waiting for background AOF rewrite to finish... [ok]: EXPIRES after AOF reload (without rewrite) (2065 ms) +[ok]: PIPELINING stresser (also a regression for the old epoll bug) (506 ms) [ok]: APPEND basics (1 ms) -[ok]: APPEND basics, integer encoded values (0 ms) -[ok]: APPEND fuzzing (302 ms) +[ok]: APPEND basics, integer encoded values (1 ms) +[ok]: APPEND fuzzing (267 ms) [ok]: FLUSHDB (1 ms) -[ok]: Perform a final SAVE to leave a clean DB on disk (0 ms) -[ok]: RESET clears client state (1 ms) +[ok]: Perform a final SAVE to leave a clean DB on disk (1 ms) +[ok]: RESET clears client state (0 ms) [ok]: RESET clears MONITOR state (13 ms) -[ok]: RESET clears and discards MULTI state (1 ms) -[ok]: RESET clears Pub/Sub state (0 ms) -[ok]: RESET clears authenticated state (1 ms) +[ok]: RESET clears and discards MULTI state (0 ms) +[ok]: RESET clears Pub/Sub state (1 ms) +[ok]: RESET clears authenticated state (0 ms) [ok]: Subcommand syntax error crash (issue #10070) (1 ms) [ok]: Extended Redis Compatibility config (1 ms) === (other external:skip) Starting server on 127.0.0.1:21271 ok -Waiting for background save to finish... -Waiting for background save to finish... [ok]: Don't rehash if server has child process (594 ms) +Waiting for background save to finish... [ok]: Don't rehash if server has child process (374 ms) === (other external:skip) Starting server on 127.0.0.1:21273 ok -[ok]: Process title set as expected (4 ms) +[ok]: Process title set as expected (3 ms) === (other external:skip cluster slow) Starting server on 127.0.0.1:21275 ok -[ok]: Server can trigger resizing (1724 ms) -[ok]: Server can rewind and trigger smaller slot resizing (660 ms) +[ok]: Server can trigger resizing (1686 ms) +[ok]: Server can rewind and trigger smaller slot resizing (665 ms) === (other external:skip) Starting server on 127.0.0.1:21277 ok -[ok]: Server can resize empty dict (217 ms) -Creating temp file /build/reproducible-path/valkey-8.1.4+dfsg1/2496038 +[ok]: Server can resize empty dict (201 ms) +Creating temp file /build/reproducible-path/valkey-8.1.4+dfsg1/3264194 === (repl external:skip) Starting server on 127.0.0.1:21279 ok [ok]: test unixsocket options are set correctly (1 ms) -Deleting temp file: /build/reproducible-path/valkey-8.1.4+dfsg1/2496038 +Deleting temp file: /build/reproducible-path/valkey-8.1.4+dfsg1/3264194 [17/129 done]: unit/other (12 seconds) Testing unit/oom-score-adj === (oom-score-adj external:skip) Starting server on 127.0.0.1:21281 ok -[ok]: CONFIG SET oom-score-adj works as expected (35 ms) -[ok]: CONFIG SET oom-score-adj handles configuration failures (3 ms) -[ok]: CONFIG SET oom-score-adj-values doesn't touch proc when disabled (1 ms) +[ok]: CONFIG SET oom-score-adj works as expected (25 ms) +[ok]: CONFIG SET oom-score-adj handles configuration failures (2 ms) +[ok]: CONFIG SET oom-score-adj-values doesn't touch proc when disabled (0 ms) [ok]: CONFIG SET oom score restored on disable (1 ms) -[ok]: CONFIG SET oom score relative and absolute (5 ms) -[ok]: CONFIG SET out-of-range oom score (0 ms) -[18/129 done]: unit/oom-score-adj (1 seconds) +[ok]: CONFIG SET oom score relative and absolute (1 ms) +[ok]: CONFIG SET out-of-range oom score (1 ms) +[18/129 done]: unit/oom-score-adj (0 seconds) Testing unit/obuf-limits === (obuf-limits external:skip logreqres:skip) Starting server on 127.0.0.1:21283 ok -[ok]: CONFIG SET client-output-buffer-limit (5 ms) -[ok]: Client output buffer hard limit is enforced (5976 ms) -[ok]: Client output buffer soft limit is enforced if time is overreached (4624 ms) -[ok]: Client output buffer soft limit is not enforced too early and is enforced when no traffic (5028 ms) -[ok]: No response for single command if client output buffer hard limit is enforced (163 ms) -[ok]: No response for multi commands in pipeline if client output buffer limit is enforced (1082 ms) -[ok]: Execute transactions completely even if client output buffer limit is enforced (60 ms) -[ok]: Obuf limit, HRANDFIELD with huge count stopped mid-run (39 ms) -[ok]: Obuf limit, KEYS stopped mid-run (133 ms) -[19/129 done]: unit/obuf-limits (17 seconds) +[ok]: CONFIG SET client-output-buffer-limit (3 ms) +[ok]: Client output buffer hard limit is enforced (4462 ms) +[ok]: Client output buffer soft limit is enforced if time is overreached (4010 ms) +[ok]: Client output buffer soft limit is not enforced too early and is enforced when no traffic (5021 ms) +[ok]: No response for single command if client output buffer hard limit is enforced (160 ms) +[ok]: No response for multi commands in pipeline if client output buffer limit is enforced (1104 ms) +[ok]: Execute transactions completely even if client output buffer limit is enforced (61 ms) +[ok]: Obuf limit, HRANDFIELD with huge count stopped mid-run (64 ms) +[ok]: Obuf limit, KEYS stopped mid-run (105 ms) +[19/129 done]: unit/obuf-limits (15 seconds) Testing unit/networking === () Starting server on 127.0.0.1:21285 ok -[ok]: CONFIG SET port number (261 ms) +[ok]: CONFIG SET port number (372 ms) === () Starting server on 127.0.0.1:21288 ok -[ok]: CONFIG SET bind address (260 ms) +[ok]: CONFIG SET bind address (258 ms) === () Starting server on 127.0.0.1:21290 ok === () Starting server on 127.0.0.1:21292 ok -[ok]: CONFIG SET bind-source-addr (568 ms) +[ok]: CONFIG SET bind-source-addr (565 ms) === (external:skip) Starting server on 127.0.0.1:21294 ok -[ok]: Default bind address configuration handling (232 ms) -[ok]: Protected mode works as expected (1 ms) +[ok]: Default bind address configuration handling (260 ms) +[ok]: Protected mode works as expected (2 ms) === (external:skip) Starting server on 127.0.0.1:21296 ok [20/129 done]: unit/networking (2 seconds) Testing unit/multi === (multi) Starting server on 127.0.0.1:21298 ok -[ok]: MULTI / EXEC basics (4 ms) +[ok]: MULTI / EXEC basics (2 ms) [ok]: DISCARD (1 ms) [ok]: Nested MULTI are not allowed (0 ms) -[ok]: MULTI where commands alter argc/argv (7 ms) -[ok]: WATCH inside MULTI is not allowed (1 ms) -[ok]: EXEC fails if there are errors while queueing commands #1 (1 ms) -[ok]: EXEC fails if there are errors while queueing commands #2 (23 ms) -[ok]: If EXEC aborts, the client MULTI state is cleared (1 ms) +[ok]: MULTI where commands alter argc/argv (1 ms) +[ok]: WATCH inside MULTI is not allowed (0 ms) +[ok]: EXEC fails if there are errors while queueing commands #1 (2 ms) +[ok]: EXEC fails if there are errors while queueing commands #2 (33 ms) +[ok]: If EXEC aborts, the client MULTI state is cleared (2 ms) [ok]: EXEC works on WATCHed key not modified (1 ms) -[ok]: EXEC fail on WATCHed key modified (1 key of 1 watched) (5 ms) +[ok]: EXEC fail on WATCHed key modified (1 key of 1 watched) (1 ms) [ok]: EXEC fail on WATCHed key modified (1 key of 5 watched) (1 ms) -[ok]: EXEC fail on WATCHed key modified by SORT with STORE even if the result is empty (1 ms) +[ok]: EXEC fail on WATCHed key modified by SORT with STORE even if the result is empty (2 ms) EXEC fail on lazy expired WATCHed key attempts: 0 -[ok]: EXEC fail on lazy expired WATCHed key (103 ms) -[ok]: WATCH stale keys should not fail EXEC (7 ms) -[ok]: Delete WATCHed stale keys should not fail EXEC (3 ms) +[ok]: EXEC fail on lazy expired WATCHed key (104 ms) +[ok]: WATCH stale keys should not fail EXEC (4 ms) +[ok]: Delete WATCHed stale keys should not fail EXEC (5 ms) [ok]: FLUSHDB while watching stale keys should not fail EXEC (4 ms) -[ok]: After successful EXEC key is no longer watched (1 ms) +[ok]: After successful EXEC key is no longer watched (2 ms) [ok]: After failed EXEC key is no longer watched (2 ms) -[ok]: It is possible to UNWATCH (6 ms) -[ok]: UNWATCH when there is nothing watched works as expected (0 ms) +[ok]: It is possible to UNWATCH (1 ms) +[ok]: UNWATCH when there is nothing watched works as expected (1 ms) [ok]: FLUSHALL is able to touch the watched keys (1 ms) [ok]: FLUSHALL does not touch non affected keys (1 ms) [ok]: FLUSHDB is able to touch the watched keys (1 ms) [ok]: FLUSHDB does not touch non affected keys (1 ms) [ok]: SWAPDB is able to touch the watched keys that exist (1 ms) [ok]: SWAPDB is able to touch the watched keys that do not exist (2 ms) -[ok]: SWAPDB does not touch watched stale keys (11 ms) +[ok]: SWAPDB does not touch watched stale keys (4 ms) [ok]: SWAPDB does not touch non-existing key replaced with stale key (4 ms) -[ok]: SWAPDB does not touch stale key replaced with another stale key (4 ms) -[ok]: WATCH is able to remember the DB a key belongs to (5 ms) -[ok]: WATCH will consider touched keys target of EXPIRE (1 ms) -[ok]: WATCH will consider touched expired keys (1135 ms) +[ok]: SWAPDB does not touch stale key replaced with another stale key (5 ms) +[ok]: WATCH is able to remember the DB a key belongs to (2 ms) +[ok]: WATCH will consider touched keys target of EXPIRE (2 ms) +[ok]: WATCH will consider touched expired keys (1144 ms) [ok]: DISCARD should clear the WATCH dirty flag on the client (2 ms) -[ok]: DISCARD should UNWATCH all the keys (7 ms) -[ok]: MULTI / EXEC is not propagated (single write command) (35 ms) -[ok]: MULTI / EXEC is propagated correctly (multiple commands) (98 ms) -[ok]: MULTI / EXEC is propagated correctly (multiple commands with SELECT) (106 ms) -[ok]: MULTI / EXEC is propagated correctly (empty transaction) (104 ms) +[ok]: DISCARD should UNWATCH all the keys (1 ms) +[ok]: MULTI / EXEC is not propagated (single write command) (122 ms) +[ok]: MULTI / EXEC is propagated correctly (multiple commands) (102 ms) +[ok]: MULTI / EXEC is propagated correctly (multiple commands with SELECT) (101 ms) +[ok]: MULTI / EXEC is propagated correctly (empty transaction) (99 ms) [ok]: MULTI / EXEC is propagated correctly (read-only commands) (100 ms) -[ok]: MULTI / EXEC is propagated correctly (write command, no effect) (104 ms) -[ok]: MULTI / EXEC with REPLICAOF (108 ms) -[ok]: DISCARD should not fail during OOM (25 ms) -[ok]: MULTI and script timeout (461 ms) -[ok]: EXEC and script timeout (448 ms) -[ok]: MULTI-EXEC body and script timeout (458 ms) -[ok]: just EXEC and script timeout (451 ms) -[ok]: exec with write commands and state change (22 ms) -[ok]: exec with read commands and stale replica state change (30 ms) -[ok]: EXEC with only read commands should not be rejected when OOM (17 ms) -[ok]: EXEC with at least one use-memory command should fail (25 ms) +[ok]: MULTI / EXEC is propagated correctly (write command, no effect) (101 ms) +[ok]: MULTI / EXEC with REPLICAOF (102 ms) +[ok]: DISCARD should not fail during OOM (32 ms) +[ok]: MULTI and script timeout (469 ms) +[ok]: EXEC and script timeout (467 ms) +[ok]: MULTI-EXEC body and script timeout (469 ms) +[ok]: just EXEC and script timeout (466 ms) +[ok]: exec with write commands and state change (32 ms) +[ok]: exec with read commands and stale replica state change (34 ms) +[ok]: EXEC with only read commands should not be rejected when OOM (33 ms) +[ok]: EXEC with at least one use-memory command should fail (32 ms) [ok]: Blocking commands ignores the timeout (2 ms) -[ok]: MULTI propagation of PUBLISH (115 ms) +[ok]: MULTI propagation of PUBLISH (66 ms) [ok]: MULTI propagation of SCRIPT LOAD (102 ms) -[ok]: MULTI propagation of EVAL (101 ms) +[ok]: MULTI propagation of EVAL (100 ms) [ok]: MULTI propagation of SCRIPT FLUSH (101 ms) -[ok]: MULTI propagation of XREADGROUP (101 ms) -[ok]: MULTI with SAVE (5 ms) -[ok]: MULTI with SHUTDOWN (0 ms) +[ok]: MULTI propagation of XREADGROUP (102 ms) +[ok]: MULTI with SAVE (1 ms) +[ok]: MULTI with SHUTDOWN (2 ms) Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: MULTI with BGREWRITEAOF (204 ms) +Waiting for background AOF rewrite to finish... [ok]: MULTI with BGREWRITEAOF (206 ms) Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: MULTI with config set appendonly (216 ms) -[ok]: MULTI with config error (1 ms) +Waiting for background AOF rewrite to finish... [ok]: MULTI with config set appendonly (209 ms) +[ok]: MULTI with config error (2 ms) [ok]: Flushall while watching several keys by one client (1 ms) [ok]: AUTH errored inside MULTI will add the reply (1 ms) === (external:skip) Starting server on 127.0.0.1:21300 ok -[ok]: MULTI with FLUSHALL and AOF (2 ms) +[ok]: MULTI with FLUSHALL and AOF (3 ms) === (external:skip cluster) Starting server on 127.0.0.1:21302 ok -[ok]: Regression test for multi-exec with RANDOMKEY accessing the wrong per-slot dictionary (1 ms) +[ok]: Regression test for multi-exec with RANDOMKEY accessing the wrong per-slot dictionary (2 ms) [21/129 done]: unit/multi (8 seconds) Testing unit/memefficiency === (memefficiency external:skip) Starting server on 127.0.0.1:21304 ok -[ok]: Memory efficiency with values in range 32 (508 ms) -[ok]: Memory efficiency with values in range 64 (451 ms) -[ok]: Memory efficiency with values in range 128 (426 ms) -[ok]: Memory efficiency with values in range 1024 (427 ms) -[ok]: Memory efficiency with values in range 16384 (1321 ms) +[ok]: Memory efficiency with values in range 32 (391 ms) +[ok]: Memory efficiency with values in range 64 (307 ms) +[ok]: Memory efficiency with values in range 128 (313 ms) +[ok]: Memory efficiency with values in range 1024 (353 ms) +[ok]: Memory efficiency with values in range 16384 (943 ms) === (defrag external:skip standalone) Starting server on 127.0.0.1:21306 ok Jemalloc not available. Defrag tests skipped. [22/129 done]: unit/memefficiency (3 seconds) Testing unit/maxmemory === (maxmemory external:skip) Starting server on 127.0.0.1:21308 ok -evicted keys: 1 +evicted keys: 13 evicted clients: 0 -dbsize: 49 -[ok]: eviction due to output buffers of many MGET clients, client eviction: false (502 ms) +dbsize: 37 +[ok]: eviction due to output buffers of many MGET clients, client eviction: false (847 ms) evicted keys: 28 evicted clients: 0 dbsize: 22 -[ok]: eviction due to input buffer of a dead client, client eviction: false (3879 ms) +[ok]: eviction due to input buffer of a dead client, client eviction: false (4556 ms) evicted keys: 15 evicted clients: 0 dbsize: 35 -[ok]: eviction due to output buffers of pubsub, client eviction: false (833 ms) +[ok]: eviction due to output buffers of pubsub, client eviction: false (1603 ms) evicted keys: 0 evicted clients: 11 dbsize: 50 -[ok]: eviction due to output buffers of many MGET clients, client eviction: true (428 ms) +[ok]: eviction due to output buffers of many MGET clients, client eviction: true (743 ms) evicted keys: 0 evicted clients: 18 dbsize: 50 -[ok]: eviction due to input buffer of a dead client, client eviction: true (3923 ms) +[ok]: eviction due to input buffer of a dead client, client eviction: true (4589 ms) evicted keys: 0 evicted clients: 6 dbsize: 50 -[ok]: eviction due to output buffers of pubsub, client eviction: true (651 ms) +[ok]: eviction due to output buffers of pubsub, client eviction: true (1640 ms) === (maxmemory external:skip) Starting server on 127.0.0.1:21310 ok -[ok]: maxmemory - is the memory limit honoured? (policy allkeys-random) (361 ms) -[ok]: maxmemory - is the memory limit honoured? (policy allkeys-lru) (439 ms) -[ok]: maxmemory - is the memory limit honoured? (policy allkeys-lfu) (578 ms) -[ok]: maxmemory - is the memory limit honoured? (policy volatile-lru) (497 ms) -[ok]: maxmemory - is the memory limit honoured? (policy volatile-lfu) (764 ms) -[ok]: maxmemory - is the memory limit honoured? (policy volatile-random) (864 ms) -[ok]: maxmemory - is the memory limit honoured? (policy volatile-ttl) (910 ms) -[ok]: maxmemory - only allkeys-* should remove non-volatile keys (allkeys-random) (340 ms) -[ok]: maxmemory - only allkeys-* should remove non-volatile keys (allkeys-lru) (491 ms) -[ok]: maxmemory - only allkeys-* should remove non-volatile keys (volatile-lru) (936 ms) -[ok]: maxmemory - only allkeys-* should remove non-volatile keys (volatile-random) (1123 ms) -[ok]: maxmemory - only allkeys-* should remove non-volatile keys (volatile-ttl) (1589 ms) -[ok]: maxmemory - policy volatile-lru should only remove volatile keys. (4363 ms) -[ok]: maxmemory - policy volatile-lfu should only remove volatile keys. (6688 ms) -[ok]: maxmemory - policy volatile-random should only remove volatile keys. (9285 ms) -[ok]: maxmemory - policy volatile-ttl should only remove volatile keys. (11496 ms) +[ok]: maxmemory - is the memory limit honoured? (policy allkeys-random) (176 ms) +[ok]: maxmemory - is the memory limit honoured? (policy allkeys-lru) (358 ms) +[ok]: maxmemory - is the memory limit honoured? (policy allkeys-lfu) (626 ms) +[ok]: maxmemory - is the memory limit honoured? (policy volatile-lru) (322 ms) +[ok]: maxmemory - is the memory limit honoured? (policy volatile-lfu) (694 ms) +[ok]: maxmemory - is the memory limit honoured? (policy volatile-random) (339 ms) +[ok]: maxmemory - is the memory limit honoured? (policy volatile-ttl) (327 ms) +[ok]: maxmemory - only allkeys-* should remove non-volatile keys (allkeys-random) (684 ms) +[ok]: maxmemory - only allkeys-* should remove non-volatile keys (allkeys-lru) (1128 ms) +[ok]: maxmemory - only allkeys-* should remove non-volatile keys (volatile-lru) (375 ms) +[ok]: maxmemory - only allkeys-* should remove non-volatile keys (volatile-random) (388 ms) +[ok]: maxmemory - only allkeys-* should remove non-volatile keys (volatile-ttl) (329 ms) +[ok]: maxmemory - policy volatile-lru should only remove volatile keys. (2137 ms) +[ok]: maxmemory - policy volatile-lfu should only remove volatile keys. (3999 ms) +[ok]: maxmemory - policy volatile-random should only remove volatile keys. (5720 ms) +[ok]: maxmemory - policy volatile-ttl should only remove volatile keys. (8420 ms) === (maxmemory external:skip) Starting server on 127.0.0.1:21312 ok === () Starting server on 127.0.0.1:21314 ok -[ok]: slave buffer are counted correctly (33254 ms) +[ok]: slave buffer are counted correctly (25147 ms) === (maxmemory external:skip) Starting server on 127.0.0.1:21316 ok === () Starting server on 127.0.0.1:21318 ok -[ok]: replica buffer don't induce eviction (8822 ms) +[ok]: replica buffer don't induce eviction (6997 ms) === (maxmemory external:skip) Starting server on 127.0.0.1:21320 ok -[ok]: Don't rehash if used memory exceeds maxmemory after rehash (382 ms) +[ok]: Don't rehash if used memory exceeds maxmemory after rehash (206 ms) === (maxmemory external:skip io-threads:skip) Starting server on 127.0.0.1:21322 ok evicted: 30 evicted: 30 -[ok]: client tracking don't cause eviction feedback loop (1711 ms) +[ok]: client tracking don't cause eviction feedback loop (1809 ms) === (maxmemory external:skip) Starting server on 127.0.0.1:21324 ok -[ok]: propagation with eviction (79 ms) +[ok]: propagation with eviction (53 ms) === (maxmemory external:skip) Starting server on 127.0.0.1:21326 ok -[ok]: propagation with eviction in MULTI (74 ms) +[ok]: propagation with eviction in MULTI (53 ms) === (maxmemory external:skip) Starting server on 127.0.0.1:21328 ok -[ok]: lru/lfu value of the key just added (4 ms) +[ok]: lru/lfu value of the key just added (3 ms) === (maxmemory external:skip) Starting server on 127.0.0.1:21330 ok -[ok]: Import mode should forbid eviction (8 ms) -[23/129 done]: unit/maxmemory (99 seconds) +[ok]: Import mode should forbid eviction (2 ms) +[23/129 done]: unit/maxmemory (77 seconds) Testing unit/limits === (limits network external:skip) Starting server on 127.0.0.1:21332 ok -[ok]: Check if maxclients works refusing connections (1067 ms) -[24/129 done]: unit/limits (1 seconds) +[ok]: Check if maxclients works refusing connections (1188 ms) +[24/129 done]: unit/limits (2 seconds) Testing unit/lazyfree === (lazyfree) Starting server on 127.0.0.1:21334 ok -[ok]: UNLINK can reclaim memory in background (342 ms) -[ok]: FLUSHDB ASYNC can reclaim memory in background (353 ms) +[ok]: UNLINK can reclaim memory in background (308 ms) +[ok]: FLUSHDB ASYNC can reclaim memory in background (346 ms) [ok]: lazy free a stream with all types of metadata (161 ms) -[ok]: lazy free a stream with deleted cgroup (4 ms) +[ok]: lazy free a stream with deleted cgroup (1 ms) [25/129 done]: unit/lazyfree (1 seconds) Testing unit/latency-monitor === (latency-monitor needs:latency) Starting server on 127.0.0.1:21336 ok [ok]: LATENCY HISTOGRAM with empty histogram (1 ms) -[ok]: LATENCY HISTOGRAM all commands (1 ms) +[ok]: LATENCY HISTOGRAM all commands (2 ms) [ok]: LATENCY HISTOGRAM sub commands (1 ms) [ok]: LATENCY HISTOGRAM with a subset of commands (2 ms) [ok]: LATENCY HISTOGRAM command (1 ms) [ok]: LATENCY HISTOGRAM with wrong command name skips the invalid one (3 ms) [ok]: Test latency events logging (3405 ms) LATENCY HISTORY data: -{1761327173 300} {1761327174 400} {1761327176 500} -[ok]: LATENCY HISTORY output is ok (0 ms) +{1795740832 300} {1795740834 400} {1795740835 500} +[ok]: LATENCY HISTORY output is ok (1 ms) LATENCY LATEST data: -{command 1761327176 500 500 1200 3} -[ok]: LATENCY LATEST output is ok (0 ms) +{command 1795740835 500 500 1200 3} +[ok]: LATENCY LATEST output is ok (1 ms) LATENCY GRAPH data: command - high 500 ms, low 300 ms (all time high 500 ms) -------------------------------------------------------------------------------- @@ -2199,80 +2234,80 @@ || _|| -320 +421 sss -[ok]: LATENCY GRAPH can output the event graph (5 ms) -[ok]: LATENCY GRAPH can output the expire event graph (1 ms) -[ok]: LATENCY of expire events are correctly collected (2588 ms) +[ok]: LATENCY GRAPH can output the event graph (1 ms) +[ok]: LATENCY GRAPH can output the expire event graph (0 ms) +[ok]: LATENCY of expire events are correctly collected (2143 ms) [ok]: LATENCY HISTORY / RESET with wrong event name is fine (0 ms) [ok]: LATENCY DOCTOR produces some output (2 ms) -[ok]: LATENCY RESET is able to reset events (5 ms) +[ok]: LATENCY RESET is able to reset events (0 ms) [ok]: LATENCY HELP should not have unexpected options (1 ms) === (latency-monitor cluster external:skip needs:latency) Starting server on 127.0.0.1:21338 ok === (latency-monitor cluster external:skip needs:latency) Starting server on 127.0.0.1:21340 ok -[ok]: Cluster config file latency (2 ms) -[26/129 done]: unit/latency-monitor (17 seconds) +[ok]: Cluster config file latency (3 ms) +[26/129 done]: unit/latency-monitor (16 seconds) Testing unit/keyspace === (keyspace) Starting server on 127.0.0.1:21342 ok [ok]: DEL against a single item (1 ms) [ok]: Vararg DEL (1 ms) -[ok]: Untagged multi-key commands (5 ms) -[ok]: KEYS with pattern (1 ms) +[ok]: Untagged multi-key commands (1 ms) +[ok]: KEYS with pattern (2 ms) [ok]: KEYS to get all keys (0 ms) -[ok]: DBSIZE (0 ms) +[ok]: DBSIZE (1 ms) [ok]: KEYS with hashtag (1 ms) -[ok]: DEL all keys (1 ms) +[ok]: DEL all keys (3 ms) [ok]: KEYS with empty DB (0 ms) -[ok]: DEL against expired key (1102 ms) -[ok]: EXISTS (1 ms) +[ok]: DEL against expired key (1103 ms) +[ok]: EXISTS (2 ms) [ok]: Zero length value in key. SET/GET/EXISTS (1 ms) -[ok]: Commands pipelining (3 ms) +[ok]: Commands pipelining (0 ms) [ok]: Non existing command (0 ms) -[ok]: RENAME basic usage (0 ms) +[ok]: RENAME basic usage (1 ms) [ok]: RENAME source key should no longer exist (0 ms) [ok]: RENAME against already existing key (1 ms) [ok]: RENAMENX basic usage (1 ms) [ok]: RENAMENX against already existing key (1 ms) -[ok]: RENAMENX against already existing key (2) (0 ms) -[ok]: RENAME against non existing source key (4 ms) -[ok]: RENAME where source and dest key are the same (existing) (0 ms) +[ok]: RENAMENX against already existing key (2) (1 ms) +[ok]: RENAME against non existing source key (0 ms) +[ok]: RENAME where source and dest key are the same (existing) (1 ms) [ok]: RENAMENX where source and dest key are the same (existing) (0 ms) -[ok]: RENAME where source and dest key are the same (non existing) (0 ms) -[ok]: RENAME with volatile key, should move the TTL as well (2 ms) +[ok]: RENAME where source and dest key are the same (non existing) (1 ms) +[ok]: RENAME with volatile key, should move the TTL as well (1 ms) [ok]: RENAME with volatile key, should not inherit TTL of target key (1 ms) -[ok]: DEL all keys again (DB 0) (0 ms) -[ok]: DEL all keys again (DB 1) (0 ms) -[ok]: COPY basic usage for string (4 ms) -[ok]: COPY for string does not replace an existing key without REPLACE option (1 ms) -[ok]: COPY for string can replace an existing key with REPLACE option (0 ms) -[ok]: COPY for string ensures that copied data is independent of copying data (6 ms) -[ok]: COPY for string does not copy data to no-integer DB (0 ms) -[ok]: COPY can copy key expire metadata as well (0 ms) +[ok]: DEL all keys again (DB 0) (1 ms) +[ok]: DEL all keys again (DB 1) (1 ms) +[ok]: COPY basic usage for string (2 ms) +[ok]: COPY for string does not replace an existing key without REPLACE option (0 ms) +[ok]: COPY for string can replace an existing key with REPLACE option (1 ms) +[ok]: COPY for string ensures that copied data is independent of copying data (3 ms) +[ok]: COPY for string does not copy data to no-integer DB (1 ms) +[ok]: COPY can copy key expire metadata as well (1 ms) [ok]: COPY does not create an expire if it does not exist (1 ms) -[ok]: COPY basic usage for list - quicklist (47 ms) -[ok]: COPY basic usage for list - listpack (1 ms) -[ok]: COPY basic usage for $type set (5 ms) -[ok]: COPY basic usage for $type set (1 ms) -[ok]: COPY basic usage for $type set (32 ms) -[ok]: COPY basic usage for listpack sorted set (1 ms) -[ok]: COPY basic usage for skiplist sorted set (22 ms) +[ok]: COPY basic usage for list - quicklist (45 ms) +[ok]: COPY basic usage for list - listpack (2 ms) +[ok]: COPY basic usage for $type set (3 ms) +[ok]: COPY basic usage for $type set (3 ms) +[ok]: COPY basic usage for $type set (40 ms) +[ok]: COPY basic usage for listpack sorted set (2 ms) +[ok]: COPY basic usage for skiplist sorted set (25 ms) [ok]: COPY basic usage for listpack hash (1 ms) -[ok]: COPY basic usage for hashtable hash (23 ms) -[ok]: COPY basic usage for stream (186 ms) -[ok]: COPY basic usage for stream-cgroups (13 ms) -[ok]: MOVE basic usage (0 ms) -[ok]: MOVE against key existing in the target DB (0 ms) +[ok]: COPY basic usage for hashtable hash (22 ms) +[ok]: COPY basic usage for stream (130 ms) +[ok]: COPY basic usage for stream-cgroups (7 ms) +[ok]: MOVE basic usage (1 ms) +[ok]: MOVE against key existing in the target DB (1 ms) [ok]: MOVE against non-integer DB (#1428) (0 ms) -[ok]: MOVE can move key expire metadata as well (6 ms) +[ok]: MOVE can move key expire metadata as well (1 ms) [ok]: MOVE does not create an expire if it does not exist (1 ms) [ok]: SET/GET keys in different DBs (1 ms) -[ok]: RANDOMKEY (15 ms) +[ok]: RANDOMKEY (9 ms) [ok]: RANDOMKEY against empty DB (0 ms) [ok]: RANDOMKEY regression 1 (1 ms) [ok]: KEYS * two times with long key, Github issue #1208 (0 ms) -[ok]: Regression for pattern matching long nested loops (1 ms) -[ok]: Coverage: basic SWAPDB test and unhappy path (5 ms) +[ok]: Regression for pattern matching long nested loops (0 ms) +[ok]: Coverage: basic SWAPDB test and unhappy path (2 ms) [ok]: Coverage: SWAPDB and FLUSHDB (2 ms) [ok]: Regression for pattern matching very long nested loops (46 ms) === (keyspace external:skip cluster) Starting server on 127.0.0.1:21344 ok @@ -2281,373 +2316,372 @@ [27/129 done]: unit/keyspace (4 seconds) Testing unit/introspection === (introspection) Starting server on 127.0.0.1:21346 ok -[ok]: PING (3 ms) -[ok]: CLIENT LIST (0 ms) +[ok]: PING (1 ms) +[ok]: CLIENT LIST (1 ms) [ok]: CLIENT LIST with IDs (0 ms) -[ok]: CLIENT INFO (1 ms) -[ok]: CLIENT LIST with ADDR filter (0 ms) -[ok]: CLIENT LIST with LADDR filter (6 ms) +[ok]: CLIENT INFO (0 ms) +[ok]: CLIENT LIST with ADDR filter (1 ms) +[ok]: CLIENT LIST with LADDR filter (1 ms) [ok]: CLIENT LIST with MAXAGE filter (0 ms) [ok]: CLIENT LIST with TYPE filter (1 ms) -[ok]: CLIENT LIST with USER filter (0 ms) +[ok]: CLIENT LIST with USER filter (1 ms) [ok]: CLIENT LIST with SKIPME filter (1 ms) -[ok]: CLIENT LIST with multiple IDs and TYPE filter (55 ms) -[ok]: CLIENT LIST with filters matching no clients (36 ms) -[ok]: CLIENT LIST with illegal arguments (2 ms) -[ok]: client input output and command process statistics (24 ms) +[ok]: CLIENT LIST with multiple IDs and TYPE filter (94 ms) +[ok]: CLIENT LIST with filters matching no clients (62 ms) +[ok]: CLIENT LIST with illegal arguments (3 ms) +[ok]: client input output and command process statistics (36 ms) [ok]: CLIENT KILL with illegal arguments (2 ms) CLIENT KILL maxAGE will kill old clients test attempts: 0 -[ok]: CLIENT KILL maxAGE will kill old clients (2040 ms) -[ok]: CLIENT KILL SKIPME YES/NO will kill all clients (84 ms) -[ok]: CLIENT command unhappy path coverage (5 ms) -[ok]: CLIENT KILL close the client connection during bgsave (97 ms) -[ok]: CLIENT REPLY OFF/ON: disable all commands reply (62 ms) -[ok]: CLIENT REPLY SKIP: skip the next command reply (63 ms) -[ok]: CLIENT REPLY ON: unset SKIP flag (64 ms) -[ok]: MONITOR can log executed commands (21 ms) -[ok]: MONITOR properly escapes special characters through sdscatrepr (21 ms) -[ok]: MONITOR can log commands issued by the scripting engine (20 ms) -[ok]: MONITOR can log commands issued by functions (23 ms) -[ok]: MONITOR supports redacting command arguments (20 ms) -[ok]: MONITOR correctly handles multi-exec cases (24 ms) -[ok]: MONITOR correctly records SET EX in MULTI-EXEC (22 ms) -[ok]: MONITOR log blocked command only once (61 ms) -[ok]: CLIENT GETNAME should return NIL if name is not assigned (4 ms) +[ok]: CLIENT KILL maxAGE will kill old clients (2064 ms) +[ok]: CLIENT KILL SKIPME YES/NO will kill all clients (157 ms) +[ok]: CLIENT command unhappy path coverage (4 ms) +[ok]: CLIENT KILL close the client connection during bgsave (123 ms) +[ok]: CLIENT REPLY OFF/ON: disable all commands reply (75 ms) +[ok]: CLIENT REPLY SKIP: skip the next command reply (72 ms) +[ok]: CLIENT REPLY ON: unset SKIP flag (72 ms) +[ok]: MONITOR can log executed commands (32 ms) +[ok]: MONITOR properly escapes special characters through sdscatrepr (32 ms) +[ok]: MONITOR can log commands issued by the scripting engine (32 ms) +[ok]: MONITOR can log commands issued by functions (32 ms) +[ok]: MONITOR supports redacting command arguments (34 ms) +[ok]: MONITOR correctly handles multi-exec cases (33 ms) +[ok]: MONITOR correctly records SET EX in MULTI-EXEC (32 ms) +[ok]: MONITOR log blocked command only once (96 ms) +[ok]: CLIENT GETNAME should return NIL if name is not assigned (0 ms) [ok]: CLIENT GETNAME check if name set correctly (0 ms) [ok]: CLIENT LIST shows empty fields for unassigned names (0 ms) -[ok]: CLIENT SETNAME does not accept spaces (0 ms) +[ok]: CLIENT SETNAME does not accept spaces (1 ms) [ok]: CLIENT SETNAME can assign a name to this connection (0 ms) [ok]: CLIENT SETNAME can change the name of an existing connection (1 ms) -[ok]: After CLIENT SETNAME, connection can still be closed (23 ms) +[ok]: After CLIENT SETNAME, connection can still be closed (32 ms) [ok]: CLIENT SETINFO can set a library name to this connection (1 ms) -[ok]: CLIENT SETINFO invalid args (0 ms) -[ok]: RESET does NOT clean library name (1 ms) -[ok]: CLIENT SETINFO can clear library name (0 ms) +[ok]: CLIENT SETINFO invalid args (1 ms) +[ok]: RESET does NOT clean library name (0 ms) +[ok]: CLIENT SETINFO can clear library name (1 ms) === () Starting server on 127.0.0.1:21348 ok === () Starting server on 127.0.0.1:21350 ok === () Starting server on 127.0.0.1:21352 ok === () Starting server on 127.0.0.1:21354 ok -[ok]: CONFIG save params special case handled properly (1025 ms) -[ok]: CONFIG sanity (74 ms) -[ok]: CONFIG REWRITE sanity (302 ms) +[ok]: CONFIG save params special case handled properly (1042 ms) +[ok]: CONFIG sanity (69 ms) +[ok]: CONFIG REWRITE sanity (224 ms) === () Starting server on 127.0.0.1:21356 ok -[ok]: CONFIG REWRITE handles save and shutdown properly (933 ms) -[ok]: CONFIG SET with multiple args (1 ms) -[ok]: CONFIG SET rollback on set error (7 ms) -dummy_accept: sockaaaaef6e2200 -[ok]: CONFIG SET rollback on apply error (26 ms) +[ok]: CONFIG REWRITE handles save and shutdown properly (957 ms) +[ok]: CONFIG SET with multiple args (3 ms) +[ok]: CONFIG SET rollback on set error (2 ms) +dummy_accept: sockaaaadcfaf6c0 +[ok]: CONFIG SET rollback on apply error (37 ms) [ok]: CONFIG SET duplicate configs (0 ms) -[ok]: CONFIG SET set immutable (4 ms) -[ok]: CONFIG GET hidden configs (4 ms) -[ok]: CONFIG GET multiple args (0 ms) -[ok]: valkey-server command line arguments - error cases (150 ms) +[ok]: CONFIG SET set immutable (0 ms) +[ok]: CONFIG GET hidden configs (9 ms) +[ok]: CONFIG GET multiple args (1 ms) +[ok]: valkey-server command line arguments - error cases (191 ms) === () Starting server on 127.0.0.1:21359 ok === () Starting server on 127.0.0.1:21361 ok -[ok]: tot-net-out for replica client (567 ms) +[ok]: tot-net-out for replica client (659 ms) === () Starting server on 127.0.0.1:21363 ok -[ok]: valkey-server command line arguments - allow passing option name and option value in the same arg (254 ms) +[ok]: valkey-server command line arguments - allow passing option name and option value in the same arg (262 ms) === () Starting server on 127.0.0.1:21365 ok -[ok]: valkey-server command line arguments - wrong usage that we support anyway (251 ms) +[ok]: valkey-server command line arguments - wrong usage that we support anyway (258 ms) === () Starting server on 127.0.0.1:21367 ok -[ok]: valkey-server command line arguments - allow option value to use the `--` prefix (249 ms) +[ok]: valkey-server command line arguments - allow option value to use the `--` prefix (259 ms) === () Starting server on 127.0.0.1:21369 ok -[ok]: valkey-server command line arguments - option name and option value in the same arg and `--` prefix (263 ms) +[ok]: valkey-server command line arguments - option name and option value in the same arg and `--` prefix (258 ms) === () Starting server on 127.0.0.1:21371 ok === () Starting server on 127.0.0.1:21373 ok === () Starting server on 127.0.0.1:21375 ok === () Starting server on 127.0.0.1:21377 ok === () Starting server on 127.0.0.1:21379 ok -[ok]: valkey-server command line arguments - save with empty input (1260 ms) +[ok]: valkey-server command line arguments - save with empty input (1294 ms) === () Starting server on 127.0.0.1:21381 ok -[ok]: valkey-server command line arguments - take one bulk string with spaces for MULTI_ARG configs parsing (248 ms) +[ok]: valkey-server command line arguments - take one bulk string with spaces for MULTI_ARG configs parsing (252 ms) === () Starting server on 127.0.0.1:21383 ok -[ok]: valkey-server command line arguments - dir multiple times (254 ms) +[ok]: valkey-server command line arguments - dir multiple times (259 ms) === (introspection external:skip) Starting server on 127.0.0.1:21385 ok -[ok]: cannot modify protected configuration - no (3 ms) +[ok]: cannot modify protected configuration - no (1 ms) === (introspection external:skip) Starting server on 127.0.0.1:21387 ok -[ok]: cannot modify protected configuration - local (7 ms) +[ok]: cannot modify protected configuration - local (4 ms) === () Starting server on 127.0.0.1:21389 ok -[ok]: config during loading (931 ms) +[ok]: config during loading (958 ms) === () Starting server on 127.0.0.1:21391 ok -[ok]: MEMORY commands during loading (915 ms) +[ok]: MEMORY commands during loading (848 ms) === (introspection) Starting server on 127.0.0.1:21393 ok -[ok]: CONFIG REWRITE handles rename-command properly (477 ms) +[ok]: CONFIG REWRITE handles rename-command properly (494 ms) === (introspection) Starting server on 127.0.0.1:21395 ok === (introspection) Starting server on 127.0.0.1:21397 ok -[ok]: CONFIG REWRITE handles alias config properly (1008 ms) +[ok]: CONFIG REWRITE handles alias config properly (989 ms) [28/129 done]: unit/introspection (13 seconds) Testing unit/introspection-2 === (introspection) Starting server on 127.0.0.1:21399 ok -[ok]: The microsecond part of the TIME command will not overflow (2 ms) -[ok]: TTL, TYPE and EXISTS do not alter the last access time of a key (3005 ms) -[ok]: TOUCH alters the last access time of a key (3004 ms) +[ok]: The microsecond part of the TIME command will not overflow (1 ms) +[ok]: TTL, TYPE and EXISTS do not alter the last access time of a key (3006 ms) +[ok]: TOUCH alters the last access time of a key (3007 ms) [ok]: TOUCH alters the last access time of a key in no-touch mode (3007 ms) -[ok]: Operations in no-touch mode do not alter the last access time of a key (1103 ms) +[ok]: Operations in no-touch mode do not alter the last access time of a key (1104 ms) [ok]: TOUCH returns the number of existing keys specified (1 ms) -[ok]: command stats for GEOADD (1 ms) -[ok]: errors stats for GEOADD (1 ms) -[ok]: command stats for EXPIRE (6 ms) -[ok]: command stats for BRPOP (1 ms) -[ok]: command stats for MULTI (4 ms) +[ok]: command stats for GEOADD (2 ms) +[ok]: errors stats for GEOADD (2 ms) +[ok]: command stats for EXPIRE (2 ms) +[ok]: command stats for BRPOP (2 ms) +[ok]: command stats for MULTI (3 ms) [ok]: command stats for scripts (2 ms) [ok]: COMMAND COUNT get total number of commands (0 ms) -[ok]: COMMAND GETKEYS GET (0 ms) +[ok]: COMMAND GETKEYS GET (1 ms) [ok]: COMMAND GETKEYSANDFLAGS (1 ms) -[ok]: COMMAND GETKEYS MEMORY USAGE (3 ms) -[ok]: COMMAND GETKEYS XGROUP (0 ms) -[ok]: COMMAND GETKEYS EVAL with keys (1 ms) +[ok]: COMMAND GETKEYS MEMORY USAGE (0 ms) +[ok]: COMMAND GETKEYS XGROUP (1 ms) +[ok]: COMMAND GETKEYS EVAL with keys (0 ms) [ok]: COMMAND GETKEYS EVAL without keys (0 ms) -[ok]: COMMAND GETKEYS LCS (0 ms) -[ok]: COMMAND GETKEYS MORE THAN 256 KEYS (2 ms) -[ok]: COMMAND LIST syntax error (5 ms) -[ok]: COMMAND LIST WITHOUT FILTERBY (2 ms) +[ok]: COMMAND GETKEYS LCS (1 ms) +[ok]: COMMAND GETKEYS MORE THAN 256 KEYS (5 ms) +[ok]: COMMAND LIST syntax error (1 ms) +[ok]: COMMAND LIST WITHOUT FILTERBY (7 ms) [ok]: COMMAND LIST FILTERBY ACLCAT against non existing category (0 ms) [ok]: COMMAND LIST FILTERBY ACLCAT - list all commands/subcommands (1 ms) -[ok]: COMMAND LIST FILTERBY PATTERN - list all commands/subcommands (2 ms) +[ok]: COMMAND LIST FILTERBY PATTERN - list all commands/subcommands (3 ms) [ok]: COMMAND LIST FILTERBY MODULE against non existing module (0 ms) -[ok]: COMMAND INFO of invalid subcommands (0 ms) +[ok]: COMMAND INFO of invalid subcommands (1 ms) [ok]: SET command will not be marked with movablekeys (0 ms) -[ok]: GET command will not be marked with movablekeys (3 ms) +[ok]: GET command will not be marked with movablekeys (0 ms) [ok]: MSET command will not be marked with movablekeys (1 ms) -[ok]: BITFIELD command will not be marked with movablekeys (0 ms) +[ok]: BITFIELD command will not be marked with movablekeys (1 ms) [ok]: LMOVE command will not be marked with movablekeys (1 ms) -[ok]: LPOP command will not be marked with movablekeys (0 ms) +[ok]: LPOP command will not be marked with movablekeys (1 ms) [ok]: BLPOP command will not be marked with movablekeys (1 ms) [ok]: PING command will not be marked with movablekeys (0 ms) [ok]: MEMORY command will not be marked with movablekeys (1 ms) [ok]: MEMORY|USAGE command will not be marked with movablekeys (1 ms) -[ok]: RENAME command will not be marked with movablekeys (3 ms) +[ok]: RENAME command will not be marked with movablekeys (1 ms) [ok]: GEORADIUS_RO command will not be marked with movablekeys (1 ms) -[ok]: ZUNIONSTORE command is marked with movablekeys (6 ms) -[ok]: XREAD command is marked with movablekeys (0 ms) -[ok]: EVAL command is marked with movablekeys (7 ms) +[ok]: ZUNIONSTORE command is marked with movablekeys (1 ms) +[ok]: XREAD command is marked with movablekeys (1 ms) +[ok]: EVAL command is marked with movablekeys (1 ms) [ok]: SORT command is marked with movablekeys (1 ms) -[ok]: SORT_RO command is marked with movablekeys (0 ms) -[ok]: MIGRATE command is marked with movablekeys (0 ms) +[ok]: SORT_RO command is marked with movablekeys (1 ms) +[ok]: MIGRATE command is marked with movablekeys (1 ms) [ok]: GEORADIUS command is marked with movablekeys (1 ms) -[29/129 done]: unit/introspection-2 (10 seconds) +[29/129 done]: unit/introspection-2 (11 seconds) Testing unit/info === (info external:skip debug_defrag:skip) Starting server on 127.0.0.1:21401 ok === () Starting server on 127.0.0.1:21403 ok -[ok]: latencystats: disable/enable (4 ms) -[ok]: latencystats: configure percentiles (10 ms) -[ok]: latencystats: bad configure percentiles (3 ms) -[ok]: latencystats: blocking commands (26 ms) -[ok]: latencystats: subcommands (2 ms) -[ok]: latencystats: measure latency (52 ms) -[ok]: errorstats: failed call authentication error (5 ms) -[ok]: errorstats: failed call within MULTI/EXEC (3 ms) -[ok]: errorstats: failed call within LUA (6 ms) -[ok]: errorstats: failed call NOSCRIPT error (2 ms) -[ok]: errorstats: failed call NOGROUP error (9 ms) -[ok]: errorstats: rejected call unknown command (1 ms) -[ok]: errorstats: rejected call within MULTI/EXEC (3 ms) -[ok]: errorstats: rejected call due to wrong arity (4 ms) -[ok]: errorstats: rejected call by OOM error (7 ms) +[ok]: latencystats: disable/enable (3 ms) +[ok]: latencystats: configure percentiles (4 ms) +[ok]: latencystats: bad configure percentiles (4 ms) +[ok]: latencystats: blocking commands (35 ms) +[ok]: latencystats: subcommands (3 ms) +[ok]: latencystats: measure latency (53 ms) +[ok]: errorstats: failed call authentication error (3 ms) +[ok]: errorstats: failed call within MULTI/EXEC (4 ms) +[ok]: errorstats: failed call within LUA (4 ms) +[ok]: errorstats: failed call NOSCRIPT error (3 ms) +[ok]: errorstats: failed call NOGROUP error (3 ms) +[ok]: errorstats: rejected call unknown command (2 ms) +[ok]: errorstats: rejected call within MULTI/EXEC (4 ms) +[ok]: errorstats: rejected call due to wrong arity (3 ms) +[ok]: errorstats: rejected call by OOM error (4 ms) [ok]: errorstats: rejected call by authorization error (3 ms) -[ok]: errorstats: blocking commands (23 ms) -[ok]: errorstats: limit errors will not increase indefinitely (161 ms) +[ok]: errorstats: blocking commands (33 ms) +[ok]: errorstats: limit errors will not increase indefinitely (184 ms) eventloop metrics cycle1: 1118, cycle2: 1120 -eventloop metrics el_sum1: 39996, el_sum2: 40148 -eventloop metrics cmd_sum1: 9705, cmd_sum2: 9722 -[ok]: stats: eventloop metrics (113 ms) -instantaneous metrics instantaneous_eventloop_cycles_per_sec: 97 -instantaneous metrics instantaneous_eventloop_duration_usec: 28 +eventloop metrics el_sum1: 68311, el_sum2: 68489 +eventloop metrics cmd_sum1: 14106, cmd_sum2: 14125 +[ok]: stats: eventloop metrics (112 ms) +instantaneous metrics instantaneous_eventloop_cycles_per_sec: 98 +instantaneous metrics instantaneous_eventloop_duration_usec: 23 [ok]: stats: instantaneous metrics (2008 ms) -[ok]: stats: debug metrics (116 ms) -[ok]: stats: client input and output buffer limit disconnections (124 ms) -[ok]: clients: pubsub clients (35 ms) -[ok]: clients: watching clients (34 ms) +[ok]: stats: debug metrics (115 ms) +[ok]: stats: client input and output buffer limit disconnections (159 ms) +[ok]: clients: pubsub clients (65 ms) +[ok]: clients: watching clients (45 ms) === (info external:skip) Starting server on 127.0.0.1:21405 ok [ok]: memory: database and pubsub overhead and rehashing dict count (8 ms) -[30/129 done]: unit/info (4 seconds) +[30/129 done]: unit/info (3 seconds) Testing unit/info-command === (info and its relative command) Starting server on 127.0.0.1:21407 ok Testing Valkey version 7.2.4 (00000000) -[ok]: Extract version and sha1 details from info command and print (4 ms) -[ok]: info command with at most one sub command (2 ms) -[ok]: info command with one sub-section (6 ms) +[ok]: Extract version and sha1 details from info command and print (1 ms) +[ok]: info command with at most one sub command (3 ms) +[ok]: info command with one sub-section (1 ms) [ok]: info command with multiple sub-sections (2 ms) -[31/129 done]: unit/info-command (0 seconds) +[31/129 done]: unit/info-command (1 seconds) Testing unit/hyperloglog === (hll) Starting server on 127.0.0.1:21409 ok [ignore]: CVE-2025-32023: Sparse HLL XZERO overflow triggers crash: large memory flag not provided -[ok]: HyperLogLog self test passes (620 ms) -[ok]: PFADD without arguments creates an HLL value (0 ms) +[ok]: HyperLogLog self test passes (597 ms) +[ok]: PFADD without arguments creates an HLL value (1 ms) [ok]: Approximated cardinality after creation is zero (0 ms) -[ok]: PFADD returns 1 when at least 1 reg was modified (1 ms) -[ok]: PFADD returns 0 when no reg was modified (0 ms) +[ok]: PFADD returns 1 when at least 1 reg was modified (0 ms) +[ok]: PFADD returns 0 when no reg was modified (1 ms) [ok]: PFADD works with empty string (regression) (0 ms) [ok]: PFCOUNT returns approximated cardinality of set (1 ms) -[ok]: HyperLogLogs are promote from sparse to dense (456 ms) +[ok]: HyperLogLogs are promote from sparse to dense (405 ms) [ok]: Change hll-sparse-max-bytes (1 ms) -[ok]: Hyperloglog promote to dense well in different hll-sparse-max-bytes (61 ms) -[ok]: HyperLogLog sparse encoding stress test (1086 ms) +[ok]: Hyperloglog promote to dense well in different hll-sparse-max-bytes (45 ms) +[ok]: HyperLogLog sparse encoding stress test (793 ms) [ok]: Corrupted sparse HyperLogLogs are detected: Additional at tail (0 ms) [ok]: Corrupted sparse HyperLogLogs are detected: Broken magic (1 ms) [ok]: Corrupted sparse HyperLogLogs are detected: Invalid encoding (0 ms) -[ok]: Corrupted dense HyperLogLogs are detected: Wrong length (1 ms) -[ok]: Fuzzing dense/sparse encoding: Server should always detect errors (46881 ms) -[ok]: PFADD, PFCOUNT, PFMERGE type checking works (0 ms) -[ok]: PFMERGE results on the cardinality of union of sets (5 ms) -[ok]: PFMERGE on missing source keys will create an empty destkey (1 ms) -[ok]: PFMERGE with one empty input key, create an empty destkey (1 ms) -[ok]: PFMERGE with one non-empty input key, dest key is actually one of the source keys (0 ms) -[ok]: PFMERGE results with simd (1340 ms) -[ok]: PFCOUNT multiple-keys merge returns cardinality of union #1 (5110 ms) -[ok]: PFCOUNT multiple-keys merge returns cardinality of union #2 (2777 ms) -[ok]: PFDEBUG GETREG returns the HyperLogLog raw registers (432 ms) -[ok]: PFADD / PFCOUNT cache invalidation works (1 ms) -[32/129 done]: unit/hyperloglog (59 seconds) +[ok]: Corrupted dense HyperLogLogs are detected: Wrong length (0 ms) +[ok]: Fuzzing dense/sparse encoding: Server should always detect errors (47702 ms) +[ok]: PFADD, PFCOUNT, PFMERGE type checking works (2 ms) +[ok]: PFMERGE results on the cardinality of union of sets (1 ms) +[ok]: PFMERGE on missing source keys will create an empty destkey (2 ms) +[ok]: PFMERGE with one empty input key, create an empty destkey (0 ms) +[ok]: PFMERGE with one non-empty input key, dest key is actually one of the source keys (1 ms) +[ok]: PFMERGE results with simd (1019 ms) +[ok]: PFCOUNT multiple-keys merge returns cardinality of union #1 (4571 ms) +[ok]: PFCOUNT multiple-keys merge returns cardinality of union #2 (2434 ms) +[ok]: PFDEBUG GETREG returns the HyperLogLog raw registers (422 ms) +[ok]: PFADD / PFCOUNT cache invalidation works (2 ms) +[32/129 done]: unit/hyperloglog (58 seconds) Testing unit/geo === (geo) Starting server on 127.0.0.1:21411 ok -[ok]: GEO with wrong type src key (4 ms) -[ok]: GEO with non existing src key (0 ms) -[ok]: GEO BYLONLAT with empty search (0 ms) +[ok]: GEO with wrong type src key (3 ms) +[ok]: GEO with non existing src key (1 ms) +[ok]: GEO BYLONLAT with empty search (1 ms) [ok]: GEO BYMEMBER with non existing member (1 ms) [ok]: GEOADD create (0 ms) -[ok]: GEOADD update (1 ms) -[ok]: GEOADD update with CH option (0 ms) +[ok]: GEOADD update (0 ms) +[ok]: GEOADD update with CH option (1 ms) [ok]: GEOADD update with NX option (0 ms) -[ok]: GEOADD update with XX option (1 ms) +[ok]: GEOADD update with XX option (0 ms) [ok]: GEOADD update with CH NX option (0 ms) [ok]: GEOADD update with CH XX option (0 ms) -[ok]: GEOADD update with XX NX option will return syntax error (1 ms) -[ok]: GEOADD update with invalid option (0 ms) +[ok]: GEOADD update with XX NX option will return syntax error (0 ms) +[ok]: GEOADD update with invalid option (1 ms) [ok]: GEOADD invalid coordinates (0 ms) [ok]: GEOADD multi add (0 ms) [ok]: Check geoset values (0 ms) -[ok]: GEORADIUS simple (sorted) (0 ms) -[ok]: GEORADIUS_RO simple (sorted) (1 ms) +[ok]: GEORADIUS simple (sorted) (1 ms) +[ok]: GEORADIUS_RO simple (sorted) (0 ms) [ok]: GEOSEARCH simple (sorted) (0 ms) -[ok]: GEOSEARCH FROMLONLAT and FROMMEMBER cannot exist at the same time (0 ms) +[ok]: GEOSEARCH FROMLONLAT and FROMMEMBER cannot exist at the same time (1 ms) [ok]: GEOSEARCH FROMLONLAT and FROMMEMBER one must exist (0 ms) [ok]: GEOSEARCH BYRADIUS and BYBOX cannot exist at the same time (1 ms) [ok]: GEOSEARCH BYRADIUS and BYBOX one must exist (0 ms) [ok]: GEOSEARCH with STOREDIST option (0 ms) -[ok]: GEORADIUS withdist (sorted) (1 ms) +[ok]: GEORADIUS withdist (sorted) (0 ms) [ok]: GEOSEARCH withdist (sorted) (0 ms) -[ok]: GEORADIUS with COUNT (0 ms) +[ok]: GEORADIUS with COUNT (1 ms) [ok]: GEORADIUS with multiple WITH* tokens (1 ms) -[ok]: GEORADIUS with ANY not sorted by default (0 ms) -[ok]: GEORADIUS with ANY sorted by ASC (1 ms) +[ok]: GEORADIUS with ANY not sorted by default (1 ms) +[ok]: GEORADIUS with ANY sorted by ASC (0 ms) [ok]: GEORADIUS with ANY but no COUNT (0 ms) -[ok]: GEORADIUS with COUNT but missing integer argument (0 ms) +[ok]: GEORADIUS with COUNT but missing integer argument (1 ms) [ok]: GEORADIUS with COUNT DESC (0 ms) [ok]: GEORADIUS HUGE, issue #2767 (1 ms) [ok]: GEORADIUSBYMEMBER simple (sorted) (0 ms) -[ok]: GEORADIUSBYMEMBER_RO simple (sorted) (0 ms) -[ok]: GEORADIUSBYMEMBER search areas contain satisfied points in oblique direction (1 ms) +[ok]: GEORADIUSBYMEMBER_RO simple (sorted) (1 ms) +[ok]: GEORADIUSBYMEMBER search areas contain satisfied points in oblique direction (2 ms) [ok]: GEORADIUSBYMEMBER crossing pole search (1 ms) [ok]: GEOSEARCH FROMMEMBER simple (sorted) (0 ms) [ok]: GEOSEARCH vs GEORADIUS (1 ms) -[ok]: GEOSEARCH non square, long and narrow (0 ms) -[ok]: GEOSEARCH corner point test (0 ms) -[ok]: GEORADIUSBYMEMBER withdist (sorted) (0 ms) -[ok]: GEOHASH is able to return geohash strings (1 ms) +[ok]: GEOSEARCH non square, long and narrow (1 ms) +[ok]: GEOSEARCH corner point test (1 ms) +[ok]: GEORADIUSBYMEMBER withdist (sorted) (1 ms) +[ok]: GEOHASH is able to return geohash strings (0 ms) [ok]: GEOHASH with only key as argument (0 ms) [ok]: GEOPOS simple (1 ms) [ok]: GEOPOS missing element (0 ms) [ok]: GEOPOS with only key as argument (1 ms) -[ok]: GEODIST simple & unit (0 ms) -[ok]: GEODIST missing elements (0 ms) +[ok]: GEODIST simple & unit (1 ms) +[ok]: GEODIST missing elements (1 ms) [ok]: GEORADIUS STORE option: syntax error (1 ms) [ok]: GEOSEARCHSTORE STORE option: syntax error (0 ms) -[ok]: GEORANGE STORE option: incompatible options (1 ms) -[ok]: GEORANGE STORE option: plain usage (0 ms) +[ok]: GEORANGE STORE option: incompatible options (2 ms) +[ok]: GEORANGE STORE option: plain usage (1 ms) [ok]: GEORADIUSBYMEMBER STORE/STOREDIST option: plain usage (1 ms) [ok]: GEOSEARCHSTORE STORE option: plain usage (1 ms) -[ok]: GEORANGE STOREDIST option: plain usage (0 ms) +[ok]: GEORANGE STOREDIST option: plain usage (1 ms) [ok]: GEOSEARCHSTORE STOREDIST option: plain usage (1 ms) -[ok]: GEORANGE STOREDIST option: COUNT ASC and DESC (1 ms) -[ok]: GEOSEARCH the box spans -180° or 180° (1 ms) -[ok]: GEOSEARCH with small distance (0 ms) -[ok]: GEOSEARCH fuzzy test - byradius (13032 ms) -[ok]: GEOSEARCH fuzzy test - bybox (10304 ms) -[ok]: GEOSEARCH box edges fuzzy test (41 ms) +[ok]: GEORANGE STOREDIST option: COUNT ASC and DESC (2 ms) +[ok]: GEOSEARCH the box spans -180° or 180° (2 ms) +[ok]: GEOSEARCH with small distance (1 ms) +[ok]: GEOSEARCH fuzzy test - byradius (13460 ms) +[ok]: GEOSEARCH fuzzy test - bybox (10635 ms) +[ok]: GEOSEARCH box edges fuzzy test (37 ms) [33/129 done]: unit/geo (24 seconds) Testing unit/functions === (scripting) Starting server on 127.0.0.1:21413 ok -[ok]: FUNCTION - Basic usage (0 ms) +[ok]: FUNCTION - Basic usage (1 ms) [ok]: FUNCTION - Load with unknown argument (0 ms) -[ok]: FUNCTION - Create an already exiting library raise error (0 ms) +[ok]: FUNCTION - Create an already exiting library raise error (1 ms) [ok]: FUNCTION - Create an already exiting library raise error (case insensitive) (0 ms) [ok]: FUNCTION - Create a library with wrong name format (0 ms) -[ok]: FUNCTION - Create library with unexisting engine (1 ms) -[ok]: FUNCTION - Test uncompiled script (0 ms) -[ok]: FUNCTION - test replace argument (0 ms) -[ok]: FUNCTION - test function case insensitive (1 ms) +[ok]: FUNCTION - Create library with unexisting engine (0 ms) +[ok]: FUNCTION - Test uncompiled script (1 ms) +[ok]: FUNCTION - test replace argument (1 ms) +[ok]: FUNCTION - test function case insensitive (0 ms) [ok]: FUNCTION - test replace argument with failure keeps old libraries (0 ms) -[ok]: FUNCTION - test function delete (1 ms) -[ok]: FUNCTION - test fcall bad arguments (4 ms) +[ok]: FUNCTION - test function delete (0 ms) +[ok]: FUNCTION - test fcall bad arguments (1 ms) [ok]: FUNCTION - test fcall bad number of keys arguments (0 ms) -[ok]: FUNCTION - test fcall negative number of keys (0 ms) +[ok]: FUNCTION - test fcall negative number of keys (1 ms) [ok]: FUNCTION - test delete on not exiting library (0 ms) [ok]: FUNCTION - test function kill when function is not running (0 ms) [ok]: FUNCTION - test wrong subcommand (0 ms) [ok]: FUNCTION - test loading from rdb (1 ms) -[ok]: FUNCTION - test debug reload different options (1 ms) -[ok]: FUNCTION - test debug reload with nosave and noflush (6 ms) -[ok]: FUNCTION - test flushall and flushdb do not clean functions (1 ms) -[ok]: FUNCTION - test function dump and restore (1 ms) +[ok]: FUNCTION - test debug reload different options (2 ms) +[ok]: FUNCTION - test debug reload with nosave and noflush (2 ms) +[ok]: FUNCTION - test flushall and flushdb do not clean functions (2 ms) +[ok]: FUNCTION - test function dump and restore (2 ms) [ok]: FUNCTION - test function dump and restore with flush argument (1 ms) [ok]: FUNCTION - test function dump and restore with append argument (2 ms) [ok]: FUNCTION - test function dump and restore with replace argument (1 ms) -[ok]: FUNCTION - test function restore with bad payload do not drop existing functions (1 ms) +[ok]: FUNCTION - test function restore with bad payload do not drop existing functions (2 ms) [ok]: FUNCTION - test function restore with wrong number of arguments (0 ms) [ok]: FUNCTION - test fcall_ro with write command (1 ms) [ok]: FUNCTION - test fcall_ro with read only commands (1 ms) -[ok]: FUNCTION - test keys and argv (4 ms) +[ok]: FUNCTION - test keys and argv (0 ms) [ok]: FUNCTION - test command get keys on fcall (1 ms) [ok]: FUNCTION - test command get keys on fcall_ro (0 ms) -[ok]: FUNCTION - test function kill (433 ms) -[ok]: FUNCTION - test script kill not working on function (430 ms) -[ok]: FUNCTION - test function kill not working on eval (427 ms) -[ok]: FUNCTION - test function flush (2 ms) +[ok]: FUNCTION - test function kill (436 ms) +[ok]: FUNCTION - test script kill not working on function (436 ms) +[ok]: FUNCTION - test function kill not working on eval (428 ms) +[ok]: FUNCTION - test function flush (4 ms) [ok]: FUNCTION - test function wrong argument (0 ms) === (scripting repl external:skip) Starting server on 127.0.0.1:21415 ok === () Starting server on 127.0.0.1:21417 ok -[ok]: Connect a replica to the master instance (103 ms) +[ok]: Connect a replica to the master instance (104 ms) [ok]: FUNCTION - creation is replicated to replica (607 ms) -[ok]: FUNCTION - call on replica (0 ms) -[ok]: FUNCTION - restore is replicated to replica (1 ms) -[ok]: FUNCTION - delete is replicated to replica (5 ms) +[ok]: FUNCTION - call on replica (1 ms) +[ok]: FUNCTION - restore is replicated to replica (3 ms) +[ok]: FUNCTION - delete is replicated to replica (0 ms) [ok]: FUNCTION - flush is replicated to replica (1 ms) [ok]: Disconnecting the replica from master instance (105 ms) [ok]: FUNCTION - test replication to replica on rdb phase (0 ms) -[ok]: FUNCTION - test replication to replica on rdb phase info command (0 ms) +[ok]: FUNCTION - test replication to replica on rdb phase info command (1 ms) [ok]: FUNCTION - create on read only replica (0 ms) -[ok]: FUNCTION - delete on read only replica (0 ms) -[ok]: FUNCTION - function effect is replicated to replica (917 ms) +[ok]: FUNCTION - delete on read only replica (1 ms) +[ok]: FUNCTION - function effect is replicated to replica (912 ms) [ok]: FUNCTION - modify key space of read only replica (0 ms) === () Starting server on 127.0.0.1:21419 ok -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: FUNCTION can processes create, delete and flush commands in AOF when doing "debug loadaof" in read-only slaves (356 ms) +Waiting for background AOF rewrite to finish... [ok]: FUNCTION can processes create, delete and flush commands in AOF when doing "debug loadaof" in read-only slaves (352 ms) === (scripting) Starting server on 127.0.0.1:21421 ok [ok]: LIBRARIES - test shared function can access default globals (1 ms) -[ok]: LIBRARIES - usage and code sharing (1 ms) -[ok]: LIBRARIES - test registration failure revert the entire load (5 ms) +[ok]: LIBRARIES - usage and code sharing (2 ms) +[ok]: LIBRARIES - test registration failure revert the entire load (1 ms) [ok]: LIBRARIES - test registration function name collision (1 ms) [ok]: LIBRARIES - test registration function name collision on same library (0 ms) [ok]: LIBRARIES - test registration with no argument (0 ms) [ok]: LIBRARIES - test registration with only name (0 ms) -[ok]: LIBRARIES - test registration with to many arguments (0 ms) -[ok]: LIBRARIES - test registration with no string name (1 ms) -[ok]: LIBRARIES - test registration with wrong name format (0 ms) +[ok]: LIBRARIES - test registration with to many arguments (1 ms) +[ok]: LIBRARIES - test registration with no string name (0 ms) +[ok]: LIBRARIES - test registration with wrong name format (1 ms) [ok]: LIBRARIES - test registration with empty name (0 ms) [ok]: LIBRARIES - math.random from function load (1 ms) [ok]: LIBRARIES - redis.call from function load (0 ms) [ok]: LIBRARIES - redis.setresp from function load (0 ms) [ok]: LIBRARIES - redis.set_repl from function load (0 ms) -[ok]: LIBRARIES - redis.acl_check_cmd from function load (1 ms) -[ok]: LIBRARIES - malicious access test (1 ms) -[ok]: LIBRARIES - delete removed all functions on library (0 ms) +[ok]: LIBRARIES - redis.acl_check_cmd from function load (0 ms) +[ok]: LIBRARIES - malicious access test (2 ms) +[ok]: LIBRARIES - delete removed all functions on library (1 ms) [ok]: LIBRARIES - register function inside a function (0 ms) -[ok]: LIBRARIES - register library with no functions (0 ms) -[ok]: LIBRARIES - load timeout (502 ms) +[ok]: LIBRARIES - register library with no functions (1 ms) +[ok]: LIBRARIES - load timeout (501 ms) [ok]: LIBRARIES - verify global protection on the load run (0 ms) -[ok]: LIBRARIES - named arguments (1 ms) +[ok]: LIBRARIES - named arguments (0 ms) [ok]: LIBRARIES - named arguments, bad function name (0 ms) [ok]: LIBRARIES - named arguments, bad callback type (0 ms) [ok]: LIBRARIES - named arguments, bad description (1 ms) @@ -2655,323 +2689,323 @@ [ok]: LIBRARIES - named arguments, missing function name (0 ms) [ok]: LIBRARIES - named arguments, missing callback (1 ms) [ok]: FUNCTION - test function restore with function name collision (2 ms) -[ok]: FUNCTION - test function list with code (1 ms) +[ok]: FUNCTION - test function list with code (0 ms) [ok]: FUNCTION - test function list with pattern (0 ms) -[ok]: FUNCTION - test function list wrong argument (1 ms) +[ok]: FUNCTION - test function list wrong argument (0 ms) [ok]: FUNCTION - test function list with bad argument to library name (0 ms) -[ok]: FUNCTION - test function list withcode multiple times (0 ms) -[ok]: FUNCTION - test function list libraryname multiple times (1 ms) +[ok]: FUNCTION - test function list withcode multiple times (1 ms) +[ok]: FUNCTION - test function list libraryname multiple times (0 ms) [ok]: FUNCTION - verify OOM on function load and function restore (1 ms) [ok]: FUNCTION - verify allow-omm allows running any command (1 ms) === (scripting) Starting server on 127.0.0.1:21423 ok -[ok]: FUNCTION - wrong flags type named arguments (0 ms) +[ok]: FUNCTION - wrong flags type named arguments (1 ms) [ok]: FUNCTION - wrong flag type (0 ms) -[ok]: FUNCTION - unknown flag (1 ms) -[ok]: FUNCTION - write script on fcall_ro (0 ms) -[ok]: FUNCTION - write script with no-writes flag (7 ms) +[ok]: FUNCTION - unknown flag (0 ms) +[ok]: FUNCTION - write script on fcall_ro (1 ms) +[ok]: FUNCTION - write script with no-writes flag (0 ms) [ok]: FUNCTION - deny oom (1 ms) -[ok]: FUNCTION - deny oom on no-writes function (1 ms) +[ok]: FUNCTION - deny oom on no-writes function (0 ms) [ok]: FUNCTION - allow stale (1 ms) [ok]: FUNCTION - valkey version api (0 ms) [ok]: FUNCTION - function stats (1 ms) [ok]: FUNCTION - function stats reloaded correctly from rdb (1 ms) -[ok]: FUNCTION - function stats delete library (0 ms) -[ok]: FUNCTION - test function stats on loading failure (1 ms) -[ok]: FUNCTION - function stats cleaned after flush (0 ms) +[ok]: FUNCTION - function stats delete library (1 ms) +[ok]: FUNCTION - test function stats on loading failure (0 ms) +[ok]: FUNCTION - function stats cleaned after flush (1 ms) [ok]: FUNCTION - function test empty engine (0 ms) [ok]: FUNCTION - function test unknown metadata value (0 ms) -[ok]: FUNCTION - function test no name (0 ms) +[ok]: FUNCTION - function test no name (1 ms) [ok]: FUNCTION - function test multiple names (0 ms) -[ok]: FUNCTION - function test name with quotes (1 ms) -[ok]: FUNCTION - trick global protection 1 (0 ms) +[ok]: FUNCTION - function test name with quotes (0 ms) +[ok]: FUNCTION - trick global protection 1 (1 ms) [ok]: FUNCTION - test getmetatable on script load (0 ms) -[34/129 done]: unit/functions (6 seconds) +[34/129 done]: unit/functions (7 seconds) Testing unit/expire === (expire) Starting server on 127.0.0.1:21425 ok -[ok]: EXPIRE - set timeouts multiple times (0 ms) -[ok]: EXPIRE - It should be still possible to read 'x' (6 ms) +[ok]: EXPIRE - set timeouts multiple times (1 ms) +[ok]: EXPIRE - It should be still possible to read 'x' (1 ms) [ok]: EXPIRE - After 2.1 seconds the key should no longer be here (2102 ms) [ok]: EXPIRE - write on expire should work (1 ms) -[ok]: EXPIREAT - Check for EXPIRE alike behavior (1 ms) +[ok]: EXPIREAT - Check for EXPIRE alike behavior (2 ms) [ok]: SETEX - Set + Expire combo operation. Check for TTL (0 ms) -[ok]: SETEX - Check value (0 ms) -[ok]: SETEX - Overwrite old key (1 ms) -[ok]: SETEX - Wait for the key to expire (1101 ms) +[ok]: SETEX - Check value (1 ms) +[ok]: SETEX - Overwrite old key (0 ms) +[ok]: SETEX - Wait for the key to expire (1102 ms) [ok]: SETEX - Wrong time parameter (0 ms) -[ok]: PERSIST can undo an EXPIRE (1 ms) -[ok]: PERSIST returns 0 against non existing or non volatile keys (1 ms) +[ok]: PERSIST can undo an EXPIRE (2 ms) +[ok]: PERSIST returns 0 against non existing or non volatile keys (0 ms) millisecond expire test attempts: 0 -[ok]: EXPIRE precision is now the millisecond (1104 ms) +[ok]: EXPIRE precision is now the millisecond (1107 ms) PSETEX sub-second expire test attempts: 0 -[ok]: PSETEX can set sub-second expires (102 ms) +[ok]: PSETEX can set sub-second expires (103 ms) PEXPIRE sub-second expire test attempts: 0 [ok]: PEXPIRE can set sub-second expires (103 ms) PEXPIREAT sub-second expire test attempts: 0 -[ok]: PEXPIREAT can set sub-second expires (206 ms) -[ok]: EXPIRE / EXPIREAT / PEXPIRE / PEXPIREAT Expiration time is already expired (7 ms) +[ok]: PEXPIREAT can set sub-second expires (205 ms) +[ok]: EXPIRE / EXPIREAT / PEXPIRE / PEXPIREAT Expiration time is already expired (6 ms) [ok]: TTL returns time to live in seconds (1 ms) -[ok]: PTTL returns time to live in milliseconds (1 ms) +[ok]: PTTL returns time to live in milliseconds (0 ms) [ok]: TTL / PTTL / EXPIRETIME / PEXPIRETIME return -1 if key has no expire (1 ms) [ok]: TTL / PTTL / EXPIRETIME / PEXPIRETIME return -2 if key does not exit (1 ms) -[ok]: EXPIRETIME returns absolute expiration time in seconds (1 ms) +[ok]: EXPIRETIME returns absolute expiration time in seconds (0 ms) [ok]: PEXPIRETIME returns absolute expiration time in milliseconds (0 ms) -[ok]: Server should actively expire keys incrementally (611 ms) -[ok]: Server should lazy expire keys (1005 ms) -[ok]: EXPIRE should not resurrect keys (issue #1026) (1003 ms) -[ok]: 5 keys in, 5 keys out (1 ms) -[ok]: EXPIRE with empty string as TTL should report an error (1 ms) +[ok]: Server should actively expire keys incrementally (608 ms) +[ok]: Server should lazy expire keys (1006 ms) +[ok]: EXPIRE should not resurrect keys (issue #1026) (1005 ms) +[ok]: 5 keys in, 5 keys out (2 ms) +[ok]: EXPIRE with empty string as TTL should report an error (0 ms) [ok]: SET with EX with big integer should report an error (0 ms) -[ok]: SET with EX with smallest integer should report an error (1 ms) -[ok]: GETEX with big integer should report an error (0 ms) -[ok]: GETEX with smallest integer should report an error (1 ms) -[ok]: EXPIRE with big integer overflows when converted to milliseconds (1 ms) -[ok]: PEXPIRE with big integer overflow when basetime is added (1 ms) +[ok]: SET with EX with smallest integer should report an error (0 ms) +[ok]: GETEX with big integer should report an error (1 ms) +[ok]: GETEX with smallest integer should report an error (0 ms) +[ok]: EXPIRE with big integer overflows when converted to milliseconds (2 ms) +[ok]: PEXPIRE with big integer overflow when basetime is added (0 ms) [ok]: EXPIRE with big negative integer (1 ms) -[ok]: PEXPIREAT with big integer works (4 ms) +[ok]: PEXPIREAT with big integer works (1 ms) [ok]: PEXPIREAT with big negative integer works (1 ms) === (external:skip) Starting server on 127.0.0.1:21427 ok -[ok]: All time-to-live(TTL) in commands are propagated as absolute timestamp in milliseconds in AOF (2032 ms) -[ok]: All TTL in commands are propagated as absolute timestamp in replication stream (75 ms) +[ok]: All time-to-live(TTL) in commands are propagated as absolute timestamp in milliseconds in AOF (2023 ms) +[ok]: All TTL in commands are propagated as absolute timestamp in replication stream (85 ms) === (needs:repl external:skip) Starting server on 127.0.0.1:21429 ok -[ok]: First server should have role slave after REPLICAOF (5 ms) -[ok]: For all replicated TTL-related commands, absolute expire times are identical on primary and replica (129 ms) +[ok]: First server should have role slave after REPLICAOF (2 ms) +[ok]: For all replicated TTL-related commands, absolute expire times are identical on primary and replica (108 ms) -Waiting for background AOF rewrite to finish... [ok]: expired key which is created in writeable replicas should be deleted by active expiry (249 ms) -[ok]: SET command will remove expire (0 ms) +Waiting for background AOF rewrite to finish... [ok]: expired key which is created in writeable replicas should be deleted by active expiry (252 ms) +[ok]: SET command will remove expire (1 ms) [ok]: SET - use KEEPTTL option, TTL should not be removed (1 ms) -[ok]: SET - use KEEPTTL option, TTL should not be removed after loadaof (2004 ms) -[ok]: GETEX use of PERSIST option should remove TTL (0 ms) -[ok]: GETEX use of PERSIST option should remove TTL after loadaof (1 ms) -[ok]: GETEX propagate as to replica as PERSIST, UNLINK, or nothing (35 ms) -[ok]: EXPIRE with NX option on a key with ttl (6 ms) +[ok]: SET - use KEEPTTL option, TTL should not be removed after loadaof (2007 ms) +[ok]: GETEX use of PERSIST option should remove TTL (1 ms) +[ok]: GETEX use of PERSIST option should remove TTL after loadaof (2 ms) +[ok]: GETEX propagate as to replica as PERSIST, UNLINK, or nothing (43 ms) +[ok]: EXPIRE with NX option on a key with ttl (1 ms) [ok]: EXPIRE with NX option on a key without ttl (1 ms) [ok]: EXPIRE with XX option on a key with ttl (0 ms) -[ok]: EXPIRE with XX option on a key without ttl (1 ms) +[ok]: EXPIRE with XX option on a key without ttl (0 ms) [ok]: EXPIRE with GT option on a key with lower ttl (1 ms) -[ok]: EXPIRE with GT option on a key with higher ttl (0 ms) +[ok]: EXPIRE with GT option on a key with higher ttl (1 ms) [ok]: EXPIRE with GT option on a key without ttl (1 ms) -[ok]: EXPIRE with LT option on a key with higher ttl (0 ms) -[ok]: EXPIRE with LT option on a key with lower ttl (1 ms) +[ok]: EXPIRE with LT option on a key with higher ttl (1 ms) +[ok]: EXPIRE with LT option on a key with lower ttl (2 ms) [ok]: EXPIRE with LT option on a key without ttl (1 ms) -[ok]: EXPIRE with LT and XX option on a key with ttl (0 ms) +[ok]: EXPIRE with LT and XX option on a key with ttl (1 ms) [ok]: EXPIRE with LT and XX option on a key without ttl (1 ms) [ok]: EXPIRE with conflicting options: LT GT (0 ms) -[ok]: EXPIRE with conflicting options: NX GT (0 ms) -[ok]: EXPIRE with conflicting options: NX LT (1 ms) +[ok]: EXPIRE with conflicting options: NX GT (1 ms) +[ok]: EXPIRE with conflicting options: NX LT (0 ms) [ok]: EXPIRE with conflicting options: NX XX (0 ms) [ok]: EXPIRE with unsupported options (0 ms) -[ok]: EXPIRE with unsupported options (1 ms) -[ok]: EXPIRE with negative expiry (3 ms) -[ok]: EXPIRE with negative expiry on a non-valitale key (8 ms) +[ok]: EXPIRE with unsupported options (0 ms) +[ok]: EXPIRE with negative expiry (0 ms) +[ok]: EXPIRE with negative expiry on a non-valitale key (0 ms) [ok]: EXPIRE with non-existed key (1 ms) -[ok]: Server should not propagate the read command on lazy expire (76 ms) -[ok]: SCAN: Lazy-expire should not be wrapped in MULTI/EXEC (103 ms) -[ok]: RANDOMKEY: Lazy-expire should not be wrapped in MULTI/EXEC (103 ms) -[ok]: import-source can be closed when import-mode is off (1 ms) -[ok]: Import mode should forbid active expiration (112 ms) -[ok]: Import mode should forbid lazy expiration (14 ms) -[ok]: Client can visit expired key in import-source state (113 ms) +[ok]: Server should not propagate the read command on lazy expire (83 ms) +[ok]: SCAN: Lazy-expire should not be wrapped in MULTI/EXEC (99 ms) +[ok]: RANDOMKEY: Lazy-expire should not be wrapped in MULTI/EXEC (101 ms) +[ok]: import-source can be closed when import-mode is off (3 ms) +[ok]: Import mode should forbid active expiration (114 ms) +[ok]: Import mode should forbid lazy expiration (13 ms) +[ok]: Client can visit expired key in import-source state (115 ms) === (expire) Starting server on 127.0.0.1:21431 ok -[ok]: Active expiration triggers hashtable shrink (182 ms) +[ok]: Active expiration triggers hashtable shrink (175 ms) === (expire external:skip cluster) Starting server on 127.0.0.1:21433 ok -[ok]: expire scan should skip dictionaries with lot's of empty buckets (990 ms) -[35/129 done]: unit/expire (17 seconds) +[ok]: expire scan should skip dictionaries with lot's of empty buckets (950 ms) +[35/129 done]: unit/expire (16 seconds) Testing unit/dump === (dump) Starting server on 127.0.0.1:21435 ok -[ok]: DUMP / RESTORE are able to serialize / unserialize a simple key (7 ms) +[ok]: DUMP / RESTORE are able to serialize / unserialize a simple key (2 ms) [ok]: RESTORE can set an arbitrary expire to the materialized key (1 ms) [ok]: RESTORE can set an expire that overflows a 32 bit integer (1 ms) [ok]: RESTORE can set an absolute expire (1 ms) -[ok]: RESTORE with ABSTTL in the past (1 ms) -[ok]: RESTORE can set LRU (7 ms) +[ok]: RESTORE with ABSTTL in the past (2 ms) +[ok]: RESTORE can set LRU (3 ms) [ok]: RESTORE can set LFU (2 ms) -[ok]: RESTORE returns an error of the key already exists (0 ms) -[ok]: RESTORE can overwrite an existing key with REPLACE (6 ms) -[ok]: RESTORE can detect a syntax error for unrecognized options (0 ms) -[ok]: RESTORE should not store key that are already expired, with REPLACE will propagate it as DEL or UNLINK (43 ms) +[ok]: RESTORE returns an error of the key already exists (1 ms) +[ok]: RESTORE can overwrite an existing key with REPLACE (2 ms) +[ok]: RESTORE can detect a syntax error for unrecognized options (1 ms) +[ok]: RESTORE should not store key that are already expired, with REPLACE will propagate it as DEL or UNLINK (135 ms) [ok]: RESTORE key with future RDB version, strict version check (0 ms) -[ok]: RESTORE key with future RDB version, relaxed version check (4 ms) +[ok]: RESTORE key with future RDB version, relaxed version check (2 ms) [ok]: DUMP of non existing key returns nil (0 ms) === (repl) Starting server on 127.0.0.1:21437 ok -[ok]: MIGRATE is caching connections (268 ms) -[ok]: MIGRATE cached connections are released after some time (15003 ms) +[ok]: MIGRATE is caching connections (339 ms) +[ok]: MIGRATE cached connections are released after some time (15004 ms) === (repl) Starting server on 127.0.0.1:21439 ok -[ok]: MIGRATE is able to migrate a key between two instances (269 ms) +[ok]: MIGRATE is able to migrate a key between two instances (259 ms) === (repl) Starting server on 127.0.0.1:21441 ok -[ok]: MIGRATE is able to copy a key between two instances (260 ms) +[ok]: MIGRATE is able to copy a key between two instances (257 ms) === (repl) Starting server on 127.0.0.1:21443 ok -[ok]: MIGRATE will not overwrite existing keys, unless REPLACE is used (260 ms) +[ok]: MIGRATE will not overwrite existing keys, unless REPLACE is used (259 ms) === (repl) Starting server on 127.0.0.1:21445 ok -[ok]: MIGRATE propagates TTL correctly (268 ms) +[ok]: MIGRATE propagates TTL correctly (257 ms) === (repl) Starting server on 127.0.0.1:21447 ok -[ok]: MIGRATE can correctly transfer large values (7800 ms) +[ok]: MIGRATE can correctly transfer large values (6699 ms) === (repl) Starting server on 127.0.0.1:21449 ok -[ok]: MIGRATE can correctly transfer hashes (257 ms) +[ok]: MIGRATE can correctly transfer hashes (256 ms) === (repl) Starting server on 127.0.0.1:21451 ok -[ok]: MIGRATE timeout actually works (824 ms) +[ok]: MIGRATE timeout actually works (857 ms) === (repl) Starting server on 127.0.0.1:21453 ok -[ok]: MIGRATE can migrate multiple keys at once (264 ms) -[ok]: MIGRATE with multiple keys must have empty key arg (2 ms) +[ok]: MIGRATE can migrate multiple keys at once (257 ms) +[ok]: MIGRATE with multiple keys must have empty key arg (0 ms) === (repl) Starting server on 127.0.0.1:21455 ok -[ok]: MIGRATE with multiple keys migrate just existing ones (265 ms) +[ok]: MIGRATE with multiple keys migrate just existing ones (258 ms) === (repl) Starting server on 127.0.0.1:21457 ok -[ok]: MIGRATE with multiple keys: stress command rewriting (260 ms) +[ok]: MIGRATE with multiple keys: stress command rewriting (258 ms) === (repl) Starting server on 127.0.0.1:21459 ok -[ok]: MIGRATE with multiple keys: delete just ack keys (269 ms) +[ok]: MIGRATE with multiple keys: delete just ack keys (258 ms) === (repl) Starting server on 127.0.0.1:21461 ok -[ok]: MIGRATE AUTH: correct and wrong password cases (258 ms) -[36/129 done]: unit/dump (27 seconds) +[ok]: MIGRATE AUTH: correct and wrong password cases (259 ms) +[36/129 done]: unit/dump (26 seconds) Testing unit/commandlog === (commandlog) Starting server on 127.0.0.1:21463 ok [ok]: COMMANDLOG - check that it starts with an empty log (1 ms) -[ok]: COMMANDLOG - only logs commands exceeding the threshold (208 ms) -[ok]: COMMANDLOG - zero max length is correctly handled (9 ms) -[ok]: COMMANDLOG - max entries is correctly handled (16 ms) -[ok]: COMMANDLOG - GET optional argument to limit output len works (11 ms) -[ok]: COMMANDLOG - RESET subcommand works (1 ms) -[ok]: COMMANDLOG - logged entry sanity check (201 ms) -[ok]: COMMANDLOG slow - Certain commands are omitted that contain sensitive information (3 ms) -[ok]: COMMANDLOG slow - Some commands can redact sensitive fields (4 ms) -[ok]: COMMANDLOG slow - Rewritten commands are logged as their original command (25 ms) -[ok]: COMMANDLOG slow - commands with too many arguments are trimmed (7 ms) -[ok]: COMMANDLOG slow - too long arguments are trimmed (0 ms) -[ok]: COMMANDLOG slow - EXEC is not logged, just executed commands (202 ms) -[ok]: COMMANDLOG slow - can clean older entries (201 ms) -[ok]: COMMANDLOG slow - can be disabled (402 ms) -[ok]: COMMANDLOG slow - count must be >= -1 (0 ms) -[ok]: COMMANDLOG slow - get all slow logs (2 ms) -[ok]: COMMANDLOG slow - blocking command is reported only after unblocked (24 ms) -[ok]: COMMANDLOG slow - the commands in script are recorded normally - is_eval: 0 (4 ms) -[ok]: COMMANDLOG slow - the commands in script are recorded normally - is_eval: 1 (0 ms) -[37/129 done]: unit/commandlog (1 seconds) +[ok]: COMMANDLOG - only logs commands exceeding the threshold (204 ms) +[ok]: COMMANDLOG - zero max length is correctly handled (22 ms) +[ok]: COMMANDLOG - max entries is correctly handled (21 ms) +[ok]: COMMANDLOG - GET optional argument to limit output len works (13 ms) +[ok]: COMMANDLOG - RESET subcommand works (2 ms) +[ok]: COMMANDLOG - logged entry sanity check (203 ms) +[ok]: COMMANDLOG slow - Certain commands are omitted that contain sensitive information (7 ms) +[ok]: COMMANDLOG slow - Some commands can redact sensitive fields (3 ms) +[ok]: COMMANDLOG slow - Rewritten commands are logged as their original command (41 ms) +[ok]: COMMANDLOG slow - commands with too many arguments are trimmed (2 ms) +[ok]: COMMANDLOG slow - too long arguments are trimmed (2 ms) +[ok]: COMMANDLOG slow - EXEC is not logged, just executed commands (203 ms) +[ok]: COMMANDLOG slow - can clean older entries (203 ms) +[ok]: COMMANDLOG slow - can be disabled (404 ms) +[ok]: COMMANDLOG slow - count must be >= -1 (1 ms) +[ok]: COMMANDLOG slow - get all slow logs (4 ms) +[ok]: COMMANDLOG slow - blocking command is reported only after unblocked (36 ms) +[ok]: COMMANDLOG slow - the commands in script are recorded normally - is_eval: 0 (2 ms) +[ok]: COMMANDLOG slow - the commands in script are recorded normally - is_eval: 1 (1 ms) +[37/129 done]: unit/commandlog (2 seconds) Testing unit/client-eviction === () Starting server on 127.0.0.1:21465 ok -[ok]: client evicted due to large argv (68 ms) -[ok]: client evicted due to large query buf (53 ms) -[ok]: client evicted due to percentage of maxmemory (50 ms) -[ok]: client evicted due to large multi buf (93 ms) -[ok]: client evicted due to watched key list (377 ms) -[ok]: client evicted due to pubsub subscriptions (1288 ms) -[ok]: client evicted due to tracking redirection (113 ms) -[ok]: client evicted due to client tracking prefixes (10073 ms) -[ok]: client evicted due to output buf (27 ms) -[ok]: client no-evict on (52 ms) -[ok]: client no-evict off (62 ms) +[ok]: client evicted due to large argv (144 ms) +[ok]: client evicted due to large query buf (79 ms) +[ok]: client evicted due to percentage of maxmemory (60 ms) +[ok]: client evicted due to large multi buf (273 ms) +[ok]: client evicted due to watched key list (362 ms) +[ok]: client evicted due to pubsub subscriptions (1307 ms) +[ok]: client evicted due to tracking redirection (41 ms) +[ok]: client evicted due to client tracking prefixes (9249 ms) +[ok]: client evicted due to output buf (23 ms) +[ok]: client no-evict on (43 ms) +[ok]: client no-evict off (32 ms) === () Starting server on 127.0.0.1:21467 ok -[ok]: avoid client eviction when client is freed by output buffer limit (131 ms) +[ok]: avoid client eviction when client is freed by output buffer limit (113 ms) === () Starting server on 127.0.0.1:21469 ok -[ok]: decrease maxmemory-clients causes client eviction (335 ms) +[ok]: decrease maxmemory-clients causes client eviction (280 ms) === () Starting server on 127.0.0.1:21471 ok -[ok]: evict clients only until below limit (231 ms) +[ok]: evict clients only until below limit (193 ms) === () Starting server on 127.0.0.1:21473 ok -[ok]: evict clients in right order (large to small) (296 ms) +[ok]: evict clients in right order (large to small) (188 ms) === () Starting server on 127.0.0.1:21475 ok -[ok]: client total memory grows during client no-evict (177 ms) -[ok]: client total memory grows during maxmemory-clients disabled (163 ms) -[38/129 done]: unit/client-eviction (15 seconds) +[ok]: client total memory grows during client no-evict (209 ms) +[ok]: client total memory grows during maxmemory-clients disabled (152 ms) +[38/129 done]: unit/client-eviction (14 seconds) Testing unit/bitops === (bitops) Starting server on 127.0.0.1:21477 ok [ok]: BITCOUNT against wrong type (1 ms) [ok]: BITCOUNT returns 0 against non existing key (0 ms) [ok]: BITCOUNT returns 0 with out of range indexes (0 ms) [ok]: BITCOUNT returns 0 with negative indexes where start > end (1 ms) -[ok]: BITCOUNT against test vector #1 (1 ms) +[ok]: BITCOUNT against test vector #1 (0 ms) [ok]: BITCOUNT against test vector #2 (0 ms) [ok]: BITCOUNT against test vector #3 (0 ms) -[ok]: BITCOUNT against test vector #4 (0 ms) +[ok]: BITCOUNT against test vector #4 (1 ms) [ok]: BITCOUNT against test vector #5 (0 ms) -[ok]: BITCOUNT fuzzing without start/end (193 ms) -[ok]: BITCOUNT fuzzing with start/end (367 ms) -[ok]: BITCOUNT with just start (0 ms) -[ok]: BITCOUNT with start, end (1 ms) -[ok]: BITCOUNT with illegal arguments (1 ms) +[ok]: BITCOUNT fuzzing without start/end (221 ms) +[ok]: BITCOUNT fuzzing with start/end (378 ms) +[ok]: BITCOUNT with just start (1 ms) +[ok]: BITCOUNT with start, end (2 ms) +[ok]: BITCOUNT with illegal arguments (0 ms) [ok]: BITCOUNT against non-integer value (1 ms) [ok]: BITCOUNT regression test for github issue #582 (0 ms) -[ok]: BITCOUNT misaligned prefix (1 ms) +[ok]: BITCOUNT misaligned prefix (0 ms) [ok]: BITCOUNT misaligned prefix + full words + remainder (0 ms) -[ok]: BITOP NOT (empty string) (0 ms) -[ok]: BITOP NOT (known string) (1 ms) +[ok]: BITOP NOT (empty string) (1 ms) +[ok]: BITOP NOT (known string) (0 ms) [ok]: BITOP where dest and target are the same key (0 ms) [ok]: BITOP AND|OR|XOR don't change the string with single input key (1 ms) [ok]: BITOP missing key is considered a stream of zero (1 ms) [ok]: BITOP shorter keys are zero-padded to the key with max length (1 ms) -[ok]: BITOP and fuzzing (129 ms) -[ok]: BITOP or fuzzing (144 ms) -[ok]: BITOP xor fuzzing (137 ms) +[ok]: BITOP and fuzzing (149 ms) +[ok]: BITOP or fuzzing (203 ms) +[ok]: BITOP xor fuzzing (184 ms) [ok]: BITOP NOT fuzzing (20 ms) [ok]: BITOP with integer encoded source objects (0 ms) -[ok]: BITOP with non string source key (0 ms) -[ok]: BITOP with empty string after non empty string (issue #529) (1 ms) +[ok]: BITOP with non string source key (1 ms) +[ok]: BITOP with empty string after non empty string (issue #529) (0 ms) [ok]: BITPOS against wrong type (1 ms) [ok]: BITPOS will illegal arguments (0 ms) [ok]: BITPOS against non-integer value (1 ms) -[ok]: BITPOS bit=0 with empty key returns 0 (0 ms) +[ok]: BITPOS bit=0 with empty key returns 0 (1 ms) [ok]: BITPOS bit=1 with empty key returns -1 (0 ms) [ok]: BITPOS bit=0 with string less than 1 word works (1 ms) [ok]: BITPOS bit=1 with string less than 1 word works (0 ms) -[ok]: BITPOS bit=0 starting at unaligned address (1 ms) +[ok]: BITPOS bit=0 starting at unaligned address (0 ms) [ok]: BITPOS bit=1 starting at unaligned address (0 ms) [ok]: BITPOS bit=0 unaligned+full word+reminder (2 ms) -[ok]: BITPOS bit=1 unaligned+full word+reminder (3 ms) -[ok]: BITPOS bit=1 returns -1 if string is all 0 bits (6 ms) -[ok]: BITPOS bit=0 works with intervals (2 ms) -[ok]: BITPOS bit=1 works with intervals (1 ms) -[ok]: BITPOS bit=0 changes behavior if end is given (1 ms) +[ok]: BITPOS bit=1 unaligned+full word+reminder (2 ms) +[ok]: BITPOS bit=1 returns -1 if string is all 0 bits (5 ms) +[ok]: BITPOS bit=0 works with intervals (1 ms) +[ok]: BITPOS bit=1 works with intervals (2 ms) +[ok]: BITPOS bit=0 changes behavior if end is given (0 ms) [ok]: SETBIT/BITFIELD only increase dirty when the value changed (4 ms) -[ok]: BITPOS bit=1 fuzzy testing using SETBIT (279 ms) -[ok]: BITPOS bit=0 fuzzy testing using SETBIT (275 ms) -[ok]: BITPOS/BITCOUNT fuzzy testing using SETBIT (288 ms) +[ok]: BITPOS bit=1 fuzzy testing using SETBIT (208 ms) +[ok]: BITPOS bit=0 fuzzy testing using SETBIT (201 ms) +[ok]: BITPOS/BITCOUNT fuzzy testing using SETBIT (215 ms) [ignore]: large memory flag not provided [39/129 done]: unit/bitops (2 seconds) Testing unit/bitfield === (bitops) Starting server on 127.0.0.1:21479 ok [ok]: BITFIELD signed SET and GET basics (1 ms) [ok]: BITFIELD unsigned SET and GET basics (1 ms) -[ok]: BITFIELD signed SET and GET together (6 ms) -[ok]: BITFIELD unsigned with SET, GET and INCRBY arguments (1 ms) +[ok]: BITFIELD signed SET and GET together (1 ms) +[ok]: BITFIELD unsigned with SET, GET and INCRBY arguments (0 ms) [ok]: BITFIELD with only key as argument (0 ms) [ok]: BITFIELD # form (1 ms) [ok]: BITFIELD basic INCRBY form (1 ms) [ok]: BITFIELD chaining of multiple commands (1 ms) [ok]: BITFIELD unsigned overflow wrap (1 ms) -[ok]: BITFIELD unsigned overflow sat (7 ms) +[ok]: BITFIELD unsigned overflow sat (1 ms) [ok]: BITFIELD signed overflow wrap (1 ms) [ok]: BITFIELD signed overflow sat (1 ms) -[ok]: BITFIELD overflow detection fuzzing (503 ms) -[ok]: BITFIELD overflow wrap fuzzing (376 ms) +[ok]: BITFIELD overflow detection fuzzing (290 ms) +[ok]: BITFIELD overflow wrap fuzzing (304 ms) [ok]: BITFIELD regression for #3221 (0 ms) -[ok]: BITFIELD regression for #3564 (7 ms) +[ok]: BITFIELD regression for #3564 (2 ms) [ok]: BITFIELD_RO with only key as argument (0 ms) [ok]: BITFIELD_RO fails when write option is used (0 ms) === (repl external:skip) Starting server on 127.0.0.1:21481 ok === () Starting server on 127.0.0.1:21483 ok -[ok]: BITFIELD: setup slave (102 ms) -[ok]: BITFIELD: write on master, read on slave (825 ms) +[ok]: BITFIELD: setup slave (111 ms) +[ok]: BITFIELD: write on master, read on slave (817 ms) [ok]: BITFIELD_RO with only key as argument on read-only replica (0 ms) [ok]: BITFIELD_RO fails when write option is used on read-only replica (1 ms) -[40/129 done]: unit/bitfield (3 seconds) +[40/129 done]: unit/bitfield (2 seconds) Testing unit/auth === (auth external:skip) Starting server on 127.0.0.1:21485 ok -[ok]: AUTH fails if there is no password configured server side (1 ms) +[ok]: AUTH fails if there is no password configured server side (0 ms) [ok]: Arity check for auth command (0 ms) === (auth external:skip) Starting server on 127.0.0.1:21487 ok -[ok]: AUTH fails when a wrong password is given (15 ms) +[ok]: AUTH fails when a wrong password is given (14 ms) [ok]: Arbitrary command gives an error when AUTH is required (0 ms) [ok]: AUTH succeeds when the right password is given (0 ms) [ok]: Once AUTH succeeded we can actually send commands to the server (0 ms) -[ok]: For unauthenticated clients multibulk and bulk length are limited (42 ms) -[ok]: For unauthenticated clients output buffer is limited (21 ms) -[ok]: For once authenticated clients output buffer is NOT limited (21 ms) +[ok]: For unauthenticated clients multibulk and bulk length are limited (24 ms) +[ok]: For unauthenticated clients output buffer is limited (15 ms) +[ok]: For once authenticated clients output buffer is NOT limited (14 ms) === (auth_binary_password external:skip) Starting server on 127.0.0.1:21489 ok [ok]: AUTH fails when binary password is wrong (0 ms) [ok]: AUTH succeeds when binary password is correct (1 ms) === (primaryauth) Starting server on 127.0.0.1:21491 ok -[ok]: primaryauth test with binary password dualchannel = yes (943 ms) +[ok]: primaryauth test with binary password dualchannel = yes (1032 ms) === (auth_binary_password external:skip) Starting server on 127.0.0.1:21493 ok -[ok]: AUTH fails when binary password is wrong (1 ms) +[ok]: AUTH fails when binary password is wrong (0 ms) [ok]: AUTH succeeds when binary password is correct (0 ms) === (primaryauth) Starting server on 127.0.0.1:21495 ok -[ok]: primaryauth test with binary password dualchannel = no (951 ms) +[ok]: primaryauth test with binary password dualchannel = no (926 ms) [41/129 done]: unit/auth (3 seconds) Testing unit/aofrw === (aofrw external:skip logreqres:skip) Starting server on 127.0.0.1:21497 ok @@ -2981,597 +3015,602 @@ Waiting for background AOF rewrite to finish... Waiting for background AOF rewrite to finish... Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite during write load: RDB preamble=yes (6675 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite during write load: RDB preamble=yes (8198 ms) Waiting for background AOF rewrite to finish... Waiting for background AOF rewrite to finish... Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite during write load: RDB preamble=no (7005 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite during write load: RDB preamble=no (8343 ms) === (aofrw external:skip) Starting server on 127.0.0.1:21499 ok -Waiting for background AOF rewrite to finish... [ok]: Turning off AOF kills the background writing child if any (63 ms) - Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of list with listpack encoding, string data (115 ms) +Waiting for background AOF rewrite to finish... [ok]: Turning off AOF kills the background writing child if any (109 ms) -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of list with quicklist encoding, string data (317 ms) +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of list with listpack encoding, string data (106 ms) Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of list with listpack encoding, int data (106 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of list with quicklist encoding, string data (209 ms) -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of list with quicklist encoding, int data (166 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of list with listpack encoding, int data (55 ms) -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of set with intset encoding, string data (108 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of list with quicklist encoding, int data (142 ms) -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of set with hashtable encoding, string data (231 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of set with intset encoding, string data (54 ms) -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of set with intset encoding, int data (54 ms) +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of set with hashtable encoding, string data (203 ms) -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of set with hashtable encoding, int data (222 ms) +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of set with intset encoding, int data (107 ms) Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of hash with listpack encoding, string data (110 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of set with hashtable encoding, int data (199 ms) -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of hash with hashtable encoding, string data (335 ms) +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of hash with listpack encoding, string data (105 ms) -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of hash with listpack encoding, int data (60 ms) +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of hash with hashtable encoding, string data (211 ms) Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of hash with hashtable encoding, int data (336 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of hash with listpack encoding, int data (105 ms) -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of zset with listpack encoding, string data (59 ms) +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of hash with hashtable encoding, int data (209 ms) Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of zset with skiplist encoding, string data (234 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of zset with listpack encoding, string data (104 ms) + +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of zset with skiplist encoding, string data (168 ms) Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of zset with listpack encoding, int data (112 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of zset with listpack encoding, int data (110 ms) Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of zset with skiplist encoding, int data (287 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of zset with skiplist encoding, int data (206 ms) Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite functions (110 ms) -[ok]: BGREWRITEAOF is delayed if BGSAVE is in progress (236 ms) -[ok]: BGREWRITEAOF is refused if already in progress (27 ms) -[42/129 done]: unit/aofrw (18 seconds) +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite functions (107 ms) +[ok]: BGREWRITEAOF is delayed if BGSAVE is in progress (224 ms) +[ok]: BGREWRITEAOF is refused if already in progress (18 ms) +[42/129 done]: unit/aofrw (20 seconds) Testing unit/acl === (acl external:skip) Starting server on 127.0.0.1:21501 ok -[ok]: Connections start with the default user (1 ms) +[ok]: Connections start with the default user (0 ms) [ok]: It is possible to create new users (0 ms) [ok]: Coverage: ACL USERS (0 ms) [ok]: Usernames can not contain spaces or null characters (0 ms) -[ok]: New users start disabled (0 ms) -[ok]: Enabling the user allows the login (1 ms) -[ok]: Only the set of correct passwords work (1 ms) -[ok]: It is possible to remove passwords from the set of valid ones (0 ms) -[ok]: Test password hashes can be added (1 ms) +[ok]: New users start disabled (1 ms) +[ok]: Enabling the user allows the login (0 ms) +[ok]: Only the set of correct passwords work (0 ms) +[ok]: It is possible to remove passwords from the set of valid ones (1 ms) +[ok]: Test password hashes can be added (0 ms) [ok]: Test password hashes validate input (0 ms) -[ok]: ACL GETUSER returns the password hash instead of the actual password (0 ms) -[ok]: Test hashed passwords removal (1 ms) -[ok]: By default users are not able to access any command (0 ms) -[ok]: By default users are not able to access any key (1 ms) +[ok]: ACL GETUSER returns the password hash instead of the actual password (1 ms) +[ok]: Test hashed passwords removal (0 ms) +[ok]: By default users are not able to access any command (1 ms) +[ok]: By default users are not able to access any key (0 ms) [ok]: It's possible to allow the access of a subset of keys (1 ms) [ok]: By default, only default user is able to publish to any channel (1 ms) -[ok]: By default, only default user is not able to publish to any shard channel (0 ms) -[ok]: By default, only default user is able to subscribe to any channel (13 ms) -[ok]: By default, only default user is able to subscribe to any shard channel (13 ms) -[ok]: By default, only default user is able to subscribe to any pattern (13 ms) +[ok]: By default, only default user is not able to publish to any shard channel (1 ms) +[ok]: By default, only default user is able to subscribe to any channel (12 ms) +[ok]: By default, only default user is able to subscribe to any shard channel (12 ms) +[ok]: By default, only default user is able to subscribe to any pattern (14 ms) [ok]: It's possible to allow publishing to a subset of channels (1 ms) -[ok]: It's possible to allow publishing to a subset of shard channels (1 ms) +[ok]: It's possible to allow publishing to a subset of shard channels (0 ms) [ok]: Validate subset of channels is prefixed with resetchannels flag (1 ms) [ok]: In transaction queue publish/subscribe/psubscribe to unauthorized channel will fail (1 ms) [ok]: It's possible to allow subscribing to a subset of channels (13 ms) -[ok]: It's possible to allow subscribing to a subset of shard channels (13 ms) -[ok]: It's possible to allow subscribing to a subset of channel patterns (12 ms) -[ok]: Subscribers are killed when revoked of channel permission (13 ms) -[ok]: Subscribers are killed when revoked of channel permission (13 ms) +[ok]: It's possible to allow subscribing to a subset of shard channels (12 ms) +[ok]: It's possible to allow subscribing to a subset of channel patterns (14 ms) +[ok]: Subscribers are killed when revoked of channel permission (14 ms) +[ok]: Subscribers are killed when revoked of channel permission (12 ms) [ok]: Subscribers are killed when revoked of pattern permission (13 ms) -[ok]: Subscribers are killed when revoked of allchannels permission (12 ms) -[ok]: Subscribers are pardoned if literal permissions are retained and/or gaining allchannels (13 ms) -[ok]: blocked command gets rejected when reprocessed after permission change (13 ms) +[ok]: Subscribers are killed when revoked of allchannels permission (13 ms) +[ok]: Subscribers are pardoned if literal permissions are retained and/or gaining allchannels (14 ms) +[ok]: blocked command gets rejected when reprocessed after permission change (14 ms) [ok]: Users can be configured to authenticate with any password (0 ms) [ok]: ACLs can exclude single commands (1 ms) [ok]: ACLs can include or exclude whole classes of commands (1 ms) [ok]: ACLs can include single subcommands (1 ms) -[ok]: ACLs can exclude single subcommands, case 1 (0 ms) -[ok]: ACLs can exclude single subcommands, case 2 (0 ms) -[ok]: ACLs cannot include a subcommand with a specific arg (0 ms) -[ok]: ACLs cannot exclude or include a container commands with a specific arg (1 ms) +[ok]: ACLs can exclude single subcommands, case 1 (1 ms) +[ok]: ACLs can exclude single subcommands, case 2 (1 ms) +[ok]: ACLs cannot include a subcommand with a specific arg (1 ms) +[ok]: ACLs cannot exclude or include a container commands with a specific arg (0 ms) [ok]: ACLs cannot exclude or include a container command with two args (1 ms) [ok]: ACLs including of a type includes also subcommands (1 ms) [ok]: ACLs can block SELECT of all but a specific DB (1 ms) [ok]: ACLs can block all DEBUG subcommands except one (1 ms) -[ok]: ACLs set can include subcommands, if already full command exists (1 ms) -[ok]: ACLs set can exclude subcommands, if already full command exists (3 ms) -[ok]: ACL SETUSER RESET reverting to default newly created user (1 ms) +[ok]: ACLs set can include subcommands, if already full command exists (2 ms) +[ok]: ACLs set can exclude subcommands, if already full command exists (2 ms) +[ok]: ACL SETUSER RESET reverting to default newly created user (0 ms) [ok]: ACL GETUSER is able to translate back command permissions (1 ms) -[ok]: ACL GETUSER provides reasonable results (14 ms) +[ok]: ACL GETUSER provides reasonable results (13 ms) [ok]: ACL GETUSER provides correct results (4 ms) -[ok]: ACL CAT with illegal arguments (1 ms) -[ok]: ACL CAT without category - list all categories (1 ms) +[ok]: ACL CAT with illegal arguments (0 ms) +[ok]: ACL CAT without category - list all categories (0 ms) [ok]: ACL CAT category - list all commands/subcommands that belong to category (1 ms) -[ok]: ACL requires explicit permission for scripting for EVAL_RO, EVALSHA_RO and FCALL_RO (1 ms) +[ok]: ACL requires explicit permission for scripting for EVAL_RO, EVALSHA_RO and FCALL_RO (0 ms) [ok]: ACL #5998 regression: memory leaks adding / removing subcommands (0 ms) -[ok]: ACL LOG aggregates similar errors together and assigns unique entry-id to new errors (10 ms) -[ok]: ACL LOG shows failed command executions at toplevel (1 ms) +[ok]: ACL LOG aggregates similar errors together and assigns unique entry-id to new errors (6 ms) +[ok]: ACL LOG shows failed command executions at toplevel (2 ms) [ok]: ACL LOG shows failed subcommand executions at toplevel (1 ms) [ok]: ACL LOG is able to test similar events (1 ms) [ok]: ACL LOG is able to log keys access violations and key name (1 ms) -[ok]: ACL LOG is able to log channel access violations and channel name (4 ms) +[ok]: ACL LOG is able to log channel access violations and channel name (1 ms) [ok]: ACL LOG RESET is able to flush the entries in the log (0 ms) [ok]: ACL LOG can distinguish the transaction context (1) (1 ms) -[ok]: ACL LOG can distinguish the transaction context (2) (21 ms) -[ok]: ACL can log errors in the context of Lua scripting (4 ms) -[ok]: ACL LOG can accept a numerical argument to show less entries (1 ms) +[ok]: ACL LOG can distinguish the transaction context (2) (14 ms) +[ok]: ACL can log errors in the context of Lua scripting (1 ms) +[ok]: ACL LOG can accept a numerical argument to show less entries (2 ms) [ok]: ACL LOG can log failed auth attempts (1 ms) -[ok]: ACLLOG - zero max length is correctly handled (2 ms) -[ok]: ACL LOG entries are limited to a maximum amount (5 ms) -[ok]: ACL LOG entries are still present on update of max len config (0 ms) -[ok]: When default user is off, new connections are not authenticated (20 ms) +[ok]: ACLLOG - zero max length is correctly handled (1 ms) +[ok]: ACL LOG entries are limited to a maximum amount (2 ms) +[ok]: ACL LOG entries are still present on update of max len config (1 ms) +[ok]: When default user is off, new connections are not authenticated (13 ms) [ok]: When default user has no command permission, hello command still works for other users (1 ms) [ok]: When an authentication chain is used in the HELLO cmd, the last auth cmd has precedence (1 ms) -[ok]: When a setname chain is used in the HELLO cmd, the last setname cmd has precedence (8 ms) +[ok]: When a setname chain is used in the HELLO cmd, the last setname cmd has precedence (1 ms) [ok]: When authentication fails in the HELLO cmd, the client setname should not be applied (0 ms) -[ok]: ACL HELP should not have unexpected options (1 ms) -[ok]: Delete a user that the client doesn't use (0 ms) -[ok]: Delete a user that the client is using (1 ms) -[ok]: ACL GENPASS command failed test (21 ms) +[ok]: ACL HELP should not have unexpected options (0 ms) +[ok]: Delete a user that the client doesn't use (1 ms) +[ok]: Delete a user that the client is using (0 ms) +[ok]: ACL GENPASS command failed test (12 ms) [ok]: Default user can not be removed (0 ms) [ok]: ACL load non-existing configured ACL file (0 ms) -[ok]: ACL-Metrics user AUTH failure (4 ms) +[ok]: ACL-Metrics user AUTH failure (3 ms) [ok]: ACL-Metrics invalid command accesses (2 ms) -[ok]: ACL-Metrics invalid key accesses (7 ms) -[ok]: ACL-Metrics invalid channels accesses (6 ms) +[ok]: ACL-Metrics invalid key accesses (2 ms) +[ok]: ACL-Metrics invalid channels accesses (2 ms) === (external:skip) Starting server on 127.0.0.1:21503 ok -[ok]: default: load from include file, can access any channels (9 ms) -[ok]: default: with config acl-pubsub-default allchannels after reset, can access any channels (1 ms) -[ok]: default: with config acl-pubsub-default resetchannels after reset, can not access any channels (1 ms) +[ok]: default: load from include file, can access any channels (1 ms) +[ok]: default: with config acl-pubsub-default allchannels after reset, can access any channels (0 ms) +[ok]: default: with config acl-pubsub-default resetchannels after reset, can not access any channels (0 ms) [ok]: Alice: can execute all command (0 ms) -[ok]: Bob: just execute @set and acl command (0 ms) -[ok]: ACL LOAD only disconnects affected clients (44 ms) -[ok]: ACL LOAD disconnects clients of deleted users (37 ms) +[ok]: Bob: just execute @set and acl command (1 ms) +[ok]: ACL LOAD only disconnects affected clients (37 ms) +[ok]: ACL LOAD disconnects clients of deleted users (38 ms) [ok]: ACL load and save (1 ms) [ok]: ACL load and save with restricted channels (1 ms) === (external:skip) Starting server on 127.0.0.1:21505 ok -[ok]: Default user has access to all channels irrespective of flag (1 ms) +[ok]: Default user has access to all channels irrespective of flag (0 ms) [ok]: Update acl-pubsub-default, existing users shouldn't get affected (1 ms) [ok]: Single channel is valid (1 ms) [ok]: Single channel is not valid with allchannels (0 ms) === (external:skip) Starting server on 127.0.0.1:21507 ok -[ok]: Only default user has access to all channels irrespective of flag (1 ms) +[ok]: Only default user has access to all channels irrespective of flag (0 ms) === (external:skip) Starting server on 127.0.0.1:21509 ok -[ok]: default: load from config file, without channel permission default user can't access any channels (4 ms) +[ok]: default: load from config file, without channel permission default user can't access any channels (1 ms) === (external:skip) Starting server on 127.0.0.1:21511 ok -[ok]: default: load from config file with all channels permissions (1 ms) +[ok]: default: load from config file with all channels permissions (0 ms) === (external:skip) Starting server on 127.0.0.1:21513 ok -[ok]: Test loading an ACL file with duplicate users (8 ms) -[ok]: Test loading an ACL file with duplicate default user (6 ms) -[ok]: Test loading duplicate users in config on startup (25 ms) +[ok]: Test loading an ACL file with duplicate users (4 ms) +[ok]: Test loading an ACL file with duplicate default user (3 ms) +[ok]: Test loading duplicate users in config on startup (15 ms) === (acl external:skip) Starting server on 127.0.0.1:21515 ok -[ok]: ACL from config file and config rewrite (218 ms) +[ok]: ACL from config file and config rewrite (208 ms) === () Starting server on 127.0.0.1:21517 ok -[ok]: ACL still denies individual renamed commands (4 ms) +[ok]: ACL still denies individual renamed commands (1 ms) [ok]: ACL command classes aren't affected by command renaming (1 ms) [ok]: ACL GETUSER provides correct results when commands renamed (3 ms) === (repl external:skip) Starting server on 127.0.0.1:21519 ok -[ok]: Test ACL LOAD works on primary (5 ms) +[ok]: Test ACL LOAD works on primary (2 ms) === () Starting server on 127.0.0.1:21521 ok -[ok]: Test ACL LOAD works on replica (108 ms) +[ok]: Test ACL LOAD works on replica (111 ms) [43/129 done]: unit/acl (4 seconds) Testing unit/acl-v2 === (acl external:skip) Starting server on 127.0.0.1:21523 ok -[ok]: Test basic multiple selectors (8 ms) +[ok]: Test basic multiple selectors (1 ms) [ok]: Test ACL selectors by default have no permissions (1 ms) -[ok]: Test deleting selectors (7 ms) +[ok]: Test deleting selectors (1 ms) [ok]: Test selector syntax error reports the error in the selector context (1 ms) [ok]: Test flexible selector definition (1 ms) -[ok]: Test separate read permission (2 ms) -[ok]: Test separate write permission (1 ms) -[ok]: Test separate read and write permissions (6 ms) +[ok]: Test separate read permission (1 ms) +[ok]: Test separate write permission (0 ms) +[ok]: Test separate read and write permissions (0 ms) [ok]: Validate read and write permissions format (1 ms) [ok]: Validate key permissions format - empty and omitted pattern (1 ms) -[ok]: Test separate read and write permissions on different selectors are not additive (7 ms) +[ok]: Test separate read and write permissions on different selectors are not additive (1 ms) [ok]: Test SET with separate read permission (1 ms) -[ok]: Test SET with separate write permission (2 ms) -[ok]: Test SET with read and write permissions (1 ms) -[ok]: Test BITFIELD with separate read permission (7 ms) -[ok]: Test BITFIELD with separate write permission (1 ms) -[ok]: Test BITFIELD with read and write permissions (1 ms) -[ok]: Test ACL log correctly identifies the relevant item when selectors are used (6 ms) +[ok]: Test SET with separate write permission (1 ms) +[ok]: Test SET with read and write permissions (2 ms) +[ok]: Test BITFIELD with separate read permission (1 ms) +[ok]: Test BITFIELD with separate write permission (0 ms) +[ok]: Test BITFIELD with read and write permissions (0 ms) +[ok]: Test ACL log correctly identifies the relevant item when selectors are used (2 ms) [ok]: Test ACL GETUSER response information (1 ms) [ok]: Test ACL list idempotency (1 ms) -[ok]: Test R+W is the same as all permissions (1 ms) -[ok]: Test basic dry run functionality (0 ms) -[ok]: Test various commands for command permissions (5 ms) +[ok]: Test R+W is the same as all permissions (0 ms) +[ok]: Test basic dry run functionality (1 ms) +[ok]: Test various commands for command permissions (0 ms) [ok]: Test various odd commands for key permissions (4 ms) -[ok]: Existence test commands are not marked as access (2 ms) +[ok]: Existence test commands are not marked as access (1 ms) [ok]: Intersection cardinaltiy commands are access commands (1 ms) -[ok]: Test general keyspace commands require some type of permission to execute (8 ms) -[ok]: Cardinality commands require some type of permission to execute (12 ms) -[ok]: Test sharded channel permissions (1 ms) -[ok]: Test sort with ACL permissions (3 ms) +[ok]: Test general keyspace commands require some type of permission to execute (1 ms) +[ok]: Cardinality commands require some type of permission to execute (2 ms) +[ok]: Test sharded channel permissions (0 ms) +[ok]: Test sort with ACL permissions (1 ms) [ok]: Test DRYRUN with wrong number of arguments (0 ms) === (external:skip) Starting server on 127.0.0.1:21525 ok [ok]: Test behavior of loading ACLs (1 ms) [44/129 done]: unit/acl-v2 (0 seconds) Testing unit/type/zset === (zset) Starting server on 127.0.0.1:21527 ok -[ok]: Check encoding - listpack (1 ms) +[ok]: Check encoding - listpack (0 ms) [ok]: ZSET basic ZADD and score update - listpack (1 ms) [ok]: ZSET element can't be set to NaN with ZADD - listpack (0 ms) -[ok]: ZSET element can't be set to NaN with ZINCRBY - listpack (1 ms) +[ok]: ZSET element can't be set to NaN with ZINCRBY - listpack (0 ms) [ok]: ZADD with options syntax error with incomplete pair - listpack (0 ms) -[ok]: ZADD XX option without key - listpack (0 ms) -[ok]: ZADD XX existing key - listpack (0 ms) -[ok]: ZADD XX returns the number of elements actually added - listpack (6 ms) +[ok]: ZADD XX option without key - listpack (1 ms) +[ok]: ZADD XX existing key - listpack (1 ms) +[ok]: ZADD XX returns the number of elements actually added - listpack (0 ms) [ok]: ZADD XX updates existing elements score - listpack (1 ms) [ok]: ZADD GT updates existing elements when new scores are greater - listpack (1 ms) [ok]: ZADD LT updates existing elements when new scores are lower - listpack (1 ms) [ok]: ZADD GT XX updates existing elements when new scores are greater and skips new elements - listpack (1 ms) [ok]: ZADD LT XX updates existing elements when new scores are lower and skips new elements - listpack (1 ms) -[ok]: ZADD XX and NX are not compatible - listpack (0 ms) -[ok]: ZADD NX with non existing key - listpack (0 ms) +[ok]: ZADD XX and NX are not compatible - listpack (1 ms) +[ok]: ZADD NX with non existing key - listpack (1 ms) [ok]: ZADD NX only add new elements without updating old ones - listpack (1 ms) [ok]: ZADD GT and NX are not compatible - listpack (0 ms) [ok]: ZADD LT and NX are not compatible - listpack (0 ms) -[ok]: ZADD LT and GT are not compatible - listpack (4 ms) -[ok]: ZADD INCR LT/GT replies with nill if score not updated - listpack (5 ms) -[ok]: ZADD INCR LT/GT with inf - listpack (2 ms) -[ok]: ZADD INCR works like ZINCRBY - listpack (1 ms) -[ok]: ZADD INCR works with a single score-element pair - listpack (1 ms) -[ok]: ZADD CH option changes return value to all changed elements - listpack (0 ms) -[ok]: ZINCRBY calls leading to NaN result in error - listpack (1 ms) -[ok]: ZINCRBY against invalid incr value - listpack (0 ms) +[ok]: ZADD LT and GT are not compatible - listpack (0 ms) +[ok]: ZADD INCR LT/GT replies with nill if score not updated - listpack (0 ms) +[ok]: ZADD INCR LT/GT with inf - listpack (1 ms) +[ok]: ZADD INCR works like ZINCRBY - listpack (0 ms) +[ok]: ZADD INCR works with a single score-element pair - listpack (0 ms) +[ok]: ZADD CH option changes return value to all changed elements - listpack (1 ms) +[ok]: ZINCRBY calls leading to NaN result in error - listpack (0 ms) +[ok]: ZINCRBY against invalid incr value - listpack (1 ms) [ok]: ZADD - Variadic version base case - listpack (1 ms) [ok]: ZADD - Return value is the number of actually added items - listpack (0 ms) -[ok]: ZADD - Variadic version does not add nothing on single parsing err - listpack (1 ms) +[ok]: ZADD - Variadic version does not add nothing on single parsing err - listpack (0 ms) [ok]: ZADD - Variadic version will raise error on missing arg - listpack (0 ms) -[ok]: ZINCRBY does not work variadic even if shares ZADD implementation - listpack (1 ms) -[ok]: ZCARD basics - listpack (0 ms) -[ok]: ZREM removes key after last element is removed - listpack (7 ms) -[ok]: ZREM variadic version - listpack (1 ms) -[ok]: ZREM variadic version -- remove elements after key deletion - listpack (1 ms) -[ok]: ZRANGE basics - listpack (8 ms) -[ok]: ZREVRANGE basics - listpack (3 ms) -[ok]: ZRANK/ZREVRANK basics - listpack (5 ms) -[ok]: ZRANK - after deletion - listpack (6 ms) +[ok]: ZINCRBY does not work variadic even if shares ZADD implementation - listpack (0 ms) +[ok]: ZCARD basics - listpack (1 ms) +[ok]: ZREM removes key after last element is removed - listpack (1 ms) +[ok]: ZREM variadic version - listpack (0 ms) +[ok]: ZREM variadic version -- remove elements after key deletion - listpack (0 ms) +[ok]: ZRANGE basics - listpack (2 ms) +[ok]: ZREVRANGE basics - listpack (2 ms) +[ok]: ZRANK/ZREVRANK basics - listpack (2 ms) +[ok]: ZRANK - after deletion - listpack (0 ms) [ok]: ZINCRBY - can create a new sorted set - listpack (0 ms) -[ok]: ZINCRBY - increment and decrement - listpack (4 ms) +[ok]: ZINCRBY - increment and decrement - listpack (1 ms) [ok]: ZINCRBY return value - listpack (1 ms) -[ok]: ZRANGEBYSCORE/ZREVRANGEBYSCORE/ZCOUNT basics - listpack (6 ms) -[ok]: ZRANGEBYSCORE with WITHSCORES - listpack (5 ms) -[ok]: ZRANGEBYSCORE with LIMIT - listpack (17 ms) -[ok]: ZRANGEBYSCORE with LIMIT and WITHSCORES - listpack (2 ms) +[ok]: ZRANGEBYSCORE/ZREVRANGEBYSCORE/ZCOUNT basics - listpack (5 ms) +[ok]: ZRANGEBYSCORE with WITHSCORES - listpack (1 ms) +[ok]: ZRANGEBYSCORE with LIMIT - listpack (6 ms) +[ok]: ZRANGEBYSCORE with LIMIT and WITHSCORES - listpack (1 ms) [ok]: ZRANGEBYSCORE with non-value min or max - listpack (0 ms) -[ok]: ZRANGEBYLEX/ZREVRANGEBYLEX/ZLEXCOUNT basics - listpack (14 ms) -[ok]: ZLEXCOUNT advanced - listpack (2 ms) -[ok]: ZRANGEBYLEX with LIMIT - listpack (14 ms) +[ok]: ZRANGEBYLEX/ZREVRANGEBYLEX/ZLEXCOUNT basics - listpack (3 ms) +[ok]: ZLEXCOUNT advanced - listpack (3 ms) +[ok]: ZRANGEBYLEX with LIMIT - listpack (5 ms) [ok]: ZRANGEBYLEX with invalid lex range specifiers - listpack (1 ms) -[ok]: ZREMRANGEBYSCORE basics - listpack (10 ms) -[ok]: ZREMRANGEBYSCORE with non-value min or max - listpack (0 ms) +[ok]: ZREMRANGEBYSCORE basics - listpack (11 ms) +[ok]: ZREMRANGEBYSCORE with non-value min or max - listpack (1 ms) [ok]: ZREMRANGEBYRANK basics - listpack (5 ms) -[ok]: ZREMRANGEBYLEX basics - listpack (12 ms) -[ok]: ZUNIONSTORE against non-existing key doesn't set destination - listpack (1 ms) -[ok]: ZUNION/ZINTER/ZINTERCARD/ZDIFF against non-existing key - listpack (0 ms) +[ok]: ZREMRANGEBYLEX basics - listpack (13 ms) +[ok]: ZUNIONSTORE against non-existing key doesn't set destination - listpack (0 ms) +[ok]: ZUNION/ZINTER/ZINTERCARD/ZDIFF against non-existing key - listpack (1 ms) [ok]: ZUNIONSTORE with empty set - listpack (1 ms) [ok]: ZUNION/ZINTER/ZINTERCARD/ZDIFF with empty set - listpack (1 ms) [ok]: ZUNIONSTORE basics - listpack (1 ms) [ok]: ZUNION/ZINTER/ZINTERCARD/ZDIFF with integer members - listpack (1 ms) [ok]: ZUNIONSTORE with weights - listpack (0 ms) -[ok]: ZUNION with weights - listpack (0 ms) -[ok]: ZUNIONSTORE with a regular set and weights - listpack (1 ms) +[ok]: ZUNION with weights - listpack (12 ms) +[ok]: ZUNIONSTORE with a regular set and weights - listpack (0 ms) [ok]: ZUNIONSTORE with AGGREGATE MIN - listpack (1 ms) [ok]: ZUNION/ZINTER with AGGREGATE MIN - listpack (0 ms) [ok]: ZUNIONSTORE with AGGREGATE MAX - listpack (1 ms) [ok]: ZUNION/ZINTER with AGGREGATE MAX - listpack (0 ms) [ok]: ZINTERSTORE basics - listpack (1 ms) -[ok]: ZINTER basics - listpack (0 ms) +[ok]: ZINTER basics - listpack (1 ms) [ok]: ZINTERCARD with illegal arguments (1 ms) -[ok]: ZINTERCARD basics - listpack (0 ms) +[ok]: ZINTERCARD basics - listpack (1 ms) [ok]: ZINTER RESP3 - listpack (1 ms) [ok]: ZINTERSTORE with weights - listpack (0 ms) [ok]: ZINTER with weights - listpack (0 ms) -[ok]: ZINTERSTORE with a regular set and weights - listpack (1 ms) +[ok]: ZINTERSTORE with a regular set and weights - listpack (4 ms) [ok]: ZINTERSTORE with AGGREGATE MIN - listpack (0 ms) -[ok]: ZINTERSTORE with AGGREGATE MAX - listpack (0 ms) -[ok]: ZUNIONSTORE with +inf/-inf scores - listpack (2 ms) -[ok]: ZUNIONSTORE with NaN weights - listpack (0 ms) +[ok]: ZINTERSTORE with AGGREGATE MAX - listpack (1 ms) +[ok]: ZUNIONSTORE with +inf/-inf scores - listpack (7 ms) +[ok]: ZUNIONSTORE with NaN weights - listpack (1 ms) [ok]: ZINTERSTORE with +inf/-inf scores - listpack (2 ms) -[ok]: ZINTERSTORE with NaN weights - listpack (0 ms) -[ok]: ZDIFFSTORE basics - listpack (1 ms) +[ok]: ZINTERSTORE with NaN weights - listpack (5 ms) +[ok]: ZDIFFSTORE basics - listpack (0 ms) [ok]: ZDIFF basics - listpack (0 ms) -[ok]: ZDIFFSTORE with a regular set - listpack (1 ms) +[ok]: ZDIFFSTORE with a regular set - listpack (2 ms) [ok]: ZDIFF subtracting set from itself - listpack (0 ms) -[ok]: ZDIFF algorithm 1 - listpack (1 ms) +[ok]: ZDIFF algorithm 1 - listpack (5 ms) [ok]: ZDIFF algorithm 2 - listpack (1 ms) -[ok]: ZDIFF fuzzing - listpack (3857 ms) +[ok]: ZDIFF fuzzing - listpack (14074 ms) [ok]: ZPOPMIN with the count 0 returns an empty array (1 ms) [ok]: ZPOPMIN with negative count (1 ms) -[ok]: ZPOPMAX with the count 0 returns an empty array (0 ms) -[ok]: ZPOPMAX with negative count (1 ms) +[ok]: ZPOPMAX with the count 0 returns an empty array (6 ms) +[ok]: ZPOPMAX with negative count (4 ms) [ok]: Basic ZPOPMIN/ZPOPMAX with a single key - listpack (2 ms) [ok]: ZPOPMIN/ZPOPMAX with count - listpack (1 ms) -[ok]: Basic ZMPOP_MIN/ZMPOP_MAX with a single key - listpack (2 ms) +[ok]: Basic ZMPOP_MIN/ZMPOP_MAX with a single key - listpack (6 ms) [ok]: ZMPOP_MIN/ZMPOP_MAX with count - listpack (1 ms) -[ok]: BZPOPMIN/BZPOPMAX with a single existing sorted set - listpack (13 ms) -[ok]: BZPOPMIN/BZPOPMAX with multiple existing sorted sets - listpack (14 ms) -[ok]: BZPOPMIN/BZPOPMAX second sorted set has members - listpack (13 ms) -[ok]: BZMPOP_MIN/BZMPOP_MAX with a single existing sorted set - listpack (13 ms) -[ok]: BZMPOP_MIN/BZMPOP_MAX with multiple existing sorted sets - listpack (14 ms) -[ok]: BZMPOP_MIN/BZMPOP_MAX second sorted set has members - listpack (13 ms) -[ok]: Basic ZPOPMIN/ZPOPMAX - listpack RESP3 (1 ms) -[ok]: ZPOPMIN/ZPOPMAX with count - listpack RESP3 (1 ms) -[ok]: Basic ZMPOP_MIN/ZMPOP_MAX - listpack RESP3 (1 ms) -[ok]: ZMPOP_MIN/ZMPOP_MAX with count - listpack RESP3 (2 ms) -[ok]: BZPOPMIN/BZPOPMAX - listpack RESP3 (14 ms) -[ok]: BZMPOP_MIN/BZMPOP_MAX - listpack RESP3 (13 ms) -[ok]: Check encoding - skiplist (1 ms) -[ok]: ZSET basic ZADD and score update - skiplist (1 ms) +[ok]: BZPOPMIN/BZPOPMAX with a single existing sorted set - listpack (42 ms) +[ok]: BZPOPMIN/BZPOPMAX with multiple existing sorted sets - listpack (52 ms) +[ok]: BZPOPMIN/BZPOPMAX second sorted set has members - listpack (33 ms) +[ok]: BZMPOP_MIN/BZMPOP_MAX with a single existing sorted set - listpack (37 ms) +[ok]: BZMPOP_MIN/BZMPOP_MAX with multiple existing sorted sets - listpack (50 ms) +[ok]: BZMPOP_MIN/BZMPOP_MAX second sorted set has members - listpack (33 ms) +[ok]: Basic ZPOPMIN/ZPOPMAX - listpack RESP3 (5 ms) +[ok]: ZPOPMIN/ZPOPMAX with count - listpack RESP3 (10 ms) +[ok]: Basic ZMPOP_MIN/ZMPOP_MAX - listpack RESP3 (2 ms) +[ok]: ZMPOP_MIN/ZMPOP_MAX with count - listpack RESP3 (1 ms) +[ok]: BZPOPMIN/BZPOPMAX - listpack RESP3 (42 ms) +[ok]: BZMPOP_MIN/BZMPOP_MAX - listpack RESP3 (51 ms) +[ok]: Check encoding - skiplist (0 ms) +[ok]: ZSET basic ZADD and score update - skiplist (0 ms) [ok]: ZSET element can't be set to NaN with ZADD - skiplist (0 ms) [ok]: ZSET element can't be set to NaN with ZINCRBY - skiplist (0 ms) [ok]: ZADD with options syntax error with incomplete pair - skiplist (0 ms) -[ok]: ZADD XX option without key - skiplist (1 ms) -[ok]: ZADD XX existing key - skiplist (0 ms) -[ok]: ZADD XX returns the number of elements actually added - skiplist (1 ms) -[ok]: ZADD XX updates existing elements score - skiplist (0 ms) -[ok]: ZADD GT updates existing elements when new scores are greater - skiplist (0 ms) -[ok]: ZADD LT updates existing elements when new scores are lower - skiplist (1 ms) -[ok]: ZADD GT XX updates existing elements when new scores are greater and skips new elements - skiplist (1 ms) +[ok]: ZADD XX option without key - skiplist (0 ms) +[ok]: ZADD XX existing key - skiplist (4 ms) +[ok]: ZADD XX returns the number of elements actually added - skiplist (0 ms) +[ok]: ZADD XX updates existing elements score - skiplist (1 ms) +[ok]: ZADD GT updates existing elements when new scores are greater - skiplist (1 ms) +[ok]: ZADD LT updates existing elements when new scores are lower - skiplist (0 ms) +[ok]: ZADD GT XX updates existing elements when new scores are greater and skips new elements - skiplist (0 ms) [ok]: ZADD LT XX updates existing elements when new scores are lower and skips new elements - skiplist (1 ms) [ok]: ZADD XX and NX are not compatible - skiplist (0 ms) -[ok]: ZADD NX with non existing key - skiplist (0 ms) -[ok]: ZADD NX only add new elements without updating old ones - skiplist (1 ms) +[ok]: ZADD NX with non existing key - skiplist (1 ms) +[ok]: ZADD NX only add new elements without updating old ones - skiplist (9 ms) [ok]: ZADD GT and NX are not compatible - skiplist (0 ms) [ok]: ZADD LT and NX are not compatible - skiplist (1 ms) [ok]: ZADD LT and GT are not compatible - skiplist (0 ms) [ok]: ZADD INCR LT/GT replies with nill if score not updated - skiplist (1 ms) -[ok]: ZADD INCR LT/GT with inf - skiplist (2 ms) -[ok]: ZADD INCR works like ZINCRBY - skiplist (0 ms) +[ok]: ZADD INCR LT/GT with inf - skiplist (9 ms) +[ok]: ZADD INCR works like ZINCRBY - skiplist (1 ms) [ok]: ZADD INCR works with a single score-element pair - skiplist (1 ms) -[ok]: ZADD CH option changes return value to all changed elements - skiplist (0 ms) +[ok]: ZADD CH option changes return value to all changed elements - skiplist (1 ms) [ok]: ZINCRBY calls leading to NaN result in error - skiplist (0 ms) -[ok]: ZINCRBY against invalid incr value - skiplist (0 ms) +[ok]: ZINCRBY against invalid incr value - skiplist (1 ms) [ok]: ZADD - Variadic version base case - skiplist (0 ms) -[ok]: ZADD - Return value is the number of actually added items - skiplist (1 ms) -[ok]: ZADD - Variadic version does not add nothing on single parsing err - skiplist (0 ms) +[ok]: ZADD - Return value is the number of actually added items - skiplist (0 ms) +[ok]: ZADD - Variadic version does not add nothing on single parsing err - skiplist (4 ms) [ok]: ZADD - Variadic version will raise error on missing arg - skiplist (0 ms) [ok]: ZINCRBY does not work variadic even if shares ZADD implementation - skiplist (1 ms) -[ok]: ZCARD basics - skiplist (0 ms) +[ok]: ZCARD basics - skiplist (7 ms) [ok]: ZREM removes key after last element is removed - skiplist (1 ms) [ok]: ZREM variadic version - skiplist (1 ms) -[ok]: ZREM variadic version -- remove elements after key deletion - skiplist (0 ms) +[ok]: ZREM variadic version -- remove elements after key deletion - skiplist (5 ms) [ok]: ZRANGE basics - skiplist (2 ms) -[ok]: ZREVRANGE basics - skiplist (2 ms) -[ok]: ZRANK/ZREVRANK basics - skiplist (2 ms) +[ok]: ZREVRANGE basics - skiplist (7 ms) +[ok]: ZRANK/ZREVRANK basics - skiplist (15 ms) [ok]: ZRANK - after deletion - skiplist (1 ms) [ok]: ZINCRBY - can create a new sorted set - skiplist (0 ms) -[ok]: ZINCRBY - increment and decrement - skiplist (0 ms) +[ok]: ZINCRBY - increment and decrement - skiplist (1 ms) [ok]: ZINCRBY return value - skiplist (0 ms) -[ok]: ZRANGEBYSCORE/ZREVRANGEBYSCORE/ZCOUNT basics - skiplist (4 ms) -[ok]: ZRANGEBYSCORE with WITHSCORES - skiplist (1 ms) -[ok]: ZRANGEBYSCORE with LIMIT - skiplist (5 ms) +[ok]: ZRANGEBYSCORE/ZREVRANGEBYSCORE/ZCOUNT basics - skiplist (15 ms) +[ok]: ZRANGEBYSCORE with WITHSCORES - skiplist (5 ms) +[ok]: ZRANGEBYSCORE with LIMIT - skiplist (17 ms) [ok]: ZRANGEBYSCORE with LIMIT and WITHSCORES - skiplist (1 ms) [ok]: ZRANGEBYSCORE with non-value min or max - skiplist (1 ms) [ok]: ZRANGEBYLEX/ZREVRANGEBYLEX/ZLEXCOUNT basics - skiplist (3 ms) -[ok]: ZLEXCOUNT advanced - skiplist (2 ms) -[ok]: ZRANGEBYLEX with LIMIT - skiplist (5 ms) -[ok]: ZRANGEBYLEX with invalid lex range specifiers - skiplist (1 ms) -[ok]: ZREMRANGEBYSCORE basics - skiplist (11 ms) -[ok]: ZREMRANGEBYSCORE with non-value min or max - skiplist (0 ms) -[ok]: ZREMRANGEBYRANK basics - skiplist (5 ms) -[ok]: ZREMRANGEBYLEX basics - skiplist (12 ms) +[ok]: ZLEXCOUNT advanced - skiplist (6 ms) +[ok]: ZRANGEBYLEX with LIMIT - skiplist (10 ms) +[ok]: ZRANGEBYLEX with invalid lex range specifiers - skiplist (5 ms) +[ok]: ZREMRANGEBYSCORE basics - skiplist (23 ms) +[ok]: ZREMRANGEBYSCORE with non-value min or max - skiplist (1 ms) +[ok]: ZREMRANGEBYRANK basics - skiplist (12 ms) +[ok]: ZREMRANGEBYLEX basics - skiplist (32 ms) [ok]: ZUNIONSTORE against non-existing key doesn't set destination - skiplist (0 ms) -[ok]: ZUNION/ZINTER/ZINTERCARD/ZDIFF against non-existing key - skiplist (0 ms) +[ok]: ZUNION/ZINTER/ZINTERCARD/ZDIFF against non-existing key - skiplist (1 ms) [ok]: ZUNIONSTORE with empty set - skiplist (1 ms) [ok]: ZUNION/ZINTER/ZINTERCARD/ZDIFF with empty set - skiplist (1 ms) -[ok]: ZUNIONSTORE basics - skiplist (1 ms) +[ok]: ZUNIONSTORE basics - skiplist (4 ms) [ok]: ZUNION/ZINTER/ZINTERCARD/ZDIFF with integer members - skiplist (1 ms) [ok]: ZUNIONSTORE with weights - skiplist (0 ms) [ok]: ZUNION with weights - skiplist (1 ms) [ok]: ZUNIONSTORE with a regular set and weights - skiplist (0 ms) [ok]: ZUNIONSTORE with AGGREGATE MIN - skiplist (1 ms) -[ok]: ZUNION/ZINTER with AGGREGATE MIN - skiplist (0 ms) +[ok]: ZUNION/ZINTER with AGGREGATE MIN - skiplist (1 ms) [ok]: ZUNIONSTORE with AGGREGATE MAX - skiplist (0 ms) -[ok]: ZUNION/ZINTER with AGGREGATE MAX - skiplist (0 ms) +[ok]: ZUNION/ZINTER with AGGREGATE MAX - skiplist (1 ms) [ok]: ZINTERSTORE basics - skiplist (0 ms) -[ok]: ZINTER basics - skiplist (0 ms) +[ok]: ZINTER basics - skiplist (1 ms) [ok]: ZINTERCARD with illegal arguments (0 ms) [ok]: ZINTERCARD basics - skiplist (1 ms) [ok]: ZINTER RESP3 - skiplist (0 ms) [ok]: ZINTERSTORE with weights - skiplist (1 ms) [ok]: ZINTER with weights - skiplist (0 ms) -[ok]: ZINTERSTORE with a regular set and weights - skiplist (1 ms) +[ok]: ZINTERSTORE with a regular set and weights - skiplist (0 ms) [ok]: ZINTERSTORE with AGGREGATE MIN - skiplist (0 ms) -[ok]: ZINTERSTORE with AGGREGATE MAX - skiplist (0 ms) -[ok]: ZUNIONSTORE with +inf/-inf scores - skiplist (1 ms) -[ok]: ZUNIONSTORE with NaN weights - skiplist (1 ms) -[ok]: ZINTERSTORE with +inf/-inf scores - skiplist (1 ms) -[ok]: ZINTERSTORE with NaN weights - skiplist (0 ms) +[ok]: ZINTERSTORE with AGGREGATE MAX - skiplist (1 ms) +[ok]: ZUNIONSTORE with +inf/-inf scores - skiplist (2 ms) +[ok]: ZUNIONSTORE with NaN weights - skiplist (0 ms) +[ok]: ZINTERSTORE with +inf/-inf scores - skiplist (2 ms) +[ok]: ZINTERSTORE with NaN weights - skiplist (1 ms) [ok]: ZDIFFSTORE basics - skiplist (0 ms) [ok]: ZDIFF basics - skiplist (0 ms) -[ok]: ZDIFFSTORE with a regular set - skiplist (0 ms) +[ok]: ZDIFFSTORE with a regular set - skiplist (4 ms) [ok]: ZDIFF subtracting set from itself - skiplist (1 ms) [ok]: ZDIFF algorithm 1 - skiplist (1 ms) -[ok]: ZDIFF algorithm 2 - skiplist (1 ms) -[ok]: ZDIFF fuzzing - skiplist (4065 ms) -[ok]: ZPOPMIN with the count 0 returns an empty array (1 ms) -[ok]: ZPOPMIN with negative count (1 ms) -[ok]: ZPOPMAX with the count 0 returns an empty array (0 ms) +[ok]: ZDIFF algorithm 2 - skiplist (6 ms) +[ok]: ZDIFF fuzzing - skiplist (15195 ms) +[ok]: ZPOPMIN with the count 0 returns an empty array (0 ms) +[ok]: ZPOPMIN with negative count (0 ms) +[ok]: ZPOPMAX with the count 0 returns an empty array (6 ms) [ok]: ZPOPMAX with negative count (0 ms) -[ok]: Basic ZPOPMIN/ZPOPMAX with a single key - skiplist (2 ms) +[ok]: Basic ZPOPMIN/ZPOPMAX with a single key - skiplist (1 ms) [ok]: ZPOPMIN/ZPOPMAX with count - skiplist (1 ms) -[ok]: Basic ZMPOP_MIN/ZMPOP_MAX with a single key - skiplist (1 ms) -[ok]: ZMPOP_MIN/ZMPOP_MAX with count - skiplist (0 ms) -[ok]: BZPOPMIN/BZPOPMAX with a single existing sorted set - skiplist (13 ms) -[ok]: BZPOPMIN/BZPOPMAX with multiple existing sorted sets - skiplist (14 ms) -[ok]: BZPOPMIN/BZPOPMAX second sorted set has members - skiplist (13 ms) -[ok]: BZMPOP_MIN/BZMPOP_MAX with a single existing sorted set - skiplist (14 ms) -[ok]: BZMPOP_MIN/BZMPOP_MAX with multiple existing sorted sets - skiplist (14 ms) -[ok]: BZMPOP_MIN/BZMPOP_MAX second sorted set has members - skiplist (13 ms) -[ok]: Basic ZPOPMIN/ZPOPMAX - skiplist RESP3 (2 ms) -[ok]: ZPOPMIN/ZPOPMAX with count - skiplist RESP3 (1 ms) +[ok]: Basic ZMPOP_MIN/ZMPOP_MAX with a single key - skiplist (2 ms) +[ok]: ZMPOP_MIN/ZMPOP_MAX with count - skiplist (1 ms) +[ok]: BZPOPMIN/BZPOPMAX with a single existing sorted set - skiplist (28 ms) +[ok]: BZPOPMIN/BZPOPMAX with multiple existing sorted sets - skiplist (31 ms) +[ok]: BZPOPMIN/BZPOPMAX second sorted set has members - skiplist (26 ms) +[ok]: BZMPOP_MIN/BZMPOP_MAX with a single existing sorted set - skiplist (32 ms) +[ok]: BZMPOP_MIN/BZMPOP_MAX with multiple existing sorted sets - skiplist (28 ms) +[ok]: BZMPOP_MIN/BZMPOP_MAX second sorted set has members - skiplist (28 ms) +[ok]: Basic ZPOPMIN/ZPOPMAX - skiplist RESP3 (6 ms) +[ok]: ZPOPMIN/ZPOPMAX with count - skiplist RESP3 (2 ms) [ok]: Basic ZMPOP_MIN/ZMPOP_MAX - skiplist RESP3 (1 ms) [ok]: ZMPOP_MIN/ZMPOP_MAX with count - skiplist RESP3 (1 ms) -[ok]: BZPOPMIN/BZPOPMAX - skiplist RESP3 (14 ms) -[ok]: BZMPOP_MIN/BZMPOP_MAX - skiplist RESP3 (14 ms) -[ok]: ZPOP/ZMPOP against wrong type (2 ms) -[ok]: ZMPOP with illegal argument (2 ms) -[ok]: ZMPOP propagate as pop with count command to replica (40 ms) -[ok]: ZPOPMIN/ZPOPMAX readraw in RESP3 (1 ms) -[ok]: BZPOPMIN/BZPOPMAX readraw in RESP3 (83 ms) -[ok]: ZMPOP readraw in RESP3 (2 ms) -[ok]: BZMPOP readraw in RESP3 (96 ms) +[ok]: BZPOPMIN/BZPOPMAX - skiplist RESP3 (33 ms) +[ok]: BZMPOP_MIN/BZMPOP_MAX - skiplist RESP3 (24 ms) +[ok]: ZPOP/ZMPOP against wrong type (1 ms) +[ok]: ZMPOP with illegal argument (12 ms) +[ok]: ZMPOP propagate as pop with count command to replica (132 ms) +[ok]: ZPOPMIN/ZPOPMAX readraw in RESP3 (2 ms) +[ok]: BZPOPMIN/BZPOPMAX readraw in RESP3 (175 ms) +[ok]: ZMPOP readraw in RESP3 (8 ms) +[ok]: BZMPOP readraw in RESP3 (192 ms) [ok]: ZPOPMIN/ZPOPMAX readraw in RESP2 (1 ms) -[ok]: BZPOPMIN/BZPOPMAX readraw in RESP2 (76 ms) -[ok]: ZMPOP readraw in RESP2 (6 ms) -[ok]: BZMPOP readraw in RESP2 (98 ms) -[ok]: ZINTERSTORE regression with two sets, intset+hashtable (0 ms) -[ok]: ZUNIONSTORE regression, should not create NaN in scores (1 ms) -[ok]: ZINTERSTORE #516 regression, mixed sets and ziplist zsets (0 ms) -[ok]: ZUNIONSTORE result is sorted (128 ms) -[ok]: ZUNIONSTORE/ZINTERSTORE/ZDIFFSTORE error if using WITHSCORES (4 ms) -[ok]: ZMSCORE retrieve (1 ms) -[ok]: ZMSCORE retrieve from empty set (0 ms) -[ok]: ZMSCORE retrieve with missing member (1 ms) -[ok]: ZMSCORE retrieve single member (0 ms) -[ok]: ZMSCORE retrieve requires one or more members (1 ms) -[ok]: ZSET commands don't accept the empty strings as valid score (0 ms) -[ok]: zunionInterDiffGenericCommand at least 1 input key (1 ms) -[ok]: ZSCORE - listpack (37 ms) -[ok]: ZMSCORE - listpack (30 ms) -[ok]: ZSCORE after a DEBUG RELOAD - listpack (31 ms) -[ok]: ZSET sorting stresser - listpack (34 ms) -[ok]: ZRANGEBYSCORE fuzzy test, 100 ranges in 128 element sorted set - listpack (2773 ms) -[ok]: ZRANGEBYLEX fuzzy test, 100 ranges in 128 element sorted set - listpack (163 ms) -[ok]: ZREMRANGEBYLEX fuzzy test, 100 ranges in 128 element sorted set - listpack (235 ms) -[ok]: ZSETs skiplist implementation backlink consistency test - listpack (28 ms) -[ok]: ZSETs ZRANK augmented skip list stress testing - listpack (884 ms) -[ok]: BZPOPMIN, ZADD + DEL should not awake blocked client (13 ms) -[ok]: BZPOPMIN, ZADD + DEL + SET should not awake blocked client (13 ms) -[ok]: BZMPOP_MIN, ZADD + DEL should not awake blocked client (13 ms) -[ok]: BZMPOP_MIN, ZADD + DEL + SET should not awake blocked client (14 ms) -Time: 1008 -[ok]: BZPOPMIN unblock but the key is expired and then block again - reprocessing command (1024 ms) -[ok]: BZPOPMIN with same key multiple times should work (25 ms) -[ok]: MULTI/EXEC is isolated from the point of view of BZPOPMIN (16 ms) -[ok]: BZPOPMIN with variadic ZADD (19 ms) -[ok]: BZPOPMIN with zero timeout should block indefinitely (1019 ms) -[ok]: MULTI/EXEC is isolated from the point of view of BZMPOP_MIN (20 ms) -[ok]: BZMPOP_MIN with variadic ZADD (16 ms) -[ok]: BZMPOP_MIN with zero timeout should block indefinitely (1023 ms) -[ok]: ZSCORE - skiplist (62 ms) -[ok]: ZMSCORE - skiplist (52 ms) -[ok]: ZSCORE after a DEBUG RELOAD - skiplist (56 ms) -[ok]: ZSET sorting stresser - skiplist (70 ms) -[ok]: ZRANGEBYSCORE fuzzy test, 100 ranges in 100 element sorted set - skiplist (2373 ms) -[ok]: ZRANGEBYLEX fuzzy test, 100 ranges in 100 element sorted set - skiplist (132 ms) -[ok]: ZREMRANGEBYLEX fuzzy test, 100 ranges in 100 element sorted set - skiplist (187 ms) -[ok]: ZSETs skiplist implementation backlink consistency test - skiplist (21 ms) -[ok]: ZSETs ZRANK augmented skip list stress testing - skiplist (874 ms) -[ok]: BZPOPMIN, ZADD + DEL should not awake blocked client (14 ms) -[ok]: BZPOPMIN, ZADD + DEL + SET should not awake blocked client (13 ms) -[ok]: BZMPOP_MIN, ZADD + DEL should not awake blocked client (13 ms) -[ok]: BZMPOP_MIN, ZADD + DEL + SET should not awake blocked client (14 ms) -Time: 1010 -[ok]: BZPOPMIN unblock but the key is expired and then block again - reprocessing command (1023 ms) -[ok]: BZPOPMIN with same key multiple times should work (28 ms) -[ok]: MULTI/EXEC is isolated from the point of view of BZPOPMIN (23 ms) -[ok]: BZPOPMIN with variadic ZADD (23 ms) -[ok]: BZPOPMIN with zero timeout should block indefinitely (1020 ms) -[ok]: MULTI/EXEC is isolated from the point of view of BZMPOP_MIN (17 ms) -[ok]: BZMPOP_MIN with variadic ZADD (20 ms) -[ok]: BZMPOP_MIN with zero timeout should block indefinitely (1030 ms) -[ok]: BZPOP/BZMPOP against wrong type (2 ms) -[ok]: BZMPOP with illegal argument (3 ms) -[ok]: BZMPOP with multiple blocked clients (85 ms) -[ok]: BZMPOP propagate as pop with count command to replica (169 ms) -[ok]: BZMPOP should not blocks on non key arguments - #10762 (34 ms) -[ok]: ZSET skiplist order consistency when elements are moved (1172 ms) +[ok]: BZPOPMIN/BZPOPMAX readraw in RESP2 (158 ms) +[ok]: ZMPOP readraw in RESP2 (5 ms) +[ok]: BZMPOP readraw in RESP2 (203 ms) +[ok]: ZINTERSTORE regression with two sets, intset+hashtable (6 ms) +[ok]: ZUNIONSTORE regression, should not create NaN in scores (4 ms) +[ok]: ZINTERSTORE #516 regression, mixed sets and ziplist zsets (1 ms) +[ok]: ZUNIONSTORE result is sorted (174 ms) +[ok]: ZUNIONSTORE/ZINTERSTORE/ZDIFFSTORE error if using WITHSCORES (9 ms) +[ok]: ZMSCORE retrieve (4 ms) +[ok]: ZMSCORE retrieve from empty set (3 ms) +[ok]: ZMSCORE retrieve with missing member (7 ms) +[ok]: ZMSCORE retrieve single member (1 ms) +[ok]: ZMSCORE retrieve requires one or more members (8 ms) +[ok]: ZSET commands don't accept the empty strings as valid score (3 ms) +[ok]: zunionInterDiffGenericCommand at least 1 input key (9 ms) +[ok]: ZSCORE - listpack (112 ms) +[ok]: ZMSCORE - listpack (107 ms) +[ok]: ZSCORE after a DEBUG RELOAD - listpack (114 ms) +[ok]: ZSET sorting stresser - listpack (192 ms) +[ok]: ZRANGEBYSCORE fuzzy test, 100 ranges in 128 element sorted set - listpack (9777 ms) +[ok]: ZRANGEBYLEX fuzzy test, 100 ranges in 128 element sorted set - listpack (728 ms) +[ok]: ZREMRANGEBYLEX fuzzy test, 100 ranges in 128 element sorted set - listpack (1065 ms) +[ok]: ZSETs skiplist implementation backlink consistency test - listpack (60 ms) +[ok]: ZSETs ZRANK augmented skip list stress testing - listpack (2815 ms) +[ok]: BZPOPMIN, ZADD + DEL should not awake blocked client (72 ms) +[ok]: BZPOPMIN, ZADD + DEL + SET should not awake blocked client (52 ms) +[ok]: BZMPOP_MIN, ZADD + DEL should not awake blocked client (57 ms) +[ok]: BZMPOP_MIN, ZADD + DEL + SET should not awake blocked client (115 ms) +Time: 1026 +[ok]: BZPOPMIN unblock but the key is expired and then block again - reprocessing command (1087 ms) +[ok]: BZPOPMIN with same key multiple times should work (46 ms) +[ok]: MULTI/EXEC is isolated from the point of view of BZPOPMIN (150 ms) +[ok]: BZPOPMIN with variadic ZADD (39 ms) +[ok]: BZPOPMIN with zero timeout should block indefinitely (1047 ms) +[ok]: MULTI/EXEC is isolated from the point of view of BZMPOP_MIN (48 ms) +[ok]: BZMPOP_MIN with variadic ZADD (56 ms) +[ok]: BZMPOP_MIN with zero timeout should block indefinitely (1043 ms) +[ok]: ZSCORE - skiplist (244 ms) +[ok]: ZMSCORE - skiplist (208 ms) +[ok]: ZSCORE after a DEBUG RELOAD - skiplist (237 ms) +[ok]: ZSET sorting stresser - skiplist (148 ms) +[ok]: ZRANGEBYSCORE fuzzy test, 100 ranges in 100 element sorted set - skiplist (12629 ms) +[ok]: ZRANGEBYLEX fuzzy test, 100 ranges in 100 element sorted set - skiplist (915 ms) +[ok]: ZREMRANGEBYLEX fuzzy test, 100 ranges in 100 element sorted set - skiplist (734 ms) +[ok]: ZSETs skiplist implementation backlink consistency test - skiplist (103 ms) +[ok]: ZSETs ZRANK augmented skip list stress testing - skiplist (3927 ms) +[ok]: BZPOPMIN, ZADD + DEL should not awake blocked client (51 ms) +[ok]: BZPOPMIN, ZADD + DEL + SET should not awake blocked client (154 ms) +[ok]: BZMPOP_MIN, ZADD + DEL should not awake blocked client (47 ms) +[ok]: BZMPOP_MIN, ZADD + DEL + SET should not awake blocked client (47 ms) +Time: 1020 +[ok]: BZPOPMIN unblock but the key is expired and then block again - reprocessing command (1056 ms) +[ok]: BZPOPMIN with same key multiple times should work (64 ms) +[ok]: MULTI/EXEC is isolated from the point of view of BZPOPMIN (43 ms) +[ok]: BZPOPMIN with variadic ZADD (33 ms) +[ok]: BZPOPMIN with zero timeout should block indefinitely (1046 ms) +[ok]: MULTI/EXEC is isolated from the point of view of BZMPOP_MIN (54 ms) +[ok]: BZMPOP_MIN with variadic ZADD (33 ms) +[ok]: BZMPOP_MIN with zero timeout should block indefinitely (1133 ms) +[ok]: BZPOP/BZMPOP against wrong type (16 ms) +[ok]: BZMPOP with illegal argument (9 ms) +[ok]: BZMPOP with multiple blocked clients (161 ms) +[ok]: BZMPOP propagate as pop with count command to replica (241 ms) +[ok]: BZMPOP should not blocks on non key arguments - #10762 (61 ms) +[ok]: ZSET skiplist order consistency when elements are moved (2627 ms) [ok]: ZRANGESTORE basic (1 ms) -[ok]: ZRANGESTORE RESP3 (1 ms) +[ok]: ZRANGESTORE RESP3 (7 ms) [ok]: ZRANGESTORE range (0 ms) -[ok]: ZRANGESTORE BYLEX (0 ms) -[ok]: ZRANGESTORE BYSCORE (1 ms) +[ok]: ZRANGESTORE BYLEX (8 ms) +[ok]: ZRANGESTORE BYSCORE (0 ms) [ok]: ZRANGESTORE BYSCORE LIMIT (0 ms) -[ok]: ZRANGESTORE BYSCORE REV LIMIT (0 ms) +[ok]: ZRANGESTORE BYSCORE REV LIMIT (1 ms) [ok]: ZRANGE BYSCORE REV LIMIT (0 ms) -[ok]: ZRANGESTORE - src key missing (0 ms) -[ok]: ZRANGESTORE - src key wrong type (1 ms) +[ok]: ZRANGESTORE - src key missing (1 ms) +[ok]: ZRANGESTORE - src key wrong type (0 ms) [ok]: ZRANGESTORE - empty range (0 ms) [ok]: ZRANGESTORE BYLEX - empty range (0 ms) [ok]: ZRANGESTORE BYSCORE - empty range (0 ms) -[ok]: ZRANGE BYLEX (0 ms) -[ok]: ZRANGESTORE invalid syntax (0 ms) -[ok]: ZRANGESTORE with zset-max-listpack-entries 0 #10767 case (1 ms) +[ok]: ZRANGE BYLEX (2 ms) +[ok]: ZRANGESTORE invalid syntax (13 ms) +[ok]: ZRANGESTORE with zset-max-listpack-entries 0 #10767 case (2 ms) [ok]: ZRANGESTORE with zset-max-listpack-entries 1 dst key should use skiplist encoding (1 ms) -[ok]: ZRANGE invalid syntax (0 ms) -[ok]: ZRANDMEMBER - listpack (9 ms) -[ok]: ZRANDMEMBER - skiplist (9 ms) +[ok]: ZRANGE invalid syntax (10 ms) +[ok]: ZRANDMEMBER - listpack (41 ms) +[ok]: ZRANDMEMBER - skiplist (69 ms) [ok]: ZRANDMEMBER with RESP3 (0 ms) -[ok]: ZRANDMEMBER count of 0 is handled correctly (0 ms) +[ok]: ZRANDMEMBER count of 0 is handled correctly (1 ms) [ok]: ZRANDMEMBER with against non existing key (0 ms) [ok]: ZRANDMEMBER count overflow (1 ms) -[ok]: ZRANDMEMBER count of 0 is handled correctly - emptyarray (0 ms) -[ok]: ZRANDMEMBER with against non existing key - emptyarray (0 ms) -[ok]: ZRANDMEMBER with - skiplist (240 ms) -[ok]: ZRANDMEMBER with - listpack (238 ms) -[ok]: zset score double range (0 ms) -[ok]: zunionInterDiffGenericCommand acts on SET and ZSET (20 ms) -[ok]: ZADD overflows the maximum allowed elements in a listpack - single (7 ms) +[ok]: ZRANDMEMBER count of 0 is handled correctly - emptyarray (9 ms) +[ok]: ZRANDMEMBER with against non existing key - emptyarray (1 ms) +[ok]: ZRANDMEMBER with - skiplist (861 ms) +[ok]: ZRANDMEMBER with - listpack (522 ms) +[ok]: zset score double range (1 ms) +[ok]: zunionInterDiffGenericCommand acts on SET and ZSET (35 ms) +[ok]: ZADD overflows the maximum allowed elements in a listpack - single (20 ms) [ok]: ZADD overflows the maximum allowed elements in a listpack - multiple (1 ms) [ok]: ZADD overflows the maximum allowed elements in a listpack - single_multiple (2 ms) -[45/129 done]: unit/type/zset (26 seconds) +[45/129 done]: unit/type/zset (78 seconds) Testing unit/type/string === (string) Starting server on 127.0.0.1:21529 ok -[ok]: SET and GET an item (0 ms) -[ok]: SET and GET an empty item (1 ms) -[ok]: Very big payload in GET/SET (74 ms) -[ok]: Very big payload random access (2694 ms) -[ok]: SET 10000 numeric keys and access all them in reverse order (1782 ms) -[ok]: DBSIZE should be 10000 now (1 ms) -[ok]: memoryusage of string (135 ms) -[ok]: SETNX target key missing (1 ms) -[ok]: SETNX target key exists (0 ms) -[ok]: SETNX against not-expired volatile key (1 ms) -[ok]: SETNX against expired volatile key (2990 ms) -[ok]: GETEX EX option (4 ms) -[ok]: GETEX PX option (0 ms) +[ok]: SET and GET an item (4 ms) +[ok]: SET and GET an empty item (0 ms) +[ok]: Very big payload in GET/SET (108 ms) +[ok]: Very big payload random access (6139 ms) +[ok]: SET 10000 numeric keys and access all them in reverse order (2272 ms) +[ok]: DBSIZE should be 10000 now (0 ms) +[ok]: memoryusage of string (57 ms) +[ok]: SETNX target key missing (0 ms) +[ok]: SETNX target key exists (1 ms) +[ok]: SETNX against not-expired volatile key (0 ms) +[ok]: SETNX against expired volatile key (2900 ms) +[ok]: GETEX EX option (1 ms) +[ok]: GETEX PX option (1 ms) [ok]: GETEX EXAT option (1 ms) [ok]: GETEX PXAT option (0 ms) -[ok]: GETEX PERSIST option (1 ms) +[ok]: GETEX PERSIST option (0 ms) [ok]: GETEX no option (0 ms) [ok]: GETEX syntax errors (0 ms) [ok]: GETEX and GET expired key or not exist (2 ms) -[ok]: GETEX no arguments (2 ms) -[ok]: GETDEL command (1 ms) -[ok]: GETDEL propagate as DEL command to replica (105 ms) -[ok]: GETEX without argument does not propagate to replica (101 ms) -[ok]: MGET (2 ms) +[ok]: GETEX no arguments (0 ms) +[ok]: GETDEL command (0 ms) +[ok]: GETDEL propagate as DEL command to replica (140 ms) +[ok]: GETEX without argument does not propagate to replica (110 ms) +[ok]: MGET (8 ms) [ok]: MGET against non existing key (0 ms) -[ok]: MGET against non-string key (0 ms) -[ok]: GETSET (set new value) (1 ms) -[ok]: GETSET (replace old value) (4 ms) -[ok]: MSET base case (1 ms) -[ok]: MSET/MSETNX wrong number of args (0 ms) -[ok]: MSET with already existing - same key twice (1 ms) -[ok]: MSETNX with already existent key (0 ms) -[ok]: MSETNX with not existing keys (0 ms) +[ok]: MGET against non-string key (1 ms) +[ok]: GETSET (set new value) (0 ms) +[ok]: GETSET (replace old value) (5 ms) +[ok]: MSET base case (0 ms) +[ok]: MSET/MSETNX wrong number of args (1 ms) +[ok]: MSET with already existing - same key twice (0 ms) +[ok]: MSETNX with already existent key (1 ms) +[ok]: MSETNX with not existing keys (5 ms) [ok]: MSETNX with not existing keys - same key twice (1 ms) -[ok]: MSETNX with already existing keys - same key twice (0 ms) +[ok]: MSETNX with already existing keys - same key twice (1 ms) [ok]: STRLEN against non-existing key (0 ms) -[ok]: STRLEN against integer-encoded value (1 ms) +[ok]: STRLEN against integer-encoded value (0 ms) [ok]: STRLEN against plain string (0 ms) -[ok]: SETBIT against non-existing key (0 ms) +[ok]: SETBIT against non-existing key (1 ms) [ok]: SETBIT against string-encoded key (0 ms) -[ok]: SETBIT against integer-encoded key (7 ms) -[ok]: SETBIT against key with wrong type (1 ms) -[ok]: SETBIT with out of range bit offset (0 ms) -[ok]: SETBIT with non-bit argument (1 ms) -[ok]: SETBIT fuzzing (792 ms) +[ok]: SETBIT against integer-encoded key (0 ms) +[ok]: SETBIT against key with wrong type (0 ms) +[ok]: SETBIT with out of range bit offset (1 ms) +[ok]: SETBIT with non-bit argument (0 ms) +[ok]: SETBIT fuzzing (742 ms) [ok]: GETBIT against non-existing key (0 ms) -[ok]: GETBIT against string-encoded key (1 ms) +[ok]: GETBIT against string-encoded key (0 ms) [ok]: GETBIT against integer-encoded key (1 ms) [ok]: SETRANGE against non-existing key (1 ms) [ok]: SETRANGE against string-encoded key (1 ms) @@ -3582,373 +3621,371 @@ [ok]: GETRANGE against wrong key type (0 ms) [ok]: GETRANGE against string value (1 ms) [ok]: GETRANGE against integer-encoded value (1 ms) -[ok]: GETRANGE fuzzing (694 ms) +[ok]: GETRANGE fuzzing (944 ms) [ok]: Coverage: SUBSTR (1 ms) -[ok]: trim on SET with big value (49 ms) +[ok]: trim on SET with big value (52 ms) [ok]: Extended SET can detect syntax errors (0 ms) [ok]: Extended SET NX option (1 ms) -[ok]: Extended SET XX option (1 ms) -[ok]: Extended SET GET option (0 ms) +[ok]: Extended SET XX option (0 ms) +[ok]: Extended SET GET option (2 ms) [ok]: Extended SET GET option with no previous value (0 ms) -[ok]: Extended SET GET option with XX (1 ms) +[ok]: Extended SET GET option with XX (2 ms) [ok]: Extended SET GET option with XX and no previous value (0 ms) [ok]: Extended SET GET option with NX (1 ms) -[ok]: Extended SET GET option with NX and previous value (0 ms) -[ok]: Extended SET GET with incorrect type should result in wrong type error (4 ms) +[ok]: Extended SET GET option with NX and previous value (1 ms) +[ok]: Extended SET GET with incorrect type should result in wrong type error (1 ms) [ok]: SET with IFEQ conditional (1 ms) -[ok]: SET with IFEQ conditional - non-string current value (0 ms) -[ok]: SET with IFEQ conditional - with get (1 ms) -[ok]: SET with IFEQ conditional - non string current value with get (1 ms) +[ok]: SET with IFEQ conditional - non-string current value (1 ms) +[ok]: SET with IFEQ conditional - with get (0 ms) +[ok]: SET with IFEQ conditional - non string current value with get (0 ms) [ok]: SET with IFEQ conditional - with xx (0 ms) [ok]: SET with IFEQ conditional - with nx (0 ms) [ok]: Extended SET EX option (1 ms) [ok]: Extended SET PX option (0 ms) [ok]: Extended SET EXAT option (0 ms) -[ok]: Extended SET PXAT option (0 ms) -[ok]: SET EXAT / PXAT Expiration time is expired (26 ms) -[ok]: Extended SET using multiple options at once (1 ms) +[ok]: Extended SET PXAT option (1 ms) +[ok]: SET EXAT / PXAT Expiration time is expired (131 ms) +[ok]: Extended SET using multiple options at once (0 ms) [ok]: GETRANGE with huge ranges, Github issue #1844 (0 ms) [ok]: LCS basic (1 ms) -[ok]: LCS len (0 ms) +[ok]: LCS len (4 ms) [ok]: LCS indexes (1 ms) [ok]: LCS indexes with match len (0 ms) [ok]: LCS indexes with match len and minimum match len (1 ms) -[ok]: SETRANGE with huge offset (0 ms) -[ok]: APPEND modifies the encoding from int to raw (1 ms) +[ok]: SETRANGE with huge offset (1 ms) +[ok]: APPEND modifies the encoding from int to raw (8 ms) [ok]: Memory usage of embedded string value (1 ms) -[46/129 done]: unit/type/string (10 seconds) +[46/129 done]: unit/type/string (14 seconds) Testing unit/type/stream === (stream) Starting server on 127.0.0.1:21531 ok [ok]: XADD wrong number of args (1 ms) [ok]: XADD can add entries into a stream that XRANGE can fetch (0 ms) -[ok]: XADD IDs are incremental (0 ms) -[ok]: XADD IDs are incremental when ms is the same as well (1 ms) -[ok]: XADD IDs correctly report an error when overflowing (3 ms) -[ok]: XADD auto-generated sequence is incremented for last ID (1 ms) +[ok]: XADD IDs are incremental (3 ms) +[ok]: XADD IDs are incremental when ms is the same as well (0 ms) +[ok]: XADD IDs correctly report an error when overflowing (0 ms) +[ok]: XADD auto-generated sequence is incremented for last ID (3 ms) [ok]: XADD auto-generated sequence is zero for future timestamp ID (0 ms) [ok]: XADD auto-generated sequence can't be smaller than last ID (1 ms) -[ok]: XADD auto-generated sequence can't overflow (0 ms) -[ok]: XADD 0-* should succeed (1 ms) -[ok]: XADD with MAXLEN option (175 ms) -[ok]: XADD with MAXLEN option and the '=' argument (102 ms) -[ok]: XADD with MAXLEN option and the '~' argument (93 ms) +[ok]: XADD auto-generated sequence can't overflow (2 ms) +[ok]: XADD 0-* should succeed (0 ms) +[ok]: XADD with MAXLEN option (236 ms) +[ok]: XADD with MAXLEN option and the '=' argument (240 ms) +[ok]: XADD with MAXLEN option and the '~' argument (213 ms) [ok]: XADD with NOMKSTREAM option (1 ms) -[ok]: XADD with MINID option (99 ms) +[ok]: XADD with MINID option (151 ms) [ok]: XTRIM with MINID option (1 ms) [ok]: XTRIM with MINID option, big delta from master record (1 ms) -[ok]: XADD mass insertion and XLEN (1711 ms) +[ok]: XADD mass insertion and XLEN (2015 ms) [ok]: XADD with ID 0-0 (0 ms) [ok]: XADD with LIMIT delete entries no more than limit (1 ms) [ok]: XRANGE COUNT works as expected (1 ms) [ok]: XREVRANGE COUNT works as expected (0 ms) -[ok]: XRANGE can be used to iterate the whole stream (289 ms) -[ok]: XREVRANGE returns the reverse of XRANGE (1072 ms) +[ok]: XRANGE can be used to iterate the whole stream (295 ms) +[ok]: XREVRANGE returns the reverse of XRANGE (1069 ms) [ok]: XRANGE exclusive ranges (3 ms) -[ok]: XREAD with non empty stream (0 ms) +[ok]: XREAD with non empty stream (1 ms) [ok]: Non blocking XREAD with empty streams (0 ms) -[ok]: XREAD with non empty second stream (1154 ms) -[ok]: Blocking XREAD waiting new data (13 ms) -[ok]: Blocking XREAD waiting old data (13 ms) -[ok]: Blocking XREAD will not reply with an empty array (52 ms) -[ok]: Blocking XREAD for stream that ran dry (issue #5299) (102 ms) +[ok]: XREAD with non empty second stream (1201 ms) +[ok]: Blocking XREAD waiting new data (12 ms) +[ok]: Blocking XREAD waiting old data (11 ms) +[ok]: Blocking XREAD will not reply with an empty array (117 ms) +[ok]: Blocking XREAD for stream that ran dry (issue #5299) (106 ms) [ok]: XREAD last element from non-empty stream (1 ms) [ok]: XREAD last element from empty stream (1 ms) -[ok]: XREAD last element blocking from empty stream (22 ms) +[ok]: XREAD last element blocking from empty stream (23 ms) [ok]: XREAD last element blocking from non-empty stream (1 ms) -[ok]: XREAD last element from multiple streams (10 ms) -[ok]: XREAD last element with count > 1 (1 ms) -[ok]: XREAD: XADD + DEL should not awake client (20 ms) -[ok]: XREAD: XADD + DEL + LPUSH should not awake client (26 ms) -[ok]: XREAD with same stream name multiple times should work (20 ms) -[ok]: XREAD + multiple XADD inside transaction (24 ms) +[ok]: XREAD last element from multiple streams (1 ms) +[ok]: XREAD last element with count > 1 (0 ms) +[ok]: XREAD: XADD + DEL should not awake client (13 ms) +[ok]: XREAD: XADD + DEL + LPUSH should not awake client (12 ms) +[ok]: XREAD with same stream name multiple times should work (12 ms) +[ok]: XREAD + multiple XADD inside transaction (13 ms) [ok]: XDEL basic test (1 ms) -[ok]: XDEL multiply id test (2 ms) -[ok]: XDEL fuzz test (1699 ms) -[ok]: XRANGE fuzzing (4671 ms) -[ok]: XREVRANGE regression test for issue #5006 (1 ms) +[ok]: XDEL multiply id test (1 ms) +[ok]: XDEL fuzz test (1630 ms) +[ok]: XRANGE fuzzing (6568 ms) +[ok]: XREVRANGE regression test for issue #5006 (2 ms) [ok]: XREAD streamID edge (no-blocking) (0 ms) -[ok]: XREAD streamID edge (blocking) (14 ms) -[ok]: XADD streamID edge (0 ms) -[ok]: XTRIM with MAXLEN option basic test (91 ms) -[ok]: XADD with LIMIT consecutive calls (10 ms) +[ok]: XREAD streamID edge (blocking) (18 ms) +[ok]: XADD streamID edge (1 ms) +[ok]: XTRIM with MAXLEN option basic test (87 ms) +[ok]: XADD with LIMIT consecutive calls (9 ms) [ok]: XTRIM with ~ is limited (10 ms) [ok]: XTRIM without ~ is not limited (10 ms) [ok]: XTRIM without ~ and with LIMIT (10 ms) [ok]: XTRIM with LIMIT delete entries no more than limit (1 ms) === (stream needs:debug) Starting server on 127.0.0.1:21533 ok -[ok]: XADD with MAXLEN > xlen can propagate correctly (29 ms) +[ok]: XADD with MAXLEN > xlen can propagate correctly (26 ms) === (stream needs:debug) Starting server on 127.0.0.1:21535 ok -[ok]: XADD with MINID > lastid can propagate correctly (22 ms) +[ok]: XADD with MINID > lastid can propagate correctly (43 ms) === (stream needs:debug) Starting server on 127.0.0.1:21537 ok -[ok]: XADD with ~ MAXLEN can propagate correctly (15 ms) +[ok]: XADD with ~ MAXLEN can propagate correctly (43 ms) === (stream needs:debug) Starting server on 127.0.0.1:21539 ok -[ok]: XADD with ~ MAXLEN and LIMIT can propagate correctly (22 ms) +[ok]: XADD with ~ MAXLEN and LIMIT can propagate correctly (28 ms) === (stream needs:debug) Starting server on 127.0.0.1:21541 ok -[ok]: XADD with ~ MINID can propagate correctly (31 ms) +[ok]: XADD with ~ MINID can propagate correctly (37 ms) === (stream needs:debug) Starting server on 127.0.0.1:21543 ok -[ok]: XADD with ~ MINID and LIMIT can propagate correctly (26 ms) +[ok]: XADD with ~ MINID and LIMIT can propagate correctly (51 ms) === (stream needs:debug) Starting server on 127.0.0.1:21545 ok -[ok]: XTRIM with ~ MAXLEN can propagate correctly (35 ms) +[ok]: XTRIM with ~ MAXLEN can propagate correctly (26 ms) === (stream) Starting server on 127.0.0.1:21547 ok -[ok]: XADD can CREATE an empty stream (4 ms) -[ok]: XSETID can set a specific ID (1 ms) -[ok]: XSETID cannot SETID with smaller ID (0 ms) +[ok]: XADD can CREATE an empty stream (1 ms) +[ok]: XSETID can set a specific ID (0 ms) +[ok]: XSETID cannot SETID with smaller ID (1 ms) [ok]: XSETID cannot SETID on non-existent key (0 ms) -[ok]: XSETID cannot run with an offset but without a maximal tombstone (0 ms) -[ok]: XSETID cannot run with a maximal tombstone but without an offset (0 ms) -[ok]: XSETID errors on negstive offset (1 ms) -[ok]: XSETID cannot set the maximal tombstone with larger ID (5 ms) +[ok]: XSETID cannot run with an offset but without a maximal tombstone (4 ms) +[ok]: XSETID cannot run with a maximal tombstone but without an offset (1 ms) +[ok]: XSETID errors on negstive offset (0 ms) +[ok]: XSETID cannot set the maximal tombstone with larger ID (0 ms) [ok]: XSETID cannot set the offset to less than the length (0 ms) -[ok]: XSETID cannot set smaller ID than current MAXDELETEDID (2 ms) +[ok]: XSETID cannot set smaller ID than current MAXDELETEDID (1 ms) === (stream) Starting server on 127.0.0.1:21549 ok -[ok]: XADD advances the entries-added counter and sets the recorded-first-entry-id (8 ms) -[ok]: XDEL/TRIM are reflected by recorded first entry (3 ms) -[ok]: Maximum XDEL ID behaves correctly (5 ms) -[ok]: XADD with artial ID with maximal seq (1 ms) +[ok]: XADD advances the entries-added counter and sets the recorded-first-entry-id (1 ms) +[ok]: XDEL/TRIM are reflected by recorded first entry (8 ms) +[ok]: Maximum XDEL ID behaves correctly (7 ms) +[ok]: XADD with artial ID with maximal seq (0 ms) === (stream needs:debug) Starting server on 127.0.0.1:21551 ok -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: Empty stream can be rewrite into AOF correctly (105 ms) +Waiting for background AOF rewrite to finish... [ok]: Empty stream can be rewrite into AOF correctly (53 ms) -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: Stream can be rewrite into AOF correctly after XDEL lastid (113 ms) +Waiting for background AOF rewrite to finish... [ok]: Stream can be rewrite into AOF correctly after XDEL lastid (59 ms) === (stream) Starting server on 127.0.0.1:21553 ok -[ok]: XGROUP HELP should not have unexpected options (2 ms) -[ok]: XINFO HELP should not have unexpected options (0 ms) -[47/129 done]: unit/type/stream (15 seconds) +[ok]: XGROUP HELP should not have unexpected options (5 ms) +[ok]: XINFO HELP should not have unexpected options (1 ms) +[47/129 done]: unit/type/stream (18 seconds) Testing unit/type/stream-cgroups === (stream) Starting server on 127.0.0.1:21555 ok [ok]: XGROUP CREATE: creation and duplicate group name detection (0 ms) [ok]: XGROUP CREATE: with ENTRIESREAD parameter (1 ms) -[ok]: XGROUP CREATE: automatic stream creation fails without MKSTREAM (1 ms) -[ok]: XGROUP CREATE: automatic stream creation works with MKSTREAM (3 ms) -[ok]: XREADGROUP will return only new elements (1 ms) -[ok]: XREADGROUP can read the history of the elements we own (1 ms) -[ok]: XPENDING is able to return pending items (1 ms) +[ok]: XGROUP CREATE: automatic stream creation fails without MKSTREAM (0 ms) +[ok]: XGROUP CREATE: automatic stream creation works with MKSTREAM (0 ms) +[ok]: XREADGROUP will return only new elements (4 ms) +[ok]: XREADGROUP can read the history of the elements we own (0 ms) +[ok]: XPENDING is able to return pending items (0 ms) [ok]: XPENDING can return single consumer items (0 ms) -[ok]: XPENDING only group (0 ms) +[ok]: XPENDING only group (1 ms) [ok]: XPENDING with IDLE (21 ms) -[ok]: XPENDING with exclusive range intervals works as expected (3 ms) -[ok]: XACK is able to remove items from the consumer/group PEL (0 ms) +[ok]: XPENDING with exclusive range intervals works as expected (1 ms) +[ok]: XACK is able to remove items from the consumer/group PEL (2 ms) [ok]: XACK can't remove the same item multiple times (0 ms) [ok]: XACK is able to accept multiple arguments (0 ms) -[ok]: XACK should fail if got at least one invalid ID (1 ms) -[ok]: PEL NACK reassignment after XGROUP SETID event (5 ms) -[ok]: XREADGROUP will not report data on empty history. Bug #5577 (2 ms) -[ok]: XREADGROUP history reporting of deleted entries. Bug #5570 (1 ms) -[ok]: Blocking XREADGROUP will not reply with an empty array (38 ms) -[ok]: Blocking XREADGROUP: key deleted (26 ms) -[ok]: Blocking XREADGROUP: key type changed with SET (17 ms) -[ok]: Blocking XREADGROUP: key type changed with transaction (21 ms) -[ok]: Blocking XREADGROUP: flushed DB (21 ms) -[ok]: Blocking XREADGROUP: swapped DB, key doesn't exist (22 ms) -[ok]: Blocking XREADGROUP: swapped DB, key is not a stream (21 ms) -[ok]: XREAD and XREADGROUP against wrong parameter (1 ms) -[ok]: Blocking XREAD: key deleted (24 ms) -[ok]: Blocking XREAD: key type changed with SET (18 ms) -[ok]: Blocking XREADGROUP for stream that ran dry (issue #5299) (95 ms) -[ok]: Blocking XREADGROUP will ignore BLOCK if ID is not > (29 ms) -[ok]: Blocking XREADGROUP for stream key that has clients blocked on list (42 ms) -[ok]: Blocking XREADGROUP for stream key that has clients blocked on stream - avoid endless loop (57 ms) -[ok]: Blocking XREADGROUP for stream key that has clients blocked on stream - reprocessing command (1086 ms) -[ok]: XGROUP DESTROY should unblock XREADGROUP with -NOGROUP (24 ms) -[ok]: RENAME can unblock XREADGROUP with data (22 ms) -[ok]: RENAME can unblock XREADGROUP with -NOGROUP (29 ms) -[ok]: XCLAIM can claim PEL items from another consumer (607 ms) +[ok]: XACK should fail if got at least one invalid ID (6 ms) +[ok]: PEL NACK reassignment after XGROUP SETID event (2 ms) +[ok]: XREADGROUP will not report data on empty history. Bug #5577 (1 ms) +[ok]: XREADGROUP history reporting of deleted entries. Bug #5570 (2 ms) +[ok]: Blocking XREADGROUP will not reply with an empty array (48 ms) +[ok]: Blocking XREADGROUP: key deleted (28 ms) +[ok]: Blocking XREADGROUP: key type changed with SET (27 ms) +[ok]: Blocking XREADGROUP: key type changed with transaction (27 ms) +[ok]: Blocking XREADGROUP: flushed DB (28 ms) +[ok]: Blocking XREADGROUP: swapped DB, key doesn't exist (29 ms) +[ok]: Blocking XREADGROUP: swapped DB, key is not a stream (27 ms) +[ok]: XREAD and XREADGROUP against wrong parameter (0 ms) +[ok]: Blocking XREAD: key deleted (27 ms) +[ok]: Blocking XREAD: key type changed with SET (30 ms) +[ok]: Blocking XREADGROUP for stream that ran dry (issue #5299) (44 ms) +[ok]: Blocking XREADGROUP will ignore BLOCK if ID is not > (32 ms) +[ok]: Blocking XREADGROUP for stream key that has clients blocked on list (65 ms) +[ok]: Blocking XREADGROUP for stream key that has clients blocked on stream - avoid endless loop (79 ms) +[ok]: Blocking XREADGROUP for stream key that has clients blocked on stream - reprocessing command (1135 ms) +[ok]: XGROUP DESTROY should unblock XREADGROUP with -NOGROUP (34 ms) +[ok]: RENAME can unblock XREADGROUP with data (28 ms) +[ok]: RENAME can unblock XREADGROUP with -NOGROUP (23 ms) +[ok]: XCLAIM can claim PEL items from another consumer (615 ms) [ok]: XCLAIM without JUSTID increments delivery count (404 ms) -[ok]: XCLAIM same consumer (203 ms) -[ok]: XAUTOCLAIM can claim PEL items from another consumer (608 ms) -[ok]: XAUTOCLAIM as an iterator (207 ms) +[ok]: XCLAIM same consumer (207 ms) +[ok]: XAUTOCLAIM can claim PEL items from another consumer (607 ms) +[ok]: XAUTOCLAIM as an iterator (203 ms) [ok]: XAUTOCLAIM COUNT must be > 0 (0 ms) -[ok]: XCLAIM with XDEL (1 ms) -[ok]: XCLAIM with trimming (4 ms) +[ok]: XCLAIM with XDEL (10 ms) +[ok]: XCLAIM with trimming (2 ms) [ok]: XAUTOCLAIM with XDEL (1 ms) -[ok]: XAUTOCLAIM with XDEL and count (7 ms) +[ok]: XAUTOCLAIM with XDEL and count (9 ms) [ok]: XAUTOCLAIM with out of range count (0 ms) -[ok]: XCLAIM with trimming (1 ms) -[ok]: XINFO FULL output (3 ms) -[ok]: Consumer seen-time and active-time (209 ms) -[ok]: XGROUP CREATECONSUMER: create consumer if does not exist (2 ms) +[ok]: XCLAIM with trimming (3 ms) +[ok]: XINFO FULL output (18 ms) +[ok]: Consumer seen-time and active-time (210 ms) +[ok]: XGROUP CREATECONSUMER: create consumer if does not exist (6 ms) [ok]: XGROUP CREATECONSUMER: group must exist (0 ms) === (stream needs:debug) Starting server on 127.0.0.1:21557 ok -[ok]: XREADGROUP with NOACK creates consumer (18 ms) +[ok]: XREADGROUP with NOACK creates consumer (25 ms) -Waiting for background AOF rewrite to finish... [ok]: Consumer without PEL is present in AOF after AOFRW (80 ms) -[ok]: Consumer group read counter and lag in empty streams (3 ms) -[ok]: Consumer group read counter and lag sanity (13 ms) -[ok]: Consumer group lag with XDELs (13 ms) -[ok]: Consumer group lag with XTRIM (15 ms) -[ok]: Consumer group lag with XADD trimming (16 ms) -[ok]: Loading from legacy (Redis <= v6.2.x, rdb_ver < 10) persistence (1 ms) -[ok]: Loading from legacy (Redis <= v7.0.x, rdb_ver < 11) persistence (6 ms) +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... [ok]: Consumer without PEL is present in AOF after AOFRW (142 ms) +[ok]: Consumer group read counter and lag in empty streams (2 ms) +[ok]: Consumer group read counter and lag sanity (15 ms) +[ok]: Consumer group lag with XDELs (16 ms) +[ok]: Consumer group lag with XTRIM (30 ms) +[ok]: Consumer group lag with XADD trimming (25 ms) +[ok]: Loading from legacy (Redis <= v6.2.x, rdb_ver < 10) persistence (7 ms) +[ok]: Loading from legacy (Redis <= v7.0.x, rdb_ver < 11) persistence (8 ms) === (external:skip) Starting server on 127.0.0.1:21559 ok -[ok]: Consumer group last ID propagation to slave (NOACK=0) (936 ms) -[ok]: Consumer group last ID propagation to slave (NOACK=1) (1024 ms) +[ok]: Consumer group last ID propagation to slave (NOACK=0) (932 ms) +[ok]: Consumer group last ID propagation to slave (NOACK=1) (105 ms) === (external:skip) Starting server on 127.0.0.1:21561 ok -[ok]: Replication tests of XCLAIM with deleted entries (autoclaim=0) (925 ms) -[ok]: Replication tests of XCLAIM with deleted entries (autoclaim=1) (10 ms) -[ok]: XREADGROUP ACK would propagate entries-read (3 ms) +[ok]: Replication tests of XCLAIM with deleted entries (autoclaim=0) (112 ms) +[ok]: Replication tests of XCLAIM with deleted entries (autoclaim=1) (16 ms) +[ok]: XREADGROUP ACK would propagate entries-read (16 ms) === (stream needs:debug) Starting server on 127.0.0.1:21563 ok -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: Empty stream with no lastid can be rewrite into AOF correctly (105 ms) -[48/129 done]: unit/type/stream-cgroups (8 seconds) +Waiting for background AOF rewrite to finish... [ok]: Empty stream with no lastid can be rewrite into AOF correctly (53 ms) +[48/129 done]: unit/type/stream-cgroups (7 seconds) Testing unit/type/set === (set) Starting server on 127.0.0.1:21565 ok -[ok]: SADD, SCARD, SISMEMBER, SMISMEMBER, SMEMBERS basics - listpack (3 ms) -[ok]: SADD, SCARD, SISMEMBER, SMISMEMBER, SMEMBERS basics - hashtable (41 ms) -[ok]: SADD, SCARD, SISMEMBER, SMISMEMBER, SMEMBERS basics - intset (7 ms) -[ok]: SMISMEMBER SMEMBERS SCARD against non set (1 ms) -[ok]: SMISMEMBER SMEMBERS SCARD against non existing key (1 ms) -[ok]: SMISMEMBER requires one or more members (0 ms) +[ok]: SADD, SCARD, SISMEMBER, SMISMEMBER, SMEMBERS basics - listpack (2 ms) +[ok]: SADD, SCARD, SISMEMBER, SMISMEMBER, SMEMBERS basics - hashtable (29 ms) +[ok]: SADD, SCARD, SISMEMBER, SMISMEMBER, SMEMBERS basics - intset (5 ms) +[ok]: SMISMEMBER SMEMBERS SCARD against non set (0 ms) +[ok]: SMISMEMBER SMEMBERS SCARD against non existing key (0 ms) +[ok]: SMISMEMBER requires one or more members (5 ms) [ok]: SADD against non set (0 ms) [ok]: SADD a non-integer against a small intset (1 ms) -[ok]: SADD a non-integer against a large intset (31 ms) -[ok]: SADD an integer larger than 64 bits (5 ms) -[ok]: SADD an integer larger than 64 bits to a large intset (37 ms) -[ok]: SADD overflows the maximum allowed integers in an intset - single (112 ms) -[ok]: SADD overflows the maximum allowed elements in a listpack - single (29 ms) -[ok]: SADD overflows the maximum allowed integers in an intset - multiple (45 ms) -[ok]: SADD overflows the maximum allowed elements in a listpack - multiple (8 ms) -[ok]: SADD overflows the maximum allowed integers in an intset - single_multiple (44 ms) +[ok]: SADD a non-integer against a large intset (24 ms) +[ok]: SADD an integer larger than 64 bits (1 ms) +[ok]: SADD an integer larger than 64 bits to a large intset (29 ms) +[ok]: SADD overflows the maximum allowed integers in an intset - single (92 ms) +[ok]: SADD overflows the maximum allowed elements in a listpack - single (23 ms) +[ok]: SADD overflows the maximum allowed integers in an intset - multiple (47 ms) +[ok]: SADD overflows the maximum allowed elements in a listpack - multiple (1 ms) +[ok]: SADD overflows the maximum allowed integers in an intset - single_multiple (43 ms) [ok]: SADD overflows the maximum allowed elements in a listpack - single_multiple (1 ms) [ok]: Variadic SADD (1 ms) -[ok]: Set encoding after DEBUG RELOAD (169 ms) -[ok]: SREM basics - $type (1 ms) -[ok]: SREM basics - $type (13 ms) +[ok]: Set encoding after DEBUG RELOAD (308 ms) +[ok]: SREM basics - $type (7 ms) +[ok]: SREM basics - $type (25 ms) [ok]: SREM basics - intset (1 ms) -[ok]: SREM with multiple arguments (0 ms) +[ok]: SREM with multiple arguments (1 ms) [ok]: SREM variadic version with more args needed to destroy the key (1 ms) [ok]: SINTERCARD with illegal arguments (1 ms) -[ok]: SINTERCARD against non-set should throw error (0 ms) +[ok]: SINTERCARD against non-set should throw error (1 ms) [ok]: SINTERCARD against non-existing key (1 ms) -[ok]: Generated sets must be encoded correctly - regular (1 ms) +[ok]: Generated sets must be encoded correctly - regular (2 ms) [ok]: SINTER with two sets - regular (0 ms) [ok]: SINTERCARD with two sets - regular (1 ms) [ok]: SINTERSTORE with two sets - regular (0 ms) -[ok]: SINTERSTORE with two sets, after a DEBUG RELOAD - regular (1 ms) -[ok]: SUNION with two sets - regular (6 ms) -[ok]: SUNIONSTORE with two sets - regular (6 ms) -[ok]: SINTER against three sets - regular (0 ms) -[ok]: SINTERCARD against three sets - regular (1 ms) +[ok]: SINTERSTORE with two sets, after a DEBUG RELOAD - regular (6 ms) +[ok]: SUNION with two sets - regular (11 ms) +[ok]: SUNIONSTORE with two sets - regular (11 ms) +[ok]: SINTER against three sets - regular (1 ms) +[ok]: SINTERCARD against three sets - regular (0 ms) [ok]: SINTERSTORE with three sets - regular (0 ms) -[ok]: SUNION with non existing keys - regular (5 ms) -[ok]: SDIFF with two sets - regular (0 ms) +[ok]: SUNION with non existing keys - regular (10 ms) +[ok]: SDIFF with two sets - regular (1 ms) [ok]: SDIFF with three sets - regular (0 ms) -[ok]: SDIFFSTORE with three sets - regular (0 ms) -[ok]: SINTER/SUNION/SDIFF with three same sets - regular (5 ms) -[ok]: Generated sets must be encoded correctly - intset (0 ms) +[ok]: SDIFFSTORE with three sets - regular (1 ms) +[ok]: SINTER/SUNION/SDIFF with three same sets - regular (9 ms) +[ok]: Generated sets must be encoded correctly - intset (1 ms) [ok]: SINTER with two sets - intset (0 ms) [ok]: SINTERCARD with two sets - intset (0 ms) -[ok]: SINTERSTORE with two sets - intset (1 ms) -[ok]: SINTERSTORE with two sets, after a DEBUG RELOAD - intset (1 ms) -[ok]: SUNION with two sets - intset (6 ms) -[ok]: SUNIONSTORE with two sets - intset (5 ms) -[ok]: SINTER against three sets - intset (1 ms) -[ok]: SINTERCARD against three sets - intset (0 ms) -[ok]: SINTERSTORE with three sets - intset (1 ms) -[ok]: SUNION with non existing keys - intset (5 ms) -[ok]: SDIFF with two sets - intset (0 ms) -[ok]: SDIFF with three sets - intset (1 ms) -[ok]: SDIFFSTORE with three sets - intset (0 ms) -[ok]: SINTER/SUNION/SDIFF with three same sets - intset (4 ms) -[ok]: SINTERSTORE with two listpack sets where result is intset (1 ms) -[ok]: SINTERSTORE with two hashtable sets where result is intset (27 ms) +[ok]: SINTERSTORE with two sets - intset (0 ms) +[ok]: SINTERSTORE with two sets, after a DEBUG RELOAD - intset (4 ms) +[ok]: SUNION with two sets - intset (11 ms) +[ok]: SUNIONSTORE with two sets - intset (14 ms) +[ok]: SINTER against three sets - intset (0 ms) +[ok]: SINTERCARD against three sets - intset (1 ms) +[ok]: SINTERSTORE with three sets - intset (0 ms) +[ok]: SUNION with non existing keys - intset (11 ms) +[ok]: SDIFF with two sets - intset (1 ms) +[ok]: SDIFF with three sets - intset (0 ms) +[ok]: SDIFFSTORE with three sets - intset (1 ms) +[ok]: SINTER/SUNION/SDIFF with three same sets - intset (9 ms) +[ok]: SINTERSTORE with two listpack sets where result is intset (2 ms) +[ok]: SINTERSTORE with two hashtable sets where result is intset (52 ms) [ok]: SUNION hashtable and listpack (2 ms) -[ok]: SDIFF with first set empty (0 ms) -[ok]: SDIFF with same set two times (1 ms) -[ok]: SDIFF fuzzing (4036 ms) +[ok]: SDIFF with first set empty (1 ms) +[ok]: SDIFF with same set two times (0 ms) +[ok]: SDIFF fuzzing (5718 ms) [ok]: SDIFF against non-set should throw error (1 ms) -[ok]: SDIFF should handle non existing key as empty (1 ms) -[ok]: SDIFFSTORE against non-set should throw error (2 ms) +[ok]: SDIFF should handle non existing key as empty (0 ms) +[ok]: SDIFFSTORE against non-set should throw error (1 ms) [ok]: SDIFFSTORE should handle non existing key as empty (1 ms) -[ok]: SINTER against non-set should throw error (0 ms) -[ok]: SINTER should handle non existing key as empty (0 ms) +[ok]: SINTER against non-set should throw error (1 ms) +[ok]: SINTER should handle non existing key as empty (1 ms) [ok]: SINTER with same integer elements but different encoding (1 ms) [ok]: SINTERSTORE against non-set should throw error (2 ms) [ok]: SINTERSTORE against non existing keys should delete dstkey (1 ms) -[ok]: SUNION against non-set should throw error (1 ms) -[ok]: SUNION should handle non existing key as empty (1 ms) -[ok]: SUNIONSTORE against non-set should throw error (1 ms) +[ok]: SUNION against non-set should throw error (0 ms) +[ok]: SUNION should handle non existing key as empty (0 ms) +[ok]: SUNIONSTORE against non-set should throw error (2 ms) [ok]: SUNIONSTORE should handle non existing key as empty (2 ms) -[ok]: SUNIONSTORE against non existing keys should delete dstkey (1 ms) +[ok]: SUNIONSTORE against non existing keys should delete dstkey (0 ms) [ok]: SPOP basics - listpack (1 ms) [ok]: SPOP with =1 - listpack (1 ms) -[ok]: SRANDMEMBER - listpack (10 ms) +[ok]: SRANDMEMBER - listpack (9 ms) [ok]: SPOP basics - intset (1 ms) -[ok]: SPOP with =1 - intset (1 ms) -[ok]: SRANDMEMBER - intset (10 ms) +[ok]: SPOP with =1 - intset (0 ms) +[ok]: SRANDMEMBER - intset (8 ms) [ok]: SPOP integer from listpack set (1 ms) -[ok]: SPOP with - listpack (3 ms) -[ok]: SPOP with - intset (3 ms) -[ok]: SPOP with - hashtable (4 ms) -[ok]: SPOP using integers, testing Knuth's and Floyd's algorithm (4 ms) +[ok]: SPOP with - listpack (4 ms) +[ok]: SPOP with - intset (4 ms) +[ok]: SPOP with - hashtable (3 ms) +[ok]: SPOP using integers, testing Knuth's and Floyd's algorithm (3 ms) [ok]: SPOP using integers with Knuth's algorithm (0 ms) -[ok]: SPOP new implementation: code path #1 intset (3 ms) -[ok]: SPOP new implementation: code path #2 intset (2 ms) -[ok]: SPOP new implementation: code path #3 intset (3 ms) -[ok]: SPOP new implementation: code path #1 listpack (3 ms) +[ok]: SPOP new implementation: code path #1 intset (2 ms) +[ok]: SPOP new implementation: code path #2 intset (3 ms) +[ok]: SPOP new implementation: code path #3 intset (2 ms) +[ok]: SPOP new implementation: code path #1 listpack (2 ms) [ok]: SPOP new implementation: code path #2 listpack (2 ms) -[ok]: SPOP new implementation: code path #3 listpack (3 ms) -[ok]: SPOP new implementation: code path #1 propagate as DEL or UNLINK (106 ms) +[ok]: SPOP new implementation: code path #3 listpack (2 ms) +[ok]: SPOP new implementation: code path #1 propagate as DEL or UNLINK (82 ms) [ok]: SRANDMEMBER count of 0 is handled correctly (0 ms) [ok]: SRANDMEMBER with against non existing key (0 ms) -[ok]: SRANDMEMBER count overflow (6 ms) -[ok]: SRANDMEMBER count of 0 is handled correctly - emptyarray (1 ms) +[ok]: SRANDMEMBER count overflow (0 ms) +[ok]: SRANDMEMBER count of 0 is handled correctly - emptyarray (0 ms) [ok]: SRANDMEMBER with against non existing key - emptyarray (0 ms) -[ok]: SRANDMEMBER with - listpack (20 ms) -[ok]: SRANDMEMBER with - intset (23 ms) -[ok]: SRANDMEMBER with - hashtable (21 ms) -[ok]: SRANDMEMBER histogram distribution - listpack (85 ms) -[ok]: SRANDMEMBER histogram distribution - intset (87 ms) -[ok]: SRANDMEMBER histogram distribution - hashtable (87 ms) -[ok]: SMOVE basics - from regular set to intset (3 ms) -[ok]: SMOVE basics - from intset to regular set (1 ms) -[ok]: SMOVE non existing key (2 ms) +[ok]: SRANDMEMBER with - listpack (39 ms) +[ok]: SRANDMEMBER with - intset (39 ms) +[ok]: SRANDMEMBER with - hashtable (34 ms) +[ok]: SRANDMEMBER histogram distribution - listpack (173 ms) +[ok]: SRANDMEMBER histogram distribution - intset (171 ms) +[ok]: SRANDMEMBER histogram distribution - hashtable (173 ms) +[ok]: SMOVE basics - from regular set to intset (9 ms) +[ok]: SMOVE basics - from intset to regular set (2 ms) +[ok]: SMOVE non existing key (5 ms) [ok]: SMOVE non existing src set (2 ms) -[ok]: SMOVE from regular set to non existing destination set (2 ms) -[ok]: SMOVE from intset to non existing destination set (1 ms) +[ok]: SMOVE from regular set to non existing destination set (6 ms) +[ok]: SMOVE from intset to non existing destination set (7 ms) [ok]: SMOVE wrong src key type (0 ms) [ok]: SMOVE wrong dst key type (1 ms) [ok]: SMOVE with identical source and destination (0 ms) -[ok]: SMOVE only notify dstset when the addition is successful (14 ms) -[ok]: intsets implementation stress testing (1606 ms) +[ok]: SMOVE only notify dstset when the addition is successful (26 ms) +[ok]: intsets implementation stress testing (3987 ms) [ignore]: large memory flag not provided -[49/129 done]: unit/type/set (7 seconds) +[49/129 done]: unit/type/set (12 seconds) Testing unit/type/list === () Starting server on 127.0.0.1:21567 ok -[ok]: packed node check compression with insert and pop (6 ms) -[ok]: packed node check compression combined with trim (2 ms) -[ok]: packed node check compression with lset (1 ms) -[ok]: plain node check compression with insert and pop (358 ms) -[ok]: plain node check compression combined with trim (131 ms) -[ok]: plain node check compression with lset (179 ms) +[ok]: packed node check compression with insert and pop (10 ms) +[ok]: packed node check compression combined with trim (9 ms) +[ok]: packed node check compression with lset (0 ms) +[ok]: plain node check compression with insert and pop (372 ms) +[ok]: plain node check compression combined with trim (136 ms) +[ok]: plain node check compression with lset (176 ms) === () Starting server on 127.0.0.1:21569 ok -[ok]: Test LPUSH and LPOP on plain nodes (9 ms) +[ok]: Test LPUSH and LPOP on plain nodes (3 ms) [ok]: Test LINDEX and LINSERT on plain nodes (1 ms) -[ok]: Test LTRIM on plain nodes (8 ms) -[ok]: Test LREM on plain nodes (7 ms) -[ok]: Test LPOS on plain nodes (2 ms) -[ok]: Test LMOVE on plain nodes (2 ms) +[ok]: Test LTRIM on plain nodes (0 ms) +[ok]: Test LREM on plain nodes (1 ms) +[ok]: Test LPOS on plain nodes (15 ms) +[ok]: Test LMOVE on plain nodes (12 ms) [ok]: Test LSET with packed / plain combinations (176 ms) -[ok]: Test LSET with packed is split in the middle (8 ms) -[ok]: Test LSET with packed consist only one item (176 ms) -[ok]: Crash due to delete entry from a compress quicklist node (8 ms) +[ok]: Test LSET with packed is split in the middle (4 ms) +[ok]: Test LSET with packed consist only one item (184 ms) +[ok]: Crash due to delete entry from a compress quicklist node (6 ms) [ok]: Crash due to split quicklist node wrongly (1 ms) -[ok]: Test LPUSH and LPOP on plain nodes (2 ms) +[ok]: Test LPUSH and LPOP on plain nodes (8 ms) [ok]: Test LINDEX and LINSERT on plain nodes (1 ms) -[ok]: Test LTRIM on plain nodes (0 ms) +[ok]: Test LTRIM on plain nodes (1 ms) [ok]: Test LREM on plain nodes (1 ms) -[ok]: Test LPOS on plain nodes (1 ms) +[ok]: Test LPOS on plain nodes (7 ms) [ok]: Test LMOVE on plain nodes (2 ms) -[ok]: Test LSET with packed / plain combinations (182 ms) +[ok]: Test LSET with packed / plain combinations (190 ms) [ok]: Test LSET with packed is split in the middle (2 ms) -[ok]: Test LSET with packed consist only one item (177 ms) -[ok]: Crash due to delete entry from a compress quicklist node (7 ms) +[ok]: Test LSET with packed consist only one item (189 ms) +[ok]: Crash due to delete entry from a compress quicklist node (2 ms) [ok]: Crash due to split quicklist node wrongly (1 ms) [ignore]: large memory flag not provided === (list) Starting server on 127.0.0.1:21571 ok -[ok]: LPOS basic usage - quicklist (53 ms) +[ok]: LPOS basic usage - quicklist (44 ms) [ok]: LPOS RANK (positive, negative and zero rank) option (8 ms) [ok]: LPOS COUNT option (0 ms) [ok]: LPOS COUNT + RANK option (1 ms) @@ -3956,389 +3993,389 @@ [ok]: LPOS no match (0 ms) [ok]: LPOS MAXLEN (1 ms) [ok]: LPOS when RANK is greater than matches (0 ms) -[ok]: LPUSH, RPUSH, LLENGTH, LINDEX, LPOP - quicklist (93 ms) -[ok]: LPOP/RPOP with wrong number of arguments (1 ms) -[ok]: RPOP/LPOP with the optional count argument - quicklist (47 ms) -[ok]: LPOS basic usage - listpack (0 ms) -[ok]: LPOS RANK (positive, negative and zero rank) option (0 ms) +[ok]: LPUSH, RPUSH, LLENGTH, LINDEX, LPOP - quicklist (86 ms) +[ok]: LPOP/RPOP with wrong number of arguments (2 ms) +[ok]: RPOP/LPOP with the optional count argument - quicklist (53 ms) +[ok]: LPOS basic usage - listpack (1 ms) +[ok]: LPOS RANK (positive, negative and zero rank) option (4 ms) [ok]: LPOS COUNT option (1 ms) -[ok]: LPOS COUNT + RANK option (5 ms) -[ok]: LPOS non existing key (0 ms) +[ok]: LPOS COUNT + RANK option (0 ms) +[ok]: LPOS non existing key (1 ms) [ok]: LPOS no match (0 ms) -[ok]: LPOS MAXLEN (0 ms) -[ok]: LPOS when RANK is greater than matches (0 ms) -[ok]: LPUSH, RPUSH, LLENGTH, LINDEX, LPOP - listpack (2 ms) +[ok]: LPOS MAXLEN (1 ms) +[ok]: LPOS when RANK is greater than matches (1 ms) +[ok]: LPUSH, RPUSH, LLENGTH, LINDEX, LPOP - listpack (7 ms) [ok]: LPOP/RPOP with wrong number of arguments (1 ms) -[ok]: RPOP/LPOP with the optional count argument - listpack (1 ms) -[ok]: LPOP/RPOP with the count 0 returns an empty array in RESP3 (0 ms) -[ok]: LPOP/RPOP against non existing key in RESP3 (6 ms) -[ok]: LPOP/RPOP with against non existing key in RESP3 (4 ms) -[ok]: LPOP/RPOP with the count 0 returns an empty array in RESP2 (0 ms) +[ok]: RPOP/LPOP with the optional count argument - listpack (2 ms) +[ok]: LPOP/RPOP with the count 0 returns an empty array in RESP3 (6 ms) +[ok]: LPOP/RPOP against non existing key in RESP3 (1 ms) +[ok]: LPOP/RPOP with against non existing key in RESP3 (1 ms) +[ok]: LPOP/RPOP with the count 0 returns an empty array in RESP2 (1 ms) [ok]: LPOP/RPOP against non existing key in RESP2 (0 ms) -[ok]: LPOP/RPOP with against non existing key in RESP2 (1 ms) +[ok]: LPOP/RPOP with against non existing key in RESP2 (0 ms) [ok]: Variadic RPUSH/LPUSH (1 ms) [ok]: DEL a list (0 ms) -[ok]: BLPOP: single existing list - quicklist (72 ms) -[ok]: BLPOP: multiple existing lists - quicklist (116 ms) -[ok]: BLPOP: second list has an entry - quicklist (67 ms) -[ok]: BLMPOP_LEFT: single existing list - quicklist (60 ms) -[ok]: BLMPOP_LEFT: multiple existing lists - quicklist (123 ms) -[ok]: BLMPOP_LEFT: second list has an entry - quicklist (55 ms) -[ok]: BRPOPLPUSH - quicklist (64 ms) -[ok]: BLMOVE left left - quicklist (67 ms) -[ok]: BLMOVE left right - quicklist (70 ms) -[ok]: BLMOVE right left - quicklist (70 ms) -[ok]: BLMOVE right right - quicklist (68 ms) -[ok]: BLPOP: single existing list - listpack (22 ms) -[ok]: BLPOP: multiple existing lists - listpack (24 ms) -[ok]: BLPOP: second list has an entry - listpack (26 ms) -[ok]: BLMPOP_LEFT: single existing list - listpack (17 ms) -[ok]: BLMPOP_LEFT: multiple existing lists - listpack (27 ms) +[ok]: BLPOP: single existing list - quicklist (65 ms) +[ok]: BLPOP: multiple existing lists - quicklist (112 ms) +[ok]: BLPOP: second list has an entry - quicklist (75 ms) +[ok]: BLMPOP_LEFT: single existing list - quicklist (69 ms) +[ok]: BLMPOP_LEFT: multiple existing lists - quicklist (116 ms) +[ok]: BLMPOP_LEFT: second list has an entry - quicklist (75 ms) +[ok]: BRPOPLPUSH - quicklist (71 ms) +[ok]: BLMOVE left left - quicklist (76 ms) +[ok]: BLMOVE left right - quicklist (80 ms) +[ok]: BLMOVE right left - quicklist (80 ms) +[ok]: BLMOVE right right - quicklist (84 ms) +[ok]: BLPOP: single existing list - listpack (32 ms) +[ok]: BLPOP: multiple existing lists - listpack (28 ms) +[ok]: BLPOP: second list has an entry - listpack (29 ms) +[ok]: BLMPOP_LEFT: single existing list - listpack (31 ms) +[ok]: BLMPOP_LEFT: multiple existing lists - listpack (56 ms) [ok]: BLMPOP_LEFT: second list has an entry - listpack (24 ms) -[ok]: BRPOPLPUSH - listpack (22 ms) -[ok]: BLMOVE left left - listpack (25 ms) -[ok]: BLMOVE left right - listpack (17 ms) +[ok]: BRPOPLPUSH - listpack (13 ms) +[ok]: BLMOVE left left - listpack (13 ms) +[ok]: BLMOVE left right - listpack (14 ms) [ok]: BLMOVE right left - listpack (13 ms) -[ok]: BLMOVE right right - listpack (13 ms) -[ok]: BLPOP, LPUSH + DEL should not awake blocked client (119 ms) -[ok]: BLPOP, LPUSH + DEL + SET should not awake blocked client (21 ms) -[ok]: BLMPOP_LEFT, LPUSH + DEL should not awake blocked client (123 ms) -[ok]: BLMPOP_LEFT, LPUSH + DEL + SET should not awake blocked client (22 ms) -[ok]: BLPOP with same key multiple times should work (issue #801) (23 ms) -[ok]: MULTI/EXEC is isolated from the point of view of BLPOP (23 ms) -[ok]: BLPOP with variadic LPUSH (22 ms) -[ok]: MULTI/EXEC is isolated from the point of view of BLMPOP_LEFT (21 ms) -[ok]: BLMPOP_LEFT with variadic LPUSH (29 ms) -[ok]: BRPOPLPUSH with zero timeout should block indefinitely (22 ms) -[ok]: BLMOVE left left with zero timeout should block indefinitely (14 ms) -[ok]: BLMOVE left right with zero timeout should block indefinitely (28 ms) -[ok]: BLMOVE right left with zero timeout should block indefinitely (21 ms) -[ok]: BLMOVE right right with zero timeout should block indefinitely (21 ms) -[ok]: BLMOVE (left, left) with a client BLPOPing the target list (43 ms) -[ok]: BLMOVE (left, right) with a client BLPOPing the target list (46 ms) -[ok]: BLMOVE (right, left) with a client BLPOPing the target list (43 ms) -[ok]: BLMOVE (right, right) with a client BLPOPing the target list (47 ms) -[ok]: BRPOPLPUSH with wrong source type (17 ms) -[ok]: BRPOPLPUSH with wrong destination type (47 ms) +[ok]: BLMOVE right right - listpack (14 ms) +[ok]: BLPOP, LPUSH + DEL should not awake blocked client (13 ms) +[ok]: BLPOP, LPUSH + DEL + SET should not awake blocked client (119 ms) +[ok]: BLMPOP_LEFT, LPUSH + DEL should not awake blocked client (29 ms) +[ok]: BLMPOP_LEFT, LPUSH + DEL + SET should not awake blocked client (27 ms) +[ok]: BLPOP with same key multiple times should work (issue #801) (32 ms) +[ok]: MULTI/EXEC is isolated from the point of view of BLPOP (29 ms) +[ok]: BLPOP with variadic LPUSH (25 ms) +[ok]: MULTI/EXEC is isolated from the point of view of BLMPOP_LEFT (131 ms) +[ok]: BLMPOP_LEFT with variadic LPUSH (27 ms) +[ok]: BRPOPLPUSH with zero timeout should block indefinitely (31 ms) +[ok]: BLMOVE left left with zero timeout should block indefinitely (27 ms) +[ok]: BLMOVE left right with zero timeout should block indefinitely (27 ms) +[ok]: BLMOVE right left with zero timeout should block indefinitely (23 ms) +[ok]: BLMOVE right right with zero timeout should block indefinitely (33 ms) +[ok]: BLMOVE (left, left) with a client BLPOPing the target list (45 ms) +[ok]: BLMOVE (left, right) with a client BLPOPing the target list (56 ms) +[ok]: BLMOVE (right, left) with a client BLPOPing the target list (50 ms) +[ok]: BLMOVE (right, right) with a client BLPOPing the target list (67 ms) +[ok]: BRPOPLPUSH with wrong source type (40 ms) +[ok]: BRPOPLPUSH with wrong destination type (48 ms) [ok]: BRPOPLPUSH maintains order of elements after failure (24 ms) -[ok]: BRPOPLPUSH with multiple blocked clients (40 ms) -[ok]: BLMPOP with multiple blocked clients (85 ms) -[ok]: Linked LMOVEs (47 ms) -[ok]: Circular BRPOPLPUSH (47 ms) -[ok]: Self-referential BRPOPLPUSH (22 ms) -[ok]: BRPOPLPUSH inside a transaction (2 ms) -[ok]: PUSH resulting from BRPOPLPUSH affect WATCH (48 ms) -[ok]: BRPOPLPUSH does not affect WATCH while still blocked (40 ms) -[ok]: BRPOPLPUSH timeout (1038 ms) -[ok]: SWAPDB awakes blocked client (21 ms) -[ok]: SWAPDB wants to wake blocked client, but the key already expired (202 ms) -[ok]: MULTI + LPUSH + EXPIRE + DEBUG SLEEP on blocked client, key already expired (304 ms) -[ok]: BLPOP unblock but the key is expired and then block again - reprocessing command (1029 ms) -[ok]: BLPOP when new key is moved into place (18 ms) -[ok]: BLPOP when result key is created by SORT..STORE (20 ms) -[ok]: BLMPOP_LEFT when new key is moved into place (26 ms) -[ok]: BLMPOP_LEFT when result key is created by SORT..STORE (17 ms) +[ok]: BRPOPLPUSH with multiple blocked clients (51 ms) +[ok]: BLMPOP with multiple blocked clients (107 ms) +[ok]: Linked LMOVEs (56 ms) +[ok]: Circular BRPOPLPUSH (50 ms) +[ok]: Self-referential BRPOPLPUSH (21 ms) +[ok]: BRPOPLPUSH inside a transaction (1 ms) +[ok]: PUSH resulting from BRPOPLPUSH affect WATCH (54 ms) +[ok]: BRPOPLPUSH does not affect WATCH while still blocked (158 ms) +[ok]: BRPOPLPUSH timeout (1040 ms) +[ok]: SWAPDB awakes blocked client (57 ms) +[ok]: SWAPDB wants to wake blocked client, but the key already expired (181 ms) +[ok]: MULTI + LPUSH + EXPIRE + DEBUG SLEEP on blocked client, key already expired (328 ms) +[ok]: BLPOP unblock but the key is expired and then block again - reprocessing command (1071 ms) +[ok]: BLPOP when new key is moved into place (29 ms) +[ok]: BLPOP when result key is created by SORT..STORE (28 ms) +[ok]: BLMPOP_LEFT when new key is moved into place (134 ms) +[ok]: BLMPOP_LEFT when result key is created by SORT..STORE (27 ms) [ok]: BLPOP: timeout value out of range (0 ms) -[ok]: BLPOP: with single empty list argument (23 ms) -[ok]: BLPOP: with negative timeout (23 ms) -[ok]: BLPOP: with non-integer timeout (24 ms) -[ok]: BLPOP: with zero timeout should block indefinitely (20 ms) -[ok]: BLPOP: with 0.001 timeout should not block indefinitely (31 ms) +[ok]: BLPOP: with single empty list argument (32 ms) +[ok]: BLPOP: with negative timeout (36 ms) +[ok]: BLPOP: with non-integer timeout (35 ms) +[ok]: BLPOP: with zero timeout should block indefinitely (28 ms) +[ok]: BLPOP: with 0.001 timeout should not block indefinitely (49 ms) [ok]: BLPOP: second argument is not a list (21 ms) -[ok]: BLPOP: timeout (1083 ms) -[ok]: BLPOP: arguments are empty (24 ms) -[ok]: BRPOP: with single empty list argument (20 ms) -[ok]: BRPOP: with negative timeout (16 ms) -[ok]: BRPOP: with non-integer timeout (23 ms) -[ok]: BRPOP: with zero timeout should block indefinitely (16 ms) -[ok]: BRPOP: with 0.001 timeout should not block indefinitely (37 ms) -[ok]: BRPOP: second argument is not a list (19 ms) -[ok]: BRPOP: timeout (1049 ms) -[ok]: BRPOP: arguments are empty (26 ms) -[ok]: BLMPOP_LEFT: with single empty list argument (19 ms) -[ok]: BLMPOP_LEFT: with negative timeout (16 ms) +[ok]: BLPOP: timeout (1110 ms) +[ok]: BLPOP: arguments are empty (139 ms) +[ok]: BRPOP: with single empty list argument (25 ms) +[ok]: BRPOP: with negative timeout (12 ms) +[ok]: BRPOP: with non-integer timeout (13 ms) +[ok]: BRPOP: with zero timeout should block indefinitely (12 ms) +[ok]: BRPOP: with 0.001 timeout should not block indefinitely (36 ms) +[ok]: BRPOP: second argument is not a list (28 ms) +[ok]: BRPOP: timeout (1052 ms) +[ok]: BRPOP: arguments are empty (30 ms) +[ok]: BLMPOP_LEFT: with single empty list argument (29 ms) +[ok]: BLMPOP_LEFT: with negative timeout (19 ms) [ok]: BLMPOP_LEFT: with non-integer timeout (20 ms) [ok]: BLMPOP_LEFT: with zero timeout should block indefinitely (20 ms) -[ok]: BLMPOP_LEFT: with 0.001 timeout should not block indefinitely (42 ms) -[ok]: BLMPOP_LEFT: second argument is not a list (24 ms) -[ok]: BLMPOP_LEFT: timeout (1044 ms) -[ok]: BLMPOP_LEFT: arguments are empty (25 ms) -[ok]: BLMPOP_RIGHT: with single empty list argument (17 ms) -[ok]: BLMPOP_RIGHT: with negative timeout (18 ms) -[ok]: BLMPOP_RIGHT: with non-integer timeout (24 ms) -[ok]: BLMPOP_RIGHT: with zero timeout should block indefinitely (17 ms) -[ok]: BLMPOP_RIGHT: with 0.001 timeout should not block indefinitely (38 ms) -[ok]: BLMPOP_RIGHT: second argument is not a list (20 ms) -[ok]: BLMPOP_RIGHT: timeout (1046 ms) -[ok]: BLMPOP_RIGHT: arguments are empty (21 ms) -[ok]: BLPOP inside a transaction (1 ms) -[ok]: BLMPOP_LEFT inside a transaction (9 ms) -[ok]: BLMPOP propagate as pop with count command to replica (170 ms) +[ok]: BLMPOP_LEFT: with 0.001 timeout should not block indefinitely (44 ms) +[ok]: BLMPOP_LEFT: second argument is not a list (26 ms) +[ok]: BLMPOP_LEFT: timeout (1028 ms) +[ok]: BLMPOP_LEFT: arguments are empty (130 ms) +[ok]: BLMPOP_RIGHT: with single empty list argument (25 ms) +[ok]: BLMPOP_RIGHT: with negative timeout (28 ms) +[ok]: BLMPOP_RIGHT: with non-integer timeout (47 ms) +[ok]: BLMPOP_RIGHT: with zero timeout should block indefinitely (27 ms) +[ok]: BLMPOP_RIGHT: with 0.001 timeout should not block indefinitely (37 ms) +[ok]: BLMPOP_RIGHT: second argument is not a list (26 ms) +[ok]: BLMPOP_RIGHT: timeout (1106 ms) +[ok]: BLMPOP_RIGHT: arguments are empty (20 ms) +[ok]: BLPOP inside a transaction (3 ms) +[ok]: BLMPOP_LEFT inside a transaction (1 ms) +[ok]: BLMPOP propagate as pop with count command to replica (183 ms) [ok]: LPUSHX, RPUSHX - generic (1 ms) -[ok]: LPUSHX, RPUSHX - quicklist (46 ms) +[ok]: LPUSHX, RPUSHX - quicklist (47 ms) [ok]: LINSERT - quicklist (49 ms) [ok]: LPUSHX, RPUSHX - listpack (1 ms) -[ok]: LINSERT - listpack (7 ms) +[ok]: LINSERT - listpack (5 ms) [ok]: LINSERT raise error on bad syntax (0 ms) [ok]: LINSERT against non-list value error (1 ms) [ok]: LINSERT against non existing key (0 ms) -[ok]: LINDEX consistency test - listpack (121 ms) -[ok]: LINDEX random access - listpack (87 ms) +[ok]: LINDEX consistency test - listpack (102 ms) +[ok]: LINDEX random access - listpack (99 ms) [ok]: Check if list is still ok after a DEBUG RELOAD - listpack (124 ms) -[ok]: LINDEX consistency test - listpack (132 ms) -[ok]: LINDEX random access - listpack (94 ms) -[ok]: Check if list is still ok after a DEBUG RELOAD - listpack (184 ms) +[ok]: LINDEX consistency test - listpack (147 ms) +[ok]: LINDEX random access - listpack (95 ms) +[ok]: Check if list is still ok after a DEBUG RELOAD - listpack (205 ms) [ok]: LINDEX consistency test - quicklist (67 ms) -[ok]: LINDEX random access - quicklist (46 ms) -[ok]: Check if list is still ok after a DEBUG RELOAD - quicklist (91 ms) -[ok]: LINDEX consistency test - quicklist (137 ms) [ok]: LINDEX random access - quicklist (93 ms) -[ok]: Check if list is still ok after a DEBUG RELOAD - quicklist (184 ms) -[ok]: LLEN against non-list value error (1 ms) -[ok]: LLEN against non existing key (0 ms) +[ok]: Check if list is still ok after a DEBUG RELOAD - quicklist (453 ms) +[ok]: LINDEX consistency test - quicklist (785 ms) +[ok]: LINDEX random access - quicklist (436 ms) +[ok]: Check if list is still ok after a DEBUG RELOAD - quicklist (328 ms) +[ok]: LLEN against non-list value error (0 ms) +[ok]: LLEN against non existing key (1 ms) [ok]: LINDEX against non-list value error (0 ms) [ok]: LINDEX against non existing key (1 ms) [ok]: LPUSH against non-list value error (0 ms) [ok]: RPUSH against non-list value error (0 ms) -[ok]: RPOPLPUSH base case - quicklist (47 ms) -[ok]: LMOVE left left base case - quicklist (44 ms) -[ok]: LMOVE left right base case - quicklist (44 ms) -[ok]: LMOVE right left base case - quicklist (52 ms) -[ok]: LMOVE right right base case - quicklist (44 ms) -[ok]: RPOPLPUSH with the same list as src and dst - quicklist (48 ms) -[ok]: LMOVE left left with the same list as src and dst - quicklist (48 ms) +[ok]: RPOPLPUSH base case - quicklist (46 ms) +[ok]: LMOVE left left base case - quicklist (54 ms) +[ok]: LMOVE left right base case - quicklist (46 ms) +[ok]: LMOVE right left base case - quicklist (46 ms) +[ok]: LMOVE right right base case - quicklist (54 ms) +[ok]: RPOPLPUSH with the same list as src and dst - quicklist (45 ms) +[ok]: LMOVE left left with the same list as src and dst - quicklist (50 ms) [ok]: LMOVE left right with the same list as src and dst - quicklist (44 ms) -[ok]: LMOVE right left with the same list as src and dst - quicklist (48 ms) -[ok]: LMOVE right right with the same list as src and dst - quicklist (44 ms) +[ok]: LMOVE right left with the same list as src and dst - quicklist (46 ms) +[ok]: LMOVE right right with the same list as src and dst - quicklist (45 ms) [ok]: RPOPLPUSH with quicklist source and existing target quicklist (92 ms) -[ok]: LMOVE left left with quicklist source and existing target quicklist (88 ms) -[ok]: LMOVE left right with quicklist source and existing target quicklist (91 ms) -[ok]: LMOVE right left with quicklist source and existing target quicklist (88 ms) -[ok]: LMOVE right right with quicklist source and existing target quicklist (92 ms) -[ok]: RPOPLPUSH with quicklist source and existing target listpack (44 ms) -[ok]: LMOVE left left with quicklist source and existing target listpack (47 ms) -[ok]: LMOVE left right with quicklist source and existing target listpack (45 ms) +[ok]: LMOVE left left with quicklist source and existing target quicklist (97 ms) +[ok]: LMOVE left right with quicklist source and existing target quicklist (88 ms) +[ok]: LMOVE right left with quicklist source and existing target quicklist (87 ms) +[ok]: LMOVE right right with quicklist source and existing target quicklist (89 ms) +[ok]: RPOPLPUSH with quicklist source and existing target listpack (56 ms) +[ok]: LMOVE left left with quicklist source and existing target listpack (43 ms) +[ok]: LMOVE left right with quicklist source and existing target listpack (48 ms) [ok]: LMOVE right left with quicklist source and existing target listpack (43 ms) -[ok]: LMOVE right right with quicklist source and existing target listpack (52 ms) -[ok]: RPOPLPUSH base case - listpack (2 ms) -[ok]: LMOVE left left base case - listpack (1 ms) +[ok]: LMOVE right right with quicklist source and existing target listpack (44 ms) +[ok]: RPOPLPUSH base case - listpack (1 ms) +[ok]: LMOVE left left base case - listpack (2 ms) [ok]: LMOVE left right base case - listpack (2 ms) [ok]: LMOVE right left base case - listpack (1 ms) -[ok]: LMOVE right right base case - listpack (1 ms) -[ok]: RPOPLPUSH with the same list as src and dst - listpack (5 ms) +[ok]: LMOVE right right base case - listpack (2 ms) +[ok]: RPOPLPUSH with the same list as src and dst - listpack (1 ms) [ok]: LMOVE left left with the same list as src and dst - listpack (1 ms) [ok]: LMOVE left right with the same list as src and dst - listpack (1 ms) -[ok]: LMOVE right left with the same list as src and dst - listpack (0 ms) +[ok]: LMOVE right left with the same list as src and dst - listpack (1 ms) [ok]: LMOVE right right with the same list as src and dst - listpack (0 ms) -[ok]: RPOPLPUSH with listpack source and existing target quicklist (48 ms) -[ok]: LMOVE left left with listpack source and existing target quicklist (44 ms) -[ok]: LMOVE left right with listpack source and existing target quicklist (48 ms) +[ok]: RPOPLPUSH with listpack source and existing target quicklist (50 ms) +[ok]: LMOVE left left with listpack source and existing target quicklist (50 ms) +[ok]: LMOVE left right with listpack source and existing target quicklist (53 ms) [ok]: LMOVE right left with listpack source and existing target quicklist (44 ms) -[ok]: LMOVE right right with listpack source and existing target quicklist (44 ms) -[ok]: RPOPLPUSH with listpack source and existing target listpack (7 ms) +[ok]: LMOVE right right with listpack source and existing target quicklist (45 ms) +[ok]: RPOPLPUSH with listpack source and existing target listpack (2 ms) [ok]: LMOVE left left with listpack source and existing target listpack (2 ms) [ok]: LMOVE left right with listpack source and existing target listpack (1 ms) [ok]: LMOVE right left with listpack source and existing target listpack (2 ms) [ok]: LMOVE right right with listpack source and existing target listpack (1 ms) [ok]: RPOPLPUSH against non existing key (0 ms) -[ok]: RPOPLPUSH against non list src key (0 ms) -[ok]: RPOPLPUSH against non list dst key - quicklist (45 ms) -[ok]: RPOPLPUSH against non list dst key - listpack (1 ms) +[ok]: RPOPLPUSH against non list src key (1 ms) +[ok]: RPOPLPUSH against non list dst key - quicklist (48 ms) +[ok]: RPOPLPUSH against non list dst key - listpack (2 ms) [ok]: RPOPLPUSH against non existing src key (0 ms) [ok]: Basic LPOP/RPOP/LMPOP - quicklist (90 ms) -[ok]: Basic LPOP/RPOP/LMPOP - listpack (1 ms) -[ok]: LPOP/RPOP/LMPOP against empty list (0 ms) -[ok]: LPOP/RPOP/LMPOP NON-BLOCK or BLOCK against non list value (6 ms) -[ok]: Mass RPOP/LPOP - listpack (81 ms) -[ok]: Mass RPOP/LPOP - listpack (168 ms) -[ok]: LMPOP with illegal argument (2 ms) -[ok]: LMPOP single existing list - quicklist (140 ms) -[ok]: LMPOP multiple existing lists - quicklist (179 ms) -[ok]: LMPOP single existing list - listpack (11 ms) -[ok]: LMPOP multiple existing lists - listpack (4 ms) -[ok]: LMPOP propagate as pop with count command to replica (125 ms) -[ok]: LRANGE basics - quicklist (44 ms) -[ok]: LRANGE inverted indexes - quicklist (47 ms) -[ok]: LRANGE out of range indexes including the full list - quicklist (44 ms) +[ok]: Basic LPOP/RPOP/LMPOP - listpack (2 ms) +[ok]: LPOP/RPOP/LMPOP against empty list (1 ms) +[ok]: LPOP/RPOP/LMPOP NON-BLOCK or BLOCK against non list value (1 ms) +[ok]: Mass RPOP/LPOP - listpack (57 ms) +[ok]: Mass RPOP/LPOP - listpack (93 ms) +[ok]: LMPOP with illegal argument (1 ms) +[ok]: LMPOP single existing list - quicklist (144 ms) +[ok]: LMPOP multiple existing lists - quicklist (192 ms) +[ok]: LMPOP single existing list - listpack (4 ms) +[ok]: LMPOP multiple existing lists - listpack (3 ms) +[ok]: LMPOP propagate as pop with count command to replica (28 ms) +[ok]: LRANGE basics - quicklist (46 ms) +[ok]: LRANGE inverted indexes - quicklist (45 ms) +[ok]: LRANGE out of range indexes including the full list - quicklist (43 ms) [ok]: LRANGE out of range negative end index - quicklist (44 ms) -[ok]: LRANGE basics - listpack (8 ms) -[ok]: LRANGE inverted indexes - listpack (1 ms) +[ok]: LRANGE basics - listpack (3 ms) +[ok]: LRANGE inverted indexes - listpack (2 ms) [ok]: LRANGE out of range indexes including the full list - listpack (1 ms) -[ok]: LRANGE out of range negative end index - listpack (1 ms) +[ok]: LRANGE out of range negative end index - listpack (2 ms) [ok]: LRANGE against non existing key (0 ms) -[ok]: LRANGE with start > end yields an empty array for backward compatibility (1 ms) -[ok]: LTRIM basics - quicklist (551 ms) +[ok]: LRANGE with start > end yields an empty array for backward compatibility (2 ms) +[ok]: LTRIM basics - quicklist (584 ms) [ok]: LTRIM out of range negative end index - quicklist (95 ms) -[ok]: LSET - quicklist (45 ms) +[ok]: LSET - quicklist (58 ms) [ok]: LSET out of range index - quicklist (0 ms) -[ok]: LTRIM basics - listpack (19 ms) -[ok]: LTRIM out of range negative end index - listpack (8 ms) +[ok]: LTRIM basics - listpack (12 ms) +[ok]: LTRIM out of range negative end index - listpack (2 ms) [ok]: LSET - listpack (1 ms) [ok]: LSET out of range index - listpack (0 ms) [ok]: LSET against non existing key (0 ms) -[ok]: LSET against non list value (1 ms) -[ok]: LREM remove all the occurrences - quicklist (44 ms) +[ok]: LSET against non list value (0 ms) +[ok]: LREM remove all the occurrences - quicklist (42 ms) [ok]: LREM remove the first occurrence - quicklist (0 ms) -[ok]: LREM remove non existing element - quicklist (1 ms) -[ok]: LREM starting from tail with negative count - quicklist (42 ms) +[ok]: LREM remove non existing element - quicklist (0 ms) +[ok]: LREM starting from tail with negative count - quicklist (48 ms) [ok]: LREM starting from tail with negative count (2) - quicklist (0 ms) -[ok]: LREM deleting objects that may be int encoded - quicklist (55 ms) -[ok]: LREM remove all the occurrences - listpack (2 ms) +[ok]: LREM deleting objects that may be int encoded - quicklist (44 ms) +[ok]: LREM remove all the occurrences - listpack (1 ms) [ok]: LREM remove the first occurrence - listpack (0 ms) -[ok]: LREM remove non existing element - listpack (1 ms) +[ok]: LREM remove non existing element - listpack (0 ms) [ok]: LREM starting from tail with negative count - listpack (1 ms) [ok]: LREM starting from tail with negative count (2) - listpack (0 ms) [ok]: LREM deleting objects that may be int encoded - listpack (1 ms) -[ok]: Regression for bug 593 - chaining BRPOPLPUSH with other blocking cmds (45 ms) -[ok]: BLPOP/BLMOVE should increase dirty (19 ms) -[ok]: client unblock tests (20 ms) -[ok]: client unblock tests (26 ms) -[ok]: List listpack -> quicklist encoding conversion (8 ms) -[ok]: List listpack -> quicklist encoding conversion (189 ms) -[ok]: List quicklist -> listpack encoding conversion (233 ms) -[ok]: List encoding conversion when RDB loading (5 ms) -[ok]: List invalid list-max-listpack-size config (49 ms) -[ok]: List of various encodings (92 ms) -[ok]: List of various encodings - sanitize dump (6 ms) -[ok]: Unblock fairness is kept while pipelining (52 ms) -[ok]: Unblock fairness is kept during nested unblock (67 ms) -[ok]: Blocking command accounted only once in commandstats (25 ms) -[ok]: Blocking command accounted only once in commandstats after timeout (23 ms) -[ok]: Command being unblocked cause another command to get unblocked execution order test (145 ms) +[ok]: Regression for bug 593 - chaining BRPOPLPUSH with other blocking cmds (39 ms) +[ok]: BLPOP/BLMOVE should increase dirty (27 ms) +[ok]: client unblock tests (15 ms) +[ok]: client unblock tests (122 ms) +[ok]: List listpack -> quicklist encoding conversion (3 ms) +[ok]: List listpack -> quicklist encoding conversion (187 ms) +[ok]: List quicklist -> listpack encoding conversion (228 ms) +[ok]: List encoding conversion when RDB loading (3 ms) +[ok]: List invalid list-max-listpack-size config (45 ms) +[ok]: List of various encodings (94 ms) +[ok]: List of various encodings - sanitize dump (1 ms) +[ok]: Unblock fairness is kept while pipelining (25 ms) +[ok]: Unblock fairness is kept during nested unblock (48 ms) +[ok]: Blocking command accounted only once in commandstats (27 ms) +[ok]: Blocking command accounted only once in commandstats after timeout (43 ms) +[ok]: Command being unblocked cause another command to get unblocked execution order test (93 ms) [ok]: Blocking timeout following PAUSE should honor the timeout (1031 ms) -[ok]: CLIENT NO-TOUCH with BRPOP and RPUSH regression test (46 ms) -[50/129 done]: unit/type/list (20 seconds) +[ok]: CLIENT NO-TOUCH with BRPOP and RPUSH regression test (38 ms) +[50/129 done]: unit/type/list (22 seconds) Testing unit/type/list-3 === (list ziplist) Starting server on 127.0.0.1:21573 ok [ok]: Explicit regression for a list bug (1 ms) -[ok]: Regression for quicklist #3343 bug (135 ms) -[ok]: Check compression with recompress (95 ms) -[ok]: Crash due to wrongly recompress after lrem (223 ms) -[ok]: LINSERT correctly recompress full quicklistNode after inserting a element before it (45 ms) -[ok]: LINSERT correctly recompress full quicklistNode after inserting a element after it (48 ms) -[ok]: Stress tester for #3343-alike bugs comp: 2 (10172 ms) -[ok]: Stress tester for #3343-alike bugs comp: 1 (9096 ms) -[ok]: Stress tester for #3343-alike bugs comp: 0 (8773 ms) -[ok]: ziplist implementation: value encoding and backlink (10050 ms) -[ok]: ziplist implementation: encoding stress testing (8946 ms) -[51/129 done]: unit/type/list-3 (48 seconds) +[ok]: Regression for quicklist #3343 bug (139 ms) +[ok]: Check compression with recompress (88 ms) +[ok]: Crash due to wrongly recompress after lrem (229 ms) +[ok]: LINSERT correctly recompress full quicklistNode after inserting a element before it (44 ms) +[ok]: LINSERT correctly recompress full quicklistNode after inserting a element after it (43 ms) +[ok]: Stress tester for #3343-alike bugs comp: 2 (9659 ms) +[ok]: Stress tester for #3343-alike bugs comp: 1 (9007 ms) +[ok]: Stress tester for #3343-alike bugs comp: 0 (8237 ms) +[ok]: ziplist implementation: value encoding and backlink (11154 ms) +[ok]: ziplist implementation: encoding stress testing (11297 ms) +[51/129 done]: unit/type/list-3 (50 seconds) Testing unit/type/list-2 === (list) Starting server on 127.0.0.1:21575 ok -[ok]: LTRIM stress testing - quicklist (7222 ms) -[ok]: LTRIM stress testing - listpack (6880 ms) -[52/129 done]: unit/type/list-2 (14 seconds) +[ok]: LTRIM stress testing - quicklist (10549 ms) +[ok]: LTRIM stress testing - listpack (9696 ms) +[52/129 done]: unit/type/list-2 (21 seconds) Testing unit/type/incr === (incr) Starting server on 127.0.0.1:21577 ok [ok]: INCR against non existing key (1 ms) [ok]: INCR against key created by incr itself (0 ms) [ok]: DECR against key created by incr (0 ms) -[ok]: DECR against key is not exist and incr (1 ms) +[ok]: DECR against key is not exist and incr (0 ms) [ok]: INCR against key originally set with SET (0 ms) -[ok]: INCR over 32bit value (1 ms) +[ok]: INCR over 32bit value (0 ms) [ok]: INCRBY over 32bit value with over 32bit increment (0 ms) -[ok]: INCR fails against key with spaces (left) (0 ms) -[ok]: INCR fails against key with spaces (right) (1 ms) +[ok]: INCR fails against key with spaces (left) (1 ms) +[ok]: INCR fails against key with spaces (right) (0 ms) [ok]: INCR fails against key with spaces (both) (0 ms) [ok]: DECRBY negation overflow (1 ms) [ok]: INCR fails against a key holding a list (0 ms) -[ok]: DECRBY over 32bit value with over 32bit increment, negative res (3 ms) +[ok]: DECRBY over 32bit value with over 32bit increment, negative res (0 ms) [ok]: DECRBY against key is not exist (1 ms) -[ok]: INCR can modify objects in-place (1 ms) -[ok]: INCRBYFLOAT against non existing key (1 ms) -[ok]: INCRBYFLOAT against key originally set with SET (0 ms) +[ok]: INCR can modify objects in-place (0 ms) +[ok]: INCRBYFLOAT against non existing key (7 ms) +[ok]: INCRBYFLOAT against key originally set with SET (1 ms) [ok]: INCRBYFLOAT over 32bit value (0 ms) -[ok]: INCRBYFLOAT over 32bit value with over 32bit increment (5 ms) -[ok]: INCRBYFLOAT fails against key with spaces (left) (4 ms) -[ok]: INCRBYFLOAT fails against key with spaces (right) (1 ms) +[ok]: INCRBYFLOAT over 32bit value with over 32bit increment (0 ms) +[ok]: INCRBYFLOAT fails against key with spaces (left) (1 ms) +[ok]: INCRBYFLOAT fails against key with spaces (right) (0 ms) [ok]: INCRBYFLOAT fails against key with spaces (both) (0 ms) [ok]: INCRBYFLOAT fails against a key holding a list (1 ms) [ok]: INCRBYFLOAT does not allow NaN or Infinity (0 ms) -[ok]: INCRBYFLOAT decrement (6 ms) -[ok]: string to double with null terminator (1 ms) -[ok]: No negative zero (0 ms) +[ok]: INCRBYFLOAT decrement (0 ms) +[ok]: string to double with null terminator (0 ms) +[ok]: No negative zero (1 ms) [ok]: INCRBY INCRBYFLOAT DECRBY against unhappy path (1 ms) -[ok]: incr operation should update encoding from raw to int (5 ms) -[ok]: decr operation should update encoding from raw to int (5 ms) -[ok]: incrby operation should update encoding from raw to int (1 ms) -[ok]: decrby operation should update encoding from raw to int (2 ms) +[ok]: incr operation should update encoding from raw to int (1 ms) +[ok]: decr operation should update encoding from raw to int (1 ms) +[ok]: incrby operation should update encoding from raw to int (5 ms) +[ok]: decrby operation should update encoding from raw to int (1 ms) [53/129 done]: unit/type/incr (0 seconds) Testing unit/type/hash === (hash) Starting server on 127.0.0.1:21579 ok -[ok]: HSET/HLEN - Small hash creation (4 ms) -[ok]: Is the small hash encoded with a listpack? (1 ms) -[ok]: HRANDFIELD - listpack (26 ms) -[ok]: HRANDFIELD - hashtable (27 ms) +[ok]: HSET/HLEN - Small hash creation (8 ms) +[ok]: Is the small hash encoded with a listpack? (0 ms) +[ok]: HRANDFIELD - listpack (14 ms) +[ok]: HRANDFIELD - hashtable (24 ms) [ok]: HRANDFIELD with RESP3 (1 ms) [ok]: HRANDFIELD count of 0 is handled correctly (0 ms) -[ok]: HRANDFIELD count overflow (0 ms) -[ok]: HRANDFIELD with against non existing key (3 ms) -[ok]: HRANDFIELD count of 0 is handled correctly - emptyarray (0 ms) -[ok]: HRANDFIELD with against non existing key - emptyarray (1 ms) -[ok]: HRANDFIELD with - hashtable (133 ms) -[ok]: HRANDFIELD with - listpack (128 ms) -[ok]: HSET/HLEN - Big hash creation (119 ms) +[ok]: HRANDFIELD count overflow (1 ms) +[ok]: HRANDFIELD with against non existing key (0 ms) +[ok]: HRANDFIELD count of 0 is handled correctly - emptyarray (1 ms) +[ok]: HRANDFIELD with against non existing key - emptyarray (0 ms) +[ok]: HRANDFIELD with - hashtable (196 ms) +[ok]: HRANDFIELD with - listpack (163 ms) +[ok]: HSET/HLEN - Big hash creation (111 ms) [ok]: Is the big hash encoded with an hash table? (0 ms) -[ok]: HGET against the small hash (1 ms) -[ok]: HGET against the big hash (96 ms) +[ok]: HGET against the small hash (0 ms) +[ok]: HGET against the big hash (107 ms) [ok]: HGET against non existing key (1 ms) [ok]: HSET in update and insert mode (1 ms) -[ok]: HSETNX target key missing - small hash (0 ms) +[ok]: HSETNX target key missing - small hash (1 ms) [ok]: HSETNX target key exists - small hash (0 ms) -[ok]: HSETNX target key missing - big hash (1 ms) -[ok]: HSETNX target key exists - big hash (0 ms) +[ok]: HSETNX target key missing - big hash (0 ms) +[ok]: HSETNX target key exists - big hash (1 ms) [ok]: HSET/HMSET wrong number of args (0 ms) [ok]: HMSET - small hash (1 ms) -[ok]: HMSET - big hash (53 ms) -[ok]: HMGET against non existing key and fields (1 ms) +[ok]: HMSET - big hash (54 ms) +[ok]: HMGET against non existing key and fields (6 ms) [ok]: Hash commands against wrong type (2 ms) -[ok]: HMGET - small hash (1 ms) -[ok]: HMGET - big hash (60 ms) -[ok]: HKEYS - small hash (0 ms) -[ok]: HKEYS - big hash (12 ms) +[ok]: HMGET - small hash (0 ms) +[ok]: HMGET - big hash (57 ms) +[ok]: HKEYS - small hash (1 ms) +[ok]: HKEYS - big hash (17 ms) [ok]: HVALS - small hash (0 ms) -[ok]: HVALS - big hash (2 ms) -[ok]: HGETALL - small hash (0 ms) -[ok]: HGETALL - big hash (36 ms) -[ok]: HGETALL against non-existing key (6 ms) -[ok]: HDEL and return value (2 ms) -[ok]: HDEL - more than a single value (0 ms) -[ok]: HDEL - hash becomes empty before deleting all specified fields (1 ms) +[ok]: HVALS - big hash (1 ms) +[ok]: HGETALL - small hash (1 ms) +[ok]: HGETALL - big hash (46 ms) +[ok]: HGETALL against non-existing key (0 ms) +[ok]: HDEL and return value (1 ms) +[ok]: HDEL - more than a single value (4 ms) +[ok]: HDEL - hash becomes empty before deleting all specified fields (4 ms) [ok]: HEXISTS (1 ms) -[ok]: Is a ziplist encoded Hash promoted on big payload? (0 ms) -[ok]: HINCRBY against non existing database key (1 ms) -[ok]: HINCRBY HINCRBYFLOAT against non-integer increment value (0 ms) -[ok]: HINCRBY against non existing hash key (4 ms) +[ok]: Is a ziplist encoded Hash promoted on big payload? (1 ms) +[ok]: HINCRBY against non existing database key (0 ms) +[ok]: HINCRBY HINCRBYFLOAT against non-integer increment value (1 ms) +[ok]: HINCRBY against non existing hash key (0 ms) [ok]: HINCRBY against hash key created by hincrby itself (1 ms) -[ok]: HINCRBY against hash key originally set with HSET (0 ms) -[ok]: HINCRBY over 32bit value (1 ms) -[ok]: HINCRBY over 32bit value with over 32bit increment (0 ms) -[ok]: HINCRBY fails against hash value with spaces (left) (1 ms) -[ok]: HINCRBY fails against hash value with spaces (right) (1 ms) -[ok]: HINCRBY can detect overflows (3 ms) +[ok]: HINCRBY against hash key originally set with HSET (2 ms) +[ok]: HINCRBY over 32bit value (0 ms) +[ok]: HINCRBY over 32bit value with over 32bit increment (1 ms) +[ok]: HINCRBY fails against hash value with spaces (left) (0 ms) +[ok]: HINCRBY fails against hash value with spaces (right) (6 ms) +[ok]: HINCRBY can detect overflows (0 ms) [ok]: HINCRBYFLOAT against non existing database key (0 ms) -[ok]: HINCRBYFLOAT against non existing hash key (1 ms) -[ok]: HINCRBYFLOAT against hash key created by hincrby itself (0 ms) -[ok]: HINCRBYFLOAT against hash key originally set with HSET (1 ms) -[ok]: HINCRBYFLOAT over 32bit value (0 ms) -[ok]: HINCRBYFLOAT over 32bit value with over 32bit increment (6 ms) -[ok]: HINCRBYFLOAT fails against hash value with spaces (left) (0 ms) -[ok]: HINCRBYFLOAT fails against hash value with spaces (right) (1 ms) -[ok]: HINCRBYFLOAT fails against hash value that contains a null-terminator in the middle (0 ms) -[ok]: HSTRLEN against the small hash (1 ms) -[ok]: HSTRLEN against the big hash (132 ms) +[ok]: HINCRBYFLOAT against non existing hash key (0 ms) +[ok]: HINCRBYFLOAT against hash key created by hincrby itself (1 ms) +[ok]: HINCRBYFLOAT against hash key originally set with HSET (0 ms) +[ok]: HINCRBYFLOAT over 32bit value (1 ms) +[ok]: HINCRBYFLOAT over 32bit value with over 32bit increment (0 ms) +[ok]: HINCRBYFLOAT fails against hash value with spaces (left) (5 ms) +[ok]: HINCRBYFLOAT fails against hash value with spaces (right) (0 ms) +[ok]: HINCRBYFLOAT fails against hash value that contains a null-terminator in the middle (1 ms) +[ok]: HSTRLEN against the small hash (0 ms) +[ok]: HSTRLEN against the big hash (166 ms) [ok]: HSTRLEN against non existing field (0 ms) -[ok]: HSTRLEN corner cases (3 ms) +[ok]: HSTRLEN corner cases (7 ms) [ok]: HINCRBYFLOAT over hash-max-listpack-value encoded with a listpack (2 ms) -[ok]: Hash ziplist regression test for large keys (0 ms) -[ok]: Hash fuzzing #1 - 10 fields (30 ms) -[ok]: Hash fuzzing #2 - 10 fields (23 ms) -[ok]: Hash fuzzing #1 - 512 fields (1365 ms) -[ok]: Hash fuzzing #2 - 512 fields (1020 ms) -[ok]: Stress test the hash ziplist -> hashtable encoding conversion (1464 ms) -[ok]: Hash ziplist of various encodings (97 ms) -[ok]: Hash ziplist of various encodings - sanitize dump (2 ms) -[ok]: HINCRBYFLOAT does not allow NaN or Infinity (1 ms) -[54/129 done]: unit/type/hash (5 seconds) +[ok]: Hash ziplist regression test for large keys (7 ms) +[ok]: Hash fuzzing #1 - 10 fields (40 ms) +[ok]: Hash fuzzing #2 - 10 fields (20 ms) +[ok]: Hash fuzzing #1 - 512 fields (1872 ms) +[ok]: Hash fuzzing #2 - 512 fields (1316 ms) +[ok]: Stress test the hash ziplist -> hashtable encoding conversion (1370 ms) +[ok]: Hash ziplist of various encodings (91 ms) +[ok]: Hash ziplist of various encodings - sanitize dump (3 ms) +[ok]: HINCRBYFLOAT does not allow NaN or Infinity (0 ms) +[54/129 done]: unit/type/hash (6 seconds) Testing unit/cluster/update-msg === (external:skip cluster) Starting server on 127.0.0.1:21581 ok === (external:skip cluster) Starting server on 127.0.0.1:21583 ok @@ -4350,112 +4387,112 @@ === (external:skip cluster) Starting server on 127.0.0.1:21595 ok === (external:skip cluster) Starting server on 127.0.0.1:21597 ok === (external:skip cluster) Starting server on 127.0.0.1:21599 ok -[ok]: Cluster is up (338 ms) -[ok]: Cluster is writable (204 ms) -[ok]: Instance #5 is a slave (0 ms) +[ok]: Cluster is up (469 ms) +[ok]: Cluster is writable (403 ms) +[ok]: Instance #5 is a slave (1 ms) [ok]: Instance #5 synced with the master (0 ms) -[ok]: Killing one master node (25 ms) -[ok]: Wait for failover (4258 ms) -[ok]: Cluster should eventually be up again (295 ms) -[ok]: Cluster is writable (289 ms) -[ok]: Instance #5 is now a master (3 ms) -[ok]: Killing the new master #5 (33 ms) -[ok]: Cluster should be down now (3485 ms) -[ok]: Restarting the old master node (4 ms) -[ok]: Instance #0 gets converted into a slave (254 ms) +[ok]: Killing one master node (58 ms) +[ok]: Wait for failover (4322 ms) +[ok]: Cluster should eventually be up again (445 ms) +[ok]: Cluster is writable (320 ms) +[ok]: Instance #5 is now a master (1 ms) +[ok]: Killing the new master #5 (39 ms) +[ok]: Cluster should be down now (3586 ms) +[ok]: Restarting the old master node (2 ms) +[ok]: Instance #0 gets converted into a slave (243 ms) [ok]: Restarting the new master node (5 ms) -[ok]: Cluster is up again (1508 ms) -[55/129 done]: unit/cluster/update-msg (24 seconds) +[ok]: Cluster is up again (1258 ms) +[55/129 done]: unit/cluster/update-msg (25 seconds) Testing unit/cluster/transactions-on-replica === (external:skip cluster) Starting server on 127.0.0.1:21601 ok === (external:skip cluster) Starting server on 127.0.0.1:21603 ok -[ok]: Cluster should start ok (62 ms) -[ok]: Can't read from replica without READONLY (1 ms) +[ok]: Cluster should start ok (96 ms) +[ok]: Can't read from replica without READONLY (2 ms) [ok]: Can't read from replica after READWRITE (0 ms) [ok]: Can read from replica after READONLY (1 ms) -[ok]: Can perform HSET primary and HGET from replica (5 ms) -[ok]: Can MULTI-EXEC transaction of HGET operations from replica (1 ms) -[ok]: MULTI-EXEC with write operations is MOVED (1 ms) -[ok]: write command is QUEUED, then EXEC should be MOVED after failover (2036 ms) -[ok]: read-only blocking operations from replica (42 ms) -[ok]: reply MOVED when eval from replica for update (0 ms) -[56/129 done]: unit/cluster/transactions-on-replica (14 seconds) +[ok]: Can perform HSET primary and HGET from replica (4 ms) +[ok]: Can MULTI-EXEC transaction of HGET operations from replica (0 ms) +[ok]: MULTI-EXEC with write operations is MOVED (0 ms) +[ok]: write command is QUEUED, then EXEC should be MOVED after failover (2037 ms) +[ok]: read-only blocking operations from replica (24 ms) +[ok]: reply MOVED when eval from replica for update (1 ms) +[56/129 done]: unit/cluster/transactions-on-replica (13 seconds) Testing unit/cluster/slot-stats === (external:skip cluster) Starting server on 127.0.0.1:21605 ok -[ok]: CLUSTER SLOT-STATS cpu-usec reset upon CONFIG RESETSTAT. (2444 ms) -[ok]: CLUSTER SLOT-STATS cpu-usec reset upon slot migration. (5468 ms) -[ok]: CLUSTER SLOT-STATS cpu-usec for non-slot specific commands. (2475 ms) -[ok]: CLUSTER SLOT-STATS cpu-usec for slot specific commands. (2066 ms) -[ok]: CLUSTER SLOT-STATS cpu-usec for blocking commands, unblocked on keyspace update. (4775 ms) -[ok]: CLUSTER SLOT-STATS cpu-usec for blocking commands, unblocked on timeout. (3151 ms) -[ok]: CLUSTER SLOT-STATS cpu-usec for transactions. (7889 ms) -[ok]: CLUSTER SLOT-STATS cpu-usec for lua-scripts, without cross-slot keys. (2920 ms) -[ok]: CLUSTER SLOT-STATS cpu-usec for lua-scripts, with cross-slot keys. (3332 ms) -[ok]: CLUSTER SLOT-STATS cpu-usec for functions, without cross-slot keys. (2872 ms) -[ok]: CLUSTER SLOT-STATS cpu-usec for functions, with cross-slot keys. (3409 ms) +[ok]: CLUSTER SLOT-STATS cpu-usec reset upon CONFIG RESETSTAT. (3036 ms) +[ok]: CLUSTER SLOT-STATS cpu-usec reset upon slot migration. (6938 ms) +[ok]: CLUSTER SLOT-STATS cpu-usec for non-slot specific commands. (4038 ms) +[ok]: CLUSTER SLOT-STATS cpu-usec for slot specific commands. (3709 ms) +[ok]: CLUSTER SLOT-STATS cpu-usec for blocking commands, unblocked on keyspace update. (8830 ms) +[ok]: CLUSTER SLOT-STATS cpu-usec for blocking commands, unblocked on timeout. (3980 ms) +[ok]: CLUSTER SLOT-STATS cpu-usec for transactions. (4128 ms) +[ok]: CLUSTER SLOT-STATS cpu-usec for lua-scripts, without cross-slot keys. (1668 ms) +[ok]: CLUSTER SLOT-STATS cpu-usec for lua-scripts, with cross-slot keys. (2187 ms) +[ok]: CLUSTER SLOT-STATS cpu-usec for functions, without cross-slot keys. (1623 ms) +[ok]: CLUSTER SLOT-STATS cpu-usec for functions, with cross-slot keys. (2262 ms) === (external:skip cluster) Starting server on 127.0.0.1:21607 ok -[ok]: CLUSTER SLOT-STATS network-bytes-in, multi bulk buffer processing. (2605 ms) -[ok]: CLUSTER SLOT-STATS network-bytes-in, in-line buffer processing. (2586 ms) -[ok]: CLUSTER SLOT-STATS network-bytes-in, blocking command. (4482 ms) -[ok]: CLUSTER SLOT-STATS network-bytes-in, multi-exec transaction. (2320 ms) -[ok]: CLUSTER SLOT-STATS network-bytes-in, non slot specific command. (2934 ms) -[ok]: CLUSTER SLOT-STATS network-bytes-in, pub/sub. (4365 ms) +[ok]: CLUSTER SLOT-STATS network-bytes-in, multi bulk buffer processing. (2467 ms) +[ok]: CLUSTER SLOT-STATS network-bytes-in, in-line buffer processing. (1906 ms) +[ok]: CLUSTER SLOT-STATS network-bytes-in, blocking command. (4392 ms) +[ok]: CLUSTER SLOT-STATS network-bytes-in, multi-exec transaction. (2255 ms) +[ok]: CLUSTER SLOT-STATS network-bytes-in, non slot specific command. (1572 ms) +[ok]: CLUSTER SLOT-STATS network-bytes-in, pub/sub. (2199 ms) === (external:skip cluster) Starting server on 127.0.0.1:21609 ok === (external:skip cluster) Starting server on 127.0.0.1:21611 ok -[ok]: CLUSTER SLOT-STATS network-bytes-in, sharded pub/sub. (6652 ms) +[ok]: CLUSTER SLOT-STATS network-bytes-in, sharded pub/sub. (3903 ms) === (external:skip cluster) Starting server on 127.0.0.1:21613 ok -[ok]: CLUSTER SLOT-STATS network-bytes-out, for non-slot specific commands. (2108 ms) -[ok]: CLUSTER SLOT-STATS network-bytes-out, for slot specific commands. (2433 ms) -[ok]: CLUSTER SLOT-STATS network-bytes-out, blocking commands. (4579 ms) +[ok]: CLUSTER SLOT-STATS network-bytes-out, for non-slot specific commands. (1634 ms) +[ok]: CLUSTER SLOT-STATS network-bytes-out, for slot specific commands. (2258 ms) +[ok]: CLUSTER SLOT-STATS network-bytes-out, blocking commands. (4557 ms) === (external:skip cluster) Starting server on 127.0.0.1:21615 ok === (external:skip cluster) Starting server on 127.0.0.1:21617 ok -[ok]: CLUSTER SLOT-STATS network-bytes-out, replication stream egress. (2174 ms) +[ok]: CLUSTER SLOT-STATS network-bytes-out, replication stream egress. (2904 ms) === (external:skip cluster) Starting server on 127.0.0.1:21619 ok === (external:skip cluster) Starting server on 127.0.0.1:21621 ok -[ok]: CLUSTER SLOT-STATS network-bytes-out, sharded pub/sub, single channel. (5425 ms) -[ok]: CLUSTER SLOT-STATS network-bytes-out, sharded pub/sub, cross-slot channels. (6292 ms) +[ok]: CLUSTER SLOT-STATS network-bytes-out, sharded pub/sub, single channel. (3757 ms) +[ok]: CLUSTER SLOT-STATS network-bytes-out, sharded pub/sub, cross-slot channels. (3934 ms) === (external:skip cluster) Starting server on 127.0.0.1:21623 ok -[ok]: CLUSTER SLOT-STATS contains default value upon valkey-server startup (2219 ms) -[ok]: CLUSTER SLOT-STATS contains correct metrics upon key introduction (2491 ms) -[ok]: CLUSTER SLOT-STATS contains correct metrics upon key mutation (3144 ms) -[ok]: CLUSTER SLOT-STATS contains correct metrics upon key deletion (2489 ms) -[ok]: CLUSTER SLOT-STATS slot visibility based on slot ownership changes (4718 ms) +[ok]: CLUSTER SLOT-STATS contains default value upon valkey-server startup (1696 ms) +[ok]: CLUSTER SLOT-STATS contains correct metrics upon key introduction (2718 ms) +[ok]: CLUSTER SLOT-STATS contains correct metrics upon key mutation (3733 ms) +[ok]: CLUSTER SLOT-STATS contains correct metrics upon key deletion (2441 ms) +[ok]: CLUSTER SLOT-STATS slot visibility based on slot ownership changes (3771 ms) === (external:skip cluster) Starting server on 127.0.0.1:21625 ok [ok]: CLUSTER SLOT-STATS SLOTSRANGE all slots present (1 ms) -[ok]: CLUSTER SLOT-STATS SLOTSRANGE some slots missing (1 ms) +[ok]: CLUSTER SLOT-STATS SLOTSRANGE some slots missing (0 ms) === (external:skip cluster) Starting server on 127.0.0.1:21627 ok -[ok]: CLUSTER SLOT-STATS ORDERBY DESC correct ordering (8847 ms) -[ok]: CLUSTER SLOT-STATS ORDERBY ASC correct ordering (9397 ms) -[ok]: CLUSTER SLOT-STATS ORDERBY LIMIT correct response pagination, where limit is less than number of assigned slots (10 ms) -[ok]: CLUSTER SLOT-STATS ORDERBY LIMIT correct response pagination, where limit is greater than number of assigned slots (3 ms) +[ok]: CLUSTER SLOT-STATS ORDERBY DESC correct ordering (8532 ms) +[ok]: CLUSTER SLOT-STATS ORDERBY ASC correct ordering (10334 ms) +[ok]: CLUSTER SLOT-STATS ORDERBY LIMIT correct response pagination, where limit is less than number of assigned slots (11 ms) +[ok]: CLUSTER SLOT-STATS ORDERBY LIMIT correct response pagination, where limit is greater than number of assigned slots (4 ms) [ok]: CLUSTER SLOT-STATS ORDERBY arg sanity check. (1 ms) === (external:skip cluster) Starting server on 127.0.0.1:21629 ok === (external:skip cluster) Starting server on 127.0.0.1:21631 ok -[ok]: CLUSTER SLOT-STATS metrics replication for new keys (4483 ms) -[ok]: CLUSTER SLOT-STATS metrics replication for existing keys (4605 ms) -[ok]: CLUSTER SLOT-STATS metrics replication for deleting keys (4835 ms) -[57/129 done]: unit/cluster/slot-stats (194 seconds) +[ok]: CLUSTER SLOT-STATS metrics replication for new keys (3911 ms) +[ok]: CLUSTER SLOT-STATS metrics replication for existing keys (3874 ms) +[ok]: CLUSTER SLOT-STATS metrics replication for deleting keys (7620 ms) +[57/129 done]: unit/cluster/slot-stats (186 seconds) Testing unit/cluster/slot-ownership === (external:skip cluster) Starting server on 127.0.0.1:21633 ok === (external:skip cluster) Starting server on 127.0.0.1:21635 ok === (external:skip cluster) Starting server on 127.0.0.1:21637 ok === (external:skip cluster) Starting server on 127.0.0.1:21639 ok -[ok]: Verify that slot ownership transfer through gossip propagates deletes to replicas (125 ms) +[ok]: Verify that slot ownership transfer through gossip propagates deletes to replicas (122 ms) === (external:skip cluster) Starting server on 127.0.0.1:21641 ok === (external:skip cluster) Starting server on 127.0.0.1:21643 ok === (external:skip cluster) Starting server on 127.0.0.1:21645 ok === (external:skip cluster) Starting server on 127.0.0.1:21647 ok -[ok]: Primary lost a slot during the shutdown waiting (4520 ms) +[ok]: Primary lost a slot during the shutdown waiting (4552 ms) === (external:skip cluster) Starting server on 127.0.0.1:21649 ok === (external:skip cluster) Starting server on 127.0.0.1:21651 ok === (external:skip cluster) Starting server on 127.0.0.1:21653 ok === (external:skip cluster) Starting server on 127.0.0.1:21655 ok -[ok]: Primary lost a slot during the manual failover pausing (90 ms) +[ok]: Primary lost a slot during the manual failover pausing (19 ms) === (external:skip cluster) Starting server on 127.0.0.1:21657 ok === (external:skip cluster) Starting server on 127.0.0.1:21659 ok === (external:skip cluster) Starting server on 127.0.0.1:21661 ok === (external:skip cluster) Starting server on 127.0.0.1:21663 ok -[ok]: Primary lost a slot during the client pause command (52 ms) +[ok]: Primary lost a slot during the client pause command (76 ms) [58/129 done]: unit/cluster/slot-ownership (50 seconds) Testing unit/cluster/slot-migration === (external:skip cluster) Starting server on 127.0.0.1:21665 ok @@ -4464,31 +4501,31 @@ === (external:skip cluster) Starting server on 127.0.0.1:21671 ok === (external:skip cluster) Starting server on 127.0.0.1:21673 ok === (external:skip cluster) Starting server on 127.0.0.1:21675 ok -[ok]: Slot migration states are replicated (5 ms) -[ok]: Migration target is auto-updated after failover in target shard (3318 ms) -[ok]: Migration source is auto-updated after failover in source shard (3356 ms) -[ok]: Replica redirects key access in migrating slots (5 ms) +[ok]: Slot migration states are replicated (10 ms) +[ok]: Migration target is auto-updated after failover in target shard (3305 ms) +[ok]: Migration source is auto-updated after failover in source shard (3316 ms) +[ok]: Replica redirects key access in migrating slots (2 ms) [ok]: Replica of migrating node returns ASK redirect after READONLY (3 ms) [ok]: Replica of migrating node returns TRYAGAIN after READONLY (3 ms) -[ok]: Replica of importing node returns TRYAGAIN after READONLY and ASKING (8 ms) -[ok]: New replica inherits migrating slot (415 ms) -[ok]: New replica inherits importing slot (377 ms) +[ok]: Replica of importing node returns TRYAGAIN after READONLY and ASKING (3 ms) +[ok]: New replica inherits migrating slot (500 ms) +[ok]: New replica inherits importing slot (375 ms) === (external:skip cluster) Starting server on 127.0.0.1:21677 ok === (external:skip cluster) Starting server on 127.0.0.1:21679 ok === (external:skip cluster) Starting server on 127.0.0.1:21681 ok === (external:skip cluster) Starting server on 127.0.0.1:21683 ok === (external:skip cluster) Starting server on 127.0.0.1:21685 ok === (external:skip cluster) Starting server on 127.0.0.1:21687 ok -[ok]: Multiple slot migration states are replicated (10 ms) -[ok]: New replica inherits multiple migrating slots (488 ms) -[ok]: Slot finalization succeeds on both primary and replicas (8 ms) +[ok]: Multiple slot migration states are replicated (12 ms) +[ok]: New replica inherits multiple migrating slots (477 ms) +[ok]: Slot finalization succeeds on both primary and replicas (6 ms) === (external:skip cluster) Starting server on 127.0.0.1:21689 ok === (external:skip cluster) Starting server on 127.0.0.1:21691 ok === (external:skip cluster) Starting server on 127.0.0.1:21693 ok === (external:skip cluster) Starting server on 127.0.0.1:21695 ok === (external:skip cluster) Starting server on 127.0.0.1:21697 ok === (external:skip cluster) Starting server on 127.0.0.1:21699 ok -[ok]: Slot is auto-claimed by target after source relinquishes ownership (1008 ms) +[ok]: Slot is auto-claimed by target after source relinquishes ownership (1011 ms) === (external:skip cluster) Starting server on 127.0.0.1:21701 ok === (external:skip cluster) Starting server on 127.0.0.1:21703 ok === (external:skip cluster) Starting server on 127.0.0.1:21705 ok @@ -4502,7 +4539,7 @@ === (external:skip cluster) Starting server on 127.0.0.1:21719 ok === (external:skip cluster) Starting server on 127.0.0.1:21721 ok === (external:skip cluster) Starting server on 127.0.0.1:21723 ok -[ok]: CLUSTER SETSLOT with an explicit timeout (3042 ms) +[ok]: CLUSTER SETSLOT with an explicit timeout (3088 ms) [ignore]: Not supported in tls mode === (external:skip cluster) Starting server on 127.0.0.1:21725 ok === (external:skip cluster) Starting server on 127.0.0.1:21727 ok @@ -4513,15 +4550,15 @@ === (external:skip cluster) Starting server on 127.0.0.1:21737 ok === (external:skip cluster) Starting server on 127.0.0.1:21739 ok === (external:skip cluster) Starting server on 127.0.0.1:21741 ok -[ok]: Slot migration is ok when the replicas are down (131 ms) -[59/129 done]: unit/cluster/slot-migration (85 seconds) +[ok]: Slot migration is ok when the replicas are down (130 ms) +[59/129 done]: unit/cluster/slot-migration (89 seconds) Testing unit/cluster/slot-migration-response === (external:skip cluster) Starting server on 127.0.0.1:21743 ok === (external:skip cluster) Starting server on 127.0.0.1:21745 ok -[ok]: Cluster is up (55 ms) -[ok]: Set many keys in the cluster (2442 ms) -[ok]: Test cluster responses during migration of slot x (1 ms) -[60/129 done]: unit/cluster/slot-migration-response (5 seconds) +[ok]: Cluster is up (50 ms) +[ok]: Set many keys in the cluster (1582 ms) +[ok]: Test cluster responses during migration of slot x (2 ms) +[60/129 done]: unit/cluster/slot-migration-response (4 seconds) Testing unit/cluster/slave-stop-cond === (external:skip cluster) Starting server on 127.0.0.1:21747 ok === (external:skip cluster) Starting server on 127.0.0.1:21749 ok @@ -4533,15 +4570,15 @@ === (external:skip cluster) Starting server on 127.0.0.1:21761 ok === (external:skip cluster) Starting server on 127.0.0.1:21763 ok === (external:skip cluster) Starting server on 127.0.0.1:21765 ok -[ok]: Cluster is up (173 ms) -[ok]: The first master has actually one slave (1 ms) -[ok]: Slaves of #0 is instance #5 as expected (0 ms) +[ok]: Cluster is up (242 ms) +[ok]: The first master has actually one slave (0 ms) +[ok]: Slaves of #0 is instance #5 as expected (1 ms) [ok]: Instance #5 synced with the master (1 ms) -[ok]: Lower the slave validity factor of #5 to the value of 2 (0 ms) -[ok]: Break master-slave link and prevent further reconnections (20037 ms) -[ok]: Slave #5 is reachable and alive (14 ms) +[ok]: Lower the slave validity factor of #5 to the value of 2 (1 ms) +[ok]: Break master-slave link and prevent further reconnections (20027 ms) +[ok]: Slave #5 is reachable and alive (20 ms) [ok]: Slave #5 should not be able to failover (10004 ms) -[ok]: Cluster should be down (276 ms) +[ok]: Cluster should be down (257 ms) [61/129 done]: unit/cluster/slave-stop-cond (43 seconds) Testing unit/cluster/slave-selection === (external:skip cluster) Starting server on 127.0.0.1:21767 ok @@ -4559,16 +4596,16 @@ === (external:skip cluster) Starting server on 127.0.0.1:21791 ok === (external:skip cluster) Starting server on 127.0.0.1:21793 ok === (external:skip cluster) Starting server on 127.0.0.1:21795 ok -[ok]: Cluster is up (346 ms) +[ok]: Cluster is up (358 ms) [ok]: The first master has actually two slaves (1 ms) -[ok]: CLUSTER SLAVES and CLUSTER REPLICAS output is consistent (6 ms) -[ok]: Slaves of #0 are instance #5 and #10 as expected (0 ms) +[ok]: CLUSTER SLAVES and CLUSTER REPLICAS output is consistent (2 ms) +[ok]: Slaves of #0 are instance #5 and #10 as expected (1 ms) [ok]: Instance #5 and #10 synced with the master (1 ms) -[ok]: Slaves are both able to receive and acknowledge writes (101 ms) -[ok]: Write data while slave #10 is paused and can't receive it (10041 ms) -[ok]: Wait for instance #5 (and not #10) to turn into a master (4242 ms) -[ok]: Wait for the node #10 to return alive before ending the test (3 ms) -[ok]: Cluster should eventually be up again (272 ms) +[ok]: Slaves are both able to receive and acknowledge writes (181 ms) +[ok]: Write data while slave #10 is paused and can't receive it (10030 ms) +[ok]: Wait for instance #5 (and not #10) to turn into a master (4204 ms) +[ok]: Wait for the node #10 to return alive before ending the test (1 ms) +[ok]: Cluster should eventually be up again (385 ms) [ok]: Node #10 should eventually replicate node #5 (1 ms) === (external:skip cluster) Starting server on 127.0.0.1:21797 ok === (external:skip cluster) Starting server on 127.0.0.1:21799 ok @@ -4588,33 +4625,33 @@ === (external:skip cluster) Starting server on 127.0.0.1:21827 ok === (external:skip cluster) Starting server on 127.0.0.1:21829 ok === (external:skip cluster) Starting server on 127.0.0.1:21831 ok -[ok]: Cluster is up (313 ms) -[ok]: The first master has actually 5 slaves (1 ms) -[ok]: Slaves of #0 are instance #3, #6, #9, #12 and #15 as expected (1 ms) -[ok]: Instance #3, #6, #9, #12 and #15 synced with the master (1 ms) -[ok]: New Master down consecutively (22848 ms) +[ok]: Cluster is up (491 ms) +[ok]: The first master has actually 5 slaves (0 ms) +[ok]: Slaves of #0 are instance #3, #6, #9, #12 and #15 as expected (2 ms) +[ok]: Instance #3, #6, #9, #12 and #15 synced with the master (3 ms) +[ok]: New Master down consecutively (23217 ms) [62/129 done]: unit/cluster/slave-selection (68 seconds) Testing unit/cluster/shardid-propagation [ignore]: Not supported in tls mode -[63/129 done]: unit/cluster/shardid-propagation (0 seconds) +[63/129 done]: unit/cluster/shardid-propagation (1 seconds) Testing unit/cluster/sharded-pubsub === (external:skip cluster) Starting server on 127.0.0.1:21833 ok === (external:skip cluster) Starting server on 127.0.0.1:21835 ok -[ok]: Sharded pubsub publish behavior within multi/exec (1 ms) -[ok]: Sharded pubsub within multi/exec with cross slot operation (4 ms) -[ok]: Sharded pubsub publish behavior within multi/exec with read operation on primary (0 ms) -[ok]: Sharded pubsub publish behavior within multi/exec with read operation on replica (0 ms) +[ok]: Sharded pubsub publish behavior within multi/exec (2 ms) +[ok]: Sharded pubsub within multi/exec with cross slot operation (1 ms) +[ok]: Sharded pubsub publish behavior within multi/exec with read operation on primary (1 ms) +[ok]: Sharded pubsub publish behavior within multi/exec with read operation on replica (1 ms) [ok]: Sharded pubsub publish behavior within multi/exec with write operation on primary (1 ms) [ok]: Sharded pubsub publish behavior within multi/exec with write operation on replica (1 ms) -[ok]: SSUBSCRIBE client killed during transaction (16 ms) +[ok]: SSUBSCRIBE client killed during transaction (24 ms) [64/129 done]: unit/cluster/sharded-pubsub (11 seconds) Testing unit/cluster/scripting === (external:skip cluster) Starting server on 127.0.0.1:21837 ok -[ok]: Eval scripts with shebangs and functions default to no cross slots (1 ms) -[ok]: Cross slot commands are allowed by default for eval scripts and with allow-cross-slot-keys flag (8 ms) -[ok]: Cross slot commands are also blocked if they disagree with pre-declared keys (1 ms) -[ok]: Cross slot commands are allowed by default if they disagree with pre-declared keys (0 ms) -[ok]: Function no-cluster flag (0 ms) +[ok]: Eval scripts with shebangs and functions default to no cross slots (2 ms) +[ok]: Cross slot commands are allowed by default for eval scripts and with allow-cross-slot-keys flag (2 ms) +[ok]: Cross slot commands are also blocked if they disagree with pre-declared keys (0 ms) +[ok]: Cross slot commands are allowed by default if they disagree with pre-declared keys (2 ms) +[ok]: Function no-cluster flag (1 ms) [ok]: Script no-cluster flag (0 ms) [ok]: Calling cluster slots in scripts is OK (1 ms) [ok]: Calling cluster shards in scripts is OK (1 ms) @@ -4628,7 +4665,7 @@ === (external:skip cluster) Starting server on 127.0.0.1:21849 ok === (external:skip cluster) Starting server on 127.0.0.1:21851 ok === (external:skip cluster) Starting server on 127.0.0.1:21853 ok -[ok]: Migrated replica reports zero repl offset and rank, and fails to win election - shutdown (14903 ms) +[ok]: Migrated replica reports zero repl offset and rank, and fails to win election - shutdown (14044 ms) === (external:skip cluster) Starting server on 127.0.0.1:21855 ok === (external:skip cluster) Starting server on 127.0.0.1:21857 ok === (external:skip cluster) Starting server on 127.0.0.1:21859 ok @@ -4637,7 +4674,7 @@ === (external:skip cluster) Starting server on 127.0.0.1:21865 ok === (external:skip cluster) Starting server on 127.0.0.1:21867 ok === (external:skip cluster) Starting server on 127.0.0.1:21869 ok -[ok]: Migrated replica reports zero repl offset and rank, and fails to win election - sigstop (7426 ms) +[ok]: Migrated replica reports zero repl offset and rank, and fails to win election - sigstop (6927 ms) === (external:skip cluster) Starting server on 127.0.0.1:21871 ok === (external:skip cluster) Starting server on 127.0.0.1:21873 ok === (external:skip cluster) Starting server on 127.0.0.1:21875 ok @@ -4646,7 +4683,7 @@ === (external:skip cluster) Starting server on 127.0.0.1:21881 ok === (external:skip cluster) Starting server on 127.0.0.1:21883 ok === (external:skip cluster) Starting server on 127.0.0.1:21885 ok -[ok]: New non-empty replica reports zero repl offset and rank, and fails to win election - shutdown (4679 ms) +[ok]: New non-empty replica reports zero repl offset and rank, and fails to win election - shutdown (3218 ms) === (external:skip cluster) Starting server on 127.0.0.1:21887 ok === (external:skip cluster) Starting server on 127.0.0.1:21889 ok === (external:skip cluster) Starting server on 127.0.0.1:21891 ok @@ -4655,7 +4692,7 @@ === (external:skip cluster) Starting server on 127.0.0.1:21897 ok === (external:skip cluster) Starting server on 127.0.0.1:21899 ok === (external:skip cluster) Starting server on 127.0.0.1:21901 ok -[ok]: New non-empty replica reports zero repl offset and rank, and fails to win election - sigstop (4003 ms) +[ok]: New non-empty replica reports zero repl offset and rank, and fails to win election - sigstop (3763 ms) === (external:skip cluster) Starting server on 127.0.0.1:21903 ok === (external:skip cluster) Starting server on 127.0.0.1:21905 ok === (external:skip cluster) Starting server on 127.0.0.1:21907 ok @@ -4664,7 +4701,7 @@ === (external:skip cluster) Starting server on 127.0.0.1:21913 ok === (external:skip cluster) Starting server on 127.0.0.1:21915 ok === (external:skip cluster) Starting server on 127.0.0.1:21917 ok -[ok]: Sub-replica reports zero repl offset and rank, and fails to win election - shutdown (15152 ms) +[ok]: Sub-replica reports zero repl offset and rank, and fails to win election - shutdown (13886 ms) === (external:skip cluster) Starting server on 127.0.0.1:21919 ok === (external:skip cluster) Starting server on 127.0.0.1:21921 ok === (external:skip cluster) Starting server on 127.0.0.1:21923 ok @@ -4673,7 +4710,7 @@ === (external:skip cluster) Starting server on 127.0.0.1:21929 ok === (external:skip cluster) Starting server on 127.0.0.1:21931 ok === (external:skip cluster) Starting server on 127.0.0.1:21933 ok -[ok]: Sub-replica reports zero repl offset and rank, and fails to win election - sigstop (4321 ms) +[ok]: Sub-replica reports zero repl offset and rank, and fails to win election - sigstop (3689 ms) === (external:skip cluster) Starting server on 127.0.0.1:21935 ok === (external:skip cluster) Starting server on 127.0.0.1:21937 ok === (external:skip cluster) Starting server on 127.0.0.1:21939 ok @@ -4682,7 +4719,7 @@ === (external:skip cluster) Starting server on 127.0.0.1:21945 ok === (external:skip cluster) Starting server on 127.0.0.1:21947 ok === (external:skip cluster) Starting server on 127.0.0.1:21949 ok -[ok]: valkey-cli make source node ignores NOREPLICAS error when doing the last CLUSTER SETSLOT - gossip (5419 ms) +[ok]: valkey-cli make source node ignores NOREPLICAS error when doing the last CLUSTER SETSLOT - gossip (5362 ms) === (external:skip cluster) Starting server on 127.0.0.1:21951 ok === (external:skip cluster) Starting server on 127.0.0.1:21953 ok === (external:skip cluster) Starting server on 127.0.0.1:21955 ok @@ -4691,22 +4728,22 @@ === (external:skip cluster) Starting server on 127.0.0.1:21961 ok === (external:skip cluster) Starting server on 127.0.0.1:21963 ok === (external:skip cluster) Starting server on 127.0.0.1:21965 ok -[ok]: valkey-cli make source node ignores NOREPLICAS error when doing the last CLUSTER SETSLOT - setslot (5340 ms) +[ok]: valkey-cli make source node ignores NOREPLICAS error when doing the last CLUSTER SETSLOT - setslot (10637 ms) === (external:skip cluster) Starting server on 127.0.0.1:21967 ok === (external:skip cluster) Starting server on 127.0.0.1:21969 ok === (external:skip cluster) Starting server on 127.0.0.1:21971 ok [ok]: Empty primary will check and delete the dirty slots (57 ms) -[66/129 done]: unit/cluster/replica-migration (162 seconds) +[66/129 done]: unit/cluster/replica-migration (161 seconds) Testing unit/cluster/replica-in-sync === (external:skip cluster) Starting server on 127.0.0.1:21973 ok === (external:skip cluster) Starting server on 127.0.0.1:21975 ok -[ok]: Cluster is up (47 ms) -[ok]: Cluster is writable (173 ms) -[ok]: Fill up primary with data (3 ms) +[ok]: Cluster is up (33 ms) +[ok]: Cluster is writable (187 ms) +[ok]: Fill up primary with data (4 ms) [ok]: Add new node as replica (1 ms) -[ok]: Check digest and replica state (2 ms) -[ok]: Replica in loading state is hidden (5008 ms) -[ok]: Check disconnected replica not hidden from slots (120 ms) +[ok]: Check digest and replica state (3 ms) +[ok]: Replica in loading state is hidden (5013 ms) +[ok]: Check disconnected replica not hidden from slots (115 ms) [67/129 done]: unit/cluster/replica-in-sync (16 seconds) Testing unit/cluster/pubsubshard === (external:skip cluster) Starting server on 127.0.0.1:21977 ok @@ -4715,12 +4752,12 @@ === (external:skip cluster) Starting server on 127.0.0.1:21983 ok === (external:skip cluster) Starting server on 127.0.0.1:21985 ok === (external:skip cluster) Starting server on 127.0.0.1:21987 ok -[ok]: Pub/Sub shard basics (113 ms) -[ok]: client can't subscribe to multiple shard channels across different slots in same call (21 ms) -[ok]: client can subscribe to multiple shard channels across different slots in separate call (2 ms) -[ok]: sunsubscribe without specifying any channel would unsubscribe all shard channels subscribed (46 ms) -[ok]: Verify Pub/Sub and Pub/Sub shard no overlap (100 ms) -[ok]: PUBSUB channels/shardchannels (91 ms) +[ok]: Pub/Sub shard basics (91 ms) +[ok]: client can't subscribe to multiple shard channels across different slots in same call (14 ms) +[ok]: client can subscribe to multiple shard channels across different slots in separate call (1 ms) +[ok]: sunsubscribe without specifying any channel would unsubscribe all shard channels subscribed (30 ms) +[ok]: Verify Pub/Sub and Pub/Sub shard no overlap (73 ms) +[ok]: PUBSUB channels/shardchannels (68 ms) [68/129 done]: unit/cluster/pubsubshard (12 seconds) Testing unit/cluster/pubsubshard-slot-migration === (external:skip cluster) Starting server on 127.0.0.1:21989 ok @@ -4729,13 +4766,13 @@ === (external:skip cluster) Starting server on 127.0.0.1:21995 ok === (external:skip cluster) Starting server on 127.0.0.1:21997 ok === (external:skip cluster) Starting server on 127.0.0.1:21999 ok -[ok]: Cluster is up (143 ms) -[ok]: Migrate a slot, verify client receives sunsubscribe on primary serving the slot. (72 ms) -[ok]: Client subscribes to multiple channels, migrate a slot, verify client receives sunsubscribe on primary serving the slot. (29 ms) -[ok]: Migrate a slot, verify client receives sunsubscribe on replica serving the slot. (127 ms) -[ok]: Move a replica to another primary, verify client receives sunsubscribe on replica serving the slot. (139 ms) -[ok]: Delete a slot, verify sunsubscribe message (27 ms) -[ok]: Reset cluster, verify sunsubscribe message (65 ms) +[ok]: Cluster is up (157 ms) +[ok]: Migrate a slot, verify client receives sunsubscribe on primary serving the slot. (89 ms) +[ok]: Client subscribes to multiple channels, migrate a slot, verify client receives sunsubscribe on primary serving the slot. (28 ms) +[ok]: Migrate a slot, verify client receives sunsubscribe on replica serving the slot. (88 ms) +[ok]: Move a replica to another primary, verify client receives sunsubscribe on replica serving the slot. (127 ms) +[ok]: Delete a slot, verify sunsubscribe message (14 ms) +[ok]: Reset cluster, verify sunsubscribe message (28 ms) [69/129 done]: unit/cluster/pubsubshard-slot-migration (13 seconds) Testing unit/cluster/pubsub === (external:skip cluster) Starting server on 127.0.0.1:22001 ok @@ -4748,12 +4785,12 @@ === (external:skip cluster) Starting server on 127.0.0.1:22015 ok === (external:skip cluster) Starting server on 127.0.0.1:22017 ok === (external:skip cluster) Starting server on 127.0.0.1:22019 ok -[ok]: Test publishing to master (8 ms) -[ok]: Test publishing to slave (7 ms) +[ok]: Test publishing to master (9 ms) +[ok]: Test publishing to slave (8 ms) === (external:skip cluster) Starting server on 127.0.0.1:22021 ok === (external:skip cluster) Starting server on 127.0.0.1:22023 ok === (external:skip cluster) Starting server on 127.0.0.1:22025 ok -[ok]: Test cluster info stats for publish (3 ms) +[ok]: Test cluster info stats for publish (2 ms) [70/129 done]: unit/cluster/pubsub (15 seconds) Testing unit/cluster/noaddr === (external:skip cluster) Starting server on 127.0.0.1:22027 ok @@ -4762,8 +4799,8 @@ === (external:skip cluster) Starting server on 127.0.0.1:22033 ok === (external:skip cluster) Starting server on 127.0.0.1:22035 ok === (external:skip cluster) Starting server on 127.0.0.1:22037 ok -[ok]: NOADDR nodes will be marked as FAIL (975 ms) -[71/129 done]: unit/cluster/noaddr (12 seconds) +[ok]: NOADDR nodes will be marked as FAIL (1143 ms) +[71/129 done]: unit/cluster/noaddr (13 seconds) Testing unit/cluster/no-failover-option === (external:skip cluster) Starting server on 127.0.0.1:22039 ok === (external:skip cluster) Starting server on 127.0.0.1:22041 ok @@ -4771,12 +4808,12 @@ === (external:skip cluster) Starting server on 127.0.0.1:22045 ok === (external:skip cluster) Starting server on 127.0.0.1:22047 ok === (external:skip cluster) Starting server on 127.0.0.1:22049 ok -[ok]: Cluster is up (147 ms) +[ok]: Cluster is up (137 ms) [ok]: Instance #3 is a replica (2 ms) [ok]: Instance #3 synced with the master (1 ms) -[ok]: The nofailover flag is propagated (107 ms) -[ok]: Killing one master node (25 ms) -[ok]: Cluster should be still down after some time (3215 ms) +[ok]: The nofailover flag is propagated (106 ms) +[ok]: Killing one master node (12 ms) +[ok]: Cluster should be still down after some time (3162 ms) [ok]: Instance #3 is still a replica (1 ms) [ok]: Restarting the previously killed master node (1 ms) [72/129 done]: unit/cluster/no-failover-option (15 seconds) @@ -4787,7 +4824,7 @@ === (external:skip cluster) Starting server on 127.0.0.1:22057 ok === (external:skip cluster) Starting server on 127.0.0.1:22059 ok [ok]: Continuous slots distribution (17 ms) -[ok]: ADDSLOTS command with several boundary conditions test suite (2 ms) +[ok]: ADDSLOTS command with several boundary conditions test suite (1 ms) [ok]: ADDSLOTSRANGE command with several boundary conditions test suite (2 ms) [ok]: DELSLOTSRANGE command with several boundary conditions test suite (9 ms) [73/129 done]: unit/cluster/multi-slot-operations (3 seconds) @@ -4796,9 +4833,9 @@ === (external:skip cluster) Starting server on 127.0.0.1:22063 ok === (external:skip cluster) Starting server on 127.0.0.1:22065 ok === (external:skip cluster) Starting server on 127.0.0.1:22067 ok -[ok]: Key lazy expires during key migration (17 ms) -[ok]: Coverage: Basic cluster commands (3 ms) -[74/129 done]: unit/cluster/misc (12 seconds) +[ok]: Key lazy expires during key migration (16 ms) +[ok]: Coverage: Basic cluster commands (4 ms) +[74/129 done]: unit/cluster/misc (11 seconds) Testing unit/cluster/many-slot-migration === (external:skip cluster) Starting server on 127.0.0.1:22069 ok === (external:skip cluster) Starting server on 127.0.0.1:22071 ok @@ -4810,13 +4847,13 @@ === (external:skip cluster) Starting server on 127.0.0.1:22083 ok === (external:skip cluster) Starting server on 127.0.0.1:22085 ok === (external:skip cluster) Starting server on 127.0.0.1:22087 ok -[ok]: Cluster is up (245 ms) -[ok]: Set many keys (8170 ms) -[ok]: Keys are accessible (7616 ms) -[ok]: Init migration of many slots (1314 ms) -[ok]: Fix cluster (13793 ms) -[ok]: Keys are accessible (8394 ms) -[75/129 done]: unit/cluster/many-slot-migration (44 seconds) +[ok]: Cluster is up (248 ms) +[ok]: Set many keys (7394 ms) +[ok]: Keys are accessible (7641 ms) +[ok]: Init migration of many slots (1444 ms) +[ok]: Fix cluster (13503 ms) +[ok]: Keys are accessible (8238 ms) +[75/129 done]: unit/cluster/many-slot-migration (43 seconds) Testing unit/cluster/manual-takeover === (external:skip cluster) Starting server on 127.0.0.1:22089 ok === (external:skip cluster) Starting server on 127.0.0.1:22091 ok @@ -4828,16 +4865,16 @@ === (external:skip cluster) Starting server on 127.0.0.1:22103 ok === (external:skip cluster) Starting server on 127.0.0.1:22105 ok === (external:skip cluster) Starting server on 127.0.0.1:22107 ok -[ok]: Cluster is up (266 ms) -[ok]: Cluster is writable (276 ms) -[ok]: Killing majority of master nodes (82 ms) -[ok]: Cluster should eventually be down (3282 ms) -[ok]: Use takeover to bring slaves back (5 ms) -[ok]: Cluster should eventually be up again (3133 ms) -[ok]: Cluster is writable (223 ms) +[ok]: Cluster is up (258 ms) +[ok]: Cluster is writable (310 ms) +[ok]: Killing majority of master nodes (79 ms) +[ok]: Cluster should eventually be down (3254 ms) +[ok]: Use takeover to bring slaves back (4 ms) +[ok]: Cluster should eventually be up again (3109 ms) +[ok]: Cluster is writable (291 ms) [ok]: Instance #5, #6, #7 are now masters (2 ms) -[ok]: Restarting the previously killed master nodes (5 ms) -[ok]: Instance #0, #1, #2 gets converted into a slaves (116 ms) +[ok]: Restarting the previously killed master nodes (4 ms) +[ok]: Instance #0, #1, #2 gets converted into a slaves (58 ms) [76/129 done]: unit/cluster/manual-takeover (20 seconds) Testing unit/cluster/manual-failover === (external:skip cluster) Starting server on 127.0.0.1:22109 ok @@ -4850,17 +4887,17 @@ === (external:skip cluster) Starting server on 127.0.0.1:22123 ok === (external:skip cluster) Starting server on 127.0.0.1:22125 ok === (external:skip cluster) Starting server on 127.0.0.1:22127 ok -[ok]: Cluster is up (146 ms) -[ok]: Cluster is writable (193 ms) +[ok]: Cluster is up (237 ms) +[ok]: Cluster is writable (313 ms) [ok]: Instance #5 is a slave (1 ms) [ok]: Instance #5 synced with the master (0 ms) -WWWWWWWWWW[ok]: Send CLUSTER FAILOVER to #5, during load (3550 ms) -[ok]: Wait for failover (21 ms) -[ok]: Cluster should eventually be up again (145 ms) -[ok]: Cluster is writable (156 ms) +WWWWWWWWWW[ok]: Send CLUSTER FAILOVER to #5, during load (4017 ms) +[ok]: Wait for failover (26 ms) +[ok]: Cluster should eventually be up again (218 ms) +[ok]: Cluster is writable (263 ms) [ok]: Instance #5 is now a master (1 ms) -[ok]: Verify 50000 keys for consistency with logical content (1846 ms) -[ok]: Instance #0 gets converted into a slave (23 ms) +[ok]: Verify 50000 keys for consistency with logical content (1976 ms) +[ok]: Instance #0 gets converted into a slave (18 ms) === (external:skip cluster) Starting server on 127.0.0.1:22129 ok === (external:skip cluster) Starting server on 127.0.0.1:22131 ok === (external:skip cluster) Starting server on 127.0.0.1:22133 ok @@ -4871,14 +4908,14 @@ === (external:skip cluster) Starting server on 127.0.0.1:22143 ok === (external:skip cluster) Starting server on 127.0.0.1:22145 ok === (external:skip cluster) Starting server on 127.0.0.1:22147 ok -[ok]: Cluster is up (251 ms) -[ok]: Cluster is writable (219 ms) -[ok]: Instance #5 is a slave (1 ms) -[ok]: Instance #5 synced with the master (0 ms) -[ok]: Make instance #0 unreachable without killing it (1 ms) +[ok]: Cluster is up (231 ms) +[ok]: Cluster is writable (265 ms) +[ok]: Instance #5 is a slave (0 ms) +[ok]: Instance #5 synced with the master (1 ms) +[ok]: Make instance #0 unreachable without killing it (0 ms) [ok]: Send CLUSTER FAILOVER to instance #5 (0 ms) -[ok]: Instance #5 is still a slave after some time (no failover) (5002 ms) -[ok]: Wait for instance #0 to return back alive (5003 ms) +[ok]: Instance #5 is still a slave after some time (no failover) (5005 ms) +[ok]: Wait for instance #0 to return back alive (4995 ms) === (external:skip cluster) Starting server on 127.0.0.1:22149 ok === (external:skip cluster) Starting server on 127.0.0.1:22151 ok === (external:skip cluster) Starting server on 127.0.0.1:22153 ok @@ -4894,134 +4931,1880 @@ === (external:skip cluster) Starting server on 127.0.0.1:22173 ok === (external:skip cluster) Starting server on 127.0.0.1:22175 ok === (external:skip cluster) Starting server on 127.0.0.1:22177 ok -[ok]: Cluster is up (227 ms) -[ok]: Cluster is writable (165 ms) +[ok]: Cluster is up (359 ms) +[ok]: Cluster is writable (305 ms) [ok]: Instance #5 is a slave (0 ms) [ok]: Instance #5 synced with the master (1 ms) [ok]: Make instance #0 unreachable without killing it (0 ms) [ok]: Send CLUSTER FAILOVER to instance #5 (0 ms) -[ok]: Instance #5 is a master after some time (52 ms) -[ok]: Wait for instance #0 to return back alive (9948 ms) +[ok]: Instance #5 is a master after some time (53 ms) +[ok]: Wait for instance #0 to return back alive (9945 ms) === (external:skip cluster) Starting server on 127.0.0.1:22179 ok === (external:skip cluster) Starting server on 127.0.0.1:22181 ok === (external:skip cluster) Starting server on 127.0.0.1:22183 ok === (external:skip cluster) Starting server on 127.0.0.1:22185 ok -[ok]: Manual failover vote is not limited by two times the node timeout - drop the auth ack (5197 ms) +[ok]: Manual failover vote is not limited by two times the node timeout - drop the auth ack (5233 ms) === (external:skip cluster) Starting server on 127.0.0.1:22187 ok === (external:skip cluster) Starting server on 127.0.0.1:22189 ok === (external:skip cluster) Starting server on 127.0.0.1:22191 ok === (external:skip cluster) Starting server on 127.0.0.1:22193 ok -[ok]: Manual failover vote is not limited by two times the node timeout - mixed failover (5155 ms) +[ok]: Manual failover vote is not limited by two times the node timeout - mixed failover (3989 ms) === (external:skip cluster) Starting server on 127.0.0.1:22195 ok === (external:skip cluster) Starting server on 127.0.0.1:22197 ok === (external:skip cluster) Starting server on 127.0.0.1:22199 ok === (external:skip cluster) Starting server on 127.0.0.1:22201 ok -[ok]: Automatic failover vote is not limited by two times the node timeout - mixed failover (3712 ms) +[ok]: Automatic failover vote is not limited by two times the node timeout - mixed failover (4115 ms) === (external:skip cluster) Starting server on 127.0.0.1:22203 ok === (external:skip cluster) Starting server on 127.0.0.1:22205 ok === (external:skip cluster) Starting server on 127.0.0.1:22207 ok === (external:skip cluster) Starting server on 127.0.0.1:22209 ok -[ok]: Manual failover will reset the on-going election (5126 ms) +[ok]: Manual failover will reset the on-going election (5051 ms) === (external:skip cluster) Starting server on 127.0.0.1:22211 ok === (external:skip cluster) Starting server on 127.0.0.1:22213 ok === (external:skip cluster) Starting server on 127.0.0.1:22215 ok === (external:skip cluster) Starting server on 127.0.0.1:22217 ok -[ok]: Broadcast PONG to the cluster when the node role changes (181 ms) +[ok]: Broadcast PONG to the cluster when the node role changes (133 ms) [77/129 done]: unit/cluster/manual-failover (145 seconds) Testing unit/cluster/links === (external:skip cluster) Starting server on 127.0.0.1:22219 ok === (external:skip cluster) Starting server on 127.0.0.1:22221 ok === (external:skip cluster) Starting server on 127.0.0.1:22223 ok -[TIMEOUT]: clients state report follows. -sockaaaafbb5f680 => (IN PROGRESS) Broadcast message across a cluster shard while a cluster link is down -Killing still running Valkey server 2641512 -Killing still running Valkey server 2641529 -Killing still running Valkey server 2641546 +[ok]: Broadcast message across a cluster shard while a cluster link is down (172 ms) +=== (external:skip cluster) Starting server on 127.0.0.1:22225 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22227 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22229 ok +[ok]: Each node has two links with each peer (8 ms) +[ok]: Validate cluster links format (1 ms) +[ok]: Disconnect link when send buffer limit reached (9394 ms) +[ok]: Link memory increases with publishes (706 ms) +[ok]: Link memory resets after publish messages flush (946 ms) +[78/129 done]: unit/cluster/links (25 seconds) +Testing unit/cluster/info +=== (external:skip cluster) Starting server on 127.0.0.1:22231 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22233 ok +[ok]: Cluster should start ok (44 ms) +[ok]: errorstats: rejected call due to MOVED Redirection (4 ms) +=== (external:skip cluster) Starting server on 127.0.0.1:22235 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22237 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22239 ok +[ok]: fail reason changed (3359 ms) +[79/129 done]: unit/cluster/info (9 seconds) +Testing unit/cluster/human-announced-nodename +=== (external:skip cluster) Starting server on 127.0.0.1:22241 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22243 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22245 ok +[ok]: Set cluster human announced nodename and let it propagate (210 ms) +[ok]: Human nodenames are visible in log messages (3584 ms) +[80/129 done]: unit/cluster/human-announced-nodename (6 seconds) +Testing unit/cluster/hostnames +=== (external:skip cluster) Starting server on 127.0.0.1:22247 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22249 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22251 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22253 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22255 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22257 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22259 ok +[ok]: Set cluster hostnames and verify they are propagated (260 ms) +[ok]: Update hostnames and make sure they are all eventually propagated (268 ms) +[ok]: Remove hostnames and make sure they are all eventually propagated (256 ms) +[ok]: Verify cluster-preferred-endpoint-type behavior for redirects and info (103 ms) +[ok]: Verify the nodes configured with prefer hostname only show hostname for new nodes (1132 ms) +[ok]: Test restart will keep hostname information (314 ms) +[ok]: Test hostname validation (7 ms) +[81/129 done]: unit/cluster/hostnames (15 seconds) +Testing unit/cluster/half-migrated-slot +=== (external:skip cluster) Starting server on 127.0.0.1:22261 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22263 ok +[ok]: Cluster is up (64 ms) +[ok]: Half init migration in 'migrating' is fixable (180 ms) +[ok]: Half init migration in 'importing' is fixable (251 ms) +[ok]: Init migration and move key (367 ms) +[ok]: Move key again (74 ms) +[ok]: Half-finish migration (311 ms) +[ok]: Move key back (43 ms) +[ok]: Half-finish importing (259 ms) +[82/129 done]: unit/cluster/half-migrated-slot (4 seconds) +Testing unit/cluster/failure-marking +=== (external:skip cluster) Starting server on 127.0.0.1:22265 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22267 ok +[ok]: Verify that single primary marks replica as failed (3237 ms) +=== (external:skip cluster) Starting server on 127.0.0.1:22269 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22271 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22273 ok +[ok]: Verify that multiple primaries mark replica as failed (6241 ms) +[ignore]: Not supported in tls mode +[83/129 done]: unit/cluster/failure-marking (32 seconds) +Testing unit/cluster/failover2 +=== (external:skip cluster) Starting server on 127.0.0.1:22275 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22277 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22279 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22281 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22283 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22285 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22287 ok +[ok]: Cluster is up (175 ms) +[ok]: Cluster is writable (267 ms) +[ok]: Killing one primary node (32 ms) +[ok]: Wait for failover (6300 ms) +[ok]: Killing the new primary node (24 ms) +[ok]: Cluster should eventually be up again (163 ms) +[ok]: wait for new failover (6601 ms) +[ok]: Restarting the previously killed primary nodes (11 ms) +[ok]: Make sure there is no failover timeout (3 ms) +=== (external:skip cluster) Starting server on 127.0.0.1:22289 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22291 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22293 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22295 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22297 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22299 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22301 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22303 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22305 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22307 ok +[ok]: Primaries will not time out then they are elected in the same epoch (7545 ms) +=== (external:skip cluster) Starting server on 127.0.0.1:22309 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22311 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22313 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22315 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22317 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22319 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22321 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22323 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22325 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22327 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22329 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22331 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22333 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22335 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22337 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22339 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22341 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22343 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22345 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22347 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22349 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22351 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22353 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22355 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22357 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22359 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22361 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22363 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22365 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22367 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22369 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22371 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22373 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22375 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22377 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22379 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22381 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22383 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22385 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22387 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22389 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22391 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22393 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22395 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22397 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22399 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22401 ok +[ok]: Multiple primary nodes are down, rank them based on the failed primary (19126 ms) +=== (external:skip cluster) Starting server on 127.0.0.1:22403 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22405 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22407 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22409 ok +[ok]: Replica can update the config epoch when trigger the failover - automatic (16910 ms) +=== (external:skip cluster) Starting server on 127.0.0.1:22411 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22413 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22415 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22417 ok +[ok]: Replica can update the config epoch when trigger the failover - manual (8514 ms) +[84/129 done]: unit/cluster/failover2 (138 seconds) +Testing unit/cluster/failover +=== (external:skip cluster) Starting server on 127.0.0.1:22419 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22421 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22423 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22425 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22427 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22429 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22431 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22433 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22435 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22437 ok +[ok]: Cluster is up (232 ms) +[ok]: Cluster is writable (268 ms) +[ok]: Instance #5 is a slave (0 ms) +[ok]: Instance #5 synced with the master (0 ms) +[ok]: Killing one master node (24 ms) +[ok]: Wait for failover (3922 ms) +[ok]: Cluster should eventually be up again (231 ms) +[ok]: Cluster is writable (264 ms) +[ok]: Instance #5 is now a master (0 ms) +[ok]: Restarting the previously killed master node (2 ms) +[ok]: Instance #0 gets converted into a slave (188 ms) +=== (external:skip cluster) Starting server on 127.0.0.1:22439 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22441 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22443 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22445 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22447 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22449 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22451 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22453 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22455 ok +[ok]: Cluster is up (206 ms) +[ok]: Cluster is writable (238 ms) +[ok]: Killing the first primary node (24 ms) +[ok]: Wait for failover (4380 ms) +[ok]: Cluster should eventually be up again (207 ms) +[ok]: Restarting the previously killed primary node (2 ms) +[ok]: Instance #0 gets converted into a replica (253 ms) +[ok]: Make sure the replicas always get the different ranks (4 ms) +[85/129 done]: unit/cluster/failover (36 seconds) +Testing unit/cluster/faildet +=== (external:skip cluster) Starting server on 127.0.0.1:22457 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22459 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22461 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22463 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22465 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22467 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22469 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22471 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22473 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22475 ok +[ok]: Cluster should start ok (226 ms) +[ok]: Killing two slave nodes (43 ms) +[ok]: Cluster should be still up (223 ms) +[ok]: Killing one master node (24 ms) +[ok]: Cluster should be down now (228 ms) +[ok]: Restarting master node (23 ms) +[ok]: Cluster should be up again (223 ms) +[86/129 done]: unit/cluster/faildet (14 seconds) +Testing unit/cluster/divergent-cluster-shardid-conf +Testing for tests/assets/divergent-shard-1.conf +=== () Starting server on 127.0.0.1:22477 ok +Testing for tests/assets/divergent-shard-2.conf +=== () Starting server on 127.0.0.1:22479 ok +Testing for tests/assets/divergent-shard-3.conf +=== () Starting server on 127.0.0.1:22481 ok +Testing for tests/assets/divergent-shard-4.conf +=== () Starting server on 127.0.0.1:22483 ok +[ok]: divergent cluster shardid conflict (1038 ms) +[87/129 done]: unit/cluster/divergent-cluster-shardid-conf (1 seconds) +Testing unit/cluster/diskless-load-swapdb +=== (external:skip cluster) Starting server on 127.0.0.1:22485 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22487 ok +[ok]: Cluster should start ok (45 ms) +[ok]: Cluster is writable (183 ms) +[ok]: Main db not affected when fail to diskless load (82973 ms) +Waiting for process 3474764 to exit... +Waiting for process 3474764 to exit... +Waiting for process 3474764 to exit... +Waiting for process 3474764 to exit... +Waiting for process 3474764 to exit... +Waiting for process 3474764 to exit... +Waiting for process 3474764 to exit... +Waiting for process 3474764 to exit... +[88/129 done]: unit/cluster/diskless-load-swapdb (104 seconds) +Testing unit/cluster/consistency-check +=== (external:skip cluster) Starting server on 127.0.0.1:22489 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22491 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22493 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22495 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22497 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22499 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22501 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22503 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22505 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22507 ok +[ok]: Cluster should start ok (228 ms) +[ok]: Cluster is writable (309 ms) +[ok]: Slave expired keys is loaded when restarted: appendonly=no (3386 ms) +[ok]: Slave expired keys is loaded when restarted: appendonly=yes (3627 ms) +[89/129 done]: unit/cluster/consistency-check (21 seconds) +Testing unit/cluster/cluster-slots +=== (external:skip cluster) Starting server on 127.0.0.1:22509 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22511 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22513 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22515 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22517 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22519 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22521 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22523 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22525 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22527 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22529 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22531 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22533 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22535 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22537 ok +[ok]: Cluster is up (328 ms) +[ok]: Cluster is writable (271 ms) +[ok]: Instance #5 is a slave (1 ms) +[ok]: client do not break when cluster slot (2021 ms) +[ok]: client can handle keys with hash tag (115 ms) +[ok]: slot migration is valid from primary to another primary (166 ms) +[ok]: slot migration is invalid from primary to replica (129 ms) +[ok]: slot must be unbound on the owner when it is deleted (8345 ms) +[ok]: CLUSTER SLOTS from non-TLS client in TLS cluster (3956 ms) +[90/129 done]: unit/cluster/cluster-slots (90 seconds) +Testing unit/cluster/cluster-shards +=== (external:skip cluster) Starting server on 127.0.0.1:22539 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22541 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22543 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22545 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22547 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22549 ok +[ok]: Cluster should start ok (88 ms) +[ok]: Cluster shards response is ok for shard 0 (2 ms) +[ok]: Kill a node and tell the replica to immediately takeover (15 ms) +[ok]: Verify health as fail for killed node (3302 ms) +[ok]: CLUSTER SHARDS slot response is non-empty when primary node fails (1 ms) +[91/129 done]: unit/cluster/cluster-shards (14 seconds) +Testing unit/cluster/cluster-response-tls +=== (external:skip cluster tls) Starting server on 127.0.0.1:22551 ok +=== (external:skip cluster tls) Starting server on 127.0.0.1:22553 ok +=== (external:skip cluster tls) Starting server on 127.0.0.1:22555 ok +=== (external:skip cluster tls) Starting server on 127.0.0.1:22557 ok +=== (external:skip cluster tls) Starting server on 127.0.0.1:22559 ok +=== (external:skip cluster tls) Starting server on 127.0.0.1:22561 ok +[ok]: CLUSTER SLOTS cached using EVAL over TLS -- tls-cluster yes (20 ms) +[ok]: CLUSTER SLOTS with different connection type -- tls-cluster yes (44 ms) +[ok]: CLUSTER NODES return port according to connection type -- tls-cluster yes (36 ms) +[ok]: Set many keys in the cluster -- tls-cluster yes (1296 ms) +[ok]: Test cluster responses during migration of slot x -- tls-cluster yes (3 ms) +=== (external:skip cluster tls) Starting server on 127.0.0.1:22563 ok +=== (external:skip cluster tls) Starting server on 127.0.0.1:22565 ok +=== (external:skip cluster tls) Starting server on 127.0.0.1:22567 ok +=== (external:skip cluster tls) Starting server on 127.0.0.1:22569 ok +=== (external:skip cluster tls) Starting server on 127.0.0.1:22571 ok +=== (external:skip cluster tls) Starting server on 127.0.0.1:22573 ok +[ok]: CLUSTER SLOTS cached using EVAL over TLS -- tls-cluster no (16 ms) +[ok]: CLUSTER SLOTS with different connection type -- tls-cluster no (52 ms) +[ok]: CLUSTER NODES return port according to connection type -- tls-cluster no (44 ms) +[ok]: Set many keys in the cluster -- tls-cluster no (1325 ms) +[ok]: Test cluster responses during migration of slot x -- tls-cluster no (2 ms) +[92/129 done]: unit/cluster/cluster-response-tls (28 seconds) +Testing unit/cluster/cluster-reliable-meet +[ignore]: Not supported in tls mode +=== (external:skip cluster) Starting server on 127.0.0.1:22575 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22577 ok +=== () Starting server on 127.0.0.1:22580 ok +[ok]: Handshake eventually succeeds after node handshake timeout on both sides with inconsistent view of the cluster (10150 ms) +=== (external:skip cluster) Starting server on 127.0.0.1:22582 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22584 ok +=== () Starting server on 127.0.0.1:22587 ok +[ok]: Handshake eventually succeeds after node handshake timeout on one side with inconsistent view of the cluster (5071 ms) +[93/129 done]: unit/cluster/cluster-reliable-meet (20 seconds) +Testing unit/cluster/cluster-nodes-slots +=== (external:skip cluster) Starting server on 127.0.0.1:22589 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22591 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22593 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22595 ok +[ok]: Cluster should start ok (93 ms) +[ok]: Continuous slots distribution (6 ms) +[ok]: Discontinuous slots distribution (9 ms) +[94/129 done]: unit/cluster/cluster-nodes-slots (12 seconds) +Testing unit/cluster/cluster-multiple-meets +[ignore]: Not supported in tls mode +[95/129 done]: unit/cluster/cluster-multiple-meets (0 seconds) +Testing unit/cluster/cli +[ignore]: Not supported in tls mode +[96/129 done]: unit/cluster/cli (0 seconds) +Testing unit/cluster/base +[ignore]: Not supported in tls mode +[97/129 done]: unit/cluster/base (0 seconds) +Testing unit/cluster/announced-endpoints +=== (external:skip cluster) Starting server on 127.0.0.1:22597 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22599 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22601 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22603 ok +[ok]: Test change cluster-announce-port and cluster-announce-tls-port at runtime (117 ms) +[ok]: Test change cluster-announce-bus-port at runtime (205 ms) +[ok]: Test change port and tls-port on runtime (208 ms) +[98/129 done]: unit/cluster/announced-endpoints (11 seconds) +Testing unit/cluster/announce-client-ip +=== (external:skip cluster) Starting server on 127.0.0.1:22608 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22610 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22612 ok +=== (external:skip cluster) Starting server on 127.0.0.1:22614 ok +[ok]: Set cluster announced IPv4 to invalid IP (1 ms) +[ok]: Set cluster announced IPv4 and check that it propagates (123 ms) +[ok]: Clear announced client IPv4 and check that it propagates (114 ms) +=== (external:skip cluster ipv6) Starting server on 127.0.0.1:22616 ok +=== (external:skip cluster ipv6) Starting server on 127.0.0.1:22618 ok +=== (external:skip cluster ipv6) Starting server on 127.0.0.1:22620 ok +=== (external:skip cluster ipv6) Starting server on 127.0.0.1:22622 ok +[ok]: Set cluster announced IPv6 to invalid IP (0 ms) +[ok]: Set cluster announced IPv6 and check that it propagates (236 ms) +[ok]: Clear announced client IPv6 and check that it propagates (218 ms) +=== (external:skip cluster) Starting server on 127.0.0.1:22624 ok +[ok]: Load cluster announced IPv4 config on server start (184 ms) +=== (external:skip cluster ipv6) Starting server on 127.0.0.1:22626 ok +[ok]: Load cluster announced IPv6 config on server start (182 ms) +[99/129 done]: unit/cluster/announce-client-ip (28 seconds) +Testing integration/valkey-cli +=== (cli logreqres:skip) Starting server on 127.0.0.1:22628 ok +[ok]: Interactive CLI: INFO response should be printed raw (102 ms) +[ok]: Interactive CLI: Status reply (101 ms) +[ok]: Interactive CLI: Integer reply (100 ms) +[ok]: Interactive CLI: Bulk reply (102 ms) +[ok]: Interactive CLI: Multi-bulk reply (102 ms) +[ok]: Interactive CLI: Parsing quotes (708 ms) +[ok]: Interactive CLI: Subscribed mode (970 ms) +[ok]: Interactive non-TTY CLI: Subscribed mode (668 ms) +[ok]: Non-interactive TTY CLI: Status reply (46 ms) +[ok]: Non-interactive TTY CLI: Integer reply (47 ms) +[ok]: Non-interactive TTY CLI: Bulk reply (47 ms) +[ok]: Non-interactive TTY CLI: Multi-bulk reply (48 ms) +[ok]: Non-interactive TTY CLI: Read last argument from pipe (101 ms) +[ok]: Non-interactive TTY CLI: Read last argument from file (94 ms) +[ok]: Non-interactive TTY CLI: Escape character in JSON mode (410 ms) +[ok]: Non-interactive non-TTY CLI: Status reply (47 ms) +[ok]: Non-interactive non-TTY CLI: Integer reply (43 ms) +[ok]: Non-interactive non-TTY CLI: Bulk reply (46 ms) +[ok]: Non-interactive non-TTY CLI: Multi-bulk reply (47 ms) +[ok]: Non-interactive non-TTY CLI: Quoted input arguments (44 ms) +[ok]: Non-interactive non-TTY CLI: No accidental unquoting of input arguments (93 ms) +[ok]: Non-interactive non-TTY CLI: Invalid quoted input arguments (92 ms) +[ok]: Non-interactive non-TTY CLI: Read last argument from pipe (107 ms) +[ok]: Non-interactive non-TTY CLI: Read last argument from file (94 ms) +[ok]: Non-interactive non-TTY CLI: Test command-line hinting - latest server (53 ms) +[ok]: Non-interactive non-TTY CLI: Test command-line hinting - no server (13 ms) +[ok]: Non-interactive non-TTY CLI: Test command-line hinting - old server (59 ms) +[ok]: Dumping an RDB - functions only: no (1448 ms) +[ok]: Dumping an RDB - functions only: yes (336 ms) +[ok]: Scan mode (233 ms) +[ok]: Connecting as a replica (2220 ms) +[ok]: Piping raw protocol (819 ms) +[ok]: Options -X with illegal argument (58 ms) +[ok]: DUMP RESTORE with -x option (258 ms) +[ok]: DUMP RESTORE with -X option (261 ms) +[ok]: valkey-cli pubsub mode with single standard channel subscription (334 ms) +[ok]: valkey-cli pubsub mode with multiple standard channel subscriptions (347 ms) +[ok]: valkey-cli pubsub mode with single shard channel subscription (325 ms) +[ok]: valkey-cli pubsub mode with multiple shard channel subscriptions (345 ms) +[ok]: valkey-cli pubsub mode with single pattern channel subscription (346 ms) +[ok]: valkey-cli pubsub mode with multiple pattern channel subscriptions (284 ms) +[ok]: valkey-cli pubsub mode when subscribing to the same channel (345 ms) +[ok]: valkey-cli pubsub mode with multiple subscription types (710 ms) +[ok]: valkey-cli make sure selected db survives connection drops (316 ms) +[ok]: Valid Connection Scheme: redis:// (45 ms) +[ok]: Valid Connection Scheme: valkey:// (48 ms) +[ok]: Valid Connection Scheme: rediss:// (41 ms) +[ok]: Valid Connection Scheme: valkeys:// (40 ms) +[100/129 done]: integration/valkey-cli (14 seconds) +Testing integration/valkey-benchmark +=== () Starting server on 127.0.0.1:22630 ok +[ok]: benchmark: set,get (158 ms) +[ok]: benchmark: connecting using URI set,get (147 ms) +[ok]: benchmark: connecting using URI with authentication set,get (145 ms) +[ok]: benchmark: full test suite (1267 ms) +[ok]: benchmark: multi-thread set,get (620 ms) +[ok]: benchmark: pipelined full set,get (264 ms) +[ok]: benchmark: arbitrary command (50 ms) +[ok]: benchmark: keyspace length (333 ms) +[ok]: benchmark: clients idle mode should return error when reached maxclients limit (91 ms) +[ok]: benchmark: read last argument from stdin (129 ms) +[ok]: benchmark: specific tls-ciphers (437 ms) +[ok]: benchmark: tls connecting using URI with authentication set,get (75 ms) +[ok]: benchmark: specific tls-ciphersuites (328 ms) +[101/129 done]: integration/valkey-benchmark (4 seconds) +Testing integration/skip-rdb-checksum +=== (repl tls cluster:skip external:skip) Starting server on 127.0.0.1:22632 ok +=== () Starting server on 127.0.0.1:22634 ok +[ok]: Skip RDB checksum sync - tls:1, repl_diskless_sync:no, repl_diskless_load:disabled (356 ms) +=== () Starting server on 127.0.0.1:22636 ok +[ok]: Skip RDB checksum sync - tls:1, repl_diskless_sync:no, repl_diskless_load:on-empty-db (456 ms) +=== () Starting server on 127.0.0.1:22638 ok +[ok]: Skip RDB checksum sync - tls:1, repl_diskless_sync:no, repl_diskless_load:swapdb (354 ms) +=== () Starting server on 127.0.0.1:22640 ok +[ok]: Skip RDB checksum sync - tls:1, repl_diskless_sync:no, repl_diskless_load:flush-before-load (456 ms) +=== () Starting server on 127.0.0.1:22642 ok +[ok]: Skip RDB checksum sync - tls:1, repl_diskless_sync:yes, repl_diskless_load:disabled (361 ms) +=== () Starting server on 127.0.0.1:22644 ok +[ok]: Skip RDB checksum sync - tls:1, repl_diskless_sync:yes, repl_diskless_load:on-empty-db (355 ms) +=== () Starting server on 127.0.0.1:22646 ok +[ok]: Skip RDB checksum sync - tls:1, repl_diskless_sync:yes, repl_diskless_load:swapdb (355 ms) +=== () Starting server on 127.0.0.1:22648 ok +[ok]: Skip RDB checksum sync - tls:1, repl_diskless_sync:yes, repl_diskless_load:flush-before-load (355 ms) +[102/129 done]: integration/skip-rdb-checksum (3 seconds) +Testing integration/shutdown +=== () Starting server on 127.0.0.1:22650 ok +=== () Starting server on 127.0.0.1:22652 ok +[ok]: Shutting down master waits for replica to catch up (sigterm) (3013 ms) +=== () Starting server on 127.0.0.1:22654 ok +=== () Starting server on 127.0.0.1:22656 ok +[ok]: Shutting down master waits for replica to catch up (shutdown) (2197 ms) +=== () Starting server on 127.0.0.1:22658 ok +=== () Starting server on 127.0.0.1:22660 ok +[ok]: Shutting down master waits for replica timeout (3012 ms) +=== () Starting server on 127.0.0.1:22662 ok +=== () Starting server on 127.0.0.1:22664 ok +[ok]: Shutting down master waits for replica then fails (2401 ms) +=== () Starting server on 127.0.0.1:22666 ok +=== () Starting server on 127.0.0.1:22668 ok +[ok]: Shutting down master waits for replica then aborted (757 ms) +=== () Starting server on 127.0.0.1:22670 ok +=== () Starting server on 127.0.0.1:22672 ok +[ok]: Shutting down primary wait for replica after previous block (755 ms) +[103/129 done]: integration/shutdown (12 seconds) +Testing integration/replication +=== (repl network external:skip) Starting server on 127.0.0.1:22674 ok +=== () Starting server on 127.0.0.1:22676 ok +[ok]: Slave enters handshake (1005 ms) +[ok]: Slave enters wait_bgsave (1 ms) +[ok]: Slave is able to detect timeout during handshake (0 ms) +=== (repl external:skip) Starting server on 127.0.0.1:22678 ok +=== () Starting server on 127.0.0.1:22680 ok +[ok]: Set instance A as slave of B (103 ms) +[ok]: INCRBYFLOAT replication, should not remove expire (615 ms) +[ok]: GETSET replication (3 ms) +[ok]: BRPOPLPUSH replication, when blocking against empty list (34 ms) +[ok]: BRPOPLPUSH replication, list exists (1037 ms) +[ok]: BLMOVE (left, left) replication, when blocking against empty list (33 ms) +[ok]: BLMOVE (left, left) replication, list exists (1037 ms) +[ok]: BLMOVE (left, right) replication, when blocking against empty list (33 ms) +[ok]: BLMOVE (left, right) replication, list exists (1037 ms) +[ok]: BLMOVE (right, left) replication, when blocking against empty list (33 ms) +[ok]: BLMOVE (right, left) replication, list exists (1037 ms) +[ok]: BLMOVE (right, right) replication, when blocking against empty list (33 ms) +[ok]: BLMOVE (right, right) replication, list exists (1036 ms) +[ok]: BLPOP followed by role change, issue #2473 (239 ms) +[ok]: Replica output bytes metric (2 ms) +=== (repl external:skip) Starting server on 127.0.0.1:22682 ok +=== () Starting server on 127.0.0.1:22684 ok +[ok]: Second server should have role master at first (1 ms) +[ok]: SLAVEOF should start with link status "down" (2 ms) +[ok]: The role should immediately be changed to "replica" (1 ms) +[ok]: Sync should have transferred keys from master (0 ms) +[ok]: The link status should be up (1 ms) +[ok]: SET on the master should immediately propagate (809 ms) +[ok]: FLUSHDB / FLUSHALL should replicate (47 ms) +[ok]: ROLE in master reports master with a slave (0 ms) +[ok]: ROLE in slave reports slave in connected state (1 ms) +=== (repl external:skip) Starting server on 127.0.0.1:22686 ok +=== () Starting server on 127.0.0.1:22688 ok +=== () Starting server on 127.0.0.1:22690 ok +=== () Starting server on 127.0.0.1:22692 ok +[ok]: Connect multiple replicas at the same time (issue #141), master diskless=no, replica diskless=disabled dual-channel-replication-enabled=no (8367 ms) +=== (repl external:skip) Starting server on 127.0.0.1:22694 ok +=== () Starting server on 127.0.0.1:22696 ok +=== () Starting server on 127.0.0.1:22698 ok +=== () Starting server on 127.0.0.1:22700 ok +[ok]: Connect multiple replicas at the same time (issue #141), master diskless=no, replica diskless=swapdb dual-channel-replication-enabled=no (9453 ms) +=== (repl external:skip) Starting server on 127.0.0.1:22702 ok +=== () Starting server on 127.0.0.1:22704 ok +=== () Starting server on 127.0.0.1:22706 ok +=== () Starting server on 127.0.0.1:22708 ok +[ok]: Connect multiple replicas at the same time (issue #141), master diskless=yes, replica diskless=disabled dual-channel-replication-enabled=yes (11144 ms) +=== (repl external:skip) Starting server on 127.0.0.1:22710 ok +=== () Starting server on 127.0.0.1:22712 ok +=== () Starting server on 127.0.0.1:22714 ok +=== () Starting server on 127.0.0.1:22716 ok +[ok]: Connect multiple replicas at the same time (issue #141), master diskless=yes, replica diskless=swapdb dual-channel-replication-enabled=yes (8048 ms) +=== (repl external:skip) Starting server on 127.0.0.1:22718 ok +=== () Starting server on 127.0.0.1:22720 ok +[ok]: Master stream is correctly processed while the replica has a script in -BUSY state (19354 ms) +=== (repl external:skip) Starting server on 127.0.0.1:22722 ok +=== () Starting server on 127.0.0.1:22724 ok +[ok]: Diskless load swapdb (different replid): new database is exposed after swapping dual-channel=yes (0 ms) +=== (repl external:skip) Starting server on 127.0.0.1:22726 ok +=== () Starting server on 127.0.0.1:22728 ok +[ok]: Diskless load swapdb (different replid): replica enter loading dual-channel-replication-enabled=no (458 ms) +[ok]: Diskless load swapdb (different replid): old database is exposed after replication fails dual-channel=no (0 ms) +=== (repl external:skip) Starting server on 127.0.0.1:22730 ok +=== () Starting server on 127.0.0.1:22732 ok +[ok]: Diskless load swapdb (async_loading): new database is exposed after swapping (0 ms) +=== (repl external:skip) Starting server on 127.0.0.1:22734 ok +=== () Starting server on 127.0.0.1:22736 ok +[ok]: Diskless load swapdb (async_loading): replica enter async_loading (373 ms) +[ok]: Diskless load swapdb (async_loading): old database is exposed while async replication is in progress (872 ms) +[ok]: Busy script during async loading (1100 ms) +[ok]: Blocked commands and configs during async-loading (435 ms) +[ok]: Diskless load swapdb (async_loading): old database is exposed after async replication fails (1 ms) +Waiting for process 3548007 to exit... +Waiting for process 3548007 to exit... +Waiting for process 3548007 to exit... +Waiting for process 3548007 to exit... +=== (repl) Starting server on 127.0.0.1:22738 ok +=== () Starting server on 127.0.0.1:22740 ok +filling took 3069 ms (TODO: use pipeline) +{3548585:S 27 Nov 2026 15:29:44.566 # Internal error in RDB reading offset 5557952, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 50 +{3548585:S 27 Nov 2026 15:29:44.611 # Internal error in RDB reading offset 8337709, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 65 +{3548585:S 27 Nov 2026 15:29:44.666 # Internal error in RDB reading offset 12213458, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 80 +{3548585:S 27 Nov 2026 15:29:44.696 # Internal error in RDB reading offset 1822038, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 95 +{3548585:S 27 Nov 2026 15:29:44.741 # Internal error in RDB reading offset 12213458, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 110 +{3548585:S 27 Nov 2026 15:29:44.771 # Internal error in RDB reading offset 5557952, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 125 +{3548585:S 27 Nov 2026 15:29:44.831 # Internal error in RDB reading offset 13828603, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 140 +{3548585:S 27 Nov 2026 15:29:44.859 # Internal error in RDB reading offset 4021767, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 155 +{3548585:S 27 Nov 2026 15:29:44.882 # Internal error in RDB reading offset 0, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 170 +{3548585:S 27 Nov 2026 15:29:44.957 # Internal error in RDB reading offset 17888496, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 185 +{3548585:S 27 Nov 2026 15:29:44.976 # Internal error in RDB reading offset 0, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 200 +{3548585:S 27 Nov 2026 15:29:45.001 # Internal error in RDB reading offset 0, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 215 +{3548585:S 27 Nov 2026 15:29:45.219 * PRIMARY <-> REPLICA sync: Finished with success} 234 +{3548585:S 27 Nov 2026 15:29:45.776 # Internal error in RDB reading offset 18653473, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 260 +{3548585:S 27 Nov 2026 15:29:45.807 # Internal error in RDB reading offset 4021770, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 275 +{3548585:S 27 Nov 2026 15:29:45.867 # Internal error in RDB reading offset 10354560, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 290 +{3548585:S 27 Nov 2026 15:29:45.903 # Internal error in RDB reading offset 4021770, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 305 +{3548585:S 27 Nov 2026 15:29:45.934 # Internal error in RDB reading offset 5557955, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 320 +{3548585:S 27 Nov 2026 15:29:46.004 # Internal error in RDB reading offset 22676995, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 335 +{3548585:S 27 Nov 2026 15:29:46.025 # Internal error in RDB reading offset 0, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 350 +{3548585:S 27 Nov 2026 15:29:46.093 # Internal error in RDB reading offset 12459877, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 365 +{3548585:S 27 Nov 2026 15:29:46.308 * PRIMARY <-> REPLICA sync: Finished with success} 384 +{3548585:S 27 Nov 2026 15:29:46.834 # Internal error in RDB reading offset 25081457, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 410 +{3548585:S 27 Nov 2026 15:29:46.862 # Internal error in RDB reading offset 5557955, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 425 +{3548585:S 27 Nov 2026 15:29:46.939 # Internal error in RDB reading offset 33078839, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 440 +{3548585:S 27 Nov 2026 15:29:47.001 # Internal error in RDB reading offset 25081457, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 455 +{3548585:S 27 Nov 2026 15:29:47.028 # Internal error in RDB reading offset 5557955, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 470 +{3548585:S 27 Nov 2026 15:29:47.087 # Internal error in RDB reading offset 22676995, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 485 +{3548585:S 27 Nov 2026 15:29:47.143 # Internal error in RDB reading offset 22676995, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 500 +{3548585:S 27 Nov 2026 15:29:47.191 # Internal error in RDB reading offset 18653473, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 515 +{3548585:S 27 Nov 2026 15:29:47.250 # Internal error in RDB reading offset 15990536, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 530 +{3548585:S 27 Nov 2026 15:29:47.327 # Internal error in RDB reading offset 31002611, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 545 +{3548585:S 27 Nov 2026 15:29:47.403 # Internal error in RDB reading offset 22676995, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 560 +{3548585:S 27 Nov 2026 15:29:47.456 # Internal error in RDB reading offset 18653473, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 575 +{3548585:S 27 Nov 2026 15:29:47.486 # Internal error in RDB reading offset 5557955, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 590 +{3548585:S 27 Nov 2026 15:29:47.536 # Internal error in RDB reading offset 18653473, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 605 +{3548585:S 27 Nov 2026 15:29:47.564 # Internal error in RDB reading offset 5557955, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 620 +{3548585:S 27 Nov 2026 15:29:47.600 # Internal error in RDB reading offset 12459877, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 635 +{3548585:S 27 Nov 2026 15:29:47.663 # Internal error in RDB reading offset 25081457, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 650 +{3548585:S 27 Nov 2026 15:29:47.703 # Internal error in RDB reading offset 12459877, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 665 +{3548585:S 27 Nov 2026 15:29:47.769 # Internal error in RDB reading offset 25081457, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 680 +{3548585:S 27 Nov 2026 15:29:47.832 # Internal error in RDB reading offset 25081457, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 695 +{3548585:S 27 Nov 2026 15:29:47.867 # Internal error in RDB reading offset 12459877, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 710 +{3548585:S 27 Nov 2026 15:29:47.918 # Internal error in RDB reading offset 18653473, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 725 +{3548585:S 27 Nov 2026 15:29:47.971 # Internal error in RDB reading offset 18653473, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 740 +{3548585:S 27 Nov 2026 15:29:48.026 # Internal error in RDB reading offset 10354560, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 755 +{3548585:S 27 Nov 2026 15:29:48.081 # Internal error in RDB reading offset 13902502, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 770 +{3548585:S 27 Nov 2026 15:29:48.146 # Internal error in RDB reading offset 25081457, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 785 +{3548585:S 27 Nov 2026 15:29:48.223 # Internal error in RDB reading offset 37343947, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 800 +{3548585:S 27 Nov 2026 15:29:48.274 # Internal error in RDB reading offset 18653473, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 815 +{3548585:S 27 Nov 2026 15:29:48.325 # Internal error in RDB reading offset 18653473, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 830 +{3548585:S 27 Nov 2026 15:29:48.391 # Internal error in RDB reading offset 29098883, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 845 +{3548585:S 27 Nov 2026 15:29:48.460 # Internal error in RDB reading offset 15990536, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 860 +{3548585:S 27 Nov 2026 15:29:48.529 # Internal error in RDB reading offset 25081457, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 875 +{3548585:S 27 Nov 2026 15:29:48.595 # Internal error in RDB reading offset 33078839, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 890 +{3548585:S 27 Nov 2026 15:29:48.645 # Internal error in RDB reading offset 18653473, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 905 +{3548585:S 27 Nov 2026 15:29:48.661 # Internal error in RDB reading offset 0, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 920 +{3548585:S 27 Nov 2026 15:29:48.696 # Internal error in RDB reading offset 12459877, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 935 +{3548585:S 27 Nov 2026 15:29:48.758 # Internal error in RDB reading offset 25081457, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 950 +{3548585:S 27 Nov 2026 15:29:48.849 # Internal error in RDB reading offset 41664472, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 965 +{3548585:S 27 Nov 2026 15:29:48.878 # Internal error in RDB reading offset 5557955, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 980 +{3548585:S 27 Nov 2026 15:29:48.916 # Internal error in RDB reading offset 12459877, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 995 +{3548585:S 27 Nov 2026 15:29:48.944 # Internal error in RDB reading offset 5557955, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1010 +{3548585:S 27 Nov 2026 15:29:48.995 # Internal error in RDB reading offset 18653473, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1025 +{3548585:S 27 Nov 2026 15:29:49.045 # Internal error in RDB reading offset 18653473, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1040 +{3548585:S 27 Nov 2026 15:29:49.072 # Internal error in RDB reading offset 5557955, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1055 +{3548585:S 27 Nov 2026 15:29:49.125 # Internal error in RDB reading offset 20941037, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1070 +{3548585:S 27 Nov 2026 15:29:49.153 # Internal error in RDB reading offset 5557955, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1085 +{3548585:S 27 Nov 2026 15:29:49.190 # Internal error in RDB reading offset 12459877, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1100 +{3548585:S 27 Nov 2026 15:29:49.227 # Internal error in RDB reading offset 12459877, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1115 +{3548585:S 27 Nov 2026 15:29:49.276 # Internal error in RDB reading offset 18653473, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1130 +{3548585:S 27 Nov 2026 15:29:49.291 # Internal error in RDB reading offset 0, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1145 +{3548585:S 27 Nov 2026 15:29:49.380 # Internal error in RDB reading offset 41664472, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1160 +{3548585:S 27 Nov 2026 15:29:49.443 # Internal error in RDB reading offset 25081457, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1175 +{3548585:S 27 Nov 2026 15:29:49.505 # Internal error in RDB reading offset 25081457, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1190 +{3548585:S 27 Nov 2026 15:29:49.554 # Internal error in RDB reading offset 18653473, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1205 +{3548585:S 27 Nov 2026 15:29:49.582 # Internal error in RDB reading offset 5557955, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1220 +{3548585:S 27 Nov 2026 15:29:49.644 # Internal error in RDB reading offset 25081457, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1235 +{3548585:S 27 Nov 2026 15:29:49.681 # Internal error in RDB reading offset 12459877, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1250 +{3548585:S 27 Nov 2026 15:29:49.758 # Internal error in RDB reading offset 33078839, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1265 +{3548585:S 27 Nov 2026 15:29:49.808 # Internal error in RDB reading offset 18653473, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1280 +{3548585:S 27 Nov 2026 15:29:49.844 # Internal error in RDB reading offset 12459877, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1295 +{3548585:S 27 Nov 2026 15:29:49.911 # Internal error in RDB reading offset 29098883, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1310 +{3548585:S 27 Nov 2026 15:29:49.938 # Internal error in RDB reading offset 5557955, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1325 +{3548585:S 27 Nov 2026 15:29:49.965 # Internal error in RDB reading offset 5557955, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1340 +{3548585:S 27 Nov 2026 15:29:50.015 # Internal error in RDB reading offset 18653473, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1355 +{3548585:S 27 Nov 2026 15:29:50.042 # Internal error in RDB reading offset 5557955, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1370 +{3548585:S 27 Nov 2026 15:29:50.080 # Internal error in RDB reading offset 12459877, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1385 +{3548585:S 27 Nov 2026 15:29:50.108 # Internal error in RDB reading offset 5557955, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1400 +{3548585:S 27 Nov 2026 15:29:50.157 # Internal error in RDB reading offset 18653473, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1415 +{3548585:S 27 Nov 2026 15:29:50.211 # Internal error in RDB reading offset 20941037, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1430 +{3548585:S 27 Nov 2026 15:29:50.248 # Internal error in RDB reading offset 12459877, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1445 +{3548585:S 27 Nov 2026 15:29:50.298 # Internal error in RDB reading offset 18653473, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1460 +{3548585:S 27 Nov 2026 15:29:50.335 # Internal error in RDB reading offset 12459877, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1475 +{3548585:S 27 Nov 2026 15:29:50.374 # Internal error in RDB reading offset 12459877, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1490 +{3548585:S 27 Nov 2026 15:29:50.430 # Internal error in RDB reading offset 22676995, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1505 +{3548585:S 27 Nov 2026 15:29:50.468 # Internal error in RDB reading offset 12459877, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1520 +{3548585:S 27 Nov 2026 15:29:50.505 # Internal error in RDB reading offset 12459877, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1535 +{3548585:S 27 Nov 2026 15:29:50.554 # Internal error in RDB reading offset 18653473, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1550 +{3548585:S 27 Nov 2026 15:29:50.599 # Internal error in RDB reading offset 15990536, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1565 +test took 6089 ms +[ok]: diskless loading short read (9527 ms) +=== (repl external:skip) Starting server on 127.0.0.1:22742 ok +=== () Starting server on 127.0.0.1:22744 ok +=== () Starting server on 127.0.0.1:22746 ok +[ok]: diskless no replicas drop during rdb pipe (6865 ms) +=== () Starting server on 127.0.0.1:22748 ok +=== () Starting server on 127.0.0.1:22750 ok +[ok]: diskless slow replicas drop during rdb pipe (3394 ms) +=== () Starting server on 127.0.0.1:22752 ok +=== () Starting server on 127.0.0.1:22754 ok +[ok]: diskless fast replicas drop during rdb pipe (5795 ms) +=== () Starting server on 127.0.0.1:22756 ok +=== () Starting server on 127.0.0.1:22758 ok +[ok]: diskless all replicas drop during rdb pipe (1389 ms) +=== () Starting server on 127.0.0.1:22760 ok +=== () Starting server on 127.0.0.1:22762 ok +[ok]: diskless timeout replicas drop during rdb pipe (7389 ms) +=== (repl) Starting server on 127.0.0.1:22764 ok +=== () Starting server on 127.0.0.1:22766 ok +[ok]: diskless replication child being killed is collected (1595 ms) +=== (repl) Starting server on 127.0.0.1:22768 ok +=== () Starting server on 127.0.0.1:22770 ok +[ok]: replication child dies when parent is killed - diskless: yes dual-channel-replication-enabled: yes (1375 ms) +=== (repl) Starting server on 127.0.0.1:22772 ok +=== () Starting server on 127.0.0.1:22774 ok +[ok]: replication child dies when parent is killed - diskless: no dual-channel-replication-enabled: no (1579 ms) +=== (repl) Starting server on 127.0.0.1:22776 ok +=== () Starting server on 127.0.0.1:22778 ok +[ok]: diskless replication read pipe cleanup (966 ms) +=== (repl) Starting server on 127.0.0.1:22780 ok +=== () Starting server on 127.0.0.1:22782 ok +=== () Starting server on 127.0.0.1:22784 ok +[ok]: replicaof right after disconnection (1966 ms) +=== (repl) Starting server on 127.0.0.1:22786 ok +=== () Starting server on 127.0.0.1:22788 ok +=== () Starting server on 127.0.0.1:22790 ok +[ok]: Kill rdb child process if its dumping RDB is not useful (1369 ms) +=== (repl external:skip) Starting server on 127.0.0.1:22792 ok +=== () Starting server on 127.0.0.1:22794 ok +=== () Starting server on 127.0.0.1:22796 ok +=== () Starting server on 127.0.0.1:22798 ok +[ok]: Don't disconnect with replicas before loading transferred RDB when full sync with dual-channel-replication yes (3 ms) +[ok]: Discard cache master before loading transferred RDB when full sync with dual-channel-replication yes (109 ms) +=== (repl external:skip) Starting server on 127.0.0.1:22800 ok +=== () Starting server on 127.0.0.1:22802 ok +=== () Starting server on 127.0.0.1:22804 ok +=== () Starting server on 127.0.0.1:22806 ok +[ok]: Don't disconnect with replicas before loading transferred RDB when full sync with dual-channel-replication no (3 ms) +[ok]: Discard cache master before loading transferred RDB when full sync with dual-channel-replication no (109 ms) +=== (repl) Starting server on 127.0.0.1:22808 ok +=== () Starting server on 127.0.0.1:22810 ok +[ok]: replica can handle EINTR if use diskless load (861 ms) +=== (repl external:skip) Starting server on 127.0.0.1:22812 ok +SYNC _addReplyToBufferOrList: REDIS0011ú +valkey-ver8.1.4ú +redis-bitsÀ@úctimeÂ4Ýkúused-memÂ8iúrepl-stream-dbÀúrepl-id(2fa5c60ac7a864d8c728e582579d0b366764284cú repl-offsetÀúaof-baseÀÿ}‹­‡xCß +[ok]: replica do not write the reply to the replication link - SYNC (_addReplyToBufferOrList) (53 ms) +SYNC addReplyDeferredLen: I/O error reading reply + +Waiting for background save to finish... [ok]: replica do not write the reply to the replication link - SYNC (addReplyDeferredLen) (130 ms) +PSYNC _addReplyToBufferOrList: I/O error reading reply + +Waiting for background save to finish... [ok]: replica do not write the reply to the replication link - PSYNC (_addReplyToBufferOrList) (92 ms) +PSYNC addReplyDeferredLen: I/O error reading reply + +Waiting for background save to finish... [ok]: replica do not write the reply to the replication link - PSYNC (addReplyDeferredLen) (88 ms) +[ok]: PSYNC with wrong offset should throw error (3 ms) +=== (repl external:skip) Starting server on 127.0.0.1:22814 ok +=== () Starting server on 127.0.0.1:22816 ok +[ok]: Test replication with lazy expire (856 ms) +=== (repl) Starting server on 127.0.0.1:22818 ok +=== () Starting server on 127.0.0.1:22820 ok +[ok]: replica actually flushes db if use diskless load with flush-before-load dual-channel-replication-enabled=yes (807 ms) +=== (repl) Starting server on 127.0.0.1:22822 ok +=== () Starting server on 127.0.0.1:22824 ok +[ok]: replica actually flushes db if use diskless load with flush-before-load dual-channel-replication-enabled=no (864 ms) +=== (repl external:skip) Starting server on 127.0.0.1:22826 ok +=== () Starting server on 127.0.0.1:22828 ok +[ok]: Replica keep the old data if RDB file save fails in disk-based replication (144 ms) +[104/129 done]: integration/replication (147 seconds) +Testing integration/replication-psync +=== (repl) Starting server on 127.0.0.1:22830 ok +=== () Starting server on 127.0.0.1:22832 ok +[ok]: Slave should be able to synchronize with the master (103 ms) +[ok]: Detect write load to master (1004 ms) +[ok]: Test replication partial resync: no reconnection, just sync (diskless: no, disabled, dual-channel: no, reconnect: 0) (31 ms) +=== (repl) Starting server on 127.0.0.1:22834 ok +=== () Starting server on 127.0.0.1:22836 ok +[ok]: Slave should be able to synchronize with the master (104 ms) +[ok]: Detect write load to master (1004 ms) +[ok]: Test replication partial resync: ok psync (diskless: no, disabled, dual-channel: no, reconnect: 1) (6224 ms) +=== (repl) Starting server on 127.0.0.1:22838 ok +=== () Starting server on 127.0.0.1:22840 ok +[ok]: Slave should be able to synchronize with the master (104 ms) +[ok]: Detect write load to master (1005 ms) +[ok]: Test replication partial resync: no backlog (diskless: no, disabled, dual-channel: no, reconnect: 1) (7785 ms) +=== (repl) Starting server on 127.0.0.1:22842 ok +=== () Starting server on 127.0.0.1:22844 ok +[ok]: Slave should be able to synchronize with the master (103 ms) +[ok]: Detect write load to master (1004 ms) +[ok]: Test replication partial resync: ok after delay (diskless: no, disabled, dual-channel: no, reconnect: 1) (9347 ms) +=== (repl) Starting server on 127.0.0.1:22846 ok +=== () Starting server on 127.0.0.1:22848 ok +[ok]: Slave should be able to synchronize with the master (103 ms) +[ok]: Detect write load to master (1006 ms) +[ok]: Test replication partial resync: backlog expired (diskless: no, disabled, dual-channel: no, reconnect: 1) (9390 ms) +=== (repl) Starting server on 127.0.0.1:22850 ok +=== () Starting server on 127.0.0.1:22852 ok +[ok]: Slave should be able to synchronize with the master (103 ms) +[ok]: Detect write load to master (1004 ms) +[ok]: Test replication partial resync: no reconnection, just sync (diskless: no, swapdb, dual-channel: no, reconnect: 0) (33 ms) +=== (repl) Starting server on 127.0.0.1:22854 ok +=== () Starting server on 127.0.0.1:22856 ok +[ok]: Slave should be able to synchronize with the master (104 ms) +[ok]: Detect write load to master (1005 ms) +[ok]: Test replication partial resync: ok psync (diskless: no, swapdb, dual-channel: no, reconnect: 1) (6229 ms) +=== (repl) Starting server on 127.0.0.1:22858 ok +=== () Starting server on 127.0.0.1:22860 ok +[ok]: Slave should be able to synchronize with the master (103 ms) +[ok]: Detect write load to master (1004 ms) +[ok]: Test replication partial resync: no backlog (diskless: no, swapdb, dual-channel: no, reconnect: 1) (7798 ms) +=== (repl) Starting server on 127.0.0.1:22862 ok +=== () Starting server on 127.0.0.1:22864 ok +[ok]: Slave should be able to synchronize with the master (104 ms) +[ok]: Detect write load to master (1004 ms) +[ok]: Test replication partial resync: ok after delay (diskless: no, swapdb, dual-channel: no, reconnect: 1) (9351 ms) +=== (repl) Starting server on 127.0.0.1:22866 ok +=== () Starting server on 127.0.0.1:22868 ok +[ok]: Slave should be able to synchronize with the master (103 ms) +[ok]: Detect write load to master (1005 ms) +[ok]: Test replication partial resync: backlog expired (diskless: no, swapdb, dual-channel: no, reconnect: 1) (9324 ms) +=== (repl) Starting server on 127.0.0.1:22870 ok +=== () Starting server on 127.0.0.1:22872 ok +[ok]: Slave should be able to synchronize with the master (712 ms) +[ok]: Detect write load to master (0 ms) +[ok]: Test replication partial resync: no reconnection, just sync (diskless: yes, disabled, dual-channel: yes, reconnect: 0) (39 ms) +=== (repl) Starting server on 127.0.0.1:22874 ok +=== () Starting server on 127.0.0.1:22876 ok +[ok]: Slave should be able to synchronize with the master (712 ms) +[ok]: Detect write load to master (0 ms) +[ok]: Test replication partial resync: ok psync (diskless: yes, disabled, dual-channel: yes, reconnect: 1) (6239 ms) +=== (repl) Starting server on 127.0.0.1:22878 ok +=== () Starting server on 127.0.0.1:22880 ok +[ok]: Slave should be able to synchronize with the master (1726 ms) +[ok]: Detect write load to master (0 ms) +[ok]: Test replication partial resync: no backlog (diskless: yes, disabled, dual-channel: yes, reconnect: 1) (7863 ms) +=== (repl) Starting server on 127.0.0.1:22882 ok +=== () Starting server on 127.0.0.1:22884 ok +[ok]: Slave should be able to synchronize with the master (712 ms) +[ok]: Detect write load to master (0 ms) +[ok]: Test replication partial resync: ok after delay (diskless: yes, disabled, dual-channel: yes, reconnect: 1) (9332 ms) +=== (repl) Starting server on 127.0.0.1:22886 ok +=== () Starting server on 127.0.0.1:22888 ok +[ok]: Slave should be able to synchronize with the master (1726 ms) +[ok]: Detect write load to master (0 ms) +[ok]: Test replication partial resync: backlog expired (diskless: yes, disabled, dual-channel: yes, reconnect: 1) (9628 ms) +=== (repl) Starting server on 127.0.0.1:22890 ok +=== () Starting server on 127.0.0.1:22892 ok +[ok]: Slave should be able to synchronize with the master (712 ms) +[ok]: Detect write load to master (1 ms) +[ok]: Test replication partial resync: no reconnection, just sync (diskless: yes, disabled, dual-channel: no, reconnect: 0) (42 ms) +=== (repl) Starting server on 127.0.0.1:22894 ok +=== () Starting server on 127.0.0.1:22896 ok +[ok]: Slave should be able to synchronize with the master (1726 ms) +[ok]: Detect write load to master (0 ms) +[ok]: Test replication partial resync: ok psync (diskless: yes, disabled, dual-channel: no, reconnect: 1) (6242 ms) +=== (repl) Starting server on 127.0.0.1:22898 ok +=== () Starting server on 127.0.0.1:22900 ok +[ok]: Slave should be able to synchronize with the master (712 ms) +[ok]: Detect write load to master (0 ms) +[ok]: Test replication partial resync: no backlog (diskless: yes, disabled, dual-channel: no, reconnect: 1) (7781 ms) +=== (repl) Starting server on 127.0.0.1:22902 ok +=== () Starting server on 127.0.0.1:22904 ok +[ok]: Slave should be able to synchronize with the master (1729 ms) +[ok]: Detect write load to master (0 ms) +[ok]: Test replication partial resync: ok after delay (diskless: yes, disabled, dual-channel: no, reconnect: 1) (9370 ms) +=== (repl) Starting server on 127.0.0.1:22906 ok +=== () Starting server on 127.0.0.1:22908 ok +[ok]: Slave should be able to synchronize with the master (713 ms) +[ok]: Detect write load to master (0 ms) +[ok]: Test replication partial resync: backlog expired (diskless: yes, disabled, dual-channel: no, reconnect: 1) (9469 ms) +=== (repl) Starting server on 127.0.0.1:22910 ok +=== () Starting server on 127.0.0.1:22912 ok +[ok]: Slave should be able to synchronize with the master (712 ms) +[ok]: Detect write load to master (0 ms) +[ok]: Test replication partial resync: no reconnection, just sync (diskless: yes, swapdb, dual-channel: yes, reconnect: 0) (33 ms) +=== (repl) Starting server on 127.0.0.1:22914 ok +=== () Starting server on 127.0.0.1:22916 ok +[ok]: Slave should be able to synchronize with the master (712 ms) +[ok]: Detect write load to master (1 ms) +[ok]: Test replication partial resync: ok psync (diskless: yes, swapdb, dual-channel: yes, reconnect: 1) (6225 ms) +=== (repl) Starting server on 127.0.0.1:22918 ok +=== () Starting server on 127.0.0.1:22920 ok +[ok]: Slave should be able to synchronize with the master (1726 ms) +[ok]: Detect write load to master (0 ms) +[ok]: Test replication partial resync: no backlog (diskless: yes, swapdb, dual-channel: yes, reconnect: 1) (7855 ms) +=== (repl) Starting server on 127.0.0.1:22922 ok +=== () Starting server on 127.0.0.1:22924 ok +[ok]: Slave should be able to synchronize with the master (1727 ms) +[ok]: Detect write load to master (0 ms) +[ok]: Test replication partial resync: ok after delay (diskless: yes, swapdb, dual-channel: yes, reconnect: 1) (9364 ms) +=== (repl) Starting server on 127.0.0.1:22926 ok +=== () Starting server on 127.0.0.1:22928 ok +[ok]: Slave should be able to synchronize with the master (1725 ms) +[ok]: Detect write load to master (0 ms) +[ok]: Test replication partial resync: backlog expired (diskless: yes, swapdb, dual-channel: yes, reconnect: 1) (9512 ms) +=== (repl) Starting server on 127.0.0.1:22930 ok +=== () Starting server on 127.0.0.1:22932 ok +[ok]: Slave should be able to synchronize with the master (712 ms) +[ok]: Detect write load to master (0 ms) +[ok]: Test replication partial resync: no reconnection, just sync (diskless: yes, swapdb, dual-channel: no, reconnect: 0) (300 ms) +=== (repl) Starting server on 127.0.0.1:22934 ok +=== () Starting server on 127.0.0.1:22936 ok +[ok]: Slave should be able to synchronize with the master (1726 ms) +[ok]: Detect write load to master (1 ms) +[ok]: Test replication partial resync: ok psync (diskless: yes, swapdb, dual-channel: no, reconnect: 1) (6300 ms) +=== (repl) Starting server on 127.0.0.1:22938 ok +=== () Starting server on 127.0.0.1:22940 ok +[ok]: Slave should be able to synchronize with the master (712 ms) +[ok]: Detect write load to master (0 ms) +[ok]: Test replication partial resync: no backlog (diskless: yes, swapdb, dual-channel: no, reconnect: 1) (7797 ms) +=== (repl) Starting server on 127.0.0.1:22942 ok +=== () Starting server on 127.0.0.1:22944 ok +[ok]: Slave should be able to synchronize with the master (1726 ms) +[ok]: Detect write load to master (0 ms) +[ok]: Test replication partial resync: ok after delay (diskless: yes, swapdb, dual-channel: no, reconnect: 1) (9352 ms) +=== (repl) Starting server on 127.0.0.1:22946 ok +=== () Starting server on 127.0.0.1:22948 ok +[ok]: Slave should be able to synchronize with the master (712 ms) +[ok]: Detect write load to master (0 ms) +[ok]: Test replication partial resync: backlog expired (diskless: yes, swapdb, dual-channel: no, reconnect: 1) (9450 ms) +[105/129 done]: integration/replication-psync (248 seconds) +Testing integration/replication-buffer +=== (repl external:skip) Starting server on 127.0.0.1:22950 ok +=== () Starting server on 127.0.0.1:22952 ok +=== () Starting server on 127.0.0.1:22954 ok +=== () Starting server on 127.0.0.1:22956 ok +[ok]: All replicas share one global replication buffer dualchannel yes (128 ms) +[ok]: Replication buffer will become smaller when no replica uses dualchannel yes (6 ms) +=== (repl external:skip) Starting server on 127.0.0.1:22958 ok +=== () Starting server on 127.0.0.1:22960 ok +=== () Starting server on 127.0.0.1:22962 ok +=== () Starting server on 127.0.0.1:22964 ok +[ok]: All replicas share one global replication buffer dualchannel no (113 ms) +[ok]: Replication buffer will become smaller when no replica uses dualchannel no (6 ms) +=== (repl external:skip) Starting server on 127.0.0.1:22966 ok +=== () Starting server on 127.0.0.1:22968 ok +=== () Starting server on 127.0.0.1:22970 ok +[ok]: Replication backlog size can outgrow the backlog limit config dualchannel yes (1789 ms) +[ok]: Replica could use replication buffer (beyond backlog config) for partial resynchronization dualchannel yes (2128 ms) +[ok]: Replication backlog memory will become smaller if disconnecting with replica dualchannel yes (490 ms) +=== (repl external:skip) Starting server on 127.0.0.1:22972 ok +=== () Starting server on 127.0.0.1:22974 ok +=== () Starting server on 127.0.0.1:22976 ok +[ok]: Replication backlog size can outgrow the backlog limit config dualchannel no (1855 ms) +[ok]: Replica could use replication buffer (beyond backlog config) for partial resynchronization dualchannel no (2088 ms) +[ok]: Replication backlog memory will become smaller if disconnecting with replica dualchannel no (490 ms) +=== (repl external:skip) Starting server on 127.0.0.1:22978 ok +=== () Starting server on 127.0.0.1:22980 ok +[ok]: Partial resynchronization is successful even client-output-buffer-limit is less than repl-backlog-size. dualchannel yes (4297 ms) +=== (repl external:skip) Starting server on 127.0.0.1:22982 ok +=== () Starting server on 127.0.0.1:22984 ok +[ok]: The update of replBufBlock's repl_offset is ok - Regression test for #11666 (33 ms) +[ok]: Replica client-output-buffer size is limited to backlog_limit/16 when no replication data is pending. dualchannel yes (1257 ms) +=== (repl external:skip) Starting server on 127.0.0.1:22986 ok +=== () Starting server on 127.0.0.1:22988 ok +[ok]: Partial resynchronization is successful even client-output-buffer-limit is less than repl-backlog-size. dualchannel no (4297 ms) +=== (repl external:skip) Starting server on 127.0.0.1:22990 ok +=== () Starting server on 127.0.0.1:22992 ok +[ok]: The update of replBufBlock's repl_offset is ok - Regression test for #11666 (33 ms) +[ok]: Replica client-output-buffer size is limited to backlog_limit/16 when no replication data is pending. dualchannel no (2264 ms) +[106/129 done]: integration/replication-buffer (31 seconds) +Testing integration/replication-4 +=== (repl network external:skip singledb:skip) Starting server on 127.0.0.1:22994 ok +=== () Starting server on 127.0.0.1:22996 ok +[ok]: First server should have role slave after SLAVEOF (2 ms) +[ok]: Test replication with parallel clients writing in different DBs (5200 ms) +=== (repl external:skip) Starting server on 127.0.0.1:22998 ok +=== () Starting server on 127.0.0.1:23000 ok +[ok]: First server should have role slave after SLAVEOF (102 ms) +[ok]: With min-slaves-to-write (1,3): master should be writable (2 ms) +[ok]: With min-slaves-to-write (2,3): master should not be writable (1 ms) +[ok]: With min-slaves-to-write function without no-write flag (1 ms) +[ok]: With not enough good slaves, read in Lua script is still accepted (1 ms) +[ok]: With min-slaves-to-write: master not writable with lagged slave (2654 ms) +=== (repl external:skip) Starting server on 127.0.0.1:23002 ok +=== () Starting server on 127.0.0.1:23004 ok +[ok]: First server should have role slave after SLAVEOF (103 ms) +Replication of an expired key does not delete the expired key test attempts: 1 +[ok]: Replication of an expired key does not delete the expired key (2381 ms) +=== (repl external:skip) Starting server on 127.0.0.1:23006 ok +=== () Starting server on 127.0.0.1:23008 ok +[ok]: First server should have role slave after SLAVEOF (2 ms) +[ok]: Replication: commands with many arguments (issue #1221) (8650 ms) +[ok]: spopwithcount rewrite srem command (126 ms) +[ok]: Replication of SPOP command -- alsoPropagate() API (624 ms) +=== (repl external:skip) Starting server on 127.0.0.1:23010 ok +=== () Starting server on 127.0.0.1:23012 ok +[ok]: First server should have role slave after SLAVEOF (104 ms) +[ok]: Data divergence can happen under default conditions (756 ms) +[ok]: Data divergence is allowed on writable replicas (4 ms) +[107/129 done]: integration/replication-4 (24 seconds) +Testing integration/replication-3 +=== (repl external:skip) Starting server on 127.0.0.1:23014 ok +=== () Starting server on 127.0.0.1:23016 ok +[ok]: First server should have role slave after SLAVEOF (103 ms) +[ok]: MASTER and SLAVE consistency with expire (3699 ms) +[ok]: Master can replicate command longer than client-query-buffer-limit on replica (197 ms) +[ok]: Slave is able to evict keys created in writable slaves (6006 ms) +[ok]: Writable replica doesn't return expired keys (106 ms) +[ok]: PFCOUNT updates cache on readonly replica (3 ms) +[ok]: PFCOUNT doesn't use expired key on readonly replica (104 ms) +[108/129 done]: integration/replication-3 (11 seconds) +Testing integration/replication-2 +=== (repl external:skip) Starting server on 127.0.0.1:23018 ok +=== () Starting server on 127.0.0.1:23020 ok +[ok]: First server should have role slave after SLAVEOF (103 ms) +[ok]: If min-slaves-to-write is honored, write is accepted (608 ms) +[ok]: No write if min-slaves-to-write is < attached slaves (1 ms) +[ok]: If min-slaves-to-write is honored, write is accepted (again) (1 ms) +[ok]: No write if min-slaves-max-lag is > of the slave lag (3260 ms) +[ok]: min-slaves-to-write is ignored by slaves (2 ms) +[ok]: MASTER and SLAVE dataset should be identical after complex ops (5631 ms) +[109/129 done]: integration/replication-2 (10 seconds) +Testing integration/replica-redirect +=== (needs:repl external:skip) Starting server on 127.0.0.1:23022 ok +=== () Starting server on 127.0.0.1:23024 ok +[ok]: write command inside MULTI is QUEUED, EXEC should be REDIRECT (236 ms) +[ok]: write command inside MULTI is REDIRECT, EXEC should be EXECABORT (32 ms) +[ok]: replica allow read command by default (1 ms) +[ok]: replica reply READONLY error for write command by default (0 ms) +[ok]: replica redirect read and write command after CLIENT CAPA REDIRECT (1 ms) +[ok]: CLIENT INFO (0 ms) +[ok]: non-data access commands are not redirected (0 ms) +[ok]: replica allow read command in READONLY mode (0 ms) +[ok]: client paused during failover-in-progress (365 ms) +[110/129 done]: integration/replica-redirect (1 seconds) +Testing integration/rdb +=== () Starting server on 127.0.0.1:23026 ok +[ok]: test old version rdb file (1 ms) +=== () Starting server on 127.0.0.1:23028 ok +[ok]: RDB encoding loading test (13 ms) +=== () Starting server on 127.0.0.1:23030 +[ok]: RDB future version loading, strict version check (2 ms) +=== () Starting server on 127.0.0.1:23032 ok +[ok]: RDB future version loading, relaxed version check (13 ms) +=== () Starting server on 127.0.0.1:23034 ok +[ok]: Server started empty with non-existing RDB file (1 ms) +=== () Starting server on 127.0.0.1:23036 ok +[ok]: Server started empty with empty RDB file (1 ms) +=== () Starting server on 127.0.0.1:23038 ok +[ok]: Test RDB stream encoding (169 ms) +[ok]: Test RDB stream encoding - sanitize dump (6 ms) +=== () Starting server on 127.0.0.1:23040 +[ok]: Server should not start if RDB file can't be open (1 ms) +=== () Starting server on 127.0.0.1:23042 +[ok]: Server should not start if RDB is corrupted (1 ms) +=== () Starting server on 127.0.0.1:23044 ok +[ok]: Test FLUSHALL aborts bgsave (370 ms) +[ok]: bgsave resets the change counter (105 ms) +[ok]: bgsave cancel aborts save (138 ms) +[ok]: bgsave cancel schedulled request (16 ms) +=== () Starting server on 127.0.0.1:23046 ok +[ok]: client freed during loading (1045 ms) +=== () Starting server on 127.0.0.1:23048 ok +[ok]: Test RDB load info (655 ms) +=== () Starting server on 127.0.0.1:23050 ok +Keys before bgsave start: 10000 +COW info before copy-on-write: 0 +current_save_keys_processed info : 0 +COW info before copy-on-write: 471040 +current_save_keys_processed info : 1 +[ok]: Test child sending info (1869 ms) +=== () Starting server on 127.0.0.1:23052 ok +[ok]: script won't load anymore if it's in rdb (0 ms) +=== () Starting server on 127.0.0.1:23054 ok + +Waiting for background save to finish... +Waiting for background save to finish... +Waiting for background save to finish... [ok]: failed bgsave prevents writes (267 ms) +[111/129 done]: integration/rdb (8 seconds) +Testing integration/psync2 +=== (psync2 external:skip) Starting server on 127.0.0.1:23056 ok +=== () Starting server on 127.0.0.1:23058 ok +=== () Starting server on 127.0.0.1:23060 ok +=== () Starting server on 127.0.0.1:23062 ok +=== () Starting server on 127.0.0.1:23064 ok +[ok]: PSYNC2: --- CYCLE 1 --- (0 ms) +[ok]: PSYNC2: [NEW LAYOUT] Set #1 as master (1 ms) +[ok]: PSYNC2: Set #0 to replicate from #4 (0 ms) +[ok]: PSYNC2: Set #4 to replicate from #1 (1 ms) +[ok]: PSYNC2: Set #2 to replicate from #4 (1 ms) +[ok]: PSYNC2: Set #3 to replicate from #4 (1 ms) +[ok]: PSYNC2: cluster is consistent after failover (3 ms) +[ok]: PSYNC2: generate load while killing replication links (5000 ms) +[ok]: PSYNC2: cluster is consistent after load (x = 38132) (5 ms) +[ok]: PSYNC2: total sum of full synchronizations is exactly 4 (2 ms) +[ok]: PSYNC2: --- CYCLE 2 --- (0 ms) +[ok]: PSYNC2: [NEW LAYOUT] Set #0 as master (0 ms) +[ok]: PSYNC2: Set #4 to replicate from #2 (0 ms) +[ok]: PSYNC2: Set #1 to replicate from #0 (0 ms) +[ok]: PSYNC2: Set #2 to replicate from #0 (1 ms) +[ok]: PSYNC2: Set #3 to replicate from #2 (1 ms) +[ok]: PSYNC2: cluster is consistent after failover (2 ms) +[ok]: PSYNC2: generate load while killing replication links (5000 ms) +[ok]: PSYNC2: cluster is consistent after load (x = 86461) (0 ms) +[ok]: PSYNC2: total sum of full synchronizations is exactly 4 (1 ms) +[ok]: PSYNC2: --- CYCLE 3 --- (0 ms) +[ok]: PSYNC2: [NEW LAYOUT] Set #4 as master (0 ms) +[ok]: PSYNC2: Set #0 to replicate from #4 (0 ms) +[ok]: PSYNC2: Set #1 to replicate from #0 (0 ms) +[ok]: PSYNC2: Set #2 to replicate from #1 (1 ms) +[ok]: PSYNC2: Set #3 to replicate from #0 (1 ms) +[ok]: PSYNC2: cluster is consistent after failover (2 ms) +[ok]: PSYNC2: generate load while killing replication links (5000 ms) +[ok]: PSYNC2: cluster is consistent after load (x = 121035) (4 ms) +[ok]: PSYNC2: total sum of full synchronizations is exactly 4 (1 ms) +[ok]: PSYNC2: --- CYCLE 4 --- (0 ms) +[ok]: PSYNC2: [NEW LAYOUT] Set #1 as master (0 ms) +[ok]: PSYNC2: Set #4 to replicate from #1 (1 ms) +[ok]: PSYNC2: Set #0 to replicate from #1 (1 ms) +[ok]: PSYNC2: Set #2 to replicate from #4 (1 ms) +[ok]: PSYNC2: Set #3 to replicate from #4 (1 ms) +[ok]: PSYNC2: cluster is consistent after failover (1 ms) +[ok]: PSYNC2: generate load while killing replication links (5000 ms) +[ok]: PSYNC2: cluster is consistent after load (x = 159513) (9 ms) +[ok]: PSYNC2: total sum of full synchronizations is exactly 4 (1 ms) +[ok]: PSYNC2: --- CYCLE 5 --- (0 ms) +[ok]: PSYNC2: [NEW LAYOUT] Set #1 as master (1 ms) +[ok]: PSYNC2: Set #0 to replicate from #4 (1 ms) +[ok]: PSYNC2: Set #4 to replicate from #3 (0 ms) +[ok]: PSYNC2: Set #2 to replicate from #1 (1 ms) +[ok]: PSYNC2: Set #3 to replicate from #1 (0 ms) +[ok]: PSYNC2: cluster is consistent after failover (0 ms) +[ok]: PSYNC2: generate load while killing replication links (5000 ms) +[ok]: PSYNC2: cluster is consistent after load (x = 199352) (9 ms) +[ok]: PSYNC2: total sum of full synchronizations is exactly 4 (1 ms) +[ok]: PSYNC2: Bring the master back again for next test (3 ms) +[ok]: PSYNC2: Partial resync after restart using RDB aux fields (179 ms) +[112/129 done]: integration/psync2 (44 seconds) +Testing integration/psync2-reg +=== (psync2 external:skip) Starting server on 127.0.0.1:23066 ok +=== () Starting server on 127.0.0.1:23068 ok +=== () Starting server on 127.0.0.1:23070 ok +[ok]: PSYNC2 #3899 regression: setup (1033 ms) +[ok]: PSYNC2 #3899 regression: kill chained replica (1 ms) +[ok]: PSYNC2 #3899 regression: kill first replica (1 ms) +[ok]: PSYNC2 #3899 regression: kill chained replica (1 ms) +[ok]: PSYNC2 #3899 regression: kill first replica (0 ms) +[ok]: PSYNC2 #3899 regression: kill first replica (0 ms) +[ok]: PSYNC2 #3899 regression: kill chained replica (0 ms) +[ok]: PSYNC2 #3899 regression: kill chained replica (0 ms) +[ok]: PSYNC2 #3899 regression: kill first replica (0 ms) +[ok]: PSYNC2 #3899 regression: kill chained replica (1 ms) +[ok]: PSYNC2 #3899 regression: kill first replica (0 ms) +[ok]: PSYNC2 #3899 regression: kill first replica (1 ms) +[ok]: PSYNC2 #3899 regression: kill first replica (0 ms) +[ok]: PSYNC2 #3899 regression: kill chained replica (1 ms) +[ok]: PSYNC2 #3899 regression: kill chained replica (0 ms) +[ok]: PSYNC2 #3899 regression: kill first replica (1 ms) +[ok]: PSYNC2 #3899 regression: kill chained replica (0 ms) +[ok]: PSYNC2 #3899 regression: kill chained replica (0 ms) +[ok]: PSYNC2 #3899 regression: kill first replica (0 ms) +[ok]: PSYNC2 #3899 regression: kill chained replica (1 ms) +[ok]: PSYNC2 #3899 regression: kill first replica (1 ms) +[ok]: PSYNC2 #3899 regression: kill chained replica (1 ms) +[ok]: PSYNC2 #3899 regression: kill first replica (0 ms) +[ok]: PSYNC2 #3899 regression: kill first replica (1 ms) +[ok]: PSYNC2 #3899 regression: kill first replica (0 ms) +[ok]: PSYNC2 #3899 regression: verify consistency (14 ms) +[113/129 done]: integration/psync2-reg (22 seconds) +Testing integration/psync2-pingoff +=== (psync2 external:skip) Starting server on 127.0.0.1:23072 ok +=== () Starting server on 127.0.0.1:23074 ok +[ok]: PSYNC2 pingoff: setup (1008 ms) +[ok]: PSYNC2 pingoff: write and wait replication (2 ms) +[ok]: PSYNC2 pingoff: pause replica and promote it (5002 ms) +[ok]: Make the old master a replica of the new one and check conditions (1010 ms) +=== (psync2 external:skip) Starting server on 127.0.0.1:23076 ok +=== () Starting server on 127.0.0.1:23078 ok +=== () Starting server on 127.0.0.1:23080 ok +=== () Starting server on 127.0.0.1:23082 ok +=== () Starting server on 127.0.0.1:23084 ok +[ok]: test various edge cases of repl topology changes with missing pings at the end (4195 ms) +=== (psync2 external:skip) Starting server on 127.0.0.1:23086 ok +=== () Starting server on 127.0.0.1:23088 ok +=== () Starting server on 127.0.0.1:23090 ok +[ok]: Chained replicas disconnect when replica re-connect with the same master (2935 ms) +[114/129 done]: integration/psync2-pingoff (18 seconds) +Testing integration/psync2-master-restart +=== (psync2 external:skip) Starting server on 127.0.0.1:23092 ok +=== () Starting server on 127.0.0.1:23094 ok +=== () Starting server on 127.0.0.1:23096 ok +[ok]: PSYNC2: Partial resync after Master restart using RDB aux fields when offset is 0 (1188 ms) +[ok]: PSYNC2: Partial resync after Master restart using RDB aux fields with data (1166 ms) +[ok]: PSYNC2: Partial resync after Master restart using RDB aux fields with expire (2594 ms) +[ok]: PSYNC2: Full resync after Master restart when too many key expired (1865 ms) +[115/129 done]: integration/psync2-master-restart (9 seconds) +Testing integration/logging +=== () Starting server on 127.0.0.1:23098 ok +{3557182:M 27 Nov 2026 15:37:39.916 # valkey 8.1.4 crashed by signal: 6, si_code: 0} 40 +[ok]: Crash report generated on SIGABRT (105 ms) +=== () Starting server on 127.0.0.1:23100 ok +{3557209:M 27 Nov 2026 15:37:40.132 # valkey 8.1.4 crashed by signal: 11, si_code: 2} 40 +[ok]: Crash report generated on DEBUG SEGFAULT (12 ms) +=== () Starting server on 127.0.0.1:23102 ok +{Received SIGALRM} 38 +[ok]: Stacktraces generated on SIGALRM (111 ms) +=== () Starting server on 127.0.0.1:23104 ok +[ok]: Config hide-user-data-from-log is off (2 ms) +=== () Starting server on 127.0.0.1:23106 ok +[ok]: Config hide-user-data-from-log is on (2 ms) +[116/129 done]: integration/logging (2 seconds) +Testing integration/failover +=== (failover external:skip) Starting server on 127.0.0.1:23108 ok +=== () Starting server on 127.0.0.1:23110 ok +=== () Starting server on 127.0.0.1:23112 ok +[ok]: failover command fails without connected replica (0 ms) +[ok]: setup replication for following tests (207 ms) +[ok]: failover command fails with invalid host (1 ms) +[ok]: failover command fails with invalid port (0 ms) +[ok]: failover command fails with just force and timeout (1 ms) +[ok]: failover command fails when sent to a replica (0 ms) +[ok]: failover command fails with force without timeout (1 ms) +[ok]: failover command to specific replica works (1908 ms) +[ok]: failover command to any replica works (591 ms) +[ok]: failover to a replica with force works (491 ms) +[ok]: failover with timeout aborts if replica never catches up (603 ms) +[ok]: failovers can be aborted (81 ms) +[ok]: failover aborts if target rejects sync request (519 ms) +[117/129 done]: integration/failover (6 seconds) +Testing integration/dual-channel-replication +=== (dual-channel-replication external:skip) Starting server on 127.0.0.1:23114 ok +=== () Starting server on 127.0.0.1:23116 ok +[ok]: Test dual-channel-replication-enabled replica enters handshake (1005 ms) +[ok]: Test dual-channel-replication-enabled enters wait_bgsave (0 ms) +[ok]: Test dual-channel-replication-enabled replica is able to sync (914 ms) +[ok]: Dual-channel replication counts snapshot bytes (102 ms) +=== (dual-channel-replication external:skip) Starting server on 127.0.0.1:23118 ok +=== () Starting server on 127.0.0.1:23120 ok +[ok]: dual-channel replication reports rdb transfer bytes (204 ms) +=== (dual-channel-replication external:skip) Starting server on 127.0.0.1:23122 ok +=== () Starting server on 127.0.0.1:23124 ok +[ok]: Primary memory usage does not increase during dual-channel-replication sync (402 ms) +[ok]: Steady state after dual channel sync (1006 ms) +[ok]: Dual channel replication sync doesn't impair subsequent normal syncs (408 ms) +=== (dual-channel-replication external:skip) Starting server on 127.0.0.1:23126 ok +=== () Starting server on 127.0.0.1:23128 ok +[ok]: Toggle dual-channel-replication-enabled: yes start (586 ms) +[ok]: Online toggle dual-channel-replication-enabled on primary, starting with 'yes' (2151 ms) +[ok]: Online toggle dual-channel-replication-enabled on replica, starting with 'yes' (11199 ms) +[ok]: Toggle dual-channel-replication-enabled: no start (11172 ms) +[ok]: Online toggle dual-channel-replication-enabled on primary, starting with 'no' (2150 ms) +[ok]: Online toggle dual-channel-replication-enabled on replica, starting with 'no' (2163 ms) +=== (dual-channel-replication external:skip) Starting server on 127.0.0.1:23130 ok +=== () Starting server on 127.0.0.1:23132 ok +=== () Starting server on 127.0.0.1:23134 ok +[ok]: dual-channel-replication with multiple replicas (5470 ms) +[ok]: Test diverse replica sync: dual-channel on/off (5075 ms) +[ok]: Test replica's buffer limit reached (1606 ms) +[ok]: dual-channel-replication fails when primary diskless disabled (1007 ms) +=== (dual-channel-replication external:skip) Starting server on 127.0.0.1:23136 ok +=== () Starting server on 127.0.0.1:23138 ok +[ok]: Test dual-channel-replication sync- psync established after rdb load (136 ms) +=== (dual-channel-replication external:skip) Starting server on 127.0.0.1:23140 ok +=== () Starting server on 127.0.0.1:23142 ok +[ok]: dual-channel-replication: Primary COB growth with inactive replica (3969 ms) +Waiting for process 3561547 to exit... +=== (dual-channel-replication external:skip) Starting server on 127.0.0.1:23144 ok +=== () Starting server on 127.0.0.1:23146 ok +=== () Starting server on 127.0.0.1:23148 ok +[ok]: Test dual-channel: primary tracking replica backlog refcount - start with empty backlog (141 ms) +[ok]: Test dual-channel: primary tracking replica backlog refcount - start with backlog (539 ms) +=== (dual-channel-replication external:skip) Starting server on 127.0.0.1:23150 ok +=== () Starting server on 127.0.0.1:23152 ok +[ok]: Psync established after rdb load - within grace period (233 ms) +=== (dual-channel-replication external:skip) Starting server on 127.0.0.1:23154 ok +=== () Starting server on 127.0.0.1:23156 ok +[ok]: Psync established after RDB load - beyond grace period (2283 ms) +Waiting for process 3569568 to exit... +Waiting for process 3569568 to exit... +=== (dual-channel-replication external:skip) Starting server on 127.0.0.1:23158 ok +=== () Starting server on 127.0.0.1:23160 ok +[ok]: Test dual-channel-replication primary gets cob overrun before established psync (345 ms) +Waiting for process 3575580 to exit... +Waiting for process 3575580 to exit... +Waiting for process 3575580 to exit... +Waiting for process 3575580 to exit... +Waiting for process 3575580 to exit... +Waiting for process 3575580 to exit... +Waiting for process 3575580 to exit... +Waiting for process 3575580 to exit... +=== (dual-channel-replication external:skip) Starting server on 127.0.0.1:23162 ok +=== () Starting server on 127.0.0.1:23164 ok +[ok]: Test dual-channel-replication primary gets cob overrun during replica rdb load (1033 ms) +=== (dual-channel-replication external:skip) Starting server on 127.0.0.1:23166 ok +=== () Starting server on 127.0.0.1:23168 ok +=== () Starting server on 127.0.0.1:23170 ok +[ok]: Sync should continue if not all slaves dropped (11081 ms) +[ok]: Primary abort sync if all slaves dropped dual-channel-replication (6055 ms) +=== (dual-channel-replication external:skip) Starting server on 127.0.0.1:23172 ok +=== () Starting server on 127.0.0.1:23174 ok +[ok]: Test dual-channel-replication replica main channel disconnected (1212 ms) +[ok]: Test dual channel replication slave of no one after main conn kill (7 ms) +[ok]: Test dual-channel-replication replica rdb connection disconnected (1200 ms) +[ok]: Test dual channel replication slave of no one after rdb conn kill (2 ms) +[ok]: Test dual-channel-replication primary reject set-rdb-client after client killed (1243 ms) +=== (dual-channel-replication external:skip) Starting server on 127.0.0.1:23176 ok +=== () Starting server on 127.0.0.1:23178 ok +=== () Starting server on 127.0.0.1:23180 ok +[ok]: Test replica unable to join dual channel replication sync after started (1135 ms) +=== (dual-channel-replication external:skip) Starting server on 127.0.0.1:23182 ok +=== () Starting server on 127.0.0.1:23184 ok +[ok]: Replica recover rdb-connection killed (1241 ms) +[ok]: Replica recover main-connection killed (1146 ms) +=== (dual-channel-replication external:skip) Starting server on 127.0.0.1:23186 ok +=== () Starting server on 127.0.0.1:23188 ok +[ok]: Replica notice main-connection killed during rdb load callback (7356 ms) +[118/129 done]: integration/dual-channel-replication (126 seconds) +Testing integration/dismiss-mem +=== (dismiss external:skip) Starting server on 127.0.0.1:23190 ok + +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... [ok]: dismiss all data types memory (1191 ms) + +Waiting for background save to finish... +Waiting for background save to finish... [ok]: dismiss client output buffer (1843 ms) + +Waiting for background save to finish... [ok]: dismiss client query buffer (195 ms) +=== () Starting server on 127.0.0.1:23192 ok + +Waiting for background save to finish... +Waiting for background save to finish... [ok]: dismiss replication backlog (1364 ms) +[119/129 done]: integration/dismiss-mem (5 seconds) +Testing integration/cross-version-replication +[ignore]: Other server path not provided +[120/129 done]: integration/cross-version-replication (0 seconds) +Testing integration/corrupt-dump +=== () Starting server on 127.0.0.1:23194 ok +[ok]: corrupt payload: #7445 - with sanitize (284 ms) +=== () Starting server on 127.0.0.1:23196 ok +[ok]: corrupt payload: hash with valid zip list header, invalid entry len (260 ms) +=== () Starting server on 127.0.0.1:23198 ok +[ok]: corrupt payload: invalid zlbytes header (275 ms) +=== () Starting server on 127.0.0.1:23200 ok +[ok]: corrupt payload: valid zipped hash header, dup records (272 ms) +=== () Starting server on 127.0.0.1:23202 ok +[ok]: corrupt payload: quicklist big ziplist prev len (235 ms) +=== () Starting server on 127.0.0.1:23204 ok +[ok]: corrupt payload: quicklist small ziplist prev len (238 ms) +=== () Starting server on 127.0.0.1:23206 ok +[ok]: corrupt payload: quicklist ziplist wrong count (236 ms) +=== () Starting server on 127.0.0.1:23208 ok +[ok]: corrupt payload: #3080 - quicklist (223 ms) +=== () Starting server on 127.0.0.1:23210 ok +[ok]: corrupt payload: quicklist with empty ziplist (224 ms) +=== () Starting server on 127.0.0.1:23212 ok +[ok]: corrupt payload: quicklist encoded_len is 0 (235 ms) +=== () Starting server on 127.0.0.1:23214 ok +[ok]: corrupt payload: quicklist listpack entry start with EOF (231 ms) +=== () Starting server on 127.0.0.1:23216 ok +[ok]: corrupt payload: #3080 - ziplist (253 ms) +=== () Starting server on 127.0.0.1:23218 +[ok]: corrupt payload: load corrupted rdb with no CRC - #3505 (144 ms) +=== () Starting server on 127.0.0.1:23220 ok +[ok]: corrupt payload: load corrupted rdb with empty keys (274 ms) +=== () Starting server on 127.0.0.1:23222 ok +[ok]: corrupt payload: load corrupted rdb with empty keys (242 ms) +=== () Starting server on 127.0.0.1:23224 ok +[ok]: corrupt payload: listpack invalid size header (233 ms) +=== () Starting server on 127.0.0.1:23226 ok +[ok]: corrupt payload: listpack too long entry len (211 ms) +=== () Starting server on 127.0.0.1:23228 ok +[ok]: corrupt payload: listpack very long entry len (203 ms) +=== () Starting server on 127.0.0.1:23230 ok +[ok]: corrupt payload: listpack too long entry prev len (249 ms) +=== () Starting server on 127.0.0.1:23232 ok +[ok]: corrupt payload: stream with duplicate consumers (233 ms) +=== () Starting server on 127.0.0.1:23234 ok +[ok]: corrupt payload: hash ziplist with duplicate records (249 ms) +=== () Starting server on 127.0.0.1:23236 ok +[ok]: corrupt payload: hash listpack with duplicate records (259 ms) +=== () Starting server on 127.0.0.1:23238 ok +[ok]: corrupt payload: hash listpack with duplicate records - convert (218 ms) +=== () Starting server on 127.0.0.1:23240 ok +[ok]: corrupt payload: hash ziplist uneven record count (260 ms) +=== () Starting server on 127.0.0.1:23242 ok +[ok]: corrupt payload: hash duplicate records (250 ms) +=== () Starting server on 127.0.0.1:23244 ok +[ok]: corrupt payload: hash empty zipmap (237 ms) +=== () Starting server on 127.0.0.1:23246 ok +[ok]: corrupt payload: fuzzer findings - NPD in streamIteratorGetID (190 ms) +=== () Starting server on 127.0.0.1:23248 ok +[ok]: corrupt payload: fuzzer findings - listpack NPD on invalid stream (180 ms) +=== () Starting server on 127.0.0.1:23250 ok +[ok]: corrupt payload: fuzzer findings - NPD in quicklistIndex (242 ms) +=== () Starting server on 127.0.0.1:23252 ok +[ok]: corrupt payload: fuzzer findings - encoded entry header reach outside the allocation (225 ms) +=== () Starting server on 127.0.0.1:23254 ok +[ok]: corrupt payload: fuzzer findings - invalid ziplist encoding (230 ms) +=== () Starting server on 127.0.0.1:23256 ok +[ok]: corrupt payload: fuzzer findings - hash crash (235 ms) +=== () Starting server on 127.0.0.1:23258 ok +[ok]: corrupt payload: fuzzer findings - uneven entry count in hash (238 ms) +=== () Starting server on 127.0.0.1:23260 ok +[ok]: corrupt payload: fuzzer findings - invalid read in lzf_decompress (243 ms) +=== () Starting server on 127.0.0.1:23262 ok +[ok]: corrupt payload: fuzzer findings - leak in rdbloading due to dup entry in set (244 ms) +=== () Starting server on 127.0.0.1:23264 ok +[ok]: corrupt payload: fuzzer findings - empty intset (237 ms) +=== () Starting server on 127.0.0.1:23266 ok +[ok]: corrupt payload: fuzzer findings - zset ziplist entry lensize is 0 (238 ms) +=== () Starting server on 127.0.0.1:23268 ok +[ok]: corrupt payload: fuzzer findings - valgrind ziplist prevlen reaches outside the ziplist (234 ms) +=== () Starting server on 127.0.0.1:23270 ok +[ok]: corrupt payload: fuzzer findings - valgrind - bad rdbLoadDoubleValue (234 ms) +=== () Starting server on 127.0.0.1:23272 ok +[ok]: corrupt payload: fuzzer findings - valgrind ziplist prev too big (231 ms) +=== () Starting server on 127.0.0.1:23274 ok +[ok]: corrupt payload: fuzzer findings - lzf decompression fails, avoid valgrind invalid read (234 ms) +=== () Starting server on 127.0.0.1:23276 ok +[ok]: corrupt payload: fuzzer findings - stream bad lp_count (228 ms) +=== () Starting server on 127.0.0.1:23278 ok +[ok]: corrupt payload: fuzzer findings - stream bad lp_count - unsanitized (158 ms) +=== () Starting server on 127.0.0.1:23280 ok +[ok]: corrupt payload: fuzzer findings - stream integrity check issue (241 ms) +=== () Starting server on 127.0.0.1:23282 ok +[ok]: corrupt payload: fuzzer findings - infinite loop (163 ms) +=== () Starting server on 127.0.0.1:23284 ok +[ok]: corrupt payload: fuzzer findings - hash ziplist too long entry len (230 ms) +=== () Starting server on 127.0.0.1:23286 ok +[ok]: corrupt payload: OOM in rdbGenericLoadStringObject (234 ms) +=== () Starting server on 127.0.0.1:23288 ok +[ok]: corrupt payload: fuzzer findings - OOM in dictExpand (234 ms) +=== () Starting server on 127.0.0.1:23290 ok +[ok]: corrupt payload: fuzzer findings - zset ziplist invalid tail offset (238 ms) +=== () Starting server on 127.0.0.1:23292 ok +[ok]: corrupt payload: fuzzer findings - negative reply length (213 ms) +=== () Starting server on 127.0.0.1:23294 ok +[ok]: corrupt payload: fuzzer findings - valgrind negative malloc (240 ms) +=== () Starting server on 127.0.0.1:23296 ok +[ok]: corrupt payload: fuzzer findings - valgrind invalid read (260 ms) +=== () Starting server on 127.0.0.1:23298 ok +[ok]: corrupt payload: fuzzer findings - empty hash ziplist (250 ms) +=== () Starting server on 127.0.0.1:23300 ok +[ok]: corrupt payload: fuzzer findings - stream with no records (213 ms) +=== () Starting server on 127.0.0.1:23302 ok +[ok]: corrupt payload: fuzzer findings - quicklist ziplist tail followed by extra data which start with 0xff (266 ms) +=== () Starting server on 127.0.0.1:23304 ok +[ok]: corrupt payload: fuzzer findings - dict init to huge size (241 ms) +=== () Starting server on 127.0.0.1:23306 ok +[ok]: corrupt payload: fuzzer findings - huge string (282 ms) +=== () Starting server on 127.0.0.1:23308 ok +[ok]: corrupt payload: fuzzer findings - stream PEL without consumer (271 ms) +=== () Starting server on 127.0.0.1:23310 ok +[ok]: corrupt payload: fuzzer findings - stream listpack valgrind issue (200 ms) +=== () Starting server on 127.0.0.1:23312 ok +[ok]: corrupt payload: fuzzer findings - stream with bad lpFirst (276 ms) +=== () Starting server on 127.0.0.1:23314 ok +[ok]: corrupt payload: fuzzer findings - stream listpack lpPrev valgrind issue (288 ms) +=== () Starting server on 127.0.0.1:23316 ok +[ok]: corrupt payload: fuzzer findings - stream with non-integer entry id (284 ms) +=== () Starting server on 127.0.0.1:23318 ok +[ok]: corrupt payload: fuzzer findings - empty quicklist (295 ms) +=== () Starting server on 127.0.0.1:23320 ok +[ok]: corrupt payload: fuzzer findings - empty zset (271 ms) +=== () Starting server on 127.0.0.1:23322 ok +[ok]: corrupt payload: fuzzer findings - hash with len of 0 (263 ms) +=== () Starting server on 127.0.0.1:23324 ok +[ok]: corrupt payload: fuzzer findings - hash listpack first element too long entry len (293 ms) +=== () Starting server on 127.0.0.1:23326 ok +[ok]: corrupt payload: fuzzer findings - stream double free listpack when insert dup node to rax returns 0 (288 ms) +=== () Starting server on 127.0.0.1:23328 ok +[ok]: corrupt payload: fuzzer findings - LCS OOM (286 ms) +=== () Starting server on 127.0.0.1:23330 ok +[ok]: corrupt payload: fuzzer findings - gcc asan reports false leak on assert (251 ms) +=== () Starting server on 127.0.0.1:23332 ok +[ok]: corrupt payload: fuzzer findings - lpFind invalid access (289 ms) +=== () Starting server on 127.0.0.1:23334 ok +[ok]: corrupt payload: fuzzer findings - invalid access in ziplist tail prevlen decoding (286 ms) +=== () Starting server on 127.0.0.1:23336 ok +[ok]: corrupt payload: fuzzer findings - zset zslInsert with a NAN score (266 ms) +=== () Starting server on 127.0.0.1:23338 ok +[ok]: corrupt payload: fuzzer findings - streamLastValidID panic (270 ms) +=== () Starting server on 127.0.0.1:23340 ok +[ok]: corrupt payload: fuzzer findings - valgrind fishy value warning (296 ms) +=== () Starting server on 127.0.0.1:23342 ok +[ok]: corrupt payload: fuzzer findings - empty set listpack (268 ms) +=== () Starting server on 127.0.0.1:23344 ok +[ok]: corrupt payload: fuzzer findings - set with duplicate elements causes sdiff to hang (284 ms) +[121/129 done]: integration/corrupt-dump (18 seconds) +Testing integration/corrupt-dump-fuzzer +=== () Starting server on 127.0.0.1:23346 ok +Done 16 cycles in 10 seconds. +RESTORE: successful: 13, rejected: 3 +Total commands sent in traffic: 9678, crashes during traffic: 3 (0 by signal). +[ok]: Fuzzer corrupt restore payloads - sanitize_dump: no (10102 ms) +=== () Starting server on 127.0.0.1:23348 ok +Done 18 cycles in 10 seconds. +RESTORE: successful: 10, rejected: 8 +Total commands sent in traffic: 11581, crashes during traffic: 0 (0 by signal). +[ok]: Fuzzer corrupt restore payloads - sanitize_dump: yes (10046 ms) +[122/129 done]: integration/corrupt-dump-fuzzer (21 seconds) +Testing integration/convert-zipmap-hash-on-load +=== () Starting server on 127.0.0.1:23350 ok +[ok]: RDB load zipmap hash: converts to listpack (4 ms) +=== () Starting server on 127.0.0.1:23352 ok +[ok]: RDB load zipmap hash: converts to hash table when hash-max-ziplist-entries is exceeded (1 ms) +=== () Starting server on 127.0.0.1:23354 ok +[ok]: RDB load zipmap hash: converts to hash table when hash-max-ziplist-value is exceeded (1 ms) +[123/129 done]: integration/convert-zipmap-hash-on-load (0 seconds) +Testing integration/convert-ziplist-zset-on-load +=== () Starting server on 127.0.0.1:23356 ok +[ok]: RDB load ziplist zset: converts to listpack when RDB loading (3 ms) +=== () Starting server on 127.0.0.1:23358 ok +[ok]: RDB load ziplist zset: converts to skiplist when zset-max-ziplist-entries is exceeded (1 ms) +[124/129 done]: integration/convert-ziplist-zset-on-load (1 seconds) +Testing integration/convert-ziplist-hash-on-load +=== () Starting server on 127.0.0.1:23360 ok +[ok]: RDB load ziplist hash: converts to listpack when RDB loading (1 ms) +=== () Starting server on 127.0.0.1:23362 ok +[ok]: RDB load ziplist hash: converts to hash table when hash-max-ziplist-entries is exceeded (1 ms) +[125/129 done]: integration/convert-ziplist-hash-on-load (0 seconds) +Testing integration/block-repl +=== (repl external:skip) Starting server on 127.0.0.1:23364 ok +=== () Starting server on 127.0.0.1:23366 ok +[ok]: First server should have role slave after SLAVEOF (1007 ms) +[ok]: Test replication with blocking lists and sorted sets operations (25015 ms) +[126/129 done]: integration/block-repl (27 seconds) +Testing integration/aof +=== () Starting server on 127.0.0.1:23368 ok +[ok]: Unfinished MULTI: Server should start if load-truncated is yes (1 ms) +=== () Starting server on 127.0.0.1:23370 ok +[ok]: Short read: Server should start if load-truncated is yes (2 ms) +[ok]: Truncated AOF loaded: we expect foo to be equal to 5 (32 ms) +[ok]: Append a new command after loading an incomplete AOF (1 ms) +=== () Starting server on 127.0.0.1:23372 ok +[ok]: Short read + command: Server should start (1 ms) +[ok]: Truncated AOF loaded: we expect foo to be equal to 6 now (31 ms) +=== () Starting server on 127.0.0.1:23374 +[ok]: Bad format: Server should have logged an error (2 ms) +=== () Starting server on 127.0.0.1:23376 +[ok]: Unfinished MULTI: Server should have logged an error (2 ms) +=== () Starting server on 127.0.0.1:23378 +[ok]: Short read: Server should have logged an error (2 ms) +[ok]: Short read: Utility should confirm the AOF is not valid (20 ms) +[ok]: Short read: Utility should show the abnormal line num in AOF (17 ms) +[ok]: Short read: Utility should be able to fix the AOF (17 ms) +=== () Starting server on 127.0.0.1:23380 ok +[ok]: Fixed AOF: Server should have been started (1 ms) +[ok]: Fixed AOF: Keyspace should contain values that were parseable (32 ms) +=== () Starting server on 127.0.0.1:23382 ok +[ok]: AOF+SPOP: Server should have been started (2 ms) +[ok]: AOF+SPOP: Set should have 1 member (29 ms) +=== () Starting server on 127.0.0.1:23384 ok +[ok]: AOF+SPOP: Server should have been started (2 ms) +[ok]: AOF+SPOP: Set should have 1 member (25 ms) +=== () Starting server on 127.0.0.1:23386 ok +[ok]: AOF+EXPIRE: Server should have been started (1 ms) +[ok]: AOF+EXPIRE: List should be empty (31 ms) +=== () Starting server on 127.0.0.1:23388 ok +[ok]: Server should not try to convert DEL into EXPIREAT for EXPIRE -1 (0 ms) +=== () Starting server on 127.0.0.1:23390 ok +[ok]: AOF fsync always barrier issue (5686 ms) +=== () Starting server on 127.0.0.1:23392 ok +[ok]: GETEX should not append to AOF (2 ms) +=== () Starting server on 127.0.0.1:23394 +[ok]: Unknown command: Server should have logged an error (2 ms) +=== () Starting server on 127.0.0.1:23396 ok +[ok]: AOF+LMPOP/BLMPOP: pop elements from the list (162 ms) +=== () Starting server on 127.0.0.1:23398 ok +[ok]: AOF+LMPOP/BLMPOP: after pop elements from the list (31 ms) +=== () Starting server on 127.0.0.1:23400 ok +[ok]: AOF+ZMPOP/BZMPOP: pop elements from the zset (162 ms) +=== () Starting server on 127.0.0.1:23402 ok +[ok]: AOF+ZMPOP/BZMPOP: after pop elements from the zset (31 ms) +=== () Starting server on 127.0.0.1:23404 ok + +Waiting for background AOF rewrite to finish... [ok]: Generate timestamp annotations in AOF (366 ms) +=== () Starting server on 127.0.0.1:23406 ok +[ok]: Successfully load AOF which has timestamp annotations inside (31 ms) +=== () Starting server on 127.0.0.1:23408 ok +=== () Starting server on 127.0.0.1:23410 ok +=== () Starting server on 127.0.0.1:23412 ok +[ok]: Truncate AOF to specific timestamp (851 ms) +=== () Starting server on 127.0.0.1:23414 ok +[ok]: EVAL timeout with slow verbatim Lua script from AOF (1160 ms) +=== () Starting server on 127.0.0.1:23416 ok +[ok]: EVAL can process writes from AOF in read-only replicas (264 ms) +[ok]: Test valkey-check-aof for old style resp AOF (17 ms) +[ok]: Test valkey-check-aof for old style resp AOF - has data in the same format as manifest (16 ms) +[ok]: Test valkey-check-aof for old style rdb-preamble AOF (18 ms) +[ok]: Test valkey-check-aof for Multi Part AOF with resp AOF base (16 ms) +[ok]: Test valkey-check-aof for Multi Part AOF with rdb-preamble AOF base (21 ms) +[ok]: Test valkey-check-aof for Multi Part AOF contains a format error (16 ms) +[ok]: Test valkey-check-aof only truncates the last file for Multi Part AOF in fix mode (32 ms) +[ok]: Test valkey-check-aof only truncates the last file for Multi Part AOF in truncate-to-timestamp mode (16 ms) +=== () Starting server on 127.0.0.1:23418 ok +[ok]: FLUSHDB / FLUSHALL should persist in AOF (4 ms) +=== () Starting server on 127.0.0.1:23420 ok +[ok]: Turning appendonly on and off within a transaction (4 ms) +=== () Starting server on 127.0.0.1:23423 ok +[ok]: Test cluster slots / cluster shards in aof won't crash (264 ms) +=== () Starting server on 127.0.0.1:23425 +=== () Starting server on 127.0.0.1:23427 +=== () Starting server on 127.0.0.1:23429 +[ok]: Test command check in aof won't crash (402 ms) +[127/129 done]: integration/aof (15 seconds) +Testing integration/aof-race +=== () Starting server on 127.0.0.1:23431 ok +=== () Starting server on 127.0.0.1:23433 ok +[128/129 done]: integration/aof-race (0 seconds) +Testing integration/aof-multi-part +=== () Starting server on 127.0.0.1:23435 +[ok]: Multi Part AOF can't load data when some file missing (125 ms) +=== () Starting server on 127.0.0.1:23437 +[ok]: Multi Part AOF can't load data when the sequence not increase monotonically (124 ms) +=== () Starting server on 127.0.0.1:23439 +[ok]: Multi Part AOF can't load data when there are blank lines in the manifest file (125 ms) +=== () Starting server on 127.0.0.1:23441 +[ok]: Multi Part AOF can't load data when there is a duplicate base file (124 ms) +=== () Starting server on 127.0.0.1:23443 +[ok]: Multi Part AOF can't load data when the manifest format is wrong (type unknown) (125 ms) +=== () Starting server on 127.0.0.1:23445 +[ok]: Multi Part AOF can't load data when the manifest format is wrong (missing key) (125 ms) +=== () Starting server on 127.0.0.1:23447 +[ok]: Multi Part AOF can't load data when the manifest format is wrong (line too short) (125 ms) +=== () Starting server on 127.0.0.1:23449 +[ok]: Multi Part AOF can't load data when the manifest format is wrong (line too long) (125 ms) +=== () Starting server on 127.0.0.1:23451 +[ok]: Multi Part AOF can't load data when the manifest format is wrong (odd parameter) (126 ms) +=== () Starting server on 127.0.0.1:23453 +[ok]: Multi Part AOF can't load data when the manifest file is empty (125 ms) +=== () Starting server on 127.0.0.1:23455 ok +[ok]: Multi Part AOF can start when no aof and no manifest (258 ms) +=== () Starting server on 127.0.0.1:23457 ok +[ok]: Multi Part AOF can start when we have en empty AOF dir (251 ms) +=== () Starting server on 127.0.0.1:23459 ok +[ok]: Multi Part AOF can load data discontinuously increasing sequence (261 ms) +=== () Starting server on 127.0.0.1:23461 ok +[ok]: Multi Part AOF can load data when manifest add new k-v (261 ms) +=== () Starting server on 127.0.0.1:23463 ok +[ok]: Multi Part AOF can load data when some AOFs are empty (261 ms) +=== () Starting server on 127.0.0.1:23465 ok + +Waiting for background AOF rewrite to finish... [ok]: Multi Part AOF can load data from old version valkey (rdb preamble no) (364 ms) +=== () Starting server on 127.0.0.1:23467 ok + +Waiting for background AOF rewrite to finish... [ok]: Multi Part AOF can load data from old version valkey (rdb preamble yes) (366 ms) +=== () Starting server on 127.0.0.1:23469 ok +[ok]: Multi Part AOF can continue the upgrade from the interrupted upgrade state (264 ms) +=== () Starting server on 127.0.0.1:23471 ok +[ok]: Multi Part AOF can be loaded correctly when both server dir and aof dir contain old AOF (264 ms) +=== () Starting server on 127.0.0.1:23473 +[ok]: Multi Part AOF can't load data when the manifest contains the old AOF file name but the file does not exist in server dir and aof dir (129 ms) +=== () Starting server on 127.0.0.1:23475 ok +=== () Starting server on 127.0.0.1:23477 ok + +Waiting for background AOF rewrite to finish... [ok]: Multi Part AOF can upgrade when when two servers share the same server dir (server1) (85 ms) + +Waiting for background AOF rewrite to finish... [ok]: Multi Part AOF can upgrade when when two servers share the same server dir (server2) (85 ms) +[ok]: Multi Part AOF can upgrade when when two servers share the same server dir (769 ms) +=== () Starting server on 127.0.0.1:23479 ok + +Waiting for background AOF rewrite to finish... [ok]: Multi Part AOF can handle appendfilename contains whitespaces (360 ms) +=== () Starting server on 127.0.0.1:23481 ok +[ok]: Multi Part AOF can create BASE (RDB format) when server starts from empty (274 ms) +=== () Starting server on 127.0.0.1:23483 ok +[ok]: Multi Part AOF can create BASE (AOF format) when server starts from empty (262 ms) +=== () Starting server on 127.0.0.1:23485 ok + +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... [ok]: Changing aof-use-rdb-preamble during rewrite process (1376 ms) +=== (Multi Part AOF) Starting server on 127.0.0.1:23487 ok +[ok]: Make sure aof manifest appendonly.aof.manifest not in aof directory (0 ms) + +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... [ok]: AOF enable will create manifest file (454 ms) + +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... [ok]: AOF multiple rewrite failures will open multiple INCR AOFs (1052 ms) + +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite doesn't open new aof when AOF turn off (498 ms) + +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... [ok]: AOF enable/disable auto gc (211 ms) + +Waiting for background AOF rewrite to finish... [ok]: AOF can produce consecutive sequence number after reload (85 ms) + +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... [ok]: AOF enable during BGSAVE will not write data util AOFRW finish (319 ms) + +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... [ok]: AOF will trigger limit when AOFRW fails many times (586 ms) +=== () Starting server on 127.0.0.1:23489 ok + +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... [ok]: AOF will open a temporary INCR AOF to accumulate data until the first AOFRW success when AOF is dynamically enabled (2112 ms) +[129/129 done]: integration/aof-multi-part (13 seconds) The End Execution time of different units: - 31 seconds - unit/wait - 0 seconds - unit/violations + 30 seconds - unit/wait + 1 seconds - unit/violations 3 seconds - unit/tracking 1 seconds - unit/tls - 10 seconds - unit/sort + 9 seconds - unit/sort 2 seconds - unit/slowlog 1 seconds - unit/shutdown - 38 seconds - unit/scripting - 29 seconds - unit/scan + 39 seconds - unit/scripting + 20 seconds - unit/scan 1 seconds - unit/replybufsize 0 seconds - unit/quit 6 seconds - unit/querybuf 2 seconds - unit/pubsubshard - 2 seconds - unit/pubsub + 3 seconds - unit/pubsub 1 seconds - unit/protocol - 15 seconds - unit/pause + 16 seconds - unit/pause 12 seconds - unit/other - 1 seconds - unit/oom-score-adj - 17 seconds - unit/obuf-limits + 0 seconds - unit/oom-score-adj + 15 seconds - unit/obuf-limits 2 seconds - unit/networking 8 seconds - unit/multi 3 seconds - unit/memefficiency - 99 seconds - unit/maxmemory - 1 seconds - unit/limits + 77 seconds - unit/maxmemory + 2 seconds - unit/limits 1 seconds - unit/lazyfree - 17 seconds - unit/latency-monitor + 16 seconds - unit/latency-monitor 4 seconds - unit/keyspace 13 seconds - unit/introspection - 10 seconds - unit/introspection-2 - 4 seconds - unit/info - 0 seconds - unit/info-command - 59 seconds - unit/hyperloglog + 11 seconds - unit/introspection-2 + 3 seconds - unit/info + 1 seconds - unit/info-command + 58 seconds - unit/hyperloglog 24 seconds - unit/geo - 6 seconds - unit/functions - 17 seconds - unit/expire - 27 seconds - unit/dump - 1 seconds - unit/commandlog - 15 seconds - unit/client-eviction + 7 seconds - unit/functions + 16 seconds - unit/expire + 26 seconds - unit/dump + 2 seconds - unit/commandlog + 14 seconds - unit/client-eviction 2 seconds - unit/bitops - 3 seconds - unit/bitfield + 2 seconds - unit/bitfield 3 seconds - unit/auth - 18 seconds - unit/aofrw + 20 seconds - unit/aofrw 4 seconds - unit/acl 0 seconds - unit/acl-v2 - 26 seconds - unit/type/zset - 10 seconds - unit/type/string - 15 seconds - unit/type/stream - 8 seconds - unit/type/stream-cgroups - 7 seconds - unit/type/set - 20 seconds - unit/type/list - 48 seconds - unit/type/list-3 - 14 seconds - unit/type/list-2 + 78 seconds - unit/type/zset + 14 seconds - unit/type/string + 18 seconds - unit/type/stream + 7 seconds - unit/type/stream-cgroups + 12 seconds - unit/type/set + 22 seconds - unit/type/list + 50 seconds - unit/type/list-3 + 21 seconds - unit/type/list-2 0 seconds - unit/type/incr - 5 seconds - unit/type/hash - 24 seconds - unit/cluster/update-msg - 14 seconds - unit/cluster/transactions-on-replica - 194 seconds - unit/cluster/slot-stats + 6 seconds - unit/type/hash + 25 seconds - unit/cluster/update-msg + 13 seconds - unit/cluster/transactions-on-replica + 186 seconds - unit/cluster/slot-stats 50 seconds - unit/cluster/slot-ownership - 85 seconds - unit/cluster/slot-migration - 5 seconds - unit/cluster/slot-migration-response + 89 seconds - unit/cluster/slot-migration + 4 seconds - unit/cluster/slot-migration-response 43 seconds - unit/cluster/slave-stop-cond 68 seconds - unit/cluster/slave-selection - 0 seconds - unit/cluster/shardid-propagation + 1 seconds - unit/cluster/shardid-propagation 11 seconds - unit/cluster/sharded-pubsub 2 seconds - unit/cluster/scripting - 162 seconds - unit/cluster/replica-migration + 161 seconds - unit/cluster/replica-migration 16 seconds - unit/cluster/replica-in-sync 12 seconds - unit/cluster/pubsubshard 13 seconds - unit/cluster/pubsubshard-slot-migration 15 seconds - unit/cluster/pubsub - 12 seconds - unit/cluster/noaddr + 13 seconds - unit/cluster/noaddr 15 seconds - unit/cluster/no-failover-option 3 seconds - unit/cluster/multi-slot-operations - 12 seconds - unit/cluster/misc - 44 seconds - unit/cluster/many-slot-migration + 11 seconds - unit/cluster/misc + 43 seconds - unit/cluster/many-slot-migration 20 seconds - unit/cluster/manual-takeover 145 seconds - unit/cluster/manual-failover + 25 seconds - unit/cluster/links + 9 seconds - unit/cluster/info + 6 seconds - unit/cluster/human-announced-nodename + 15 seconds - unit/cluster/hostnames + 4 seconds - unit/cluster/half-migrated-slot + 32 seconds - unit/cluster/failure-marking + 138 seconds - unit/cluster/failover2 + 36 seconds - unit/cluster/failover + 14 seconds - unit/cluster/faildet + 1 seconds - unit/cluster/divergent-cluster-shardid-conf + 104 seconds - unit/cluster/diskless-load-swapdb + 21 seconds - unit/cluster/consistency-check + 90 seconds - unit/cluster/cluster-slots + 14 seconds - unit/cluster/cluster-shards + 28 seconds - unit/cluster/cluster-response-tls + 20 seconds - unit/cluster/cluster-reliable-meet + 12 seconds - unit/cluster/cluster-nodes-slots + 0 seconds - unit/cluster/cluster-multiple-meets + 0 seconds - unit/cluster/cli + 0 seconds - unit/cluster/base + 11 seconds - unit/cluster/announced-endpoints + 28 seconds - unit/cluster/announce-client-ip + 14 seconds - integration/valkey-cli + 4 seconds - integration/valkey-benchmark + 3 seconds - integration/skip-rdb-checksum + 12 seconds - integration/shutdown + 147 seconds - integration/replication + 248 seconds - integration/replication-psync + 31 seconds - integration/replication-buffer + 24 seconds - integration/replication-4 + 11 seconds - integration/replication-3 + 10 seconds - integration/replication-2 + 1 seconds - integration/replica-redirect + 8 seconds - integration/rdb + 44 seconds - integration/psync2 + 22 seconds - integration/psync2-reg + 18 seconds - integration/psync2-pingoff + 9 seconds - integration/psync2-master-restart + 2 seconds - integration/logging + 6 seconds - integration/failover + 126 seconds - integration/dual-channel-replication + 5 seconds - integration/dismiss-mem + 0 seconds - integration/cross-version-replication + 18 seconds - integration/corrupt-dump + 21 seconds - integration/corrupt-dump-fuzzer + 0 seconds - integration/convert-zipmap-hash-on-load + 1 seconds - integration/convert-ziplist-zset-on-load + 0 seconds - integration/convert-ziplist-hash-on-load + 27 seconds - integration/block-repl + 15 seconds - integration/aof + 0 seconds - integration/aof-race + 13 seconds - integration/aof-multi-part -!!! WARNING The following tests failed: +\o/ All tests passed without errors! -*** [TIMEOUT]: clients state report follows. Cleanup: may take some time... OK timeout 30m ./runtest-cluster --tls || true Starting valkey #0 at port 30000 @@ -5045,244 +6828,244 @@ Starting valkey #18 at port 30036 Starting valkey #19 at port 30038 Testing unit: 03-failover-loop.tcl -06:15:31> (init) Restart killed instances: OK -06:15:31> Cluster nodes are reachable: OK -06:15:31> Cluster nodes hard reset: OK -06:15:31> Cluster Join and auto-discovery test: OK -06:15:34> Before slots allocation, all nodes report cluster failure: OK -06:15:34> Create a 5 nodes cluster: OK -06:15:38> Cluster is up: OK +15:41:36> (init) Restart killed instances: OK +15:41:37> Cluster nodes are reachable: OK +15:41:37> Cluster nodes hard reset: OK +15:41:37> Cluster Join and auto-discovery test: OK +15:41:39> Before slots allocation, all nodes report cluster failure: OK +15:41:39> Create a 5 nodes cluster: OK +15:41:43> Cluster is up: OK --- Iteration 19 --- -06:15:38> Cluster is writable before failover: OK -06:15:38> Terminating node #5: OK -06:15:38> Cluster should eventually be up again: OK -06:15:38> Cluster is writable again: OK -06:15:38> Restarting node #5: OK -06:15:39> Instance #5 is now a slave: OK -06:15:39> We can read back the value we set before: OK +15:41:43> Wait for slave of #3 to sync: OK +15:41:43> Cluster is writable before failover: OK +15:41:43> Terminating node #3: OK +15:41:44> Wait failover by #8 with old epoch 4: OK +15:41:49> Cluster should eventually be up again: OK +15:41:49> Cluster is writable again: OK +15:41:49> Restarting node #3: OK +15:41:50> Instance #3 is now a slave: OK +15:41:50> We can read back the value we set before: OK --- Iteration 18 --- -06:15:39> Cluster is writable before failover: OK -06:15:39> Terminating node #7: OK -06:15:39> Cluster should eventually be up again: OK -06:15:39> Cluster is writable again: OK -06:15:39> Restarting node #7: OK -06:15:39> Instance #7 is now a slave: OK -06:15:39> We can read back the value we set before: OK +15:41:50> Wait for slave of #4 to sync: OK +15:41:50> Cluster is writable before failover: OK +15:41:50> Terminating node #4: OK +15:41:50> Wait failover by #9 with old epoch 5: OK +15:41:55> Cluster should eventually be up again: OK +15:41:55> Cluster is writable again: OK +15:41:56> Restarting node #4: OK +15:41:56> Instance #4 is now a slave: OK +15:41:56> We can read back the value we set before: OK --- Iteration 17 --- -06:15:39> Wait for slave of #4 to sync: OK -06:15:39> Cluster is writable before failover: OK -06:15:39> Terminating node #4: OK -06:15:40> Wait failover by #9 with old epoch 5: OK -06:15:46> Cluster should eventually be up again: OK -06:15:46> Cluster is writable again: OK -06:15:46> Restarting node #4: OK -06:15:46> Instance #4 is now a slave: OK -06:15:46> We can read back the value we set before: OK +15:41:56> Wait for slave of #0 to sync: OK +15:41:56> Cluster is writable before failover: OK +15:41:56> Terminating node #0: OK +15:41:57> Wait failover by #5 with old epoch 1: OK +15:42:02> Cluster should eventually be up again: OK +15:42:02> Cluster is writable again: OK +15:42:02> Restarting node #0: OK +15:42:02> Instance #0 is now a slave: OK +15:42:02> We can read back the value we set before: OK --- Iteration 16 --- -06:15:46> Cluster is writable before failover: OK -06:15:47> Terminating node #8: OK -06:15:47> Cluster should eventually be up again: OK -06:15:47> Cluster is writable again: OK -06:15:47> Restarting node #8: OK -06:15:47> Instance #8 is now a slave: OK -06:15:47> We can read back the value we set before: OK +15:42:03> Cluster is writable before failover: OK +15:42:03> Terminating node #6: OK +15:42:03> Cluster should eventually be up again: OK +15:42:03> Cluster is writable again: OK +15:42:03> Restarting node #6: OK +15:42:03> Instance #6 is now a slave: OK +15:42:03> We can read back the value we set before: OK --- Iteration 15 --- -06:15:47> Wait for slave of #1 to sync: OK -06:15:47> Cluster is writable before failover: OK -06:15:47> Terminating node #1: OK -06:15:48> Wait failover by #6 with old epoch 2: OK -06:15:53> Cluster should eventually be up again: OK -06:15:53> Cluster is writable again: OK -06:15:54> Restarting node #1: OK -06:15:54> Instance #1 is now a slave: OK -06:15:54> We can read back the value we set before: OK +15:42:03> Cluster is writable before failover: OK +15:42:03> Terminating node #4: OK +15:42:03> Cluster should eventually be up again: OK +15:42:03> Cluster is writable again: OK +15:42:03> Restarting node #4: OK +15:42:04> Instance #4 is now a slave: OK +15:42:04> We can read back the value we set before: OK --- Iteration 14 --- -06:15:54> Wait for slave of #3 to sync: OK -06:15:54> Cluster is writable before failover: OK -06:15:54> Terminating node #3: OK -06:15:55> Wait failover by #8 with old epoch 4: OK -06:16:00> Cluster should eventually be up again: OK -06:16:00> Cluster is writable again: OK -06:16:00> Restarting node #3: OK -06:16:01> Instance #3 is now a slave: OK -06:16:01> We can read back the value we set before: OK +15:42:04> Wait for slave of #1 to sync: OK +15:42:04> Cluster is writable before failover: OK +15:42:04> Terminating node #1: OK +15:42:05> Wait failover by #6 with old epoch 2: OK +15:42:10> Cluster should eventually be up again: OK +15:42:10> Cluster is writable again: OK +15:42:10> Restarting node #1: OK +15:42:11> Instance #1 is now a slave: OK +15:42:11> We can read back the value we set before: OK --- Iteration 13 --- -06:16:01> Cluster is writable before failover: OK -06:16:01> Terminating node #1: OK -06:16:01> Cluster should eventually be up again: OK -06:16:01> Cluster is writable again: OK -06:16:01> Restarting node #1: OK -06:16:01> Instance #1 is now a slave: OK -06:16:01> We can read back the value we set before: OK +15:42:11> Wait for slave of #5 to sync: OK +15:42:11> Cluster is writable before failover: OK +15:42:11> Terminating node #5: OK +15:42:11> Wait failover by #0 with old epoch 23: OK +15:42:17> Cluster should eventually be up again: OK +15:42:17> Cluster is writable again: OK +15:42:17> Restarting node #5: OK +15:42:17> Instance #5 is now a slave: OK +15:42:17> We can read back the value we set before: OK --- Iteration 12 --- -06:16:01> Cluster is writable before failover: OK -06:16:01> Terminating node #5: OK -06:16:01> Cluster should eventually be up again: OK -06:16:01> Cluster is writable again: OK -06:16:01> Restarting node #5: OK -06:16:02> Instance #5 is now a slave: OK -06:16:02> We can read back the value we set before: OK +15:42:17> Cluster is writable before failover: OK +15:42:18> Terminating node #3: OK +15:42:18> Cluster should eventually be up again: OK +15:42:18> Cluster is writable again: OK +15:42:18> Restarting node #3: OK +15:42:18> Instance #3 is now a slave: OK +15:42:18> We can read back the value we set before: OK --- Iteration 11 --- -06:16:02> Wait for slave of #0 to sync: OK -06:16:02> Cluster is writable before failover: OK -06:16:02> Terminating node #0: OK -06:16:04> Wait failover by #5 with old epoch 1: OK -06:16:09> Cluster should eventually be up again: OK -06:16:09> Cluster is writable again: OK -06:16:09> Restarting node #0: OK -06:16:09> Instance #0 is now a slave: OK -06:16:09> We can read back the value we set before: OK +15:42:18> Cluster is writable before failover: OK +15:42:18> Terminating node #7: OK +15:42:18> Cluster should eventually be up again: OK +15:42:18> Cluster is writable again: OK +15:42:18> Restarting node #7: OK +15:42:19> Instance #7 is now a slave: OK +15:42:19> We can read back the value we set before: OK --- Iteration 10 --- -06:16:09> Wait for slave of #6 to sync: OK -06:16:09> Cluster is writable before failover: OK -06:16:10> Terminating node #6: OK -06:16:10> Wait failover by #1 with old epoch 22: OK -06:16:14> Cluster should eventually be up again: OK -06:16:14> Cluster is writable again: OK -06:16:15> Restarting node #6: OK -06:16:15> Instance #6 is now a slave: OK -06:16:15> We can read back the value we set before: OK +15:42:19> Cluster is writable before failover: OK +15:42:19> Terminating node #1: OK +15:42:19> Cluster should eventually be up again: OK +15:42:19> Cluster is writable again: OK +15:42:19> Restarting node #1: OK +15:42:19> Instance #1 is now a slave: OK +15:42:19> We can read back the value we set before: OK --- Iteration 9 --- -06:16:15> Wait for slave of #2 to sync: OK -06:16:15> Cluster is writable before failover: OK -06:16:15> Terminating node #2: OK -06:16:16> Wait failover by #7 with old epoch 3: OK -06:16:21> Cluster should eventually be up again: OK -06:16:21> Cluster is writable again: OK -06:16:22> Restarting node #2: OK -06:16:22> Instance #2 is now a slave: OK -06:16:22> We can read back the value we set before: OK +15:42:19> Cluster is writable before failover: OK +15:42:19> Terminating node #7: OK +15:42:19> Cluster should eventually be up again: OK +15:42:19> Cluster is writable again: OK +15:42:19> Restarting node #7: OK +15:42:20> Instance #7 is now a slave: OK +15:42:20> We can read back the value we set before: OK --- Iteration 8 --- -06:16:22> Cluster is writable before failover: OK -06:16:22> Terminating node #0: OK -06:16:22> Cluster should eventually be up again: OK -06:16:22> Cluster is writable again: OK -06:16:22> Restarting node #0: OK -06:16:23> Instance #0 is now a slave: OK -06:16:23> We can read back the value we set before: OK +15:42:20> Cluster is writable before failover: OK +15:42:20> Terminating node #5: OK +15:42:20> Cluster should eventually be up again: OK +15:42:20> Cluster is writable again: OK +15:42:20> Restarting node #5: OK +15:42:20> Instance #5 is now a slave: OK +15:42:20> We can read back the value we set before: OK --- Iteration 7 --- -06:16:23> Wait for slave of #1 to sync: OK -06:16:23> Cluster is writable before failover: OK -06:16:23> Terminating node #1: OK -06:16:24> Wait failover by #6 with old epoch 25: OK -06:16:29> Cluster should eventually be up again: OK -06:16:29> Cluster is writable again: OK -06:16:29> Restarting node #1: OK -06:16:29> Instance #1 is now a slave: OK -06:16:29> We can read back the value we set before: OK +15:42:20> Wait for slave of #0 to sync: OK +15:42:20> Cluster is writable before failover: OK +15:42:20> Terminating node #0: OK +15:42:21> Wait failover by #5 with old epoch 25: OK +15:42:26> Cluster should eventually be up again: OK +15:42:26> Cluster is writable again: OK +15:42:26> Restarting node #0: OK +15:42:27> Instance #0 is now a slave: OK +15:42:27> We can read back the value we set before: OK --- Iteration 6 --- -06:16:30> Wait for slave of #9 to sync: OK -06:16:30> Cluster is writable before failover: OK -06:16:30> Terminating node #9: OK -06:16:30> Wait failover by #4 with old epoch 21: OK -06:16:34> Cluster should eventually be up again: OK -06:16:34> Cluster is writable again: OK -06:16:35> Restarting node #9: OK -06:16:35> Instance #9 is now a slave: OK -06:16:35> We can read back the value we set before: OK +15:42:27> Wait for slave of #5 to sync: OK +15:42:27> Cluster is writable before failover: OK +15:42:27> Terminating node #5: OK +15:42:29> Wait failover by #0 with old epoch 26: OK +15:42:34> Cluster should eventually be up again: OK +15:42:34> Cluster is writable again: OK +15:42:34> Restarting node #5: OK +15:42:34> Instance #5 is now a slave: OK +15:42:34> We can read back the value we set before: OK --- Iteration 5 --- -06:16:35> Wait for slave of #7 to sync: OK -06:16:35> Cluster is writable before failover: OK -06:16:35> Terminating node #7: OK -06:16:36> Wait failover by #2 with old epoch 26: OK -06:16:41> Cluster should eventually be up again: OK -06:16:41> Cluster is writable again: OK -06:16:42> Restarting node #7: OK -06:16:42> Instance #7 is now a slave: OK -06:16:42> We can read back the value we set before: OK +15:42:34> Wait for slave of #6 to sync: OK +15:42:34> Cluster is writable before failover: OK +15:42:34> Terminating node #6: OK +15:42:35> Wait failover by #1 with old epoch 24: OK +15:42:40> Cluster should eventually be up again: OK +15:42:40> Cluster is writable again: OK +15:42:40> Restarting node #6: OK +15:42:41> Instance #6 is now a slave: OK +15:42:41> We can read back the value we set before: OK --- Iteration 4 --- -06:16:42> Cluster is writable before failover: OK -06:16:42> Terminating node #9: OK -06:16:42> Cluster should eventually be up again: OK -06:16:42> Cluster is writable again: OK -06:16:42> Restarting node #9: OK -06:16:42> Instance #9 is now a slave: OK -06:16:42> We can read back the value we set before: OK +15:42:41> Wait for slave of #2 to sync: OK +15:42:41> Cluster is writable before failover: OK +15:42:41> Terminating node #2: OK +15:42:42> Wait failover by #7 with old epoch 3: OK +15:42:47> Cluster should eventually be up again: OK +15:42:47> Cluster is writable again: OK +15:42:47> Restarting node #2: OK +15:42:47> Instance #2 is now a slave: OK +15:42:47> We can read back the value we set before: OK --- Iteration 3 --- -06:16:43> Wait for slave of #2 to sync: OK -06:16:43> Cluster is writable before failover: OK -06:16:43> Terminating node #2: OK -06:16:44> Wait failover by #7 with old epoch 29: OK -06:16:49> Cluster should eventually be up again: OK -06:16:49> Cluster is writable again: OK -06:16:50> Restarting node #2: OK -06:16:50> Instance #2 is now a slave: OK -06:16:50> We can read back the value we set before: OK +15:42:47> Cluster is writable before failover: OK +15:42:47> Terminating node #5: OK +15:42:47> Cluster should eventually be up again: OK +15:42:48> Cluster is writable again: OK +15:42:48> Restarting node #5: OK +15:42:48> Instance #5 is now a slave: OK +15:42:48> We can read back the value we set before: OK --- Iteration 2 --- -06:16:50> Cluster is writable before failover: OK -06:16:50> Terminating node #9: OK -06:16:50> Cluster should eventually be up again: OK -06:16:50> Cluster is writable again: OK -06:16:50> Restarting node #9: OK -06:16:50> Instance #9 is now a slave: OK -06:16:50> We can read back the value we set before: OK +15:42:48> Wait for slave of #7 to sync: OK +15:42:48> Cluster is writable before failover: OK +15:42:48> Terminating node #7: OK +15:42:48> Wait failover by #2 with old epoch 29: OK +15:42:53> Cluster should eventually be up again: OK +15:42:53> Cluster is writable again: OK +15:42:54> Restarting node #7: OK +15:42:54> Instance #7 is now a slave: OK +15:42:54> We can read back the value we set before: OK --- Iteration 1 --- -06:16:50> Cluster is writable before failover: OK -06:16:50> Terminating node #3: OK -06:16:51> Cluster should eventually be up again: OK -06:16:51> Cluster is writable again: OK -06:16:51> Restarting node #3: OK -06:16:51> Instance #3 is now a slave: OK -06:16:51> We can read back the value we set before: OK -06:16:51> Post condition: current_epoch >= my_epoch everywhere: OK +15:42:54> Cluster is writable before failover: OK +15:42:54> Terminating node #5: OK +15:42:54> Cluster should eventually be up again: OK +15:42:54> Cluster is writable again: OK +15:42:54> Restarting node #5: OK +15:42:54> Instance #5 is now a slave: OK +15:42:54> We can read back the value we set before: OK +15:42:55> Post condition: current_epoch >= my_epoch everywhere: OK Testing unit: 04-resharding.tcl -06:16:51> (init) Restart killed instances: OK -06:16:51> Cluster nodes are reachable: OK -06:16:51> Cluster nodes hard reset: OK -06:16:52> Cluster Join and auto-discovery test: OK -06:16:54> Before slots allocation, all nodes report cluster failure: OK -06:16:54> Create a 5 nodes cluster: OK -06:16:58> Cluster is up: OK -06:16:58> Enable AOF in all the instances: OK +15:42:55> (init) Restart killed instances: OK +15:42:55> Cluster nodes are reachable: OK +15:42:55> Cluster nodes hard reset: OK +15:42:55> Cluster Join and auto-discovery test: OK +15:42:56> Before slots allocation, all nodes report cluster failure: OK +15:42:56> Create a 5 nodes cluster: OK +15:43:00> Cluster is up: OK +15:43:00> Enable AOF in all the instances: OK Testing TLS cluster on start node 127.0.0.1:30000, plaintext port 30001 -06:16:58> Cluster consistency during live resharding: WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW...Starting resharding...WW...............................................................W.....................................................................................................W.........................................................................................................................................................W..............................................................................................................................W....................................................................................................................................W.................................................................................................................W.................................................................................................W..............................................................................................................................................................W..................................Starting resharding...WW...............................................................W......................................................W...............................................................................................................................................................W...........................................................................................W..................................................................................................................................................................................W............................................................................................................................................................W............................................................................................................................................W.................................................................................................................................................................W...Starting resharding...WWW...............................................................W..........................................................................................................................................................W..............................................................................................................W................................................................................................................W...........................................................................................................................................................W.............................................................................................................................W.................................................................................................................................W...............................................................................................................................W.........WWWWWWWWW...Starting resharding...WW....................................W...........................................................................................................W........................................................................................................................W.......................................................................................................................W...........................................................................................................................................W..........................................................................................................W...............................................................................................................................................................W.............................................................................................................................................W....................................................................Starting resharding...WW...........................................................................W............................................................................................................................W..................................................................................................W......................................................................................................................................................................W..........................................................................................................W...........................................................................................................................................................W....................................................................................................................W..............................................................................................................................W......................Starting resharding...WW...............................................................W................................................................................................................................W.....................................................................................................................................................W...........................................................................................................................W.......................................................................................................................................................................................................................W...........................................................................................................................W...................................................................................................................................................W........................................................W...Starting resharding...WW............W...............................................................................................................................W....................................................................................................................W....................................................................................................................................W...........................................................................................W........................................................................................................................................................................................W........................................................................................................................W.......................................................................................................................................................W.....................................................................................................Starting resharding...WW...............................................................W.....................................................................................................W...........................................................................................................................................W................................................................................................................................................W............................................................................................................W.........................................................................................................................................................................................W.................................................................................................................................................................W.......................................................................................................W...........Starting resharding...WW...............................................................W....................................................................................................................W.....................................................................................................W..................................................................................................W....................................................................................................................................................................................W............................................................................................................................................................................................W...................................................................................................................................................W......................................................................................................................W.......OK -06:18:40> Verify 50000 keys for consistency with logical content: OK -06:18:53> Terminate and restart all the instances: OK -06:19:00> Cluster should eventually be up again: OK -06:19:02> Verify 50000 keys after the restart: OK -06:19:14> Disable AOF in all the instances: OK -06:19:14> Verify slaves consistency: OK -06:19:15> Dump sanitization was skipped for migrations: OK +15:43:00> Cluster consistency during live resharding: WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW...Starting resharding...WW...........................................................................W............................................................................................................W.................................................................W........................................................................................W............................................................................................................................................................................................W...................................................................................................................................W...................................................................................................................W...................................................................................................................................................W................................................................Starting resharding...WW...........................W...........................................................................................................................................................................W..........................................................................................................................W...................................................................................................................W............................................................................................................W..............................................................................................W............................................................................................................................W....................................................................................................W.......................................................................................................................WWWWWWWWWW...Starting resharding...WW..................................................................................................................W..............................................................................................................................................................W.........................................................................W...............................................................................................................................................W................................................................................................................................................................W.....................................................................................W.......................................................................................................................................................................W.....................................................................................W...Starting resharding...WW.....................................................................................................................W.......................................................................................................................W..............................................................................................................................W.............................................................................................................W..............................................................................................................W............................................................................................................................................................................W................................................................................................................................................................................W..................................................................................................W...Starting resharding...W..................W..................................................................................................................................W...................................................................................................................W.......................................................................................................................................................................................................W.................................................................................................................W............................................................................................W...........................................................................................................................................................................................................W..........................................................................................................................................WW...Starting resharding...WW.................................W............................................................................................................................................................W..................................................................................................................W.......................................................................................................................................................W.............................................................................................................................................................W..........................................................................................................................................................W......................................................................................................................................................W................................................................................W...Starting resharding...WW..............................W........................................................................................................................................................................W.........................................................................................................................................................................W.............................................................................................................................................W.................................................................................................................................................................W.....................................................................................................................................................................W..........................................................................................................................................................W...........................................W...Starting resharding...WW..................................................................................................................................................................W.................................................................................................................................................................................W.....................................................................................................................W.......................................................................................................................................................................................................................W....................................................................................................W.............................................................................................................................................W..........................................................................................................WW...Starting resharding...W......W..............................................................................................................................................................W....................................................................................................................................................W...........................................................................................W..............................................................................................................................................................................W............................................................................................................................................................................................W.........................................................................................................................................................................W....................................................................WWOK +15:44:25> Verify 50000 keys for consistency with logical content: OK +15:44:36> Terminate and restart all the instances: OK +15:44:44> Cluster should eventually be up again: OK +15:44:45> Verify 50000 keys after the restart: OK +15:44:57> Disable AOF in all the instances: OK +15:44:57> Verify slaves consistency: OK +15:44:59> Dump sanitization was skipped for migrations: OK Testing unit: 07-replica-migration.tcl -06:19:15> (init) Restart killed instances: OK -06:19:15> Cluster nodes are reachable: OK -06:19:15> Cluster nodes hard reset: OK -06:19:16> Cluster Join and auto-discovery test: OK -06:19:18> Before slots allocation, all nodes report cluster failure: OK -06:19:18> Create a 5 nodes cluster: OK -06:19:22> Cluster is up: OK -06:19:22> Each master should have two replicas attached: OK -06:19:22> Killing all the slaves of master #0 and #1: OK -06:19:26> Master #0 should have at least one replica: OK -06:19:32> Master #1 should have at least one replica: OK -06:19:32> Master #2 should have at least one replica: OK -06:19:32> Master #3 should have at least one replica: OK -06:19:32> Master #4 should have at least one replica: OK -06:19:32> (init) Restart killed instances: valkey/5 valkey/6 valkey/10 valkey/11 OK -06:19:33> Cluster nodes are reachable: OK -06:19:34> Cluster nodes hard reset: OK -06:19:34> Cluster Join and auto-discovery test: OK -06:19:36> Before slots allocation, all nodes report cluster failure: OK -06:19:36> Create a 5 nodes cluster: OK -06:19:40> Cluster is up: OK -06:19:40> Kill slave #7 of master #2. Only slave left is #12 now: OK -06:19:40> Killing master node #2, #12 should failover: OK -06:19:40> Wait for failover: OK -06:19:45> Cluster should eventually be up again: OK -06:19:45> Cluster is writable: OK -06:19:45> Instance 12 is now a master without slaves: OK -06:19:45> Master #12 should get at least one migrated replica: OK +15:44:59> (init) Restart killed instances: OK +15:44:59> Cluster nodes are reachable: OK +15:44:59> Cluster nodes hard reset: OK +15:44:59> Cluster Join and auto-discovery test: OK +15:45:01> Before slots allocation, all nodes report cluster failure: OK +15:45:01> Create a 5 nodes cluster: OK +15:45:05> Cluster is up: OK +15:45:05> Each master should have two replicas attached: OK +15:45:05> Killing all the slaves of master #0 and #1: OK +15:45:10> Master #0 should have at least one replica: OK +15:45:15> Master #1 should have at least one replica: OK +15:45:15> Master #2 should have at least one replica: OK +15:45:15> Master #3 should have at least one replica: OK +15:45:15> Master #4 should have at least one replica: OK +15:45:15> (init) Restart killed instances: valkey/5 valkey/6 valkey/10 valkey/11 OK +15:45:17> Cluster nodes are reachable: OK +15:45:17> Cluster nodes hard reset: OK +15:45:17> Cluster Join and auto-discovery test: OK +15:45:20> Before slots allocation, all nodes report cluster failure: OK +15:45:20> Create a 5 nodes cluster: OK +15:45:24> Cluster is up: OK +15:45:24> Kill slave #7 of master #2. Only slave left is #12 now: OK +15:45:24> Killing master node #2, #12 should failover: OK +15:45:24> Wait for failover: OK +15:45:30> Cluster should eventually be up again: OK +15:45:30> Cluster is writable: OK +15:45:30> Instance 12 is now a master without slaves: OK +15:45:30> Master #12 should get at least one migrated replica: OK Testing unit: 12-replica-migration-2.tcl -06:19:50> (init) Restart killed instances: valkey/2 valkey/7 OK -06:19:51> Cluster nodes are reachable: OK -06:19:51> Cluster nodes hard reset: OK -06:19:51> Cluster Join and auto-discovery test: OK -06:19:54> Before slots allocation, all nodes report cluster failure: OK -06:19:54> Create a 5 nodes cluster: OK -06:19:57> Cluster is up: OK -06:19:57> Each master should have at least two replicas attached: OK -06:19:57> Set allow-replica-migration yes: OK -06:19:57> Resharding all the master #0 slots away from it: >>> Performing Cluster Check (using node 127.0.0.1:30000) +15:45:35> (init) Restart killed instances: valkey/2 valkey/7 OK +15:45:36> Cluster nodes are reachable: OK +15:45:36> Cluster nodes hard reset: OK +15:45:36> Cluster Join and auto-discovery test: OK +15:45:40> Before slots allocation, all nodes report cluster failure: OK +15:45:40> Create a 5 nodes cluster: OK +15:45:43> Cluster is up: OK +15:45:43> Each master should have at least two replicas attached: OK +15:45:43> Set allow-replica-migration yes: OK +15:45:44> Resharding all the master #0 slots away from it: >>> Performing Cluster Check (using node 127.0.0.1:30000) [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... @@ -5290,33 +7073,33 @@ >>> Rebalancing across 5 nodes. Total weight = 4.00 Moving 820 slots from 127.0.0.1:30000 to 127.0.0.1:30002 #################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################### -Moving 820 slots from 127.0.0.1:30000 to 127.0.0.1:30004 -#################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################### Moving 820 slots from 127.0.0.1:30000 to 127.0.0.1:30006 #################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################### +Moving 820 slots from 127.0.0.1:30000 to 127.0.0.1:30004 +#################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################### Moving 816 slots from 127.0.0.1:30000 to 127.0.0.1:30008 ################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################ OK -06:20:43> Master #0 who lost all slots should turn into a replica without replicas: OK -06:20:43> Resharding back some slot to master #0: >>> Performing Cluster Check (using node 127.0.0.1:30000) +15:46:35> Master #0 who lost all slots should turn into a replica without replicas: OK +15:46:35> Resharding back some slot to master #0: >>> Performing Cluster Check (using node 127.0.0.1:30000) [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. *** No rebalancing needed! All nodes are within the 2.00% threshold. OK -06:20:53> Master #0 should re-acquire one or more replicas: OK +15:46:45> Master #0 should re-acquire one or more replicas: OK Testing unit: 12.1-replica-migration-3.tcl -06:20:53> (init) Restart killed instances: OK -06:20:53> Cluster nodes are reachable: OK -06:20:53> Cluster nodes hard reset: OK -06:20:54> Cluster Join and auto-discovery test: OK -06:20:56> Before slots allocation, all nodes report cluster failure: OK -06:20:56> Create a 5 nodes cluster: OK -06:20:59> Cluster is up: OK -06:20:59> Each master should have at least two replicas attached: OK -06:20:59> Set allow-replica-migration no: OK -06:20:59> Resharding all the master #0 slots away from it: >>> Performing Cluster Check (using node 127.0.0.1:30000) +15:46:45> (init) Restart killed instances: OK +15:46:45> Cluster nodes are reachable: OK +15:46:46> Cluster nodes hard reset: OK +15:46:46> Cluster Join and auto-discovery test: OK +15:46:47> Before slots allocation, all nodes report cluster failure: OK +15:46:47> Create a 5 nodes cluster: OK +15:46:51> Cluster is up: OK +15:46:51> Each master should have at least two replicas attached: OK +15:46:51> Set allow-replica-migration no: OK +15:46:51> Resharding all the master #0 slots away from it: >>> Performing Cluster Check (using node 127.0.0.1:30000) [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... @@ -5331,53 +7114,53 @@ Moving 816 slots from 127.0.0.1:30000 to 127.0.0.1:30008 ################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################ OK -06:21:32> Wait cluster to be stable: OK -06:21:33> Master #0 still should have its replicas: OK -06:21:33> Each master should have at least two replicas attached: OK +15:47:43> Wait cluster to be stable: OK +15:47:44> Master #0 still should have its replicas: OK +15:47:44> Each master should have at least two replicas attached: OK Testing unit: 28-cluster-shards.tcl -06:21:33> (init) Restart killed instances: OK -06:21:33> Cluster nodes are reachable: OK -06:21:33> Cluster nodes hard reset: OK -06:21:33> Cluster Join and auto-discovery test: OK -06:21:35> Before slots allocation, all nodes report cluster failure: OK -06:21:35> Create a 8 nodes cluster with 4 shards: OK -06:21:35> Cluster should start ok: OK -06:21:39> Set cluster hostnames and verify they are propagated: OK -06:21:41> Verify information about the shards: OK -06:21:42> Verify no slot shard: OK -06:21:42> Kill a node and tell the replica to immediately takeover: OK -06:21:42> Verify health as fail for killed node: OK -06:21:46> Restarting primary node: OK -06:21:46> Instance #0 gets converted into a replica: OK -06:21:46> Test the replica reports a loading state while it's loading: OK -06:21:50> Regression test for a crash when calling SHARDS during handshake: OK -06:21:50> Cluster is up: OK -06:21:53> Shard ids are unique: OK -06:21:53> CLUSTER MYSHARDID reports same id for both primary and replica: OK -06:21:53> New replica receives primary's shard id: OK -06:21:53> CLUSTER MYSHARDID reports same shard id after shard restart: OK -06:21:55> CLUSTER MYSHARDID reports same shard id after cluster restart: OK +15:47:44> (init) Restart killed instances: OK +15:47:44> Cluster nodes are reachable: OK +15:47:44> Cluster nodes hard reset: OK +15:47:45> Cluster Join and auto-discovery test: OK +15:47:47> Before slots allocation, all nodes report cluster failure: OK +15:47:47> Create a 8 nodes cluster with 4 shards: OK +15:47:47> Cluster should start ok: OK +15:47:51> Set cluster hostnames and verify they are propagated: OK +15:47:53> Verify information about the shards: OK +15:47:54> Verify no slot shard: OK +15:47:54> Kill a node and tell the replica to immediately takeover: OK +15:47:55> Verify health as fail for killed node: OK +15:47:59> Restarting primary node: OK +15:47:59> Instance #0 gets converted into a replica: OK +15:47:59> Test the replica reports a loading state while it's loading: OK +15:48:02> Regression test for a crash when calling SHARDS during handshake: OK +15:48:02> Cluster is up: OK +15:48:06> Shard ids are unique: OK +15:48:06> CLUSTER MYSHARDID reports same id for both primary and replica: OK +15:48:06> New replica receives primary's shard id: OK +15:48:06> CLUSTER MYSHARDID reports same shard id after shard restart: OK +15:48:08> CLUSTER MYSHARDID reports same shard id after cluster restart: OK Cleaning up... -killing stale instance 2772540 -killing stale instance 2772554 -killing stale instance 2772593 -killing stale instance 2772604 -killing stale instance 2772616 -killing stale instance 2772628 -killing stale instance 2772641 -killing stale instance 2772653 -killing stale instance 2772664 -killing stale instance 2772676 -killing stale instance 2772742 -killing stale instance 2772749 -killing stale instance 2796782 -killing stale instance 2796897 -killing stale instance 2797076 -killing stale instance 2797444 -killing stale instance 2797822 -killing stale instance 2798210 -killing stale instance 2798632 -killing stale instance 2798988 +killing stale instance 3632563 +killing stale instance 3632693 +killing stale instance 3632872 +killing stale instance 3632936 +killing stale instance 3632992 +killing stale instance 3633047 +killing stale instance 3633106 +killing stale instance 3633157 +killing stale instance 3633238 +killing stale instance 3633310 +killing stale instance 3635204 +killing stale instance 3635234 +killing stale instance 3685666 +killing stale instance 3685675 +killing stale instance 3685693 +killing stale instance 3685736 +killing stale instance 3685822 +killing stale instance 3685841 +killing stale instance 3685866 +killing stale instance 3685920 GOOD! No errors. ./runtest-sentinel || true Starting sentinel #0 at port 20000 @@ -5391,248 +7174,248 @@ Starting valkey #3 at port 30003 Starting valkey #4 at port 30004 Testing unit: 00-base.tcl -06:22:02> (start-init) Flush config and compare rewrite config file lines: OK -06:22:02> (init) Restart killed instances: OK -06:22:02> (init) Remove old primary entry from sentinels: OK -06:22:02> (init) Create a primary-replicas cluster of 5 instances: OK -06:22:02> (init) Sentinels can start monitoring a primary: OK -06:22:03> (init) Sentinels can talk with the primary: OK -06:22:03> (init) Sentinels are able to auto-discover other sentinels: OK -06:22:05> (init) Sentinels are able to auto-discover replicas: OK -06:22:05> Sentinel command flag infrastructure works correctly: OK -06:22:05> SENTINEL HELP output the sentinel subcommand help: OK -06:22:05> SENTINEL MYID return the sentinel instance ID: OK -06:22:05> SENTINEL INFO CACHE returns the cached info: OK -06:22:05> SENTINEL PENDING-SCRIPTS returns the information about pending scripts: OK -06:22:05> SENTINEL PRIMARIES returns a list of monitored primaries: OK -06:22:05> SENTINEL SENTINELS returns a list of sentinel instances: OK -06:22:05> SENTINEL SLAVES returns a list of the monitored replicas: OK -06:22:05> SENTINEL SIMULATE-FAILURE HELP list supported flags: OK -06:22:05> Basic failover works if the primary is down: OK -06:22:09> New primary 127.0.0.1:30001 role matches: OK -06:22:09> All the other slaves now point to the new primary: OK -06:22:09> The old primary eventually gets reconfigured as a slave: OK -06:22:19> ODOWN is not possible without N (quorum) Sentinels reports: OK -06:22:19> Failover is not possible without majority agreement: OK -06:22:20> Failover works if we configure for absolute agreement: OK -06:22:24> New primary 127.0.0.1:30003 role matches: OK -06:22:24> SENTINEL RESET can resets the primary: OK -06:22:24> SENTINEL IS-PRIMARY-DOWN-BY-ADDR checks if the primary is down: OK +15:48:16> (start-init) Flush config and compare rewrite config file lines: OK +15:48:16> (init) Restart killed instances: OK +15:48:16> (init) Remove old primary entry from sentinels: OK +15:48:16> (init) Create a primary-replicas cluster of 5 instances: OK +15:48:16> (init) Sentinels can start monitoring a primary: OK +15:48:16> (init) Sentinels can talk with the primary: OK +15:48:16> (init) Sentinels are able to auto-discover other sentinels: OK +15:48:18> (init) Sentinels are able to auto-discover replicas: OK +15:48:18> Sentinel command flag infrastructure works correctly: OK +15:48:18> SENTINEL HELP output the sentinel subcommand help: OK +15:48:18> SENTINEL MYID return the sentinel instance ID: OK +15:48:18> SENTINEL INFO CACHE returns the cached info: OK +15:48:18> SENTINEL PENDING-SCRIPTS returns the information about pending scripts: OK +15:48:18> SENTINEL PRIMARIES returns a list of monitored primaries: OK +15:48:18> SENTINEL SENTINELS returns a list of sentinel instances: OK +15:48:18> SENTINEL SLAVES returns a list of the monitored replicas: OK +15:48:18> SENTINEL SIMULATE-FAILURE HELP list supported flags: OK +15:48:18> Basic failover works if the primary is down: OK +15:48:22> New primary 127.0.0.1:30001 role matches: OK +15:48:22> All the other slaves now point to the new primary: OK +15:48:22> The old primary eventually gets reconfigured as a slave: OK +15:48:32> ODOWN is not possible without N (quorum) Sentinels reports: OK +15:48:32> Failover is not possible without majority agreement: OK +15:48:33> Failover works if we configure for absolute agreement: OK +15:48:37> New primary 127.0.0.1:30004 role matches: OK +15:48:37> SENTINEL RESET can resets the primary: OK +15:48:37> SENTINEL IS-PRIMARY-DOWN-BY-ADDR checks if the primary is down: OK Testing unit: 01-conf-update.tcl -06:22:24> (init) Restart killed instances: OK -06:22:24> (init) Remove old primary entry from sentinels: OK -06:22:24> (init) Create a primary-replicas cluster of 5 instances: OK -06:22:24> (init) Sentinels can start monitoring a primary: OK -06:22:24> (init) Sentinels can talk with the primary: OK -06:22:24> (init) Sentinels are able to auto-discover other sentinels: OK -06:22:26> (init) Sentinels are able to auto-discover replicas: OK -06:22:26> We can failover with Sentinel 1 crashed: OK -06:22:30> After Sentinel 1 is restarted, its config gets updated: OK -06:22:30> New primary 127.0.0.1:30004 role matches: OK -06:22:30> Update log level: OK +15:48:37> (init) Restart killed instances: OK +15:48:37> (init) Remove old primary entry from sentinels: OK +15:48:37> (init) Create a primary-replicas cluster of 5 instances: OK +15:48:37> (init) Sentinels can start monitoring a primary: OK +15:48:37> (init) Sentinels can talk with the primary: OK +15:48:37> (init) Sentinels are able to auto-discover other sentinels: OK +15:48:39> (init) Sentinels are able to auto-discover replicas: OK +15:48:39> We can failover with Sentinel 1 crashed: OK +15:48:44> After Sentinel 1 is restarted, its config gets updated: OK +15:48:44> New primary 127.0.0.1:30001 role matches: OK +15:48:44> Update log level: OK Testing unit: 02-replicas-reconf.tcl -06:22:30> (init) Restart killed instances: OK -06:22:30> (init) Remove old primary entry from sentinels: OK -06:22:30> (init) Create a primary-replicas cluster of 5 instances: OK -06:22:30> (init) Sentinels can start monitoring a primary: OK -06:22:30> (init) Sentinels can talk with the primary: OK -06:22:30> (init) Sentinels are able to auto-discover other sentinels: OK -06:22:33> (init) Sentinels are able to auto-discover replicas: OK -06:22:33> Check that slaves replicate from current primary: OK -06:22:33> Crash the primary and force a failover: OK -06:22:37> Check that slaves replicate from current primary: OK -06:22:47> Kill a slave instance: OK -06:22:47> Crash the primary and force a failover: OK -06:22:51> Check that slaves replicate from current primary: OK -06:22:51> Wait for failover to end: OK -06:22:52> Restart killed slave and test replication of slaves again...: OK -06:22:52> Check that slaves replicate from current primary: OK +15:48:44> (init) Restart killed instances: OK +15:48:44> (init) Remove old primary entry from sentinels: OK +15:48:44> (init) Create a primary-replicas cluster of 5 instances: OK +15:48:44> (init) Sentinels can start monitoring a primary: OK +15:48:44> (init) Sentinels can talk with the primary: OK +15:48:44> (init) Sentinels are able to auto-discover other sentinels: OK +15:48:46> (init) Sentinels are able to auto-discover replicas: OK +15:48:46> Check that slaves replicate from current primary: OK +15:48:46> Crash the primary and force a failover: OK +15:48:51> Check that slaves replicate from current primary: OK +15:49:01> Kill a slave instance: OK +15:49:01> Crash the primary and force a failover: OK +15:49:05> Check that slaves replicate from current primary: OK +15:49:06> Wait for failover to end: OK +15:49:06> Restart killed slave and test replication of slaves again...: OK +15:49:06> Check that slaves replicate from current primary: OK Testing unit: 03-runtime-reconf.tcl -06:23:02> (init) Restart killed instances: OK -06:23:02> (init) Remove old primary entry from sentinels: OK -06:23:02> (init) Create a primary-replicas cluster of 5 instances: OK -06:23:02> (init) Sentinels can start monitoring a primary: OK -06:23:02> (init) Sentinels can talk with the primary: OK -06:23:02> (init) Sentinels are able to auto-discover other sentinels: OK -06:23:02> (init) Sentinels are able to auto-discover replicas: OK -06:23:02> Sentinels (re)connection following SENTINEL SET myprimary auth-pass: OK -06:23:03> Sentinels (re)connection following primary ACL change: OK -06:23:06> Set parameters in normal case: OK -06:23:06> Set parameters in normal case with bad format: OK -06:23:06> Sentinel Set with other error situations: OK +15:49:17> (init) Restart killed instances: OK +15:49:17> (init) Remove old primary entry from sentinels: OK +15:49:17> (init) Create a primary-replicas cluster of 5 instances: OK +15:49:17> (init) Sentinels can start monitoring a primary: OK +15:49:17> (init) Sentinels can talk with the primary: OK +15:49:17> (init) Sentinels are able to auto-discover other sentinels: OK +15:49:17> (init) Sentinels are able to auto-discover replicas: OK +15:49:17> Sentinels (re)connection following SENTINEL SET myprimary auth-pass: OK +15:49:18> Sentinels (re)connection following primary ACL change: OK +15:49:21> Set parameters in normal case: OK +15:49:21> Set parameters in normal case with bad format: OK +15:49:21> Sentinel Set with other error situations: OK Testing unit: 04-slave-selection.tcl Testing unit: 05-manual.tcl -06:23:06> (init) Restart killed instances: OK -06:23:06> (init) Remove old primary entry from sentinels: OK -06:23:06> (init) Create a primary-replicas cluster of 5 instances: OK -06:23:06> (init) Sentinels can start monitoring a primary: OK -06:23:06> (init) Sentinels can talk with the primary: OK -06:23:06> (init) Sentinels are able to auto-discover other sentinels: OK -06:23:08> (init) Sentinels are able to auto-discover replicas: OK -06:23:08> Manual failover works: OK -06:23:10> New primary 127.0.0.1:30004 role matches: OK -06:23:10> All the other slaves now point to the new primary: OK -06:23:10> The old primary eventually gets reconfigured as a slave: OK -06:23:14> (init) Restart killed instances: OK -06:23:14> (init) Remove old primary entry from sentinels: OK -06:23:14> (init) Create a primary-replicas cluster of 5 instances: OK -06:23:14> (init) Sentinels can start monitoring a primary: OK -06:23:14> (init) Sentinels can talk with the primary: OK -06:23:14> (init) Sentinels are able to auto-discover other sentinels: OK -06:23:15> (init) Sentinels are able to auto-discover replicas: OK -06:23:15> SENTINEL SIMULATE-FAILURE crash-after-election works: OK -06:23:15> (init) Restart killed instances: OK -06:23:15> (init) Remove old primary entry from sentinels: OK -06:23:15> (init) Create a primary-replicas cluster of 5 instances: OK -06:23:15> (init) Sentinels can start monitoring a primary: OK -06:23:15> (init) Sentinels can talk with the primary: OK -06:23:15> (init) Sentinels are able to auto-discover other sentinels: OK -06:23:17> (init) Sentinels are able to auto-discover replicas: OK -06:23:17> SENTINEL SIMULATE-FAILURE crash-after-promotion works: OK +15:49:21> (init) Restart killed instances: OK +15:49:21> (init) Remove old primary entry from sentinels: OK +15:49:21> (init) Create a primary-replicas cluster of 5 instances: OK +15:49:21> (init) Sentinels can start monitoring a primary: OK +15:49:21> (init) Sentinels can talk with the primary: OK +15:49:21> (init) Sentinels are able to auto-discover other sentinels: OK +15:49:23> (init) Sentinels are able to auto-discover replicas: OK +15:49:23> Manual failover works: OK +15:49:24> New primary 127.0.0.1:30004 role matches: OK +15:49:24> All the other slaves now point to the new primary: OK +15:49:24> The old primary eventually gets reconfigured as a slave: OK +15:49:28> (init) Restart killed instances: OK +15:49:28> (init) Remove old primary entry from sentinels: OK +15:49:28> (init) Create a primary-replicas cluster of 5 instances: OK +15:49:28> (init) Sentinels can start monitoring a primary: OK +15:49:28> (init) Sentinels can talk with the primary: OK +15:49:28> (init) Sentinels are able to auto-discover other sentinels: OK +15:49:29> (init) Sentinels are able to auto-discover replicas: OK +15:49:29> SENTINEL SIMULATE-FAILURE crash-after-election works: OK +15:49:29> (init) Restart killed instances: OK +15:49:29> (init) Remove old primary entry from sentinels: OK +15:49:29> (init) Create a primary-replicas cluster of 5 instances: OK +15:49:29> (init) Sentinels can start monitoring a primary: OK +15:49:30> (init) Sentinels can talk with the primary: OK +15:49:30> (init) Sentinels are able to auto-discover other sentinels: OK +15:49:32> (init) Sentinels are able to auto-discover replicas: OK +15:49:32> SENTINEL SIMULATE-FAILURE crash-after-promotion works: OK Testing unit: 06-ckquorum.tcl -06:23:18> (init) Restart killed instances: OK -06:23:18> (init) Remove old primary entry from sentinels: OK -06:23:18> (init) Create a primary-replicas cluster of 5 instances: OK -06:23:18> (init) Sentinels can start monitoring a primary: OK -06:23:18> (init) Sentinels can talk with the primary: OK -06:23:18> (init) Sentinels are able to auto-discover other sentinels: OK -06:23:20> (init) Sentinels are able to auto-discover replicas: OK -06:23:20> CKQUORUM reports OK and the right amount of Sentinels: OK -06:23:20> CKQUORUM detects quorum cannot be reached: OK -06:23:20> CKQUORUM detects failover authorization cannot be reached: OK +15:49:33> (init) Restart killed instances: OK +15:49:33> (init) Remove old primary entry from sentinels: OK +15:49:33> (init) Create a primary-replicas cluster of 5 instances: OK +15:49:33> (init) Sentinels can start monitoring a primary: OK +15:49:33> (init) Sentinels can talk with the primary: OK +15:49:33> (init) Sentinels are able to auto-discover other sentinels: OK +15:49:35> (init) Sentinels are able to auto-discover replicas: OK +15:49:35> CKQUORUM reports OK and the right amount of Sentinels: OK +15:49:35> CKQUORUM detects quorum cannot be reached: OK +15:49:35> CKQUORUM detects failover authorization cannot be reached: OK Testing unit: 07-down-conditions.tcl -06:23:23> (init) Restart killed instances: OK -06:23:23> (init) Remove old primary entry from sentinels: OK -06:23:23> (init) Create a primary-replicas cluster of 5 instances: OK -06:23:23> (init) Sentinels can start monitoring a primary: OK -06:23:23> (init) Sentinels can talk with the primary: OK -06:23:23> (init) Sentinels are able to auto-discover other sentinels: OK -06:23:25> (init) Sentinels are able to auto-discover replicas: OK -06:23:25> Crash the majority of Sentinels to prevent failovers for this unit: OK -06:23:25> SDOWN is triggered by non-responding but not crashed instance: OK -06:23:27> SDOWN is triggered by crashed instance: OK -06:23:30> SDOWN is triggered by primaries advertising as slaves: OK -06:23:34> SDOWN is triggered by misconfigured instance replying with errors: OK -06:23:44> SDOWN is triggered if we rename PING to PONG: OK +15:49:37> (init) Restart killed instances: OK +15:49:37> (init) Remove old primary entry from sentinels: OK +15:49:37> (init) Create a primary-replicas cluster of 5 instances: OK +15:49:37> (init) Sentinels can start monitoring a primary: OK +15:49:38> (init) Sentinels can talk with the primary: OK +15:49:38> (init) Sentinels are able to auto-discover other sentinels: OK +15:49:40> (init) Sentinels are able to auto-discover replicas: OK +15:49:40> Crash the majority of Sentinels to prevent failovers for this unit: OK +15:49:40> SDOWN is triggered by non-responding but not crashed instance: OK +15:49:42> SDOWN is triggered by crashed instance: OK +15:49:45> SDOWN is triggered by primaries advertising as slaves: OK +15:49:49> SDOWN is triggered by misconfigured instance replying with errors: OK +15:49:59> SDOWN is triggered if we rename PING to PONG: OK Testing unit: 08-hostname-conf.tcl -06:23:47> (pre-init) Configure instances and sentinel for hostname use: sentinel/0 sentinel/1 sentinel/2 OK -06:23:47> (init) Restart killed instances: OK -06:23:47> (init) Remove old primary entry from sentinels: OK -06:23:47> (init) Create a primary-replicas cluster of 5 instances: OK -06:23:47> (init) Sentinels can start monitoring a primary: OK -06:23:47> (init) Sentinels can talk with the primary: OK -06:23:47> (init) Sentinels are able to auto-discover other sentinels: OK -06:23:49> (init) Sentinels are able to auto-discover replicas: OK -06:23:49> Sentinel announces hostnames: OK -06:23:49> (post-cleanup) Configure instances and sentinel for IPs: OK +15:50:01> (pre-init) Configure instances and sentinel for hostname use: sentinel/0 sentinel/1 sentinel/2 OK +15:50:02> (init) Restart killed instances: OK +15:50:02> (init) Remove old primary entry from sentinels: OK +15:50:02> (init) Create a primary-replicas cluster of 5 instances: OK +15:50:02> (init) Sentinels can start monitoring a primary: OK +15:50:02> (init) Sentinels can talk with the primary: OK +15:50:02> (init) Sentinels are able to auto-discover other sentinels: OK +15:50:04> (init) Sentinels are able to auto-discover replicas: OK +15:50:04> Sentinel announces hostnames: OK +15:50:04> (post-cleanup) Configure instances and sentinel for IPs: OK Testing unit: 09-acl-support.tcl -06:23:49> (init) Restart killed instances: OK -06:23:49> (init) Remove old primary entry from sentinels: OK -06:23:49> (init) Create a primary-replicas cluster of 5 instances: OK -06:23:49> (init) Sentinels can start monitoring a primary: OK -06:23:49> (init) Sentinels can talk with the primary: OK -06:23:49> (init) Sentinels are able to auto-discover other sentinels: OK -06:23:51> (init) Sentinels are able to auto-discover replicas: OK -06:23:51> (post-init) Set up ACL configuration: OK -06:23:51> SENTINEL CONFIG SET handles on-the-fly credentials reconfiguration: OK -06:23:54> (post-cleanup) Tear down ACL configuration: OK +15:50:04> (init) Restart killed instances: OK +15:50:04> (init) Remove old primary entry from sentinels: OK +15:50:04> (init) Create a primary-replicas cluster of 5 instances: OK +15:50:04> (init) Sentinels can start monitoring a primary: OK +15:50:04> (init) Sentinels can talk with the primary: OK +15:50:04> (init) Sentinels are able to auto-discover other sentinels: OK +15:50:06> (init) Sentinels are able to auto-discover replicas: OK +15:50:06> (post-init) Set up ACL configuration: OK +15:50:06> SENTINEL CONFIG SET handles on-the-fly credentials reconfiguration: OK +15:50:09> (post-cleanup) Tear down ACL configuration: OK Testing unit: 10-replica-priority.tcl -06:23:54> (init) Restart killed instances: OK -06:23:54> (init) Remove old primary entry from sentinels: OK -06:23:54> (init) Create a primary-replicas cluster of 5 instances: OK -06:23:54> (init) Sentinels can start monitoring a primary: OK -06:23:54> (init) Sentinels can talk with the primary: OK -06:23:54> (init) Sentinels are able to auto-discover other sentinels: OK -06:23:56> (init) Sentinels are able to auto-discover replicas: OK -06:23:56> Check acceptable replica-priority values: OK -06:23:56> Set replica-announced=yes on all replicas: OK -06:23:56> Check sentinel replies with 4 replicas: OK -06:23:56> Set replica-announced=no on 2 replicas: OK -06:23:56> Check sentinel replies with 2 replicas: OK -06:23:57> Set replica-announced=yes on all replicas: OK -06:23:57> Check sentinel replies with 4 replicas: OK +15:50:09> (init) Restart killed instances: OK +15:50:09> (init) Remove old primary entry from sentinels: OK +15:50:09> (init) Create a primary-replicas cluster of 5 instances: OK +15:50:09> (init) Sentinels can start monitoring a primary: OK +15:50:09> (init) Sentinels can talk with the primary: OK +15:50:09> (init) Sentinels are able to auto-discover other sentinels: OK +15:50:11> (init) Sentinels are able to auto-discover replicas: OK +15:50:11> Check acceptable replica-priority values: OK +15:50:11> Set replica-announced=yes on all replicas: OK +15:50:11> Check sentinel replies with 4 replicas: OK +15:50:11> Set replica-announced=no on 2 replicas: OK +15:50:11> Check sentinel replies with 2 replicas: OK +15:50:12> Set replica-announced=yes on all replicas: OK +15:50:12> Check sentinel replies with 4 replicas: OK Testing unit: 11-port-0.tcl -06:23:57> (init) Restart killed instances: OK -06:23:57> (init) Remove old primary entry from sentinels: OK -06:23:57> (init) Create a primary-replicas cluster of 5 instances: OK -06:23:57> (init) Sentinels can start monitoring a primary: OK -06:23:57> (init) Sentinels can talk with the primary: OK -06:23:57> (init) Sentinels are able to auto-discover other sentinels: OK -06:23:57> (init) Sentinels are able to auto-discover replicas: OK -06:23:57> Start/Stop sentinel on same port with a different runID should not change the total number of sentinels: OK +15:50:12> (init) Restart killed instances: OK +15:50:12> (init) Remove old primary entry from sentinels: OK +15:50:12> (init) Create a primary-replicas cluster of 5 instances: OK +15:50:12> (init) Sentinels can start monitoring a primary: OK +15:50:12> (init) Sentinels can talk with the primary: OK +15:50:12> (init) Sentinels are able to auto-discover other sentinels: OK +15:50:12> (init) Sentinels are able to auto-discover replicas: OK +15:50:12> Start/Stop sentinel on same port with a different runID should not change the total number of sentinels: OK Testing unit: 12-primary-reboot.tcl -06:23:58> (init) Restart killed instances: sentinel/4 OK -06:23:58> (init) Remove old primary entry from sentinels: OK -06:23:58> (init) Create a primary-replicas cluster of 5 instances: OK -06:23:58> (init) Sentinels can start monitoring a primary: OK -06:23:58> (init) Sentinels can talk with the primary: OK -06:23:58> (init) Sentinels are able to auto-discover other sentinels: OK -06:24:00> (init) Sentinels are able to auto-discover replicas: OK -06:24:00> Primary reboot in very short time: OK -06:24:08> New primary 127.0.0.1:30004 role matches: OK -06:24:08> All the other slaves now point to the new primary: OK -06:24:08> The old primary eventually gets reconfigured as a slave: OK +15:50:13> (init) Restart killed instances: sentinel/4 OK +15:50:13> (init) Remove old primary entry from sentinels: OK +15:50:13> (init) Create a primary-replicas cluster of 5 instances: OK +15:50:13> (init) Sentinels can start monitoring a primary: OK +15:50:13> (init) Sentinels can talk with the primary: OK +15:50:13> (init) Sentinels are able to auto-discover other sentinels: OK +15:50:15> (init) Sentinels are able to auto-discover replicas: OK +15:50:15> Primary reboot in very short time: OK +15:50:23> New primary 127.0.0.1:30004 role matches: OK +15:50:23> All the other slaves now point to the new primary: OK +15:50:23> The old primary eventually gets reconfigured as a slave: OK Testing unit: 13-info-command.tcl -06:24:18> (init) Restart killed instances: OK -06:24:18> (init) Remove old primary entry from sentinels: OK -06:24:18> (init) Create a primary-replicas cluster of 5 instances: OK -06:24:18> (init) Sentinels can start monitoring a primary: OK -06:24:18> (init) Sentinels can talk with the primary: OK -06:24:18> (init) Sentinels are able to auto-discover other sentinels: OK -06:24:20> (init) Sentinels are able to auto-discover replicas: OK -06:24:20> info command with at most one argument: OK -06:24:20> info command with one sub-section: OK -06:24:20> info command with multiple sub-sections: OK +15:50:32> (init) Restart killed instances: OK +15:50:32> (init) Remove old primary entry from sentinels: OK +15:50:32> (init) Create a primary-replicas cluster of 5 instances: OK +15:50:32> (init) Sentinels can start monitoring a primary: OK +15:50:32> (init) Sentinels can talk with the primary: OK +15:50:32> (init) Sentinels are able to auto-discover other sentinels: OK +15:50:34> (init) Sentinels are able to auto-discover replicas: OK +15:50:34> info command with at most one argument: OK +15:50:34> info command with one sub-section: OK +15:50:34> info command with multiple sub-sections: OK Testing unit: 14-debug-command.tcl -06:24:20> (init) Restart killed instances: OK -06:24:20> (init) Remove old primary entry from sentinels: OK -06:24:20> (init) Create a primary-replicas cluster of 5 instances: OK -06:24:20> (init) Sentinels can start monitoring a primary: OK -06:24:20> (init) Sentinels can talk with the primary: OK -06:24:20> (init) Sentinels are able to auto-discover other sentinels: OK -06:24:22> (init) Sentinels are able to auto-discover replicas: OK -06:24:22> Sentinel debug test with arguments and without argument: OK +15:50:35> (init) Restart killed instances: OK +15:50:35> (init) Remove old primary entry from sentinels: OK +15:50:35> (init) Create a primary-replicas cluster of 5 instances: OK +15:50:35> (init) Sentinels can start monitoring a primary: OK +15:50:35> (init) Sentinels can talk with the primary: OK +15:50:35> (init) Sentinels are able to auto-discover other sentinels: OK +15:50:37> (init) Sentinels are able to auto-discover replicas: OK +15:50:37> Sentinel debug test with arguments and without argument: OK Testing unit: 15-sentinel-deprecated-commands.tcl -06:24:22> (init) Restart killed instances: OK -06:24:22> (init) Remove old primary entry from sentinels: OK -06:24:22> (init) Create a primary-replicas cluster of 5 instances: OK -06:24:22> (init) Sentinels can start monitoring a primary: OK -06:24:22> (init) Sentinels can talk with the primary: OK -06:24:22> (init) Sentinels are able to auto-discover other sentinels: OK -06:24:24> (init) Sentinels are able to auto-discover replicas: OK -06:24:24> SENTINEL MASTERS returns a list of monitored masters (SENTINEL MASTERS as a deprecated command): OK -06:24:24> SENTINEL SLAVES returns a list of the monitored slaves (SENTINEL SLAVES as a deprecated command): OK -06:24:24> SENTINEL MASTER returns the information list of the monitored master (SENTINEL MASTER as a deprecated command): OK -06:24:24> SENTINEL IS-MASTER-DOWN-BY-ADDR checks if the primary is down (SENTINEL IS-MASTER-DOWN-BY-ADDR as a deprecated command): OK +15:50:37> (init) Restart killed instances: OK +15:50:37> (init) Remove old primary entry from sentinels: OK +15:50:37> (init) Create a primary-replicas cluster of 5 instances: OK +15:50:37> (init) Sentinels can start monitoring a primary: OK +15:50:37> (init) Sentinels can talk with the primary: OK +15:50:37> (init) Sentinels are able to auto-discover other sentinels: OK +15:50:39> (init) Sentinels are able to auto-discover replicas: OK +15:50:39> SENTINEL MASTERS returns a list of monitored masters (SENTINEL MASTERS as a deprecated command): OK +15:50:39> SENTINEL SLAVES returns a list of the monitored slaves (SENTINEL SLAVES as a deprecated command): OK +15:50:39> SENTINEL MASTER returns the information list of the monitored master (SENTINEL MASTER as a deprecated command): OK +15:50:39> SENTINEL IS-MASTER-DOWN-BY-ADDR checks if the primary is down (SENTINEL IS-MASTER-DOWN-BY-ADDR as a deprecated command): OK Testing unit: 16-config-set-config-get.tcl -06:24:24> (init) Restart killed instances: OK -06:24:24> (init) Remove old primary entry from sentinels: OK -06:24:24> (init) Create a primary-replicas cluster of 5 instances: OK -06:24:24> (init) Sentinels can start monitoring a primary: OK -06:24:24> (init) Sentinels can talk with the primary: OK -06:24:24> (init) Sentinels are able to auto-discover other sentinels: OK -06:24:26> (init) Sentinels are able to auto-discover replicas: OK -06:24:26> SENTINEL CONFIG SET and SENTINEL CONFIG GET handles multiple variables: OK -06:24:26> SENTINEL CONFIG GET for duplicate and unknown variables: OK -06:24:26> SENTINEL CONFIG GET for patterns: OK -06:24:26> SENTINEL CONFIG SET duplicate variables: OK -06:24:26> SENTINEL CONFIG SET, one option does not exist: OK -06:24:26> SENTINEL CONFIG SET, one option with wrong value: OK -06:24:26> SENTINEL CONFIG SET, wrong number of arguments: OK +15:50:39> (init) Restart killed instances: OK +15:50:39> (init) Remove old primary entry from sentinels: OK +15:50:39> (init) Create a primary-replicas cluster of 5 instances: OK +15:50:39> (init) Sentinels can start monitoring a primary: OK +15:50:39> (init) Sentinels can talk with the primary: OK +15:50:39> (init) Sentinels are able to auto-discover other sentinels: OK +15:50:41> (init) Sentinels are able to auto-discover replicas: OK +15:50:41> SENTINEL CONFIG SET and SENTINEL CONFIG GET handles multiple variables: OK +15:50:41> SENTINEL CONFIG GET for duplicate and unknown variables: OK +15:50:41> SENTINEL CONFIG GET for patterns: OK +15:50:41> SENTINEL CONFIG SET duplicate variables: OK +15:50:41> SENTINEL CONFIG SET, one option does not exist: OK +15:50:41> SENTINEL CONFIG SET, one option with wrong value: OK +15:50:41> SENTINEL CONFIG SET, wrong number of arguments: OK Cleaning up... -killing stale instance 2800706 -killing stale instance 2800713 -killing stale instance 2806878 -killing stale instance 2811366 -killing stale instance 2811988 -killing stale instance 2812207 -killing stale instance 2812863 -killing stale instance 2816101 -killing stale instance 2816109 -killing stale instance 2816120 -killing stale instance 2818237 -killing stale instance 2818329 -killing stale instance 2818704 +killing stale instance 3686343 +killing stale instance 3686350 +killing stale instance 3686357 +killing stale instance 3687175 +killing stale instance 3687288 +killing stale instance 3687459 +killing stale instance 3687627 +killing stale instance 3688015 +killing stale instance 3688023 +killing stale instance 3688031 +killing stale instance 3688277 +killing stale instance 3688286 +killing stale instance 3688365 GOOD! No errors. # Clean up after gen-test-certs.sh rm -rf tests/tls || true @@ -5673,16 +7456,16 @@ diversion by libc6 from: /lib/ld-linux-aarch64.so.1 dpkg-shlibdeps: warning: diversions involved - output may be incorrect diversion by libc6 to: /lib/ld-linux-aarch64.so.1.usr-is-merged -dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/valkey-tools/usr/bin/valkey-benchmark debian/valkey-tools/usr/bin/valkey-cli debian/valkey-tools/usr/bin/valkey-check-rdb debian/valkey-tools/usr/bin/valkey-check-aof were not linked against liblzf.so.1 (they use none of the library's symbols) -dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/valkey-tools/usr/bin/valkey-benchmark debian/valkey-tools/usr/bin/valkey-cli debian/valkey-tools/usr/bin/valkey-check-rdb debian/valkey-tools/usr/bin/valkey-check-aof were not linked against libatomic.so.1 (they use none of the library's symbols) +dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/valkey-tools/usr/bin/valkey-benchmark debian/valkey-tools/usr/bin/valkey-check-rdb debian/valkey-tools/usr/bin/valkey-check-aof debian/valkey-tools/usr/bin/valkey-cli were not linked against libatomic.so.1 (they use none of the library's symbols) +dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/valkey-tools/usr/bin/valkey-benchmark debian/valkey-tools/usr/bin/valkey-check-rdb debian/valkey-tools/usr/bin/valkey-check-aof debian/valkey-tools/usr/bin/valkey-cli were not linked against liblzf.so.1 (they use none of the library's symbols) dh_installdeb dh_gencontrol dh_md5sums dh_builddeb dpkg-deb: building package 'valkey-server' in '../valkey-server_8.1.4+dfsg1-1_arm64.deb'. dpkg-deb: building package 'valkey-tools-dbgsym' in '../valkey-tools-dbgsym_8.1.4+dfsg1-1_arm64.deb'. -dpkg-deb: building package 'valkey-tools' in '../valkey-tools_8.1.4+dfsg1-1_arm64.deb'. dpkg-deb: building package 'valkey-sentinel' in '../valkey-sentinel_8.1.4+dfsg1-1_arm64.deb'. +dpkg-deb: building package 'valkey-tools' in '../valkey-tools_8.1.4+dfsg1-1_arm64.deb'. dpkg-genbuildinfo --build=binary -O../valkey_8.1.4+dfsg1-1_arm64.buildinfo dpkg-genchanges --build=binary -O../valkey_8.1.4+dfsg1-1_arm64.changes dpkg-genchanges: info: binary-only upload (no source code included) @@ -5690,12 +7473,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: including full source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/3261370/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/3261370/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/2462283 and its subdirectories -I: Current time: Fri Oct 24 06:24:41 -12 2025 -I: pbuilder-time-stamp: 1761330281 +I: removing directory /srv/workspace/pbuilder/3261370 and its subdirectories +I: Current time: Fri Nov 27 15:50:57 +14 2026 +I: pbuilder-time-stamp: 1795744257