Diff of the two buildlogs: -- --- b1/build.log 2025-10-26 18:58:39.054964795 +0000 +++ b2/build.log 2025-10-26 20:05:22.484487587 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Sat Nov 28 11:34:36 -12 2026 -I: pbuilder-time-stamp: 1795908876 +I: Current time: Mon Oct 27 08:58:41 +14 2025 +I: pbuilder-time-stamp: 1761505121 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/forky-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/625890/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/1522642/tmp/hooks/D01_modify_environment starting +debug: Running on codethink04-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 Oct 26 18:58 /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/1522642/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/1522642/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='forky' - HOME='/root' - HOST_ARCH='arm64' + DIRSTACK=() + DISTRIBUTION=forky + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=aarch64 + HOST_ARCH=arm64 IFS=' ' - INVOCATION_ID='2be5619cb40e4d02820b582008fd9d82' - 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='625890' - PS1='# ' - PS2='> ' + INVOCATION_ID=1af573670e1749d3940cb4f8ff90daa7 + 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=1522642 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.LGgyFuI5/pbuilderrc_QQsF --distribution forky --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/forky-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.LGgyFuI5/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.LGgyFuI5/pbuilderrc_NDOa --distribution forky --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/forky-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.LGgyFuI5/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 codethink03-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 2025 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/625890/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Aug 10 12:30 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/1522642/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 forky/main arm64 tcl8.6 arm64 8.6.17+dfsg-1 [121 kB] Get: 59 http://deb.debian.org/debian forky/main arm64 tcl arm64 8.6.16 [4096 B] Get: 60 http://deb.debian.org/debian forky/main arm64 tcl-tls arm64 1.8.0-2 [61.1 kB] -Fetched 21.9 MB in 0s (77.3 MB/s) +Fetched 21.9 MB in 0s (122 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 ... 20002 files and directories currently installed.) @@ -398,8 +430,8 @@ Setting up tzdata (2025b-5) ... Current default time zone: 'Etc/UTC' -Local time is now: Sat Nov 28 23:35:02 UTC 2026. -Universal Time is now: Sat Nov 28 23:35:02 UTC 2026. +Local time is now: Sun Oct 26 18:59:02 UTC 2025. +Universal Time is now: Sun Oct 26 18:59:02 UTC 2025. 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/1522642/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for forky +I: user script /srv/workspace/pbuilder/1522642/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 @@ -566,65 +602,65 @@ (echo "-flto=auto -ffat-lto-objects -Wl,-z,relro -Wl,-z,now -Wl,-no-as-needed -ldl -latomic -llzf" > .make-ldflags) MAKE hiredis MAKE linenoise +cd hiredis && make static USE_SSL=1 cd linenoise && make MAKE lua -cd hiredis && make static USE_SSL=1 -MAKE hdr_histogram -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 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 hdr_histogram cd hdr_histogram && make -make[5]: Entering directory '/build/reproducible-path/valkey-8.1.4+dfsg1/deps/hiredis' MAKE fpconv cd fpconv && make +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[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/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 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 -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 make[5]: Entering directory '/build/reproducible-path/valkey-8.1.4+dfsg1/deps/fpconv' -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 -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 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 lcode.o lcode.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 ldebug.o ldebug.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 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 -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 -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 ar rcs libfpconv.a fpconv_dtoa.o make[5]: Leaving directory '/build/reproducible-path/valkey-8.1.4+dfsg1/deps/fpconv' +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 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 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 -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 llex.o llex.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 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 lobject.o lobject.c ar rcs libhdrhistogram.a hdr_histogram.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 lmem.o lmem.c make[5]: Leaving directory '/build/reproducible-path/valkey-8.1.4+dfsg1/deps/hdr_histogram' +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 -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 -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 -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 -ar rcs libhiredis_ssl.a ssl.o +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 ltm.o ltm.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 lundump.o lundump.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 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 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 +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' 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 -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 -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 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 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 loslib.o loslib.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' 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 @@ -758,10 +794,10 @@ cc -flto=auto -ffat-lto-objects -Wl,-z,relro -Wl,-z,now -Wl,-no-as-needed -ldl -latomic -llzf -O3 -flto=auto -ffat-lto-objects -fno-omit-frame-pointer -g -ggdb -rdynamic -o valkey-cli anet.o adlist.o dict.o valkey-cli.o zmalloc.o release.o ae.o serverassert.o crcspeed.o crccombine.o crc64.o siphash.o crc16.o monotonic.o cli_common.o mt19937-64.o strl.o cli_commands.o ../deps/hiredis/libhiredis.a ../deps/linenoise/linenoise.o -ljemalloc -lm -ldl -pthread -lrt -lsystemd ../deps/hiredis/libhiredis_ssl.a -lssl -lcrypto install --strip-program=true valkey-server valkey-sentinel install --strip-program=true valkey-server valkey-check-rdb -install: WARNING: ignoring --strip-program option as -s option was not specified install --strip-program=true valkey-server valkey-check-aof install: WARNING: ignoring --strip-program option as -s option was not specified install: WARNING: ignoring --strip-program option as -s option was not specified +install: WARNING: ignoring --strip-program option as -s option was not specified Hint: It's a good idea to run 'make test' ;) @@ -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]: 666389 +[ready]: 1611731 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 (117 ms) -[ok]: WAIT out of range timeout (milliseconds) (1 ms) -[ok]: WAIT should acknowledge 1 additional copy of the data (742 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 (1102 ms) -[ok]: WAIT implicitly blocks on client pause since ACKs aren't sent (1116 ms) -[ok]: WAIT replica multiple clients unblock - reuse last result (84 ms) +[ok]: Setup slave (103 ms) +[ok]: WAIT out of range timeout (milliseconds) (2 ms) +[ok]: WAIT should acknowledge 1 additional copy of the data (750 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 (1118 ms) +[ok]: WAIT implicitly blocks on client pause since ACKs aren't sent (1109 ms) +[ok]: WAIT replica multiple clients unblock - reuse last result (92 ms) === () Starting server on 127.0.0.1:21115 ok -[ok]: Setup a new replica (115 ms) -[ok]: WAIT in script will work (1777 ms) +[ok]: Setup a new replica (106 ms) +[ok]: WAIT in script will work (1854 ms) === () Starting server on 127.0.0.1:21117 ok -[ok]: WAITAOF local copy before fsync (60 ms) -[ok]: WAITAOF local copy everysec (0 ms) -[ok]: WAITAOF local copy with appendfsync always (0 ms) -[ok]: WAITAOF local wait and then stop aof (24 ms) +[ok]: WAITAOF local copy before fsync (151 ms) +[ok]: WAITAOF local copy everysec (1 ms) +[ok]: WAITAOF local copy with appendfsync always (1 ms) +[ok]: WAITAOF local wait and then stop aof (33 ms) [ok]: WAITAOF local on server with aof disabled (0 ms) -[ok]: WAITAOF local if AOFRW was postponed (291 ms) +[ok]: WAITAOF local if AOFRW was postponed (269 ms) === () Starting server on 127.0.0.1:21119 ok -[ok]: WAITAOF on demoted master gets unblocked with an error (21 ms) -[ok]: WAITAOF replica copy before fsync (57 ms) -[ok]: WAITAOF replica copy everysec (1656 ms) +[ok]: WAITAOF on demoted master gets unblocked with an error (33 ms) +[ok]: WAITAOF replica copy before fsync (73 ms) +[ok]: WAITAOF replica copy everysec (658 ms) Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: WAITAOF replica copy everysec with AOFRW (1018 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,45 +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... -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: WAITAOF replica copy everysec with slow AOFRW (2156 ms) +Waiting for background AOF rewrite to finish... [ok]: WAITAOF replica copy everysec with slow AOFRW (2039 ms) Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: WAITAOF replica copy everysec->always with AOFRW (110 ms) +Waiting for background AOF rewrite to finish... [ok]: WAITAOF replica copy everysec->always with AOFRW (106 ms) [ok]: WAITAOF replica copy appendfsync always (1 ms) -[ok]: WAITAOF replica copy if replica is blocked (140 ms) -[ok]: WAITAOF replica multiple clients unblock - reuse last result (81 ms) -[ok]: WAITAOF on promoted replica (0 ms) -[ok]: WAITAOF master that loses a replica and backlog is dropped (2009 ms) -[ok]: WAITAOF master without backlog, wait is released when the replica finishes full-sync (630 ms) -[ok]: WAITAOF master isn't configured to do AOF (1008 ms) +[ok]: WAITAOF replica copy if replica is blocked (126 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 (2003 ms) +[ok]: WAITAOF master without backlog, wait is released when the replica finishes full-sync (728 ms) +[ok]: WAITAOF master isn't configured to do AOF (1009 ms) Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: WAITAOF replica isn't configured to do AOF (107 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 (907 ms) -[ok]: WAITAOF master sends PING after last write (1205 ms) -[ok]: WAITAOF master client didn't send any write command (1236 ms) -[ok]: WAITAOF master client didn't send any command (1203 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 (1203 ms) +[ok]: WAITAOF master client didn't send any write command (1234 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 (3596 ms) +[ok]: WAITAOF when replica switches between masters, fsync: no (3581 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 (2492 ms) +[ok]: WAITAOF when replica switches between masters, fsync: everysec (2477 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 (1588 ms) +[ok]: WAITAOF when replica switches between masters, fsync: always (1473 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 (110 ms) +[ok]: setup replication for following tests (105 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 (1572 ms) -[1/129 done]: unit/wait (32 seconds) +[1/129 done]: unit/wait (31 seconds) Testing unit/violations [ignore]: large memory flag not provided [ignore]: large memory flag not provided @@ -879,1318 +913,1319 @@ [ignore]: large memory flag not provided [ignore]: large memory flag not provided === () Starting server on 127.0.0.1:21139 ok -[ok]: SORT adds integer field to list (14 ms) +[ok]: SORT adds integer field to list (3 ms) [2/129 done]: unit/violations (0 seconds) Testing unit/tracking === (tracking network logreqres:skip) Starting server on 127.0.0.1:21141 ok -[ok]: Client tracking prefixes memory overhead (704 ms) +[ok]: Client tracking prefixes memory overhead (415 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 (6 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]: 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 (1 ms) -[ok]: Tracking NOLOOP mode in BCAST mode works (0 ms) -[ok]: Tracking gets notification of expired keys (1004 ms) +[ok]: Tracking NOLOOP mode in BCAST mode works (1 ms) +[ok]: Tracking gets notification of expired keys (1006 ms) [ok]: Tracking gets notification of lazy expired keys (102 ms) -[ok]: HELLO 3 reply is correct (1 ms) -[ok]: RESP3 based basic invalidation (6 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 (1 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 (29 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]: No invalidation message when using OPTIN option (4 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 (33 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 (3 ms) [ok]: Invalidation message sent when using OPTIN option with CLIENT CACHING yes (1 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 (5 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 (21 ms) -[ok]: hdel deliver invalidate message after response in the same connection (6 ms) -[ok]: Tracking invalidation message is not interleaved with multiple keys response (112 ms) -[ok]: Tracking invalidation message is not interleaved with transaction response (1 ms) +[ok]: No invalidation message when using OPTOUT option with CLIENT CACHING no (2 ms) +[ok]: Able to redirect to a RESP3 client (2 ms) +[ok]: After switching from normal tracking to BCAST mode, no invalidation message is produced for pre-BCAST keys (2 ms) +[ok]: BCAST with prefix collisions throw errors (32 ms) +[ok]: hdel deliver invalidate message after response in the same connection (2 ms) +[ok]: Tracking invalidation message is not interleaved with multiple keys response (114 ms) +[ok]: Tracking invalidation message is not interleaved with transaction response (2 ms) [ok]: Tracking invalidation message of eviction keys should be before response (5 ms) -[ok]: Unblocked BLMOVE gets notification after response (5 ms) -[ok]: Tracking gets notification on tracking table key eviction (96 ms) -[ok]: Invalidation message received for flushall (52 ms) -[ok]: Invalidation message received for flushdb (44 ms) -[ok]: Test ASYNC flushall (36 ms) -[ok]: flushdb tracking invalidation message is not interleaved with transaction response (29 ms) -[ok]: Server is able to evacuate enough keys when num of keys surpasses limit by more than defined initial effort (259 ms) -[ok]: Tracking info is correct (36 ms) +[ok]: Unblocked BLMOVE gets notification after response (2 ms) +[ok]: Tracking gets notification on tracking table key eviction (82 ms) +[ok]: Invalidation message received for flushall (65 ms) +[ok]: Invalidation message received for flushdb (65 ms) +[ok]: Test ASYNC flushall (66 ms) +[ok]: flushdb tracking invalidation message is not interleaved with transaction response (65 ms) +[ok]: Server is able to evacuate enough keys when num of keys surpasses limit by more than defined initial effort (366 ms) +[ok]: Tracking info is correct (67 ms) [ok]: CLIENT GETREDIR provides correct client id (1 ms) -[ok]: CLIENT TRACKINGINFO provides reasonable results when tracking off (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 on with options (1 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 (1 ms) -[ok]: CLIENT TRACKINGINFO provides reasonable results when tracking redir broken (29 ms) -[ok]: Regression test for #11715 (29 ms) -[ok]: RESP3 based basic invalidation with client reply off (28 ms) -[ok]: RESP2 based basic invalidation with client reply off (70 ms) -[ok]: RESP3 based basic redirect invalidation with client reply off (69 ms) -[ok]: RESP3 based basic tracking-redir-broken with client reply off (46 ms) +[ok]: CLIENT TRACKINGINFO provides reasonable results when tracking redir broken (65 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 (106 ms) +[ok]: RESP3 based basic redirect invalidation with client reply off (96 ms) +[ok]: RESP3 based basic tracking-redir-broken with client reply off (65 ms) === (tracking network) Starting server on 127.0.0.1:21143 ok -[ok]: CLIENT TRACKINGINFO when start (0 ms) -[ok]: Coverage: Basic CLIENT CACHING (16 ms) -[ok]: Coverage: Basic CLIENT REPLY (0 ms) +[ok]: CLIENT TRACKINGINFO when start (1 ms) +[ok]: Coverage: Basic CLIENT CACHING (32 ms) +[ok]: Coverage: Basic CLIENT REPLY (1 ms) [ok]: Coverage: Basic CLIENT TRACKINGINFO (0 ms) -[ok]: Coverage: Basic CLIENT GETREDIR (4 ms) +[ok]: Coverage: Basic CLIENT GETREDIR (1 ms) [3/129 done]: unit/tracking (4 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 (0 ms) -[ok]: TLS: Verify tls-auth-clients behaves as expected (41 ms) -[ok]: TLS: Verify tls-protocols behaves as expected (17 ms) -[ok]: TLS: Verify tls-ciphers behaves as expected (45 ms) -[ok]: TLS: Verify tls-prefer-server-ciphers behaves as expected (41 ms) +[ok]: TLS: Not accepting non-TLS connections on a TLS port (1 ms) +[ok]: TLS: Verify tls-auth-clients behaves as expected (64 ms) +[ok]: TLS: Verify tls-protocols behaves as expected (42 ms) +[ok]: TLS: Verify tls-ciphers behaves as expected (78 ms) +[ok]: TLS: Verify tls-prefer-server-ciphers behaves as expected (80 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 (375 ms) -[ok]: TLS: switch between tcp and tls ports (45 ms) -[ok]: TLS: Working with an encrypted keyfile (24 ms) +[ok]: TLS: Verify tls-cert-file is also used as a client cert if none specified (360 ms) +[ok]: TLS: switch between tcp and tls ports (64 ms) +[ok]: TLS: Working with an encrypted keyfile (42 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 (0 ms) +[ok]: Listpack: SORT BY key (1 ms) [ok]: Listpack: SORT BY key with limit (0 ms) -[ok]: Listpack: SORT BY hash field (1 ms) -[ok]: Quicklist: SORT BY key (11 ms) +[ok]: Listpack: SORT BY hash field (0 ms) +[ok]: Quicklist: SORT BY key (8 ms) [ok]: Quicklist: SORT BY key with limit (1 ms) -[ok]: Quicklist: SORT BY hash field (16 ms) -[ok]: Big Quicklist: SORT BY key (291 ms) -[ok]: Big Quicklist: SORT BY key with limit (5 ms) -[ok]: Big Quicklist: SORT BY hash field (317 ms) -[ok]: Intset: SORT BY key (0 ms) +[ok]: Quicklist: SORT BY hash field (8 ms) +[ok]: Big Quicklist: SORT BY key (259 ms) +[ok]: Big Quicklist: SORT BY key with limit (11 ms) +[ok]: Big Quicklist: SORT BY hash field (264 ms) +[ok]: Intset: SORT BY key (1 ms) [ok]: Intset: SORT BY key with limit (0 ms) [ok]: Intset: SORT BY hash field (0 ms) -[ok]: Hash table: SORT BY key (8 ms) +[ok]: Hash table: SORT BY key (7 ms) [ok]: Hash table: SORT BY key with limit (1 ms) [ok]: Hash table: SORT BY hash field (8 ms) -[ok]: Big Hash table: SORT BY key (313 ms) -[ok]: Big Hash table: SORT BY key with limit (6 ms) -[ok]: Big Hash table: SORT BY hash field (285 ms) -[ok]: SORT GET # (0 ms) +[ok]: Big Hash table: SORT BY key (260 ms) +[ok]: Big Hash table: SORT BY key with limit (15 ms) +[ok]: Big Hash table: SORT BY hash field (276 ms) +[ok]: SORT GET # (1 ms) [ok]: SORT GET (0 ms) [ok]: SORT_RO GET (1 ms) -[ok]: SORT GET (key and hash) with sanity check (3 ms) -[ok]: SORT BY key STORE (0 ms) -[ok]: SORT BY hash field STORE (1 ms) +[ok]: SORT GET (key and hash) with sanity check (4 ms) +[ok]: SORT BY key STORE (1 ms) +[ok]: SORT BY hash field STORE (0 ms) [ok]: SORT extracts STORE correctly (0 ms) [ok]: SORT_RO get keys (0 ms) [ok]: SORT extracts multiple STORE correctly (0 ms) [ok]: SORT DESC (0 ms) -[ok]: SORT ALPHA against integer encoded strings (0 ms) -[ok]: SORT sorted set (0 ms) -[ok]: SORT sorted set BY nosort should retain ordering (1 ms) +[ok]: SORT ALPHA against integer encoded strings (1 ms) +[ok]: SORT sorted set (1 ms) +[ok]: SORT sorted set BY nosort should retain ordering (2 ms) [ok]: SORT sorted set BY nosort + LIMIT (1 ms) -[ok]: SORT sorted set BY nosort works as expected from scripts (1 ms) -[ok]: SORT sorted set: +inf and -inf handling (0 ms) -[ok]: SORT regression for issue #19, sorting floats (3 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) (1 ms) -[ok]: SORT with STORE removes key if result is empty (github issue 227) (0 ms) -[ok]: SORT with BY and STORE should still order output (0 ms) +[ok]: SORT sorted set BY nosort works as expected from scripts (2 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) (1 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 (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 plus store retains native order for lists (1 ms) -[ok]: SORT by nosort with limit returns based on original list order (0 ms) -[ok]: SORT_RO - Successful case (1 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 (1 ms) +[ok]: SORT_RO - Successful case (0 ms) [ok]: SORT_RO - Cannot run with STORE arg (0 ms) - Average time to sort: 0.17000000000000001 milliseconds [ok]: SORT speed, 100 element list BY key, 100 times (17 ms) + Average time to sort: 0.22 milliseconds [ok]: SORT speed, 100 element list BY key, 100 times (22 ms) - Average time to sort: 0.19 milliseconds [ok]: SORT speed, 100 element list BY hash field, 100 times (19 ms) + Average time to sort: 0.26000000000000001 milliseconds [ok]: SORT speed, 100 element list BY hash field, 100 times (26 ms) - Average time to sort: 0.14000000000000001 milliseconds [ok]: SORT speed, 100 element list directly, 100 times (14 ms) + Average time to sort: 0.16 milliseconds [ok]: SORT speed, 100 element list directly, 100 times (16 ms) - Average time to sort: 0.13 milliseconds [ok]: SORT speed, 100 element list BY , 100 times (13 ms) -[ok]: SETRANGE with huge offset (0 ms) -[ok]: SORT STORE quicklist with the right options (49 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 (52 ms) === (external:skip cluster sort) Starting server on 127.0.0.1:21151 ok -[ok]: sort by in cluster mode (0 ms) +[ok]: sort by in cluster mode (1 ms) [ok]: sort get in cluster mode (1 ms) -[ok]: sort_ro by in cluster mode (4 ms) -[ok]: sort_ro get in cluster mode (1 ms) -[5/129 done]: unit/sort (10 seconds) +[ok]: sort_ro by in cluster mode (1 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 (13 ms) -[ok]: SLOWLOG - max entries is correctly handled (28 ms) -[ok]: SLOWLOG - GET optional argument to limit output len works (1 ms) -[ok]: SLOWLOG - RESET subcommand works (0 ms) -[ok]: SLOWLOG - logged entry sanity check (201 ms) -[ok]: SLOWLOG - Certain commands are omitted that contain sensitive information (2 ms) +[ok]: SLOWLOG - check that it starts with an empty log (1 ms) +[ok]: SLOWLOG - only logs commands taking more time than specified (202 ms) +[ok]: SLOWLOG - zero max length is correctly handled (18 ms) +[ok]: SLOWLOG - max entries is correctly handled (18 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 (202 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 (29 ms) +[ok]: SLOWLOG - Rewritten commands are logged as their original command (38 ms) [ok]: SLOWLOG - commands with too many arguments are trimmed (1 ms) -[ok]: SLOWLOG - too long arguments are trimmed (1 ms) -[ok]: SLOWLOG - EXEC is not logged, just executed commands (201 ms) -[ok]: SLOWLOG - can clean older entries (202 ms) -[ok]: SLOWLOG - can be disabled (402 ms) -[ok]: SLOWLOG - count must be >= -1 (0 ms) -[ok]: SLOWLOG - get all slow logs (1 ms) -[ok]: SLOWLOG - blocking command is reported only after unblocked (48 ms) -[ok]: SLOWLOG - the commands in script are recorded normally - is_eval: 0 (1 ms) -[ok]: SLOWLOG - the commands in script are recorded normally - is_eval: 1 (1 ms) -[6/129 done]: unit/slowlog (2 seconds) +[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 (403 ms) +[ok]: SLOWLOG - count must be >= -1 (1 ms) +[ok]: SLOWLOG - get all slow logs (4 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 (2 ms) +[6/129 done]: unit/slowlog (1 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 (152 ms) +[ok]: Temp rdb will be deleted if we use bg_unlink when shutdown (140 ms) === (shutdown external:skip) Starting server on 127.0.0.1:21157 ok -[ok]: SHUTDOWN ABORT can cancel SIGTERM (18 ms) -[ok]: Temp rdb will be deleted in signal handle (41 ms) +[ok]: SHUTDOWN ABORT can cancel SIGTERM (15 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 (3 ms) -[ok]: SHUTDOWN will abort if rdb save failed on signal (60 ms) -[ok]: SHUTDOWN will abort if rdb save failed on shutdown command (0 ms) -[ok]: SHUTDOWN can proceed if shutdown command was with nosave (7 ms) -[ok]: Clean up rdb same named folder (5 ms) +[ok]: RDB save will be failed in shutdown (4 ms) +[ok]: SHUTDOWN will abort if rdb save failed on signal (49 ms) +[ok]: SHUTDOWN will abort if rdb save failed on shutdown command (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 (61 ms) -[7/129 done]: unit/shutdown (1 seconds) +[ok]: SHUTDOWN SIGTERM will abort if there's an initial AOFRW - default (55 ms) +[7/129 done]: unit/shutdown (2 seconds) Testing unit/scripting === (scripting) Starting server on 127.0.0.1:21163 ok -[ok]: EVAL - Does Lua interpreter replies to our requests? (11 ms) -[ok]: EVAL - Return _G (0 ms) +[ok]: EVAL - Does Lua interpreter replies to our requests? (1 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 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 (4 ms) -[ok]: EVAL - Lua status code reply -> Redis protocol type conversion (4 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 error reply -> Redis protocol type conversion (0 ms) -[ok]: EVAL - Lua table -> 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? (5 ms) -[ok]: EVAL - Redis integer -> Lua type conversion (0 ms) -[ok]: EVAL - Lua number -> Redis integer conversion (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 (1 ms) -[ok]: EVAL - Redis multi bulk -> Lua type conversion (5 ms) -[ok]: EVAL - Redis status reply -> Lua type conversion (0 ms) +[ok]: EVAL - Redis multi bulk -> Lua type conversion (1 ms) +[ok]: EVAL - Redis status 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 (1 ms) -[ok]: EVAL - Is the Lua client using the currently selected DB? (9 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 (1 ms) -[ok]: EVAL - Scripts do not block on brpop command (0 ms) -[ok]: EVAL - Scripts do not block on brpoplpush command (0 ms) -[ok]: EVAL - Scripts do not block on blmove command (0 ms) -[ok]: EVAL - Scripts do not block on bzpopmin command (13 ms) -[ok]: EVAL - Scripts do not block on bzpopmax command (4 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 (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 (1 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 (20 ms) -[ok]: EVAL - Scripts do not block on XREADGROUP with BLOCK option -- non empty stream (4 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 - 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) (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 string decoding (1 ms) -[ok]: EVAL - JSON smoke test (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 (586 ms) -[ok]: EVAL - cmsgpack can pack and unpack circular references? (0 ms) -[ok]: EVAL - Numerical sanity check from bitop (5 ms) +[ok]: EVAL - cmsgpack pack/unpack smoke test (309 ms) +[ok]: EVAL - cmsgpack can pack and unpack circular references? (1 ms) +[ok]: EVAL - Numerical sanity check from bitop (2 ms) [ok]: EVAL - Verify minimal bitop functionality (0 ms) -[ok]: EVAL - Able to parse trailing comments (1 ms) -[ok]: EVAL_RO - Successful case (0 ms) -[ok]: EVAL_RO - Cannot run write commands (0 ms) +[ok]: EVAL - Able to parse trailing comments (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() (1261 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 (7 ms) -[ok]: Globals protection reading an undeclared global variable (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 (0 ms) [ok]: Test an example script DECR_IF_GT (2 ms) -[ok]: EVAL does not leak in the Lua stack (1517 ms) -[ok]: Call Redis command with many args from Lua (issue #1764) (1 ms) -[ok]: Number conversion precision test (issue #1118) (1 ms) -[ok]: String containing number precision test (regression of issue #1118) (0 ms) +[ok]: EVAL does not leak in the Lua stack (756 ms) +[ok]: Call Redis command with many args from Lua (issue #1764) (2 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 (0 ms) -[ok]: Correct handling of reused argv (issue #1939) (0 ms) -[ok]: Functions in the Redis namespace are able to report errors (1 ms) -[ok]: CLUSTER RESET can not be invoke from within a script (0 ms) -[ok]: Script with RESP3 map (4 ms) -[ok]: Script return recursive object (174 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 ACL check (6 ms) +[ok]: Scripts can handle commands with incorrect arity (1 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 (2 ms) +[ok]: Script return recursive object (88 ms) +[ok]: Script check unpack with massive arguments (8 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 (0 ms) -[ok]: Try trick global protection 2 (1 ms) -[ok]: Try trick global protection 3 (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 (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 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 (0 ms) -[ok]: Test dofile are not available (0 ms) +[ok]: Test dofile 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 (451 ms) -[ok]: Timedout read-only scripts can be killed by SCRIPT KILL even when use pcall (156 ms) -[ok]: Timedout script does not cause a false dead client (142 ms) -[ok]: Timedout script link is still usable after Lua returns (182 ms) -[ok]: Timedout scripts and unblocked command (348 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 (11 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 (115 ms) +[ok]: Timedout script does not cause a false dead client (75 ms) +[ok]: Timedout script link is still usable after Lua returns (114 ms) +[ok]: Timedout scripts and unblocked command (429 ms) +[ok]: Timedout scripts that modified data can't be killed by SCRIPT KILL (229 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 (129 ms) -[ok]: Replication of script multiple pushes to list with BLPOP (556 ms) -[ok]: Lua scripts using SELECT are replicated correctly (1 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 (636 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 (107 ms) -[ok]: Redis.replicate_commands() can be issued anywhere now (3 ms) -[ok]: Redis.set_repl() can be issued before replicate_commands() now (3 ms) -[ok]: Redis.set_repl() don't accept invalid values (9 ms) -[ok]: Test selective replication of certain commands from Lua (516 ms) -[ok]: PRNG is seeded randomly for command replication (2 ms) -[ok]: Using side effects is not a problem with command replication (1 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() don't accept invalid values (1 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 (2 ms) === (scripting needs:debug) Starting server on 127.0.0.1:21175 ok -[ok]: test RESP2/2 big number protocol parsing (6 ms) -[ok]: test RESP2/2 malformed big number protocol parsing (0 ms) -[ok]: test RESP2/2 map 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 (1 ms) [ok]: test RESP2/2 set protocol parsing (1 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 true protocol parsing (0 ms) -[ok]: test RESP2/2 false 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 (0 ms) [ok]: test RESP2/3 malformed big number protocol parsing (1 ms) -[ok]: test RESP2/3 map protocol parsing (6 ms) -[ok]: test RESP2/3 set protocol parsing (4 ms) -[ok]: test RESP2/3 double protocol parsing (0 ms) -[ok]: test RESP2/3 null protocol parsing (0 ms) -[ok]: test RESP2/3 verbatim 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 (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 (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 big number protocol parsing (1 ms) [ok]: test RESP3/2 malformed big number protocol parsing (1 ms) -[ok]: test RESP3/2 map protocol parsing (5 ms) +[ok]: test RESP3/2 map protocol parsing (1 ms) [ok]: test RESP3/2 set protocol parsing (0 ms) [ok]: test RESP3/2 double protocol parsing (1 ms) -[ok]: test RESP3/2 null protocol parsing (3 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 true protocol parsing (1 ms) [ok]: test RESP3/2 false protocol parsing (0 ms) -[ok]: test RESP3/3 big number protocol parsing (0 ms) +[ok]: test RESP3/3 big number protocol parsing (1 ms) [ok]: test RESP3/3 malformed big number protocol parsing (0 ms) -[ok]: test RESP3/3 map protocol parsing (6 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 map protocol parsing (0 ms) +[ok]: test RESP3/3 set protocol parsing (0 ms) +[ok]: test RESP3/3 double protocol parsing (1 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 (0 ms) +[ok]: test RESP3/3 false protocol parsing (1 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 (11 ms) -[ok]: Script block the time in some expiration related commands (86 ms) -[ok]: RESTORE expired keys with expiration time (10 ms) +[ok]: Script block the time in some expiration related commands (83 ms) +[ok]: RESTORE expired keys with expiration time (12 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 (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 - Return table with a metatable that call server (0 ms) [ok]: EVAL - Lua integer -> Redis protocol type conversion (1 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 (1 ms) -[ok]: EVAL - Lua error reply -> Redis protocol type conversion (5 ms) -[ok]: EVAL - Lua table -> 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 (1 ms) +[ok]: EVAL - Lua table -> Redis protocol type conversion (1 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 (0 ms) -[ok]: EVAL - Lua number -> Redis integer conversion (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 status 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? (4 ms) -[ok]: EVAL - SELECT inside Lua should not affect the caller (0 ms) -[ok]: EVAL - Scripts do not block on blpop command (0 ms) -[ok]: EVAL - Scripts do not block on brpop command (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 (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 (6 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 (0 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 can run non-deterministic commands (0 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 (1 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 (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 (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) (6 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 string decoding (1 ms) -[ok]: EVAL - JSON smoke test (0 ms) -[ok]: EVAL - cmsgpack can pack double? (1 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 (549 ms) +[ok]: EVAL - cmsgpack pack/unpack smoke test (288 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 (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 (1 ms) -[ok]: redis.sha1hex() implementation (2 ms) -[ok]: Measures elapsed time os.clock() (1659 ms) -[ok]: Prohibit dangerous lua methods in sandbox (1 ms) -[ok]: Verify execution of prohibit dangerous Lua methods will fail (3 ms) +[ok]: EVAL_RO - Successful case (0 ms) +[ok]: EVAL_RO - Cannot run write commands (0 ms) +[ok]: redis.sha1hex() implementation (0 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 (4 ms) [ok]: Globals protection reading an undeclared global variable (0 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 (2 ms) -[ok]: EVAL does not leak in the Lua stack (1225 ms) +[ok]: Test an example script DECR_IF_GT (4 ms) +[ok]: EVAL does not leak in the Lua stack (743 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]: 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 (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 (85 ms) -[ok]: Script check unpack with massive arguments (4 ms) -[ok]: Script read key with expiration set (6 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 (6 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 4 (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 cmsgpack table (0 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 (0 ms) -[ok]: Test dofile are not available (0 ms) -[ok]: Test print are not available (1 ms) +[ok]: Test dofile 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:21179 ok -[ok]: Timedout read-only scripts can be killed by SCRIPT KILL (422 ms) -[ok]: Timedout read-only scripts can be killed by SCRIPT KILL even when use pcall (155 ms) -[ok]: Timedout script does not cause a false dead client (69 ms) -[ok]: Timedout script link is still usable after Lua returns (130 ms) -[ok]: Timedout scripts and unblocked command (367 ms) -[ok]: Timedout scripts that modified data can't be killed by SCRIPT KILL (236 ms) -[ok]: SHUTDOWN NOSAVE can kill a timedout script anyway (9 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 (117 ms) +[ok]: Timedout script does not cause a false dead client (98 ms) +[ok]: Timedout script link is still usable after Lua returns (76 ms) +[ok]: Timedout scripts and unblocked command (384 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 (4 ms) -[ok]: Connect a replica to the master instance (109 ms) -[ok]: Replication of script multiple pushes to list with BLPOP (25 ms) -[ok]: Lua scripts using SELECT are replicated correctly (107 ms) +[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 (641 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 (108 ms) -[ok]: Redis.replicate_commands() can be issued anywhere now (1 ms) +[ok]: Connect a replica to the master instance (104 ms) +[ok]: Redis.replicate_commands() can be issued anywhere 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 (5 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:21189 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 malformed big number protocol parsing (1 ms) [ok]: test RESP2/2 map protocol parsing (1 ms) -[ok]: test RESP2/2 set protocol parsing (4 ms) -[ok]: test RESP2/2 double protocol parsing (0 ms) +[ok]: test RESP2/2 set protocol parsing (1 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 true protocol parsing (0 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 (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 (0 ms) -[ok]: test RESP2/3 set protocol parsing (4 ms) -[ok]: test RESP2/3 double protocol parsing (0 ms) -[ok]: test RESP2/3 null protocol parsing (0 ms) -[ok]: test RESP2/3 verbatim 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 (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 (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 (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 (1 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 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 (4 ms) -[ok]: test RESP3/2 true protocol parsing (0 ms) -[ok]: test RESP3/2 false 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 (0 ms) [ok]: test RESP3/3 big number protocol parsing (1 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 (1 ms) [ok]: test RESP3/3 set protocol parsing (0 ms) -[ok]: test RESP3/3 double protocol parsing (1 ms) -[ok]: test RESP3/3 null protocol parsing (4 ms) -[ok]: test RESP3/3 verbatim protocol parsing (0 ms) -[ok]: test RESP3/3 true protocol parsing (0 ms) +[ok]: test RESP3/3 double protocol parsing (0 ms) +[ok]: test RESP3/3 null protocol parsing (1 ms) +[ok]: test RESP3/3 verbatim protocol parsing (1 ms) +[ok]: test RESP3/3 true protocol parsing (1 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]: TIME command using cached time (10 ms) -[ok]: Script block the time in some expiration related commands (83 ms) +[ok]: test resp3 attribute protocol parsing (1 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]: 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? (0 ms) -[ok]: EVAL - Return _G (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 (0 ms) -[ok]: EVAL - Lua status code reply -> Redis protocol type conversion (0 ms) +[ok]: EVAL - Lua status code reply -> Redis protocol type conversion (1 ms) [ok]: EVAL - Lua error reply -> Redis protocol type conversion (0 ms) -[ok]: EVAL - Lua table -> 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 - is Lua able to call Redis API? (1 ms) +[ok]: EVAL - is Lua able to call Redis API? (0 ms) [ok]: EVAL - Redis integer -> Lua type conversion (0 ms) [ok]: EVAL - Lua number -> Redis integer conversion (1 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 (1 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 - SELECT inside Lua should not affect the caller (8 ms) -[ok]: EVAL - Scripts do not block on blpop command (0 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 (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 (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 brpoplpush command (0 ms) [ok]: EVAL - Scripts do not block on blmove 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 XREAD with BLOCK option (0 ms) -[ok]: EVAL - Scripts do not block on XREADGROUP with BLOCK option (1 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 (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 (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) [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 string decoding (1 ms) -[ok]: EVAL - JSON smoke test (0 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 (616 ms) -[ok]: EVAL - cmsgpack can pack and unpack circular references? (1 ms) -[ok]: EVAL - Numerical sanity check from bitop (2 ms) -[ok]: EVAL - Verify minimal bitop functionality (0 ms) -[ok]: EVAL - Able to parse trailing comments (1 ms) -[ok]: EVAL_RO - Successful case (5 ms) -[ok]: EVAL_RO - Cannot run write commands (0 ms) +[ok]: EVAL - JSON string decoding (0 ms) +[ok]: EVAL - JSON smoke test (2 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 (296 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 (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 (1 ms) [ok]: redis.sha1hex() implementation (0 ms) -[ok]: Measures elapsed time os.clock() (1547 ms) -[ok]: Prohibit dangerous lua methods in sandbox (0 ms) -[ok]: Verify execution of prohibit dangerous Lua methods will fail (4 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 setting an undeclared global* (0 ms) [ok]: lua bit.tohex bug (1 ms) -[ok]: Test an example script DECR_IF_GT (3 ms) -[ok]: EVAL does not leak in the Lua stack (887 ms) +[ok]: Test an example script DECR_IF_GT (1 ms) +[ok]: EVAL does not leak in the Lua stack (415 ms) [ok]: Call Redis command with many args from Lua (issue #1764) (1 ms) -[ok]: Number conversion precision test (issue #1118) (1 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]: Correct handling of reused argv (issue #1939) (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) (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 (2 ms) -[ok]: Script return recursive object (97 ms) -[ok]: Script check unpack with massive arguments (3 ms) -[ok]: Script read key with expiration set (1 ms) -[ok]: Script del key with expiration set (1 ms) +[ok]: Script with RESP3 map (1 ms) +[ok]: Script return recursive object (82 ms) +[ok]: Script check unpack with massive arguments (7 ms) +[ok]: Script read key with expiration set (0 ms) +[ok]: Script del key with expiration set (0 ms) [ok]: Script ACL check (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]: 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 (0 ms) -[ok]: Try trick global protection 4 (1 ms) -[ok]: Try trick readonly table on valkey table (0 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 (0 ms) -[ok]: Try trick readonly table on bit 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:21193 ok -[ok]: Timedout read-only scripts can be killed by SCRIPT KILL (429 ms) -[ok]: Timedout read-only scripts can be killed by SCRIPT KILL even when use pcall (204 ms) -[ok]: Timedout script does not cause a false dead client (173 ms) -[ok]: Timedout script link is still usable after Lua returns (124 ms) -[ok]: Timedout scripts and unblocked command (367 ms) -[ok]: Timedout scripts that modified data can't be killed by SCRIPT KILL (229 ms) -[ok]: SHUTDOWN NOSAVE can kill a timedout script anyway (10 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 (114 ms) +[ok]: Timedout script does not cause a false dead client (74 ms) +[ok]: Timedout script link is still usable after Lua returns (71 ms) +[ok]: Timedout scripts and unblocked command (382 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 (0 ms) -[ok]: Connect a replica to the master instance (106 ms) -[ok]: Replication of script multiple pushes to list with BLPOP (640 ms) -[ok]: Lua scripts using SELECT are replicated correctly (103 ms) +[ok]: Before the replica connects we issue two EVAL commands (1 ms) +[ok]: Connect a replica to the master instance (104 ms) +[ok]: Replication of script multiple pushes to list with BLPOP (33 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 (111 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() don't accept invalid values (0 ms) -[ok]: Test selective replication of certain commands from Lua (608 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]: 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 (609 ms) +[ok]: PRNG is seeded randomly for command replication (0 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 (0 ms) +[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 map 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 true protocol parsing (0 ms) -[ok]: test RESP2/2 false protocol parsing (0 ms) +[ok]: test RESP2/2 false protocol parsing (1 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 (2 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 set protocol parsing (0 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 (0 ms) -[ok]: test RESP2/3 true 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 (0 ms) -[ok]: test RESP3/2 malformed big number protocol parsing (1 ms) -[ok]: test RESP3/2 map protocol parsing (6 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 double 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 true protocol parsing (0 ms) -[ok]: test RESP3/2 false protocol parsing (1 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 (0 ms) -[ok]: test RESP3/3 set protocol parsing (1 ms) -[ok]: test RESP3/3 double protocol parsing (1 ms) +[ok]: test RESP3/3 set protocol parsing (0 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 (3 ms) +[ok]: test RESP3/3 false protocol parsing (0 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]: TIME command using cached time (11 ms) -[ok]: Script block the time in some expiration related commands (86 ms) +[ok]: Script delete the expired key (4 ms) +[ok]: TIME command using cached time (10 ms) +[ok]: Script block the time in some expiration related commands (84 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]: Script - disallow write on OOM (2 ms) [ok]: EVAL - Does Lua interpreter replies to our requests? (0 ms) -[ok]: EVAL - Return _G (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 (0 ms) [ok]: EVAL - Lua status code reply -> Redis protocol type conversion (1 ms) [ok]: EVAL - Lua error reply -> Redis protocol type conversion (0 ms) -[ok]: EVAL - Lua table -> 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? (0 ms) [ok]: EVAL - is Lua able to call Redis API? (1 ms) [ok]: EVALSHA - Can we call a SHA1 if already defined? (0 ms) [ok]: EVALSHA_RO - Can we call a SHA1 if already defined? (0 ms) -[ok]: EVALSHA - Can we call a SHA1 in uppercase? (0 ms) -[ok]: EVALSHA - Do we get an error on invalid SHA1? (1 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? (0 ms) [ok]: EVAL - Redis integer -> Lua type conversion (0 ms) -[ok]: EVAL - Lua number -> Redis integer conversion (3 ms) -[ok]: EVAL - Redis bulk -> Lua type conversion (1 ms) +[ok]: EVAL - Lua number -> Redis integer conversion (1 ms) +[ok]: EVAL - Redis bulk -> Lua type conversion (0 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 (1 ms) -[ok]: EVAL - Redis nil bulk reply -> 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 (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 (0 ms) +[ok]: EVAL - SELECT inside Lua should not affect the caller (1 ms) [ok]: EVAL - Scripts do not block on blpop command (1 ms) [ok]: EVAL - Scripts do not block on brpop command (0 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 brpoplpush command (0 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 (0 ms) [ok]: EVAL - Scripts do not block on waitaof (0 ms) -[ok]: EVAL - Scripts do not block on XREAD with BLOCK option (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 (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 (4 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 (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) (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) [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 (0 ms) -[ok]: EVAL - JSON smoke test (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 (349 ms) +[ok]: EVAL - cmsgpack pack/unpack smoke test (307 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 (0 ms) -[ok]: EVAL - Able to parse trailing comments (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 (2 ms) -[ok]: SCRIPTING FLUSH - is able to clear the scripts cache? (26 ms) +[ok]: EVAL_RO - Cannot run write commands (0 ms) +[ok]: SCRIPTING FLUSH - is able to clear the scripts cache? (22 ms) [ok]: EVAL - Test table unpack with invalid indexes (2 ms) -[ok]: Try trick readonly table on basic types metatable (1 ms) +[ok]: Try trick readonly table on basic types metatable (2 ms) [ok]: Dynamic reset of lua engine with insecure API config change (1 ms) -[ok]: SCRIPTING FLUSH ASYNC (13 ms) +[ok]: SCRIPTING FLUSH ASYNC (16 ms) [ok]: SCRIPT EXISTS - can detect already defined scripts? (0 ms) -[ok]: SCRIPT LOAD - is able to register scripts in the scripting cache (1 ms) -[ok]: SCRIPT SHOW - is able to dump scripts from the scripting cache (0 ms) -[ok]: SCRIPT SHOW - wrong sha1 length or invalid sha1 char return noscript error (0 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 (1 ms) [ok]: SCRIPT SHOW - script not exist return noscript error (1 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 (0 ms) -[ok]: redis.sha1hex() implementation (0 ms) -[ok]: Measures elapsed time os.clock() (1759 ms) -[ok]: Prohibit dangerous lua methods in sandbox (2 ms) -[ok]: Verify execution of prohibit dangerous Lua methods will fail (4 ms) +[ok]: SORT BY with GET gets ordered for scripting (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 (1 ms) [ok]: Globals protection reading an undeclared global variable (0 ms) [ok]: Globals protection setting an undeclared global* (0 ms) -[ok]: lua bit.tohex bug (0 ms) -[ok]: Test an example script DECR_IF_GT (10 ms) -[ok]: random numbers are random now (1 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 (0 ms) -[ok]: EVAL does not leak in the Lua stack (1429 ms) -[ok]: SPOP: We can call scripts rewriting client->argv from Lua (134 ms) -[ok]: MGET: mget shouldn't be propagated in Lua (107 ms) -[ok]: EXPIRE: We can call scripts rewriting client->argv from Lua (103 ms) +[ok]: EVAL does not leak in the Lua stack (390 ms) +[ok]: SPOP: We can call scripts rewriting client->argv from Lua (111 ms) +[ok]: MGET: mget shouldn't be propagated in Lua (100 ms) +[ok]: EXPIRE: We can call scripts rewriting client->argv from Lua (101 ms) === (scripting) Starting server on 127.0.0.1:21207 ok -[ok]: INCRBYFLOAT: We can call scripts expanding client->argv from Lua (506 ms) -[ok]: Call Redis command with many args from Lua (issue #1764) (1 ms) -[ok]: Number conversion precision test (issue #1118) (1 ms) +[ok]: INCRBYFLOAT: We can call scripts expanding client->argv from Lua (365 ms) +[ok]: Call Redis command with many args from Lua (issue #1764) (2 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 (8 ms) -[ok]: Correct handling of reused argv (issue #1939) (6 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) (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 (6 ms) -[ok]: Script return recursive object (409 ms) -[ok]: Script check unpack with massive arguments (10 ms) -[ok]: Script read key with expiration set (7 ms) -[ok]: Script del key with expiration set (13 ms) -[ok]: Script ACL check (7 ms) -[ok]: Binary code loading failed (4 ms) -[ok]: Try trick global protection 1 (8 ms) -[ok]: Try trick global protection 2 (3 ms) +[ok]: Script with RESP3 map (2 ms) +[ok]: Script return recursive object (143 ms) +[ok]: Script check unpack with massive arguments (9 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]: 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 (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 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 (4 ms) +[ok]: Test dofile 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:21209 ok -[ok]: Timedout read-only scripts can be killed by SCRIPT KILL (488 ms) -[ok]: Timedout read-only scripts can be killed by SCRIPT KILL even when use pcall (242 ms) -[ok]: Timedout script does not cause a false dead client (187 ms) -[ok]: Timedout script link is still usable after Lua returns (209 ms) -[ok]: Timedout scripts and unblocked command (521 ms) -[ok]: Timedout scripts that modified data can't be killed by SCRIPT KILL (249 ms) -[ok]: SHUTDOWN NOSAVE can kill a timedout script anyway (15 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 (114 ms) +[ok]: Timedout script does not cause a false dead client (76 ms) +[ok]: Timedout script link is still usable after Lua returns (74 ms) +[ok]: Timedout scripts and unblocked command (385 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:21211 ok === () Starting server on 127.0.0.1:21213 ok -[ok]: Before the replica connects we issue two EVAL commands (6 ms) -[ok]: Connect a replica to the master instance (136 ms) -[ok]: Now use EVALSHA against the master, with both SHAs (6 ms) -[ok]: 'x' should be '4' for EVALSHA being replicated by effects (406 ms) -[ok]: Replication of script multiple pushes to list with BLPOP (29 ms) -[ok]: EVALSHA replication when first call is readonly (14 ms) -[ok]: Lua scripts using SELECT are replicated correctly (13 ms) +[ok]: Before the replica connects we issue two EVAL commands (1 ms) +[ok]: Connect a replica to the master instance (105 ms) +[ok]: Now use EVALSHA against the master, with both SHAs (1 ms) +[ok]: 'x' should be '4' for EVALSHA being replicated by effects (608 ms) +[ok]: Replication of script multiple pushes to list with BLPOP (33 ms) +[ok]: EVALSHA replication when first call is readonly (2 ms) +[ok]: Lua scripts using SELECT are replicated correctly (1 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 (109 ms) -[ok]: Redis.replicate_commands() can be issued anywhere now (7 ms) -[ok]: Redis.set_repl() can be issued before replicate_commands() now (1 ms) -[ok]: Redis.set_repl() don't accept invalid values (7 ms) -[ok]: Test selective replication of certain commands from Lua (612 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() don't accept invalid values (0 ms) +[ok]: Test selective replication of certain commands from Lua (610 ms) [ok]: PRNG is seeded randomly for command replication (0 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 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 (2 ms) -[ok]: Test scripting debug lua stack overflow (55 ms) -[ok]: Test scripting debug lua server invocations (37 ms) +[ok]: Test scripting debug lua stack overflow (32 ms) +[ok]: Test scripting debug lua server invocations (34 ms) === (scripting external:skip) Starting server on 127.0.0.1:21223 ok -[ok]: Lua scripts eviction does not generate many scripts (214 ms) -[ok]: Lua scripts eviction is plain LRU (148 ms) -[ok]: Lua scripts eviction does not affect script load (723 ms) -[ok]: Lua scripts promoted from eval to script load (195 ms) +[ok]: Lua scripts eviction does not generate many scripts (151 ms) +[ok]: Lua scripts eviction is plain LRU (51 ms) +[ok]: Lua scripts eviction does not affect script load (113 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 (1 ms) +[ok]: test RESP2/2 malformed big number protocol parsing (0 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 (1 ms) -[ok]: test RESP2/2 null protocol parsing (1 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 (0 ms) -[ok]: test RESP2/2 true protocol parsing (4 ms) -[ok]: test RESP2/2 false protocol parsing (0 ms) +[ok]: test RESP2/2 true protocol parsing (0 ms) +[ok]: test RESP2/2 false protocol parsing (1 ms) [ok]: test RESP2/3 big number protocol parsing (0 ms) -[ok]: test RESP2/3 malformed big number protocol parsing (4 ms) -[ok]: test RESP2/3 map 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 set protocol parsing (0 ms) -[ok]: test RESP2/3 double protocol parsing (0 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 (0 ms) -[ok]: test RESP2/3 true 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 (0 ms) -[ok]: test RESP3/2 malformed 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 double protocol parsing (10 ms) -[ok]: test RESP3/2 null protocol parsing (1 ms) -[ok]: test RESP3/2 verbatim protocol parsing (0 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 true protocol parsing (0 ms) -[ok]: test RESP3/2 false protocol parsing (1 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 set 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 (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 (0 ms) -[ok]: test RESP3/3 true protocol parsing (1 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 (0 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 (10 ms) -[ok]: Script block the time in some expiration related commands (88 ms) -[ok]: RESTORE expired keys with expiration time (15 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 (5 ms) +[ok]: Shebang support for lua engine (1 ms) [ok]: Unknown shebang option (1 ms) -[ok]: Unknown shebang flag (3 ms) -[ok]: allow-oom shebang flag (9 ms) +[ok]: Unknown shebang flag (0 ms) +[ok]: allow-oom shebang flag (4 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 (222 ms) -[ok]: not enough good replicas (2 ms) +[ok]: no-writes shebang flag on replica (175 ms) +[ok]: not enough good replicas (3 ms) === (external:skip) Starting server on 127.0.0.1:21231 ok -[ok]: not enough good replicas state change during long script (1033 ms) -[ok]: allow-stale shebang flag (2 ms) -[ok]: reject script do not cause a Lua stack leak (37 ms) +[ok]: not enough good replicas state change during long script (670 ms) +[ok]: allow-stale shebang flag (3 ms) +[ok]: reject script do not cause a Lua stack leak (13 ms) === (scripting) Starting server on 127.0.0.1:21233 ok [ok]: Consistent eval error reporting (21 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 (0 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 (0 ms) -[ok]: LUA test trim string as expected (3 ms) -[ok]: EVAL - Scripts support NULL byte (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 (49 seconds) +[8/129 done]: unit/scripting (37 seconds) Testing unit/scan === (scan network standalone) Starting server on 127.0.0.1:21235 ok -[ok]: {standalone} SCAN basic (131 ms) -[ok]: {standalone} SCAN COUNT (172 ms) -[ok]: {standalone} SCAN MATCH (131 ms) -[ok]: {standalone} SCAN TYPE (197 ms) -[ok]: {standalone} SCAN unknown type (110 ms) -[ok]: {standalone} SCAN with expired keys (137 ms) -[ok]: {standalone} SCAN with expired keys with TYPE filter (136 ms) +[ok]: {standalone} SCAN basic (103 ms) +[ok]: {standalone} SCAN COUNT (73 ms) +[ok]: {standalone} SCAN MATCH (50 ms) +[ok]: {standalone} SCAN TYPE (75 ms) +[ok]: {standalone} SCAN unknown type (46 ms) +[ok]: {standalone} SCAN with expired keys (58 ms) +[ok]: {standalone} SCAN with expired keys with TYPE filter (77 ms) [ok]: {standalone} SSCAN with encoding intset (2 ms) -[ok]: {standalone} SSCAN with encoding listpack (1 ms) -[ok]: {standalone} SSCAN with encoding hashtable (9 ms) -[ok]: {standalone} HSCAN with encoding listpack (1 ms) -[ok]: {standalone} HSCAN with encoding hashtable (98 ms) -[ok]: {standalone} ZSCAN with encoding listpack (9 ms) -[ok]: {standalone} ZSCAN with encoding skiplist (109 ms) -[ok]: {standalone} SCAN guarantees check under write load (43 ms) -[ok]: {standalone} SSCAN with integer encoded object (issue #1345) (0 ms) +[ok]: {standalone} SSCAN with encoding listpack (2 ms) +[ok]: {standalone} SSCAN with encoding hashtable (8 ms) +[ok]: {standalone} HSCAN with encoding listpack (3 ms) +[ok]: {standalone} HSCAN with encoding hashtable (119 ms) +[ok]: {standalone} ZSCAN with encoding listpack (6 ms) +[ok]: {standalone} ZSCAN with encoding skiplist (121 ms) +[ok]: {standalone} SCAN guarantees check under write load (29 ms) +[ok]: {standalone} SSCAN with integer encoded object (issue #1345) (1 ms) [ok]: {standalone} SSCAN with PATTERN (0 ms) -[ok]: {standalone} HSCAN with PATTERN (1 ms) -[ok]: {standalone} HSCAN with NOVALUES (0 ms) -[ok]: {standalone} ZSCAN with PATTERN (0 ms) +[ok]: {standalone} HSCAN with PATTERN (0 ms) +[ok]: {standalone} HSCAN with NOVALUES (1 ms) +[ok]: {standalone} ZSCAN with PATTERN (1 ms) [ok]: {standalone} ZSCAN with NOSCORES (0 ms) -[ok]: {standalone} ZSCAN scores: regression test for issue #2175 (98 ms) -[ok]: {standalone} SCAN regression test for issue #4906 (21595 ms) -[ok]: {standalone} SCAN MATCH pattern implies cluster slot (59 ms) +[ok]: {standalone} ZSCAN scores: regression test for issue #2175 (76 ms) +[ok]: {standalone} SCAN regression test for issue #4906 (9024 ms) +[ok]: {standalone} SCAN MATCH pattern implies cluster slot (36 ms) === (external:skip cluster scan) Starting server on 127.0.0.1:21237 ok -[ok]: {cluster} SCAN basic (243 ms) -[ok]: {cluster} SCAN COUNT (287 ms) -[ok]: {cluster} SCAN MATCH (371 ms) -[ok]: {cluster} SCAN TYPE (339 ms) -[ok]: {cluster} SCAN unknown type (232 ms) -[ok]: {cluster} SCAN with expired keys (303 ms) -[ok]: {cluster} SCAN with expired keys with TYPE filter (198 ms) -[ok]: {cluster} SSCAN with encoding intset (5 ms) -[ok]: {cluster} SSCAN with encoding listpack (3 ms) +[ok]: {cluster} SCAN basic (117 ms) +[ok]: {cluster} SCAN COUNT (80 ms) +[ok]: {cluster} SCAN MATCH (50 ms) +[ok]: {cluster} SCAN TYPE (80 ms) +[ok]: {cluster} SCAN unknown type (71 ms) +[ok]: {cluster} SCAN with expired keys (76 ms) +[ok]: {cluster} SCAN with expired keys with TYPE filter (60 ms) +[ok]: {cluster} SSCAN with encoding intset (1 ms) +[ok]: {cluster} SSCAN with encoding listpack (1 ms) [ok]: {cluster} SSCAN with encoding hashtable (7 ms) -[ok]: {cluster} HSCAN with encoding listpack (8 ms) -[ok]: {cluster} HSCAN with encoding hashtable (171 ms) -[ok]: {cluster} ZSCAN with encoding listpack (10 ms) -[ok]: {cluster} ZSCAN with encoding skiplist (159 ms) -[ok]: {cluster} SCAN guarantees check under write load (76 ms) -[ok]: {cluster} SSCAN with integer encoded object (issue #1345) (20 ms) -[ok]: {cluster} SSCAN with PATTERN (1 ms) -[ok]: {cluster} HSCAN with PATTERN (11 ms) -[ok]: {cluster} HSCAN with NOVALUES (1 ms) +[ok]: {cluster} HSCAN with encoding listpack (2 ms) +[ok]: {cluster} HSCAN with encoding hashtable (73 ms) +[ok]: {cluster} ZSCAN with encoding listpack (4 ms) +[ok]: {cluster} ZSCAN with encoding skiplist (92 ms) +[ok]: {cluster} SCAN guarantees check under write load (31 ms) +[ok]: {cluster} SSCAN with integer encoded object (issue #1345) (1 ms) +[ok]: {cluster} SSCAN with PATTERN (0 ms) +[ok]: {cluster} HSCAN with PATTERN (1 ms) +[ok]: {cluster} HSCAN with NOVALUES (0 ms) [ok]: {cluster} ZSCAN with PATTERN (1 ms) [ok]: {cluster} ZSCAN with NOSCORES (0 ms) -[ok]: {cluster} ZSCAN scores: regression test for issue #2175 (181 ms) -[ok]: {cluster} SCAN regression test for issue #4906 (16233 ms) -[ok]: {cluster} SCAN MATCH pattern implies cluster slot (56 ms) -[9/129 done]: unit/scan (44 seconds) +[ok]: {cluster} ZSCAN scores: regression test for issue #2175 (62 ms) +[ok]: {cluster} SCAN regression test for issue #4906 (9747 ms) +[ok]: {cluster} SCAN MATCH pattern implies cluster slot (28 ms) +[9/129 done]: unit/scan (23 seconds) Testing unit/replybufsize === (replybufsize) Starting server on 127.0.0.1:21239 ok -[ok]: verify reply buffer limits (697 ms) +[ok]: verify reply buffer limits (689 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 (39 ms) -[ok]: Pipelined commands after QUIT that exceed read buffer size (37 ms) -[11/129 done]: unit/quit (0 seconds) +[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 (63 ms) +[11/129 done]: unit/quit (1 seconds) Testing unit/querybuf === (querybuf slow) Starting server on 127.0.0.1:21243 ok -[ok]: query buffer resized correctly (2907 ms) -[ok]: query buffer resized correctly when not idle (57 ms) -[ok]: query buffer resized correctly with fat argv (2942 ms) -[12/129 done]: unit/querybuf (7 seconds) +[ok]: query buffer resized correctly (2630 ms) +[ok]: query buffer resized correctly when not idle (67 ms) +[ok]: query buffer resized correctly with fat argv (2940 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 (24 ms) -[ok]: SPUBLISH/SSUBSCRIBE with two clients (36 ms) -[ok]: SPUBLISH/SSUBSCRIBE after UNSUBSCRIBE without arguments (17 ms) -[ok]: SSUBSCRIBE to one channel more than once (15 ms) -[ok]: SUNSUBSCRIBE from non-subscribed channels (21 ms) +[ok]: SPUBLISH/SSUBSCRIBE basics (34 ms) +[ok]: SPUBLISH/SSUBSCRIBE with two clients (63 ms) +[ok]: SPUBLISH/SSUBSCRIBE after UNSUBSCRIBE without arguments (33 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 (36 ms) -[ok]: SPUBLISH/SSUBSCRIBE with PUBLISH/SUBSCRIBE (31 ms) -[ok]: PubSubShard with CLIENT REPLY OFF (107 ms) +[ok]: SPUBLISH/SSUBSCRIBE with two clients (64 ms) +[ok]: SPUBLISH/SSUBSCRIBE with PUBLISH/SUBSCRIBE (64 ms) +[ok]: PubSubShard with CLIENT REPLY OFF (118 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 (52 ms) -Waiting for process 710408 to exit... +[ok]: publish message to master and receive on replica (63 ms) +Waiting for process 1616634 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 (1 ms) +[ok]: Pub/Sub PING on RESP2 (2 ms) [ok]: Pub/Sub PING on RESP3 (1 ms) -[ok]: PUBLISH/SUBSCRIBE basics (29 ms) -[ok]: PUBLISH/SUBSCRIBE with two clients (47 ms) -[ok]: PUBLISH/SUBSCRIBE after UNSUBSCRIBE without arguments (20 ms) -[ok]: SUBSCRIBE to one channel more than once (24 ms) -[ok]: UNSUBSCRIBE from non-subscribed channels (21 ms) -[ok]: PUBLISH/PSUBSCRIBE basics (27 ms) -[ok]: PUBLISH/PSUBSCRIBE with two clients (48 ms) -[ok]: PUBLISH/PSUBSCRIBE after PUNSUBSCRIBE without arguments (23 ms) -[ok]: PubSub messages with CLIENT REPLY OFF (115 ms) -[ok]: PUNSUBSCRIBE from non-subscribed channels (24 ms) +[ok]: PUBLISH/SUBSCRIBE basics (41 ms) +[ok]: PUBLISH/SUBSCRIBE with two clients (61 ms) +[ok]: PUBLISH/SUBSCRIBE after UNSUBSCRIBE without arguments (28 ms) +[ok]: SUBSCRIBE to one channel more than once (37 ms) +[ok]: UNSUBSCRIBE from non-subscribed channels (28 ms) +[ok]: PUBLISH/PSUBSCRIBE basics (31 ms) +[ok]: PUBLISH/PSUBSCRIBE with two clients (65 ms) +[ok]: PUBLISH/PSUBSCRIBE after PUNSUBSCRIBE without arguments (29 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 (43 ms) -[ok]: Mix SUBSCRIBE and PSUBSCRIBE (20 ms) -[ok]: PUNSUBSCRIBE and UNSUBSCRIBE should always reply (1 ms) -[ok]: Keyspace notifications: we receive keyspace notifications (67 ms) -[ok]: Keyspace notifications: we receive keyevent notifications (60 ms) -[ok]: Keyspace notifications: we can receive both kind of events (28 ms) -[ok]: Keyspace notifications: we are able to mask events (24 ms) -[ok]: Keyspace notifications: general events test (22 ms) -[ok]: Keyspace notifications: list events test (23 ms) -[ok]: Keyspace notifications: set events test (27 ms) -[ok]: Keyspace notifications: zset events test (23 ms) -[ok]: Keyspace notifications: hash events test (28 ms) -[ok]: Keyspace notifications: stream events test (27 ms) -[ok]: Keyspace notifications: expired events (triggered expire) (122 ms) -[ok]: Keyspace notifications: expired events (background expire) (215 ms) -[ok]: Keyspace notification: expired event (Expiration time is already expired) (23 ms) -[ok]: Keyspace notifications: evicted events (28 ms) -[ok]: Keyspace notifications: test CONFIG GET/SET of event flags (0 ms) -[ok]: Keyspace notifications: new key test (20 ms) -[ok]: publish to self inside multi (1 ms) -[ok]: publish to self inside script (0 ms) -[ok]: unsubscribe inside multi, and publish to self (1 ms) +[ok]: NUMPATs returns the number of unique patterns (64 ms) +[ok]: Mix SUBSCRIBE and PSUBSCRIBE (40 ms) +[ok]: PUNSUBSCRIBE and UNSUBSCRIBE should always reply (2 ms) +[ok]: Keyspace notifications: we receive keyspace notifications (77 ms) +[ok]: Keyspace notifications: we receive keyevent notifications (76 ms) +[ok]: Keyspace notifications: we can receive both kind of events (29 ms) +[ok]: Keyspace notifications: we are able to mask events (32 ms) +[ok]: Keyspace notifications: general events test (33 ms) +[ok]: Keyspace notifications: list events test (33 ms) +[ok]: Keyspace notifications: set events test (34 ms) +[ok]: Keyspace notifications: zset events test (33 ms) +[ok]: Keyspace notifications: hash events test (33 ms) +[ok]: Keyspace notifications: stream events test (35 ms) +[ok]: Keyspace notifications: expired events (triggered expire) (128 ms) +[ok]: Keyspace notifications: expired events (background expire) (156 ms) +[ok]: Keyspace notification: expired event (Expiration time is already expired) (33 ms) +[ok]: Keyspace notifications: evicted events (36 ms) +[ok]: Keyspace notifications: test CONFIG GET/SET of event flags (2 ms) +[ok]: Keyspace notifications: new key test (33 ms) +[ok]: publish to self inside multi (2 ms) +[ok]: publish to self inside script (2 ms) +[ok]: unsubscribe inside multi, and publish to self (2 ms) [14/129 done]: unit/pubsub (2 seconds) Testing unit/protocol === (protocol network) Starting server on 127.0.0.1:21253 ok -[ok]: Handle an empty query (65 ms) -[ok]: Negative multibulk length (63 ms) -[ok]: Out of range multibulk length (18 ms) -[ok]: Wrong multibulk payload header (25 ms) -[ok]: Negative multibulk payload length (29 ms) -[ok]: Out of range multibulk payload length (21 ms) -[ok]: Non-number multibulk payload length (20 ms) -[ok]: Multi bulk request not followed by bulk arguments (27 ms) -[ok]: Generic wrong number of args (20 ms) -[ok]: Unbalanced number of quotes (20 ms) -[ok]: Protocol desync regression test #1 (32 ms) -[ok]: Protocol desync regression test #2 (21 ms) -[ok]: Protocol desync regression test #3 (27 ms) -[ok]: Protocol desync regression test #4 (21 ms) +[ok]: Handle an empty query (74 ms) +[ok]: Negative multibulk length (76 ms) +[ok]: Out of range multibulk length (32 ms) +[ok]: Wrong multibulk payload header (31 ms) +[ok]: Negative multibulk payload length (32 ms) +[ok]: Out of range multibulk payload length (33 ms) +[ok]: Non-number multibulk payload length (33 ms) +[ok]: Multi bulk request not followed by bulk arguments (31 ms) +[ok]: Generic wrong number of args (32 ms) +[ok]: Unbalanced number of quotes (32 ms) +[ok]: Protocol desync regression test #1 (33 ms) +[ok]: Protocol desync regression test #2 (32 ms) +[ok]: Protocol desync regression test #3 (32 ms) +[ok]: Protocol desync regression test #4 (32 ms) [ok]: raw protocol response (0 ms) -[ok]: raw protocol response - deferred (0 ms) +[ok]: raw protocol response - deferred (1 ms) [ok]: raw protocol response - multiline (1 ms) -[ok]: RESP3 attributes (1 ms) -[ok]: RESP3 attributes readraw (0 ms) -[ok]: RESP3 attributes on RESP2 (0 ms) -[ok]: test big number parsing (0 ms) +[ok]: RESP3 attributes (2 ms) +[ok]: RESP3 attributes readraw (2 ms) +[ok]: RESP3 attributes on RESP2 (1 ms) +[ok]: test big number parsing (1 ms) [ok]: test bool parsing (1 ms) -[ok]: test verbatim str parsing (0 ms) -[ok]: test large number of args (48 ms) +[ok]: test verbatim str parsing (1 ms) +[ok]: test large number of args (52 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 (6 ms) -[ok]: HELLO and availability-zone (1 ms) +[ok]: HELLO without protover (2 ms) +[ok]: HELLO and availability-zone (3 ms) === (regression) Starting server on 127.0.0.1:21257 ok -[ok]: Regression for a crash with blocking ops and pipelining (25 ms) -[15/129 done]: unit/protocol (1 seconds) +[ok]: Regression for a crash with blocking ops and pipelining (33 ms) +[15/129 done]: unit/protocol (2 seconds) Testing unit/pause === (pause network) Starting server on 127.0.0.1:21259 ok -[ok]: Test check paused info in info clients (2038 ms) -[ok]: Test read commands are not blocked by client pause (30 ms) -[ok]: Test old pause-all takes precedence over new pause-write (less restrictive) (322 ms) -[ok]: Test new pause time is smaller than old one, then old time preserved (138 ms) -[ok]: Test write commands are paused by RO (40 ms) -[ok]: Test special commands are paused by RO (49 ms) -[ok]: Test read/admin multi-execs are not blocked by pause RO (21 ms) -[ok]: Test write multi-execs are blocked by pause RO (31 ms) -[ok]: Test scripts are blocked by pause RO (34 ms) -[ok]: Test RO scripts are not blocked by pause RO (19 ms) -[ok]: Test read-only scripts in multi-exec are not blocked by pause RO (28 ms) -[ok]: Test write scripts in multi-exec are blocked by pause RO (30 ms) -[ok]: Test may-replicate commands are rejected in RO scripts (0 ms) -[ok]: Test multiple clients can be queued up and unblocked (37 ms) +[ok]: Test check paused info in info clients (2062 ms) +[ok]: Test read commands are not blocked by client pause (32 ms) +[ok]: Test old pause-all takes precedence over new pause-write (less restrictive) (317 ms) +[ok]: Test new pause time is smaller than old one, then old time preserved (126 ms) +[ok]: Test write commands are paused by RO (25 ms) +[ok]: Test special commands are paused by RO (52 ms) +[ok]: Test read/admin multi-execs are not blocked by pause RO (33 ms) +[ok]: Test write multi-execs are blocked by pause RO (33 ms) +[ok]: Test scripts are blocked by pause RO (64 ms) +[ok]: Test RO scripts are not blocked by pause RO (34 ms) +[ok]: Test read-only scripts in multi-exec are not blocked by pause RO (33 ms) +[ok]: Test write scripts in multi-exec are blocked by pause RO (64 ms) +[ok]: Test may-replicate commands are rejected in RO scripts (1 ms) +[ok]: Test multiple clients can be queued up and unblocked (78 ms) [ok]: Test clients with syntax errors will get responses immediately (1 ms) -[ok]: Test eviction is skipped during client pause (2 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 (27 ms) +[ok]: Test eviction is skipped during client pause (3 ms) +[ok]: Test both active and passive expires are skipped during client pause (105 ms) +[ok]: Test that client pause starts at the end of a transaction (32 ms) === (needs:repl external:skip) Starting server on 127.0.0.1:21261 ok -[ok]: Test when replica paused, offset would not grow (822 ms) -[ok]: Test replica offset would grow after unpause (5 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 (49 ms) +[ok]: CLIENT UNBLOCK is not allow to unblock client blocked by CLIENT PAUSE (66 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 (85 ms) +[ok]: Test check paused info during the cluster failover in info clients (73 ms) [16/129 done]: unit/pause (15 seconds) Testing unit/other === (other) Starting server on 127.0.0.1:21267 ok -[ok]: Coverage: HELP commands (6 ms) -[ok]: Coverage: MEMORY MALLOC-STATS (4 ms) -[ok]: Coverage: MEMORY PURGE (7 ms) -[ok]: Coverage: ECHO (5 ms) -[ok]: SAVE - make sure there are all the types as values (11 ms) -[ok]: FUZZ stresser with data model binary (1819 ms) -[ok]: FUZZ stresser with data model alpha (1168 ms) -[ok]: FUZZ stresser with data model compr (1057 ms) +[ok]: Coverage: HELP commands (4 ms) +[ok]: Coverage: MEMORY MALLOC-STATS (2 ms) +[ok]: Coverage: MEMORY PURGE (1 ms) +[ok]: Coverage: ECHO (0 ms) +[ok]: SAVE - make sure there are all the types as values (1 ms) +[ok]: FUZZ stresser with data model binary (467 ms) +[ok]: FUZZ stresser with data model alpha (643 ms) +[ok]: FUZZ stresser with data model compr (489 ms) === (external:skip) Starting server on 127.0.0.1:21269 ok -[ok]: FLUSHALL should not reset the dirty counter if we disable save (9 ms) -[ok]: FLUSHALL should reset the dirty counter to 0 if we enable save (1 ms) +[ok]: FLUSHALL should not reset the dirty counter if we disable save (2 ms) +[ok]: FLUSHALL should reset the dirty counter to 0 if we enable save (2 ms) -Waiting for background save to finish... [ok]: BGSAVE (58 ms) -[ok]: SELECT an out of range DB (7 ms) -[ok]: Check consistency of different data types after a reload (2270 ms) -[ok]: Same dataset digest if saving/reloading as AOF? (325 ms) +Waiting for background save to finish... [ok]: BGSAVE (55 ms) +[ok]: SELECT an out of range DB (1 ms) +[ok]: Check consistency of different data types after a reload (736 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) (111 ms) +Waiting for background AOF rewrite to finish... [ok]: Same dataset digest if saving/reloading as AOF? (248 ms) Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: EXPIRES after AOF reload (without rewrite) (2121 ms) -[ok]: PIPELINING stresser (also a regression for the old epoll bug) (1461 ms) +Waiting for background AOF rewrite to finish... [ok]: EXPIRES after a reload (snapshot + append only file rewrite) (107 ms) + +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... [ok]: EXPIRES after AOF reload (without rewrite) (2112 ms) +[ok]: PIPELINING stresser (also a regression for the old epoll bug) (504 ms) [ok]: APPEND basics (1 ms) -[ok]: APPEND basics, integer encoded values (6 ms) -[ok]: APPEND fuzzing (1152 ms) -[ok]: FLUSHDB (5 ms) +[ok]: APPEND basics, integer encoded values (1 ms) +[ok]: APPEND fuzzing (306 ms) +[ok]: FLUSHDB (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 (35 ms) +[ok]: RESET clears client state (1 ms) +[ok]: RESET clears MONITOR state (28 ms) [ok]: RESET clears and discards MULTI state (1 ms) -[ok]: RESET clears Pub/Sub state (5 ms) +[ok]: RESET clears Pub/Sub state (1 ms) [ok]: RESET clears authenticated state (1 ms) -[ok]: Subcommand syntax error crash (issue #10070) (1 ms) -[ok]: Extended Redis Compatibility config (2 ms) +[ok]: Subcommand syntax error crash (issue #10070) (0 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 (758 ms) +Waiting for background save to finish... [ok]: Don't rehash if server has child process (382 ms) === (other external:skip) Starting server on 127.0.0.1:21273 ok -[ok]: Process title set as expected (6 ms) +[ok]: Process title set as expected (2 ms) === (other external:skip cluster slow) Starting server on 127.0.0.1:21275 ok -[ok]: Server can trigger resizing (1872 ms) -[ok]: Server can rewind and trigger smaller slot resizing (779 ms) +[ok]: Server can trigger resizing (1682 ms) +[ok]: Server can rewind and trigger smaller slot resizing (650 ms) === (other external:skip) Starting server on 127.0.0.1:21277 ok -[ok]: Server can resize empty dict (218 ms) -Creating temp file /build/reproducible-path/valkey-8.1.4+dfsg1/666389 +[ok]: Server can resize empty dict (152 ms) +Creating temp file /build/reproducible-path/valkey-8.1.4+dfsg1/1611731 === (repl external:skip) Starting server on 127.0.0.1:21279 ok -[ok]: test unixsocket options are set correctly (9 ms) -Deleting temp file: /build/reproducible-path/valkey-8.1.4+dfsg1/666389 -[17/129 done]: unit/other (20 seconds) +[ok]: test unixsocket options are set correctly (0 ms) +Deleting temp file: /build/reproducible-path/valkey-8.1.4+dfsg1/1611731 +[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 (22 ms) +[ok]: CONFIG SET oom-score-adj works as expected (27 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 (0 ms) -[ok]: CONFIG SET oom score restored on disable (0 ms) -[ok]: CONFIG SET oom score relative and absolute (0 ms) -[ok]: CONFIG SET out-of-range oom score (0 ms) +[ok]: CONFIG SET oom-score-adj-values doesn't touch proc when disabled (1 ms) +[ok]: CONFIG SET oom score restored on disable (1 ms) +[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 (9 ms) -[ok]: Client output buffer hard limit is enforced (11462 ms) -[ok]: Client output buffer soft limit is enforced if time is overreached (4697 ms) -[ok]: Client output buffer soft limit is not enforced too early and is enforced when no traffic (5963 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 (1131 ms) -[ok]: Execute transactions completely even if client output buffer limit is enforced (51 ms) -[ok]: Obuf limit, HRANDFIELD with huge count stopped mid-run (46 ms) -[ok]: Obuf limit, KEYS stopped mid-run (139 ms) -[19/129 done]: unit/obuf-limits (24 seconds) +[ok]: CONFIG SET client-output-buffer-limit (3 ms) +[ok]: Client output buffer hard limit is enforced (5528 ms) +[ok]: Client output buffer soft limit is enforced if time is overreached (4447 ms) +[ok]: Client output buffer soft limit is not enforced too early and is enforced when no traffic (5027 ms) +[ok]: No response for single command if client output buffer hard limit is enforced (137 ms) +[ok]: No response for multi commands in pipeline if client output buffer limit is enforced (1067 ms) +[ok]: Execute transactions completely even if client output buffer limit is enforced (62 ms) +[ok]: Obuf limit, HRANDFIELD with huge count stopped mid-run (33 ms) +[ok]: Obuf limit, KEYS stopped mid-run (97 ms) +[19/129 done]: unit/obuf-limits (17 seconds) Testing unit/networking === () Starting server on 127.0.0.1:21285 ok -[ok]: CONFIG SET port number (264 ms) +[ok]: CONFIG SET port number (249 ms) === () Starting server on 127.0.0.1:21288 ok -[ok]: CONFIG SET bind address (280 ms) +[ok]: CONFIG SET bind address (226 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 (676 ms) +[ok]: CONFIG SET bind-source-addr (545 ms) === (external:skip) Starting server on 127.0.0.1:21294 ok -[ok]: Default bind address configuration handling (231 ms) -[ok]: Protected mode works as expected (3 ms) +[ok]: Default bind address configuration handling (227 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 (8 ms) -[ok]: DISCARD (1 ms) -[ok]: Nested MULTI are not allowed (0 ms) -[ok]: MULTI where commands alter argc/argv (0 ms) +[ok]: MULTI / EXEC basics (2 ms) +[ok]: DISCARD (2 ms) +[ok]: Nested MULTI are not allowed (1 ms) +[ok]: MULTI where commands alter argc/argv (1 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 (28 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 (27 ms) [ok]: If EXEC aborts, the client MULTI state is cleared (1 ms) -[ok]: EXEC works on WATCHed key not modified (0 ms) +[ok]: EXEC works on WATCHed key not modified (1 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 (5 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 (104 ms) -[ok]: WATCH stale keys should not fail EXEC (3 ms) -[ok]: Delete WATCHed stale keys should not fail EXEC (3 ms) -[ok]: FLUSHDB while watching stale keys should not fail EXEC (5 ms) -[ok]: After successful EXEC key is no longer watched (8 ms) -[ok]: After failed EXEC key is no longer watched (1 ms) +[ok]: WATCH stale keys should not fail EXEC (4 ms) +[ok]: Delete WATCHed stale keys should not fail EXEC (4 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 failed EXEC key is no longer watched (2 ms) [ok]: It is possible to UNWATCH (1 ms) [ok]: UNWATCH when there is nothing watched works as expected (0 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 (0 ms) -[ok]: FLUSHDB does not touch non affected keys (0 ms) -[ok]: SWAPDB is able to touch the watched keys that exist (5 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 (1 ms) -[ok]: SWAPDB does not touch watched stale keys (3 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 (10 ms) -[ok]: WATCH is able to remember the DB a key belongs to (1 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 (1 ms) [ok]: WATCH will consider touched expired keys (1140 ms) -[ok]: DISCARD should clear the WATCH dirty flag on the client (11 ms) +[ok]: DISCARD should clear the WATCH dirty flag on the client (2 ms) [ok]: DISCARD should UNWATCH all the keys (1 ms) -[ok]: MULTI / EXEC is not propagated (single write command) (103 ms) -[ok]: MULTI / EXEC is propagated correctly (multiple commands) (100 ms) -[ok]: MULTI / EXEC is propagated correctly (multiple commands with SELECT) (115 ms) -[ok]: MULTI / EXEC is propagated correctly (empty transaction) (90 ms) -[ok]: MULTI / EXEC is propagated correctly (read-only commands) (101 ms) -[ok]: MULTI / EXEC is propagated correctly (write command, no effect) (102 ms) -[ok]: MULTI / EXEC with REPLICAOF (101 ms) -[ok]: DISCARD should not fail during OOM (21 ms) -[ok]: MULTI and script timeout (451 ms) -[ok]: EXEC and script timeout (454 ms) -[ok]: MULTI-EXEC body and script timeout (464 ms) -[ok]: just EXEC and script timeout (460 ms) -[ok]: exec with write commands and state change (36 ms) -[ok]: exec with read commands and stale replica state change (41 ms) -[ok]: EXEC with only read commands should not be rejected when OOM (38 ms) -[ok]: EXEC with at least one use-memory command should fail (36 ms) -[ok]: Blocking commands ignores the timeout (8 ms) -[ok]: MULTI propagation of PUBLISH (47 ms) -[ok]: MULTI propagation of SCRIPT LOAD (102 ms) -[ok]: MULTI propagation of EVAL (101 ms) +[ok]: MULTI / EXEC is not propagated (single write command) (134 ms) +[ok]: MULTI / EXEC is propagated correctly (multiple commands) (101 ms) +[ok]: MULTI / EXEC is propagated correctly (multiple commands with SELECT) (101 ms) +[ok]: MULTI / EXEC is propagated correctly (empty transaction) (100 ms) +[ok]: MULTI / EXEC is propagated correctly (read-only commands) (100 ms) +[ok]: MULTI / EXEC is propagated correctly (write command, no effect) (100 ms) +[ok]: MULTI / EXEC with REPLICAOF (103 ms) +[ok]: DISCARD should not fail during OOM (25 ms) +[ok]: MULTI and script timeout (463 ms) +[ok]: EXEC and script timeout (446 ms) +[ok]: MULTI-EXEC body and script timeout (449 ms) +[ok]: just EXEC and script timeout (438 ms) +[ok]: exec with write commands and state change (25 ms) +[ok]: exec with read commands and stale replica state change (17 ms) +[ok]: EXEC with only read commands should not be rejected when OOM (13 ms) +[ok]: EXEC with at least one use-memory command should fail (13 ms) +[ok]: Blocking commands ignores the timeout (1 ms) +[ok]: MULTI propagation of PUBLISH (32 ms) +[ok]: MULTI propagation of SCRIPT LOAD (101 ms) +[ok]: MULTI propagation of EVAL (100 ms) [ok]: MULTI propagation of SCRIPT FLUSH (101 ms) -[ok]: MULTI propagation of XREADGROUP (100 ms) -[ok]: MULTI with SAVE (3 ms) -[ok]: MULTI with SHUTDOWN (0 ms) +[ok]: MULTI propagation of XREADGROUP (102 ms) +[ok]: MULTI with SAVE (2 ms) +[ok]: MULTI with SHUTDOWN (1 ms) Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: MULTI with BGREWRITEAOF (214 ms) +Waiting for background AOF rewrite to finish... [ok]: MULTI with BGREWRITEAOF (207 ms) Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: MULTI with config set appendonly (224 ms) -[ok]: MULTI with config error (1 ms) -[ok]: Flushall while watching several keys by one client (1 ms) -[ok]: AUTH errored inside MULTI will add the reply (2 ms) +Waiting for background AOF rewrite to finish... [ok]: MULTI with config set appendonly (208 ms) +[ok]: MULTI with config error (0 ms) +[ok]: Flushall while watching several keys by one client (0 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) === (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 (2 ms) -[21/129 done]: unit/multi (8 seconds) +[ok]: Regression test for multi-exec with RANDOMKEY accessing the wrong per-slot dictionary (1 ms) +[21/129 done]: unit/multi (7 seconds) Testing unit/memefficiency === (memefficiency external:skip) Starting server on 127.0.0.1:21304 ok -[ok]: Memory efficiency with values in range 32 (813 ms) -[ok]: Memory efficiency with values in range 64 (712 ms) -[ok]: Memory efficiency with values in range 128 (652 ms) -[ok]: Memory efficiency with values in range 1024 (636 ms) -[ok]: Memory efficiency with values in range 16384 (1812 ms) +[ok]: Memory efficiency with values in range 32 (371 ms) +[ok]: Memory efficiency with values in range 64 (319 ms) +[ok]: Memory efficiency with values in range 128 (360 ms) +[ok]: Memory efficiency with values in range 1024 (385 ms) +[ok]: Memory efficiency with values in range 16384 (947 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 (5 seconds) +[22/129 done]: unit/memefficiency (3 seconds) Testing unit/maxmemory === (maxmemory external:skip) Starting server on 127.0.0.1:21308 ok -evicted keys: 2 +evicted keys: 1 evicted clients: 0 -dbsize: 48 -[ok]: eviction due to output buffers of many MGET clients, client eviction: false (598 ms) +dbsize: 49 +[ok]: eviction due to output buffers of many MGET clients, client eviction: false (308 ms) evicted keys: 28 evicted clients: 0 dbsize: 22 -[ok]: eviction due to input buffer of a dead client, client eviction: false (4251 ms) +[ok]: eviction due to input buffer of a dead client, client eviction: false (3912 ms) evicted keys: 15 evicted clients: 0 dbsize: 35 -[ok]: eviction due to output buffers of pubsub, client eviction: false (844 ms) +[ok]: eviction due to output buffers of pubsub, client eviction: false (1398 ms) evicted keys: 0 evicted clients: 11 dbsize: 50 -[ok]: eviction due to output buffers of many MGET clients, client eviction: true (542 ms) +[ok]: eviction due to output buffers of many MGET clients, client eviction: true (678 ms) evicted keys: 0 evicted clients: 18 dbsize: 50 -[ok]: eviction due to input buffer of a dead client, client eviction: true (4021 ms) +[ok]: eviction due to input buffer of a dead client, client eviction: true (4531 ms) evicted keys: 0 evicted clients: 6 dbsize: 50 -[ok]: eviction due to output buffers of pubsub, client eviction: true (576 ms) +[ok]: eviction due to output buffers of pubsub, client eviction: true (1602 ms) === (maxmemory external:skip) Starting server on 127.0.0.1:21310 ok -[ok]: maxmemory - is the memory limit honoured? (policy allkeys-random) (299 ms) -[ok]: maxmemory - is the memory limit honoured? (policy allkeys-lru) (437 ms) -[ok]: maxmemory - is the memory limit honoured? (policy allkeys-lfu) (507 ms) -[ok]: maxmemory - is the memory limit honoured? (policy volatile-lru) (449 ms) -[ok]: maxmemory - is the memory limit honoured? (policy volatile-lfu) (442 ms) -[ok]: maxmemory - is the memory limit honoured? (policy volatile-random) (486 ms) -[ok]: maxmemory - is the memory limit honoured? (policy volatile-ttl) (772 ms) -[ok]: maxmemory - only allkeys-* should remove non-volatile keys (allkeys-random) (1349 ms) -[ok]: maxmemory - only allkeys-* should remove non-volatile keys (allkeys-lru) (1501 ms) -[ok]: maxmemory - only allkeys-* should remove non-volatile keys (volatile-lru) (504 ms) -[ok]: maxmemory - only allkeys-* should remove non-volatile keys (volatile-random) (427 ms) -[ok]: maxmemory - only allkeys-* should remove non-volatile keys (volatile-ttl) (446 ms) -[ok]: maxmemory - policy volatile-lru should only remove volatile keys. (3277 ms) -[ok]: maxmemory - policy volatile-lfu should only remove volatile keys. (2942 ms) -[ok]: maxmemory - policy volatile-random should only remove volatile keys. (5322 ms) -[ok]: maxmemory - policy volatile-ttl should only remove volatile keys. (7186 ms) +[ok]: maxmemory - is the memory limit honoured? (policy allkeys-random) (179 ms) +[ok]: maxmemory - is the memory limit honoured? (policy allkeys-lru) (455 ms) +[ok]: maxmemory - is the memory limit honoured? (policy allkeys-lfu) (982 ms) +[ok]: maxmemory - is the memory limit honoured? (policy volatile-lru) (1154 ms) +[ok]: maxmemory - is the memory limit honoured? (policy volatile-lfu) (1550 ms) +[ok]: maxmemory - is the memory limit honoured? (policy volatile-random) (767 ms) +[ok]: maxmemory - is the memory limit honoured? (policy volatile-ttl) (1315 ms) +[ok]: maxmemory - only allkeys-* should remove non-volatile keys (allkeys-random) (1557 ms) +[ok]: maxmemory - only allkeys-* should remove non-volatile keys (allkeys-lru) (1774 ms) +[ok]: maxmemory - only allkeys-* should remove non-volatile keys (volatile-lru) (2706 ms) +[ok]: maxmemory - only allkeys-* should remove non-volatile keys (volatile-random) (2667 ms) +[ok]: maxmemory - only allkeys-* should remove non-volatile keys (volatile-ttl) (3671 ms) +[ok]: maxmemory - policy volatile-lru should only remove volatile keys. (5825 ms) +[ok]: maxmemory - policy volatile-lfu should only remove volatile keys. (8317 ms) +[ok]: maxmemory - policy volatile-random should only remove volatile keys. (10393 ms) +[ok]: maxmemory - policy volatile-ttl should only remove volatile keys. (10129 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 (48489 ms) +[ok]: slave buffer are counted correctly (37932 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 (10226 ms) +[ok]: replica buffer don't induce eviction (8489 ms) === (maxmemory external:skip) Starting server on 127.0.0.1:21320 ok -[ok]: Don't rehash if used memory exceeds maxmemory after rehash (362 ms) +[ok]: Don't rehash if used memory exceeds maxmemory after rehash (201 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 (2022 ms) +[ok]: client tracking don't cause eviction feedback loop (1587 ms) === (maxmemory external:skip) Starting server on 127.0.0.1:21324 ok -[ok]: propagation with eviction (46 ms) +[ok]: propagation with eviction (77 ms) === (maxmemory external:skip) Starting server on 127.0.0.1:21326 ok -[ok]: propagation with eviction in MULTI (60 ms) +[ok]: propagation with eviction in MULTI (76 ms) === (maxmemory external:skip) Starting server on 127.0.0.1:21328 ok -[ok]: lru/lfu value of the key just added (7 ms) +[ok]: lru/lfu value of the key just added (2 ms) === (maxmemory external:skip) Starting server on 127.0.0.1:21330 ok [ok]: Import mode should forbid eviction (2 ms) -[23/129 done]: unit/maxmemory (102 seconds) +[23/129 done]: unit/maxmemory (117 seconds) Testing unit/limits === (limits network external:skip) Starting server on 127.0.0.1:21332 ok -[ok]: Check if maxclients works refusing connections (1157 ms) +[ok]: Check if maxclients works refusing connections (1101 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 (371 ms) -[ok]: FLUSHDB ASYNC can reclaim memory in background (372 ms) -[ok]: lazy free a stream with all types of metadata (333 ms) +[ok]: UNLINK can reclaim memory in background (225 ms) +[ok]: FLUSHDB ASYNC can reclaim memory in background (274 ms) +[ok]: lazy free a stream with all types of metadata (108 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 (0 ms) +[ok]: LATENCY HISTOGRAM with empty histogram (1 ms) [ok]: LATENCY HISTOGRAM all commands (1 ms) [ok]: LATENCY HISTOGRAM sub commands (1 ms) -[ok]: LATENCY HISTOGRAM with a subset of 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 (1 ms) -[ok]: Test latency events logging (3404 ms) +[ok]: Test latency events logging (3405 ms) LATENCY HISTORY data: -{1795909450 300} {1795909452 400} {1795909454 500} +{1761505684 300} {1761505686 400} {1761505687 500} [ok]: LATENCY HISTORY output is ok (0 ms) LATENCY LATEST data: -{command 1795909454 500 500 1200 3} +{command 1761505687 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) @@ -2200,753 +2235,753 @@ || _|| -420 +310 sss -[ok]: LATENCY GRAPH can output the event graph (1 ms) +[ok]: LATENCY GRAPH can output the event graph (0 ms) [ok]: LATENCY GRAPH can output the expire event graph (0 ms) -[ok]: LATENCY of expire events are correctly collected (4218 ms) +[ok]: LATENCY of expire events are correctly collected (4323 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 (1 ms) -[ok]: LATENCY HELP should not have unexpected options (3 ms) +[ok]: LATENCY RESET is able to reset events (5 ms) +[ok]: LATENCY HELP should not have unexpected options (0 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 (10 ms) -[26/129 done]: unit/latency-monitor (19 seconds) +[ok]: Cluster config file latency (1 ms) +[26/129 done]: unit/latency-monitor (18 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 (7 ms) -[ok]: Untagged multi-key commands (0 ms) -[ok]: KEYS with pattern (1 ms) -[ok]: KEYS to get all keys (0 ms) -[ok]: DBSIZE (1 ms) -[ok]: KEYS with hashtag (1 ms) -[ok]: DEL all keys (2 ms) -[ok]: KEYS with empty DB (4 ms) -[ok]: DEL against expired key (1102 ms) +[ok]: Vararg DEL (2 ms) +[ok]: Untagged multi-key commands (1 ms) +[ok]: KEYS with pattern (2 ms) +[ok]: KEYS to get all keys (1 ms) +[ok]: DBSIZE (0 ms) +[ok]: KEYS with hashtag (3 ms) +[ok]: DEL all keys (3 ms) +[ok]: KEYS with empty DB (1 ms) +[ok]: DEL against expired key (1101 ms) [ok]: EXISTS (0 ms) [ok]: Zero length value in key. SET/GET/EXISTS (0 ms) -[ok]: Commands pipelining (1 ms) +[ok]: Commands pipelining (0 ms) [ok]: Non existing command (0 ms) [ok]: RENAME basic usage (1 ms) -[ok]: RENAME source key should no longer exist (0 ms) +[ok]: RENAME source key should no longer exist (1 ms) [ok]: RENAME against already existing key (1 ms) [ok]: RENAMENX basic usage (1 ms) [ok]: RENAMENX against already existing key (0 ms) -[ok]: RENAMENX against already existing key (2) (3 ms) +[ok]: RENAMENX against already existing key (2) (0 ms) [ok]: RENAME against non existing source key (0 ms) -[ok]: RENAME where source and dest key are the same (existing) (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) (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 (0 ms) -[ok]: DEL all keys again (DB 0) (1 ms) -[ok]: DEL all keys again (DB 1) (5 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 (1 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 (2 ms) -[ok]: COPY for string does not copy data to no-integer DB (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 (1 ms) +[ok]: COPY for string does not copy data to no-integer DB (1 ms) [ok]: COPY can copy key expire metadata as well (0 ms) [ok]: COPY does not create an expire if it does not exist (1 ms) -[ok]: COPY basic usage for list - quicklist (51 ms) -[ok]: COPY basic usage for list - listpack (1 ms) -[ok]: COPY basic usage for $type set (1 ms) +[ok]: COPY basic usage for list - quicklist (43 ms) +[ok]: COPY basic usage for list - listpack (2 ms) +[ok]: COPY basic usage for $type set (2 ms) [ok]: COPY basic usage for $type set (2 ms) -[ok]: COPY basic usage for $type set (63 ms) -[ok]: COPY basic usage for listpack sorted set (5 ms) -[ok]: COPY basic usage for skiplist sorted set (33 ms) +[ok]: COPY basic usage for $type set (39 ms) +[ok]: COPY basic usage for listpack sorted set (2 ms) +[ok]: COPY basic usage for skiplist sorted set (13 ms) [ok]: COPY basic usage for listpack hash (2 ms) -[ok]: COPY basic usage for hashtable hash (26 ms) -[ok]: COPY basic usage for stream (182 ms) -[ok]: COPY basic usage for stream-cgroups (5 ms) +[ok]: COPY basic usage for hashtable hash (22 ms) +[ok]: COPY basic usage for stream (136 ms) +[ok]: COPY basic usage for stream-cgroups (11 ms) [ok]: MOVE basic usage (1 ms) -[ok]: MOVE against key existing in the target DB (1 ms) +[ok]: MOVE against key existing in the target DB (0 ms) [ok]: MOVE against non-integer DB (#1428) (0 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]: MOVE does not create an expire if it does not exist (0 ms) [ok]: SET/GET keys in different DBs (1 ms) -[ok]: RANDOMKEY (8 ms) -[ok]: RANDOMKEY against empty DB (1 ms) -[ok]: RANDOMKEY regression 1 (0 ms) +[ok]: RANDOMKEY (13 ms) +[ok]: RANDOMKEY against empty DB (0 ms) +[ok]: RANDOMKEY regression 1 (1 ms) [ok]: KEYS * two times with long key, Github issue #1208 (1 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 (50 ms) +[ok]: Coverage: basic SWAPDB test and unhappy path (3 ms) +[ok]: Coverage: SWAPDB and FLUSHDB (3 ms) +[ok]: Regression for pattern matching very long nested loops (90 ms) === (keyspace external:skip cluster) Starting server on 127.0.0.1:21344 ok [ok]: KEYS with empty DB in cluster mode (0 ms) [ok]: KEYS with empty slot in cluster mode (0 ms) [27/129 done]: unit/keyspace (4 seconds) Testing unit/introspection === (introspection) Starting server on 127.0.0.1:21346 ok -[ok]: PING (0 ms) +[ok]: PING (1 ms) [ok]: CLIENT LIST (0 ms) -[ok]: CLIENT LIST with IDs (0 ms) -[ok]: CLIENT INFO (5 ms) -[ok]: CLIENT LIST with ADDR filter (0 ms) +[ok]: CLIENT LIST with IDs (1 ms) +[ok]: CLIENT INFO (0 ms) +[ok]: CLIENT LIST with ADDR filter (2 ms) [ok]: CLIENT LIST with LADDR filter (1 ms) [ok]: CLIENT LIST with MAXAGE filter (0 ms) -[ok]: CLIENT LIST with TYPE filter (0 ms) +[ok]: CLIENT LIST with TYPE filter (1 ms) [ok]: CLIENT LIST with USER filter (1 ms) -[ok]: CLIENT LIST with SKIPME filter (0 ms) -[ok]: CLIENT LIST with multiple IDs and TYPE filter (70 ms) -[ok]: CLIENT LIST with filters matching no clients (46 ms) -[ok]: CLIENT LIST with illegal arguments (1 ms) -[ok]: client input output and command process statistics (30 ms) +[ok]: CLIENT LIST with SKIPME filter (1 ms) +[ok]: CLIENT LIST with multiple IDs and TYPE filter (96 ms) +[ok]: CLIENT LIST with filters matching no clients (61 ms) +[ok]: CLIENT LIST with illegal arguments (2 ms) +[ok]: client input output and command process statistics (29 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 (2048 ms) -[ok]: CLIENT KILL SKIPME YES/NO will kill all clients (159 ms) -[ok]: CLIENT command unhappy path coverage (5 ms) -[ok]: CLIENT KILL close the client connection during bgsave (129 ms) -[ok]: CLIENT REPLY OFF/ON: disable all commands reply (65 ms) -[ok]: CLIENT REPLY SKIP: skip the next command reply (61 ms) -[ok]: CLIENT REPLY ON: unset SKIP flag (69 ms) -[ok]: MONITOR can log executed commands (22 ms) -[ok]: MONITOR properly escapes special characters through sdscatrepr (28 ms) -[ok]: MONITOR can log commands issued by the scripting engine (21 ms) -[ok]: MONITOR can log commands issued by functions (23 ms) -[ok]: MONITOR supports redacting command arguments (23 ms) -[ok]: MONITOR correctly handles multi-exec cases (23 ms) -[ok]: MONITOR correctly records SET EX in MULTI-EXEC (25 ms) -[ok]: MONITOR log blocked command only once (66 ms) -[ok]: CLIENT GETNAME should return NIL if name is not assigned (1 ms) -[ok]: CLIENT GETNAME check if name set correctly (0 ms) -[ok]: CLIENT LIST shows empty fields for unassigned names (1 ms) +[ok]: CLIENT KILL maxAGE will kill old clients (2059 ms) +[ok]: CLIENT KILL SKIPME YES/NO will kill all clients (88 ms) +[ok]: CLIENT command unhappy path coverage (3 ms) +[ok]: CLIENT KILL close the client connection during bgsave (83 ms) +[ok]: CLIENT REPLY OFF/ON: disable all commands reply (64 ms) +[ok]: CLIENT REPLY SKIP: skip the next command reply (59 ms) +[ok]: CLIENT REPLY ON: unset SKIP flag (64 ms) +[ok]: MONITOR can log executed commands (20 ms) +[ok]: MONITOR properly escapes special characters through sdscatrepr (23 ms) +[ok]: MONITOR can log commands issued by the scripting engine (27 ms) +[ok]: MONITOR can log commands issued by functions (28 ms) +[ok]: MONITOR supports redacting command arguments (29 ms) +[ok]: MONITOR correctly handles multi-exec cases (24 ms) +[ok]: MONITOR correctly records SET EX in MULTI-EXEC (24 ms) +[ok]: MONITOR log blocked command only once (74 ms) +[ok]: CLIENT GETNAME should return NIL if name is not assigned (0 ms) +[ok]: CLIENT GETNAME check if name set correctly (1 ms) +[ok]: CLIENT LIST shows empty fields for unassigned names (0 ms) [ok]: CLIENT SETNAME does not accept spaces (0 ms) [ok]: CLIENT SETNAME can assign a name to this connection (1 ms) [ok]: CLIENT SETNAME can change the name of an existing connection (0 ms) -[ok]: After CLIENT SETNAME, connection can still be closed (13 ms) +[ok]: After CLIENT SETNAME, connection can still be closed (28 ms) [ok]: CLIENT SETINFO can set a library name to this connection (0 ms) -[ok]: CLIENT SETINFO invalid args (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 (0 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 (1069 ms) -[ok]: CONFIG sanity (75 ms) -[ok]: CONFIG REWRITE sanity (303 ms) +[ok]: CONFIG save params special case handled properly (1007 ms) +[ok]: CONFIG sanity (71 ms) +[ok]: CONFIG REWRITE sanity (275 ms) === () Starting server on 127.0.0.1:21356 ok -[ok]: CONFIG REWRITE handles save and shutdown properly (994 ms) +[ok]: CONFIG REWRITE handles save and shutdown properly (924 ms) [ok]: CONFIG SET with multiple args (2 ms) -[ok]: CONFIG SET rollback on set error (7 ms) -dummy_accept: sockaaab05a7eb00 -[ok]: CONFIG SET rollback on apply error (36 ms) +[ok]: CONFIG SET rollback on set error (2 ms) +dummy_accept: sockaaaae288a990 +[ok]: CONFIG SET rollback on apply error (29 ms) [ok]: CONFIG SET duplicate configs (0 ms) -[ok]: CONFIG SET set immutable (0 ms) -[ok]: CONFIG GET hidden configs (6 ms) -[ok]: CONFIG GET multiple args (0 ms) -[ok]: valkey-server command line arguments - error cases (180 ms) +[ok]: CONFIG SET set immutable (1 ms) +[ok]: CONFIG GET hidden configs (9 ms) +[ok]: CONFIG GET multiple args (1 ms) +[ok]: valkey-server command line arguments - error cases (159 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 (795 ms) +[ok]: tot-net-out for replica client (755 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 (264 ms) +[ok]: valkey-server command line arguments - allow passing option name and option value in the same arg (245 ms) === () Starting server on 127.0.0.1:21365 ok -[ok]: valkey-server command line arguments - wrong usage that we support anyway (266 ms) +[ok]: valkey-server command line arguments - wrong usage that we support anyway (234 ms) === () Starting server on 127.0.0.1:21367 ok -[ok]: valkey-server command line arguments - allow option value to use the `--` prefix (270 ms) +[ok]: valkey-server command line arguments - allow option value to use the `--` prefix (257 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 (268 ms) +[ok]: valkey-server command line arguments - option name and option value in the same arg and `--` prefix (256 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 (1383 ms) +[ok]: valkey-server command line arguments - save with empty input (1260 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 (252 ms) +[ok]: valkey-server command line arguments - take one bulk string with spaces for MULTI_ARG configs parsing (255 ms) === () Starting server on 127.0.0.1:21383 ok -[ok]: valkey-server command line arguments - dir multiple times (271 ms) +[ok]: valkey-server command line arguments - dir multiple times (244 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 (0 ms) === (introspection external:skip) Starting server on 127.0.0.1:21387 ok -[ok]: cannot modify protected configuration - local (2 ms) +[ok]: cannot modify protected configuration - local (4 ms) === () Starting server on 127.0.0.1:21389 ok -[ok]: config during loading (1035 ms) +[ok]: config during loading (874 ms) === () Starting server on 127.0.0.1:21391 ok -[ok]: MEMORY commands during loading (984 ms) +[ok]: MEMORY commands during loading (851 ms) === (introspection) Starting server on 127.0.0.1:21393 ok -[ok]: CONFIG REWRITE handles rename-command properly (527 ms) +[ok]: CONFIG REWRITE handles rename-command properly (493 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 (1032 ms) -[28/129 done]: unit/introspection (14 seconds) +[ok]: CONFIG REWRITE handles alias config properly (992 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 (0 ms) -[ok]: TTL, TYPE and EXISTS do not alter the last access time of a key (3004 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 (3003 ms) +[ok]: TOUCH alters the last access time of a key (3005 ms) [ok]: TOUCH alters the last access time of a key in no-touch mode (3006 ms) -[ok]: Operations in no-touch mode do not alter the last access time of a key (1102 ms) +[ok]: Operations in no-touch mode do not alter the last access time of a key (1103 ms) [ok]: TOUCH returns the number of existing keys specified (1 ms) -[ok]: command stats for GEOADD (1 ms) -[ok]: errors stats for GEOADD (0 ms) -[ok]: command stats for EXPIRE (0 ms) -[ok]: command stats for BRPOP (3 ms) -[ok]: command stats for MULTI (7 ms) -[ok]: command stats for scripts (1 ms) +[ok]: command stats for GEOADD (2 ms) +[ok]: errors stats for GEOADD (1 ms) +[ok]: command stats for EXPIRE (2 ms) +[ok]: command stats for BRPOP (2 ms) +[ok]: command stats for MULTI (4 ms) +[ok]: command stats for scripts (2 ms) [ok]: COMMAND COUNT get total number of commands (0 ms) -[ok]: COMMAND GETKEYS GET (1 ms) -[ok]: COMMAND GETKEYSANDFLAGS (0 ms) +[ok]: COMMAND GETKEYS GET (0 ms) +[ok]: COMMAND GETKEYSANDFLAGS (2 ms) [ok]: COMMAND GETKEYS MEMORY USAGE (0 ms) [ok]: COMMAND GETKEYS XGROUP (0 ms) -[ok]: COMMAND GETKEYS EVAL with keys (0 ms) +[ok]: COMMAND GETKEYS EVAL with keys (1 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 (6 ms) -[ok]: COMMAND LIST WITHOUT FILTERBY (2 ms) -[ok]: COMMAND LIST FILTERBY ACLCAT against non existing category (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 (0 ms) -[ok]: COMMAND LIST FILTERBY PATTERN - list all commands/subcommands (1 ms) -[ok]: COMMAND LIST FILTERBY MODULE against non existing module (1 ms) -[ok]: COMMAND INFO of invalid subcommands (0 ms) -[ok]: SET command will not be marked with movablekeys (0 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 (1 ms) +[ok]: SET command will not be marked with movablekeys (1 ms) [ok]: GET command will not be marked with movablekeys (1 ms) [ok]: MSET command will not be marked with movablekeys (0 ms) [ok]: BITFIELD command will not be marked with movablekeys (0 ms) [ok]: LMOVE command will not be marked with movablekeys (1 ms) [ok]: LPOP command will not be marked with movablekeys (0 ms) -[ok]: BLPOP command will not be marked with movablekeys (5 ms) -[ok]: PING command will not be marked with movablekeys (0 ms) +[ok]: BLPOP command will not be marked with movablekeys (1 ms) +[ok]: PING command will not be marked with movablekeys (1 ms) [ok]: MEMORY command will not be marked with movablekeys (1 ms) [ok]: MEMORY|USAGE command will not be marked with movablekeys (0 ms) [ok]: RENAME command will not be marked with movablekeys (1 ms) [ok]: GEORADIUS_RO command will not be marked with movablekeys (0 ms) [ok]: ZUNIONSTORE command is marked with movablekeys (1 ms) -[ok]: XREAD command is marked with movablekeys (0 ms) -[ok]: EVAL command is marked with movablekeys (1 ms) -[ok]: SORT command is marked with movablekeys (0 ms) +[ok]: XREAD command is marked with movablekeys (1 ms) +[ok]: EVAL command is marked with movablekeys (0 ms) +[ok]: SORT command is marked with movablekeys (1 ms) [ok]: SORT_RO command is marked with movablekeys (1 ms) -[ok]: MIGRATE command is marked with movablekeys (6 ms) -[ok]: GEORADIUS command is marked with movablekeys (0 ms) -[29/129 done]: unit/introspection-2 (10 seconds) +[ok]: MIGRATE command is marked with movablekeys (1 ms) +[ok]: GEORADIUS command is marked with movablekeys (1 ms) +[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 (1 ms) -[ok]: latencystats: configure percentiles (11 ms) -[ok]: latencystats: bad configure percentiles (2 ms) -[ok]: latencystats: blocking commands (20 ms) -[ok]: latencystats: subcommands (2 ms) -[ok]: latencystats: measure latency (54 ms) -[ok]: errorstats: failed call authentication error (5 ms) -[ok]: errorstats: failed call within MULTI/EXEC (10 ms) -[ok]: errorstats: failed call within LUA (6 ms) -[ok]: errorstats: failed call NOSCRIPT error (8 ms) -[ok]: errorstats: failed call NOGROUP error (1 ms) -[ok]: errorstats: rejected call unknown command (10 ms) -[ok]: errorstats: rejected call within MULTI/EXEC (10 ms) -[ok]: errorstats: rejected call due to wrong arity (2 ms) -[ok]: errorstats: rejected call by OOM error (5 ms) -[ok]: errorstats: rejected call by authorization error (6 ms) -[ok]: errorstats: blocking commands (21 ms) -[ok]: errorstats: limit errors will not increase indefinitely (326 ms) -eventloop metrics cycle1: 1119, cycle2: 1121 -eventloop metrics el_sum1: 65280, el_sum2: 65479 -eventloop metrics cmd_sum1: 11329, cmd_sum2: 11355 +[ok]: latencystats: disable/enable (3 ms) +[ok]: latencystats: configure percentiles (4 ms) +[ok]: latencystats: bad configure percentiles (3 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 (5 ms) +[ok]: errorstats: failed call within LUA (5 ms) +[ok]: errorstats: failed call NOSCRIPT error (4 ms) +[ok]: errorstats: failed call NOGROUP error (3 ms) +[ok]: errorstats: rejected call unknown command (3 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 (3 ms) +[ok]: errorstats: rejected call by authorization error (4 ms) +[ok]: errorstats: blocking commands (32 ms) +[ok]: errorstats: limit errors will not increase indefinitely (181 ms) +eventloop metrics cycle1: 1117, cycle2: 1120 +eventloop metrics el_sum1: 66963, el_sum2: 67218 +eventloop metrics cmd_sum1: 13127, cmd_sum2: 13140 [ok]: stats: eventloop metrics (112 ms) -instantaneous metrics instantaneous_eventloop_cycles_per_sec: 97 -instantaneous metrics instantaneous_eventloop_duration_usec: 28 -[ok]: stats: instantaneous metrics (2005 ms) -[ok]: stats: debug metrics (112 ms) -[ok]: stats: client input and output buffer limit disconnections (109 ms) -[ok]: clients: pubsub clients (26 ms) -[ok]: clients: watching clients (38 ms) +instantaneous metrics instantaneous_eventloop_cycles_per_sec: 98 +instantaneous metrics instantaneous_eventloop_duration_usec: 24 +[ok]: stats: instantaneous metrics (2006 ms) +[ok]: stats: debug metrics (114 ms) +[ok]: stats: client input and output buffer limit disconnections (157 ms) +[ok]: clients: pubsub clients (66 ms) +[ok]: clients: watching clients (46 ms) === (info external:skip) Starting server on 127.0.0.1:21405 ok -[ok]: memory: database and pubsub overhead and rehashing dict count (10 ms) -[30/129 done]: unit/info (4 seconds) +[ok]: memory: database and pubsub overhead and rehashing dict count (8 ms) +[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 (0 ms) -[ok]: info command with at most one sub command (1 ms) -[ok]: info command with one sub-section (0 ms) -[ok]: info command with multiple sub-sections (4 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) 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 (770 ms) -[ok]: PFADD without arguments creates an HLL value (0 ms) -[ok]: Approximated cardinality after creation is zero (1 ms) +[ok]: HyperLogLog self test passes (598 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 (0 ms) -[ok]: PFADD returns 0 when no reg was modified (1 ms) +[ok]: PFADD returns 0 when no reg was modified (0 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 (449 ms) +[ok]: PFCOUNT returns approximated cardinality of set (2 ms) +[ok]: HyperLogLogs are promote from sparse to dense (478 ms) [ok]: Change hll-sparse-max-bytes (1 ms) -[ok]: Hyperloglog promote to dense well in different hll-sparse-max-bytes (81 ms) -[ok]: HyperLogLog sparse encoding stress test (1043 ms) +[ok]: Hyperloglog promote to dense well in different hll-sparse-max-bytes (49 ms) +[ok]: HyperLogLog sparse encoding stress test (1123 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 (47906 ms) -[ok]: PFADD, PFCOUNT, PFMERGE type checking works (0 ms) -[ok]: PFMERGE results on the cardinality of union of sets (2 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 (0 ms) -[ok]: PFMERGE with one non-empty input key, dest key is actually one of the source keys (3 ms) -[ok]: PFMERGE results with simd (1217 ms) -[ok]: PFCOUNT multiple-keys merge returns cardinality of union #1 (5001 ms) -[ok]: PFCOUNT multiple-keys merge returns cardinality of union #2 (2634 ms) -[ok]: PFDEBUG GETREG returns the HyperLogLog raw registers (428 ms) -[ok]: PFADD / PFCOUNT cache invalidation works (1 ms) -[32/129 done]: unit/hyperloglog (60 seconds) +[ok]: Corrupted dense HyperLogLogs are detected: Wrong length (0 ms) +[ok]: Fuzzing dense/sparse encoding: Server should always detect errors (48901 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 (1 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 (1546 ms) +[ok]: PFCOUNT multiple-keys merge returns cardinality of union #1 (6769 ms) +[ok]: PFCOUNT multiple-keys merge returns cardinality of union #2 (2739 ms) +[ok]: PFDEBUG GETREG returns the HyperLogLog raw registers (433 ms) +[ok]: PFADD / PFCOUNT cache invalidation works (2 ms) +[32/129 done]: unit/hyperloglog (63 seconds) Testing unit/geo === (geo) Starting server on 127.0.0.1:21411 ok -[ok]: GEO with wrong type src key (2 ms) -[ok]: GEO with non existing src key (5 ms) +[ok]: GEO with wrong type src key (3 ms) +[ok]: GEO with non existing src key (2 ms) [ok]: GEO BYLONLAT with empty search (1 ms) -[ok]: GEO BYMEMBER with non existing member (1 ms) +[ok]: GEO BYMEMBER with non existing member (2 ms) [ok]: GEOADD create (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 (0 ms) -[ok]: GEOADD update with CH NX option (1 ms) +[ok]: GEOADD update (1 ms) +[ok]: GEOADD update with CH option (0 ms) +[ok]: GEOADD update with NX option (1 ms) +[ok]: GEOADD update with XX option (1 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 (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 invalid coordinates (0 ms) -[ok]: GEOADD multi add (1 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_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 one must exist (0 ms) +[ok]: GEOSEARCH FROMLONLAT and FROMMEMBER one must exist (1 ms) [ok]: GEOSEARCH BYRADIUS and BYBOX cannot exist at the same time (0 ms) -[ok]: GEOSEARCH BYRADIUS and BYBOX one must exist (0 ms) +[ok]: GEOSEARCH BYRADIUS and BYBOX one must exist (1 ms) [ok]: GEOSEARCH with STOREDIST option (0 ms) [ok]: GEORADIUS withdist (sorted) (0 ms) -[ok]: GEOSEARCH withdist (sorted) (0 ms) -[ok]: GEORADIUS with COUNT (5 ms) -[ok]: GEORADIUS with multiple WITH* tokens (0 ms) -[ok]: GEORADIUS with ANY not sorted by default (1 ms) +[ok]: GEOSEARCH withdist (sorted) (1 ms) +[ok]: GEORADIUS with COUNT (0 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 (0 ms) -[ok]: GEORADIUS with ANY but no COUNT (0 ms) +[ok]: GEORADIUS with ANY but no COUNT (1 ms) [ok]: GEORADIUS with COUNT but missing integer argument (0 ms) [ok]: GEORADIUS with COUNT DESC (0 ms) -[ok]: GEORADIUS HUGE, issue #2767 (7 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 search areas contain satisfied points in oblique direction (2 ms) [ok]: GEORADIUSBYMEMBER crossing pole search (0 ms) [ok]: GEOSEARCH FROMMEMBER simple (sorted) (0 ms) -[ok]: GEOSEARCH vs GEORADIUS (6 ms) -[ok]: GEOSEARCH non square, long and narrow (7 ms) +[ok]: GEOSEARCH vs GEORADIUS (1 ms) +[ok]: GEOSEARCH non square, long and narrow (1 ms) [ok]: GEOSEARCH corner point test (0 ms) -[ok]: GEORADIUSBYMEMBER withdist (sorted) (1 ms) -[ok]: GEOHASH is able to return geohash strings (0 ms) -[ok]: GEOHASH with only key as argument (1 ms) -[ok]: GEOPOS simple (0 ms) -[ok]: GEOPOS missing element (6 ms) -[ok]: GEOPOS with only key as argument (0 ms) -[ok]: GEODIST simple & unit (7 ms) -[ok]: GEODIST missing elements (0 ms) +[ok]: GEORADIUSBYMEMBER withdist (sorted) (0 ms) +[ok]: GEOHASH is able to return geohash strings (1 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 (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]: GEORADIUSBYMEMBER STORE/STOREDIST option: plain usage (5 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]: GEORANGE STOREDIST option: COUNT ASC and DESC (2 ms) [ok]: GEOSEARCH the box spans -180° or 180° (1 ms) -[ok]: GEOSEARCH with small distance (0 ms) -[ok]: GEOSEARCH fuzzy test - byradius (20127 ms) -[ok]: GEOSEARCH fuzzy test - bybox (18648 ms) -[ok]: GEOSEARCH box edges fuzzy test (100 ms) -[33/129 done]: unit/geo (39 seconds) +[ok]: GEOSEARCH with small distance (1 ms) +[ok]: GEOSEARCH fuzzy test - byradius (13721 ms) +[ok]: GEOSEARCH fuzzy test - bybox (11256 ms) +[ok]: GEOSEARCH box edges fuzzy test (57 ms) +[33/129 done]: unit/geo (26 seconds) Testing unit/functions === (scripting) Starting server on 127.0.0.1:21413 ok -[ok]: FUNCTION - Basic usage (1 ms) +[ok]: FUNCTION - Basic usage (0 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 (case insensitive) (0 ms) -[ok]: FUNCTION - Create a library with wrong name format (1 ms) -[ok]: FUNCTION - Create library with unexisting engine (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 (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 (0 ms) +[ok]: FUNCTION - test replace argument with failure keeps old libraries (1 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 delete on not exiting library (1 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 (2 ms) -[ok]: FUNCTION - test debug reload different options (0 ms) -[ok]: FUNCTION - test debug reload with nosave and noflush (4 ms) -[ok]: FUNCTION - test flushall and flushdb do not clean functions (1 ms) -[ok]: FUNCTION - test function dump and restore (7 ms) -[ok]: FUNCTION - test function dump and restore with flush argument (0 ms) -[ok]: FUNCTION - test function dump and restore with append argument (1 ms) -[ok]: FUNCTION - test function dump and restore with replace argument (1 ms) +[ok]: FUNCTION - test wrong subcommand (1 ms) +[ok]: FUNCTION - test loading from rdb (1 ms) +[ok]: FUNCTION - test debug reload different options (5 ms) +[ok]: FUNCTION - test debug reload with nosave and noflush (3 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 (3 ms) +[ok]: FUNCTION - test function dump and restore with replace argument (2 ms) [ok]: FUNCTION - test function restore with bad payload do not drop existing functions (1 ms) -[ok]: FUNCTION - test function restore with wrong number of arguments (3 ms) +[ok]: FUNCTION - test function restore with wrong number of arguments (0 ms) [ok]: FUNCTION - test fcall_ro with write command (0 ms) [ok]: FUNCTION - test fcall_ro with read only commands (1 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 (454 ms) -[ok]: FUNCTION - test script kill not working on function (446 ms) -[ok]: FUNCTION - test function kill not working on eval (444 ms) -[ok]: FUNCTION - test function flush (2 ms) +[ok]: FUNCTION - test keys and argv (1 ms) +[ok]: FUNCTION - test command get keys on fcall (0 ms) +[ok]: FUNCTION - test command get keys on fcall_ro (1 ms) +[ok]: FUNCTION - test function kill (434 ms) +[ok]: FUNCTION - test script kill not working on function (436 ms) +[ok]: FUNCTION - test function kill not working on eval (436 ms) +[ok]: FUNCTION - test function flush (3 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 (104 ms) -[ok]: FUNCTION - creation is replicated to replica (610 ms) -[ok]: FUNCTION - call on replica (1 ms) -[ok]: FUNCTION - restore is replicated to replica (1 ms) +[ok]: FUNCTION - creation is replicated to replica (607 ms) +[ok]: FUNCTION - call on replica (0 ms) +[ok]: FUNCTION - restore is replicated to replica (3 ms) [ok]: FUNCTION - delete is replicated to replica (1 ms) [ok]: FUNCTION - flush is replicated to replica (1 ms) -[ok]: Disconnecting the replica from master instance (118 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 (3 ms) -[ok]: FUNCTION - create on read only replica (0 ms) +[ok]: FUNCTION - test replication to replica on rdb phase info command (0 ms) +[ok]: FUNCTION - create on read only replica (1 ms) [ok]: FUNCTION - delete on read only replica (0 ms) -[ok]: FUNCTION - function effect is replicated to replica (911 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... [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 (351 ms) === (scripting) Starting server on 127.0.0.1:21421 ok -[ok]: LIBRARIES - test shared function can access default globals (0 ms) -[ok]: LIBRARIES - usage and code sharing (0 ms) +[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 (1 ms) -[ok]: LIBRARIES - test registration function name collision (3 ms) +[ok]: LIBRARIES - test registration function name collision (0 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 no argument (1 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 to many arguments (1 ms) [ok]: LIBRARIES - test registration with no string name (0 ms) -[ok]: LIBRARIES - test registration with wrong name format (0 ms) -[ok]: LIBRARIES - test registration with empty name (1 ms) -[ok]: LIBRARIES - math.random from function load (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.setresp from function load (1 ms) [ok]: LIBRARIES - redis.set_repl from function load (0 ms) -[ok]: LIBRARIES - redis.acl_check_cmd 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 - 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 (501 ms) -[ok]: LIBRARIES - verify global protection on the load run (0 ms) +[ok]: LIBRARIES - load timeout (502 ms) +[ok]: LIBRARIES - verify global protection on the load run (1 ms) [ok]: LIBRARIES - named arguments (1 ms) [ok]: LIBRARIES - named arguments, bad function name (0 ms) -[ok]: LIBRARIES - named arguments, bad callback type (0 ms) +[ok]: LIBRARIES - named arguments, bad callback type (1 ms) [ok]: LIBRARIES - named arguments, bad description (0 ms) -[ok]: LIBRARIES - named arguments, unknown argument (0 ms) +[ok]: LIBRARIES - named arguments, unknown argument (1 ms) [ok]: LIBRARIES - named arguments, missing function name (0 ms) [ok]: LIBRARIES - named arguments, missing callback (0 ms) -[ok]: FUNCTION - test function restore with function name collision (2 ms) -[ok]: FUNCTION - test function list with code (0 ms) +[ok]: FUNCTION - test function restore with function name collision (3 ms) +[ok]: FUNCTION - test function list with code (1 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 (0 ms) -[ok]: FUNCTION - verify OOM on function load and function restore (1 ms) +[ok]: FUNCTION - verify OOM on function load and function restore (2 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 (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 (4 ms) +[ok]: FUNCTION - unknown flag (0 ms) +[ok]: FUNCTION - write script on fcall_ro (1 ms) +[ok]: FUNCTION - write script with no-writes flag (1 ms) [ok]: FUNCTION - deny oom (1 ms) -[ok]: FUNCTION - deny oom on no-writes function (0 ms) +[ok]: FUNCTION - deny oom on no-writes function (1 ms) [ok]: FUNCTION - allow stale (2 ms) [ok]: FUNCTION - valkey version api (1 ms) -[ok]: FUNCTION - function stats (1 ms) +[ok]: FUNCTION - function stats (2 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 (0 ms) -[ok]: FUNCTION - function stats cleaned after flush (1 ms) +[ok]: FUNCTION - function stats delete library (1 ms) +[ok]: FUNCTION - test function stats on loading failure (1 ms) +[ok]: FUNCTION - function stats cleaned after flush (0 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 multiple names (1 ms) +[ok]: FUNCTION - function test no name (1 ms) +[ok]: FUNCTION - function test multiple names (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) +[ok]: FUNCTION - test getmetatable on script load (1 ms) [34/129 done]: unit/functions (6 seconds) Testing unit/expire === (expire) Starting server on 127.0.0.1:21425 ok -[ok]: EXPIRE - set timeouts multiple times (1 ms) -[ok]: EXPIRE - It should be still possible to read 'x' (0 ms) -[ok]: EXPIRE - After 2.1 seconds the key should no longer be here (2102 ms) +[ok]: EXPIRE - set timeouts multiple times (2 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 (2101 ms) [ok]: EXPIRE - write on expire should work (1 ms) [ok]: EXPIREAT - Check for EXPIRE alike behavior (1 ms) -[ok]: SETEX - Set + Expire combo operation. Check for TTL (0 ms) +[ok]: SETEX - Set + Expire combo operation. Check for TTL (1 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 - Wrong time parameter (1 ms) [ok]: PERSIST can undo an EXPIRE (1 ms) -[ok]: PERSIST returns 0 against non existing or non volatile keys (4 ms) +[ok]: PERSIST returns 0 against non existing or non volatile keys (1 ms) millisecond expire test attempts: 0 -[ok]: EXPIRE precision is now the millisecond (1105 ms) +[ok]: EXPIRE precision is now the millisecond (1106 ms) PSETEX sub-second expire test attempts: 0 -[ok]: PSETEX can set sub-second expires (104 ms) +[ok]: PSETEX can set sub-second expires (103 ms) PEXPIRE sub-second expire test attempts: 0 -[ok]: PEXPIRE can set sub-second expires (102 ms) +[ok]: PEXPIRE can set sub-second expires (104 ms) PEXPIREAT sub-second expire test attempts: 0 -[ok]: PEXPIREAT can set sub-second expires (210 ms) -[ok]: EXPIRE / EXPIREAT / PEXPIRE / PEXPIREAT Expiration time is already expired (7 ms) +[ok]: PEXPIREAT can set sub-second expires (204 ms) +[ok]: EXPIRE / EXPIREAT / PEXPIRE / PEXPIREAT Expiration time is already expired (6 ms) [ok]: TTL returns time to live in seconds (0 ms) [ok]: PTTL returns time to live in milliseconds (0 ms) -[ok]: TTL / PTTL / EXPIRETIME / PEXPIRETIME return -1 if key has no expire (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 (0 ms) [ok]: EXPIRETIME returns absolute expiration time in seconds (0 ms) [ok]: PEXPIRETIME returns absolute expiration time in milliseconds (1 ms) -[ok]: Server should actively expire keys incrementally (613 ms) +[ok]: Server should actively expire keys incrementally (607 ms) [ok]: Server should lazy expire keys (1006 ms) [ok]: EXPIRE should not resurrect keys (issue #1026) (1003 ms) -[ok]: 5 keys in, 5 keys out (6 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 big integer should report an error (1 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 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 (1 ms) +[ok]: EXPIRE with big integer overflows when converted to milliseconds (2 ms) [ok]: PEXPIRE with big integer overflow when basetime is added (1 ms) [ok]: EXPIRE with big negative integer (1 ms) [ok]: PEXPIREAT with big integer works (1 ms) -[ok]: PEXPIREAT with big negative integer works (0 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 (2026 ms) -[ok]: All TTL in commands are propagated as absolute timestamp in replication stream (86 ms) +[ok]: All time-to-live(TTL) in commands are propagated as absolute timestamp in milliseconds in AOF (2025 ms) +[ok]: All TTL in commands are propagated as absolute timestamp in replication stream (73 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 (119 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 (106 ms) -Waiting for background AOF rewrite to finish... [ok]: expired key which is created in writeable replicas should be deleted by active expiry (245 ms) +Waiting for background AOF rewrite to finish... [ok]: expired key which is created in writeable replicas should be deleted by active expiry (253 ms) [ok]: SET command will remove expire (1 ms) -[ok]: SET - use KEEPTTL option, TTL should not be removed (0 ms) -[ok]: SET - use KEEPTTL option, TTL should not be removed after loadaof (2010 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 (2007 ms) [ok]: GETEX use of PERSIST option should remove TTL (1 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 (44 ms) -[ok]: EXPIRE with NX option on a key with ttl (0 ms) -[ok]: EXPIRE with NX option on a key without ttl (0 ms) -[ok]: EXPIRE with XX option on a key with ttl (0 ms) -[ok]: EXPIRE with XX option on a key without ttl (0 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 (136 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 (1 ms) +[ok]: EXPIRE with XX option on a key without ttl (1 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 without 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 (1 ms) -[ok]: EXPIRE with LT option on a key with lower ttl (0 ms) -[ok]: EXPIRE with LT option on a key without ttl (0 ms) +[ok]: EXPIRE with LT option on a key with lower ttl (1 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 (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: LT GT (1 ms) [ok]: EXPIRE with conflicting options: NX GT (1 ms) -[ok]: EXPIRE with conflicting options: NX LT (4 ms) +[ok]: EXPIRE with conflicting options: NX LT (1 ms) [ok]: EXPIRE with conflicting options: NX XX (1 ms) -[ok]: EXPIRE with unsupported options (0 ms) -[ok]: EXPIRE with unsupported options (0 ms) +[ok]: EXPIRE with unsupported options (1 ms) +[ok]: EXPIRE with unsupported options (1 ms) [ok]: EXPIRE with negative expiry (1 ms) -[ok]: EXPIRE with negative expiry on a non-valitale key (0 ms) -[ok]: EXPIRE with non-existed key (0 ms) -[ok]: Server should not propagate the read command on lazy expire (81 ms) +[ok]: EXPIRE with negative expiry on a non-valitale key (1 ms) +[ok]: EXPIRE with non-existed key (1 ms) +[ok]: Server should not propagate the read command on lazy expire (73 ms) [ok]: SCAN: Lazy-expire should not be wrapped in MULTI/EXEC (101 ms) -[ok]: RANDOMKEY: Lazy-expire should not be wrapped in MULTI/EXEC (112 ms) -[ok]: import-source can be closed when import-mode is off (1 ms) -[ok]: Import mode should forbid active expiration (115 ms) -[ok]: Import mode should forbid lazy expiration (12 ms) -[ok]: Client can visit expired key in import-source state (118 ms) +[ok]: RANDOMKEY: Lazy-expire should not be wrapped in MULTI/EXEC (100 ms) +[ok]: import-source can be closed when import-mode is off (2 ms) +[ok]: Import mode should forbid active expiration (114 ms) +[ok]: Import mode should forbid lazy expiration (14 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 (170 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 (960 ms) +[ok]: expire scan should skip dictionaries with lot's of empty buckets (951 ms) [35/129 done]: unit/expire (17 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]: RESTORE can set an arbitrary expire to the materialized key (0 ms) -[ok]: RESTORE can set an expire that overflows a 32 bit integer (0 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 (1 ms) +[ok]: RESTORE can set LRU (2 ms) [ok]: RESTORE can set LFU (1 ms) [ok]: RESTORE returns an error of the key already exists (0 ms) -[ok]: RESTORE can overwrite an existing key with REPLACE (7 ms) +[ok]: RESTORE can overwrite an existing key with REPLACE (2 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 (47 ms) +[ok]: RESTORE should not store key that are already expired, with REPLACE will propagate it as DEL or UNLINK (139 ms) [ok]: RESTORE key with future RDB version, strict version check (1 ms) -[ok]: RESTORE key with future RDB version, relaxed version check (0 ms) -[ok]: DUMP of non existing key returns nil (1 ms) +[ok]: RESTORE key with future RDB version, relaxed version check (1 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 (272 ms) +[ok]: MIGRATE is caching connections (253 ms) [ok]: MIGRATE cached connections are released after some time (15003 ms) === (repl) Starting server on 127.0.0.1:21439 ok -[ok]: MIGRATE is able to migrate a key between two instances (265 ms) +[ok]: MIGRATE is able to migrate a key between two instances (253 ms) === (repl) Starting server on 127.0.0.1:21441 ok -[ok]: MIGRATE is able to copy a key between two instances (251 ms) +[ok]: MIGRATE is able to copy a key between two instances (261 ms) === (repl) Starting server on 127.0.0.1:21443 ok -[ok]: MIGRATE will not overwrite existing keys, unless REPLACE is used (255 ms) +[ok]: MIGRATE will not overwrite existing keys, unless REPLACE is used (250 ms) === (repl) Starting server on 127.0.0.1:21445 ok -[ok]: MIGRATE propagates TTL correctly (264 ms) +[ok]: MIGRATE propagates TTL correctly (250 ms) === (repl) Starting server on 127.0.0.1:21447 ok -[ok]: MIGRATE can correctly transfer large values (7557 ms) +[ok]: MIGRATE can correctly transfer large values (6633 ms) === (repl) Starting server on 127.0.0.1:21449 ok -[ok]: MIGRATE can correctly transfer hashes (269 ms) +[ok]: MIGRATE can correctly transfer hashes (241 ms) === (repl) Starting server on 127.0.0.1:21451 ok -[ok]: MIGRATE timeout actually works (848 ms) +[ok]: MIGRATE timeout actually works (855 ms) === (repl) Starting server on 127.0.0.1:21453 ok -[ok]: MIGRATE can migrate multiple keys at once (268 ms) -[ok]: MIGRATE with multiple keys must have empty key arg (1 ms) +[ok]: MIGRATE can migrate multiple keys at once (230 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 (259 ms) +[ok]: MIGRATE with multiple keys migrate just existing ones (238 ms) === (repl) Starting server on 127.0.0.1:21457 ok -[ok]: MIGRATE with multiple keys: stress command rewriting (268 ms) +[ok]: MIGRATE with multiple keys: stress command rewriting (240 ms) === (repl) Starting server on 127.0.0.1:21459 ok -[ok]: MIGRATE with multiple keys: delete just ack keys (275 ms) +[ok]: MIGRATE with multiple keys: delete just ack keys (249 ms) === (repl) Starting server on 127.0.0.1:21461 ok -[ok]: MIGRATE AUTH: correct and wrong password cases (261 ms) -[36/129 done]: unit/dump (27 seconds) +[ok]: MIGRATE AUTH: correct and wrong password cases (250 ms) +[36/129 done]: unit/dump (25 seconds) Testing unit/commandlog === (commandlog) Starting server on 127.0.0.1:21463 ok [ok]: COMMANDLOG - check that it starts with an empty log (0 ms) -[ok]: COMMANDLOG - only logs commands exceeding the threshold (203 ms) -[ok]: COMMANDLOG - zero max length is correctly handled (25 ms) -[ok]: COMMANDLOG - max entries is correctly handled (22 ms) -[ok]: COMMANDLOG - GET optional argument to limit output len works (8 ms) +[ok]: COMMANDLOG - only logs commands exceeding the threshold (204 ms) +[ok]: COMMANDLOG - zero max length is correctly handled (19 ms) +[ok]: COMMANDLOG - max entries is correctly handled (18 ms) +[ok]: COMMANDLOG - GET optional argument to limit output len works (12 ms) [ok]: COMMANDLOG - RESET subcommand works (2 ms) -[ok]: COMMANDLOG - logged entry sanity check (208 ms) -[ok]: COMMANDLOG slow - Certain commands are omitted that contain sensitive information (3 ms) -[ok]: COMMANDLOG slow - Some commands can redact sensitive fields (9 ms) -[ok]: COMMANDLOG slow - Rewritten commands are logged as their original command (48 ms) -[ok]: COMMANDLOG slow - commands with too many arguments are trimmed (1 ms) +[ok]: COMMANDLOG - logged entry sanity check (203 ms) +[ok]: COMMANDLOG slow - Certain commands are omitted that contain sensitive information (5 ms) +[ok]: COMMANDLOG slow - Some commands can redact sensitive fields (2 ms) +[ok]: COMMANDLOG slow - Rewritten commands are logged as their original command (39 ms) +[ok]: COMMANDLOG slow - commands with too many arguments are trimmed (2 ms) [ok]: COMMANDLOG slow - too long arguments are trimmed (1 ms) -[ok]: COMMANDLOG slow - EXEC is not logged, just executed commands (209 ms) -[ok]: COMMANDLOG slow - can clean older entries (204 ms) -[ok]: COMMANDLOG slow - can be disabled (402 ms) +[ok]: COMMANDLOG slow - EXEC is not logged, just executed commands (203 ms) +[ok]: COMMANDLOG slow - can clean older entries (202 ms) +[ok]: COMMANDLOG slow - can be disabled (403 ms) [ok]: COMMANDLOG slow - count must be >= -1 (1 ms) -[ok]: COMMANDLOG slow - get all slow logs (2 ms) -[ok]: COMMANDLOG slow - blocking command is reported only after unblocked (26 ms) -[ok]: COMMANDLOG slow - the commands in script are recorded normally - is_eval: 0 (1 ms) +[ok]: COMMANDLOG slow - get all slow logs (3 ms) +[ok]: COMMANDLOG slow - blocking command is reported only after unblocked (29 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 (116 ms) -[ok]: client evicted due to large query buf (69 ms) -[ok]: client evicted due to percentage of maxmemory (58 ms) -[ok]: client evicted due to large multi buf (141 ms) -[ok]: client evicted due to watched key list (387 ms) -[ok]: client evicted due to pubsub subscriptions (1379 ms) -[ok]: client evicted due to tracking redirection (111 ms) -[ok]: client evicted due to client tracking prefixes (10761 ms) -[ok]: client evicted due to output buf (24 ms) -[ok]: client no-evict on (51 ms) -[ok]: client no-evict off (65 ms) +[ok]: client evicted due to large argv (140 ms) +[ok]: client evicted due to large query buf (70 ms) +[ok]: client evicted due to percentage of maxmemory (41 ms) +[ok]: client evicted due to large multi buf (222 ms) +[ok]: client evicted due to watched key list (374 ms) +[ok]: client evicted due to pubsub subscriptions (1118 ms) +[ok]: client evicted due to tracking redirection (38 ms) +[ok]: client evicted due to client tracking prefixes (9751 ms) +[ok]: client evicted due to output buf (32 ms) +[ok]: client no-evict on (42 ms) +[ok]: client no-evict off (33 ms) === () Starting server on 127.0.0.1:21467 ok -[ok]: avoid client eviction when client is freed by output buffer limit (228 ms) +[ok]: avoid client eviction when client is freed by output buffer limit (134 ms) === () Starting server on 127.0.0.1:21469 ok -[ok]: decrease maxmemory-clients causes client eviction (371 ms) +[ok]: decrease maxmemory-clients causes client eviction (309 ms) === () Starting server on 127.0.0.1:21471 ok -[ok]: evict clients only until below limit (363 ms) +[ok]: evict clients only until below limit (311 ms) === () Starting server on 127.0.0.1:21473 ok -[ok]: evict clients in right order (large to small) (354 ms) +[ok]: evict clients in right order (large to small) (286 ms) === () Starting server on 127.0.0.1:21475 ok -[ok]: client total memory grows during client no-evict (169 ms) -[ok]: client total memory grows during maxmemory-clients disabled (171 ms) -[38/129 done]: unit/client-eviction (16 seconds) +[ok]: client total memory grows during client no-evict (162 ms) +[ok]: client total memory grows during maxmemory-clients disabled (159 ms) +[38/129 done]: unit/client-eviction (15 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 (6 ms) +[ok]: BITCOUNT against wrong type (2 ms) +[ok]: BITCOUNT returns 0 against non existing key (1 ms) [ok]: BITCOUNT returns 0 with out of range indexes (1 ms) [ok]: BITCOUNT returns 0 with negative indexes where start > end (1 ms) -[ok]: BITCOUNT against test vector #1 (0 ms) +[ok]: BITCOUNT against test vector #1 (1 ms) [ok]: BITCOUNT against test vector #2 (0 ms) [ok]: BITCOUNT against test vector #3 (1 ms) -[ok]: BITCOUNT against test vector #4 (0 ms) -[ok]: BITCOUNT against test vector #5 (0 ms) -[ok]: BITCOUNT fuzzing without start/end (319 ms) -[ok]: BITCOUNT fuzzing with start/end (335 ms) +[ok]: BITCOUNT against test vector #4 (1 ms) +[ok]: BITCOUNT against test vector #5 (1 ms) +[ok]: BITCOUNT fuzzing without start/end (391 ms) +[ok]: BITCOUNT fuzzing with start/end (375 ms) [ok]: BITCOUNT with just start (1 ms) -[ok]: BITCOUNT with start, end (2 ms) -[ok]: BITCOUNT with illegal arguments (1 ms) +[ok]: BITCOUNT with start, end (1 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 (0 ms) -[ok]: BITCOUNT misaligned prefix + full words + remainder (1 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 (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 (0 ms) +[ok]: BITOP AND|OR|XOR don't change the string with single input key (0 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 (198 ms) -[ok]: BITOP or fuzzing (171 ms) -[ok]: BITOP xor fuzzing (107 ms) +[ok]: BITOP and fuzzing (221 ms) +[ok]: BITOP or fuzzing (206 ms) +[ok]: BITOP xor fuzzing (122 ms) [ok]: BITOP NOT fuzzing (23 ms) -[ok]: BITOP with integer encoded source objects (1 ms) +[ok]: BITOP with integer encoded source objects (0 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 (0 ms) -[ok]: BITPOS will illegal arguments (0 ms) -[ok]: BITPOS against non-integer value (0 ms) +[ok]: BITOP with empty string after non empty string (issue #529) (1 ms) +[ok]: BITPOS against wrong type (1 ms) +[ok]: BITPOS will illegal arguments (1 ms) +[ok]: BITPOS against non-integer value (1 ms) [ok]: BITPOS bit=0 with empty key returns 0 (0 ms) -[ok]: BITPOS bit=1 with empty key returns -1 (1 ms) -[ok]: BITPOS bit=0 with string less than 1 word works (0 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=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 (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 (2 ms) -[ok]: BITPOS bit=1 returns -1 if string is all 0 bits (5 ms) -[ok]: BITPOS bit=0 works with intervals (2 ms) +[ok]: BITPOS bit=0 unaligned+full word+reminder (3 ms) +[ok]: BITPOS bit=1 unaligned+full word+reminder (3 ms) +[ok]: BITPOS bit=1 returns -1 if string is all 0 bits (4 ms) +[ok]: BITPOS bit=0 works with intervals (0 ms) [ok]: BITPOS bit=1 works with intervals (1 ms) [ok]: BITPOS bit=0 changes behavior if end is given (1 ms) [ok]: SETBIT/BITFIELD only increase dirty when the value changed (3 ms) -[ok]: BITPOS bit=1 fuzzy testing using SETBIT (254 ms) -[ok]: BITPOS bit=0 fuzzy testing using SETBIT (356 ms) -[ok]: BITPOS/BITCOUNT fuzzy testing using SETBIT (274 ms) +[ok]: BITPOS bit=1 fuzzy testing using SETBIT (354 ms) +[ok]: BITPOS bit=0 fuzzy testing using SETBIT (313 ms) +[ok]: BITPOS/BITCOUNT fuzzy testing using SETBIT (373 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 (4 ms) -[ok]: BITFIELD unsigned SET and GET basics (5 ms) -[ok]: BITFIELD signed SET and GET together (0 ms) -[ok]: BITFIELD unsigned with SET, GET and INCRBY arguments (1 ms) +[ok]: BITFIELD signed SET and GET basics (1 ms) +[ok]: BITFIELD unsigned SET and GET basics (0 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 (0 ms) -[ok]: BITFIELD basic INCRBY form (1 ms) +[ok]: BITFIELD # form (1 ms) +[ok]: BITFIELD basic INCRBY form (0 ms) [ok]: BITFIELD chaining of multiple commands (0 ms) -[ok]: BITFIELD unsigned overflow wrap (1 ms) -[ok]: BITFIELD unsigned overflow sat (5 ms) +[ok]: BITFIELD unsigned overflow wrap (0 ms) +[ok]: BITFIELD unsigned overflow sat (1 ms) [ok]: BITFIELD signed overflow wrap (0 ms) [ok]: BITFIELD signed overflow sat (1 ms) -[ok]: BITFIELD overflow detection fuzzing (417 ms) -[ok]: BITFIELD overflow wrap fuzzing (362 ms) -[ok]: BITFIELD regression for #3221 (0 ms) -[ok]: BITFIELD regression for #3564 (2 ms) +[ok]: BITFIELD overflow detection fuzzing (421 ms) +[ok]: BITFIELD overflow wrap fuzzing (595 ms) +[ok]: BITFIELD regression for #3221 (1 ms) +[ok]: BITFIELD regression for #3564 (4 ms) [ok]: BITFIELD_RO with only key as argument (0 ms) -[ok]: BITFIELD_RO fails when write option is used (1 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 (108 ms) -[ok]: BITFIELD: write on master, read on slave (822 ms) +[ok]: BITFIELD: setup slave (103 ms) +[ok]: BITFIELD: write on master, read on slave (818 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 (0 ms) [40/129 done]: unit/bitfield (3 seconds) @@ -2955,23 +2990,23 @@ [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 (23 ms) +[ok]: AUTH fails when a wrong password is given (18 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]: AUTH succeeds when the right password is given (1 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 (34 ms) -[ok]: For unauthenticated clients output buffer is limited (27 ms) -[ok]: For once authenticated clients output buffer is NOT limited (28 ms) +[ok]: For unauthenticated clients multibulk and bulk length are limited (44 ms) +[ok]: For unauthenticated clients output buffer is limited (26 ms) +[ok]: For once authenticated clients output buffer is NOT limited (29 ms) === (auth_binary_password external:skip) Starting server on 127.0.0.1:21489 ok -[ok]: AUTH fails when binary password is wrong (4 ms) -[ok]: AUTH succeeds when binary password is correct (3 ms) +[ok]: AUTH fails when binary password is wrong (1 ms) +[ok]: AUTH succeeds when binary password is correct (0 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 (941 ms) === (auth_binary_password external:skip) Starting server on 127.0.0.1:21493 ok -[ok]: AUTH fails when binary password is wrong (0 ms) -[ok]: AUTH succeeds when binary password is correct (3 ms) +[ok]: AUTH fails when binary password is wrong (1 ms) +[ok]: AUTH succeeds when binary password is correct (1 ms) === (primaryauth) Starting server on 127.0.0.1:21495 ok -[ok]: primaryauth test with binary password dualchannel = no (961 ms) +[ok]: primaryauth test with binary password dualchannel = no (954 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 @@ -2979,1264 +3014,1271 @@ 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 (7196 ms) +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite during write load: RDB preamble=yes (6572 ms) 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 (6264 ms) +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite during write load: RDB preamble=no (6823 ms) === (aofrw external:skip) Starting server on 127.0.0.1:21499 ok -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: Turning off AOF kills the background writing child if any (111 ms) +Waiting for background AOF rewrite to finish... [ok]: Turning off AOF kills the background writing child if any (59 ms) -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of list with listpack encoding, string data (61 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 (110 ms) Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of list with quicklist encoding, string data (331 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of list with quicklist encoding, string data (307 ms) -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of list with listpack encoding, int data (67 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 (108 ms) -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of list with quicklist encoding, int data (308 ms) +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of list with quicklist encoding, int data (290 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 (115 ms) +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 set with hashtable encoding, string data (324 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 (292 ms) -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of set with intset encoding, int data (60 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 (108 ms) -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of set with hashtable encoding, int data (304 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of set with hashtable encoding, int data (195 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 (115 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of hash with listpack encoding, string data (107 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 (391 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of hash with hashtable encoding, string data (227 ms) Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of hash with listpack encoding, int data (117 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of hash with listpack encoding, int data (109 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 (230 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of hash with hashtable encoding, int data (290 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 zset with listpack encoding, string 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, string data (236 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of zset with skiplist encoding, string data (306 ms) Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of zset with listpack encoding, int data (58 ms) -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of zset with skiplist encoding, int data (327 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of zset with skiplist encoding, int data (201 ms) Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite functions (116 ms) -[ok]: BGREWRITEAOF is delayed if BGSAVE is in progress (232 ms) -[ok]: BGREWRITEAOF is refused if already in progress (36 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite functions (107 ms) +[ok]: BGREWRITEAOF is delayed if BGSAVE is in progress (229 ms) +[ok]: BGREWRITEAOF is refused if already in progress (11 ms) [42/129 done]: unit/aofrw (18 seconds) Testing unit/acl === (acl external:skip) Starting server on 127.0.0.1:21501 ok [ok]: Connections start with the default user (0 ms) -[ok]: It is possible to create new users (0 ms) +[ok]: It is possible to create new users (1 ms) [ok]: Coverage: ACL USERS (0 ms) -[ok]: Usernames can not contain spaces or null characters (0 ms) +[ok]: Usernames can not contain spaces or null characters (1 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 (0 ms) -[ok]: It is possible to remove passwords from the set of valid ones (0 ms) +[ok]: Only the set of correct passwords work (1 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 (1 ms) -[ok]: Test hashed passwords removal (4 ms) -[ok]: By default users are not able to access any command (0 ms) +[ok]: Test password hashes validate input (1 ms) +[ok]: ACL GETUSER returns the password hash instead of the actual password (0 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 (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 (1 ms) -[ok]: By default, only default user is able to subscribe to any channel (19 ms) -[ok]: By default, only default user is able to subscribe to any shard channel (20 ms) -[ok]: By default, only default user is able to subscribe to any pattern (19 ms) -[ok]: It's possible to allow publishing to a subset of channels (0 ms) +[ok]: By default, only default user is able to subscribe to any channel (25 ms) +[ok]: By default, only default user is able to subscribe to any shard channel (25 ms) +[ok]: By default, only default user is able to subscribe to any pattern (29 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]: Validate subset of channels is prefixed with resetchannels flag (1 ms) -[ok]: In transaction queue publish/subscribe/psubscribe to unauthorized channel will fail (8 ms) -[ok]: It's possible to allow subscribing to a subset of channels (24 ms) -[ok]: It's possible to allow subscribing to a subset of shard channels (20 ms) -[ok]: It's possible to allow subscribing to a subset of channel patterns (20 ms) -[ok]: Subscribers are killed when revoked of channel permission (20 ms) -[ok]: Subscribers are killed when revoked of channel permission (20 ms) -[ok]: Subscribers are killed when revoked of pattern permission (19 ms) -[ok]: Subscribers are killed when revoked of allchannels permission (19 ms) -[ok]: Subscribers are pardoned if literal permissions are retained and/or gaining allchannels (20 ms) -[ok]: blocked command gets rejected when reprocessed after permission change (17 ms) +[ok]: In transaction queue publish/subscribe/psubscribe to unauthorized channel will fail (2 ms) +[ok]: It's possible to allow subscribing to a subset of channels (28 ms) +[ok]: It's possible to allow subscribing to a subset of shard channels (22 ms) +[ok]: It's possible to allow subscribing to a subset of channel patterns (23 ms) +[ok]: Subscribers are killed when revoked of channel permission (27 ms) +[ok]: Subscribers are killed when revoked of channel permission (27 ms) +[ok]: Subscribers are killed when revoked of pattern permission (22 ms) +[ok]: Subscribers are killed when revoked of allchannels permission (21 ms) +[ok]: Subscribers are pardoned if literal permissions are retained and/or gaining allchannels (22 ms) +[ok]: blocked command gets rejected when reprocessed after permission change (23 ms) [ok]: Users can be configured to authenticate with any password (1 ms) [ok]: ACLs can exclude single commands (0 ms) [ok]: ACLs can include or exclude whole classes of commands (1 ms) -[ok]: ACLs can include single subcommands (9 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 cannot exclude or include a container command with two args (0 ms) -[ok]: ACLs including of a type includes also subcommands (0 ms) -[ok]: ACLs can block SELECT of all but a specific DB (2 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 (13 ms) -[ok]: ACL SETUSER RESET reverting to default newly created user (1 ms) -[ok]: ACL GETUSER is able to translate back command permissions (1 ms) -[ok]: ACL GETUSER provides reasonable results (29 ms) -[ok]: ACL GETUSER provides correct results (11 ms) -[ok]: ACL CAT with illegal arguments (1 ms) +[ok]: ACLs can include single subcommands (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 (2 ms) +[ok]: ACLs can block SELECT of all but a specific DB (1 ms) +[ok]: ACLs can block all DEBUG subcommands except one (2 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 (6 ms) +[ok]: ACL SETUSER RESET reverting to default newly created user (2 ms) +[ok]: ACL GETUSER is able to translate back command permissions (2 ms) +[ok]: ACL GETUSER provides reasonable results (24 ms) +[ok]: ACL GETUSER provides correct results (8 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 (2 ms) [ok]: ACL requires explicit permission for scripting for EVAL_RO, EVALSHA_RO and FCALL_RO (1 ms) [ok]: ACL #5998 regression: memory leaks adding / removing subcommands (1 ms) -[ok]: ACL LOG aggregates similar errors together and assigns unique entry-id to new errors (13 ms) -[ok]: ACL LOG shows failed command executions at toplevel (1 ms) -[ok]: ACL LOG shows failed subcommand executions at toplevel (2 ms) +[ok]: ACL LOG aggregates similar errors together and assigns unique entry-id to new errors (7 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 (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) (6 ms) -[ok]: ACL LOG can distinguish the transaction context (2) (25 ms) +[ok]: ACL LOG is able to log channel access violations and channel name (2 ms) +[ok]: ACL LOG RESET is able to flush the entries in the log (1 ms) +[ok]: ACL LOG can distinguish the transaction context (1) (2 ms) +[ok]: ACL LOG can distinguish the transaction context (2) (27 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 (4 ms) -[ok]: ACLLOG - zero max length is correctly handled (2 ms) -[ok]: ACL LOG entries are limited to a maximum amount (10 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 (18 ms) +[ok]: ACL LOG can accept a numerical argument to show less entries (3 ms) +[ok]: ACL LOG can log failed auth attempts (2 ms) +[ok]: ACLLOG - zero max length is correctly handled (3 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 (2 ms) +[ok]: When default user is off, new connections are not authenticated (27 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 (6 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 (2 ms) -[ok]: Delete a user that the client is using (0 ms) -[ok]: ACL GENPASS command failed test (22 ms) +[ok]: When an authentication chain is used in the HELLO cmd, the last auth cmd has precedence (2 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 (1 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 (1 ms) +[ok]: ACL GENPASS command failed test (28 ms) [ok]: Default user can not be removed (1 ms) [ok]: ACL load non-existing configured ACL file (0 ms) -[ok]: ACL-Metrics user AUTH failure (9 ms) -[ok]: ACL-Metrics invalid command accesses (3 ms) -[ok]: ACL-Metrics invalid key accesses (12 ms) -[ok]: ACL-Metrics invalid channels accesses (3 ms) +[ok]: ACL-Metrics user AUTH failure (7 ms) +[ok]: ACL-Metrics invalid command accesses (4 ms) +[ok]: ACL-Metrics invalid key accesses (5 ms) +[ok]: ACL-Metrics invalid channels accesses (5 ms) === (external:skip) Starting server on 127.0.0.1:21503 ok -[ok]: default: load from include file, can access any channels (0 ms) -[ok]: default: with config acl-pubsub-default allchannels after reset, can access any channels (6 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 (2 ms) [ok]: default: with config acl-pubsub-default resetchannels after reset, can not access any channels (1 ms) -[ok]: Alice: can execute all command (0 ms) -[ok]: Bob: just execute @set and acl command (3 ms) -[ok]: ACL LOAD only disconnects affected clients (49 ms) -[ok]: ACL LOAD disconnects clients of deleted users (52 ms) -[ok]: ACL load and save (7 ms) -[ok]: ACL load and save with restricted channels (8 ms) +[ok]: Alice: can execute all command (1 ms) +[ok]: Bob: just execute @set and acl command (1 ms) +[ok]: ACL LOAD only disconnects affected clients (87 ms) +[ok]: ACL LOAD disconnects clients of deleted users (96 ms) +[ok]: ACL load and save (2 ms) +[ok]: ACL load and save with restricted channels (2 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]: Update acl-pubsub-default, existing users shouldn't get affected (3 ms) +[ok]: Update acl-pubsub-default, existing users shouldn't get affected (2 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 (0 ms) +[ok]: Only default user has access to all channels irrespective of flag (2 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 (0 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 (2 ms) === (external:skip) Starting server on 127.0.0.1:21513 ok -[ok]: Test loading an ACL file with duplicate users (5 ms) -[ok]: Test loading an ACL file with duplicate default user (11 ms) -[ok]: Test loading duplicate users in config on startup (32 ms) +[ok]: Test loading an ACL file with duplicate users (6 ms) +[ok]: Test loading an ACL file with duplicate default user (6 ms) +[ok]: Test loading duplicate users in config on startup (24 ms) === (acl external:skip) Starting server on 127.0.0.1:21515 ok -[ok]: ACL from config file and config rewrite (228 ms) +[ok]: ACL from config file and config rewrite (202 ms) === () Starting server on 127.0.0.1:21517 ok -[ok]: ACL still denies individual renamed commands (0 ms) -[ok]: ACL command classes aren't affected by command renaming (1 ms) -[ok]: ACL GETUSER provides correct results when commands renamed (7 ms) +[ok]: ACL still denies individual renamed commands (1 ms) +[ok]: ACL command classes aren't affected by command renaming (2 ms) +[ok]: ACL GETUSER provides correct results when commands renamed (6 ms) === (repl external:skip) Starting server on 127.0.0.1:21519 ok -[ok]: Test ACL LOAD works on primary (7 ms) +[ok]: Test ACL LOAD works on primary (4 ms) === () Starting server on 127.0.0.1:21521 ok -[ok]: Test ACL LOAD works on replica (116 ms) +[ok]: Test ACL LOAD works on replica (107 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 (1 ms) +[ok]: Test basic multiple selectors (3 ms) [ok]: Test ACL selectors by default have no permissions (1 ms) -[ok]: Test deleting selectors (0 ms) -[ok]: Test selector syntax error reports the error in the selector context (1 ms) -[ok]: Test flexible selector definition (5 ms) -[ok]: Test separate read permission (1 ms) +[ok]: Test deleting selectors (1 ms) +[ok]: Test selector syntax error reports the error in the selector context (2 ms) +[ok]: Test flexible selector definition (3 ms) +[ok]: Test separate read permission (2 ms) [ok]: Test separate write permission (1 ms) [ok]: Test separate read and write permissions (1 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 (2 ms) -[ok]: Test SET with separate read permission (1 ms) -[ok]: Test SET with separate write permission (8 ms) +[ok]: Validate key permissions format - empty and omitted pattern (2 ms) +[ok]: Test separate read and write permissions on different selectors are not additive (3 ms) +[ok]: Test SET with separate read permission (3 ms) +[ok]: Test SET with separate write permission (2 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 read permission (2 ms) [ok]: Test BITFIELD with separate write permission (2 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 BITFIELD with read and write permissions (2 ms) +[ok]: Test ACL log correctly identifies the relevant item when selectors are used (4 ms) [ok]: Test ACL GETUSER response information (1 ms) -[ok]: Test ACL list idempotency (1 ms) +[ok]: Test ACL list idempotency (2 ms) [ok]: Test R+W is the same as all permissions (1 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 (10 ms) -[ok]: Existence test commands are not marked as access (1 ms) -[ok]: Intersection cardinaltiy commands are access commands (2 ms) -[ok]: Test general keyspace commands require some type of permission to execute (6 ms) -[ok]: Cardinality commands require some type of permission to execute (3 ms) +[ok]: Test various commands for command permissions (1 ms) +[ok]: Test various odd commands for key permissions (7 ms) +[ok]: Existence test commands are not marked as access (2 ms) +[ok]: Intersection cardinaltiy commands are access commands (3 ms) +[ok]: Test general keyspace commands require some type of permission to execute (3 ms) +[ok]: Cardinality commands require some type of permission to execute (4 ms) [ok]: Test sharded channel permissions (1 ms) -[ok]: Test sort with ACL permissions (9 ms) +[ok]: Test sort with ACL permissions (4 ms) [ok]: Test DRYRUN with wrong number of arguments (1 ms) === (external:skip) Starting server on 127.0.0.1:21525 ok -[ok]: Test behavior of loading ACLs (0 ms) +[ok]: Test behavior of loading ACLs (2 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 (0 ms) -[ok]: ZSET basic ZADD and score update - listpack (1 ms) -[ok]: ZSET element can't be set to NaN with ZADD - listpack (1 ms) +[ok]: Check encoding - listpack (1 ms) +[ok]: ZSET basic ZADD and score update - listpack (2 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 (0 ms) -[ok]: ZADD with options syntax error with incomplete pair - listpack (0 ms) -[ok]: ZADD XX option without key - listpack (4 ms) +[ok]: ZADD with options syntax error with incomplete pair - listpack (1 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 (0 ms) +[ok]: ZADD XX returns the number of elements actually added - listpack (1 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 GT updates existing elements when new scores are greater - listpack (2 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 LT XX updates existing elements when new scores are lower and skips new elements - listpack (2 ms) [ok]: ZADD XX and NX are not compatible - listpack (0 ms) -[ok]: ZADD NX with non existing key - listpack (0 ms) -[ok]: ZADD NX only add new elements without updating old ones - listpack (7 ms) +[ok]: ZADD NX with non existing key - listpack (1 ms) +[ok]: ZADD NX only add new elements without updating old ones - listpack (2 ms) [ok]: ZADD GT and NX are not compatible - listpack (0 ms) -[ok]: ZADD LT and NX are not compatible - listpack (1 ms) -[ok]: ZADD LT and GT 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 (1 ms) [ok]: ZADD INCR LT/GT replies with nill if score not updated - listpack (1 ms) -[ok]: ZADD INCR LT/GT with inf - listpack (3 ms) +[ok]: ZADD INCR LT/GT with inf - listpack (4 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 (1 ms) -[ok]: ZINCRBY against invalid incr value - listpack (0 ms) -[ok]: ZADD - Variadic version base case - listpack (1 ms) +[ok]: ZINCRBY against invalid incr value - listpack (1 ms) +[ok]: ZADD - Variadic version base case - listpack (0 ms) [ok]: ZADD - Return value is the number of actually added items - listpack (1 ms) -[ok]: ZADD - Variadic version does not add nothing on single parsing err - listpack (0 ms) +[ok]: ZADD - Variadic version does not add nothing on single parsing err - listpack (1 ms) [ok]: ZADD - Variadic version will raise error on missing arg - listpack (1 ms) [ok]: ZINCRBY does not work variadic even if shares ZADD implementation - listpack (0 ms) -[ok]: ZCARD basics - listpack (0 ms) -[ok]: ZREM removes key after last element is removed - listpack (5 ms) +[ok]: ZCARD basics - listpack (1 ms) +[ok]: ZREM removes key after last element is removed - listpack (2 ms) [ok]: ZREM variadic version - listpack (1 ms) [ok]: ZREM variadic version -- remove elements after key deletion - listpack (1 ms) -[ok]: ZRANGE basics - listpack (6 ms) -[ok]: ZREVRANGE basics - listpack (2 ms) -[ok]: ZRANK/ZREVRANK basics - listpack (6 ms) +[ok]: ZRANGE basics - listpack (4 ms) +[ok]: ZREVRANGE basics - listpack (5 ms) +[ok]: ZRANK/ZREVRANK basics - listpack (4 ms) [ok]: ZRANK - after deletion - listpack (1 ms) [ok]: ZINCRBY - can create a new sorted set - listpack (1 ms) -[ok]: ZINCRBY - increment and decrement - listpack (4 ms) +[ok]: ZINCRBY - increment and decrement - listpack (2 ms) [ok]: ZINCRBY return value - listpack (1 ms) [ok]: ZRANGEBYSCORE/ZREVRANGEBYSCORE/ZCOUNT basics - listpack (9 ms) [ok]: ZRANGEBYSCORE with WITHSCORES - listpack (2 ms) -[ok]: ZRANGEBYSCORE with LIMIT - listpack (13 ms) +[ok]: ZRANGEBYSCORE with LIMIT - listpack (12 ms) [ok]: ZRANGEBYSCORE with LIMIT and WITHSCORES - listpack (2 ms) [ok]: ZRANGEBYSCORE with non-value min or max - listpack (1 ms) -[ok]: ZRANGEBYLEX/ZREVRANGEBYLEX/ZLEXCOUNT basics - listpack (7 ms) -[ok]: ZLEXCOUNT advanced - listpack (7 ms) -[ok]: ZRANGEBYLEX with LIMIT - listpack (9 ms) -[ok]: ZRANGEBYLEX with invalid lex range specifiers - listpack (0 ms) -[ok]: ZREMRANGEBYSCORE basics - listpack (23 ms) +[ok]: ZRANGEBYLEX/ZREVRANGEBYLEX/ZLEXCOUNT basics - listpack (6 ms) +[ok]: ZLEXCOUNT advanced - listpack (4 ms) +[ok]: ZRANGEBYLEX with LIMIT - listpack (12 ms) +[ok]: ZRANGEBYLEX with invalid lex range specifiers - listpack (2 ms) +[ok]: ZREMRANGEBYSCORE basics - listpack (20 ms) [ok]: ZREMRANGEBYSCORE with non-value min or max - listpack (1 ms) -[ok]: ZREMRANGEBYRANK basics - listpack (10 ms) -[ok]: ZREMRANGEBYLEX basics - listpack (24 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 (5 ms) -[ok]: ZUNION/ZINTER/ZINTERCARD/ZDIFF with empty set - listpack (1 ms) -[ok]: ZUNIONSTORE basics - listpack (1 ms) +[ok]: ZREMRANGEBYRANK basics - listpack (13 ms) +[ok]: ZREMRANGEBYLEX basics - listpack (25 ms) +[ok]: ZUNIONSTORE against non-existing key doesn't set destination - listpack (1 ms) +[ok]: ZUNION/ZINTER/ZINTERCARD/ZDIFF against non-existing key - listpack (2 ms) +[ok]: ZUNIONSTORE with empty set - listpack (1 ms) +[ok]: ZUNION/ZINTER/ZINTERCARD/ZDIFF with empty set - listpack (2 ms) +[ok]: ZUNIONSTORE basics - listpack (2 ms) [ok]: ZUNION/ZINTER/ZINTERCARD/ZDIFF with integer members - listpack (2 ms) -[ok]: ZUNIONSTORE with weights - listpack (0 ms) +[ok]: ZUNIONSTORE with weights - listpack (1 ms) [ok]: ZUNION with weights - listpack (1 ms) [ok]: ZUNIONSTORE with a regular set and weights - listpack (1 ms) [ok]: ZUNIONSTORE with AGGREGATE MIN - listpack (1 ms) -[ok]: ZUNION/ZINTER with AGGREGATE MIN - listpack (0 ms) +[ok]: ZUNION/ZINTER with AGGREGATE MIN - listpack (1 ms) [ok]: ZUNIONSTORE with AGGREGATE MAX - listpack (0 ms) [ok]: ZUNION/ZINTER with AGGREGATE MAX - listpack (1 ms) [ok]: ZINTERSTORE basics - listpack (1 ms) [ok]: ZINTER basics - listpack (0 ms) -[ok]: ZINTERCARD with illegal arguments (1 ms) -[ok]: ZINTERCARD basics - listpack (0 ms) -[ok]: ZINTER RESP3 - listpack (2 ms) -[ok]: ZINTERSTORE with weights - listpack (0 ms) -[ok]: ZINTER with weights - listpack (1 ms) +[ok]: ZINTERCARD with illegal arguments (2 ms) +[ok]: ZINTERCARD basics - listpack (1 ms) +[ok]: ZINTER RESP3 - listpack (1 ms) +[ok]: ZINTERSTORE with weights - listpack (1 ms) +[ok]: ZINTER with weights - listpack (0 ms) [ok]: ZINTERSTORE with a regular set and weights - listpack (1 ms) -[ok]: ZINTERSTORE with AGGREGATE MIN - listpack (0 ms) -[ok]: ZINTERSTORE with AGGREGATE MAX - listpack (1 ms) -[ok]: ZUNIONSTORE with +inf/-inf scores - listpack (6 ms) +[ok]: ZINTERSTORE with AGGREGATE MIN - listpack (1 ms) +[ok]: ZINTERSTORE with AGGREGATE MAX - listpack (0 ms) +[ok]: ZUNIONSTORE with +inf/-inf scores - listpack (3 ms) [ok]: ZUNIONSTORE with NaN weights - listpack (1 ms) -[ok]: ZINTERSTORE with +inf/-inf scores - listpack (2 ms) +[ok]: ZINTERSTORE with +inf/-inf scores - listpack (3 ms) [ok]: ZINTERSTORE with NaN weights - listpack (1 ms) [ok]: ZDIFFSTORE basics - listpack (1 ms) -[ok]: ZDIFF basics - listpack (2 ms) +[ok]: ZDIFF basics - listpack (0 ms) [ok]: ZDIFFSTORE with a regular set - listpack (1 ms) [ok]: ZDIFF subtracting set from itself - listpack (1 ms) -[ok]: ZDIFF algorithm 1 - listpack (1 ms) -[ok]: ZDIFF algorithm 2 - listpack (1 ms) -[ok]: ZDIFF fuzzing - listpack (4481 ms) +[ok]: ZDIFF algorithm 1 - listpack (2 ms) +[ok]: ZDIFF algorithm 2 - listpack (2 ms) +[ok]: ZDIFF fuzzing - listpack (5101 ms) [ok]: ZPOPMIN with the count 0 returns an empty array (0 ms) [ok]: ZPOPMIN with negative count (1 ms) [ok]: ZPOPMAX with the count 0 returns an empty array (1 ms) -[ok]: ZPOPMAX with negative count (0 ms) +[ok]: ZPOPMAX with negative count (2 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 (1 ms) -[ok]: ZMPOP_MIN/ZMPOP_MAX with count - listpack (0 ms) +[ok]: ZPOPMIN/ZPOPMAX with count - listpack (2 ms) +[ok]: Basic ZMPOP_MIN/ZMPOP_MAX with a single key - listpack (3 ms) +[ok]: ZMPOP_MIN/ZMPOP_MAX with count - listpack (2 ms) [ok]: BZPOPMIN/BZPOPMAX with a single existing sorted set - listpack (13 ms) -[ok]: BZPOPMIN/BZPOPMAX with multiple existing sorted sets - listpack (13 ms) -[ok]: BZPOPMIN/BZPOPMAX second sorted set has members - listpack (12 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 (12 ms) -[ok]: Basic ZPOPMIN/ZPOPMAX - listpack RESP3 (1 ms) +[ok]: BZPOPMIN/BZPOPMAX with multiple existing sorted sets - listpack (14 ms) +[ok]: BZPOPMIN/BZPOPMAX second sorted set has members - listpack (21 ms) +[ok]: BZMPOP_MIN/BZMPOP_MAX with a single existing sorted set - listpack (21 ms) +[ok]: BZMPOP_MIN/BZMPOP_MAX with multiple existing sorted sets - listpack (22 ms) +[ok]: BZMPOP_MIN/BZMPOP_MAX second sorted set has members - listpack (13 ms) +[ok]: Basic ZPOPMIN/ZPOPMAX - listpack RESP3 (2 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 (1 ms) -[ok]: BZPOPMIN/BZPOPMAX - listpack RESP3 (13 ms) -[ok]: BZMPOP_MIN/BZMPOP_MAX - listpack RESP3 (14 ms) -[ok]: Check encoding - skiplist (1 ms) -[ok]: ZSET basic ZADD and score update - skiplist (0 ms) -[ok]: ZSET element can't be set to NaN with ZADD - skiplist (1 ms) +[ok]: Basic ZMPOP_MIN/ZMPOP_MAX - listpack RESP3 (2 ms) +[ok]: ZMPOP_MIN/ZMPOP_MAX with count - listpack RESP3 (2 ms) +[ok]: BZPOPMIN/BZPOPMAX - listpack RESP3 (17 ms) +[ok]: BZMPOP_MIN/BZMPOP_MAX - listpack RESP3 (17 ms) +[ok]: Check encoding - skiplist (0 ms) +[ok]: ZSET basic ZADD and score update - skiplist (1 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 with options syntax error with incomplete pair - skiplist (1 ms) [ok]: ZADD XX option without key - skiplist (0 ms) -[ok]: ZADD XX existing key - skiplist (1 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 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 (1 ms) -[ok]: ZADD LT updates existing elements when new scores are lower - 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 (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 (1 ms) -[ok]: ZADD NX only add new elements without updating old ones - 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 GT and NX are not compatible - skiplist (0 ms) [ok]: ZADD LT and NX are not compatible - skiplist (0 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 (1 ms) -[ok]: ZADD INCR works like ZINCRBY - skiplist (1 ms) -[ok]: ZADD INCR works with a single score-element pair - skiplist (0 ms) -[ok]: ZADD CH option changes return value to all changed elements - skiplist (1 ms) +[ok]: ZADD LT and GT are not compatible - skiplist (1 ms) +[ok]: ZADD INCR LT/GT replies with nill if score not updated - skiplist (0 ms) +[ok]: ZADD INCR LT/GT with inf - skiplist (2 ms) +[ok]: ZADD INCR works like ZINCRBY - skiplist (0 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]: ZINCRBY calls leading to NaN result in error - skiplist (0 ms) -[ok]: ZINCRBY against invalid incr value - skiplist (0 ms) -[ok]: ZADD - Variadic version base case - skiplist (1 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 (0 ms) [ok]: ZADD - Variadic version does not add nothing on single parsing err - skiplist (1 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]: ZINCRBY does not work variadic even if shares ZADD implementation - skiplist (0 ms) [ok]: ZCARD basics - skiplist (0 ms) [ok]: ZREM removes key after last element is removed - skiplist (1 ms) -[ok]: ZREM variadic version - skiplist (1 ms) +[ok]: ZREM variadic version - skiplist (0 ms) [ok]: ZREM variadic version -- remove elements after key deletion - skiplist (0 ms) -[ok]: ZRANGE basics - skiplist (2 ms) +[ok]: ZRANGE basics - skiplist (1 ms) [ok]: ZREVRANGE basics - skiplist (2 ms) [ok]: ZRANK/ZREVRANK basics - skiplist (2 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]: ZRANK - after deletion - skiplist (0 ms) +[ok]: ZINCRBY - can create a new sorted set - skiplist (1 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/ZREVRANGEBYSCORE/ZCOUNT basics - skiplist (5 ms) [ok]: ZRANGEBYSCORE with WITHSCORES - skiplist (1 ms) -[ok]: ZRANGEBYSCORE with LIMIT - skiplist (5 ms) -[ok]: ZRANGEBYSCORE with LIMIT and WITHSCORES - skiplist (1 ms) +[ok]: ZRANGEBYSCORE with LIMIT - skiplist (6 ms) +[ok]: ZRANGEBYSCORE with LIMIT and WITHSCORES - skiplist (2 ms) [ok]: ZRANGEBYSCORE with non-value min or max - skiplist (0 ms) -[ok]: ZRANGEBYLEX/ZREVRANGEBYLEX/ZLEXCOUNT basics - skiplist (3 ms) +[ok]: ZRANGEBYLEX/ZREVRANGEBYLEX/ZLEXCOUNT basics - skiplist (4 ms) [ok]: ZLEXCOUNT advanced - skiplist (2 ms) -[ok]: ZRANGEBYLEX with LIMIT - skiplist (5 ms) -[ok]: ZRANGEBYLEX with invalid lex range specifiers - skiplist (0 ms) -[ok]: ZREMRANGEBYSCORE basics - skiplist (10 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]: ZRANGEBYLEX with LIMIT - skiplist (6 ms) +[ok]: ZRANGEBYLEX with invalid lex range specifiers - skiplist (1 ms) +[ok]: ZREMRANGEBYSCORE basics - skiplist (16 ms) +[ok]: ZREMRANGEBYSCORE with non-value min or max - skiplist (1 ms) +[ok]: ZREMRANGEBYRANK basics - skiplist (7 ms) +[ok]: ZREMRANGEBYLEX basics - skiplist (19 ms) [ok]: ZUNIONSTORE against non-existing key doesn't set destination - skiplist (0 ms) [ok]: ZUNION/ZINTER/ZINTERCARD/ZDIFF against non-existing key - skiplist (1 ms) -[ok]: ZUNIONSTORE with empty set - skiplist (0 ms) -[ok]: ZUNION/ZINTER/ZINTERCARD/ZDIFF with empty set - skiplist (1 ms) +[ok]: ZUNIONSTORE with empty set - skiplist (1 ms) +[ok]: ZUNION/ZINTER/ZINTERCARD/ZDIFF with empty set - skiplist (2 ms) [ok]: ZUNIONSTORE basics - skiplist (1 ms) -[ok]: ZUNION/ZINTER/ZINTERCARD/ZDIFF with integer members - skiplist (1 ms) +[ok]: ZUNION/ZINTER/ZINTERCARD/ZDIFF with integer members - skiplist (2 ms) [ok]: ZUNIONSTORE with weights - skiplist (1 ms) [ok]: ZUNION with weights - skiplist (0 ms) [ok]: ZUNIONSTORE with a regular set and weights - skiplist (1 ms) -[ok]: ZUNIONSTORE with AGGREGATE MIN - skiplist (0 ms) -[ok]: ZUNION/ZINTER with AGGREGATE MIN - skiplist (1 ms) -[ok]: ZUNIONSTORE with AGGREGATE MAX - skiplist (0 ms) +[ok]: ZUNIONSTORE with AGGREGATE MIN - skiplist (1 ms) +[ok]: ZUNION/ZINTER with AGGREGATE MIN - skiplist (0 ms) +[ok]: ZUNIONSTORE with AGGREGATE MAX - skiplist (1 ms) [ok]: ZUNION/ZINTER with AGGREGATE MAX - skiplist (0 ms) [ok]: ZINTERSTORE basics - skiplist (1 ms) [ok]: ZINTER basics - skiplist (0 ms) [ok]: ZINTERCARD with illegal arguments (1 ms) [ok]: ZINTERCARD basics - skiplist (0 ms) [ok]: ZINTER RESP3 - skiplist (1 ms) -[ok]: ZINTERSTORE with weights - 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 (2 ms) [ok]: ZINTERSTORE with AGGREGATE MIN - skiplist (0 ms) -[ok]: ZINTERSTORE with AGGREGATE MAX - 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 (1 ms) -[ok]: ZINTERSTORE with NaN weights - skiplist (1 ms) -[ok]: ZDIFFSTORE basics - skiplist (0 ms) +[ok]: ZUNIONSTORE with NaN weights - skiplist (1 ms) +[ok]: ZINTERSTORE with +inf/-inf scores - skiplist (3 ms) +[ok]: ZINTERSTORE with NaN weights - skiplist (0 ms) +[ok]: ZDIFFSTORE basics - skiplist (1 ms) [ok]: ZDIFF basics - skiplist (0 ms) [ok]: ZDIFFSTORE with a regular set - skiplist (1 ms) [ok]: ZDIFF subtracting set from itself - skiplist (0 ms) [ok]: ZDIFF algorithm 1 - skiplist (1 ms) -[ok]: ZDIFF algorithm 2 - skiplist (1 ms) -[ok]: ZDIFF fuzzing - skiplist (3503 ms) +[ok]: ZDIFF algorithm 2 - skiplist (2 ms) +[ok]: ZDIFF fuzzing - skiplist (5082 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 (1 ms) -[ok]: ZPOPMAX with negative count (1 ms) -[ok]: Basic ZPOPMIN/ZPOPMAX with a single key - skiplist (1 ms) -[ok]: ZPOPMIN/ZPOPMAX with count - skiplist (0 ms) -[ok]: Basic ZMPOP_MIN/ZMPOP_MAX with a single key - skiplist (1 ms) -[ok]: ZMPOP_MIN/ZMPOP_MAX with count - skiplist (1 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 (13 ms) -[ok]: BZMPOP_MIN/BZMPOP_MAX with multiple existing sorted sets - skiplist (13 ms) -[ok]: BZMPOP_MIN/BZMPOP_MAX second sorted set has members - skiplist (13 ms) -[ok]: Basic ZPOPMIN/ZPOPMAX - skiplist RESP3 (1 ms) +[ok]: ZPOPMAX with the count 0 returns an empty array (0 ms) +[ok]: ZPOPMAX with negative count (0 ms) +[ok]: Basic ZPOPMIN/ZPOPMAX with a single key - skiplist (2 ms) +[ok]: ZPOPMIN/ZPOPMAX with count - skiplist (2 ms) +[ok]: Basic ZMPOP_MIN/ZMPOP_MAX with a single key - skiplist (3 ms) +[ok]: ZMPOP_MIN/ZMPOP_MAX with count - skiplist (2 ms) +[ok]: BZPOPMIN/BZPOPMAX with a single existing sorted set - skiplist (29 ms) +[ok]: BZPOPMIN/BZPOPMAX with multiple existing sorted sets - skiplist (29 ms) +[ok]: BZPOPMIN/BZPOPMAX second sorted set has members - skiplist (29 ms) +[ok]: BZMPOP_MIN/BZMPOP_MAX with a single existing sorted set - skiplist (28 ms) +[ok]: BZMPOP_MIN/BZMPOP_MAX with multiple existing sorted sets - skiplist (29 ms) +[ok]: BZMPOP_MIN/BZMPOP_MAX second sorted set has members - skiplist (20 ms) +[ok]: Basic ZPOPMIN/ZPOPMAX - skiplist RESP3 (2 ms) [ok]: ZPOPMIN/ZPOPMAX with count - skiplist RESP3 (1 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 (13 ms) -[ok]: BZMPOP_MIN/BZMPOP_MAX - skiplist RESP3 (13 ms) -[ok]: ZPOP/ZMPOP against wrong type (1 ms) -[ok]: ZMPOP with illegal argument (2 ms) -[ok]: ZMPOP propagate as pop with count command to replica (119 ms) -[ok]: ZPOPMIN/ZPOPMAX readraw in RESP3 (1 ms) -[ok]: BZPOPMIN/BZPOPMAX readraw in RESP3 (67 ms) -[ok]: ZMPOP readraw in RESP3 (1 ms) -[ok]: BZMPOP readraw in RESP3 (98 ms) +[ok]: BZPOPMIN/BZPOPMAX - skiplist RESP3 (21 ms) +[ok]: BZMPOP_MIN/BZMPOP_MAX - skiplist RESP3 (24 ms) +[ok]: ZPOP/ZMPOP against wrong type (2 ms) +[ok]: ZMPOP with illegal argument (3 ms) +[ok]: ZMPOP propagate as pop with count command to replica (74 ms) +[ok]: ZPOPMIN/ZPOPMAX readraw in RESP3 (2 ms) +[ok]: BZPOPMIN/BZPOPMAX readraw in RESP3 (72 ms) +[ok]: ZMPOP readraw in RESP3 (4 ms) +[ok]: BZMPOP readraw in RESP3 (96 ms) [ok]: ZPOPMIN/ZPOPMAX readraw in RESP2 (2 ms) -[ok]: BZPOPMIN/BZPOPMAX readraw in RESP2 (71 ms) -[ok]: ZMPOP readraw in RESP2 (2 ms) -[ok]: BZMPOP readraw in RESP2 (93 ms) -[ok]: ZINTERSTORE regression with two sets, intset+hashtable (1 ms) +[ok]: BZPOPMIN/BZPOPMAX readraw in RESP2 (84 ms) +[ok]: ZMPOP readraw in RESP2 (4 ms) +[ok]: BZMPOP readraw in RESP2 (96 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 (1 ms) -[ok]: ZUNIONSTORE result is sorted (125 ms) +[ok]: ZUNIONSTORE result is sorted (145 ms) [ok]: ZUNIONSTORE/ZINTERSTORE/ZDIFFSTORE error if using WITHSCORES (1 ms) [ok]: ZMSCORE retrieve (1 ms) -[ok]: ZMSCORE retrieve from empty set (0 ms) +[ok]: ZMSCORE retrieve from empty set (1 ms) [ok]: ZMSCORE retrieve with missing member (0 ms) [ok]: ZMSCORE retrieve single member (1 ms) -[ok]: ZMSCORE retrieve requires one or more members (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 (46 ms) -[ok]: ZMSCORE - listpack (36 ms) -[ok]: ZSCORE after a DEBUG RELOAD - listpack (27 ms) -[ok]: ZSET sorting stresser - listpack (31 ms) -[ok]: ZRANGEBYSCORE fuzzy test, 100 ranges in 128 element sorted set - listpack (2517 ms) -[ok]: ZRANGEBYLEX fuzzy test, 100 ranges in 128 element sorted set - listpack (150 ms) -[ok]: ZREMRANGEBYLEX fuzzy test, 100 ranges in 128 element sorted set - listpack (219 ms) -[ok]: ZSETs skiplist implementation backlink consistency test - listpack (26 ms) -[ok]: ZSETs ZRANK augmented skip list stress testing - listpack (820 ms) -[ok]: BZPOPMIN, ZADD + DEL should not awake blocked client (117 ms) -[ok]: BZPOPMIN, ZADD + DEL + SET should not awake blocked client (23 ms) -[ok]: BZMPOP_MIN, ZADD + DEL should not awake blocked client (25 ms) -[ok]: BZMPOP_MIN, ZADD + DEL + SET should not awake blocked client (24 ms) -Time: 1015 -[ok]: BZPOPMIN unblock but the key is expired and then block again - reprocessing command (1039 ms) -[ok]: BZPOPMIN with same key multiple times should work (37 ms) -[ok]: MULTI/EXEC is isolated from the point of view of BZPOPMIN (44 ms) -[ok]: BZPOPMIN with variadic ZADD (35 ms) -[ok]: BZPOPMIN with zero timeout should block indefinitely (1038 ms) -[ok]: MULTI/EXEC is isolated from the point of view of BZMPOP_MIN (37 ms) -[ok]: BZMPOP_MIN with variadic ZADD (51 ms) -[ok]: BZMPOP_MIN with zero timeout should block indefinitely (1044 ms) -[ok]: ZSCORE - skiplist (61 ms) -[ok]: ZMSCORE - skiplist (67 ms) -[ok]: ZSCORE after a DEBUG RELOAD - skiplist (68 ms) -[ok]: ZSET sorting stresser - skiplist (65 ms) -[ok]: ZRANGEBYSCORE fuzzy test, 100 ranges in 100 element sorted set - skiplist (4138 ms) -[ok]: ZRANGEBYLEX fuzzy test, 100 ranges in 100 element sorted set - skiplist (274 ms) -[ok]: ZREMRANGEBYLEX fuzzy test, 100 ranges in 100 element sorted set - skiplist (419 ms) -[ok]: ZSETs skiplist implementation backlink consistency test - skiplist (41 ms) -[ok]: ZSETs ZRANK augmented skip list stress testing - skiplist (1568 ms) -[ok]: BZPOPMIN, ZADD + DEL should not awake blocked client (13 ms) +[ok]: ZSCORE - listpack (42 ms) +[ok]: ZMSCORE - listpack (35 ms) +[ok]: ZSCORE after a DEBUG RELOAD - listpack (37 ms) +[ok]: ZSET sorting stresser - listpack (35 ms) +[ok]: ZRANGEBYSCORE fuzzy test, 100 ranges in 128 element sorted set - listpack (3474 ms) +[ok]: ZRANGEBYLEX fuzzy test, 100 ranges in 128 element sorted set - listpack (275 ms) +[ok]: ZREMRANGEBYLEX fuzzy test, 100 ranges in 128 element sorted set - listpack (348 ms) +[ok]: ZSETs skiplist implementation backlink consistency test - listpack (43 ms) +[ok]: ZSETs ZRANK augmented skip list stress testing - listpack (1329 ms) +[ok]: BZPOPMIN, ZADD + DEL should not awake blocked client (22 ms) [ok]: BZPOPMIN, ZADD + DEL + SET should not awake blocked client (13 ms) -[ok]: BZMPOP_MIN, ZADD + DEL should not awake blocked client (115 ms) -[ok]: BZMPOP_MIN, ZADD + DEL + SET should not awake blocked client (24 ms) -Time: 1010 -[ok]: BZPOPMIN unblock but the key is expired and then block again - reprocessing command (1036 ms) -[ok]: BZPOPMIN with same key multiple times should work (26 ms) -[ok]: MULTI/EXEC is isolated from the point of view of BZPOPMIN (21 ms) -[ok]: BZPOPMIN with variadic ZADD (27 ms) -[ok]: BZPOPMIN with zero timeout should block indefinitely (1022 ms) -[ok]: MULTI/EXEC is isolated from the point of view of BZMPOP_MIN (25 ms) -[ok]: BZMPOP_MIN with variadic ZADD (128 ms) -[ok]: BZMPOP_MIN with zero timeout should block indefinitely (1026 ms) -[ok]: BZPOP/BZMPOP against wrong type (1 ms) -[ok]: BZMPOP with illegal argument (6 ms) -[ok]: BZMPOP with multiple blocked clients (95 ms) -[ok]: BZMPOP propagate as pop with count command to replica (147 ms) +[ok]: BZMPOP_MIN, ZADD + DEL should not awake blocked client (14 ms) +[ok]: BZMPOP_MIN, ZADD + DEL + SET should not awake blocked client (14 ms) +Time: 1006 +[ok]: BZPOPMIN unblock but the key is expired and then block again - reprocessing command (1028 ms) +[ok]: BZPOPMIN with same key multiple times should work (25 ms) +[ok]: MULTI/EXEC is isolated from the point of view of BZPOPMIN (24 ms) +[ok]: BZPOPMIN with variadic ZADD (23 ms) +[ok]: BZPOPMIN with zero timeout should block indefinitely (1032 ms) +[ok]: MULTI/EXEC is isolated from the point of view of BZMPOP_MIN (31 ms) +[ok]: BZMPOP_MIN with variadic ZADD (32 ms) +[ok]: BZMPOP_MIN with zero timeout should block indefinitely (1037 ms) +[ok]: ZSCORE - skiplist (43 ms) +[ok]: ZMSCORE - skiplist (41 ms) +[ok]: ZSCORE after a DEBUG RELOAD - skiplist (38 ms) +[ok]: ZSET sorting stresser - skiplist (47 ms) +[ok]: ZRANGEBYSCORE fuzzy test, 100 ranges in 100 element sorted set - skiplist (3309 ms) +[ok]: ZRANGEBYLEX fuzzy test, 100 ranges in 100 element sorted set - skiplist (213 ms) +[ok]: ZREMRANGEBYLEX fuzzy test, 100 ranges in 100 element sorted set - skiplist (345 ms) +[ok]: ZSETs skiplist implementation backlink consistency test - skiplist (33 ms) +[ok]: ZSETs ZRANK augmented skip list stress testing - skiplist (969 ms) +[ok]: BZPOPMIN, ZADD + DEL should not awake blocked client (13 ms) +[ok]: BZPOPMIN, ZADD + DEL + SET should not awake blocked client (14 ms) +[ok]: BZMPOP_MIN, ZADD + DEL should not awake blocked client (12 ms) +[ok]: BZMPOP_MIN, ZADD + DEL + SET should not awake blocked client (13 ms) +Time: 1008 +[ok]: BZPOPMIN unblock but the key is expired and then block again - reprocessing command (1020 ms) +[ok]: BZPOPMIN with same key multiple times should work (16 ms) +[ok]: MULTI/EXEC is isolated from the point of view of BZPOPMIN (15 ms) +[ok]: BZPOPMIN with variadic ZADD (16 ms) +[ok]: BZPOPMIN with zero timeout should block indefinitely (1026 ms) +[ok]: MULTI/EXEC is isolated from the point of view of BZMPOP_MIN (31 ms) +[ok]: BZMPOP_MIN with variadic ZADD (30 ms) +[ok]: BZMPOP_MIN with zero timeout should block indefinitely (1034 ms) +[ok]: BZPOP/BZMPOP against wrong type (3 ms) +[ok]: BZMPOP with illegal argument (4 ms) +[ok]: BZMPOP with multiple blocked clients (113 ms) +[ok]: BZMPOP propagate as pop with count command to replica (237 ms) [ok]: BZMPOP should not blocks on non key arguments - #10762 (54 ms) -[ok]: ZSET skiplist order consistency when elements are moved (2257 ms) +[ok]: ZSET skiplist order consistency when elements are moved (1500 ms) [ok]: ZRANGESTORE basic (1 ms) [ok]: ZRANGESTORE RESP3 (1 ms) -[ok]: ZRANGESTORE range (0 ms) +[ok]: ZRANGESTORE range (1 ms) [ok]: ZRANGESTORE BYLEX (1 ms) -[ok]: ZRANGESTORE BYSCORE (4 ms) +[ok]: ZRANGESTORE BYSCORE (1 ms) [ok]: ZRANGESTORE BYSCORE LIMIT (0 ms) -[ok]: ZRANGESTORE BYSCORE REV LIMIT (0 ms) -[ok]: ZRANGE BYSCORE REV LIMIT (1 ms) -[ok]: ZRANGESTORE - src key missing (7 ms) -[ok]: ZRANGESTORE - src key wrong type (0 ms) -[ok]: ZRANGESTORE - empty range (1 ms) -[ok]: ZRANGESTORE BYLEX - empty range (0 ms) +[ok]: ZRANGESTORE BYSCORE REV LIMIT (1 ms) +[ok]: ZRANGE BYSCORE REV LIMIT (0 ms) +[ok]: ZRANGESTORE - src key missing (1 ms) +[ok]: ZRANGESTORE - src key wrong type (1 ms) +[ok]: ZRANGESTORE - empty range (0 ms) +[ok]: ZRANGESTORE BYLEX - empty range (1 ms) [ok]: ZRANGESTORE BYSCORE - empty range (0 ms) -[ok]: ZRANGE BYLEX (1 ms) -[ok]: ZRANGESTORE invalid syntax (10 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]: ZRANGESTORE with zset-max-listpack-entries 1 dst key should use skiplist encoding (1 ms) +[ok]: ZRANGESTORE with zset-max-listpack-entries 1 dst key should use skiplist encoding (2 ms) [ok]: ZRANGE invalid syntax (1 ms) -[ok]: ZRANDMEMBER - listpack (25 ms) +[ok]: ZRANDMEMBER - listpack (16 ms) [ok]: ZRANDMEMBER - skiplist (18 ms) -[ok]: ZRANDMEMBER with RESP3 (0 ms) +[ok]: ZRANDMEMBER with RESP3 (2 ms) [ok]: ZRANDMEMBER count of 0 is handled correctly (0 ms) -[ok]: ZRANDMEMBER with against non existing key (1 ms) -[ok]: ZRANDMEMBER count overflow (0 ms) -[ok]: ZRANDMEMBER count of 0 is handled correctly - emptyarray (0 ms) -[ok]: ZRANDMEMBER with against non existing key - emptyarray (1 ms) -[ok]: ZRANDMEMBER with - skiplist (502 ms) -[ok]: ZRANDMEMBER with - listpack (522 ms) -[ok]: zset score double range (1 ms) -[ok]: zunionInterDiffGenericCommand acts on SET and ZSET (36 ms) -[ok]: ZADD overflows the maximum allowed elements in a listpack - single (19 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 (1 ms) -[45/129 done]: unit/type/zset (31 seconds) +[ok]: ZRANDMEMBER with against non existing key (0 ms) +[ok]: ZRANDMEMBER count overflow (1 ms) +[ok]: ZRANDMEMBER count of 0 is handled correctly - emptyarray (1 ms) +[ok]: ZRANDMEMBER with against non existing key - emptyarray (0 ms) +[ok]: ZRANDMEMBER with - skiplist (301 ms) +[ok]: ZRANDMEMBER with - listpack (201 ms) +[ok]: zset score double range (0 ms) +[ok]: zunionInterDiffGenericCommand acts on SET and ZSET (13 ms) +[ok]: ZADD overflows the maximum allowed elements in a listpack - single (9 ms) +[ok]: ZADD overflows the maximum allowed elements in a listpack - multiple (2 ms) +[ok]: ZADD overflows the maximum allowed elements in a listpack - single_multiple (2 ms) +[45/129 done]: unit/type/zset (32 seconds) Testing unit/type/string === (string) Starting server on 127.0.0.1:21529 ok -[ok]: SET and GET an item (4 ms) -[ok]: SET and GET an empty item (0 ms) -[ok]: Very big payload in GET/SET (80 ms) -[ok]: Very big payload random access (3316 ms) -[ok]: SET 10000 numeric keys and access all them in reverse order (2536 ms) -[ok]: DBSIZE should be 10000 now (1 ms) -[ok]: memoryusage of string (54 ms) +[ok]: SET and GET an item (1 ms) +[ok]: SET and GET an empty item (1 ms) +[ok]: Very big payload in GET/SET (77 ms) +[ok]: Very big payload random access (5658 ms) +[ok]: SET 10000 numeric keys and access all them in reverse order (1643 ms) +[ok]: DBSIZE should be 10000 now (0 ms) +[ok]: memoryusage of string (180 ms) [ok]: SETNX target key missing (0 ms) -[ok]: SETNX target key exists (4 ms) -[ok]: SETNX against not-expired volatile key (0 ms) -[ok]: SETNX against expired volatile key (2868 ms) -[ok]: GETEX EX option (0 ms) +[ok]: SETNX target key exists (0 ms) +[ok]: SETNX against not-expired volatile key (1 ms) +[ok]: SETNX against expired volatile key (3086 ms) +[ok]: GETEX EX option (1 ms) [ok]: GETEX PX option (1 ms) -[ok]: GETEX EXAT option (0 ms) +[ok]: GETEX EXAT option (1 ms) [ok]: GETEX PXAT option (1 ms) -[ok]: GETEX PERSIST option (0 ms) +[ok]: GETEX PERSIST option (1 ms) [ok]: GETEX no option (1 ms) [ok]: GETEX syntax errors (0 ms) -[ok]: GETEX and GET expired key or not exist (3 ms) -[ok]: GETEX no arguments (1 ms) -[ok]: GETDEL command (0 ms) -[ok]: GETDEL propagate as DEL command to replica (153 ms) -[ok]: GETEX without argument does not propagate to replica (105 ms) -[ok]: MGET (0 ms) -[ok]: MGET against non existing key (0 ms) +[ok]: GETEX and GET expired key or not exist (4 ms) +[ok]: GETEX no arguments (0 ms) +[ok]: GETDEL command (1 ms) +[ok]: GETDEL propagate as DEL command to replica (147 ms) +[ok]: GETEX without argument does not propagate to replica (100 ms) +[ok]: MGET (1 ms) +[ok]: MGET against non existing key (1 ms) [ok]: MGET against non-string key (1 ms) -[ok]: GETSET (set new value) (0 ms) -[ok]: GETSET (replace old value) (1 ms) -[ok]: MSET base case (4 ms) -[ok]: MSET/MSETNX wrong number of args (0 ms) +[ok]: GETSET (set new value) (1 ms) +[ok]: GETSET (replace old value) (0 ms) +[ok]: MSET base case (1 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 (0 ms) -[ok]: MSETNX with not existing keys (0 ms) -[ok]: MSETNX with not existing keys - same key twice (1 ms) +[ok]: MSETNX with not existing keys (1 ms) +[ok]: MSETNX with not existing keys - same key twice (0 ms) [ok]: MSETNX with already existing keys - same key twice (0 ms) [ok]: STRLEN against non-existing key (0 ms) -[ok]: STRLEN against integer-encoded value (0 ms) -[ok]: STRLEN against plain string (1 ms) -[ok]: SETBIT against non-existing key (0 ms) -[ok]: SETBIT against string-encoded key (5 ms) -[ok]: SETBIT against integer-encoded key (1 ms) -[ok]: SETBIT against key with wrong type (0 ms) +[ok]: STRLEN against integer-encoded value (1 ms) +[ok]: STRLEN against plain string (0 ms) +[ok]: SETBIT against non-existing key (1 ms) +[ok]: SETBIT against string-encoded key (1 ms) +[ok]: SETBIT against integer-encoded key (2 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 (6 ms) -[ok]: SETBIT fuzzing (979 ms) -[ok]: GETBIT against non-existing key (0 ms) -[ok]: GETBIT against string-encoded key (5 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) -[ok]: SETRANGE against integer-encoded key (6 ms) +[ok]: SETBIT with non-bit argument (1 ms) +[ok]: SETBIT fuzzing (620 ms) +[ok]: GETBIT against non-existing key (1 ms) +[ok]: GETBIT against string-encoded key (1 ms) +[ok]: GETBIT against integer-encoded key (2 ms) +[ok]: SETRANGE against non-existing key (2 ms) +[ok]: SETRANGE against string-encoded key (2 ms) +[ok]: SETRANGE against integer-encoded key (4 ms) [ok]: SETRANGE against key with wrong type (1 ms) -[ok]: SETRANGE with out of range offset (0 ms) -[ok]: GETRANGE against non-existing key (0 ms) +[ok]: SETRANGE with out of range offset (1 ms) +[ok]: GETRANGE against non-existing key (1 ms) [ok]: GETRANGE against wrong key type (0 ms) -[ok]: GETRANGE against string value (9 ms) -[ok]: GETRANGE against integer-encoded value (1 ms) -[ok]: GETRANGE fuzzing (726 ms) -[ok]: Coverage: SUBSTR (1 ms) -[ok]: trim on SET with big value (52 ms) +[ok]: GETRANGE against string value (2 ms) +[ok]: GETRANGE against integer-encoded value (2 ms) +[ok]: GETRANGE fuzzing (1285 ms) +[ok]: Coverage: SUBSTR (0 ms) +[ok]: trim on SET with big value (90 ms) [ok]: Extended SET can detect syntax errors (0 ms) -[ok]: Extended SET NX option (0 ms) -[ok]: Extended SET XX option (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 GET option with no previous value (6 ms) +[ok]: Extended SET GET option with no previous value (0 ms) [ok]: Extended SET GET option with XX (0 ms) [ok]: Extended SET GET option with XX and no previous value (1 ms) [ok]: Extended SET GET option with NX (0 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 (1 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 (0 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 (0 ms) -[ok]: SET with IFEQ conditional - with xx (1 ms) +[ok]: SET with IFEQ conditional - non string current value with get (1 ms) +[ok]: SET with IFEQ conditional - with xx (0 ms) [ok]: SET with IFEQ conditional - with nx (0 ms) -[ok]: Extended SET EX option (0 ms) -[ok]: Extended SET PX option (1 ms) -[ok]: Extended SET EXAT option (6 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 (85 ms) -[ok]: Extended SET using multiple options at once (0 ms) -[ok]: GETRANGE with huge ranges, Github issue #1844 (5 ms) -[ok]: LCS basic (0 ms) +[ok]: SET EXAT / PXAT Expiration time is expired (67 ms) +[ok]: Extended SET using multiple options at once (1 ms) +[ok]: GETRANGE with huge ranges, Github issue #1844 (0 ms) +[ok]: LCS basic (1 ms) [ok]: LCS len (1 ms) -[ok]: LCS indexes (0 ms) +[ok]: LCS indexes (1 ms) [ok]: LCS indexes with match len (1 ms) -[ok]: LCS indexes with match len and minimum match len (0 ms) +[ok]: LCS indexes with match len and minimum match len (1 ms) [ok]: SETRANGE with huge offset (1 ms) -[ok]: APPEND modifies the encoding from int to raw (5 ms) -[ok]: Memory usage of embedded string value (1 ms) -[46/129 done]: unit/type/string (12 seconds) +[ok]: APPEND modifies the encoding from int to raw (1 ms) +[ok]: Memory usage of embedded string value (2 ms) +[46/129 done]: unit/type/string (13 seconds) Testing unit/type/stream === (stream) Starting server on 127.0.0.1:21531 ok -[ok]: XADD wrong number of args (8 ms) -[ok]: XADD can add entries into a stream that XRANGE can fetch (1 ms) -[ok]: XADD IDs are incremental (0 ms) +[ok]: XADD wrong number of args (1 ms) +[ok]: XADD can add entries into a stream that XRANGE can fetch (2 ms) +[ok]: XADD IDs are incremental (1 ms) [ok]: XADD IDs are incremental when ms is the same as well (1 ms) [ok]: XADD IDs correctly report an error when overflowing (1 ms) [ok]: XADD auto-generated sequence is incremented for last ID (0 ms) -[ok]: XADD auto-generated sequence is zero for future timestamp ID (1 ms) -[ok]: XADD auto-generated sequence can't be smaller than last ID (0 ms) -[ok]: XADD auto-generated sequence can't overflow (4 ms) -[ok]: XADD 0-* should succeed (0 ms) -[ok]: XADD with MAXLEN option (280 ms) -[ok]: XADD with MAXLEN option and the '=' argument (270 ms) -[ok]: XADD with MAXLEN option and the '~' argument (93 ms) -[ok]: XADD with NOMKSTREAM option (1 ms) -[ok]: XADD with MINID option (99 ms) -[ok]: XTRIM with MINID option (1 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 (1 ms) +[ok]: XADD 0-* should succeed (1 ms) +[ok]: XADD with MAXLEN option (186 ms) +[ok]: XADD with MAXLEN option and the '=' argument (148 ms) +[ok]: XADD with MAXLEN option and the '~' argument (133 ms) +[ok]: XADD with NOMKSTREAM option (2 ms) +[ok]: XADD with MINID option (171 ms) +[ok]: XTRIM with MINID option (2 ms) [ok]: XTRIM with MINID option, big delta from master record (1 ms) -[ok]: XADD mass insertion and XLEN (1584 ms) +[ok]: XADD mass insertion and XLEN (1944 ms) [ok]: XADD with ID 0-0 (0 ms) -[ok]: XADD with LIMIT delete entries no more than limit (0 ms) +[ok]: XADD with LIMIT delete entries no more than limit (1 ms) [ok]: XRANGE COUNT works as expected (0 ms) [ok]: XREVRANGE COUNT works as expected (1 ms) -[ok]: XRANGE can be used to iterate the whole stream (283 ms) -[ok]: XREVRANGE returns the reverse of XRANGE (1043 ms) +[ok]: XRANGE can be used to iterate the whole stream (281 ms) +[ok]: XREVRANGE returns the reverse of XRANGE (1012 ms) [ok]: XRANGE exclusive ranges (3 ms) -[ok]: XREAD with non empty stream (1 ms) +[ok]: XREAD with non empty stream (0 ms) [ok]: Non blocking XREAD with empty streams (0 ms) -[ok]: XREAD with non empty second stream (1291 ms) -[ok]: Blocking XREAD waiting new data (13 ms) -[ok]: Blocking XREAD waiting old data (12 ms) -[ok]: Blocking XREAD will not reply with an empty array (91 ms) -[ok]: Blocking XREAD for stream that ran dry (issue #5299) (101 ms) -[ok]: XREAD last element from non-empty stream (1 ms) -[ok]: XREAD last element from empty stream (0 ms) -[ok]: XREAD last element blocking from empty stream (27 ms) -[ok]: XREAD last element blocking from non-empty stream (1 ms) -[ok]: XREAD last element from multiple streams (5 ms) -[ok]: XREAD last element with count > 1 (0 ms) +[ok]: XREAD with non empty second stream (1652 ms) +[ok]: Blocking XREAD waiting new data (19 ms) +[ok]: Blocking XREAD waiting old data (19 ms) +[ok]: Blocking XREAD will not reply with an empty array (114 ms) +[ok]: Blocking XREAD for stream that ran dry (issue #5299) (104 ms) +[ok]: XREAD last element from non-empty stream (3 ms) +[ok]: XREAD last element from empty stream (1 ms) +[ok]: XREAD last element blocking from empty stream (20 ms) +[ok]: XREAD last element blocking from non-empty stream (0 ms) +[ok]: XREAD last element from multiple streams (2 ms) +[ok]: XREAD last element with count > 1 (1 ms) [ok]: XREAD: XADD + DEL should not awake client (21 ms) -[ok]: XREAD: XADD + DEL + LPUSH should not awake client (37 ms) -[ok]: XREAD with same stream name multiple times should work (27 ms) -[ok]: XREAD + multiple XADD inside transaction (32 ms) +[ok]: XREAD: XADD + DEL + LPUSH should not awake client (19 ms) +[ok]: XREAD with same stream name multiple times should work (18 ms) +[ok]: XREAD + multiple XADD inside transaction (19 ms) [ok]: XDEL basic test (1 ms) [ok]: XDEL multiply id test (1 ms) -[ok]: XDEL fuzz test (1521 ms) -[ok]: XRANGE fuzzing (6377 ms) -[ok]: XREVRANGE regression test for issue #5006 (1 ms) +[ok]: XDEL fuzz test (2295 ms) +[ok]: XRANGE fuzzing (4597 ms) +[ok]: XREVRANGE regression test for issue #5006 (2 ms) [ok]: XREAD streamID edge (no-blocking) (1 ms) -[ok]: XREAD streamID edge (blocking) (14 ms) -[ok]: XADD streamID edge (1 ms) -[ok]: XTRIM with MAXLEN option basic test (97 ms) -[ok]: XADD with LIMIT consecutive calls (10 ms) -[ok]: XTRIM with ~ is limited (10 ms) -[ok]: XTRIM without ~ is not limited (11 ms) -[ok]: XTRIM without ~ and with LIMIT (10 ms) +[ok]: XREAD streamID edge (blocking) (21 ms) +[ok]: XADD streamID edge (2 ms) +[ok]: XTRIM with MAXLEN option basic test (139 ms) +[ok]: XADD with LIMIT consecutive calls (14 ms) +[ok]: XTRIM with ~ is limited (14 ms) +[ok]: XTRIM without ~ is not limited (14 ms) +[ok]: XTRIM without ~ and with LIMIT (14 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 (37 ms) +[ok]: XADD with MAXLEN > xlen can propagate correctly (19 ms) === (stream needs:debug) Starting server on 127.0.0.1:21535 ok -[ok]: XADD with MINID > lastid can propagate correctly (36 ms) +[ok]: XADD with MINID > lastid can propagate correctly (21 ms) === (stream needs:debug) Starting server on 127.0.0.1:21537 ok -[ok]: XADD with ~ MAXLEN can propagate correctly (31 ms) +[ok]: XADD with ~ MAXLEN can propagate correctly (23 ms) === (stream needs:debug) Starting server on 127.0.0.1:21539 ok -[ok]: XADD with ~ MAXLEN and LIMIT can propagate correctly (35 ms) +[ok]: XADD with ~ MAXLEN and LIMIT can propagate correctly (20 ms) === (stream needs:debug) Starting server on 127.0.0.1:21541 ok -[ok]: XADD with ~ MINID can propagate correctly (22 ms) +[ok]: XADD with ~ MINID can propagate correctly (21 ms) === (stream needs:debug) Starting server on 127.0.0.1:21543 ok -[ok]: XADD with ~ MINID and LIMIT can propagate correctly (21 ms) +[ok]: XADD with ~ MINID and LIMIT can propagate correctly (23 ms) === (stream needs:debug) Starting server on 127.0.0.1:21545 ok -[ok]: XTRIM with ~ MAXLEN can propagate correctly (27 ms) +[ok]: XTRIM with ~ MAXLEN can propagate correctly (22 ms) === (stream) Starting server on 127.0.0.1:21547 ok -[ok]: XADD can CREATE an empty stream (0 ms) +[ok]: XADD can CREATE an empty stream (1 ms) [ok]: XSETID can set a specific ID (1 ms) -[ok]: XSETID cannot SETID with smaller ID (0 ms) -[ok]: XSETID cannot SETID on non-existent key (1 ms) +[ok]: XSETID cannot SETID with smaller ID (2 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 (0 ms) -[ok]: XSETID cannot set the maximal tombstone with larger ID (1 ms) +[ok]: XSETID cannot set the maximal tombstone with larger ID (2 ms) [ok]: XSETID cannot set the offset to less than the length (1 ms) -[ok]: XSETID cannot set smaller ID than current MAXDELETEDID (4 ms) +[ok]: XSETID cannot set smaller ID than current MAXDELETEDID (2 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 (1 ms) -[ok]: XDEL/TRIM are reflected by recorded first entry (2 ms) +[ok]: XADD advances the entries-added counter and sets the recorded-first-entry-id (2 ms) +[ok]: XDEL/TRIM are reflected by recorded first entry (3 ms) [ok]: Maximum XDEL ID behaves correctly (1 ms) -[ok]: XADD with artial ID with maximal seq (4 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... [ok]: Empty stream can be rewrite into AOF correctly (58 ms) +Waiting for background AOF rewrite to finish... [ok]: Empty stream can be rewrite into AOF correctly (56 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 (111 ms) +Waiting for background AOF rewrite to finish... [ok]: Stream can be rewrite into AOF correctly after XDEL lastid (109 ms) === (stream) Starting server on 127.0.0.1:21553 ok -[ok]: XGROUP HELP should not have unexpected options (2 ms) +[ok]: XGROUP HELP should not have unexpected options (0 ms) [ok]: XINFO HELP should not have unexpected options (1 ms) [47/129 done]: unit/type/stream (16 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 (5 ms) +[ok]: XGROUP CREATE: creation and duplicate group name detection (1 ms) [ok]: XGROUP CREATE: with ENTRIESREAD parameter (2 ms) -[ok]: XGROUP CREATE: automatic stream creation fails without MKSTREAM (1 ms) -[ok]: XGROUP CREATE: automatic stream creation works with MKSTREAM (0 ms) -[ok]: XREADGROUP will return only new elements (0 ms) -[ok]: XREADGROUP can read the history of the elements we own (4 ms) -[ok]: XPENDING is able to return pending items (1 ms) -[ok]: XPENDING can return single consumer items (0 ms) +[ok]: XGROUP CREATE: automatic stream creation fails without MKSTREAM (0 ms) +[ok]: XGROUP CREATE: automatic stream creation works with MKSTREAM (1 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 (0 ms) +[ok]: XPENDING can return single consumer items (1 ms) [ok]: XPENDING only group (0 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 (1 ms) -[ok]: XACK can't remove the same item multiple times (0 ms) +[ok]: XPENDING with IDLE (22 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 (1 ms) [ok]: XACK is able to accept multiple arguments (0 ms) -[ok]: XACK should fail if got at least one invalid ID (10 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 (1 ms) -[ok]: Blocking XREADGROUP will not reply with an empty array (43 ms) -[ok]: Blocking XREADGROUP: key deleted (21 ms) -[ok]: Blocking XREADGROUP: key type changed with SET (27 ms) -[ok]: Blocking XREADGROUP: key type changed with transaction (24 ms) -[ok]: Blocking XREADGROUP: flushed DB (13 ms) -[ok]: Blocking XREADGROUP: swapped DB, key doesn't exist (14 ms) -[ok]: Blocking XREADGROUP: swapped DB, key is not a stream (14 ms) +[ok]: XACK should fail if got at least one invalid ID (2 ms) +[ok]: PEL NACK reassignment after XGROUP SETID event (3 ms) +[ok]: XREADGROUP will not report data on empty history. Bug #5577 (3 ms) +[ok]: XREADGROUP history reporting of deleted entries. Bug #5570 (2 ms) +[ok]: Blocking XREADGROUP will not reply with an empty array (55 ms) +[ok]: Blocking XREADGROUP: key deleted (33 ms) +[ok]: Blocking XREADGROUP: key type changed with SET (32 ms) +[ok]: Blocking XREADGROUP: key type changed with transaction (34 ms) +[ok]: Blocking XREADGROUP: flushed DB (33 ms) +[ok]: Blocking XREADGROUP: swapped DB, key doesn't exist (34 ms) +[ok]: Blocking XREADGROUP: swapped DB, key is not a stream (33 ms) [ok]: XREAD and XREADGROUP against wrong parameter (1 ms) -[ok]: Blocking XREAD: key deleted (13 ms) -[ok]: Blocking XREAD: key type changed with SET (13 ms) -[ok]: Blocking XREADGROUP for stream that ran dry (issue #5299) (27 ms) -[ok]: Blocking XREADGROUP will ignore BLOCK if ID is not > (27 ms) -[ok]: Blocking XREADGROUP for stream key that has clients blocked on list (49 ms) -[ok]: Blocking XREADGROUP for stream key that has clients blocked on stream - avoid endless loop (46 ms) -[ok]: Blocking XREADGROUP for stream key that has clients blocked on stream - reprocessing command (1074 ms) -[ok]: XGROUP DESTROY should unblock XREADGROUP with -NOGROUP (28 ms) -[ok]: RENAME can unblock XREADGROUP with data (21 ms) -[ok]: RENAME can unblock XREADGROUP with -NOGROUP (21 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 (208 ms) -[ok]: XAUTOCLAIM can claim PEL items from another consumer (607 ms) -[ok]: XAUTOCLAIM as an iterator (207 ms) +[ok]: Blocking XREAD: key deleted (33 ms) +[ok]: Blocking XREAD: key type changed with SET (26 ms) +[ok]: Blocking XREADGROUP for stream that ran dry (issue #5299) (90 ms) +[ok]: Blocking XREADGROUP will ignore BLOCK if ID is not > (30 ms) +[ok]: Blocking XREADGROUP for stream key that has clients blocked on list (62 ms) +[ok]: Blocking XREADGROUP for stream key that has clients blocked on stream - avoid endless loop (95 ms) +[ok]: Blocking XREADGROUP for stream key that has clients blocked on stream - reprocessing command (1130 ms) +[ok]: XGROUP DESTROY should unblock XREADGROUP with -NOGROUP (35 ms) +[ok]: RENAME can unblock XREADGROUP with data (33 ms) +[ok]: RENAME can unblock XREADGROUP with -NOGROUP (33 ms) +[ok]: XCLAIM can claim PEL items from another consumer (611 ms) +[ok]: XCLAIM without JUSTID increments delivery count (406 ms) +[ok]: XCLAIM same consumer (204 ms) +[ok]: XAUTOCLAIM can claim PEL items from another consumer (608 ms) +[ok]: XAUTOCLAIM as an iterator (206 ms) [ok]: XAUTOCLAIM COUNT must be > 0 (0 ms) -[ok]: XCLAIM with XDEL (1 ms) -[ok]: XCLAIM with trimming (4 ms) -[ok]: XAUTOCLAIM with XDEL (1 ms) -[ok]: XAUTOCLAIM with XDEL and count (6 ms) -[ok]: XAUTOCLAIM with out of range count (1 ms) -[ok]: XCLAIM with trimming (1 ms) -[ok]: XINFO FULL output (6 ms) -[ok]: Consumer seen-time and active-time (212 ms) -[ok]: XGROUP CREATECONSUMER: create consumer if does not exist (2 ms) +[ok]: XCLAIM with XDEL (2 ms) +[ok]: XCLAIM with trimming (2 ms) +[ok]: XAUTOCLAIM with XDEL (3 ms) +[ok]: XAUTOCLAIM with XDEL and count (3 ms) +[ok]: XAUTOCLAIM with out of range count (0 ms) +[ok]: XCLAIM with trimming (3 ms) +[ok]: XINFO FULL output (8 ms) +[ok]: Consumer seen-time and active-time (209 ms) +[ok]: XGROUP CREATECONSUMER: create consumer if does not exist (3 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 (22 ms) +[ok]: XREADGROUP with NOACK creates consumer (31 ms) -Waiting for background AOF rewrite to finish... [ok]: Consumer without PEL is present in AOF after AOFRW (82 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 (135 ms) [ok]: Consumer group read counter and lag in empty streams (1 ms) -[ok]: Consumer group read counter and lag sanity (6 ms) -[ok]: Consumer group lag with XDELs (19 ms) -[ok]: Consumer group lag with XTRIM (13 ms) -[ok]: Consumer group lag with XADD trimming (11 ms) +[ok]: Consumer group read counter and lag sanity (8 ms) +[ok]: Consumer group lag with XDELs (7 ms) +[ok]: Consumer group lag with XTRIM (8 ms) +[ok]: Consumer group lag with XADD trimming (8 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 (1 ms) === (external:skip) Starting server on 127.0.0.1:21559 ok -[ok]: Consumer group last ID propagation to slave (NOACK=0) (216 ms) -[ok]: Consumer group last ID propagation to slave (NOACK=1) (727 ms) +[ok]: Consumer group last ID propagation to slave (NOACK=0) (923 ms) +[ok]: Consumer group last ID propagation to slave (NOACK=1) (1027 ms) === (external:skip) Starting server on 127.0.0.1:21561 ok -[ok]: Replication tests of XCLAIM with deleted entries (autoclaim=0) (931 ms) -[ok]: Replication tests of XCLAIM with deleted entries (autoclaim=1) (109 ms) -[ok]: XREADGROUP ACK would propagate entries-read (3 ms) +[ok]: Replication tests of XCLAIM with deleted entries (autoclaim=0) (925 ms) +[ok]: Replication tests of XCLAIM with deleted entries (autoclaim=1) (7 ms) +[ok]: XREADGROUP ACK would propagate entries-read (6 ms) === (stream needs:debug) Starting server on 127.0.0.1:21563 ok -Waiting for background AOF rewrite to finish... [ok]: Empty stream with no lastid can be rewrite into AOF correctly (59 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 (56 ms) +[48/129 done]: unit/type/stream-cgroups (9 seconds) Testing unit/type/set === (set) Starting server on 127.0.0.1:21565 ok -[ok]: SADD, SCARD, SISMEMBER, SMISMEMBER, SMEMBERS basics - listpack (2 ms) -[ok]: SADD, SCARD, SISMEMBER, SMISMEMBER, SMEMBERS basics - hashtable (28 ms) +[ok]: SADD, SCARD, SISMEMBER, SMISMEMBER, SMEMBERS basics - listpack (3 ms) +[ok]: SADD, SCARD, SISMEMBER, SMISMEMBER, SMEMBERS basics - hashtable (26 ms) [ok]: SADD, SCARD, SISMEMBER, SMISMEMBER, SMEMBERS basics - intset (2 ms) -[ok]: SMISMEMBER SMEMBERS SCARD against non set (1 ms) -[ok]: SMISMEMBER SMEMBERS SCARD against non existing key (5 ms) +[ok]: SMISMEMBER SMEMBERS SCARD against non set (0 ms) +[ok]: SMISMEMBER SMEMBERS SCARD against non existing key (1 ms) [ok]: SMISMEMBER requires one or more members (1 ms) -[ok]: SADD against non set (1 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 (22 ms) +[ok]: SADD a non-integer against a large intset (18 ms) [ok]: SADD an integer larger than 64 bits (1 ms) -[ok]: SADD an integer larger than 64 bits to a large intset (22 ms) -[ok]: SADD overflows the maximum allowed integers in an intset - single (87 ms) +[ok]: SADD an integer larger than 64 bits to a large intset (21 ms) +[ok]: SADD overflows the maximum allowed integers in an intset - single (82 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 (50 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]: SADD overflows the maximum allowed integers in an intset - multiple (48 ms) +[ok]: SADD overflows the maximum allowed elements in a listpack - multiple (2 ms) +[ok]: SADD overflows the maximum allowed integers in an intset - single_multiple (49 ms) +[ok]: SADD overflows the maximum allowed elements in a listpack - single_multiple (2 ms) [ok]: Variadic SADD (1 ms) -[ok]: Set encoding after DEBUG RELOAD (274 ms) -[ok]: SREM basics - $type (1 ms) -[ok]: SREM basics - $type (25 ms) +[ok]: Set encoding after DEBUG RELOAD (273 ms) +[ok]: SREM basics - $type (2 ms) +[ok]: SREM basics - $type (23 ms) [ok]: SREM basics - intset (1 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]: SREM variadic version with more args needed to destroy the key (0 ms) +[ok]: SINTERCARD with illegal arguments (2 ms) +[ok]: SINTERCARD against non-set should throw error (2 ms) [ok]: SINTERCARD against non-existing key (0 ms) [ok]: Generated sets must be encoded correctly - regular (1 ms) [ok]: SINTER with two sets - regular (0 ms) -[ok]: SINTERCARD with two sets - regular (1 ms) -[ok]: SINTERSTORE with two sets - regular (1 ms) -[ok]: SINTERSTORE with two sets, after a DEBUG RELOAD - regular (2 ms) -[ok]: SUNION with two sets - regular (11 ms) -[ok]: SUNIONSTORE with two sets - regular (9 ms) +[ok]: SINTERCARD with two sets - regular (2 ms) +[ok]: SINTERSTORE with two sets - regular (0 ms) +[ok]: SINTERSTORE with two sets, after a DEBUG RELOAD - regular (4 ms) +[ok]: SUNION with two sets - regular (9 ms) +[ok]: SUNIONSTORE with two sets - regular (10 ms) [ok]: SINTER against three sets - regular (1 ms) -[ok]: SINTERCARD against three sets - regular (0 ms) -[ok]: SINTERSTORE with three sets - regular (1 ms) -[ok]: SUNION with non existing keys - regular (10 ms) +[ok]: SINTERCARD against three sets - regular (1 ms) +[ok]: SINTERSTORE with three sets - regular (0 ms) +[ok]: SUNION with non existing keys - regular (14 ms) [ok]: SDIFF with two sets - regular (0 ms) -[ok]: SDIFF with three sets - regular (0 ms) -[ok]: SDIFFSTORE with three sets - regular (3 ms) -[ok]: SINTER/SUNION/SDIFF with three same sets - regular (9 ms) -[ok]: Generated sets must be encoded correctly - intset (0 ms) -[ok]: SINTER with two sets - intset (1 ms) -[ok]: SINTERCARD with two sets - intset (0 ms) +[ok]: SDIFF with three sets - regular (1 ms) +[ok]: SDIFFSTORE with three sets - regular (0 ms) +[ok]: SINTER/SUNION/SDIFF with three same sets - regular (11 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 (1 ms) [ok]: SINTERSTORE with two sets - intset (0 ms) [ok]: SINTERSTORE with two sets, after a DEBUG RELOAD - intset (2 ms) -[ok]: SUNION with two sets - intset (5 ms) -[ok]: SUNIONSTORE with two sets - intset (6 ms) +[ok]: SUNION with two sets - intset (11 ms) +[ok]: SUNIONSTORE with two sets - intset (10 ms) [ok]: SINTER against three sets - intset (0 ms) -[ok]: SINTERCARD 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 (5 ms) +[ok]: SUNION with non existing keys - intset (9 ms) [ok]: SDIFF with two sets - intset (0 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 (4 ms) -[ok]: SINTERSTORE with two listpack sets where result is intset (1 ms) -[ok]: SINTERSTORE with two hashtable sets where result is intset (23 ms) -[ok]: SUNION hashtable and listpack (2 ms) +[ok]: SINTER/SUNION/SDIFF with three same sets - intset (7 ms) +[ok]: SINTERSTORE with two listpack sets where result is intset (2 ms) +[ok]: SINTERSTORE with two hashtable sets where result is intset (38 ms) +[ok]: SUNION hashtable and listpack (3 ms) [ok]: SDIFF with first set empty (0 ms) -[ok]: SDIFF with same set two times (0 ms) -[ok]: SDIFF fuzzing (3555 ms) +[ok]: SDIFF with same set two times (1 ms) +[ok]: SDIFF fuzzing (4850 ms) [ok]: SDIFF against non-set should throw error (1 ms) [ok]: SDIFF should handle non existing key as empty (0 ms) -[ok]: SDIFFSTORE against non-set should throw error (2 ms) +[ok]: SDIFFSTORE against non-set should throw error (3 ms) [ok]: SDIFFSTORE should handle non existing key as empty (2 ms) [ok]: SINTER against non-set should throw error (0 ms) -[ok]: SINTER should handle non existing key as empty (1 ms) +[ok]: SINTER should handle non existing key as empty (0 ms) [ok]: SINTER with same integer elements but different encoding (1 ms) -[ok]: SINTERSTORE against non-set should throw error (1 ms) -[ok]: SINTERSTORE against non existing keys should delete dstkey (2 ms) -[ok]: SUNION against non-set should throw error (0 ms) +[ok]: SINTERSTORE against non-set should throw error (3 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 (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 (0 ms) +[ok]: SUNIONSTORE against non-set should throw error (1 ms) +[ok]: SUNIONSTORE should handle non existing key as empty (5 ms) +[ok]: SUNIONSTORE against non existing keys should delete dstkey (1 ms) [ok]: SPOP basics - listpack (1 ms) [ok]: SPOP with =1 - listpack (1 ms) -[ok]: SRANDMEMBER - listpack (9 ms) -[ok]: SPOP basics - intset (0 ms) +[ok]: SRANDMEMBER - listpack (11 ms) +[ok]: SPOP basics - intset (1 ms) [ok]: SPOP with =1 - intset (1 ms) -[ok]: SRANDMEMBER - intset (8 ms) +[ok]: SRANDMEMBER - intset (32 ms) [ok]: SPOP integer from listpack set (2 ms) -[ok]: SPOP with - listpack (3 ms) -[ok]: SPOP with - intset (3 ms) +[ok]: SPOP with - listpack (8 ms) +[ok]: SPOP with - intset (6 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 (1 ms) +[ok]: SPOP using integers with Knuth's algorithm (0 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 (3 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 (58 ms) -[ok]: SRANDMEMBER count of 0 is handled correctly (1 ms) -[ok]: SRANDMEMBER with against non existing key (0 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 (6 ms) +[ok]: SPOP new implementation: code path #2 listpack (3 ms) +[ok]: SPOP new implementation: code path #3 listpack (2 ms) +[ok]: SPOP new implementation: code path #1 propagate as DEL or UNLINK (105 ms) +[ok]: SRANDMEMBER count of 0 is handled correctly (0 ms) +[ok]: SRANDMEMBER with against non existing key (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 (33 ms) -[ok]: SRANDMEMBER with - intset (36 ms) -[ok]: SRANDMEMBER with - hashtable (47 ms) -[ok]: SRANDMEMBER histogram distribution - listpack (151 ms) -[ok]: SRANDMEMBER histogram distribution - intset (155 ms) -[ok]: SRANDMEMBER histogram distribution - hashtable (156 ms) -[ok]: SMOVE basics - from regular set to intset (6 ms) +[ok]: SRANDMEMBER with - listpack (40 ms) +[ok]: SRANDMEMBER with - intset (35 ms) +[ok]: SRANDMEMBER with - hashtable (28 ms) +[ok]: SRANDMEMBER histogram distribution - listpack (86 ms) +[ok]: SRANDMEMBER histogram distribution - intset (68 ms) +[ok]: SRANDMEMBER histogram distribution - hashtable (69 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 (4 ms) +[ok]: SMOVE non existing key (1 ms) [ok]: SMOVE non existing src set (1 ms) -[ok]: SMOVE from regular set to non existing destination set (6 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 wrong src key type (0 ms) [ok]: SMOVE wrong dst key type (0 ms) [ok]: SMOVE with identical source and destination (1 ms) -[ok]: SMOVE only notify dstset when the addition is successful (25 ms) -[ok]: intsets implementation stress testing (2305 ms) +[ok]: SMOVE only notify dstset when the addition is successful (13 ms) +[ok]: intsets implementation stress testing (2029 ms) [ignore]: large memory flag not provided -[49/129 done]: unit/type/set (8 seconds) +[49/129 done]: unit/type/set (9 seconds) Testing unit/type/list === () Starting server on 127.0.0.1:21567 ok -[ok]: packed node check compression with insert and pop (2 ms) -[ok]: packed node check compression combined with trim (1 ms) -[ok]: packed node check compression with lset (0 ms) -[ok]: plain node check compression with insert and pop (372 ms) +[ok]: packed node check compression with insert and pop (3 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 (353 ms) [ok]: plain node check compression combined with trim (141 ms) -[ok]: plain node check compression with lset (184 ms) +[ok]: plain node check compression with lset (179 ms) === () Starting server on 127.0.0.1:21569 ok -[ok]: Test LPUSH and LPOP on plain nodes (3 ms) -[ok]: Test LINDEX and LINSERT on plain nodes (5 ms) +[ok]: Test LPUSH and LPOP on plain nodes (4 ms) +[ok]: Test LINDEX and LINSERT on plain nodes (2 ms) [ok]: Test LTRIM on plain nodes (1 ms) -[ok]: Test LREM on plain nodes (7 ms) -[ok]: Test LPOS on plain nodes (1 ms) -[ok]: Test LMOVE on plain nodes (2 ms) -[ok]: Test LSET with packed / plain combinations (189 ms) -[ok]: Test LSET with packed is split in the middle (8 ms) -[ok]: Test LSET with packed consist only one item (192 ms) +[ok]: Test LREM on plain nodes (2 ms) +[ok]: Test LPOS on plain nodes (2 ms) +[ok]: Test LMOVE on plain nodes (3 ms) +[ok]: Test LSET with packed / plain combinations (181 ms) +[ok]: Test LSET with packed is split in the middle (4 ms) +[ok]: Test LSET with packed consist only one item (180 ms) [ok]: Crash due to delete entry from a compress quicklist node (2 ms) -[ok]: Crash due to split quicklist node wrongly (6 ms) -[ok]: Test LPUSH and LPOP on plain nodes (2 ms) +[ok]: Crash due to split quicklist node wrongly (2 ms) +[ok]: Test LPUSH and LPOP on plain nodes (4 ms) [ok]: Test LINDEX and LINSERT on plain nodes (2 ms) -[ok]: Test LTRIM on plain nodes (1 ms) -[ok]: Test LREM on plain nodes (3 ms) -[ok]: Test LPOS on plain nodes (4 ms) -[ok]: Test LMOVE on plain nodes (1 ms) -[ok]: Test LSET with packed / plain combinations (179 ms) -[ok]: Test LSET with packed is split in the middle (2 ms) -[ok]: Test LSET with packed consist only one item (186 ms) +[ok]: Test LTRIM on plain nodes (2 ms) +[ok]: Test LREM on plain nodes (2 ms) +[ok]: Test LPOS on plain nodes (1 ms) +[ok]: Test LMOVE on plain nodes (4 ms) +[ok]: Test LSET with packed / plain combinations (178 ms) +[ok]: Test LSET with packed is split in the middle (4 ms) +[ok]: Test LSET with packed consist only one item (188 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 (49 ms) -[ok]: LPOS RANK (positive, negative and zero rank) option (1 ms) +[ok]: LPOS basic usage - quicklist (43 ms) +[ok]: LPOS RANK (positive, negative and zero rank) option (2 ms) [ok]: LPOS COUNT option (1 ms) -[ok]: LPOS COUNT + RANK option (0 ms) +[ok]: LPOS COUNT + RANK option (1 ms) [ok]: LPOS non existing key (0 ms) -[ok]: LPOS no match (1 ms) -[ok]: LPOS MAXLEN (5 ms) +[ok]: LPOS no match (0 ms) +[ok]: LPOS MAXLEN (2 ms) [ok]: LPOS when RANK is greater than matches (0 ms) -[ok]: LPUSH, RPUSH, LLENGTH, LINDEX, LPOP - quicklist (89 ms) +[ok]: LPUSH, RPUSH, LLENGTH, LINDEX, LPOP - quicklist (90 ms) [ok]: LPOP/RPOP with wrong number of arguments (0 ms) -[ok]: RPOP/LPOP with the optional count argument - quicklist (43 ms) -[ok]: LPOS basic usage - listpack (0 ms) -[ok]: LPOS RANK (positive, negative and zero rank) option (1 ms) +[ok]: RPOP/LPOP with the optional count argument - quicklist (42 ms) +[ok]: LPOS basic usage - listpack (1 ms) +[ok]: LPOS RANK (positive, negative and zero rank) option (2 ms) [ok]: LPOS COUNT option (1 ms) -[ok]: LPOS COUNT + RANK option (0 ms) +[ok]: LPOS COUNT + RANK option (1 ms) [ok]: LPOS non existing key (0 ms) -[ok]: LPOS no match (5 ms) -[ok]: LPOS MAXLEN (0 ms) +[ok]: LPOS no match (1 ms) +[ok]: LPOS MAXLEN (1 ms) [ok]: LPOS when RANK is greater than matches (1 ms) -[ok]: LPUSH, RPUSH, LLENGTH, LINDEX, LPOP - listpack (2 ms) -[ok]: LPOP/RPOP with wrong number of arguments (5 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 (0 ms) +[ok]: LPUSH, RPUSH, LLENGTH, LINDEX, LPOP - listpack (4 ms) +[ok]: LPOP/RPOP with wrong number of arguments (1 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 (1 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 (4 ms) +[ok]: LPOP/RPOP with against non existing key in RESP2 (1 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 (112 ms) -[ok]: BLPOP: second list has an entry - quicklist (72 ms) -[ok]: BLMPOP_LEFT: single existing list - quicklist (66 ms) -[ok]: BLMPOP_LEFT: multiple existing lists - quicklist (108 ms) -[ok]: BLMPOP_LEFT: second list has an entry - quicklist (65 ms) -[ok]: BRPOPLPUSH - quicklist (73 ms) -[ok]: BLMOVE left left - quicklist (68 ms) -[ok]: BLMOVE left right - quicklist (67 ms) -[ok]: BLMOVE right left - quicklist (72 ms) -[ok]: BLMOVE right right - quicklist (67 ms) -[ok]: BLPOP: single existing list - listpack (25 ms) -[ok]: BLPOP: multiple existing lists - listpack (29 ms) -[ok]: BLPOP: second list has an entry - listpack (28 ms) +[ok]: DEL a list (1 ms) +[ok]: BLPOP: single existing list - quicklist (77 ms) +[ok]: BLPOP: multiple existing lists - quicklist (120 ms) +[ok]: BLPOP: second list has an entry - quicklist (75 ms) +[ok]: BLMPOP_LEFT: single existing list - quicklist (77 ms) +[ok]: BLMPOP_LEFT: multiple existing lists - quicklist (124 ms) +[ok]: BLMPOP_LEFT: second list has an entry - quicklist (75 ms) +[ok]: BRPOPLPUSH - quicklist (76 ms) +[ok]: BLMOVE left left - quicklist (75 ms) +[ok]: BLMOVE left right - quicklist (75 ms) +[ok]: BLMOVE right left - quicklist (75 ms) +[ok]: BLMOVE right right - quicklist (79 ms) +[ok]: BLPOP: single existing list - listpack (27 ms) +[ok]: BLPOP: multiple existing lists - listpack (32 ms) +[ok]: BLPOP: second list has an entry - listpack (30 ms) [ok]: BLMPOP_LEFT: single existing list - listpack (33 ms) -[ok]: BLMPOP_LEFT: multiple existing lists - listpack (27 ms) -[ok]: BLMPOP_LEFT: second list has an entry - listpack (19 ms) -[ok]: BRPOPLPUSH - listpack (13 ms) -[ok]: BLMOVE left left - listpack (14 ms) -[ok]: BLMOVE left right - listpack (14 ms) -[ok]: BLMOVE right left - listpack (13 ms) -[ok]: BLMOVE right right - listpack (14 ms) -[ok]: BLPOP, LPUSH + DEL should not awake blocked client (124 ms) -[ok]: BLPOP, LPUSH + DEL + SET should not awake blocked client (26 ms) -[ok]: BLMPOP_LEFT, LPUSH + DEL should not awake blocked client (29 ms) -[ok]: BLMPOP_LEFT, LPUSH + DEL + SET should not awake blocked client (24 ms) -[ok]: BLPOP with same key multiple times should work (issue #801) (27 ms) -[ok]: MULTI/EXEC is isolated from the point of view of BLPOP (26 ms) -[ok]: BLPOP with variadic LPUSH (23 ms) -[ok]: MULTI/EXEC is isolated from the point of view of BLMPOP_LEFT (24 ms) -[ok]: BLMPOP_LEFT with variadic LPUSH (128 ms) -[ok]: BRPOPLPUSH with zero timeout should block indefinitely (29 ms) -[ok]: BLMOVE left left with zero timeout should block indefinitely (25 ms) -[ok]: BLMOVE left right with zero timeout should block indefinitely (24 ms) -[ok]: BLMOVE right left with zero timeout should block indefinitely (24 ms) -[ok]: BLMOVE right right with zero timeout should block indefinitely (21 ms) -[ok]: BLMOVE (left, left) with a client BLPOPing the target list (48 ms) -[ok]: BLMOVE (left, right) with a client BLPOPing the target list (42 ms) -[ok]: BLMOVE (right, left) with a client BLPOPing the target list (26 ms) -[ok]: BLMOVE (right, right) with a client BLPOPing the target list (49 ms) -[ok]: BRPOPLPUSH with wrong source type (24 ms) -[ok]: BRPOPLPUSH with wrong destination type (49 ms) -[ok]: BRPOPLPUSH maintains order of elements after failure (21 ms) -[ok]: BRPOPLPUSH with multiple blocked clients (49 ms) -[ok]: BLMPOP with multiple blocked clients (95 ms) -[ok]: Linked LMOVEs (47 ms) -[ok]: Circular BRPOPLPUSH (48 ms) -[ok]: Self-referential BRPOPLPUSH (24 ms) -[ok]: BRPOPLPUSH inside a transaction (1 ms) -[ok]: PUSH resulting from BRPOPLPUSH affect WATCH (146 ms) -[ok]: BRPOPLPUSH does not affect WATCH while still blocked (32 ms) -[ok]: BRPOPLPUSH timeout (1035 ms) -[ok]: SWAPDB awakes blocked client (21 ms) +[ok]: BLMPOP_LEFT: multiple existing lists - listpack (32 ms) +[ok]: BLMPOP_LEFT: second list has an entry - listpack (30 ms) +[ok]: BRPOPLPUSH - listpack (32 ms) +[ok]: BLMOVE left left - listpack (33 ms) +[ok]: BLMOVE left right - listpack (35 ms) +[ok]: BLMOVE right left - listpack (34 ms) +[ok]: BLMOVE right right - listpack (32 ms) +[ok]: BLPOP, LPUSH + DEL should not awake blocked client (26 ms) +[ok]: BLPOP, LPUSH + DEL + SET should not awake blocked client (25 ms) +[ok]: BLMPOP_LEFT, LPUSH + DEL should not awake blocked client (23 ms) +[ok]: BLMPOP_LEFT, LPUSH + DEL + SET should not awake blocked client (31 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 (22 ms) +[ok]: BLPOP with variadic LPUSH (22 ms) +[ok]: MULTI/EXEC is isolated from the point of view of BLMPOP_LEFT (22 ms) +[ok]: BLMPOP_LEFT with variadic LPUSH (25 ms) +[ok]: BRPOPLPUSH with zero timeout should block indefinitely (22 ms) +[ok]: BLMOVE left left with zero timeout should block indefinitely (31 ms) +[ok]: BLMOVE left right with zero timeout should block indefinitely (32 ms) +[ok]: BLMOVE right left with zero timeout should block indefinitely (33 ms) +[ok]: BLMOVE right right with zero timeout should block indefinitely (33 ms) +[ok]: BLMOVE (left, left) with a client BLPOPing the target list (63 ms) +[ok]: BLMOVE (left, right) with a client BLPOPing the target list (64 ms) +[ok]: BLMOVE (right, left) with a client BLPOPing the target list (63 ms) +[ok]: BLMOVE (right, right) with a client BLPOPing the target list (64 ms) +[ok]: BRPOPLPUSH with wrong source type (31 ms) +[ok]: BRPOPLPUSH with wrong destination type (63 ms) +[ok]: BRPOPLPUSH maintains order of elements after failure (32 ms) +[ok]: BRPOPLPUSH with multiple blocked clients (64 ms) +[ok]: BLMPOP with multiple blocked clients (127 ms) +[ok]: Linked LMOVEs (64 ms) +[ok]: Circular BRPOPLPUSH (63 ms) +[ok]: Self-referential BRPOPLPUSH (32 ms) +[ok]: BRPOPLPUSH inside a transaction (2 ms) +[ok]: PUSH resulting from BRPOPLPUSH affect WATCH (64 ms) +[ok]: BRPOPLPUSH does not affect WATCH while still blocked (66 ms) +[ok]: BRPOPLPUSH timeout (1038 ms) +[ok]: SWAPDB awakes blocked client (33 ms) [ok]: SWAPDB wants to wake blocked client, but the key already expired (232 ms) -[ok]: MULTI + LPUSH + EXPIRE + DEBUG SLEEP on blocked client, key already expired (301 ms) -[ok]: BLPOP unblock but the key is expired and then block again - reprocessing command (1031 ms) -[ok]: BLPOP when new key is moved into place (25 ms) -[ok]: BLPOP when result key is created by SORT..STORE (16 ms) -[ok]: BLMPOP_LEFT when new key is moved into place (115 ms) -[ok]: BLMPOP_LEFT when result key is created by SORT..STORE (29 ms) +[ok]: MULTI + LPUSH + EXPIRE + DEBUG SLEEP on blocked client, key already expired (299 ms) +[ok]: BLPOP unblock but the key is expired and then block again - reprocessing command (1040 ms) +[ok]: BLPOP when new key is moved into place (33 ms) +[ok]: BLPOP when result key is created by SORT..STORE (32 ms) +[ok]: BLMPOP_LEFT when new key is moved into place (32 ms) +[ok]: BLMPOP_LEFT when result key is created by SORT..STORE (33 ms) [ok]: BLPOP: timeout value out of range (0 ms) -[ok]: BLPOP: with single empty list argument (20 ms) -[ok]: BLPOP: with negative timeout (19 ms) -[ok]: BLPOP: with non-integer timeout (12 ms) -[ok]: BLPOP: with zero timeout should block indefinitely (12 ms) -[ok]: BLPOP: with 0.001 timeout should not block indefinitely (37 ms) -[ok]: BLPOP: second argument is not a list (27 ms) -[ok]: BLPOP: timeout (1098 ms) -[ok]: BLPOP: arguments are empty (23 ms) -[ok]: BRPOP: with single empty list argument (25 ms) -[ok]: BRPOP: with negative timeout (20 ms) -[ok]: BRPOP: with non-integer timeout (27 ms) -[ok]: BRPOP: with zero timeout should block indefinitely (24 ms) -[ok]: BRPOP: with 0.001 timeout should not block indefinitely (43 ms) -[ok]: BRPOP: second argument is not a list (24 ms) -[ok]: BRPOP: timeout (1034 ms) -[ok]: BRPOP: arguments are empty (27 ms) -[ok]: BLMPOP_LEFT: with single empty list argument (21 ms) -[ok]: BLMPOP_LEFT: with negative timeout (23 ms) -[ok]: BLMPOP_LEFT: with non-integer timeout (23 ms) -[ok]: BLMPOP_LEFT: with zero timeout should block indefinitely (25 ms) -[ok]: BLMPOP_LEFT: with 0.001 timeout should not block indefinitely (53 ms) -[ok]: BLMPOP_LEFT: second argument is not a list (20 ms) -[ok]: BLMPOP_LEFT: timeout (1031 ms) -[ok]: BLMPOP_LEFT: arguments are empty (21 ms) -[ok]: BLMPOP_RIGHT: with single empty list argument (25 ms) -[ok]: BLMPOP_RIGHT: with negative timeout (23 ms) -[ok]: BLMPOP_RIGHT: with non-integer timeout (24 ms) -[ok]: BLMPOP_RIGHT: with zero timeout should block indefinitely (23 ms) -[ok]: BLMPOP_RIGHT: with 0.001 timeout should not block indefinitely (41 ms) -[ok]: BLMPOP_RIGHT: second argument is not a list (21 ms) -[ok]: BLMPOP_RIGHT: timeout (1030 ms) -[ok]: BLMPOP_RIGHT: arguments are empty (23 ms) -[ok]: BLPOP inside a transaction (1 ms) -[ok]: BLMPOP_LEFT inside a transaction (1 ms) -[ok]: BLMPOP propagate as pop with count command to replica (169 ms) -[ok]: LPUSHX, RPUSHX - generic (4 ms) -[ok]: LPUSHX, RPUSHX - quicklist (44 ms) -[ok]: LINSERT - quicklist (50 ms) +[ok]: BLPOP: with single empty list argument (33 ms) +[ok]: BLPOP: with negative timeout (31 ms) +[ok]: BLPOP: with non-integer timeout (32 ms) +[ok]: BLPOP: with zero timeout should block indefinitely (32 ms) +[ok]: BLPOP: with 0.001 timeout should not block indefinitely (53 ms) +[ok]: BLPOP: second argument is not a list (32 ms) +[ok]: BLPOP: timeout (1075 ms) +[ok]: BLPOP: arguments are empty (34 ms) +[ok]: BRPOP: with single empty list argument (32 ms) +[ok]: BRPOP: with negative timeout (31 ms) +[ok]: BRPOP: with non-integer timeout (32 ms) +[ok]: BRPOP: with zero timeout should block indefinitely (32 ms) +[ok]: BRPOP: with 0.001 timeout should not block indefinitely (42 ms) +[ok]: BRPOP: second argument is not a list (32 ms) +[ok]: BRPOP: timeout (1074 ms) +[ok]: BRPOP: arguments are empty (33 ms) +[ok]: BLMPOP_LEFT: with single empty list argument (32 ms) +[ok]: BLMPOP_LEFT: with negative timeout (31 ms) +[ok]: BLMPOP_LEFT: with non-integer timeout (32 ms) +[ok]: BLMPOP_LEFT: with zero timeout should block indefinitely (32 ms) +[ok]: BLMPOP_LEFT: with 0.001 timeout should not block indefinitely (44 ms) +[ok]: BLMPOP_LEFT: second argument is not a list (31 ms) +[ok]: BLMPOP_LEFT: timeout (1073 ms) +[ok]: BLMPOP_LEFT: arguments are empty (35 ms) +[ok]: BLMPOP_RIGHT: with single empty list argument (32 ms) +[ok]: BLMPOP_RIGHT: with negative timeout (31 ms) +[ok]: BLMPOP_RIGHT: with non-integer timeout (32 ms) +[ok]: BLMPOP_RIGHT: with zero timeout should block indefinitely (31 ms) +[ok]: BLMPOP_RIGHT: with 0.001 timeout should not block indefinitely (43 ms) +[ok]: BLMPOP_RIGHT: second argument is not a list (31 ms) +[ok]: BLMPOP_RIGHT: timeout (1074 ms) +[ok]: BLMPOP_RIGHT: arguments are empty (33 ms) +[ok]: BLPOP inside a transaction (2 ms) +[ok]: BLMPOP_LEFT inside a transaction (2 ms) +[ok]: BLMPOP propagate as pop with count command to replica (273 ms) +[ok]: LPUSHX, RPUSHX - generic (24 ms) +[ok]: LPUSHX, RPUSHX - quicklist (49 ms) +[ok]: LINSERT - quicklist (45 ms) [ok]: LPUSHX, RPUSHX - listpack (1 ms) [ok]: LINSERT - listpack (2 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 (1 ms) -[ok]: LINDEX consistency test - listpack (152 ms) -[ok]: LINDEX random access - listpack (110 ms) +[ok]: LINSERT against non-list value error (0 ms) +[ok]: LINSERT against non existing key (0 ms) +[ok]: LINDEX consistency test - listpack (85 ms) +[ok]: LINDEX random access - listpack (56 ms) [ok]: Check if list is still ok after a DEBUG RELOAD - listpack (110 ms) -[ok]: LINDEX consistency test - listpack (136 ms) -[ok]: LINDEX random access - listpack (94 ms) -[ok]: Check if list is still ok after a DEBUG RELOAD - listpack (252 ms) -[ok]: LINDEX consistency test - quicklist (110 ms) +[ok]: LINDEX consistency test - listpack (156 ms) +[ok]: LINDEX random access - listpack (106 ms) +[ok]: Check if list is still ok after a DEBUG RELOAD - listpack (188 ms) +[ok]: LINDEX consistency test - quicklist (83 ms) [ok]: LINDEX random access - quicklist (47 ms) -[ok]: Check if list is still ok after a DEBUG RELOAD - quicklist (95 ms) -[ok]: LINDEX consistency test - quicklist (245 ms) -[ok]: LINDEX random access - quicklist (137 ms) -[ok]: Check if list is still ok after a DEBUG RELOAD - quicklist (182 ms) +[ok]: Check if list is still ok after a DEBUG RELOAD - quicklist (143 ms) +[ok]: LINDEX consistency test - quicklist (140 ms) +[ok]: LINDEX random access - quicklist (75 ms) +[ok]: Check if list is still ok after a DEBUG RELOAD - quicklist (149 ms) [ok]: LLEN against non-list value error (1 ms) [ok]: LLEN against non existing key (0 ms) [ok]: LINDEX against non-list value error (0 ms) [ok]: LINDEX against non existing key (0 ms) [ok]: LPUSH against non-list value error (0 ms) [ok]: RPUSH against non-list value error (0 ms) -[ok]: RPOPLPUSH base case - quicklist (60 ms) -[ok]: LMOVE left left base case - quicklist (45 ms) -[ok]: LMOVE left right base case - quicklist (43 ms) -[ok]: LMOVE right left base case - quicklist (51 ms) -[ok]: LMOVE right right base case - quicklist (51 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 (47 ms) -[ok]: LMOVE left right with the same list as src and dst - quicklist (47 ms) -[ok]: LMOVE right left with the same list as src and dst - quicklist (51 ms) +[ok]: RPOPLPUSH base case - quicklist (44 ms) +[ok]: LMOVE left left base case - quicklist (44 ms) +[ok]: LMOVE left right base case - quicklist (45 ms) +[ok]: LMOVE right left base case - quicklist (47 ms) +[ok]: LMOVE right right base case - quicklist (44 ms) +[ok]: RPOPLPUSH with the same list as src and dst - quicklist (44 ms) +[ok]: LMOVE left left with the same list as src and dst - quicklist (43 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 (44 ms) [ok]: LMOVE right right with the same list as src and dst - quicklist (44 ms) -[ok]: RPOPLPUSH with quicklist source and existing target quicklist (87 ms) -[ok]: LMOVE left left with quicklist source and existing target quicklist (100 ms) -[ok]: LMOVE left right with quicklist source and existing target quicklist (96 ms) -[ok]: LMOVE right left with quicklist source and existing target quicklist (100 ms) -[ok]: LMOVE right right with quicklist source and existing target quicklist (99 ms) -[ok]: RPOPLPUSH with quicklist source and existing target listpack (44 ms) +[ok]: RPOPLPUSH with quicklist source and existing target quicklist (88 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 (92 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 (87 ms) +[ok]: RPOPLPUSH with quicklist source and existing target listpack (45 ms) [ok]: LMOVE left left with quicklist source and existing target listpack (48 ms) -[ok]: LMOVE left right with quicklist source and existing target listpack (45 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 (47 ms) -[ok]: LMOVE right right with quicklist source and existing target listpack (47 ms) -[ok]: RPOPLPUSH base case - listpack (4 ms) -[ok]: LMOVE left left base case - listpack (1 ms) +[ok]: LMOVE right right with quicklist source and existing target listpack (52 ms) +[ok]: RPOPLPUSH base case - listpack (3 ms) +[ok]: LMOVE left left base case - listpack (3 ms) [ok]: LMOVE left right base case - listpack (2 ms) -[ok]: LMOVE right left base case - listpack (2 ms) -[ok]: LMOVE right right base case - listpack (6 ms) -[ok]: RPOPLPUSH with the same list as src and dst - listpack (4 ms) -[ok]: LMOVE left left with the same list as src and dst - listpack (0 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 (1 ms) -[ok]: LMOVE right right with the same list as src and dst - listpack (1 ms) -[ok]: RPOPLPUSH with listpack source and existing target quicklist (49 ms) -[ok]: LMOVE left left with listpack source and existing target quicklist (49 ms) -[ok]: LMOVE left right with listpack source and existing target quicklist (50 ms) -[ok]: LMOVE right left with listpack source and existing target quicklist (45 ms) -[ok]: LMOVE right right with listpack source and existing target quicklist (48 ms) -[ok]: RPOPLPUSH with listpack source and existing target listpack (7 ms) -[ok]: LMOVE left left with listpack source and existing target listpack (1 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 (1 ms) +[ok]: LMOVE right left base case - listpack (3 ms) +[ok]: LMOVE right right base case - listpack (3 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 (2 ms) +[ok]: LMOVE right left with the same list as src and dst - listpack (2 ms) +[ok]: LMOVE right right with the same list as src and dst - listpack (2 ms) +[ok]: RPOPLPUSH with listpack source and existing target quicklist (45 ms) +[ok]: LMOVE left left with listpack source and existing target quicklist (45 ms) +[ok]: LMOVE left right with listpack source and existing target quicklist (44 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 (3 ms) +[ok]: LMOVE left left with listpack source and existing target listpack (3 ms) +[ok]: LMOVE left right with listpack source and existing target listpack (2 ms) +[ok]: LMOVE right left with listpack source and existing target listpack (3 ms) [ok]: LMOVE right right with listpack source and existing target listpack (3 ms) -[ok]: RPOPLPUSH against non existing key (3 ms) +[ok]: RPOPLPUSH against non existing key (1 ms) [ok]: RPOPLPUSH against non list src key (1 ms) -[ok]: RPOPLPUSH against non list dst key - quicklist (51 ms) -[ok]: RPOPLPUSH against non list dst key - listpack (1 ms) +[ok]: RPOPLPUSH against non list dst key - quicklist (47 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 (89 ms) -[ok]: Basic LPOP/RPOP/LMPOP - listpack (7 ms) -[ok]: LPOP/RPOP/LMPOP against empty list (2 ms) -[ok]: LPOP/RPOP/LMPOP NON-BLOCK or BLOCK against non list value (1 ms) -[ok]: Mass RPOP/LPOP - listpack (90 ms) -[ok]: Mass RPOP/LPOP - listpack (149 ms) -[ok]: LMPOP with illegal argument (2 ms) -[ok]: LMPOP single existing list - quicklist (146 ms) -[ok]: LMPOP multiple existing lists - quicklist (195 ms) -[ok]: LMPOP single existing list - listpack (10 ms) -[ok]: LMPOP multiple existing lists - listpack (8 ms) -[ok]: LMPOP propagate as pop with count command to replica (73 ms) -[ok]: LRANGE basics - quicklist (58 ms) -[ok]: LRANGE inverted indexes - quicklist (50 ms) -[ok]: LRANGE out of range indexes including the full list - quicklist (48 ms) -[ok]: LRANGE out of range negative end index - quicklist (47 ms) -[ok]: LRANGE basics - listpack (7 ms) -[ok]: LRANGE inverted indexes - listpack (1 ms) +[ok]: Basic LPOP/RPOP/LMPOP - listpack (3 ms) +[ok]: LPOP/RPOP/LMPOP against empty list (1 ms) +[ok]: LPOP/RPOP/LMPOP NON-BLOCK or BLOCK against non list value (3 ms) +[ok]: Mass RPOP/LPOP - listpack (94 ms) +[ok]: Mass RPOP/LPOP - listpack (139 ms) +[ok]: LMPOP with illegal argument (3 ms) +[ok]: LMPOP single existing list - quicklist (131 ms) +[ok]: LMPOP multiple existing lists - quicklist (183 ms) +[ok]: LMPOP single existing list - listpack (6 ms) +[ok]: LMPOP multiple existing lists - listpack (7 ms) +[ok]: LMPOP propagate as pop with count command to replica (46 ms) +[ok]: LRANGE basics - quicklist (44 ms) +[ok]: LRANGE inverted indexes - quicklist (48 ms) +[ok]: LRANGE out of range indexes including the full list - quicklist (47 ms) +[ok]: LRANGE out of range negative end index - quicklist (44 ms) +[ok]: LRANGE basics - listpack (3 ms) +[ok]: LRANGE inverted indexes - listpack (3 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 against non existing key (0 ms) +[ok]: LRANGE against non existing key (1 ms) [ok]: LRANGE with start > end yields an empty array for backward compatibility (1 ms) -[ok]: LTRIM basics - quicklist (573 ms) -[ok]: LTRIM out of range negative end index - quicklist (100 ms) -[ok]: LSET - quicklist (48 ms) -[ok]: LSET out of range index - quicklist (0 ms) -[ok]: LTRIM basics - listpack (20 ms) -[ok]: LTRIM out of range negative end index - listpack (3 ms) -[ok]: LSET - listpack (8 ms) +[ok]: LTRIM basics - quicklist (534 ms) +[ok]: LTRIM out of range negative end index - quicklist (87 ms) +[ok]: LSET - quicklist (45 ms) +[ok]: LSET out of range index - quicklist (1 ms) +[ok]: LTRIM basics - listpack (22 ms) +[ok]: LTRIM out of range negative end index - listpack (4 ms) +[ok]: LSET - listpack (2 ms) [ok]: LSET out of range index - listpack (0 ms) -[ok]: LSET against non existing key (1 ms) -[ok]: LSET against non list value (0 ms) -[ok]: LREM remove all the occurrences - quicklist (48 ms) +[ok]: LSET against non existing key (0 ms) +[ok]: LSET against non list value (1 ms) +[ok]: LREM remove all the occurrences - quicklist (46 ms) [ok]: LREM remove the first occurrence - quicklist (1 ms) -[ok]: LREM remove non existing element - quicklist (0 ms) -[ok]: LREM starting from tail with negative count - quicklist (54 ms) +[ok]: LREM remove non existing element - quicklist (1 ms) +[ok]: LREM starting from tail with negative count - quicklist (46 ms) [ok]: LREM starting from tail with negative count (2) - quicklist (1 ms) [ok]: LREM deleting objects that may be int encoded - quicklist (46 ms) -[ok]: LREM remove all the occurrences - listpack (7 ms) -[ok]: LREM remove the first occurrence - listpack (0 ms) -[ok]: LREM remove non existing element - listpack (1 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 (49 ms) -[ok]: BLPOP/BLMOVE should increase dirty (26 ms) -[ok]: client unblock tests (30 ms) -[ok]: client unblock tests (24 ms) -[ok]: List listpack -> quicklist encoding conversion (13 ms) -[ok]: List listpack -> quicklist encoding conversion (201 ms) -[ok]: List quicklist -> listpack encoding conversion (247 ms) -[ok]: List encoding conversion when RDB loading (16 ms) -[ok]: List invalid list-max-listpack-size config (48 ms) -[ok]: List of various encodings (99 ms) -[ok]: List of various encodings - sanitize dump (2 ms) -[ok]: Unblock fairness is kept while pipelining (61 ms) -[ok]: Unblock fairness is kept during nested unblock (70 ms) -[ok]: Blocking command accounted only once in commandstats (41 ms) -[ok]: Blocking command accounted only once in commandstats after timeout (22 ms) -[ok]: Command being unblocked cause another command to get unblocked execution order test (205 ms) -[ok]: Blocking timeout following PAUSE should honor the timeout (1035 ms) -[ok]: CLIENT NO-TOUCH with BRPOP and RPUSH regression test (42 ms) +[ok]: LREM remove all the occurrences - listpack (3 ms) +[ok]: LREM remove the first occurrence - listpack (1 ms) +[ok]: LREM remove non existing element - listpack (0 ms) +[ok]: LREM starting from tail with negative count - listpack (3 ms) +[ok]: LREM starting from tail with negative count (2) - listpack (1 ms) +[ok]: LREM deleting objects that may be int encoded - listpack (2 ms) +[ok]: Regression for bug 593 - chaining BRPOPLPUSH with other blocking cmds (64 ms) +[ok]: BLPOP/BLMOVE should increase dirty (36 ms) +[ok]: client unblock tests (36 ms) +[ok]: client unblock tests (35 ms) +[ok]: List listpack -> quicklist encoding conversion (7 ms) +[ok]: List listpack -> quicklist encoding conversion (184 ms) +[ok]: List quicklist -> listpack encoding conversion (227 ms) +[ok]: List encoding conversion when RDB loading (5 ms) +[ok]: List invalid list-max-listpack-size config (45 ms) +[ok]: List of various encodings (95 ms) +[ok]: List of various encodings - sanitize dump (4 ms) +[ok]: Unblock fairness is kept while pipelining (65 ms) +[ok]: Unblock fairness is kept during nested unblock (95 ms) +[ok]: Blocking command accounted only once in commandstats (33 ms) +[ok]: Blocking command accounted only once in commandstats after timeout (34 ms) +[ok]: Command being unblocked cause another command to get unblocked execution order test (194 ms) +[ok]: Blocking timeout following PAUSE should honor the timeout (1050 ms) +[ok]: CLIENT NO-TOUCH with BRPOP and RPUSH regression test (66 ms) [50/129 done]: unit/type/list (20 seconds) Testing unit/type/list-3 === (list ziplist) Starting server on 127.0.0.1:21573 ok -[ok]: Explicit regression for a list bug (6 ms) -[ok]: Regression for quicklist #3343 bug (136 ms) +[ok]: Explicit regression for a list bug (2 ms) +[ok]: Regression for quicklist #3343 bug (130 ms) [ok]: Check compression with recompress (88 ms) -[ok]: Crash due to wrongly recompress after lrem (240 ms) -[ok]: LINSERT correctly recompress full quicklistNode after inserting a element before it (48 ms) -[ok]: LINSERT correctly recompress full quicklistNode after inserting a element after it (48 ms) -[ok]: Stress tester for #3343-alike bugs comp: 2 (9175 ms) -[ok]: Stress tester for #3343-alike bugs comp: 1 (10093 ms) -[ok]: Stress tester for #3343-alike bugs comp: 0 (8543 ms) -[ok]: ziplist implementation: value encoding and backlink (11275 ms) -[ok]: ziplist implementation: encoding stress testing (9114 ms) -[51/129 done]: unit/type/list-3 (49 seconds) +[ok]: Crash due to wrongly recompress after lrem (224 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 (44 ms) +[ok]: Stress tester for #3343-alike bugs comp: 2 (8208 ms) +[ok]: Stress tester for #3343-alike bugs comp: 1 (8840 ms) +[ok]: Stress tester for #3343-alike bugs comp: 0 (8321 ms) +[ok]: ziplist implementation: value encoding and backlink (11878 ms) +[ok]: ziplist implementation: encoding stress testing (9194 ms) +[51/129 done]: unit/type/list-3 (47 seconds) Testing unit/type/list-2 === (list) Starting server on 127.0.0.1:21575 ok -[ok]: LTRIM stress testing - quicklist (6594 ms) -[ok]: LTRIM stress testing - listpack (6597 ms) -[52/129 done]: unit/type/list-2 (13 seconds) +[ok]: LTRIM stress testing - quicklist (7994 ms) +[ok]: LTRIM stress testing - listpack (7812 ms) +[52/129 done]: unit/type/list-2 (16 seconds) Testing unit/type/incr === (incr) Starting server on 127.0.0.1:21577 ok -[ok]: INCR against non existing key (0 ms) +[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 (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 (0 ms) -[ok]: INCR fails against a key holding a list (1 ms) -[ok]: DECRBY over 32bit value with over 32bit increment, negative res (0 ms) +[ok]: INCR fails against a key holding a list (0 ms) +[ok]: DECRBY over 32bit value with over 32bit increment, negative res (1 ms) [ok]: DECRBY against key is not exist (0 ms) [ok]: INCR can modify objects in-place (1 ms) [ok]: INCRBYFLOAT against non existing key (1 ms) @@ -4247,92 +4289,92 @@ [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 (1 ms) -[ok]: string to double with null terminator (0 ms) +[ok]: INCRBYFLOAT does not allow NaN or Infinity (1 ms) +[ok]: INCRBYFLOAT decrement (0 ms) +[ok]: string to double with null terminator (1 ms) [ok]: No negative zero (0 ms) [ok]: INCRBY INCRBYFLOAT DECRBY against unhappy path (1 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 (1 ms) -[ok]: decrby operation should update encoding from raw to int (0 ms) -[53/129 done]: unit/type/incr (1 seconds) +[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 (3 ms) +[ok]: HSET/HLEN - Small hash creation (1 ms) [ok]: Is the small hash encoded with a listpack? (0 ms) -[ok]: HRANDFIELD - listpack (9 ms) -[ok]: HRANDFIELD - hashtable (8 ms) -[ok]: HRANDFIELD with RESP3 (0 ms) +[ok]: HRANDFIELD - listpack (10 ms) +[ok]: HRANDFIELD - hashtable (9 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 count overflow (1 ms) [ok]: HRANDFIELD with against non existing key (0 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 (190 ms) -[ok]: HRANDFIELD with - listpack (116 ms) -[ok]: HSET/HLEN - Big hash creation (109 ms) -[ok]: Is the big hash encoded with an hash table? (0 ms) +[ok]: HRANDFIELD with against non existing key - emptyarray (0 ms) +[ok]: HRANDFIELD with - hashtable (125 ms) +[ok]: HRANDFIELD with - listpack (113 ms) +[ok]: HSET/HLEN - Big hash creation (99 ms) +[ok]: Is the big hash encoded with an hash table? (1 ms) [ok]: HGET against the small hash (1 ms) -[ok]: HGET against the big hash (101 ms) -[ok]: HGET against non existing key (0 ms) +[ok]: HGET against the big hash (81 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 exists - small hash (0 ms) [ok]: HSETNX target key missing - big hash (1 ms) [ok]: HSETNX target key exists - big hash (0 ms) [ok]: HSET/HMSET wrong number of args (0 ms) -[ok]: HMSET - small hash (0 ms) -[ok]: HMSET - big hash (50 ms) +[ok]: HMSET - small hash (1 ms) +[ok]: HMSET - big hash (53 ms) [ok]: HMGET against non existing key and fields (1 ms) -[ok]: Hash commands against wrong type (7 ms) -[ok]: HMGET - small hash (1 ms) -[ok]: HMGET - big hash (57 ms) +[ok]: Hash commands against wrong type (2 ms) +[ok]: HMGET - small hash (0 ms) +[ok]: HMGET - big hash (56 ms) [ok]: HKEYS - small hash (0 ms) -[ok]: HKEYS - big hash (7 ms) +[ok]: HKEYS - big hash (8 ms) [ok]: HVALS - small hash (0 ms) [ok]: HVALS - big hash (1 ms) [ok]: HGETALL - small hash (0 ms) -[ok]: HGETALL - big hash (18 ms) -[ok]: HGETALL against non-existing key (1 ms) +[ok]: HGETALL - big hash (19 ms) +[ok]: HGETALL against non-existing key (0 ms) [ok]: HDEL and return value (1 ms) -[ok]: HDEL - more than a single value (0 ms) -[ok]: HDEL - hash becomes empty before deleting all specified fields (3 ms) -[ok]: HEXISTS (2 ms) -[ok]: Is a ziplist encoded Hash promoted on big payload? (7 ms) -[ok]: HINCRBY against non existing database key (0 ms) +[ok]: HDEL - more than a single value (1 ms) +[ok]: HDEL - hash becomes empty before deleting all specified fields (0 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 (1 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 (0 ms) -[ok]: HINCRBY over 32bit value with over 32bit increment (2 ms) -[ok]: HINCRBY fails against hash value with spaces (left) (0 ms) -[ok]: HINCRBY fails against hash value with spaces (right) (0 ms) -[ok]: HINCRBY can detect overflows (8 ms) +[ok]: HINCRBY against hash key created by hincrby itself (0 ms) +[ok]: HINCRBY against hash key originally set with HSET (1 ms) +[ok]: HINCRBY over 32bit value (1 ms) +[ok]: HINCRBY over 32bit value with over 32bit increment (1 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 (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 (1 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 (1 ms) +[ok]: HINCRBYFLOAT over 32bit value with over 32bit increment (0 ms) [ok]: HINCRBYFLOAT fails against hash value with spaces (left) (1 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]: HINCRBYFLOAT fails against hash value that contains a null-terminator in the middle (1 ms) [ok]: HSTRLEN against the small hash (1 ms) -[ok]: HSTRLEN against the big hash (114 ms) +[ok]: HSTRLEN against the big hash (113 ms) [ok]: HSTRLEN against non existing field (0 ms) -[ok]: HSTRLEN corner cases (2 ms) +[ok]: HSTRLEN corner cases (5 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 (27 ms) -[ok]: Hash fuzzing #2 - 10 fields (21 ms) -[ok]: Hash fuzzing #1 - 512 fields (1544 ms) -[ok]: Hash fuzzing #2 - 512 fields (903 ms) -[ok]: Stress test the hash ziplist -> hashtable encoding conversion (1045 ms) -[ok]: Hash ziplist of various encodings (94 ms) -[ok]: Hash ziplist of various encodings - sanitize dump (6 ms) -[ok]: HINCRBYFLOAT does not allow NaN or Infinity (1 ms) +[ok]: Hash fuzzing #1 - 10 fields (30 ms) +[ok]: Hash fuzzing #2 - 10 fields (20 ms) +[ok]: Hash fuzzing #1 - 512 fields (1369 ms) +[ok]: Hash fuzzing #2 - 512 fields (1132 ms) +[ok]: Stress test the hash ziplist -> hashtable encoding conversion (991 ms) +[ok]: Hash ziplist of various encodings (99 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 (5 seconds) Testing unit/cluster/update-msg === (external:skip cluster) Starting server on 127.0.0.1:21581 ok @@ -4345,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 (284 ms) -[ok]: Cluster is writable (213 ms) +[ok]: Cluster is up (254 ms) +[ok]: Cluster is writable (266 ms) [ok]: Instance #5 is a slave (1 ms) [ok]: Instance #5 synced with the master (0 ms) -[ok]: Killing one master node (29 ms) -[ok]: Wait for failover (3894 ms) -[ok]: Cluster should eventually be up again (303 ms) -[ok]: Cluster is writable (294 ms) -[ok]: Instance #5 is now a master (5 ms) -[ok]: Killing the new master #5 (30 ms) -[ok]: Cluster should be down now (3407 ms) +[ok]: Killing one master node (26 ms) +[ok]: Wait for failover (3878 ms) +[ok]: Cluster should eventually be up again (206 ms) +[ok]: Cluster is writable (284 ms) +[ok]: Instance #5 is now a master (1 ms) +[ok]: Killing the new master #5 (26 ms) +[ok]: Cluster should be down now (3424 ms) [ok]: Restarting the old master node (1 ms) -[ok]: Instance #0 gets converted into a slave (281 ms) -[ok]: Restarting the new master node (6 ms) -[ok]: Cluster is up again (1447 ms) -[55/129 done]: unit/cluster/update-msg (23 seconds) +[ok]: Instance #0 gets converted into a slave (145 ms) +[ok]: Restarting the new master node (1 ms) +[ok]: Cluster is up again (5967 ms) +[55/129 done]: unit/cluster/update-msg (27 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 (49 ms) -[ok]: Can't read from replica without READONLY (5 ms) +[ok]: Cluster should start ok (26 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 (0 ms) -[ok]: Can perform HSET primary and HGET from replica (103 ms) -[ok]: Can MULTI-EXEC transaction of HGET operations from replica (0 ms) -[ok]: MULTI-EXEC with write operations is MOVED (6 ms) -[ok]: write command is QUEUED, then EXEC should be MOVED after failover (2032 ms) -[ok]: read-only blocking operations from replica (22 ms) +[ok]: Can read from replica after READONLY (1 ms) +[ok]: Can perform HSET primary and HGET from replica (3 ms) +[ok]: Can MULTI-EXEC transaction of HGET operations from replica (1 ms) +[ok]: MULTI-EXEC with write operations is MOVED (0 ms) +[ok]: write command is QUEUED, then EXEC should be MOVED after failover (2042 ms) +[ok]: read-only blocking operations from replica (14 ms) [ok]: reply MOVED when eval from replica for update (0 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. (1666 ms) -[ok]: CLUSTER SLOT-STATS cpu-usec reset upon slot migration. (4266 ms) -[ok]: CLUSTER SLOT-STATS cpu-usec for non-slot specific commands. (2515 ms) -[ok]: CLUSTER SLOT-STATS cpu-usec for slot specific commands. (1847 ms) -[ok]: CLUSTER SLOT-STATS cpu-usec for blocking commands, unblocked on keyspace update. (4808 ms) -[ok]: CLUSTER SLOT-STATS cpu-usec for blocking commands, unblocked on timeout. (3315 ms) -[ok]: CLUSTER SLOT-STATS cpu-usec for transactions. (4660 ms) -[ok]: CLUSTER SLOT-STATS cpu-usec for lua-scripts, without cross-slot keys. (1922 ms) -[ok]: CLUSTER SLOT-STATS cpu-usec for lua-scripts, with cross-slot keys. (2422 ms) -[ok]: CLUSTER SLOT-STATS cpu-usec for functions, without cross-slot keys. (1894 ms) -[ok]: CLUSTER SLOT-STATS cpu-usec for functions, with cross-slot keys. (2901 ms) +[ok]: CLUSTER SLOT-STATS cpu-usec reset upon CONFIG RESETSTAT. (1665 ms) +[ok]: CLUSTER SLOT-STATS cpu-usec reset upon slot migration. (3668 ms) +[ok]: CLUSTER SLOT-STATS cpu-usec for non-slot specific commands. (2028 ms) +[ok]: CLUSTER SLOT-STATS cpu-usec for slot specific commands. (1699 ms) +[ok]: CLUSTER SLOT-STATS cpu-usec for blocking commands, unblocked on keyspace update. (4148 ms) +[ok]: CLUSTER SLOT-STATS cpu-usec for blocking commands, unblocked on timeout. (6493 ms) +[ok]: CLUSTER SLOT-STATS cpu-usec for transactions. (7608 ms) +[ok]: CLUSTER SLOT-STATS cpu-usec for lua-scripts, without cross-slot keys. (2774 ms) +[ok]: CLUSTER SLOT-STATS cpu-usec for lua-scripts, with cross-slot keys. (3029 ms) +[ok]: CLUSTER SLOT-STATS cpu-usec for functions, without cross-slot keys. (2144 ms) +[ok]: CLUSTER SLOT-STATS cpu-usec for functions, with cross-slot keys. (2590 ms) === (external:skip cluster) Starting server on 127.0.0.1:21607 ok -[ok]: CLUSTER SLOT-STATS network-bytes-in, multi bulk buffer processing. (2932 ms) -[ok]: CLUSTER SLOT-STATS network-bytes-in, in-line buffer processing. (1792 ms) -[ok]: CLUSTER SLOT-STATS network-bytes-in, blocking command. (4391 ms) -[ok]: CLUSTER SLOT-STATS network-bytes-in, multi-exec transaction. (2345 ms) -[ok]: CLUSTER SLOT-STATS network-bytes-in, non slot specific command. (1793 ms) -[ok]: CLUSTER SLOT-STATS network-bytes-in, pub/sub. (2416 ms) +[ok]: CLUSTER SLOT-STATS network-bytes-in, multi bulk buffer processing. (2228 ms) +[ok]: CLUSTER SLOT-STATS network-bytes-in, in-line buffer processing. (1945 ms) +[ok]: CLUSTER SLOT-STATS network-bytes-in, blocking command. (5540 ms) +[ok]: CLUSTER SLOT-STATS network-bytes-in, multi-exec transaction. (2213 ms) +[ok]: CLUSTER SLOT-STATS network-bytes-in, non slot specific command. (1751 ms) +[ok]: CLUSTER SLOT-STATS network-bytes-in, pub/sub. (2388 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. (4543 ms) +[ok]: CLUSTER SLOT-STATS network-bytes-in, sharded pub/sub. (7324 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. (1841 ms) -[ok]: CLUSTER SLOT-STATS network-bytes-out, for slot specific commands. (2695 ms) -[ok]: CLUSTER SLOT-STATS network-bytes-out, blocking commands. (4133 ms) +[ok]: CLUSTER SLOT-STATS network-bytes-out, for non-slot specific commands. (3366 ms) +[ok]: CLUSTER SLOT-STATS network-bytes-out, for slot specific commands. (3453 ms) +[ok]: CLUSTER SLOT-STATS network-bytes-out, blocking commands. (4934 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. (2529 ms) +[ok]: CLUSTER SLOT-STATS network-bytes-out, replication stream egress. (2293 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. (4633 ms) -[ok]: CLUSTER SLOT-STATS network-bytes-out, sharded pub/sub, cross-slot channels. (4525 ms) +[ok]: CLUSTER SLOT-STATS network-bytes-out, sharded pub/sub, single channel. (5761 ms) +[ok]: CLUSTER SLOT-STATS network-bytes-out, sharded pub/sub, cross-slot channels. (5538 ms) === (external:skip cluster) Starting server on 127.0.0.1:21623 ok -[ok]: CLUSTER SLOT-STATS contains default value upon valkey-server startup (1818 ms) -[ok]: CLUSTER SLOT-STATS contains correct metrics upon key introduction (2603 ms) -[ok]: CLUSTER SLOT-STATS contains correct metrics upon key mutation (1979 ms) -[ok]: CLUSTER SLOT-STATS contains correct metrics upon key deletion (3062 ms) -[ok]: CLUSTER SLOT-STATS slot visibility based on slot ownership changes (4323 ms) +[ok]: CLUSTER SLOT-STATS contains default value upon valkey-server startup (2340 ms) +[ok]: CLUSTER SLOT-STATS contains correct metrics upon key introduction (3362 ms) +[ok]: CLUSTER SLOT-STATS contains correct metrics upon key mutation (2744 ms) +[ok]: CLUSTER SLOT-STATS contains correct metrics upon key deletion (3538 ms) +[ok]: CLUSTER SLOT-STATS slot visibility based on slot ownership changes (6546 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 all slots present (4 ms) +[ok]: CLUSTER SLOT-STATS SLOTSRANGE some slots missing (4 ms) === (external:skip cluster) Starting server on 127.0.0.1:21627 ok -[ok]: CLUSTER SLOT-STATS ORDERBY DESC correct ordering (11591 ms) -[ok]: CLUSTER SLOT-STATS ORDERBY ASC correct ordering (9728 ms) -[ok]: CLUSTER SLOT-STATS ORDERBY LIMIT correct response pagination, where limit is less than number of assigned slots (12 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 (13543 ms) +[ok]: CLUSTER SLOT-STATS ORDERBY ASC correct ordering (16252 ms) +[ok]: CLUSTER SLOT-STATS ORDERBY LIMIT correct response pagination, where limit is less than number of assigned slots (14 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 (5055 ms) -[ok]: CLUSTER SLOT-STATS metrics replication for existing keys (4636 ms) -[ok]: CLUSTER SLOT-STATS metrics replication for deleting keys (8627 ms) -[57/129 done]: unit/cluster/slot-stats (183 seconds) +[ok]: CLUSTER SLOT-STATS metrics replication for new keys (7017 ms) +[ok]: CLUSTER SLOT-STATS metrics replication for existing keys (8821 ms) +[ok]: CLUSTER SLOT-STATS metrics replication for deleting keys (9578 ms) +[57/129 done]: unit/cluster/slot-stats (218 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 (71 ms) +[ok]: Verify that slot ownership transfer through gossip propagates deletes to replicas (126 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 (4508 ms) +[ok]: Primary lost a slot during the shutdown waiting (4535 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 (99 ms) +[ok]: Primary lost a slot during the manual failover pausing (50 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 (32 ms) +[ok]: Primary lost a slot during the client pause command (75 ms) [58/129 done]: unit/cluster/slot-ownership (51 seconds) Testing unit/cluster/slot-migration === (external:skip cluster) Starting server on 127.0.0.1:21665 ok @@ -4459,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 (6 ms) -[ok]: Migration target is auto-updated after failover in target shard (3336 ms) -[ok]: Migration source is auto-updated after failover in source shard (3349 ms) -[ok]: Replica redirects key access in migrating slots (6 ms) -[ok]: Replica of migrating node returns ASK redirect after READONLY (2 ms) -[ok]: Replica of migrating node returns TRYAGAIN after READONLY (2 ms) -[ok]: Replica of importing node returns TRYAGAIN after READONLY and ASKING (4 ms) -[ok]: New replica inherits migrating slot (471 ms) -[ok]: New replica inherits importing slot (502 ms) +[ok]: Slot migration states are replicated (7 ms) +[ok]: Migration target is auto-updated after failover in target shard (3286 ms) +[ok]: Migration source is auto-updated after failover in source shard (3318 ms) +[ok]: Replica redirects key access in migrating slots (3 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 (3 ms) +[ok]: New replica inherits migrating slot (500 ms) +[ok]: New replica inherits importing slot (503 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 (6 ms) -[ok]: New replica inherits multiple migrating slots (476 ms) -[ok]: Slot finalization succeeds on both primary and replicas (12 ms) +[ok]: Multiple slot migration states are replicated (12 ms) +[ok]: New replica inherits multiple migrating slots (573 ms) +[ok]: Slot finalization succeeds on both primary and replicas (8 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 (1011 ms) +[ok]: Slot is auto-claimed by target after source relinquishes ownership (1008 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 @@ -4508,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 (140 ms) -[59/129 done]: unit/cluster/slot-migration (86 seconds) +[ok]: Slot migration is ok when the replicas are down (126 ms) +[59/129 done]: unit/cluster/slot-migration (84 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 (61 ms) -[ok]: Set many keys in the cluster (1261 ms) -[ok]: Test cluster responses during migration of slot x (2 ms) -[60/129 done]: unit/cluster/slot-migration-response (3 seconds) +[ok]: Cluster is up (53 ms) +[ok]: Set many keys in the cluster (1775 ms) +[ok]: Test cluster responses during migration of slot x (3 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 @@ -4528,16 +4570,16 @@ === (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 (333 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 (20046 ms) -[ok]: Slave #5 is reachable and alive (14 ms) -[ok]: Slave #5 should not be able to failover (10003 ms) -[ok]: Cluster should be down (322 ms) -[61/129 done]: unit/cluster/slave-stop-cond (44 seconds) +[ok]: Cluster is up (268 ms) +[ok]: The first master has actually one slave (1 ms) +[ok]: Slaves of #0 is instance #5 as expected (0 ms) +[ok]: Instance #5 synced with the master (0 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 (20028 ms) +[ok]: Slave #5 is reachable and alive (19 ms) +[ok]: Slave #5 should not be able to failover (10006 ms) +[ok]: Cluster should be down (252 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 === (external:skip cluster) Starting server on 127.0.0.1:21769 ok @@ -4554,17 +4596,17 @@ === (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 (525 ms) -[ok]: The first master has actually two slaves (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]: Cluster is up (302 ms) +[ok]: The first master has actually two slaves (1 ms) +[ok]: CLUSTER SLAVES and CLUSTER REPLICAS output is consistent (1 ms) +[ok]: Slaves of #0 are instance #5 and #10 as expected (0 ms) [ok]: Instance #5 and #10 synced with the master (1 ms) -[ok]: Slaves are both able to receive and acknowledge writes (165 ms) -[ok]: Write data while slave #10 is paused and can't receive it (10046 ms) -[ok]: Wait for instance #5 (and not #10) to turn into a master (4007 ms) +[ok]: Slaves are both able to receive and acknowledge writes (121 ms) +[ok]: Write data while slave #10 is paused and can't receive it (10033 ms) +[ok]: Wait for instance #5 (and not #10) to turn into a master (4146 ms) [ok]: Wait for the node #10 to return alive before ending the test (0 ms) -[ok]: Cluster should eventually be up again (342 ms) -[ok]: Node #10 should eventually replicate node #5 (0 ms) +[ok]: Cluster should eventually be up again (300 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 === (external:skip cluster) Starting server on 127.0.0.1:21801 ok @@ -4583,12 +4625,12 @@ === (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 (585 ms) +[ok]: Cluster is up (505 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 (3 ms) -[ok]: Instance #3, #6, #9, #12 and #15 synced with the master (3 ms) -[ok]: New Master down consecutively (22859 ms) -[62/129 done]: unit/cluster/slave-selection (69 seconds) +[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 (7 ms) +[ok]: New Master down consecutively (22145 ms) +[62/129 done]: unit/cluster/slave-selection (67 seconds) Testing unit/cluster/shardid-propagation [ignore]: Not supported in tls mode [63/129 done]: unit/cluster/shardid-propagation (0 seconds) @@ -4596,23 +4638,23 @@ === (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 (0 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 (0 ms) -[ok]: Sharded pubsub publish behavior within multi/exec with write operation on primary (0 ms) -[ok]: Sharded pubsub publish behavior within multi/exec with write operation on replica (4 ms) -[ok]: SSUBSCRIBE client killed during transaction (24 ms) -[64/129 done]: unit/cluster/sharded-pubsub (12 seconds) +[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 (0 ms) +[ok]: SSUBSCRIBE client killed during transaction (25 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]: 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 (1 ms) -[ok]: Cross slot commands are allowed by default if they disagree with pre-declared keys (1 ms) -[ok]: Function no-cluster flag (1 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 (0 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 (3 ms) +[ok]: Calling cluster shards in scripts is OK (1 ms) [65/129 done]: unit/cluster/scripting (2 seconds) Testing unit/cluster/replica-migration === (external:skip cluster) Starting server on 127.0.0.1:21839 ok @@ -4623,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 (19425 ms) +[ok]: Migrated replica reports zero repl offset and rank, and fails to win election - shutdown (18826 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 @@ -4632,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 (9420 ms) +[ok]: Migrated replica reports zero repl offset and rank, and fails to win election - sigstop (9696 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 @@ -4641,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 (4055 ms) +[ok]: New non-empty replica reports zero repl offset and rank, and fails to win election - shutdown (3428 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 @@ -4650,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 (5657 ms) +[ok]: New non-empty replica reports zero repl offset and rank, and fails to win election - sigstop (3389 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 @@ -4659,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 (15975 ms) +[ok]: Sub-replica reports zero repl offset and rank, and fails to win election - shutdown (13661 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 @@ -4668,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 (5910 ms) +[ok]: Sub-replica reports zero repl offset and rank, and fails to win election - sigstop (3940 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 @@ -4677,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 (5434 ms) +[ok]: valkey-cli make source node ignores NOREPLICAS error when doing the last CLUSTER SETSLOT - gossip (5327 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 @@ -4686,23 +4728,23 @@ === (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 (5277 ms) +[ok]: valkey-cli make source node ignores NOREPLICAS error when doing the last CLUSTER SETSLOT - setslot (5336 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 (120 ms) -[66/129 done]: unit/cluster/replica-migration (175 seconds) +[ok]: Empty primary will check and delete the dirty slots (58 ms) +[66/129 done]: unit/cluster/replica-migration (163 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 (86 ms) -[ok]: Cluster is writable (257 ms) -[ok]: Fill up primary with data (8 ms) -[ok]: Add new node as replica (0 ms) -[ok]: Check digest and replica state (1 ms) -[ok]: Replica in loading state is hidden (5719 ms) -[ok]: Check disconnected replica not hidden from slots (125 ms) -[67/129 done]: unit/cluster/replica-in-sync (18 seconds) +[ok]: Cluster is up (45 ms) +[ok]: Cluster is writable (183 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 (5009 ms) +[ok]: Check disconnected replica not hidden from slots (228 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 === (external:skip cluster) Starting server on 127.0.0.1:21979 ok @@ -4711,11 +4753,11 @@ === (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 (19 ms) -[ok]: client can subscribe to multiple shard channels across different slots in separate call (5 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 (1 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 (112 ms) -[ok]: PUBSUB channels/shardchannels (92 ms) +[ok]: Verify Pub/Sub and Pub/Sub shard no overlap (99 ms) +[ok]: PUBSUB channels/shardchannels (91 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 @@ -4724,15 +4766,14 @@ === (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 (187 ms) -[ok]: Migrate a slot, verify client receives sunsubscribe on primary serving the slot. (60 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. (89 ms) -[ok]: Move a replica to another primary, verify client receives sunsubscribe on replica serving the slot. (94 ms) -[ok]: Delete a slot, verify sunsubscribe message (23 ms) -[ok]: Reset cluster, verify sunsubscribe message (49 ms) -Waiting for process 950143 to exit... -[69/129 done]: unit/cluster/pubsubshard-slot-migration (14 seconds) +[ok]: Cluster is up (144 ms) +[ok]: Migrate a slot, verify client receives sunsubscribe on primary serving the slot. (79 ms) +[ok]: Client subscribes to multiple channels, migrate a slot, verify client receives sunsubscribe on primary serving the slot. (109 ms) +[ok]: Migrate a slot, verify client receives sunsubscribe on replica serving the slot. (158 ms) +[ok]: Move a replica to another primary, verify client receives sunsubscribe on replica serving the slot. (130 ms) +[ok]: Delete a slot, verify sunsubscribe message (39 ms) +[ok]: Reset cluster, verify sunsubscribe message (39 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 === (external:skip cluster) Starting server on 127.0.0.1:22003 ok @@ -4744,13 +4785,13 @@ === (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 (12 ms) -[ok]: Test publishing to slave (12 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 (2 ms) -[70/129 done]: unit/cluster/pubsub (16 seconds) +[70/129 done]: unit/cluster/pubsub (15 seconds) Testing unit/cluster/noaddr === (external:skip cluster) Starting server on 127.0.0.1:22027 ok === (external:skip cluster) Starting server on 127.0.0.1:22029 ok @@ -4758,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 (1109 ms) -[71/129 done]: unit/cluster/noaddr (13 seconds) +[ok]: NOADDR nodes will be marked as FAIL (857 ms) +[71/129 done]: unit/cluster/noaddr (12 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 @@ -4767,14 +4808,14 @@ === (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 (209 ms) +[ok]: Cluster is up (76 ms) [ok]: Instance #3 is a replica (1 ms) -[ok]: Instance #3 synced with the master (0 ms) -[ok]: The nofailover flag is propagated (106 ms) -[ok]: Killing one master node (38 ms) -[ok]: Cluster should be still down after some time (3239 ms) -[ok]: Instance #3 is still a replica (0 ms) -[ok]: Restarting the previously killed master node (6 ms) +[ok]: Instance #3 synced with the master (1 ms) +[ok]: The nofailover flag is propagated (207 ms) +[ok]: Killing one master node (17 ms) +[ok]: Cluster should be still down after some time (3266 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) Testing unit/cluster/multi-slot-operations === (external:skip cluster) Starting server on 127.0.0.1:22051 ok @@ -4782,18 +4823,18 @@ === (external:skip cluster) Starting server on 127.0.0.1:22055 ok === (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 (1 ms) -[ok]: ADDSLOTSRANGE command with several boundary conditions test suite (2 ms) -[ok]: DELSLOTSRANGE command with several boundary conditions test suite (4 ms) -[73/129 done]: unit/cluster/multi-slot-operations (4 seconds) +[ok]: Continuous slots distribution (12 ms) +[ok]: ADDSLOTS command with several boundary conditions test suite (2 ms) +[ok]: ADDSLOTSRANGE command with several boundary conditions test suite (1 ms) +[ok]: DELSLOTSRANGE command with several boundary conditions test suite (5 ms) +[73/129 done]: unit/cluster/multi-slot-operations (3 seconds) Testing unit/cluster/misc === (external:skip cluster) Starting server on 127.0.0.1:22061 ok === (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 (24 ms) -[ok]: Coverage: Basic cluster commands (1 ms) +[ok]: Key lazy expires during key migration (14 ms) +[ok]: Coverage: Basic cluster commands (8 ms) [74/129 done]: unit/cluster/misc (12 seconds) Testing unit/cluster/many-slot-migration === (external:skip cluster) Starting server on 127.0.0.1:22069 ok @@ -4806,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 (306 ms) -[ok]: Set many keys (8968 ms) -[ok]: Keys are accessible (7987 ms) -[ok]: Init migration of many slots (1457 ms) -[ok]: Fix cluster (18418 ms) -[ok]: Keys are accessible (16664 ms) -[75/129 done]: unit/cluster/many-slot-migration (58 seconds) +[ok]: Cluster is up (244 ms) +[ok]: Set many keys (22384 ms) +[ok]: Keys are accessible (21038 ms) +[ok]: Init migration of many slots (2222 ms) +[ok]: Fix cluster (17559 ms) +[ok]: Keys are accessible (20365 ms) +[75/129 done]: unit/cluster/many-slot-migration (89 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 @@ -4824,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 (342 ms) -[ok]: Cluster is writable (304 ms) -[ok]: Killing majority of master nodes (119 ms) -[ok]: Cluster should eventually be down (3397 ms) -[ok]: Use takeover to bring slaves back (5 ms) -[ok]: Cluster should eventually be up again (3252 ms) -[ok]: Cluster is writable (284 ms) +[ok]: Cluster is up (331 ms) +[ok]: Cluster is writable (335 ms) +[ok]: Killing majority of master nodes (101 ms) +[ok]: Cluster should eventually be down (3372 ms) +[ok]: Use takeover to bring slaves back (8 ms) +[ok]: Cluster should eventually be up again (3186 ms) +[ok]: Cluster is writable (340 ms) [ok]: Instance #5, #6, #7 are now masters (1 ms) -[ok]: Restarting the previously killed master nodes (12 ms) -[ok]: Instance #0, #1, #2 gets converted into a slaves (203 ms) +[ok]: Restarting the previously killed master nodes (18 ms) +[ok]: Instance #0, #1, #2 gets converted into a slaves (48 ms) [76/129 done]: unit/cluster/manual-takeover (21 seconds) Testing unit/cluster/manual-failover === (external:skip cluster) Starting server on 127.0.0.1:22109 ok @@ -4846,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 (313 ms) -[ok]: Cluster is writable (301 ms) +[ok]: Cluster is up (221 ms) +[ok]: Cluster is writable (172 ms) [ok]: Instance #5 is a slave (0 ms) [ok]: Instance #5 synced with the master (0 ms) -WWWWWWWWWW[ok]: Send CLUSTER FAILOVER to #5, during load (4101 ms) -[ok]: Wait for failover (42 ms) -[ok]: Cluster should eventually be up again (386 ms) -[ok]: Cluster is writable (262 ms) +WWWWWWWWWW[ok]: Send CLUSTER FAILOVER to #5, during load (2780 ms) +[ok]: Wait for failover (22 ms) +[ok]: Cluster should eventually be up again (163 ms) +[ok]: Cluster is writable (236 ms) [ok]: Instance #5 is now a master (1 ms) -[ok]: Verify 50000 keys for consistency with logical content (4238 ms) -[ok]: Instance #0 gets converted into a slave (54 ms) +[ok]: Verify 50000 keys for consistency with logical content (2227 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 @@ -4867,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 (170 ms) -[ok]: Cluster is writable (215 ms) +[ok]: Cluster is up (165 ms) +[ok]: Cluster is writable (205 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 (0 ms) [ok]: Send CLUSTER FAILOVER to instance #5 (0 ms) -[ok]: Instance #5 is still a slave after some time (no failover) (5006 ms) -[ok]: Wait for instance #0 to return back alive (4997 ms) +[ok]: Instance #5 is still a slave after some time (no failover) (5004 ms) +[ok]: Wait for instance #0 to return back alive (4996 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 @@ -4890,70 +4931,70 @@ === (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 (429 ms) -[ok]: Cluster is writable (205 ms) -[ok]: Instance #5 is a slave (1 ms) +[ok]: Cluster is up (331 ms) +[ok]: Cluster is writable (226 ms) +[ok]: Instance #5 is a slave (0 ms) [ok]: Instance #5 synced with the master (0 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 (1 ms) -[ok]: Wait for instance #0 to return back alive (9998 ms) +[ok]: Instance #5 is a master after some time (59 ms) +[ok]: Wait for instance #0 to return back alive (9941 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 (5164 ms) +[ok]: Manual failover vote is not limited by two times the node timeout - drop the auth ack (5162 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 (3980 ms) +[ok]: Manual failover vote is not limited by two times the node timeout - mixed failover (3870 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 (4152 ms) +[ok]: Automatic failover vote is not limited by two times the node timeout - mixed failover (4016 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 (5111 ms) +[ok]: Manual failover will reset the on-going election (5101 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 (164 ms) -[77/129 done]: unit/cluster/manual-failover (150 seconds) +[ok]: Broadcast PONG to the cluster when the node role changes (179 ms) +[77/129 done]: unit/cluster/manual-failover (142 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 -[ok]: Broadcast message across a cluster shard while a cluster link is down (135 ms) +[ok]: Broadcast message across a cluster shard while a cluster link is down (130 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 (19 ms) +[ok]: Each node has two links with each peer (5 ms) [ok]: Validate cluster links format (0 ms) -[ok]: Disconnect link when send buffer limit reached (10627 ms) -[ok]: Link memory increases with publishes (698 ms) -[ok]: Link memory resets after publish messages flush (238 ms) -[78/129 done]: unit/cluster/links (28 seconds) +[ok]: Disconnect link when send buffer limit reached (9290 ms) +[ok]: Link memory increases with publishes (715 ms) +[ok]: Link memory resets after publish messages flush (952 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 (42 ms) +[ok]: Cluster should start ok (27 ms) [ok]: errorstats: rejected call due to MOVED Redirection (2 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 (3380 ms) -[79/129 done]: unit/cluster/info (8 seconds) +[ok]: fail reason changed (3521 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 (108 ms) -[ok]: Human nodenames are visible in log messages (3588 ms) +[ok]: Set cluster human announced nodename and let it propagate (105 ms) +[ok]: Human nodenames are visible in log messages (4065 ms) [80/129 done]: unit/cluster/human-announced-nodename (7 seconds) Testing unit/cluster/hostnames === (external:skip cluster) Starting server on 127.0.0.1:22247 ok @@ -4963,36 +5004,36 @@ === (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 (269 ms) -[ok]: Update hostnames and make sure they are all eventually propagated (173 ms) -[ok]: Remove hostnames and make sure they are all eventually propagated (249 ms) -[ok]: Verify cluster-preferred-endpoint-type behavior for redirects and info (88 ms) -[ok]: Verify the nodes configured with prefer hostname only show hostname for new nodes (1110 ms) -[ok]: Test restart will keep hostname information (382 ms) -[ok]: Test hostname validation (1 ms) +[ok]: Set cluster hostnames and verify they are propagated (234 ms) +[ok]: Update hostnames and make sure they are all eventually propagated (238 ms) +[ok]: Remove hostnames and make sure they are all eventually propagated (236 ms) +[ok]: Verify cluster-preferred-endpoint-type behavior for redirects and info (136 ms) +[ok]: Verify the nodes configured with prefer hostname only show hostname for new nodes (1177 ms) +[ok]: Test restart will keep hostname information (278 ms) +[ok]: Test hostname validation (2 ms) [81/129 done]: unit/cluster/hostnames (14 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 (92 ms) -[ok]: Half init migration in 'migrating' is fixable (147 ms) -[ok]: Half init migration in 'importing' is fixable (139 ms) -[ok]: Init migration and move key (222 ms) -[ok]: Move key again (36 ms) -[ok]: Half-finish migration (241 ms) -[ok]: Move key back (46 ms) -[ok]: Half-finish importing (299 ms) +[ok]: Cluster is up (47 ms) +[ok]: Half init migration in 'migrating' is fixable (188 ms) +[ok]: Half init migration in 'importing' is fixable (182 ms) +[ok]: Init migration and move key (317 ms) +[ok]: Move key again (82 ms) +[ok]: Half-finish migration (279 ms) +[ok]: Move key back (38 ms) +[ok]: Half-finish importing (209 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 (3119 ms) +[ok]: Verify that single primary marks replica as failed (3083 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 (6322 ms) +[ok]: Verify that multiple primaries mark replica as failed (3321 ms) [ignore]: Not supported in tls mode -[83/129 done]: unit/cluster/failure-marking (32 seconds) +[83/129 done]: unit/cluster/failure-marking (29 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 @@ -5001,14 +5042,14 @@ === (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 (339 ms) -[ok]: Cluster is writable (227 ms) -[ok]: Killing one primary node (40 ms) -[ok]: Wait for failover (7075 ms) -[ok]: Killing the new primary node (28 ms) -[ok]: Cluster should eventually be up again (184 ms) -[ok]: wait for new failover (6724 ms) -[ok]: Restarting the previously killed primary nodes (18 ms) +[ok]: Cluster is up (97 ms) +[ok]: Cluster is writable (136 ms) +[ok]: Killing one primary node (16 ms) +[ok]: Wait for failover (7004 ms) +[ok]: Killing the new primary node (39 ms) +[ok]: Cluster should eventually be up again (200 ms) +[ok]: wait for new failover (6418 ms) +[ok]: Restarting the previously killed primary nodes (11 ms) [ok]: Make sure there is no failover timeout (12 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 @@ -5020,7 +5061,7 @@ === (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 (7300 ms) +[ok]: Primaries will not time out then they are elected in the same epoch (7407 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 @@ -5068,18 +5109,18 @@ === (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 (21249 ms) +[ok]: Multiple primary nodes are down, rank them based on the failed primary (20409 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 (19044 ms) +[ok]: Replica can update the config epoch when trigger the failover - automatic (17063 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 (9673 ms) -[84/129 done]: unit/cluster/failover2 (172 seconds) +[ok]: Replica can update the config epoch when trigger the failover - manual (8421 ms) +[84/129 done]: unit/cluster/failover2 (140 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 @@ -5091,17 +5132,17 @@ === (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 (567 ms) -[ok]: Cluster is writable (297 ms) +[ok]: Cluster is up (343 ms) +[ok]: Cluster is writable (314 ms) [ok]: Instance #5 is a slave (1 ms) [ok]: Instance #5 synced with the master (1 ms) -[ok]: Killing one master node (58 ms) -[ok]: Wait for failover (4234 ms) -[ok]: Cluster should eventually be up again (466 ms) -[ok]: Cluster is writable (293 ms) -[ok]: Instance #5 is now a master (1 ms) -[ok]: Restarting the previously killed master node (6 ms) -[ok]: Instance #0 gets converted into a slave (318 ms) +[ok]: Killing one master node (38 ms) +[ok]: Wait for failover (3848 ms) +[ok]: Cluster should eventually be up again (347 ms) +[ok]: Cluster is writable (242 ms) +[ok]: Instance #5 is now a master (0 ms) +[ok]: Restarting the previously killed master node (1 ms) +[ok]: Instance #0 gets converted into a slave (135 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 @@ -5111,15 +5152,15 @@ === (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 (557 ms) -[ok]: Cluster is writable (260 ms) -[ok]: Killing the first primary node (53 ms) -[ok]: Wait for failover (4099 ms) -[ok]: Cluster should eventually be up again (466 ms) +[ok]: Cluster is up (154 ms) +[ok]: Cluster is writable (139 ms) +[ok]: Killing the first primary node (16 ms) +[ok]: Wait for failover (4284 ms) +[ok]: Cluster should eventually be up again (258 ms) [ok]: Restarting the previously killed primary node (1 ms) -[ok]: Instance #0 gets converted into a replica (265 ms) -[ok]: Make sure the replicas always get the different ranks (19 ms) -[85/129 done]: unit/cluster/failover (41 seconds) +[ok]: Instance #0 gets converted into a replica (165 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 @@ -5131,14 +5172,14 @@ === (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 (623 ms) -[ok]: Killing two slave nodes (113 ms) -[ok]: Cluster should be still up (520 ms) -[ok]: Killing one master node (67 ms) -[ok]: Cluster should be down now (536 ms) -[ok]: Restarting master node (54 ms) -[ok]: Cluster should be up again (612 ms) -[86/129 done]: unit/cluster/faildet (17 seconds) +[ok]: Cluster should start ok (257 ms) +[ok]: Killing two slave nodes (58 ms) +[ok]: Cluster should be still up (243 ms) +[ok]: Killing one master node (27 ms) +[ok]: Cluster should be down now (199 ms) +[ok]: Restarting master node (28 ms) +[ok]: Cluster should be up again (227 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 @@ -5148,22 +5189,24 @@ === () 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 (1136 ms) +[ok]: divergent cluster shardid conflict (1026 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 (89 ms) -[ok]: Cluster is writable (169 ms) -[ok]: Main db not affected when fail to diskless load (149065 ms) -Waiting for process 1138333 to exit... -Waiting for process 1138333 to exit... -Waiting for process 1138333 to exit... -Waiting for process 1138333 to exit... -Waiting for process 1138333 to exit... -Waiting for process 1138333 to exit... -Waiting for process 1138333 to exit... -[88/129 done]: unit/cluster/diskless-load-swapdb (529 seconds) +[ok]: Cluster should start ok (52 ms) +[ok]: Cluster is writable (166 ms) +[ok]: Main db not affected when fail to diskless load (83152 ms) +Waiting for process 2083340 to exit... +Waiting for process 2083340 to exit... +Waiting for process 2083340 to exit... +Waiting for process 2083340 to exit... +Waiting for process 2083340 to exit... +Waiting for process 2083340 to exit... +Waiting for process 2083340 to exit... +Waiting for process 2083340 to exit... +Waiting for process 2083340 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 @@ -5175,11 +5218,11 @@ === (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 (783 ms) -[ok]: Cluster is writable (330 ms) -[ok]: Slave expired keys is loaded when restarted: appendonly=no (5369 ms) -[ok]: Slave expired keys is loaded when restarted: appendonly=yes (12885 ms) -[89/129 done]: unit/cluster/consistency-check (35 seconds) +[ok]: Cluster should start ok (119 ms) +[ok]: Cluster is writable (166 ms) +[ok]: Slave expired keys is loaded when restarted: appendonly=no (3399 ms) +[ok]: Slave expired keys is loaded when restarted: appendonly=yes (3329 ms) +[89/129 done]: unit/cluster/consistency-check (20 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 @@ -5196,16 +5239,16 @@ === (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 (792 ms) -[ok]: Cluster is writable (390 ms) +[ok]: Cluster is up (224 ms) +[ok]: Cluster is writable (186 ms) [ok]: Instance #5 is a slave (0 ms) -[ok]: client do not break when cluster slot (6449 ms) -[ok]: client can handle keys with hash tag (211 ms) -[ok]: slot migration is valid from primary to another primary (200 ms) -[ok]: slot migration is invalid from primary to replica (214 ms) -[ok]: slot must be unbound on the owner when it is deleted (26657 ms) -[ok]: CLUSTER SLOTS from non-TLS client in TLS cluster (15734 ms) -[90/129 done]: unit/cluster/cluster-slots (494 seconds) +[ok]: client do not break when cluster slot (2016 ms) +[ok]: client can handle keys with hash tag (99 ms) +[ok]: slot migration is valid from primary to another primary (101 ms) +[ok]: slot migration is invalid from primary to replica (114 ms) +[ok]: slot must be unbound on the owner when it is deleted (8246 ms) +[ok]: CLUSTER SLOTS from non-TLS client in TLS cluster (4133 ms) +[90/129 done]: unit/cluster/cluster-slots (88 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 @@ -5213,12 +5256,12 @@ === (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 (558 ms) -[ok]: Cluster shards response is ok for shard 0 (3 ms) -[ok]: Kill a node and tell the replica to immediately takeover (86 ms) -[ok]: Verify health as fail for killed node (3191 ms) -[ok]: CLUSTER SHARDS slot response is non-empty when primary node fails (4 ms) -[91/129 done]: unit/cluster/cluster-shards (16 seconds) +[ok]: Cluster should start ok (91 ms) +[ok]: Cluster shards response is ok for shard 0 (2 ms) +[ok]: Kill a node and tell the replica to immediately takeover (24 ms) +[ok]: Verify health as fail for killed node (3179 ms) +[ok]: CLUSTER SHARDS slot response is non-empty when primary node fails (2 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 @@ -5226,10 +5269,10 @@ === (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 (45 ms) -[ok]: CLUSTER SLOTS with different connection type -- tls-cluster yes (157 ms) -[ok]: CLUSTER NODES return port according to connection type -- tls-cluster yes (81 ms) -[ok]: Set many keys in the cluster -- tls-cluster yes (2663 ms) +[ok]: CLUSTER SLOTS cached using EVAL over TLS -- tls-cluster yes (17 ms) +[ok]: CLUSTER SLOTS with different connection type -- tls-cluster yes (64 ms) +[ok]: CLUSTER NODES return port according to connection type -- tls-cluster yes (41 ms) +[ok]: Set many keys in the cluster -- tls-cluster yes (1611 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 @@ -5237,38 +5280,38 @@ === (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 (31 ms) -[ok]: CLUSTER SLOTS with different connection type -- tls-cluster no (120 ms) -[ok]: CLUSTER NODES return port according to connection type -- tls-cluster no (72 ms) -[ok]: Set many keys in the cluster -- tls-cluster no (1846 ms) +[ok]: CLUSTER SLOTS cached using EVAL over TLS -- tls-cluster no (13 ms) +[ok]: CLUSTER SLOTS with different connection type -- tls-cluster no (40 ms) +[ok]: CLUSTER NODES return port according to connection type -- tls-cluster no (41 ms) +[ok]: Set many keys in the cluster -- tls-cluster no (1234 ms) [ok]: Test cluster responses during migration of slot x -- tls-cluster no (2 ms) -[92/129 done]: unit/cluster/cluster-response-tls (32 seconds) +[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 (11214 ms) +[ok]: Handshake eventually succeeds after node handshake timeout on both sides with inconsistent view of the cluster (11232 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 (5245 ms) -[93/129 done]: unit/cluster/cluster-reliable-meet (22 seconds) +[ok]: Handshake eventually succeeds after node handshake timeout on one side with inconsistent view of the cluster (8191 ms) +[93/129 done]: unit/cluster/cluster-reliable-meet (24 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 (195 ms) -[ok]: Continuous slots distribution (3 ms) -[ok]: Discontinuous slots distribution (4 ms) -[94/129 done]: unit/cluster/cluster-nodes-slots (12 seconds) +[ok]: Cluster should start ok (93 ms) +[ok]: Continuous slots distribution (6 ms) +[ok]: Discontinuous slots distribution (7 ms) +[94/129 done]: unit/cluster/cluster-nodes-slots (11 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) +[96/129 done]: unit/cluster/cli (1 seconds) Testing unit/cluster/base [ignore]: Not supported in tls mode [97/129 done]: unit/cluster/base (0 seconds) @@ -5277,663 +5320,664 @@ === (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 (212 ms) -[ok]: Test change cluster-announce-bus-port at runtime (212 ms) -[ok]: Test change port and tls-port on runtime (110 ms) -[98/129 done]: unit/cluster/announced-endpoints (12 seconds) +[ok]: Test change cluster-announce-port and cluster-announce-tls-port at runtime (106 ms) +[ok]: Test change cluster-announce-bus-port at runtime (104 ms) +[ok]: Test change port and tls-port on runtime (106 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 (0 ms) -[ok]: Set cluster announced IPv4 and check that it propagates (132 ms) -[ok]: Clear announced client IPv4 and check that it propagates (120 ms) +[ok]: Set cluster announced IPv4 to invalid IP (1 ms) +[ok]: Set cluster announced IPv4 and check that it propagates (113 ms) +[ok]: Clear announced client IPv4 and check that it propagates (109 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 (1 ms) -[ok]: Set cluster announced IPv6 and check that it propagates (322 ms) -[ok]: Clear announced client IPv6 and check that it propagates (223 ms) +[ok]: Set cluster announced IPv6 and check that it propagates (161 ms) +[ok]: Clear announced client IPv6 and check that it propagates (108 ms) === (external:skip cluster) Starting server on 127.0.0.1:22624 ok -[ok]: Load cluster announced IPv4 config on server start (233 ms) +[ok]: Load cluster announced IPv4 config on server start (271 ms) === (external:skip cluster ipv6) Starting server on 127.0.0.1:22626 ok -[ok]: Load cluster announced IPv6 config on server start (265 ms) -[99/129 done]: unit/cluster/announce-client-ip (29 seconds) +[ok]: Load cluster announced IPv6 config on server start (228 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 (132 ms) -[ok]: Interactive CLI: Status reply (101 ms) -[ok]: Interactive CLI: Integer reply (105 ms) +[ok]: Interactive CLI: INFO response should be printed raw (105 ms) +[ok]: Interactive CLI: Status reply (104 ms) +[ok]: Interactive CLI: Integer reply (102 ms) [ok]: Interactive CLI: Bulk reply (102 ms) -[ok]: Interactive CLI: Multi-bulk reply (106 ms) -[ok]: Interactive CLI: Parsing quotes (721 ms) -[ok]: Interactive CLI: Subscribed mode (1025 ms) -[ok]: Interactive non-TTY CLI: Subscribed mode (700 ms) -[ok]: Non-interactive TTY CLI: Status reply (40 ms) -[ok]: Non-interactive TTY CLI: Integer reply (39 ms) -[ok]: Non-interactive TTY CLI: Bulk reply (36 ms) -[ok]: Non-interactive TTY CLI: Multi-bulk reply (25 ms) -[ok]: Non-interactive TTY CLI: Read last argument from pipe (140 ms) -[ok]: Non-interactive TTY CLI: Read last argument from file (67 ms) -[ok]: Non-interactive TTY CLI: Escape character in JSON mode (459 ms) -[ok]: Non-interactive non-TTY CLI: Status reply (25 ms) -[ok]: Non-interactive non-TTY CLI: Integer reply (38 ms) -[ok]: Non-interactive non-TTY CLI: Bulk reply (49 ms) -[ok]: Non-interactive non-TTY CLI: Multi-bulk reply (63 ms) -[ok]: Non-interactive non-TTY CLI: Quoted input arguments (56 ms) -[ok]: Non-interactive non-TTY CLI: No accidental unquoting of input arguments (82 ms) -[ok]: Non-interactive non-TTY CLI: Invalid quoted input arguments (111 ms) -[ok]: Non-interactive non-TTY CLI: Read last argument from pipe (104 ms) -[ok]: Non-interactive non-TTY CLI: Read last argument from file (121 ms) -[ok]: Non-interactive non-TTY CLI: Test command-line hinting - latest server (73 ms) -[ok]: Non-interactive non-TTY CLI: Test command-line hinting - no server (17 ms) -[ok]: Non-interactive non-TTY CLI: Test command-line hinting - old server (57 ms) -[ok]: Dumping an RDB - functions only: no (2523 ms) -[ok]: Dumping an RDB - functions only: yes (659 ms) -[ok]: Scan mode (291 ms) -[ok]: Connecting as a replica (2257 ms) -[ok]: Piping raw protocol (1584 ms) -[ok]: Options -X with illegal argument (58 ms) -[ok]: DUMP RESTORE with -x option (240 ms) -[ok]: DUMP RESTORE with -X option (211 ms) -[ok]: valkey-cli pubsub mode with single standard channel subscription (322 ms) -[ok]: valkey-cli pubsub mode with multiple standard channel subscriptions (342 ms) -[ok]: valkey-cli pubsub mode with single shard channel subscription (335 ms) -[ok]: valkey-cli pubsub mode with multiple shard channel subscriptions (339 ms) -[ok]: valkey-cli pubsub mode with single pattern channel subscription (360 ms) -[ok]: valkey-cli pubsub mode with multiple pattern channel subscriptions (282 ms) -[ok]: valkey-cli pubsub mode when subscribing to the same channel (363 ms) -[ok]: valkey-cli pubsub mode with multiple subscription types (772 ms) -[ok]: valkey-cli make sure selected db survives connection drops (325 ms) -[ok]: Valid Connection Scheme: redis:// (48 ms) -[ok]: Valid Connection Scheme: valkey:// (35 ms) -[ok]: Valid Connection Scheme: rediss:// (32 ms) -[ok]: Valid Connection Scheme: valkeys:// (31 ms) -[100/129 done]: integration/valkey-cli (17 seconds) +[ok]: Interactive CLI: Multi-bulk reply (112 ms) +[ok]: Interactive CLI: Parsing quotes (726 ms) +[ok]: Interactive CLI: Subscribed mode (977 ms) +[ok]: Interactive non-TTY CLI: Subscribed mode (695 ms) +[ok]: Non-interactive TTY CLI: Status reply (43 ms) +[ok]: Non-interactive TTY CLI: Integer reply (40 ms) +[ok]: Non-interactive TTY CLI: Bulk reply (46 ms) +[ok]: Non-interactive TTY CLI: Multi-bulk reply (22 ms) +[ok]: Non-interactive TTY CLI: Read last argument from pipe (90 ms) +[ok]: Non-interactive TTY CLI: Read last argument from file (46 ms) +[ok]: Non-interactive TTY CLI: Escape character in JSON mode (291 ms) +[ok]: Non-interactive non-TTY CLI: Status reply (48 ms) +[ok]: Non-interactive non-TTY CLI: Integer reply (23 ms) +[ok]: Non-interactive non-TTY CLI: Bulk reply (22 ms) +[ok]: Non-interactive non-TTY CLI: Multi-bulk reply (22 ms) +[ok]: Non-interactive non-TTY CLI: Quoted input arguments (25 ms) +[ok]: Non-interactive non-TTY CLI: No accidental unquoting of input arguments (47 ms) +[ok]: Non-interactive non-TTY CLI: Invalid quoted input arguments (41 ms) +[ok]: Non-interactive non-TTY CLI: Read last argument from pipe (62 ms) +[ok]: Non-interactive non-TTY CLI: Read last argument from file (92 ms) +[ok]: Non-interactive non-TTY CLI: Test command-line hinting - latest server (52 ms) +[ok]: Non-interactive non-TTY CLI: Test command-line hinting - no server (19 ms) +[ok]: Non-interactive non-TTY CLI: Test command-line hinting - old server (60 ms) +[ok]: Dumping an RDB - functions only: no (1972 ms) +[ok]: Dumping an RDB - functions only: yes (591 ms) +[ok]: Scan mode (226 ms) +[ok]: Connecting as a replica (2175 ms) +[ok]: Piping raw protocol (760 ms) +[ok]: Options -X with illegal argument (59 ms) +[ok]: DUMP RESTORE with -x option (286 ms) +[ok]: DUMP RESTORE with -X option (277 ms) +[ok]: valkey-cli pubsub mode with single standard channel subscription (335 ms) +[ok]: valkey-cli pubsub mode with multiple standard channel subscriptions (346 ms) +[ok]: valkey-cli pubsub mode with single shard channel subscription (345 ms) +[ok]: valkey-cli pubsub mode with multiple shard channel subscriptions (345 ms) +[ok]: valkey-cli pubsub mode with single pattern channel subscription (345 ms) +[ok]: valkey-cli pubsub mode with multiple pattern channel subscriptions (284 ms) +[ok]: valkey-cli pubsub mode when subscribing to the same channel (344 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:// (46 ms) +[ok]: Valid Connection Scheme: valkey:// (46 ms) +[ok]: Valid Connection Scheme: rediss:// (47 ms) +[ok]: Valid Connection Scheme: valkeys:// (47 ms) +[100/129 done]: integration/valkey-cli (15 seconds) Testing integration/valkey-benchmark === () Starting server on 127.0.0.1:22630 ok -[ok]: benchmark: set,get (186 ms) -[ok]: benchmark: connecting using URI set,get (219 ms) -[ok]: benchmark: connecting using URI with authentication set,get (287 ms) -[ok]: benchmark: full test suite (3685 ms) -[ok]: benchmark: multi-thread set,get (677 ms) -[ok]: benchmark: pipelined full set,get (719 ms) -[ok]: benchmark: arbitrary command (139 ms) -[ok]: benchmark: keyspace length (900 ms) -[ok]: benchmark: clients idle mode should return error when reached maxclients limit (111 ms) -[ok]: benchmark: read last argument from stdin (229 ms) -[ok]: benchmark: specific tls-ciphers (937 ms) -[ok]: benchmark: tls connecting using URI with authentication set,get (154 ms) -[ok]: benchmark: specific tls-ciphersuites (614 ms) -[101/129 done]: integration/valkey-benchmark (9 seconds) +[ok]: benchmark: set,get (159 ms) +[ok]: benchmark: connecting using URI set,get (103 ms) +[ok]: benchmark: connecting using URI with authentication set,get (83 ms) +[ok]: benchmark: full test suite (1233 ms) +[ok]: benchmark: multi-thread set,get (635 ms) +[ok]: benchmark: pipelined full set,get (322 ms) +[ok]: benchmark: arbitrary command (51 ms) +[ok]: benchmark: keyspace length (288 ms) +[ok]: benchmark: clients idle mode should return error when reached maxclients limit (41 ms) +[ok]: benchmark: read last argument from stdin (106 ms) +[ok]: benchmark: specific tls-ciphers (389 ms) +[ok]: benchmark: tls connecting using URI with authentication set,get (73 ms) +[ok]: benchmark: specific tls-ciphersuites (319 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 (400 ms) +[ok]: Skip RDB checksum sync - tls:1, repl_diskless_sync:no, repl_diskless_load:disabled (329 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 (394 ms) +[ok]: Skip RDB checksum sync - tls:1, repl_diskless_sync:no, repl_diskless_load:on-empty-db (335 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 (382 ms) +[ok]: Skip RDB checksum sync - tls:1, repl_diskless_sync:no, repl_diskless_load:swapdb (344 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 (378 ms) +[ok]: Skip RDB checksum sync - tls:1, repl_diskless_sync:no, repl_diskless_load:flush-before-load (332 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 (496 ms) +[ok]: Skip RDB checksum sync - tls:1, repl_diskless_sync:yes, repl_diskless_load:disabled (350 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 (487 ms) +[ok]: Skip RDB checksum sync - tls:1, repl_diskless_sync:yes, repl_diskless_load:on-empty-db (356 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 (504 ms) +[ok]: Skip RDB checksum sync - tls:1, repl_diskless_sync:yes, repl_diskless_load:swapdb (354 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 (484 ms) -[102/129 done]: integration/skip-rdb-checksum (4 seconds) +[ok]: Skip RDB checksum sync - tls:1, repl_diskless_sync:yes, repl_diskless_load:flush-before-load (354 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) (2699 ms) +[ok]: Shutting down master waits for replica to catch up (sigterm) (2822 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) (3648 ms) +[ok]: Shutting down master waits for replica to catch up (shutdown) (2921 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 (3431 ms) +[ok]: Shutting down master waits for replica timeout (2931 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 (2743 ms) +[ok]: Shutting down master waits for replica then fails (2364 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 (910 ms) +[ok]: Shutting down master waits for replica then aborted (763 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 (804 ms) -[103/129 done]: integration/shutdown (14 seconds) +[ok]: Shutting down primary wait for replica after previous block (760 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 (0 ms) -[ok]: Slave is able to detect timeout during handshake (1 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 (121 ms) -[ok]: INCRBYFLOAT replication, should not remove expire (514 ms) -[ok]: GETSET replication (8 ms) -[ok]: BRPOPLPUSH replication, when blocking against empty list (19 ms) -[ok]: BRPOPLPUSH replication, list exists (1032 ms) -[ok]: BLMOVE (left, left) replication, when blocking against empty list (32 ms) -[ok]: BLMOVE (left, left) replication, list exists (1023 ms) -[ok]: BLMOVE (left, right) replication, when blocking against empty list (30 ms) -[ok]: BLMOVE (left, right) replication, list exists (1033 ms) -[ok]: BLMOVE (right, left) replication, when blocking against empty list (50 ms) -[ok]: BLMOVE (right, left) replication, list exists (1034 ms) -[ok]: BLMOVE (right, right) replication, when blocking against empty list (30 ms) -[ok]: BLMOVE (right, right) replication, list exists (1037 ms) -[ok]: BLPOP followed by role change, issue #2473 (249 ms) -[ok]: Replica output bytes metric (1 ms) +[ok]: Set instance A as slave of B (103 ms) +[ok]: INCRBYFLOAT replication, should not remove expire (616 ms) +[ok]: GETSET replication (4 ms) +[ok]: BRPOPLPUSH replication, when blocking against empty list (34 ms) +[ok]: BRPOPLPUSH replication, list exists (1038 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 (26 ms) +[ok]: BLMOVE (left, right) replication, list exists (1019 ms) +[ok]: BLMOVE (right, left) replication, when blocking against empty list (34 ms) +[ok]: BLMOVE (right, left) replication, list exists (1038 ms) +[ok]: BLMOVE (right, right) replication, when blocking against empty list (33 ms) +[ok]: BLMOVE (right, right) replication, list exists (1038 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" (1 ms) -[ok]: The role should immediately be changed to "replica" (0 ms) -[ok]: Sync should have transferred keys from master (3 ms) -[ok]: The link status should be up (0 ms) -[ok]: SET on the master should immediately propagate (813 ms) -[ok]: FLUSHDB / FLUSHALL should replicate (350 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 (827 ms) +[ok]: FLUSHDB / FLUSHALL should replicate (139 ms) [ok]: ROLE in master reports master with a slave (0 ms) -[ok]: ROLE in slave reports slave in connected state (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 (11851 ms) +[ok]: Connect multiple replicas at the same time (issue #141), master diskless=no, replica diskless=disabled dual-channel-replication-enabled=no (8351 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 (11393 ms) +[ok]: Connect multiple replicas at the same time (issue #141), master diskless=no, replica diskless=swapdb dual-channel-replication-enabled=no (8123 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 (10786 ms) +[ok]: Connect multiple replicas at the same time (issue #141), master diskless=yes, replica diskless=disabled dual-channel-replication-enabled=yes (9236 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 (9886 ms) +[ok]: Connect multiple replicas at the same time (issue #141), master diskless=yes, replica diskless=swapdb dual-channel-replication-enabled=yes (8450 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 (30724 ms) +[ok]: Master stream is correctly processed while the replica has a script in -BUSY state (19834 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 (1 ms) +[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 (481 ms) +[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 (1 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 (399 ms) -[ok]: Diskless load swapdb (async_loading): old database is exposed while async replication is in progress (931 ms) -[ok]: Busy script during async loading (1209 ms) -[ok]: Blocked commands and configs during async-loading (472 ms) -[ok]: Diskless load swapdb (async_loading): old database is exposed after async replication fails (6 ms) -Waiting for process 1282668 to exit... -Waiting for process 1282668 to exit... -Waiting for process 1282668 to exit... -Waiting for process 1282668 to exit... +[ok]: Diskless load swapdb (async_loading): replica enter async_loading (359 ms) +[ok]: Diskless load swapdb (async_loading): old database is exposed while async replication is in progress (883 ms) +[ok]: Busy script during async loading (1092 ms) +[ok]: Blocked commands and configs during async-loading (436 ms) +[ok]: Diskless load swapdb (async_loading): old database is exposed after async replication fails (1 ms) +Waiting for process 2336519 to exit... +Waiting for process 2336519 to exit... +Waiting for process 2336519 to exit... +Waiting for process 2336519 to exit... +Waiting for process 2336519 to exit... === (repl) Starting server on 127.0.0.1:22738 ok === () Starting server on 127.0.0.1:22740 ok -filling took 3638 ms (TODO: use pipeline) -{1284412:S 28 Nov 2026 12:35:26.850 # Internal error in RDB reading offset 8176111, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 50 -{1284412:S 28 Nov 2026 12:35:26.930 # Internal error in RDB reading offset 8176111, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 65 -{1284412:S 28 Nov 2026 12:35:27.019 # Internal error in RDB reading offset 6284718, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 80 -{1284412:S 28 Nov 2026 12:35:27.049 # 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.} 95 -{1284412:S 28 Nov 2026 12:35:27.113 # Internal error in RDB reading offset 8176111, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 110 -{1284412:S 28 Nov 2026 12:35:27.162 # Internal error in RDB reading offset 3528604, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 125 -{1284412:S 28 Nov 2026 12:35:27.206 # 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.} 140 -{1284412:S 28 Nov 2026 12:35:27.270 # Internal error in RDB reading offset 2092233, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 155 -{1284412:S 28 Nov 2026 12:35:27.346 # Internal error in RDB reading offset 8176111, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 170 -{1284412:S 28 Nov 2026 12:35:27.399 # Internal error in RDB reading offset 3528604, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 185 -{1284412:S 28 Nov 2026 12:35:27.438 # Internal error in RDB reading offset 2092233, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 200 -{1284412:S 28 Nov 2026 12:35:27.510 # Internal error in RDB reading offset 3528604, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 215 -{1284412:S 28 Nov 2026 12:35:27.833 * PRIMARY <-> REPLICA sync: Finished with success} 234 -{1284412:S 28 Nov 2026 12:35:28.398 # Internal error in RDB reading offset 12487834, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 260 -{1284412:S 28 Nov 2026 12:35:28.449 # Internal error in RDB reading offset 1700362, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 275 -{1284412:S 28 Nov 2026 12:35:28.499 # 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.} 290 -{1284412:S 28 Nov 2026 12:35:28.595 # Internal error in RDB reading offset 10474718, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 305 -{1284412:S 28 Nov 2026 12:35:28.663 # Internal error in RDB reading offset 6263117, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 320 -{1284412:S 28 Nov 2026 12:35:28.746 # Internal error in RDB reading offset 6263117, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 335 -{1284412:S 28 Nov 2026 12:35:28.831 # Internal error in RDB reading offset 12487834, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 350 -{1284412:S 28 Nov 2026 12:35:28.874 # Internal error in RDB reading offset 3545008, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 365 -{1284412:S 28 Nov 2026 12:35:28.925 # Internal error in RDB reading offset 1700362, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 380 -{1284412:S 28 Nov 2026 12:35:28.989 # Internal error in RDB reading offset 3545008, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 396 -{1284412:S 28 Nov 2026 12:35:29.070 # Internal error in RDB reading offset 3545008, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 411 -{1284412:S 28 Nov 2026 12:35:29.148 # Internal error in RDB reading offset 8192515, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 426 -{1284412:S 28 Nov 2026 12:35:29.242 # Internal error in RDB reading offset 10474718, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 441 -{1284412:S 28 Nov 2026 12:35:29.305 # Internal error in RDB reading offset 3545008, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 456 -{1284412:S 28 Nov 2026 12:35:29.347 # 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.} 471 -{1284412:S 28 Nov 2026 12:35:29.408 # Internal error in RDB reading offset 8192515, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 486 -{1284412:S 28 Nov 2026 12:35:29.481 # Internal error in RDB reading offset 12487834, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 501 -{1284412:S 28 Nov 2026 12:35:29.544 # Internal error in RDB reading offset 8192515, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 516 -{1284412:S 28 Nov 2026 12:35:29.595 # Internal error in RDB reading offset 1700362, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 531 -{1284412:S 28 Nov 2026 12:35:29.660 # Internal error in RDB reading offset 6263117, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 546 -{1284412:S 28 Nov 2026 12:35:29.747 # Internal error in RDB reading offset 8192515, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 561 -{1284412:S 28 Nov 2026 12:35:29.826 # Internal error in RDB reading offset 3545008, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 576 -{1284412:S 28 Nov 2026 12:35:29.878 # Internal error in RDB reading offset 1700362, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 591 -{1284412:S 28 Nov 2026 12:35:29.938 # Internal error in RDB reading offset 8192515, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 606 -{1284412:S 28 Nov 2026 12:35:29.995 # Internal error in RDB reading offset 1700362, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 621 -{1284412:S 28 Nov 2026 12:35:30.079 # Internal error in RDB reading offset 12487834, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 636 -{1284412:S 28 Nov 2026 12:35:30.121 # Internal error in RDB reading offset 1700362, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 651 -{1284412:S 28 Nov 2026 12:35:30.166 # 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.} 666 -{1284412:S 28 Nov 2026 12:35:30.233 # Internal error in RDB reading offset 8192515, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 681 -{1284412:S 28 Nov 2026 12:35:30.301 # Internal error in RDB reading offset 3545008, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 696 -{1284412:S 28 Nov 2026 12:35:30.347 # Internal error in RDB reading offset 3545008, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 711 -{1284412:S 28 Nov 2026 12:35:30.396 # Internal error in RDB reading offset 3545008, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 726 -{1284412:S 28 Nov 2026 12:35:30.464 # Internal error in RDB reading offset 12487834, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 741 -{1284412:S 28 Nov 2026 12:35:30.528 # Internal error in RDB reading offset 8192515, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 756 -{1284412:S 28 Nov 2026 12:35:30.856 * PRIMARY <-> REPLICA sync: Finished with success} 775 -{1284412:S 28 Nov 2026 12:35:31.377 # 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.} 801 -{1284412:S 28 Nov 2026 12:35:31.434 # Internal error in RDB reading offset 1700362, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 816 -{1284412:S 28 Nov 2026 12:35:31.491 # Internal error in RDB reading offset 12487834, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 831 -{1284412:S 28 Nov 2026 12:35:31.785 * PRIMARY <-> REPLICA sync: Finished with success} 850 -{1284412:S 28 Nov 2026 12:35:32.421 # Internal error in RDB reading offset 8192515, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 876 -{1284412:S 28 Nov 2026 12:35:32.478 # Internal error in RDB reading offset 1700362, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 891 -{1284412:S 28 Nov 2026 12:35:32.527 # Internal error in RDB reading offset 1700362, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 906 -{1284412:S 28 Nov 2026 12:35:32.581 # Internal error in RDB reading offset 3545008, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 921 -{1284412:S 28 Nov 2026 12:35:32.668 # Internal error in RDB reading offset 8192515, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 936 -{1284412:S 28 Nov 2026 12:35:32.752 # Internal error in RDB reading offset 12487834, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 951 -{1284412:S 28 Nov 2026 12:35:32.826 # Internal error in RDB reading offset 8192515, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 966 -{1284412:S 28 Nov 2026 12:35:32.906 # Internal error in RDB reading offset 6263117, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 981 -{1284412:S 28 Nov 2026 12:35:32.949 # 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.} 996 -{1284412:S 28 Nov 2026 12:35:33.010 # Internal error in RDB reading offset 6263117, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1011 -{1284412:S 28 Nov 2026 12:35:33.065 # Internal error in RDB reading offset 6263117, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1026 -{1284412:S 28 Nov 2026 12:35:33.160 # Internal error in RDB reading offset 14555388, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1041 -{1284412:S 28 Nov 2026 12:35:33.218 # Internal error in RDB reading offset 1700362, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1056 -{1284412:S 28 Nov 2026 12:35:33.298 # Internal error in RDB reading offset 6263117, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1071 -{1284412:S 28 Nov 2026 12:35:33.369 # Internal error in RDB reading offset 6263117, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1086 -{1284412:S 28 Nov 2026 12:35:33.438 # Internal error in RDB reading offset 6263117, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1101 -{1284412:S 28 Nov 2026 12:35:33.508 # Internal error in RDB reading offset 8192515, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1116 -{1284412:S 28 Nov 2026 12:35:33.589 # Internal error in RDB reading offset 12487834, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1131 -{1284412:S 28 Nov 2026 12:35:33.665 # Internal error in RDB reading offset 6263117, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1146 -{1284412:S 28 Nov 2026 12:35:33.726 # Internal error in RDB reading offset 1700362, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1161 -{1284412:S 28 Nov 2026 12:35:33.760 # 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.} 1176 -{1284412:S 28 Nov 2026 12:35:33.805 # Internal error in RDB reading offset 1700362, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1191 -{1284412:S 28 Nov 2026 12:35:33.850 # Internal error in RDB reading offset 3545008, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1206 -{1284412:S 28 Nov 2026 12:35:33.903 # Internal error in RDB reading offset 1700362, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1221 -{1284412:S 28 Nov 2026 12:35:33.983 # Internal error in RDB reading offset 8192515, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1236 -{1284412:S 28 Nov 2026 12:35:34.024 # 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.} 1251 -{1284412:S 28 Nov 2026 12:35:34.089 # Internal error in RDB reading offset 6263117, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1266 -{1284412:S 28 Nov 2026 12:35:34.169 # Internal error in RDB reading offset 6263117, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1281 -{1284412:S 28 Nov 2026 12:35:34.237 # Internal error in RDB reading offset 6263117, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1296 -{1284412:S 28 Nov 2026 12:35:34.292 # Internal error in RDB reading offset 6263117, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1311 -{1284412:S 28 Nov 2026 12:35:34.374 # Internal error in RDB reading offset 6263117, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1326 -{1284412:S 28 Nov 2026 12:35:34.438 # Internal error in RDB reading offset 1700362, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1341 -{1284412:S 28 Nov 2026 12:35:34.501 # Internal error in RDB reading offset 1700362, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1356 -{1284412:S 28 Nov 2026 12:35:34.586 # Internal error in RDB reading offset 16539508, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1371 -{1284412:S 28 Nov 2026 12:35:34.666 # Internal error in RDB reading offset 14555388, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1386 -{1284412:S 28 Nov 2026 12:35:34.722 # Internal error in RDB reading offset 3545008, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1401 -{1284412:S 28 Nov 2026 12:35:34.758 # 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.} 1416 -{1284412:S 28 Nov 2026 12:35:34.833 # Internal error in RDB reading offset 8192515, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1431 -{1284412:S 28 Nov 2026 12:35:34.886 # Internal error in RDB reading offset 3545008, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1446 -{1284412:S 28 Nov 2026 12:35:34.954 # Internal error in RDB reading offset 6263117, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1461 -{1284412:S 28 Nov 2026 12:35:35.034 # Internal error in RDB reading offset 8192515, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1476 -{1284412:S 28 Nov 2026 12:35:35.106 # Internal error in RDB reading offset 6263117, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1491 -{1284412:S 28 Nov 2026 12:35:35.172 # Internal error in RDB reading offset 8192515, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1506 -{1284412:S 28 Nov 2026 12:35:35.210 # 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.} 1521 -{1284412:S 28 Nov 2026 12:35:35.271 # Internal error in RDB reading offset 6263117, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1536 -{1284412:S 28 Nov 2026 12:35:35.339 # Internal error in RDB reading offset 14555388, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1551 -{1284412:S 28 Nov 2026 12:35:35.446 # Internal error in RDB reading offset 18667278, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1566 -{1284412:S 28 Nov 2026 12:35:35.518 # Internal error in RDB reading offset 6263117, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1581 -test took 8756 ms -[ok]: diskless loading short read (12912 ms) +filling took 8085 ms (TODO: use pipeline) +{2339084:S 27 Oct 2025 09:44:20.938 # Internal error in RDB reading offset 13981139, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 50 +{2339084:S 27 Oct 2025 09:44:21.031 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 65 +{2339084:S 27 Oct 2025 09:44:21.090 # Internal error in RDB reading offset 15913762, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 80 +{2339084:S 27 Oct 2025 09:44:21.157 # Internal error in RDB reading offset 15913762, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 95 +{2339084:S 27 Oct 2025 09:44:21.254 # Internal error in RDB reading offset 15913762, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 110 +{2339084:S 27 Oct 2025 09:44:21.342 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 125 +{2339084:S 27 Oct 2025 09:44:21.418 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 140 +{2339084:S 27 Oct 2025 09:44:21.483 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 155 +{2339084:S 27 Oct 2025 09:44:21.542 # Internal error in RDB reading offset 22441058, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 170 +{2339084:S 27 Oct 2025 09:44:21.601 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 185 +{2339084:S 27 Oct 2025 09:44:21.660 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 200 +{2339084:S 27 Oct 2025 09:44:21.725 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 215 +{2339084:S 27 Oct 2025 09:44:21.805 # Internal error in RDB reading offset 22441058, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 230 +{2339084:S 27 Oct 2025 09:44:21.870 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 245 +{2339084:S 27 Oct 2025 09:44:21.934 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 260 +{2339084:S 27 Oct 2025 09:44:21.998 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 275 +{2339084:S 27 Oct 2025 09:44:22.032 # Internal error in RDB reading offset 1642219, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 290 +{2339084:S 27 Oct 2025 09:44:22.122 # Internal error in RDB reading offset 29129311, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 305 +{2339084:S 27 Oct 2025 09:44:22.187 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 320 +{2339084:S 27 Oct 2025 09:44:22.213 # Internal error in RDB reading offset 1642219, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 335 +{2339084:S 27 Oct 2025 09:44:22.276 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 350 +{2339084:S 27 Oct 2025 09:44:22.338 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 365 +{2339084:S 27 Oct 2025 09:44:22.363 # Internal error in RDB reading offset 1642219, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 380 +{2339084:S 27 Oct 2025 09:44:22.418 # Internal error in RDB reading offset 20757698, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 395 +{2339084:S 27 Oct 2025 09:44:22.478 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 410 +{2339084:S 27 Oct 2025 09:44:22.538 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 425 +{2339084:S 27 Oct 2025 09:44:22.599 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 440 +{2339084:S 27 Oct 2025 09:44:22.658 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 455 +{2339084:S 27 Oct 2025 09:44:22.717 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 470 +{2339084:S 27 Oct 2025 09:44:22.776 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 485 +{2339084:S 27 Oct 2025 09:44:22.885 # Internal error in RDB reading offset 54202961, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 500 +{2339084:S 27 Oct 2025 09:44:22.945 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 515 +{2339084:S 27 Oct 2025 09:44:23.007 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 530 +{2339084:S 27 Oct 2025 09:44:23.077 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 545 +{2339084:S 27 Oct 2025 09:44:23.141 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 560 +{2339084:S 27 Oct 2025 09:44:23.218 # Internal error in RDB reading offset 35457829, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 575 +{2339084:S 27 Oct 2025 09:44:23.328 # Internal error in RDB reading offset 54202961, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 590 +{2339084:S 27 Oct 2025 09:44:23.388 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 605 +{2339084:S 27 Oct 2025 09:44:23.454 # Internal error in RDB reading offset 26924440, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 620 +{2339084:S 27 Oct 2025 09:44:23.515 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 635 +{2339084:S 27 Oct 2025 09:44:23.570 # Internal error in RDB reading offset 18843539, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 650 +{2339084:S 27 Oct 2025 09:44:23.650 # Internal error in RDB reading offset 22441058, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 665 +{2339084:S 27 Oct 2025 09:44:23.674 # 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.} 680 +{2339084:S 27 Oct 2025 09:44:23.738 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 695 +{2339084:S 27 Oct 2025 09:44:23.802 # Internal error in RDB reading offset 22441058, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 710 +{2339084:S 27 Oct 2025 09:44:23.908 # Internal error in RDB reading offset 49482957, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 725 +{2339084:S 27 Oct 2025 09:44:23.970 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 740 +{2339084:S 27 Oct 2025 09:44:24.032 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 755 +{2339084:S 27 Oct 2025 09:44:24.115 # Internal error in RDB reading offset 22441058, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 770 +{2339084:S 27 Oct 2025 09:44:24.228 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 785 +{2339084:S 27 Oct 2025 09:44:24.264 # Internal error in RDB reading offset 3698087, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 800 +{2339084:S 27 Oct 2025 09:44:24.343 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 815 +{2339084:S 27 Oct 2025 09:44:24.409 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 830 +{2339084:S 27 Oct 2025 09:44:24.468 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 845 +{2339084:S 27 Oct 2025 09:44:24.554 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 860 +{2339084:S 27 Oct 2025 09:44:24.656 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 875 +{2339084:S 27 Oct 2025 09:44:24.760 # Internal error in RDB reading offset 45724939, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 890 +{2339084:S 27 Oct 2025 09:44:24.820 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 905 +{2339084:S 27 Oct 2025 09:44:24.910 # Internal error in RDB reading offset 31351282, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 920 +{2339084:S 27 Oct 2025 09:44:24.936 # Internal error in RDB reading offset 1642219, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 935 +{2339084:S 27 Oct 2025 09:44:24.993 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 950 +{2339084:S 27 Oct 2025 09:44:25.042 # Internal error in RDB reading offset 15913762, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 965 +{2339084:S 27 Oct 2025 09:44:25.102 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 980 +{2339084:S 27 Oct 2025 09:44:25.154 # Internal error in RDB reading offset 18843539, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 995 +{2339084:S 27 Oct 2025 09:44:25.238 # Internal error in RDB reading offset 29129311, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1010 +{2339084:S 27 Oct 2025 09:44:25.331 # Internal error in RDB reading offset 18843539, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1025 +{2339084:S 27 Oct 2025 09:44:25.422 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1040 +{2339084:S 27 Oct 2025 09:44:25.491 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1055 +{2339084:S 27 Oct 2025 09:44:25.553 # Internal error in RDB reading offset 18843539, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1070 +{2339084:S 27 Oct 2025 09:44:25.620 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1085 +{2339084:S 27 Oct 2025 09:44:25.657 # Internal error in RDB reading offset 10458238, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1100 +{2339084:S 27 Oct 2025 09:44:25.750 # Internal error in RDB reading offset 45724939, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1115 +{2339084:S 27 Oct 2025 09:44:25.785 # Internal error in RDB reading offset 8112097, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1130 +{2339084:S 27 Oct 2025 09:44:25.845 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1145 +{2339084:S 27 Oct 2025 09:44:25.901 # Internal error in RDB reading offset 18843539, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1160 +{2339084:S 27 Oct 2025 09:44:25.986 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1175 +{2339084:S 27 Oct 2025 09:44:26.018 # 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.} 1190 +{2339084:S 27 Oct 2025 09:44:26.091 # Internal error in RDB reading offset 18843539, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1205 +{2339084:S 27 Oct 2025 09:44:26.171 # Internal error in RDB reading offset 31351282, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1220 +{2339084:S 27 Oct 2025 09:44:26.240 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1235 +{2339084:S 27 Oct 2025 09:44:26.303 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1250 +{2339084:S 27 Oct 2025 09:44:26.326 # Internal error in RDB reading offset 1642219, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1265 +{2339084:S 27 Oct 2025 09:44:26.357 # Internal error in RDB reading offset 5820843, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1280 +{2339084:S 27 Oct 2025 09:44:26.419 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1295 +{2339084:S 27 Oct 2025 09:44:26.480 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1310 +{2339084:S 27 Oct 2025 09:44:26.541 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1325 +{2339084:S 27 Oct 2025 09:44:26.613 # Internal error in RDB reading offset 18843539, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1340 +{2339084:S 27 Oct 2025 09:44:26.695 # Internal error in RDB reading offset 33495467, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1355 +{2339084:S 27 Oct 2025 09:44:26.760 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1370 +{2339084:S 27 Oct 2025 09:44:26.822 # Internal error in RDB reading offset 22441058, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1385 +{2339084:S 27 Oct 2025 09:44:26.882 # Internal error in RDB reading offset 22441058, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1400 +{2339084:S 27 Oct 2025 09:44:26.984 # Internal error in RDB reading offset 45724939, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1415 +{2339084:S 27 Oct 2025 09:44:27.044 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1430 +{2339084:S 27 Oct 2025 09:44:27.136 # Internal error in RDB reading offset 15913762, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1445 +{2339084:S 27 Oct 2025 09:44:27.202 # Internal error in RDB reading offset 11815724, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1460 +{2339084:S 27 Oct 2025 09:44:27.282 # Internal error in RDB reading offset 18843539, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1475 +{2339084:S 27 Oct 2025 09:44:27.364 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1490 +{2339084:S 27 Oct 2025 09:44:27.430 # Internal error in RDB reading offset 15913762, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1505 +{2339084:S 27 Oct 2025 09:44:27.500 # Internal error in RDB reading offset 24951697, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1520 +{2339084:S 27 Oct 2025 09:44:27.576 # Internal error in RDB reading offset 20757698, function at rdb.c:3419 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1535 +test took 6755 ms +[ok]: diskless loading short read (15275 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 (9247 ms) +[ok]: diskless no replicas drop during rdb pipe (6824 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 (4739 ms) +[ok]: diskless slow replicas drop during rdb pipe (3431 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 (7915 ms) +[ok]: diskless fast replicas drop during rdb pipe (5854 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 (2142 ms) +[ok]: diskless all replicas drop during rdb pipe (1403 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 (7239 ms) +[ok]: diskless timeout replicas drop during rdb pipe (7293 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 (1912 ms) +[ok]: diskless replication child being killed is collected (1679 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 (1376 ms) +[ok]: replication child dies when parent is killed - diskless: yes dual-channel-replication-enabled: yes (1349 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 (1603 ms) +[ok]: replication child dies when parent is killed - diskless: no dual-channel-replication-enabled: no (1570 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 (1060 ms) +[ok]: diskless replication read pipe cleanup (967 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 (2106 ms) +[ok]: replicaof right after disconnection (1972 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 (1390 ms) +[ok]: Kill rdb child process if its dumping RDB is not useful (1262 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 (2 ms) -[ok]: Discard cache master before loading transferred RDB when full sync with dual-channel-replication yes (130 ms) +[ok]: Don't disconnect with replicas before loading transferred RDB when full sync with dual-channel-replication yes (4 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 (2 ms) -[ok]: Discard cache master before loading transferred RDB when full sync with dual-channel-replication no (110 ms) +[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 (858 ms) +[ok]: replica can handle EINTR if use diskless load (860 ms) === (repl external:skip) Starting server on 127.0.0.1:22812 ok SYNC _addReplyToBufferOrList: REDIS0011ú valkey-ver8.1.4ú -redis-bitsÀ@úctimeÂ…s kúused-mem˜iúrepl-stream-dbÀúrepl-id(e6d390f143aa9cc3140328cd90fab837bf7900b5ú repl-offsetÀúaof-baseÀÿŒ YƦ9^ï -[ok]: replica do not write the reply to the replication link - SYNC (_addReplyToBufferOrList) (53 ms) +redis-bitsÀ@úctimeÂAzþhúused-memÂøhúrepl-stream-dbÀúrepl-id(93360a43065808c90f5f7fbc75e7f21418d5fe36ú repl-offsetÀúaof-baseÀÿ½®Aƒ*  +Å +[ok]: replica do not write the reply to the replication link - SYNC (_addReplyToBufferOrList) (49 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) (126 ms) +Waiting for background save to finish... [ok]: replica do not write the reply to the replication link - SYNC (addReplyDeferredLen) (132 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) (91 ms) +Waiting for background save to finish... [ok]: replica do not write the reply to the replication link - PSYNC (_addReplyToBufferOrList) (95 ms) PSYNC addReplyDeferredLen: I/O error reading reply -Waiting for background save to finish... -Waiting for background save to finish... [ok]: replica do not write the reply to the replication link - PSYNC (addReplyDeferredLen) (131 ms) -[ok]: PSYNC with wrong offset should throw error (9 ms) +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 (2 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 (867 ms) +[ok]: Test replication with lazy expire (855 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 (815 ms) +[ok]: replica actually flushes db if use diskless load with flush-before-load dual-channel-replication-enabled=yes (809 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 (892 ms) +[ok]: replica actually flushes db if use diskless load with flush-before-load dual-channel-replication-enabled=no (854 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 (150 ms) -[104/129 done]: integration/replication (181 seconds) +[ok]: Replica keep the old data if RDB file save fails in disk-based replication (143 ms) +[104/129 done]: integration/replication (150 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 (111 ms) -[ok]: Detect write load to master (1005 ms) -[ok]: Test replication partial resync: no reconnection, just sync (diskless: no, disabled, dual-channel: no, reconnect: 0) (55 ms) +[ok]: Slave should be able to synchronize with the master (206 ms) +[ok]: Detect write load to master (1003 ms) +[ok]: Test replication partial resync: no reconnection, just sync (diskless: no, disabled, dual-channel: no, reconnect: 0) (49 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 (110 ms) +[ok]: Slave should be able to synchronize with the master (102 ms) [ok]: Detect write load to master (1005 ms) -[ok]: Test replication partial resync: ok psync (diskless: no, disabled, dual-channel: no, reconnect: 1) (6155 ms) +[ok]: Test replication partial resync: ok psync (diskless: no, disabled, dual-channel: no, reconnect: 1) (6256 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 (203 ms) +[ok]: Slave should be able to synchronize with the master (105 ms) [ok]: Detect write load to master (1003 ms) -[ok]: Test replication partial resync: no backlog (diskless: no, disabled, dual-channel: no, reconnect: 1) (7664 ms) +[ok]: Test replication partial resync: no backlog (diskless: no, disabled, dual-channel: no, reconnect: 1) (7818 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 (111 ms) -[ok]: Detect write load to master (1005 ms) -[ok]: Test replication partial resync: ok after delay (diskless: no, disabled, dual-channel: no, reconnect: 1) (9132 ms) +[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, disabled, dual-channel: no, reconnect: 1) (9218 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 (102 ms) +[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, disabled, dual-channel: no, reconnect: 1) (9188 ms) +[ok]: Test replication partial resync: backlog expired (diskless: no, disabled, dual-channel: no, reconnect: 1) (9337 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 (220 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) (23 ms) +[ok]: Slave should be able to synchronize with the master (204 ms) +[ok]: Detect write load to master (1003 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 (114 ms) -[ok]: Detect write load to master (1004 ms) -[ok]: Test replication partial resync: ok psync (diskless: no, swapdb, dual-channel: no, reconnect: 1) (6129 ms) +[ok]: Slave should be able to synchronize with the master (103 ms) +[ok]: Detect write load to master (1003 ms) +[ok]: Test replication partial resync: ok psync (diskless: no, swapdb, dual-channel: no, reconnect: 1) (6283 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 (106 ms) -[ok]: Detect write load to master (1003 ms) -[ok]: Test replication partial resync: no backlog (diskless: no, swapdb, dual-channel: no, reconnect: 1) (7697 ms) +[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: no backlog (diskless: no, swapdb, dual-channel: no, reconnect: 1) (7790 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 (102 ms) +[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, swapdb, dual-channel: no, reconnect: 1) (9169 ms) +[ok]: Test replication partial resync: ok after delay (diskless: no, swapdb, dual-channel: no, reconnect: 1) (9340 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 (111 ms) -[ok]: Detect write load to master (1002 ms) -[ok]: Test replication partial resync: backlog expired (diskless: no, swapdb, dual-channel: no, reconnect: 1) (9147 ms) +[ok]: Slave should be able to synchronize with the master (103 ms) +[ok]: Detect write load to master (1001 ms) +[ok]: Test replication partial resync: backlog expired (diskless: no, swapdb, dual-channel: no, reconnect: 1) (9322 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 (724 ms) -[ok]: Detect write load to master (1 ms) -[ok]: Test replication partial resync: no reconnection, just sync (diskless: yes, disabled, dual-channel: yes, reconnect: 0) (26 ms) +[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: no reconnection, just sync (diskless: yes, disabled, dual-channel: yes, reconnect: 0) (21 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 (644 ms) +[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, disabled, dual-channel: yes, reconnect: 1) (6140 ms) +[ok]: Test replication partial resync: ok psync (diskless: yes, disabled, dual-channel: yes, reconnect: 1) (6194 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 (1749 ms) -[ok]: Detect write load to master (1 ms) -[ok]: Test replication partial resync: no backlog (diskless: yes, disabled, dual-channel: yes, reconnect: 1) (7705 ms) +[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) (7826 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 (1733 ms) +[ok]: Slave should be able to synchronize with the master (1724 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) (9180 ms) +[ok]: Test replication partial resync: ok after delay (diskless: yes, disabled, dual-channel: yes, reconnect: 1) (9287 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 (729 ms) -[ok]: Detect write load to master (0 ms) -[ok]: Test replication partial resync: backlog expired (diskless: yes, disabled, dual-channel: yes, reconnect: 1) (9150 ms) +[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: backlog expired (diskless: yes, disabled, dual-channel: yes, reconnect: 1) (9609 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 (1732 ms) -[ok]: Detect write load to master (0 ms) -[ok]: Test replication partial resync: no reconnection, just sync (diskless: yes, disabled, dual-channel: no, reconnect: 0) (264 ms) +[ok]: Slave should be able to synchronize with the master (710 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) (19 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 (719 ms) +[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: ok psync (diskless: yes, disabled, dual-channel: no, reconnect: 1) (6162 ms) +[ok]: Test replication partial resync: ok psync (diskless: yes, disabled, dual-channel: no, reconnect: 1) (6194 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 (613 ms) -[ok]: Detect write load to master (3 ms) -[ok]: Test replication partial resync: no backlog (diskless: yes, disabled, dual-channel: no, reconnect: 1) (7692 ms) +[ok]: Slave should be able to synchronize with the master (719 ms) +[ok]: Detect write load to master (1 ms) +[ok]: Test replication partial resync: no backlog (diskless: yes, disabled, dual-channel: no, reconnect: 1) (7794 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 (644 ms) -[ok]: Detect write load to master (3 ms) -[ok]: Test replication partial resync: ok after delay (diskless: yes, disabled, dual-channel: no, reconnect: 1) (9137 ms) +[ok]: Slave should be able to synchronize with the master (711 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) (9317 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 (1641 ms) +[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) (9332 ms) +[ok]: Test replication partial resync: backlog expired (diskless: yes, disabled, dual-channel: no, reconnect: 1) (9490 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 (613 ms) +[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: no reconnection, just sync (diskless: yes, swapdb, dual-channel: yes, reconnect: 0) (28 ms) +[ok]: Test replication partial resync: no reconnection, just sync (diskless: yes, swapdb, dual-channel: yes, reconnect: 0) (36 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 (1645 ms) +[ok]: Slave should be able to synchronize with the master (1727 ms) [ok]: Detect write load to master (1 ms) -[ok]: Test replication partial resync: ok psync (diskless: yes, swapdb, dual-channel: yes, reconnect: 1) (6148 ms) +[ok]: Test replication partial resync: ok psync (diskless: yes, swapdb, dual-channel: yes, reconnect: 1) (6255 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 (636 ms) -[ok]: Detect write load to master (4 ms) -[ok]: Test replication partial resync: no backlog (diskless: yes, swapdb, dual-channel: yes, reconnect: 1) (7656 ms) +[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: yes, reconnect: 1) (7809 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 (708 ms) +[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: ok after delay (diskless: yes, swapdb, dual-channel: yes, reconnect: 1) (9228 ms) +[ok]: Test replication partial resync: ok after delay (diskless: yes, swapdb, dual-channel: yes, reconnect: 1) (9275 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 (1732 ms) +[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: backlog expired (diskless: yes, swapdb, dual-channel: yes, reconnect: 1) (10311 ms) +[ok]: Test replication partial resync: backlog expired (diskless: yes, swapdb, dual-channel: yes, reconnect: 1) (10527 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 (631 ms) -[ok]: Detect write load to master (1 ms) -[ok]: Test replication partial resync: no reconnection, just sync (diskless: yes, swapdb, dual-channel: no, reconnect: 0) (235 ms) +[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: no reconnection, just sync (diskless: yes, swapdb, dual-channel: no, reconnect: 0) (43 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 (615 ms) -[ok]: Detect write load to master (5 ms) -[ok]: Test replication partial resync: ok psync (diskless: yes, swapdb, dual-channel: no, reconnect: 1) (6147 ms) +[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: ok psync (diskless: yes, swapdb, dual-channel: no, reconnect: 1) (6255 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 (714 ms) -[ok]: Detect write load to master (1 ms) -[ok]: Test replication partial resync: no backlog (diskless: yes, swapdb, dual-channel: no, reconnect: 1) (7835 ms) +[ok]: Slave should be able to synchronize with the master (715 ms) +[ok]: Detect write load to master (0 ms) +[ok]: Test replication partial resync: no backlog (diskless: yes, swapdb, dual-channel: no, reconnect: 1) (7816 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 (1548 ms) +[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: ok after delay (diskless: yes, swapdb, dual-channel: no, reconnect: 1) (9147 ms) +[ok]: Test replication partial resync: ok after delay (diskless: yes, swapdb, dual-channel: no, reconnect: 1) (9286 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 (616 ms) +[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, swapdb, dual-channel: no, reconnect: 1) (9169 ms) -[105/129 done]: integration/replication-psync (246 seconds) +[ok]: Test replication partial resync: backlog expired (diskless: yes, swapdb, dual-channel: no, reconnect: 1) (9461 ms) +[105/129 done]: integration/replication-psync (245 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 (401 ms) -[ok]: Replication buffer will become smaller when no replica uses dualchannel yes (10 ms) +[ok]: All replicas share one global replication buffer dualchannel yes (126 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 (264 ms) -[ok]: Replication buffer will become smaller when no replica uses dualchannel no (5 ms) +[ok]: All replicas share one global replication buffer dualchannel no (103 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 (5110 ms) -[ok]: Replica could use replication buffer (beyond backlog config) for partial resynchronization dualchannel yes (4566 ms) -[ok]: Replication backlog memory will become smaller if disconnecting with replica dualchannel yes (182 ms) +[ok]: Replication backlog size can outgrow the backlog limit config dualchannel yes (2082 ms) +[ok]: Replica could use replication buffer (beyond backlog config) for partial resynchronization dualchannel yes (2030 ms) +[ok]: Replication backlog memory will become smaller if disconnecting with replica dualchannel yes (494 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 (5479 ms) -[ok]: Replica could use replication buffer (beyond backlog config) for partial resynchronization dualchannel no (5985 ms) -[ok]: Replication backlog memory will become smaller if disconnecting with replica dualchannel no (297 ms) +[ok]: Replication backlog size can outgrow the backlog limit config dualchannel no (1881 ms) +[ok]: Replica could use replication buffer (beyond backlog config) for partial resynchronization dualchannel no (2128 ms) +[ok]: Replication backlog memory will become smaller if disconnecting with replica dualchannel no (392 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 (4445 ms) +[ok]: Partial resynchronization is successful even client-output-buffer-limit is less than repl-backlog-size. dualchannel yes (4200 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 (36 ms) -[ok]: Replica client-output-buffer size is limited to backlog_limit/16 when no replication data is pending. dualchannel yes (1355 ms) +[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 (4346 ms) +[ok]: Partial resynchronization is successful even client-output-buffer-limit is less than repl-backlog-size. dualchannel no (4193 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 (32 ms) -[ok]: Replica client-output-buffer size is limited to backlog_limit/16 when no replication data is pending. dualchannel no (1213 ms) -[106/129 done]: integration/replication-buffer (44 seconds) +[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 (2164 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 (6 ms) -[ok]: Test replication with parallel clients writing in different DBs (5068 ms) +[ok]: First server should have role slave after SLAVEOF (2 ms) +[ok]: Test replication with parallel clients writing in different DBs (5134 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 (110 ms) -[ok]: With min-slaves-to-write (1,3): master should be writable (0 ms) -[ok]: With min-slaves-to-write (2,3): master should not be writable (0 ms) +[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 (0 ms) -[ok]: With min-slaves-to-write: master not writable with lagged slave (3609 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 (3668 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 (120 ms) -Replication of an expired key does not delete the expired key test attempts: 0 -[ok]: Replication of an expired key does not delete the expired key (560 ms) +[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 (2382 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 (1 ms) -[ok]: Replication: commands with many arguments (issue #1221) (20326 ms) -[ok]: spopwithcount rewrite srem command (125 ms) -[ok]: Replication of SPOP command -- alsoPropagate() API (1075 ms) +[ok]: First server should have role slave after SLAVEOF (2 ms) +[ok]: Replication: commands with many arguments (issue #1221) (8617 ms) +[ok]: spopwithcount rewrite srem command (131 ms) +[ok]: Replication of SPOP command -- alsoPropagate() API (631 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 (111 ms) -[ok]: Data divergence can happen under default conditions (779 ms) -[ok]: Data divergence is allowed on writable replicas (20 ms) -[107/129 done]: integration/replication-4 (36 seconds) +[ok]: First server should have role slave after SLAVEOF (104 ms) +[ok]: Data divergence can happen under default conditions (757 ms) +[ok]: Data divergence is allowed on writable replicas (5 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 (112 ms) -[ok]: MASTER and SLAVE consistency with expire (10188 ms) -[ok]: Master can replicate command longer than client-query-buffer-limit on replica (91 ms) -[ok]: Slave is able to evict keys created in writable slaves (6024 ms) -[ok]: Writable replica doesn't return expired keys (110 ms) -[ok]: PFCOUNT updates cache on readonly replica (18 ms) -[ok]: PFCOUNT doesn't use expired key on readonly replica (12 ms) -[108/129 done]: integration/replication-3 (18 seconds) +[ok]: First server should have role slave after SLAVEOF (103 ms) +[ok]: MASTER and SLAVE consistency with expire (3813 ms) +[ok]: Master can replicate command longer than client-query-buffer-limit on replica (159 ms) +[ok]: Slave is able to evict keys created in writable slaves (6007 ms) +[ok]: Writable replica doesn't return expired keys (107 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 (12 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 (218 ms) -[ok]: If min-slaves-to-write is honored, write is accepted (506 ms) +[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) (11 ms) -[ok]: No write if min-slaves-max-lag is > of the slave lag (3264 ms) -[ok]: min-slaves-to-write is ignored by slaves (12 ms) -[ok]: MASTER and SLAVE dataset should be identical after complex ops (10475 ms) -[109/129 done]: integration/replication-2 (15 seconds) +[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 (3261 ms) +[ok]: min-slaves-to-write is ignored by slaves (2 ms) +[ok]: MASTER and SLAVE dataset should be identical after complex ops (5784 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 (118 ms) -[ok]: write command inside MULTI is REDIRECT, EXEC should be EXECABORT (26 ms) +[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]: CLIENT INFO (1 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 (378 ms) +[ok]: replica allow read command in READONLY mode (1 ms) +[ok]: client paused during failover-in-progress (383 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 (4 ms) +[ok]: test old version rdb file (1 ms) === () Starting server on 127.0.0.1:23028 ok -[ok]: RDB encoding loading test (18 ms) +[ok]: RDB encoding loading test (14 ms) === () Starting server on 127.0.0.1:23030 -[ok]: RDB future version loading, strict version check (3 ms) +[ok]: RDB future version loading, strict version check (1 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 @@ -5941,37 +5985,36 @@ === () Starting server on 127.0.0.1:23036 ok [ok]: Server started empty with empty RDB file (0 ms) === () Starting server on 127.0.0.1:23038 ok -[ok]: Test RDB stream encoding (271 ms) -[ok]: Test RDB stream encoding - sanitize dump (8 ms) +[ok]: Test RDB stream encoding (159 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 (3 ms) +[ok]: Server should not start if RDB file can't be open (2 ms) === () Starting server on 127.0.0.1:23042 -[ok]: Server should not start if RDB is corrupted (7 ms) +[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 (596 ms) -[ok]: bgsave resets the change counter (103 ms) -[ok]: bgsave cancel aborts save (144 ms) -[ok]: bgsave cancel schedulled request (17 ms) +[ok]: Test FLUSHALL aborts bgsave (367 ms) +[ok]: bgsave resets the change counter (105 ms) +[ok]: bgsave cancel aborts save (139 ms) +[ok]: bgsave cancel schedulled request (16 ms) === () Starting server on 127.0.0.1:23046 ok -[ok]: client freed during loading (1488 ms) +[ok]: client freed during loading (1061 ms) === () Starting server on 127.0.0.1:23048 ok -[ok]: Test RDB load info (1234 ms) +[ok]: Test RDB load info (666 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 +COW info before copy-on-write: 450560 current_save_keys_processed info : 1 -[ok]: Test child sending info (2946 ms) +[ok]: Test child sending info (1951 ms) === () Starting server on 127.0.0.1:23052 ok -[ok]: script won't load anymore if it's in rdb (3 ms) +[ok]: script won't load anymore if it's in rdb (1 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... -Waiting for background save to finish... [ok]: failed bgsave prevents writes (370 ms) -[111/129 done]: integration/rdb (11 seconds) +Waiting for background save to finish... [ok]: failed bgsave prevents writes (283 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 @@ -5979,584 +6022,599 @@ === () 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 #3 as master (1 ms) -[ok]: PSYNC2: Set #0 to replicate from #3 (9 ms) -[ok]: PSYNC2: Set #4 to replicate from #3 (5 ms) -[ok]: PSYNC2: Set #1 to replicate from #3 (5 ms) -[ok]: PSYNC2: Set #2 to replicate from #4 (4 ms) -[ok]: PSYNC2: cluster is consistent after failover (1003 ms) +[ok]: PSYNC2: [NEW LAYOUT] Set #2 as master (1 ms) +[ok]: PSYNC2: Set #0 to replicate from #2 (1 ms) +[ok]: PSYNC2: Set #4 to replicate from #1 (0 ms) +[ok]: PSYNC2: Set #1 to replicate from #2 (1 ms) +[ok]: PSYNC2: Set #3 to replicate from #0 (1 ms) +[ok]: PSYNC2: cluster is consistent after failover (9 ms) [ok]: PSYNC2: generate load while killing replication links (5000 ms) -[ok]: PSYNC2: cluster is consistent after load (x = 13978) (1 ms) +[ok]: PSYNC2: cluster is consistent after load (x = 33050) (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 #2 as master (1 ms) -[ok]: PSYNC2: Set #4 to replicate from #1 (1 ms) -[ok]: PSYNC2: Set #0 to replicate from #1 (4 ms) -[ok]: PSYNC2: Set #1 to replicate from #2 (5 ms) -[ok]: PSYNC2: Set #3 to replicate from #4 (5 ms) +[ok]: PSYNC2: [NEW LAYOUT] Set #2 as master (0 ms) +[ok]: PSYNC2: Set #0 to replicate from #1 (0 ms) +[ok]: PSYNC2: Set #4 to replicate from #2 (1 ms) +[ok]: PSYNC2: Set #1 to replicate from #3 (0 ms) +[ok]: PSYNC2: Set #3 to replicate from #4 (0 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 = 26079) (1 ms) -[ok]: PSYNC2: total sum of full synchronizations is exactly 4 (6 ms) +[ok]: PSYNC2: cluster is consistent after load (x = 71229) (1 ms) +[ok]: PSYNC2: total sum of full synchronizations is exactly 4 (2 ms) [ok]: PSYNC2: --- CYCLE 3 --- (0 ms) -[ok]: PSYNC2: [NEW LAYOUT] Set #4 as master (1 ms) -[ok]: PSYNC2: Set #0 to replicate from #3 (1 ms) -[ok]: PSYNC2: Set #1 to replicate from #2 (5 ms) -[ok]: PSYNC2: Set #2 to replicate from #3 (5 ms) -[ok]: PSYNC2: Set #3 to replicate from #4 (5 ms) -[ok]: PSYNC2: cluster is consistent after failover (7 ms) +[ok]: PSYNC2: [NEW LAYOUT] Set #2 as master (1 ms) +[ok]: PSYNC2: Set #0 to replicate from #3 (0 ms) +[ok]: PSYNC2: Set #4 to replicate from #2 (0 ms) +[ok]: PSYNC2: Set #1 to replicate from #0 (1 ms) +[ok]: PSYNC2: Set #3 to replicate from #2 (0 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 = 43430) (11 ms) +[ok]: PSYNC2: cluster is consistent after load (x = 104493) (1 ms) [ok]: PSYNC2: total sum of full synchronizations is exactly 4 (1 ms) [ok]: PSYNC2: --- CYCLE 4 --- (0 ms) -[ok]: PSYNC2: [NEW LAYOUT] Set #3 as master (0 ms) -[ok]: PSYNC2: Set #0 to replicate from #3 (1 ms) -[ok]: PSYNC2: Set #4 to replicate from #3 (6 ms) -[ok]: PSYNC2: Set #1 to replicate from #3 (5 ms) -[ok]: PSYNC2: Set #2 to replicate from #4 (4 ms) -[ok]: PSYNC2: cluster is consistent after failover (2 ms) -[ok]: PSYNC2: generate load while killing replication links (5002 ms) -[ok]: PSYNC2: cluster is consistent after load (x = 48480) (1 ms) +[ok]: PSYNC2: [NEW LAYOUT] Set #0 as master (1 ms) +[ok]: PSYNC2: Set #4 to replicate from #0 (1 ms) +[ok]: PSYNC2: Set #1 to replicate from #3 (1 ms) +[ok]: PSYNC2: Set #2 to replicate from #0 (0 ms) +[ok]: PSYNC2: Set #3 to replicate from #0 (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 = 134983) (1 ms) [ok]: PSYNC2: total sum of full synchronizations is exactly 4 (1 ms) [ok]: PSYNC2: --- CYCLE 5 --- (0 ms) -[ok]: PSYNC2: [NEW LAYOUT] Set #0 as master (1 ms) -[ok]: PSYNC2: Set #4 to replicate from #0 (5 ms) -[ok]: PSYNC2: Set #1 to replicate from #3 (0 ms) -[ok]: PSYNC2: Set #2 to replicate from #1 (1 ms) -[ok]: PSYNC2: Set #3 to replicate from #4 (10 ms) -[ok]: PSYNC2: cluster is consistent after failover (2 ms) +[ok]: PSYNC2: [NEW LAYOUT] Set #4 as master (1 ms) +[ok]: PSYNC2: Set #0 to replicate from #4 (0 ms) +[ok]: PSYNC2: Set #1 to replicate from #0 (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 = 65547) (1 ms) +[ok]: PSYNC2: cluster is consistent after load (x = 168887) (4 ms) [ok]: PSYNC2: total sum of full synchronizations is exactly 4 (1 ms) +[ok]: PSYNC2: --- CYCLE 6 --- (0 ms) +[ok]: PSYNC2: [NEW LAYOUT] Set #3 as master (0 ms) +[ok]: PSYNC2: Set #4 to replicate from #3 (1 ms) +[ok]: PSYNC2: Set #0 to replicate from #3 (1 ms) +[ok]: PSYNC2: Set #1 to replicate from #0 (1 ms) +[ok]: PSYNC2: Set #2 to replicate from #3 (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 = 196572) (4 ms) +[ok]: PSYNC2: total sum of full synchronizations is exactly 4 (2 ms) [ok]: PSYNC2: Bring the master back again for next test (3 ms) -[ok]: PSYNC2: Partial resync after restart using RDB aux fields (267 ms) +[ok]: PSYNC2: Partial resync after restart using RDB aux fields (171 ms) [112/129 done]: integration/psync2 (49 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 (1038 ms) -[ok]: PSYNC2 #3899 regression: kill first replica (176 ms) -[ok]: PSYNC2 #3899 regression: kill first replica (143 ms) -[ok]: PSYNC2 #3899 regression: kill first replica (60 ms) -[ok]: PSYNC2 #3899 regression: kill first replica (7 ms) -[ok]: PSYNC2 #3899 regression: kill chained replica (1 ms) -[ok]: PSYNC2 #3899 regression: kill chained replica (4 ms) -[ok]: PSYNC2 #3899 regression: kill chained replica (33 ms) -[ok]: PSYNC2 #3899 regression: kill first replica (5 ms) -[ok]: PSYNC2 #3899 regression: kill chained replica (1 ms) +[ok]: PSYNC2 #3899 regression: setup (1024 ms) [ok]: PSYNC2 #3899 regression: kill first replica (1 ms) [ok]: PSYNC2 #3899 regression: kill first replica (0 ms) -[ok]: PSYNC2 #3899 regression: kill first replica (10 ms) [ok]: PSYNC2 #3899 regression: kill chained replica (1 ms) +[ok]: PSYNC2 #3899 regression: kill chained 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 (0 ms) +[ok]: PSYNC2 #3899 regression: kill first replica (0 ms) +[ok]: PSYNC2 #3899 regression: kill first replica (0 ms) +[ok]: PSYNC2 #3899 regression: kill first replica (0 ms) +[ok]: PSYNC2 #3899 regression: kill first replica (2 ms) +[ok]: PSYNC2 #3899 regression: kill first replica (1 ms) +[ok]: PSYNC2 #3899 regression: kill chained replica (3 ms) [ok]: PSYNC2 #3899 regression: kill first replica (1 ms) -[ok]: PSYNC2 #3899 regression: kill first replica (4 ms) [ok]: PSYNC2 #3899 regression: kill chained replica (1 ms) -[ok]: PSYNC2 #3899 regression: kill first replica (3 ms) [ok]: PSYNC2 #3899 regression: kill chained replica (4 ms) -[ok]: PSYNC2 #3899 regression: kill first replica (6 ms) +[ok]: PSYNC2 #3899 regression: kill first replica (10 ms) +[ok]: PSYNC2 #3899 regression: kill first replica (0 ms) [ok]: PSYNC2 #3899 regression: kill first replica (3 ms) -[ok]: PSYNC2 #3899 regression: kill first replica (4 ms) -[ok]: PSYNC2 #3899 regression: kill chained replica (6 ms) -[ok]: PSYNC2 #3899 regression: kill chained replica (6 ms) -[ok]: PSYNC2 #3899 regression: verify consistency (1037 ms) -[113/129 done]: integration/psync2-reg (23 seconds) +[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 (1 ms) +[ok]: PSYNC2 #3899 regression: kill chained replica (4 ms) +[ok]: PSYNC2 #3899 regression: kill chained 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: verify consistency (15 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 (1023 ms) +[ok]: PSYNC2 pingoff: setup (1032 ms) [ok]: PSYNC2 pingoff: write and wait replication (1 ms) -[ok]: PSYNC2 pingoff: pause replica and promote it (5019 ms) -[ok]: Make the old master a replica of the new one and check conditions (1021 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 (4172 ms) +[ok]: test various edge cases of repl topology changes with missing pings at the end (4196 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 (2953 ms) +[ok]: Chained replicas disconnect when replica re-connect with the same master (2939 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 (232 ms) -[ok]: PSYNC2: Partial resync after Master restart using RDB aux fields with data (1213 ms) -[ok]: PSYNC2: Partial resync after Master restart using RDB aux fields with expire (2655 ms) -[ok]: PSYNC2: Full resync after Master restart when too many key expired (3954 ms) -[115/129 done]: integration/psync2-master-restart (12 seconds) +[ok]: PSYNC2: Partial resync after Master restart using RDB aux fields when offset is 0 (1171 ms) +[ok]: PSYNC2: Partial resync after Master restart using RDB aux fields with data (145 ms) +[ok]: PSYNC2: Partial resync after Master restart using RDB aux fields with expire (2280 ms) +[ok]: PSYNC2: Full resync after Master restart when too many key expired (1830 ms) +[115/129 done]: integration/psync2-master-restart (8 seconds) Testing integration/logging === () Starting server on 127.0.0.1:23098 ok -{1401217:M 28 Nov 2026 12:44:18.594 # valkey 8.1.4 crashed by signal: 6, si_code: 0} 40 -[ok]: Crash report generated on SIGABRT (205 ms) +{2388195:M 27 Oct 2025 09:52:17.299 # valkey 8.1.4 crashed by signal: 6, si_code: 0} 40 +[ok]: Crash report generated on SIGABRT (103 ms) === () Starting server on 127.0.0.1:23100 ok -{1401260:M 28 Nov 2026 12:44:18.926 # valkey 8.1.4 crashed by signal: 11, si_code: 2} 40 -[ok]: Crash report generated on DEBUG SEGFAULT (31 ms) +{2389359:M 27 Oct 2025 09:52:17.464 # valkey 8.1.4 crashed by signal: 11, si_code: 2} 40 +[ok]: Crash report generated on DEBUG SEGFAULT (6 ms) === () Starting server on 127.0.0.1:23102 ok {Received SIGALRM} 38 -[ok]: Stacktraces generated on SIGALRM (114 ms) +[ok]: Stacktraces generated on SIGALRM (105 ms) === () Starting server on 127.0.0.1:23104 ok -[ok]: Config hide-user-data-from-log is off (19 ms) +[ok]: Config hide-user-data-from-log is off (1 ms) === () Starting server on 127.0.0.1:23106 ok -[ok]: Config hide-user-data-from-log is on (7 ms) -[116/129 done]: integration/logging (2 seconds) +[ok]: Config hide-user-data-from-log is on (2 ms) +[116/129 done]: integration/logging (1 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 (1 ms) -[ok]: setup replication for following tests (237 ms) +[ok]: failover command fails without connected replica (0 ms) +[ok]: setup replication for following tests (205 ms) [ok]: failover command fails with invalid host (1 ms) -[ok]: failover command fails with invalid port (1 ms) +[ok]: failover command fails with invalid port (0 ms) [ok]: failover command fails with just force and timeout (0 ms) [ok]: failover command fails when sent to a replica (1 ms) -[ok]: failover command fails with force without timeout (5 ms) -[ok]: failover command to specific replica works (1635 ms) -[ok]: failover command to any replica works (712 ms) -[ok]: failover to a replica with force works (527 ms) -[ok]: failover with timeout aborts if replica never catches up (659 ms) -[ok]: failovers can be aborted (112 ms) -[ok]: failover aborts if target rejects sync request (492 ms) +[ok]: failover command fails with force without timeout (0 ms) +[ok]: failover command to specific replica works (1994 ms) +[ok]: failover command to any replica works (758 ms) +[ok]: failover to a replica with force works (564 ms) +[ok]: failover with timeout aborts if replica never catches up (675 ms) +[ok]: failovers can be aborted (155 ms) +[ok]: failover aborts if target rejects sync request (1303 ms) [117/129 done]: integration/failover (7 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 (937 ms) -[ok]: Dual-channel replication counts snapshot bytes (1 ms) +[ok]: Test dual-channel-replication-enabled enters wait_bgsave (1 ms) +[ok]: Test dual-channel-replication-enabled replica is able to sync (914 ms) +[ok]: Dual-channel replication counts snapshot bytes (103 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 (116 ms) +[ok]: dual-channel replication reports rdb transfer bytes (103 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 (1602 ms) -[ok]: Steady state after dual channel sync (1023 ms) -[ok]: Dual channel replication sync doesn't impair subsequent normal syncs (528 ms) +[ok]: Primary memory usage does not increase during dual-channel-replication sync (519 ms) +[ok]: Steady state after dual channel sync (1011 ms) +[ok]: Dual channel replication sync doesn't impair subsequent normal syncs (409 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 (904 ms) -[ok]: Online toggle dual-channel-replication-enabled on primary, starting with 'yes' (2392 ms) -[ok]: Online toggle dual-channel-replication-enabled on replica, starting with 'yes' (11973 ms) -[ok]: Toggle dual-channel-replication-enabled: no start (17896 ms) -[ok]: Online toggle dual-channel-replication-enabled on primary, starting with 'no' (2358 ms) -[ok]: Online toggle dual-channel-replication-enabled on replica, starting with 'no' (3510 ms) +[ok]: Toggle dual-channel-replication-enabled: yes start (636 ms) +[ok]: Online toggle dual-channel-replication-enabled on primary, starting with 'yes' (2154 ms) +[ok]: Online toggle dual-channel-replication-enabled on replica, starting with 'yes' (11205 ms) +[ok]: Toggle dual-channel-replication-enabled: no start (11126 ms) +[ok]: Online toggle dual-channel-replication-enabled on primary, starting with 'no' (2101 ms) +[ok]: Online toggle dual-channel-replication-enabled on replica, starting with 'no' (2140 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 (6849 ms) -[ok]: Test diverse replica sync: dual-channel on/off (9231 ms) -[ok]: Test replica's buffer limit reached (3969 ms) -[ok]: dual-channel-replication fails when primary diskless disabled (1028 ms) +[ok]: dual-channel-replication with multiple replicas (5479 ms) +[ok]: Test diverse replica sync: dual-channel on/off (5476 ms) +[ok]: Test replica's buffer limit reached (1553 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 (144 ms) +[ok]: Test dual-channel-replication sync- psync established after rdb load (138 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 (5316 ms) +[ok]: dual-channel-replication: Primary COB growth with inactive replica (3543 ms) === (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 (255 ms) -[ok]: Test dual-channel: primary tracking replica backlog refcount - start with backlog (554 ms) +[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 (789 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 (284 ms) +[ok]: Psync established after rdb load - within grace period (63 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 (2325 ms) +[ok]: Psync established after RDB load - beyond grace period (2272 ms) +Waiting for process 2463885 to exit... +Waiting for process 2463885 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 (944 ms) -Waiting for process 1409889 to exit... -Waiting for process 1409889 to exit... -Waiting for process 1409889 to exit... -Waiting for process 1409889 to exit... -Waiting for process 1409889 to exit... -Waiting for process 1409889 to exit... +[ok]: Test dual-channel-replication primary gets cob overrun before established psync (398 ms) +Waiting for process 2472538 to exit... +Waiting for process 2472538 to exit... +Waiting for process 2472538 to exit... +Waiting for process 2472538 to exit... +Waiting for process 2472538 to exit... +Waiting for process 2472538 to exit... +Waiting for process 2472538 to exit... +Waiting for process 2472538 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 (1128 ms) +[ok]: Test dual-channel-replication primary gets cob overrun during replica rdb load (1084 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 (11096 ms) -[ok]: Primary abort sync if all slaves dropped dual-channel-replication (7088 ms) +[ok]: Sync should continue if not all slaves dropped (11076 ms) +[ok]: Primary abort sync if all slaves dropped dual-channel-replication (6067 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 (8 ms) -[ok]: Test dual-channel-replication replica rdb connection disconnected (1216 ms) -[ok]: Test dual channel replication slave of no one after rdb conn kill (11 ms) -[ok]: Test dual-channel-replication primary reject set-rdb-client after client killed (1260 ms) +[ok]: Test dual-channel-replication replica main channel disconnected (1103 ms) +[ok]: Test dual channel replication slave of no one after main conn kill (1 ms) +[ok]: Test dual-channel-replication replica rdb connection disconnected (1121 ms) +[ok]: Test dual channel replication slave of no one after rdb conn kill (1 ms) +[ok]: Test dual-channel-replication primary reject set-rdb-client after client killed (1223 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 (1527 ms) +[ok]: Test replica unable to join dual channel replication sync after started (1138 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 (5048 ms) -[ok]: Replica recover main-connection killed (2224 ms) +[ok]: Replica recover rdb-connection killed (1209 ms) +[ok]: Replica recover main-connection killed (1225 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 (8549 ms) -[118/129 done]: integration/dual-channel-replication (178 seconds) +[ok]: Replica notice main-connection killed during rdb load callback (6946 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 (1290 ms) +Waiting for background AOF rewrite to finish... [ok]: dismiss all data types memory (1276 ms) Waiting for background save to finish... -Waiting for background save to finish... [ok]: dismiss client output buffer (875 ms) +Waiting for background save to finish... [ok]: dismiss client output buffer (1329 ms) -Waiting for background save to finish... [ok]: dismiss client query buffer (197 ms) +Waiting for background save to finish... [ok]: dismiss client query buffer (175 ms) === () Starting server on 127.0.0.1:23192 ok -Waiting for background save to finish... [ok]: dismiss replication backlog (1458 ms) -[119/129 done]: integration/dismiss-mem (4 seconds) +Waiting for background save to finish... +Waiting for background save to finish... [ok]: dismiss replication backlog (1402 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 (1 seconds) +[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 (333 ms) +[ok]: corrupt payload: #7445 - with sanitize (288 ms) === () Starting server on 127.0.0.1:23196 ok -[ok]: corrupt payload: hash with valid zip list header, invalid entry len (287 ms) +[ok]: corrupt payload: hash with valid zip list header, invalid entry len (266 ms) === () Starting server on 127.0.0.1:23198 ok -[ok]: corrupt payload: invalid zlbytes header (300 ms) +[ok]: corrupt payload: invalid zlbytes header (279 ms) === () Starting server on 127.0.0.1:23200 ok -[ok]: corrupt payload: valid zipped hash header, dup records (405 ms) +[ok]: corrupt payload: valid zipped hash header, dup records (274 ms) === () Starting server on 127.0.0.1:23202 ok -[ok]: corrupt payload: quicklist big ziplist prev len (266 ms) +[ok]: corrupt payload: quicklist big ziplist prev len (280 ms) === () Starting server on 127.0.0.1:23204 ok -[ok]: corrupt payload: quicklist small ziplist prev len (491 ms) +[ok]: corrupt payload: quicklist small ziplist prev len (284 ms) === () Starting server on 127.0.0.1:23206 ok -[ok]: corrupt payload: quicklist ziplist wrong count (567 ms) +[ok]: corrupt payload: quicklist ziplist wrong count (287 ms) === () Starting server on 127.0.0.1:23208 ok -[ok]: corrupt payload: #3080 - quicklist (488 ms) +[ok]: corrupt payload: #3080 - quicklist (280 ms) === () Starting server on 127.0.0.1:23210 ok -[ok]: corrupt payload: quicklist with empty ziplist (428 ms) +[ok]: corrupt payload: quicklist with empty ziplist (284 ms) === () Starting server on 127.0.0.1:23212 ok -[ok]: corrupt payload: quicklist encoded_len is 0 (355 ms) +[ok]: corrupt payload: quicklist encoded_len is 0 (265 ms) === () Starting server on 127.0.0.1:23214 ok -[ok]: corrupt payload: quicklist listpack entry start with EOF (375 ms) +[ok]: corrupt payload: quicklist listpack entry start with EOF (276 ms) === () Starting server on 127.0.0.1:23216 ok -[ok]: corrupt payload: #3080 - ziplist (455 ms) +[ok]: corrupt payload: #3080 - ziplist (264 ms) === () Starting server on 127.0.0.1:23218 -[ok]: corrupt payload: load corrupted rdb with no CRC - #3505 (321 ms) +[ok]: corrupt payload: load corrupted rdb with no CRC - #3505 (188 ms) === () Starting server on 127.0.0.1:23220 ok -[ok]: corrupt payload: load corrupted rdb with empty keys (467 ms) +[ok]: corrupt payload: load corrupted rdb with empty keys (372 ms) === () Starting server on 127.0.0.1:23222 ok -[ok]: corrupt payload: load corrupted rdb with empty keys (619 ms) +[ok]: corrupt payload: load corrupted rdb with empty keys (288 ms) === () Starting server on 127.0.0.1:23224 ok -[ok]: corrupt payload: listpack invalid size header (405 ms) +[ok]: corrupt payload: listpack invalid size header (273 ms) === () Starting server on 127.0.0.1:23226 ok -[ok]: corrupt payload: listpack too long entry len (286 ms) +[ok]: corrupt payload: listpack too long entry len (240 ms) === () Starting server on 127.0.0.1:23228 ok -[ok]: corrupt payload: listpack very long entry len (325 ms) +[ok]: corrupt payload: listpack very long entry len (244 ms) === () Starting server on 127.0.0.1:23230 ok -[ok]: corrupt payload: listpack too long entry prev len (302 ms) +[ok]: corrupt payload: listpack too long entry prev len (283 ms) === () Starting server on 127.0.0.1:23232 ok -[ok]: corrupt payload: stream with duplicate consumers (288 ms) +[ok]: corrupt payload: stream with duplicate consumers (312 ms) === () Starting server on 127.0.0.1:23234 ok -[ok]: corrupt payload: hash ziplist with duplicate records (309 ms) +[ok]: corrupt payload: hash ziplist with duplicate records (284 ms) === () Starting server on 127.0.0.1:23236 ok -[ok]: corrupt payload: hash listpack with duplicate records (351 ms) +[ok]: corrupt payload: hash listpack with duplicate records (293 ms) === () Starting server on 127.0.0.1:23238 ok -[ok]: corrupt payload: hash listpack with duplicate records - convert (291 ms) +[ok]: corrupt payload: hash listpack with duplicate records - convert (231 ms) === () Starting server on 127.0.0.1:23240 ok -[ok]: corrupt payload: hash ziplist uneven record count (362 ms) +[ok]: corrupt payload: hash ziplist uneven record count (297 ms) === () Starting server on 127.0.0.1:23242 ok -[ok]: corrupt payload: hash duplicate records (269 ms) +[ok]: corrupt payload: hash duplicate records (306 ms) === () Starting server on 127.0.0.1:23244 ok -[ok]: corrupt payload: hash empty zipmap (267 ms) +[ok]: corrupt payload: hash empty zipmap (284 ms) === () Starting server on 127.0.0.1:23246 ok -[ok]: corrupt payload: fuzzer findings - NPD in streamIteratorGetID (250 ms) +[ok]: corrupt payload: fuzzer findings - NPD in streamIteratorGetID (276 ms) === () Starting server on 127.0.0.1:23248 ok -[ok]: corrupt payload: fuzzer findings - listpack NPD on invalid stream (266 ms) +[ok]: corrupt payload: fuzzer findings - listpack NPD on invalid stream (238 ms) === () Starting server on 127.0.0.1:23250 ok -[ok]: corrupt payload: fuzzer findings - NPD in quicklistIndex (281 ms) +[ok]: corrupt payload: fuzzer findings - NPD in quicklistIndex (284 ms) === () Starting server on 127.0.0.1:23252 ok -[ok]: corrupt payload: fuzzer findings - encoded entry header reach outside the allocation (376 ms) +[ok]: corrupt payload: fuzzer findings - encoded entry header reach outside the allocation (252 ms) === () Starting server on 127.0.0.1:23254 ok -[ok]: corrupt payload: fuzzer findings - invalid ziplist encoding (308 ms) +[ok]: corrupt payload: fuzzer findings - invalid ziplist encoding (290 ms) === () Starting server on 127.0.0.1:23256 ok -[ok]: corrupt payload: fuzzer findings - hash crash (382 ms) +[ok]: corrupt payload: fuzzer findings - hash crash (296 ms) === () Starting server on 127.0.0.1:23258 ok -[ok]: corrupt payload: fuzzer findings - uneven entry count in hash (283 ms) +[ok]: corrupt payload: fuzzer findings - uneven entry count in hash (256 ms) === () Starting server on 127.0.0.1:23260 ok -[ok]: corrupt payload: fuzzer findings - invalid read in lzf_decompress (264 ms) +[ok]: corrupt payload: fuzzer findings - invalid read in lzf_decompress (271 ms) === () Starting server on 127.0.0.1:23262 ok -[ok]: corrupt payload: fuzzer findings - leak in rdbloading due to dup entry in set (272 ms) +[ok]: corrupt payload: fuzzer findings - leak in rdbloading due to dup entry in set (263 ms) === () Starting server on 127.0.0.1:23264 ok -[ok]: corrupt payload: fuzzer findings - empty intset (283 ms) +[ok]: corrupt payload: fuzzer findings - empty intset (271 ms) === () Starting server on 127.0.0.1:23266 ok -[ok]: corrupt payload: fuzzer findings - zset ziplist entry lensize is 0 (268 ms) +[ok]: corrupt payload: fuzzer findings - zset ziplist entry lensize is 0 (239 ms) === () Starting server on 127.0.0.1:23268 ok -[ok]: corrupt payload: fuzzer findings - valgrind ziplist prevlen reaches outside the ziplist (290 ms) +[ok]: corrupt payload: fuzzer findings - valgrind ziplist prevlen reaches outside the ziplist (236 ms) === () Starting server on 127.0.0.1:23270 ok -[ok]: corrupt payload: fuzzer findings - valgrind - bad rdbLoadDoubleValue (274 ms) +[ok]: corrupt payload: fuzzer findings - valgrind - bad rdbLoadDoubleValue (226 ms) === () Starting server on 127.0.0.1:23272 ok -[ok]: corrupt payload: fuzzer findings - valgrind ziplist prev too big (334 ms) +[ok]: corrupt payload: fuzzer findings - valgrind ziplist prev too big (238 ms) === () Starting server on 127.0.0.1:23274 ok -[ok]: corrupt payload: fuzzer findings - lzf decompression fails, avoid valgrind invalid read (392 ms) +[ok]: corrupt payload: fuzzer findings - lzf decompression fails, avoid valgrind invalid read (232 ms) === () Starting server on 127.0.0.1:23276 ok -[ok]: corrupt payload: fuzzer findings - stream bad lp_count (279 ms) +[ok]: corrupt payload: fuzzer findings - stream bad lp_count (240 ms) === () Starting server on 127.0.0.1:23278 ok -[ok]: corrupt payload: fuzzer findings - stream bad lp_count - unsanitized (256 ms) +[ok]: corrupt payload: fuzzer findings - stream bad lp_count - unsanitized (161 ms) === () Starting server on 127.0.0.1:23280 ok -[ok]: corrupt payload: fuzzer findings - stream integrity check issue (374 ms) +[ok]: corrupt payload: fuzzer findings - stream integrity check issue (231 ms) === () Starting server on 127.0.0.1:23282 ok -[ok]: corrupt payload: fuzzer findings - infinite loop (265 ms) +[ok]: corrupt payload: fuzzer findings - infinite loop (155 ms) === () Starting server on 127.0.0.1:23284 ok -[ok]: corrupt payload: fuzzer findings - hash ziplist too long entry len (312 ms) +[ok]: corrupt payload: fuzzer findings - hash ziplist too long entry len (234 ms) === () Starting server on 127.0.0.1:23286 ok -[ok]: corrupt payload: OOM in rdbGenericLoadStringObject (376 ms) +[ok]: corrupt payload: OOM in rdbGenericLoadStringObject (229 ms) === () Starting server on 127.0.0.1:23288 ok -[ok]: corrupt payload: fuzzer findings - OOM in dictExpand (307 ms) +[ok]: corrupt payload: fuzzer findings - OOM in dictExpand (226 ms) === () Starting server on 127.0.0.1:23290 ok -[ok]: corrupt payload: fuzzer findings - zset ziplist invalid tail offset (401 ms) +[ok]: corrupt payload: fuzzer findings - zset ziplist invalid tail offset (240 ms) === () Starting server on 127.0.0.1:23292 ok -[ok]: corrupt payload: fuzzer findings - negative reply length (337 ms) +[ok]: corrupt payload: fuzzer findings - negative reply length (164 ms) === () Starting server on 127.0.0.1:23294 ok -[ok]: corrupt payload: fuzzer findings - valgrind negative malloc (426 ms) +[ok]: corrupt payload: fuzzer findings - valgrind negative malloc (225 ms) === () Starting server on 127.0.0.1:23296 ok -[ok]: corrupt payload: fuzzer findings - valgrind invalid read (423 ms) +[ok]: corrupt payload: fuzzer findings - valgrind invalid read (231 ms) === () Starting server on 127.0.0.1:23298 ok -[ok]: corrupt payload: fuzzer findings - empty hash ziplist (401 ms) +[ok]: corrupt payload: fuzzer findings - empty hash ziplist (232 ms) === () Starting server on 127.0.0.1:23300 ok -[ok]: corrupt payload: fuzzer findings - stream with no records (321 ms) +[ok]: corrupt payload: fuzzer findings - stream with no records (160 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 (353 ms) +[ok]: corrupt payload: fuzzer findings - quicklist ziplist tail followed by extra data which start with 0xff (235 ms) === () Starting server on 127.0.0.1:23304 ok -[ok]: corrupt payload: fuzzer findings - dict init to huge size (424 ms) +[ok]: corrupt payload: fuzzer findings - dict init to huge size (235 ms) === () Starting server on 127.0.0.1:23306 ok -[ok]: corrupt payload: fuzzer findings - huge string (617 ms) +[ok]: corrupt payload: fuzzer findings - huge string (251 ms) === () Starting server on 127.0.0.1:23308 ok -[ok]: corrupt payload: fuzzer findings - stream PEL without consumer (413 ms) +[ok]: corrupt payload: fuzzer findings - stream PEL without consumer (231 ms) === () Starting server on 127.0.0.1:23310 ok -[ok]: corrupt payload: fuzzer findings - stream listpack valgrind issue (343 ms) +[ok]: corrupt payload: fuzzer findings - stream listpack valgrind issue (164 ms) === () Starting server on 127.0.0.1:23312 ok -[ok]: corrupt payload: fuzzer findings - stream with bad lpFirst (281 ms) +[ok]: corrupt payload: fuzzer findings - stream with bad lpFirst (245 ms) === () Starting server on 127.0.0.1:23314 ok -[ok]: corrupt payload: fuzzer findings - stream listpack lpPrev valgrind issue (356 ms) +[ok]: corrupt payload: fuzzer findings - stream listpack lpPrev valgrind issue (160 ms) === () Starting server on 127.0.0.1:23316 ok -[ok]: corrupt payload: fuzzer findings - stream with non-integer entry id (436 ms) +[ok]: corrupt payload: fuzzer findings - stream with non-integer entry id (232 ms) === () Starting server on 127.0.0.1:23318 ok -[ok]: corrupt payload: fuzzer findings - empty quicklist (322 ms) +[ok]: corrupt payload: fuzzer findings - empty quicklist (233 ms) === () Starting server on 127.0.0.1:23320 ok -[ok]: corrupt payload: fuzzer findings - empty zset (396 ms) +[ok]: corrupt payload: fuzzer findings - empty zset (233 ms) === () Starting server on 127.0.0.1:23322 ok -[ok]: corrupt payload: fuzzer findings - hash with len of 0 (383 ms) +[ok]: corrupt payload: fuzzer findings - hash with len of 0 (242 ms) === () Starting server on 127.0.0.1:23324 ok -[ok]: corrupt payload: fuzzer findings - hash listpack first element too long entry len (414 ms) +[ok]: corrupt payload: fuzzer findings - hash listpack first element too long entry len (230 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 (411 ms) +[ok]: corrupt payload: fuzzer findings - stream double free listpack when insert dup node to rax returns 0 (227 ms) === () Starting server on 127.0.0.1:23328 ok -[ok]: corrupt payload: fuzzer findings - LCS OOM (360 ms) +[ok]: corrupt payload: fuzzer findings - LCS OOM (229 ms) === () Starting server on 127.0.0.1:23330 ok -[ok]: corrupt payload: fuzzer findings - gcc asan reports false leak on assert (307 ms) +[ok]: corrupt payload: fuzzer findings - gcc asan reports false leak on assert (154 ms) === () Starting server on 127.0.0.1:23332 ok -[ok]: corrupt payload: fuzzer findings - lpFind invalid access (371 ms) +[ok]: corrupt payload: fuzzer findings - lpFind invalid access (152 ms) === () Starting server on 127.0.0.1:23334 ok -[ok]: corrupt payload: fuzzer findings - invalid access in ziplist tail prevlen decoding (477 ms) +[ok]: corrupt payload: fuzzer findings - invalid access in ziplist tail prevlen decoding (230 ms) === () Starting server on 127.0.0.1:23336 ok -[ok]: corrupt payload: fuzzer findings - zset zslInsert with a NAN score (515 ms) +[ok]: corrupt payload: fuzzer findings - zset zslInsert with a NAN score (234 ms) === () Starting server on 127.0.0.1:23338 ok -[ok]: corrupt payload: fuzzer findings - streamLastValidID panic (273 ms) +[ok]: corrupt payload: fuzzer findings - streamLastValidID panic (244 ms) === () Starting server on 127.0.0.1:23340 ok -[ok]: corrupt payload: fuzzer findings - valgrind fishy value warning (346 ms) +[ok]: corrupt payload: fuzzer findings - valgrind fishy value warning (256 ms) === () Starting server on 127.0.0.1:23342 ok -[ok]: corrupt payload: fuzzer findings - empty set listpack (367 ms) +[ok]: corrupt payload: fuzzer findings - empty set listpack (255 ms) === () Starting server on 127.0.0.1:23344 ok -[ok]: corrupt payload: fuzzer findings - set with duplicate elements causes sdiff to hang (349 ms) -[121/129 done]: integration/corrupt-dump (27 seconds) +[ok]: corrupt payload: fuzzer findings - set with duplicate elements causes sdiff to hang (246 ms) +[121/129 done]: integration/corrupt-dump (18 seconds) Testing integration/corrupt-dump-fuzzer === () Starting server on 127.0.0.1:23346 ok -Done 20 cycles in 10 seconds. -RESTORE: successful: 12, rejected: 8 -Total commands sent in traffic: 5656, crashes during traffic: 2 (0 by signal). -[ok]: Fuzzer corrupt restore payloads - sanitize_dump: no (9881 ms) +Done 13 cycles in 10 seconds. +RESTORE: successful: 10, rejected: 3 +Total commands sent in traffic: 12496, crashes during traffic: 1 (0 by signal). +[ok]: Fuzzer corrupt restore payloads - sanitize_dump: no (9262 ms) === () Starting server on 127.0.0.1:23348 ok -Done 25 cycles in 10 seconds. -RESTORE: successful: 10, rejected: 15 -Total commands sent in traffic: 7600, crashes during traffic: 0 (0 by signal). -[ok]: Fuzzer corrupt restore payloads - sanitize_dump: yes (10048 ms) +Done 15 cycles in 10 seconds. +RESTORE: successful: 10, rejected: 5 +Total commands sent in traffic: 12295, crashes during traffic: 0 (0 by signal). +[ok]: Fuzzer corrupt restore payloads - sanitize_dump: yes (9939 ms) [122/129 done]: integration/corrupt-dump-fuzzer (20 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 (1 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 (10 ms) +[ok]: RDB load zipmap hash: converts to hash table when hash-max-ziplist-entries is exceeded (0 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 (6 ms) -[123/129 done]: integration/convert-zipmap-hash-on-load (1 seconds) +[ok]: RDB load zipmap hash: converts to hash table when hash-max-ziplist-value is exceeded (0 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) +[ok]: RDB load ziplist zset: converts to listpack when RDB loading (1 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) +[ok]: RDB load ziplist zset: converts to skiplist when zset-max-ziplist-entries is exceeded (2 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) +[ok]: RDB load ziplist hash: converts to listpack when RDB loading (3 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 (0 ms) +[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 (1008 ms) +[ok]: First server should have role slave after SLAVEOF (1010 ms) [ok]: Test replication with blocking lists and sorted sets operations (25029 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 (7 ms) +[ok]: Unfinished MULTI: Server should start if load-truncated is yes (4 ms) === () Starting server on 127.0.0.1:23370 ok -[ok]: Short read: Server should start if load-truncated is yes (6 ms) -[ok]: Truncated AOF loaded: we expect foo to be equal to 5 (24 ms) +[ok]: Short read: Server should start if load-truncated is yes (3 ms) +[ok]: Truncated AOF loaded: we expect foo to be equal to 5 (27 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 (59 ms) -[ok]: Truncated AOF loaded: we expect foo to be equal to 6 now (36 ms) +[ok]: Short read + command: Server should start (4 ms) +[ok]: Truncated AOF loaded: we expect foo to be equal to 6 now (19 ms) === () Starting server on 127.0.0.1:23374 -[ok]: Bad format: Server should have logged an error (7 ms) +[ok]: Bad format: Server should have logged an error (3 ms) === () Starting server on 127.0.0.1:23376 -[ok]: Unfinished MULTI: Server should have logged an error (69 ms) +[ok]: Unfinished MULTI: Server should have logged an error (4 ms) === () Starting server on 127.0.0.1:23378 -[ok]: Short read: Server should have logged an error (4 ms) -[ok]: Short read: Utility should confirm the AOF is not valid (135 ms) -[ok]: Short read: Utility should show the abnormal line num in AOF (78 ms) -[ok]: Short read: Utility should be able to fix the AOF (15 ms) +[ok]: Short read: Server should have logged an error (1 ms) +[ok]: Short read: Utility should confirm the AOF is not valid (18 ms) +[ok]: Short read: Utility should show the abnormal line num in AOF (12 ms) +[ok]: Short read: Utility should be able to fix the AOF (16 ms) === () Starting server on 127.0.0.1:23380 ok -[ok]: Fixed AOF: Server should have been started (7 ms) -[ok]: Fixed AOF: Keyspace should contain values that were parseable (37 ms) +[ok]: Fixed AOF: Server should have been started (5 ms) +[ok]: Fixed AOF: Keyspace should contain values that were parseable (22 ms) === () Starting server on 127.0.0.1:23382 ok -[ok]: AOF+SPOP: Server should have been started (10 ms) -[ok]: AOF+SPOP: Set should have 1 member (37 ms) +[ok]: AOF+SPOP: Server should have been started (4 ms) +[ok]: AOF+SPOP: Set should have 1 member (22 ms) === () Starting server on 127.0.0.1:23384 ok -[ok]: AOF+SPOP: Server should have been started (11 ms) -[ok]: AOF+SPOP: Set should have 1 member (51 ms) +[ok]: AOF+SPOP: Server should have been started (3 ms) +[ok]: AOF+SPOP: Set should have 1 member (24 ms) === () Starting server on 127.0.0.1:23386 ok -[ok]: AOF+EXPIRE: Server should have been started (3 ms) -[ok]: AOF+EXPIRE: List should be empty (56 ms) +[ok]: AOF+EXPIRE: Server should have been started (5 ms) +[ok]: AOF+EXPIRE: List should be empty (23 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) +[ok]: Server should not try to convert DEL into EXPIREAT for EXPIRE -1 (1 ms) === () Starting server on 127.0.0.1:23390 ok -[ok]: AOF fsync always barrier issue (6565 ms) +[ok]: AOF fsync always barrier issue (5691 ms) === () Starting server on 127.0.0.1:23392 ok -[ok]: GETEX should not append to AOF (10 ms) +[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 (8 ms) +[ok]: Unknown command: Server should have logged an error (1 ms) === () Starting server on 127.0.0.1:23396 ok -[ok]: AOF+LMPOP/BLMPOP: pop elements from the list (189 ms) +[ok]: AOF+LMPOP/BLMPOP: pop elements from the list (144 ms) === () Starting server on 127.0.0.1:23398 ok -[ok]: AOF+LMPOP/BLMPOP: after pop elements from the list (52 ms) +[ok]: AOF+LMPOP/BLMPOP: after pop elements from the list (21 ms) === () Starting server on 127.0.0.1:23400 ok -[ok]: AOF+ZMPOP/BZMPOP: pop elements from the zset (192 ms) +[ok]: AOF+ZMPOP/BZMPOP: pop elements from the zset (140 ms) === () Starting server on 127.0.0.1:23402 ok -[ok]: AOF+ZMPOP/BZMPOP: after pop elements from the zset (44 ms) +[ok]: AOF+ZMPOP/BZMPOP: after pop elements from the zset (23 ms) === () Starting server on 127.0.0.1:23404 ok -Waiting for background AOF rewrite to finish... [ok]: Generate timestamp annotations in AOF (515 ms) +Waiting for background AOF rewrite to finish... [ok]: Generate timestamp annotations in AOF (368 ms) === () Starting server on 127.0.0.1:23406 ok -[ok]: Successfully load AOF which has timestamp annotations inside (42 ms) +[ok]: Successfully load AOF which has timestamp annotations inside (17 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 (1469 ms) +[ok]: Truncate AOF to specific timestamp (881 ms) === () Starting server on 127.0.0.1:23414 ok -[ok]: EVAL timeout with slow verbatim Lua script from AOF (3178 ms) +[ok]: EVAL timeout with slow verbatim Lua script from AOF (1899 ms) === () Starting server on 127.0.0.1:23416 ok -[ok]: EVAL can process writes from AOF in read-only replicas (455 ms) -[ok]: Test valkey-check-aof for old style resp AOF (40 ms) -[ok]: Test valkey-check-aof for old style resp AOF - has data in the same format as manifest (68 ms) -[ok]: Test valkey-check-aof for old style rdb-preamble AOF (48 ms) -[ok]: Test valkey-check-aof for Multi Part AOF with resp AOF base (41 ms) -[ok]: Test valkey-check-aof for Multi Part AOF with rdb-preamble AOF base (36 ms) -[ok]: Test valkey-check-aof for Multi Part AOF contains a format error (40 ms) -[ok]: Test valkey-check-aof only truncates the last file for Multi Part AOF in fix mode (79 ms) -[ok]: Test valkey-check-aof only truncates the last file for Multi Part AOF in truncate-to-timestamp mode (28 ms) +[ok]: EVAL can process writes from AOF in read-only replicas (284 ms) +[ok]: Test valkey-check-aof for old style resp AOF (19 ms) +[ok]: Test valkey-check-aof for old style resp AOF - has data in the same format as manifest (17 ms) +[ok]: Test valkey-check-aof for old style rdb-preamble AOF (19 ms) +[ok]: Test valkey-check-aof for Multi Part AOF with resp AOF base (26 ms) +[ok]: Test valkey-check-aof for Multi Part AOF with rdb-preamble AOF base (19 ms) +[ok]: Test valkey-check-aof for Multi Part AOF contains a format error (20 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 (15 ms) === () Starting server on 127.0.0.1:23418 ok -[ok]: FLUSHDB / FLUSHALL should persist in AOF (25 ms) +[ok]: FLUSHDB / FLUSHALL should persist in AOF (9 ms) === () Starting server on 127.0.0.1:23420 ok -[ok]: Turning appendonly on and off within a transaction (40 ms) +[ok]: Turning appendonly on and off within a transaction (3 ms) === () Starting server on 127.0.0.1:23423 ok -[ok]: Test cluster slots / cluster shards in aof won't crash (406 ms) +[ok]: Test cluster slots / cluster shards in aof won't crash (249 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 (700 ms) -[127/129 done]: integration/aof (23 seconds) +[ok]: Test command check in aof won't crash (448 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 (2 seconds) +[128/129 done]: integration/aof-race (1 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 (280 ms) +[ok]: Multi Part AOF can't load data when some file missing (141 ms) === () Starting server on 127.0.0.1:23437 -[ok]: Multi Part AOF can't load data when the sequence not increase monotonically (260 ms) +[ok]: Multi Part AOF can't load data when the sequence not increase monotonically (141 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 (229 ms) +[ok]: Multi Part AOF can't load data when there are blank lines in the manifest file (144 ms) === () Starting server on 127.0.0.1:23441 -[ok]: Multi Part AOF can't load data when there is a duplicate base file (250 ms) +[ok]: Multi Part AOF can't load data when there is a duplicate base file (141 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) (189 ms) +[ok]: Multi Part AOF can't load data when the manifest format is wrong (type unknown) (136 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) (210 ms) +[ok]: Multi Part AOF can't load data when the manifest format is wrong (missing key) (147 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) (281 ms) +[ok]: Multi Part AOF can't load data when the manifest format is wrong (line too short) (148 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) (203 ms) +[ok]: Multi Part AOF can't load data when the manifest format is wrong (line too long) (149 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) (287 ms) +[ok]: Multi Part AOF can't load data when the manifest format is wrong (odd parameter) (139 ms) === () Starting server on 127.0.0.1:23453 -[ok]: Multi Part AOF can't load data when the manifest file is empty (208 ms) +[ok]: Multi Part AOF can't load data when the manifest file is empty (162 ms) === () Starting server on 127.0.0.1:23455 ok -[ok]: Multi Part AOF can start when no aof and no manifest (462 ms) +[ok]: Multi Part AOF can start when no aof and no manifest (265 ms) === () Starting server on 127.0.0.1:23457 ok -[ok]: Multi Part AOF can start when we have en empty AOF dir (284 ms) +[ok]: Multi Part AOF can start when we have en empty AOF dir (262 ms) === () Starting server on 127.0.0.1:23459 ok -[ok]: Multi Part AOF can load data discontinuously increasing sequence (513 ms) +[ok]: Multi Part AOF can load data discontinuously increasing sequence (265 ms) === () Starting server on 127.0.0.1:23461 ok -[ok]: Multi Part AOF can load data when manifest add new k-v (545 ms) +[ok]: Multi Part AOF can load data when manifest add new k-v (271 ms) === () Starting server on 127.0.0.1:23463 ok -[ok]: Multi Part AOF can load data when some AOFs are empty (723 ms) +[ok]: Multi Part AOF can load data when some AOFs are empty (275 ms) === () Starting server on 127.0.0.1:23465 ok -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: Multi Part AOF can load data from old version valkey (rdb preamble no) (551 ms) +Waiting for background AOF rewrite to finish... [ok]: Multi Part AOF can load data from old version valkey (rdb preamble no) (372 ms) === () Starting server on 127.0.0.1:23467 ok -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: Multi Part AOF can load data from old version valkey (rdb preamble yes) (540 ms) +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 (570 ms) +[ok]: Multi Part AOF can continue the upgrade from the interrupted upgrade state (259 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 (552 ms) +[ok]: Multi Part AOF can be loaded correctly when both server dir and aof dir contain old AOF (279 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 (256 ms) +[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 (148 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... -Waiting for background AOF rewrite to finish... [ok]: Multi Part AOF can upgrade when when two servers share the same server dir (server1) (158 ms) +Waiting for background AOF rewrite to finish... [ok]: Multi Part AOF can upgrade when when two servers share the same server dir (server1) (80 ms) -Waiting for background AOF rewrite to finish... [ok]: Multi Part AOF can upgrade when when two servers share the same server dir (server2) (116 ms) -[ok]: Multi Part AOF can upgrade when when two servers share the same server dir (1123 ms) +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... [ok]: Multi Part AOF can upgrade when when two servers share the same server dir (server2) (131 ms) +[ok]: Multi Part AOF can upgrade when when two servers share the same server dir (752 ms) === () Starting server on 127.0.0.1:23479 ok -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: Multi Part AOF can handle appendfilename contains whitespaces (532 ms) +Waiting for background AOF rewrite to finish... [ok]: Multi Part AOF can handle appendfilename contains whitespaces (365 ms) === () Starting server on 127.0.0.1:23481 ok -[ok]: Multi Part AOF can create BASE (RDB format) when server starts from empty (496 ms) +[ok]: Multi Part AOF can create BASE (RDB format) when server starts from empty (253 ms) === () Starting server on 127.0.0.1:23483 ok -[ok]: Multi Part AOF can create BASE (AOF format) when server starts from empty (424 ms) +[ok]: Multi Part AOF can create BASE (AOF format) when server starts from empty (256 ms) === () Starting server on 127.0.0.1:23485 ok Waiting for background AOF rewrite to finish... @@ -6578,187 +6636,183 @@ 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 (1459 ms) +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... [ok]: Changing aof-use-rdb-preamble during rewrite process (1380 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... -Waiting for background AOF rewrite to finish... [ok]: AOF enable will create manifest file (503 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF enable will create manifest file (281 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 multiple rewrite failures will open multiple INCR AOFs (1450 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF multiple rewrite failures will open multiple INCR AOFs (1025 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 doesn't open new aof when AOF turn off (380 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite doesn't open new aof when AOF turn off (311 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 (223 ms) - -Waiting for background AOF rewrite to finish... [ok]: AOF can produce consecutive sequence number after reload (81 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF enable/disable auto gc (209 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 (456 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF can produce consecutive sequence number after reload (133 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 (394 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... -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: AOF will trigger limit when AOFRW fails many times (940 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF will trigger limit when AOFRW fails many times (590 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 (2536 ms) -[129/129 done]: integration/aof-multi-part (18 seconds) +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 (1928 ms) +[129/129 done]: integration/aof-multi-part (13 seconds) The End Execution time of different units: - 32 seconds - unit/wait + 31 seconds - unit/wait 0 seconds - unit/violations 4 seconds - unit/tracking 1 seconds - unit/tls - 10 seconds - unit/sort - 2 seconds - unit/slowlog - 1 seconds - unit/shutdown - 49 seconds - unit/scripting - 44 seconds - unit/scan + 9 seconds - unit/sort + 1 seconds - unit/slowlog + 2 seconds - unit/shutdown + 37 seconds - unit/scripting + 23 seconds - unit/scan 1 seconds - unit/replybufsize - 0 seconds - unit/quit - 7 seconds - unit/querybuf + 1 seconds - unit/quit + 6 seconds - unit/querybuf 2 seconds - unit/pubsubshard 2 seconds - unit/pubsub - 1 seconds - unit/protocol + 2 seconds - unit/protocol 15 seconds - unit/pause - 20 seconds - unit/other + 12 seconds - unit/other 0 seconds - unit/oom-score-adj - 24 seconds - unit/obuf-limits + 17 seconds - unit/obuf-limits 2 seconds - unit/networking - 8 seconds - unit/multi - 5 seconds - unit/memefficiency - 102 seconds - unit/maxmemory + 7 seconds - unit/multi + 3 seconds - unit/memefficiency + 117 seconds - unit/maxmemory 2 seconds - unit/limits 1 seconds - unit/lazyfree - 19 seconds - unit/latency-monitor + 18 seconds - unit/latency-monitor 4 seconds - unit/keyspace - 14 seconds - unit/introspection - 10 seconds - unit/introspection-2 - 4 seconds - unit/info + 13 seconds - unit/introspection + 11 seconds - unit/introspection-2 + 3 seconds - unit/info 0 seconds - unit/info-command - 60 seconds - unit/hyperloglog - 39 seconds - unit/geo + 63 seconds - unit/hyperloglog + 26 seconds - unit/geo 6 seconds - unit/functions 17 seconds - unit/expire - 27 seconds - unit/dump + 25 seconds - unit/dump 2 seconds - unit/commandlog - 16 seconds - unit/client-eviction + 15 seconds - unit/client-eviction 2 seconds - unit/bitops 3 seconds - unit/bitfield 3 seconds - unit/auth 18 seconds - unit/aofrw 4 seconds - unit/acl 0 seconds - unit/acl-v2 - 31 seconds - unit/type/zset - 12 seconds - unit/type/string + 32 seconds - unit/type/zset + 13 seconds - unit/type/string 16 seconds - unit/type/stream - 8 seconds - unit/type/stream-cgroups - 8 seconds - unit/type/set + 9 seconds - unit/type/stream-cgroups + 9 seconds - unit/type/set 20 seconds - unit/type/list - 49 seconds - unit/type/list-3 - 13 seconds - unit/type/list-2 - 1 seconds - unit/type/incr + 47 seconds - unit/type/list-3 + 16 seconds - unit/type/list-2 + 0 seconds - unit/type/incr 5 seconds - unit/type/hash - 23 seconds - unit/cluster/update-msg + 27 seconds - unit/cluster/update-msg 13 seconds - unit/cluster/transactions-on-replica - 183 seconds - unit/cluster/slot-stats + 218 seconds - unit/cluster/slot-stats 51 seconds - unit/cluster/slot-ownership - 86 seconds - unit/cluster/slot-migration - 3 seconds - unit/cluster/slot-migration-response - 44 seconds - unit/cluster/slave-stop-cond - 69 seconds - unit/cluster/slave-selection + 84 seconds - unit/cluster/slot-migration + 4 seconds - unit/cluster/slot-migration-response + 43 seconds - unit/cluster/slave-stop-cond + 67 seconds - unit/cluster/slave-selection 0 seconds - unit/cluster/shardid-propagation - 12 seconds - unit/cluster/sharded-pubsub + 11 seconds - unit/cluster/sharded-pubsub 2 seconds - unit/cluster/scripting - 175 seconds - unit/cluster/replica-migration - 18 seconds - unit/cluster/replica-in-sync + 163 seconds - unit/cluster/replica-migration + 16 seconds - unit/cluster/replica-in-sync 12 seconds - unit/cluster/pubsubshard - 14 seconds - unit/cluster/pubsubshard-slot-migration - 16 seconds - unit/cluster/pubsub - 13 seconds - unit/cluster/noaddr + 13 seconds - unit/cluster/pubsubshard-slot-migration + 15 seconds - unit/cluster/pubsub + 12 seconds - unit/cluster/noaddr 15 seconds - unit/cluster/no-failover-option - 4 seconds - unit/cluster/multi-slot-operations + 3 seconds - unit/cluster/multi-slot-operations 12 seconds - unit/cluster/misc - 58 seconds - unit/cluster/many-slot-migration + 89 seconds - unit/cluster/many-slot-migration 21 seconds - unit/cluster/manual-takeover - 150 seconds - unit/cluster/manual-failover - 28 seconds - unit/cluster/links - 8 seconds - unit/cluster/info + 142 seconds - unit/cluster/manual-failover + 25 seconds - unit/cluster/links + 9 seconds - unit/cluster/info 7 seconds - unit/cluster/human-announced-nodename 14 seconds - unit/cluster/hostnames 4 seconds - unit/cluster/half-migrated-slot - 32 seconds - unit/cluster/failure-marking - 172 seconds - unit/cluster/failover2 - 41 seconds - unit/cluster/failover - 17 seconds - unit/cluster/faildet + 29 seconds - unit/cluster/failure-marking + 140 seconds - unit/cluster/failover2 + 36 seconds - unit/cluster/failover + 14 seconds - unit/cluster/faildet 1 seconds - unit/cluster/divergent-cluster-shardid-conf - 529 seconds - unit/cluster/diskless-load-swapdb - 35 seconds - unit/cluster/consistency-check - 494 seconds - unit/cluster/cluster-slots - 16 seconds - unit/cluster/cluster-shards - 32 seconds - unit/cluster/cluster-response-tls - 22 seconds - unit/cluster/cluster-reliable-meet - 12 seconds - unit/cluster/cluster-nodes-slots + 104 seconds - unit/cluster/diskless-load-swapdb + 20 seconds - unit/cluster/consistency-check + 88 seconds - unit/cluster/cluster-slots + 14 seconds - unit/cluster/cluster-shards + 28 seconds - unit/cluster/cluster-response-tls + 24 seconds - unit/cluster/cluster-reliable-meet + 11 seconds - unit/cluster/cluster-nodes-slots 0 seconds - unit/cluster/cluster-multiple-meets - 0 seconds - unit/cluster/cli + 1 seconds - unit/cluster/cli 0 seconds - unit/cluster/base - 12 seconds - unit/cluster/announced-endpoints - 29 seconds - unit/cluster/announce-client-ip - 17 seconds - integration/valkey-cli - 9 seconds - integration/valkey-benchmark - 4 seconds - integration/skip-rdb-checksum - 14 seconds - integration/shutdown - 181 seconds - integration/replication - 246 seconds - integration/replication-psync - 44 seconds - integration/replication-buffer - 36 seconds - integration/replication-4 - 18 seconds - integration/replication-3 - 15 seconds - integration/replication-2 + 11 seconds - unit/cluster/announced-endpoints + 28 seconds - unit/cluster/announce-client-ip + 15 seconds - integration/valkey-cli + 4 seconds - integration/valkey-benchmark + 3 seconds - integration/skip-rdb-checksum + 12 seconds - integration/shutdown + 150 seconds - integration/replication + 245 seconds - integration/replication-psync + 31 seconds - integration/replication-buffer + 24 seconds - integration/replication-4 + 12 seconds - integration/replication-3 + 10 seconds - integration/replication-2 1 seconds - integration/replica-redirect - 11 seconds - integration/rdb + 8 seconds - integration/rdb 49 seconds - integration/psync2 - 23 seconds - integration/psync2-reg + 22 seconds - integration/psync2-reg 18 seconds - integration/psync2-pingoff - 12 seconds - integration/psync2-master-restart - 2 seconds - integration/logging + 8 seconds - integration/psync2-master-restart + 1 seconds - integration/logging 7 seconds - integration/failover - 178 seconds - integration/dual-channel-replication - 4 seconds - integration/dismiss-mem - 1 seconds - integration/cross-version-replication - 27 seconds - integration/corrupt-dump + 126 seconds - integration/dual-channel-replication + 5 seconds - integration/dismiss-mem + 0 seconds - integration/cross-version-replication + 18 seconds - integration/corrupt-dump 20 seconds - integration/corrupt-dump-fuzzer - 1 seconds - integration/convert-zipmap-hash-on-load + 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 - 23 seconds - integration/aof - 2 seconds - integration/aof-race - 18 seconds - integration/aof-multi-part + 15 seconds - integration/aof + 1 seconds - integration/aof-race + 13 seconds - integration/aof-multi-part \o/ All tests passed without errors! @@ -6785,346 +6839,340 @@ Starting valkey #18 at port 30036 Starting valkey #19 at port 30038 Testing unit: 03-failover-loop.tcl -12:49:34> (init) Restart killed instances: OK -12:49:34> Cluster nodes are reachable: OK -12:49:34> Cluster nodes hard reset: OK -12:49:34> Cluster Join and auto-discovery test: OK -12:49:37> Before slots allocation, all nodes report cluster failure: OK -12:49:37> Create a 5 nodes cluster: OK -12:49:41> Cluster is up: OK +09:56:14> (init) Restart killed instances: OK +09:56:14> Cluster nodes are reachable: OK +09:56:14> Cluster nodes hard reset: OK +09:56:15> Cluster Join and auto-discovery test: OK +09:56:17> Before slots allocation, all nodes report cluster failure: OK +09:56:17> Create a 5 nodes cluster: OK +09:56:20> Cluster is up: OK --- Iteration 19 --- -12:49:41> Wait for slave of #0 to sync: OK -12:49:41> Cluster is writable before failover: OK -12:49:42> Terminating node #0: OK -12:49:43> Wait failover by #5 with old epoch 1: OK -12:49:49> Cluster should eventually be up again: OK -12:49:49> Cluster is writable again: OK -12:49:49> Restarting node #0: OK -12:49:50> Instance #0 is now a slave: OK -12:49:50> We can read back the value we set before: OK +09:56:20> Cluster is writable before failover: OK +09:56:20> Terminating node #9: OK +09:56:20> Cluster should eventually be up again: OK +09:56:20> Cluster is writable again: OK +09:56:21> Restarting node #9: OK +09:56:21> Instance #9 is now a slave: OK +09:56:21> We can read back the value we set before: OK --- Iteration 18 --- -12:49:50> Cluster is writable before failover: OK -12:49:50> Terminating node #7: OK -12:49:50> Cluster should eventually be up again: OK -12:49:50> Cluster is writable again: OK -12:49:50> Restarting node #7: OK -12:49:51> Instance #7 is now a slave: OK -12:49:51> We can read back the value we set before: OK +09:56:21> Wait for slave of #3 to sync: OK +09:56:21> Cluster is writable before failover: OK +09:56:21> Terminating node #3: OK +09:56:21> Wait failover by #8 with old epoch 4: OK +09:56:27> Cluster should eventually be up again: OK +09:56:27> Cluster is writable again: OK +09:56:27> Restarting node #3: OK +09:56:28> Instance #3 is now a slave: OK +09:56:28> We can read back the value we set before: OK --- Iteration 17 --- -12:49:52> Wait for slave of #4 to sync: OK -12:49:52> Cluster is writable before failover: OK -12:49:52> Terminating node #4: OK -12:49:53> Wait failover by #9 with old epoch 5: OK -12:49:58> Cluster should eventually be up again: OK -12:49:58> Cluster is writable again: OK -12:49:59> Restarting node #4: OK -12:49:59> Instance #4 is now a slave: OK -12:49:59> We can read back the value we set before: OK +09:56:28> Wait for slave of #4 to sync: OK +09:56:28> Cluster is writable before failover: OK +09:56:28> Terminating node #4: OK +09:56:29> Wait failover by #9 with old epoch 5: OK +09:56:34> Cluster should eventually be up again: OK +09:56:34> Cluster is writable again: OK +09:56:34> Restarting node #4: OK +09:56:34> Instance #4 is now a slave: OK +09:56:34> We can read back the value we set before: OK --- Iteration 16 --- -12:49:59> Cluster is writable before failover: OK -12:50:00> Terminating node #4: OK -12:50:00> Cluster should eventually be up again: OK -12:50:00> Cluster is writable again: OK -12:50:00> Restarting node #4: OK -12:50:00> Instance #4 is now a slave: OK -12:50:00> We can read back the value we set before: OK +09:56:34> Cluster is writable before failover: OK +09:56:34> Terminating node #6: OK +09:56:34> Cluster should eventually be up again: OK +09:56:34> Cluster is writable again: OK +09:56:34> Restarting node #6: OK +09:56:35> Instance #6 is now a slave: OK +09:56:35> We can read back the value we set before: OK --- Iteration 15 --- -12:50:01> Cluster is writable before failover: OK -12:50:01> Terminating node #0: OK -12:50:01> Cluster should eventually be up again: OK -12:50:01> Cluster is writable again: OK -12:50:01> Restarting node #0: OK -12:50:02> Instance #0 is now a slave: OK -12:50:02> We can read back the value we set before: OK +09:56:35> Wait for slave of #1 to sync: OK +09:56:35> Cluster is writable before failover: OK +09:56:35> Terminating node #1: OK +09:56:36> Wait failover by #6 with old epoch 2: OK +09:56:41> Cluster should eventually be up again: OK +09:56:41> Cluster is writable again: OK +09:56:41> Restarting node #1: OK +09:56:42> Instance #1 is now a slave: OK +09:56:42> We can read back the value we set before: OK --- Iteration 14 --- -12:50:02> Cluster is writable before failover: OK -12:50:02> Terminating node #4: OK -12:50:02> Cluster should eventually be up again: OK -12:50:02> Cluster is writable again: OK -12:50:02> Restarting node #4: OK -12:50:03> Instance #4 is now a slave: OK -12:50:03> We can read back the value we set before: OK +09:56:42> Cluster is writable before failover: OK +09:56:42> Terminating node #7: OK +09:56:42> Cluster should eventually be up again: OK +09:56:42> Cluster is writable again: OK +09:56:42> Restarting node #7: OK +09:56:42> Instance #7 is now a slave: OK +09:56:42> We can read back the value we set before: OK --- Iteration 13 --- -12:50:03> Wait for slave of #3 to sync: OK -12:50:03> Cluster is writable before failover: OK -12:50:03> Terminating node #3: OK -12:50:04> Wait failover by #8 with old epoch 4: OK -12:50:09> Cluster should eventually be up again: OK -12:50:09> Cluster is writable again: OK -12:50:09> Restarting node #3: OK -12:50:10> Instance #3 is now a slave: OK -12:50:10> We can read back the value we set before: OK +09:56:43> Wait for slave of #8 to sync: OK +09:56:43> Cluster is writable before failover: OK +09:56:43> Terminating node #8: OK +09:56:43> Wait failover by #3 with old epoch 21: OK +09:56:48> Cluster should eventually be up again: OK +09:56:48> Cluster is writable again: OK +09:56:48> Restarting node #8: OK +09:56:48> Instance #8 is now a slave: OK +09:56:48> We can read back the value we set before: OK --- Iteration 12 --- -12:50:10> Wait for slave of #5 to sync: OK -12:50:10> Cluster is writable before failover: OK -12:50:10> Terminating node #5: OK -12:50:11> Wait failover by #0 with old epoch 21: OK -12:50:16> Cluster should eventually be up again: OK -12:50:16> Cluster is writable again: OK -12:50:16> Restarting node #5: OK -12:50:17> Instance #5 is now a slave: OK -12:50:17> We can read back the value we set before: OK +09:56:48> Cluster is writable before failover: OK +09:56:48> Terminating node #1: OK +09:56:49> Cluster should eventually be up again: OK +09:56:49> Cluster is writable again: OK +09:56:49> Restarting node #1: OK +09:56:49> Instance #1 is now a slave: OK +09:56:49> We can read back the value we set before: OK --- Iteration 11 --- -12:50:17> Wait for slave of #8 to sync: OK -12:50:17> Cluster is writable before failover: OK -12:50:17> Terminating node #8: OK -12:50:18> Wait failover by #3 with old epoch 23: OK -12:50:23> Cluster should eventually be up again: OK -12:50:23> Cluster is writable again: OK -12:50:23> Restarting node #8: OK -12:50:24> Instance #8 is now a slave: OK -12:50:24> We can read back the value we set before: OK +09:56:49> Cluster is writable before failover: OK +09:56:49> Terminating node #8: OK +09:56:49> Cluster should eventually be up again: OK +09:56:49> Cluster is writable again: OK +09:56:49> Restarting node #8: OK +09:56:50> Instance #8 is now a slave: OK +09:56:50> We can read back the value we set before: OK --- Iteration 10 --- -12:50:24> Wait for slave of #2 to sync: OK -12:50:24> Cluster is writable before failover: OK -12:50:24> Terminating node #2: OK -12:50:25> Wait failover by #7 with old epoch 3: OK -12:50:30> Cluster should eventually be up again: OK -12:50:30> Cluster is writable again: OK -12:50:30> Restarting node #2: OK -12:50:31> Instance #2 is now a slave: OK -12:50:31> We can read back the value we set before: OK +09:56:50> Cluster is writable before failover: OK +09:56:50> Terminating node #1: OK +09:56:50> Cluster should eventually be up again: OK +09:56:50> Cluster is writable again: OK +09:56:50> Restarting node #1: OK +09:56:51> Instance #1 is now a slave: OK +09:56:51> We can read back the value we set before: OK --- Iteration 9 --- -12:50:31> Cluster is writable before failover: OK -12:50:31> Terminating node #2: OK -12:50:31> Cluster should eventually be up again: OK -12:50:31> Cluster is writable again: OK -12:50:31> Restarting node #2: OK -12:50:32> Instance #2 is now a slave: OK -12:50:32> We can read back the value we set before: OK +09:56:51> Cluster is writable before failover: OK +09:56:51> Terminating node #5: OK +09:56:51> Cluster should eventually be up again: OK +09:56:51> Cluster is writable again: OK +09:56:51> Restarting node #5: OK +09:56:52> Instance #5 is now a slave: OK +09:56:52> We can read back the value we set before: OK --- Iteration 8 --- -12:50:32> Wait for slave of #1 to sync: OK -12:50:32> Cluster is writable before failover: OK -12:50:32> Terminating node #1: OK -12:50:33> Wait failover by #6 with old epoch 2: OK -12:50:38> Cluster should eventually be up again: OK -12:50:38> Cluster is writable again: OK -12:50:39> Restarting node #1: OK -12:50:39> Instance #1 is now a slave: OK -12:50:39> We can read back the value we set before: OK +09:56:52> Wait for slave of #3 to sync: OK +09:56:52> Cluster is writable before failover: OK +09:56:52> Terminating node #3: OK +09:56:53> Wait failover by #8 with old epoch 24: OK +09:56:58> Cluster should eventually be up again: OK +09:56:58> Cluster is writable again: OK +09:56:58> Restarting node #3: OK +09:56:58> Instance #3 is now a slave: OK +09:56:58> We can read back the value we set before: OK --- Iteration 7 --- -12:50:40> Wait for slave of #7 to sync: OK -12:50:40> Cluster is writable before failover: OK -12:50:40> Terminating node #7: OK -12:50:41> Wait failover by #2 with old epoch 26: OK -12:50:46> Cluster should eventually be up again: OK -12:50:46> Cluster is writable again: OK -12:50:46> Restarting node #7: OK -12:50:47> Instance #7 is now a slave: OK -12:50:47> We can read back the value we set before: OK +09:56:58> Cluster is writable before failover: OK +09:56:58> Terminating node #5: OK +09:56:58> Cluster should eventually be up again: OK +09:56:58> Cluster is writable again: OK +09:56:58> Restarting node #5: OK +09:56:59> Instance #5 is now a slave: OK +09:56:59> We can read back the value we set before: OK --- Iteration 6 --- -12:50:47> Cluster is writable before failover: OK -12:50:47> Terminating node #5: OK -12:50:47> Cluster should eventually be up again: OK -12:50:47> Cluster is writable again: OK -12:50:47> Restarting node #5: OK -12:50:48> Instance #5 is now a slave: OK -12:50:48> We can read back the value we set before: OK +09:56:59> Wait for slave of #8 to sync: OK +09:56:59> Cluster is writable before failover: OK +09:56:59> Terminating node #8: OK +09:56:59> Wait failover by #3 with old epoch 25: OK +09:57:04> Cluster should eventually be up again: OK +09:57:05> Cluster is writable again: OK +09:57:05> Restarting node #8: OK +09:57:05> Instance #8 is now a slave: OK +09:57:05> We can read back the value we set before: OK --- Iteration 5 --- -12:50:48> Cluster is writable before failover: OK -12:50:48> Terminating node #7: OK -12:50:48> Cluster should eventually be up again: OK -12:50:48> Cluster is writable again: OK -12:50:48> Restarting node #7: OK -12:50:49> Instance #7 is now a slave: OK -12:50:49> We can read back the value we set before: OK +09:57:05> Wait for slave of #3 to sync: OK +09:57:05> Cluster is writable before failover: OK +09:57:05> Terminating node #3: OK +09:57:06> Wait failover by #8 with old epoch 26: OK +09:57:11> Cluster should eventually be up again: OK +09:57:11> Cluster is writable again: OK +09:57:11> Restarting node #3: OK +09:57:11> Instance #3 is now a slave: OK +09:57:11> We can read back the value we set before: OK --- Iteration 4 --- -12:50:49> Cluster is writable before failover: OK -12:50:49> Terminating node #8: OK -12:50:49> Cluster should eventually be up again: OK -12:50:49> Cluster is writable again: OK -12:50:49> Restarting node #8: OK -12:50:50> Instance #8 is now a slave: OK -12:50:50> We can read back the value we set before: OK +09:57:12> Cluster is writable before failover: OK +09:57:12> Terminating node #4: OK +09:57:12> Cluster should eventually be up again: OK +09:57:12> Cluster is writable again: OK +09:57:12> Restarting node #4: OK +09:57:12> Instance #4 is now a slave: OK +09:57:12> We can read back the value we set before: OK --- Iteration 3 --- -12:50:50> Wait for slave of #2 to sync: OK -12:50:50> Cluster is writable before failover: OK -12:50:50> Terminating node #2: OK -12:50:51> Wait failover by #7 with old epoch 28: OK -12:50:56> Cluster should eventually be up again: OK -12:50:56> Cluster is writable again: OK -12:50:57> Restarting node #2: OK -12:50:57> Instance #2 is now a slave: OK -12:50:57> We can read back the value we set before: OK +09:57:12> Wait for slave of #6 to sync: OK +09:57:12> Cluster is writable before failover: OK +09:57:12> Terminating node #6: OK +09:57:13> Wait failover by #1 with old epoch 23: OK +09:57:18> Cluster should eventually be up again: OK +09:57:18> Cluster is writable again: OK +09:57:18> Restarting node #6: OK +09:57:18> Instance #6 is now a slave: OK +09:57:18> We can read back the value we set before: OK --- Iteration 2 --- -12:50:57> Cluster is writable before failover: OK -12:50:57> Terminating node #1: OK -12:50:57> Cluster should eventually be up again: OK -12:50:57> Cluster is writable again: OK -12:50:57> Restarting node #1: OK -12:50:58> Instance #1 is now a slave: OK -12:50:58> We can read back the value we set before: OK +09:57:19> Wait for slave of #8 to sync: OK +09:57:19> Cluster is writable before failover: OK +09:57:19> Terminating node #8: OK +09:57:19> Wait failover by #3 with old epoch 27: OK +09:57:25> Cluster should eventually be up again: OK +09:57:25> Cluster is writable again: OK +09:57:25> Restarting node #8: OK +09:57:25> Instance #8 is now a slave: OK +09:57:25> We can read back the value we set before: OK --- Iteration 1 --- -12:50:58> Wait for slave of #6 to sync: OK -12:50:58> Cluster is writable before failover: OK -12:50:58> Terminating node #6: OK -12:50:59> Wait failover by #1 with old epoch 27: OK -12:51:04> Cluster should eventually be up again: OK -12:51:04> Cluster is writable again: OK -12:51:04> Restarting node #6: OK -12:51:05> Instance #6 is now a slave: OK -12:51:05> We can read back the value we set before: OK -12:51:05> Post condition: current_epoch >= my_epoch everywhere: OK +09:57:25> Wait for slave of #1 to sync: OK +09:57:25> Cluster is writable before failover: OK +09:57:25> Terminating node #1: OK +09:57:26> Wait failover by #6 with old epoch 28: OK +09:57:32> Cluster should eventually be up again: OK +09:57:32> Cluster is writable again: OK +09:57:32> Restarting node #1: OK +09:57:32> Instance #1 is now a slave: OK +09:57:32> We can read back the value we set before: OK +09:57:32> Post condition: current_epoch >= my_epoch everywhere: OK Testing unit: 04-resharding.tcl -12:51:05> (init) Restart killed instances: OK -12:51:05> Cluster nodes are reachable: OK -12:51:05> Cluster nodes hard reset: OK -12:51:08> Cluster Join and auto-discovery test: OK -12:51:11> Before slots allocation, all nodes report cluster failure: OK -12:51:11> Create a 5 nodes cluster: OK -12:51:16> Cluster is up: OK -12:51:16> Enable AOF in all the instances: OK +09:57:32> (init) Restart killed instances: OK +09:57:32> Cluster nodes are reachable: OK +09:57:32> Cluster nodes hard reset: OK +09:57:34> Cluster Join and auto-discovery test: OK +09:57:35> Before slots allocation, all nodes report cluster failure: OK +09:57:35> Create a 5 nodes cluster: OK +09:57:39> Cluster is up: OK +09:57:39> Enable AOF in all the instances: OK Testing TLS cluster on start node 127.0.0.1:30000, plaintext port 30001 -12:51:19> Cluster consistency during live resharding: WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW...Starting resharding...WW..................................................................................................................W.........................................................................................................................................................................................................W.......................................................................................................................................W..................................................................................................W..........................................................................................................................W..............................................................................................................................................W.........................................................................................................................................................................W..W...Starting resharding...W..........W........................................................................................................W...................................................................................................................................................W..........................................................................................................................................................................................W....................................................................................................................................................W..........................................................................................W.....................................................................................................................................................W...........................................................................................................W.............................W...Starting resharding...W......W.........................................................W......................................................................................................................W........................................................................W.....................................................................................................................................................W..............................................................................................................................................W.............................................................................................................W.....................................................................................................................................................................................................................W......................................................................................................W...Starting resharding...W...............W......................................................................................................................................W........................................................................................................W....................................................W.................................................................................................................W..............................................................................................................................................W..........................................................................................................................W..........................................................................................................................W..............................................................................................................................................................................W..................................Starting resharding...W......W.................................................................................W......................................................................................................................................................W...............................................................................................................W..................................................................W...................................................................................................................................................................................W........................................................................................................................................................................................W........................................................................................................................................................................................................W..........................................W...Starting resharding...W......W.....................................................................W.........................................................................................................................................................................................W........................................................................................................W........................................................................................W.................................................................................................................................W.......................................................................................................................................................W.................................................................................................................W....................................................................................W.........................................................................Starting resharding...W......W......................................................................W........................................................................................................................................................W..................................................................................................................................................W....................................................................................................................................................................................................................................................................................W.................................................................................................................................................W.....................................................................................................................................................W...................................................................................................................WW...Starting resharding...W...............................................................W.....................................................................................................................................................W..........................................................................................................................W.......................................................................................................................................................................................W.........................................................................................................................................................W.......................................................................................................................W.....................................................................................................................................................................................................................W................WW...Starting resharding...WW.............................................................................................................................................................W......................................................................................W....................................................................W...............................................................................................................................................W..................................................................................................................................................W................................................................................................................................................................................W.......................................................................................................................................................................W...............................................W...Starting resharding...W...............W.......................................................................................................................................................................W................................................................W................................................................................W..................................................................................................................................................W...........................................................................................W............................................................................................................W..........................................................................................................................................................................W.............................................................................................................................WOK -12:54:21> Verify 50000 keys for consistency with logical content: OK -12:55:04> Terminate and restart all the instances: OK -12:55:19> Cluster should eventually be up again: OK -12:55:20> Verify 50000 keys after the restart: OK -12:56:07> Disable AOF in all the instances: OK -12:56:07> Verify slaves consistency: OK -12:56:09> Dump sanitization was skipped for migrations: OK +09:57:40> 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...WW.....................................................................................................................W.............................................................................................................................................................................W..................................................................................................................................................................................W.............................................................................................................W...............................................................................................................................................................................................................................................W................................................................................................................W...................WW...Starting resharding...WW..............................................................................................................................................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..................................................................................WW...Starting resharding...W......W......................................................................................................................................................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 +09:59:09> Verify 50000 keys for consistency with logical content: OK +09:59:20> Terminate and restart all the instances: OK +09:59:28> Cluster should eventually be up again: OK +09:59:29> Verify 50000 keys after the restart: OK +09:59:41> Disable AOF in all the instances: OK +09:59:41> Verify slaves consistency: OK +09:59:42> Dump sanitization was skipped for migrations: OK Testing unit: 07-replica-migration.tcl -12:56:10> (init) Restart killed instances: OK -12:56:10> Cluster nodes are reachable: OK -12:56:10> Cluster nodes hard reset: OK -12:56:13> Cluster Join and auto-discovery test: OK -12:56:16> Before slots allocation, all nodes report cluster failure: OK -12:56:16> Create a 5 nodes cluster: OK -12:56:20> Cluster is up: OK -12:56:20> Each master should have two replicas attached: OK -12:56:20> Killing all the slaves of master #0 and #1: OK -12:56:25> Master #0 should have at least one replica: OK -12:56:30> Master #1 should have at least one replica: OK -12:56:30> Master #2 should have at least one replica: OK -12:56:30> Master #3 should have at least one replica: OK -12:56:30> Master #4 should have at least one replica: OK -12:56:30> (init) Restart killed instances: valkey/5 valkey/6 valkey/10 valkey/11 OK -12:56:34> Cluster nodes are reachable: OK -12:56:34> Cluster nodes hard reset: OK -12:56:37> Cluster Join and auto-discovery test: OK -12:56:41> Before slots allocation, all nodes report cluster failure: OK -12:56:41> Create a 5 nodes cluster: OK -12:56:49> Cluster is up: OK -12:56:49> Kill slave #7 of master #2. Only slave left is #12 now: OK -12:56:49> Killing master node #2, #12 should failover: OK -12:56:50> Wait for failover: OK -12:56:56> Cluster should eventually be up again: OK -12:56:56> Cluster is writable: OK -12:56:57> Instance 12 is now a master without slaves: OK -12:56:57> Master #12 should get at least one migrated replica: OK +09:59:42> (init) Restart killed instances: OK +09:59:42> Cluster nodes are reachable: OK +09:59:42> Cluster nodes hard reset: OK +09:59:43> Cluster Join and auto-discovery test: OK +09:59:45> Before slots allocation, all nodes report cluster failure: OK +09:59:45> Create a 5 nodes cluster: OK +09:59:49> Cluster is up: OK +09:59:49> Each master should have two replicas attached: OK +09:59:49> Killing all the slaves of master #0 and #1: OK +09:59:53> Master #0 should have at least one replica: OK +09:59:58> Master #1 should have at least one replica: OK +09:59:59> Master #2 should have at least one replica: OK +09:59:59> Master #3 should have at least one replica: OK +09:59:59> Master #4 should have at least one replica: OK +09:59:59> (init) Restart killed instances: valkey/5 valkey/6 valkey/10 valkey/11 OK +10:00:00> Cluster nodes are reachable: OK +10:00:00> Cluster nodes hard reset: OK +10:00:01> Cluster Join and auto-discovery test: OK +10:00:02> Before slots allocation, all nodes report cluster failure: OK +10:00:02> Create a 5 nodes cluster: OK +10:00:07> Cluster is up: OK +10:00:07> Kill slave #7 of master #2. Only slave left is #12 now: OK +10:00:07> Killing master node #2, #12 should failover: OK +10:00:07> Wait for failover: OK +10:00:13> Cluster should eventually be up again: OK +10:00:13> Cluster is writable: OK +10:00:13> Instance 12 is now a master without slaves: OK +10:00:13> Master #12 should get at least one migrated replica: OK Testing unit: 12-replica-migration-2.tcl -12:57:02> (init) Restart killed instances: valkey/2 valkey/7 OK -12:57:03> Cluster nodes are reachable: OK -12:57:03> Cluster nodes hard reset: OK -12:57:07> Cluster Join and auto-discovery test: OK -12:57:09> Before slots allocation, all nodes report cluster failure: OK -12:57:09> Create a 5 nodes cluster: OK -12:57:13> Cluster is up: OK -12:57:13> Each master should have at least two replicas attached: OK -12:57:13> Set allow-replica-migration yes: OK -12:57:13> Resharding all the master #0 slots away from it: >>> Performing Cluster Check (using node 127.0.0.1:30000) +10:00:18> (init) Restart killed instances: valkey/2 valkey/7 OK +10:00:19> Cluster nodes are reachable: OK +10:00:19> Cluster nodes hard reset: OK +10:00:19> Cluster Join and auto-discovery test: OK +10:00:21> Before slots allocation, all nodes report cluster failure: OK +10:00:21> Create a 5 nodes cluster: OK +10:00:25> Cluster is up: OK +10:00:25> Each master should have at least two replicas attached: OK +10:00:25> Set allow-replica-migration yes: OK +10:00:25> 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... [OK] All 16384 slots covered. >>> 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:30006 +#################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################### Moving 820 slots from 127.0.0.1:30000 to 127.0.0.1:30004 -##################################################################################################################################################################################################################################################################################*** clusterManagerMoveSlot: NOREPLICAS Not enough good replicas to write. -FAILED: caught an error in the test child process exited abnormally -child process exited abnormally - while executing -"exec ../../../src/valkey-cli --cluster rebalance 127.0.0.1:[get_instance_attrib valkey 0 port] {*}[valkeycli_tls_config "../../../tests"] --cluste..." - ("uplevel" body line 2) - invoked from within -"uplevel 1 $code" - (procedure "test" line 6) - invoked from within -"test "Resharding all the master #0 slots away from it" { - set output [exec \ - ../../../src/valkey-cli --cluster rebalance \ - 127.0.0...." - (file "../tests/12-replica-migration-2.tcl" line 39) - invoked from within -"source $test " +#################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################### +Moving 816 slots from 127.0.0.1:30000 to 127.0.0.1:30008 +################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################ +OK +10:01:14> Master #0 who lost all slots should turn into a replica without replicas: OK +10:01:14> 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 +10:01:25> Master #0 should re-acquire one or more replicas: OK Testing unit: 12.1-replica-migration-3.tcl -12:57:24> (init) Restart killed instances: OK -12:57:24> Cluster nodes are reachable: OK -12:57:26> Cluster nodes hard reset: OK -12:57:28> Cluster Join and auto-discovery test: OK -12:57:33> Before slots allocation, all nodes report cluster failure: OK -12:57:33> Create a 5 nodes cluster: OK -12:57:38> Cluster is up: OK -12:57:38> Each master should have at least two replicas attached: OK -12:57:38> Set allow-replica-migration no: OK -12:57:38> Resharding all the master #0 slots away from it: >>> Performing Cluster Check (using node 127.0.0.1:30000) +10:01:25> (init) Restart killed instances: OK +10:01:25> Cluster nodes are reachable: OK +10:01:25> Cluster nodes hard reset: OK +10:01:25> Cluster Join and auto-discovery test: OK +10:01:28> Before slots allocation, all nodes report cluster failure: OK +10:01:28> Create a 5 nodes cluster: OK +10:01:32> Cluster is up: OK +10:01:32> Each master should have at least two replicas attached: OK +10:01:32> Set allow-replica-migration no: OK +10:01:32> 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... [OK] All 16384 slots covered. >>> 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:30006 +#################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################### Moving 820 slots from 127.0.0.1:30000 to 127.0.0.1:30004 -################################################################################################################################################################################################################################################*** clusterManagerMoveSlot: NOREPLICAS Not enough good replicas to write. -FAILED: caught an error in the test child process exited abnormally -child process exited abnormally - while executing -"exec ../../../src/valkey-cli --cluster rebalance 127.0.0.1:[get_instance_attrib valkey 0 port] {*}[valkeycli_tls_config "../../../tests"] --cluste..." - ("uplevel" body line 2) - invoked from within -"uplevel 1 $code" - (procedure "test" line 6) - invoked from within -"test "Resharding all the master #0 slots away from it" { - set output [exec \ - ../../../src/valkey-cli --cluster rebalance \ - 127.0.0...." - (file "../tests/12.1-replica-migration-3.tcl" line 38) - invoked from within -"source $test " +#################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################### +Moving 816 slots from 127.0.0.1:30000 to 127.0.0.1:30008 +################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################ +OK +10:02:17> Wait cluster to be stable: OK +10:02:17> Master #0 still should have its replicas: OK +10:02:17> Each master should have at least two replicas attached: OK Testing unit: 28-cluster-shards.tcl -13:02:29> (init) Restart killed instances: OK -13:02:29> Cluster nodes are reachable: OK -13:02:31> Cluster nodes hard reset: OK -13:02:32> Cluster Join and auto-discovery test: OK -13:02:35> Before slots allocation, all nodes report cluster failure: OK -13:02:35> Create a 8 nodes cluster with 4 shards: OK -13:02:35> Cluster should start ok: OK -13:02:38> Set cluster hostnames and verify they are propagated: OK -13:02:40> Verify information about the shards: OK -13:02:43> Verify no slot shard: OK -13:02:43> Kill a node and tell the replica to immediately takeover: OK -13:02:43> Verify health as fail for killed node: OK -13:02:47> Restarting primary node: OK -13:02:48> Instance #0 gets converted into a replica: OK -13:02:48> Test the replica reports a loading state while it's loading: OK -13:02:50> Regression test for a crash when calling SHARDS during handshake: OK -13:02:50> Cluster is up: OK -13:02:54> Shard ids are unique: OK -13:02:54> CLUSTER MYSHARDID reports same id for both primary and replica: OK -13:02:54> New replica receives primary's shard id: OK -13:02:54> CLUSTER MYSHARDID reports same shard id after shard restart: OK -13:02:57> CLUSTER MYSHARDID reports same shard id after cluster restart: OK +10:02:17> (init) Restart killed instances: OK +10:02:17> Cluster nodes are reachable: OK +10:02:17> Cluster nodes hard reset: OK +10:02:18> Cluster Join and auto-discovery test: OK +10:02:20> Before slots allocation, all nodes report cluster failure: OK +10:02:20> Create a 8 nodes cluster with 4 shards: OK +10:02:20> Cluster should start ok: OK +10:02:24> Set cluster hostnames and verify they are propagated: OK +10:02:26> Verify information about the shards: OK +10:02:27> Verify no slot shard: OK +10:02:27> Kill a node and tell the replica to immediately takeover: OK +10:02:27> Verify health as fail for killed node: OK +10:02:32> Restarting primary node: OK +10:02:32> Instance #0 gets converted into a replica: OK +10:02:32> Test the replica reports a loading state while it's loading: OK +10:02:35> Regression test for a crash when calling SHARDS during handshake: OK +10:02:35> Cluster is up: OK +10:02:39> Shard ids are unique: OK +10:02:39> CLUSTER MYSHARDID reports same id for both primary and replica: OK +10:02:39> New replica receives primary's shard id: OK +10:02:39> CLUSTER MYSHARDID reports same shard id after shard restart: OK +10:02:41> CLUSTER MYSHARDID reports same shard id after cluster restart: OK Cleaning up... -killing stale instance 1549400 -killing stale instance 1549918 -killing stale instance 1551480 -killing stale instance 1551904 -killing stale instance 1552295 -killing stale instance 1552656 -killing stale instance 1552986 -killing stale instance 1553507 -killing stale instance 1553884 -killing stale instance 1554368 -killing stale instance 1575619 -killing stale instance 1575848 -killing stale instance 1606368 -killing stale instance 1606448 -killing stale instance 1606583 -killing stale instance 1606721 -killing stale instance 1606880 -killing stale instance 1607174 -killing stale instance 1607396 -killing stale instance 1607943 -WARNING 4 test(s) failed. +killing stale instance 2559579 +killing stale instance 2559700 +killing stale instance 2559957 +killing stale instance 2560110 +killing stale instance 2560302 +killing stale instance 2560621 +killing stale instance 2560995 +killing stale instance 2561298 +killing stale instance 2561411 +killing stale instance 2561483 +killing stale instance 2570054 +killing stale instance 2570084 +killing stale instance 2587279 +killing stale instance 2587296 +killing stale instance 2587309 +killing stale instance 2587320 +killing stale instance 2587332 +killing stale instance 2587349 +killing stale instance 2587364 +killing stale instance 2587383 +GOOD! No errors. ./runtest-sentinel || true Starting sentinel #0 at port 20000 Starting sentinel #1 at port 20001 @@ -7137,248 +7185,248 @@ Starting valkey #3 at port 30003 Starting valkey #4 at port 30004 Testing unit: 00-base.tcl -13:03:06> (start-init) Flush config and compare rewrite config file lines: OK -13:03:06> (init) Restart killed instances: OK -13:03:06> (init) Remove old primary entry from sentinels: OK -13:03:06> (init) Create a primary-replicas cluster of 5 instances: OK -13:03:06> (init) Sentinels can start monitoring a primary: OK -13:03:06> (init) Sentinels can talk with the primary: OK -13:03:06> (init) Sentinels are able to auto-discover other sentinels: OK -13:03:08> (init) Sentinels are able to auto-discover replicas: OK -13:03:08> Sentinel command flag infrastructure works correctly: OK -13:03:08> SENTINEL HELP output the sentinel subcommand help: OK -13:03:08> SENTINEL MYID return the sentinel instance ID: OK -13:03:08> SENTINEL INFO CACHE returns the cached info: OK -13:03:08> SENTINEL PENDING-SCRIPTS returns the information about pending scripts: OK -13:03:08> SENTINEL PRIMARIES returns a list of monitored primaries: OK -13:03:08> SENTINEL SENTINELS returns a list of sentinel instances: OK -13:03:08> SENTINEL SLAVES returns a list of the monitored replicas: OK -13:03:08> SENTINEL SIMULATE-FAILURE HELP list supported flags: OK -13:03:08> Basic failover works if the primary is down: OK -13:03:13> New primary 127.0.0.1:30002 role matches: OK -13:03:13> All the other slaves now point to the new primary: OK -13:03:13> The old primary eventually gets reconfigured as a slave: OK -13:03:23> ODOWN is not possible without N (quorum) Sentinels reports: OK -13:03:25> Failover is not possible without majority agreement: OK -13:03:26> Failover works if we configure for absolute agreement: OK -13:03:30> New primary 127.0.0.1:30000 role matches: OK -13:03:30> SENTINEL RESET can resets the primary: OK -13:03:30> SENTINEL IS-PRIMARY-DOWN-BY-ADDR checks if the primary is down: OK +10:02:49> (start-init) Flush config and compare rewrite config file lines: OK +10:02:49> (init) Restart killed instances: OK +10:02:49> (init) Remove old primary entry from sentinels: OK +10:02:49> (init) Create a primary-replicas cluster of 5 instances: OK +10:02:49> (init) Sentinels can start monitoring a primary: OK +10:02:49> (init) Sentinels can talk with the primary: OK +10:02:49> (init) Sentinels are able to auto-discover other sentinels: OK +10:02:51> (init) Sentinels are able to auto-discover replicas: OK +10:02:51> Sentinel command flag infrastructure works correctly: OK +10:02:51> SENTINEL HELP output the sentinel subcommand help: OK +10:02:51> SENTINEL MYID return the sentinel instance ID: OK +10:02:51> SENTINEL INFO CACHE returns the cached info: OK +10:02:51> SENTINEL PENDING-SCRIPTS returns the information about pending scripts: OK +10:02:51> SENTINEL PRIMARIES returns a list of monitored primaries: OK +10:02:51> SENTINEL SENTINELS returns a list of sentinel instances: OK +10:02:51> SENTINEL SLAVES returns a list of the monitored replicas: OK +10:02:51> SENTINEL SIMULATE-FAILURE HELP list supported flags: OK +10:02:51> Basic failover works if the primary is down: OK +10:02:55> New primary 127.0.0.1:30001 role matches: OK +10:02:55> All the other slaves now point to the new primary: OK +10:02:55> The old primary eventually gets reconfigured as a slave: OK +10:03:05> ODOWN is not possible without N (quorum) Sentinels reports: OK +10:03:05> Failover is not possible without majority agreement: OK +10:03:06> Failover works if we configure for absolute agreement: OK +10:03:11> New primary 127.0.0.1:30000 role matches: OK +10:03:11> SENTINEL RESET can resets the primary: OK +10:03:11> SENTINEL IS-PRIMARY-DOWN-BY-ADDR checks if the primary is down: OK Testing unit: 01-conf-update.tcl -13:03:30> (init) Restart killed instances: OK -13:03:30> (init) Remove old primary entry from sentinels: OK -13:03:30> (init) Create a primary-replicas cluster of 5 instances: OK -13:03:30> (init) Sentinels can start monitoring a primary: OK -13:03:30> (init) Sentinels can talk with the primary: OK -13:03:30> (init) Sentinels are able to auto-discover other sentinels: OK -13:03:32> (init) Sentinels are able to auto-discover replicas: OK -13:03:32> We can failover with Sentinel 1 crashed: OK -13:03:37> After Sentinel 1 is restarted, its config gets updated: OK -13:03:37> New primary 127.0.0.1:30002 role matches: OK -13:03:37> Update log level: OK +10:03:11> (init) Restart killed instances: OK +10:03:11> (init) Remove old primary entry from sentinels: OK +10:03:11> (init) Create a primary-replicas cluster of 5 instances: OK +10:03:11> (init) Sentinels can start monitoring a primary: OK +10:03:11> (init) Sentinels can talk with the primary: OK +10:03:11> (init) Sentinels are able to auto-discover other sentinels: OK +10:03:13> (init) Sentinels are able to auto-discover replicas: OK +10:03:13> We can failover with Sentinel 1 crashed: OK +10:03:18> After Sentinel 1 is restarted, its config gets updated: OK +10:03:18> New primary 127.0.0.1:30001 role matches: OK +10:03:18> Update log level: OK Testing unit: 02-replicas-reconf.tcl -13:03:37> (init) Restart killed instances: OK -13:03:37> (init) Remove old primary entry from sentinels: OK -13:03:37> (init) Create a primary-replicas cluster of 5 instances: OK -13:03:37> (init) Sentinels can start monitoring a primary: OK -13:03:37> (init) Sentinels can talk with the primary: OK -13:03:37> (init) Sentinels are able to auto-discover other sentinels: OK -13:03:39> (init) Sentinels are able to auto-discover replicas: OK -13:03:39> Check that slaves replicate from current primary: OK -13:03:39> Crash the primary and force a failover: OK -13:03:44> Check that slaves replicate from current primary: OK -13:03:45> Kill a slave instance: OK -13:03:45> Crash the primary and force a failover: OK -13:03:49> Check that slaves replicate from current primary: OK -13:03:49> Wait for failover to end: OK -13:03:50> Restart killed slave and test replication of slaves again...: OK -13:03:50> Check that slaves replicate from current primary: OK +10:03:18> (init) Restart killed instances: OK +10:03:18> (init) Remove old primary entry from sentinels: OK +10:03:18> (init) Create a primary-replicas cluster of 5 instances: OK +10:03:18> (init) Sentinels can start monitoring a primary: OK +10:03:18> (init) Sentinels can talk with the primary: OK +10:03:18> (init) Sentinels are able to auto-discover other sentinels: OK +10:03:20> (init) Sentinels are able to auto-discover replicas: OK +10:03:20> Check that slaves replicate from current primary: OK +10:03:20> Crash the primary and force a failover: OK +10:03:25> Check that slaves replicate from current primary: OK +10:03:25> Kill a slave instance: OK +10:03:26> Crash the primary and force a failover: OK +10:03:29> Check that slaves replicate from current primary: OK +10:03:29> Wait for failover to end: OK +10:03:30> Restart killed slave and test replication of slaves again...: OK +10:03:30> Check that slaves replicate from current primary: OK Testing unit: 03-runtime-reconf.tcl -13:04:00> (init) Restart killed instances: OK -13:04:00> (init) Remove old primary entry from sentinels: OK -13:04:00> (init) Create a primary-replicas cluster of 5 instances: OK -13:04:00> (init) Sentinels can start monitoring a primary: OK -13:04:00> (init) Sentinels can talk with the primary: OK -13:04:00> (init) Sentinels are able to auto-discover other sentinels: OK -13:04:00> (init) Sentinels are able to auto-discover replicas: OK -13:04:00> Sentinels (re)connection following SENTINEL SET myprimary auth-pass: OK -13:04:02> Sentinels (re)connection following primary ACL change: OK -13:04:04> Set parameters in normal case: OK -13:04:04> Set parameters in normal case with bad format: OK -13:04:04> Sentinel Set with other error situations: OK +10:03:40> (init) Restart killed instances: OK +10:03:40> (init) Remove old primary entry from sentinels: OK +10:03:40> (init) Create a primary-replicas cluster of 5 instances: OK +10:03:41> (init) Sentinels can start monitoring a primary: OK +10:03:41> (init) Sentinels can talk with the primary: OK +10:03:41> (init) Sentinels are able to auto-discover other sentinels: OK +10:03:41> (init) Sentinels are able to auto-discover replicas: OK +10:03:41> Sentinels (re)connection following SENTINEL SET myprimary auth-pass: OK +10:03:42> Sentinels (re)connection following primary ACL change: OK +10:03:45> Set parameters in normal case: OK +10:03:45> Set parameters in normal case with bad format: OK +10:03:45> Sentinel Set with other error situations: OK Testing unit: 04-slave-selection.tcl Testing unit: 05-manual.tcl -13:04:04> (init) Restart killed instances: OK -13:04:04> (init) Remove old primary entry from sentinels: OK -13:04:04> (init) Create a primary-replicas cluster of 5 instances: OK -13:04:04> (init) Sentinels can start monitoring a primary: OK -13:04:04> (init) Sentinels can talk with the primary: OK -13:04:04> (init) Sentinels are able to auto-discover other sentinels: OK -13:04:06> (init) Sentinels are able to auto-discover replicas: OK -13:04:06> Manual failover works: OK -13:04:08> New primary 127.0.0.1:30002 role matches: OK -13:04:08> All the other slaves now point to the new primary: OK -13:04:08> The old primary eventually gets reconfigured as a slave: OK -13:04:12> (init) Restart killed instances: OK -13:04:12> (init) Remove old primary entry from sentinels: OK -13:04:12> (init) Create a primary-replicas cluster of 5 instances: OK -13:04:12> (init) Sentinels can start monitoring a primary: OK -13:04:12> (init) Sentinels can talk with the primary: OK -13:04:12> (init) Sentinels are able to auto-discover other sentinels: OK -13:04:13> (init) Sentinels are able to auto-discover replicas: OK -13:04:13> SENTINEL SIMULATE-FAILURE crash-after-election works: OK -13:04:13> (init) Restart killed instances: OK -13:04:13> (init) Remove old primary entry from sentinels: OK -13:04:13> (init) Create a primary-replicas cluster of 5 instances: OK -13:04:13> (init) Sentinels can start monitoring a primary: OK -13:04:13> (init) Sentinels can talk with the primary: OK -13:04:13> (init) Sentinels are able to auto-discover other sentinels: OK -13:04:15> (init) Sentinels are able to auto-discover replicas: OK -13:04:15> SENTINEL SIMULATE-FAILURE crash-after-promotion works: OK +10:03:45> (init) Restart killed instances: OK +10:03:45> (init) Remove old primary entry from sentinels: OK +10:03:45> (init) Create a primary-replicas cluster of 5 instances: OK +10:03:45> (init) Sentinels can start monitoring a primary: OK +10:03:45> (init) Sentinels can talk with the primary: OK +10:03:45> (init) Sentinels are able to auto-discover other sentinels: OK +10:03:47> (init) Sentinels are able to auto-discover replicas: OK +10:03:47> Manual failover works: OK +10:03:48> New primary 127.0.0.1:30001 role matches: OK +10:03:48> All the other slaves now point to the new primary: OK +10:03:48> The old primary eventually gets reconfigured as a slave: OK +10:03:52> (init) Restart killed instances: OK +10:03:52> (init) Remove old primary entry from sentinels: OK +10:03:52> (init) Create a primary-replicas cluster of 5 instances: OK +10:03:52> (init) Sentinels can start monitoring a primary: OK +10:03:52> (init) Sentinels can talk with the primary: OK +10:03:52> (init) Sentinels are able to auto-discover other sentinels: OK +10:03:53> (init) Sentinels are able to auto-discover replicas: OK +10:03:53> SENTINEL SIMULATE-FAILURE crash-after-election works: OK +10:03:53> (init) Restart killed instances: OK +10:03:53> (init) Remove old primary entry from sentinels: OK +10:03:53> (init) Create a primary-replicas cluster of 5 instances: OK +10:03:53> (init) Sentinels can start monitoring a primary: OK +10:03:53> (init) Sentinels can talk with the primary: OK +10:03:53> (init) Sentinels are able to auto-discover other sentinels: OK +10:03:55> (init) Sentinels are able to auto-discover replicas: OK +10:03:55> SENTINEL SIMULATE-FAILURE crash-after-promotion works: OK Testing unit: 06-ckquorum.tcl -13:04:16> (init) Restart killed instances: OK -13:04:16> (init) Remove old primary entry from sentinels: OK -13:04:16> (init) Create a primary-replicas cluster of 5 instances: OK -13:04:16> (init) Sentinels can start monitoring a primary: OK -13:04:16> (init) Sentinels can talk with the primary: OK -13:04:16> (init) Sentinels are able to auto-discover other sentinels: OK -13:04:18> (init) Sentinels are able to auto-discover replicas: OK -13:04:18> CKQUORUM reports OK and the right amount of Sentinels: OK -13:04:18> CKQUORUM detects quorum cannot be reached: OK -13:04:18> CKQUORUM detects failover authorization cannot be reached: OK +10:03:57> (init) Restart killed instances: OK +10:03:57> (init) Remove old primary entry from sentinels: OK +10:03:57> (init) Create a primary-replicas cluster of 5 instances: OK +10:03:57> (init) Sentinels can start monitoring a primary: OK +10:03:57> (init) Sentinels can talk with the primary: OK +10:03:57> (init) Sentinels are able to auto-discover other sentinels: OK +10:03:59> (init) Sentinels are able to auto-discover replicas: OK +10:03:59> CKQUORUM reports OK and the right amount of Sentinels: OK +10:03:59> CKQUORUM detects quorum cannot be reached: OK +10:03:59> CKQUORUM detects failover authorization cannot be reached: OK Testing unit: 07-down-conditions.tcl -13:04:21> (init) Restart killed instances: OK -13:04:21> (init) Remove old primary entry from sentinels: OK -13:04:21> (init) Create a primary-replicas cluster of 5 instances: OK -13:04:21> (init) Sentinels can start monitoring a primary: OK -13:04:21> (init) Sentinels can talk with the primary: OK -13:04:21> (init) Sentinels are able to auto-discover other sentinels: OK -13:04:23> (init) Sentinels are able to auto-discover replicas: OK -13:04:23> Crash the majority of Sentinels to prevent failovers for this unit: OK -13:04:23> SDOWN is triggered by non-responding but not crashed instance: OK -13:04:26> SDOWN is triggered by crashed instance: OK -13:04:32> SDOWN is triggered by primaries advertising as slaves: OK -13:04:37> SDOWN is triggered by misconfigured instance replying with errors: OK -13:04:47> SDOWN is triggered if we rename PING to PONG: OK +10:04:01> (init) Restart killed instances: OK +10:04:01> (init) Remove old primary entry from sentinels: OK +10:04:01> (init) Create a primary-replicas cluster of 5 instances: OK +10:04:01> (init) Sentinels can start monitoring a primary: OK +10:04:01> (init) Sentinels can talk with the primary: OK +10:04:01> (init) Sentinels are able to auto-discover other sentinels: OK +10:04:03> (init) Sentinels are able to auto-discover replicas: OK +10:04:03> Crash the majority of Sentinels to prevent failovers for this unit: OK +10:04:04> SDOWN is triggered by non-responding but not crashed instance: OK +10:04:06> SDOWN is triggered by crashed instance: OK +10:04:08> SDOWN is triggered by primaries advertising as slaves: OK +10:04:12> SDOWN is triggered by misconfigured instance replying with errors: OK +10:04:23> SDOWN is triggered if we rename PING to PONG: OK Testing unit: 08-hostname-conf.tcl -13:04:50> (pre-init) Configure instances and sentinel for hostname use: sentinel/0 sentinel/1 sentinel/2 OK -13:04:50> (init) Restart killed instances: OK -13:04:50> (init) Remove old primary entry from sentinels: OK -13:04:50> (init) Create a primary-replicas cluster of 5 instances: OK -13:04:50> (init) Sentinels can start monitoring a primary: OK -13:04:50> (init) Sentinels can talk with the primary: OK -13:04:50> (init) Sentinels are able to auto-discover other sentinels: OK -13:04:52> (init) Sentinels are able to auto-discover replicas: OK -13:04:52> Sentinel announces hostnames: OK -13:04:52> (post-cleanup) Configure instances and sentinel for IPs: OK +10:04:25> (pre-init) Configure instances and sentinel for hostname use: sentinel/0 sentinel/1 sentinel/2 OK +10:04:25> (init) Restart killed instances: OK +10:04:25> (init) Remove old primary entry from sentinels: OK +10:04:25> (init) Create a primary-replicas cluster of 5 instances: OK +10:04:25> (init) Sentinels can start monitoring a primary: OK +10:04:25> (init) Sentinels can talk with the primary: OK +10:04:25> (init) Sentinels are able to auto-discover other sentinels: OK +10:04:27> (init) Sentinels are able to auto-discover replicas: OK +10:04:27> Sentinel announces hostnames: OK +10:04:27> (post-cleanup) Configure instances and sentinel for IPs: OK Testing unit: 09-acl-support.tcl -13:04:53> (init) Restart killed instances: OK -13:04:53> (init) Remove old primary entry from sentinels: OK -13:04:53> (init) Create a primary-replicas cluster of 5 instances: OK -13:04:53> (init) Sentinels can start monitoring a primary: OK -13:04:53> (init) Sentinels can talk with the primary: OK -13:04:53> (init) Sentinels are able to auto-discover other sentinels: OK -13:04:56> (init) Sentinels are able to auto-discover replicas: OK -13:04:56> (post-init) Set up ACL configuration: OK -13:04:57> SENTINEL CONFIG SET handles on-the-fly credentials reconfiguration: OK -13:04:59> (post-cleanup) Tear down ACL configuration: OK +10:04:27> (init) Restart killed instances: OK +10:04:27> (init) Remove old primary entry from sentinels: OK +10:04:27> (init) Create a primary-replicas cluster of 5 instances: OK +10:04:27> (init) Sentinels can start monitoring a primary: OK +10:04:27> (init) Sentinels can talk with the primary: OK +10:04:27> (init) Sentinels are able to auto-discover other sentinels: OK +10:04:29> (init) Sentinels are able to auto-discover replicas: OK +10:04:29> (post-init) Set up ACL configuration: OK +10:04:29> SENTINEL CONFIG SET handles on-the-fly credentials reconfiguration: OK +10:04:33> (post-cleanup) Tear down ACL configuration: OK Testing unit: 10-replica-priority.tcl -13:04:59> (init) Restart killed instances: OK -13:04:59> (init) Remove old primary entry from sentinels: OK -13:04:59> (init) Create a primary-replicas cluster of 5 instances: OK -13:04:59> (init) Sentinels can start monitoring a primary: OK -13:04:59> (init) Sentinels can talk with the primary: OK -13:04:59> (init) Sentinels are able to auto-discover other sentinels: OK -13:05:01> (init) Sentinels are able to auto-discover replicas: OK -13:05:01> Check acceptable replica-priority values: OK -13:05:01> Set replica-announced=yes on all replicas: OK -13:05:01> Check sentinel replies with 4 replicas: OK -13:05:01> Set replica-announced=no on 2 replicas: OK -13:05:01> Check sentinel replies with 2 replicas: OK -13:05:01> Set replica-announced=yes on all replicas: OK -13:05:01> Check sentinel replies with 4 replicas: OK +10:04:33> (init) Restart killed instances: OK +10:04:33> (init) Remove old primary entry from sentinels: OK +10:04:33> (init) Create a primary-replicas cluster of 5 instances: OK +10:04:33> (init) Sentinels can start monitoring a primary: OK +10:04:33> (init) Sentinels can talk with the primary: OK +10:04:33> (init) Sentinels are able to auto-discover other sentinels: OK +10:04:35> (init) Sentinels are able to auto-discover replicas: OK +10:04:35> Check acceptable replica-priority values: OK +10:04:35> Set replica-announced=yes on all replicas: OK +10:04:35> Check sentinel replies with 4 replicas: OK +10:04:35> Set replica-announced=no on 2 replicas: OK +10:04:35> Check sentinel replies with 2 replicas: OK +10:04:35> Set replica-announced=yes on all replicas: OK +10:04:35> Check sentinel replies with 4 replicas: OK Testing unit: 11-port-0.tcl -13:05:01> (init) Restart killed instances: OK -13:05:01> (init) Remove old primary entry from sentinels: OK -13:05:01> (init) Create a primary-replicas cluster of 5 instances: OK -13:05:01> (init) Sentinels can start monitoring a primary: OK -13:05:02> (init) Sentinels can talk with the primary: OK -13:05:02> (init) Sentinels are able to auto-discover other sentinels: OK -13:05:02> (init) Sentinels are able to auto-discover replicas: OK -13:05:02> Start/Stop sentinel on same port with a different runID should not change the total number of sentinels: OK +10:04:35> (init) Restart killed instances: OK +10:04:35> (init) Remove old primary entry from sentinels: OK +10:04:35> (init) Create a primary-replicas cluster of 5 instances: OK +10:04:35> (init) Sentinels can start monitoring a primary: OK +10:04:35> (init) Sentinels can talk with the primary: OK +10:04:35> (init) Sentinels are able to auto-discover other sentinels: OK +10:04:35> (init) Sentinels are able to auto-discover replicas: OK +10:04:35> 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 -13:05:03> (init) Restart killed instances: sentinel/4 OK -13:05:05> (init) Remove old primary entry from sentinels: OK -13:05:05> (init) Create a primary-replicas cluster of 5 instances: OK -13:05:05> (init) Sentinels can start monitoring a primary: OK -13:05:05> (init) Sentinels can talk with the primary: OK -13:05:05> (init) Sentinels are able to auto-discover other sentinels: OK -13:08:35> (init) Sentinels are able to auto-discover replicas: OK -13:08:35> Primary reboot in very short time: OK -13:08:46> New primary 127.0.0.1:30002 role matches: OK -13:08:47> All the other slaves now point to the new primary: OK -13:08:47> The old primary eventually gets reconfigured as a slave: OK +10:04:36> (init) Restart killed instances: sentinel/4 OK +10:04:36> (init) Remove old primary entry from sentinels: OK +10:04:36> (init) Create a primary-replicas cluster of 5 instances: OK +10:04:36> (init) Sentinels can start monitoring a primary: OK +10:04:36> (init) Sentinels can talk with the primary: OK +10:04:36> (init) Sentinels are able to auto-discover other sentinels: OK +10:04:39> (init) Sentinels are able to auto-discover replicas: OK +10:04:39> Primary reboot in very short time: OK +10:04:46> New primary 127.0.0.1:30001 role matches: OK +10:04:46> All the other slaves now point to the new primary: OK +10:04:46> The old primary eventually gets reconfigured as a slave: OK Testing unit: 13-info-command.tcl -13:09:13> (init) Restart killed instances: OK -13:09:13> (init) Remove old primary entry from sentinels: OK -13:09:13> (init) Create a primary-replicas cluster of 5 instances: OK -13:09:14> (init) Sentinels can start monitoring a primary: OK -13:09:16> (init) Sentinels can talk with the primary: OK -13:09:16> (init) Sentinels are able to auto-discover other sentinels: OK -13:09:16> (init) Sentinels are able to auto-discover replicas: OK -13:09:16> info command with at most one argument: OK -13:09:16> info command with one sub-section: OK -13:09:16> info command with multiple sub-sections: OK +10:04:56> (init) Restart killed instances: OK +10:04:56> (init) Remove old primary entry from sentinels: OK +10:04:56> (init) Create a primary-replicas cluster of 5 instances: OK +10:04:56> (init) Sentinels can start monitoring a primary: OK +10:04:56> (init) Sentinels can talk with the primary: OK +10:04:56> (init) Sentinels are able to auto-discover other sentinels: OK +10:04:58> (init) Sentinels are able to auto-discover replicas: OK +10:04:58> info command with at most one argument: OK +10:04:58> info command with one sub-section: OK +10:04:58> info command with multiple sub-sections: OK Testing unit: 14-debug-command.tcl -13:09:16> (init) Restart killed instances: OK -13:09:16> (init) Remove old primary entry from sentinels: OK -13:09:18> (init) Create a primary-replicas cluster of 5 instances: OK -13:09:18> (init) Sentinels can start monitoring a primary: OK -13:09:21> (init) Sentinels can talk with the primary: OK -13:09:21> (init) Sentinels are able to auto-discover other sentinels: OK -13:09:21> (init) Sentinels are able to auto-discover replicas: OK -13:09:21> Sentinel debug test with arguments and without argument: OK +10:04:58> (init) Restart killed instances: OK +10:04:58> (init) Remove old primary entry from sentinels: OK +10:04:58> (init) Create a primary-replicas cluster of 5 instances: OK +10:04:58> (init) Sentinels can start monitoring a primary: OK +10:04:58> (init) Sentinels can talk with the primary: OK +10:04:58> (init) Sentinels are able to auto-discover other sentinels: OK +10:05:00> (init) Sentinels are able to auto-discover replicas: OK +10:05:00> Sentinel debug test with arguments and without argument: OK Testing unit: 15-sentinel-deprecated-commands.tcl -13:09:21> (init) Restart killed instances: OK -13:09:21> (init) Remove old primary entry from sentinels: OK -13:09:22> (init) Create a primary-replicas cluster of 5 instances: OK -13:09:22> (init) Sentinels can start monitoring a primary: OK -13:09:22> (init) Sentinels can talk with the primary: OK -13:09:23> (init) Sentinels are able to auto-discover other sentinels: OK -13:09:24> (init) Sentinels are able to auto-discover replicas: OK -13:09:24> SENTINEL MASTERS returns a list of monitored masters (SENTINEL MASTERS as a deprecated command): OK -13:09:24> SENTINEL SLAVES returns a list of the monitored slaves (SENTINEL SLAVES as a deprecated command): OK -13:09:24> SENTINEL MASTER returns the information list of the monitored master (SENTINEL MASTER as a deprecated command): OK -13:09:24> SENTINEL IS-MASTER-DOWN-BY-ADDR checks if the primary is down (SENTINEL IS-MASTER-DOWN-BY-ADDR as a deprecated command): OK +10:05:00> (init) Restart killed instances: OK +10:05:00> (init) Remove old primary entry from sentinels: OK +10:05:00> (init) Create a primary-replicas cluster of 5 instances: OK +10:05:00> (init) Sentinels can start monitoring a primary: OK +10:05:00> (init) Sentinels can talk with the primary: OK +10:05:00> (init) Sentinels are able to auto-discover other sentinels: OK +10:05:02> (init) Sentinels are able to auto-discover replicas: OK +10:05:02> SENTINEL MASTERS returns a list of monitored masters (SENTINEL MASTERS as a deprecated command): OK +10:05:02> SENTINEL SLAVES returns a list of the monitored slaves (SENTINEL SLAVES as a deprecated command): OK +10:05:02> SENTINEL MASTER returns the information list of the monitored master (SENTINEL MASTER as a deprecated command): OK +10:05:02> 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 -13:09:25> (init) Restart killed instances: OK -13:09:25> (init) Remove old primary entry from sentinels: OK -13:09:25> (init) Create a primary-replicas cluster of 5 instances: OK -13:09:25> (init) Sentinels can start monitoring a primary: OK -13:09:25> (init) Sentinels can talk with the primary: OK -13:09:25> (init) Sentinels are able to auto-discover other sentinels: OK -13:09:27> (init) Sentinels are able to auto-discover replicas: OK -13:09:27> SENTINEL CONFIG SET and SENTINEL CONFIG GET handles multiple variables: OK -13:09:28> SENTINEL CONFIG GET for duplicate and unknown variables: OK -13:09:28> SENTINEL CONFIG GET for patterns: OK -13:09:28> SENTINEL CONFIG SET duplicate variables: OK -13:09:28> SENTINEL CONFIG SET, one option does not exist: OK -13:09:28> SENTINEL CONFIG SET, one option with wrong value: OK -13:09:28> SENTINEL CONFIG SET, wrong number of arguments: OK +10:05:02> (init) Restart killed instances: OK +10:05:02> (init) Remove old primary entry from sentinels: OK +10:05:02> (init) Create a primary-replicas cluster of 5 instances: OK +10:05:02> (init) Sentinels can start monitoring a primary: OK +10:05:02> (init) Sentinels can talk with the primary: OK +10:05:02> (init) Sentinels are able to auto-discover other sentinels: OK +10:05:04> (init) Sentinels are able to auto-discover replicas: OK +10:05:04> SENTINEL CONFIG SET and SENTINEL CONFIG GET handles multiple variables: OK +10:05:04> SENTINEL CONFIG GET for duplicate and unknown variables: OK +10:05:04> SENTINEL CONFIG GET for patterns: OK +10:05:04> SENTINEL CONFIG SET duplicate variables: OK +10:05:04> SENTINEL CONFIG SET, one option does not exist: OK +10:05:05> SENTINEL CONFIG SET, one option with wrong value: OK +10:05:05> SENTINEL CONFIG SET, wrong number of arguments: OK Cleaning up... -killing stale instance 1610875 -killing stale instance 1610979 -killing stale instance 1610990 -killing stale instance 1638001 -killing stale instance 1647867 -killing stale instance 1653255 -killing stale instance 1655978 -killing stale instance 1660707 -killing stale instance 1660737 -killing stale instance 1660750 -killing stale instance 1663280 -killing stale instance 1663495 -killing stale instance 1664325 +killing stale instance 2587772 +killing stale instance 2587779 +killing stale instance 2587786 +killing stale instance 2594821 +killing stale instance 2595217 +killing stale instance 2595677 +killing stale instance 2598462 +killing stale instance 2604871 +killing stale instance 2604891 +killing stale instance 2604918 +killing stale instance 2609788 +killing stale instance 2610313 +killing stale instance 2612527 GOOD! No errors. # Clean up after gen-test-certs.sh rm -rf tests/tls || true @@ -7419,16 +7467,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-aof debian/valkey-tools/usr/bin/valkey-check-rdb 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-aof debian/valkey-tools/usr/bin/valkey-check-rdb 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-check-aof debian/valkey-tools/usr/bin/valkey-cli debian/valkey-tools/usr/bin/valkey-check-rdb debian/valkey-tools/usr/bin/valkey-benchmark 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-check-aof debian/valkey-tools/usr/bin/valkey-cli debian/valkey-tools/usr/bin/valkey-check-rdb debian/valkey-tools/usr/bin/valkey-benchmark were not linked against libatomic.so.1 (they use none of the library's symbols) dh_installdeb dh_gencontrol dh_md5sums dh_builddeb -dpkg-deb: building package 'valkey-tools' in '../valkey-tools_8.1.4+dfsg1-1_arm64.deb'. 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-dbgsym' in '../valkey-tools-dbgsym_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) @@ -7436,12 +7484,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/1522642/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/1522642/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/625890 and its subdirectories -I: Current time: Sat Nov 28 13:21:38 -12 2026 -I: pbuilder-time-stamp: 1795915298 +I: removing directory /srv/workspace/pbuilder/1522642 and its subdirectories +I: Current time: Mon Oct 27 10:05:21 +14 2025 +I: pbuilder-time-stamp: 1761509121