Diff of the two buildlogs: -- --- b1/build.log 2024-10-19 06:28:52.792893109 +0000 +++ b2/build.log 2024-10-19 07:55:29.791852597 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Fri Oct 18 17:07:54 -12 2024 -I: pbuilder-time-stamp: 1729314474 +I: Current time: Sat Nov 22 02:51:55 +14 2025 +I: pbuilder-time-stamp: 1763729515 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration @@ -32,51 +32,83 @@ 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/1514483/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/3629683/tmp/hooks/D01_modify_environment starting +debug: Running on infom02-amd64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Nov 21 12:52 /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/3629683/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/3629683/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='amd64' - 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]="2" [2]="32" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") + BASH_VERSION='5.2.32(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=amd64 + DEBIAN_FRONTEND=noninteractive DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 ' - DISTRIBUTION='unstable' - HOME='/root' - HOST_ARCH='amd64' + DIRSTACK=() + DISTRIBUTION=unstable + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=x86_64 + HOST_ARCH=amd64 IFS=' ' - INVOCATION_ID='1ad570c574264dbeb9c9ddcebbac04f2' - 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='1514483' - PS1='# ' - PS2='> ' + INVOCATION_ID=b3f2bc53bae44dcf9c59348e8cb19a32 + LANG=C + LANGUAGE=et_EE:et + LC_ALL=C + MACHTYPE=x86_64-pc-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=3629683 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.TaDnkqMP/pbuilderrc_kpSf --distribution unstable --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.TaDnkqMP/b1 --logfile b1/build.log valkey_8.0.1+dfsg1-1.dsc' - SUDO_GID='109' - SUDO_UID='104' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' + 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.TaDnkqMP/pbuilderrc_JaMR --distribution unstable --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.TaDnkqMP/b2 --logfile b2/build.log valkey_8.0.1+dfsg1-1.dsc' + SUDO_GID=109 + SUDO_UID=104 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' I: uname -a - Linux infom01-amd64 6.1.0-26-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.112-1 (2024-09-30) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.10.11+bpo-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.10.11-1~bpo12+1 (2024-10-03) x86_64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Aug 4 21:30 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/1514483/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Aug 4 2024 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/3629683/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -197,7 +229,7 @@ Get: 57 http://deb.debian.org/debian unstable/main amd64 tcl8.6 amd64 8.6.15+dfsg-2 [120 kB] Get: 58 http://deb.debian.org/debian unstable/main amd64 tcl amd64 8.6.14 [4032 B] Get: 59 http://deb.debian.org/debian unstable/main amd64 tcl-tls amd64 1.7.22-3+b2 [67.4 kB] -Fetched 29.8 MB in 3s (11.2 MB/s) +Fetched 29.8 MB in 0s (79.9 MB/s) debconf: delaying package configuration, since apt-utils is not installed 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 ... 19944 files and directories currently installed.) @@ -396,8 +428,8 @@ Setting up tzdata (2024b-3) ... Current default time zone: 'Etc/UTC' -Local time is now: Sat Oct 19 05:08:51 UTC 2024. -Universal Time is now: Sat Oct 19 05:08:51 UTC 2024. +Local time is now: Fri Nov 21 12:52:57 UTC 2025. +Universal Time is now: Fri Nov 21 12:52:57 UTC 2025. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up libjemalloc-dev (5.3.0-2+b1) ... @@ -458,7 +490,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/valkey-8.0.1+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.0.1+dfsg1-1_source.changes +I: user script /srv/workspace/pbuilder/3629683/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for unstable +I: user script /srv/workspace/pbuilder/3629683/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/valkey-8.0.1+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.0.1+dfsg1-1_source.changes dpkg-buildpackage: info: source package valkey dpkg-buildpackage: info: source version 8.0.1+dfsg1-1 dpkg-buildpackage: info: source distribution unstable @@ -562,74 +598,74 @@ cd hiredis && make static USE_SSL=1 MAKE linenoise cd linenoise && make -MAKE lua -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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -O2 " MYLDFLAGS="-Wl,-z,relro -Wl,-z,now -Wl,-no-as-needed -ldl -latomic -llzf" AR="ar rc" MAKE hdr_histogram +MAKE lua cd hdr_histogram && make MAKE fpconv -make[5]: Entering directory '/build/reproducible-path/valkey-8.0.1+dfsg1/deps/hiredis' +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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -O2 " MYLDFLAGS="-Wl,-z,relro -Wl,-z,now -Wl,-no-as-needed -ldl -latomic -llzf" AR="ar rc" cd fpconv && make +make[5]: Entering directory '/build/reproducible-path/valkey-8.0.1+dfsg1/deps/hiredis' make[5]: Entering directory '/build/reproducible-path/valkey-8.0.1+dfsg1/deps/linenoise' cc -Wall -Os -g -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -Wdate-time -D_FORTIFY_SOURCE=2 -c linenoise.c -make[5]: Entering directory '/build/reproducible-path/valkey-8.0.1+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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lapi.o lapi.c make[5]: Entering directory '/build/reproducible-path/valkey-8.0.1+dfsg1/deps/hdr_histogram' cc -std=c99 -Wall -Os -g -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lcode.o lcode.c make[5]: Entering directory '/build/reproducible-path/valkey-8.0.1+dfsg1/deps/fpconv' cc -Wall -Os -g -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -Wdate-time -D_FORTIFY_SOURCE=2 -c fpconv_dtoa.c +make[5]: Entering directory '/build/reproducible-path/valkey-8.0.1+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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lapi.o lapi.c +cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lcode.o lcode.c cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o ldebug.o ldebug.c cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o ldump.o ldump.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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -DHIREDIS_TEST_SSL -Wall -Wextra -Werror -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -g -ggdb -pedantic net.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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -DHIREDIS_TEST_SSL -Wall -Wextra -Werror -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -g -ggdb -pedantic hiredis.c cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lmem.o lmem.c ar rcs libfpconv.a fpconv_dtoa.o make[5]: Leaving directory '/build/reproducible-path/valkey-8.0.1+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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lmem.o lmem.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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lopcodes.o lopcodes.c cc -std=c99 -c -O3 -fPIC -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lparser.o lparser.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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -DHIREDIS_TEST_SSL -Wall -Wextra -Werror -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -g -ggdb -pedantic read.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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lstate.o lstate.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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lstring.o lstring.c +make[5]: Leaving directory '/build/reproducible-path/valkey-8.0.1+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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o ltable.o ltable.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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o ltm.o ltm.c cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lvm.o lvm.c +make[5]: Leaving directory '/build/reproducible-path/valkey-8.0.1+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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lzio.o lzio.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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o strbuf.o strbuf.c -make[5]: Leaving directory '/build/reproducible-path/valkey-8.0.1+dfsg1/deps/hdr_histogram' -cc -std=c99 -c -O3 -fPIC -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -DHIREDIS_TEST_SSL -Wall -Wextra -Werror -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -g -ggdb -pedantic async.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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lauxlib.o lauxlib.c cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lbaselib.o lbaselib.c -make[5]: Leaving directory '/build/reproducible-path/valkey-8.0.1+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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o ldblib.o ldblib.c cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lmathlib.o lmathlib.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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o loslib.o loslib.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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -DHIREDIS_TEST_SSL -Wall -Wextra -Werror -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -g -ggdb -pedantic sockcompat.c cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o loadlib.o loadlib.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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o linit.o linit.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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lua_cjson.o lua_cjson.c +ar rcs libhiredis.a alloc.o net.o hiredis.o sds.o async.o read.o sockcompat.o cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lua_struct.o lua_struct.c cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lua_cmsgpack.o lua_cmsgpack.c cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lua_bit.o lua_bit.c +make[5]: Leaving directory '/build/reproducible-path/valkey-8.0.1+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.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lua.o lua.c cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o luac.o luac.c cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/valkey-8.0.1+dfsg1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o print.o print.c -ar rcs libhiredis_ssl.a ssl.o -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.0.1+dfsg1/deps/hiredis' ar rc liblua.a lapi.o lcode.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o strbuf.o fpconv.o lauxlib.o lbaselib.o ldblib.o liolib.o lmathlib.o loslib.o ltablib.o lstrlib.o loadlib.o linit.o lua_cjson.o lua_struct.o lua_cmsgpack.o lua_bit.o # DLL needs all object files ranlib liblua.a cc -o lua -Wl,-z,relro -Wl,-z,now -Wl,-no-as-needed -ldl -latomic -llzf lua.o liblua.a -lm @@ -767,551 +803,261 @@ 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]: 1521926 -Testing unit/tls -=== (tls) Starting server 127.0.0.1:21111 ok -[ok]: TLS: Not accepting non-TLS connections on a TLS port (0 ms) -[ok]: TLS: Verify tls-auth-clients behaves as expected (9 ms) -[ok]: TLS: Verify tls-protocols behaves as expected (8 ms) -[ok]: TLS: Verify tls-ciphers behaves as expected (14 ms) -[ok]: TLS: Verify tls-prefer-server-ciphers behaves as expected (15 ms) -=== () Starting server 127.0.0.1:21113 ok -[ok]: TLS: Verify tls-cert-file is also used as a client cert if none specified (855 ms) -[ok]: TLS: switch between tcp and tls ports (11 ms) -[ok]: TLS: Working with an encrypted keyfile (11 ms) -[1/124 done]: unit/tls (1 seconds) -Testing unit/pause -=== (pause network) Starting server 127.0.0.1:21115 ok -[ok]: Test read commands are not blocked by client pause (5 ms) -[ok]: Test old pause-all takes precedence over new pause-write (less restrictive) (328 ms) -[ok]: Test new pause time is smaller than old one, then old time preserved (108 ms) -[ok]: Test write commands are paused by RO (6 ms) -[ok]: Test special commands are paused by RO (11 ms) -[ok]: Test read/admin multi-execs are not blocked by pause RO (6 ms) -[ok]: Test write multi-execs are blocked by pause RO (6 ms) -[ok]: Test scripts are blocked by pause RO (10 ms) -[ok]: Test RO scripts are not blocked by pause RO (6 ms) -[ok]: Test read-only scripts in multi-exec are not blocked by pause RO (5 ms) -[ok]: Test write scripts in multi-exec are blocked by pause RO (10 ms) -[ok]: Test may-replicate commands are rejected in RO scripts (0 ms) -[ok]: Test multiple clients can be queued up and unblocked (15 ms) -[ok]: Test clients with syntax errors will get responses immediately (0 ms) -[ok]: Test both active and passive expires are skipped during client pause (103 ms) -[ok]: Test that client pause starts at the end of a transaction (6 ms) -=== (needs:repl external:skip) Starting server 127.0.0.1:21117 ok -[ok]: Test when replica paused, offset would not grow (3 ms) -[ok]: Test replica offset would grow after unpause (0 ms) -[2/124 done]: unit/pause (1 seconds) -Testing unit/obuf-limits -=== (obuf-limits external:skip logreqres:skip) Starting server 127.0.0.1:21119 ok -[ok]: CONFIG SET client-output-buffer-limit (2 ms) -[ok]: Client output buffer hard limit is enforced (3223 ms) -[ok]: Client output buffer soft limit is enforced if time is overreached (4075 ms) -[ok]: Client output buffer soft limit is not enforced too early and is enforced when no traffic (5045 ms) -[ok]: No response for single command if client output buffer hard limit is enforced (116 ms) -[ok]: No response for multi commands in pipeline if client output buffer limit is enforced (1054 ms) -[ok]: Execute transactions completely even if client output buffer limit is enforced (17 ms) -[ok]: Obuf limit, HRANDFIELD with huge count stopped mid-run (14 ms) -[ok]: Obuf limit, KEYS stopped mid-run (41 ms) -[3/124 done]: unit/obuf-limits (14 seconds) -Testing unit/acl-v2 -=== (acl external:skip) Starting server 127.0.0.1:21121 ok -[ok]: Test basic multiple selectors (1 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 (1 ms) -[ok]: Test separate read permission (0 ms) -[ok]: Test separate write permission (1 ms) -[ok]: Test separate read and write permissions (0 ms) -[ok]: Validate read and write permissions format (0 ms) -[ok]: Test separate read and write permissions on different selectors are not additive (1 ms) -[ok]: Test SET with separate read permission (1 ms) -[ok]: Test SET with separate write permission (0 ms) -[ok]: Test SET with read and write permissions (0 ms) -[ok]: Test BITFIELD with separate read permission (1 ms) -[ok]: Test BITFIELD with separate write permission (0 ms) -[ok]: Test BITFIELD with read and write permissions (1 ms) -[ok]: Test ACL log correctly identifies the relevant item when selectors are used (1 ms) -[ok]: Test ACL GETUSER response information (0 ms) -[ok]: Test ACL list idempotency (0 ms) -[ok]: Test R+W is the same as all permissions (0 ms) -[ok]: Test basic dry run functionality (1 ms) -[ok]: Test various commands for command permissions (0 ms) -[ok]: Test various odd commands for key permissions (2 ms) -[ok]: Existence test commands are not marked as access (0 ms) -[ok]: Intersection cardinaltiy commands are access commands (1 ms) -[ok]: Test general keyspace commands require some type of permission to execute (1 ms) -[ok]: Cardinality commands require some type of permission to execute (1 ms) -[ok]: Test sharded channel permissions (1 ms) -[ok]: Test sort with ACL permissions (1 ms) -[ok]: Test DRYRUN with wrong number of arguments (0 ms) -=== (external:skip) Starting server 127.0.0.1:21123 ok -[ok]: Test behavior of loading ACLs (1 ms) -[4/124 done]: unit/acl-v2 (0 seconds) +[ready]: 3636968 +Testing unit/quit +=== (quit) Starting server 127.0.0.1:21111 ok +[ok]: QUIT returns OK (7 ms) +[ok]: Pipelined commands after QUIT must not be executed (12 ms) +[ok]: Pipelined commands after QUIT that exceed read buffer size (12 ms) +[1/124 done]: unit/quit (0 seconds) Testing unit/slowlog -=== (slowlog) Starting server 127.0.0.1:21125 ok +=== (slowlog) Starting server 127.0.0.1:21113 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 (6 ms) -[ok]: SLOWLOG - max entries is correctly handled (6 ms) -[ok]: SLOWLOG - GET optional argument to limit output len works (1 ms) +[ok]: SLOWLOG - zero max length is correctly handled (11 ms) +[ok]: SLOWLOG - max entries is correctly handled (11 ms) +[ok]: SLOWLOG - GET optional argument to limit output len works (2 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 - logged entry sanity check (202 ms) +[ok]: SLOWLOG - Certain commands are omitted that contain sensitive information (4 ms) [ok]: SLOWLOG - Some commands can redact sensitive fields (1 ms) -[ok]: SLOWLOG - Rewritten commands are logged as their original command (8 ms) +[ok]: SLOWLOG - Rewritten commands are logged as their original command (13 ms) [ok]: SLOWLOG - commands with too many arguments are trimmed (1 ms) -[ok]: SLOWLOG - too long arguments are trimmed (0 ms) -[ok]: SLOWLOG - EXEC is not logged, just executed commands (201 ms) -[ok]: SLOWLOG - can clean older entries (201 ms) -[ok]: SLOWLOG - can be disabled (402 ms) +[ok]: SLOWLOG - too long arguments are trimmed (1 ms) +[ok]: SLOWLOG - EXEC is not logged, just executed commands (203 ms) +[ok]: SLOWLOG - can clean older entries (202 ms) +[ok]: SLOWLOG - can be disabled (403 ms) [ok]: SLOWLOG - count must be >= -1 (0 ms) -[ok]: SLOWLOG - get all slow logs (1 ms) -[ok]: SLOWLOG - blocking command is reported only after unblocked (7 ms) -[ok]: SLOWLOG - the commands in script are recorded normally - is_eval: 0 (0 ms) -[ok]: SLOWLOG - the commands in script are recorded normally - is_eval: 1 (1 ms) -[5/124 done]: unit/slowlog (2 seconds) +[ok]: SLOWLOG - get all slow logs (3 ms) +[ok]: SLOWLOG - blocking command is reported only after unblocked (10 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 (0 ms) +[2/124 done]: unit/slowlog (1 seconds) +Testing unit/bitfield +=== (bitops) Starting server 127.0.0.1:21115 ok +[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 (0 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 (0 ms) +[ok]: BITFIELD chaining of multiple commands (1 ms) +[ok]: BITFIELD unsigned overflow wrap (1 ms) +[ok]: BITFIELD unsigned overflow sat (1 ms) +[ok]: BITFIELD signed overflow wrap (1 ms) +[ok]: BITFIELD signed overflow sat (1 ms) +[ok]: BITFIELD overflow detection fuzzing (362 ms) +[ok]: BITFIELD overflow wrap fuzzing (584 ms) +[ok]: BITFIELD regression for #3221 (1 ms) +[ok]: BITFIELD regression for #3564 (6 ms) +[ok]: BITFIELD_RO with only key as argument (0 ms) +[ok]: BITFIELD_RO fails when write option is used (0 ms) +=== (repl external:skip) Starting server 127.0.0.1:21117 ok +=== () Starting server 127.0.0.1:21119 ok +[ok]: BITFIELD: setup slave (103 ms) +[ok]: BITFIELD: write on master, read on slave (2 ms) +[ok]: BITFIELD_RO with only key as argument on read-only replica (1 ms) +[ok]: BITFIELD_RO fails when write option is used on read-only replica (0 ms) +[3/124 done]: unit/bitfield (2 seconds) +Testing unit/oom-score-adj +=== (oom-score-adj external:skip) Starting server 127.0.0.1:21121 ok +[ok]: CONFIG SET oom-score-adj works as expected (32 ms) +[ok]: CONFIG SET oom-score-adj handles configuration failures (3 ms) +[ok]: CONFIG SET oom-score-adj-values doesn't touch proc when disabled (1 ms) +[ok]: CONFIG SET oom score restored on disable (0 ms) +[ok]: CONFIG SET oom score relative and absolute (0 ms) +[ok]: CONFIG SET out-of-range oom score (1 ms) +[4/124 done]: unit/oom-score-adj (0 seconds) +Testing unit/info +=== (info external:skip) Starting server 127.0.0.1:21123 ok +=== () Starting server 127.0.0.1:21125 ok +[ok]: latencystats: disable/enable (2 ms) +[ok]: latencystats: configure percentiles (3 ms) +[ok]: latencystats: bad configure percentiles (2 ms) +[ok]: latencystats: blocking commands (10 ms) +[ok]: latencystats: subcommands (1 ms) +[ok]: latencystats: measure latency (53 ms) +[ok]: errorstats: failed call authentication error (2 ms) +[ok]: errorstats: failed call within MULTI/EXEC (3 ms) +[ok]: errorstats: failed call within LUA (4 ms) +[ok]: errorstats: failed call NOSCRIPT error (3 ms) +[ok]: errorstats: failed call NOGROUP error (1 ms) +[ok]: errorstats: rejected call unknown command (2 ms) +[ok]: errorstats: rejected call within MULTI/EXEC (3 ms) +[ok]: errorstats: rejected call due to wrong arity (2 ms) +[ok]: errorstats: rejected call by OOM error (2 ms) +[ok]: errorstats: rejected call by authorization error (2 ms) +[ok]: errorstats: blocking commands (10 ms) +[ok]: errorstats: limit errors will not increase indefinitely (182 ms) +eventloop metrics cycle1: 1117, cycle2: 1119 +eventloop metrics el_sum1: 58785, el_sum2: 59010 +eventloop metrics cmd_sum1: 10444, cmd_sum2: 10459 +[ok]: stats: eventloop metrics (113 ms) +instantaneous metrics instantaneous_eventloop_cycles_per_sec: 8 +instantaneous metrics instantaneous_eventloop_duration_usec: 220 +[ok]: stats: instantaneous metrics (1604 ms) +[ok]: stats: debug metrics (113 ms) +[ok]: stats: client input and output buffer limit disconnections (125 ms) +[ok]: clients: pubsub clients (16 ms) +[ok]: clients: watching clients (15 ms) +=== (info external:skip) Starting server 127.0.0.1:21127 ok +[ok]: memory: database and pubsub overhead and rehashing dict count (4 ms) +[5/124 done]: unit/info (3 seconds) +Testing unit/client-eviction +=== () Starting server 127.0.0.1:21129 ok +[ok]: client evicted due to large argv (90 ms) +[ok]: client evicted due to large query buf (40 ms) +[ok]: client evicted due to percentage of maxmemory (23 ms) +[ok]: client evicted due to large multi buf (273 ms) +[ok]: client evicted due to watched key list (332 ms) +[ok]: client evicted due to pubsub subscriptions (1603 ms) +[ok]: client evicted due to tracking redirection (37 ms) +[ok]: client evicted due to client tracking prefixes (1293 ms) +[ok]: client evicted due to output buf (29 ms) +[ok]: client no-evict on (49 ms) +[ok]: client no-evict off (41 ms) +=== () Starting server 127.0.0.1:21131 ok +[ok]: avoid client eviction when client is freed by output buffer limit (124 ms) +=== () Starting server 127.0.0.1:21133 ok +[ok]: decrease maxmemory-clients causes client eviction (434 ms) +=== () Starting server 127.0.0.1:21135 ok +[ok]: evict clients only until below limit (198 ms) +=== () Starting server 127.0.0.1:21137 ok +[ok]: evict clients in right order (large to small) (182 ms) +=== () Starting server 127.0.0.1:21139 ok +[ok]: client total memory grows during client no-evict (124 ms) +[ok]: client total memory grows during maxmemory-clients disabled (125 ms) +[6/124 done]: unit/client-eviction (7 seconds) +Testing unit/lazyfree +=== (lazyfree) Starting server 127.0.0.1:21141 ok +[ok]: UNLINK can reclaim memory in background (261 ms) +[ok]: FLUSHDB ASYNC can reclaim memory in background (253 ms) +[ok]: lazy free a stream with all types of metadata (141 ms) +[ok]: lazy free a stream with deleted cgroup (2 ms) +[7/124 done]: unit/lazyfree (0 seconds) Testing unit/introspection -=== (introspection) Starting server 127.0.0.1:21127 ok +=== (introspection) Starting server 127.0.0.1:21143 ok [ok]: PING (1 ms) [ok]: CLIENT LIST (0 ms) -[ok]: CLIENT LIST with IDs (0 ms) +[ok]: CLIENT LIST with IDs (1 ms) [ok]: CLIENT INFO (0 ms) -[ok]: client input output and command process statistics (7 ms) -[ok]: CLIENT KILL with illegal arguments (1 ms) +[ok]: client input output and command process statistics (12 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 (2012 ms) -[ok]: CLIENT KILL SKIPME YES/NO will kill all clients (24 ms) -[ok]: CLIENT command unhappy path coverage (1 ms) -[ok]: CLIENT KILL close the client connection during bgsave (69 ms) -[ok]: CLIENT REPLY OFF/ON: disable all commands reply (48 ms) -[ok]: CLIENT REPLY SKIP: skip the next command reply (47 ms) +[ok]: CLIENT KILL maxAGE will kill old clients (2017 ms) +[ok]: CLIENT KILL SKIPME YES/NO will kill all clients (32 ms) +[ok]: CLIENT command unhappy path coverage (3 ms) +[ok]: CLIENT KILL close the client connection during bgsave (64 ms) +[ok]: CLIENT REPLY OFF/ON: disable all commands reply (52 ms) +[ok]: CLIENT REPLY SKIP: skip the next command reply (48 ms) [ok]: CLIENT REPLY ON: unset SKIP flag (48 ms) -[ok]: MONITOR can log executed commands (5 ms) -[ok]: MONITOR can log commands issued by the scripting engine (5 ms) -[ok]: MONITOR can log commands issued by functions (5 ms) -[ok]: MONITOR supports redacting command arguments (6 ms) -[ok]: MONITOR correctly handles multi-exec cases (5 ms) -[ok]: MONITOR log blocked command only once (14 ms) +[ok]: MONITOR can log executed commands (8 ms) +[ok]: MONITOR can log commands issued by the scripting engine (7 ms) +[ok]: MONITOR can log commands issued by functions (8 ms) +[ok]: MONITOR supports redacting command arguments (7 ms) +[ok]: MONITOR correctly handles multi-exec cases (8 ms) +[ok]: MONITOR log blocked command only once (22 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 GETNAME check if name set correctly (0 ms) [ok]: CLIENT LIST shows empty fields for unassigned names (0 ms) [ok]: CLIENT SETNAME does not accept spaces (0 ms) [ok]: CLIENT SETNAME can assign a name to this connection (0 ms) -[ok]: CLIENT SETNAME can change the name of an existing connection (0 ms) -[ok]: After CLIENT SETNAME, connection can still be closed (5 ms) +[ok]: CLIENT SETNAME can change the name of an existing connection (1 ms) +[ok]: After CLIENT SETNAME, connection can still be closed (9 ms) [ok]: CLIENT SETINFO can set a library name to this connection (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 127.0.0.1:21129 ok -=== () Starting server 127.0.0.1:21131 ok -=== () Starting server 127.0.0.1:21133 ok -=== () Starting server 127.0.0.1:21135 ok -[ok]: CONFIG save params special case handled properly (933 ms) -[ok]: CONFIG sanity (26 ms) -[ok]: CONFIG REWRITE sanity (201 ms) -=== () Starting server 127.0.0.1:21137 ok -[ok]: CONFIG REWRITE handles save and shutdown properly (870 ms) +=== () Starting server 127.0.0.1:21145 ok +=== () Starting server 127.0.0.1:21147 ok +=== () Starting server 127.0.0.1:21149 ok +=== () Starting server 127.0.0.1:21151 ok +[ok]: CONFIG save params special case handled properly (953 ms) +[ok]: CONFIG sanity (38 ms) +[ok]: CONFIG REWRITE sanity (237 ms) +=== () Starting server 127.0.0.1:21153 ok +[ok]: CONFIG REWRITE handles save and shutdown properly (904 ms) [ok]: CONFIG SET with multiple args (1 ms) [ok]: CONFIG SET rollback on set error (1 ms) -dummy_accept: sock557807e42fe0 -[ok]: CONFIG SET rollback on apply error (7 ms) +dummy_accept: sock562480713310 +[ok]: CONFIG SET rollback on apply error (13 ms) [ok]: CONFIG SET duplicate configs (0 ms) [ok]: CONFIG SET set immutable (1 ms) -[ok]: CONFIG GET hidden configs (2 ms) +[ok]: CONFIG GET hidden configs (4 ms) [ok]: CONFIG GET multiple args (0 ms) -[ok]: valkey-server command line arguments - error cases (82 ms) -=== () Starting server 127.0.0.1:21140 ok -=== () Starting server 127.0.0.1:21142 ok -[ok]: tot-net-out for replica client (529 ms) -=== () Starting server 127.0.0.1:21144 ok -[ok]: valkey-server command line arguments - allow passing option name and option value in the same arg (225 ms) -=== () Starting server 127.0.0.1:21146 ok -[ok]: valkey-server command line arguments - wrong usage that we support anyway (224 ms) -=== () Starting server 127.0.0.1:21148 ok -[ok]: valkey-server command line arguments - allow option value to use the `--` prefix (225 ms) -=== () Starting server 127.0.0.1:21150 ok -[ok]: valkey-server command line arguments - option name and option value in the same arg and `--` prefix (221 ms) -=== () Starting server 127.0.0.1:21152 ok -=== () Starting server 127.0.0.1:21154 ok +[ok]: valkey-server command line arguments - error cases (117 ms) === () Starting server 127.0.0.1:21156 ok === () Starting server 127.0.0.1:21158 ok +[ok]: tot-net-out for replica client (588 ms) === () Starting server 127.0.0.1:21160 ok -[ok]: valkey-server command line arguments - save with empty input (1110 ms) +[ok]: valkey-server command line arguments - allow passing option name and option value in the same arg (225 ms) === () Starting server 127.0.0.1:21162 ok -[ok]: valkey-server command line arguments - take one bulk string with spaces for MULTI_ARG configs parsing (221 ms) -=== (introspection external:skip) Starting server 127.0.0.1:21164 ok -[ok]: cannot modify protected configuration - no (0 ms) -=== (introspection external:skip) Starting server 127.0.0.1:21166 ok -[ok]: cannot modify protected configuration - local (3 ms) +[ok]: valkey-server command line arguments - wrong usage that we support anyway (237 ms) +=== () Starting server 127.0.0.1:21164 ok +[ok]: valkey-server command line arguments - allow option value to use the `--` prefix (233 ms) +=== () Starting server 127.0.0.1:21166 ok +[ok]: valkey-server command line arguments - option name and option value in the same arg and `--` prefix (239 ms) === () Starting server 127.0.0.1:21168 ok -[ok]: config during loading (1146 ms) -=== (introspection) Starting server 127.0.0.1:21170 ok -[ok]: CONFIG REWRITE handles rename-command properly (450 ms) -=== (introspection) Starting server 127.0.0.1:21172 ok -=== (introspection) Starting server 127.0.0.1:21174 ok -[ok]: CONFIG REWRITE handles alias config properly (889 ms) -[6/124 done]: unit/introspection (10 seconds) -Testing unit/printver +=== () Starting server 127.0.0.1:21170 ok +=== () Starting server 127.0.0.1:21172 ok +=== () Starting server 127.0.0.1:21174 ok === () Starting server 127.0.0.1:21176 ok -Testing Valkey version 7.2.4 (00000000) -[7/124 done]: unit/printver (0 seconds) -Testing unit/violations +[ok]: valkey-server command line arguments - save with empty input (1336 ms) === () Starting server 127.0.0.1:21178 ok -[ignore]: XADD one huge field: large memory flag not provided -=== () Starting server 127.0.0.1:21180 ok -[ignore]: XADD one huge field - 1: large memory flag not provided -=== () Starting server 127.0.0.1:21182 ok -[ignore]: several XADD big fields: large memory flag not provided +[ok]: valkey-server command line arguments - take one bulk string with spaces for MULTI_ARG configs parsing (347 ms) +=== (introspection external:skip) Starting server 127.0.0.1:21180 ok +[ok]: cannot modify protected configuration - no (0 ms) +=== (introspection external:skip) Starting server 127.0.0.1:21182 ok +[ok]: cannot modify protected configuration - local (2 ms) === () Starting server 127.0.0.1:21184 ok -[ignore]: single XADD big fields: large memory flag not provided -=== () Starting server 127.0.0.1:21186 ok -[ignore]: hash with many big fields: large memory flag not provided -=== () Starting server 127.0.0.1:21188 ok -[ignore]: hash with one huge field: large memory flag not provided -=== () Starting server 127.0.0.1:21190 ok -[ok]: SORT adds integer field to list (1 ms) -[8/124 done]: unit/violations (2 seconds) -Testing unit/expire -=== (expire) Starting server 127.0.0.1:21192 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 - write on expire should work (0 ms) -[ok]: EXPIREAT - Check for EXPIRE alike behavior (1 ms) -[ok]: SETEX - Set + Expire combo operation. Check for TTL (0 ms) -[ok]: SETEX - Check value (0 ms) -[ok]: SETEX - Overwrite old key (0 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 (0 ms) -millisecond expire test attempts: 0 -[ok]: EXPIRE precision is now the millisecond (1105 ms) -PSETEX sub-second expire test attempts: 0 -[ok]: PSETEX can set sub-second expires (103 ms) -PEXPIRE sub-second expire test attempts: 0 -[ok]: PEXPIRE can set sub-second expires (104 ms) -PEXPIREAT sub-second expire test attempts: 0 -[ok]: PEXPIREAT can set sub-second expires (203 ms) -[ok]: TTL returns time to live in seconds (0 ms) -[ok]: PTTL returns time to live in milliseconds (1 ms) -[ok]: TTL / PTTL / EXPIRETIME / PEXPIRETIME return -1 if key has no expire (0 ms) -[ok]: TTL / PTTL / EXPIRETIME / PEXPIRETIME return -2 if key does not exit (1 ms) -[ok]: EXPIRETIME returns absolute expiration time in seconds (0 ms) -[ok]: PEXPIRETIME returns absolute expiration time in milliseconds (0 ms) -[ok]: Server should actively expire keys incrementally (607 ms) -[ok]: Server should lazy expire keys (1004 ms) -[ok]: EXPIRE should not resurrect keys (issue #1026) (1003 ms) -[ok]: 5 keys in, 5 keys out (1 ms) -[ok]: EXPIRE with empty string as TTL should report an error (0 ms) -[ok]: SET with EX with big integer should report an error (0 ms) -[ok]: SET with EX with smallest integer should report an error (0 ms) -[ok]: GETEX with big integer should report an error (0 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]: PEXPIRE with big integer overflow when basetime is added (0 ms) -[ok]: EXPIRE with big negative integer (0 ms) -[ok]: PEXPIREAT with big integer works (0 ms) -[ok]: PEXPIREAT with big negative integer works (0 ms) -=== (external:skip) Starting server 127.0.0.1:21194 ok -[ok]: All time-to-live(TTL) in commands are propagated as absolute timestamp in milliseconds in AOF (2108 ms) -[ok]: All TTL in commands are propagated as absolute timestamp in replication stream (57 ms) -=== (needs:repl external:skip) Starting server 127.0.0.1:21196 ok -[ok]: First server should have role slave after REPLICAOF (1 ms) -[ok]: For all replicated TTL-related commands, absolute expire times are identical on primary and replica (15 ms) - -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: expired key which is created in writeable replicas should be deleted by active expiry (287 ms) -[ok]: SET command will remove expire (0 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 (2006 ms) -[ok]: GETEX use of PERSIST option should remove TTL (1 ms) -[ok]: GETEX use of PERSIST option should remove TTL after loadaof (0 ms) -[ok]: GETEX propagate as to replica as PERSIST, UNLINK, or nothing (98 ms) -[ok]: EXPIRE with NX option on a key with ttl (1 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 (1 ms) -[ok]: EXPIRE with GT option on a key with lower ttl (0 ms) -[ok]: EXPIRE with GT option on a key with higher ttl (0 ms) -[ok]: EXPIRE with GT option on a key without ttl (1 ms) -[ok]: EXPIRE with LT option on a key with higher ttl (0 ms) -[ok]: EXPIRE with LT option on a key with lower ttl (0 ms) -[ok]: EXPIRE with LT option on a key without ttl (0 ms) -[ok]: EXPIRE with LT and XX option on a key with ttl (1 ms) -[ok]: EXPIRE with LT and XX option on a key without ttl (0 ms) -[ok]: EXPIRE with conflicting options: LT GT (0 ms) -[ok]: EXPIRE with conflicting options: NX GT (0 ms) -[ok]: EXPIRE with conflicting options: NX LT (0 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 negative expiry (0 ms) -[ok]: EXPIRE with negative expiry on a non-valitale key (0 ms) -[ok]: EXPIRE with non-existed key (1 ms) -[ok]: Server should not propagate the read command on lazy expire (94 ms) -[ok]: SCAN: Lazy-expire should not be wrapped in MULTI/EXEC (100 ms) -[ok]: RANDOMKEY: Lazy-expire should not be wrapped in MULTI/EXEC (102 ms) -=== (expire external:skip cluster) Starting server 127.0.0.1:21198 ok -[ok]: expire scan should skip dictionaries with lot's of empty buckets (1228 ms) -[9/124 done]: unit/expire (16 seconds) -Testing unit/bitfield -=== (bitops) Starting server 127.0.0.1:21200 ok -[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 (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 (0 ms) -[ok]: BITFIELD signed overflow wrap (1 ms) -[ok]: BITFIELD signed overflow sat (1 ms) -[ok]: BITFIELD overflow detection fuzzing (216 ms) -[ok]: BITFIELD overflow wrap fuzzing (276 ms) -[ok]: BITFIELD regression for #3221 (0 ms) -[ok]: BITFIELD regression for #3564 (1 ms) -[ok]: BITFIELD_RO with only key as argument (0 ms) -[ok]: BITFIELD_RO fails when write option is used (0 ms) -=== (repl external:skip) Starting server 127.0.0.1:21202 ok -=== () Starting server 127.0.0.1:21204 ok -[ok]: BITFIELD: setup slave (102 ms) -[ok]: BITFIELD: write on master, read on slave (1 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) -[10/124 done]: unit/bitfield (1 seconds) -Testing unit/client-eviction -=== () Starting server 127.0.0.1:21206 ok -[ok]: client evicted due to large argv (70 ms) -[ok]: client evicted due to large query buf (24 ms) -[ok]: client evicted due to percentage of maxmemory (14 ms) -[ok]: client evicted due to large multi buf (248 ms) -[ok]: client evicted due to watched key list (164 ms) -[ok]: client evicted due to pubsub subscriptions (854 ms) -[ok]: client evicted due to tracking redirection (69 ms) -[ok]: client evicted due to client tracking prefixes (908 ms) -[ok]: client evicted due to output buf (13 ms) -[ok]: client no-evict on (77 ms) -[ok]: client no-evict off (29 ms) -=== () Starting server 127.0.0.1:21208 ok -[ok]: avoid client eviction when client is freed by output buffer limit (74 ms) -=== () Starting server 127.0.0.1:21210 ok -[ok]: decrease maxmemory-clients causes client eviction (255 ms) -=== () Starting server 127.0.0.1:21212 ok -[ok]: evict clients only until below limit (110 ms) -=== () Starting server 127.0.0.1:21214 ok -[ok]: evict clients in right order (large to small) (113 ms) -=== () Starting server 127.0.0.1:21216 ok -[ok]: client total memory grows during client no-evict (119 ms) -[ok]: client total memory grows during maxmemory-clients disabled (119 ms) -[11/124 done]: unit/client-eviction (5 seconds) -Testing unit/geo -=== (geo) Starting server 127.0.0.1:21218 ok -[ok]: GEO with wrong type src key (3 ms) -[ok]: GEO with non existing src key (1 ms) -[ok]: GEO BYLONLAT with empty search (0 ms) -[ok]: GEO BYMEMBER with non existing member (0 ms) -[ok]: GEOADD create (0 ms) -[ok]: GEOADD update (1 ms) -[ok]: GEOADD update with CH option (0 ms) -[ok]: GEOADD update with NX option (0 ms) -[ok]: GEOADD update with XX option (0 ms) -[ok]: GEOADD update with CH NX option (0 ms) -[ok]: GEOADD update with CH XX option (0 ms) -[ok]: GEOADD update with XX NX option will return syntax error (0 ms) -[ok]: GEOADD update with invalid option (0 ms) -[ok]: GEOADD invalid coordinates (0 ms) -[ok]: GEOADD multi add (1 ms) -[ok]: Check geoset values (0 ms) -[ok]: GEORADIUS simple (sorted) (0 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 (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 with STOREDIST option (0 ms) -[ok]: GEORADIUS withdist (sorted) (0 ms) -[ok]: GEOSEARCH withdist (sorted) (0 ms) -[ok]: GEORADIUS with COUNT (1 ms) -[ok]: GEORADIUS with multiple WITH* tokens (0 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 (1 ms) -[ok]: GEORADIUS with COUNT but missing integer argument (0 ms) -[ok]: GEORADIUS with COUNT DESC (0 ms) -[ok]: GEORADIUS HUGE, issue #2767 (0 ms) -[ok]: GEORADIUSBYMEMBER simple (sorted) (0 ms) -[ok]: GEORADIUSBYMEMBER_RO simple (sorted) (0 ms) -[ok]: GEORADIUSBYMEMBER search areas contain satisfied points in oblique direction (0 ms) -[ok]: GEORADIUSBYMEMBER crossing pole search (0 ms) -[ok]: GEOSEARCH FROMMEMBER simple (sorted) (0 ms) -[ok]: GEOSEARCH vs GEORADIUS (0 ms) -[ok]: GEOSEARCH non square, long and narrow (1 ms) -[ok]: GEOSEARCH corner point test (0 ms) -[ok]: GEORADIUSBYMEMBER withdist (sorted) (0 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 (0 ms) -[ok]: GEOPOS with only key as argument (1 ms) -[ok]: GEODIST simple & unit (0 ms) -[ok]: GEODIST missing elements (0 ms) -[ok]: GEORADIUS STORE option: syntax error (1 ms) -[ok]: GEOSEARCHSTORE STORE option: syntax error (0 ms) -[ok]: GEORANGE STORE option: incompatible options (0 ms) -[ok]: GEORANGE STORE option: plain usage (1 ms) -[ok]: GEORADIUSBYMEMBER STORE/STOREDIST option: plain usage (0 ms) -[ok]: GEOSEARCHSTORE STORE option: plain usage (0 ms) -[ok]: GEORANGE STOREDIST option: plain usage (1 ms) -[ok]: GEOSEARCHSTORE STOREDIST option: plain usage (0 ms) -[ok]: GEORANGE STOREDIST option: COUNT ASC and DESC (1 ms) -[ok]: GEOSEARCH the box spans -180° or 180° (0 ms) -[ok]: GEOSEARCH with small distance (0 ms) -[ok]: GEOSEARCH fuzzy test - byradius (8988 ms) -[ok]: GEOSEARCH fuzzy test - bybox (7688 ms) -[ok]: GEOSEARCH box edges fuzzy test (28 ms) -[12/124 done]: unit/geo (17 seconds) -Testing unit/replybufsize -=== (replybufsize) Starting server 127.0.0.1:21220 ok -[ok]: verify reply buffer limits (657 ms) -[13/124 done]: unit/replybufsize (1 seconds) -Testing unit/auth -=== (auth external:skip) Starting server 127.0.0.1:21222 ok -[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 127.0.0.1:21224 ok -[ok]: AUTH fails when a wrong password is given (4 ms) -[ok]: Arbitrary command gives an error when AUTH is required (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 (10 ms) -=== (auth_binary_password external:skip) Starting server 127.0.0.1:21226 ok -[ok]: AUTH fails when binary password is wrong (0 ms) -[ok]: AUTH succeeds when binary password is correct (0 ms) -=== (primaryauth) Starting server 127.0.0.1:21228 ok -[ok]: primaryauth test with binary password dualchannel = yes (928 ms) -=== (auth_binary_password external:skip) Starting server 127.0.0.1:21230 ok -[ok]: AUTH fails when binary password is wrong (1 ms) -[ok]: AUTH succeeds when binary password is correct (0 ms) -=== (primaryauth) Starting server 127.0.0.1:21232 ok -[ok]: primaryauth test with binary password dualchannel = no (927 ms) -[14/124 done]: unit/auth (3 seconds) +Waiting for process 3639655 to exit... +Waiting for process 3639655 to exit... +[ok]: config during loading (3030 ms) +=== (introspection) Starting server 127.0.0.1:21186 ok +[ok]: CONFIG REWRITE handles rename-command properly (458 ms) +=== (introspection) Starting server 127.0.0.1:21188 ok +=== (introspection) Starting server 127.0.0.1:21190 ok +[ok]: CONFIG REWRITE handles alias config properly (921 ms) +[8/124 done]: unit/introspection (13 seconds) Testing unit/info-command -=== (info and its relative command) Starting server 127.0.0.1:21234 ok -[ok]: info command with at most one sub command (1 ms) +=== (info and its relative command) Starting server 127.0.0.1:21192 ok +[ok]: info command with at most one sub command (2 ms) [ok]: info command with one sub-section (0 ms) [ok]: info command with multiple sub-sections (1 ms) -[15/124 done]: unit/info-command (0 seconds) -Testing unit/pubsubshard -=== (pubsubshard external:skip) Starting server 127.0.0.1:21236 ok -[ok]: SPUBLISH/SSUBSCRIBE basics (6 ms) -[ok]: SPUBLISH/SSUBSCRIBE with two clients (11 ms) -[ok]: SPUBLISH/SSUBSCRIBE after UNSUBSCRIBE without arguments (6 ms) -[ok]: SSUBSCRIBE to one channel more than once (6 ms) -[ok]: SUNSUBSCRIBE from non-subscribed channels (6 ms) -[ok]: PUBSUB command basics (0 ms) -[ok]: SPUBLISH/SSUBSCRIBE with two clients (11 ms) -[ok]: SPUBLISH/SSUBSCRIBE with PUBLISH/SUBSCRIBE (9 ms) -[ok]: PubSubShard with CLIENT REPLY OFF (90 ms) -=== (pubsubshard external:skip) Starting server 127.0.0.1:21238 ok -=== (pubsubshard external:skip) Starting server 127.0.0.1:21240 ok -[ok]: setup replication for following tests (102 ms) -[ok]: publish message to master and receive on replica (11 ms) -[16/124 done]: unit/pubsubshard (1 seconds) -Testing unit/other -=== (other) Starting server 127.0.0.1:21242 ok -[ok]: Coverage: HELP commands (1 ms) -[ok]: Coverage: MEMORY MALLOC-STATS (1 ms) -[ok]: Coverage: MEMORY PURGE (1 ms) -[ok]: SAVE - make sure there are all the types as values (8 ms) -[ok]: FUZZ stresser with data model binary (331 ms) -[ok]: FUZZ stresser with data model alpha (335 ms) -[ok]: FUZZ stresser with data model compr (310 ms) -=== (external:skip) Starting server 127.0.0.1:21244 ok -[ok]: FLUSHALL should not reset the dirty counter if we disable save (0 ms) -[ok]: FLUSHALL should reset the dirty counter to 0 if we enable save (8 ms) - -Waiting for background save to finish... -Waiting for background save to finish... [ok]: BGSAVE (119 ms) -[ok]: SELECT an out of range DB (1 ms) -[ok]: Check consistency of different data types after a reload (502 ms) - -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: Same dataset digest if saving/reloading as AOF? (193 ms) - -Waiting for background AOF rewrite to finish... [ok]: EXPIRES after a reload (snapshot + append only file rewrite) (163 ms) - -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: EXPIRES after AOF reload (without rewrite) (2122 ms) -[ok]: PIPELINING stresser (also a regression for the old epoll bug) (305 ms) -[ok]: APPEND basics (1 ms) -[ok]: APPEND basics, integer encoded values (1 ms) -[ok]: APPEND fuzzing (207 ms) -[ok]: FLUSHDB (0 ms) -[ok]: Perform a final SAVE to leave a clean DB on disk (8 ms) -[ok]: RESET clears client state (0 ms) -[ok]: RESET clears MONITOR state (6 ms) -[ok]: RESET clears and discards MULTI state (0 ms) -[ok]: RESET clears Pub/Sub state (1 ms) -[ok]: RESET clears authenticated state (0 ms) -[ok]: Subcommand syntax error crash (issue #10070) (1 ms) -[ok]: Extended Redis Compatibility config (0 ms) -=== (other external:skip) Starting server 127.0.0.1:21246 ok - -Waiting for background save to finish... [ok]: Don't rehash if server has child process (296 ms) -=== (other external:skip) Starting server 127.0.0.1:21248 ok -[ok]: Process title set as expected (2 ms) -=== (other external:skip cluster slow) Starting server 127.0.0.1:21250 ok -[ok]: Server can trigger resizing (1777 ms) -[ok]: Server can rewind and trigger smaller slot resizing (701 ms) -=== (other external:skip) Starting server 127.0.0.1:21252 ok -[ok]: Server can resize empty dict (16 ms) -Creating temp file /build/reproducible-path/valkey-8.0.1+dfsg1/1521926 -=== (repl external:skip) Starting server 127.0.0.1:21254 ok -[ok]: test unixsocket options are set correctly (1 ms) -Deleting temp file: /build/reproducible-path/valkey-8.0.1+dfsg1/1521926 -[17/124 done]: unit/other (11 seconds) -Testing unit/networking -=== () Starting server 127.0.0.1:21256 ok -[ok]: CONFIG SET port number (228 ms) -=== () Starting server 127.0.0.1:21259 ok -[ok]: CONFIG SET bind address (229 ms) -=== () Starting server 127.0.0.1:21261 ok -=== () Starting server 127.0.0.1:21263 ok -[ok]: CONFIG SET bind-source-addr (531 ms) -=== (external:skip) Starting server 127.0.0.1:21265 ok -[ok]: Default bind address configuration handling (225 ms) -[ok]: Protected mode works as expected (2 ms) -=== (external:skip) Starting server 127.0.0.1:21267 ok -[18/124 done]: unit/networking (2 seconds) -Testing unit/aofrw -=== (aofrw external:skip logreqres:skip) Starting server 127.0.0.1:21269 ok +[9/124 done]: unit/info-command (1 seconds) +Testing unit/wait +=== (wait network external:skip) Starting server 127.0.0.1:21194 ok +=== () Starting server 127.0.0.1:21196 ok +[ok]: Setup slave (102 ms) +[ok]: WAIT out of range timeout (milliseconds) (0 ms) +[ok]: WAIT should acknowledge 1 additional copy of the data (3 ms) +[ok]: WAIT should not acknowledge 2 additional copies of the data (1048 ms) +[ok]: WAIT should not acknowledge 1 additional copy if slave is blocked (1110 ms) +[ok]: WAIT implicitly blocks on client pause since ACKs aren't sent (1109 ms) +[ok]: WAIT replica multiple clients unblock - reuse last result (33 ms) +=== () Starting server 127.0.0.1:21198 ok +[ok]: Setup a new replica (108 ms) +[ok]: WAIT in script will work (826 ms) +=== () Starting server 127.0.0.1:21200 ok +[ok]: WAITAOF local copy before fsync (99 ms) +[ok]: WAITAOF local copy everysec (1 ms) +[ok]: WAITAOF local copy with appendfsync always (8 ms) +[ok]: WAITAOF local wait and then stop aof (12 ms) +[ok]: WAITAOF local on server with aof disabled (0 ms) +[ok]: WAITAOF local if AOFRW was postponed (300 ms) +=== () Starting server 127.0.0.1:21202 ok +[ok]: WAITAOF on demoted master gets unblocked with an error (7 ms) +[ok]: WAITAOF replica copy before fsync (140 ms) +[ok]: WAITAOF replica copy everysec (667 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... -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite during write load: RDB preamble=yes (10055 ms) +Waiting for background AOF rewrite to finish... [ok]: WAITAOF replica copy everysec with AOFRW (1025 ms) Waiting for background AOF rewrite to finish... Waiting for background AOF rewrite to finish... @@ -1334,624 +1080,774 @@ Waiting for background AOF rewrite to finish... Waiting for background AOF rewrite to finish... Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite during write load: RDB preamble=no (17725 ms) -=== (aofrw external:skip) Starting server 127.0.0.1:21271 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 (114 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 (105 ms) - -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of list with quicklist encoding, string data (125 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 (104 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 of list with quicklist encoding, int data (222 ms) - -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of set with intset encoding, string data (106 ms) - -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of set with hashtable encoding, string data (128 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 (105 ms) - -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of set with hashtable encoding, int data (124 ms) +Waiting for background AOF rewrite to finish... [ok]: WAITAOF replica copy everysec with slow AOFRW (2144 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 (106 ms) - -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of hash with hashtable encoding, string data (137 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 (106 ms) - -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of hash with hashtable encoding, int data (128 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 (105 ms) +Waiting for background AOF rewrite to finish... [ok]: WAITAOF replica copy everysec->always with AOFRW (131 ms) +[ok]: WAITAOF replica copy appendfsync always (68 ms) +[ok]: WAITAOF replica copy if replica is blocked (100 ms) +[ok]: WAITAOF replica multiple clients unblock - reuse last result (58 ms) +[ok]: WAITAOF on promoted replica (1 ms) +[ok]: WAITAOF master that loses a replica and backlog is dropped (2010 ms) +[ok]: WAITAOF master without backlog, wait is released when the replica finishes full-sync (668 ms) +[ok]: WAITAOF master isn't configured to do AOF (1012 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 (198 ms) +Waiting for background AOF rewrite to finish... [ok]: WAITAOF replica isn't configured to do AOF (112 ms) Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of zset with listpack encoding, int data (151 ms) - -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of zset with skiplist encoding, int data (121 ms) +Waiting for background AOF rewrite to finish... [ok]: WAITAOF both local and replica got AOF enabled at runtime (999 ms) +[ok]: WAITAOF master sends PING after last write (1209 ms) +[ok]: WAITAOF master client didn't send any write command (1208 ms) +[ok]: WAITAOF master client didn't send any command (1203 ms) +=== () Starting server 127.0.0.1:21204 ok +=== () Starting server 127.0.0.1:21206 ok +[ok]: WAITAOF when replica switches between masters, fsync: no (3376 ms) +=== () Starting server 127.0.0.1:21208 ok +=== () Starting server 127.0.0.1:21210 ok +[ok]: WAITAOF when replica switches between masters, fsync: everysec (2594 ms) +=== () Starting server 127.0.0.1:21212 ok +=== () Starting server 127.0.0.1:21214 ok +[ok]: WAITAOF when replica switches between masters, fsync: always (1360 ms) +=== (failover external:skip) Starting server 127.0.0.1:21216 ok +=== () Starting server 127.0.0.1:21218 ok +=== () Starting server 127.0.0.1:21220 ok +[ok]: setup replication for following tests (127 ms) Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite functions (167 ms) -[ok]: BGREWRITEAOF is delayed if BGSAVE is in progress (213 ms) -[ok]: BGREWRITEAOF is refused if already in progress (9 ms) -[19/124 done]: unit/aofrw (31 seconds) +Waiting for background AOF rewrite to finish... [ok]: WAIT and WAITAOF replica multiple clients unblock - reuse last result (712 ms) +[10/124 done]: unit/wait (27 seconds) +Testing unit/pubsubshard +=== (pubsubshard external:skip) Starting server 127.0.0.1:21222 ok +[ok]: SPUBLISH/SSUBSCRIBE basics (9 ms) +[ok]: SPUBLISH/SSUBSCRIBE with two clients (13 ms) +[ok]: SPUBLISH/SSUBSCRIBE after UNSUBSCRIBE without arguments (7 ms) +[ok]: SSUBSCRIBE to one channel more than once (7 ms) +[ok]: SUNSUBSCRIBE from non-subscribed channels (7 ms) +[ok]: PUBSUB command basics (0 ms) +[ok]: SPUBLISH/SSUBSCRIBE with two clients (14 ms) +[ok]: SPUBLISH/SSUBSCRIBE with PUBLISH/SUBSCRIBE (17 ms) +[ok]: PubSubShard with CLIENT REPLY OFF (93 ms) +=== (pubsubshard external:skip) Starting server 127.0.0.1:21224 ok +=== (pubsubshard external:skip) Starting server 127.0.0.1:21226 ok +[ok]: setup replication for following tests (102 ms) +[ok]: publish message to master and receive on replica (14 ms) +[11/124 done]: unit/pubsubshard (2 seconds) +Testing unit/printver +=== () Starting server 127.0.0.1:21228 ok +Testing Valkey version 7.2.4 (00000000) +[12/124 done]: unit/printver (0 seconds) Testing unit/multi -=== (multi) Starting server 127.0.0.1:21273 ok +=== (multi) Starting server 127.0.0.1:21230 ok [ok]: MULTI / EXEC basics (1 ms) -[ok]: DISCARD (0 ms) +[ok]: DISCARD (1 ms) [ok]: Nested MULTI are not allowed (1 ms) [ok]: MULTI where commands alter argc/argv (0 ms) -[ok]: WATCH inside MULTI is not allowed (0 ms) -[ok]: EXEC fails if there are errors while queueing commands #1 (0 ms) -[ok]: EXEC fails if there are errors while queueing commands #2 (6 ms) -[ok]: If EXEC aborts, the client MULTI state is cleared (0 ms) -[ok]: EXEC works on WATCHed key not modified (1 ms) -[ok]: EXEC fail on WATCHed key modified (1 key of 1 watched) (0 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 (8 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 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 (0 ms) +[ok]: EXEC fail on WATCHed key modified by SORT with STORE even if the result is empty (1 ms) EXEC fail on lazy expired WATCHed key attempts: 0 -[ok]: EXEC fail on lazy expired WATCHed key (103 ms) -[ok]: WATCH stale keys should not fail EXEC (3 ms) +[ok]: EXEC fail on lazy expired WATCHed key (102 ms) +[ok]: WATCH stale keys should not fail EXEC (4 ms) [ok]: Delete WATCHed stale keys should not fail EXEC (3 ms) [ok]: FLUSHDB while watching stale keys should not fail EXEC (3 ms) [ok]: After successful EXEC key is no longer watched (1 ms) [ok]: After failed EXEC key is no longer watched (1 ms) -[ok]: It is possible to UNWATCH (0 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 (0 ms) -[ok]: FLUSHDB is able to touch the watched keys (1 ms) -[ok]: FLUSHDB does not touch non affected keys (0 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 (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 (0 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 non-existing key replaced with stale key (3 ms) [ok]: SWAPDB does not touch stale key replaced with another stale key (4 ms) -[ok]: WATCH is able to remember the DB a key belongs to (0 ms) +[ok]: WATCH is able to remember the DB a key belongs to (1 ms) [ok]: WATCH will consider touched keys target of EXPIRE (1 ms) [ok]: WATCH will consider touched expired keys (1119 ms) [ok]: DISCARD should clear the WATCH dirty flag on the client (1 ms) -[ok]: DISCARD should UNWATCH all the keys (0 ms) -[ok]: MULTI / EXEC is not propagated (single write command) (37 ms) -[ok]: MULTI / EXEC is propagated correctly (multiple commands) (102 ms) +[ok]: DISCARD should UNWATCH all the keys (1 ms) +[ok]: MULTI / EXEC is not propagated (single write command) (225 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) (101 ms) -[ok]: MULTI / EXEC is propagated correctly (write command, no effect) (101 ms) -[ok]: MULTI / EXEC with REPLICAOF (102 ms) -[ok]: DISCARD should not fail during OOM (6 ms) -[ok]: MULTI and script timeout (413 ms) -[ok]: EXEC and script timeout (415 ms) -[ok]: MULTI-EXEC body and script timeout (415 ms) -[ok]: just EXEC and script timeout (415 ms) -[ok]: exec with write commands and state change (7 ms) -[ok]: exec with read commands and stale replica state change (7 ms) -[ok]: EXEC with only read commands should not be rejected when OOM (5 ms) -[ok]: EXEC with at least one use-memory command should fail (6 ms) +[ok]: MULTI / EXEC is propagated correctly (read-only commands) (102 ms) +[ok]: MULTI / EXEC is propagated correctly (write command, no effect) (102 ms) +[ok]: MULTI / EXEC with REPLICAOF (103 ms) +[ok]: DISCARD should not fail during OOM (9 ms) +[ok]: MULTI and script timeout (420 ms) +[ok]: EXEC and script timeout (420 ms) +[ok]: MULTI-EXEC body and script timeout (425 ms) +[ok]: just EXEC and script timeout (420 ms) +[ok]: exec with write commands and state change (9 ms) +[ok]: exec with read commands and stale replica state change (10 ms) +[ok]: EXEC with only read commands should not be rejected when OOM (8 ms) +[ok]: EXEC with at least one use-memory command should fail (9 ms) [ok]: Blocking commands ignores the timeout (1 ms) -[ok]: MULTI propagation of PUBLISH (75 ms) -[ok]: MULTI propagation of SCRIPT LOAD (102 ms) +[ok]: MULTI propagation of PUBLISH (164 ms) +[ok]: MULTI propagation of SCRIPT LOAD (101 ms) [ok]: MULTI propagation of EVAL (101 ms) [ok]: MULTI propagation of SCRIPT FLUSH (102 ms) -[ok]: MULTI propagation of XREADGROUP (102 ms) -[ok]: MULTI with SAVE (0 ms) +[ok]: MULTI propagation of XREADGROUP (103 ms) +[ok]: MULTI with SAVE (1 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 (207 ms) +Waiting for background AOF rewrite to finish... [ok]: MULTI with BGREWRITEAOF (211 ms) Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: MULTI with config set appendonly (217 ms) +Waiting for background AOF rewrite to finish... [ok]: MULTI with config set appendonly (246 ms) [ok]: MULTI with config error (1 ms) [ok]: Flushall while watching several keys by one client (1 ms) -=== (external:skip) Starting server 127.0.0.1:21275 ok -[ok]: MULTI with FLUSHALL and AOF (5 ms) -[20/124 done]: unit/multi (5 seconds) -Testing unit/shutdown -=== (shutdown external:skip) Starting server 127.0.0.1:21277 ok -[ok]: Temp rdb will be deleted if we use bg_unlink when shutdown (115 ms) -=== (shutdown external:skip) Starting server 127.0.0.1:21279 ok -[ok]: SHUTDOWN ABORT can cancel SIGTERM (12 ms) -[ok]: Temp rdb will be deleted in signal handle (74 ms) -=== (shutdown external:skip) Starting server 127.0.0.1:21281 ok -[ok]: RDB save will be failed in shutdown (3 ms) -[ok]: SHUTDOWN will abort if rdb save failed on signal (91 ms) -[ok]: SHUTDOWN will abort if rdb save failed on shutdown command (5 ms) -[ok]: SHUTDOWN can proceed if shutdown command was with nosave (3 ms) -[ok]: Clean up rdb same named folder (1 ms) -=== (shutdown external:skip) Starting server 127.0.0.1:21283 ok -[ok]: SHUTDOWN SIGTERM will abort if there's an initial AOFRW - default (92 ms) -[21/124 done]: unit/shutdown (1 seconds) +=== (external:skip) Starting server 127.0.0.1:21232 ok +[ok]: MULTI with FLUSHALL and AOF (9 ms) +[13/124 done]: unit/multi (5 seconds) +Testing unit/hyperloglog +=== (hll) Starting server 127.0.0.1:21234 ok +[ok]: HyperLogLog self test passes (384 ms) +[ok]: PFADD without arguments creates an HLL value (0 ms) +[ok]: Approximated cardinality after creation is zero (1 ms) +[ok]: PFADD returns 1 when at least 1 reg was modified (0 ms) +[ok]: PFADD returns 0 when no reg was modified (1 ms) +[ok]: PFADD works with empty string (regression) (0 ms) +[ok]: PFCOUNT returns approximated cardinality of set (1 ms) +[ok]: HyperLogLogs are promote from sparse to dense (524 ms) +[ok]: Change hll-sparse-max-bytes (1 ms) +[ok]: Hyperloglog promote to dense well in different hll-sparse-max-bytes (77 ms) +[ok]: HyperLogLog sparse encoding stress test (1293 ms) +[ok]: Corrupted sparse HyperLogLogs are detected: Additional at tail (1 ms) +[ok]: Corrupted sparse HyperLogLogs are detected: Broken magic (0 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 (41308 ms) +[ok]: PFADD, PFCOUNT, PFMERGE type checking works (1 ms) +[ok]: PFMERGE results on the cardinality of union of sets (1 ms) +[ok]: PFMERGE on missing source keys will create an empty destkey (1 ms) +[ok]: PFMERGE with one empty input key, create an empty destkey (1 ms) +[ok]: PFMERGE with one non-empty input key, dest key is actually one of the source keys (0 ms) +[ok]: PFCOUNT multiple-keys merge returns cardinality of union #1 (7719 ms) +[ok]: PFCOUNT multiple-keys merge returns cardinality of union #2 (3781 ms) +[ok]: PFDEBUG GETREG returns the HyperLogLog raw registers (505 ms) +[ok]: PFADD / PFCOUNT cache invalidation works (2 ms) +[14/124 done]: unit/hyperloglog (56 seconds) +Testing unit/obuf-limits +=== (obuf-limits external:skip logreqres:skip) Starting server 127.0.0.1:21236 ok +[ok]: CONFIG SET client-output-buffer-limit (2 ms) +[ok]: Client output buffer hard limit is enforced (6933 ms) +[ok]: Client output buffer soft limit is enforced if time is overreached (4390 ms) +[ok]: Client output buffer soft limit is not enforced too early and is enforced when no traffic (4927 ms) +[ok]: No response for single command if client output buffer hard limit is enforced (124 ms) +[ok]: No response for multi commands in pipeline if client output buffer limit is enforced (1058 ms) +[ok]: Execute transactions completely even if client output buffer limit is enforced (25 ms) +[ok]: Obuf limit, HRANDFIELD with huge count stopped mid-run (18 ms) +[ok]: Obuf limit, KEYS stopped mid-run (57 ms) +[15/124 done]: unit/obuf-limits (18 seconds) +Testing unit/pause +=== (pause network) Starting server 127.0.0.1:21238 ok +[ok]: Test read commands are not blocked by client pause (7 ms) +[ok]: Test old pause-all takes precedence over new pause-write (less restrictive) (326 ms) +[ok]: Test new pause time is smaller than old one, then old time preserved (107 ms) +[ok]: Test write commands are paused by RO (8 ms) +[ok]: Test special commands are paused by RO (13 ms) +[ok]: Test read/admin multi-execs are not blocked by pause RO (7 ms) +[ok]: Test write multi-execs are blocked by pause RO (7 ms) +[ok]: Test scripts are blocked by pause RO (13 ms) +[ok]: Test RO scripts are not blocked by pause RO (8 ms) +[ok]: Test read-only scripts in multi-exec are not blocked by pause RO (7 ms) +[ok]: Test write scripts in multi-exec are blocked by pause RO (13 ms) +[ok]: Test may-replicate commands are rejected in RO scripts (1 ms) +[ok]: Test multiple clients can be queued up and unblocked (18 ms) +[ok]: Test clients with syntax errors will get responses immediately (1 ms) +[ok]: Test both active and passive expires are skipped during client pause (103 ms) +[ok]: Test that client pause starts at the end of a transaction (7 ms) +=== (needs:repl external:skip) Starting server 127.0.0.1:21240 ok +[ok]: Test when replica paused, offset would not grow (3 ms) +[ok]: Test replica offset would grow after unpause (1 ms) +[16/124 done]: unit/pause (2 seconds) +Testing unit/limits +=== (limits network external:skip) Starting server 127.0.0.1:21242 ok +[ok]: Check if maxclients works refusing connections (968 ms) +[17/124 done]: unit/limits (1 seconds) +Testing unit/pubsub +=== (pubsub network) Starting server 127.0.0.1:21244 ok +[ok]: Pub/Sub PING on RESP2 (1 ms) +[ok]: Pub/Sub PING on RESP3 (1 ms) +[ok]: PUBLISH/SUBSCRIBE basics (8 ms) +[ok]: PUBLISH/SUBSCRIBE with two clients (14 ms) +[ok]: PUBLISH/SUBSCRIBE after UNSUBSCRIBE without arguments (7 ms) +[ok]: SUBSCRIBE to one channel more than once (7 ms) +[ok]: UNSUBSCRIBE and PUNSUBSCRIBE from non-subscribed channels (7 ms) +[ok]: PUBLISH/PSUBSCRIBE basics (9 ms) +[ok]: PUBLISH/PSUBSCRIBE with two clients (15 ms) +[ok]: PUBLISH/PSUBSCRIBE after PUNSUBSCRIBE without arguments (8 ms) +[ok]: PubSub messages with CLIENT REPLY OFF (100 ms) +[ok]: NUMSUB returns numbers, not strings (#1561) (1 ms) +[ok]: NUMPATs returns the number of unique patterns (18 ms) +[ok]: Mix SUBSCRIBE and PSUBSCRIBE (8 ms) +[ok]: Keyspace notifications: we receive keyspace notifications (49 ms) +[ok]: Keyspace notifications: we receive keyevent notifications (52 ms) +[ok]: Keyspace notifications: we can receive both kind of events (7 ms) +[ok]: Keyspace notifications: we are able to mask events (6 ms) +[ok]: Keyspace notifications: general events test (6 ms) +[ok]: Keyspace notifications: list events test (7 ms) +[ok]: Keyspace notifications: set events test (7 ms) +[ok]: Keyspace notifications: zset events test (8 ms) +[ok]: Keyspace notifications: hash events test (7 ms) +[ok]: Keyspace notifications: stream events test (9 ms) +[ok]: Keyspace notifications: expired events (triggered expire) (107 ms) +[ok]: Keyspace notifications: expired events (background expire) (200 ms) +[ok]: Keyspace notifications: evicted events (9 ms) +[ok]: Keyspace notifications: test CONFIG GET/SET of event flags (1 ms) +[ok]: Keyspace notifications: new key test (8 ms) +[ok]: publish to self inside multi (1 ms) +[ok]: publish to self inside script (1 ms) +[ok]: unsubscribe inside multi, and publish to self (2 ms) +[18/124 done]: unit/pubsub (1 seconds) +Testing unit/geo +=== (geo) Starting server 127.0.0.1:21246 ok +[ok]: GEO with wrong type src key (2 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]: GEOADD create (0 ms) +[ok]: GEOADD update (0 ms) +[ok]: GEOADD update with CH option (0 ms) +[ok]: GEOADD update with NX option (0 ms) +[ok]: GEOADD update with XX option (0 ms) +[ok]: GEOADD update with CH NX option (0 ms) +[ok]: GEOADD update with CH XX option (1 ms) +[ok]: GEOADD update with XX NX option will return syntax error (0 ms) +[ok]: GEOADD update with invalid option (0 ms) +[ok]: GEOADD invalid coordinates (0 ms) +[ok]: GEOADD multi add (1 ms) +[ok]: Check geoset values (0 ms) +[ok]: GEORADIUS simple (sorted) (0 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 BYRADIUS and BYBOX cannot exist at the same time (1 ms) +[ok]: GEOSEARCH BYRADIUS and BYBOX one must exist (0 ms) +[ok]: GEOSEARCH with STOREDIST option (0 ms) +[ok]: GEORADIUS withdist (sorted) (0 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 (1 ms) +[ok]: GEORADIUS with COUNT but missing integer argument (0 ms) +[ok]: GEORADIUS with COUNT DESC (0 ms) +[ok]: GEORADIUS HUGE, issue #2767 (0 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 crossing pole search (1 ms) +[ok]: GEOSEARCH FROMMEMBER simple (sorted) (0 ms) +[ok]: GEOSEARCH vs GEORADIUS (1 ms) +[ok]: GEOSEARCH non square, long and narrow (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 (1 ms) +[ok]: GEOPOS with only key as argument (0 ms) +[ok]: GEODIST simple & unit (1 ms) +[ok]: GEODIST missing elements (1 ms) +[ok]: GEORADIUS STORE option: syntax error (0 ms) +[ok]: GEOSEARCHSTORE STORE option: syntax error (0 ms) +[ok]: GEORANGE STORE option: incompatible options (1 ms) +[ok]: GEORANGE STORE option: plain usage (1 ms) +[ok]: GEORADIUSBYMEMBER STORE/STOREDIST option: plain usage (1 ms) +[ok]: GEOSEARCHSTORE STORE option: plain usage (0 ms) +[ok]: GEORANGE STOREDIST option: plain usage (1 ms) +[ok]: GEOSEARCHSTORE STOREDIST option: plain usage (1 ms) +[ok]: GEORANGE STOREDIST option: COUNT ASC and DESC (1 ms) +[ok]: GEOSEARCH the box spans -180° or 180° (0 ms) +[ok]: GEOSEARCH with small distance (0 ms) +[ok]: GEOSEARCH fuzzy test - byradius (12071 ms) +[ok]: GEOSEARCH fuzzy test - bybox (9577 ms) +[ok]: GEOSEARCH box edges fuzzy test (48 ms) +[19/124 done]: unit/geo (22 seconds) Testing unit/scripting -=== (scripting) Starting server 127.0.0.1:21285 ok -[ok]: EVAL - Does Lua interpreter replies to our requests? (1 ms) -[ok]: EVAL - Return _G (0 ms) +=== (scripting) Starting server 127.0.0.1:21248 ok +[ok]: EVAL - Does Lua interpreter replies to our requests? (0 ms) +[ok]: EVAL - Return _G (1 ms) [ok]: EVAL - Return table with a metatable that raise error (0 ms) -[ok]: EVAL - Return table with a metatable that call server (1 ms) -[ok]: EVAL - Lua integer -> Redis protocol type conversion (0 ms) +[ok]: EVAL - 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 (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 (0 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 (0 ms) -[ok]: EVAL - Are the KEYS and ARGV arrays populated correctly? (0 ms) -[ok]: EVAL - is Lua able to call Redis API? (1 ms) -[ok]: EVAL - Redis integer -> Lua type conversion (0 ms) -[ok]: EVAL - Lua number -> Redis integer conversion (0 ms) -[ok]: EVAL - Redis bulk -> Lua type conversion (1 ms) -[ok]: EVAL - Redis multi bulk -> Lua type conversion (0 ms) +[ok]: EVAL - Are the KEYS and ARGV arrays populated correctly? (1 ms) +[ok]: EVAL - is Lua able to call Redis API? (0 ms) +[ok]: EVAL - Redis integer -> Lua type conversion (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 (1 ms) [ok]: EVAL - Redis status reply -> Lua type conversion (0 ms) [ok]: EVAL - Redis error reply -> Lua type conversion (1 ms) [ok]: EVAL - Redis nil bulk reply -> Lua type conversion (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 (1 ms) -[ok]: EVAL - Scripts do not block on blmove 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 (0 ms) -[ok]: EVAL - Scripts do not block on wait (0 ms) -[ok]: EVAL - Scripts do not block on waitaof (1 ms) -[ok]: EVAL - Scripts do not block on XREAD with BLOCK option (0 ms) +[ok]: EVAL - Scripts do not block on wait (1 ms) +[ok]: EVAL - Scripts do not block on waitaof (0 ms) +[ok]: EVAL - Scripts do not block on XREAD with BLOCK option (1 ms) [ok]: EVAL - Scripts do not block on XREADGROUP with BLOCK option (1 ms) -[ok]: EVAL - Scripts do not block on XREAD with BLOCK option -- non empty stream (0 ms) +[ok]: EVAL - Scripts do not block on XREAD with BLOCK option -- non empty stream (1 ms) [ok]: EVAL - Scripts do not block on XREADGROUP with BLOCK option -- non empty stream (1 ms) [ok]: EVAL - Scripts can run non-deterministic commands (0 ms) [ok]: EVAL - No arguments to redis.call/pcall is considered an error (1 ms) [ok]: EVAL - redis.call variant raises a Lua error on Redis cmd error (1) (0 ms) -[ok]: EVAL - redis.call variant raises a Lua error on Redis cmd error (1) (0 ms) +[ok]: EVAL - redis.call variant raises a Lua error on Redis cmd error (1) (1 ms) [ok]: EVAL - redis.call variant raises a Lua error on Redis cmd error (1) (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 (141 ms) +[ok]: EVAL - cmsgpack pack/unpack smoke test (163 ms) [ok]: EVAL - cmsgpack can pack and unpack circular references? (1 ms) -[ok]: EVAL - Numerical sanity check from bitop (0 ms) -[ok]: EVAL - Verify minimal bitop functionality (1 ms) -[ok]: EVAL - Able to parse trailing comments (0 ms) -[ok]: EVAL_RO - Successful case (0 ms) +[ok]: EVAL - Numerical sanity check from bitop (1 ms) +[ok]: EVAL - Verify minimal bitop functionality (0 ms) +[ok]: EVAL - Able to parse trailing comments (1 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() (1001 ms) -[ok]: Prohibit dangerous lua methods in sandbox (0 ms) -[ok]: Verify execution of prohibit dangerous Lua methods will fail (2 ms) +[ok]: redis.sha1hex() implementation (1 ms) +[ok]: Measures elapsed time os.clock() (1002 ms) +[ok]: Prohibit dangerous lua methods in sandbox (1 ms) +[ok]: Verify execution of prohibit dangerous Lua methods will fail (3 ms) [ok]: Globals protection reading an undeclared global variable (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 (576 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 (963 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]: 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]: 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 (0 ms) -[ok]: Script with RESP3 map (1 ms) -[ok]: Script return recursive object (64 ms) -[ok]: Script check unpack with massive arguments (2 ms) -[ok]: Script read key with expiration set (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 (86 ms) +[ok]: Script check unpack with massive arguments (4 ms) +[ok]: Script read key with expiration set (1 ms) [ok]: Script del key with expiration set (0 ms) [ok]: Script ACL check (1 ms) [ok]: Binary code loading failed (1 ms) -[ok]: Try trick global protection 1 (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 3 (1 ms) [ok]: Try trick global protection 4 (0 ms) [ok]: Try trick readonly table on valkey table (1 ms) [ok]: Try trick readonly table on json table (0 ms) -[ok]: Try trick readonly table on cmsgpack table (0 ms) +[ok]: Try trick readonly table on cmsgpack table (1 ms) [ok]: Try trick readonly table on bit table (0 ms) [ok]: Test loadfile are not available (1 ms) [ok]: Test dofile are not available (0 ms) -[ok]: Test print are not available (0 ms) -=== (scripting) Starting server 127.0.0.1:21287 ok -[ok]: Timedout read-only scripts can be killed by SCRIPT KILL (409 ms) -[ok]: Timedout read-only scripts can be killed by SCRIPT KILL even when use pcall (40 ms) -[ok]: Timedout script does not cause a false dead client (39 ms) -[ok]: Timedout script link is still usable after Lua returns (43 ms) -[ok]: Timedout scripts and unblocked command (313 ms) -[ok]: Timedout scripts that modified data can't be killed by SCRIPT KILL (207 ms) -[ok]: SHUTDOWN NOSAVE can kill a timedout script anyway (8 ms) -=== (scripting repl needs:debug external:skip) Starting server 127.0.0.1:21289 ok -=== () Starting server 127.0.0.1:21291 ok +[ok]: Test print are not available (1 ms) +=== (scripting) Starting server 127.0.0.1:21250 ok +[ok]: Timedout read-only scripts can be killed by SCRIPT KILL (411 ms) +[ok]: Timedout read-only scripts can be killed by SCRIPT KILL even when use pcall (59 ms) +[ok]: Timedout script does not cause a false dead client (60 ms) +[ok]: Timedout script link is still usable after Lua returns (82 ms) +[ok]: Timedout scripts and unblocked command (336 ms) +[ok]: Timedout scripts that modified data can't be killed by SCRIPT KILL (210 ms) +[ok]: SHUTDOWN NOSAVE can kill a timedout script anyway (27 ms) +=== (scripting repl needs:debug external:skip) Starting server 127.0.0.1:21252 ok +=== () Starting server 127.0.0.1:21254 ok [ok]: Before the replica connects we issue two EVAL commands (1 ms) [ok]: Connect a replica to the master instance (103 ms) -[ok]: Replication of script multiple pushes to list with BLPOP (6 ms) +[ok]: Replication of script multiple pushes to list with BLPOP (10 ms) [ok]: Lua scripts using SELECT are replicated correctly (1 ms) -=== (scripting repl external:skip) Starting server 127.0.0.1:21293 ok -=== () Starting server 127.0.0.1:21295 ok -[ok]: Connect a replica to the master instance (103 ms) +=== (scripting repl external:skip) Starting server 127.0.0.1:21256 ok +=== () Starting server 127.0.0.1:21258 ok +[ok]: Connect a replica to the master instance (102 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 (1 ms) +[ok]: Redis.set_repl() don't accept invalid values (1 ms) +[ok]: Test selective replication of certain commands from Lua (2 ms) [ok]: PRNG is seeded randomly for command replication (1 ms) [ok]: Using side effects is not a problem with command replication (1 ms) -=== (scripting needs:debug) Starting server 127.0.0.1:21297 ok +=== (scripting needs:debug) Starting server 127.0.0.1:21260 ok [ok]: test RESP2/2 big number protocol parsing (0 ms) [ok]: test RESP2/2 malformed big number protocol parsing (0 ms) [ok]: test RESP2/2 map protocol parsing (1 ms) [ok]: test RESP2/2 set protocol parsing (0 ms) [ok]: test RESP2/2 double protocol parsing (0 ms) -[ok]: test RESP2/2 null protocol parsing (0 ms) +[ok]: test RESP2/2 null protocol parsing (1 ms) [ok]: test RESP2/2 verbatim protocol parsing (0 ms) -[ok]: test RESP2/2 true protocol parsing (0 ms) +[ok]: test RESP2/2 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 (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 (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 verbatim protocol parsing (1 ms) [ok]: test RESP2/3 true protocol parsing (0 ms) [ok]: test RESP2/3 false protocol parsing (0 ms) [ok]: test RESP3/2 big number protocol parsing (0 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 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 double protocol parsing (0 ms) [ok]: test RESP3/2 null protocol parsing (0 ms) [ok]: test RESP3/2 verbatim protocol parsing (0 ms) [ok]: test RESP3/2 true protocol parsing (0 ms) [ok]: test RESP3/2 false protocol parsing (0 ms) [ok]: test RESP3/3 big number protocol parsing (0 ms) -[ok]: test RESP3/3 malformed big number protocol parsing (0 ms) +[ok]: test RESP3/3 malformed big number protocol parsing (1 ms) [ok]: test RESP3/3 map protocol parsing (0 ms) -[ok]: test RESP3/3 set protocol parsing (0 ms) -[ok]: test RESP3/3 double protocol parsing (1 ms) -[ok]: test RESP3/3 null 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 (1 ms) [ok]: test RESP3/3 verbatim protocol parsing (0 ms) [ok]: test RESP3/3 true protocol parsing (0 ms) [ok]: test RESP3/3 false protocol parsing (0 ms) [ok]: test resp3 attribute protocol parsing (0 ms) -[ok]: Script block the time during execution (10 ms) -[ok]: Script delete the expired key (2 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 (82 ms) [ok]: RESTORE expired keys with expiration time (11 ms) -=== (scripting) Starting server 127.0.0.1:21299 ok -[ok]: EVAL - Does Lua interpreter replies to our requests? (1 ms) -[ok]: EVAL - Return _G (0 ms) +=== (scripting) Starting server 127.0.0.1:21262 ok +[ok]: EVAL - Does Lua interpreter replies to our requests? (0 ms) +[ok]: EVAL - Return _G (1 ms) [ok]: EVAL - Return table with a metatable that raise error (0 ms) -[ok]: EVAL - Return table with a metatable that call server (0 ms) -[ok]: EVAL - Lua integer -> Redis protocol type conversion (1 ms) -[ok]: EVAL - Lua string -> Redis protocol type conversion (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 (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 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 (0 ms) -[ok]: EVAL - Are the KEYS and ARGV arrays populated correctly? (0 ms) +[ok]: EVAL - Are the KEYS and ARGV arrays populated correctly? (1 ms) [ok]: EVAL - is Lua able to call Redis API? (0 ms) [ok]: EVAL - Redis integer -> Lua type conversion (1 ms) -[ok]: EVAL - Lua number -> Redis integer 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 (0 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? (0 ms) -[ok]: EVAL - SELECT inside Lua should not affect the caller (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? (1 ms) +[ok]: EVAL - SELECT inside Lua should not affect the caller (1 ms) [ok]: EVAL - Scripts do not block on blpop command (0 ms) [ok]: EVAL - Scripts do not block on brpop 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 (0 ms) +[ok]: EVAL - Scripts do not block on brpoplpush command (1 ms) +[ok]: EVAL - Scripts do not block on blmove command (1 ms) +[ok]: EVAL - Scripts do not block on bzpopmin command (1 ms) [ok]: EVAL - Scripts do not block on bzpopmax command (0 ms) -[ok]: EVAL - Scripts do not block on wait (0 ms) +[ok]: EVAL - Scripts do not block on 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 XREAD with BLOCK option -- non empty stream (1 ms) [ok]: EVAL - Scripts do not block on XREADGROUP with BLOCK option -- non empty stream (1 ms) -[ok]: EVAL - Scripts can run non-deterministic commands (0 ms) +[ok]: EVAL - 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) (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 - cmsgpack can pack double? (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 (151 ms) +[ok]: EVAL - cmsgpack pack/unpack smoke test (161 ms) [ok]: EVAL - cmsgpack can pack and unpack circular references? (0 ms) [ok]: EVAL - Numerical sanity check from bitop (0 ms) [ok]: EVAL - Verify minimal bitop functionality (1 ms) [ok]: EVAL - Able to parse trailing comments (0 ms) [ok]: EVAL_RO - Successful case (0 ms) [ok]: EVAL_RO - Cannot run write commands (1 ms) -[ok]: redis.sha1hex() implementation (0 ms) +[ok]: redis.sha1hex() implementation (1 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]: Verify execution of prohibit dangerous Lua methods will fail (6 ms) [ok]: Globals protection reading an undeclared global variable (0 ms) -[ok]: Globals protection setting an undeclared global* (0 ms) +[ok]: Globals protection setting an undeclared global* (1 ms) [ok]: lua bit.tohex bug (1 ms) -[ok]: Test an example script DECR_IF_GT (1 ms) -[ok]: EVAL does not leak in the Lua stack (533 ms) -[ok]: Call Redis command with many args from Lua (issue #1764) (1 ms) -[ok]: Number conversion precision test (issue #1118) (0 ms) +[ok]: Test an example script DECR_IF_GT (3 ms) +[ok]: EVAL does not leak in the Lua stack (1095 ms) +[ok]: Call Redis command with many args from Lua (issue #1764) (2 ms) +[ok]: Number conversion precision test (issue #1118) (1 ms) [ok]: String containing number precision test (regression of issue #1118) (0 ms) -[ok]: Verify negative arg count is error instead of crash (issue #1842) (0 ms) -[ok]: Scripts can handle commands with incorrect arity (0 ms) +[ok]: Verify negative arg count is error instead of crash (issue #1842) (1 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 (0 ms) -[ok]: Script with RESP3 map (1 ms) -[ok]: Script return recursive object (60 ms) -[ok]: Script check unpack with massive arguments (2 ms) -[ok]: Script read key with expiration set (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 (1 ms) +[ok]: Script with RESP3 map (2 ms) +[ok]: Script return recursive object (105 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 ACL check (0 ms) -[ok]: Binary code loading failed (0 ms) +[ok]: Script ACL check (2 ms) +[ok]: Binary code loading failed (1 ms) [ok]: Try trick global protection 1 (0 ms) -[ok]: Try trick global protection 2 (0 ms) +[ok]: Try trick global protection 2 (1 ms) [ok]: Try trick global protection 3 (0 ms) [ok]: Try trick global protection 4 (1 ms) [ok]: Try trick readonly table on valkey table (0 ms) -[ok]: Try trick readonly table on json table (0 ms) +[ok]: Try trick readonly table on json table (1 ms) [ok]: Try trick readonly table on cmsgpack table (0 ms) -[ok]: Try trick readonly table on bit table (1 ms) +[ok]: 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 (0 ms) -=== (scripting) Starting server 127.0.0.1:21301 ok -[ok]: Timedout read-only scripts can be killed by SCRIPT KILL (410 ms) -[ok]: Timedout read-only scripts can be killed by SCRIPT KILL even when use pcall (41 ms) -[ok]: Timedout script does not cause a false dead client (40 ms) -[ok]: Timedout script link is still usable after Lua returns (44 ms) -[ok]: Timedout scripts and unblocked command (331 ms) -[ok]: Timedout scripts that modified data can't be killed by SCRIPT KILL (209 ms) -[ok]: SHUTDOWN NOSAVE can kill a timedout script anyway (8 ms) -=== (scripting repl needs:debug external:skip) Starting server 127.0.0.1:21303 ok -=== () Starting server 127.0.0.1:21305 ok -[ok]: Before the replica connects we issue two EVAL commands (0 ms) -[ok]: Connect a replica to the master instance (103 ms) -[ok]: Replication of script multiple pushes to list with BLPOP (6 ms) -[ok]: Lua scripts using SELECT are replicated correctly (0 ms) -=== (scripting repl external:skip) Starting server 127.0.0.1:21307 ok -=== () Starting server 127.0.0.1:21309 ok -[ok]: Connect a replica to the master instance (102 ms) -[ok]: Redis.replicate_commands() can be issued anywhere now (0 ms) +=== (scripting) Starting server 127.0.0.1:21264 ok +[ok]: Timedout read-only scripts can be killed by SCRIPT KILL (414 ms) +[ok]: Timedout read-only scripts can be killed by SCRIPT KILL even when use pcall (49 ms) +[ok]: Timedout script does not cause a false dead client (63 ms) +[ok]: Timedout script link is still usable after Lua returns (94 ms) +[ok]: Timedout scripts and unblocked command (362 ms) +[ok]: Timedout scripts that modified data can't be killed by SCRIPT KILL (212 ms) +[ok]: SHUTDOWN NOSAVE can kill a timedout script anyway (10 ms) +=== (scripting repl needs:debug external:skip) Starting server 127.0.0.1:21266 ok +=== () Starting server 127.0.0.1:21268 ok +[ok]: Before the replica connects we issue two EVAL commands (1 ms) +[ok]: Connect a replica to the master instance (105 ms) +[ok]: Replication of script multiple pushes to list with BLPOP (9 ms) +[ok]: Lua scripts using SELECT are replicated correctly (1 ms) +=== (scripting repl external:skip) Starting server 127.0.0.1:21270 ok +=== () Starting server 127.0.0.1:21272 ok +[ok]: Connect a replica to the master instance (163 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 (1 ms) -[ok]: PRNG is seeded randomly for command replication (0 ms) +[ok]: Test selective replication of certain commands from Lua (2 ms) +[ok]: PRNG is seeded randomly for command replication (1 ms) [ok]: Using side effects is not a problem with command replication (1 ms) -=== (scripting needs:debug) Starting server 127.0.0.1:21311 ok -[ok]: test RESP2/2 big number protocol parsing (1 ms) +=== (scripting needs:debug) Starting server 127.0.0.1:21274 ok +[ok]: test RESP2/2 big number protocol parsing (0 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 (0 ms) -[ok]: test RESP2/2 double protocol parsing (1 ms) -[ok]: test RESP2/2 null protocol parsing (0 ms) +[ok]: test RESP2/2 double protocol parsing (0 ms) +[ok]: test RESP2/2 null protocol parsing (1 ms) [ok]: test RESP2/2 verbatim protocol parsing (0 ms) [ok]: test RESP2/2 true protocol parsing (0 ms) -[ok]: test RESP2/2 false protocol parsing (0 ms) -[ok]: test RESP2/3 big number protocol parsing (0 ms) +[ok]: test RESP2/2 false protocol parsing (1 ms) +[ok]: test RESP2/3 big number protocol parsing (1 ms) [ok]: test RESP2/3 malformed big number protocol parsing (0 ms) [ok]: test RESP2/3 map protocol parsing (0 ms) [ok]: test RESP2/3 set protocol parsing (0 ms) [ok]: test RESP2/3 double protocol parsing (0 ms) -[ok]: test RESP2/3 null protocol parsing (0 ms) +[ok]: test RESP2/3 null protocol parsing (1 ms) [ok]: test RESP2/3 verbatim protocol parsing (0 ms) -[ok]: test RESP2/3 true protocol parsing (0 ms) +[ok]: test RESP2/3 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 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 (1 ms) -[ok]: test RESP3/2 null protocol parsing (0 ms) +[ok]: test RESP3/2 double protocol parsing (0 ms) +[ok]: test RESP3/2 null protocol parsing (1 ms) [ok]: test RESP3/2 verbatim protocol parsing (0 ms) [ok]: test RESP3/2 true protocol parsing (0 ms) -[ok]: test RESP3/2 false protocol parsing (0 ms) -[ok]: test RESP3/3 big number protocol parsing (0 ms) +[ok]: test RESP3/2 false protocol parsing (1 ms) +[ok]: test RESP3/3 big number protocol parsing (1 ms) [ok]: test RESP3/3 malformed big number protocol parsing (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 (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 (1 ms) [ok]: test RESP3/3 verbatim protocol parsing (0 ms) [ok]: test RESP3/3 true protocol parsing (0 ms) -[ok]: test RESP3/3 false protocol parsing (0 ms) +[ok]: test RESP3/3 false protocol parsing (1 ms) [ok]: test resp3 attribute protocol parsing (0 ms) -[ok]: Script block the time during execution (10 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 (82 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 127.0.0.1:21313 ok +=== (scripting) Starting server 127.0.0.1:21276 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 (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 true boolean -> Redis protocol type conversion (0 ms) +[ok]: EVAL - Lua true boolean -> Redis protocol type conversion (1 ms) [ok]: EVAL - Lua false boolean -> Redis protocol type conversion (0 ms) [ok]: EVAL - Lua status code reply -> Redis protocol type conversion (0 ms) -[ok]: EVAL - Lua error reply -> Redis protocol type conversion (0 ms) +[ok]: EVAL - Lua error reply -> Redis protocol type conversion (1 ms) [ok]: EVAL - Lua table -> Redis protocol type conversion (0 ms) [ok]: EVAL - Are the KEYS and ARGV arrays populated correctly? (0 ms) -[ok]: EVAL - is Lua able to call Redis API? (1 ms) -[ok]: EVAL - Redis integer -> Lua type conversion (0 ms) +[ok]: EVAL - is Lua able to call Redis API? (0 ms) +[ok]: EVAL - Redis integer -> Lua type conversion (1 ms) [ok]: EVAL - Lua number -> Redis integer conversion (0 ms) -[ok]: EVAL - Redis bulk -> Lua type conversion (0 ms) +[ok]: EVAL - Redis bulk -> Lua type conversion (1 ms) [ok]: EVAL - Redis multi bulk -> Lua type conversion (1 ms) [ok]: EVAL - Redis status reply -> Lua type conversion (0 ms) -[ok]: EVAL - Redis error reply -> Lua type conversion (0 ms) +[ok]: EVAL - Redis error reply -> Lua type conversion (1 ms) [ok]: EVAL - Redis nil bulk reply -> Lua type conversion (0 ms) [ok]: EVAL - Is the Lua client using the currently selected DB? (0 ms) [ok]: EVAL - SELECT inside Lua should not affect the caller (1 ms) -[ok]: EVAL - Scripts do not block on blpop command (0 ms) -[ok]: EVAL - Scripts do not block on brpop command (0 ms) -[ok]: EVAL - Scripts do not block on brpoplpush command (0 ms) +[ok]: EVAL - Scripts do not block on blpop command (1 ms) +[ok]: EVAL - Scripts do not block on brpop command (1 ms) +[ok]: EVAL - Scripts do not block on brpoplpush command (1 ms) [ok]: EVAL - Scripts do not block on blmove command (0 ms) -[ok]: EVAL - Scripts do not block on bzpopmin command (0 ms) -[ok]: EVAL - Scripts do not block on bzpopmax command (0 ms) -[ok]: EVAL - Scripts do not block on wait (0 ms) -[ok]: EVAL - Scripts do not block on waitaof (1 ms) -[ok]: EVAL - Scripts do not block on XREAD with BLOCK option (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 (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 XREAD with BLOCK option -- non empty stream (1 ms) [ok]: EVAL - Scripts do not block on XREADGROUP with BLOCK option -- non empty stream (1 ms) [ok]: EVAL - Scripts can run non-deterministic commands (0 ms) [ok]: EVAL - No arguments to redis.call/pcall is considered an error (0 ms) [ok]: EVAL - redis.call variant raises a Lua error on Redis cmd error (1) (0 ms) [ok]: EVAL - redis.call variant raises a Lua error on Redis cmd error (1) (0 ms) -[ok]: EVAL - redis.call variant raises a Lua error on Redis cmd error (1) (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 (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 (148 ms) +[ok]: EVAL - cmsgpack pack/unpack smoke test (188 ms) [ok]: EVAL - cmsgpack can pack and unpack circular references? (1 ms) [ok]: EVAL - Numerical sanity check from bitop (1 ms) [ok]: EVAL - Verify minimal bitop functionality (0 ms) [ok]: EVAL - Able to parse trailing comments (0 ms) -[ok]: EVAL_RO - Successful case (0 ms) -[ok]: EVAL_RO - Cannot run write commands (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() (1001 ms) [ok]: Prohibit dangerous lua methods in sandbox (1 ms) -[ok]: Verify execution of prohibit dangerous Lua methods will fail (1 ms) -[ok]: Globals protection reading an undeclared global variable (0 ms) +[ok]: Verify execution of prohibit dangerous Lua methods will fail (2 ms) +[ok]: Globals protection reading an undeclared global variable (1 ms) [ok]: Globals protection setting an undeclared global* (0 ms) -[ok]: lua bit.tohex bug (1 ms) -[ok]: Test an example script DECR_IF_GT (0 ms) -[ok]: EVAL does not leak in the Lua stack (281 ms) +[ok]: lua bit.tohex bug (0 ms) +[ok]: Test an example script DECR_IF_GT (1 ms) +[ok]: EVAL does not leak in the Lua stack (394 ms) [ok]: Call Redis command with many args from Lua (issue #1764) (1 ms) [ok]: Number conversion precision test (issue #1118) (0 ms) -[ok]: String containing number precision test (regression of issue #1118) (0 ms) +[ok]: 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) (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 (1 ms) +[ok]: CLUSTER RESET can not be invoke from within a script (0 ms) [ok]: Script with RESP3 map (1 ms) -[ok]: Script return recursive object (66 ms) -[ok]: Script check unpack with massive arguments (2 ms) +[ok]: Script return recursive object (85 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 (0 ms) -[ok]: Script ACL check (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 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 (0 ms) -[ok]: Try trick readonly table on valkey table (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]: Test loadfile are not available (0 ms) -[ok]: Test dofile are not available (1 ms) +[ok]: Test dofile are not available (0 ms) [ok]: Test print are not available (0 ms) -=== (scripting) Starting server 127.0.0.1:21315 ok -[ok]: Timedout read-only scripts can be killed by SCRIPT KILL (410 ms) -[ok]: Timedout read-only scripts can be killed by SCRIPT KILL even when use pcall (43 ms) -[ok]: Timedout script does not cause a false dead client (42 ms) -[ok]: Timedout script link is still usable after Lua returns (43 ms) -[ok]: Timedout scripts and unblocked command (336 ms) -[ok]: Timedout scripts that modified data can't be killed by SCRIPT KILL (208 ms) -[ok]: SHUTDOWN NOSAVE can kill a timedout script anyway (8 ms) -=== (scripting repl needs:debug external:skip) Starting server 127.0.0.1:21317 ok -=== () Starting server 127.0.0.1:21319 ok +=== (scripting) Starting server 127.0.0.1:21278 ok +[ok]: Timedout read-only scripts can be killed by SCRIPT KILL (411 ms) +[ok]: Timedout read-only scripts can be killed by SCRIPT KILL even when use pcall (51 ms) +[ok]: Timedout script does not cause a false dead client (53 ms) +[ok]: Timedout script link is still usable after Lua returns (70 ms) +[ok]: Timedout scripts and unblocked command (403 ms) +[ok]: Timedout scripts that modified data can't be killed by SCRIPT KILL (212 ms) +[ok]: SHUTDOWN NOSAVE can kill a timedout script anyway (159 ms) +=== (scripting repl needs:debug external:skip) Starting server 127.0.0.1:21280 ok +=== () Starting server 127.0.0.1:21282 ok [ok]: Before the replica connects we issue two EVAL commands (0 ms) [ok]: Connect a replica to the master instance (103 ms) -[ok]: Replication of script multiple pushes to list with BLPOP (6 ms) +[ok]: Replication of script multiple pushes to list with BLPOP (8 ms) [ok]: Lua scripts using SELECT are replicated correctly (1 ms) -=== (scripting repl external:skip) Starting server 127.0.0.1:21321 ok -=== () Starting server 127.0.0.1:21323 ok -[ok]: Connect a replica to the master instance (102 ms) +=== (scripting repl external:skip) Starting server 127.0.0.1:21284 ok +=== () Starting server 127.0.0.1:21286 ok +[ok]: Connect a replica to the master instance (103 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]: Redis.set_repl() don't accept invalid values (1 ms) [ok]: Test selective replication of certain commands from Lua (1 ms) [ok]: PRNG is seeded randomly for command replication (0 ms) [ok]: Using side effects is not a problem with command replication (1 ms) -=== (scripting needs:debug) Starting server 127.0.0.1:21325 ok +=== (scripting needs:debug) Starting server 127.0.0.1:21288 ok [ok]: test RESP2/2 big number protocol parsing (0 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 set protocol parsing (0 ms) [ok]: test RESP2/2 double protocol parsing (0 ms) [ok]: test RESP2/2 null protocol parsing (0 ms) [ok]: test RESP2/2 verbatim protocol parsing (0 ms) [ok]: test RESP2/2 true protocol parsing (0 ms) [ok]: test RESP2/2 false protocol parsing (0 ms) [ok]: test RESP2/3 big number protocol parsing (0 ms) -[ok]: test RESP2/3 malformed big number protocol parsing (0 ms) +[ok]: test RESP2/3 malformed big number protocol parsing (1 ms) [ok]: test RESP2/3 map protocol parsing (0 ms) [ok]: test RESP2/3 set protocol parsing (0 ms) -[ok]: test RESP2/3 double protocol parsing (0 ms) +[ok]: test RESP2/3 double protocol parsing (1 ms) [ok]: test RESP2/3 null protocol parsing (0 ms) [ok]: test RESP2/3 verbatim protocol parsing (1 ms) [ok]: test RESP2/3 true protocol parsing (0 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 (0 ms) -[ok]: test RESP3/2 map protocol parsing (1 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 (0 ms) +[ok]: test RESP3/2 double protocol parsing (1 ms) [ok]: test RESP3/2 null protocol parsing (0 ms) [ok]: test RESP3/2 verbatim protocol parsing (0 ms) -[ok]: test RESP3/2 true protocol parsing (0 ms) +[ok]: test RESP3/2 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 (0 ms) -[ok]: test RESP3/3 set protocol parsing (0 ms) +[ok]: test RESP3/3 set protocol parsing (1 ms) [ok]: test RESP3/3 double protocol parsing (0 ms) [ok]: test RESP3/3 null protocol parsing (0 ms) -[ok]: test RESP3/3 verbatim protocol parsing (1 ms) -[ok]: test RESP3/3 true protocol parsing (0 ms) +[ok]: test RESP3/3 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]: Script block the time during execution (11 ms) -[ok]: Script delete the expired key (2 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 (82 ms) [ok]: RESTORE expired keys with expiration time (11 ms) -=== (scripting) Starting server 127.0.0.1:21327 ok -[ok]: Script - disallow write on OOM (1 ms) -[ok]: EVAL - Does Lua interpreter replies to our requests? (0 ms) +=== (scripting) Starting server 127.0.0.1:21290 ok +[ok]: Script - disallow write on OOM (0 ms) +[ok]: EVAL - Does Lua interpreter replies to our requests? (1 ms) [ok]: EVAL - Return _G (0 ms) [ok]: EVAL - Return table with a metatable that raise error (0 ms) [ok]: EVAL - Return table with a metatable that call server (0 ms) -[ok]: EVAL - Lua integer -> Redis protocol type conversion (0 ms) -[ok]: EVAL - Lua string -> Redis protocol type conversion (1 ms) +[ok]: EVAL - Lua 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 (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) @@ -1965,134 +1861,134 @@ [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 (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 (0 ms) +[ok]: EVAL - Redis multi bulk -> Lua type conversion (1 ms) [ok]: EVAL - Redis status reply -> Lua type conversion (0 ms) -[ok]: EVAL - Redis error reply -> Lua type conversion (1 ms) -[ok]: EVAL - Redis nil bulk reply -> Lua type conversion (0 ms) +[ok]: EVAL - Redis error reply -> Lua type conversion (0 ms) +[ok]: EVAL - Redis nil bulk reply -> Lua type conversion (1 ms) [ok]: EVAL - Is the Lua client using the currently selected DB? (0 ms) -[ok]: EVAL - SELECT inside Lua should not affect the caller (0 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 - SELECT inside Lua should not affect the caller (1 ms) +[ok]: EVAL - Scripts do not block on blpop command (0 ms) +[ok]: EVAL - Scripts do not block on brpop 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 blmove command (1 ms) [ok]: EVAL - Scripts do not block on bzpopmin command (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 (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 (0 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) (0 ms) [ok]: EVAL - redis.call variant raises a Lua error on Redis cmd error (1) (0 ms) -[ok]: EVAL - redis.call variant raises a Lua error on Redis cmd error (1) (1 ms) [ignore]: EVAL - JSON string encoding a string larger than 2GB: large memory flag not provided -[ok]: EVAL - JSON numeric decoding (0 ms) +[ok]: EVAL - JSON numeric decoding (1 ms) [ok]: EVAL - JSON string decoding (0 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 (127 ms) +[ok]: EVAL - cmsgpack pack/unpack smoke test (189 ms) [ok]: EVAL - cmsgpack can pack and unpack circular references? (0 ms) [ok]: EVAL - Numerical sanity check from bitop (1 ms) [ok]: EVAL - Verify minimal bitop functionality (0 ms) [ok]: EVAL - Able to parse trailing comments (0 ms) -[ok]: EVAL_RO - Successful case (0 ms) +[ok]: EVAL_RO - Successful case (1 ms) [ok]: EVAL_RO - Cannot run write commands (0 ms) -[ok]: SCRIPTING FLUSH - is able to clear the scripts cache? (6 ms) -[ok]: SCRIPTING FLUSH ASYNC (4 ms) +[ok]: SCRIPTING FLUSH - is able to clear the scripts cache? (7 ms) +[ok]: SCRIPTING FLUSH ASYNC (14 ms) [ok]: SCRIPT EXISTS - can detect already defined scripts? (1 ms) [ok]: SCRIPT LOAD - is able to register scripts in the scripting cache (0 ms) -[ok]: SCRIPT SHOW - is able to dump scripts from the scripting cache (0 ms) -[ok]: SCRIPT SHOW - wrong sha1 length or invalid sha1 char return noscript error (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 (0 ms) -[ok]: SORT is normally not alpha re-ordered for the scripting engine (0 ms) +[ok]: SORT is normally not alpha re-ordered for the scripting engine (1 ms) [ok]: SORT BY output gets ordered for scripting (1 ms) -[ok]: SORT BY with GET gets ordered for scripting (0 ms) +[ok]: SORT BY with GET gets ordered for scripting (1 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 (1 ms) [ok]: Globals protection reading an undeclared global variable (0 ms) -[ok]: Globals protection setting an undeclared global* (1 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 (0 ms) +[ok]: Test an example script DECR_IF_GT (1 ms) [ok]: random numbers are random now (0 ms) [ok]: Scripting engine PRNG can be seeded correctly (1 ms) -[ok]: EVAL does not leak in the Lua stack (238 ms) -[ok]: SPOP: We can call scripts rewriting client->argv from Lua (63 ms) -[ok]: MGET: mget shouldn't be propagated in Lua (101 ms) -[ok]: EXPIRE: We can call scripts rewriting client->argv from Lua (102 ms) -=== (scripting) Starting server 127.0.0.1:21329 ok -[ok]: INCRBYFLOAT: We can call scripts expanding client->argv from Lua (329 ms) -[ok]: Call Redis command with many args from Lua (issue #1764) (1 ms) +[ok]: EVAL does not leak in the Lua stack (330 ms) +[ok]: SPOP: We can call scripts rewriting client->argv from Lua (70 ms) +[ok]: MGET: mget shouldn't be propagated in Lua (99 ms) +[ok]: EXPIRE: We can call scripts rewriting client->argv from Lua (101 ms) +=== (scripting) Starting server 127.0.0.1:21292 ok +[ok]: INCRBYFLOAT: We can call scripts expanding client->argv from Lua (431 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]: 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 (0 ms) -[ok]: CLUSTER RESET can not be invoke from within a script (0 ms) -[ok]: Script with RESP3 map (0 ms) -[ok]: Script return recursive object (59 ms) +[ok]: CLUSTER RESET can not be invoke from within a script (1 ms) +[ok]: Script with RESP3 map (1 ms) +[ok]: Script return recursive object (86 ms) [ok]: Script check unpack with massive arguments (3 ms) -[ok]: Script read key with expiration set (0 ms) +[ok]: Script read key with expiration set (1 ms) [ok]: Script del key with expiration set (0 ms) [ok]: Script ACL check (1 ms) [ok]: Binary code loading failed (0 ms) [ok]: Try trick global protection 1 (0 ms) -[ok]: Try trick global protection 2 (1 ms) +[ok]: Try trick global protection 2 (0 ms) [ok]: Try trick global protection 3 (0 ms) -[ok]: Try trick global protection 4 (0 ms) +[ok]: Try trick global protection 4 (1 ms) [ok]: Try trick readonly table on valkey table (0 ms) [ok]: Try trick readonly table on json table (0 ms) -[ok]: Try trick readonly table on cmsgpack table (0 ms) +[ok]: Try trick readonly table on cmsgpack table (1 ms) [ok]: Try trick readonly table on bit table (0 ms) [ok]: Test loadfile are not available (1 ms) [ok]: Test dofile are not available (0 ms) -[ok]: Test print are not available (0 ms) -=== (scripting) Starting server 127.0.0.1:21331 ok -[ok]: Timedout read-only scripts can be killed by SCRIPT KILL (409 ms) -[ok]: Timedout read-only scripts can be killed by SCRIPT KILL even when use pcall (41 ms) -[ok]: Timedout script does not cause a false dead client (42 ms) -[ok]: Timedout script link is still usable after Lua returns (45 ms) -[ok]: Timedout scripts and unblocked command (335 ms) -[ok]: Timedout scripts that modified data can't be killed by SCRIPT KILL (208 ms) -[ok]: SHUTDOWN NOSAVE can kill a timedout script anyway (14 ms) -=== (scripting repl needs:debug external:skip) Starting server 127.0.0.1:21333 ok -=== () Starting server 127.0.0.1:21335 ok +[ok]: Test print are not available (1 ms) +=== (scripting) Starting server 127.0.0.1:21294 ok +[ok]: Timedout read-only scripts can be killed by SCRIPT KILL (411 ms) +[ok]: Timedout read-only scripts can be killed by SCRIPT KILL even when use pcall (67 ms) +[ok]: Timedout script does not cause a false dead client (56 ms) +[ok]: Timedout script link is still usable after Lua returns (82 ms) +[ok]: Timedout scripts and unblocked command (635 ms) +[ok]: Timedout scripts that modified data can't be killed by SCRIPT KILL (209 ms) +[ok]: SHUTDOWN NOSAVE can kill a timedout script anyway (158 ms) +=== (scripting repl needs:debug external:skip) Starting server 127.0.0.1:21296 ok +=== () Starting server 127.0.0.1:21298 ok [ok]: Before the replica connects we issue two EVAL commands (0 ms) -[ok]: Connect a replica to the master instance (103 ms) -[ok]: Now use EVALSHA against the master, with both SHAs (0 ms) +[ok]: Connect a replica to the master instance (146 ms) +[ok]: Now use EVALSHA against the master, with both SHAs (1 ms) [ok]: 'x' should be '4' for EVALSHA being replicated by effects (0 ms) -[ok]: Replication of script multiple pushes to list with BLPOP (5 ms) +[ok]: Replication of script multiple pushes to list with BLPOP (8 ms) [ok]: EVALSHA replication when first call is readonly (1 ms) -[ok]: Lua scripts using SELECT are replicated correctly (0 ms) -=== (scripting repl external:skip) Starting server 127.0.0.1:21337 ok -=== () Starting server 127.0.0.1:21339 ok -[ok]: Connect a replica to the master instance (103 ms) +[ok]: Lua scripts using SELECT are replicated correctly (1 ms) +=== (scripting repl external:skip) Starting server 127.0.0.1:21300 ok +=== () Starting server 127.0.0.1:21302 ok +[ok]: Connect a replica to the master instance (102 ms) [ok]: Redis.replicate_commands() can be issued anywhere now (0 ms) [ok]: Redis.set_repl() can be issued before replicate_commands() now (0 ms) -[ok]: Redis.set_repl() don't accept invalid values (1 ms) -[ok]: Test selective replication of certain commands from Lua (0 ms) +[ok]: Redis.set_repl() don't accept invalid values (0 ms) +[ok]: Test selective replication of certain commands from Lua (3 ms) [ok]: PRNG is seeded randomly for command replication (0 ms) -[ok]: Using side effects is not a problem with command replication (0 ms) -=== (scripting external:skip) Starting server 127.0.0.1:21341 ok -=== (scripting needs:debug external:skip) Starting server 127.0.0.1:21343 ok +[ok]: Using side effects is not a problem with command replication (1 ms) +=== (scripting external:skip) Starting server 127.0.0.1:21304 ok +=== (scripting needs:debug external:skip) Starting server 127.0.0.1:21306 ok [ok]: Test scripting debug protocol parsing (1 ms) [ok]: Test scripting debug lua stack overflow (6 ms) -[ok]: Test scripting debug lua server invocations (5 ms) -=== (scripting external:skip) Starting server 127.0.0.1:21345 ok -[ok]: Lua scripts eviction does not generate many scripts (75 ms) -[ok]: Lua scripts eviction is plain LRU (33 ms) -[ok]: Lua scripts eviction does not affect script load (97 ms) -[ok]: Lua scripts promoted from eval to script load (78 ms) -=== (scripting needs:debug) Starting server 127.0.0.1:21347 ok -[ok]: test RESP2/2 big number protocol parsing (1 ms) +[ok]: Test scripting debug lua server invocations (7 ms) +=== (scripting external:skip) Starting server 127.0.0.1:21308 ok +[ok]: Lua scripts eviction does not generate many scripts (158 ms) +[ok]: Lua scripts eviction is plain LRU (70 ms) +[ok]: Lua scripts eviction does not affect script load (209 ms) +[ok]: Lua scripts promoted from eval to script load (155 ms) +=== (scripting needs:debug) Starting server 127.0.0.1:21310 ok +[ok]: test RESP2/2 big number protocol parsing (0 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 (0 ms) @@ -2104,242 +2000,430 @@ [ok]: test RESP2/3 big number protocol parsing (0 ms) [ok]: test RESP2/3 malformed big number protocol parsing (0 ms) [ok]: test RESP2/3 map protocol parsing (0 ms) -[ok]: test RESP2/3 set protocol parsing (0 ms) +[ok]: test RESP2/3 set protocol parsing (1 ms) [ok]: test RESP2/3 double protocol parsing (0 ms) [ok]: test RESP2/3 null protocol parsing (0 ms) [ok]: test RESP2/3 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 RESP3/2 big number protocol parsing (1 ms) +[ok]: test RESP3/2 big number protocol parsing (0 ms) [ok]: test RESP3/2 malformed big number protocol parsing (0 ms) [ok]: test RESP3/2 map protocol parsing (0 ms) [ok]: test RESP3/2 set protocol parsing (0 ms) -[ok]: test RESP3/2 double protocol parsing (0 ms) +[ok]: test RESP3/2 double protocol parsing (1 ms) [ok]: test RESP3/2 null protocol parsing (0 ms) [ok]: test RESP3/2 verbatim protocol parsing (0 ms) [ok]: test RESP3/2 true protocol parsing (0 ms) -[ok]: test RESP3/2 false protocol parsing (0 ms) +[ok]: test RESP3/2 false protocol parsing (1 ms) [ok]: test RESP3/3 big number protocol parsing (0 ms) [ok]: test RESP3/3 malformed big number protocol parsing (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 (0 ms) [ok]: test RESP3/3 null protocol parsing (0 ms) -[ok]: test RESP3/3 verbatim protocol parsing (0 ms) +[ok]: test RESP3/3 verbatim protocol parsing (1 ms) [ok]: test RESP3/3 true protocol parsing (0 ms) [ok]: test RESP3/3 false protocol parsing (0 ms) [ok]: test resp3 attribute protocol parsing (0 ms) -[ok]: Script block the time during execution (11 ms) +[ok]: Script block the time during execution (10 ms) [ok]: Script delete the expired key (3 ms) -[ok]: TIME command using cached time (10 ms) +[ok]: TIME command using cached time (11 ms) [ok]: Script block the time in some expiration related commands (82 ms) [ok]: RESTORE expired keys with expiration time (11 ms) -=== (scripting) Starting server 127.0.0.1:21349 ok +=== (scripting) Starting server 127.0.0.1:21312 ok [ok]: Shebang support for lua engine (0 ms) -[ok]: Unknown shebang option (0 ms) +[ok]: Unknown shebang option (1 ms) [ok]: Unknown shebang flag (0 ms) -[ok]: allow-oom shebang flag (0 ms) +[ok]: allow-oom shebang flag (2 ms) [ok]: no-writes shebang flag (0 ms) -=== (external:skip) Starting server 127.0.0.1:21351 ok -[ok]: no-writes shebang flag on replica (114 ms) -[ok]: not enough good replicas (1 ms) -=== (external:skip) Starting server 127.0.0.1:21353 ok -[ok]: not enough good replicas state change during long script (427 ms) +=== (external:skip) Starting server 127.0.0.1:21314 ok +[ok]: no-writes shebang flag on replica (121 ms) +[ok]: not enough good replicas (2 ms) +=== (external:skip) Starting server 127.0.0.1:21316 ok +[ok]: not enough good replicas state change during long script (542 ms) [ok]: allow-stale shebang flag (2 ms) -[ok]: reject script do not cause a Lua stack leak (3 ms) -=== (scripting) Starting server 127.0.0.1:21355 ok -[ok]: Consistent eval error reporting (7 ms) -[ok]: LUA redis.error_reply API (0 ms) +[ok]: reject script do not cause a Lua stack leak (10 ms) +=== (scripting) Starting server 127.0.0.1:21318 ok +[ok]: Consistent eval error reporting (15 ms) +[ok]: LUA redis.error_reply API (1 ms) [ok]: LUA redis.error_reply API with empty string (0 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 (1 ms) [ok]: LUA test pcall with non string/integer arg (0 ms) -[ok]: LUA test trim string as expected (0 ms) -[22/124 done]: unit/scripting (25 seconds) -Testing unit/lazyfree -=== (lazyfree) Starting server 127.0.0.1:21357 ok -[ok]: UNLINK can reclaim memory in background (254 ms) -[ok]: FLUSHDB ASYNC can reclaim memory in background (253 ms) -[ok]: lazy free a stream with all types of metadata (149 ms) -[ok]: lazy free a stream with deleted cgroup (1 ms) -[23/124 done]: unit/lazyfree (1 seconds) -Testing unit/protocol -=== (protocol network) Starting server 127.0.0.1:21359 ok -[ok]: Handle an empty query (48 ms) -[ok]: Negative multibulk length (48 ms) -[ok]: Out of range multibulk length (6 ms) -[ok]: Wrong multibulk payload header (5 ms) -[ok]: Negative multibulk payload length (5 ms) -[ok]: Out of range multibulk payload length (4 ms) -[ok]: Non-number multibulk payload length (4 ms) -[ok]: Multi bulk request not followed by bulk arguments (5 ms) -[ok]: Generic wrong number of args (4 ms) -[ok]: Unbalanced number of quotes (5 ms) -[ok]: Protocol desync regression test #1 (35 ms) -[ok]: Protocol desync regression test #2 (34 ms) -[ok]: Protocol desync regression test #3 (35 ms) -[ok]: raw protocol response (0 ms) -[ok]: raw protocol response - deferred (0 ms) -[ok]: raw protocol response - multiline (0 ms) -[ok]: RESP3 attributes (0 ms) -[ok]: RESP3 attributes readraw (1 ms) -[ok]: RESP3 attributes on RESP2 (0 ms) -[ok]: test big number parsing (0 ms) -[ok]: test bool parsing (1 ms) -[ok]: test verbatim str parsing (0 ms) -[ok]: test large number of args (21 ms) -[ok]: test argument rewriting - issue 9598 (1 ms) -=== (regression) Starting server 127.0.0.1:21361 ok -[ok]: Regression for a crash with blocking ops and pipelining (6 ms) -[24/124 done]: unit/protocol (1 seconds) -Testing unit/bitops -=== (bitops) Starting server 127.0.0.1:21363 ok -[ok]: BITCOUNT against wrong type (1 ms) -[ok]: BITCOUNT returns 0 against non existing key (1 ms) -[ok]: BITCOUNT returns 0 with out of range indexes (0 ms) -[ok]: BITCOUNT returns 0 with negative indexes where start > end (0 ms) -[ok]: BITCOUNT against test vector #1 (0 ms) -[ok]: BITCOUNT against test vector #2 (0 ms) -[ok]: BITCOUNT against test vector #3 (0 ms) -[ok]: BITCOUNT against test vector #4 (0 ms) -[ok]: BITCOUNT against test vector #5 (0 ms) -[ok]: BITCOUNT fuzzing without start/end (140 ms) -[ok]: BITCOUNT fuzzing with start/end (262 ms) -[ok]: BITCOUNT with just start (0 ms) -[ok]: BITCOUNT with start, end (1 ms) -[ok]: BITCOUNT with illegal arguments (0 ms) -[ok]: BITCOUNT against non-integer value (0 ms) -[ok]: BITCOUNT regression test for github issue #582 (0 ms) -[ok]: BITCOUNT misaligned prefix (0 ms) -[ok]: BITCOUNT misaligned prefix + full words + remainder (0 ms) -[ok]: BITOP NOT (empty string) (1 ms) -[ok]: BITOP NOT (known string) (0 ms) -[ok]: BITOP where dest and target are the same key (0 ms) -[ok]: BITOP AND|OR|XOR don't change the string with single input key (1 ms) -[ok]: BITOP missing key is considered a stream of zero (0 ms) -[ok]: BITOP shorter keys are zero-padded to the key with max length (1 ms) -[ok]: BITOP and fuzzing (148 ms) -[ok]: BITOP or fuzzing (93 ms) -[ok]: BITOP xor fuzzing (90 ms) -[ok]: BITOP NOT fuzzing (16 ms) -[ok]: BITOP with integer encoded source objects (1 ms) -[ok]: BITOP with non string source key (0 ms) -[ok]: BITOP with empty string after non empty string (issue #529) (0 ms) -[ok]: BITPOS against wrong type (1 ms) -[ok]: BITPOS will illegal arguments (0 ms) -[ok]: BITPOS against non-integer value (1 ms) -[ok]: BITPOS bit=0 with empty key returns 0 (0 ms) -[ok]: BITPOS bit=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 (0 ms) -[ok]: BITPOS bit=1 starting at unaligned address (1 ms) -[ok]: BITPOS bit=0 unaligned+full word+reminder (1 ms) -[ok]: BITPOS bit=1 unaligned+full word+reminder (2 ms) -[ok]: BITPOS bit=1 returns -1 if string is all 0 bits (4 ms) -[ok]: BITPOS bit=0 works with intervals (1 ms) -[ok]: BITPOS bit=1 works with intervals (0 ms) -[ok]: BITPOS bit=0 changes behavior if end is given (1 ms) -[ok]: SETBIT/BITFIELD only increase dirty when the value changed (2 ms) -[ok]: BITPOS bit=1 fuzzy testing using SETBIT (200 ms) -[ok]: BITPOS bit=0 fuzzy testing using SETBIT (242 ms) -[ok]: BITPOS/BITCOUNT fuzzy testing using SETBIT (197 ms) -=== (bitops) Starting server 127.0.0.1:21365 ok -[ignore]: BIT pos larger than UINT_MAX: large memory flag not provided -[ignore]: SETBIT values larger than UINT32_MAX and lzf_compress/lzf_decompress correctly: large memory flag not provided -[25/124 done]: unit/bitops (2 seconds) -Testing unit/wait -=== (wait network external:skip) Starting server 127.0.0.1:21367 ok -=== () Starting server 127.0.0.1:21369 ok -[ok]: Setup slave (102 ms) -[ok]: WAIT out of range timeout (milliseconds) (1 ms) -[ok]: WAIT should acknowledge 1 additional copy of the data (1 ms) -[ok]: WAIT should not acknowledge 2 additional copies of the data (1057 ms) -[ok]: WAIT should not acknowledge 1 additional copy if slave is blocked (1110 ms) -[ok]: WAIT implicitly blocks on client pause since ACKs aren't sent (1109 ms) -[ok]: WAIT replica multiple clients unblock - reuse last result (21 ms) -=== () Starting server 127.0.0.1:21371 ok -[ok]: Setup a new replica (107 ms) -[ok]: WAIT in script will work (820 ms) -=== () Starting server 127.0.0.1:21373 ok -[ok]: WAITAOF local copy before fsync (128 ms) -[ok]: WAITAOF local copy everysec (0 ms) -[ok]: WAITAOF local copy with appendfsync always (8 ms) -[ok]: WAITAOF local wait and then stop aof (46 ms) -[ok]: WAITAOF local on server with aof disabled (0 ms) -[ok]: WAITAOF local if AOFRW was postponed (264 ms) -=== () Starting server 127.0.0.1:21375 ok -[ok]: WAITAOF on demoted master gets unblocked with an error (5 ms) -[ok]: WAITAOF replica copy before fsync (61 ms) -[ok]: WAITAOF replica copy everysec (741 ms) - -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: WAITAOF replica copy everysec with AOFRW (1022 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... -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: WAITAOF replica copy everysec with slow AOFRW (2131 ms) - -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: WAITAOF replica copy everysec->always with AOFRW (173 ms) -[ok]: WAITAOF replica copy appendfsync always (8 ms) -[ok]: WAITAOF replica copy if replica is blocked (161 ms) -[ok]: WAITAOF replica multiple clients unblock - reuse last result (28 ms) -[ok]: WAITAOF on promoted replica (1 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 (698 ms) -[ok]: WAITAOF master isn't configured to do AOF (1008 ms) +[ok]: LUA test trim string as expected (2 ms) +[20/124 done]: unit/scripting (29 seconds) +Testing unit/querybuf +=== (querybuf slow) Starting server 127.0.0.1:21320 ok +[ok]: query buffer resized correctly (2898 ms) +[ok]: query buffer resized correctly when not idle (35 ms) +[ok]: query buffer resized correctly with fat argv (2955 ms) +[21/124 done]: unit/querybuf (7 seconds) +Testing unit/acl-v2 +=== (acl external:skip) Starting server 127.0.0.1:21322 ok +[ok]: Test basic multiple selectors (1 ms) +[ok]: Test ACL selectors by default have no permissions (2 ms) +[ok]: Test deleting selectors (1 ms) +[ok]: Test selector syntax error reports the error in the selector context (1 ms) +[ok]: Test flexible selector definition (2 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]: 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 (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 write permission (1 ms) +[ok]: Test BITFIELD with read and write permissions (2 ms) +[ok]: Test ACL log correctly identifies the relevant item when selectors are used (2 ms) +[ok]: Test ACL GETUSER response information (2 ms) +[ok]: Test ACL list idempotency (1 ms) +[ok]: Test R+W is the same as all permissions (0 ms) +[ok]: Test basic dry run functionality (1 ms) +[ok]: Test various commands for command permissions (1 ms) +[ok]: Test various odd commands for key permissions (5 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 (2 ms) +[ok]: Cardinality commands require some type of permission to execute (3 ms) +[ok]: Test sharded channel permissions (2 ms) +[ok]: Test sort with ACL permissions (2 ms) +[ok]: Test DRYRUN with wrong number of arguments (7 ms) +=== (external:skip) Starting server 127.0.0.1:21324 ok +[ok]: Test behavior of loading ACLs (1 ms) +[22/124 done]: unit/acl-v2 (0 seconds) +Testing unit/maxmemory +=== (maxmemory external:skip) Starting server 127.0.0.1:21326 ok +evicted keys: 16 +evicted clients: 0 +dbsize: 34 +[ok]: eviction due to output buffers of many MGET clients, client eviction: false (255 ms) +evicted keys: 28 +evicted clients: 0 +dbsize: 22 +[ok]: eviction due to input buffer of a dead client, client eviction: false (3508 ms) +evicted keys: 15 +evicted clients: 0 +dbsize: 35 +[ok]: eviction due to output buffers of pubsub, client eviction: false (1129 ms) +evicted keys: 0 +evicted clients: 11 +dbsize: 50 +[ok]: eviction due to output buffers of many MGET clients, client eviction: true (193 ms) +evicted keys: 0 +evicted clients: 18 +dbsize: 50 +[ok]: eviction due to input buffer of a dead client, client eviction: true (3492 ms) +evicted keys: 0 +evicted clients: 6 +dbsize: 50 +[ok]: eviction due to output buffers of pubsub, client eviction: true (988 ms) +=== (maxmemory external:skip) Starting server 127.0.0.1:21328 ok +[ok]: Without maxmemory small integers are shared (0 ms) +[ok]: With maxmemory and non-LRU policy integers are still shared (0 ms) +[ok]: With maxmemory and LRU policy integers are not shared (1 ms) +[ok]: Shared integers are unshared with maxmemory and LRU policy (1 ms) +[ok]: maxmemory - is the memory limit honoured? (policy allkeys-random) (183 ms) +[ok]: maxmemory - is the memory limit honoured? (policy allkeys-lru) (538 ms) +[ok]: maxmemory - is the memory limit honoured? (policy allkeys-lfu) (334 ms) +[ok]: maxmemory - is the memory limit honoured? (policy volatile-lru) (581 ms) +[ok]: maxmemory - is the memory limit honoured? (policy volatile-lfu) (972 ms) +[ok]: maxmemory - is the memory limit honoured? (policy volatile-random) (1412 ms) +[ok]: maxmemory - is the memory limit honoured? (policy volatile-ttl) (1927 ms) +[ok]: maxmemory - only allkeys-* should remove non-volatile keys (allkeys-random) (2626 ms) +[ok]: maxmemory - only allkeys-* should remove non-volatile keys (allkeys-lru) (2543 ms) +[ok]: maxmemory - only allkeys-* should remove non-volatile keys (volatile-lru) (3831 ms) +[ok]: maxmemory - only allkeys-* should remove non-volatile keys (volatile-random) (4008 ms) +[ok]: maxmemory - only allkeys-* should remove non-volatile keys (volatile-ttl) (2997 ms) +[ok]: maxmemory - policy volatile-lru should only remove volatile keys. (3230 ms) +[ok]: maxmemory - policy volatile-lfu should only remove volatile keys. (3742 ms) +[ok]: maxmemory - policy volatile-random should only remove volatile keys. (4181 ms) +[ok]: maxmemory - policy volatile-ttl should only remove volatile keys. (4303 ms) +=== (maxmemory external:skip) Starting server 127.0.0.1:21330 ok +=== () Starting server 127.0.0.1:21332 ok +[ok]: slave buffer are counted correctly (25525 ms) +=== (maxmemory external:skip) Starting server 127.0.0.1:21334 ok +=== () Starting server 127.0.0.1:21336 ok +[ok]: replica buffer don't induce eviction (12286 ms) +=== (maxmemory external:skip) Starting server 127.0.0.1:21338 ok +[ok]: Don't rehash if used memory exceeds maxmemory after rehash (236 ms) +=== (maxmemory external:skip io-threads:skip) Starting server 127.0.0.1:21340 ok +evicted: 30 +evicted: 30 +[ok]: client tracking don't cause eviction feedback loop (1679 ms) +=== (maxmemory external:skip) Starting server 127.0.0.1:21342 ok +[ok]: propagation with eviction (190 ms) +=== (maxmemory external:skip) Starting server 127.0.0.1:21344 ok +[ok]: propagation with eviction in MULTI (218 ms) +=== (maxmemory external:skip) Starting server 127.0.0.1:21346 ok +[ok]: lru/lfu value of the key just added (2 ms) +[23/124 done]: unit/maxmemory (90 seconds) +Testing unit/introspection-2 +=== (introspection) Starting server 127.0.0.1:21348 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 (3005 ms) +[ok]: TOUCH alters the last access time of a key (3004 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 (2 ms) +[ok]: errors stats for GEOADD (1 ms) +[ok]: command stats for EXPIRE (1 ms) +[ok]: command stats for BRPOP (1 ms) +[ok]: command stats for MULTI (3 ms) +[ok]: command stats for scripts (1 ms) +[ok]: COMMAND COUNT get total number of commands (1 ms) +[ok]: COMMAND GETKEYS GET (0 ms) +[ok]: COMMAND GETKEYSANDFLAGS (1 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 without keys (1 ms) +[ok]: COMMAND GETKEYS LCS (0 ms) +[ok]: COMMAND GETKEYS MORE THAN 256 KEYS (2 ms) +[ok]: COMMAND LIST syntax error (1 ms) +[ok]: COMMAND LIST WITHOUT FILTERBY (2 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 (2 ms) +[ok]: COMMAND LIST FILTERBY MODULE against non existing module (0 ms) +[ok]: COMMAND INFO of invalid subcommands (0 ms) +[ok]: SET command will not be marked with movablekeys (1 ms) +[ok]: GET command will not be marked with movablekeys (0 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 (0 ms) +[ok]: LPOP command will not be marked with movablekeys (1 ms) +[ok]: BLPOP command will not be marked with movablekeys (0 ms) +[ok]: PING command will not be marked with movablekeys (0 ms) +[ok]: MEMORY command will not be marked with movablekeys (0 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 (0 ms) +[ok]: XREAD command is marked with movablekeys (0 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 (0 ms) +[ok]: MIGRATE command is marked with movablekeys (1 ms) +[ok]: GEORADIUS command is marked with movablekeys (1 ms) +[24/124 done]: unit/introspection-2 (7 seconds) +Testing unit/expire +=== (expire) Starting server 127.0.0.1:21350 ok +[ok]: EXPIRE - set timeouts multiple times (2 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 - write on expire should work (0 ms) +[ok]: EXPIREAT - Check for EXPIRE alike behavior (0 ms) +[ok]: SETEX - Set + Expire combo operation. Check for TTL (0 ms) +[ok]: SETEX - Check value (0 ms) +[ok]: SETEX - Overwrite old key (1 ms) +[ok]: SETEX - Wait for the key to expire (1101 ms) +[ok]: SETEX - Wrong time parameter (1 ms) +[ok]: PERSIST can undo an EXPIRE (1 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 (1107 ms) +PSETEX sub-second expire test attempts: 0 +[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) +PEXPIREAT sub-second expire test attempts: 0 +[ok]: PEXPIREAT can set sub-second expires (204 ms) +[ok]: TTL returns time to live in seconds (1 ms) +[ok]: PTTL returns time to live in milliseconds (0 ms) +[ok]: TTL / PTTL / EXPIRETIME / PEXPIRETIME return -1 if key has no expire (1 ms) +[ok]: TTL / PTTL / EXPIRETIME / PEXPIRETIME return -2 if key does not exit (1 ms) +[ok]: EXPIRETIME returns absolute expiration time in seconds (1 ms) +[ok]: PEXPIRETIME returns absolute expiration time in milliseconds (0 ms) +[ok]: Server should actively expire keys incrementally (710 ms) +[ok]: Server should lazy expire keys (1006 ms) +[ok]: EXPIRE should not resurrect keys (issue #1026) (1005 ms) +[ok]: 5 keys in, 5 keys out (2 ms) +[ok]: EXPIRE with empty string as TTL should report an error (0 ms) +[ok]: SET with EX with big integer should report an error (1 ms) +[ok]: SET with EX with smallest integer should report an error (0 ms) +[ok]: GETEX with big integer should report an error (0 ms) +[ok]: GETEX with smallest integer should report an error (1 ms) +[ok]: EXPIRE with big integer overflows when converted to milliseconds (1 ms) +[ok]: PEXPIRE with big integer overflow when basetime is added (0 ms) +[ok]: EXPIRE with big negative integer (1 ms) +[ok]: PEXPIREAT with big integer works (0 ms) +[ok]: PEXPIREAT with big negative integer works (1 ms) +=== (external:skip) Starting server 127.0.0.1:21352 ok +[ok]: All time-to-live(TTL) in commands are propagated as absolute timestamp in milliseconds in AOF (5207 ms) +[ok]: All TTL in commands are propagated as absolute timestamp in replication stream (201 ms) +=== (needs:repl external:skip) Starting server 127.0.0.1:21354 ok +[ok]: First server should have role slave after REPLICAOF (1 ms) +[ok]: For all replicated TTL-related commands, absolute expire times are identical on primary and replica (202 ms) Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: WAITAOF replica isn't configured to do AOF (108 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 (931 ms) -[ok]: WAITAOF master sends PING after last write (1207 ms) -[ok]: WAITAOF master client didn't send any write command (1208 ms) -[ok]: WAITAOF master client didn't send any command (1205 ms) -=== () Starting server 127.0.0.1:21377 ok -=== () Starting server 127.0.0.1:21379 ok -[ok]: WAITAOF when replica switches between masters, fsync: no (3358 ms) -=== () Starting server 127.0.0.1:21381 ok -=== () Starting server 127.0.0.1:21383 ok -[ok]: WAITAOF when replica switches between masters, fsync: everysec (2348 ms) -=== () Starting server 127.0.0.1:21385 ok -=== () Starting server 127.0.0.1:21387 ok -[ok]: WAITAOF when replica switches between masters, fsync: always (1362 ms) -=== (failover external:skip) Starting server 127.0.0.1:21389 ok -=== () Starting server 127.0.0.1:21391 ok -=== () Starting server 127.0.0.1:21393 ok -[ok]: setup replication for following tests (102 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 (664 ms) -[26/124 done]: unit/wait (27 seconds) +Waiting for background AOF rewrite to finish... [ok]: expired key which is created in writeable replicas should be deleted by active expiry (708 ms) +[ok]: SET command will remove expire (1 ms) +[ok]: SET - use KEEPTTL option, TTL should not be removed (1 ms) +[ok]: SET - use KEEPTTL option, TTL should not be removed after loadaof (2006 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 (138 ms) +[ok]: EXPIRE with NX option on a key with ttl (1 ms) +[ok]: EXPIRE with NX option on a key without ttl (1 ms) +[ok]: EXPIRE with XX option on a key with ttl (0 ms) +[ok]: EXPIRE with XX option on a key without ttl (1 ms) +[ok]: EXPIRE with GT option on a key with lower 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 (0 ms) +[ok]: EXPIRE with LT option on a key with higher ttl (0 ms) +[ok]: EXPIRE with LT option on a key with lower ttl (1 ms) +[ok]: EXPIRE with LT option on a key without ttl (0 ms) +[ok]: EXPIRE with LT and XX option on a key with ttl (1 ms) +[ok]: EXPIRE with LT and XX option on a key without ttl (0 ms) +[ok]: EXPIRE with conflicting options: LT GT (0 ms) +[ok]: EXPIRE with conflicting options: NX GT (1 ms) +[ok]: EXPIRE with conflicting options: NX LT (0 ms) +[ok]: EXPIRE with conflicting options: NX XX (0 ms) +[ok]: EXPIRE with unsupported options (0 ms) +[ok]: EXPIRE with unsupported options (1 ms) +[ok]: EXPIRE with negative expiry (0 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 (92 ms) +[ok]: SCAN: Lazy-expire should not be wrapped in MULTI/EXEC (102 ms) +[ok]: RANDOMKEY: Lazy-expire should not be wrapped in MULTI/EXEC (101 ms) +=== (expire external:skip cluster) Starting server 127.0.0.1:21356 ok +[ok]: expire scan should skip dictionaries with lot's of empty buckets (1240 ms) +[25/124 done]: unit/expire (22 seconds) +Testing unit/keyspace +=== (keyspace) Starting server 127.0.0.1:21358 ok +[ok]: DEL against a single item (1 ms) +[ok]: Vararg DEL (1 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]: DEL against expired key (1102 ms) +[ok]: EXISTS (1 ms) +[ok]: Zero length value in key. SET/GET/EXISTS (1 ms) +[ok]: Commands pipelining (0 ms) +[ok]: Non existing command (0 ms) +[ok]: RENAME basic usage (0 ms) +[ok]: RENAME source key should no longer exist (0 ms) +[ok]: RENAME against already existing key (0 ms) +[ok]: RENAMENX basic usage (0 ms) +[ok]: RENAMENX against already existing key (0 ms) +[ok]: RENAMENX against already existing key (2) (1 ms) +[ok]: RENAME against non existing source key (0 ms) +[ok]: RENAME where source and dest key are the same (existing) (0 ms) +[ok]: RENAMENX where source and dest key are the same (existing) (1 ms) +[ok]: RENAME where source and dest key are the same (non existing) (0 ms) +[ok]: RENAME with volatile key, should move the TTL as well (2 ms) +[ok]: RENAME with volatile key, should not inherit TTL of target key (1 ms) +[ok]: DEL all keys again (DB 0) (1 ms) +[ok]: DEL all keys again (DB 1) (1 ms) +[ok]: COPY basic usage for string (1 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 (2 ms) +[ok]: COPY for string does not copy data to no-integer DB (0 ms) +[ok]: COPY can copy key expire metadata as well (1 ms) +[ok]: COPY does not create an expire if it does not exist (1 ms) +[ok]: COPY basic usage for list - quicklist (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 (29 ms) +[ok]: COPY basic usage for listpack sorted set (2 ms) +[ok]: COPY basic usage for skiplist sorted set (22 ms) +[ok]: COPY basic usage for listpack hash (3 ms) +[ok]: COPY basic usage for hashtable hash (26 ms) +[ok]: COPY basic usage for stream (133 ms) +[ok]: COPY basic usage for stream-cgroups (7 ms) +[ok]: MOVE basic usage (1 ms) +[ok]: MOVE against key existing in the target DB (0 ms) +[ok]: MOVE against non-integer DB (#1428) (1 ms) +[ok]: MOVE can move key expire metadata as well (1 ms) +[ok]: MOVE does not create an expire if it does not exist (1 ms) +[ok]: SET/GET keys in different DBs (2 ms) +[ok]: RANDOMKEY (10 ms) +[ok]: RANDOMKEY against empty DB (1 ms) +[ok]: RANDOMKEY regression 1 (1 ms) +[ok]: KEYS * two times with long key, Github issue #1208 (0 ms) +[ok]: Regression for pattern matching long nested loops (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 (44 ms) +[26/124 done]: unit/keyspace (2 seconds) +Testing unit/tracking +=== (tracking network logreqres:skip) Starting server 127.0.0.1:21360 ok +[ok]: Clients are able to enable tracking and redirect it (0 ms) +[ok]: The other connection is able to get invalidations (1 ms) +[ok]: The client is now able to disable tracking (1 ms) +[ok]: Clients can enable the BCAST mode with the empty prefix (0 ms) +[ok]: The connection gets invalidation messages about all the keys (0 ms) +[ok]: Clients can enable the BCAST mode with prefixes (1 ms) +[ok]: Adding prefixes to BCAST mode works (0 ms) +[ok]: Tracking NOLOOP mode in standard mode works (1 ms) +[ok]: Tracking NOLOOP mode in BCAST mode works (1 ms) +[ok]: Tracking gets notification of expired keys (1004 ms) +[ok]: Tracking gets notification of lazy expired keys (102 ms) +[ok]: HELLO 3 reply is correct (0 ms) +[ok]: HELLO without protover (1 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 (1 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 (8 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 (1 ms) +[ok]: Invalidation message sent when using OPTIN option with CLIENT CACHING yes (1 ms) +[ok]: Invalidation message sent when using OPTOUT option (0 ms) +[ok]: No invalidation message when using OPTOUT option with CLIENT CACHING no (0 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 (1 ms) +[ok]: BCAST with prefix collisions throw errors (7 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 (113 ms) +[ok]: Tracking invalidation message is not interleaved with transaction response (1 ms) +[ok]: Tracking invalidation message of eviction keys should be before response (4 ms) +[ok]: Unblocked BLMOVE gets notification after response (2 ms) +[ok]: Tracking gets notification on tracking table key eviction (16 ms) +[ok]: Invalidation message received for flushall (17 ms) +[ok]: Invalidation message received for flushdb (17 ms) +[ok]: Test ASYNC flushall (16 ms) +[ok]: flushdb tracking invalidation message is not interleaved with transaction response (17 ms) +[ok]: Server is able to evacuate enough keys when num of keys surpasses limit by more than defined initial effort (239 ms) +[ok]: Tracking info is correct (16 ms) +[ok]: CLIENT GETREDIR provides correct client id (1 ms) +[ok]: CLIENT TRACKINGINFO provides reasonable results when tracking off (0 ms) +[ok]: CLIENT TRACKINGINFO provides reasonable results when tracking on (0 ms) +[ok]: CLIENT TRACKINGINFO provides reasonable results when tracking on with options (0 ms) +[ok]: CLIENT TRACKINGINFO provides reasonable results when tracking optin (1 ms) +[ok]: CLIENT TRACKINGINFO provides reasonable results when tracking optout (1 ms) +[ok]: CLIENT TRACKINGINFO provides reasonable results when tracking bcast mode (1 ms) +[ok]: CLIENT TRACKINGINFO provides reasonable results when tracking redir broken (17 ms) +[ok]: Regression test for #11715 (105 ms) +[ok]: RESP3 based basic invalidation with client reply off (18 ms) +[ok]: RESP2 based basic invalidation with client reply off (143 ms) +[ok]: RESP3 based basic redirect invalidation with client reply off (27 ms) +[ok]: RESP3 based basic tracking-redir-broken with client reply off (18 ms) +=== (tracking network) Starting server 127.0.0.1:21362 ok +[ok]: Coverage: Basic CLIENT CACHING (7 ms) +[ok]: Coverage: Basic CLIENT REPLY (0 ms) +[ok]: Coverage: Basic CLIENT TRACKINGINFO (1 ms) +[ok]: Coverage: Basic CLIENT GETREDIR (0 ms) +[27/124 done]: unit/tracking (3 seconds) Testing unit/functions -=== (scripting) Starting server 127.0.0.1:21395 ok +=== (scripting) Starting server 127.0.0.1:21364 ok [ok]: FUNCTION - Basic usage (0 ms) [ok]: FUNCTION - Load with unknown argument (0 ms) -[ok]: FUNCTION - Create an already exiting library raise error (1 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 (0 ms) [ok]: FUNCTION - Create library with unexisting engine (0 ms) @@ -2348,2245 +2432,2179 @@ [ok]: FUNCTION - test function case insensitive (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 (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 (1 ms) -[ok]: FUNCTION - test delete on not exiting library (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 (11 ms) -[ok]: FUNCTION - test debug reload different options (14 ms) -[ok]: FUNCTION - test debug reload with nosave and noflush (9 ms) +[ok]: FUNCTION - test loading from rdb (180 ms) +[ok]: FUNCTION - test debug reload different options (197 ms) +[ok]: FUNCTION - test debug reload with nosave and noflush (29 ms) [ok]: FUNCTION - test flushall and flushdb do not clean functions (1 ms) -[ok]: FUNCTION - test function dump and restore (0 ms) +[ok]: FUNCTION - test function dump and restore (1 ms) [ok]: FUNCTION - test function dump and restore with flush argument (1 ms) [ok]: FUNCTION - test function dump and restore with append argument (1 ms) -[ok]: FUNCTION - test function dump and restore with replace argument (0 ms) -[ok]: FUNCTION - test function restore with bad payload do not drop existing functions (1 ms) +[ok]: FUNCTION - test function dump and restore with replace argument (1 ms) +[ok]: FUNCTION - test function restore with bad payload do not drop existing functions (0 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 (0 ms) -[ok]: FUNCTION - test keys and argv (1 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 (0 ms) -[ok]: FUNCTION - test command get keys on fcall_ro (0 ms) -[ok]: FUNCTION - test function kill (410 ms) -[ok]: FUNCTION - test script kill not working on function (410 ms) -[ok]: FUNCTION - test function kill not working on eval (410 ms) -[ok]: FUNCTION - test function flush (1 ms) -[ok]: FUNCTION - test function wrong argument (1 ms) -=== (scripting repl external:skip) Starting server 127.0.0.1:21397 ok -=== () Starting server 127.0.0.1:21399 ok +[ok]: FUNCTION - test command get keys on fcall_ro (1 ms) +[ok]: FUNCTION - test function kill (412 ms) +[ok]: FUNCTION - test script kill not working on function (415 ms) +[ok]: FUNCTION - test function kill not working on eval (412 ms) +[ok]: FUNCTION - test function flush (2 ms) +[ok]: FUNCTION - test function wrong argument (0 ms) +=== (scripting repl external:skip) Starting server 127.0.0.1:21366 ok +=== () Starting server 127.0.0.1:21368 ok [ok]: Connect a replica to the master instance (102 ms) [ok]: FUNCTION - creation is replicated to replica (1 ms) [ok]: FUNCTION - call on replica (0 ms) -[ok]: FUNCTION - restore is replicated to replica (1 ms) -[ok]: FUNCTION - delete is replicated to replica (0 ms) +[ok]: FUNCTION - restore is replicated to replica (2 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 (103 ms) +[ok]: Disconnecting the replica from master instance (322 ms) [ok]: FUNCTION - test replication to replica on rdb phase (0 ms) -[ok]: FUNCTION - test replication to replica on rdb phase info command (0 ms) +[ok]: FUNCTION - test replication to replica on rdb phase info command (1 ms) [ok]: FUNCTION - create on read only replica (0 ms) [ok]: FUNCTION - delete on read only replica (0 ms) [ok]: FUNCTION - function effect is replicated to replica (1 ms) -[ok]: FUNCTION - modify key space of read only replica (0 ms) -=== () Starting server 127.0.0.1:21401 ok +[ok]: FUNCTION - modify key space of read only replica (1 ms) +=== () Starting server 127.0.0.1:21370 ok Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: FUNCTION can processes create, delete and flush commands in AOF when doing "debug loadaof" in read-only slaves (341 ms) -=== (scripting) Starting server 127.0.0.1:21403 ok +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... [ok]: FUNCTION can processes create, delete and flush commands in AOF when doing "debug loadaof" in read-only slaves (1150 ms) +=== (scripting) Starting server 127.0.0.1:21372 ok [ok]: LIBRARIES - test shared function can access default globals (0 ms) -[ok]: LIBRARIES - usage and code sharing (1 ms) +[ok]: LIBRARIES - usage and code sharing (2 ms) [ok]: LIBRARIES - test registration failure revert the entire load (0 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 function name collision on same library (1 ms) [ok]: LIBRARIES - test registration with no argument (0 ms) [ok]: LIBRARIES - test registration with only name (0 ms) -[ok]: LIBRARIES - test registration with to many arguments (0 ms) +[ok]: LIBRARIES - test registration with 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 (0 ms) [ok]: LIBRARIES - math.random from function load (0 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 (1 ms) -[ok]: LIBRARIES - load timeout (501 ms) +[ok]: LIBRARIES - load timeout (502 ms) [ok]: LIBRARIES - verify global protection on the load run (0 ms) -[ok]: LIBRARIES - named arguments (0 ms) -[ok]: LIBRARIES - named arguments, bad function name (0 ms) -[ok]: LIBRARIES - named arguments, bad callback type (1 ms) +[ok]: LIBRARIES - named arguments (1 ms) +[ok]: LIBRARIES - named arguments, bad function name (1 ms) +[ok]: LIBRARIES - named arguments, bad callback type (0 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 restore with function name collision (4 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 (0 ms) +[ok]: FUNCTION - test function list wrong argument (1 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 - test function list libraryname multiple times (1 ms) [ok]: FUNCTION - verify OOM on function load and function restore (1 ms) -[ok]: FUNCTION - verify allow-omm allows running any command (0 ms) -=== (scripting) Starting server 127.0.0.1:21405 ok -[ok]: FUNCTION - wrong flags type named arguments (0 ms) +[ok]: FUNCTION - verify allow-omm allows running any command (1 ms) +=== (scripting) Starting server 127.0.0.1:21374 ok +[ok]: FUNCTION - wrong flags type named arguments (1 ms) [ok]: FUNCTION - wrong flag type (0 ms) -[ok]: FUNCTION - unknown flag (0 ms) -[ok]: FUNCTION - write script on fcall_ro (1 ms) -[ok]: FUNCTION - write script with no-writes flag (0 ms) +[ok]: FUNCTION - unknown flag (1 ms) +[ok]: FUNCTION - write script on fcall_ro (0 ms) +[ok]: FUNCTION - write script with no-writes flag (1 ms) [ok]: FUNCTION - deny oom (0 ms) [ok]: FUNCTION - deny oom on no-writes function (1 ms) -[ok]: FUNCTION - allow stale (0 ms) -[ok]: FUNCTION - valkey version api (0 ms) +[ok]: FUNCTION - allow stale (3 ms) +[ok]: FUNCTION - valkey version api (1 ms) [ok]: FUNCTION - function stats (0 ms) -[ok]: FUNCTION - function stats reloaded correctly from rdb (9 ms) +[ok]: FUNCTION - function stats reloaded correctly from rdb (165 ms) [ok]: FUNCTION - function stats delete library (0 ms) [ok]: FUNCTION - test function stats on loading failure (1 ms) -[ok]: FUNCTION - function stats cleaned after flush (0 ms) +[ok]: FUNCTION - function stats cleaned after flush (1 ms) [ok]: FUNCTION - function test empty engine (0 ms) [ok]: FUNCTION - function test unknown metadata value (0 ms) -[ok]: FUNCTION - function test no name (0 ms) -[ok]: FUNCTION - function test 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 (0 ms) +[ok]: FUNCTION - trick global protection 1 (1 ms) [ok]: FUNCTION - test getmetatable on script load (0 ms) -[27/124 done]: unit/functions (4 seconds) -Testing unit/oom-score-adj -=== (oom-score-adj external:skip) Starting server 127.0.0.1:21407 ok -[ok]: CONFIG SET oom-score-adj works as expected (10 ms) -[ok]: CONFIG SET oom-score-adj handles configuration failures (1 ms) -[ok]: CONFIG SET oom-score-adj-values doesn't touch proc when disabled (1 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) -[28/124 done]: unit/oom-score-adj (0 seconds) -Testing unit/introspection-2 -=== (introspection) Starting server 127.0.0.1:21409 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 (3005 ms) -[ok]: TOUCH alters the last access time of a key (3006 ms) -[ok]: Operations in no-touch mode do not alter the last access time of a key (1102 ms) -[ok]: TOUCH returns the number of existing keys specified (0 ms) -[ok]: command stats for GEOADD (1 ms) -[ok]: errors stats for GEOADD (0 ms) -[ok]: command stats for EXPIRE (1 ms) -[ok]: command stats for BRPOP (0 ms) -[ok]: command stats for MULTI (1 ms) -[ok]: command stats for scripts (1 ms) -[ok]: COMMAND COUNT get total number of commands (0 ms) -[ok]: COMMAND GETKEYS GET (0 ms) -[ok]: COMMAND GETKEYSANDFLAGS (1 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 without keys (0 ms) -[ok]: COMMAND GETKEYS LCS (0 ms) -[ok]: COMMAND GETKEYS MORE THAN 256 KEYS (2 ms) -[ok]: COMMAND LIST syntax error (0 ms) -[ok]: COMMAND LIST WITHOUT FILTERBY (2 ms) -[ok]: COMMAND LIST FILTERBY ACLCAT against non existing category (0 ms) -[ok]: COMMAND LIST FILTERBY ACLCAT - list all commands/subcommands (1 ms) -[ok]: COMMAND LIST FILTERBY PATTERN - list all commands/subcommands (0 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 (0 ms) -[ok]: GET command will not be marked with movablekeys (0 ms) -[ok]: MSET command will not be marked with movablekeys (0 ms) -[ok]: BITFIELD command will not be marked with movablekeys (1 ms) -[ok]: LMOVE command will not be marked with movablekeys (0 ms) -[ok]: LPOP command will not be marked with movablekeys (0 ms) -[ok]: BLPOP command will not be marked with movablekeys (0 ms) -[ok]: PING command will not be marked with movablekeys (0 ms) -[ok]: MEMORY command will not be marked with movablekeys (1 ms) -[ok]: MEMORY|USAGE command will not be marked with movablekeys (0 ms) -[ok]: RENAME command will not be marked with movablekeys (0 ms) -[ok]: GEORADIUS_RO command will not be marked with movablekeys (1 ms) -[ok]: ZUNIONSTORE command is marked with movablekeys (0 ms) -[ok]: XREAD command is marked with movablekeys (0 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 (0 ms) -[ok]: MIGRATE command is marked with movablekeys (0 ms) -[ok]: GEORADIUS command is marked with movablekeys (1 ms) -[29/124 done]: unit/introspection-2 (7 seconds) +[28/124 done]: unit/functions (6 seconds) Testing unit/acl -=== (acl external:skip) Starting server 127.0.0.1:21411 ok +=== (acl external:skip) Starting server 127.0.0.1:21376 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 (0 ms) +[ok]: Enabling the user allows the login (1 ms) [ok]: Only the set of correct passwords work (1 ms) [ok]: It is possible to remove passwords from the set of valid ones (0 ms) -[ok]: Test password hashes can be added (0 ms) +[ok]: Test password hashes can be added (1 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 (0 ms) -[ok]: By default users are not able to access any command (0 ms) +[ok]: By default users are not able to access any command (1 ms) [ok]: By default users are not able to access any key (0 ms) -[ok]: It's possible to allow the access of a subset of keys (1 ms) -[ok]: By default, only default user is able to publish to any channel (0 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 (5 ms) -[ok]: By default, only default user is able to subscribe to any shard channel (5 ms) -[ok]: By default, only default user is able to subscribe to any pattern (5 ms) -[ok]: It's possible to allow publishing to a subset of channels (0 ms) +[ok]: It's possible to allow the access of a subset of keys (0 ms) +[ok]: By default, only default user is able to publish to any channel (2 ms) +[ok]: By default, only default user is not able to publish to any shard channel (0 ms) +[ok]: By default, only default user is able to subscribe to any channel (8 ms) +[ok]: By default, only default user is able to subscribe to any shard channel (9 ms) +[ok]: By default, only default user is able to subscribe to any pattern (7 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 (0 ms) -[ok]: It's possible to allow subscribing to a subset of channels (5 ms) -[ok]: It's possible to allow subscribing to a subset of shard channels (5 ms) -[ok]: It's possible to allow subscribing to a subset of channel patterns (5 ms) -[ok]: Subscribers are killed when revoked of channel permission (5 ms) -[ok]: Subscribers are killed when revoked of channel permission (5 ms) -[ok]: Subscribers are killed when revoked of pattern permission (5 ms) -[ok]: Subscribers are killed when revoked of allchannels permission (5 ms) -[ok]: Subscribers are pardoned if literal permissions are retained and/or gaining allchannels (5 ms) -[ok]: blocked command gets rejected when reprocessed after permission change (6 ms) +[ok]: Validate subset of channels is prefixed with resetchannels flag (2 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 (8 ms) +[ok]: It's possible to allow subscribing to a subset of shard channels (8 ms) +[ok]: It's possible to allow subscribing to a subset of channel patterns (7 ms) +[ok]: Subscribers are killed when revoked of channel permission (7 ms) +[ok]: Subscribers are killed when revoked of channel permission (8 ms) +[ok]: Subscribers are killed when revoked of pattern permission (7 ms) +[ok]: Subscribers are killed when revoked of allchannels permission (7 ms) +[ok]: Subscribers are pardoned if literal permissions are retained and/or gaining allchannels (8 ms) +[ok]: blocked command gets rejected when reprocessed after permission change (8 ms) [ok]: Users can be configured to authenticate with any password (0 ms) [ok]: ACLs can exclude single commands (1 ms) -[ok]: ACLs can include or exclude whole classes of commands (0 ms) +[ok]: ACLs can include or exclude whole classes of commands (1 ms) [ok]: ACLs can include single subcommands (1 ms) [ok]: ACLs can exclude single subcommands, case 1 (0 ms) [ok]: ACLs can exclude single subcommands, case 2 (1 ms) -[ok]: ACLs cannot include a subcommand with a specific arg (0 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 (0 ms) +[ok]: ACLs including of a type includes also subcommands (1 ms) [ok]: ACLs can block SELECT of all but a specific DB (1 ms) -[ok]: ACLs can block all DEBUG subcommands except one (0 ms) +[ok]: ACLs can block all DEBUG subcommands except one (2 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 (2 ms) -[ok]: ACL SETUSER RESET reverting to default newly created user (1 ms) -[ok]: ACL GETUSER is able to translate back command permissions (0 ms) -[ok]: ACL GETUSER provides reasonable results (9 ms) -[ok]: ACL GETUSER provides correct results (3 ms) +[ok]: ACLs set can exclude subcommands, if already full command exists (3 ms) +[ok]: ACL SETUSER RESET reverting to default newly created user (2 ms) +[ok]: ACL GETUSER is able to translate back command permissions (1 ms) +[ok]: ACL GETUSER provides reasonable results (14 ms) +[ok]: ACL GETUSER provides correct results (5 ms) [ok]: ACL CAT with illegal arguments (0 ms) [ok]: ACL CAT without category - list all categories (0 ms) -[ok]: ACL CAT category - list all commands/subcommands that belong to category (1 ms) +[ok]: ACL 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 (0 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 (3 ms) +[ok]: ACL LOG aggregates similar errors together and assigns unique entry-id to new errors (6 ms) [ok]: ACL LOG shows failed command executions at toplevel (1 ms) -[ok]: ACL LOG shows failed subcommand executions at toplevel (0 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 (0 ms) -[ok]: ACL LOG RESET is able to flush the entries in the log (0 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 (1 ms) [ok]: ACL LOG can distinguish the transaction context (1) (1 ms) -[ok]: ACL LOG can distinguish the transaction context (2) (6 ms) -[ok]: ACL can log errors in the context of Lua scripting (0 ms) -[ok]: ACL LOG can accept a numerical argument to show less entries (1 ms) +[ok]: ACL LOG can distinguish the transaction context (2) (9 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 (3 ms) [ok]: ACL LOG can log failed auth attempts (1 ms) -[ok]: ACLLOG - zero max length is correctly handled (1 ms) -[ok]: ACL LOG entries are limited to a maximum amount (1 ms) +[ok]: ACLLOG - zero max length is correctly handled (2 ms) +[ok]: ACL LOG entries are limited to a maximum amount (3 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 (4 ms) +[ok]: When default user is off, new connections are not authenticated (7 ms) [ok]: When default user has no command permission, hello command still works for other users (0 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 (0 ms) +[ok]: When an authentication chain is used in the HELLO cmd, the last auth cmd has precedence (0 ms) +[ok]: When a setname chain is used in the HELLO cmd, the last setname cmd has precedence (1 ms) [ok]: When authentication fails in the HELLO cmd, the client setname should not be applied (0 ms) [ok]: ACL HELP should not have unexpected options (0 ms) -[ok]: Delete a user that the client doesn't use (1 ms) +[ok]: Delete a user that the client doesn't use (0 ms) [ok]: Delete a user that the client is using (0 ms) -[ok]: ACL GENPASS command failed test (5 ms) +[ok]: ACL GENPASS command failed test (7 ms) [ok]: Default user can not be removed (0 ms) [ok]: ACL load non-existing configured ACL file (0 ms) -[ok]: ACL-Metrics user AUTH failure (2 ms) -[ok]: ACL-Metrics invalid command accesses (2 ms) -[ok]: ACL-Metrics invalid key accesses (1 ms) -[ok]: ACL-Metrics invalid channels accesses (2 ms) -=== (external:skip) Starting server 127.0.0.1:21413 ok -[ok]: default: load from include file, can access any channels (1 ms) +[ok]: ACL-Metrics user AUTH failure (6 ms) +[ok]: ACL-Metrics invalid command accesses (3 ms) +[ok]: ACL-Metrics invalid key accesses (3 ms) +[ok]: ACL-Metrics invalid channels accesses (3 ms) +=== (external:skip) Starting server 127.0.0.1:21378 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 (0 ms) -[ok]: default: with config acl-pubsub-default resetchannels after reset, can not access any channels (1 ms) +[ok]: default: with config acl-pubsub-default resetchannels after reset, can not access any channels (2 ms) [ok]: Alice: can execute all command (0 ms) -[ok]: Bob: just execute @set and acl command (0 ms) -[ok]: ACL LOAD only disconnects affected clients (15 ms) -[ok]: ACL LOAD disconnects clients of deleted users (15 ms) -[ok]: ACL load and save (9 ms) -[ok]: ACL load and save with restricted channels (7 ms) -=== (external:skip) Starting server 127.0.0.1:21415 ok -[ok]: Default user has access to all channels irrespective of flag (0 ms) +[ok]: Bob: just execute @set and acl command (1 ms) +[ok]: ACL LOAD only disconnects affected clients (19 ms) +[ok]: ACL LOAD disconnects clients of deleted users (19 ms) +[ok]: ACL load and save (33 ms) +[ok]: ACL load and save with restricted channels (13 ms) +=== (external:skip) Starting server 127.0.0.1:21380 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 (1 ms) [ok]: Single channel is valid (0 ms) [ok]: Single channel is not valid with allchannels (1 ms) -=== (external:skip) Starting server 127.0.0.1:21417 ok +=== (external:skip) Starting server 127.0.0.1:21382 ok [ok]: Only default user has access to all channels irrespective of flag (1 ms) -=== (external:skip) Starting server 127.0.0.1:21419 ok -[ok]: default: load from config file, without channel permission default user can't access any channels (1 ms) -=== (external:skip) Starting server 127.0.0.1:21421 ok +=== (external:skip) Starting server 127.0.0.1:21384 ok +[ok]: default: load from config file, without channel permission default user can't access any channels (0 ms) +=== (external:skip) Starting server 127.0.0.1:21386 ok [ok]: default: load from config file with all channels permissions (1 ms) -=== (external:skip) Starting server 127.0.0.1:21423 ok -[ok]: Test loading an ACL file with duplicate users (3 ms) -[ok]: Test loading an ACL file with duplicate default user (3 ms) -[ok]: Test loading duplicate users in config on startup (17 ms) -=== (acl external:skip) Starting server 127.0.0.1:21425 ok -[ok]: ACL from config file and config rewrite (204 ms) -[30/124 done]: unit/acl (2 seconds) -Testing unit/dump -=== (dump) Starting server 127.0.0.1:21427 ok -[ok]: DUMP / RESTORE are able to serialize / unserialize a simple key (1 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 (1 ms) -[ok]: RESTORE can set an absolute expire (0 ms) -[ok]: RESTORE with ABSTTL in the past (1 ms) -[ok]: RESTORE can set LRU (0 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 (1 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 (80 ms) -[ok]: DUMP of non existing key returns nil (0 ms) -=== (repl) Starting server 127.0.0.1:21429 ok -[ok]: MIGRATE is caching connections (228 ms) -[ok]: MIGRATE cached connections are released after some time (15004 ms) -=== (repl) Starting server 127.0.0.1:21431 ok -[ok]: MIGRATE is able to migrate a key between two instances (225 ms) -=== (repl) Starting server 127.0.0.1:21433 ok -[ok]: MIGRATE is able to copy a key between two instances (231 ms) -=== (repl) Starting server 127.0.0.1:21435 ok -[ok]: MIGRATE will not overwrite existing keys, unless REPLACE is used (230 ms) -=== (repl) Starting server 127.0.0.1:21437 ok -[ok]: MIGRATE propagates TTL correctly (219 ms) -=== (repl) Starting server 127.0.0.1:21439 ok -[ok]: MIGRATE can correctly transfer large values (5319 ms) -=== (repl) Starting server 127.0.0.1:21441 ok -[ok]: MIGRATE can correctly transfer hashes (229 ms) -=== (repl) Starting server 127.0.0.1:21443 ok -[ok]: MIGRATE timeout actually works (776 ms) -=== (repl) Starting server 127.0.0.1:21445 ok -[ok]: MIGRATE can migrate multiple keys at once (227 ms) -[ok]: MIGRATE with multiple keys must have empty key arg (1 ms) -=== (repl) Starting server 127.0.0.1:21447 ok -[ok]: MIGRATE with multiple keys migrate just existing ones (228 ms) -=== (repl) Starting server 127.0.0.1:21449 ok -[ok]: MIGRATE with multiple keys: stress command rewriting (221 ms) -=== (repl) Starting server 127.0.0.1:21451 ok -[ok]: MIGRATE with multiple keys: delete just ack keys (229 ms) -=== (repl) Starting server 127.0.0.1:21453 ok -[ok]: MIGRATE AUTH: correct and wrong password cases (219 ms) -[31/124 done]: unit/dump (24 seconds) -Testing unit/latency-monitor -=== (latency-monitor needs:latency) Starting server 127.0.0.1:21455 ok -[ok]: LATENCY HISTOGRAM with empty histogram (1 ms) -[ok]: LATENCY HISTOGRAM all commands (0 ms) -[ok]: LATENCY HISTOGRAM sub commands (1 ms) -[ok]: LATENCY HISTOGRAM with a subset of commands (0 ms) -[ok]: LATENCY HISTOGRAM command (0 ms) -[ok]: LATENCY HISTOGRAM with wrong command name skips the invalid one (1 ms) -[ok]: Test latency events logging (3404 ms) -LATENCY HISTORY data: -{1729314827 300} {1729314829 400} {1729314831 500} -[ok]: LATENCY HISTORY output is ok (0 ms) -LATENCY LATEST data: -{command 1729314831 500 500} -[ok]: LATENCY LATEST output is ok (0 ms) -LATENCY GRAPH data: -command - high 500 ms, low 300 ms (all time high 500 ms) --------------------------------------------------------------------------------- - # - _| - || -_|| - -420 -sss - -[ok]: LATENCY GRAPH can output the event graph (1 ms) -[ok]: LATENCY GRAPH can output the expire event graph (0 ms) -[ok]: LATENCY of expire events are correctly collected (1805 ms) -[ok]: LATENCY HISTORY / RESET with wrong event name is fine (1 ms) -[ok]: LATENCY DOCTOR produces some output (1 ms) -[ok]: LATENCY RESET is able to reset events (0 ms) -[ok]: LATENCY HELP should not have unexpected options (0 ms) -[32/124 done]: unit/latency-monitor (6 seconds) +=== (external:skip) Starting server 127.0.0.1:21388 ok +[ok]: Test loading an ACL file with duplicate users (138 ms) +[ok]: Test loading an ACL file with duplicate default user (175 ms) +[ok]: Test loading duplicate users in config on startup (32 ms) +=== (acl external:skip) Starting server 127.0.0.1:21390 ok +[ok]: ACL from config file and config rewrite (1117 ms) +[29/124 done]: unit/acl (4 seconds) +Testing unit/bitops +=== (bitops) Starting server 127.0.0.1:21392 ok +[ok]: BITCOUNT against wrong type (1 ms) +[ok]: BITCOUNT returns 0 against non existing key (0 ms) +[ok]: BITCOUNT returns 0 with out of range indexes (0 ms) +[ok]: BITCOUNT returns 0 with negative indexes where start > end (1 ms) +[ok]: BITCOUNT against test vector #1 (1 ms) +[ok]: BITCOUNT against test vector #2 (1 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 (224 ms) +[ok]: BITCOUNT fuzzing with start/end (511 ms) +[ok]: BITCOUNT with just start (2 ms) +[ok]: BITCOUNT with start, end (3 ms) +[ok]: BITCOUNT with illegal arguments (1 ms) +[ok]: BITCOUNT against non-integer value (1 ms) +[ok]: BITCOUNT regression test for github issue #582 (0 ms) +[ok]: BITCOUNT misaligned prefix (1 ms) +[ok]: BITCOUNT misaligned prefix + full words + remainder (0 ms) +[ok]: BITOP NOT (empty string) (0 ms) +[ok]: BITOP NOT (known string) (0 ms) +[ok]: BITOP where dest and target are the same key (0 ms) +[ok]: BITOP AND|OR|XOR don't change the string with single input key (1 ms) +[ok]: BITOP missing key is considered a stream of zero (1 ms) +[ok]: BITOP shorter keys are zero-padded to the key with max length (1 ms) +[ok]: BITOP and fuzzing (142 ms) +[ok]: BITOP or fuzzing (130 ms) +[ok]: BITOP xor fuzzing (141 ms) +[ok]: BITOP NOT fuzzing (31 ms) +[ok]: BITOP with integer encoded source objects (1 ms) +[ok]: BITOP with non string source key (2 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 (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 (4 ms) +[ok]: BITPOS bit=1 unaligned+full word+reminder (4 ms) +[ok]: BITPOS bit=1 returns -1 if string is all 0 bits (8 ms) +[ok]: BITPOS bit=0 works with intervals (1 ms) +[ok]: BITPOS bit=1 works with intervals (2 ms) +[ok]: BITPOS bit=0 changes behavior if end is given (1 ms) +[ok]: SETBIT/BITFIELD only increase dirty when the value changed (6 ms) +[ok]: BITPOS bit=1 fuzzy testing using SETBIT (387 ms) +[ok]: BITPOS bit=0 fuzzy testing using SETBIT (434 ms) +[ok]: BITPOS/BITCOUNT fuzzy testing using SETBIT (414 ms) +=== (bitops) Starting server 127.0.0.1:21394 ok +[ignore]: BIT pos larger than UINT_MAX: large memory flag not provided +[ignore]: SETBIT values larger than UINT32_MAX and lzf_compress/lzf_decompress correctly: large memory flag not provided +[30/124 done]: unit/bitops (3 seconds) Testing unit/sort -=== (sort) Starting server 127.0.0.1:21457 ok -[ok]: Listpack: SORT BY key (1 ms) +=== (sort) Starting server 127.0.0.1:21396 ok +[ok]: Listpack: SORT BY key (0 ms) [ok]: Listpack: SORT BY key with limit (0 ms) -[ok]: Listpack: SORT BY hash field (0 ms) -[ok]: Quicklist: SORT BY key (6 ms) -[ok]: Quicklist: SORT BY key with limit (1 ms) -[ok]: Quicklist: SORT BY hash field (5 ms) -[ok]: Big Quicklist: SORT BY key (145 ms) -[ok]: Big Quicklist: SORT BY key with limit (4 ms) -[ok]: Big Quicklist: SORT BY hash field (142 ms) -[ok]: Intset: SORT BY key (0 ms) +[ok]: Listpack: SORT BY hash field (1 ms) +[ok]: Quicklist: SORT BY key (8 ms) +[ok]: Quicklist: SORT BY key with limit (0 ms) +[ok]: Quicklist: SORT BY hash field (8 ms) +[ok]: Big Quicklist: SORT BY key (284 ms) +[ok]: Big Quicklist: SORT BY key with limit (5 ms) +[ok]: Big Quicklist: SORT BY hash field (282 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 (6 ms) -[ok]: Hash table: SORT BY key with limit (1 ms) -[ok]: Hash table: SORT BY hash field (5 ms) -[ok]: Big Hash table: SORT BY key (148 ms) -[ok]: Big Hash table: SORT BY key with limit (6 ms) -[ok]: Big Hash table: SORT BY hash field (145 ms) +[ok]: Hash table: SORT BY key (10 ms) +[ok]: Hash table: SORT BY key with limit (0 ms) +[ok]: Hash table: SORT BY hash field (9 ms) +[ok]: Big Hash table: SORT BY key (238 ms) +[ok]: Big Hash table: SORT BY key with limit (7 ms) +[ok]: Big Hash table: SORT BY hash field (236 ms) [ok]: SORT GET # (1 ms) [ok]: SORT GET (0 ms) -[ok]: SORT_RO GET (0 ms) -[ok]: SORT GET (key and hash) with sanity check (3 ms) -[ok]: SORT BY key STORE (0 ms) +[ok]: SORT_RO GET (1 ms) +[ok]: SORT GET (key and hash) with sanity check (5 ms) +[ok]: SORT BY key STORE (2 ms) [ok]: SORT BY hash field STORE (1 ms) [ok]: SORT extracts STORE correctly (0 ms) -[ok]: SORT_RO get keys (0 ms) +[ok]: SORT_RO get keys (1 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 (0 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 (1 ms) +[ok]: SORT sorted set: +inf and -inf handling (1 ms) +[ok]: SORT regression for issue #19, sorting floats (2 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 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 (1) (1 ms) [ok]: SORT will complain with numerical sorting and bad doubles (2) (0 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 GET with pattern ending with just -> does not get hash field (1 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 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.11 milliseconds [ok]: SORT speed, 100 element list BY key, 100 times (11 ms) + Average time to sort: 0.20999999999999999 milliseconds [ok]: SORT speed, 100 element list BY key, 100 times (21 ms) - Average time to sort: 0.13 milliseconds [ok]: SORT speed, 100 element list BY hash field, 100 times (13 ms) + Average time to sort: 0.25 milliseconds [ok]: SORT speed, 100 element list BY hash field, 100 times (25 ms) - Average time to sort: 0.10000000000000001 milliseconds [ok]: SORT speed, 100 element list directly, 100 times (10 ms) + Average time to sort: 0.19 milliseconds [ok]: SORT speed, 100 element list directly, 100 times (19 ms) - Average time to sort: 0.089999999999999997 milliseconds [ok]: SORT speed, 100 element list BY , 100 times (9 ms) + Average time to sort: 0.17000000000000001 milliseconds [ok]: SORT speed, 100 element list BY , 100 times (17 ms) [ok]: SETRANGE with huge offset (1 ms) -[ok]: SORT STORE quicklist with the right options (45 ms) -=== (external:skip cluster sort) Starting server 127.0.0.1:21459 ok -[ok]: sort by in cluster mode (0 ms) +[ok]: SORT STORE quicklist with the right options (49 ms) +=== (external:skip cluster sort) Starting server 127.0.0.1:21398 ok +[ok]: sort by in cluster mode (1 ms) [ok]: sort get in cluster mode (0 ms) -[ok]: sort_ro by in cluster mode (0 ms) +[ok]: sort_ro by in cluster mode (1 ms) [ok]: sort_ro get in cluster mode (1 ms) -[33/124 done]: unit/sort (6 seconds) -Testing unit/info -=== (info external:skip) Starting server 127.0.0.1:21461 ok -=== () Starting server 127.0.0.1:21463 ok -[ok]: latencystats: disable/enable (1 ms) -[ok]: latencystats: configure percentiles (1 ms) -[ok]: latencystats: bad configure percentiles (1 ms) -[ok]: latencystats: blocking commands (5 ms) -[ok]: latencystats: subcommands (0 ms) -[ok]: latencystats: measure latency (51 ms) -[ok]: errorstats: failed call authentication error (0 ms) -[ok]: errorstats: failed call within MULTI/EXEC (1 ms) -[ok]: errorstats: failed call within LUA (1 ms) -[ok]: errorstats: failed call NOSCRIPT error (1 ms) -[ok]: errorstats: failed call NOGROUP error (1 ms) -[ok]: errorstats: rejected call unknown command (1 ms) -[ok]: errorstats: rejected call within MULTI/EXEC (1 ms) -[ok]: errorstats: rejected call due to wrong arity (1 ms) -[ok]: errorstats: rejected call by OOM error (1 ms) -[ok]: errorstats: rejected call by authorization error (1 ms) -[ok]: errorstats: blocking commands (6 ms) -[ok]: errorstats: limit errors will not increase indefinitely (63 ms) -eventloop metrics cycle1: 1118, cycle2: 1120 -eventloop metrics el_sum1: 18162, el_sum2: 18305 -eventloop metrics cmd_sum1: 3706, cmd_sum2: 3714 -[ok]: stats: eventloop metrics (111 ms) -instantaneous metrics instantaneous_eventloop_cycles_per_sec: 8 -instantaneous metrics instantaneous_eventloop_duration_usec: 132 -[ok]: stats: instantaneous metrics (1604 ms) -[ok]: stats: debug metrics (112 ms) -[ok]: stats: client input and output buffer limit disconnections (58 ms) -[ok]: clients: pubsub clients (10 ms) -[ok]: clients: watching clients (9 ms) -=== (info external:skip) Starting server 127.0.0.1:21465 ok -[ok]: memory: database and pubsub overhead and rehashing dict count (2 ms) -[34/124 done]: unit/info (3 seconds) -Testing unit/quit -=== (quit) Starting server 127.0.0.1:21467 ok -[ok]: QUIT returns OK (5 ms) -[ok]: Pipelined commands after QUIT must not be executed (9 ms) -[ok]: Pipelined commands after QUIT that exceed read buffer size (9 ms) -[35/124 done]: unit/quit (0 seconds) -Testing unit/pubsub -=== (pubsub network) Starting server 127.0.0.1:21469 ok -[ok]: Pub/Sub PING on RESP2 (1 ms) -[ok]: Pub/Sub PING on RESP3 (0 ms) -[ok]: PUBLISH/SUBSCRIBE basics (5 ms) -[ok]: PUBLISH/SUBSCRIBE with two clients (9 ms) -[ok]: PUBLISH/SUBSCRIBE after UNSUBSCRIBE without arguments (4 ms) -[ok]: SUBSCRIBE to one channel more than once (5 ms) -[ok]: UNSUBSCRIBE and PUNSUBSCRIBE from non-subscribed channels (5 ms) -[ok]: PUBLISH/PSUBSCRIBE basics (5 ms) -[ok]: PUBLISH/PSUBSCRIBE with two clients (9 ms) -[ok]: PUBLISH/PSUBSCRIBE after PUNSUBSCRIBE without arguments (5 ms) -[ok]: PubSub messages with CLIENT REPLY OFF (93 ms) -[ok]: NUMSUB returns numbers, not strings (#1561) (0 ms) -[ok]: NUMPATs returns the number of unique patterns (10 ms) -[ok]: Mix SUBSCRIBE and PSUBSCRIBE (5 ms) -[ok]: Keyspace notifications: we receive keyspace notifications (49 ms) -[ok]: Keyspace notifications: we receive keyevent notifications (48 ms) -[ok]: Keyspace notifications: we can receive both kind of events (5 ms) -[ok]: Keyspace notifications: we are able to mask events (5 ms) -[ok]: Keyspace notifications: general events test (4 ms) -[ok]: Keyspace notifications: list events test (5 ms) -[ok]: Keyspace notifications: set events test (4 ms) -[ok]: Keyspace notifications: zset events test (5 ms) -[ok]: Keyspace notifications: hash events test (5 ms) -[ok]: Keyspace notifications: stream events test (6 ms) -[ok]: Keyspace notifications: expired events (triggered expire) (106 ms) -[ok]: Keyspace notifications: expired events (background expire) (177 ms) -[ok]: Keyspace notifications: evicted events (6 ms) -[ok]: Keyspace notifications: test CONFIG GET/SET of event flags (0 ms) -[ok]: Keyspace notifications: new key test (5 ms) -[ok]: publish to self inside multi (0 ms) -[ok]: publish to self inside script (1 ms) -[ok]: unsubscribe inside multi, and publish to self (0 ms) -[36/124 done]: unit/pubsub (1 seconds) -Testing unit/limits -=== (limits network external:skip) Starting server 127.0.0.1:21471 ok -[ok]: Check if maxclients works refusing connections (959 ms) -[37/124 done]: unit/limits (1 seconds) -Testing unit/querybuf -=== (querybuf slow) Starting server 127.0.0.1:21473 ok -[ok]: query buffer resized correctly (2106 ms) -[ok]: query buffer resized correctly when not idle (70 ms) -[ok]: query buffer resized correctly with fat argv (2935 ms) -[38/124 done]: unit/querybuf (6 seconds) -Testing unit/maxmemory -=== (maxmemory external:skip) Starting server 127.0.0.1:21475 ok -evicted keys: 41 -evicted clients: 0 -dbsize: 9 -[ok]: eviction due to output buffers of many MGET clients, client eviction: false (156 ms) -evicted keys: 28 -evicted clients: 0 -dbsize: 22 -[ok]: eviction due to input buffer of a dead client, client eviction: false (3329 ms) -evicted keys: 15 -evicted clients: 0 -dbsize: 35 -[ok]: eviction due to output buffers of pubsub, client eviction: false (900 ms) -evicted keys: 0 -evicted clients: 13 -dbsize: 50 -[ok]: eviction due to output buffers of many MGET clients, client eviction: true (122 ms) -evicted keys: 0 -evicted clients: 18 -dbsize: 50 -[ok]: eviction due to input buffer of a dead client, client eviction: true (3331 ms) -evicted keys: 0 -evicted clients: 6 -dbsize: 50 -[ok]: eviction due to output buffers of pubsub, client eviction: true (985 ms) -=== (maxmemory external:skip) Starting server 127.0.0.1:21477 ok -[ok]: Without maxmemory small integers are shared (1 ms) -[ok]: With maxmemory and non-LRU policy integers are still shared (0 ms) -[ok]: With maxmemory and LRU policy integers are not shared (1 ms) -[ok]: Shared integers are unshared with maxmemory and LRU policy (0 ms) -[ok]: maxmemory - is the memory limit honoured? (policy allkeys-random) (102 ms) -[ok]: maxmemory - is the memory limit honoured? (policy allkeys-lru) (339 ms) -[ok]: maxmemory - is the memory limit honoured? (policy allkeys-lfu) (170 ms) -[ok]: maxmemory - is the memory limit honoured? (policy volatile-lru) (329 ms) -[ok]: maxmemory - is the memory limit honoured? (policy volatile-lfu) (593 ms) -[ok]: maxmemory - is the memory limit honoured? (policy volatile-random) (160 ms) -[ok]: maxmemory - is the memory limit honoured? (policy volatile-ttl) (157 ms) -[ok]: maxmemory - only allkeys-* should remove non-volatile keys (allkeys-random) (228 ms) -[ok]: maxmemory - only allkeys-* should remove non-volatile keys (allkeys-lru) (276 ms) -[ok]: maxmemory - only allkeys-* should remove non-volatile keys (volatile-lru) (281 ms) -[ok]: maxmemory - only allkeys-* should remove non-volatile keys (volatile-random) (289 ms) -[ok]: maxmemory - only allkeys-* should remove non-volatile keys (volatile-ttl) (554 ms) -[ok]: maxmemory - policy volatile-lru should only remove volatile keys. (719 ms) -[ok]: maxmemory - policy volatile-lfu should only remove volatile keys. (278 ms) -[ok]: maxmemory - policy volatile-random should only remove volatile keys. (592 ms) -[ok]: maxmemory - policy volatile-ttl should only remove volatile keys. (802 ms) -=== (maxmemory external:skip) Starting server 127.0.0.1:21479 ok -=== () Starting server 127.0.0.1:21481 ok -[ok]: slave buffer are counted correctly (21060 ms) -=== (maxmemory external:skip) Starting server 127.0.0.1:21483 ok -=== () Starting server 127.0.0.1:21485 ok -[ok]: replica buffer don't induce eviction (6171 ms) -=== (maxmemory external:skip) Starting server 127.0.0.1:21487 ok -[ok]: Don't rehash if used memory exceeds maxmemory after rehash (129 ms) -=== (maxmemory external:skip io-threads:skip) Starting server 127.0.0.1:21489 ok -evicted: 29 -evicted: 29 -[ok]: client tracking don't cause eviction feedback loop (1355 ms) -=== (maxmemory external:skip) Starting server 127.0.0.1:21491 ok -[ok]: propagation with eviction (186 ms) -=== (maxmemory external:skip) Starting server 127.0.0.1:21493 ok -[ok]: propagation with eviction in MULTI (85 ms) -=== (maxmemory external:skip) Starting server 127.0.0.1:21495 ok -[ok]: lru/lfu value of the key just added (1 ms) -[39/124 done]: unit/maxmemory (46 seconds) -Testing unit/tracking -=== (tracking network logreqres:skip) Starting server 127.0.0.1:21497 ok -[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 (0 ms) -[ok]: Clients can enable the BCAST mode with the empty prefix (0 ms) -[ok]: The connection gets invalidation messages about all the keys (1 ms) -[ok]: Clients can enable the BCAST mode with prefixes (0 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 gets notification of lazy expired keys (101 ms) -[ok]: HELLO 3 reply is correct (0 ms) -[ok]: HELLO without protover (0 ms) -[ok]: RESP3 based basic invalidation (1 ms) -[ok]: RESP3 tracking redirection (0 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 (0 ms) -[ok]: RESP3 Client gets tracking-redir-broken push message after cached key changed when rediretion client is terminated (6 ms) -[ok]: Different clients can redirect to the same connection (0 ms) -[ok]: Different clients using different protocols can track the same key (1 ms) -[ok]: No invalidation message when using OPTIN option (1 ms) -[ok]: Invalidation message sent when using OPTIN option with CLIENT CACHING yes (0 ms) -[ok]: Invalidation message sent when using OPTOUT option (1 ms) -[ok]: No invalidation message when using OPTOUT option with CLIENT CACHING no (0 ms) -[ok]: Able to redirect to a RESP3 client (1 ms) -[ok]: After switching from normal tracking to BCAST mode, no invalidation message is produced for pre-BCAST keys (1 ms) -[ok]: BCAST with prefix collisions throw errors (6 ms) -[ok]: hdel deliver invalidate message after response in the same connection (1 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]: Tracking invalidation message of eviction keys should be before response (2 ms) -[ok]: Unblocked BLMOVE gets notification after response (0 ms) -[ok]: Tracking gets notification on tracking table key eviction (64 ms) -[ok]: Invalidation message received for flushall (11 ms) -[ok]: Invalidation message received for flushdb (10 ms) -[ok]: Test ASYNC flushall (10 ms) -[ok]: flushdb tracking invalidation message is not interleaved with transaction response (11 ms) -[ok]: Server is able to evacuate enough keys when num of keys surpasses limit by more than defined initial effort (162 ms) -[ok]: Tracking info is correct (11 ms) -[ok]: CLIENT GETREDIR provides correct client id (0 ms) -[ok]: CLIENT TRACKINGINFO provides reasonable results when tracking off (0 ms) -[ok]: CLIENT TRACKINGINFO provides reasonable results when tracking on (1 ms) -[ok]: CLIENT TRACKINGINFO provides reasonable results when tracking on with options (0 ms) -[ok]: CLIENT TRACKINGINFO provides reasonable results when tracking optin (0 ms) -[ok]: CLIENT TRACKINGINFO provides reasonable results when tracking optout (1 ms) -[ok]: CLIENT TRACKINGINFO provides reasonable results when tracking bcast mode (0 ms) -[ok]: CLIENT TRACKINGINFO provides reasonable results when tracking redir broken (10 ms) -[ok]: Regression test for #11715 (11 ms) -[ok]: RESP3 based basic invalidation with client reply off (9 ms) -[ok]: RESP2 based basic invalidation with client reply off (55 ms) -[ok]: RESP3 based basic redirect invalidation with client reply off (15 ms) -[ok]: RESP3 based basic tracking-redir-broken with client reply off (10 ms) -=== (tracking network) Starting server 127.0.0.1:21499 ok -[ok]: Coverage: Basic CLIENT CACHING (5 ms) -[ok]: Coverage: Basic CLIENT REPLY (0 ms) -[ok]: Coverage: Basic CLIENT TRACKINGINFO (1 ms) -[ok]: Coverage: Basic CLIENT GETREDIR (0 ms) -[40/124 done]: unit/tracking (2 seconds) +[31/124 done]: unit/sort (12 seconds) +Testing unit/replybufsize +=== (replybufsize) Starting server 127.0.0.1:21400 ok +[ok]: verify reply buffer limits (664 ms) +[32/124 done]: unit/replybufsize (1 seconds) +Testing unit/networking +=== () Starting server 127.0.0.1:21402 ok +[ok]: CONFIG SET port number (264 ms) +=== () Starting server 127.0.0.1:21405 ok +[ok]: CONFIG SET bind address (239 ms) +=== () Starting server 127.0.0.1:21407 ok +=== () Starting server 127.0.0.1:21409 ok +[ok]: CONFIG SET bind-source-addr (837 ms) +=== (external:skip) Starting server 127.0.0.1:21411 ok +[ok]: Default bind address configuration handling (618 ms) +[ok]: Protected mode works as expected (2 ms) +=== (external:skip) Starting server 127.0.0.1:21413 ok +[33/124 done]: unit/networking (3 seconds) +Testing unit/shutdown +=== (shutdown external:skip) Starting server 127.0.0.1:21415 ok +[ok]: Temp rdb will be deleted if we use bg_unlink when shutdown (140 ms) +=== (shutdown external:skip) Starting server 127.0.0.1:21417 ok +[ok]: SHUTDOWN ABORT can cancel SIGTERM (14 ms) +[ok]: Temp rdb will be deleted in signal handle (66 ms) +=== (shutdown external:skip) Starting server 127.0.0.1:21419 ok +[ok]: RDB save will be failed in shutdown (5 ms) +[ok]: SHUTDOWN will abort if rdb save failed on signal (84 ms) +[ok]: SHUTDOWN will abort if rdb save failed on shutdown command (7 ms) +[ok]: SHUTDOWN can proceed if shutdown command was with nosave (4 ms) +[ok]: Clean up rdb same named folder (2 ms) +=== (shutdown external:skip) Starting server 127.0.0.1:21421 ok +[ok]: SHUTDOWN SIGTERM will abort if there's an initial AOFRW - default (93 ms) +[34/124 done]: unit/shutdown (1 seconds) Testing unit/memefficiency -=== (memefficiency external:skip) Starting server 127.0.0.1:21501 ok -[ok]: Memory efficiency with values in range 32 (254 ms) -[ok]: Memory efficiency with values in range 64 (235 ms) -[ok]: Memory efficiency with values in range 128 (244 ms) -[ok]: Memory efficiency with values in range 1024 (309 ms) -[ok]: Memory efficiency with values in range 16384 (823 ms) -=== (defrag external:skip cluster) Starting server 127.0.0.1:21503 ok +=== (memefficiency external:skip) Starting server 127.0.0.1:21423 ok +[ok]: Memory efficiency with values in range 32 (330 ms) +[ok]: Memory efficiency with values in range 64 (324 ms) +[ok]: Memory efficiency with values in range 128 (362 ms) +[ok]: Memory efficiency with values in range 1024 (406 ms) +[ok]: Memory efficiency with values in range 16384 (1335 ms) +=== (defrag external:skip cluster) Starting server 127.0.0.1:21425 ok frag 1.53 -[ok]: Active defrag main dictionary: cluster (30655 ms) -used 80213504 -rss 81317888 +[ok]: Active defrag main dictionary: cluster (69302 ms) +used 80087824 +rss 81149952 frag 1.01 -frag_bytes 915968 -used 53318864 -rss 80699392 +frag_bytes 898288 +used 53338400 +rss 80678912 frag 1.51 -frag_bytes 27257648 -[ok]: Active defrag eval scripts: cluster (3657 ms) +frag_bytes 27217632 +[ok]: Active defrag eval scripts: cluster (5851 ms) frag 1.81 -[ok]: Active defrag big keys: cluster (20813 ms) -used 98682776 -rss 99430400 +[ok]: Active defrag big keys: cluster (29554 ms) +used 98695784 +rss 99414016 frag 1.01 -frag_bytes 604264 -used 72168856 -rss 99454976 +frag_bytes 590136 +used 72174712 +rss 99438592 frag 1.38 -frag_bytes 27134568 -[ok]: Active defrag pubsub: cluster (30036 ms) -=== (defrag external:skip standalone) Starting server 127.0.0.1:21505 ok -frag 1.51 -[ok]: Active defrag main dictionary: standalone (33741 ms) -used 77117704 -rss 78200832 +frag_bytes 27112328 +[ok]: Active defrag pubsub: cluster (57010 ms) +=== (defrag external:skip standalone) Starting server 127.0.0.1:21427 ok +frag 1.52 +[ok]: Active defrag main dictionary: standalone (48310 ms) +used 76763096 +rss 77783040 frag 1.01 -frag_bytes 923384 -used 51533368 +frag_bytes 929832 +used 51527464 rss 77316096 frag 1.50 -frag_bytes 25688520 -[ok]: Active defrag eval scripts: standalone (3713 ms) +frag_bytes 25694424 +[ok]: Active defrag eval scripts: standalone (5850 ms) frag 1.86 -[ok]: Active defrag big keys: standalone (21494 ms) -used 94273328 -rss 95449088 +[ok]: Active defrag big keys: standalone (28123 ms) +used 94269672 +rss 95444992 frag 1.01 -frag_bytes 1048784 -used 69019040 -rss 94961664 +frag_bytes 1048344 +used 69045176 +rss 94941184 frag 1.37 -frag_bytes 25811552 -[ok]: Active defrag pubsub: standalone (26833 ms) +frag_bytes 25764936 +[ok]: Active defrag pubsub: standalone (55451 ms) frag 1.99 -[ok]: Active defrag big list: standalone (22186 ms) -=== (defrag) Starting server 127.0.0.1:21507 ok +[ok]: Active defrag big list: standalone (25592 ms) +=== (defrag) Starting server 127.0.0.1:21429 ok frag 1.96 -[ok]: Active defrag edge case: standalone (22933 ms) -[41/124 done]: unit/memefficiency (223 seconds) -Testing unit/hyperloglog -=== (hll) Starting server 127.0.0.1:21509 ok -[ok]: HyperLogLog self test passes (284 ms) -[ok]: PFADD without arguments creates an HLL value (0 ms) -[ok]: Approximated cardinality after creation is zero (0 ms) -[ok]: PFADD returns 1 when at least 1 reg was modified (1 ms) -[ok]: PFADD returns 0 when no reg was modified (0 ms) -[ok]: PFADD works with empty string (regression) (0 ms) -[ok]: PFCOUNT returns approximated cardinality of set (0 ms) -[ok]: HyperLogLogs are promote from sparse to dense (285 ms) -[ok]: Change hll-sparse-max-bytes (0 ms) -[ok]: Hyperloglog promote to dense well in different hll-sparse-max-bytes (35 ms) -[ok]: HyperLogLog sparse encoding stress test (633 ms) -[ok]: Corrupted sparse HyperLogLogs are detected: Additional at tail (0 ms) -[ok]: Corrupted sparse HyperLogLogs are detected: Broken magic (0 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 (38897 ms) -[ok]: PFADD, PFCOUNT, PFMERGE type checking works (1 ms) -[ok]: PFMERGE results on the cardinality of union of sets (0 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 (0 ms) -[ok]: PFCOUNT multiple-keys merge returns cardinality of union #1 (3437 ms) -[ok]: PFCOUNT multiple-keys merge returns cardinality of union #2 (2018 ms) -[ok]: PFDEBUG GETREG returns the HyperLogLog raw registers (348 ms) -[ok]: PFADD / PFCOUNT cache invalidation works (1 ms) -[42/124 done]: unit/hyperloglog (46 seconds) +[ok]: Active defrag edge case: standalone (28835 ms) +[35/124 done]: unit/memefficiency (360 seconds) +Testing unit/auth +=== (auth external:skip) Starting server 127.0.0.1:21431 ok +[ok]: AUTH fails if there is no password configured server side (0 ms) +[ok]: Arity check for auth command (1 ms) +=== (auth external:skip) Starting server 127.0.0.1:21433 ok +[ok]: AUTH fails when a wrong password is given (6 ms) +[ok]: Arbitrary command gives an error when AUTH is required (0 ms) +[ok]: AUTH succeeds when the right password is given (0 ms) +[ok]: Once AUTH succeeded we can actually send commands to the server (1 ms) +[ok]: For unauthenticated clients multibulk and bulk length are limited (12 ms) +=== (auth_binary_password external:skip) Starting server 127.0.0.1:21435 ok +[ok]: AUTH fails when binary password is wrong (0 ms) +[ok]: AUTH succeeds when binary password is correct (1 ms) +=== (primaryauth) Starting server 127.0.0.1:21437 ok +[ok]: primaryauth test with binary password dualchannel = yes (929 ms) +=== (auth_binary_password external:skip) Starting server 127.0.0.1:21439 ok +[ok]: AUTH fails when binary password is wrong (1 ms) +[ok]: AUTH succeeds when binary password is correct (1 ms) +=== (primaryauth) Starting server 127.0.0.1:21441 ok +[ok]: primaryauth test with binary password dualchannel = no (925 ms) +[36/124 done]: unit/auth (3 seconds) +Testing unit/other +=== (other) Starting server 127.0.0.1:21443 ok +[ok]: Coverage: HELP commands (2 ms) +[ok]: Coverage: MEMORY MALLOC-STATS (2 ms) +[ok]: Coverage: MEMORY PURGE (1 ms) +[ok]: SAVE - make sure there are all the types as values (11 ms) +[ok]: FUZZ stresser with data model binary (561 ms) +[ok]: FUZZ stresser with data model alpha (624 ms) +[ok]: FUZZ stresser with data model compr (584 ms) +=== (external:skip) Starting server 127.0.0.1:21445 ok +[ok]: FLUSHALL should not reset the dirty counter if we disable save (1 ms) +[ok]: FLUSHALL should reset the dirty counter to 0 if we enable save (10 ms) + +Waiting for background save to finish... [ok]: BGSAVE (72 ms) +[ok]: SELECT an out of range DB (0 ms) +[ok]: Check consistency of different data types after a reload (942 ms) + +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... [ok]: Same dataset digest if saving/reloading as AOF? (297 ms) + +Waiting for background AOF rewrite to finish... [ok]: EXPIRES after a reload (snapshot + append only file rewrite) (127 ms) + +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... [ok]: EXPIRES after AOF reload (without rewrite) (2119 ms) +[ok]: PIPELINING stresser (also a regression for the old epoll bug) (428 ms) +[ok]: APPEND basics (0 ms) +[ok]: APPEND basics, integer encoded values (0 ms) +[ok]: APPEND fuzzing (383 ms) +[ok]: FLUSHDB (1 ms) +[ok]: Perform a final SAVE to leave a clean DB on disk (8 ms) +[ok]: RESET clears client state (0 ms) +[ok]: RESET clears MONITOR state (8 ms) +[ok]: RESET clears and discards MULTI state (1 ms) +[ok]: RESET clears Pub/Sub state (0 ms) +[ok]: RESET clears authenticated state (1 ms) +[ok]: Subcommand syntax error crash (issue #10070) (1 ms) +[ok]: Extended Redis Compatibility config (2 ms) +=== (other external:skip) Starting server 127.0.0.1:21447 ok + +Waiting for background save to finish... +Waiting for background save to finish... [ok]: Don't rehash if server has child process (524 ms) +=== (other external:skip) Starting server 127.0.0.1:21449 ok +[ok]: Process title set as expected (2 ms) +=== (other external:skip cluster slow) Starting server 127.0.0.1:21451 ok +[ok]: Server can trigger resizing (1813 ms) +[ok]: Server can rewind and trigger smaller slot resizing (690 ms) +=== (other external:skip) Starting server 127.0.0.1:21453 ok +[ok]: Server can resize empty dict (27 ms) +Creating temp file /build/reproducible-path/valkey-8.0.1+dfsg1/3636968 +=== (repl external:skip) Starting server 127.0.0.1:21455 ok +[ok]: test unixsocket options are set correctly (0 ms) +Deleting temp file: /build/reproducible-path/valkey-8.0.1+dfsg1/3636968 +[37/124 done]: unit/other (13 seconds) +Testing unit/dump +=== (dump) Starting server 127.0.0.1:21457 ok +[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 (2 ms) +[ok]: RESTORE can set LFU (1 ms) +[ok]: RESTORE returns an error of the key already exists (1 ms) +[ok]: RESTORE can overwrite an existing key with REPLACE (1 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 (68 ms) +[ok]: DUMP of non existing key returns nil (0 ms) +=== (repl) Starting server 127.0.0.1:21459 ok +[ok]: MIGRATE is caching connections (235 ms) +[ok]: MIGRATE cached connections are released after some time (15003 ms) +=== (repl) Starting server 127.0.0.1:21461 ok +[ok]: MIGRATE is able to migrate a key between two instances (236 ms) +=== (repl) Starting server 127.0.0.1:21463 ok +[ok]: MIGRATE is able to copy a key between two instances (231 ms) +=== (repl) Starting server 127.0.0.1:21465 ok +[ok]: MIGRATE will not overwrite existing keys, unless REPLACE is used (226 ms) +=== (repl) Starting server 127.0.0.1:21467 ok +[ok]: MIGRATE propagates TTL correctly (234 ms) +=== (repl) Starting server 127.0.0.1:21469 ok +[ok]: MIGRATE can correctly transfer large values (9193 ms) +=== (repl) Starting server 127.0.0.1:21471 ok +[ok]: MIGRATE can correctly transfer hashes (224 ms) +=== (repl) Starting server 127.0.0.1:21473 ok +[ok]: MIGRATE timeout actually works (784 ms) +=== (repl) Starting server 127.0.0.1:21475 ok +[ok]: MIGRATE can migrate multiple keys at once (235 ms) +[ok]: MIGRATE with multiple keys must have empty key arg (0 ms) +=== (repl) Starting server 127.0.0.1:21477 ok +[ok]: MIGRATE with multiple keys migrate just existing ones (235 ms) +=== (repl) Starting server 127.0.0.1:21479 ok +[ok]: MIGRATE with multiple keys: stress command rewriting (227 ms) +=== (repl) Starting server 127.0.0.1:21481 ok +[ok]: MIGRATE with multiple keys: delete just ack keys (234 ms) +=== (repl) Starting server 127.0.0.1:21483 ok +[ok]: MIGRATE AUTH: correct and wrong password cases (231 ms) +[38/124 done]: unit/dump (28 seconds) +Testing unit/latency-monitor +=== (latency-monitor needs:latency) Starting server 127.0.0.1:21485 ok +[ok]: LATENCY HISTOGRAM with empty histogram (0 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 command (1 ms) +[ok]: LATENCY HISTOGRAM with wrong command name skips the invalid one (1 ms) +[ok]: Test latency events logging (3408 ms) +LATENCY HISTORY data: +{1763730370 300} {1763730372 400} {1763730373 500} +[ok]: LATENCY HISTORY output is ok (1 ms) +LATENCY LATEST data: +{command 1763730373 500 500} +[ok]: LATENCY LATEST output is ok (1 ms) +LATENCY GRAPH data: +command - high 500 ms, low 300 ms (all time high 500 ms) +-------------------------------------------------------------------------------- + # + _| + || +_|| + +310 +sss + +[ok]: LATENCY GRAPH can output the event graph (1 ms) +[ok]: LATENCY GRAPH can output the expire event graph (0 ms) +[ok]: LATENCY of expire events are correctly collected (2304 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 (0 ms) +[39/124 done]: unit/latency-monitor (6 seconds) +Testing unit/protocol +=== (protocol network) Starting server 127.0.0.1:21487 ok +[ok]: Handle an empty query (48 ms) +[ok]: Negative multibulk length (52 ms) +[ok]: Out of range multibulk length (10 ms) +[ok]: Wrong multibulk payload header (8 ms) +[ok]: Negative multibulk payload length (8 ms) +[ok]: Out of range multibulk payload length (8 ms) +[ok]: Non-number multibulk payload length (8 ms) +[ok]: Multi bulk request not followed by bulk arguments (8 ms) +[ok]: Generic wrong number of args (6 ms) +[ok]: Unbalanced number of quotes (7 ms) +[ok]: Protocol desync regression test #1 (70 ms) +[ok]: Protocol desync regression test #2 (74 ms) +[ok]: Protocol desync regression test #3 (73 ms) +[ok]: raw protocol response (0 ms) +[ok]: raw protocol response - deferred (0 ms) +[ok]: raw protocol response - multiline (1 ms) +[ok]: RESP3 attributes (1 ms) +[ok]: RESP3 attributes readraw (1 ms) +[ok]: RESP3 attributes on RESP2 (0 ms) +[ok]: test big number parsing (0 ms) +[ok]: test bool parsing (0 ms) +[ok]: test verbatim str parsing (1 ms) +[ok]: test large number of args (24 ms) +[ok]: test argument rewriting - issue 9598 (1 ms) +=== (regression) Starting server 127.0.0.1:21489 ok +[ok]: Regression for a crash with blocking ops and pipelining (9 ms) +[40/124 done]: unit/protocol (1 seconds) +Testing unit/aofrw +=== (aofrw external:skip logreqres:skip) Starting server 127.0.0.1:21491 ok + +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite during write load: RDB preamble=yes (8549 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... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite during write load: RDB preamble=no (13769 ms) +=== (aofrw external:skip) Starting server 127.0.0.1:21493 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 (117 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 (108 ms) + +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of list with quicklist encoding, string data (214 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... +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of list with quicklist encoding, int data (252 ms) + +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of set with intset encoding, string data (61 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 (238 ms) + +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of set with intset encoding, int data (107 ms) + +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of set with hashtable encoding, int data (279 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 (142 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 (220 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 (107 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 of hash with hashtable encoding, int data (258 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 (109 ms) + +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of zset with skiplist encoding, string data (210 ms) + +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of zset with listpack encoding, int data (108 ms) + +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of zset with skiplist encoding, int data (214 ms) + +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite functions (142 ms) +[ok]: BGREWRITEAOF is delayed if BGSAVE is in progress (240 ms) +[ok]: BGREWRITEAOF is refused if already in progress (22 ms) +[41/124 done]: unit/aofrw (26 seconds) +Testing unit/tls +=== (tls) Starting server 127.0.0.1:21495 ok +[ok]: TLS: Not accepting non-TLS connections on a TLS port (1 ms) +[ok]: TLS: Verify tls-auth-clients behaves as expected (13 ms) +[ok]: TLS: Verify tls-protocols behaves as expected (11 ms) +[ok]: TLS: Verify tls-ciphers behaves as expected (19 ms) +[ok]: TLS: Verify tls-prefer-server-ciphers behaves as expected (19 ms) +=== () Starting server 127.0.0.1:21497 ok +[ok]: TLS: Verify tls-cert-file is also used as a client cert if none specified (331 ms) +[ok]: TLS: switch between tcp and tls ports (13 ms) +[ok]: TLS: Working with an encrypted keyfile (14 ms) +[42/124 done]: unit/tls (1 seconds) +Testing unit/violations +=== () Starting server 127.0.0.1:21499 ok +[ignore]: XADD one huge field: large memory flag not provided +=== () Starting server 127.0.0.1:21501 ok +[ignore]: XADD one huge field - 1: large memory flag not provided +=== () Starting server 127.0.0.1:21503 ok +[ignore]: several XADD big fields: large memory flag not provided +=== () Starting server 127.0.0.1:21505 ok +[ignore]: single XADD big fields: large memory flag not provided +=== () Starting server 127.0.0.1:21507 ok +[ignore]: hash with many big fields: large memory flag not provided +=== () Starting server 127.0.0.1:21509 ok +[ignore]: hash with one huge field: large memory flag not provided +=== () Starting server 127.0.0.1:21511 ok +[ok]: SORT adds integer field to list (1 ms) +[43/124 done]: unit/violations (1 seconds) Testing unit/scan -=== (scan network standalone) Starting server 127.0.0.1:21511 ok -[ok]: {standalone} SCAN basic (46 ms) -[ok]: {standalone} SCAN COUNT (53 ms) -[ok]: {standalone} SCAN MATCH (41 ms) -[ok]: {standalone} SCAN TYPE (60 ms) -[ok]: {standalone} SCAN unknown type (34 ms) -[ok]: {standalone} SCAN with expired keys (44 ms) -[ok]: {standalone} SCAN with expired keys with TYPE filter (44 ms) +=== (scan network standalone) Starting server 127.0.0.1:21513 ok +[ok]: {standalone} SCAN basic (88 ms) +[ok]: {standalone} SCAN COUNT (99 ms) +[ok]: {standalone} SCAN MATCH (87 ms) +[ok]: {standalone} SCAN TYPE (119 ms) +[ok]: {standalone} SCAN unknown type (64 ms) +[ok]: {standalone} SCAN with expired keys (84 ms) +[ok]: {standalone} SCAN with expired keys with TYPE filter (83 ms) [ok]: {standalone} SSCAN with encoding intset (1 ms) -[ok]: {standalone} SSCAN with encoding listpack (1 ms) -[ok]: {standalone} SSCAN with encoding hashtable (2 ms) -[ok]: {standalone} HSCAN with encoding listpack (1 ms) -[ok]: {standalone} HSCAN with encoding hashtable (73 ms) +[ok]: {standalone} SSCAN with encoding listpack (2 ms) +[ok]: {standalone} SSCAN with encoding hashtable (4 ms) +[ok]: {standalone} HSCAN with encoding listpack (2 ms) +[ok]: {standalone} HSCAN with encoding hashtable (80 ms) [ok]: {standalone} ZSCAN with encoding listpack (2 ms) -[ok]: {standalone} ZSCAN with encoding skiplist (66 ms) -[ok]: {standalone} SCAN guarantees check under write load (13 ms) +[ok]: {standalone} ZSCAN with encoding skiplist (84 ms) +[ok]: {standalone} SCAN guarantees check under write load (33 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} HSCAN with NOVALUES (1 ms) [ok]: {standalone} ZSCAN with PATTERN (0 ms) -[ok]: {standalone} ZSCAN with NOSCORES (0 ms) -[ok]: {standalone} ZSCAN scores: regression test for issue #2175 (30 ms) -[ok]: {standalone} SCAN regression test for issue #4906 (5534 ms) -[ok]: {standalone} SCAN MATCH pattern implies cluster slot (19 ms) -=== (external:skip cluster scan) Starting server 127.0.0.1:21513 ok -[ok]: {cluster} SCAN basic (49 ms) -[ok]: {cluster} SCAN COUNT (49 ms) -[ok]: {cluster} SCAN MATCH (39 ms) -[ok]: {cluster} SCAN TYPE (60 ms) -[ok]: {cluster} SCAN unknown type (35 ms) -[ok]: {cluster} SCAN with expired keys (48 ms) -[ok]: {cluster} SCAN with expired keys with TYPE filter (45 ms) -[ok]: {cluster} SSCAN with encoding intset (1 ms) +[ok]: {standalone} ZSCAN with NOSCORES (1 ms) +[ok]: {standalone} ZSCAN scores: regression test for issue #2175 (70 ms) +[ok]: {standalone} SCAN regression test for issue #4906 (9939 ms) +[ok]: {standalone} SCAN MATCH pattern implies cluster slot (34 ms) +=== (external:skip cluster scan) Starting server 127.0.0.1:21515 ok +[ok]: {cluster} SCAN basic (88 ms) +[ok]: {cluster} SCAN COUNT (93 ms) +[ok]: {cluster} SCAN MATCH (72 ms) +[ok]: {cluster} SCAN TYPE (108 ms) +[ok]: {cluster} SCAN unknown type (57 ms) +[ok]: {cluster} SCAN with expired keys (78 ms) +[ok]: {cluster} SCAN with expired keys with TYPE filter (75 ms) +[ok]: {cluster} SSCAN with encoding intset (2 ms) [ok]: {cluster} SSCAN with encoding listpack (1 ms) -[ok]: {cluster} SSCAN with encoding hashtable (3 ms) +[ok]: {cluster} SSCAN with encoding hashtable (5 ms) [ok]: {cluster} HSCAN with encoding listpack (1 ms) -[ok]: {cluster} HSCAN with encoding hashtable (70 ms) -[ok]: {cluster} ZSCAN with encoding listpack (3 ms) -[ok]: {cluster} ZSCAN with encoding skiplist (67 ms) -[ok]: {cluster} SCAN guarantees check under write load (12 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 encoding hashtable (82 ms) +[ok]: {cluster} ZSCAN with encoding listpack (2 ms) +[ok]: {cluster} ZSCAN with encoding skiplist (81 ms) +[ok]: {cluster} SCAN guarantees check under write load (29 ms) +[ok]: {cluster} SSCAN with integer encoded object (issue #1345) (0 ms) +[ok]: {cluster} SSCAN with PATTERN (1 ms) +[ok]: {cluster} HSCAN with PATTERN (0 ms) [ok]: {cluster} HSCAN with NOVALUES (0 ms) [ok]: {cluster} ZSCAN with PATTERN (0 ms) [ok]: {cluster} ZSCAN with NOSCORES (0 ms) -[ok]: {cluster} ZSCAN scores: regression test for issue #2175 (28 ms) -[ok]: {cluster} SCAN regression test for issue #4906 (5363 ms) -[ok]: {cluster} SCAN MATCH pattern implies cluster slot (18 ms) -[43/124 done]: unit/scan (14 seconds) -Testing unit/keyspace -=== (keyspace) Starting server 127.0.0.1:21515 ok -[ok]: DEL against a single item (0 ms) -[ok]: Vararg DEL (1 ms) -[ok]: Untagged multi-key commands (0 ms) -[ok]: KEYS with pattern (1 ms) -[ok]: KEYS to get all keys (0 ms) -[ok]: DBSIZE (0 ms) -[ok]: KEYS with hashtag (0 ms) -[ok]: DEL all keys (0 ms) -[ok]: DEL against expired key (1102 ms) -[ok]: EXISTS (1 ms) -[ok]: Zero length value in key. SET/GET/EXISTS (0 ms) -[ok]: Commands pipelining (0 ms) -[ok]: Non existing command (0 ms) -[ok]: RENAME basic usage (0 ms) -[ok]: RENAME source key should no longer exist (0 ms) -[ok]: RENAME against already existing key (1 ms) -[ok]: RENAMENX basic usage (0 ms) -[ok]: RENAMENX against already existing key (0 ms) -[ok]: RENAMENX against already existing key (2) (1 ms) -[ok]: RENAME against non existing source key (0 ms) -[ok]: RENAME where source and dest key are the same (existing) (0 ms) -[ok]: RENAMENX where source and dest key are the same (existing) (0 ms) -[ok]: RENAME where source and dest key are the same (non existing) (0 ms) -[ok]: RENAME with volatile key, should move the TTL as well (0 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 (1 ms) -[ok]: COPY for string does not copy data to no-integer DB (0 ms) -[ok]: COPY can copy key expire metadata as well (1 ms) -[ok]: COPY does not create an expire if it does not exist (1 ms) -[ok]: COPY basic usage for list - quicklist (42 ms) -[ok]: COPY basic usage for list - listpack (1 ms) -[ok]: COPY basic usage for $type set (1 ms) -[ok]: COPY basic usage for $type set (0 ms) -[ok]: COPY basic usage for $type set (13 ms) -[ok]: COPY basic usage for listpack sorted set (1 ms) -[ok]: COPY basic usage for skiplist sorted set (9 ms) -[ok]: COPY basic usage for listpack hash (0 ms) -[ok]: COPY basic usage for hashtable hash (8 ms) -[ok]: COPY basic usage for stream (74 ms) -[ok]: COPY basic usage for stream-cgroups (5 ms) -[ok]: MOVE basic usage (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]: SET/GET keys in different DBs (1 ms) -[ok]: RANDOMKEY (5 ms) -[ok]: RANDOMKEY against empty DB (0 ms) -[ok]: RANDOMKEY regression 1 (0 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 (1 ms) -[ok]: Coverage: SWAPDB and FLUSHDB (1 ms) -[ok]: Regression for pattern matching very long nested loops (44 ms) -[44/124 done]: unit/keyspace (2 seconds) +[ok]: {cluster} ZSCAN scores: regression test for issue #2175 (52 ms) +[ok]: {cluster} SCAN regression test for issue #4906 (9888 ms) +[ok]: {cluster} SCAN MATCH pattern implies cluster slot (41 ms) +[44/124 done]: unit/scan (25 seconds) Testing unit/type/string === (string) Starting server 127.0.0.1:21517 ok [ok]: SET and GET an item (0 ms) -[ok]: SET and GET an empty item (0 ms) -[ok]: Very big payload in GET/SET (67 ms) -[ok]: Very big payload random access (4987 ms) -[ok]: SET 10000 numeric keys and access all them in reverse order (1033 ms) +[ok]: SET and GET an empty item (1 ms) +[ok]: Very big payload in GET/SET (91 ms) +[ok]: Very big payload random access (4891 ms) +[ok]: SET 10000 numeric keys and access all them in reverse order (2552 ms) [ok]: DBSIZE should be 10000 now (0 ms) -[ok]: SETNX target key missing (0 ms) -[ok]: SETNX target key exists (0 ms) -[ok]: SETNX against not-expired volatile key (0 ms) -[ok]: SETNX against expired volatile key (2562 ms) -[ok]: GETEX EX option (0 ms) +[ok]: SETNX target key missing (1 ms) +[ok]: SETNX target key exists (1 ms) +[ok]: SETNX against not-expired volatile key (1 ms) +[ok]: SETNX against expired volatile key (3182 ms) +[ok]: GETEX EX option (1 ms) [ok]: GETEX PX option (0 ms) [ok]: GETEX EXAT option (1 ms) -[ok]: GETEX PXAT option (0 ms) +[ok]: GETEX PXAT option (1 ms) [ok]: GETEX PERSIST option (0 ms) [ok]: GETEX no option (1 ms) [ok]: GETEX syntax errors (0 ms) -[ok]: GETEX and GET expired key or not exist (2 ms) -[ok]: GETEX no arguments (1 ms) -[ok]: GETDEL command (0 ms) -[ok]: GETDEL propagate as DEL command to replica (80 ms) -[ok]: GETEX without argument does not propagate to replica (101 ms) +[ok]: GETEX and GET expired key or not exist (3 ms) +[ok]: GETEX no arguments (0 ms) +[ok]: GETDEL command (1 ms) +[ok]: GETDEL propagate as DEL command to replica (416 ms) +[ok]: GETEX without argument does not propagate to replica (505 ms) [ok]: MGET (0 ms) -[ok]: MGET against non existing key (1 ms) +[ok]: MGET against non existing key (0 ms) [ok]: MGET against non-string key (0 ms) -[ok]: GETSET (set new value) (0 ms) -[ok]: GETSET (replace old value) (0 ms) -[ok]: MSET base case (1 ms) +[ok]: GETSET (set new value) (1 ms) +[ok]: GETSET (replace old value) (1 ms) +[ok]: MSET base case (0 ms) [ok]: MSET/MSETNX wrong number of args (0 ms) -[ok]: MSET with already existing - same key twice (0 ms) +[ok]: MSET with already existing - same key twice (1 ms) [ok]: MSETNX with already existent key (0 ms) [ok]: MSETNX with not existing keys (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 non-existing key (1 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 (0 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 (1 ms) [ok]: SETBIT against key with wrong type (0 ms) -[ok]: SETBIT with out of range bit offset (0 ms) +[ok]: SETBIT with out of range bit offset (1 ms) [ok]: SETBIT with non-bit argument (1 ms) -[ok]: SETBIT fuzzing (279 ms) -[ok]: GETBIT against non-existing key (0 ms) +[ok]: SETBIT fuzzing (584 ms) +[ok]: GETBIT against non-existing key (1 ms) [ok]: GETBIT against string-encoded key (1 ms) -[ok]: GETBIT against integer-encoded key (0 ms) +[ok]: GETBIT against integer-encoded key (1 ms) [ok]: SETRANGE against non-existing key (1 ms) -[ok]: SETRANGE against string-encoded key (0 ms) -[ok]: SETRANGE against integer-encoded key (1 ms) -[ok]: SETRANGE against key with wrong type (0 ms) +[ok]: SETRANGE against string-encoded key (1 ms) +[ok]: SETRANGE against integer-encoded key (2 ms) +[ok]: SETRANGE against key with wrong type (1 ms) [ok]: SETRANGE with out of range offset (1 ms) [ok]: GETRANGE against non-existing key (0 ms) -[ok]: GETRANGE against wrong key type (0 ms) +[ok]: GETRANGE against wrong key type (1 ms) [ok]: GETRANGE against string value (1 ms) -[ok]: GETRANGE against integer-encoded value (0 ms) -[ok]: GETRANGE fuzzing (465 ms) +[ok]: GETRANGE against integer-encoded value (1 ms) +[ok]: GETRANGE fuzzing (917 ms) [ok]: Coverage: SUBSTR (1 ms) -[ok]: trim on SET with big value (86 ms) -[ok]: Extended SET can detect syntax errors (0 ms) +[ok]: trim on SET with big value (96 ms) +[ok]: Extended SET can detect syntax errors (1 ms) [ok]: Extended SET NX option (0 ms) -[ok]: Extended SET XX option (0 ms) -[ok]: Extended SET GET option (0 ms) -[ok]: Extended SET GET option with no previous value (0 ms) +[ok]: Extended SET XX option (1 ms) +[ok]: Extended SET GET option (1 ms) +[ok]: Extended SET GET option with no previous value (1 ms) [ok]: Extended SET GET option with XX (1 ms) [ok]: Extended SET GET option with XX and no previous value (0 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 option with NX (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 (1 ms) [ok]: Extended SET EX option (0 ms) [ok]: Extended SET PX option (0 ms) -[ok]: Extended SET EXAT option (0 ms) -[ok]: Extended SET PXAT option (1 ms) -[ok]: SET EXAT / PXAT Expiration time is expired (59 ms) +[ok]: Extended SET EXAT option (1 ms) +[ok]: Extended SET PXAT option (0 ms) +[ok]: SET EXAT / PXAT Expiration time is expired (575 ms) [ok]: Extended SET using multiple options at once (0 ms) -[ok]: GETRANGE with huge ranges, Github issue #1844 (1 ms) -[ok]: LCS basic (0 ms) -[ok]: LCS len (0 ms) +[ok]: GETRANGE with huge ranges, Github issue #1844 (0 ms) +[ok]: LCS basic (1 ms) +[ok]: LCS len (1 ms) [ok]: LCS indexes (1 ms) [ok]: LCS indexes with match len (0 ms) [ok]: LCS indexes with match len and minimum match len (1 ms) [ok]: SETRANGE with huge offset (0 ms) -[ok]: APPEND modifies the encoding from int to raw (0 ms) -[45/124 done]: unit/type/string (10 seconds) -Testing unit/type/list -=== () Starting server 127.0.0.1:21519 ok -[ok]: packed node check compression with insert and pop (2 ms) -[ok]: packed node check compression combined with trim (0 ms) -[ok]: packed node check compression with lset (1 ms) -[ok]: plain node check compression with insert and pop (362 ms) -[ok]: plain node check compression combined with trim (131 ms) -[ok]: plain node check compression with lset (179 ms) -=== () Starting server 127.0.0.1:21521 ok -[ok]: Test LPUSH and LPOP on plain nodes (10 ms) -[ok]: Test LINDEX and LINSERT on plain nodes (1 ms) -[ok]: Test LTRIM on plain nodes (1 ms) -[ok]: Test LREM on plain nodes (0 ms) -[ok]: Test LPOS on plain nodes (1 ms) -[ok]: Test LMOVE on plain nodes (1 ms) -[ok]: Test LSET with packed / plain combinations (90 ms) -[ok]: Test LSET with packed is split in the middle (1 ms) -[ok]: Test LSET with packed consist only one item (175 ms) -[ok]: Crash due to delete entry from a compress quicklist node (1 ms) -[ok]: Crash due to split quicklist node wrongly (0 ms) -[ok]: Test LPUSH and LPOP on plain nodes (128 ms) -[ok]: Test LINDEX and LINSERT on plain nodes (1 ms) -[ok]: Test LTRIM on plain nodes (0 ms) -[ok]: Test LREM on plain nodes (0 ms) -[ok]: Test LPOS on plain nodes (1 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 (1 ms) -[ok]: Test LSET with packed consist only one item (183 ms) -[ok]: Crash due to delete entry from a compress quicklist node (1 ms) -[ok]: Crash due to split quicklist node wrongly (0 ms) -=== () Starting server 127.0.0.1:21523 ok -[ignore]: Test LPUSH and LPOP on plain nodes over 4GB: large memory flag not provided -[ignore]: Test LINDEX and LINSERT on plain nodes over 4GB: large memory flag not provided -[ignore]: Test LTRIM on plain nodes over 4GB: large memory flag not provided -[ignore]: Test LREM on plain nodes over 4GB: large memory flag not provided -[ignore]: Test LSET on plain nodes over 4GB: large memory flag not provided -[ignore]: Test LSET on plain nodes with large elements under packed_threshold over 4GB: large memory flag not provided -[ignore]: Test LSET splits a quicklist node, and then merge: large memory flag not provided -[ignore]: Test LSET splits a LZF compressed quicklist node, and then merge: large memory flag not provided -[ignore]: Test LMOVE on plain nodes over 4GB: large memory flag not provided -=== (list) Starting server 127.0.0.1:21525 ok -[ok]: LPOS basic usage - quicklist (44 ms) -[ok]: LPOS RANK (positive, negative and zero rank) option (0 ms) -[ok]: LPOS COUNT option (1 ms) -[ok]: LPOS COUNT + RANK option (0 ms) -[ok]: LPOS non existing key (1 ms) -[ok]: LPOS no match (0 ms) -[ok]: LPOS MAXLEN (0 ms) -[ok]: LPOS when RANK is greater than matches (1 ms) -[ok]: LPUSH, RPUSH, LLENGTH, LINDEX, LPOP - quicklist (89 ms) -[ok]: LPOP/RPOP with wrong number of arguments (0 ms) -[ok]: RPOP/LPOP with the optional count argument - quicklist (47 ms) -[ok]: LPOS basic usage - listpack (0 ms) -[ok]: LPOS RANK (positive, negative and zero rank) option (1 ms) -[ok]: LPOS COUNT option (0 ms) -[ok]: LPOS COUNT + RANK option (1 ms) -[ok]: LPOS non existing key (0 ms) -[ok]: LPOS no match (0 ms) -[ok]: LPOS MAXLEN (0 ms) -[ok]: LPOS when RANK is greater than matches (1 ms) -[ok]: LPUSH, RPUSH, LLENGTH, LINDEX, LPOP - listpack (1 ms) -[ok]: LPOP/RPOP with wrong number of arguments (0 ms) -[ok]: RPOP/LPOP with the optional count argument - listpack (0 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 (0 ms) -[ok]: LPOP/RPOP with against non existing key in RESP3 (0 ms) -[ok]: LPOP/RPOP with the count 0 returns an empty array in RESP2 (0 ms) -[ok]: LPOP/RPOP against non existing key in RESP2 (0 ms) -[ok]: LPOP/RPOP with against non existing key in RESP2 (0 ms) -[ok]: Variadic RPUSH/LPUSH (0 ms) -[ok]: DEL a list (0 ms) -[ok]: BLPOP: single existing list - quicklist (48 ms) -[ok]: BLPOP: multiple existing lists - quicklist (92 ms) -[ok]: BLPOP: second list has an entry - quicklist (48 ms) -[ok]: BLMPOP_LEFT: single existing list - quicklist (48 ms) -[ok]: BLMPOP_LEFT: multiple existing lists - quicklist (100 ms) -[ok]: BLMPOP_LEFT: second list has an entry - quicklist (47 ms) -[ok]: BRPOPLPUSH - quicklist (48 ms) -[ok]: BLMOVE left left - quicklist (48 ms) -[ok]: BLMOVE left right - quicklist (48 ms) -[ok]: BLMOVE right left - quicklist (48 ms) -[ok]: BLMOVE right right - quicklist (48 ms) -[ok]: BLPOP: single existing list - listpack (5 ms) -[ok]: BLPOP: multiple existing lists - listpack (5 ms) -[ok]: BLPOP: second list has an entry - listpack (4 ms) -[ok]: BLMPOP_LEFT: single existing list - listpack (5 ms) -[ok]: BLMPOP_LEFT: multiple existing lists - listpack (6 ms) -[ok]: BLMPOP_LEFT: second list has an entry - listpack (6 ms) -[ok]: BRPOPLPUSH - listpack (5 ms) -[ok]: BLMOVE left left - listpack (6 ms) -[ok]: BLMOVE left right - listpack (7 ms) -[ok]: BLMOVE right left - listpack (5 ms) -[ok]: BLMOVE right right - listpack (5 ms) -[ok]: BLPOP, LPUSH + DEL should not awake blocked client (7 ms) -[ok]: BLPOP, LPUSH + DEL + SET should not awake blocked client (5 ms) -[ok]: BLMPOP_LEFT, LPUSH + DEL should not awake blocked client (5 ms) -[ok]: BLMPOP_LEFT, LPUSH + DEL + SET should not awake blocked client (5 ms) -[ok]: BLPOP with same key multiple times should work (issue #801) (6 ms) -[ok]: MULTI/EXEC is isolated from the point of view of BLPOP (5 ms) -[ok]: BLPOP with variadic LPUSH (5 ms) -[ok]: MULTI/EXEC is isolated from the point of view of BLMPOP_LEFT (5 ms) -[ok]: BLMPOP_LEFT with variadic LPUSH (5 ms) -[ok]: BRPOPLPUSH with zero timeout should block indefinitely (5 ms) -[ok]: BLMOVE left left with zero timeout should block indefinitely (5 ms) -[ok]: BLMOVE left right with zero timeout should block indefinitely (5 ms) -[ok]: BLMOVE right left with zero timeout should block indefinitely (5 ms) -[ok]: BLMOVE right right with zero timeout should block indefinitely (5 ms) -[ok]: BLMOVE (left, left) with a client BLPOPing the target list (9 ms) -[ok]: BLMOVE (left, right) with a client BLPOPing the target list (9 ms) -[ok]: BLMOVE (right, left) with a client BLPOPing the target list (10 ms) -[ok]: BLMOVE (right, right) with a client BLPOPing the target list (9 ms) -[ok]: BRPOPLPUSH with wrong source type (4 ms) -[ok]: BRPOPLPUSH with wrong destination type (10 ms) -[ok]: BRPOPLPUSH maintains order of elements after failure (5 ms) -[ok]: BRPOPLPUSH with multiple blocked clients (9 ms) -[ok]: BLMPOP with multiple blocked clients (18 ms) -[ok]: Linked LMOVEs (9 ms) -[ok]: Circular BRPOPLPUSH (9 ms) -[ok]: Self-referential BRPOPLPUSH (5 ms) -[ok]: BRPOPLPUSH inside a transaction (0 ms) -[ok]: PUSH resulting from BRPOPLPUSH affect WATCH (9 ms) -[ok]: BRPOPLPUSH does not affect WATCH while still blocked (11 ms) -[ok]: BRPOPLPUSH timeout (1020 ms) -[ok]: SWAPDB awakes blocked client (7 ms) -[ok]: SWAPDB wants to wake blocked client, but the key already expired (403 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 (1014 ms) -[ok]: BLPOP when new key is moved into place (6 ms) -[ok]: BLPOP when result key is created by SORT..STORE (5 ms) -[ok]: BLMPOP_LEFT when new key is moved into place (5 ms) -[ok]: BLMPOP_LEFT when result key is created by SORT..STORE (5 ms) -[ok]: BLPOP: timeout value out of range (0 ms) -[ok]: BLPOP: with single empty list argument (5 ms) -[ok]: BLPOP: with negative timeout (4 ms) -[ok]: BLPOP: with non-integer timeout (5 ms) -[ok]: BLPOP: with zero timeout should block indefinitely (5 ms) -[ok]: BLPOP: with 0.001 timeout should not block indefinitely (25 ms) -[ok]: BLPOP: second argument is not a list (5 ms) -[ok]: BLPOP: timeout (1038 ms) -[ok]: BLPOP: arguments are empty (6 ms) -[ok]: BRPOP: with single empty list argument (5 ms) -[ok]: BRPOP: with negative timeout (5 ms) -[ok]: BRPOP: with non-integer timeout (6 ms) -[ok]: BRPOP: with zero timeout should block indefinitely (5 ms) -[ok]: BRPOP: with 0.001 timeout should not block indefinitely (26 ms) -[ok]: BRPOP: second argument is not a list (6 ms) -[ok]: BRPOP: timeout (1050 ms) -[ok]: BRPOP: arguments are empty (6 ms) -[ok]: BLMPOP_LEFT: with single empty list argument (5 ms) -[ok]: BLMPOP_LEFT: with negative timeout (4 ms) -[ok]: BLMPOP_LEFT: with non-integer timeout (5 ms) -[ok]: BLMPOP_LEFT: with zero timeout should block indefinitely (4 ms) -[ok]: BLMPOP_LEFT: with 0.001 timeout should not block indefinitely (25 ms) -[ok]: BLMPOP_LEFT: second argument is not a list (5 ms) -[ok]: BLMPOP_LEFT: timeout (1052 ms) -[ok]: BLMPOP_LEFT: arguments are empty (6 ms) -[ok]: BLMPOP_RIGHT: with single empty list argument (5 ms) -[ok]: BLMPOP_RIGHT: with negative timeout (4 ms) -[ok]: BLMPOP_RIGHT: with non-integer timeout (5 ms) -[ok]: BLMPOP_RIGHT: with zero timeout should block indefinitely (4 ms) -[ok]: BLMPOP_RIGHT: with 0.001 timeout should not block indefinitely (25 ms) -[ok]: BLMPOP_RIGHT: second argument is not a list (5 ms) -[ok]: BLMPOP_RIGHT: timeout (1053 ms) -[ok]: BLMPOP_RIGHT: arguments are empty (6 ms) -[ok]: BLPOP inside a transaction (1 ms) -[ok]: BLMPOP_LEFT inside a transaction (0 ms) -[ok]: BLMPOP propagate as pop with count command to replica (196 ms) -[ok]: LPUSHX, RPUSHX - generic (1 ms) -[ok]: LPUSHX, RPUSHX - quicklist (44 ms) -[ok]: LINSERT - quicklist (45 ms) -[ok]: LPUSHX, RPUSHX - listpack (1 ms) -[ok]: LINSERT - listpack (1 ms) -[ok]: LINSERT raise error on bad syntax (0 ms) -[ok]: LINSERT against non-list value error (1 ms) -[ok]: LINSERT against non existing key (0 ms) -[ok]: LINDEX consistency test - listpack (32 ms) -[ok]: LINDEX random access - listpack (23 ms) -[ok]: Check if list is still ok after a DEBUG RELOAD - listpack (161 ms) -[ok]: LINDEX consistency test - listpack (82 ms) -[ok]: LINDEX random access - listpack (54 ms) -[ok]: Check if list is still ok after a DEBUG RELOAD - listpack (134 ms) -[ok]: LINDEX consistency test - quicklist (32 ms) -[ok]: LINDEX random access - quicklist (23 ms) -[ok]: Check if list is still ok after a DEBUG RELOAD - quicklist (53 ms) -[ok]: LINDEX consistency test - quicklist (81 ms) -[ok]: LINDEX random access - quicklist (67 ms) -[ok]: Check if list is still ok after a DEBUG RELOAD - quicklist (128 ms) -[ok]: LLEN against non-list value error (0 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 (44 ms) -[ok]: LMOVE left left base case - quicklist (43 ms) -[ok]: LMOVE left right base case - quicklist (43 ms) -[ok]: LMOVE right left base case - quicklist (44 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 (44 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 (88 ms) -[ok]: LMOVE left left with quicklist source and existing target quicklist (87 ms) -[ok]: LMOVE left right with quicklist source and existing target quicklist (88 ms) -[ok]: LMOVE right left with quicklist source and existing target quicklist (87 ms) -[ok]: LMOVE right right with quicklist source and existing target quicklist (88 ms) -[ok]: RPOPLPUSH with quicklist source and existing target listpack (43 ms) -[ok]: LMOVE left left with quicklist source and existing target listpack (44 ms) -[ok]: LMOVE left right with quicklist source and existing target listpack (44 ms) -[ok]: LMOVE right left with quicklist source and existing target listpack (44 ms) -[ok]: LMOVE right right with quicklist source and existing target listpack (43 ms) -[ok]: RPOPLPUSH base case - listpack (1 ms) -[ok]: LMOVE left left base case - listpack (1 ms) -[ok]: LMOVE left right base case - listpack (1 ms) -[ok]: LMOVE right left base case - listpack (1 ms) -[ok]: LMOVE right right base case - listpack (1 ms) -[ok]: RPOPLPUSH with the same list as src and dst - listpack (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 (0 ms) -[ok]: LMOVE right left with the same list as src and dst - listpack (1 ms) -[ok]: LMOVE right right with the same list as src and dst - listpack (1 ms) -[ok]: RPOPLPUSH with listpack source and existing target quicklist (43 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 (43 ms) -[ok]: LMOVE right right with listpack source and existing target quicklist (44 ms) -[ok]: RPOPLPUSH with listpack source and existing target listpack (2 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 (0 ms) -[ok]: LMOVE right right with listpack source and existing target listpack (1 ms) -[ok]: RPOPLPUSH against non existing key (1 ms) -[ok]: RPOPLPUSH against non list src key (0 ms) -[ok]: RPOPLPUSH against non list dst key - quicklist (42 ms) -[ok]: RPOPLPUSH against non list dst key - listpack (1 ms) -[ok]: RPOPLPUSH against non existing src key (0 ms) -[ok]: Basic LPOP/RPOP/LMPOP - quicklist (86 ms) -[ok]: Basic LPOP/RPOP/LMPOP - listpack (1 ms) -[ok]: LPOP/RPOP/LMPOP against empty list (1 ms) -[ok]: LPOP/RPOP/LMPOP NON-BLOCK or BLOCK against non list value (1 ms) -[ok]: Mass RPOP/LPOP - listpack (28 ms) -[ok]: Mass RPOP/LPOP - listpack (62 ms) -[ok]: LMPOP with illegal argument (1 ms) -[ok]: LMPOP single existing list - quicklist (133 ms) -[ok]: LMPOP multiple existing lists - quicklist (176 ms) -[ok]: LMPOP single existing list - listpack (3 ms) -[ok]: LMPOP multiple existing lists - listpack (2 ms) -[ok]: LMPOP propagate as pop with count command to replica (59 ms) -[ok]: LRANGE basics - quicklist (44 ms) -[ok]: LRANGE inverted indexes - quicklist (44 ms) -[ok]: LRANGE out of range indexes including the full list - quicklist (44 ms) -[ok]: LRANGE out of range negative end index - quicklist (44 ms) -[ok]: LRANGE basics - listpack (2 ms) -[ok]: LRANGE inverted indexes - listpack (1 ms) -[ok]: LRANGE out of range indexes including the full list - listpack (0 ms) -[ok]: LRANGE out of range negative end index - listpack (0 ms) -[ok]: LRANGE against non existing key (0 ms) -[ok]: LRANGE with start > end yields an empty array for backward compatibility (1 ms) -[ok]: LTRIM basics - quicklist (527 ms) -[ok]: LTRIM out of range negative end index - quicklist (88 ms) -[ok]: LSET - quicklist (44 ms) -[ok]: LSET out of range index - quicklist (0 ms) -[ok]: LTRIM basics - listpack (9 ms) -[ok]: LTRIM out of range negative end index - listpack (1 ms) -[ok]: LSET - listpack (1 ms) -[ok]: LSET out of range index - listpack (1 ms) -[ok]: LSET against non existing key (0 ms) -[ok]: LSET against non list value (0 ms) -[ok]: LREM remove all the occurrences - quicklist (44 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 (44 ms) -[ok]: LREM starting from tail with negative count (2) - quicklist (0 ms) -[ok]: LREM deleting objects that may be int encoded - quicklist (43 ms) -[ok]: LREM remove all the occurrences - listpack (1 ms) -[ok]: LREM remove the first occurrence - listpack (0 ms) -[ok]: LREM remove non existing element - listpack (0 ms) -[ok]: LREM starting from tail with negative count - listpack (1 ms) -[ok]: LREM starting from tail with negative count (2) - listpack (0 ms) -[ok]: LREM deleting objects that may be int encoded - listpack (1 ms) -[ok]: Regression for bug 593 - chaining BRPOPLPUSH with other blocking cmds (11 ms) -[ok]: BLPOP/BLMOVE should increase dirty (7 ms) -[ok]: client unblock tests (6 ms) -[ok]: client unblock tests (7 ms) -[ok]: List listpack -> quicklist encoding conversion (3 ms) -[ok]: List listpack -> quicklist encoding conversion (174 ms) -[ok]: List quicklist -> listpack encoding conversion (220 ms) -[ok]: List encoding conversion when RDB loading (65 ms) -[ok]: List invalid list-max-listpack-size config (90 ms) -[ok]: List of various encodings (46 ms) -[ok]: List of various encodings - sanitize dump (1 ms) -[ok]: Unblock fairness is kept while pipelining (11 ms) -[ok]: Unblock fairness is kept during nested unblock (15 ms) -[ok]: Blocking command accounted only once in commandstats (5 ms) -[ok]: Blocking command accounted only once in commandstats after timeout (6 ms) -[ok]: Command being unblocked cause another command to get unblocked execution order test (74 ms) -[46/124 done]: unit/type/list (15 seconds) -Testing unit/type/stream-cgroups -=== (stream) Starting server 127.0.0.1:21527 ok -[ok]: XGROUP CREATE: creation and duplicate group name detection (1 ms) -[ok]: XGROUP CREATE: with ENTRIESREAD parameter (1 ms) -[ok]: XGROUP CREATE: automatic stream creation fails without MKSTREAM (0 ms) -[ok]: XGROUP CREATE: automatic stream creation works with MKSTREAM (0 ms) -[ok]: XREADGROUP will return only new elements (0 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 (22 ms) -[ok]: XPENDING with exclusive range intervals works as expected (0 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]: XACK is able to accept multiple arguments (0 ms) -[ok]: XACK should fail if got at least one invalid ID (1 ms) -[ok]: PEL NACK reassignment after XGROUP SETID event (1 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 (38 ms) -[ok]: Blocking XREADGROUP: key deleted (6 ms) -[ok]: Blocking XREADGROUP: key type changed with SET (5 ms) -[ok]: Blocking XREADGROUP: key type changed with transaction (5 ms) -[ok]: Blocking XREADGROUP: flushed DB (5 ms) -[ok]: Blocking XREADGROUP: swapped DB, key doesn't exist (6 ms) -[ok]: Blocking XREADGROUP: swapped DB, key is not a stream (5 ms) -[ok]: XREAD and XREADGROUP against wrong parameter (0 ms) -[ok]: Blocking XREAD: key deleted (5 ms) -[ok]: Blocking XREAD: key type changed with SET (5 ms) -[ok]: Blocking XREADGROUP for stream that ran dry (issue #5299) (74 ms) -[ok]: Blocking XREADGROUP will ignore BLOCK if ID is not > (7 ms) -[ok]: Blocking XREADGROUP for stream key that has clients blocked on list (11 ms) -[ok]: Blocking XREADGROUP for stream key that has clients blocked on stream - avoid endless loop (13 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 (6 ms) -[ok]: RENAME can unblock XREADGROUP with data (6 ms) -[ok]: RENAME can unblock XREADGROUP with -NOGROUP (5 ms) -[ok]: XCLAIM can claim PEL items from another consumer (606 ms) -[ok]: XCLAIM without JUSTID increments delivery count (405 ms) -[ok]: XCLAIM same consumer (203 ms) -[ok]: XAUTOCLAIM can claim PEL items from another consumer (607 ms) -[ok]: XAUTOCLAIM as an iterator (202 ms) -[ok]: XAUTOCLAIM COUNT must be > 0 (0 ms) -[ok]: XCLAIM with XDEL (1 ms) -[ok]: XCLAIM with trimming (1 ms) -[ok]: XAUTOCLAIM with XDEL (0 ms) -[ok]: XAUTOCLAIM with XDEL and count (1 ms) -[ok]: XAUTOCLAIM with out of range count (1 ms) -[ok]: XCLAIM with trimming (0 ms) -[ok]: XINFO FULL output (3 ms) -[ok]: Consumer seen-time and active-time (206 ms) -[ok]: XGROUP CREATECONSUMER: create consumer if does not exist (1 ms) -[ok]: XGROUP CREATECONSUMER: group must exist (0 ms) -=== (stream needs:debug) Starting server 127.0.0.1:21529 ok -[ok]: XREADGROUP with NOACK creates consumer (24 ms) - -Waiting for background AOF rewrite to finish... [ok]: Consumer without PEL is present in AOF after AOFRW (91 ms) -[ok]: Consumer group read counter and lag in empty streams (1 ms) -[ok]: Consumer group read counter and lag sanity (3 ms) -[ok]: Consumer group lag with XDELs (4 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 127.0.0.1:21531 ok -[ok]: Consumer group last ID propagation to slave (NOACK=0) (105 ms) -[ok]: Consumer group last ID propagation to slave (NOACK=1) (104 ms) -=== (external:skip) Starting server 127.0.0.1:21533 ok -[ok]: Replication tests of XCLAIM with deleted entries (autoclaim=0) (104 ms) -[ok]: Replication tests of XCLAIM with deleted entries (autoclaim=1) (2 ms) -[ok]: XREADGROUP ACK would propagate entries-read (2 ms) -=== (stream needs:debug) Starting server 127.0.0.1:21535 ok - -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: Empty stream with no lastid can be rewrite into AOF correctly (114 ms) -[47/124 done]: unit/type/stream-cgroups (6 seconds) -Testing unit/type/incr -=== (incr) Starting server 127.0.0.1:21537 ok -[ok]: INCR against non existing key (0 ms) -[ok]: INCR against key created by incr itself (1 ms) -[ok]: DECR against key created by incr (0 ms) -[ok]: DECR against key is not exist and incr (1 ms) -[ok]: INCR against key originally set with SET (0 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) (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]: DECRBY against key is not exist (0 ms) -[ok]: INCR uses shared objects in the 0-9999 range (0 ms) -[ok]: INCR can modify objects in-place (1 ms) -[ok]: INCRBYFLOAT against non existing key (0 ms) -[ok]: INCRBYFLOAT against key originally set with SET (1 ms) -[ok]: INCRBYFLOAT over 32bit value (0 ms) -[ok]: INCRBYFLOAT over 32bit value with over 32bit increment (0 ms) -[ok]: INCRBYFLOAT fails against key with spaces (left) (0 ms) -[ok]: INCRBYFLOAT fails against key with spaces (right) (0 ms) -[ok]: INCRBYFLOAT fails against key with spaces (both) (1 ms) -[ok]: INCRBYFLOAT fails against a key holding a list (0 ms) -[ok]: INCRBYFLOAT does not allow NaN or Infinity (0 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 (0 ms) -[ok]: decr operation should update encoding from raw to int (1 ms) -[ok]: incrby operation should update encoding from raw to int (0 ms) -[ok]: decrby operation should update encoding from raw to int (0 ms) -[48/124 done]: unit/type/incr (0 seconds) +[ok]: APPEND modifies the encoding from int to raw (2 ms) +[45/124 done]: unit/type/string (14 seconds) Testing unit/type/set -=== (set) Starting server 127.0.0.1:21539 ok +=== (set) Starting server 127.0.0.1:21519 ok [ok]: SADD, SCARD, SISMEMBER, SMISMEMBER, SMEMBERS basics - listpack (2 ms) -[ok]: SADD, SCARD, SISMEMBER, SMISMEMBER, SMEMBERS basics - hashtable (8 ms) +[ok]: SADD, SCARD, SISMEMBER, SMISMEMBER, SMEMBERS basics - hashtable (15 ms) [ok]: SADD, SCARD, SISMEMBER, SMISMEMBER, SMEMBERS basics - intset (2 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 (0 ms) -[ok]: SADD against non set (0 ms) +[ok]: SADD against non set (1 ms) [ok]: SADD a non-integer against a small intset (0 ms) -[ok]: SADD a non-integer against a large intset (7 ms) +[ok]: SADD a non-integer against a large intset (12 ms) [ok]: SADD an integer larger than 64 bits (1 ms) -[ok]: SADD an integer larger than 64 bits to a large intset (7 ms) -[ok]: SADD overflows the maximum allowed integers in an intset - single (27 ms) -[ok]: SADD overflows the maximum allowed elements in a listpack - single (8 ms) +[ok]: SADD an integer larger than 64 bits to a large intset (13 ms) +[ok]: SADD overflows the maximum allowed integers in an intset - single (53 ms) +[ok]: SADD overflows the maximum allowed elements in a listpack - single (15 ms) [ok]: SADD overflows the maximum allowed integers in an intset - multiple (1 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 (45 ms) +[ok]: SADD overflows the maximum allowed integers in an intset - single_multiple (43 ms) [ok]: SADD overflows the maximum allowed elements in a listpack - single_multiple (1 ms) -[ok]: Variadic SADD (1 ms) -[ok]: Set encoding after DEBUG RELOAD (115 ms) -[ok]: SREM basics - $type (0 ms) -[ok]: SREM basics - $type (9 ms) -[ok]: SREM basics - intset (0 ms) -[ok]: SREM with multiple arguments (0 ms) +[ok]: Variadic SADD (0 ms) +[ok]: Set encoding after DEBUG RELOAD (276 ms) +[ok]: SREM basics - $type (2 ms) +[ok]: SREM basics - $type (19 ms) +[ok]: SREM basics - intset (2 ms) +[ok]: SREM with multiple arguments (1 ms) [ok]: SREM variadic version with more args needed to destroy the key (0 ms) [ok]: SINTERCARD with illegal arguments (1 ms) [ok]: SINTERCARD against non-set should throw error (1 ms) [ok]: SINTERCARD against non-existing key (0 ms) -[ok]: Generated sets must be encoded correctly - regular (0 ms) -[ok]: SINTER with two sets - regular (1 ms) -[ok]: SINTERCARD with two sets - regular (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 (0 ms) -[ok]: SINTERSTORE with two sets, after a DEBUG RELOAD - regular (11 ms) -[ok]: SUNION with two sets - regular (4 ms) -[ok]: SUNIONSTORE with two sets - regular (4 ms) +[ok]: SINTERSTORE with two sets, after a DEBUG RELOAD - regular (80 ms) +[ok]: SUNION with two sets - regular (7 ms) +[ok]: SUNIONSTORE with two sets - regular (7 ms) [ok]: SINTER against three sets - regular (0 ms) [ok]: SINTERCARD against three sets - regular (1 ms) [ok]: SINTERSTORE with three sets - regular (0 ms) -[ok]: SUNION with non existing keys - regular (4 ms) -[ok]: SDIFF with two sets - regular (0 ms) +[ok]: SUNION with non existing keys - regular (6 ms) +[ok]: SDIFF with two sets - regular (1 ms) [ok]: SDIFF with three sets - regular (0 ms) -[ok]: SDIFFSTORE with three sets - regular (0 ms) -[ok]: SINTER/SUNION/SDIFF with three same sets - regular (3 ms) -[ok]: Generated sets must be encoded correctly - intset (0 ms) +[ok]: SDIFFSTORE with three sets - regular (1 ms) +[ok]: SINTER/SUNION/SDIFF with three same sets - regular (5 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 (9 ms) -[ok]: SUNION with two sets - intset (4 ms) -[ok]: SUNIONSTORE with two sets - intset (3 ms) +[ok]: SINTERSTORE with two sets - intset (1 ms) +[ok]: SINTERSTORE with two sets, after a DEBUG RELOAD - intset (33 ms) +[ok]: SUNION with two sets - intset (7 ms) +[ok]: SUNIONSTORE with two sets - intset (6 ms) [ok]: SINTER against three sets - intset (0 ms) [ok]: SINTERCARD against three sets - intset (0 ms) -[ok]: SINTERSTORE with three sets - intset (0 ms) -[ok]: SUNION with non existing keys - intset (4 ms) +[ok]: SINTERSTORE with three sets - intset (1 ms) +[ok]: SUNION with non existing keys - intset (6 ms) [ok]: SDIFF with two sets - intset (0 ms) -[ok]: SDIFF with three sets - intset (0 ms) +[ok]: SDIFF with three sets - intset (1 ms) [ok]: SDIFFSTORE with three sets - intset (0 ms) -[ok]: SINTER/SUNION/SDIFF with three same sets - intset (3 ms) -[ok]: SINTERSTORE with two listpack sets where result is intset (1 ms) -[ok]: SINTERSTORE with two hashtable sets where result is intset (16 ms) -[ok]: SUNION hashtable and listpack (2 ms) -[ok]: SDIFF with first set empty (0 ms) -[ok]: SDIFF with same set two times (1 ms) -[ok]: SDIFF fuzzing (2707 ms) +[ok]: SINTER/SUNION/SDIFF with three same sets - intset (5 ms) +[ok]: SINTERSTORE with two listpack sets where result is intset (2 ms) +[ok]: SINTERSTORE with two hashtable sets where result is intset (41 ms) +[ok]: SUNION hashtable and listpack (3 ms) +[ok]: SDIFF with first set empty (1 ms) +[ok]: SDIFF with same set two times (0 ms) +[ok]: SDIFF fuzzing (5209 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 (1 ms) +[ok]: SDIFF should handle non existing key as empty (1 ms) +[ok]: SDIFFSTORE against non-set should throw error (2 ms) [ok]: SDIFFSTORE should handle non existing key as empty (1 ms) -[ok]: SINTER against non-set should throw error (0 ms) -[ok]: SINTER should handle non existing key as empty (0 ms) +[ok]: SINTER against non-set should throw error (1 ms) +[ok]: SINTER should handle non existing key as empty (1 ms) [ok]: SINTER with same integer elements but different encoding (1 ms) -[ok]: SINTERSTORE against non-set should throw error (1 ms) +[ok]: SINTERSTORE against non-set should throw error (2 ms) [ok]: SINTERSTORE against non existing keys should delete dstkey (1 ms) -[ok]: SUNION against non-set should throw error (0 ms) -[ok]: SUNION should handle non existing key as empty (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 (1 ms) -[ok]: SUNIONSTORE should handle non existing key as empty (1 ms) -[ok]: SUNIONSTORE against non existing keys should delete dstkey (0 ms) -[ok]: SPOP basics - listpack (0 ms) +[ok]: SUNIONSTORE should handle non existing key as empty (2 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 (6 ms) +[ok]: SRANDMEMBER - listpack (10 ms) [ok]: SPOP basics - intset (1 ms) -[ok]: SPOP with =1 - intset (0 ms) -[ok]: SRANDMEMBER - intset (6 ms) -[ok]: SPOP integer from listpack set (1 ms) -[ok]: SPOP with - listpack (2 ms) -[ok]: SPOP with - intset (2 ms) -[ok]: SPOP with - hashtable (3 ms) -[ok]: SPOP using integers, testing Knuth's and Floyd's algorithm (2 ms) +[ok]: SPOP with =1 - intset (2 ms) +[ok]: SRANDMEMBER - intset (14 ms) +[ok]: SPOP integer from listpack set (2 ms) +[ok]: SPOP with - listpack (5 ms) +[ok]: SPOP with - intset (6 ms) +[ok]: SPOP with - hashtable (4 ms) +[ok]: SPOP using integers, testing Knuth's and Floyd's algorithm (5 ms) [ok]: SPOP using integers with Knuth's algorithm (0 ms) -[ok]: SPOP new implementation: code path #1 intset (1 ms) -[ok]: SPOP new implementation: code path #2 intset (2 ms) -[ok]: SPOP new implementation: code path #3 intset (1 ms) -[ok]: SPOP new implementation: code path #1 listpack (2 ms) -[ok]: SPOP new implementation: code path #2 listpack (1 ms) -[ok]: SPOP new implementation: code path #3 listpack (2 ms) -[ok]: SPOP new implementation: code path #1 propagate as DEL or UNLINK (63 ms) -[ok]: SRANDMEMBER count of 0 is handled correctly (0 ms) +[ok]: SPOP new implementation: code path #1 intset (3 ms) +[ok]: SPOP new implementation: code path #2 intset (4 ms) +[ok]: SPOP new implementation: code path #3 intset (3 ms) +[ok]: SPOP new implementation: code path #1 listpack (4 ms) +[ok]: SPOP new implementation: code path #2 listpack (3 ms) +[ok]: SPOP new implementation: code path #3 listpack (4 ms) +[ok]: SPOP new implementation: code path #1 propagate as DEL or UNLINK (953 ms) +[ok]: SRANDMEMBER count of 0 is handled correctly (1 ms) [ok]: SRANDMEMBER with against non existing key (0 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 (14 ms) -[ok]: SRANDMEMBER with - intset (10 ms) -[ok]: SRANDMEMBER with - hashtable (17 ms) -[ok]: SRANDMEMBER histogram distribution - listpack (54 ms) -[ok]: SRANDMEMBER histogram distribution - intset (54 ms) -[ok]: SRANDMEMBER histogram distribution - hashtable (57 ms) +[ok]: SRANDMEMBER with against non existing key - emptyarray (1 ms) +[ok]: SRANDMEMBER with - listpack (32 ms) +[ok]: SRANDMEMBER with - intset (25 ms) +[ok]: SRANDMEMBER with - hashtable (30 ms) +[ok]: SRANDMEMBER histogram distribution - listpack (107 ms) +[ok]: SRANDMEMBER histogram distribution - intset (101 ms) +[ok]: SRANDMEMBER histogram distribution - hashtable (112 ms) Waiting for background save to finish... Waiting for background save to finish... Hash table 0 stats (main hash table): table size: 4096 number of elements: 499 - different slots: 21 + different slots: 20 max chain length: 39 - avg chain length (counted): 23.76 - avg chain length (computed): 23.76 + avg chain length (counted): 24.95 + avg chain length (computed): 24.95 Chain length distribution: - 0: 4075 (99.49%) - 4: 1 (0.02%) - 14: 1 (0.02%) - 15: 1 (0.02%) + 0: 4076 (99.51%) 16: 1 (0.02%) - 19: 1 (0.02%) - 21: 3 (0.07%) + 17: 2 (0.05%) + 20: 2 (0.05%) 22: 1 (0.02%) - 23: 2 (0.05%) + 23: 4 (0.10%) 25: 1 (0.02%) 26: 1 (0.02%) - 28: 2 (0.05%) - 29: 3 (0.07%) - 32: 1 (0.02%) - 35: 1 (0.02%) + 28: 3 (0.07%) + 30: 3 (0.07%) + 31: 1 (0.02%) 39: 1 (0.02%) Waiting for background save to finish... -Waiting for background save to finish... [ok]: SRANDMEMBER with a dict containing long chain (7960 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 (1 ms) -[ok]: SMOVE non existing src set (1 ms) -[ok]: SMOVE from regular set to non existing destination set (1 ms) -[ok]: SMOVE from intset to non existing destination set (1 ms) +Waiting for background save to finish... [ok]: SRANDMEMBER with a dict containing long chain (14953 ms) +[ok]: SMOVE basics - from regular set to intset (4 ms) +[ok]: SMOVE basics - from intset to regular set (2 ms) +[ok]: SMOVE non existing key (2 ms) +[ok]: SMOVE non existing src set (2 ms) +[ok]: SMOVE from regular set to non existing destination set (2 ms) +[ok]: SMOVE from intset to non existing destination set (2 ms) [ok]: SMOVE wrong src key type (0 ms) [ok]: SMOVE wrong dst key type (1 ms) [ok]: SMOVE with identical source and destination (0 ms) -[ok]: SMOVE only notify dstset when the addition is successful (6 ms) -[ok]: intsets implementation stress testing (1599 ms) -=== () Starting server 127.0.0.1:21541 ok +[ok]: SMOVE only notify dstset when the addition is successful (9 ms) +[ok]: intsets implementation stress testing (2906 ms) +=== () Starting server 127.0.0.1:21521 ok [ignore]: SADD, SCARD, SISMEMBER - large data: large memory flag not provided -[49/124 done]: unit/type/set (13 seconds) +[46/124 done]: unit/type/set (26 seconds) Testing unit/type/stream -=== (stream) Starting server 127.0.0.1:21543 ok -[ok]: XADD wrong number of args (1 ms) -[ok]: XADD can add entries into a stream that XRANGE can fetch (0 ms) +=== (stream) Starting server 127.0.0.1:21523 ok +[ok]: XADD wrong number of args (0 ms) +[ok]: XADD can add entries into a stream that XRANGE can fetch (1 ms) [ok]: XADD IDs are incremental (1 ms) -[ok]: XADD IDs are incremental when ms is the same as well (0 ms) +[ok]: XADD IDs are incremental when ms is the same as well (1 ms) [ok]: XADD IDs correctly report an error when overflowing (0 ms) -[ok]: XADD auto-generated sequence is incremented for last ID (0 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 (0 ms) -[ok]: XADD auto-generated sequence can't overflow (1 ms) -[ok]: XADD 0-* should succeed (0 ms) -[ok]: XADD with MAXLEN option (64 ms) -[ok]: XADD with MAXLEN option and the '=' argument (66 ms) -[ok]: XADD with MAXLEN option and the '~' argument (59 ms) -[ok]: XADD with NOMKSTREAM option (0 ms) -[ok]: XADD with MINID option (64 ms) +[ok]: XADD auto-generated sequence is incremented for last ID (1 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 (1 ms) +[ok]: XADD auto-generated sequence can't overflow (0 ms) +[ok]: XADD 0-* should succeed (1 ms) +[ok]: XADD with MAXLEN option (157 ms) +[ok]: XADD with MAXLEN option and the '=' argument (155 ms) +[ok]: XADD with MAXLEN option and the '~' argument (124 ms) +[ok]: XADD with NOMKSTREAM option (2 ms) +[ok]: XADD with MINID option (127 ms) [ok]: XTRIM with MINID option (1 ms) -[ok]: XTRIM with MINID option, big delta from master record (0 ms) -[ok]: XADD mass insertion and XLEN (1043 ms) +[ok]: XTRIM with MINID option, big delta from master record (1 ms) +[ok]: XADD mass insertion and XLEN (1850 ms) [ok]: XADD with ID 0-0 (1 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 (1 ms) [ok]: XREVRANGE COUNT works as expected (0 ms) -[ok]: XRANGE can be used to iterate the whole stream (196 ms) -[ok]: XREVRANGE returns the reverse of XRANGE (615 ms) -[ok]: XRANGE exclusive ranges (3 ms) -[ok]: XREAD with non empty stream (0 ms) +[ok]: XRANGE can be used to iterate the whole stream (265 ms) +[ok]: XREVRANGE returns the reverse of XRANGE (887 ms) +[ok]: XRANGE exclusive ranges (4 ms) +[ok]: XREAD with non empty stream (1 ms) [ok]: Non blocking XREAD with empty streams (0 ms) -[ok]: XREAD with non empty second stream (780 ms) -[ok]: Blocking XREAD waiting new data (6 ms) -[ok]: Blocking XREAD waiting old data (5 ms) -[ok]: Blocking XREAD will not reply with an empty array (48 ms) -[ok]: Blocking XREAD for stream that ran dry (issue #5299) (101 ms) +[ok]: XREAD with non empty second stream (1388 ms) +[ok]: Blocking XREAD waiting new data (8 ms) +[ok]: Blocking XREAD waiting old data (7 ms) +[ok]: Blocking XREAD will not reply with an empty array (26 ms) +[ok]: Blocking XREAD for stream that ran dry (issue #5299) (98 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 (6 ms) +[ok]: XREAD last element from empty stream (1 ms) +[ok]: XREAD last element blocking from empty stream (7 ms) [ok]: XREAD last element blocking from non-empty stream (1 ms) -[ok]: XREAD last element from multiple streams (0 ms) +[ok]: XREAD last element from multiple streams (1 ms) [ok]: XREAD last element with count > 1 (1 ms) -[ok]: XREAD: XADD + DEL should not awake client (6 ms) -[ok]: XREAD: XADD + DEL + LPUSH should not awake client (5 ms) -[ok]: XREAD with same stream name multiple times should work (6 ms) -[ok]: XREAD + multiple XADD inside transaction (5 ms) +[ok]: XREAD: XADD + DEL should not awake client (7 ms) +[ok]: XREAD: XADD + DEL + LPUSH should not awake client (7 ms) +[ok]: XREAD with same stream name multiple times should work (7 ms) +[ok]: XREAD + multiple XADD inside transaction (7 ms) [ok]: XDEL basic test (1 ms) [ok]: XDEL multiply id test (1 ms) -[ok]: XDEL fuzz test (1150 ms) -[ok]: XRANGE fuzzing (3458 ms) +[ok]: XDEL fuzz test (1906 ms) +[ok]: XRANGE fuzzing (4487 ms) [ok]: XREVRANGE regression test for issue #5006 (1 ms) [ok]: XREAD streamID edge (no-blocking) (1 ms) -[ok]: XREAD streamID edge (blocking) (6 ms) -[ok]: XADD streamID edge (1 ms) -[ok]: XTRIM with MAXLEN option basic test (64 ms) -[ok]: XADD with LIMIT consecutive calls (6 ms) -[ok]: XTRIM with ~ is limited (6 ms) -[ok]: XTRIM without ~ is not limited (6 ms) -[ok]: XTRIM without ~ and with LIMIT (6 ms) -[ok]: XTRIM with LIMIT delete entries no more than limit (0 ms) -=== (stream needs:debug) Starting server 127.0.0.1:21545 ok -[ok]: XADD with MAXLEN > xlen can propagate correctly (11 ms) -=== (stream needs:debug) Starting server 127.0.0.1:21547 ok -[ok]: XADD with MINID > lastid can propagate correctly (8 ms) -=== (stream needs:debug) Starting server 127.0.0.1:21549 ok -[ok]: XADD with ~ MAXLEN can propagate correctly (7 ms) -=== (stream needs:debug) Starting server 127.0.0.1:21551 ok -[ok]: XADD with ~ MAXLEN and LIMIT can propagate correctly (10 ms) -=== (stream needs:debug) Starting server 127.0.0.1:21553 ok -[ok]: XADD with ~ MINID can propagate correctly (6 ms) -=== (stream needs:debug) Starting server 127.0.0.1:21555 ok -[ok]: XADD with ~ MINID and LIMIT can propagate correctly (9 ms) -=== (stream needs:debug) Starting server 127.0.0.1:21557 ok -[ok]: XTRIM with ~ MAXLEN can propagate correctly (8 ms) -=== (stream) Starting server 127.0.0.1:21559 ok -[ok]: XADD can CREATE an empty stream (0 ms) +[ok]: XREAD streamID edge (blocking) (7 ms) +[ok]: XADD streamID edge (0 ms) +[ok]: XTRIM with MAXLEN option basic test (121 ms) +[ok]: XADD with LIMIT consecutive calls (12 ms) +[ok]: XTRIM with ~ is limited (13 ms) +[ok]: XTRIM without ~ is not limited (12 ms) +[ok]: XTRIM without ~ and with LIMIT (12 ms) +[ok]: XTRIM with LIMIT delete entries no more than limit (1 ms) +=== (stream needs:debug) Starting server 127.0.0.1:21525 ok +[ok]: XADD with MAXLEN > xlen can propagate correctly (17 ms) +=== (stream needs:debug) Starting server 127.0.0.1:21527 ok +[ok]: XADD with MINID > lastid can propagate correctly (17 ms) +=== (stream needs:debug) Starting server 127.0.0.1:21529 ok +[ok]: XADD with ~ MAXLEN can propagate correctly (17 ms) +=== (stream needs:debug) Starting server 127.0.0.1:21531 ok +[ok]: XADD with ~ MAXLEN and LIMIT can propagate correctly (19 ms) +=== (stream needs:debug) Starting server 127.0.0.1:21533 ok +[ok]: XADD with ~ MINID can propagate correctly (72 ms) +=== (stream needs:debug) Starting server 127.0.0.1:21535 ok +[ok]: XADD with ~ MINID and LIMIT can propagate correctly (54 ms) +=== (stream needs:debug) Starting server 127.0.0.1:21537 ok +[ok]: XTRIM with ~ MAXLEN can propagate correctly (122 ms) +=== (stream) Starting server 127.0.0.1:21539 ok +[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 (0 ms) -[ok]: XSETID cannot run with an offset but without a maximal tombstone (1 ms) +[ok]: XSETID cannot SETID on non-existent key (1 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 errors on negstive offset (1 ms) [ok]: XSETID cannot set the maximal tombstone with larger ID (0 ms) [ok]: XSETID cannot set the offset to less than the length (1 ms) -[ok]: XSETID cannot set smaller ID than current MAXDELETEDID (0 ms) -=== (stream) Starting server 127.0.0.1:21561 ok +[ok]: XSETID cannot set smaller ID than current MAXDELETEDID (2 ms) +=== (stream) Starting server 127.0.0.1:21541 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 (1 ms) -[ok]: Maximum XDEL ID behaves correctly (1 ms) -[ok]: XADD with artial ID with maximal seq (0 ms) -=== (stream needs:debug) Starting server 127.0.0.1:21563 ok +[ok]: XDEL/TRIM are reflected by recorded first entry (3 ms) +[ok]: Maximum XDEL ID behaves correctly (2 ms) +[ok]: XADD with artial ID with maximal seq (1 ms) +=== (stream needs:debug) Starting server 127.0.0.1:21543 ok Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: Empty stream can be rewrite into AOF correctly (110 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... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... [ok]: Empty stream can be rewrite into AOF correctly (3357 ms) Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: Stream can be rewrite into AOF correctly after XDEL lastid (113 ms) -=== (stream) Starting server 127.0.0.1:21565 ok +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... [ok]: Stream can be rewrite into AOF correctly after XDEL lastid (1072 ms) +=== (stream) Starting server 127.0.0.1:21545 ok [ok]: XGROUP HELP should not have unexpected options (1 ms) [ok]: XINFO HELP should not have unexpected options (0 ms) -[50/124 done]: unit/type/stream (11 seconds) +[47/124 done]: unit/type/stream (28 seconds) +Testing unit/type/incr +=== (incr) Starting server 127.0.0.1:21547 ok +[ok]: INCR against non existing key (0 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]: 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) (0 ms) +[ok]: INCR fails against key with spaces (both) (1 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]: DECRBY against key is not exist (0 ms) +[ok]: INCR uses shared objects in the 0-9999 range (1 ms) +[ok]: INCR can modify objects in-place (1 ms) +[ok]: INCRBYFLOAT against non existing key (1 ms) +[ok]: INCRBYFLOAT against key originally set with SET (0 ms) +[ok]: INCRBYFLOAT over 32bit value (0 ms) +[ok]: INCRBYFLOAT over 32bit value with over 32bit increment (0 ms) +[ok]: INCRBYFLOAT fails against key with spaces (left) (0 ms) +[ok]: INCRBYFLOAT fails against key with spaces (right) (0 ms) +[ok]: INCRBYFLOAT fails against key with spaces (both) (0 ms) +[ok]: INCRBYFLOAT fails against a key holding a list (1 ms) +[ok]: INCRBYFLOAT does not allow NaN or Infinity (0 ms) +[ok]: INCRBYFLOAT decrement (1 ms) +[ok]: string to double with null terminator (0 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 (1 ms) +[48/124 done]: unit/type/incr (0 seconds) +Testing unit/type/list-2 +=== (list) Starting server 127.0.0.1:21549 ok +[ok]: LTRIM stress testing - quicklist (8995 ms) +[ok]: LTRIM stress testing - listpack (9268 ms) +[49/124 done]: unit/type/list-2 (19 seconds) Testing unit/type/zset -=== (zset) Starting server 127.0.0.1:21567 ok +=== (zset) Starting server 127.0.0.1:21551 ok [ok]: Check encoding - listpack (0 ms) [ok]: ZSET basic ZADD and score update - listpack (0 ms) -[ok]: ZSET element can't be set to NaN with ZADD - listpack (1 ms) -[ok]: ZSET element can't be set to NaN with ZINCRBY - listpack (0 ms) +[ok]: ZSET element can't be set to NaN with ZADD - listpack (0 ms) +[ok]: ZSET element can't be set to NaN with ZINCRBY - listpack (1 ms) [ok]: ZADD with options syntax error with incomplete pair - listpack (0 ms) -[ok]: ZADD XX option without key - listpack (0 ms) +[ok]: ZADD XX option without key - listpack (1 ms) [ok]: ZADD XX existing key - listpack (0 ms) [ok]: ZADD XX returns the number of elements actually added - listpack (1 ms) [ok]: ZADD XX updates existing elements score - listpack (0 ms) [ok]: ZADD GT updates existing elements when new scores are greater - listpack (1 ms) -[ok]: ZADD LT updates existing elements when new scores are lower - listpack (0 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 (0 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 (0 ms) +[ok]: ZADD LT XX updates existing elements when new scores are lower and skips new elements - listpack (1 ms) [ok]: ZADD XX and NX are not compatible - listpack (0 ms) [ok]: ZADD NX with non existing key - listpack (1 ms) [ok]: ZADD NX only add new elements without updating old ones - listpack (0 ms) -[ok]: ZADD GT and NX are not compatible - listpack (0 ms) +[ok]: ZADD GT and NX are not compatible - listpack (1 ms) [ok]: ZADD LT and NX are not compatible - listpack (0 ms) [ok]: ZADD LT and GT are not compatible - listpack (0 ms) -[ok]: ZADD INCR LT/GT replies with nill if score not updated - listpack (0 ms) +[ok]: ZADD INCR LT/GT replies with nill if score not updated - listpack (1 ms) [ok]: ZADD INCR LT/GT with inf - listpack (1 ms) [ok]: ZADD INCR works like ZINCRBY - listpack (1 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 (0 ms) +[ok]: ZADD INCR works with a single score-element pair - listpack (1 ms) +[ok]: ZADD CH option changes return value to all changed elements - listpack (1 ms) [ok]: ZINCRBY calls leading to NaN result in error - listpack (0 ms) -[ok]: ZINCRBY against invalid incr value - listpack (1 ms) -[ok]: ZADD - Variadic version base case - listpack (0 ms) +[ok]: ZINCRBY against invalid incr value - listpack (0 ms) +[ok]: ZADD - Variadic version base case - listpack (1 ms) [ok]: ZADD - Return value is the number of actually added items - listpack (0 ms) [ok]: ZADD - Variadic version does not add nothing on single parsing err - listpack (0 ms) -[ok]: ZADD - Variadic version will raise error on missing arg - listpack (0 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 (0 ms) +[ok]: ZREM removes key after last element is removed - listpack (1 ms) [ok]: ZREM variadic version - listpack (1 ms) [ok]: ZREM variadic version -- remove elements after key deletion - listpack (0 ms) -[ok]: ZRANGE basics - listpack (1 ms) +[ok]: ZRANGE basics - listpack (2 ms) [ok]: ZREVRANGE basics - listpack (2 ms) -[ok]: ZRANK/ZREVRANK basics - listpack (1 ms) +[ok]: ZRANK/ZREVRANK basics - listpack (2 ms) [ok]: ZRANK - after deletion - listpack (0 ms) [ok]: ZINCRBY - can create a new sorted set - listpack (1 ms) -[ok]: ZINCRBY - increment and decrement - listpack (0 ms) +[ok]: ZINCRBY - increment and decrement - listpack (1 ms) [ok]: ZINCRBY return value - listpack (0 ms) -[ok]: ZRANGEBYSCORE/ZREVRANGEBYSCORE/ZCOUNT basics - listpack (2 ms) +[ok]: ZRANGEBYSCORE/ZREVRANGEBYSCORE/ZCOUNT basics - listpack (4 ms) [ok]: ZRANGEBYSCORE with WITHSCORES - listpack (1 ms) [ok]: ZRANGEBYSCORE with LIMIT - listpack (4 ms) -[ok]: ZRANGEBYSCORE with LIMIT and WITHSCORES - listpack (0 ms) +[ok]: ZRANGEBYSCORE with LIMIT and WITHSCORES - listpack (1 ms) [ok]: ZRANGEBYSCORE with non-value min or max - listpack (1 ms) [ok]: ZRANGEBYLEX/ZREVRANGEBYLEX/ZLEXCOUNT basics - listpack (2 ms) -[ok]: ZLEXCOUNT advanced - listpack (1 ms) -[ok]: ZRANGEBYLEX with LIMIT - listpack (4 ms) +[ok]: ZLEXCOUNT advanced - listpack (2 ms) +[ok]: ZRANGEBYLEX with LIMIT - listpack (5 ms) [ok]: ZRANGEBYLEX with invalid lex range specifiers - listpack (0 ms) -[ok]: ZREMRANGEBYSCORE basics - listpack (7 ms) +[ok]: ZREMRANGEBYSCORE basics - listpack (10 ms) [ok]: ZREMRANGEBYSCORE with non-value min or max - listpack (1 ms) -[ok]: ZREMRANGEBYRANK basics - listpack (3 ms) -[ok]: ZREMRANGEBYLEX basics - listpack (8 ms) +[ok]: ZREMRANGEBYRANK basics - listpack (6 ms) +[ok]: ZREMRANGEBYLEX basics - listpack (16 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 (0 ms) -[ok]: ZUNION/ZINTER/ZINTERCARD/ZDIFF with empty set - listpack (1 ms) -[ok]: ZUNIONSTORE basics - listpack (1 ms) -[ok]: ZUNION/ZINTER/ZINTERCARD/ZDIFF with integer members - listpack (0 ms) +[ok]: ZUNION/ZINTER/ZINTERCARD/ZDIFF against non-existing key - listpack (2 ms) +[ok]: ZUNIONSTORE with empty set - listpack (3 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 (1 ms) [ok]: ZUNIONSTORE with weights - listpack (1 ms) [ok]: ZUNION with weights - listpack (0 ms) -[ok]: ZUNIONSTORE with a regular set and weights - listpack (0 ms) -[ok]: ZUNIONSTORE with AGGREGATE MIN - listpack (1 ms) -[ok]: ZUNION/ZINTER with AGGREGATE MIN - listpack (0 ms) +[ok]: ZUNIONSTORE with a regular set and weights - listpack (1 ms) +[ok]: ZUNIONSTORE 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 (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 (0 ms) +[ok]: ZINTERCARD with illegal arguments (1 ms) [ok]: ZINTERCARD basics - listpack (1 ms) -[ok]: ZINTER RESP3 - listpack (0 ms) -[ok]: ZINTERSTORE with weights - listpack (0 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 a regular set and weights - listpack (2 ms) [ok]: ZINTERSTORE with AGGREGATE MIN - listpack (0 ms) -[ok]: ZINTERSTORE with AGGREGATE MAX - listpack (0 ms) -[ok]: ZUNIONSTORE with +inf/-inf scores - listpack (1 ms) -[ok]: ZUNIONSTORE with NaN weights - listpack (0 ms) -[ok]: ZINTERSTORE with +inf/-inf scores - listpack (0 ms) +[ok]: ZINTERSTORE with AGGREGATE MAX - listpack (1 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 (3 ms) [ok]: ZINTERSTORE with NaN weights - listpack (1 ms) -[ok]: ZDIFFSTORE basics - listpack (0 ms) +[ok]: ZDIFFSTORE basics - listpack (1 ms) [ok]: ZDIFF basics - listpack (0 ms) -[ok]: ZDIFFSTORE with a regular set - listpack (0 ms) -[ok]: ZDIFF subtracting set from itself - listpack (1 ms) -[ok]: ZDIFF algorithm 1 - listpack (0 ms) +[ok]: ZDIFFSTORE with a regular set - listpack (2 ms) +[ok]: ZDIFF subtracting set from itself - listpack (0 ms) +[ok]: ZDIFF algorithm 1 - listpack (2 ms) [ok]: ZDIFF algorithm 2 - listpack (1 ms) -[ok]: ZDIFF fuzzing - listpack (2214 ms) -[ok]: ZPOPMIN with the count 0 returns an empty array (1 ms) -[ok]: ZPOPMIN with negative count (0 ms) -[ok]: ZPOPMAX with the count 0 returns an empty array (1 ms) -[ok]: ZPOPMAX with negative count (0 ms) -[ok]: Basic ZPOPMIN/ZPOPMAX with a single key - listpack (1 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]: BZPOPMIN/BZPOPMAX with a single existing sorted set - listpack (6 ms) -[ok]: BZPOPMIN/BZPOPMAX with multiple existing sorted sets - listpack (6 ms) -[ok]: BZPOPMIN/BZPOPMAX second sorted set has members - listpack (5 ms) -[ok]: BZMPOP_MIN/BZMPOP_MAX with a single existing sorted set - listpack (5 ms) -[ok]: BZMPOP_MIN/BZMPOP_MAX with multiple existing sorted sets - listpack (5 ms) -[ok]: BZMPOP_MIN/BZMPOP_MAX second sorted set has members - listpack (5 ms) +[ok]: ZDIFF fuzzing - listpack (4970 ms) +[ok]: ZPOPMIN with the count 0 returns an empty array (2 ms) +[ok]: ZPOPMIN with negative count (1 ms) +[ok]: ZPOPMAX with the count 0 returns an empty array (0 ms) +[ok]: ZPOPMAX with negative count (2 ms) +[ok]: Basic ZPOPMIN/ZPOPMAX with a single key - listpack (3 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 (10 ms) +[ok]: BZPOPMIN/BZPOPMAX with multiple existing sorted sets - listpack (9 ms) +[ok]: BZPOPMIN/BZPOPMAX second sorted set has members - listpack (7 ms) +[ok]: BZMPOP_MIN/BZMPOP_MAX with a single existing sorted set - listpack (7 ms) +[ok]: BZMPOP_MIN/BZMPOP_MAX with multiple existing sorted sets - listpack (8 ms) +[ok]: BZMPOP_MIN/BZMPOP_MAX second sorted set has members - listpack (7 ms) [ok]: Basic ZPOPMIN/ZPOPMAX - listpack RESP3 (1 ms) -[ok]: ZPOPMIN/ZPOPMAX with count - listpack RESP3 (0 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 (5 ms) -[ok]: BZMPOP_MIN/BZMPOP_MAX - listpack RESP3 (6 ms) +[ok]: BZPOPMIN/BZPOPMAX - listpack RESP3 (8 ms) +[ok]: BZMPOP_MIN/BZMPOP_MAX - listpack RESP3 (8 ms) [ok]: Check encoding - skiplist (0 ms) -[ok]: ZSET basic ZADD and score update - 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 (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 (0 ms) -[ok]: ZADD GT updates existing elements when new scores are greater - skiplist (0 ms) +[ok]: ZADD XX updates existing elements score - skiplist (1 ms) +[ok]: ZADD GT updates existing elements when new scores are greater - skiplist (1 ms) [ok]: ZADD LT updates existing elements when new scores are lower - skiplist (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 (0 ms) +[ok]: ZADD GT XX updates existing elements when new scores are greater and skips new elements - skiplist (1 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 (0 ms) +[ok]: ZADD INCR LT/GT with inf - skiplist (2 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 (0 ms) -[ok]: ZINCRBY calls leading to NaN result in error - skiplist (0 ms) +[ok]: ZINCRBY calls leading to NaN result in error - skiplist (1 ms) [ok]: ZINCRBY against invalid incr value - skiplist (0 ms) [ok]: ZADD - Variadic version base case - skiplist (1 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 (0 ms) -[ok]: ZADD - Variadic version will raise error on missing arg - skiplist (0 ms) +[ok]: ZADD - Variadic version will raise error on missing arg - 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]: ZCARD basics - skiplist (1 ms) +[ok]: ZREM removes key after last element is removed - skiplist (0 ms) [ok]: ZREM variadic version - skiplist (0 ms) -[ok]: ZREM variadic version -- remove elements after key deletion - skiplist (0 ms) -[ok]: ZRANGE basics - skiplist (1 ms) -[ok]: ZREVRANGE basics - skiplist (1 ms) -[ok]: ZRANK/ZREVRANK basics - skiplist (1 ms) -[ok]: ZRANK - after deletion - skiplist (0 ms) +[ok]: ZREM variadic version -- remove elements after key deletion - skiplist (1 ms) +[ok]: ZRANGE basics - skiplist (2 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 (1 ms) +[ok]: ZINCRBY - increment and decrement - skiplist (2 ms) [ok]: ZINCRBY return value - skiplist (0 ms) -[ok]: ZRANGEBYSCORE/ZREVRANGEBYSCORE/ZCOUNT basics - skiplist (2 ms) -[ok]: ZRANGEBYSCORE with WITHSCORES - skiplist (0 ms) -[ok]: ZRANGEBYSCORE with LIMIT - skiplist (3 ms) -[ok]: ZRANGEBYSCORE with LIMIT and WITHSCORES - skiplist (0 ms) +[ok]: ZRANGEBYSCORE/ZREVRANGEBYSCORE/ZCOUNT basics - skiplist (6 ms) +[ok]: ZRANGEBYSCORE with 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 (1 ms) -[ok]: ZRANGEBYLEX/ZREVRANGEBYLEX/ZLEXCOUNT basics - skiplist (1 ms) -[ok]: ZLEXCOUNT advanced - skiplist (1 ms) -[ok]: ZRANGEBYLEX with LIMIT - skiplist (2 ms) -[ok]: ZRANGEBYLEX with invalid lex range specifiers - skiplist (1 ms) -[ok]: ZREMRANGEBYSCORE basics - skiplist (5 ms) +[ok]: ZRANGEBYLEX/ZREVRANGEBYLEX/ZLEXCOUNT basics - skiplist (3 ms) +[ok]: ZLEXCOUNT advanced - skiplist (2 ms) +[ok]: ZRANGEBYLEX with LIMIT - skiplist (7 ms) +[ok]: ZRANGEBYLEX with invalid lex range specifiers - skiplist (0 ms) +[ok]: ZREMRANGEBYSCORE basics - skiplist (13 ms) [ok]: ZREMRANGEBYSCORE with non-value min or max - skiplist (0 ms) -[ok]: ZREMRANGEBYRANK basics - skiplist (3 ms) -[ok]: ZREMRANGEBYLEX basics - skiplist (5 ms) +[ok]: ZREMRANGEBYRANK basics - skiplist (7 ms) +[ok]: ZREMRANGEBYLEX basics - skiplist (17 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 basics - skiplist (0 ms) -[ok]: ZUNION/ZINTER/ZINTERCARD/ZDIFF with integer members - skiplist (1 ms) -[ok]: ZUNIONSTORE with weights - skiplist (0 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 (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]: ZUNIONSTORE with AGGREGATE MIN - skiplist (1 ms) [ok]: ZUNION/ZINTER with AGGREGATE MIN - skiplist (0 ms) -[ok]: ZUNIONSTORE with AGGREGATE MAX - skiplist (0 ms) +[ok]: ZUNIONSTORE with AGGREGATE MAX - skiplist (1 ms) [ok]: ZUNION/ZINTER with AGGREGATE MAX - skiplist (0 ms) -[ok]: ZINTERSTORE basics - skiplist (0 ms) +[ok]: ZINTERSTORE basics - skiplist (1 ms) [ok]: ZINTER basics - skiplist (0 ms) -[ok]: ZINTERCARD with illegal arguments (0 ms) -[ok]: ZINTERCARD basics - skiplist (0 ms) +[ok]: ZINTERCARD with illegal arguments (1 ms) +[ok]: ZINTERCARD basics - skiplist (1 ms) [ok]: ZINTER RESP3 - skiplist (0 ms) [ok]: ZINTERSTORE with weights - skiplist (0 ms) [ok]: ZINTER with weights - skiplist (0 ms) -[ok]: ZINTERSTORE with a regular set and weights - skiplist (0 ms) -[ok]: ZINTERSTORE with AGGREGATE MIN - skiplist (0 ms) +[ok]: ZINTERSTORE with a regular set and weights - skiplist (1 ms) +[ok]: ZINTERSTORE with AGGREGATE MIN - skiplist (1 ms) [ok]: ZINTERSTORE with AGGREGATE MAX - skiplist (0 ms) -[ok]: ZUNIONSTORE with +inf/-inf scores - skiplist (1 ms) -[ok]: ZUNIONSTORE with NaN weights - skiplist (0 ms) -[ok]: ZINTERSTORE with +inf/-inf scores - skiplist (1 ms) -[ok]: ZINTERSTORE with NaN weights - skiplist (0 ms) +[ok]: ZUNIONSTORE with +inf/-inf scores - skiplist (2 ms) +[ok]: ZUNIONSTORE with NaN weights - skiplist (1 ms) +[ok]: ZINTERSTORE with +inf/-inf scores - skiplist (3 ms) +[ok]: ZINTERSTORE with NaN weights - skiplist (1 ms) [ok]: ZDIFFSTORE basics - skiplist (0 ms) [ok]: ZDIFF basics - skiplist (0 ms) [ok]: ZDIFFSTORE with a regular set - skiplist (0 ms) [ok]: ZDIFF subtracting set from itself - skiplist (0 ms) -[ok]: ZDIFF algorithm 1 - skiplist (0 ms) -[ok]: ZDIFF algorithm 2 - skiplist (1 ms) -[ok]: ZDIFF fuzzing - skiplist (2224 ms) -[ok]: ZPOPMIN with the count 0 returns an empty array (0 ms) +[ok]: ZDIFF algorithm 1 - skiplist (1 ms) +[ok]: ZDIFF algorithm 2 - skiplist (2 ms) +[ok]: ZDIFF fuzzing - skiplist (4842 ms) +[ok]: ZPOPMIN with the count 0 returns an empty array (1 ms) [ok]: ZPOPMIN with negative count (1 ms) -[ok]: ZPOPMAX with the count 0 returns an empty array (0 ms) -[ok]: ZPOPMAX with negative count (0 ms) -[ok]: Basic ZPOPMIN/ZPOPMAX with a single key - skiplist (0 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 (2 ms) [ok]: ZPOPMIN/ZPOPMAX with count - skiplist (1 ms) -[ok]: Basic ZMPOP_MIN/ZMPOP_MAX with a single key - skiplist (1 ms) -[ok]: ZMPOP_MIN/ZMPOP_MAX with count - skiplist (0 ms) -[ok]: BZPOPMIN/BZPOPMAX with a single existing sorted set - skiplist (7 ms) -[ok]: BZPOPMIN/BZPOPMAX with multiple existing sorted sets - skiplist (6 ms) -[ok]: BZPOPMIN/BZPOPMAX second sorted set has members - skiplist (5 ms) -[ok]: BZMPOP_MIN/BZMPOP_MAX with a single existing sorted set - skiplist (5 ms) -[ok]: BZMPOP_MIN/BZMPOP_MAX with multiple existing sorted sets - skiplist (6 ms) -[ok]: BZMPOP_MIN/BZMPOP_MAX second sorted set has members - skiplist (5 ms) -[ok]: Basic ZPOPMIN/ZPOPMAX - skiplist RESP3 (0 ms) +[ok]: Basic ZMPOP_MIN/ZMPOP_MAX with a single key - skiplist (2 ms) +[ok]: ZMPOP_MIN/ZMPOP_MAX with count - skiplist (2 ms) +[ok]: BZPOPMIN/BZPOPMAX with a single existing sorted set - skiplist (8 ms) +[ok]: BZPOPMIN/BZPOPMAX with multiple existing sorted sets - skiplist (8 ms) +[ok]: BZPOPMIN/BZPOPMAX second sorted set has members - skiplist (7 ms) +[ok]: BZMPOP_MIN/BZMPOP_MAX with a single existing sorted set - skiplist (7 ms) +[ok]: BZMPOP_MIN/BZMPOP_MAX with multiple existing sorted sets - skiplist (8 ms) +[ok]: BZMPOP_MIN/BZMPOP_MAX second sorted set has members - skiplist (8 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 (5 ms) -[ok]: BZMPOP_MIN/BZMPOP_MAX - skiplist RESP3 (5 ms) +[ok]: ZMPOP_MIN/ZMPOP_MAX with count - skiplist RESP3 (2 ms) +[ok]: BZPOPMIN/BZPOPMAX - skiplist RESP3 (7 ms) +[ok]: BZMPOP_MIN/BZMPOP_MAX - skiplist RESP3 (8 ms) [ok]: ZPOP/ZMPOP against wrong type (1 ms) -[ok]: ZMPOP with illegal argument (1 ms) -[ok]: ZMPOP propagate as pop with count command to replica (35 ms) -[ok]: ZPOPMIN/ZPOPMAX readraw in RESP3 (1 ms) -[ok]: BZPOPMIN/BZPOPMAX readraw in RESP3 (194 ms) -[ok]: ZMPOP readraw in RESP3 (1 ms) -[ok]: BZMPOP readraw in RESP3 (201 ms) +[ok]: ZMPOP with illegal argument (2 ms) +[ok]: ZMPOP propagate as pop with count command to replica (182 ms) +[ok]: ZPOPMIN/ZPOPMAX readraw in RESP3 (2 ms) +[ok]: BZPOPMIN/BZPOPMAX readraw in RESP3 (190 ms) +[ok]: ZMPOP readraw in RESP3 (3 ms) +[ok]: BZMPOP readraw in RESP3 (199 ms) [ok]: ZPOPMIN/ZPOPMAX readraw in RESP2 (1 ms) -[ok]: BZPOPMIN/BZPOPMAX readraw in RESP2 (195 ms) -[ok]: ZMPOP readraw in RESP2 (2 ms) -[ok]: BZMPOP readraw in RESP2 (200 ms) -[ok]: ZINTERSTORE regression with two sets, intset+hashtable (0 ms) +[ok]: BZPOPMIN/BZPOPMAX readraw in RESP2 (193 ms) +[ok]: ZMPOP readraw in RESP2 (3 ms) +[ok]: BZMPOP readraw in RESP2 (199 ms) +[ok]: ZINTERSTORE regression with two sets, intset+hashtable (1 ms) [ok]: ZUNIONSTORE regression, should not create NaN in scores (0 ms) [ok]: ZINTERSTORE #516 regression, mixed sets and ziplist zsets (0 ms) -[ok]: ZUNIONSTORE result is sorted (104 ms) +[ok]: ZUNIONSTORE result is sorted (111 ms) [ok]: ZUNIONSTORE/ZINTERSTORE/ZDIFFSTORE error if using WITHSCORES (1 ms) -[ok]: ZMSCORE retrieve (0 ms) -[ok]: ZMSCORE retrieve from empty set (0 ms) -[ok]: ZMSCORE retrieve with missing member (1 ms) -[ok]: ZMSCORE retrieve single member (0 ms) -[ok]: ZMSCORE retrieve requires one or more members (0 ms) +[ok]: ZMSCORE retrieve (1 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 (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 (16 ms) -[ok]: ZMSCORE - listpack (17 ms) -[ok]: ZSCORE after a DEBUG RELOAD - listpack (28 ms) -[ok]: ZSET sorting stresser - listpack (22 ms) -[ok]: ZRANGEBYSCORE fuzzy test, 100 ranges in 128 element sorted set - listpack (1776 ms) -[ok]: ZRANGEBYLEX fuzzy test, 100 ranges in 128 element sorted set - listpack (114 ms) -[ok]: ZREMRANGEBYLEX fuzzy test, 100 ranges in 128 element sorted set - listpack (157 ms) -[ok]: ZSETs skiplist implementation backlink consistency test - listpack (17 ms) -[ok]: ZSETs ZRANK augmented skip list stress testing - listpack (565 ms) -[ok]: BZPOPMIN, ZADD + DEL should not awake blocked client (7 ms) -[ok]: BZPOPMIN, ZADD + DEL + SET should not awake blocked client (5 ms) -[ok]: BZMPOP_MIN, ZADD + DEL should not awake blocked client (5 ms) -[ok]: BZMPOP_MIN, ZADD + DEL + SET should not awake blocked client (5 ms) -Time: 1007 -[ok]: BZPOPMIN unblock but the key is expired and then block again - reprocessing command (1012 ms) -[ok]: BZPOPMIN with same key multiple times should work (6 ms) -[ok]: MULTI/EXEC is isolated from the point of view of BZPOPMIN (5 ms) -[ok]: BZPOPMIN with variadic ZADD (5 ms) -[ok]: BZPOPMIN with zero timeout should block indefinitely (1010 ms) -[ok]: MULTI/EXEC is isolated from the point of view of BZMPOP_MIN (6 ms) -[ok]: BZMPOP_MIN with variadic ZADD (6 ms) -[ok]: BZMPOP_MIN with zero timeout should block indefinitely (1009 ms) -[ok]: ZSCORE - skiplist (14 ms) -[ok]: ZMSCORE - skiplist (14 ms) -[ok]: ZSCORE after a DEBUG RELOAD - skiplist (93 ms) -[ok]: ZSET sorting stresser - skiplist (17 ms) -[ok]: ZRANGEBYSCORE fuzzy test, 100 ranges in 100 element sorted set - skiplist (1437 ms) -[ok]: ZRANGEBYLEX fuzzy test, 100 ranges in 100 element sorted set - skiplist (97 ms) -[ok]: ZREMRANGEBYLEX fuzzy test, 100 ranges in 100 element sorted set - skiplist (136 ms) -[ok]: ZSETs skiplist implementation backlink consistency test - skiplist (12 ms) -[ok]: ZSETs ZRANK augmented skip list stress testing - skiplist (502 ms) -[ok]: BZPOPMIN, ZADD + DEL should not awake blocked client (6 ms) -[ok]: BZPOPMIN, ZADD + DEL + SET should not awake blocked client (5 ms) -[ok]: BZMPOP_MIN, ZADD + DEL should not awake blocked client (5 ms) -[ok]: BZMPOP_MIN, ZADD + DEL + SET should not awake blocked client (5 ms) -Time: 1007 -[ok]: BZPOPMIN unblock but the key is expired and then block again - reprocessing command (1012 ms) -[ok]: BZPOPMIN with same key multiple times should work (6 ms) -[ok]: MULTI/EXEC is isolated from the point of view of BZPOPMIN (5 ms) -[ok]: BZPOPMIN with variadic ZADD (5 ms) -[ok]: BZPOPMIN with zero timeout should block indefinitely (1009 ms) -[ok]: MULTI/EXEC is isolated from the point of view of BZMPOP_MIN (6 ms) -[ok]: BZMPOP_MIN with variadic ZADD (6 ms) -[ok]: BZMPOP_MIN with zero timeout should block indefinitely (1009 ms) -[ok]: BZPOP/BZMPOP against wrong type (1 ms) +[ok]: ZSCORE - listpack (37 ms) +[ok]: ZMSCORE - listpack (33 ms) +[ok]: ZSCORE after a DEBUG RELOAD - listpack (335 ms) +[ok]: ZSET sorting stresser - listpack (46 ms) +[ok]: ZRANGEBYSCORE fuzzy test, 100 ranges in 128 element sorted set - listpack (3828 ms) +[ok]: ZRANGEBYLEX fuzzy test, 100 ranges in 128 element sorted set - listpack (183 ms) +[ok]: ZREMRANGEBYLEX fuzzy test, 100 ranges in 128 element sorted set - listpack (297 ms) +[ok]: ZSETs skiplist implementation backlink consistency test - listpack (43 ms) +[ok]: ZSETs ZRANK augmented skip list stress testing - listpack (1233 ms) +[ok]: BZPOPMIN, ZADD + DEL should not awake blocked client (9 ms) +[ok]: BZPOPMIN, ZADD + DEL + SET should not awake blocked client (8 ms) +[ok]: BZMPOP_MIN, ZADD + DEL should not awake blocked client (8 ms) +[ok]: BZMPOP_MIN, ZADD + DEL + SET should not awake blocked client (9 ms) +Time: 1008 +[ok]: BZPOPMIN unblock but the key is expired and then block again - reprocessing command (1014 ms) +[ok]: BZPOPMIN with same key multiple times should work (8 ms) +[ok]: MULTI/EXEC is isolated from the point of view of BZPOPMIN (8 ms) +[ok]: BZPOPMIN with variadic ZADD (6 ms) +[ok]: BZPOPMIN with zero timeout should block indefinitely (1011 ms) +[ok]: MULTI/EXEC is isolated from the point of view of BZMPOP_MIN (9 ms) +[ok]: BZMPOP_MIN with variadic ZADD (8 ms) +[ok]: BZMPOP_MIN with zero timeout should block indefinitely (1014 ms) +[ok]: ZSCORE - skiplist (23 ms) +[ok]: ZMSCORE - skiplist (25 ms) +[ok]: ZSCORE after a DEBUG RELOAD - skiplist (735 ms) +[ok]: ZSET sorting stresser - skiplist (40 ms) +[ok]: ZRANGEBYSCORE fuzzy test, 100 ranges in 100 element sorted set - skiplist (3019 ms) +[ok]: ZRANGEBYLEX fuzzy test, 100 ranges in 100 element sorted set - skiplist (169 ms) +[ok]: ZREMRANGEBYLEX fuzzy test, 100 ranges in 100 element sorted set - skiplist (234 ms) +[ok]: ZSETs skiplist implementation backlink consistency test - skiplist (27 ms) +[ok]: ZSETs ZRANK augmented skip list stress testing - skiplist (1164 ms) +[ok]: BZPOPMIN, ZADD + DEL should not awake blocked client (9 ms) +[ok]: BZPOPMIN, ZADD + DEL + SET should not awake blocked client (8 ms) +[ok]: BZMPOP_MIN, ZADD + DEL should not awake blocked client (7 ms) +[ok]: BZMPOP_MIN, ZADD + DEL + SET should not awake blocked client (7 ms) +Time: 1009 +[ok]: BZPOPMIN unblock but the key is expired and then block again - reprocessing command (1014 ms) +[ok]: BZPOPMIN with same key multiple times should work (10 ms) +[ok]: MULTI/EXEC is isolated from the point of view of BZPOPMIN (8 ms) +[ok]: BZPOPMIN with variadic ZADD (8 ms) +[ok]: BZPOPMIN with zero timeout should block indefinitely (1012 ms) +[ok]: MULTI/EXEC is isolated from the point of view of BZMPOP_MIN (9 ms) +[ok]: BZMPOP_MIN with variadic ZADD (8 ms) +[ok]: BZMPOP_MIN with zero timeout should block indefinitely (1011 ms) +[ok]: BZPOP/BZMPOP against wrong type (2 ms) [ok]: BZMPOP with illegal argument (2 ms) -[ok]: BZMPOP with multiple blocked clients (21 ms) -[ok]: BZMPOP propagate as pop with count command to replica (247 ms) -[ok]: BZMPOP should not blocks on non key arguments - #10762 (11 ms) -[ok]: ZSET skiplist order consistency when elements are moved (632 ms) +[ok]: BZMPOP with multiple blocked clients (30 ms) +[ok]: BZMPOP propagate as pop with count command to replica (953 ms) +[ok]: BZMPOP should not blocks on non key arguments - #10762 (61 ms) +[ok]: ZSET skiplist order consistency when elements are moved (1345 ms) [ok]: ZRANGESTORE basic (1 ms) -[ok]: ZRANGESTORE RESP3 (0 ms) +[ok]: ZRANGESTORE RESP3 (1 ms) [ok]: ZRANGESTORE range (0 ms) -[ok]: ZRANGESTORE BYLEX (0 ms) -[ok]: ZRANGESTORE BYSCORE (0 ms) +[ok]: ZRANGESTORE BYLEX (1 ms) +[ok]: ZRANGESTORE BYSCORE (1 ms) [ok]: ZRANGESTORE BYSCORE LIMIT (0 ms) [ok]: ZRANGESTORE BYSCORE REV LIMIT (1 ms) [ok]: ZRANGE BYSCORE REV LIMIT (0 ms) [ok]: ZRANGESTORE - src key missing (0 ms) -[ok]: ZRANGESTORE - src key wrong type (0 ms) +[ok]: ZRANGESTORE - src key wrong type (1 ms) [ok]: ZRANGESTORE - empty range (0 ms) -[ok]: ZRANGESTORE BYLEX - empty range (0 ms) +[ok]: ZRANGESTORE BYLEX - empty range (1 ms) [ok]: ZRANGESTORE BYSCORE - empty range (0 ms) [ok]: ZRANGE BYLEX (0 ms) [ok]: ZRANGESTORE invalid syntax (0 ms) [ok]: ZRANGESTORE with zset-max-listpack-entries 0 #10767 case (1 ms) -[ok]: ZRANGESTORE with zset-max-listpack-entries 1 dst key should use skiplist encoding (0 ms) -[ok]: ZRANGE invalid syntax (1 ms) -[ok]: ZRANDMEMBER - listpack (6 ms) -[ok]: ZRANDMEMBER - skiplist (5 ms) +[ok]: ZRANGESTORE with zset-max-listpack-entries 1 dst key should use skiplist encoding (1 ms) +[ok]: ZRANGE invalid syntax (0 ms) +[ok]: ZRANDMEMBER - listpack (11 ms) +[ok]: ZRANDMEMBER - skiplist (12 ms) [ok]: ZRANDMEMBER with RESP3 (1 ms) [ok]: ZRANDMEMBER count of 0 is handled correctly (0 ms) [ok]: ZRANDMEMBER with against non existing key (0 ms) [ok]: ZRANDMEMBER count overflow (1 ms) [ok]: ZRANDMEMBER count of 0 is handled correctly - emptyarray (0 ms) [ok]: ZRANDMEMBER with against non existing key - emptyarray (0 ms) -[ok]: ZRANDMEMBER with - skiplist (153 ms) -[ok]: ZRANDMEMBER with - listpack (154 ms) +[ok]: ZRANDMEMBER with - skiplist (332 ms) +[ok]: ZRANDMEMBER with - listpack (311 ms) [ok]: zset score double range (1 ms) -[ok]: zunionInterDiffGenericCommand acts on SET and ZSET (9 ms) -[ok]: ZADD overflows the maximum allowed elements in a listpack - single (4 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) -[51/124 done]: unit/type/zset (19 seconds) +[ok]: zunionInterDiffGenericCommand acts on SET and ZSET (20 ms) +[ok]: ZADD overflows the maximum allowed elements in a listpack - single (10 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) +[50/124 done]: unit/type/zset (33 seconds) Testing unit/type/hash -=== (hash) Starting server 127.0.0.1:21569 ok -[ok]: HSET/HLEN - Small hash creation (0 ms) -[ok]: Is the small hash encoded with a listpack? (1 ms) -[ok]: HRANDFIELD - listpack (5 ms) -[ok]: HRANDFIELD - hashtable (5 ms) +=== (hash) Starting server 127.0.0.1:21553 ok +[ok]: HSET/HLEN - Small hash creation (1 ms) +[ok]: Is the small hash encoded with a listpack? (0 ms) +[ok]: HRANDFIELD - listpack (12 ms) +[ok]: HRANDFIELD - hashtable (12 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 (0 ms) -[ok]: HRANDFIELD with - hashtable (80 ms) -[ok]: HRANDFIELD with - listpack (85 ms) -[ok]: HSET/HLEN - Big hash creation (79 ms) +[ok]: HRANDFIELD with - hashtable (126 ms) +[ok]: HRANDFIELD with - listpack (127 ms) +[ok]: HSET/HLEN - Big hash creation (140 ms) [ok]: Is the big hash encoded with an hash table? (0 ms) [ok]: HGET against the small hash (1 ms) -[ok]: HGET against the big hash (61 ms) -[ok]: HGET against non existing key (1 ms) -[ok]: HSET in update and insert mode (0 ms) -[ok]: HSETNX target key missing - small hash (1 ms) -[ok]: HSETNX target key exists - small hash (0 ms) +[ok]: HGET against the big hash (107 ms) +[ok]: HGET against non existing key (0 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 (1 ms) [ok]: HSETNX target key missing - big hash (0 ms) -[ok]: HSETNX target key exists - big hash (0 ms) -[ok]: HSET/HMSET wrong number of args (1 ms) +[ok]: HSETNX target key exists - big hash (1 ms) +[ok]: HSET/HMSET wrong number of args (0 ms) [ok]: HMSET - small hash (0 ms) -[ok]: HMSET - big hash (48 ms) -[ok]: HMGET against non existing key and fields (0 ms) -[ok]: Hash commands against wrong type (2 ms) +[ok]: HMSET - big hash (51 ms) +[ok]: HMGET against non existing key and fields (1 ms) +[ok]: Hash commands against wrong type (3 ms) [ok]: HMGET - small hash (0 ms) -[ok]: HMGET - big hash (53 ms) +[ok]: HMGET - big hash (50 ms) [ok]: HKEYS - small hash (0 ms) -[ok]: HKEYS - big hash (8 ms) +[ok]: HKEYS - big hash (7 ms) [ok]: HVALS - small hash (0 ms) -[ok]: HVALS - big hash (1 ms) +[ok]: HVALS - big hash (2 ms) [ok]: HGETALL - small hash (0 ms) -[ok]: HGETALL - big hash (13 ms) -[ok]: HGETALL against non-existing key (0 ms) +[ok]: HGETALL - big hash (17 ms) +[ok]: HGETALL against non-existing key (1 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 (1 ms) -[ok]: HEXISTS (0 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]: 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? (1 ms) +[ok]: HINCRBY against non existing database key (0 ms) +[ok]: HINCRBY HINCRBYFLOAT against non-integer increment value (1 ms) [ok]: HINCRBY against non existing hash key (0 ms) -[ok]: HINCRBY against hash key created by hincrby itself (1 ms) -[ok]: HINCRBY against hash key originally set with HSET (0 ms) +[ok]: HINCRBY 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 (0 ms) [ok]: HINCRBY over 32bit value with over 32bit increment (1 ms) -[ok]: HINCRBY fails against hash value with spaces (left) (0 ms) +[ok]: HINCRBY fails against hash value with spaces (left) (1 ms) [ok]: HINCRBY fails against hash value with spaces (right) (0 ms) -[ok]: HINCRBY can detect overflows (0 ms) +[ok]: HINCRBY can detect overflows (1 ms) [ok]: HINCRBYFLOAT against non existing database key (0 ms) -[ok]: HINCRBYFLOAT against non existing hash key (0 ms) +[ok]: HINCRBYFLOAT against non existing hash key (1 ms) [ok]: HINCRBYFLOAT against hash key created by hincrby itself (0 ms) [ok]: HINCRBYFLOAT against hash key originally set with HSET (1 ms) [ok]: HINCRBYFLOAT over 32bit value (0 ms) [ok]: HINCRBYFLOAT over 32bit value with over 32bit increment (0 ms) [ok]: HINCRBYFLOAT fails against hash value with spaces (left) (1 ms) [ok]: HINCRBYFLOAT fails against hash value with spaces (right) (0 ms) -[ok]: HINCRBYFLOAT fails against hash value that contains a null-terminator in the middle (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 (53 ms) -[ok]: HSTRLEN against non existing field (1 ms) -[ok]: HSTRLEN corner cases (1 ms) -[ok]: HINCRBYFLOAT over hash-max-listpack-value encoded with a listpack (1 ms) -[ok]: Hash ziplist regression test for large keys (1 ms) -[ok]: Hash fuzzing #1 - 10 fields (17 ms) -[ok]: Hash fuzzing #2 - 10 fields (12 ms) -[ok]: Hash fuzzing #1 - 512 fields (890 ms) -[ok]: Hash fuzzing #2 - 512 fields (637 ms) -[ok]: Stress test the hash ziplist -> hashtable encoding conversion (739 ms) +[ok]: HSTRLEN against the big hash (116 ms) +[ok]: HSTRLEN against non existing field (0 ms) +[ok]: HSTRLEN corner cases (3 ms) +[ok]: HINCRBYFLOAT over hash-max-listpack-value encoded with a listpack (2 ms) +[ok]: Hash ziplist regression test for large keys (0 ms) +[ok]: Hash fuzzing #1 - 10 fields (30 ms) +[ok]: Hash fuzzing #2 - 10 fields (23 ms) +[ok]: Hash fuzzing #1 - 512 fields (1638 ms) +[ok]: Hash fuzzing #2 - 512 fields (1316 ms) +[ok]: Stress test the hash ziplist -> hashtable encoding conversion (1409 ms) [ok]: Test HINCRBYFLOAT for correct float representation (issue #2846) (1 ms) -[ok]: Hash ziplist of various encodings (94 ms) -[ok]: Hash ziplist of various encodings - sanitize dump (1 ms) +[ok]: Hash ziplist of various encodings (102 ms) +[ok]: Hash ziplist of various encodings - sanitize dump (7 ms) [ok]: HINCRBYFLOAT does not allow NaN or Infinity (0 ms) -[52/124 done]: unit/type/hash (3 seconds) -Testing unit/type/list-2 -=== (list) Starting server 127.0.0.1:21571 ok -[ok]: LTRIM stress testing - quicklist (4871 ms) -[ok]: LTRIM stress testing - listpack (4657 ms) -[53/124 done]: unit/type/list-2 (9 seconds) +[51/124 done]: unit/type/hash (6 seconds) Testing unit/type/list-3 -=== (list ziplist) Starting server 127.0.0.1:21573 ok +=== (list ziplist) Starting server 127.0.0.1:21555 ok [ok]: Explicit regression for a list bug (1 ms) -[ok]: Regression for quicklist #3343 bug (131 ms) -[ok]: Check compression with recompress (44 ms) -[ok]: Crash due to wrongly recompress after lrem (224 ms) -[ok]: LINSERT correctly recompress full quicklistNode after inserting a element before it (44 ms) -[ok]: LINSERT correctly recompress full quicklistNode after inserting a element after it (44 ms) -[ok]: Stress tester for #3343-alike bugs comp: 2 (9795 ms) -[ok]: Stress tester for #3343-alike bugs comp: 1 (7787 ms) -[ok]: Stress tester for #3343-alike bugs comp: 0 (9339 ms) -[ok]: ziplist implementation: value encoding and backlink (9788 ms) -[ok]: ziplist implementation: encoding stress testing (5971 ms) -[54/124 done]: unit/type/list-3 (44 seconds) -Testing unit/cluster/consistency-check +[ok]: Regression for quicklist #3343 bug (141 ms) +[ok]: Check compression with recompress (91 ms) +[ok]: Crash due to wrongly recompress after lrem (220 ms) +[ok]: LINSERT correctly recompress full quicklistNode after inserting a element before it (43 ms) +[ok]: LINSERT correctly recompress full quicklistNode after inserting a element after it (48 ms) +[ok]: Stress tester for #3343-alike bugs comp: 2 (9267 ms) +[ok]: Stress tester for #3343-alike bugs comp: 1 (9138 ms) +[ok]: Stress tester for #3343-alike bugs comp: 0 (9249 ms) +[ok]: ziplist implementation: value encoding and backlink (11196 ms) +[ok]: ziplist implementation: encoding stress testing (11655 ms) +[52/124 done]: unit/type/list-3 (51 seconds) +Testing unit/type/stream-cgroups +=== (stream) Starting server 127.0.0.1:21557 ok +[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 (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 (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 (3 ms) +[ok]: PEL NACK reassignment after XGROUP SETID event (3 ms) +[ok]: XREADGROUP will not report data on empty history. Bug #5577 (2 ms) +[ok]: XREADGROUP history reporting of deleted entries. Bug #5570 (1 ms) +[ok]: Blocking XREADGROUP will not reply with an empty array (40 ms) +[ok]: Blocking XREADGROUP: key deleted (7 ms) +[ok]: Blocking XREADGROUP: key type changed with SET (6 ms) +[ok]: Blocking XREADGROUP: key type changed with transaction (7 ms) +[ok]: Blocking XREADGROUP: flushed DB (9 ms) +[ok]: Blocking XREADGROUP: swapped DB, key doesn't exist (8 ms) +[ok]: Blocking XREADGROUP: swapped DB, key is not a stream (9 ms) +[ok]: XREAD and XREADGROUP against wrong parameter (1 ms) +[ok]: Blocking XREAD: key deleted (8 ms) +[ok]: Blocking XREAD: key type changed with SET (8 ms) +[ok]: Blocking XREADGROUP for stream that ran dry (issue #5299) (50 ms) +[ok]: Blocking XREADGROUP will ignore BLOCK if ID is not > (9 ms) +[ok]: Blocking XREADGROUP for stream key that has clients blocked on list (15 ms) +[ok]: Blocking XREADGROUP for stream key that has clients blocked on stream - avoid endless loop (20 ms) +[ok]: Blocking XREADGROUP for stream key that has clients blocked on stream - reprocessing command (1070 ms) +[ok]: XGROUP DESTROY should unblock XREADGROUP with -NOGROUP (9 ms) +[ok]: RENAME can unblock XREADGROUP with data (8 ms) +[ok]: RENAME can unblock XREADGROUP with -NOGROUP (8 ms) +[ok]: XCLAIM can claim PEL items from another consumer (608 ms) +[ok]: XCLAIM without JUSTID increments delivery count (406 ms) +[ok]: XCLAIM same consumer (203 ms) +[ok]: XAUTOCLAIM can claim PEL items from another consumer (609 ms) +[ok]: XAUTOCLAIM as an iterator (203 ms) +[ok]: XAUTOCLAIM COUNT must be > 0 (0 ms) +[ok]: XCLAIM with XDEL (2 ms) +[ok]: XCLAIM with trimming (1 ms) +[ok]: XAUTOCLAIM with XDEL (1 ms) +[ok]: XAUTOCLAIM with XDEL and count (2 ms) +[ok]: XAUTOCLAIM with out of range count (0 ms) +[ok]: XCLAIM with trimming (1 ms) +[ok]: XINFO FULL output (4 ms) +[ok]: Consumer seen-time and active-time (206 ms) +[ok]: XGROUP CREATECONSUMER: create consumer if does not exist (1 ms) +[ok]: XGROUP CREATECONSUMER: group must exist (1 ms) +=== (stream needs:debug) Starting server 127.0.0.1:21559 ok +[ok]: XREADGROUP with NOACK creates consumer (1547 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 (655 ms) +[ok]: Consumer group read counter and lag in empty streams (2 ms) +[ok]: Consumer group read counter and lag sanity (4 ms) +[ok]: Consumer group lag with XDELs (7 ms) +[ok]: Loading from legacy (Redis <= v6.2.x, rdb_ver < 10) persistence (2 ms) +[ok]: Loading from legacy (Redis <= v7.0.x, rdb_ver < 11) persistence (1 ms) +=== (external:skip) Starting server 127.0.0.1:21561 ok +[ok]: Consumer group last ID propagation to slave (NOACK=0) (371 ms) +[ok]: Consumer group last ID propagation to slave (NOACK=1) (323 ms) +=== (external:skip) Starting server 127.0.0.1:21563 ok +[ok]: Replication tests of XCLAIM with deleted entries (autoclaim=0) (404 ms) +[ok]: Replication tests of XCLAIM with deleted entries (autoclaim=1) (6 ms) +[ok]: XREADGROUP ACK would propagate entries-read (4 ms) +=== (stream needs:debug) Starting server 127.0.0.1:21565 ok + +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... [ok]: Empty stream with no lastid can be rewrite into AOF correctly (809 ms) +[53/124 done]: unit/type/stream-cgroups (11 seconds) +Testing unit/type/list +=== () Starting server 127.0.0.1:21567 ok +[ok]: packed node check compression with insert and pop (5 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 (358 ms) +[ok]: plain node check compression combined with trim (138 ms) +[ok]: plain node check compression with lset (175 ms) +=== () Starting server 127.0.0.1:21569 ok +[ok]: Test LPUSH and LPOP on plain nodes (35 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 (1 ms) +[ok]: Test LPOS on plain nodes (1 ms) +[ok]: Test LMOVE on plain nodes (2 ms) +[ok]: Test LSET with packed / plain combinations (178 ms) +[ok]: Test LSET with packed is split in the middle (3 ms) +[ok]: Test LSET with packed consist only one item (177 ms) +[ok]: Crash due to delete entry from a compress quicklist node (2 ms) +[ok]: Crash due to split quicklist node wrongly (2 ms) +[ok]: Test LPUSH and LPOP on plain nodes (13 ms) +[ok]: Test LINDEX and LINSERT on plain nodes (1 ms) +[ok]: Test LTRIM on plain nodes (1 ms) +[ok]: Test LREM on plain nodes (2 ms) +[ok]: Test LPOS on plain nodes (1 ms) +[ok]: Test LMOVE on plain nodes (1 ms) +[ok]: Test LSET with packed / plain combinations (175 ms) +[ok]: Test LSET with packed is split in the middle (3 ms) +[ok]: Test LSET with packed consist only one item (177 ms) +[ok]: Crash due to delete entry from a compress quicklist node (1 ms) +[ok]: Crash due to split quicklist node wrongly (2 ms) +=== () Starting server 127.0.0.1:21571 ok +[ignore]: Test LPUSH and LPOP on plain nodes over 4GB: large memory flag not provided +[ignore]: Test LINDEX and LINSERT on plain nodes over 4GB: large memory flag not provided +[ignore]: Test LTRIM on plain nodes over 4GB: large memory flag not provided +[ignore]: Test LREM on plain nodes over 4GB: large memory flag not provided +[ignore]: Test LSET on plain nodes over 4GB: large memory flag not provided +[ignore]: Test LSET on plain nodes with large elements under packed_threshold over 4GB: large memory flag not provided +[ignore]: Test LSET splits a quicklist node, and then merge: large memory flag not provided +[ignore]: Test LSET splits a LZF compressed quicklist node, and then merge: large memory flag not provided +[ignore]: Test LMOVE on plain nodes over 4GB: large memory flag not provided +=== (list) Starting server 127.0.0.1:21573 ok +[ok]: LPOS basic usage - quicklist (48 ms) +[ok]: LPOS RANK (positive, negative and zero rank) option (1 ms) +[ok]: LPOS COUNT option (1 ms) +[ok]: LPOS COUNT + RANK option (0 ms) +[ok]: LPOS non existing key (0 ms) +[ok]: LPOS no match (0 ms) +[ok]: LPOS MAXLEN (1 ms) +[ok]: LPOS when RANK is greater than matches (0 ms) +[ok]: LPUSH, RPUSH, LLENGTH, LINDEX, LPOP - quicklist (87 ms) +[ok]: LPOP/RPOP with wrong number of arguments (1 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 (0 ms) +[ok]: LPOS COUNT option (0 ms) +[ok]: LPOS COUNT + RANK option (0 ms) +[ok]: LPOS non existing key (1 ms) +[ok]: LPOS no match (0 ms) +[ok]: LPOS MAXLEN (0 ms) +[ok]: LPOS when RANK is greater than matches (0 ms) +[ok]: LPUSH, RPUSH, LLENGTH, LINDEX, LPOP - listpack (2 ms) +[ok]: LPOP/RPOP with wrong number of arguments (1 ms) +[ok]: RPOP/LPOP with the optional count argument - listpack (0 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 (1 ms) +[ok]: LPOP/RPOP with against non existing key in RESP3 (0 ms) +[ok]: LPOP/RPOP with the count 0 returns an empty array in RESP2 (0 ms) +[ok]: LPOP/RPOP against non existing key in RESP2 (0 ms) +[ok]: LPOP/RPOP with against non existing key in RESP2 (0 ms) +[ok]: Variadic RPUSH/LPUSH (1 ms) +[ok]: DEL a list (0 ms) +[ok]: BLPOP: single existing list - quicklist (53 ms) +[ok]: BLPOP: multiple existing lists - quicklist (95 ms) +[ok]: BLPOP: second list has an entry - quicklist (51 ms) +[ok]: BLMPOP_LEFT: single existing list - quicklist (50 ms) +[ok]: BLMPOP_LEFT: multiple existing lists - quicklist (101 ms) +[ok]: BLMPOP_LEFT: second list has an entry - quicklist (51 ms) +[ok]: BRPOPLPUSH - quicklist (51 ms) +[ok]: BLMOVE left left - quicklist (52 ms) +[ok]: BLMOVE left right - quicklist (48 ms) +[ok]: BLMOVE right left - quicklist (48 ms) +[ok]: BLMOVE right right - quicklist (52 ms) +[ok]: BLPOP: single existing list - listpack (9 ms) +[ok]: BLPOP: multiple existing lists - listpack (9 ms) +[ok]: BLPOP: second list has an entry - listpack (8 ms) +[ok]: BLMPOP_LEFT: single existing list - listpack (9 ms) +[ok]: BLMPOP_LEFT: multiple existing lists - listpack (9 ms) +[ok]: BLMPOP_LEFT: second list has an entry - listpack (8 ms) +[ok]: BRPOPLPUSH - listpack (8 ms) +[ok]: BLMOVE left left - listpack (9 ms) +[ok]: BLMOVE left right - listpack (9 ms) +[ok]: BLMOVE right left - listpack (8 ms) +[ok]: BLMOVE right right - listpack (9 ms) +[ok]: BLPOP, LPUSH + DEL should not awake blocked client (8 ms) +[ok]: BLPOP, LPUSH + DEL + SET should not awake blocked client (8 ms) +[ok]: BLMPOP_LEFT, LPUSH + DEL should not awake blocked client (8 ms) +[ok]: BLMPOP_LEFT, LPUSH + DEL + SET should not awake blocked client (8 ms) +[ok]: BLPOP with same key multiple times should work (issue #801) (7 ms) +[ok]: MULTI/EXEC is isolated from the point of view of BLPOP (7 ms) +[ok]: BLPOP with variadic LPUSH (6 ms) +[ok]: MULTI/EXEC is isolated from the point of view of BLMPOP_LEFT (7 ms) +[ok]: BLMPOP_LEFT with variadic LPUSH (7 ms) +[ok]: BRPOPLPUSH with zero timeout should block indefinitely (6 ms) +[ok]: BLMOVE left left with zero timeout should block indefinitely (6 ms) +[ok]: BLMOVE left right with zero timeout should block indefinitely (6 ms) +[ok]: BLMOVE right left with zero timeout should block indefinitely (6 ms) +[ok]: BLMOVE right right with zero timeout should block indefinitely (7 ms) +[ok]: BLMOVE (left, left) with a client BLPOPing the target list (12 ms) +[ok]: BLMOVE (left, right) with a client BLPOPing the target list (12 ms) +[ok]: BLMOVE (right, left) with a client BLPOPing the target list (13 ms) +[ok]: BLMOVE (right, right) with a client BLPOPing the target list (13 ms) +[ok]: BRPOPLPUSH with wrong source type (6 ms) +[ok]: BRPOPLPUSH with wrong destination type (12 ms) +[ok]: BRPOPLPUSH maintains order of elements after failure (7 ms) +[ok]: BRPOPLPUSH with multiple blocked clients (12 ms) +[ok]: BLMPOP with multiple blocked clients (25 ms) +[ok]: Linked LMOVEs (12 ms) +[ok]: Circular BRPOPLPUSH (13 ms) +[ok]: Self-referential BRPOPLPUSH (7 ms) +[ok]: BRPOPLPUSH inside a transaction (1 ms) +[ok]: PUSH resulting from BRPOPLPUSH affect WATCH (13 ms) +[ok]: BRPOPLPUSH does not affect WATCH while still blocked (13 ms) +[ok]: BRPOPLPUSH timeout (1025 ms) +[ok]: SWAPDB awakes blocked client (8 ms) +[ok]: SWAPDB wants to wake blocked client, but the key already expired (250 ms) +[ok]: MULTI + LPUSH + EXPIRE + DEBUG SLEEP on blocked client, key already expired (300 ms) +[ok]: BLPOP unblock but the key is expired and then block again - reprocessing command (1015 ms) +[ok]: BLPOP when new key is moved into place (8 ms) +[ok]: BLPOP when result key is created by SORT..STORE (7 ms) +[ok]: BLMPOP_LEFT when new key is moved into place (6 ms) +[ok]: BLMPOP_LEFT when result key is created by SORT..STORE (7 ms) +[ok]: BLPOP: timeout value out of range (0 ms) +[ok]: BLPOP: with single empty list argument (6 ms) +[ok]: BLPOP: with negative timeout (7 ms) +[ok]: BLPOP: with non-integer timeout (6 ms) +[ok]: BLPOP: with zero timeout should block indefinitely (7 ms) +[ok]: BLPOP: with 0.001 timeout should not block indefinitely (28 ms) +[ok]: BLPOP: second argument is not a list (7 ms) +[ok]: BLPOP: timeout (1066 ms) +[ok]: BLPOP: arguments are empty (8 ms) +[ok]: BRPOP: with single empty list argument (7 ms) +[ok]: BRPOP: with negative timeout (6 ms) +[ok]: BRPOP: with non-integer timeout (6 ms) +[ok]: BRPOP: with zero timeout should block indefinitely (7 ms) +[ok]: BRPOP: with 0.001 timeout should not block indefinitely (28 ms) +[ok]: BRPOP: second argument is not a list (7 ms) +[ok]: BRPOP: timeout (1073 ms) +[ok]: BRPOP: arguments are empty (8 ms) +[ok]: BLMPOP_LEFT: with single empty list argument (7 ms) +[ok]: BLMPOP_LEFT: with negative timeout (6 ms) +[ok]: BLMPOP_LEFT: with non-integer timeout (6 ms) +[ok]: BLMPOP_LEFT: with zero timeout should block indefinitely (7 ms) +[ok]: BLMPOP_LEFT: with 0.001 timeout should not block indefinitely (27 ms) +[ok]: BLMPOP_LEFT: second argument is not a list (6 ms) +[ok]: BLMPOP_LEFT: timeout (1037 ms) +[ok]: BLMPOP_LEFT: arguments are empty (11 ms) +[ok]: BLMPOP_RIGHT: with single empty list argument (117 ms) +[ok]: BLMPOP_RIGHT: with negative timeout (7 ms) +[ok]: BLMPOP_RIGHT: with non-integer timeout (7 ms) +[ok]: BLMPOP_RIGHT: with zero timeout should block indefinitely (7 ms) +[ok]: BLMPOP_RIGHT: with 0.001 timeout should not block indefinitely (28 ms) +[ok]: BLMPOP_RIGHT: second argument is not a list (7 ms) +[ok]: BLMPOP_RIGHT: timeout (1027 ms) +[ok]: BLMPOP_RIGHT: arguments are empty (10 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 (392 ms) +[ok]: LPUSHX, RPUSHX - generic (2 ms) +[ok]: LPUSHX, RPUSHX - quicklist (42 ms) +[ok]: LINSERT - quicklist (45 ms) +[ok]: LPUSHX, RPUSHX - listpack (2 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 (0 ms) +[ok]: LINDEX consistency test - listpack (115 ms) +[ok]: LINDEX random access - listpack (76 ms) +[ok]: Check if list is still ok after a DEBUG RELOAD - listpack (467 ms) +[ok]: LINDEX consistency test - listpack (171 ms) +[ok]: LINDEX random access - listpack (121 ms) +[ok]: Check if list is still ok after a DEBUG RELOAD - listpack (294 ms) +[ok]: LINDEX consistency test - quicklist (85 ms) +[ok]: LINDEX random access - quicklist (80 ms) +[ok]: Check if list is still ok after a DEBUG RELOAD - quicklist (257 ms) +[ok]: LINDEX consistency test - quicklist (173 ms) +[ok]: LINDEX random access - quicklist (120 ms) +[ok]: Check if list is still ok after a DEBUG RELOAD - quicklist (653 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 (1 ms) +[ok]: RPUSH against non-list value error (0 ms) +[ok]: RPOPLPUSH base case - quicklist (49 ms) +[ok]: LMOVE left left base case - quicklist (48 ms) +[ok]: LMOVE left right base case - quicklist (43 ms) +[ok]: LMOVE right left base case - quicklist (43 ms) +[ok]: LMOVE right right base case - quicklist (45 ms) +[ok]: RPOPLPUSH with the same list as src and dst - quicklist (43 ms) +[ok]: LMOVE left left with the same list as src and dst - quicklist (44 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 (45 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 (88 ms) +[ok]: LMOVE left left with quicklist source and existing target quicklist (86 ms) +[ok]: LMOVE left right with quicklist source and existing target quicklist (90 ms) +[ok]: LMOVE right left with quicklist source and existing target quicklist (89 ms) +[ok]: LMOVE right right with quicklist source and existing target quicklist (87 ms) +[ok]: RPOPLPUSH with quicklist source and existing target listpack (47 ms) +[ok]: LMOVE left left with quicklist source and existing target listpack (44 ms) +[ok]: LMOVE left right with quicklist source and existing target listpack (44 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 (43 ms) +[ok]: RPOPLPUSH base case - listpack (3 ms) +[ok]: LMOVE left left base case - listpack (2 ms) +[ok]: LMOVE left right base case - listpack (2 ms) +[ok]: LMOVE right left base case - listpack (2 ms) +[ok]: LMOVE right right base case - listpack (2 ms) +[ok]: RPOPLPUSH with the same list as src and dst - listpack (3 ms) +[ok]: LMOVE left left with the same list as src and dst - listpack (2 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 (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 (43 ms) +[ok]: LMOVE left left with listpack source and existing target quicklist (43 ms) +[ok]: LMOVE left right with listpack source and existing target quicklist (45 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 (45 ms) +[ok]: RPOPLPUSH with listpack source and existing target listpack (2 ms) +[ok]: LMOVE left left with listpack source and existing target listpack (2 ms) +[ok]: LMOVE left right with listpack source and existing target listpack (2 ms) +[ok]: LMOVE right left with listpack source and existing target listpack (2 ms) +[ok]: LMOVE right right with listpack source and existing target listpack (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 (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 (96 ms) +[ok]: Basic LPOP/RPOP/LMPOP - listpack (2 ms) +[ok]: LPOP/RPOP/LMPOP against empty list (1 ms) +[ok]: LPOP/RPOP/LMPOP NON-BLOCK or BLOCK against non list value (2 ms) +[ok]: Mass RPOP/LPOP - listpack (64 ms) +[ok]: Mass RPOP/LPOP - listpack (112 ms) +[ok]: LMPOP with illegal argument (3 ms) +[ok]: LMPOP single existing list - quicklist (134 ms) +[ok]: LMPOP multiple existing lists - quicklist (177 ms) +[ok]: LMPOP single existing list - listpack (7 ms) +[ok]: LMPOP multiple existing lists - listpack (7 ms) +[ok]: LMPOP propagate as pop with count command to replica (220 ms) +[ok]: LRANGE basics - quicklist (45 ms) +[ok]: LRANGE inverted indexes - quicklist (49 ms) +[ok]: LRANGE out of range indexes including the full list - quicklist (48 ms) +[ok]: LRANGE out of range negative end index - quicklist (44 ms) +[ok]: LRANGE basics - listpack (2 ms) +[ok]: LRANGE inverted indexes - listpack (2 ms) +[ok]: LRANGE out of range indexes including the full list - listpack (1 ms) +[ok]: LRANGE out of range negative end index - listpack (1 ms) +[ok]: LRANGE against non existing key (0 ms) +[ok]: LRANGE with start > end yields an empty array for backward compatibility (1 ms) +[ok]: LTRIM basics - quicklist (542 ms) +[ok]: LTRIM out of range negative end index - quicklist (88 ms) +[ok]: LSET - quicklist (45 ms) +[ok]: LSET out of range index - quicklist (0 ms) +[ok]: LTRIM basics - listpack (13 ms) +[ok]: LTRIM out of range negative end index - listpack (2 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 (46 ms) +[ok]: LREM remove the first occurrence - quicklist (0 ms) +[ok]: LREM remove non existing element - quicklist (1 ms) +[ok]: LREM starting from tail with negative count - quicklist (42 ms) +[ok]: LREM starting from tail with negative count (2) - quicklist (1 ms) +[ok]: LREM deleting objects that may be int encoded - quicklist (43 ms) +[ok]: LREM remove all the occurrences - listpack (2 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 (2 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 (14 ms) +[ok]: BLPOP/BLMOVE should increase dirty (10 ms) +[ok]: client unblock tests (11 ms) +[ok]: client unblock tests (10 ms) +[ok]: List listpack -> quicklist encoding conversion (4 ms) +[ok]: List listpack -> quicklist encoding conversion (178 ms) +[ok]: List quicklist -> listpack encoding conversion (226 ms) +[ok]: List encoding conversion when RDB loading (2812 ms) +[ok]: List invalid list-max-listpack-size config (45 ms) +[ok]: List of various encodings (96 ms) +[ok]: List of various encodings - sanitize dump (5 ms) +[ok]: Unblock fairness is kept while pipelining (23 ms) +[ok]: Unblock fairness is kept during nested unblock (24 ms) +[ok]: Blocking command accounted only once in commandstats (9 ms) +[ok]: Blocking command accounted only once in commandstats after timeout (8 ms) +[ok]: Command being unblocked cause another command to get unblocked execution order test (719 ms) +[54/124 done]: unit/type/list (22 seconds) +Testing unit/cluster/cluster-multiple-meets +[ignore]: Not supported in tls mode +[55/124 done]: unit/cluster/cluster-multiple-meets (0 seconds) +Testing unit/cluster/announce-client-ip === (external:skip cluster) Starting server 127.0.0.1:21575 ok === (external:skip cluster) Starting server 127.0.0.1:21577 ok === (external:skip cluster) Starting server 127.0.0.1:21579 ok === (external:skip cluster) Starting server 127.0.0.1:21581 ok -=== (external:skip cluster) Starting server 127.0.0.1:21583 ok -=== (external:skip cluster) Starting server 127.0.0.1:21585 ok -=== (external:skip cluster) Starting server 127.0.0.1:21587 ok -=== (external:skip cluster) Starting server 127.0.0.1:21589 ok +[ok]: Set cluster announced IPv4 to invalid IP (1 ms) +[ok]: Set cluster announced IPv4 and check that it propagates (214 ms) +[ok]: Clear announced client IPv4 and check that it propagates (212 ms) +=== (external:skip cluster ipv6) Starting server 127.0.0.1:21583 ok +=== (external:skip cluster ipv6) Starting server 127.0.0.1:21585 ok +=== (external:skip cluster ipv6) Starting server 127.0.0.1:21587 ok +=== (external:skip cluster ipv6) Starting server 127.0.0.1:21589 ok +[ok]: Set cluster announced IPv6 to invalid IP (1 ms) +[ok]: Set cluster announced IPv6 and check that it propagates (276 ms) +[ok]: Clear announced client IPv6 and check that it propagates (110 ms) === (external:skip cluster) Starting server 127.0.0.1:21591 ok -=== (external:skip cluster) Starting server 127.0.0.1:21593 ok -[ok]: Cluster should start ok (2 ms) -[ok]: Cluster is writable (95 ms) -[ok]: Slave expired keys is loaded when restarted: appendonly=no (3808 ms) -[ok]: Slave expired keys is loaded when restarted: appendonly=yes (3323 ms) -[55/124 done]: unit/cluster/consistency-check (25 seconds) -Testing unit/cluster/failover2 +[ok]: Load cluster announced IPv4 config on server start (194 ms) +=== (external:skip cluster ipv6) Starting server 127.0.0.1:21593 ok +[ok]: Load cluster announced IPv6 config on server start (204 ms) +[56/124 done]: unit/cluster/announce-client-ip (29 seconds) +Testing unit/cluster/announced-endpoints === (external:skip cluster) Starting server 127.0.0.1:21595 ok === (external:skip cluster) Starting server 127.0.0.1:21597 ok === (external:skip cluster) Starting server 127.0.0.1:21599 ok === (external:skip cluster) Starting server 127.0.0.1:21601 ok -=== (external:skip cluster) Starting server 127.0.0.1:21603 ok +[ok]: Test change cluster-announce-port and cluster-announce-tls-port at runtime (206 ms) +[ok]: Test change cluster-announce-bus-port at runtime (203 ms) +[57/124 done]: unit/cluster/announced-endpoints (12 seconds) +Testing unit/cluster/slave-selection === (external:skip cluster) Starting server 127.0.0.1:21605 ok === (external:skip cluster) Starting server 127.0.0.1:21607 ok -[ok]: Cluster is up (1 ms) -[ok]: Cluster is writable (78 ms) -[ok]: Killing one primary node (10 ms) -[ok]: Wait for failover (6911 ms) -[ok]: Killing the new primary node (11 ms) -[ok]: Cluster should eventually be up again (59 ms) -[ok]: wait for new failover (7021 ms) -[ok]: Restarting the previously killed primary nodes (1 ms) -[ok]: Make sure there is no failover timeout (1 ms) -[56/124 done]: unit/cluster/failover2 (27 seconds) -Testing unit/cluster/pubsubshard-slot-migration === (external:skip cluster) Starting server 127.0.0.1:21609 ok === (external:skip cluster) Starting server 127.0.0.1:21611 ok === (external:skip cluster) Starting server 127.0.0.1:21613 ok === (external:skip cluster) Starting server 127.0.0.1:21615 ok === (external:skip cluster) Starting server 127.0.0.1:21617 ok === (external:skip cluster) Starting server 127.0.0.1:21619 ok -[ok]: Cluster is up (0 ms) -[ok]: Migrate a slot, verify client receives sunsubscribe on primary serving the slot. (16 ms) -[ok]: Client subscribes to multiple channels, migrate a slot, verify client receives sunsubscribe on primary serving the slot. (54 ms) -[ok]: Migrate a slot, verify client receives sunsubscribe on replica serving the slot. (44 ms) -[ok]: Move a replica to another primary, verify client receives sunsubscribe on replica serving the slot. (52 ms) -[ok]: Delete a slot, verify sunsubscribe message (5 ms) -[ok]: Reset cluster, verify sunsubscribe message (21 ms) -Waiting for process 1557451 to exit... -[57/124 done]: unit/cluster/pubsubshard-slot-migration (13 seconds) -Testing unit/cluster/announced-endpoints === (external:skip cluster) Starting server 127.0.0.1:21621 ok === (external:skip cluster) Starting server 127.0.0.1:21623 ok === (external:skip cluster) Starting server 127.0.0.1:21625 ok === (external:skip cluster) Starting server 127.0.0.1:21627 ok -[ok]: Test change cluster-announce-port and cluster-announce-tls-port at runtime (103 ms) -[ok]: Test change cluster-announce-bus-port at runtime (104 ms) -[58/124 done]: unit/cluster/announced-endpoints (11 seconds) -Testing unit/cluster/slot-migration +=== (external:skip cluster) Starting server 127.0.0.1:21629 ok === (external:skip cluster) Starting server 127.0.0.1:21631 ok === (external:skip cluster) Starting server 127.0.0.1:21633 ok +[ok]: Cluster is up (5 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 (1 ms) +[ok]: Instance #5 and #10 synced with the master (1 ms) +[ok]: Slaves are both able to receive and acknowledge writes (69 ms) +[ok]: Write data while slave #10 is paused and can't receive it (10026 ms) +[ok]: Wait for instance #5 (and not #10) to turn into a master (4049 ms) +[ok]: Wait for the node #10 to return alive before ending the test (0 ms) +[ok]: Cluster should eventually be up again (381 ms) +[ok]: Node #10 should eventually replicate node #5 (1 ms) === (external:skip cluster) Starting server 127.0.0.1:21635 ok === (external:skip cluster) Starting server 127.0.0.1:21637 ok === (external:skip cluster) Starting server 127.0.0.1:21639 ok === (external:skip cluster) Starting server 127.0.0.1:21641 ok -[ok]: Slot migration states are replicated (6 ms) -[ok]: Migration target is auto-updated after failover in target shard (3233 ms) -[ok]: Migration source is auto-updated after failover in source shard (3289 ms) -[ok]: Replica redirects key access in migrating slots (1 ms) -[ok]: Replica of migrating node returns ASK redirect after READONLY (1 ms) -[ok]: Replica of migrating node returns TRYAGAIN after READONLY (1 ms) -[ok]: Replica of importing node returns TRYAGAIN after READONLY and ASKING (1 ms) -[ok]: New replica inherits migrating slot (456 ms) -[ok]: New replica inherits importing slot (577 ms) === (external:skip cluster) Starting server 127.0.0.1:21643 ok === (external:skip cluster) Starting server 127.0.0.1:21645 ok === (external:skip cluster) Starting server 127.0.0.1:21647 ok === (external:skip cluster) Starting server 127.0.0.1:21649 ok === (external:skip cluster) Starting server 127.0.0.1:21651 ok === (external:skip cluster) Starting server 127.0.0.1:21653 ok -[ok]: Multiple slot migration states are replicated (5 ms) -[ok]: New replica inherits multiple migrating slots (496 ms) -[ok]: Slot finalization succeeds on both primary and replicas (16 ms) === (external:skip cluster) Starting server 127.0.0.1:21655 ok === (external:skip cluster) Starting server 127.0.0.1:21657 ok === (external:skip cluster) Starting server 127.0.0.1:21659 ok === (external:skip cluster) Starting server 127.0.0.1:21661 ok === (external:skip cluster) Starting server 127.0.0.1:21663 ok === (external:skip cluster) Starting server 127.0.0.1:21665 ok -[ok]: Slot is auto-claimed by target after source relinquishes ownership (1008 ms) === (external:skip cluster) Starting server 127.0.0.1:21667 ok === (external:skip cluster) Starting server 127.0.0.1:21669 ok +[ok]: Cluster is up (6 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 (1 ms) +[ok]: Instance #3, #6, #9, #12 and #15 synced with the master (2 ms) +[ok]: New Master down consecutively (21874 ms) +[58/124 done]: unit/cluster/slave-selection (67 seconds) +Testing unit/cluster/info === (external:skip cluster) Starting server 127.0.0.1:21671 ok === (external:skip cluster) Starting server 127.0.0.1:21673 ok +[ok]: Cluster should start ok (1 ms) +[ok]: errorstats: rejected call due to MOVED Redirection (3 ms) +[59/124 done]: unit/cluster/info (2 seconds) +Testing unit/cluster/manual-takeover === (external:skip cluster) Starting server 127.0.0.1:21675 ok === (external:skip cluster) Starting server 127.0.0.1:21677 ok -[ok]: CLUSTER SETSLOT with invalid timeouts (0 ms) === (external:skip cluster) Starting server 127.0.0.1:21679 ok === (external:skip cluster) Starting server 127.0.0.1:21681 ok === (external:skip cluster) Starting server 127.0.0.1:21683 ok === (external:skip cluster) Starting server 127.0.0.1:21685 ok === (external:skip cluster) Starting server 127.0.0.1:21687 ok === (external:skip cluster) Starting server 127.0.0.1:21689 ok -[ok]: CLUSTER SETSLOT with an explicit timeout (3082 ms) -[ignore]: Not supported in tls mode === (external:skip cluster) Starting server 127.0.0.1:21691 ok === (external:skip cluster) Starting server 127.0.0.1:21693 ok +[ok]: Cluster is up (3 ms) +[ok]: Cluster is writable (127 ms) +[ok]: Killing majority of master nodes (58 ms) +[ok]: Cluster should eventually be down (3307 ms) +[ok]: Use takeover to bring slaves back (47 ms) +[ok]: Cluster should eventually be up again (3113 ms) +[ok]: Cluster is writable (134 ms) +[ok]: Instance #5, #6, #7 are now masters (2 ms) +[ok]: Restarting the previously killed master nodes (4 ms) +[ok]: Instance #0, #1, #2 gets converted into a slaves (54 ms) +[60/124 done]: unit/cluster/manual-takeover (20 seconds) +Testing unit/cluster/diskless-load-swapdb === (external:skip cluster) Starting server 127.0.0.1:21695 ok === (external:skip cluster) Starting server 127.0.0.1:21697 ok +[ok]: Cluster should start ok (1 ms) +[ok]: Cluster is writable (65 ms) +[ok]: Main db not affected when fail to diskless load (82315 ms) +Waiting for process 3693453 to exit... +Waiting for process 3693453 to exit... +Waiting for process 3693453 to exit... +Waiting for process 3693453 to exit... +Waiting for process 3693453 to exit... +Waiting for process 3693453 to exit... +Waiting for process 3693453 to exit... +Waiting for process 3693453 to exit... +Waiting for process 3693453 to exit... +[61/124 done]: unit/cluster/diskless-load-swapdb (103 seconds) +Testing unit/cluster/slot-migration === (external:skip cluster) Starting server 127.0.0.1:21699 ok === (external:skip cluster) Starting server 127.0.0.1:21701 ok === (external:skip cluster) Starting server 127.0.0.1:21703 ok === (external:skip cluster) Starting server 127.0.0.1:21705 ok === (external:skip cluster) Starting server 127.0.0.1:21707 ok -[ok]: Slot migration is ok when the replicas are down (239 ms) -[59/124 done]: unit/cluster/slot-migration (84 seconds) -Testing unit/cluster/cluster-shards === (external:skip cluster) Starting server 127.0.0.1:21709 ok +[ok]: Slot migration states are replicated (6 ms) +[ok]: Migration target is auto-updated after failover in target shard (3417 ms) +[ok]: Migration source is auto-updated after failover in source shard (3251 ms) +[ok]: Replica redirects key access in migrating slots (1 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 (1 ms) +[ok]: New replica inherits migrating slot (437 ms) +[ok]: New replica inherits importing slot (531 ms) === (external:skip cluster) Starting server 127.0.0.1:21711 ok === (external:skip cluster) Starting server 127.0.0.1:21713 ok === (external:skip cluster) Starting server 127.0.0.1:21715 ok === (external:skip cluster) Starting server 127.0.0.1:21717 ok === (external:skip cluster) Starting server 127.0.0.1:21719 ok -[ok]: Cluster should start ok (1 ms) -[ok]: Cluster shards response is ok for shard 0 (1 ms) -[ok]: Kill a node and tell the replica to immediately takeover (11 ms) -[ok]: Verify health as fail for killed node (3247 ms) -[ok]: CLUSTER SHARDS slot response is non-empty when primary node fails (1 ms) -[60/124 done]: unit/cluster/cluster-shards (15 seconds) -Testing unit/cluster/manual-takeover === (external:skip cluster) Starting server 127.0.0.1:21721 ok +[ok]: Multiple slot migration states are replicated (10 ms) +[ok]: New replica inherits multiple migrating slots (506 ms) +[ok]: Slot finalization succeeds on both primary and replicas (23 ms) === (external:skip cluster) Starting server 127.0.0.1:21723 ok === (external:skip cluster) Starting server 127.0.0.1:21725 ok === (external:skip cluster) Starting server 127.0.0.1:21727 ok === (external:skip cluster) Starting server 127.0.0.1:21729 ok === (external:skip cluster) Starting server 127.0.0.1:21731 ok === (external:skip cluster) Starting server 127.0.0.1:21733 ok +[ok]: Slot is auto-claimed by target after source relinquishes ownership (1008 ms) === (external:skip cluster) Starting server 127.0.0.1:21735 ok === (external:skip cluster) Starting server 127.0.0.1:21737 ok === (external:skip cluster) Starting server 127.0.0.1:21739 ok -[ok]: Cluster is up (2 ms) -[ok]: Cluster is writable (93 ms) -[ok]: Killing majority of master nodes (26 ms) -[ok]: Cluster should eventually be down (3134 ms) -[ok]: Use takeover to bring slaves back (867 ms) -[ok]: Cluster should eventually be up again (2351 ms) -[ok]: Cluster is writable (89 ms) -[ok]: Instance #5, #6, #7 are now masters (1 ms) -[ok]: Restarting the previously killed master nodes (2 ms) -[ok]: Instance #0, #1, #2 gets converted into a slaves (360 ms) -[61/124 done]: unit/cluster/manual-takeover (21 seconds) -Testing unit/cluster/cluster-reliable-meet -[ignore]: Not supported in tls mode -[62/124 done]: unit/cluster/cluster-reliable-meet (0 seconds) -Testing unit/cluster/pubsubshard === (external:skip cluster) Starting server 127.0.0.1:21741 ok === (external:skip cluster) Starting server 127.0.0.1:21743 ok === (external:skip cluster) Starting server 127.0.0.1:21745 ok +[ok]: CLUSTER SETSLOT with invalid timeouts (1 ms) === (external:skip cluster) Starting server 127.0.0.1:21747 ok === (external:skip cluster) Starting server 127.0.0.1:21749 ok === (external:skip cluster) Starting server 127.0.0.1:21751 ok -[ok]: Pub/Sub shard basics (25 ms) -[ok]: client can't subscribe to multiple shard channels across different slots in same call (4 ms) -[ok]: client can subscribe to multiple shard channels across different slots in separate call (0 ms) -[ok]: sunsubscribe without specifying any channel would unsubscribe all shard channels subscribed (9 ms) -[ok]: Verify Pub/Sub and Pub/Sub shard no overlap (27 ms) -[ok]: PUBSUB channels/shardchannels (18 ms) -[63/124 done]: unit/cluster/pubsubshard (15 seconds) -Testing unit/cluster/slot-stats === (external:skip cluster) Starting server 127.0.0.1:21753 ok -[ok]: CLUSTER SLOT-STATS cpu-usec reset upon CONFIG RESETSTAT. (906 ms) -[ok]: CLUSTER SLOT-STATS cpu-usec reset upon slot migration. (1969 ms) -[ok]: CLUSTER SLOT-STATS cpu-usec for non-slot specific commands. (943 ms) -[ok]: CLUSTER SLOT-STATS cpu-usec for slot specific commands. (980 ms) -[ok]: CLUSTER SLOT-STATS cpu-usec for blocking commands, unblocked on keyspace update. (1988 ms) -[ok]: CLUSTER SLOT-STATS cpu-usec for blocking commands, unblocked on timeout. (2037 ms) -[ok]: CLUSTER SLOT-STATS cpu-usec for transactions. (2018 ms) -[ok]: CLUSTER SLOT-STATS cpu-usec for lua-scripts, without cross-slot keys. (992 ms) -[ok]: CLUSTER SLOT-STATS cpu-usec for lua-scripts, with cross-slot keys. (950 ms) -[ok]: CLUSTER SLOT-STATS cpu-usec for functions, without cross-slot keys. (1036 ms) -[ok]: CLUSTER SLOT-STATS cpu-usec for functions, with cross-slot keys. (976 ms) === (external:skip cluster) Starting server 127.0.0.1:21755 ok -[ok]: CLUSTER SLOT-STATS network-bytes-in, multi bulk buffer processing. (959 ms) -[ok]: CLUSTER SLOT-STATS network-bytes-in, in-line buffer processing. (1028 ms) -[ok]: CLUSTER SLOT-STATS network-bytes-in, blocking command. (2010 ms) -[ok]: CLUSTER SLOT-STATS network-bytes-in, multi-exec transaction. (1016 ms) -[ok]: CLUSTER SLOT-STATS network-bytes-in, non slot specific command. (1057 ms) -[ok]: CLUSTER SLOT-STATS network-bytes-in, pub/sub. (990 ms) === (external:skip cluster) Starting server 127.0.0.1:21757 ok +[ok]: CLUSTER SETSLOT with an explicit timeout (3092 ms) +[ignore]: Not supported in tls mode === (external:skip cluster) Starting server 127.0.0.1:21759 ok -[ok]: CLUSTER SLOT-STATS network-bytes-in, sharded pub/sub. (2006 ms) -Waiting for process 1566358 to exit... === (external:skip cluster) Starting server 127.0.0.1:21761 ok -[ok]: CLUSTER SLOT-STATS network-bytes-out, for non-slot specific commands. (950 ms) -[ok]: CLUSTER SLOT-STATS network-bytes-out, for slot specific commands. (1019 ms) -[ok]: CLUSTER SLOT-STATS network-bytes-out, blocking commands. (2064 ms) === (external:skip cluster) Starting server 127.0.0.1:21763 ok === (external:skip cluster) Starting server 127.0.0.1:21765 ok -[ok]: CLUSTER SLOT-STATS network-bytes-out, replication stream egress. (949 ms) === (external:skip cluster) Starting server 127.0.0.1:21767 ok === (external:skip cluster) Starting server 127.0.0.1:21769 ok -[ok]: CLUSTER SLOT-STATS network-bytes-out, sharded pub/sub, single channel. (1884 ms) -[ok]: CLUSTER SLOT-STATS network-bytes-out, sharded pub/sub, cross-slot channels. (1904 ms) === (external:skip cluster) Starting server 127.0.0.1:21771 ok -[ok]: CLUSTER SLOT-STATS contains default value upon valkey-server startup (964 ms) -[ok]: CLUSTER SLOT-STATS contains correct metrics upon key introduction (1023 ms) -[ok]: CLUSTER SLOT-STATS contains correct metrics upon key mutation (1024 ms) -[ok]: CLUSTER SLOT-STATS contains correct metrics upon key deletion (957 ms) -[ok]: CLUSTER SLOT-STATS slot visibility based on slot ownership changes (1969 ms) === (external:skip cluster) Starting server 127.0.0.1:21773 ok -[ok]: CLUSTER SLOT-STATS SLOTSRANGE all slots present (0 ms) -[ok]: CLUSTER SLOT-STATS SLOTSRANGE some slots missing (117 ms) === (external:skip cluster) Starting server 127.0.0.1:21775 ok -[ok]: CLUSTER SLOT-STATS ORDERBY DESC correct ordering (3928 ms) -[ok]: CLUSTER SLOT-STATS ORDERBY ASC correct ordering (3962 ms) -[ok]: CLUSTER SLOT-STATS ORDERBY LIMIT correct response pagination, where limit is less than number of assigned slots (10 ms) -[ok]: CLUSTER SLOT-STATS ORDERBY LIMIT correct response pagination, where limit is greater than number of assigned slots (4 ms) -[ok]: CLUSTER SLOT-STATS ORDERBY arg sanity check. (0 ms) +[ok]: Slot migration is ok when the replicas are down (332 ms) +[62/124 done]: unit/cluster/slot-migration (85 seconds) +Testing unit/cluster/slot-ownership === (external:skip cluster) Starting server 127.0.0.1:21777 ok === (external:skip cluster) Starting server 127.0.0.1:21779 ok -[ok]: CLUSTER SLOT-STATS metrics replication for new keys (2074 ms) -[ok]: CLUSTER SLOT-STATS metrics replication for existing keys (2048 ms) -[ok]: CLUSTER SLOT-STATS metrics replication for deleting keys (2048 ms) -[64/124 done]: unit/cluster/slot-stats (119 seconds) -Testing unit/cluster/slave-stop-cond === (external:skip cluster) Starting server 127.0.0.1:21781 ok === (external:skip cluster) Starting server 127.0.0.1:21783 ok +[ok]: Verify that slot ownership transfer through gossip propagates deletes to replicas (123 ms) +[63/124 done]: unit/cluster/slot-ownership (11 seconds) +Testing unit/cluster/manual-failover === (external:skip cluster) Starting server 127.0.0.1:21785 ok === (external:skip cluster) Starting server 127.0.0.1:21787 ok === (external:skip cluster) Starting server 127.0.0.1:21789 ok @@ -4595,74 +4613,44 @@ === (external:skip cluster) Starting server 127.0.0.1:21795 ok === (external:skip cluster) Starting server 127.0.0.1:21797 ok === (external:skip cluster) Starting server 127.0.0.1:21799 ok -[ok]: Cluster is up (3 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 (0 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 (20011 ms) -[ok]: Slave #5 is reachable and alive (2 ms) -[ok]: Slave #5 should not be able to failover (10003 ms) -[ok]: Cluster should be down (91 ms) -[65/124 done]: unit/cluster/slave-stop-cond (46 seconds) -Testing unit/cluster/transactions-on-replica === (external:skip cluster) Starting server 127.0.0.1:21801 ok === (external:skip cluster) Starting server 127.0.0.1:21803 ok -[ok]: Cluster should start ok (0 ms) -[ok]: Can't read from replica without READONLY (1 ms) -[ok]: Can't read from replica after READWRITE (1 ms) -[ok]: Can read from replica after READONLY (0 ms) -[ok]: Can perform HSET primary and HGET from replica (1 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 (3032 ms) -[ok]: read-only blocking operations from replica (6 ms) -[ok]: reply MOVED when eval from replica for update (0 ms) -[66/124 done]: unit/cluster/transactions-on-replica (16 seconds) -Testing unit/cluster/scripting +[ok]: Cluster is up (4 ms) +[ok]: Cluster is writable (137 ms) +[ok]: Instance #5 is a slave (1 ms) +[ok]: Instance #5 synced with the master (1 ms) +WWWWWWWWWW[ok]: Send CLUSTER FAILOVER to #5, during load (3404 ms) +[ok]: Wait for failover (22 ms) +[ok]: Cluster should eventually be up again (4 ms) +[ok]: Cluster is writable (140 ms) +[ok]: Instance #5 is now a master (1 ms) +[ok]: Verify 50000 keys for consistency with logical content (1905 ms) +[ok]: Instance #0 gets converted into a slave (22 ms) === (external:skip cluster) Starting server 127.0.0.1:21805 ok -[ok]: Eval scripts with shebangs and functions default to no cross slots (1 ms) -[ok]: Cross slot commands are allowed by default for eval scripts and with allow-cross-slot-keys flag (0 ms) -[ok]: Cross slot commands are also blocked if they disagree with pre-declared keys (1 ms) -[ok]: Cross slot commands are allowed by default if they disagree with pre-declared keys (0 ms) -[ok]: Function no-cluster flag (0 ms) -[ok]: Script no-cluster flag (0 ms) -[ok]: Calling cluster slots in scripts is OK (1 ms) -[ok]: Calling cluster shards in scripts is OK (0 ms) -[67/124 done]: unit/cluster/scripting (3 seconds) -Testing unit/cluster/multi-slot-operations === (external:skip cluster) Starting server 127.0.0.1:21807 ok === (external:skip cluster) Starting server 127.0.0.1:21809 ok === (external:skip cluster) Starting server 127.0.0.1:21811 ok === (external:skip cluster) Starting server 127.0.0.1:21813 ok === (external:skip cluster) Starting server 127.0.0.1:21815 ok -[ok]: Continuous slots distribution (243 ms) -[ok]: ADDSLOTS command with several boundary conditions test suite (0 ms) -[ok]: ADDSLOTSRANGE command with several boundary conditions test suite (0 ms) -[ok]: DELSLOTSRANGE command with several boundary conditions test suite (3 ms) -[68/124 done]: unit/cluster/multi-slot-operations (4 seconds) -Testing unit/cluster/failover === (external:skip cluster) Starting server 127.0.0.1:21817 ok === (external:skip cluster) Starting server 127.0.0.1:21819 ok === (external:skip cluster) Starting server 127.0.0.1:21821 ok === (external:skip cluster) Starting server 127.0.0.1:21823 ok +[ok]: Cluster is up (4 ms) +[ok]: Cluster is writable (135 ms) +[ok]: Instance #5 is a slave (1 ms) +[ok]: Instance #5 synced with the master (1 ms) +[ok]: Make instance #0 unreachable without killing it (0 ms) +[ok]: Send CLUSTER FAILOVER to instance #5 (0 ms) +[ok]: Instance #5 is still a slave after some time (no failover) (5004 ms) +[ok]: Wait for instance #0 to return back alive (4996 ms) +Waiting for process 3696978 to exit... === (external:skip cluster) Starting server 127.0.0.1:21825 ok === (external:skip cluster) Starting server 127.0.0.1:21827 ok === (external:skip cluster) Starting server 127.0.0.1:21829 ok === (external:skip cluster) Starting server 127.0.0.1:21831 ok === (external:skip cluster) Starting server 127.0.0.1:21833 ok === (external:skip cluster) Starting server 127.0.0.1:21835 ok -[ok]: Cluster is up (2 ms) -[ok]: Cluster is writable (93 ms) -[ok]: Instance #5 is a slave (0 ms) -[ok]: Instance #5 synced with the master (0 ms) -[ok]: Killing one master node (9 ms) -[ok]: Wait for failover (5477 ms) -[ok]: Cluster should eventually be up again (94 ms) -[ok]: Cluster is writable (78 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 (380 ms) === (external:skip cluster) Starting server 127.0.0.1:21837 ok === (external:skip cluster) Starting server 127.0.0.1:21839 ok === (external:skip cluster) Starting server 127.0.0.1:21841 ok @@ -4672,16 +4660,18 @@ === (external:skip cluster) Starting server 127.0.0.1:21849 ok === (external:skip cluster) Starting server 127.0.0.1:21851 ok === (external:skip cluster) Starting server 127.0.0.1:21853 ok -[ok]: Cluster is up (2 ms) -[ok]: Cluster is writable (66 ms) -[ok]: Killing the first primary node (8 ms) -[ok]: Wait for failover (4059 ms) -[ok]: Cluster should eventually be up again (127 ms) -[ok]: Restarting the previously killed primary node (1 ms) -[ok]: Instance #0 gets converted into a replica (74 ms) -[ok]: Make sure the replicas always get the different ranks (2 ms) -[69/124 done]: unit/cluster/failover (36 seconds) -Testing unit/cluster/many-slot-migration +[ok]: Cluster is up (4 ms) +[ok]: Cluster is writable (149 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 (1 ms) +[ok]: Instance #5 is a master after some time (2331 ms) +[ok]: Wait for instance #0 to return back alive (7669 ms) +Waiting for process 3698838 to exit... +Waiting for process 3698667 to exit... +[64/124 done]: unit/cluster/manual-failover (83 seconds) +Testing unit/cluster/consistency-check === (external:skip cluster) Starting server 127.0.0.1:21855 ok === (external:skip cluster) Starting server 127.0.0.1:21857 ok === (external:skip cluster) Starting server 127.0.0.1:21859 ok @@ -4692,56 +4682,41 @@ === (external:skip cluster) Starting server 127.0.0.1:21869 ok === (external:skip cluster) Starting server 127.0.0.1:21871 ok === (external:skip cluster) Starting server 127.0.0.1:21873 ok -[ok]: Cluster is up (2 ms) -[ok]: Set many keys (3617 ms) -[ok]: Keys are accessible (3292 ms) -[ok]: Init migration of many slots (4072 ms) -[ok]: Fix cluster (74406 ms) -[ok]: Keys are accessible (4019 ms) -[70/124 done]: unit/cluster/many-slot-migration (94 seconds) -Testing unit/cluster/replica-in-sync +[ok]: Cluster should start ok (3 ms) +[ok]: Cluster is writable (121 ms) +[ok]: Slave expired keys is loaded when restarted: appendonly=no (3742 ms) +[ok]: Slave expired keys is loaded when restarted: appendonly=yes (3947 ms) +[65/124 done]: unit/cluster/consistency-check (37 seconds) +Testing unit/cluster/human-announced-nodename === (external:skip cluster) Starting server 127.0.0.1:21875 ok === (external:skip cluster) Starting server 127.0.0.1:21877 ok -[ok]: Cluster is up (0 ms) -[ok]: Cluster is writable (55 ms) -[ok]: Fill up primary with data (1 ms) -[ok]: Add new node as replica (1 ms) -[ok]: Check digest and replica state (1 ms) -[ok]: Replica in loading state is hidden (4957 ms) -[ok]: Check disconnected replica not hidden from slots (104 ms) -Waiting for process 1583052 to exit... -Waiting for process 1583052 to exit... -Waiting for process 1583052 to exit... -Waiting for process 1583052 to exit... -Waiting for process 1583052 to exit... -Waiting for process 1583052 to exit... -Waiting for process 1583052 to exit... -Waiting for process 1583052 to exit... -Waiting for process 1583052 to exit... -[71/124 done]: unit/cluster/replica-in-sync (25 seconds) -Testing unit/cluster/manual-failover === (external:skip cluster) Starting server 127.0.0.1:21879 ok +[ok]: Set cluster human announced nodename and let it propagate (410 ms) +[ok]: Human nodenames are visible in log messages (3559 ms) +[66/124 done]: unit/cluster/human-announced-nodename (9 seconds) +Testing unit/cluster/pubsubshard === (external:skip cluster) Starting server 127.0.0.1:21881 ok === (external:skip cluster) Starting server 127.0.0.1:21883 ok === (external:skip cluster) Starting server 127.0.0.1:21885 ok === (external:skip cluster) Starting server 127.0.0.1:21887 ok === (external:skip cluster) Starting server 127.0.0.1:21889 ok === (external:skip cluster) Starting server 127.0.0.1:21891 ok +[ok]: Pub/Sub shard basics (126 ms) +[ok]: client can't subscribe to multiple shard channels across different slots in same call (9 ms) +[ok]: client can subscribe to multiple shard channels across different slots in separate call (2 ms) +[ok]: sunsubscribe without specifying any channel would unsubscribe all shard channels subscribed (17 ms) +[ok]: Verify Pub/Sub and Pub/Sub shard no overlap (45 ms) +[ok]: PUBSUB channels/shardchannels (26 ms) +[67/124 done]: unit/cluster/pubsubshard (20 seconds) +Testing unit/cluster/misc === (external:skip cluster) Starting server 127.0.0.1:21893 ok === (external:skip cluster) Starting server 127.0.0.1:21895 ok === (external:skip cluster) Starting server 127.0.0.1:21897 ok -[ok]: Cluster is up (2 ms) -[ok]: Cluster is writable (107 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 (2089 ms) -[ok]: Wait for failover (14 ms) -[ok]: Cluster should eventually be up again (2 ms) -[ok]: Cluster is writable (97 ms) -[ok]: Instance #5 is now a master (0 ms) -[ok]: Verify 50000 keys for consistency with logical content (1042 ms) -[ok]: Instance #0 gets converted into a slave (13 ms) === (external:skip cluster) Starting server 127.0.0.1:21899 ok +[ok]: Key lazy expires during key migration (119 ms) +[ok]: Coverage: Basic cluster commands (396 ms) +[68/124 done]: unit/cluster/misc (18 seconds) +Testing unit/cluster/pubsub === (external:skip cluster) Starting server 127.0.0.1:21901 ok === (external:skip cluster) Starting server 127.0.0.1:21903 ok === (external:skip cluster) Starting server 127.0.0.1:21905 ok @@ -4751,156 +4726,177 @@ === (external:skip cluster) Starting server 127.0.0.1:21913 ok === (external:skip cluster) Starting server 127.0.0.1:21915 ok === (external:skip cluster) Starting server 127.0.0.1:21917 ok -[ok]: Cluster is up (2 ms) -[ok]: Cluster is writable (93 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 still a slave after some time (no failover) (5005 ms) -[ok]: Wait for instance #0 to return back alive (4996 ms) === (external:skip cluster) Starting server 127.0.0.1:21919 ok +[ok]: Test publishing to master (7 ms) +[ok]: Test publishing to slave (7 ms) +[69/124 done]: unit/cluster/pubsub (24 seconds) +Testing unit/cluster/pubsubshard-slot-migration === (external:skip cluster) Starting server 127.0.0.1:21921 ok === (external:skip cluster) Starting server 127.0.0.1:21923 ok === (external:skip cluster) Starting server 127.0.0.1:21925 ok === (external:skip cluster) Starting server 127.0.0.1:21927 ok === (external:skip cluster) Starting server 127.0.0.1:21929 ok === (external:skip cluster) Starting server 127.0.0.1:21931 ok +[ok]: Cluster is up (2 ms) +[ok]: Migrate a slot, verify client receives sunsubscribe on primary serving the slot. (241 ms) +[ok]: Client subscribes to multiple channels, migrate a slot, verify client receives sunsubscribe on primary serving the slot. (140 ms) +[ok]: Migrate a slot, verify client receives sunsubscribe on replica serving the slot. (85 ms) +[ok]: Move a replica to another primary, verify client receives sunsubscribe on replica serving the slot. (157 ms) +[ok]: Delete a slot, verify sunsubscribe message (63 ms) +[ok]: Reset cluster, verify sunsubscribe message (44 ms) +[70/124 done]: unit/cluster/pubsubshard-slot-migration (17 seconds) +Testing unit/cluster/cluster-shards === (external:skip cluster) Starting server 127.0.0.1:21933 ok === (external:skip cluster) Starting server 127.0.0.1:21935 ok === (external:skip cluster) Starting server 127.0.0.1:21937 ok === (external:skip cluster) Starting server 127.0.0.1:21939 ok === (external:skip cluster) Starting server 127.0.0.1:21941 ok === (external:skip cluster) Starting server 127.0.0.1:21943 ok +[ok]: Cluster should start ok (1 ms) +[ok]: Cluster shards response is ok for shard 0 (2 ms) +[ok]: Kill a node and tell the replica to immediately takeover (23 ms) +[ok]: Verify health as fail for killed node (3462 ms) +[ok]: CLUSTER SHARDS slot response is non-empty when primary node fails (1 ms) +[71/124 done]: unit/cluster/cluster-shards (18 seconds) +Testing unit/cluster/slot-migration-response === (external:skip cluster) Starting server 127.0.0.1:21945 ok === (external:skip cluster) Starting server 127.0.0.1:21947 ok -[ok]: Cluster is up (3 ms) -[ok]: Cluster is writable (94 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 (51 ms) -[ok]: Wait for instance #0 to return back alive (9950 ms) -[72/124 done]: unit/cluster/manual-failover (65 seconds) -Testing unit/cluster/faildet +[ok]: Cluster is up (0 ms) +[ok]: Set many keys in the cluster (1622 ms) +[ok]: Test cluster responses during migration of slot x (72 ms) +[72/124 done]: unit/cluster/slot-migration-response (6 seconds) +Testing unit/cluster/multi-slot-operations === (external:skip cluster) Starting server 127.0.0.1:21949 ok === (external:skip cluster) Starting server 127.0.0.1:21951 ok === (external:skip cluster) Starting server 127.0.0.1:21953 ok === (external:skip cluster) Starting server 127.0.0.1:21955 ok === (external:skip cluster) Starting server 127.0.0.1:21957 ok +[ok]: Continuous slots distribution (205 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) +Waiting for process 3706779 to exit... +[73/124 done]: unit/cluster/multi-slot-operations (8 seconds) +Testing unit/cluster/failover2 === (external:skip cluster) Starting server 127.0.0.1:21959 ok === (external:skip cluster) Starting server 127.0.0.1:21961 ok === (external:skip cluster) Starting server 127.0.0.1:21963 ok === (external:skip cluster) Starting server 127.0.0.1:21965 ok === (external:skip cluster) Starting server 127.0.0.1:21967 ok -[ok]: Cluster should start ok (2 ms) -[ok]: Killing two slave nodes (19 ms) -[ok]: Cluster should be still up (86 ms) -[ok]: Killing one master node (10 ms) -[ok]: Cluster should be down now (84 ms) -[ok]: Restarting master node (8 ms) -[ok]: Cluster should be up again (83 ms) -Waiting for process 1586018 to exit... -Waiting for process 1586018 to exit... -Waiting for process 1586018 to exit... -Waiting for process 1586018 to exit... -Waiting for process 1586018 to exit... -Waiting for process 1586018 to exit... -Waiting for process 1586018 to exit... -Waiting for process 1586018 to exit... -Waiting for process 1585997 to exit... -Waiting for process 1585997 to exit... -Waiting for process 1585997 to exit... -Waiting for process 1585997 to exit... -Waiting for process 1585997 to exit... -Waiting for process 1585997 to exit... -Waiting for process 1585997 to exit... -[73/124 done]: unit/cluster/faildet (42 seconds) -Testing unit/cluster/failure-marking === (external:skip cluster) Starting server 127.0.0.1:21969 ok === (external:skip cluster) Starting server 127.0.0.1:21971 ok -[ok]: Verify that single primary marks replica as failed (3328 ms) +[ok]: Cluster is up (2 ms) +[ok]: Cluster is writable (140 ms) +[ok]: Killing one primary node (27 ms) +[ok]: Wait for failover (7268 ms) +[ok]: Killing the new primary node (25 ms) +[ok]: Cluster should eventually be up again (167 ms) +[ok]: wait for new failover (7125 ms) +[ok]: Restarting the previously killed primary nodes (11 ms) +[ok]: Make sure there is no failover timeout (2 ms) +[74/124 done]: unit/cluster/failover2 (29 seconds) +Testing unit/cluster/cli +[ignore]: Not supported in tls mode +[75/124 done]: unit/cluster/cli (0 seconds) +Testing unit/cluster/scripting === (external:skip cluster) Starting server 127.0.0.1:21973 ok +[ok]: Eval scripts with shebangs and functions default to no cross slots (1 ms) +[ok]: Cross slot commands are allowed by default for eval scripts and with allow-cross-slot-keys flag (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 (1 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 (1 ms) +[76/124 done]: unit/cluster/scripting (3 seconds) +Testing unit/cluster/links === (external:skip cluster) Starting server 127.0.0.1:21975 ok === (external:skip cluster) Starting server 127.0.0.1:21977 ok -[ok]: Verify that multiple primaries mark replica as failed (6373 ms) -[ignore]: Not supported in tls mode -[74/124 done]: unit/cluster/failure-marking (36 seconds) -Testing unit/cluster/cluster-multiple-meets -[ignore]: Not supported in tls mode -[75/124 done]: unit/cluster/cluster-multiple-meets (0 seconds) -Testing unit/cluster/cli -[ignore]: Not supported in tls mode -[76/124 done]: unit/cluster/cli (0 seconds) -Testing unit/cluster/cluster-slots === (external:skip cluster) Starting server 127.0.0.1:21979 ok +[ok]: Broadcast message across a cluster shard while a cluster link is down (119 ms) === (external:skip cluster) Starting server 127.0.0.1:21981 ok === (external:skip cluster) Starting server 127.0.0.1:21983 ok === (external:skip cluster) Starting server 127.0.0.1:21985 ok +[ok]: Each node has two links with each peer (4 ms) +[ok]: Validate cluster links format (1 ms) +[ok]: Disconnect link when send buffer limit reached (9311 ms) +[ok]: Link memory increases with publishes (705 ms) +[ok]: Link memory resets after publish messages flush (865 ms) +[77/124 done]: unit/cluster/links (25 seconds) +Testing unit/cluster/replica-in-sync === (external:skip cluster) Starting server 127.0.0.1:21987 ok === (external:skip cluster) Starting server 127.0.0.1:21989 ok -=== (external:skip cluster) Starting server 127.0.0.1:21991 ok -=== (external:skip cluster) Starting server 127.0.0.1:21993 ok -=== (external:skip cluster) Starting server 127.0.0.1:21995 ok -=== (external:skip cluster) Starting server 127.0.0.1:21997 ok -=== (external:skip cluster) Starting server 127.0.0.1:21999 ok -=== (external:skip cluster) Starting server 127.0.0.1:22001 ok -=== (external:skip cluster) Starting server 127.0.0.1:22003 ok -=== (external:skip cluster) Starting server 127.0.0.1:22005 ok -=== (external:skip cluster) Starting server 127.0.0.1:22007 ok -[ok]: Cluster is up (3 ms) -[ok]: Cluster is writable (119 ms) -[ok]: Instance #5 is a slave (0 ms) -[ok]: client do not break when cluster slot (1252 ms) -[ok]: client can handle keys with hash tag (69 ms) -[ok]: slot migration is valid from primary to another primary (67 ms) -[ok]: slot migration is invalid from primary to replica (69 ms) -[ok]: slot must be unbound on the owner when it is deleted (5130 ms) -[ok]: CLUSTER SLOTS from non-TLS client in TLS cluster (2381 ms) -[77/124 done]: unit/cluster/cluster-slots (59 seconds) +[ok]: Cluster is up (0 ms) +[ok]: Cluster is writable (85 ms) +[ok]: Fill up primary with data (2 ms) +[ok]: Add new node as replica (1 ms) +[ok]: Check digest and replica state (1 ms) +[ok]: Replica in loading state is hidden (5004 ms) +[ok]: Check disconnected replica not hidden from slots (106 ms) +[78/124 done]: unit/cluster/replica-in-sync (16 seconds) Testing unit/cluster/cluster-response-tls +=== (external:skip cluster tls) Starting server 127.0.0.1:21991 ok +=== (external:skip cluster tls) Starting server 127.0.0.1:21993 ok +=== (external:skip cluster tls) Starting server 127.0.0.1:21995 ok +=== (external:skip cluster tls) Starting server 127.0.0.1:21997 ok +=== (external:skip cluster tls) Starting server 127.0.0.1:21999 ok +=== (external:skip cluster tls) Starting server 127.0.0.1:22001 ok +[ok]: CLUSTER SLOTS cached using EVAL over TLS -- tls-cluster yes (12 ms) +[ok]: CLUSTER SLOTS with different connection type -- tls-cluster yes (65 ms) +[ok]: CLUSTER NODES return port according to connection type -- tls-cluster yes (46 ms) +[ok]: Set many keys in the cluster -- tls-cluster yes (2146 ms) +[ok]: Test cluster responses during migration of slot x -- tls-cluster yes (169 ms) +Waiting for process 3715330 to exit... +=== (external:skip cluster tls) Starting server 127.0.0.1:22003 ok +=== (external:skip cluster tls) Starting server 127.0.0.1:22005 ok +=== (external:skip cluster tls) Starting server 127.0.0.1:22007 ok === (external:skip cluster tls) Starting server 127.0.0.1:22009 ok === (external:skip cluster tls) Starting server 127.0.0.1:22011 ok === (external:skip cluster tls) Starting server 127.0.0.1:22013 ok -=== (external:skip cluster tls) Starting server 127.0.0.1:22015 ok -=== (external:skip cluster tls) Starting server 127.0.0.1:22017 ok -=== (external:skip cluster tls) Starting server 127.0.0.1:22019 ok -[ok]: CLUSTER SLOTS cached using EVAL over TLS -- tls-cluster yes (6 ms) -[ok]: CLUSTER SLOTS with different connection type -- tls-cluster yes (35 ms) -[ok]: CLUSTER NODES return port according to connection type -- tls-cluster yes (36 ms) -[ok]: Set many keys in the cluster -- tls-cluster yes (1159 ms) -[ok]: Test cluster responses during migration of slot x -- tls-cluster yes (3 ms) -=== (external:skip cluster tls) Starting server 127.0.0.1:22021 ok -=== (external:skip cluster tls) Starting server 127.0.0.1:22023 ok -=== (external:skip cluster tls) Starting server 127.0.0.1:22025 ok -=== (external:skip cluster tls) Starting server 127.0.0.1:22027 ok -=== (external:skip cluster tls) Starting server 127.0.0.1:22029 ok -=== (external:skip cluster tls) Starting server 127.0.0.1:22031 ok -[ok]: CLUSTER SLOTS cached using EVAL over TLS -- tls-cluster no (6 ms) -[ok]: CLUSTER SLOTS with different connection type -- tls-cluster no (35 ms) -[ok]: CLUSTER NODES return port according to connection type -- tls-cluster no (28 ms) -[ok]: Set many keys in the cluster -- tls-cluster no (833 ms) -[ok]: Test cluster responses during migration of slot x -- tls-cluster no (203 ms) -Waiting for process 1595810 to exit... -[78/124 done]: unit/cluster/cluster-response-tls (31 seconds) +[ok]: CLUSTER SLOTS cached using EVAL over TLS -- tls-cluster no (8 ms) +[ok]: CLUSTER SLOTS with different connection type -- tls-cluster no (47 ms) +[ok]: CLUSTER NODES return port according to connection type -- tls-cluster no (43 ms) +[ok]: Set many keys in the cluster -- tls-cluster no (2278 ms) +[ok]: Test cluster responses during migration of slot x -- tls-cluster no (3 ms) +[79/124 done]: unit/cluster/cluster-response-tls (31 seconds) +Testing unit/cluster/transactions-on-replica +=== (external:skip cluster) Starting server 127.0.0.1:22015 ok +=== (external:skip cluster) Starting server 127.0.0.1:22017 ok +[ok]: Cluster should start ok (1 ms) +[ok]: Can't read from replica without READONLY (1 ms) +[ok]: Can't read from replica after READWRITE (1 ms) +[ok]: Can read from replica after READONLY (0 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 (1 ms) +[ok]: write command is QUEUED, then EXEC should be MOVED after failover (2014 ms) +[ok]: read-only blocking operations from replica (8 ms) +[ok]: reply MOVED when eval from replica for update (1 ms) +[80/124 done]: unit/cluster/transactions-on-replica (13 seconds) Testing unit/cluster/no-failover-option +=== (external:skip cluster) Starting server 127.0.0.1:22019 ok +=== (external:skip cluster) Starting server 127.0.0.1:22021 ok +=== (external:skip cluster) Starting server 127.0.0.1:22023 ok +=== (external:skip cluster) Starting server 127.0.0.1:22025 ok +=== (external:skip cluster) Starting server 127.0.0.1:22027 ok +=== (external:skip cluster) Starting server 127.0.0.1:22029 ok +[ok]: Cluster is up (1 ms) +[ok]: Instance #3 is a replica (1 ms) +[ok]: Instance #3 synced with the master (0 ms) +[ok]: The nofailover flag is propagated (205 ms) +[ok]: Killing one master node (21 ms) +[ok]: Cluster should be still down after some time (3211 ms) +[ok]: Instance #3 is still a replica (0 ms) +[ok]: Restarting the previously killed master node (2 ms) +[81/124 done]: unit/cluster/no-failover-option (15 seconds) +Testing unit/cluster/cluster-slots +=== (external:skip cluster) Starting server 127.0.0.1:22031 ok === (external:skip cluster) Starting server 127.0.0.1:22033 ok === (external:skip cluster) Starting server 127.0.0.1:22035 ok === (external:skip cluster) Starting server 127.0.0.1:22037 ok === (external:skip cluster) Starting server 127.0.0.1:22039 ok === (external:skip cluster) Starting server 127.0.0.1:22041 ok === (external:skip cluster) Starting server 127.0.0.1:22043 ok -[ok]: Cluster is up (1 ms) -[ok]: Instance #3 is a replica (126 ms) -[ok]: Instance #3 synced with the master (0 ms) -[ok]: The nofailover flag is propagated (3 ms) -[ok]: Killing one master node (10 ms) -[ok]: Cluster should be still down after some time (3203 ms) -[ok]: Instance #3 is still a replica (0 ms) -[ok]: Restarting the previously killed master node (1 ms) -[79/124 done]: unit/cluster/no-failover-option (18 seconds) -Testing unit/cluster/update-msg === (external:skip cluster) Starting server 127.0.0.1:22045 ok === (external:skip cluster) Starting server 127.0.0.1:22047 ok === (external:skip cluster) Starting server 127.0.0.1:22049 ok @@ -4909,56 +4905,46 @@ === (external:skip cluster) Starting server 127.0.0.1:22055 ok === (external:skip cluster) Starting server 127.0.0.1:22057 ok === (external:skip cluster) Starting server 127.0.0.1:22059 ok +[ok]: Cluster is up (4 ms) +[ok]: Cluster is writable (166 ms) +[ok]: Instance #5 is a slave (0 ms) +[ok]: client do not break when cluster slot (2255 ms) +[ok]: client can handle keys with hash tag (77 ms) +[ok]: slot migration is valid from primary to another primary (86 ms) +[ok]: slot migration is invalid from primary to replica (91 ms) +[ok]: slot must be unbound on the owner when it is deleted (7227 ms) +[ok]: CLUSTER SLOTS from non-TLS client in TLS cluster (3688 ms) +[82/124 done]: unit/cluster/cluster-slots (86 seconds) +Testing unit/cluster/update-msg === (external:skip cluster) Starting server 127.0.0.1:22061 ok === (external:skip cluster) Starting server 127.0.0.1:22063 ok -[ok]: Cluster is up (2 ms) -[ok]: Cluster is writable (92 ms) -[ok]: Instance #5 is a slave (1 ms) -[ok]: Instance #5 synced with the master (1 ms) -[ok]: Killing one master node (9 ms) -[ok]: Wait for failover (3925 ms) -[ok]: Cluster should eventually be up again (91 ms) -[ok]: Cluster is writable (83 ms) -[ok]: Instance #5 is now a master (0 ms) -[ok]: Killing the new master #5 (10 ms) -[ok]: Cluster should be down now (3230 ms) -[ok]: Restarting the old master node (1 ms) -[ok]: Instance #0 gets converted into a slave (55 ms) -[ok]: Restarting the new master node (1 ms) -[ok]: Cluster is up again (1723 ms) -Waiting for process 1598004 to exit... -[80/124 done]: unit/cluster/update-msg (31 seconds) -Testing unit/cluster/slot-migration-response === (external:skip cluster) Starting server 127.0.0.1:22065 ok === (external:skip cluster) Starting server 127.0.0.1:22067 ok -[ok]: Cluster is up (1 ms) -[ok]: Set many keys in the cluster (726 ms) -[ok]: Test cluster responses during migration of slot x (104 ms) -[81/124 done]: unit/cluster/slot-migration-response (3 seconds) -Testing unit/cluster/base -[ignore]: Not supported in tls mode -[82/124 done]: unit/cluster/base (0 seconds) -Testing unit/cluster/info === (external:skip cluster) Starting server 127.0.0.1:22069 ok === (external:skip cluster) Starting server 127.0.0.1:22071 ok -[ok]: Cluster should start ok (1 ms) -[ok]: errorstats: rejected call due to MOVED Redirection (3 ms) -[83/124 done]: unit/cluster/info (3 seconds) -Testing unit/cluster/links === (external:skip cluster) Starting server 127.0.0.1:22073 ok === (external:skip cluster) Starting server 127.0.0.1:22075 ok === (external:skip cluster) Starting server 127.0.0.1:22077 ok -[ok]: Broadcast message across a cluster shard while a cluster link is down (113 ms) === (external:skip cluster) Starting server 127.0.0.1:22079 ok +[ok]: Cluster is up (5 ms) +[ok]: Cluster is writable (144 ms) +[ok]: Instance #5 is a slave (1 ms) +[ok]: Instance #5 synced with the master (1 ms) +[ok]: Killing one master node (20 ms) +[ok]: Wait for failover (4328 ms) +[ok]: Cluster should eventually be up again (194 ms) +[ok]: Cluster is writable (124 ms) +[ok]: Instance #5 is now a master (1 ms) +[ok]: Killing the new master #5 (23 ms) +[ok]: Cluster should be down now (3303 ms) +[ok]: Restarting the old master node (2 ms) +[ok]: Instance #0 gets converted into a slave (59 ms) +[ok]: Restarting the new master node (2 ms) +[ok]: Cluster is up again (6012 ms) +[83/124 done]: unit/cluster/update-msg (27 seconds) +Testing unit/cluster/slave-stop-cond === (external:skip cluster) Starting server 127.0.0.1:22081 ok === (external:skip cluster) Starting server 127.0.0.1:22083 ok -[ok]: Each node has two links with each peer (2 ms) -[ok]: Validate cluster links format (0 ms) -[ok]: Disconnect link when send buffer limit reached (8411 ms) -[ok]: Link memory increases with publishes (597 ms) -[ok]: Link memory resets after publish messages flush (856 ms) -[84/124 done]: unit/cluster/links (24 seconds) -Testing unit/cluster/pubsub === (external:skip cluster) Starting server 127.0.0.1:22085 ok === (external:skip cluster) Starting server 127.0.0.1:22087 ok === (external:skip cluster) Starting server 127.0.0.1:22089 ok @@ -4967,22 +4953,26 @@ === (external:skip cluster) Starting server 127.0.0.1:22095 ok === (external:skip cluster) Starting server 127.0.0.1:22097 ok === (external:skip cluster) Starting server 127.0.0.1:22099 ok +[ok]: Cluster is up (4 ms) +[ok]: The first master has actually one slave (1 ms) +[ok]: Slaves of #0 is instance #5 as expected (1 ms) +[ok]: Instance #5 synced with the master (0 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 (20025 ms) +[ok]: Slave #5 is reachable and alive (3 ms) +[ok]: Slave #5 should not be able to failover (10005 ms) +[ok]: Cluster should be down (176 ms) +[84/124 done]: unit/cluster/slave-stop-cond (43 seconds) +Testing unit/cluster/cluster-nodes-slots === (external:skip cluster) Starting server 127.0.0.1:22101 ok === (external:skip cluster) Starting server 127.0.0.1:22103 ok -[ok]: Test publishing to master (3 ms) -[ok]: Test publishing to slave (3 ms) -[85/124 done]: unit/cluster/pubsub (13 seconds) -Testing unit/cluster/sharded-pubsub === (external:skip cluster) Starting server 127.0.0.1:22105 ok === (external:skip cluster) Starting server 127.0.0.1:22107 ok -[ok]: Sharded pubsub publish behavior within multi/exec (1 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 (0 ms) -[ok]: Sharded pubsub publish behavior within multi/exec with read operation on replica (0 ms) -[ok]: Sharded pubsub publish behavior within multi/exec with write operation on primary (1 ms) -[ok]: Sharded pubsub publish behavior within multi/exec with write operation on replica (0 ms) -[86/124 done]: unit/cluster/sharded-pubsub (11 seconds) -Testing unit/cluster/slave-selection +[ok]: Cluster should start ok (1 ms) +[ok]: Continuous slots distribution (4 ms) +[ok]: Discontinuous slots distribution (5 ms) +[85/124 done]: unit/cluster/cluster-nodes-slots (12 seconds) +Testing unit/cluster/replica-migration === (external:skip cluster) Starting server 127.0.0.1:22109 ok === (external:skip cluster) Starting server 127.0.0.1:22111 ok === (external:skip cluster) Starting server 127.0.0.1:22113 ok @@ -4991,6 +4981,7 @@ === (external:skip cluster) Starting server 127.0.0.1:22119 ok === (external:skip cluster) Starting server 127.0.0.1:22121 ok === (external:skip cluster) Starting server 127.0.0.1:22123 ok +[ok]: Migrated replica reports zero repl offset and rank, and fails to win election - shutdown (14277 ms) === (external:skip cluster) Starting server 127.0.0.1:22125 ok === (external:skip cluster) Starting server 127.0.0.1:22127 ok === (external:skip cluster) Starting server 127.0.0.1:22129 ok @@ -4998,18 +4989,8 @@ === (external:skip cluster) Starting server 127.0.0.1:22133 ok === (external:skip cluster) Starting server 127.0.0.1:22135 ok === (external:skip cluster) Starting server 127.0.0.1:22137 ok -[ok]: Cluster is up (2 ms) -[ok]: The first master has actually two slaves (0 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 (39 ms) -[ok]: Write data while slave #10 is paused and can't receive it (10010 ms) -[ok]: Wait for instance #5 (and not #10) to turn into a master (4170 ms) -[ok]: Wait for the node #10 to return alive before ending the test (21 ms) -[ok]: Cluster should eventually be up again (123 ms) -[ok]: Node #10 should eventually replicate node #5 (1 ms) === (external:skip cluster) Starting server 127.0.0.1:22139 ok +[ok]: Migrated replica reports zero repl offset and rank, and fails to win election - sigstop (4013 ms) === (external:skip cluster) Starting server 127.0.0.1:22141 ok === (external:skip cluster) Starting server 127.0.0.1:22143 ok === (external:skip cluster) Starting server 127.0.0.1:22145 ok @@ -5018,6 +4999,7 @@ === (external:skip cluster) Starting server 127.0.0.1:22151 ok === (external:skip cluster) Starting server 127.0.0.1:22153 ok === (external:skip cluster) Starting server 127.0.0.1:22155 ok +[ok]: New non-empty replica reports zero repl offset and rank, and fails to win election - shutdown (4115 ms) === (external:skip cluster) Starting server 127.0.0.1:22157 ok === (external:skip cluster) Starting server 127.0.0.1:22159 ok === (external:skip cluster) Starting server 127.0.0.1:22161 ok @@ -5026,61 +5008,49 @@ === (external:skip cluster) Starting server 127.0.0.1:22167 ok === (external:skip cluster) Starting server 127.0.0.1:22169 ok === (external:skip cluster) Starting server 127.0.0.1:22171 ok +[ok]: New non-empty replica reports zero repl offset and rank, and fails to win election - sigstop (4256 ms) === (external:skip cluster) Starting server 127.0.0.1:22173 ok -[ok]: Cluster is up (3 ms) -[ok]: The first master has actually 5 slaves (1 ms) -[ok]: Slaves of #0 are instance #3, #6, #9, #12 and #15 as expected (1 ms) -[ok]: Instance #3, #6, #9, #12 and #15 synced with the master (2 ms) -[ok]: New Master down consecutively (21982 ms) -[87/124 done]: unit/cluster/slave-selection (66 seconds) -Testing unit/cluster/announce-client-ip === (external:skip cluster) Starting server 127.0.0.1:22175 ok === (external:skip cluster) Starting server 127.0.0.1:22177 ok === (external:skip cluster) Starting server 127.0.0.1:22179 ok === (external:skip cluster) Starting server 127.0.0.1:22181 ok -[ok]: Set cluster announced IPv4 to invalid IP (1 ms) -[ok]: Set cluster announced IPv4 and check that it propagates (210 ms) -[ok]: Clear announced client IPv4 and check that it propagates (107 ms) -=== (external:skip cluster ipv6) Starting server 127.0.0.1:22183 ok -=== (external:skip cluster ipv6) Starting server 127.0.0.1:22185 ok -=== (external:skip cluster ipv6) Starting server 127.0.0.1:22187 ok -=== (external:skip cluster ipv6) Starting server 127.0.0.1:22189 ok -[ok]: Set cluster announced IPv6 to invalid IP (1 ms) -[ok]: Set cluster announced IPv6 and check that it propagates (320 ms) -[ok]: Clear announced client IPv6 and check that it propagates (109 ms) +=== (external:skip cluster) Starting server 127.0.0.1:22183 ok +=== (external:skip cluster) Starting server 127.0.0.1:22185 ok +=== (external:skip cluster) Starting server 127.0.0.1:22187 ok +[ok]: Sub-replica reports zero repl offset and rank, and fails to win election - shutdown (19080 ms) +Waiting for process 3720726 to exit... +=== (external:skip cluster) Starting server 127.0.0.1:22189 ok === (external:skip cluster) Starting server 127.0.0.1:22191 ok -[ok]: Load cluster announced IPv4 config on server start (477 ms) -=== (external:skip cluster ipv6) Starting server 127.0.0.1:22193 ok -[ok]: Load cluster announced IPv6 config on server start (577 ms) -[88/124 done]: unit/cluster/announce-client-ip (36 seconds) -Testing unit/cluster/replica-migration +=== (external:skip cluster) Starting server 127.0.0.1:22193 ok === (external:skip cluster) Starting server 127.0.0.1:22195 ok === (external:skip cluster) Starting server 127.0.0.1:22197 ok === (external:skip cluster) Starting server 127.0.0.1:22199 ok === (external:skip cluster) Starting server 127.0.0.1:22201 ok === (external:skip cluster) Starting server 127.0.0.1:22203 ok +[ok]: Sub-replica reports zero repl offset and rank, and fails to win election - sigstop (8734 ms) === (external:skip cluster) Starting server 127.0.0.1:22205 ok === (external:skip cluster) Starting server 127.0.0.1:22207 ok === (external:skip cluster) Starting server 127.0.0.1:22209 ok -[ok]: Migrated replica reports zero repl offset and rank, and fails to win election - shutdown (18480 ms) === (external:skip cluster) Starting server 127.0.0.1:22211 ok === (external:skip cluster) Starting server 127.0.0.1:22213 ok === (external:skip cluster) Starting server 127.0.0.1:22215 ok === (external:skip cluster) Starting server 127.0.0.1:22217 ok === (external:skip cluster) Starting server 127.0.0.1:22219 ok +[ok]: valkey-cli make source node ignores NOREPLICAS error when doing the last CLUSTER SETSLOT - gossip (1567 ms) === (external:skip cluster) Starting server 127.0.0.1:22221 ok === (external:skip cluster) Starting server 127.0.0.1:22223 ok === (external:skip cluster) Starting server 127.0.0.1:22225 ok -[ok]: Migrated replica reports zero repl offset and rank, and fails to win election - sigstop (3590 ms) === (external:skip cluster) Starting server 127.0.0.1:22227 ok === (external:skip cluster) Starting server 127.0.0.1:22229 ok === (external:skip cluster) Starting server 127.0.0.1:22231 ok === (external:skip cluster) Starting server 127.0.0.1:22233 ok === (external:skip cluster) Starting server 127.0.0.1:22235 ok +[ok]: valkey-cli make source node ignores NOREPLICAS error when doing the last CLUSTER SETSLOT - setslot (6472 ms) +[86/124 done]: unit/cluster/replica-migration (201 seconds) +Testing unit/cluster/failover === (external:skip cluster) Starting server 127.0.0.1:22237 ok === (external:skip cluster) Starting server 127.0.0.1:22239 ok === (external:skip cluster) Starting server 127.0.0.1:22241 ok -[ok]: New non-empty replica reports zero repl offset and rank, and fails to win election - shutdown (13244 ms) === (external:skip cluster) Starting server 127.0.0.1:22243 ok === (external:skip cluster) Starting server 127.0.0.1:22245 ok === (external:skip cluster) Starting server 127.0.0.1:22247 ok @@ -5088,8 +5058,18 @@ === (external:skip cluster) Starting server 127.0.0.1:22251 ok === (external:skip cluster) Starting server 127.0.0.1:22253 ok === (external:skip cluster) Starting server 127.0.0.1:22255 ok +[ok]: Cluster is up (3 ms) +[ok]: Cluster is writable (144 ms) +[ok]: Instance #5 is a slave (2 ms) +[ok]: Instance #5 synced with the master (1 ms) +[ok]: Killing one master node (31 ms) +[ok]: Wait for failover (5560 ms) +[ok]: Cluster should eventually be up again (1116 ms) +[ok]: Cluster is writable (122 ms) +[ok]: Instance #5 is now a master (1 ms) +[ok]: Restarting the previously killed master node (2 ms) +[ok]: Instance #0 gets converted into a slave (639 ms) === (external:skip cluster) Starting server 127.0.0.1:22257 ok -[ok]: New non-empty replica reports zero repl offset and rank, and fails to win election - sigstop (3171 ms) === (external:skip cluster) Starting server 127.0.0.1:22259 ok === (external:skip cluster) Starting server 127.0.0.1:22261 ok === (external:skip cluster) Starting server 127.0.0.1:22263 ok @@ -5098,16 +5078,45 @@ === (external:skip cluster) Starting server 127.0.0.1:22269 ok === (external:skip cluster) Starting server 127.0.0.1:22271 ok === (external:skip cluster) Starting server 127.0.0.1:22273 ok -[ok]: Sub-replica reports zero repl offset and rank, and fails to win election - shutdown (13213 ms) +[ok]: Cluster is up (3 ms) +[ok]: Cluster is writable (125 ms) +[ok]: Killing the first primary node (26 ms) +[ok]: Wait for failover (4241 ms) +[ok]: Cluster should eventually be up again (861 ms) +[ok]: Restarting the previously killed primary node (2 ms) +[ok]: Instance #0 gets converted into a replica (139 ms) +[ok]: Make sure the replicas always get the different ranks (6 ms) +[87/124 done]: unit/cluster/failover (68 seconds) +Testing unit/cluster/failure-marking === (external:skip cluster) Starting server 127.0.0.1:22275 ok === (external:skip cluster) Starting server 127.0.0.1:22277 ok +[ok]: Verify that single primary marks replica as failed (3132 ms) === (external:skip cluster) Starting server 127.0.0.1:22279 ok === (external:skip cluster) Starting server 127.0.0.1:22281 ok === (external:skip cluster) Starting server 127.0.0.1:22283 ok +[ok]: Verify that multiple primaries mark replica as failed (6359 ms) +[ignore]: Not supported in tls mode +[88/124 done]: unit/cluster/failure-marking (37 seconds) +Testing unit/cluster/cluster-reliable-meet +[ignore]: Not supported in tls mode +[89/124 done]: unit/cluster/cluster-reliable-meet (0 seconds) +Testing unit/cluster/half-migrated-slot === (external:skip cluster) Starting server 127.0.0.1:22285 ok === (external:skip cluster) Starting server 127.0.0.1:22287 ok +[ok]: Cluster is up (1 ms) +[ok]: Half init migration in 'migrating' is fixable (357 ms) +[ok]: Half init migration in 'importing' is fixable (322 ms) +[ok]: Init migration and move key (1133 ms) +[ok]: Move key again (342 ms) +[ok]: Half-finish migration (830 ms) +[ok]: Move key back (46 ms) +[ok]: Half-finish importing (1034 ms) +[90/124 done]: unit/cluster/half-migrated-slot (10 seconds) +Testing unit/cluster/base +[ignore]: Not supported in tls mode +[91/124 done]: unit/cluster/base (0 seconds) +Testing unit/cluster/faildet === (external:skip cluster) Starting server 127.0.0.1:22289 ok -[ok]: Sub-replica reports zero repl offset and rank, and fails to win election - sigstop (2768 ms) === (external:skip cluster) Starting server 127.0.0.1:22291 ok === (external:skip cluster) Starting server 127.0.0.1:22293 ok === (external:skip cluster) Starting server 127.0.0.1:22295 ok @@ -5116,37 +5125,58 @@ === (external:skip cluster) Starting server 127.0.0.1:22301 ok === (external:skip cluster) Starting server 127.0.0.1:22303 ok === (external:skip cluster) Starting server 127.0.0.1:22305 ok -[ok]: valkey-cli make source node ignores NOREPLICAS error when doing the last CLUSTER SETSLOT - gossip (2107 ms) === (external:skip cluster) Starting server 127.0.0.1:22307 ok +[ok]: Cluster should start ok (3 ms) +[ok]: Killing two slave nodes (52 ms) +[ok]: Cluster should be still up (266 ms) +[ok]: Killing one master node (25 ms) +[ok]: Cluster should be down now (281 ms) +[ok]: Restarting master node (28 ms) +[ok]: Cluster should be up again (424 ms) +Waiting for process 3733221 to exit... +Waiting for process 3733221 to exit... +Waiting for process 3733221 to exit... +Waiting for process 3733221 to exit... +Waiting for process 3733221 to exit... +Waiting for process 3733221 to exit... +Waiting for process 3733221 to exit... +Waiting for process 3733192 to exit... +Waiting for process 3733192 to exit... +Waiting for process 3733192 to exit... +Waiting for process 3733192 to exit... +Waiting for process 3733192 to exit... +Waiting for process 3733192 to exit... +[92/124 done]: unit/cluster/faildet (48 seconds) +Testing unit/cluster/sharded-pubsub === (external:skip cluster) Starting server 127.0.0.1:22309 ok === (external:skip cluster) Starting server 127.0.0.1:22311 ok +[ok]: Sharded pubsub publish behavior within multi/exec (2 ms) +[ok]: Sharded pubsub within multi/exec with cross slot operation (1 ms) +[ok]: Sharded pubsub publish behavior within multi/exec with read operation on primary (1 ms) +[ok]: Sharded pubsub publish behavior within multi/exec with read operation on replica (1 ms) +[ok]: Sharded pubsub publish behavior within multi/exec with write operation on primary (1 ms) +[ok]: Sharded pubsub publish behavior within multi/exec with write operation on replica (1 ms) +[93/124 done]: unit/cluster/sharded-pubsub (12 seconds) +Testing unit/cluster/hostnames === (external:skip cluster) Starting server 127.0.0.1:22313 ok === (external:skip cluster) Starting server 127.0.0.1:22315 ok === (external:skip cluster) Starting server 127.0.0.1:22317 ok === (external:skip cluster) Starting server 127.0.0.1:22319 ok === (external:skip cluster) Starting server 127.0.0.1:22321 ok -[ok]: valkey-cli make source node ignores NOREPLICAS error when doing the last CLUSTER SETSLOT - setslot (6264 ms) -[89/124 done]: unit/cluster/replica-migration (181 seconds) -Testing unit/cluster/half-migrated-slot === (external:skip cluster) Starting server 127.0.0.1:22323 ok === (external:skip cluster) Starting server 127.0.0.1:22325 ok -[ok]: Cluster is up (1 ms) -[ok]: Half init migration in 'migrating' is fixable (50 ms) -[ok]: Half init migration in 'importing' is fixable (41 ms) -[ok]: Init migration and move key (79 ms) -[ok]: Move key again (15 ms) -[ok]: Half-finish migration (75 ms) -[ok]: Move key back (9 ms) -[ok]: Half-finish importing (69 ms) -[90/124 done]: unit/cluster/half-migrated-slot (3 seconds) -Testing unit/cluster/human-announced-nodename +[ok]: Set cluster hostnames and verify they are propagated (133 ms) +[ok]: Update hostnames and make sure they are all eventually propagated (233 ms) +[ok]: Remove hostnames and make sure they are all eventually propagated (129 ms) +[ok]: Verify cluster-preferred-endpoint-type behavior for redirects and info (246 ms) +[ok]: Verify the nodes configured with prefer hostname only show hostname for new nodes (1122 ms) +[ok]: Test restart will keep hostname information (510 ms) +[ok]: Test hostname validation (2 ms) +[94/124 done]: unit/cluster/hostnames (14 seconds) +Testing unit/cluster/many-slot-migration === (external:skip cluster) Starting server 127.0.0.1:22327 ok === (external:skip cluster) Starting server 127.0.0.1:22329 ok === (external:skip cluster) Starting server 127.0.0.1:22331 ok -[ok]: Set cluster human announced nodename and let it propagate (311 ms) -[ok]: Human nodenames are visible in log messages (3538 ms) -[91/124 done]: unit/cluster/human-announced-nodename (8 seconds) -Testing unit/cluster/hostnames === (external:skip cluster) Starting server 127.0.0.1:22333 ok === (external:skip cluster) Starting server 127.0.0.1:22335 ok === (external:skip cluster) Starting server 127.0.0.1:22337 ok @@ -5154,1040 +5184,941 @@ === (external:skip cluster) Starting server 127.0.0.1:22341 ok === (external:skip cluster) Starting server 127.0.0.1:22343 ok === (external:skip cluster) Starting server 127.0.0.1:22345 ok -[ok]: Set cluster hostnames and verify they are propagated (279 ms) -[ok]: Update hostnames and make sure they are all eventually propagated (144 ms) -[ok]: Remove hostnames and make sure they are all eventually propagated (219 ms) -[ok]: Verify cluster-preferred-endpoint-type behavior for redirects and info (171 ms) -[ok]: Verify the nodes configured with prefer hostname only show hostname for new nodes (1146 ms) -[ok]: Test restart will keep hostname information (913 ms) -[ok]: Test hostname validation (1 ms) -[92/124 done]: unit/cluster/hostnames (18 seconds) -Testing unit/cluster/slot-ownership +[ok]: Cluster is up (3 ms) +[ok]: Set many keys (7345 ms) +[ok]: Keys are accessible (7437 ms) +[ok]: Init migration of many slots (4879 ms) +[ok]: Fix cluster (79684 ms) +[ok]: Keys are accessible (7544 ms) +[95/124 done]: unit/cluster/many-slot-migration (114 seconds) +Testing unit/cluster/slot-stats === (external:skip cluster) Starting server 127.0.0.1:22347 ok +[ok]: CLUSTER SLOT-STATS cpu-usec reset upon CONFIG RESETSTAT. (1341 ms) +[ok]: CLUSTER SLOT-STATS cpu-usec reset upon slot migration. (2757 ms) +[ok]: CLUSTER SLOT-STATS cpu-usec for non-slot specific commands. (1566 ms) +[ok]: CLUSTER SLOT-STATS cpu-usec for slot specific commands. (1481 ms) +[ok]: CLUSTER SLOT-STATS cpu-usec for blocking commands, unblocked on keyspace update. (3479 ms) +[ok]: CLUSTER SLOT-STATS cpu-usec for blocking commands, unblocked on timeout. (2808 ms) +[ok]: CLUSTER SLOT-STATS cpu-usec for transactions. (3582 ms) +[ok]: CLUSTER SLOT-STATS cpu-usec for lua-scripts, without cross-slot keys. (1681 ms) +[ok]: CLUSTER SLOT-STATS cpu-usec for lua-scripts, with cross-slot keys. (1491 ms) +[ok]: CLUSTER SLOT-STATS cpu-usec for functions, without cross-slot keys. (1807 ms) +[ok]: CLUSTER SLOT-STATS cpu-usec for functions, with cross-slot keys. (1831 ms) === (external:skip cluster) Starting server 127.0.0.1:22349 ok +[ok]: CLUSTER SLOT-STATS network-bytes-in, multi bulk buffer processing. (1386 ms) +[ok]: CLUSTER SLOT-STATS network-bytes-in, in-line buffer processing. (1670 ms) +[ok]: CLUSTER SLOT-STATS network-bytes-in, blocking command. (2237 ms) +[ok]: CLUSTER SLOT-STATS network-bytes-in, multi-exec transaction. (1098 ms) +[ok]: CLUSTER SLOT-STATS network-bytes-in, non slot specific command. (1065 ms) +[ok]: CLUSTER SLOT-STATS network-bytes-in, pub/sub. (1060 ms) === (external:skip cluster) Starting server 127.0.0.1:22351 ok === (external:skip cluster) Starting server 127.0.0.1:22353 ok -[ok]: Verify that slot ownership transfer through gossip propagates deletes to replicas (959 ms) -Waiting for process 1619438 to exit... -[93/124 done]: unit/cluster/slot-ownership (15 seconds) -Testing unit/cluster/cluster-nodes-slots +[ok]: CLUSTER SLOT-STATS network-bytes-in, sharded pub/sub. (2642 ms) === (external:skip cluster) Starting server 127.0.0.1:22355 ok +[ok]: CLUSTER SLOT-STATS network-bytes-out, for non-slot specific commands. (1552 ms) +[ok]: CLUSTER SLOT-STATS network-bytes-out, for slot specific commands. (1639 ms) +[ok]: CLUSTER SLOT-STATS network-bytes-out, blocking commands. (2132 ms) === (external:skip cluster) Starting server 127.0.0.1:22357 ok === (external:skip cluster) Starting server 127.0.0.1:22359 ok +[ok]: CLUSTER SLOT-STATS network-bytes-out, replication stream egress. (1421 ms) === (external:skip cluster) Starting server 127.0.0.1:22361 ok -[ok]: Cluster should start ok (1 ms) -[ok]: Continuous slots distribution (2 ms) -[ok]: Discontinuous slots distribution (4 ms) -[94/124 done]: unit/cluster/cluster-nodes-slots (12 seconds) -Testing unit/cluster/misc === (external:skip cluster) Starting server 127.0.0.1:22363 ok +[ok]: CLUSTER SLOT-STATS network-bytes-out, sharded pub/sub, single channel. (2765 ms) +[ok]: CLUSTER SLOT-STATS network-bytes-out, sharded pub/sub, cross-slot channels. (2474 ms) === (external:skip cluster) Starting server 127.0.0.1:22365 ok +[ok]: CLUSTER SLOT-STATS contains default value upon valkey-server startup (1360 ms) +[ok]: CLUSTER SLOT-STATS contains correct metrics upon key introduction (1291 ms) +[ok]: CLUSTER SLOT-STATS contains correct metrics upon key mutation (1445 ms) +[ok]: CLUSTER SLOT-STATS contains correct metrics upon key deletion (1219 ms) +[ok]: CLUSTER SLOT-STATS slot visibility based on slot ownership changes (2136 ms) === (external:skip cluster) Starting server 127.0.0.1:22367 ok +[ok]: CLUSTER SLOT-STATS SLOTSRANGE all slots present (1 ms) +[ok]: CLUSTER SLOT-STATS SLOTSRANGE some slots missing (1 ms) === (external:skip cluster) Starting server 127.0.0.1:22369 ok -[ok]: Key lazy expires during key migration (14 ms) -[ok]: Coverage: Basic cluster commands (12 ms) -[95/124 done]: unit/cluster/misc (11 seconds) -Testing unit/cluster/diskless-load-swapdb +[ok]: CLUSTER SLOT-STATS ORDERBY DESC correct ordering (5698 ms) +[ok]: CLUSTER SLOT-STATS ORDERBY ASC correct ordering (4965 ms) +[ok]: CLUSTER SLOT-STATS ORDERBY LIMIT correct response pagination, where limit is less than number of assigned slots (13 ms) +[ok]: CLUSTER SLOT-STATS ORDERBY LIMIT correct response pagination, where limit is greater than number of assigned slots (6 ms) +[ok]: CLUSTER SLOT-STATS ORDERBY arg sanity check. (1 ms) === (external:skip cluster) Starting server 127.0.0.1:22371 ok === (external:skip cluster) Starting server 127.0.0.1:22373 ok -[ok]: Cluster should start ok (0 ms) -[ok]: Cluster is writable (62 ms) -[ok]: Main db not affected when fail to diskless load (81393 ms) -Waiting for process 1621692 to exit... -Waiting for process 1621692 to exit... -Waiting for process 1621692 to exit... -Waiting for process 1621692 to exit... -Waiting for process 1621692 to exit... -Waiting for process 1621692 to exit... -Waiting for process 1621692 to exit... -Waiting for process 1621692 to exit... -Waiting for process 1621692 to exit... -[96/124 done]: unit/cluster/diskless-load-swapdb (103 seconds) -Testing integration/dual-channel-replication -=== (dual-channel-replication external:skip) Starting server 127.0.0.1:22375 ok +[ok]: CLUSTER SLOT-STATS metrics replication for new keys (2899 ms) +[ok]: CLUSTER SLOT-STATS metrics replication for existing keys (2716 ms) +[ok]: CLUSTER SLOT-STATS metrics replication for deleting keys (3135 ms) +[96/124 done]: unit/cluster/slot-stats (129 seconds) +Testing integration/psync2 +=== (psync2 external:skip) Starting server 127.0.0.1:22375 ok === () Starting server 127.0.0.1:22377 ok -[ok]: Test dual-channel-replication-enabled replica enters handshake (1004 ms) -[ok]: Test dual-channel-replication-enabled enters wait_bgsave (0 ms) -[ok]: Test dual-channel-replication-enabled replica is able to sync (1123 ms) -=== (dual-channel-replication external:skip) Starting server 127.0.0.1:22379 ok +=== () Starting server 127.0.0.1:22379 ok === () Starting server 127.0.0.1:22381 ok -[ok]: Primary memory usage does not increase during dual-channel-replication sync (495 ms) -[ok]: Steady state after dual channel sync (1003 ms) -[ok]: Dual channel replication sync doesn't impair subsequent normal syncs (408 ms) -Waiting for process 1624849 to exit... -=== (dual-channel-replication external:skip) Starting server 127.0.0.1:22383 ok +=== () Starting server 127.0.0.1:22383 ok +[ok]: PSYNC2: --- CYCLE 1 --- (0 ms) +[ok]: PSYNC2: [NEW LAYOUT] Set #1 as master (1 ms) +[ok]: PSYNC2: Set #4 to replicate from #0 (1 ms) +[ok]: PSYNC2: Set #0 to replicate from #2 (1 ms) +[ok]: PSYNC2: Set #2 to replicate from #1 (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 (5002 ms) +[ok]: PSYNC2: cluster is consistent after load (x = 27094) (3 ms) +[ok]: PSYNC2: total sum of full synchronizations is exactly 4 (3 ms) +[ok]: PSYNC2: --- CYCLE 2 --- (0 ms) +[ok]: PSYNC2: [NEW LAYOUT] Set #0 as master (1 ms) +[ok]: PSYNC2: Set #4 to replicate from #3 (1 ms) +[ok]: PSYNC2: Set #1 to replicate from #0 (1 ms) +[ok]: PSYNC2: Set #2 to replicate from #1 (0 ms) +[ok]: PSYNC2: Set #3 to replicate from #1 (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 = 59182) (4 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 (0 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 (0 ms) +[ok]: PSYNC2: Set #3 to replicate from #1 (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 = 90717) (1 ms) +[ok]: PSYNC2: total sum of full synchronizations is exactly 4 (2 ms) +[ok]: PSYNC2: --- CYCLE 4 --- (0 ms) +[ok]: PSYNC2: [NEW LAYOUT] Set #3 as master (1 ms) +[ok]: PSYNC2: Set #0 to replicate from #4 (1 ms) +[ok]: PSYNC2: Set #4 to replicate from #3 (1 ms) +[ok]: PSYNC2: Set #1 to replicate from #3 (1 ms) +[ok]: PSYNC2: Set #2 to replicate from #3 (1 ms) +[ok]: PSYNC2: cluster is consistent after failover (2 ms) +[ok]: PSYNC2: generate load while killing replication links (5000 ms) +[ok]: PSYNC2: cluster is consistent after load (x = 120290) (2 ms) +[ok]: PSYNC2: total sum of full synchronizations is exactly 4 (1 ms) +[ok]: PSYNC2: --- CYCLE 5 --- (0 ms) +[ok]: PSYNC2: [NEW LAYOUT] Set #3 as master (0 ms) +[ok]: PSYNC2: Set #4 to replicate from #2 (0 ms) +[ok]: PSYNC2: Set #0 to replicate from #3 (0 ms) +[ok]: PSYNC2: Set #1 to replicate from #2 (0 ms) +[ok]: PSYNC2: Set #2 to replicate from #3 (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 = 153888) (2 ms) +[ok]: PSYNC2: total sum of full synchronizations is exactly 4 (1 ms) +[ok]: PSYNC2: Bring the master back again for next test (2 ms) +[ok]: PSYNC2: Partial resync after restart using RDB aux fields (273 ms) +[97/124 done]: integration/psync2 (43 seconds) +Testing integration/aof === () Starting server 127.0.0.1:22385 ok -[ok]: Toggle dual-channel-replication-enabled: yes start (622 ms) -[ok]: Online toggle dual-channel-replication-enabled on primary, starting with 'yes' (2076 ms) -[ok]: Online toggle dual-channel-replication-enabled on replica, starting with 'yes' (11117 ms) -[ok]: Toggle dual-channel-replication-enabled: no start (10956 ms) -[ok]: Online toggle dual-channel-replication-enabled on primary, starting with 'no' (2072 ms) -[ok]: Online toggle dual-channel-replication-enabled on replica, starting with 'no' (2071 ms) -=== (dual-channel-replication external:skip) Starting server 127.0.0.1:22387 ok +[ok]: Unfinished MULTI: Server should start if load-truncated is yes (1 ms) +=== () Starting server 127.0.0.1:22387 ok +[ok]: Short read: Server should start if load-truncated is yes (2 ms) +[ok]: Truncated AOF loaded: we expect foo to be equal to 5 (7 ms) +[ok]: Append a new command after loading an incomplete AOF (0 ms) === () Starting server 127.0.0.1:22389 ok -=== () Starting server 127.0.0.1:22391 ok -[ok]: dual-channel-replication with multiple replicas (4659 ms) -[ok]: Test diverse replica sync: dual-channel on/off (5061 ms) -[ok]: Test replica's buffer limit reached (1255 ms) -[ok]: dual-channel-replication fails when primary diskless disabled (1007 ms) -=== (dual-channel-replication external:skip) Starting server 127.0.0.1:22393 ok -=== () Starting server 127.0.0.1:22395 ok -[ok]: Test dual-channel-replication sync- psync established after rdb load (254 ms) -=== (dual-channel-replication external:skip) Starting server 127.0.0.1:22397 ok +[ok]: Short read + command: Server should start (2 ms) +[ok]: Truncated AOF loaded: we expect foo to be equal to 6 now (7 ms) +=== () Starting server 127.0.0.1:22391 +[ok]: Bad format: Server should have logged an error (2 ms) +=== () Starting server 127.0.0.1:22393 +[ok]: Unfinished MULTI: Server should have logged an error (2 ms) +=== () Starting server 127.0.0.1:22395 +[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 (14 ms) +=== () Starting server 127.0.0.1:22397 ok +[ok]: Fixed AOF: Server should have been started (2 ms) +[ok]: Fixed AOF: Keyspace should contain values that were parseable (7 ms) === () Starting server 127.0.0.1:22399 ok -[ok]: dual-channel-replication: Primary COB growth with inactive replica (3825 ms) -=== (dual-channel-replication external:skip) Starting server 127.0.0.1:22401 ok +[ok]: AOF+SPOP: Server should have been started (2 ms) +[ok]: AOF+SPOP: Set should have 1 member (8 ms) +=== () Starting server 127.0.0.1:22401 ok +[ok]: AOF+SPOP: Server should have been started (1 ms) +[ok]: AOF+SPOP: Set should have 1 member (6 ms) === () Starting server 127.0.0.1:22403 ok +[ok]: AOF+EXPIRE: Server should have been started (1 ms) +[ok]: AOF+EXPIRE: List should be empty (7 ms) === () Starting server 127.0.0.1:22405 ok -[ok]: Test dual-channel: primary tracking replica backlog refcount - start with empty backlog (125 ms) -[ok]: Test dual-channel: primary tracking replica backlog refcount - start with backlog (1041 ms) -=== (dual-channel-replication external:skip) Starting server 127.0.0.1:22407 ok +[ok]: Server should not try to convert DEL into EXPIREAT for EXPIRE -1 (1 ms) +=== () Starting server 127.0.0.1:22407 ok +[ok]: AOF fsync always barrier issue (6170 ms) === () Starting server 127.0.0.1:22409 ok -[ok]: Psync established after rdb load - within grace period (42 ms) -=== (dual-channel-replication external:skip) Starting server 127.0.0.1:22411 ok +[ok]: GETEX should not append to AOF (1 ms) +=== () Starting server 127.0.0.1:22411 +[ok]: Unknown command: Server should have logged an error (2 ms) === () Starting server 127.0.0.1:22413 ok -[ok]: Psync established after RDB load - beyond grace period (2803 ms) -Waiting for process 1628845 to exit... -Waiting for process 1628845 to exit... -=== (dual-channel-replication external:skip) Starting server 127.0.0.1:22415 ok +[ok]: AOF+LMPOP/BLMPOP: pop elements from the list (116 ms) +=== () Starting server 127.0.0.1:22415 ok +[ok]: AOF+LMPOP/BLMPOP: after pop elements from the list (8 ms) === () Starting server 127.0.0.1:22417 ok -[ok]: Test dual-channel-replication primary gets cob overrun before established psync (523 ms) -[ok]: Test dual-channel-replication primary gets cob overrun during replica rdb load (1012 ms) -=== (dual-channel-replication external:skip) Starting server 127.0.0.1:22419 ok +[ok]: AOF+ZMPOP/BZMPOP: pop elements from the zset (117 ms) +=== () Starting server 127.0.0.1:22419 ok +[ok]: AOF+ZMPOP/BZMPOP: after pop elements from the zset (7 ms) === () Starting server 127.0.0.1:22421 ok + +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... [ok]: Generate timestamp annotations in AOF (377 ms) === () Starting server 127.0.0.1:22423 ok -[ok]: Sync should continue if not all slaves dropped dual-channel-replication yes (11035 ms) -[ok]: Primary abort sync if all slaves dropped dual-channel-replication yes (7035 ms) -=== (dual-channel-replication external:skip) Starting server 127.0.0.1:22425 ok +[ok]: Successfully load AOF which has timestamp annotations inside (9 ms) +=== () Starting server 127.0.0.1:22425 ok === () Starting server 127.0.0.1:22427 ok === () Starting server 127.0.0.1:22429 ok -[ok]: Sync should continue if not all slaves dropped dual-channel-replication no (11610 ms) -[ok]: Primary abort sync if all slaves dropped dual-channel-replication no (7027 ms) -=== (dual-channel-replication external:skip) Starting server 127.0.0.1:22431 ok +[ok]: Truncate AOF to specific timestamp (801 ms) +=== () Starting server 127.0.0.1:22431 ok +[ok]: EVAL timeout with slow verbatim Lua script from AOF (1188 ms) === () Starting server 127.0.0.1:22433 ok -[ok]: Test dual-channel-replication replica main channel disconnected (6195 ms) -[ok]: Test dual channel replication slave of no one after main conn kill (0 ms) -[ok]: Test dual-channel-replication replica rdb connection disconnected (11186 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 (12169 ms) -=== (dual-channel-replication external:skip) Starting server 127.0.0.1:22435 ok +[ok]: EVAL can process writes from AOF in read-only replicas (241 ms) +[ok]: Test valkey-check-aof for old style resp AOF (12 ms) +[ok]: Test valkey-check-aof for old style resp AOF - has data in the same format as manifest (10 ms) +[ok]: Test valkey-check-aof for old style rdb-preamble AOF (10 ms) +[ok]: Test valkey-check-aof for Multi Part AOF with resp AOF base (10 ms) +[ok]: Test valkey-check-aof for Multi Part AOF with rdb-preamble AOF base (12 ms) +[ok]: Test valkey-check-aof for Multi Part AOF contains a format error (9 ms) +[ok]: Test valkey-check-aof only truncates the last file for Multi Part AOF in fix mode (19 ms) +[ok]: Test valkey-check-aof only truncates the last file for Multi Part AOF in truncate-to-timestamp mode (8 ms) +=== () Starting server 127.0.0.1:22435 ok +[ok]: FLUSHDB / FLUSHALL should persist in AOF (55 ms) === () Starting server 127.0.0.1:22437 ok +[ok]: Turning appendonly on and off within a transaction (8 ms) === () Starting server 127.0.0.1:22439 ok -[ok]: Test replica unable to join dual channel replication sync after started (1109 ms) +[ok]: Test cluster slots / cluster shards in aof won't crash (248 ms) +[98/124 done]: integration/aof (14 seconds) +Testing integration/dual-channel-replication === (dual-channel-replication external:skip) Starting server 127.0.0.1:22441 ok === () Starting server 127.0.0.1:22443 ok -[ok]: Replica recover rdb-connection killed (15049 ms) -[ok]: Replica recover main-connection killed (15278 ms) -[97/124 done]: integration/dual-channel-replication (186 seconds) -Testing integration/replication -=== (repl network external:skip) Starting server 127.0.0.1:22445 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 (912 ms) +=== (dual-channel-replication external:skip) Starting server 127.0.0.1:22445 ok === () Starting server 127.0.0.1:22447 ok -[ok]: Slave enters handshake (1004 ms) -[ok]: Slave enters wait_bgsave (0 ms) -[ok]: Slave is able to detect timeout during handshake (0 ms) -=== (repl external:skip) Starting server 127.0.0.1:22449 ok +[ok]: Primary memory usage does not increase during dual-channel-replication sync (412 ms) +[ok]: Steady state after dual channel sync (1007 ms) +[ok]: Dual channel replication sync doesn't impair subsequent normal syncs (410 ms) +=== (dual-channel-replication external:skip) Starting server 127.0.0.1:22449 ok === () Starting server 127.0.0.1:22451 ok -[ok]: Set instance A as slave of B (102 ms) -[ok]: INCRBYFLOAT replication, should not remove expire (1 ms) -[ok]: GETSET replication (1 ms) -[ok]: BRPOPLPUSH replication, when blocking against empty list (6 ms) -[ok]: BRPOPLPUSH replication, list exists (1011 ms) -[ok]: BLMOVE (left, left) replication, when blocking against empty list (6 ms) -[ok]: BLMOVE (left, left) replication, list exists (1011 ms) -[ok]: BLMOVE (left, right) replication, when blocking against empty list (6 ms) -[ok]: BLMOVE (left, right) replication, list exists (1010 ms) -[ok]: BLMOVE (right, left) replication, when blocking against empty list (6 ms) -[ok]: BLMOVE (right, left) replication, list exists (1010 ms) -[ok]: BLMOVE (right, right) replication, when blocking against empty list (6 ms) -[ok]: BLMOVE (right, right) replication, list exists (1009 ms) -[ok]: BLPOP followed by role change, issue #2473 (210 ms) -=== (repl external:skip) Starting server 127.0.0.1:22453 ok +[ok]: Toggle dual-channel-replication-enabled: yes start (591 ms) +[ok]: Online toggle dual-channel-replication-enabled on primary, starting with 'yes' (2208 ms) +[ok]: Online toggle dual-channel-replication-enabled on replica, starting with 'yes' (11161 ms) +[ok]: Toggle dual-channel-replication-enabled: no start (10964 ms) +[ok]: Online toggle dual-channel-replication-enabled on primary, starting with 'no' (2123 ms) +[ok]: Online toggle dual-channel-replication-enabled on replica, starting with 'no' (2167 ms) +=== (dual-channel-replication external:skip) Starting server 127.0.0.1:22453 ok === () Starting server 127.0.0.1:22455 ok -[ok]: Second server should have role master at first (0 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 (1 ms) -[ok]: The link status should be up (0 ms) -[ok]: SET on the master should immediately propagate (0 ms) -[ok]: FLUSHDB / FLUSHALL should replicate (82 ms) -[ok]: ROLE in master reports master with a slave (0 ms) -[ok]: ROLE in slave reports slave in connected state (1 ms) -=== (repl external:skip) Starting server 127.0.0.1:22457 ok -=== () Starting server 127.0.0.1:22459 ok +=== () Starting server 127.0.0.1:22457 ok +[ok]: dual-channel-replication with multiple replicas (5369 ms) +[ok]: Test diverse replica sync: dual-channel on/off (5274 ms) +[ok]: Test replica's buffer limit reached (1563 ms) +[ok]: dual-channel-replication fails when primary diskless disabled (1005 ms) +=== (dual-channel-replication external:skip) Starting server 127.0.0.1:22459 ok === () Starting server 127.0.0.1:22461 ok -=== () Starting server 127.0.0.1:22463 ok -[ok]: Connect multiple replicas at the same time (issue #141), master diskless=no, replica diskless=disabled dual-channel-replication-enabled=no (12758 ms) -=== (repl external:skip) Starting server 127.0.0.1:22465 ok -=== () Starting server 127.0.0.1:22467 ok +[ok]: Test dual-channel-replication sync- psync established after rdb load (686 ms) +=== (dual-channel-replication external:skip) Starting server 127.0.0.1:22463 ok +=== () Starting server 127.0.0.1:22465 ok +[ok]: dual-channel-replication: Primary COB growth with inactive replica (3761 ms) +=== (dual-channel-replication external:skip) Starting server 127.0.0.1:22467 ok === () Starting server 127.0.0.1:22469 ok === () Starting server 127.0.0.1:22471 ok -[ok]: Connect multiple replicas at the same time (issue #141), master diskless=no, replica diskless=swapdb dual-channel-replication-enabled=no (11289 ms) -=== (repl external:skip) Starting server 127.0.0.1:22473 ok +[ok]: Test dual-channel: primary tracking replica backlog refcount - start with empty backlog (350 ms) +[ok]: Test dual-channel: primary tracking replica backlog refcount - start with backlog (1747 ms) +=== (dual-channel-replication external:skip) Starting server 127.0.0.1:22473 ok === () Starting server 127.0.0.1:22475 ok -=== () Starting server 127.0.0.1:22477 ok +[ok]: Psync established after rdb load - within grace period (348 ms) +=== (dual-channel-replication external:skip) Starting server 127.0.0.1:22477 ok === () Starting server 127.0.0.1:22479 ok -[ok]: Connect multiple replicas at the same time (issue #141), master diskless=yes, replica diskless=disabled dual-channel-replication-enabled=yes (11837 ms) -=== (repl external:skip) Starting server 127.0.0.1:22481 ok +[ok]: Psync established after RDB load - beyond grace period (2747 ms) +Waiting for process 3750836 to exit... +Waiting for process 3750836 to exit... +=== (dual-channel-replication external:skip) Starting server 127.0.0.1:22481 ok === () Starting server 127.0.0.1:22483 ok -=== () Starting server 127.0.0.1:22485 ok +[ok]: Test dual-channel-replication primary gets cob overrun before established psync (413 ms) +[ok]: Test dual-channel-replication primary gets cob overrun during replica rdb load (1026 ms) +=== (dual-channel-replication external:skip) Starting server 127.0.0.1:22485 ok === () Starting server 127.0.0.1:22487 ok -[ok]: Connect multiple replicas at the same time (issue #141), master diskless=yes, replica diskless=swapdb dual-channel-replication-enabled=yes (11614 ms) -=== (repl external:skip) Starting server 127.0.0.1:22489 ok -=== () Starting server 127.0.0.1:22491 ok -[ok]: Master stream is correctly processed while the replica has a script in -BUSY state (20908 ms) -=== (repl external:skip) Starting server 127.0.0.1:22493 ok +=== () Starting server 127.0.0.1:22489 ok +[ok]: Sync should continue if not all slaves dropped dual-channel-replication yes (11039 ms) +[ok]: Primary abort sync if all slaves dropped dual-channel-replication yes (7038 ms) +=== (dual-channel-replication external:skip) Starting server 127.0.0.1:22491 ok +=== () Starting server 127.0.0.1:22493 ok === () Starting server 127.0.0.1:22495 ok -[ok]: Diskless load swapdb (different replid): new database is exposed after swapping dual-channel=yes (0 ms) -=== (repl external:skip) Starting server 127.0.0.1:22497 ok +[ok]: Sync should continue if not all slaves dropped dual-channel-replication no (11037 ms) +[ok]: Primary abort sync if all slaves dropped dual-channel-replication no (7043 ms) +=== (dual-channel-replication external:skip) Starting server 127.0.0.1:22497 ok === () Starting server 127.0.0.1:22499 ok -[ok]: Diskless load swapdb (different replid): replica enter loading dual-channel-replication-enabled=no (432 ms) -[ok]: Diskless load swapdb (different replid): old database is exposed after replication fails dual-channel=no (0 ms) -=== (repl external:skip) Starting server 127.0.0.1:22501 ok +[ok]: Test dual-channel-replication replica main channel disconnected (5221 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 (11226 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 (11138 ms) +=== (dual-channel-replication external:skip) Starting server 127.0.0.1:22501 ok === () Starting server 127.0.0.1:22503 ok -[ok]: Diskless load swapdb (async_loading): new database is exposed after swapping (1 ms) -=== (repl external:skip) Starting server 127.0.0.1:22505 ok -=== () Starting server 127.0.0.1:22507 ok -[ok]: Diskless load swapdb (async_loading): replica enter async_loading (335 ms) -[ok]: Diskless load swapdb (async_loading): old database is exposed while async replication is in progress (872 ms) -[ok]: Busy script during async loading (1081 ms) -[ok]: Blocked commands and configs during async-loading (432 ms) -[ok]: Diskless load swapdb (async_loading): old database is exposed after async replication fails (1 ms) -Waiting for process 1644958 to exit... -Waiting for process 1644958 to exit... -Waiting for process 1644958 to exit... -Waiting for process 1644958 to exit... -Waiting for process 1644958 to exit... -=== (repl) Starting server 127.0.0.1:22509 ok -=== () Starting server 127.0.0.1:22511 ok -filling took 6750 ms (TODO: use pipeline) -{1645549:S 18 Oct 2024 17:49:12.481 # Internal error in RDB reading offset 4191678, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 50 -{1645549:S 18 Oct 2024 17:49:12.499 # Internal error in RDB reading offset 2093042, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 65 -{1645549:S 18 Oct 2024 17:49:12.546 # Internal error in RDB reading offset 12049177, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 80 -{1645549:S 18 Oct 2024 17:49:12.570 # Internal error in RDB reading offset 2093042, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 95 -{1645549:S 18 Oct 2024 17:49:12.611 # Internal error in RDB reading offset 7901506, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 110 -{1645549:S 18 Oct 2024 17:49:12.673 # Internal error in RDB reading offset 18430903, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 125 -{1645549:S 18 Oct 2024 17:49:12.695 # Internal error in RDB reading offset 4191678, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 140 -{1645549:S 18 Oct 2024 17:49:12.721 # Internal error in RDB reading offset 4191678, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 155 -{1645549:S 18 Oct 2024 17:49:12.771 # Internal error in RDB reading offset 12049177, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 170 -{1645549:S 18 Oct 2024 17:49:12.793 # Internal error in RDB reading offset 2093042, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 185 -{1645549:S 18 Oct 2024 17:49:12.849 # Internal error in RDB reading offset 16669768, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 200 -{1645549:S 18 Oct 2024 17:49:12.870 # Internal error in RDB reading offset 2093042, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 215 -{1645549:S 18 Oct 2024 17:49:12.891 # Internal error in RDB reading offset 2093042, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 230 -{1645549:S 18 Oct 2024 17:49:12.924 # Internal error in RDB reading offset 6242269, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 245 -{1645549:S 18 Oct 2024 17:49:12.974 # Internal error in RDB reading offset 12049177, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 260 -{1645549:S 18 Oct 2024 17:49:13.035 # Internal error in RDB reading offset 16669768, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 275 -{1645549:S 18 Oct 2024 17:49:13.047 # Internal error in RDB reading offset 0, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 290 -{1645549:S 18 Oct 2024 17:49:13.086 # Internal error in RDB reading offset 10228482, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 305 -{1645549:S 18 Oct 2024 17:49:13.144 # Internal error in RDB reading offset 20666140, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 320 -{1645549:S 18 Oct 2024 17:49:13.185 # Internal error in RDB reading offset 10228482, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 335 -{1645549:S 18 Oct 2024 17:49:13.197 # Internal error in RDB reading offset 0, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 350 -{1645549:S 18 Oct 2024 17:49:13.249 # Internal error in RDB reading offset 14480196, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 365 -{1645549:S 18 Oct 2024 17:49:13.287 # Internal error in RDB reading offset 7901506, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 380 -{1645549:S 18 Oct 2024 17:49:13.328 # Internal error in RDB reading offset 10228482, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 395 -{1645549:S 18 Oct 2024 17:49:13.360 # Internal error in RDB reading offset 6242269, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 410 -{1645549:S 18 Oct 2024 17:49:13.400 # Internal error in RDB reading offset 7901506, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 425 -{1645549:S 18 Oct 2024 17:49:13.449 # Internal error in RDB reading offset 12049177, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 440 -{1645549:S 18 Oct 2024 17:49:13.489 # Internal error in RDB reading offset 12049177, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 455 -{1645549:S 18 Oct 2024 17:49:13.504 # Internal error in RDB reading offset 2093042, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 470 -{1645549:S 18 Oct 2024 17:49:13.564 # Internal error in RDB reading offset 16669768, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 485 -{1645549:S 18 Oct 2024 17:49:13.604 # Internal error in RDB reading offset 12049177, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 500 -{1645549:S 18 Oct 2024 17:49:13.651 # Internal error in RDB reading offset 12049177, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 515 -{1645549:S 18 Oct 2024 17:49:13.707 # Internal error in RDB reading offset 14480196, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 530 -{1645549:S 18 Oct 2024 17:49:13.747 # Internal error in RDB reading offset 10228482, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 545 -{1645549:S 18 Oct 2024 17:49:13.794 # Internal error in RDB reading offset 12049177, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 560 -{1645549:S 18 Oct 2024 17:49:13.812 # Internal error in RDB reading offset 2093042, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 575 -{1645549:S 18 Oct 2024 17:49:13.840 # Internal error in RDB reading offset 4191678, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 590 -{1645549:S 18 Oct 2024 17:49:13.861 # Internal error in RDB reading offset 2093042, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 605 -{1645549:S 18 Oct 2024 17:49:13.892 # Internal error in RDB reading offset 6242269, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 620 -{1645549:S 18 Oct 2024 17:49:13.950 # Internal error in RDB reading offset 16669768, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 635 -{1645549:S 18 Oct 2024 17:49:13.984 # Internal error in RDB reading offset 7901506, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 650 -{1645549:S 18 Oct 2024 17:49:14.014 # Internal error in RDB reading offset 6242269, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 665 -{1645549:S 18 Oct 2024 17:49:14.058 # Internal error in RDB reading offset 12049177, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 680 -{1645549:S 18 Oct 2024 17:49:14.097 # Internal error in RDB reading offset 10228482, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 695 -{1645549:S 18 Oct 2024 17:49:14.133 # Internal error in RDB reading offset 7901506, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 710 -{1645549:S 18 Oct 2024 17:49:14.157 # Internal error in RDB reading offset 4191678, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 725 -{1645549:S 18 Oct 2024 17:49:14.178 # Internal error in RDB reading offset 2093042, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 740 -{1645549:S 18 Oct 2024 17:49:14.192 # Internal error in RDB reading offset 0, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 755 -{1645549:S 18 Oct 2024 17:49:14.234 # Internal error in RDB reading offset 7901506, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 770 -{1645549:S 18 Oct 2024 17:49:14.268 # Internal error in RDB reading offset 7901506, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 785 -{1645549:S 18 Oct 2024 17:49:14.291 # Internal error in RDB reading offset 2093042, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 800 -{1645549:S 18 Oct 2024 17:49:14.312 # Internal error in RDB reading offset 2093042, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 815 -{1645549:S 18 Oct 2024 17:49:14.344 # Internal error in RDB reading offset 6242269, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 830 -{1645549:S 18 Oct 2024 17:49:14.386 # Internal error in RDB reading offset 12049177, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 845 -{1645549:S 18 Oct 2024 17:49:14.398 # Internal error in RDB reading offset 0, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 860 -{1645549:S 18 Oct 2024 17:49:14.432 # Internal error in RDB reading offset 6242269, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 875 -{1645549:S 18 Oct 2024 17:49:14.485 # Internal error in RDB reading offset 14480196, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 890 -{1645549:S 18 Oct 2024 17:49:14.533 # Internal error in RDB reading offset 12049177, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 905 -{1645549:S 18 Oct 2024 17:49:14.545 # Internal error in RDB reading offset 0, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 920 -{1645549:S 18 Oct 2024 17:49:14.600 # Internal error in RDB reading offset 14480196, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 935 -{1645549:S 18 Oct 2024 17:49:14.636 # Internal error in RDB reading offset 7901506, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 950 -{1645549:S 18 Oct 2024 17:49:14.683 # Internal error in RDB reading offset 16669768, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 965 -{1645549:S 18 Oct 2024 17:49:14.736 # Internal error in RDB reading offset 14480196, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 980 -{1645549:S 18 Oct 2024 17:49:14.783 # Internal error in RDB reading offset 12049177, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 995 -{1645549:S 18 Oct 2024 17:49:14.835 # Internal error in RDB reading offset 14480196, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1010 -{1645549:S 18 Oct 2024 17:49:14.851 # Internal error in RDB reading offset 0, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1025 -{1645549:S 18 Oct 2024 17:49:14.902 # Internal error in RDB reading offset 14480196, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1040 -{1645549:S 18 Oct 2024 17:49:14.922 # Internal error in RDB reading offset 4191678, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1055 -{1645549:S 18 Oct 2024 17:49:14.963 # Internal error in RDB reading offset 10228482, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1070 -{1645549:S 18 Oct 2024 17:49:14.984 # Internal error in RDB reading offset 4191678, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1085 -{1645549:S 18 Oct 2024 17:49:15.021 # Internal error in RDB reading offset 7901506, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1100 -{1645549:S 18 Oct 2024 17:49:15.057 # Internal error in RDB reading offset 7901506, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1115 -{1645549:S 18 Oct 2024 17:49:15.091 # Internal error in RDB reading offset 10228482, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1130 -{1645549:S 18 Oct 2024 17:49:15.133 # Internal error in RDB reading offset 16669768, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1145 -{1645549:S 18 Oct 2024 17:49:15.176 # Internal error in RDB reading offset 14480196, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1160 -{1645549:S 18 Oct 2024 17:49:15.197 # Internal error in RDB reading offset 2093042, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1175 -{1645549:S 18 Oct 2024 17:49:15.225 # Internal error in RDB reading offset 4191678, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1190 -{1645549:S 18 Oct 2024 17:49:15.261 # Internal error in RDB reading offset 7901506, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1205 -{1645549:S 18 Oct 2024 17:49:15.312 # Internal error in RDB reading offset 14480196, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1220 -{1645549:S 18 Oct 2024 17:49:15.362 # Internal error in RDB reading offset 14480196, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1235 -{1645549:S 18 Oct 2024 17:49:15.383 # Internal error in RDB reading offset 2093042, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1250 -{1645549:S 18 Oct 2024 17:49:15.408 # Internal error in RDB reading offset 4191678, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1265 -{1645549:S 18 Oct 2024 17:49:15.443 # Internal error in RDB reading offset 7901506, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1280 -{1645549:S 18 Oct 2024 17:49:15.495 # Internal error in RDB reading offset 14480196, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1295 -{1645549:S 18 Oct 2024 17:49:15.515 # Internal error in RDB reading offset 2093042, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1310 -{1645549:S 18 Oct 2024 17:49:15.557 # Internal error in RDB reading offset 10228482, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1325 -{1645549:S 18 Oct 2024 17:49:15.613 # Internal error in RDB reading offset 14480196, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1340 -{1645549:S 18 Oct 2024 17:49:15.667 # Internal error in RDB reading offset 14480196, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1355 -{1645549:S 18 Oct 2024 17:49:15.721 # Internal error in RDB reading offset 14480196, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1370 -{1645549:S 18 Oct 2024 17:49:15.750 # Internal error in RDB reading offset 4191678, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1385 -{1645549:S 18 Oct 2024 17:49:15.769 # Internal error in RDB reading offset 2093042, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1400 -{1645549:S 18 Oct 2024 17:49:15.806 # Internal error in RDB reading offset 7901506, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1415 -{1645549:S 18 Oct 2024 17:49:15.844 # Internal error in RDB reading offset 7901506, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1430 -{1645549:S 18 Oct 2024 17:49:15.901 # Internal error in RDB reading offset 16669768, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1445 -{1645549:S 18 Oct 2024 17:49:15.958 # Internal error in RDB reading offset 16669768, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1460 -{1645549:S 18 Oct 2024 17:49:15.993 # Internal error in RDB reading offset 7901506, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1475 -{1645549:S 18 Oct 2024 17:49:16.015 # Internal error in RDB reading offset 2093042, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1490 -{1645549:S 18 Oct 2024 17:49:16.039 # Internal error in RDB reading offset 4191678, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1505 -{1645549:S 18 Oct 2024 17:49:16.052 # Internal error in RDB reading offset 0, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1520 -{1645549:S 18 Oct 2024 17:49:16.063 # Internal error in RDB reading offset 0, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1535 -test took 3609 ms -[ok]: diskless loading short read (10664 ms) -=== (repl external:skip) Starting server 127.0.0.1:22513 ok -=== () Starting server 127.0.0.1:22515 ok +=== () Starting server 127.0.0.1:22505 ok +[ok]: Test replica unable to join dual channel replication sync after started (1113 ms) +=== (dual-channel-replication external:skip) Starting server 127.0.0.1:22507 ok +=== () Starting server 127.0.0.1:22509 ok +[ok]: Replica recover rdb-connection killed (15075 ms) +[ok]: Replica recover main-connection killed (15017 ms) +[99/124 done]: integration/dual-channel-replication (187 seconds) +Testing integration/block-repl +=== (repl external:skip) Starting server 127.0.0.1:22511 ok +=== () Starting server 127.0.0.1:22513 ok +[ok]: First server should have role slave after SLAVEOF (1005 ms) +[ok]: Test replication with blocking lists and sorted sets operations (25011 ms) +[100/124 done]: integration/block-repl (27 seconds) +Testing integration/replica-redirect +=== (needs:repl external:skip) Starting server 127.0.0.1:22515 ok === () Starting server 127.0.0.1:22517 ok -[ok]: diskless no replicas drop during rdb pipe (6219 ms) -=== () Starting server 127.0.0.1:22519 ok +[ok]: write command inside MULTI is QUEUED, EXEC should be REDIRECT (390 ms) +[ok]: write command inside MULTI is REDIRECT, EXEC should be EXECABORT (8 ms) +[ok]: replica allow read command by default (0 ms) +[ok]: replica reply READONLY error for write command by default (1 ms) +[ok]: replica redirect read and write command after CLIENT CAPA REDIRECT (0 ms) +[ok]: non-data access commands are not redirected (0 ms) +[ok]: replica allow read command in READONLY mode (0 ms) +[ok]: client paused during failover-in-progress (467 ms) +[101/124 done]: integration/replica-redirect (2 seconds) +Testing integration/replication-3 +=== (repl external:skip) Starting server 127.0.0.1:22519 ok === () Starting server 127.0.0.1:22521 ok -[ok]: diskless slow replicas drop during rdb pipe (3985 ms) -=== () Starting server 127.0.0.1:22523 ok +[ok]: First server should have role slave after SLAVEOF (140 ms) +[ok]: MASTER and SLAVE consistency with expire (4836 ms) +[ok]: Master can replicate command longer than client-query-buffer-limit on replica (174 ms) +[ok]: Slave is able to evict keys created in writable slaves (6005 ms) +[ok]: Writable replica doesn't return expired keys (105 ms) +[ok]: PFCOUNT updates cache on readonly replica (2 ms) +[ok]: PFCOUNT doesn't use expired key on readonly replica (104 ms) +[102/124 done]: integration/replication-3 (13 seconds) +Testing integration/dismiss-mem +=== (dismiss external:skip) Starting server 127.0.0.1:22523 ok + +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... [ok]: dismiss all data types memory (1243 ms) + +Waiting for background save to finish... [ok]: dismiss client output buffer (4046 ms) + +Waiting for background save to finish... +Waiting for background save to finish... +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]: dismiss client query buffer (418 ms) === () Starting server 127.0.0.1:22525 ok -[ok]: diskless fast replicas drop during rdb pipe (5336 ms) + +Waiting for background save to finish... [ok]: dismiss replication backlog (1619 ms) +[103/124 done]: integration/dismiss-mem (7 seconds) +Testing integration/rdb === () Starting server 127.0.0.1:22527 ok +[ok]: test old version rdb file (1 ms) === () Starting server 127.0.0.1:22529 ok -[ok]: diskless all replicas drop during rdb pipe (1630 ms) +[ok]: RDB encoding loading test (9 ms) === () Starting server 127.0.0.1:22531 ok +[ok]: Server started empty with non-existing RDB file (0 ms) === () Starting server 127.0.0.1:22533 ok -[ok]: diskless timeout replicas drop during rdb pipe (8420 ms) -=== (repl) Starting server 127.0.0.1:22535 ok -=== () Starting server 127.0.0.1:22537 ok -[ok]: diskless replication child being killed is collected (1467 ms) -=== (repl) Starting server 127.0.0.1:22539 ok +[ok]: Server started empty with empty RDB file (0 ms) +=== () Starting server 127.0.0.1:22535 ok +[ok]: Test RDB stream encoding (186 ms) +[ok]: Test RDB stream encoding - sanitize dump (107 ms) +=== () Starting server 127.0.0.1:22537 +[ok]: Server should not start if RDB file can't be open (2 ms) +=== () Starting server 127.0.0.1:22539 +[ok]: Server should not start if RDB is corrupted (1 ms) === () Starting server 127.0.0.1:22541 ok -[ok]: replication child dies when parent is killed - diskless: yes dual-channel-replication-enabled: yes (1165 ms) -=== (repl) Starting server 127.0.0.1:22543 ok +[ok]: Test FLUSHALL aborts bgsave (446 ms) +[ok]: bgsave resets the change counter (206 ms) +=== () Starting server 127.0.0.1:22543 ok +Waiting for process 3759627 to exit... +Waiting for process 3759627 to exit... +[ok]: client freed during loading (3748 ms) === () Starting server 127.0.0.1:22545 ok -[ok]: replication child dies when parent is killed - diskless: no dual-channel-replication-enabled: no (1467 ms) -=== (repl) Starting server 127.0.0.1:22547 ok +[ok]: Test RDB load info (1202 ms) +=== () Starting server 127.0.0.1:22547 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: 909312 +current_save_keys_processed info : 1 +[ok]: Test child sending info (1938 ms) === () Starting server 127.0.0.1:22549 ok -[ok]: diskless replication read pipe cleanup (648 ms) -=== (repl) Starting server 127.0.0.1:22551 ok +[ok]: script won't load anymore if it's in rdb (0 ms) +=== () Starting server 127.0.0.1:22551 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 (311 ms) +[104/124 done]: integration/rdb (12 seconds) +Testing integration/convert-ziplist-hash-on-load === () Starting server 127.0.0.1:22553 ok +[ok]: RDB load ziplist hash: converts to listpack when RDB loading (0 ms) === () Starting server 127.0.0.1:22555 ok -[ok]: replicaof right after disconnection (2045 ms) -=== (repl) Starting server 127.0.0.1:22557 ok +[ok]: RDB load ziplist hash: converts to hash table when hash-max-ziplist-entries is exceeded (1 ms) +[105/124 done]: integration/convert-ziplist-hash-on-load (1 seconds) +Testing integration/replication-buffer +=== (repl external:skip) Starting server 127.0.0.1:22557 ok === () Starting server 127.0.0.1:22559 ok === () Starting server 127.0.0.1:22561 ok -[ok]: Kill rdb child process if its dumping RDB is not useful (1127 ms) -=== (repl external:skip) Starting server 127.0.0.1:22563 ok -=== () Starting server 127.0.0.1:22565 ok +=== () Starting server 127.0.0.1:22563 ok +[ok]: All replicas share one global replication buffer dualchannel yes (79 ms) +[ok]: Replication buffer will become smaller when no replica uses dualchannel yes (5 ms) +=== (repl external:skip) Starting server 127.0.0.1:22565 ok === () Starting server 127.0.0.1:22567 ok === () Starting server 127.0.0.1:22569 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 (105 ms) -=== (repl external:skip) Starting server 127.0.0.1:22571 ok -=== () Starting server 127.0.0.1:22573 ok +=== () Starting server 127.0.0.1:22571 ok +[ok]: All replicas share one global replication buffer dualchannel no (65 ms) +[ok]: Replication buffer will become smaller when no replica uses dualchannel no (5 ms) +=== (repl external:skip) Starting server 127.0.0.1:22573 ok === () Starting server 127.0.0.1:22575 ok === () Starting server 127.0.0.1:22577 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 (104 ms) -=== (repl) Starting server 127.0.0.1:22579 ok +[ok]: Replication backlog size can outgrow the backlog limit config dualchannel yes (2357 ms) +[ok]: Replica could use replication buffer (beyond backlog config) for partial resynchronization dualchannel yes (2018 ms) +[ok]: Replication backlog memory will become smaller if disconnecting with replica dualchannel yes (127 ms) +=== (repl external:skip) Starting server 127.0.0.1:22579 ok === () Starting server 127.0.0.1:22581 ok -[ok]: replica can handle EINTR if use diskless load (659 ms) -=== (repl external:skip) Starting server 127.0.0.1:22583 ok -SYNC _addReplyToBufferOrList: I/O error reading reply - -Waiting for background save to finish... -Waiting for background save to finish... -Waiting for background save to finish... -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]: replica do not write the reply to the replication link - SYNC (_addReplyToBufferOrList) (406 ms) -SYNC 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 - SYNC (addReplyDeferredLen) (321 ms) -PSYNC _addReplyToBufferOrList: 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 (_addReplyToBufferOrList) (112 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) (111 ms) -[ok]: PSYNC with wrong offset should throw error (2 ms) +=== () Starting server 127.0.0.1:22583 ok +[ok]: Replication backlog size can outgrow the backlog limit config dualchannel no (2810 ms) +[ok]: Replica could use replication buffer (beyond backlog config) for partial resynchronization dualchannel no (2582 ms) +[ok]: Replication backlog memory will become smaller if disconnecting with replica dualchannel no (235 ms) === (repl external:skip) Starting server 127.0.0.1:22585 ok === () Starting server 127.0.0.1:22587 ok -[ok]: Test replication with lazy expire (127 ms) +[ok]: Partial resynchronization is successful even client-output-buffer-limit is less than repl-backlog-size. dualchannel yes (3569 ms) === (repl external:skip) Starting server 127.0.0.1:22589 ok === () Starting server 127.0.0.1:22591 ok -[ok]: Replica keep the old data if RDB file save fails in disk-based replication (644 ms) -[98/124 done]: integration/replication (154 seconds) -Testing integration/replication-4 -=== (repl network external:skip singledb:skip) Starting server 127.0.0.1:22593 ok +[ok]: The update of replBufBlock's repl_offset is ok - Regression test for #11666 (9 ms) +[ok]: Replica client-output-buffer size is limited to backlog_limit/16 when no replication data is pending. dualchannel yes (2432 ms) +=== (repl external:skip) Starting server 127.0.0.1:22593 ok === () Starting server 127.0.0.1:22595 ok -[ok]: First server should have role slave after SLAVEOF (1 ms) -[ok]: Test replication with parallel clients writing in different DBs (5168 ms) +[ok]: Partial resynchronization is successful even client-output-buffer-limit is less than repl-backlog-size. dualchannel no (4210 ms) === (repl external:skip) Starting server 127.0.0.1:22597 ok === () Starting server 127.0.0.1:22599 ok -[ok]: First server should have role slave after SLAVEOF (101 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 (1 ms) -[ok]: With min-slaves-to-write function without no-write flag (0 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 (3676 ms) -=== (repl external:skip) Starting server 127.0.0.1:22601 ok +[ok]: The update of replBufBlock's repl_offset is ok - Regression test for #11666 (11 ms) +[ok]: Replica client-output-buffer size is limited to backlog_limit/16 when no replication data is pending. dualchannel no (1187 ms) +[106/124 done]: integration/replication-buffer (31 seconds) +Testing integration/replication +=== (repl network external:skip) Starting server 127.0.0.1:22601 ok === () Starting server 127.0.0.1:22603 ok -[ok]: First server should have role slave after SLAVEOF (156 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 (516 ms) +[ok]: Slave enters handshake (1005 ms) +[ok]: Slave enters wait_bgsave (0 ms) +[ok]: Slave is able to detect timeout during handshake (1 ms) === (repl external:skip) Starting server 127.0.0.1:22605 ok === () Starting server 127.0.0.1:22607 ok -[ok]: First server should have role slave after SLAVEOF (1 ms) -[ok]: Replication: commands with many arguments (issue #1221) (5610 ms) -[ok]: spopwithcount rewrite srem command (63 ms) -[ok]: Replication of SPOP command -- alsoPropagate() API (449 ms) +[ok]: Set instance A as slave of B (154 ms) +[ok]: INCRBYFLOAT replication, should not remove expire (2 ms) +[ok]: GETSET replication (2 ms) +[ok]: BRPOPLPUSH replication, when blocking against empty list (9 ms) +[ok]: BRPOPLPUSH replication, list exists (1011 ms) +[ok]: BLMOVE (left, left) replication, when blocking against empty list (9 ms) +[ok]: BLMOVE (left, left) replication, list exists (1011 ms) +[ok]: BLMOVE (left, right) replication, when blocking against empty list (9 ms) +[ok]: BLMOVE (left, right) replication, list exists (1012 ms) +[ok]: BLMOVE (right, left) replication, when blocking against empty list (10 ms) +[ok]: BLMOVE (right, left) replication, list exists (1013 ms) +[ok]: BLMOVE (right, right) replication, when blocking against empty list (9 ms) +[ok]: BLMOVE (right, right) replication, list exists (1013 ms) +[ok]: BLPOP followed by role change, issue #2473 (214 ms) === (repl external:skip) Starting server 127.0.0.1:22609 ok === () Starting server 127.0.0.1:22611 ok -[ok]: First server should have role slave after SLAVEOF (120 ms) -[ok]: Data divergence can happen under default conditions (3 ms) -[ok]: Data divergence is allowed on writable replicas (2 ms) -[99/124 done]: integration/replication-4 (18 seconds) -Testing integration/replication-2 +[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" (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 (0 ms) +[ok]: FLUSHDB / FLUSHALL should replicate (60 ms) +[ok]: ROLE in master reports master with a slave (0 ms) +[ok]: ROLE in slave reports slave in connected state (1 ms) === (repl external:skip) Starting server 127.0.0.1:22613 ok === () Starting server 127.0.0.1:22615 ok -[ok]: First server should have role slave after SLAVEOF (102 ms) -[ok]: If min-slaves-to-write is honored, write is accepted (1 ms) -[ok]: No write if min-slaves-to-write is < attached slaves (0 ms) -[ok]: If min-slaves-to-write is honored, write is accepted (again) (1 ms) -[ok]: No write if min-slaves-max-lag is > of the slave lag (2853 ms) -[ok]: min-slaves-to-write is ignored by slaves (1 ms) -[ok]: MASTER and SLAVE dataset should be identical after complex ops (4838 ms) -[100/124 done]: integration/replication-2 (8 seconds) -Testing integration/replication-psync -=== (repl) Starting server 127.0.0.1:22617 ok +=== () Starting server 127.0.0.1:22617 ok === () Starting server 127.0.0.1:22619 ok -[ok]: Slave should be able to synchronize with the master (101 ms) -[ok]: Detect write load to master (0 ms) -[ok]: Test replication partial resync: no reconnection, just sync (diskless: no, disabled, dual-channel: yes, reconnect: 0) (6 ms) -=== (repl) Starting server 127.0.0.1:22621 ok +[ok]: Connect multiple replicas at the same time (issue #141), master diskless=no, replica diskless=disabled dual-channel-replication-enabled=no (11945 ms) +=== (repl external:skip) Starting server 127.0.0.1:22621 ok === () Starting server 127.0.0.1:22623 ok -[ok]: Slave should be able to synchronize with the master (1198 ms) -[ok]: Detect write load to master (0 ms) -[ok]: Test replication partial resync: ok psync (diskless: no, disabled, dual-channel: yes, reconnect: 1) (6261 ms) -=== (repl) Starting server 127.0.0.1:22625 ok +=== () Starting server 127.0.0.1:22625 ok === () Starting server 127.0.0.1:22627 ok -[ok]: Slave should be able to synchronize with the master (202 ms) -[ok]: Detect write load to master (1 ms) -[ok]: Test replication partial resync: no backlog (diskless: no, disabled, dual-channel: yes, reconnect: 1) (7784 ms) -=== (repl) Starting server 127.0.0.1:22629 ok +[ok]: Connect multiple replicas at the same time (issue #141), master diskless=no, replica diskless=swapdb dual-channel-replication-enabled=no (11465 ms) +=== (repl external:skip) Starting server 127.0.0.1:22629 ok === () Starting server 127.0.0.1:22631 ok -[ok]: Slave should be able to synchronize with the master (101 ms) -[ok]: Detect write load to master (0 ms) -[ok]: Test replication partial resync: ok after delay (diskless: no, disabled, dual-channel: yes, reconnect: 1) (9306 ms) -=== (repl) Starting server 127.0.0.1:22633 ok +=== () Starting server 127.0.0.1:22633 ok === () Starting server 127.0.0.1:22635 ok -[ok]: Slave should be able to synchronize with the master (101 ms) -[ok]: Detect write load to master (0 ms) -[ok]: Test replication partial resync: backlog expired (diskless: no, disabled, dual-channel: yes, reconnect: 1) (9309 ms) -=== (repl) Starting server 127.0.0.1:22637 ok +[ok]: Connect multiple replicas at the same time (issue #141), master diskless=yes, replica diskless=disabled dual-channel-replication-enabled=yes (12069 ms) +=== (repl external:skip) Starting server 127.0.0.1:22637 ok === () Starting server 127.0.0.1:22639 ok -[ok]: Slave should be able to synchronize with the master (102 ms) -[ok]: Detect write load to master (0 ms) -[ok]: Test replication partial resync: no reconnection, just sync (diskless: no, disabled, dual-channel: no, reconnect: 0) (6 ms) -=== (repl) Starting server 127.0.0.1:22641 ok +=== () Starting server 127.0.0.1:22641 ok === () Starting server 127.0.0.1:22643 ok -[ok]: Slave should be able to synchronize with the master (101 ms) -[ok]: Detect write load to master (0 ms) -[ok]: Test replication partial resync: ok psync (diskless: no, disabled, dual-channel: no, reconnect: 1) (6284 ms) -=== (repl) Starting server 127.0.0.1:22645 ok +[ok]: Connect multiple replicas at the same time (issue #141), master diskless=yes, replica diskless=swapdb dual-channel-replication-enabled=yes (11377 ms) +=== (repl external:skip) Starting server 127.0.0.1:22645 ok === () Starting server 127.0.0.1:22647 ok -[ok]: Slave should be able to synchronize with the master (101 ms) -[ok]: Detect write load to master (1 ms) -[ok]: Test replication partial resync: no backlog (diskless: no, disabled, dual-channel: no, reconnect: 1) (7775 ms) -=== (repl) Starting server 127.0.0.1:22649 ok +[ok]: Master stream is correctly processed while the replica has a script in -BUSY state (21815 ms) +=== (repl external:skip) Starting server 127.0.0.1:22649 ok === () Starting server 127.0.0.1:22651 ok -[ok]: Slave should be able to synchronize with the master (102 ms) -[ok]: Detect write load to master (0 ms) -[ok]: Test replication partial resync: ok after delay (diskless: no, disabled, dual-channel: no, reconnect: 1) (9314 ms) -=== (repl) Starting server 127.0.0.1:22653 ok +[ok]: Diskless load swapdb (different replid): new database is exposed after swapping dual-channel=yes (1 ms) +=== (repl external:skip) Starting server 127.0.0.1:22653 ok === () Starting server 127.0.0.1:22655 ok -[ok]: Slave should be able to synchronize with the master (102 ms) -[ok]: Detect write load to master (0 ms) -[ok]: Test replication partial resync: backlog expired (diskless: no, disabled, dual-channel: no, reconnect: 1) (9302 ms) -=== (repl) Starting server 127.0.0.1:22657 ok +[ok]: Diskless load swapdb (different replid): replica enter loading dual-channel-replication-enabled=no (449 ms) +[ok]: Diskless load swapdb (different replid): old database is exposed after replication fails dual-channel=no (1 ms) +=== (repl external:skip) Starting server 127.0.0.1:22657 ok === () Starting server 127.0.0.1:22659 ok -[ok]: Slave should be able to synchronize with the master (103 ms) -[ok]: Detect write load to master (0 ms) -[ok]: Test replication partial resync: no reconnection, just sync (diskless: no, swapdb, dual-channel: yes, reconnect: 0) (6 ms) -=== (repl) Starting server 127.0.0.1:22661 ok +[ok]: Diskless load swapdb (async_loading): new database is exposed after swapping (3 ms) +=== (repl external:skip) Starting server 127.0.0.1:22661 ok === () Starting server 127.0.0.1:22663 ok -[ok]: Slave should be able to synchronize with the master (101 ms) -[ok]: Detect write load to master (1 ms) -[ok]: Test replication partial resync: ok psync (diskless: no, swapdb, dual-channel: yes, reconnect: 1) (6229 ms) +[ok]: Diskless load swapdb (async_loading): replica enter async_loading (344 ms) +[ok]: Diskless load swapdb (async_loading): old database is exposed while async replication is in progress (870 ms) +[ok]: Busy script during async loading (1090 ms) +[ok]: Blocked commands and configs during async-loading (447 ms) +[ok]: Diskless load swapdb (async_loading): old database is exposed after async replication fails (1 ms) +Waiting for process 3773093 to exit... +Waiting for process 3773093 to exit... +Waiting for process 3773093 to exit... +Waiting for process 3773093 to exit... +Waiting for process 3773093 to exit... === (repl) Starting server 127.0.0.1:22665 ok === () Starting server 127.0.0.1:22667 ok -[ok]: Slave should be able to synchronize with the master (102 ms) -[ok]: Detect write load to master (0 ms) -[ok]: Test replication partial resync: no backlog (diskless: no, swapdb, dual-channel: yes, reconnect: 1) (7779 ms) -=== (repl) Starting server 127.0.0.1:22669 ok +filling took 7214 ms (TODO: use pipeline) +{3774284:S 22 Nov 2025 03:43:11.942 # Internal error in RDB reading offset 8331358, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 50 +{3774284:S 22 Nov 2025 03:43:12.003 # Internal error in RDB reading offset 14455122, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 65 +{3774284:S 22 Nov 2025 03:43:12.040 # Internal error in RDB reading offset 6085088, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 80 +{3774284:S 22 Nov 2025 03:43:12.058 # Internal error in RDB reading offset 0, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 95 +{3774284:S 22 Nov 2025 03:43:12.099 # Internal error in RDB reading offset 6085088, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 110 +{3774284:S 22 Nov 2025 03:43:12.113 # Internal error in RDB reading offset 0, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 125 +{3774284:S 22 Nov 2025 03:43:12.148 # Internal error in RDB reading offset 4173048, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 140 +{3774284:S 22 Nov 2025 03:43:12.174 # Internal error in RDB reading offset 2029502, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 155 +{3774284:S 22 Nov 2025 03:43:12.235 # Internal error in RDB reading offset 11824587, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 170 +{3774284:S 22 Nov 2025 03:43:12.283 # Internal error in RDB reading offset 11824587, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 185 +{3774284:S 22 Nov 2025 03:43:12.342 # Internal error in RDB reading offset 16566619, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 200 +{3774284:S 22 Nov 2025 03:43:12.400 # Internal error in RDB reading offset 16566619, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 215 +{3774284:S 22 Nov 2025 03:43:12.414 # Internal error in RDB reading offset 0, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 230 +{3774284:S 22 Nov 2025 03:43:12.461 # Internal error in RDB reading offset 9969135, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 245 +{3774284:S 22 Nov 2025 03:43:12.496 # Internal error in RDB reading offset 6085088, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 260 +{3774284:S 22 Nov 2025 03:43:12.525 # Internal error in RDB reading offset 4173048, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 275 +{3774284:S 22 Nov 2025 03:43:12.569 # Internal error in RDB reading offset 8331358, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 290 +{3774284:S 22 Nov 2025 03:43:12.601 # Internal error in RDB reading offset 4173048, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 305 +{3774284:S 22 Nov 2025 03:43:12.662 # Internal error in RDB reading offset 11824587, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 320 +{3774284:S 22 Nov 2025 03:43:12.714 # Internal error in RDB reading offset 4173048, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 335 +{3774284:S 22 Nov 2025 03:43:12.745 # Internal error in RDB reading offset 0, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 350 +{3774284:S 22 Nov 2025 03:43:12.814 # Internal error in RDB reading offset 4173048, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 365 +{3774284:S 22 Nov 2025 03:43:12.836 # Internal error in RDB reading offset 0, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 380 +{3774284:S 22 Nov 2025 03:43:12.881 # Internal error in RDB reading offset 6085088, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 395 +{3774284:S 22 Nov 2025 03:43:12.905 # Internal error in RDB reading offset 0, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 410 +{3774284:S 22 Nov 2025 03:43:12.958 # Internal error in RDB reading offset 8331358, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 425 +{3774284:S 22 Nov 2025 03:43:12.995 # Internal error in RDB reading offset 4173048, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 440 +{3774284:S 22 Nov 2025 03:43:13.051 # Internal error in RDB reading offset 11824587, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 455 +{3774284:S 22 Nov 2025 03:43:13.101 # Internal error in RDB reading offset 8331358, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 470 +{3774284:S 22 Nov 2025 03:43:13.146 # Internal error in RDB reading offset 6085088, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 485 +{3774284:S 22 Nov 2025 03:43:13.169 # Internal error in RDB reading offset 0, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 500 +{3774284:S 22 Nov 2025 03:43:13.229 # Internal error in RDB reading offset 11824587, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 515 +{3774284:S 22 Nov 2025 03:43:13.247 # Internal error in RDB reading offset 0, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 530 +{3774284:S 22 Nov 2025 03:43:13.279 # Internal error in RDB reading offset 4173048, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 545 +{3774284:S 22 Nov 2025 03:43:13.313 # Internal error in RDB reading offset 4173048, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 560 +{3774284:S 22 Nov 2025 03:43:13.344 # Internal error in RDB reading offset 4173048, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 575 +{3774284:S 22 Nov 2025 03:43:13.359 # Internal error in RDB reading offset 0, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 590 +{3774284:S 22 Nov 2025 03:43:13.406 # Internal error in RDB reading offset 9969135, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 605 +{3774284:S 22 Nov 2025 03:43:13.467 # Internal error in RDB reading offset 11824587, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 620 +{3774284:S 22 Nov 2025 03:43:13.525 # Internal error in RDB reading offset 16566619, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 635 +{3774284:S 22 Nov 2025 03:43:13.586 # Internal error in RDB reading offset 16566619, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 650 +{3774284:S 22 Nov 2025 03:43:13.643 # Internal error in RDB reading offset 11824587, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 665 +{3774284:S 22 Nov 2025 03:43:13.680 # Internal error in RDB reading offset 6085088, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 680 +{3774284:S 22 Nov 2025 03:43:13.719 # Internal error in RDB reading offset 6085088, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 695 +{3774284:S 22 Nov 2025 03:43:13.763 # Internal error in RDB reading offset 8331358, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 710 +{3774284:S 22 Nov 2025 03:43:13.815 # Internal error in RDB reading offset 9969135, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 725 +{3774284:S 22 Nov 2025 03:43:13.845 # Internal error in RDB reading offset 2029502, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 740 +{3774284:S 22 Nov 2025 03:43:13.861 # Internal error in RDB reading offset 0, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 755 +{3774284:S 22 Nov 2025 03:43:13.915 # Internal error in RDB reading offset 8331358, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 770 +{3774284:S 22 Nov 2025 03:43:13.981 # Internal error in RDB reading offset 6085088, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 785 +{3774284:S 22 Nov 2025 03:43:14.010 # Internal error in RDB reading offset 0, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 800 +{3774284:S 22 Nov 2025 03:43:14.068 # Internal error in RDB reading offset 9969135, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 815 +{3774284:S 22 Nov 2025 03:43:14.097 # Internal error in RDB reading offset 0, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 830 +{3774284:S 22 Nov 2025 03:43:14.161 # Internal error in RDB reading offset 8331358, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 845 +{3774284:S 22 Nov 2025 03:43:14.192 # Internal error in RDB reading offset 2029502, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 860 +{3774284:S 22 Nov 2025 03:43:14.207 # Internal error in RDB reading offset 0, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 875 +{3774284:S 22 Nov 2025 03:43:14.273 # Internal error in RDB reading offset 16566619, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 890 +{3774284:S 22 Nov 2025 03:43:14.301 # Internal error in RDB reading offset 4173048, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 905 +{3774284:S 22 Nov 2025 03:43:14.317 # Internal error in RDB reading offset 0, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 920 +{3774284:S 22 Nov 2025 03:43:14.377 # Internal error in RDB reading offset 16566619, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 935 +{3774284:S 22 Nov 2025 03:43:14.437 # Internal error in RDB reading offset 16566619, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 950 +{3774284:S 22 Nov 2025 03:43:14.501 # Internal error in RDB reading offset 9969135, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 965 +{3774284:S 22 Nov 2025 03:43:14.521 # Internal error in RDB reading offset 0, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 980 +{3774284:S 22 Nov 2025 03:43:14.584 # Internal error in RDB reading offset 16566619, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 995 +{3774284:S 22 Nov 2025 03:43:14.613 # Internal error in RDB reading offset 4173048, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1010 +{3774284:S 22 Nov 2025 03:43:14.668 # Internal error in RDB reading offset 16566619, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1025 +{3774284:S 22 Nov 2025 03:43:14.724 # Internal error in RDB reading offset 11824587, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1040 +{3774284:S 22 Nov 2025 03:43:14.759 # Internal error in RDB reading offset 6085088, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1055 +{3774284:S 22 Nov 2025 03:43:14.790 # Internal error in RDB reading offset 4173048, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1070 +{3774284:S 22 Nov 2025 03:43:14.824 # Internal error in RDB reading offset 4173048, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1085 +{3774284:S 22 Nov 2025 03:43:14.886 # Internal error in RDB reading offset 16566619, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1100 +{3774284:S 22 Nov 2025 03:43:14.914 # Internal error in RDB reading offset 2029502, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1115 +{3774284:S 22 Nov 2025 03:43:14.938 # Internal error in RDB reading offset 2029502, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1130 +{3774284:S 22 Nov 2025 03:43:14.995 # Internal error in RDB reading offset 9969135, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1145 +{3774284:S 22 Nov 2025 03:43:15.026 # Internal error in RDB reading offset 4173048, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1160 +{3774284:S 22 Nov 2025 03:43:15.047 # Internal error in RDB reading offset 0, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1175 +{3774284:S 22 Nov 2025 03:43:15.089 # Internal error in RDB reading offset 6085088, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1190 +{3774284:S 22 Nov 2025 03:43:15.109 # Internal error in RDB reading offset 0, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1205 +{3774284:S 22 Nov 2025 03:43:15.176 # Internal error in RDB reading offset 18766194, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1220 +{3774284:S 22 Nov 2025 03:43:15.244 # Internal error in RDB reading offset 9969135, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1235 +{3774284:S 22 Nov 2025 03:43:15.291 # Internal error in RDB reading offset 8331358, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1250 +{3774284:S 22 Nov 2025 03:43:15.322 # Internal error in RDB reading offset 2029502, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1265 +{3774284:S 22 Nov 2025 03:43:15.376 # Internal error in RDB reading offset 9969135, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1280 +{3774284:S 22 Nov 2025 03:43:15.391 # Internal error in RDB reading offset 0, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1295 +{3774284:S 22 Nov 2025 03:43:15.446 # Internal error in RDB reading offset 9969135, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1310 +{3774284:S 22 Nov 2025 03:43:15.461 # Internal error in RDB reading offset 0, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1325 +{3774284:S 22 Nov 2025 03:43:15.520 # Internal error in RDB reading offset 11824587, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1340 +{3774284:S 22 Nov 2025 03:43:15.575 # Internal error in RDB reading offset 9969135, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1355 +{3774284:S 22 Nov 2025 03:43:15.590 # Internal error in RDB reading offset 0, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1370 +{3774284:S 22 Nov 2025 03:43:15.644 # Internal error in RDB reading offset 11824587, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1385 +{3774284:S 22 Nov 2025 03:43:15.690 # Internal error in RDB reading offset 11824587, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1400 +{3774284:S 22 Nov 2025 03:43:15.725 # Internal error in RDB reading offset 6085088, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1415 +{3774284:S 22 Nov 2025 03:43:15.740 # Internal error in RDB reading offset 0, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1430 +{3774284:S 22 Nov 2025 03:43:15.799 # Internal error in RDB reading offset 14455122, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1445 +{3774284:S 22 Nov 2025 03:43:15.828 # Internal error in RDB reading offset 2029502, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1460 +{3774284:S 22 Nov 2025 03:43:15.863 # Internal error in RDB reading offset 4173048, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1475 +{3774284:S 22 Nov 2025 03:43:15.918 # Internal error in RDB reading offset 8331358, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1490 +{3774284:S 22 Nov 2025 03:43:15.953 # Internal error in RDB reading offset 2029502, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1505 +{3774284:S 22 Nov 2025 03:43:15.989 # Internal error in RDB reading offset 4173048, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1520 +{3774284:S 22 Nov 2025 03:43:16.051 # Internal error in RDB reading offset 11824587, function at rdb.c:3375 -> Unexpected EOF reading RDB file. Failure loading rdb format from socket, assuming connection error, resuming operation.} 1535 +test took 4157 ms +[ok]: diskless loading short read (11707 ms) +=== (repl external:skip) Starting server 127.0.0.1:22669 ok === () Starting server 127.0.0.1:22671 ok -[ok]: Slave should be able to synchronize with the master (101 ms) -[ok]: Detect write load to master (0 ms) -[ok]: Test replication partial resync: ok after delay (diskless: no, swapdb, dual-channel: yes, reconnect: 1) (9316 ms) -=== (repl) Starting server 127.0.0.1:22673 ok +=== () Starting server 127.0.0.1:22673 ok +[ok]: diskless no replicas drop during rdb pipe (7365 ms) === () Starting server 127.0.0.1:22675 ok -[ok]: Slave should be able to synchronize with the master (202 ms) -[ok]: Detect write load to master (0 ms) -[ok]: Test replication partial resync: backlog expired (diskless: no, swapdb, dual-channel: yes, reconnect: 1) (9299 ms) -=== (repl) Starting server 127.0.0.1:22677 ok +=== () Starting server 127.0.0.1:22677 ok +[ok]: diskless slow replicas drop during rdb pipe (4041 ms) === () Starting server 127.0.0.1:22679 ok -[ok]: Slave should be able to synchronize with the master (102 ms) -[ok]: Detect write load to master (0 ms) -[ok]: Test replication partial resync: no reconnection, just sync (diskless: no, swapdb, dual-channel: no, reconnect: 0) (6 ms) -=== (repl) Starting server 127.0.0.1:22681 ok +=== () Starting server 127.0.0.1:22681 ok +[ok]: diskless fast replicas drop during rdb pipe (6328 ms) === () Starting server 127.0.0.1:22683 ok -[ok]: Slave should be able to synchronize with the master (103 ms) -[ok]: Detect write load to master (0 ms) -[ok]: Test replication partial resync: ok psync (diskless: no, swapdb, dual-channel: no, reconnect: 1) (6226 ms) -=== (repl) Starting server 127.0.0.1:22685 ok +=== () Starting server 127.0.0.1:22685 ok +[ok]: diskless all replicas drop during rdb pipe (1895 ms) === () Starting server 127.0.0.1:22687 ok -[ok]: Slave should be able to synchronize with the master (102 ms) -[ok]: Detect write load to master (0 ms) -[ok]: Test replication partial resync: no backlog (diskless: no, swapdb, dual-channel: no, reconnect: 1) (7772 ms) -=== (repl) Starting server 127.0.0.1:22689 ok -=== () Starting server 127.0.0.1:22691 ok -[ok]: Slave should be able to synchronize with the master (101 ms) -[ok]: Detect write load to master (0 ms) -[ok]: Test replication partial resync: ok after delay (diskless: no, swapdb, dual-channel: no, reconnect: 1) (9308 ms) -=== (repl) Starting server 127.0.0.1:22693 ok -=== () Starting server 127.0.0.1:22695 ok -[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: backlog expired (diskless: no, swapdb, dual-channel: no, reconnect: 1) (9330 ms) -=== (repl) Starting server 127.0.0.1:22697 ok -=== () Starting server 127.0.0.1:22699 ok -[ok]: Slave should be able to synchronize with the master (817 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) (29 ms) -=== (repl) Starting server 127.0.0.1:22701 ok -=== () Starting server 127.0.0.1:22703 ok -[ok]: Slave should be able to synchronize with the master (2065 ms) -[ok]: Detect write load to master (0 ms) -[ok]: Test replication partial resync: ok psync (diskless: yes, disabled, dual-channel: yes, reconnect: 1) (6289 ms) -=== (repl) Starting server 127.0.0.1:22705 ok -=== () Starting server 127.0.0.1:22707 ok -[ok]: Slave should be able to synchronize with the master (1950 ms) -[ok]: Detect write load to master (0 ms) -[ok]: Test replication partial resync: no backlog (diskless: yes, disabled, dual-channel: yes, reconnect: 1) (7882 ms) -=== (repl) Starting server 127.0.0.1:22709 ok +=== () Starting server 127.0.0.1:22689 ok +[ok]: diskless timeout replicas drop during rdb pipe (7576 ms) +=== (repl) Starting server 127.0.0.1:22691 ok +=== () Starting server 127.0.0.1:22693 ok +[ok]: diskless replication child being killed is collected (1560 ms) +=== (repl) Starting server 127.0.0.1:22695 ok +=== () Starting server 127.0.0.1:22697 ok +[ok]: replication child dies when parent is killed - diskless: yes dual-channel-replication-enabled: yes (1187 ms) +=== (repl) Starting server 127.0.0.1:22699 ok +=== () Starting server 127.0.0.1:22701 ok +[ok]: replication child dies when parent is killed - diskless: no dual-channel-replication-enabled: no (1499 ms) +=== (repl) Starting server 127.0.0.1:22703 ok +=== () Starting server 127.0.0.1:22705 ok +[ok]: diskless replication read pipe cleanup (887 ms) +=== (repl) Starting server 127.0.0.1:22707 ok +=== () Starting server 127.0.0.1:22709 ok === () Starting server 127.0.0.1:22711 ok -[ok]: Slave should be able to synchronize with the master (1211 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) (9340 ms) +[ok]: replicaof right after disconnection (1851 ms) === (repl) Starting server 127.0.0.1:22713 ok === () Starting server 127.0.0.1:22715 ok -[ok]: Slave should be able to synchronize with the master (1025 ms) -[ok]: Detect write load to master (0 ms) -[ok]: Test replication partial resync: backlog expired (diskless: yes, disabled, dual-channel: yes, reconnect: 1) (9661 ms) -=== (repl) Starting server 127.0.0.1:22717 ok -=== () Starting server 127.0.0.1:22719 ok -[ok]: Slave should be able to synchronize with the master (1124 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) (41 ms) -=== (repl) Starting server 127.0.0.1:22721 ok +=== () Starting server 127.0.0.1:22717 ok +[ok]: Kill rdb child process if its dumping RDB is not useful (1143 ms) +=== (repl external:skip) Starting server 127.0.0.1:22719 ok +=== () Starting server 127.0.0.1:22721 ok === () Starting server 127.0.0.1:22723 ok -[ok]: Slave should be able to synchronize with the master (2080 ms) -[ok]: Detect write load to master (0 ms) -[ok]: Test replication partial resync: ok psync (diskless: yes, disabled, dual-channel: no, reconnect: 1) (6295 ms) -=== (repl) Starting server 127.0.0.1:22725 ok -=== () Starting server 127.0.0.1:22727 ok -[ok]: Slave should be able to synchronize with the master (1826 ms) -[ok]: Detect write load to master (1 ms) -[ok]: Test replication partial resync: no backlog (diskless: yes, disabled, dual-channel: no, reconnect: 1) (8817 ms) -=== (repl) Starting server 127.0.0.1:22729 ok +=== () Starting server 127.0.0.1:22725 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 (105 ms) +=== (repl external:skip) Starting server 127.0.0.1:22727 ok +=== () Starting server 127.0.0.1:22729 ok === () Starting server 127.0.0.1:22731 ok -[ok]: Slave should be able to synchronize with the master (2042 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) (9423 ms) -=== (repl) Starting server 127.0.0.1:22733 ok -=== () Starting server 127.0.0.1:22735 ok -[ok]: Slave should be able to synchronize with the master (2325 ms) -[ok]: Detect write load to master (1 ms) -[ok]: Test replication partial resync: backlog expired (diskless: yes, disabled, dual-channel: no, reconnect: 1) (9370 ms) -=== (repl) Starting server 127.0.0.1:22737 ok -=== () Starting server 127.0.0.1:22739 ok -[ok]: Slave should be able to synchronize with the master (709 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) (26 ms) -=== (repl) Starting server 127.0.0.1:22741 ok +=== () Starting server 127.0.0.1:22733 ok +[ok]: Don't disconnect with replicas before loading transferred RDB when full sync with dual-channel-replication no (1 ms) +[ok]: Discard cache master before loading transferred RDB when full sync with dual-channel-replication no (106 ms) +=== (repl) Starting server 127.0.0.1:22735 ok +=== () Starting server 127.0.0.1:22737 ok +[ok]: replica can handle EINTR if use diskless load (677 ms) +=== (repl external:skip) Starting server 127.0.0.1:22739 ok +SYNC _addReplyToBufferOrList: I/O error reading reply + +Waiting for background save to finish... [ok]: replica do not write the reply to the replication link - SYNC (_addReplyToBufferOrList) (104 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) (107 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) (66 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) (115 ms) +[ok]: PSYNC with wrong offset should throw error (4 ms) +=== (repl external:skip) Starting server 127.0.0.1:22741 ok === () Starting server 127.0.0.1:22743 ok -[ok]: Slave should be able to synchronize with the master (810 ms) -[ok]: Detect write load to master (0 ms) -[ok]: Test replication partial resync: ok psync (diskless: yes, swapdb, dual-channel: yes, reconnect: 1) (6281 ms) -=== (repl) Starting server 127.0.0.1:22745 ok +[ok]: Test replication with lazy expire (113 ms) +=== (repl external:skip) Starting server 127.0.0.1:22745 ok === () Starting server 127.0.0.1:22747 ok -[ok]: Slave should be able to synchronize with the master (1922 ms) -[ok]: Detect write load to master (0 ms) -[ok]: Test replication partial resync: no backlog (diskless: yes, swapdb, dual-channel: yes, reconnect: 1) (7818 ms) -=== (repl) Starting server 127.0.0.1:22749 ok +[ok]: Replica keep the old data if RDB file save fails in disk-based replication (154 ms) +[107/124 done]: integration/replication (157 seconds) +Testing integration/corrupt-dump-fuzzer +=== () Starting server 127.0.0.1:22749 ok +Done 27 cycles in 10 seconds. +RESTORE: successful: 13, rejected: 13 +Total commands sent in traffic: 11082, crashes during traffic: 3 (0 by signal). +[ok]: Fuzzer corrupt restore payloads - sanitize_dump: no (9693 ms) === () Starting server 127.0.0.1:22751 ok -[ok]: Slave should be able to synchronize with the master (708 ms) -[ok]: Detect write load to master (0 ms) -[ok]: Test replication partial resync: ok after delay (diskless: yes, swapdb, dual-channel: yes, reconnect: 1) (9364 ms) -=== (repl) Starting server 127.0.0.1:22753 ok +Done 19 cycles in 10 seconds. +RESTORE: successful: 10, rejected: 9 +Total commands sent in traffic: 14294, crashes during traffic: 0 (0 by signal). +[ok]: Fuzzer corrupt restore payloads - sanitize_dump: yes (9756 ms) +[108/124 done]: integration/corrupt-dump-fuzzer (20 seconds) +Testing integration/psync2-pingoff +=== (psync2 external:skip) Starting server 127.0.0.1:22753 ok === () Starting server 127.0.0.1:22755 ok -[ok]: Slave should be able to synchronize with the master (1719 ms) -[ok]: Detect write load to master (0 ms) -[ok]: Test replication partial resync: backlog expired (diskless: yes, swapdb, dual-channel: yes, reconnect: 1) (10534 ms) -=== (repl) Starting server 127.0.0.1:22757 ok +[ok]: PSYNC2 pingoff: setup (1007 ms) +[ok]: PSYNC2 pingoff: write and wait replication (1 ms) +[ok]: PSYNC2 pingoff: pause replica and promote it (5004 ms) +[ok]: Make the old master a replica of the new one and check conditions (1009 ms) +=== (psync2 external:skip) Starting server 127.0.0.1:22757 ok === () Starting server 127.0.0.1:22759 ok -[ok]: Slave should be able to synchronize with the master (811 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) (129 ms) -=== (repl) Starting server 127.0.0.1:22761 ok +=== () Starting server 127.0.0.1:22761 ok === () Starting server 127.0.0.1:22763 ok -[ok]: Slave should be able to synchronize with the master (810 ms) -[ok]: Detect write load to master (0 ms) -[ok]: Test replication partial resync: ok psync (diskless: yes, swapdb, dual-channel: no, reconnect: 1) (6271 ms) -=== (repl) Starting server 127.0.0.1:22765 ok -=== () Starting server 127.0.0.1:22767 ok -[ok]: Slave should be able to synchronize with the master (1632 ms) -[ok]: Detect write load to master (0 ms) -[ok]: Test replication partial resync: no backlog (diskless: yes, swapdb, dual-channel: no, reconnect: 1) (7877 ms) -=== (repl) Starting server 127.0.0.1:22769 ok +=== () Starting server 127.0.0.1:22765 ok +[ok]: test various edge cases of repl topology changes with missing pings at the end (3339 ms) +=== (psync2 external:skip) Starting server 127.0.0.1:22767 ok +=== () Starting server 127.0.0.1:22769 ok === () Starting server 127.0.0.1:22771 ok -[ok]: Slave should be able to synchronize with the master (1722 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) (9386 ms) -=== (repl) Starting server 127.0.0.1:22773 ok +[ok]: Chained replicas disconnect when replica re-connect with the same master (2934 ms) +[109/124 done]: integration/psync2-pingoff (16 seconds) +Testing integration/valkey-benchmark +=== () Starting server 127.0.0.1:22773 ok +[ok]: benchmark: set,get (47 ms) +[ok]: benchmark: connecting using URI set,get (48 ms) +[ok]: benchmark: connecting using URI with authentication set,get (46 ms) +[ok]: benchmark: full test suite (605 ms) +[ok]: benchmark: multi-thread set,get (554 ms) +[ok]: benchmark: pipelined full set,get (206 ms) +[ok]: benchmark: arbitrary command (43 ms) +[ok]: benchmark: keyspace length (195 ms) +[ok]: benchmark: clients idle mode should return error when reached maxclients limit (29 ms) +[ok]: benchmark: read last argument from stdin (66 ms) +[ok]: benchmark: specific tls-ciphers (235 ms) +[ok]: benchmark: tls connecting using URI with authentication set,get (42 ms) +[ok]: benchmark: specific tls-ciphersuites (156 ms) +[110/124 done]: integration/valkey-benchmark (2 seconds) +Testing integration/shutdown === () Starting server 127.0.0.1:22775 ok -[ok]: Slave should be able to synchronize with the master (811 ms) -[ok]: Detect write load to master (1 ms) -[ok]: Test replication partial resync: backlog expired (diskless: yes, swapdb, dual-channel: no, reconnect: 1) (10759 ms) -[101/124 done]: integration/replication-psync (318 seconds) -Testing integration/psync2 -=== (psync2 external:skip) Starting server 127.0.0.1:22777 ok +=== () Starting server 127.0.0.1:22777 ok +[ok]: Shutting down master waits for replica to catch up (sigterm) (2119 ms) === () Starting server 127.0.0.1:22779 ok === () Starting server 127.0.0.1:22781 ok +[ok]: Shutting down master waits for replica to catch up (shutdown) (1962 ms) === () Starting server 127.0.0.1:22783 ok === () Starting server 127.0.0.1:22785 ok -[ok]: PSYNC2: --- CYCLE 1 --- (0 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 #3 (0 ms) -[ok]: PSYNC2: Set #2 to replicate from #1 (1 ms) -[ok]: PSYNC2: Set #3 to replicate from #0 (1 ms) -[ok]: PSYNC2: cluster is consistent after failover (2 ms) -[ok]: PSYNC2: generate load while killing replication links (5000 ms) -[ok]: PSYNC2: cluster is consistent after load (x = 46987) (2 ms) -[ok]: PSYNC2: total sum of full synchronizations is exactly 4 (1 ms) -[ok]: PSYNC2: --- CYCLE 2 --- (0 ms) -[ok]: PSYNC2: [NEW LAYOUT] Set #3 as master (0 ms) -[ok]: PSYNC2: Set #0 to replicate from #4 (1 ms) -[ok]: PSYNC2: Set #4 to replicate from #2 (1 ms) -[ok]: PSYNC2: Set #1 to replicate from #3 (0 ms) -[ok]: PSYNC2: Set #2 to replicate from #3 (1 ms) -[ok]: PSYNC2: cluster is consistent after failover (2 ms) -[ok]: PSYNC2: generate load while killing replication links (5000 ms) -[ok]: PSYNC2: cluster is consistent after load (x = 94617) (1 ms) -[ok]: PSYNC2: total sum of full synchronizations is exactly 4 (1 ms) -[ok]: PSYNC2: --- CYCLE 3 --- (0 ms) -[ok]: PSYNC2: [NEW LAYOUT] Set #2 as master (1 ms) -[ok]: PSYNC2: Set #4 to replicate from #0 (0 ms) -[ok]: PSYNC2: Set #0 to replicate from #3 (1 ms) -[ok]: PSYNC2: Set #1 to replicate from #0 (0 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 = 143106) (3 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 #4 to replicate from #0 (1 ms) -[ok]: PSYNC2: Set #0 to replicate from #3 (1 ms) -[ok]: PSYNC2: Set #1 to replicate from #3 (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 = 191854) (3 ms) -[ok]: PSYNC2: total sum of full synchronizations is exactly 4 (1 ms) -[ok]: PSYNC2: --- CYCLE 5 --- (0 ms) -[ok]: PSYNC2: [NEW LAYOUT] Set #4 as master (0 ms) -[ok]: PSYNC2: Set #0 to replicate from #1 (1 ms) -[ok]: PSYNC2: Set #1 to replicate from #4 (0 ms) -[ok]: PSYNC2: Set #2 to replicate from #1 (1 ms) -[ok]: PSYNC2: Set #3 to replicate from #1 (0 ms) -[ok]: PSYNC2: cluster is consistent after failover (1 ms) -[ok]: PSYNC2: generate load while killing replication links (5000 ms) -[ok]: PSYNC2: cluster is consistent after load (x = 240577) (2 ms) -[ok]: PSYNC2: total sum of full synchronizations is exactly 4 (1 ms) -[ok]: PSYNC2: Bring the master back again for next test (2 ms) -[ok]: PSYNC2: Partial resync after restart using RDB aux fields (243 ms) -[102/124 done]: integration/psync2 (46 seconds) -Testing integration/replica-redirect -=== (needs:repl external:skip) Starting server 127.0.0.1:22787 ok +[ok]: Shutting down master waits for replica timeout (2129 ms) +=== () Starting server 127.0.0.1:22787 ok === () Starting server 127.0.0.1:22789 ok -[ok]: write command inside MULTI is QUEUED, EXEC should be REDIRECT (106 ms) -[ok]: write command inside MULTI is REDIRECT, EXEC should be EXECABORT (6 ms) -[ok]: replica allow read command by default (0 ms) -[ok]: replica reply READONLY error for write command by default (0 ms) -[ok]: replica redirect read and write command after CLIENT CAPA REDIRECT (0 ms) -[ok]: non-data access commands are not redirected (0 ms) -[ok]: replica allow read command in READONLY mode (1 ms) -[ok]: client paused during failover-in-progress (322 ms) -[103/124 done]: integration/replica-redirect (2 seconds) -Testing integration/convert-ziplist-hash-on-load +[ok]: Shutting down master waits for replica then fails (1313 ms) === () Starting server 127.0.0.1:22791 ok -[ok]: RDB load ziplist hash: converts to listpack when RDB loading (1 ms) === () Starting server 127.0.0.1:22793 ok -[ok]: RDB load ziplist hash: converts to hash table when hash-max-ziplist-entries is exceeded (0 ms) -[104/124 done]: integration/convert-ziplist-hash-on-load (0 seconds) -Testing integration/corrupt-dump-fuzzer -=== () Starting server 127.0.0.1:22795 ok -Done 23 cycles in 10 seconds. -RESTORE: successful: 14, rejected: 9 -Total commands sent in traffic: 19762, crashes during traffic: 4 (0 by signal). -[ok]: Fuzzer corrupt restore payloads - sanitize_dump: no (9590 ms) +[ok]: Shutting down master waits for replica then aborted (540 ms) +[111/124 done]: integration/shutdown (8 seconds) +Testing integration/psync2-master-restart +=== (psync2 external:skip) Starting server 127.0.0.1:22795 ok === () Starting server 127.0.0.1:22797 ok -Done 12 cycles in 10 seconds. -RESTORE: successful: 10, rejected: 2 -Total commands sent in traffic: 19992, crashes during traffic: 0 (0 by signal). -[ok]: Fuzzer corrupt restore payloads - sanitize_dump: yes (10172 ms) -[105/124 done]: integration/corrupt-dump-fuzzer (20 seconds) -Testing integration/replication-buffer -=== (repl external:skip) Starting server 127.0.0.1:22799 ok -=== () Starting server 127.0.0.1:22801 ok +=== () Starting server 127.0.0.1:22799 ok +[ok]: PSYNC2: Partial resync after Master restart using RDB aux fields when offset is 0 (149 ms) +[ok]: PSYNC2: Partial resync after Master restart using RDB aux fields with data (1156 ms) +[ok]: PSYNC2: Partial resync after Master restart using RDB aux fields with expire (2373 ms) +[ok]: PSYNC2: Full resync after Master restart when too many key expired (1952 ms) +[112/124 done]: integration/psync2-master-restart (8 seconds) +Testing integration/psync2-reg +=== (psync2 external:skip) Starting server 127.0.0.1:22801 ok === () Starting server 127.0.0.1:22803 ok === () Starting server 127.0.0.1:22805 ok -[ok]: All replicas share one global replication buffer dualchannel yes (63 ms) -[ok]: Replication buffer will become smaller when no replica uses dualchannel yes (3 ms) -=== (repl external:skip) Starting server 127.0.0.1:22807 ok +[ok]: PSYNC2 #3899 regression: setup (1012 ms) +[ok]: PSYNC2 #3899 regression: kill chained replica (1 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 (1 ms) +[ok]: PSYNC2 #3899 regression: kill chained replica (1 ms) +[ok]: PSYNC2 #3899 regression: kill chained replica (1 ms) +[ok]: PSYNC2 #3899 regression: kill chained replica (1 ms) +[ok]: PSYNC2 #3899 regression: kill first replica (1 ms) +[ok]: PSYNC2 #3899 regression: kill first replica (1 ms) +[ok]: PSYNC2 #3899 regression: kill first replica (1 ms) +[ok]: PSYNC2 #3899 regression: kill first replica (1 ms) +[ok]: PSYNC2 #3899 regression: kill first replica (0 ms) +[ok]: PSYNC2 #3899 regression: kill chained replica (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 (1 ms) +[ok]: PSYNC2 #3899 regression: kill first replica (1 ms) +[ok]: PSYNC2 #3899 regression: kill chained replica (1 ms) +[ok]: PSYNC2 #3899 regression: verify consistency (16 ms) +[113/124 done]: integration/psync2-reg (22 seconds) +Testing integration/replication-4 +=== (repl network external:skip singledb:skip) Starting server 127.0.0.1:22807 ok === () Starting server 127.0.0.1:22809 ok -=== () Starting server 127.0.0.1:22811 ok +[ok]: First server should have role slave after SLAVEOF (1 ms) +[ok]: Test replication with parallel clients writing in different DBs (5130 ms) +=== (repl external:skip) Starting server 127.0.0.1:22811 ok === () Starting server 127.0.0.1:22813 ok -[ok]: All replicas share one global replication buffer dualchannel no (59 ms) -[ok]: Replication buffer will become smaller when no replica uses dualchannel no (3 ms) +[ok]: First server should have role slave after SLAVEOF (104 ms) +[ok]: With min-slaves-to-write (1,3): master should be writable (1 ms) +[ok]: With min-slaves-to-write (2,3): master should not be writable (0 ms) +[ok]: With min-slaves-to-write function without no-write flag (0 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 (2662 ms) === (repl external:skip) Starting server 127.0.0.1:22815 ok === () Starting server 127.0.0.1:22817 ok -=== () Starting server 127.0.0.1:22819 ok -[ok]: Replication backlog size can outgrow the backlog limit config dualchannel yes (1433 ms) -[ok]: Replica could use replication buffer (beyond backlog config) for partial resynchronization dualchannel yes (1751 ms) -[ok]: Replication backlog memory will become smaller if disconnecting with replica dualchannel yes (161 ms) -=== (repl external:skip) Starting server 127.0.0.1:22821 ok -=== () Starting server 127.0.0.1:22823 ok +[ok]: First server should have role slave after SLAVEOF (103 ms) +Replication of an expired key does not delete the expired key test attempts: 0 +[ok]: Replication of an expired key does not delete the expired key (526 ms) +=== (repl external:skip) Starting server 127.0.0.1:22819 ok +=== () Starting server 127.0.0.1:22821 ok +[ok]: First server should have role slave after SLAVEOF (1 ms) +[ok]: Replication: commands with many arguments (issue #1221) (9269 ms) +[ok]: spopwithcount rewrite srem command (78 ms) +[ok]: Replication of SPOP command -- alsoPropagate() API (639 ms) +=== (repl external:skip) Starting server 127.0.0.1:22823 ok === () Starting server 127.0.0.1:22825 ok -[ok]: Replication backlog size can outgrow the backlog limit config dualchannel no (1406 ms) -[ok]: Replica could use replication buffer (beyond backlog config) for partial resynchronization dualchannel no (1696 ms) -[ok]: Replication backlog memory will become smaller if disconnecting with replica dualchannel no (124 ms) -=== (repl external:skip) Starting server 127.0.0.1:22827 ok +[ok]: First server should have role slave after SLAVEOF (102 ms) +[ok]: Data divergence can happen under default conditions (5 ms) +[ok]: Data divergence is allowed on writable replicas (2 ms) +[114/124 done]: integration/replication-4 (21 seconds) +Testing integration/failover +=== (failover external:skip) Starting server 127.0.0.1:22827 ok === () Starting server 127.0.0.1:22829 ok -[ok]: Partial resynchronization is successful even client-output-buffer-limit is less than repl-backlog-size. dualchannel yes (3250 ms) -=== (repl external:skip) Starting server 127.0.0.1:22831 ok -=== () Starting server 127.0.0.1:22833 ok -[ok]: The update of replBufBlock's repl_offset is ok - Regression test for #11666 (7 ms) -[ok]: Replica client-output-buffer size is limited to backlog_limit/16 when no replication data is pending. dualchannel yes (1139 ms) -=== (repl external:skip) Starting server 127.0.0.1:22835 ok +=== () Starting server 127.0.0.1:22831 ok +[ok]: failover command fails without connected replica (1 ms) +[ok]: setup replication for following tests (104 ms) +[ok]: failover command fails with invalid host (1 ms) +[ok]: failover command fails with invalid port (0 ms) +[ok]: failover command fails with just force and timeout (0 ms) +[ok]: failover command fails when sent to a replica (0 ms) +[ok]: failover command fails with force without timeout (0 ms) +[ok]: failover command to specific replica works (1085 ms) +[ok]: failover command to any replica works (678 ms) +[ok]: failover to a replica with force works (477 ms) +[ok]: failover with timeout aborts if replica never catches up (598 ms) +[ok]: failovers can be aborted (66 ms) +[ok]: failover aborts if target rejects sync request (485 ms) +[115/124 done]: integration/failover (5 seconds) +Testing integration/valkey-cli +=== (cli) Starting server 127.0.0.1:22833 ok +[ok]: Interactive CLI: INFO response should be printed raw (101 ms) +[ok]: Interactive CLI: Status reply (102 ms) +[ok]: Interactive CLI: Integer reply (101 ms) +[ok]: Interactive CLI: Bulk reply (102 ms) +[ok]: Interactive CLI: Multi-bulk reply (101 ms) +[ok]: Interactive CLI: Parsing quotes (709 ms) +[ok]: Interactive CLI: Subscribed mode (970 ms) +[ok]: Interactive non-TTY CLI: Subscribed mode (657 ms) +[ok]: Non-interactive TTY CLI: Status reply (19 ms) +[ok]: Non-interactive TTY CLI: Integer reply (16 ms) +[ok]: Non-interactive TTY CLI: Bulk reply (17 ms) +[ok]: Non-interactive TTY CLI: Multi-bulk reply (19 ms) +[ok]: Non-interactive TTY CLI: Read last argument from pipe (39 ms) +[ok]: Non-interactive TTY CLI: Read last argument from file (30 ms) +[ok]: Non-interactive TTY CLI: Escape character in JSON mode (134 ms) +[ok]: Non-interactive non-TTY CLI: Status reply (19 ms) +[ok]: Non-interactive non-TTY CLI: Integer reply (17 ms) +[ok]: Non-interactive non-TTY CLI: Bulk reply (18 ms) +[ok]: Non-interactive non-TTY CLI: Multi-bulk reply (18 ms) +[ok]: Non-interactive non-TTY CLI: Quoted input arguments (17 ms) +[ok]: Non-interactive non-TTY CLI: No accidental unquoting of input arguments (32 ms) +[ok]: Non-interactive non-TTY CLI: Invalid quoted input arguments (37 ms) +[ok]: Non-interactive non-TTY CLI: Read last argument from pipe (44 ms) +[ok]: Non-interactive non-TTY CLI: Read last argument from file (32 ms) +[ok]: Non-interactive non-TTY CLI: Test command-line hinting - latest server (22 ms) +[ok]: Non-interactive non-TTY CLI: Test command-line hinting - no server (9 ms) +[ok]: Non-interactive non-TTY CLI: Test command-line hinting - old server (30 ms) +[ok]: Dumping an RDB - functions only: no (2486 ms) +[ok]: Dumping an RDB - functions only: yes (376 ms) +[ok]: Scan mode (120 ms) +[ok]: Connecting as a replica (2158 ms) +[ok]: Piping raw protocol (838 ms) +[ok]: Options -X with illegal argument (32 ms) +[ok]: DUMP RESTORE with -x option (90 ms) +[ok]: DUMP RESTORE with -X option (93 ms) +[ok]: Valid Connection Scheme: redis:// (16 ms) +[ok]: Valid Connection Scheme: valkey:// (15 ms) +[ok]: Valid Connection Scheme: rediss:// (13 ms) +[ok]: Valid Connection Scheme: valkeys:// (15 ms) +[116/124 done]: integration/valkey-cli (10 seconds) +Testing integration/convert-zipmap-hash-on-load +=== () Starting server 127.0.0.1:22835 ok +[ok]: RDB load zipmap hash: converts to listpack (1 ms) === () Starting server 127.0.0.1:22837 ok -[ok]: Partial resynchronization is successful even client-output-buffer-limit is less than repl-backlog-size. dualchannel no (3255 ms) -=== (repl external:skip) Starting server 127.0.0.1:22839 ok +[ok]: RDB load zipmap hash: converts to hash table when hash-max-ziplist-entries is exceeded (1 ms) +=== () Starting server 127.0.0.1:22839 ok +[ok]: RDB load zipmap hash: converts to hash table when hash-max-ziplist-value is exceeded (1 ms) +[117/124 done]: integration/convert-zipmap-hash-on-load (1 seconds) +Testing integration/logging === () Starting server 127.0.0.1:22841 ok -[ok]: The update of replBufBlock's repl_offset is ok - Regression test for #11666 (6 ms) -[ok]: Replica client-output-buffer size is limited to backlog_limit/16 when no replication data is pending. dualchannel no (1128 ms) -[106/124 done]: integration/replication-buffer (24 seconds) -Testing integration/dismiss-mem -=== (dismiss external:skip) Starting server 127.0.0.1:22843 ok - -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: dismiss all data types memory (1128 ms) - -Waiting for background save to finish... -Waiting for background save to finish... [ok]: dismiss client output buffer (4633 ms) - -Waiting for background save to finish... -Waiting for background save to finish... [ok]: dismiss client query buffer (208 ms) +{3779917:M 22 Nov 2025 03:45:49.583 # valkey 8.0.1 crashed by signal: 6, si_code: 0} 40 +[ok]: Crash report generated on SIGABRT (105 ms) +=== () Starting server 127.0.0.1:22843 ok +{3779942:M 22 Nov 2025 03:45:49.735 # valkey 8.0.1 crashed by signal: 11, si_code: 2} 40 +[ok]: Crash report generated on DEBUG SEGFAULT (7 ms) === () Starting server 127.0.0.1:22845 ok - -Waiting for background save to finish... -Waiting for background save to finish... [ok]: dismiss replication backlog (1338 ms) -[107/124 done]: integration/dismiss-mem (7 seconds) -Testing integration/replication-3 -=== (repl external:skip) Starting server 127.0.0.1:22847 ok -=== () Starting server 127.0.0.1:22849 ok -[ok]: First server should have role slave after SLAVEOF (103 ms) -[ok]: MASTER and SLAVE consistency with expire (3210 ms) -[ok]: Master can replicate command longer than client-query-buffer-limit on replica (59 ms) -[ok]: Slave is able to evict keys created in writable slaves (6005 ms) -[ok]: Writable replica doesn't return expired keys (104 ms) -[ok]: PFCOUNT updates cache on readonly replica (1 ms) -[ok]: PFCOUNT doesn't use expired key on readonly replica (102 ms) -[108/124 done]: integration/replication-3 (11 seconds) -Testing integration/rdb -=== () Starting server 127.0.0.1:22851 ok -[ok]: test old version rdb file (1 ms) -=== () Starting server 127.0.0.1:22853 ok -[ok]: RDB encoding loading test (3 ms) -=== () Starting server 127.0.0.1:22855 ok -[ok]: Server started empty with non-existing RDB file (0 ms) -=== () Starting server 127.0.0.1:22857 ok -[ok]: Server started empty with empty RDB file (1 ms) -=== () Starting server 127.0.0.1:22859 ok -[ok]: Test RDB stream encoding (78 ms) -[ok]: Test RDB stream encoding - sanitize dump (10 ms) +{Received SIGALRM} 38 +[ok]: Stacktraces generated on SIGALRM (108 ms) +[118/124 done]: integration/logging (1 seconds) +Testing integration/aof-multi-part +=== () Starting server 127.0.0.1:22847 +[ok]: Multi Part AOF can't load data when some file missing (121 ms) +=== () Starting server 127.0.0.1:22849 +[ok]: Multi Part AOF can't load data when the sequence not increase monotonically (121 ms) +=== () Starting server 127.0.0.1:22851 +[ok]: Multi Part AOF can't load data when there are blank lines in the manifest file (123 ms) +=== () Starting server 127.0.0.1:22853 +[ok]: Multi Part AOF can't load data when there is a duplicate base file (122 ms) +=== () Starting server 127.0.0.1:22855 +[ok]: Multi Part AOF can't load data when the manifest format is wrong (type unknown) (123 ms) +=== () Starting server 127.0.0.1:22857 +[ok]: Multi Part AOF can't load data when the manifest format is wrong (missing key) (122 ms) +=== () Starting server 127.0.0.1:22859 +[ok]: Multi Part AOF can't load data when the manifest format is wrong (line too short) (120 ms) === () Starting server 127.0.0.1:22861 -[ok]: Server should not start if RDB file can't be open (1 ms) +[ok]: Multi Part AOF can't load data when the manifest format is wrong (line too long) (123 ms) === () Starting server 127.0.0.1:22863 -[ok]: Server should not start if RDB is corrupted (1 ms) -=== () Starting server 127.0.0.1:22865 ok -[ok]: Test FLUSHALL aborts bgsave (242 ms) -[ok]: bgsave resets the change counter (102 ms) +[ok]: Multi Part AOF can't load data when the manifest format is wrong (odd parameter) (119 ms) +=== () Starting server 127.0.0.1:22865 +[ok]: Multi Part AOF can't load data when the manifest file is empty (117 ms) === () Starting server 127.0.0.1:22867 ok -Waiting for process 1670136 to exit... -[ok]: client freed during loading (2141 ms) +[ok]: Multi Part AOF can start when no aof and no manifest (241 ms) === () Starting server 127.0.0.1:22869 ok -[ok]: Test RDB load info (637 ms) +[ok]: Multi Part AOF can start when we have en empty AOF dir (236 ms) === () Starting server 127.0.0.1:22871 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: 929792 -current_save_keys_processed info : 1 -[ok]: Test child sending info (1980 ms) +[ok]: Multi Part AOF can load data discontinuously increasing sequence (233 ms) === () Starting server 127.0.0.1:22873 ok -[ok]: script won't load anymore if it's in rdb (0 ms) +[ok]: Multi Part AOF can load data when manifest add new k-v (236 ms) === () Starting server 127.0.0.1:22875 ok +[ok]: Multi Part AOF can load data when some AOFs are empty (241 ms) +=== () Starting server 127.0.0.1:22877 ok -Waiting for background save to finish... -Waiting for background save to finish... -Waiting for background save to finish... [ok]: failed bgsave prevents writes (196 ms) -[109/124 done]: integration/rdb (7 seconds) -Testing integration/psync2-master-restart -=== (psync2 external:skip) Starting server 127.0.0.1:22877 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) (376 ms) === () Starting server 127.0.0.1:22879 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) (394 ms) === () Starting server 127.0.0.1:22881 ok -[ok]: PSYNC2: Partial resync after Master restart using RDB aux fields when offset is 0 (131 ms) -[ok]: PSYNC2: Partial resync after Master restart using RDB aux fields with data (1136 ms) -[ok]: PSYNC2: Partial resync after Master restart using RDB aux fields with expire (1650 ms) -[ok]: PSYNC2: Full resync after Master restart when too many key expired (1951 ms) -[110/124 done]: integration/psync2-master-restart (7 seconds) -Testing integration/shutdown +[ok]: Multi Part AOF can continue the upgrade from the interrupted upgrade state (246 ms) === () Starting server 127.0.0.1:22883 ok -=== () Starting server 127.0.0.1:22885 ok -[ok]: Shutting down master waits for replica to catch up (sigterm) (1869 ms) +[ok]: Multi Part AOF can be loaded correctly when both server dir and aof dir contain old AOF (253 ms) +=== () Starting server 127.0.0.1:22885 +[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 (125 ms) === () Starting server 127.0.0.1:22887 ok === () Starting server 127.0.0.1:22889 ok -[ok]: Shutting down master waits for replica to catch up (shutdown) (1769 ms) + +Waiting for background AOF rewrite to finish... [ok]: Multi Part AOF can upgrade when when two servers share the same server dir (server1) (87 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) (147 ms) +[ok]: Multi Part AOF can upgrade when when two servers share the same server dir (679 ms) === () Starting server 127.0.0.1:22891 ok + +Waiting for background AOF rewrite to finish... +Waiting for background AOF rewrite to finish... [ok]: Multi Part AOF can handle appendfilename contains whitespaces (361 ms) === () Starting server 127.0.0.1:22893 ok -[ok]: Shutting down master waits for replica timeout (1846 ms) +[ok]: Multi Part AOF can create BASE (RDB format) when server starts from empty (249 ms) === () Starting server 127.0.0.1:22895 ok +[ok]: Multi Part AOF can create BASE (AOF format) when server starts from empty (249 ms) === () Starting server 127.0.0.1:22897 ok -[ok]: Shutting down master waits for replica then fails (1274 ms) -=== () Starting server 127.0.0.1:22899 ok -=== () Starting server 127.0.0.1:22901 ok -[ok]: Shutting down master waits for replica then aborted (527 ms) -[111/124 done]: integration/shutdown (7 seconds) -Testing integration/psync2-pingoff -=== (psync2 external:skip) Starting server 127.0.0.1:22903 ok -=== () Starting server 127.0.0.1:22905 ok -[ok]: PSYNC2 pingoff: setup (1006 ms) -[ok]: PSYNC2 pingoff: write and wait replication (0 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 (1008 ms) -=== (psync2 external:skip) Starting server 127.0.0.1:22907 ok -=== () Starting server 127.0.0.1:22909 ok -=== () Starting server 127.0.0.1:22911 ok -=== () Starting server 127.0.0.1:22913 ok -=== () Starting server 127.0.0.1:22915 ok -[ok]: test various edge cases of repl topology changes with missing pings at the end (3436 ms) -=== (psync2 external:skip) Starting server 127.0.0.1:22917 ok -=== () Starting server 127.0.0.1:22919 ok -=== () Starting server 127.0.0.1:22921 ok -[ok]: Chained replicas disconnect when replica re-connect with the same master (2927 ms) -[112/124 done]: integration/psync2-pingoff (17 seconds) -Testing integration/failover -=== (failover external:skip) Starting server 127.0.0.1:22923 ok -=== () Starting server 127.0.0.1:22925 ok -=== () Starting server 127.0.0.1:22927 ok -[ok]: failover command fails without connected replica (1 ms) -[ok]: setup replication for following tests (102 ms) -[ok]: failover command fails with invalid host (1 ms) -[ok]: failover command fails with invalid port (0 ms) -[ok]: failover command fails with just force and timeout (0 ms) -[ok]: failover command fails when sent to a replica (0 ms) -[ok]: failover command fails with force without timeout (1 ms) -[ok]: failover command to specific replica works (1081 ms) -[ok]: failover command to any replica works (671 ms) -[ok]: failover to a replica with force works (470 ms) -[ok]: failover with timeout aborts if replica never catches up (596 ms) -[ok]: failovers can be aborted (61 ms) -[ok]: failover aborts if target rejects sync request (471 ms) -[113/124 done]: integration/failover (4 seconds) -Testing integration/convert-zipmap-hash-on-load -=== () Starting server 127.0.0.1:22929 ok -[ok]: RDB load zipmap hash: converts to listpack (1 ms) -=== () Starting server 127.0.0.1:22931 ok -[ok]: RDB load zipmap hash: converts to hash table when hash-max-ziplist-entries is exceeded (1 ms) -=== () Starting server 127.0.0.1:22933 ok -[ok]: RDB load zipmap hash: converts to hash table when hash-max-ziplist-value is exceeded (0 ms) -[114/124 done]: integration/convert-zipmap-hash-on-load (1 seconds) -Testing integration/psync2-reg -=== (psync2 external:skip) Starting server 127.0.0.1:22935 ok -=== () Starting server 127.0.0.1:22937 ok -=== () Starting server 127.0.0.1:22939 ok -[ok]: PSYNC2 #3899 regression: setup (1009 ms) -[ok]: PSYNC2 #3899 regression: kill first replica (0 ms) -[ok]: PSYNC2 #3899 regression: kill chained replica (1 ms) -[ok]: PSYNC2 #3899 regression: kill chained replica (0 ms) -[ok]: PSYNC2 #3899 regression: kill 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 (1 ms) -[ok]: PSYNC2 #3899 regression: kill first replica (0 ms) -[ok]: PSYNC2 #3899 regression: kill first replica (0 ms) -[ok]: PSYNC2 #3899 regression: kill chained replica (0 ms) -[ok]: PSYNC2 #3899 regression: kill chained replica (1 ms) -[ok]: PSYNC2 #3899 regression: kill chained replica (1 ms) -[ok]: PSYNC2 #3899 regression: kill first replica (1 ms) -[ok]: PSYNC2 #3899 regression: kill chained replica (1 ms) -[ok]: PSYNC2 #3899 regression: verify consistency (12 ms) -[115/124 done]: integration/psync2-reg (23 seconds) -Testing integration/logging -=== () Starting server 127.0.0.1:22941 ok -{1671921:M 18 Oct 2024 17:58:36.288 # valkey 8.0.1 crashed by signal: 6, si_code: 0} 40 -[ok]: Crash report generated on SIGABRT (104 ms) -=== () Starting server 127.0.0.1:22943 ok -{1671946:M 18 Oct 2024 17:58:36.429 # valkey 8.0.1 crashed by signal: 11, si_code: 2} 40 -[ok]: Crash report generated on DEBUG SEGFAULT (6 ms) -=== () Starting server 127.0.0.1:22945 ok -{Received SIGALRM} 38 -[ok]: Stacktraces generated on SIGALRM (105 ms) -[116/124 done]: integration/logging (0 seconds) -Testing integration/valkey-cli -=== (cli) Starting server 127.0.0.1:22947 ok -[ok]: Interactive CLI: INFO response should be printed raw (103 ms) -[ok]: Interactive CLI: Status reply (101 ms) -[ok]: Interactive CLI: Integer reply (100 ms) -[ok]: Interactive CLI: Bulk reply (101 ms) -[ok]: Interactive CLI: Multi-bulk reply (101 ms) -[ok]: Interactive CLI: Parsing quotes (709 ms) -[ok]: Interactive CLI: Subscribed mode (970 ms) -[ok]: Interactive non-TTY CLI: Subscribed mode (667 ms) -[ok]: Non-interactive TTY CLI: Status reply (13 ms) -[ok]: Non-interactive TTY CLI: Integer reply (13 ms) -[ok]: Non-interactive TTY CLI: Bulk reply (13 ms) -[ok]: Non-interactive TTY CLI: Multi-bulk reply (14 ms) -[ok]: Non-interactive TTY CLI: Read last argument from pipe (29 ms) -[ok]: Non-interactive TTY CLI: Read last argument from file (26 ms) -[ok]: Non-interactive TTY CLI: Escape character in JSON mode (115 ms) -[ok]: Non-interactive non-TTY CLI: Status reply (12 ms) -[ok]: Non-interactive non-TTY CLI: Integer reply (13 ms) -[ok]: Non-interactive non-TTY CLI: Bulk reply (12 ms) -[ok]: Non-interactive non-TTY CLI: Multi-bulk reply (15 ms) -[ok]: Non-interactive non-TTY CLI: Quoted input arguments (11 ms) -[ok]: Non-interactive non-TTY CLI: No accidental unquoting of input arguments (25 ms) -[ok]: Non-interactive non-TTY CLI: Invalid quoted input arguments (26 ms) -[ok]: Non-interactive non-TTY CLI: Read last argument from pipe (31 ms) -[ok]: Non-interactive non-TTY CLI: Read last argument from file (27 ms) -[ok]: Non-interactive non-TTY CLI: Test command-line hinting - latest server (14 ms) -[ok]: Non-interactive non-TTY CLI: Test command-line hinting - no server (7 ms) -[ok]: Non-interactive non-TTY CLI: Test command-line hinting - old server (20 ms) -[ok]: Dumping an RDB - functions only: no (2150 ms) -[ok]: Dumping an RDB - functions only: yes (339 ms) -[ok]: Scan mode (87 ms) -[ok]: Connecting as a replica (2143 ms) -[ok]: Piping raw protocol (553 ms) -[ok]: Options -X with illegal argument (26 ms) -[ok]: DUMP RESTORE with -x option (77 ms) -[ok]: DUMP RESTORE with -X option (78 ms) -[ok]: Valid Connection Scheme: redis:// (12 ms) -[ok]: Valid Connection Scheme: valkey:// (14 ms) -[ok]: Valid Connection Scheme: rediss:// (13 ms) -[ok]: Valid Connection Scheme: valkeys:// (12 ms) -[117/124 done]: integration/valkey-cli (9 seconds) -Testing integration/aof-multi-part -=== () Starting server 127.0.0.1:22949 -[ok]: Multi Part AOF can't load data when some file missing (115 ms) -=== () Starting server 127.0.0.1:22951 -[ok]: Multi Part AOF can't load data when the sequence not increase monotonically (116 ms) -=== () Starting server 127.0.0.1:22953 -[ok]: Multi Part AOF can't load data when there are blank lines in the manifest file (115 ms) -=== () Starting server 127.0.0.1:22955 -[ok]: Multi Part AOF can't load data when there is a duplicate base file (115 ms) -=== () Starting server 127.0.0.1:22957 -[ok]: Multi Part AOF can't load data when the manifest format is wrong (type unknown) (116 ms) -=== () Starting server 127.0.0.1:22959 -[ok]: Multi Part AOF can't load data when the manifest format is wrong (missing key) (115 ms) -=== () Starting server 127.0.0.1:22961 -[ok]: Multi Part AOF can't load data when the manifest format is wrong (line too short) (115 ms) -=== () Starting server 127.0.0.1:22963 -[ok]: Multi Part AOF can't load data when the manifest format is wrong (line too long) (115 ms) -=== () Starting server 127.0.0.1:22965 -[ok]: Multi Part AOF can't load data when the manifest format is wrong (odd parameter) (116 ms) -=== () Starting server 127.0.0.1:22967 -[ok]: Multi Part AOF can't load data when the manifest file is empty (115 ms) -=== () Starting server 127.0.0.1:22969 ok -[ok]: Multi Part AOF can start when no aof and no manifest (232 ms) -=== () Starting server 127.0.0.1:22971 ok -[ok]: Multi Part AOF can start when we have en empty AOF dir (238 ms) -=== () Starting server 127.0.0.1:22973 ok -[ok]: Multi Part AOF can load data discontinuously increasing sequence (231 ms) -=== () Starting server 127.0.0.1:22975 ok -[ok]: Multi Part AOF can load data when manifest add new k-v (231 ms) -=== () Starting server 127.0.0.1:22977 ok -[ok]: Multi Part AOF can load data when some AOFs are empty (234 ms) -=== () Starting server 127.0.0.1:22979 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) (358 ms) -=== () Starting server 127.0.0.1:22981 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) (357 ms) -=== () Starting server 127.0.0.1:22983 ok -[ok]: Multi Part AOF can continue the upgrade from the interrupted upgrade state (233 ms) -=== () Starting server 127.0.0.1:22985 ok -[ok]: Multi Part AOF can be loaded correctly when both server dir and aof dir contain old AOF (231 ms) -=== () Starting server 127.0.0.1:22987 -[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 (114 ms) -=== () Starting server 127.0.0.1:22989 ok -=== () Starting server 127.0.0.1:22991 ok - -Waiting for background AOF rewrite to finish... [ok]: Multi Part AOF can upgrade when when two servers share the same server dir (server1) (86 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) (127 ms) -[ok]: Multi Part AOF can upgrade when when two servers share the same server dir (655 ms) -=== () Starting server 127.0.0.1:22993 ok - -Waiting for background AOF rewrite to finish... [ok]: Multi Part AOF can handle appendfilename contains whitespaces (342 ms) -=== () Starting server 127.0.0.1:22995 ok -[ok]: Multi Part AOF can create BASE (RDB format) when server starts from empty (242 ms) -=== () Starting server 127.0.0.1:22997 ok -[ok]: Multi Part AOF can create BASE (AOF format) when server starts from empty (242 ms) -=== () Starting server 127.0.0.1:22999 ok - Waiting for background AOF rewrite to finish... Waiting for background AOF rewrite to finish... Waiting for background AOF rewrite to finish... @@ -6206,15 +6137,14 @@ Waiting for background AOF rewrite to finish... Waiting for background AOF rewrite to finish... Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: Changing aof-use-rdb-preamble during rewrite process (1276 ms) -=== (Multi Part AOF) Starting server 127.0.0.1:23001 ok +Waiting for background AOF rewrite to finish... [ok]: Changing aof-use-rdb-preamble during rewrite process (1362 ms) +=== (Multi Part AOF) Starting server 127.0.0.1:22899 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 (535 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF enable will create manifest file (488 ms) Waiting for background AOF rewrite to finish... Waiting for background AOF rewrite to finish... @@ -6222,35 +6152,28 @@ 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 (1346 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF multiple rewrite failures will open multiple INCR AOFs (1107 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 (495 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 enable/disable auto gc (325 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite doesn't open new aof when AOF turn off (454 ms) Waiting for background AOF rewrite to finish... Waiting for background AOF rewrite to finish... Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: AOF can produce consecutive sequence number after reload (232 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF enable/disable auto gc (226 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 enable during BGSAVE will not write data util AOFRW finish (514 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF can produce consecutive sequence number after reload (334 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 (332 ms) + Waiting for background AOF rewrite to finish... Waiting for background AOF rewrite to finish... Waiting for background AOF rewrite to finish... @@ -6258,406 +6181,519 @@ 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 (643 ms) -=== () Starting server 127.0.0.1:23003 ok +Waiting for background AOF rewrite to finish... [ok]: AOF will trigger limit when AOFRW fails many times (716 ms) +=== () Starting server 127.0.0.1:22901 ok Waiting for background AOF rewrite to finish... Waiting for background AOF rewrite to finish... Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: AOF will open a temporary INCR AOF to accumulate data until the first AOFRW success when AOF is dynamically enabled (2896 ms) -[118/124 done]: integration/aof-multi-part (14 seconds) -Testing integration/convert-ziplist-zset-on-load +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 (2364 ms) +[119/124 done]: integration/aof-multi-part (13 seconds) +Testing integration/corrupt-dump +=== () Starting server 127.0.0.1:22903 ok +[ok]: corrupt payload: #7445 - with sanitize (242 ms) +=== () Starting server 127.0.0.1:22905 ok +[ok]: corrupt payload: hash with valid zip list header, invalid entry len (228 ms) +=== () Starting server 127.0.0.1:22907 ok +[ok]: corrupt payload: invalid zlbytes header (231 ms) +=== () Starting server 127.0.0.1:22909 ok +[ok]: corrupt payload: valid zipped hash header, dup records (235 ms) +=== () Starting server 127.0.0.1:22911 ok +[ok]: corrupt payload: quicklist big ziplist prev len (234 ms) +=== () Starting server 127.0.0.1:22913 ok +[ok]: corrupt payload: quicklist small ziplist prev len (230 ms) +=== () Starting server 127.0.0.1:22915 ok +[ok]: corrupt payload: quicklist ziplist wrong count (240 ms) +=== () Starting server 127.0.0.1:22917 ok +[ok]: corrupt payload: #3080 - quicklist (239 ms) +=== () Starting server 127.0.0.1:22919 ok +[ok]: corrupt payload: quicklist with empty ziplist (232 ms) +=== () Starting server 127.0.0.1:22921 ok +[ok]: corrupt payload: quicklist encoded_len is 0 (240 ms) +=== () Starting server 127.0.0.1:22923 ok +[ok]: corrupt payload: quicklist listpack entry start with EOF (231 ms) +=== () Starting server 127.0.0.1:22925 ok +[ok]: corrupt payload: #3080 - ziplist (228 ms) +=== () Starting server 127.0.0.1:22927 +[ok]: corrupt payload: load corrupted rdb with no CRC - #3505 (123 ms) +=== () Starting server 127.0.0.1:22929 ok +[ok]: corrupt payload: load corrupted rdb with empty keys (227 ms) +=== () Starting server 127.0.0.1:22931 ok +[ok]: corrupt payload: load corrupted rdb with empty keys (237 ms) +=== () Starting server 127.0.0.1:22933 ok +[ok]: corrupt payload: listpack invalid size header (231 ms) +=== () Starting server 127.0.0.1:22935 ok +[ok]: corrupt payload: listpack too long entry len (158 ms) +=== () Starting server 127.0.0.1:22937 ok +[ok]: corrupt payload: listpack very long entry len (152 ms) +=== () Starting server 127.0.0.1:22939 ok +[ok]: corrupt payload: listpack too long entry prev len (236 ms) +=== () Starting server 127.0.0.1:22941 ok +[ok]: corrupt payload: stream with duplicate consumers (231 ms) +=== () Starting server 127.0.0.1:22943 ok +[ok]: corrupt payload: hash ziplist with duplicate records (238 ms) +=== () Starting server 127.0.0.1:22945 ok +[ok]: corrupt payload: hash listpack with duplicate records (241 ms) +=== () Starting server 127.0.0.1:22947 ok +[ok]: corrupt payload: hash listpack with duplicate records - convert (150 ms) +=== () Starting server 127.0.0.1:22949 ok +[ok]: corrupt payload: hash ziplist uneven record count (225 ms) +=== () Starting server 127.0.0.1:22951 ok +[ok]: corrupt payload: hash duplicate records (236 ms) +=== () Starting server 127.0.0.1:22953 ok +[ok]: corrupt payload: hash empty zipmap (244 ms) +=== () Starting server 127.0.0.1:22955 ok +[ok]: corrupt payload: fuzzer findings - NPD in streamIteratorGetID (157 ms) +=== () Starting server 127.0.0.1:22957 ok +[ok]: corrupt payload: fuzzer findings - listpack NPD on invalid stream (156 ms) +=== () Starting server 127.0.0.1:22959 ok +[ok]: corrupt payload: fuzzer findings - NPD in quicklistIndex (235 ms) +=== () Starting server 127.0.0.1:22961 ok +[ok]: corrupt payload: fuzzer findings - encoded entry header reach outside the allocation (236 ms) +=== () Starting server 127.0.0.1:22963 ok +[ok]: corrupt payload: fuzzer findings - invalid ziplist encoding (236 ms) +=== () Starting server 127.0.0.1:22965 ok +[ok]: corrupt payload: fuzzer findings - hash crash (235 ms) +=== () Starting server 127.0.0.1:22967 ok +[ok]: corrupt payload: fuzzer findings - uneven entry count in hash (238 ms) +=== () Starting server 127.0.0.1:22969 ok +[ok]: corrupt payload: fuzzer findings - invalid read in lzf_decompress (242 ms) +=== () Starting server 127.0.0.1:22971 ok +[ok]: corrupt payload: fuzzer findings - leak in rdbloading due to dup entry in set (234 ms) +=== () Starting server 127.0.0.1:22973 ok +[ok]: corrupt payload: fuzzer findings - empty intset (235 ms) +=== () Starting server 127.0.0.1:22975 ok +[ok]: corrupt payload: fuzzer findings - zset ziplist entry lensize is 0 (235 ms) +=== () Starting server 127.0.0.1:22977 ok +[ok]: corrupt payload: fuzzer findings - valgrind ziplist prevlen reaches outside the ziplist (232 ms) +=== () Starting server 127.0.0.1:22979 ok +[ok]: corrupt payload: fuzzer findings - valgrind - bad rdbLoadDoubleValue (227 ms) +=== () Starting server 127.0.0.1:22981 ok +[ok]: corrupt payload: fuzzer findings - valgrind ziplist prev too big (239 ms) +=== () Starting server 127.0.0.1:22983 ok +[ok]: corrupt payload: fuzzer findings - lzf decompression fails, avoid valgrind invalid read (231 ms) +=== () Starting server 127.0.0.1:22985 ok +[ok]: corrupt payload: fuzzer findings - stream bad lp_count (228 ms) +=== () Starting server 127.0.0.1:22987 ok +[ok]: corrupt payload: fuzzer findings - stream bad lp_count - unsanitized (157 ms) +=== () Starting server 127.0.0.1:22989 ok +[ok]: corrupt payload: fuzzer findings - stream integrity check issue (242 ms) +=== () Starting server 127.0.0.1:22991 ok +[ok]: corrupt payload: fuzzer findings - infinite loop (166 ms) +=== () Starting server 127.0.0.1:22993 ok +[ok]: corrupt payload: fuzzer findings - hash ziplist too long entry len (232 ms) +=== () Starting server 127.0.0.1:22995 ok +[ok]: corrupt payload: OOM in rdbGenericLoadStringObject (238 ms) +=== () Starting server 127.0.0.1:22997 ok +[ok]: corrupt payload: fuzzer findings - OOM in dictExpand (233 ms) +=== () Starting server 127.0.0.1:22999 ok +[ok]: corrupt payload: fuzzer findings - zset ziplist invalid tail offset (257 ms) +=== () Starting server 127.0.0.1:23001 ok +[ok]: corrupt payload: fuzzer findings - negative reply length (150 ms) +=== () Starting server 127.0.0.1:23003 ok +[ok]: corrupt payload: fuzzer findings - valgrind negative malloc (228 ms) === () Starting server 127.0.0.1:23005 ok -[ok]: RDB load ziplist zset: converts to listpack when RDB loading (0 ms) +[ok]: corrupt payload: fuzzer findings - valgrind invalid read (240 ms) === () Starting server 127.0.0.1:23007 ok -[ok]: RDB load ziplist zset: converts to skiplist when zset-max-ziplist-entries is exceeded (0 ms) -[119/124 done]: integration/convert-ziplist-zset-on-load (1 seconds) -Testing integration/aof +[ok]: corrupt payload: fuzzer findings - empty hash ziplist (231 ms) === () Starting server 127.0.0.1:23009 ok -[ok]: Unfinished MULTI: Server should start if load-truncated is yes (1 ms) +[ok]: corrupt payload: fuzzer findings - stream with no records (150 ms) === () Starting server 127.0.0.1:23011 ok -[ok]: Short read: Server should start if load-truncated is yes (1 ms) -[ok]: Truncated AOF loaded: we expect foo to be equal to 5 (5 ms) -[ok]: Append a new command after loading an incomplete AOF (0 ms) +[ok]: corrupt payload: fuzzer findings - quicklist ziplist tail followed by extra data which start with 0xff (225 ms) === () Starting server 127.0.0.1:23013 ok -[ok]: Short read + command: Server should start (1 ms) -[ok]: Truncated AOF loaded: we expect foo to be equal to 6 now (4 ms) -=== () Starting server 127.0.0.1:23015 -[ok]: Bad format: Server should have logged an error (1 ms) -=== () Starting server 127.0.0.1:23017 -[ok]: Unfinished MULTI: Server should have logged an error (1 ms) -=== () Starting server 127.0.0.1:23019 -[ok]: Short read: Server should have logged an error (1 ms) -[ok]: Short read: Utility should confirm the AOF is not valid (11 ms) -[ok]: Short read: Utility should show the abnormal line num in AOF (8 ms) -[ok]: Short read: Utility should be able to fix the AOF (11 ms) +[ok]: corrupt payload: fuzzer findings - dict init to huge size (226 ms) +=== () Starting server 127.0.0.1:23015 ok +[ok]: corrupt payload: fuzzer findings - huge string (226 ms) +=== () Starting server 127.0.0.1:23017 ok +[ok]: corrupt payload: fuzzer findings - stream PEL without consumer (228 ms) +=== () Starting server 127.0.0.1:23019 ok +[ok]: corrupt payload: fuzzer findings - stream listpack valgrind issue (153 ms) === () Starting server 127.0.0.1:23021 ok -[ok]: Fixed AOF: Server should have been started (1 ms) -[ok]: Fixed AOF: Keyspace should contain values that were parseable (5 ms) +[ok]: corrupt payload: fuzzer findings - stream with bad lpFirst (226 ms) === () Starting server 127.0.0.1:23023 ok -[ok]: AOF+SPOP: Server should have been started (1 ms) -[ok]: AOF+SPOP: Set should have 1 member (5 ms) +[ok]: corrupt payload: fuzzer findings - stream listpack lpPrev valgrind issue (157 ms) === () Starting server 127.0.0.1:23025 ok -[ok]: AOF+SPOP: Server should have been started (1 ms) -[ok]: AOF+SPOP: Set should have 1 member (4 ms) +[ok]: corrupt payload: fuzzer findings - stream with non-integer entry id (236 ms) === () Starting server 127.0.0.1:23027 ok -[ok]: AOF+EXPIRE: Server should have been started (1 ms) -[ok]: AOF+EXPIRE: List should be empty (4 ms) +[ok]: corrupt payload: fuzzer findings - empty quicklist (231 ms) === () Starting server 127.0.0.1:23029 ok -[ok]: Server should not try to convert DEL into EXPIREAT for EXPIRE -1 (0 ms) +[ok]: corrupt payload: fuzzer findings - empty zset (226 ms) === () Starting server 127.0.0.1:23031 ok -[ok]: AOF fsync always barrier issue (5545 ms) +[ok]: corrupt payload: fuzzer findings - hash with len of 0 (253 ms) === () Starting server 127.0.0.1:23033 ok -[ok]: GETEX should not append to AOF (0 ms) -=== () Starting server 127.0.0.1:23035 -[ok]: Unknown command: Server should have logged an error (2 ms) +[ok]: corrupt payload: fuzzer findings - hash listpack first element too long entry len (232 ms) +=== () Starting server 127.0.0.1:23035 ok +[ok]: corrupt payload: fuzzer findings - stream double free listpack when insert dup node to rax returns 0 (244 ms) === () Starting server 127.0.0.1:23037 ok -[ok]: AOF+LMPOP/BLMPOP: pop elements from the list (109 ms) +[ok]: corrupt payload: fuzzer findings - LCS OOM (231 ms) === () Starting server 127.0.0.1:23039 ok -[ok]: AOF+LMPOP/BLMPOP: after pop elements from the list (5 ms) +[ok]: corrupt payload: fuzzer findings - gcc asan reports false leak on assert (157 ms) === () Starting server 127.0.0.1:23041 ok -[ok]: AOF+ZMPOP/BZMPOP: pop elements from the zset (110 ms) +[ok]: corrupt payload: fuzzer findings - lpFind invalid access (153 ms) === () Starting server 127.0.0.1:23043 ok -[ok]: AOF+ZMPOP/BZMPOP: after pop elements from the zset (5 ms) +[ok]: corrupt payload: fuzzer findings - invalid access in ziplist tail prevlen decoding (229 ms) === () Starting server 127.0.0.1:23045 ok - -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: Generate timestamp annotations in AOF (351 ms) +[ok]: corrupt payload: fuzzer findings - zset zslInsert with a NAN score (229 ms) === () Starting server 127.0.0.1:23047 ok -[ok]: Successfully load AOF which has timestamp annotations inside (4 ms) +[ok]: corrupt payload: fuzzer findings - streamLastValidID panic (242 ms) === () Starting server 127.0.0.1:23049 ok +[ok]: corrupt payload: fuzzer findings - valgrind fishy value warning (232 ms) === () Starting server 127.0.0.1:23051 ok +[ok]: corrupt payload: fuzzer findings - empty set listpack (235 ms) === () Starting server 127.0.0.1:23053 ok -[ok]: Truncate AOF to specific timestamp (713 ms) -=== () Starting server 127.0.0.1:23055 ok -[ok]: EVAL timeout with slow verbatim Lua script from AOF (837 ms) +[ok]: corrupt payload: fuzzer findings - set with duplicate elements causes sdiff to hang (229 ms) +[120/124 done]: integration/corrupt-dump (17 seconds) +Testing integration/replication-psync +=== (repl) Starting server 127.0.0.1:23055 ok === () Starting server 127.0.0.1:23057 ok -[ok]: EVAL can process writes from AOF in read-only replicas (309 ms) -[ok]: Test valkey-check-aof for old style resp AOF (8 ms) -[ok]: Test valkey-check-aof for old style resp AOF - has data in the same format as manifest (7 ms) -[ok]: Test valkey-check-aof for old style rdb-preamble AOF (7 ms) -[ok]: Test valkey-check-aof for Multi Part AOF with resp AOF base (8 ms) -[ok]: Test valkey-check-aof for Multi Part AOF with rdb-preamble AOF base (10 ms) -[ok]: Test valkey-check-aof for Multi Part AOF contains a format error (58 ms) -[ok]: Test valkey-check-aof only truncates the last file for Multi Part AOF in fix mode (46 ms) -[ok]: Test valkey-check-aof only truncates the last file for Multi Part AOF in truncate-to-timestamp mode (9 ms) -=== () Starting server 127.0.0.1:23059 ok -[ok]: FLUSHDB / FLUSHALL should persist in AOF (54 ms) +[ok]: Slave should be able to synchronize with the master (102 ms) +[ok]: Detect write load to master (1004 ms) +[ok]: Test replication partial resync: no reconnection, just sync (diskless: no, disabled, dual-channel: yes, reconnect: 0) (32 ms) +=== (repl) Starting server 127.0.0.1:23059 ok === () Starting server 127.0.0.1:23061 ok -[ok]: Turning appendonly on and off within a transaction (7 ms) -=== () Starting server 127.0.0.1:23063 ok -[ok]: Test cluster slots / cluster shards in aof won't crash (236 ms) -[120/124 done]: integration/aof (12 seconds) -Testing integration/block-repl -=== (repl external:skip) Starting server 127.0.0.1:23065 ok -=== () Starting server 127.0.0.1:23067 ok -[ok]: First server should have role slave after SLAVEOF (1005 ms) -[ok]: Test replication with blocking lists and sorted sets operations (25007 ms) -[121/124 done]: integration/block-repl (27 seconds) -Testing integration/aof-race +[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 psync (diskless: no, disabled, dual-channel: yes, reconnect: 1) (6205 ms) +=== (repl) Starting server 127.0.0.1:23063 ok +=== () Starting server 127.0.0.1:23065 ok +[ok]: Slave should be able to synchronize with the master (102 ms) +[ok]: Detect write load to master (1004 ms) +[ok]: Test replication partial resync: no backlog (diskless: no, disabled, dual-channel: yes, reconnect: 1) (7764 ms) +=== (repl) Starting server 127.0.0.1:23067 ok === () Starting server 127.0.0.1:23069 ok -=== () Starting server 127.0.0.1:23071 ok -[122/124 done]: integration/aof-race (0 seconds) -Testing integration/corrupt-dump +[ok]: Slave should be able to synchronize with the master (102 ms) +[ok]: Detect write load to master (1004 ms) +[ok]: Test replication partial resync: ok after delay (diskless: no, disabled, dual-channel: yes, reconnect: 1) (9274 ms) +=== (repl) Starting server 127.0.0.1:23071 ok === () Starting server 127.0.0.1:23073 ok -[ok]: corrupt payload: #7445 - with sanitize (225 ms) -=== () Starting server 127.0.0.1:23075 ok -[ok]: corrupt payload: hash with valid zip list header, invalid entry len (225 ms) +[ok]: Slave should be able to synchronize with the master (101 ms) +[ok]: Detect write load to master (1003 ms) +[ok]: Test replication partial resync: backlog expired (diskless: no, disabled, dual-channel: yes, reconnect: 1) (9298 ms) +=== (repl) Starting server 127.0.0.1:23075 ok === () Starting server 127.0.0.1:23077 ok -[ok]: corrupt payload: invalid zlbytes header (223 ms) -=== () Starting server 127.0.0.1:23079 ok -[ok]: corrupt payload: valid zipped hash header, dup records (223 ms) +[ok]: Slave should be able to synchronize with the master (102 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) (34 ms) +=== (repl) Starting server 127.0.0.1:23079 ok === () Starting server 127.0.0.1:23081 ok -[ok]: corrupt payload: quicklist big ziplist prev len (224 ms) -=== () Starting server 127.0.0.1:23083 ok -[ok]: corrupt payload: quicklist small ziplist prev len (225 ms) +[ok]: Slave should be able to synchronize with the master (102 ms) +[ok]: Detect write load to master (1004 ms) +[ok]: Test replication partial resync: ok psync (diskless: no, disabled, dual-channel: no, reconnect: 1) (6219 ms) +=== (repl) Starting server 127.0.0.1:23083 ok === () Starting server 127.0.0.1:23085 ok -[ok]: corrupt payload: quicklist ziplist wrong count (225 ms) -=== () Starting server 127.0.0.1:23087 ok -[ok]: corrupt payload: #3080 - quicklist (228 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: no backlog (diskless: no, disabled, dual-channel: no, reconnect: 1) (7771 ms) +=== (repl) Starting server 127.0.0.1:23087 ok === () Starting server 127.0.0.1:23089 ok -[ok]: corrupt payload: quicklist with empty ziplist (226 ms) -=== () Starting server 127.0.0.1:23091 ok -[ok]: corrupt payload: quicklist encoded_len is 0 (223 ms) +[ok]: Slave should be able to synchronize with the master (102 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) (9278 ms) +=== (repl) Starting server 127.0.0.1:23091 ok === () Starting server 127.0.0.1:23093 ok -[ok]: corrupt payload: quicklist listpack entry start with EOF (224 ms) -=== () Starting server 127.0.0.1:23095 ok -[ok]: corrupt payload: #3080 - ziplist (225 ms) -=== () Starting server 127.0.0.1:23097 -[ok]: corrupt payload: load corrupted rdb with no CRC - #3505 (115 ms) -=== () Starting server 127.0.0.1:23099 ok -[ok]: corrupt payload: load corrupted rdb with empty keys (223 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: backlog expired (diskless: no, disabled, dual-channel: no, reconnect: 1) (9964 ms) +=== (repl) Starting server 127.0.0.1:23095 ok +=== () Starting server 127.0.0.1:23097 ok +[ok]: Slave should be able to synchronize with the master (1520 ms) +[ok]: Detect write load to master (0 ms) +[ok]: Test replication partial resync: no reconnection, just sync (diskless: no, swapdb, dual-channel: yes, reconnect: 0) (48 ms) +=== (repl) Starting server 127.0.0.1:23099 ok === () Starting server 127.0.0.1:23101 ok -[ok]: corrupt payload: load corrupted rdb with empty keys (225 ms) -=== () Starting server 127.0.0.1:23103 ok -[ok]: corrupt payload: listpack invalid size header (224 ms) +[ok]: Slave should be able to synchronize with the master (102 ms) +[ok]: Detect write load to master (1004 ms) +[ok]: Test replication partial resync: ok psync (diskless: no, swapdb, dual-channel: yes, reconnect: 1) (6218 ms) +=== (repl) Starting server 127.0.0.1:23103 ok === () Starting server 127.0.0.1:23105 ok -[ok]: corrupt payload: listpack too long entry len (141 ms) -=== () Starting server 127.0.0.1:23107 ok -[ok]: corrupt payload: listpack very long entry len (141 ms) +[ok]: Slave should be able to synchronize with the master (203 ms) +[ok]: Detect write load to master (0 ms) +[ok]: Test replication partial resync: no backlog (diskless: no, swapdb, dual-channel: yes, reconnect: 1) (7738 ms) +=== (repl) Starting server 127.0.0.1:23107 ok === () Starting server 127.0.0.1:23109 ok -[ok]: corrupt payload: listpack too long entry prev len (223 ms) -=== () Starting server 127.0.0.1:23111 ok -[ok]: corrupt payload: stream with duplicate consumers (226 ms) +[ok]: Slave should be able to synchronize with the master (407 ms) +[ok]: Detect write load to master (0 ms) +[ok]: Test replication partial resync: ok after delay (diskless: no, swapdb, dual-channel: yes, reconnect: 1) (9249 ms) +=== (repl) Starting server 127.0.0.1:23111 ok === () Starting server 127.0.0.1:23113 ok -[ok]: corrupt payload: hash ziplist with duplicate records (225 ms) -=== () Starting server 127.0.0.1:23115 ok -[ok]: corrupt payload: hash listpack with duplicate records (223 ms) +[ok]: Slave should be able to synchronize with the master (917 ms) +[ok]: Detect write load to master (0 ms) +[ok]: Test replication partial resync: backlog expired (diskless: no, swapdb, dual-channel: yes, reconnect: 1) (9301 ms) +=== (repl) Starting server 127.0.0.1:23115 ok === () Starting server 127.0.0.1:23117 ok -[ok]: corrupt payload: hash listpack with duplicate records - convert (142 ms) -=== () Starting server 127.0.0.1:23119 ok -[ok]: corrupt payload: hash ziplist uneven record count (223 ms) +[ok]: Slave should be able to synchronize with the master (914 ms) +[ok]: Detect write load to master (0 ms) +[ok]: Test replication partial resync: no reconnection, just sync (diskless: no, swapdb, dual-channel: no, reconnect: 0) (32 ms) +=== (repl) Starting server 127.0.0.1:23119 ok === () Starting server 127.0.0.1:23121 ok -[ok]: corrupt payload: hash duplicate records (225 ms) -=== () Starting server 127.0.0.1:23123 ok -[ok]: corrupt payload: hash empty zipmap (225 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: no, swapdb, dual-channel: no, reconnect: 1) (6238 ms) +=== (repl) Starting server 127.0.0.1:23123 ok === () Starting server 127.0.0.1:23125 ok -[ok]: corrupt payload: fuzzer findings - NPD in streamIteratorGetID (141 ms) -=== () Starting server 127.0.0.1:23127 ok -[ok]: corrupt payload: fuzzer findings - listpack NPD on invalid stream (141 ms) +[ok]: Slave should be able to synchronize with the master (306 ms) +[ok]: Detect write load to master (1 ms) +[ok]: Test replication partial resync: no backlog (diskless: no, swapdb, dual-channel: no, reconnect: 1) (7762 ms) +=== (repl) Starting server 127.0.0.1:23127 ok === () Starting server 127.0.0.1:23129 ok -[ok]: corrupt payload: fuzzer findings - NPD in quicklistIndex (225 ms) -=== () Starting server 127.0.0.1:23131 ok -[ok]: corrupt payload: fuzzer findings - encoded entry header reach outside the allocation (226 ms) +[ok]: Slave should be able to synchronize with the master (102 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) (9231 ms) +=== (repl) Starting server 127.0.0.1:23131 ok === () Starting server 127.0.0.1:23133 ok -[ok]: corrupt payload: fuzzer findings - invalid ziplist encoding (227 ms) -=== () Starting server 127.0.0.1:23135 ok -[ok]: corrupt payload: fuzzer findings - hash crash (226 ms) +[ok]: Slave should be able to synchronize with the master (609 ms) +[ok]: Detect write load to master (0 ms) +[ok]: Test replication partial resync: backlog expired (diskless: no, swapdb, dual-channel: no, reconnect: 1) (9282 ms) +=== (repl) Starting server 127.0.0.1:23135 ok === () Starting server 127.0.0.1:23137 ok -[ok]: corrupt payload: fuzzer findings - uneven entry count in hash (227 ms) -=== () Starting server 127.0.0.1:23139 ok -[ok]: corrupt payload: fuzzer findings - invalid read in lzf_decompress (224 ms) +[ok]: Slave should be able to synchronize with the master (1322 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) (171 ms) +=== (repl) Starting server 127.0.0.1:23139 ok === () Starting server 127.0.0.1:23141 ok -[ok]: corrupt payload: fuzzer findings - leak in rdbloading due to dup entry in set (227 ms) -=== () Starting server 127.0.0.1:23143 ok -[ok]: corrupt payload: fuzzer findings - empty intset (225 ms) +[ok]: Slave should be able to synchronize with the master (1165 ms) +[ok]: Detect write load to master (0 ms) +[ok]: Test replication partial resync: ok psync (diskless: yes, disabled, dual-channel: yes, reconnect: 1) (6244 ms) +=== (repl) Starting server 127.0.0.1:23143 ok === () Starting server 127.0.0.1:23145 ok -[ok]: corrupt payload: fuzzer findings - zset ziplist entry lensize is 0 (226 ms) -=== () Starting server 127.0.0.1:23147 ok -[ok]: corrupt payload: fuzzer findings - valgrind ziplist prevlen reaches outside the ziplist (227 ms) +[ok]: Slave should be able to synchronize with the master (1639 ms) +[ok]: Detect write load to master (0 ms) +[ok]: Test replication partial resync: no backlog (diskless: yes, disabled, dual-channel: yes, reconnect: 1) (7791 ms) +=== (repl) Starting server 127.0.0.1:23147 ok === () Starting server 127.0.0.1:23149 ok -[ok]: corrupt payload: fuzzer findings - valgrind - bad rdbLoadDoubleValue (227 ms) -=== () Starting server 127.0.0.1:23151 ok -[ok]: corrupt payload: fuzzer findings - valgrind ziplist prev too big (225 ms) +[ok]: Slave should be able to synchronize with the master (1119 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) (9242 ms) +=== (repl) Starting server 127.0.0.1:23151 ok === () Starting server 127.0.0.1:23153 ok -[ok]: corrupt payload: fuzzer findings - lzf decompression fails, avoid valgrind invalid read (225 ms) -=== () Starting server 127.0.0.1:23155 ok -[ok]: corrupt payload: fuzzer findings - stream bad lp_count (226 ms) +[ok]: Slave should be able to synchronize with the master (1385 ms) +[ok]: Detect write load to master (0 ms) +[ok]: Test replication partial resync: backlog expired (diskless: yes, disabled, dual-channel: yes, reconnect: 1) (10128 ms) +=== (repl) Starting server 127.0.0.1:23155 ok === () Starting server 127.0.0.1:23157 ok -[ok]: corrupt payload: fuzzer findings - stream bad lp_count - unsanitized (140 ms) -=== () Starting server 127.0.0.1:23159 ok -[ok]: corrupt payload: fuzzer findings - stream integrity check issue (226 ms) +[ok]: Slave should be able to synchronize with the master (1508 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) (49 ms) +=== (repl) Starting server 127.0.0.1:23159 ok === () Starting server 127.0.0.1:23161 ok -[ok]: corrupt payload: fuzzer findings - infinite loop (141 ms) -=== () Starting server 127.0.0.1:23163 ok -[ok]: corrupt payload: fuzzer findings - hash ziplist too long entry len (225 ms) +[ok]: Slave should be able to synchronize with the master (1433 ms) +[ok]: Detect write load to master (0 ms) +[ok]: Test replication partial resync: ok psync (diskless: yes, disabled, dual-channel: no, reconnect: 1) (6205 ms) +=== (repl) Starting server 127.0.0.1:23163 ok === () Starting server 127.0.0.1:23165 ok -[ok]: corrupt payload: OOM in rdbGenericLoadStringObject (223 ms) -=== () Starting server 127.0.0.1:23167 ok -[ok]: corrupt payload: fuzzer findings - OOM in dictExpand (225 ms) +[ok]: Slave should be able to synchronize with the master (998 ms) +[ok]: Detect write load to master (1 ms) +[ok]: Test replication partial resync: no backlog (diskless: yes, disabled, dual-channel: no, reconnect: 1) (7739 ms) +=== (repl) Starting server 127.0.0.1:23167 ok === () Starting server 127.0.0.1:23169 ok -[ok]: corrupt payload: fuzzer findings - zset ziplist invalid tail offset (226 ms) -=== () Starting server 127.0.0.1:23171 ok -[ok]: corrupt payload: fuzzer findings - negative reply length (141 ms) +[ok]: Slave should be able to synchronize with the master (1116 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) (9285 ms) +=== (repl) Starting server 127.0.0.1:23171 ok === () Starting server 127.0.0.1:23173 ok -[ok]: corrupt payload: fuzzer findings - valgrind negative malloc (229 ms) -=== () Starting server 127.0.0.1:23175 ok -[ok]: corrupt payload: fuzzer findings - valgrind invalid read (225 ms) +[ok]: Slave should be able to synchronize with the master (1904 ms) +[ok]: Detect write load to master (1 ms) +[ok]: Test replication partial resync: backlog expired (diskless: yes, disabled, dual-channel: no, reconnect: 1) (11545 ms) +=== (repl) Starting server 127.0.0.1:23175 ok === () Starting server 127.0.0.1:23177 ok -[ok]: corrupt payload: fuzzer findings - empty hash ziplist (226 ms) -=== () Starting server 127.0.0.1:23179 ok -[ok]: corrupt payload: fuzzer findings - stream with no records (141 ms) +[ok]: Slave should be able to synchronize with the master (1826 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) (67 ms) +=== (repl) Starting server 127.0.0.1:23179 ok === () Starting server 127.0.0.1:23181 ok -[ok]: corrupt payload: fuzzer findings - quicklist ziplist tail followed by extra data which start with 0xff (227 ms) -=== () Starting server 127.0.0.1:23183 ok -[ok]: corrupt payload: fuzzer findings - dict init to huge size (227 ms) +[ok]: Slave should be able to synchronize with the master (812 ms) +[ok]: Detect write load to master (0 ms) +[ok]: Test replication partial resync: ok psync (diskless: yes, swapdb, dual-channel: yes, reconnect: 1) (6248 ms) +=== (repl) Starting server 127.0.0.1:23183 ok === () Starting server 127.0.0.1:23185 ok -[ok]: corrupt payload: fuzzer findings - huge string (226 ms) -=== () Starting server 127.0.0.1:23187 ok -[ok]: corrupt payload: fuzzer findings - stream PEL without consumer (228 ms) +[ok]: Slave should be able to synchronize with the master (812 ms) +[ok]: Detect write load to master (1 ms) +[ok]: Test replication partial resync: no backlog (diskless: yes, swapdb, dual-channel: yes, reconnect: 1) (7731 ms) +=== (repl) Starting server 127.0.0.1:23187 ok === () Starting server 127.0.0.1:23189 ok -[ok]: corrupt payload: fuzzer findings - stream listpack valgrind issue (142 ms) -=== () Starting server 127.0.0.1:23191 ok -[ok]: corrupt payload: fuzzer findings - stream with bad lpFirst (225 ms) +[ok]: Slave should be able to synchronize with the master (810 ms) +[ok]: Detect write load to master (1 ms) +[ok]: Test replication partial resync: ok after delay (diskless: yes, swapdb, dual-channel: yes, reconnect: 1) (9352 ms) +=== (repl) Starting server 127.0.0.1:23191 ok === () Starting server 127.0.0.1:23193 ok -[ok]: corrupt payload: fuzzer findings - stream listpack lpPrev valgrind issue (141 ms) -=== () Starting server 127.0.0.1:23195 ok -[ok]: corrupt payload: fuzzer findings - stream with non-integer entry id (225 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: backlog expired (diskless: yes, swapdb, dual-channel: yes, reconnect: 1) (10411 ms) +=== (repl) Starting server 127.0.0.1:23195 ok === () Starting server 127.0.0.1:23197 ok -[ok]: corrupt payload: fuzzer findings - empty quicklist (226 ms) -=== () Starting server 127.0.0.1:23199 ok -[ok]: corrupt payload: fuzzer findings - empty zset (223 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: no, reconnect: 0) (244 ms) +=== (repl) Starting server 127.0.0.1:23199 ok === () Starting server 127.0.0.1:23201 ok -[ok]: corrupt payload: fuzzer findings - hash with len of 0 (226 ms) -=== () Starting server 127.0.0.1:23203 ok -[ok]: corrupt payload: fuzzer findings - hash listpack first element too long entry len (225 ms) +[ok]: Slave should be able to synchronize with the master (813 ms) +[ok]: Detect write load to master (0 ms) +[ok]: Test replication partial resync: ok psync (diskless: yes, swapdb, dual-channel: no, reconnect: 1) (6238 ms) +=== (repl) Starting server 127.0.0.1:23203 ok === () Starting server 127.0.0.1:23205 ok -[ok]: corrupt payload: fuzzer findings - stream double free listpack when insert dup node to rax returns 0 (224 ms) -=== () Starting server 127.0.0.1:23207 ok -[ok]: corrupt payload: fuzzer findings - LCS OOM (225 ms) +[ok]: Slave should be able to synchronize with the master (811 ms) +[ok]: Detect write load to master (0 ms) +[ok]: Test replication partial resync: no backlog (diskless: yes, swapdb, dual-channel: no, reconnect: 1) (7746 ms) +=== (repl) Starting server 127.0.0.1:23207 ok === () Starting server 127.0.0.1:23209 ok -[ok]: corrupt payload: fuzzer findings - gcc asan reports false leak on assert (142 ms) -=== () Starting server 127.0.0.1:23211 ok -[ok]: corrupt payload: fuzzer findings - lpFind invalid access (139 ms) +[ok]: Slave should be able to synchronize with the master (709 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) (9409 ms) +=== (repl) Starting server 127.0.0.1:23211 ok === () Starting server 127.0.0.1:23213 ok -[ok]: corrupt payload: fuzzer findings - invalid access in ziplist tail prevlen decoding (315 ms) -=== () Starting server 127.0.0.1:23215 ok -[ok]: corrupt payload: fuzzer findings - zset zslInsert with a NAN score (227 ms) +[ok]: Slave should be able to synchronize with the master (814 ms) +[ok]: Detect write load to master (0 ms) +[ok]: Test replication partial resync: backlog expired (diskless: yes, swapdb, dual-channel: no, reconnect: 1) (10613 ms) +[121/124 done]: integration/replication-psync (330 seconds) +Testing integration/replication-2 +=== (repl external:skip) Starting server 127.0.0.1:23215 ok === () Starting server 127.0.0.1:23217 ok -[ok]: corrupt payload: fuzzer findings - streamLastValidID panic (227 ms) +[ok]: First server should have role slave after SLAVEOF (197 ms) +[ok]: If min-slaves-to-write is honored, write is accepted (1 ms) +[ok]: No write if min-slaves-to-write is < attached slaves (0 ms) +[ok]: If min-slaves-to-write is honored, write is accepted (again) (1 ms) +[ok]: No write if min-slaves-max-lag is > of the slave lag (2760 ms) +[ok]: min-slaves-to-write is ignored by slaves (2 ms) +[ok]: MASTER and SLAVE dataset should be identical after complex ops (8791 ms) +[122/124 done]: integration/replication-2 (12 seconds) +Testing integration/convert-ziplist-zset-on-load === () Starting server 127.0.0.1:23219 ok -[ok]: corrupt payload: fuzzer findings - valgrind fishy value warning (225 ms) +[ok]: RDB load ziplist zset: converts to listpack when RDB loading (1 ms) === () Starting server 127.0.0.1:23221 ok -[ok]: corrupt payload: fuzzer findings - empty set listpack (224 ms) +[ok]: RDB load ziplist zset: converts to skiplist when zset-max-ziplist-entries is exceeded (1 ms) +[123/124 done]: integration/convert-ziplist-zset-on-load (0 seconds) +Testing integration/aof-race === () Starting server 127.0.0.1:23223 ok -[ok]: corrupt payload: fuzzer findings - set with duplicate elements causes sdiff to hang (223 ms) -[123/124 done]: integration/corrupt-dump (16 seconds) -Testing integration/valkey-benchmark === () Starting server 127.0.0.1:23225 ok -[ok]: benchmark: set,get (31 ms) -[ok]: benchmark: connecting using URI set,get (31 ms) -[ok]: benchmark: connecting using URI with authentication set,get (30 ms) -[ok]: benchmark: full test suite (412 ms) -[ok]: benchmark: multi-thread set,get (532 ms) -[ok]: benchmark: pipelined full set,get (114 ms) -[ok]: benchmark: arbitrary command (24 ms) -[ok]: benchmark: keyspace length (110 ms) -[ok]: benchmark: clients idle mode should return error when reached maxclients limit (19 ms) -[ok]: benchmark: read last argument from stdin (41 ms) -[ok]: benchmark: specific tls-ciphers (137 ms) -[ok]: benchmark: tls connecting using URI with authentication set,get (31 ms) -[ok]: benchmark: specific tls-ciphersuites (126 ms) -[124/124 done]: integration/valkey-benchmark (2 seconds) +[124/124 done]: integration/aof-race (1 seconds) The End Execution time of different units: - 1 seconds - unit/tls - 1 seconds - unit/pause - 14 seconds - unit/obuf-limits - 0 seconds - unit/acl-v2 - 2 seconds - unit/slowlog - 10 seconds - unit/introspection - 0 seconds - unit/printver - 2 seconds - unit/violations - 16 seconds - unit/expire - 1 seconds - unit/bitfield - 5 seconds - unit/client-eviction - 17 seconds - unit/geo - 1 seconds - unit/replybufsize - 3 seconds - unit/auth - 0 seconds - unit/info-command - 1 seconds - unit/pubsubshard - 11 seconds - unit/other - 2 seconds - unit/networking - 31 seconds - unit/aofrw - 5 seconds - unit/multi - 1 seconds - unit/shutdown - 25 seconds - unit/scripting - 1 seconds - unit/lazyfree - 1 seconds - unit/protocol - 2 seconds - unit/bitops - 27 seconds - unit/wait - 4 seconds - unit/functions + 0 seconds - unit/quit + 1 seconds - unit/slowlog + 2 seconds - unit/bitfield 0 seconds - unit/oom-score-adj - 7 seconds - unit/introspection-2 - 2 seconds - unit/acl - 24 seconds - unit/dump - 6 seconds - unit/latency-monitor - 6 seconds - unit/sort 3 seconds - unit/info - 0 seconds - unit/quit - 1 seconds - unit/pubsub + 7 seconds - unit/client-eviction + 0 seconds - unit/lazyfree + 13 seconds - unit/introspection + 1 seconds - unit/info-command + 27 seconds - unit/wait + 2 seconds - unit/pubsubshard + 0 seconds - unit/printver + 5 seconds - unit/multi + 56 seconds - unit/hyperloglog + 18 seconds - unit/obuf-limits + 2 seconds - unit/pause 1 seconds - unit/limits - 6 seconds - unit/querybuf - 46 seconds - unit/maxmemory - 2 seconds - unit/tracking - 223 seconds - unit/memefficiency - 46 seconds - unit/hyperloglog - 14 seconds - unit/scan + 1 seconds - unit/pubsub + 22 seconds - unit/geo + 29 seconds - unit/scripting + 7 seconds - unit/querybuf + 0 seconds - unit/acl-v2 + 90 seconds - unit/maxmemory + 7 seconds - unit/introspection-2 + 22 seconds - unit/expire 2 seconds - unit/keyspace - 10 seconds - unit/type/string - 15 seconds - unit/type/list - 6 seconds - unit/type/stream-cgroups + 3 seconds - unit/tracking + 6 seconds - unit/functions + 4 seconds - unit/acl + 3 seconds - unit/bitops + 12 seconds - unit/sort + 1 seconds - unit/replybufsize + 3 seconds - unit/networking + 1 seconds - unit/shutdown + 360 seconds - unit/memefficiency + 3 seconds - unit/auth + 13 seconds - unit/other + 28 seconds - unit/dump + 6 seconds - unit/latency-monitor + 1 seconds - unit/protocol + 26 seconds - unit/aofrw + 1 seconds - unit/tls + 1 seconds - unit/violations + 25 seconds - unit/scan + 14 seconds - unit/type/string + 26 seconds - unit/type/set + 28 seconds - unit/type/stream 0 seconds - unit/type/incr - 13 seconds - unit/type/set - 11 seconds - unit/type/stream - 19 seconds - unit/type/zset - 3 seconds - unit/type/hash - 9 seconds - unit/type/list-2 - 44 seconds - unit/type/list-3 - 25 seconds - unit/cluster/consistency-check - 27 seconds - unit/cluster/failover2 - 13 seconds - unit/cluster/pubsubshard-slot-migration - 11 seconds - unit/cluster/announced-endpoints - 84 seconds - unit/cluster/slot-migration - 15 seconds - unit/cluster/cluster-shards - 21 seconds - unit/cluster/manual-takeover - 0 seconds - unit/cluster/cluster-reliable-meet - 15 seconds - unit/cluster/pubsubshard - 119 seconds - unit/cluster/slot-stats - 46 seconds - unit/cluster/slave-stop-cond - 16 seconds - unit/cluster/transactions-on-replica - 3 seconds - unit/cluster/scripting - 4 seconds - unit/cluster/multi-slot-operations - 36 seconds - unit/cluster/failover - 94 seconds - unit/cluster/many-slot-migration - 25 seconds - unit/cluster/replica-in-sync - 65 seconds - unit/cluster/manual-failover - 42 seconds - unit/cluster/faildet - 36 seconds - unit/cluster/failure-marking + 19 seconds - unit/type/list-2 + 33 seconds - unit/type/zset + 6 seconds - unit/type/hash + 51 seconds - unit/type/list-3 + 11 seconds - unit/type/stream-cgroups + 22 seconds - unit/type/list 0 seconds - unit/cluster/cluster-multiple-meets + 29 seconds - unit/cluster/announce-client-ip + 12 seconds - unit/cluster/announced-endpoints + 67 seconds - unit/cluster/slave-selection + 2 seconds - unit/cluster/info + 20 seconds - unit/cluster/manual-takeover + 103 seconds - unit/cluster/diskless-load-swapdb + 85 seconds - unit/cluster/slot-migration + 11 seconds - unit/cluster/slot-ownership + 83 seconds - unit/cluster/manual-failover + 37 seconds - unit/cluster/consistency-check + 9 seconds - unit/cluster/human-announced-nodename + 20 seconds - unit/cluster/pubsubshard + 18 seconds - unit/cluster/misc + 24 seconds - unit/cluster/pubsub + 17 seconds - unit/cluster/pubsubshard-slot-migration + 18 seconds - unit/cluster/cluster-shards + 6 seconds - unit/cluster/slot-migration-response + 8 seconds - unit/cluster/multi-slot-operations + 29 seconds - unit/cluster/failover2 0 seconds - unit/cluster/cli - 59 seconds - unit/cluster/cluster-slots + 3 seconds - unit/cluster/scripting + 25 seconds - unit/cluster/links + 16 seconds - unit/cluster/replica-in-sync 31 seconds - unit/cluster/cluster-response-tls - 18 seconds - unit/cluster/no-failover-option - 31 seconds - unit/cluster/update-msg - 3 seconds - unit/cluster/slot-migration-response - 0 seconds - unit/cluster/base - 3 seconds - unit/cluster/info - 24 seconds - unit/cluster/links - 13 seconds - unit/cluster/pubsub - 11 seconds - unit/cluster/sharded-pubsub - 66 seconds - unit/cluster/slave-selection - 36 seconds - unit/cluster/announce-client-ip - 181 seconds - unit/cluster/replica-migration - 3 seconds - unit/cluster/half-migrated-slot - 8 seconds - unit/cluster/human-announced-nodename - 18 seconds - unit/cluster/hostnames - 15 seconds - unit/cluster/slot-ownership + 13 seconds - unit/cluster/transactions-on-replica + 15 seconds - unit/cluster/no-failover-option + 86 seconds - unit/cluster/cluster-slots + 27 seconds - unit/cluster/update-msg + 43 seconds - unit/cluster/slave-stop-cond 12 seconds - unit/cluster/cluster-nodes-slots - 11 seconds - unit/cluster/misc - 103 seconds - unit/cluster/diskless-load-swapdb - 186 seconds - integration/dual-channel-replication - 154 seconds - integration/replication - 18 seconds - integration/replication-4 - 8 seconds - integration/replication-2 - 318 seconds - integration/replication-psync - 46 seconds - integration/psync2 + 201 seconds - unit/cluster/replica-migration + 68 seconds - unit/cluster/failover + 37 seconds - unit/cluster/failure-marking + 0 seconds - unit/cluster/cluster-reliable-meet + 10 seconds - unit/cluster/half-migrated-slot + 0 seconds - unit/cluster/base + 48 seconds - unit/cluster/faildet + 12 seconds - unit/cluster/sharded-pubsub + 14 seconds - unit/cluster/hostnames + 114 seconds - unit/cluster/many-slot-migration + 129 seconds - unit/cluster/slot-stats + 43 seconds - integration/psync2 + 14 seconds - integration/aof + 187 seconds - integration/dual-channel-replication + 27 seconds - integration/block-repl 2 seconds - integration/replica-redirect - 0 seconds - integration/convert-ziplist-hash-on-load - 20 seconds - integration/corrupt-dump-fuzzer - 24 seconds - integration/replication-buffer + 13 seconds - integration/replication-3 7 seconds - integration/dismiss-mem - 11 seconds - integration/replication-3 - 7 seconds - integration/rdb - 7 seconds - integration/psync2-master-restart - 7 seconds - integration/shutdown - 17 seconds - integration/psync2-pingoff - 4 seconds - integration/failover - 1 seconds - integration/convert-zipmap-hash-on-load - 23 seconds - integration/psync2-reg - 0 seconds - integration/logging - 9 seconds - integration/valkey-cli - 14 seconds - integration/aof-multi-part - 1 seconds - integration/convert-ziplist-zset-on-load - 12 seconds - integration/aof - 27 seconds - integration/block-repl - 0 seconds - integration/aof-race - 16 seconds - integration/corrupt-dump + 12 seconds - integration/rdb + 1 seconds - integration/convert-ziplist-hash-on-load + 31 seconds - integration/replication-buffer + 157 seconds - integration/replication + 20 seconds - integration/corrupt-dump-fuzzer + 16 seconds - integration/psync2-pingoff 2 seconds - integration/valkey-benchmark + 8 seconds - integration/shutdown + 8 seconds - integration/psync2-master-restart + 22 seconds - integration/psync2-reg + 21 seconds - integration/replication-4 + 5 seconds - integration/failover + 10 seconds - integration/valkey-cli + 1 seconds - integration/convert-zipmap-hash-on-load + 1 seconds - integration/logging + 13 seconds - integration/aof-multi-part + 17 seconds - integration/corrupt-dump + 330 seconds - integration/replication-psync + 12 seconds - integration/replication-2 + 0 seconds - integration/convert-ziplist-zset-on-load + 1 seconds - integration/aof-race \o/ All tests passed without errors! @@ -6684,339 +6720,331 @@ Starting valkey #18 at port 30036 Starting valkey #19 at port 30038 Testing unit: 03-failover-loop.tcl -17:59:59> (init) Restart killed instances: OK -17:59:59> Cluster nodes are reachable: OK -17:59:59> Cluster nodes hard reset: OK -18:00:06> Cluster Join and auto-discovery test: OK -18:00:10> Before slots allocation, all nodes report cluster failure: OK -18:00:10> Create a 5 nodes cluster: OK -18:00:15> Cluster is up: OK +03:52:06> (init) Restart killed instances: OK +03:52:06> Cluster nodes are reachable: OK +03:52:06> Cluster nodes hard reset: OK +03:52:07> Cluster Join and auto-discovery test: OK +03:52:09> Before slots allocation, all nodes report cluster failure: OK +03:52:09> Create a 5 nodes cluster: OK +03:52:13> Cluster is up: OK --- Iteration 19 --- -18:00:15> Cluster is writable before failover: OK -18:00:15> Terminating node #9: OK -18:00:15> Cluster should eventually be up again: OK -18:00:15> Cluster is writable again: OK -18:00:15> Restarting node #9: OK -18:00:15> Instance #9 is now a slave: OK -18:00:15> We can read back the value we set before: OK +03:52:13> Cluster is writable before failover: OK +03:52:13> Terminating node #5: OK +03:52:13> Cluster should eventually be up again: OK +03:52:13> Cluster is writable again: OK +03:52:13> Restarting node #5: OK +03:52:14> Instance #5 is now a slave: OK +03:52:14> We can read back the value we set before: OK --- Iteration 18 --- -18:00:16> Wait for slave of #4 to sync: OK -18:00:16> Cluster is writable before failover: OK -18:00:16> Terminating node #4: OK -18:00:17> Wait failover by #9 with old epoch 5: OK -18:00:23> Cluster should eventually be up again: OK -18:00:23> Cluster is writable again: OK -18:00:23> Restarting node #4: OK -18:00:23> Instance #4 is now a slave: OK -18:00:23> We can read back the value we set before: OK +03:52:14> Cluster is writable before failover: OK +03:52:14> Terminating node #7: OK +03:52:14> Cluster should eventually be up again: OK +03:52:14> Cluster is writable again: OK +03:52:14> Restarting node #7: OK +03:52:14> Instance #7 is now a slave: OK +03:52:14> We can read back the value we set before: OK --- Iteration 17 --- -18:00:24> Cluster is writable before failover: OK -18:00:24> Terminating node #4: OK -18:00:24> Cluster should eventually be up again: OK -18:00:24> Cluster is writable again: OK -18:00:24> Restarting node #4: OK -18:00:24> Instance #4 is now a slave: OK -18:00:24> We can read back the value we set before: OK +03:52:14> Cluster is writable before failover: OK +03:52:14> Terminating node #7: OK +03:52:14> Cluster should eventually be up again: OK +03:52:14> Cluster is writable again: OK +03:52:14> Restarting node #7: OK +03:52:14> Instance #7 is now a slave: OK +03:52:14> We can read back the value we set before: OK --- Iteration 16 --- -18:00:24> Wait for slave of #9 to sync: OK -18:00:24> Cluster is writable before failover: OK -18:00:24> Terminating node #9: OK -18:00:25> Wait failover by #4 with old epoch 21: OK -18:00:31> Cluster should eventually be up again: OK -18:00:31> Cluster is writable again: OK -18:00:32> Restarting node #9: OK -18:00:33> Instance #9 is now a slave: OK -18:00:33> We can read back the value we set before: OK +03:52:14> Wait for slave of #0 to sync: OK +03:52:14> Cluster is writable before failover: OK +03:52:15> Terminating node #0: OK +03:52:15> Wait failover by #5 with old epoch 1: OK +03:52:21> Cluster should eventually be up again: OK +03:52:21> Cluster is writable again: OK +03:52:21> Restarting node #0: OK +03:52:21> Instance #0 is now a slave: OK +03:52:22> We can read back the value we set before: OK --- Iteration 15 --- -18:00:33> Wait for slave of #2 to sync: OK -18:00:33> Cluster is writable before failover: OK -18:00:33> Terminating node #2: OK -18:00:34> Wait failover by #7 with old epoch 3: OK -18:00:42> Cluster should eventually be up again: OK -18:00:44> Cluster is writable again: OK -18:00:44> Restarting node #2: OK -18:00:45> Instance #2 is now a slave: OK -18:00:45> We can read back the value we set before: OK +03:52:22> Cluster is writable before failover: OK +03:52:22> Terminating node #6: OK +03:52:22> Cluster should eventually be up again: OK +03:52:22> Cluster is writable again: OK +03:52:22> Restarting node #6: OK +03:52:22> Instance #6 is now a slave: OK +03:52:22> We can read back the value we set before: OK --- Iteration 14 --- -18:00:46> Wait for slave of #0 to sync: OK -18:00:46> Cluster is writable before failover: OK -18:00:46> Terminating node #0: OK -18:00:48> Wait failover by #5 with old epoch 1: OK -18:00:53> Cluster should eventually be up again: OK -18:00:54> Cluster is writable again: OK -18:00:54> Restarting node #0: OK -18:00:54> Instance #0 is now a slave: OK -18:00:54> We can read back the value we set before: OK +03:52:22> Cluster is writable before failover: OK +03:52:22> Terminating node #8: OK +03:52:22> Cluster should eventually be up again: OK +03:52:22> Cluster is writable again: OK +03:52:22> Restarting node #8: OK +03:52:22> Instance #8 is now a slave: OK +03:52:22> We can read back the value we set before: OK --- Iteration 13 --- -18:00:55> Wait for slave of #5 to sync: OK -18:00:55> Cluster is writable before failover: OK -18:00:55> Terminating node #5: OK -18:00:57> Wait failover by #0 with old epoch 24: OK -18:01:02> Cluster should eventually be up again: OK -18:01:03> Cluster is writable again: OK -18:01:03> Restarting node #5: OK -18:01:04> Instance #5 is now a slave: OK -18:01:04> We can read back the value we set before: OK +03:52:22> Wait for slave of #2 to sync: OK +03:52:22> Cluster is writable before failover: OK +03:52:23> Terminating node #2: OK +03:52:23> Wait failover by #7 with old epoch 3: OK +03:52:29> Cluster should eventually be up again: OK +03:52:29> Cluster is writable again: OK +03:52:29> Restarting node #2: OK +03:52:29> Instance #2 is now a slave: OK +03:52:29> We can read back the value we set before: OK --- Iteration 12 --- -18:01:04> Wait for slave of #3 to sync: OK -18:01:04> Cluster is writable before failover: OK -18:01:04> Terminating node #3: OK -18:01:05> Wait failover by #8 with old epoch 4: OK -18:01:12> Cluster should eventually be up again: OK -18:01:12> Cluster is writable again: OK -18:01:12> Restarting node #3: OK -18:01:13> Instance #3 is now a slave: OK -18:01:13> We can read back the value we set before: OK +03:52:29> Wait for slave of #1 to sync: OK +03:52:29> Cluster is writable before failover: OK +03:52:29> Terminating node #1: OK +03:52:30> Wait failover by #6 with old epoch 2: OK +03:52:35> Cluster should eventually be up again: OK +03:52:35> Cluster is writable again: OK +03:52:35> Restarting node #1: OK +03:52:35> Instance #1 is now a slave: OK +03:52:35> We can read back the value we set before: OK --- Iteration 11 --- -18:01:13> Cluster is writable before failover: OK -18:01:13> Terminating node #5: OK -18:01:14> Cluster should eventually be up again: OK -18:01:15> Cluster is writable again: OK -18:01:15> Restarting node #5: OK -18:01:15> Instance #5 is now a slave: OK -18:01:15> We can read back the value we set before: OK +03:52:35> Cluster is writable before failover: OK +03:52:35> Terminating node #8: OK +03:52:36> Cluster should eventually be up again: OK +03:52:36> Cluster is writable again: OK +03:52:36> Restarting node #8: OK +03:52:36> Instance #8 is now a slave: OK +03:52:36> We can read back the value we set before: OK --- Iteration 10 --- -18:01:15> Cluster is writable before failover: OK -18:01:15> Terminating node #9: OK -18:01:16> Cluster should eventually be up again: OK -18:01:16> Cluster is writable again: OK -18:01:16> Restarting node #9: OK -18:01:17> Instance #9 is now a slave: OK -18:01:17> We can read back the value we set before: OK +03:52:36> Cluster is writable before failover: OK +03:52:36> Terminating node #1: OK +03:52:36> Cluster should eventually be up again: OK +03:52:36> Cluster is writable again: OK +03:52:36> Restarting node #1: OK +03:52:36> Instance #1 is now a slave: OK +03:52:36> We can read back the value we set before: OK --- Iteration 9 --- -18:01:17> Cluster is writable before failover: OK -18:01:17> Terminating node #6: OK -18:01:18> Cluster should eventually be up again: OK -18:01:18> Cluster is writable again: OK -18:01:18> Restarting node #6: OK -18:01:18> Instance #6 is now a slave: OK -18:01:18> We can read back the value we set before: OK +03:52:36> Wait for slave of #7 to sync: OK +03:52:36> Cluster is writable before failover: OK +03:52:36> Terminating node #7: OK +03:52:38> Wait failover by #2 with old epoch 22: OK +03:52:43> Cluster should eventually be up again: OK +03:52:43> Cluster is writable again: OK +03:52:43> Restarting node #7: OK +03:52:43> Instance #7 is now a slave: OK +03:52:43> We can read back the value we set before: OK --- Iteration 8 --- -18:01:18> Wait for slave of #8 to sync: OK -18:01:18> Cluster is writable before failover: OK -18:01:18> Terminating node #8: OK -18:01:19> Wait failover by #3 with old epoch 26: OK -18:01:25> Cluster should eventually be up again: OK -18:01:26> Cluster is writable again: OK -18:01:26> Restarting node #8: OK -18:01:26> Instance #8 is now a slave: OK -18:01:26> We can read back the value we set before: OK +03:52:43> Cluster is writable before failover: OK +03:52:43> Terminating node #8: OK +03:52:43> Cluster should eventually be up again: OK +03:52:44> Cluster is writable again: OK +03:52:44> Restarting node #8: OK +03:52:44> Instance #8 is now a slave: OK +03:52:44> We can read back the value we set before: OK --- Iteration 7 --- -18:01:27> Wait for slave of #3 to sync: OK -18:01:27> Cluster is writable before failover: OK -18:01:27> Terminating node #3: OK -18:01:28> Wait failover by #8 with old epoch 27: OK -18:01:34> Cluster should eventually be up again: OK -18:01:35> Cluster is writable again: OK -18:01:35> Restarting node #3: OK -18:01:35> Instance #3 is now a slave: OK -18:01:35> We can read back the value we set before: OK +03:52:44> Wait for slave of #4 to sync: OK +03:52:44> Cluster is writable before failover: OK +03:52:44> Terminating node #4: OK +03:52:44> Wait failover by #9 with old epoch 5: OK +03:52:50> Cluster should eventually be up again: OK +03:52:50> Cluster is writable again: OK +03:52:50> Restarting node #4: OK +03:52:50> Instance #4 is now a slave: OK +03:52:50> We can read back the value we set before: OK --- Iteration 6 --- -18:01:35> Wait for slave of #4 to sync: OK -18:01:35> Cluster is writable before failover: OK -18:01:35> Terminating node #4: OK -18:01:37> Wait failover by #9 with old epoch 22: OK -18:01:43> Cluster should eventually be up again: OK -18:01:43> Cluster is writable again: OK -18:01:44> Restarting node #4: OK -18:01:44> Instance #4 is now a slave: OK -18:01:44> We can read back the value we set before: OK +03:52:50> Cluster is writable before failover: OK +03:52:50> Terminating node #7: OK +03:52:50> Cluster should eventually be up again: OK +03:52:50> Cluster is writable again: OK +03:52:50> Restarting node #7: OK +03:52:50> Instance #7 is now a slave: OK +03:52:50> We can read back the value we set before: OK --- Iteration 5 --- -18:01:44> Cluster is writable before failover: OK -18:01:44> Terminating node #6: OK -18:01:45> Cluster should eventually be up again: OK -18:01:45> Cluster is writable again: OK -18:01:45> Restarting node #6: OK -18:01:46> Instance #6 is now a slave: OK -18:01:46> We can read back the value we set before: OK +03:52:51> Cluster is writable before failover: OK +03:52:51> Terminating node #0: OK +03:52:51> Cluster should eventually be up again: OK +03:52:51> Cluster is writable again: OK +03:52:51> Restarting node #0: OK +03:52:51> Instance #0 is now a slave: OK +03:52:51> We can read back the value we set before: OK --- Iteration 4 --- -18:01:46> Cluster is writable before failover: OK -18:01:46> Terminating node #2: OK -18:01:47> Cluster should eventually be up again: OK -18:01:47> Cluster is writable again: OK -18:01:47> Restarting node #2: OK -18:01:47> Instance #2 is now a slave: OK -18:01:47> We can read back the value we set before: OK +03:52:51> Wait for slave of #9 to sync: OK +03:52:51> Cluster is writable before failover: OK +03:52:51> Terminating node #9: OK +03:52:52> Wait failover by #4 with old epoch 25: OK +03:52:57> Cluster should eventually be up again: OK +03:52:57> Cluster is writable again: OK +03:52:57> Restarting node #9: OK +03:52:57> Instance #9 is now a slave: OK +03:52:57> We can read back the value we set before: OK --- Iteration 3 --- -18:01:48> Cluster is writable before failover: OK -18:01:48> Terminating node #2: OK -18:01:48> Cluster should eventually be up again: OK -18:01:48> Cluster is writable again: OK -18:01:48> Restarting node #2: OK -18:01:49> Instance #2 is now a slave: OK -18:01:49> We can read back the value we set before: OK +03:52:57> Cluster is writable before failover: OK +03:52:57> Terminating node #0: OK +03:52:57> Cluster should eventually be up again: OK +03:52:57> Cluster is writable again: OK +03:52:57> Restarting node #0: OK +03:52:57> Instance #0 is now a slave: OK +03:52:57> We can read back the value we set before: OK --- Iteration 2 --- -18:01:49> Cluster is writable before failover: OK -18:01:49> Terminating node #5: OK -18:01:50> Cluster should eventually be up again: OK -18:01:50> Cluster is writable again: OK -18:01:50> Restarting node #5: OK -18:01:51> Instance #5 is now a slave: OK -18:01:51> We can read back the value we set before: OK +03:52:57> Cluster is writable before failover: OK +03:52:57> Terminating node #1: OK +03:52:57> Cluster should eventually be up again: OK +03:52:57> Cluster is writable again: OK +03:52:57> Restarting node #1: OK +03:52:58> Instance #1 is now a slave: OK +03:52:58> We can read back the value we set before: OK --- Iteration 1 --- -18:01:51> Wait for slave of #1 to sync: OK -18:01:51> Cluster is writable before failover: OK -18:01:51> Terminating node #1: OK -18:01:52> Wait failover by #6 with old epoch 2: OK -18:01:58> Cluster should eventually be up again: OK -18:01:58> Cluster is writable again: OK -18:01:58> Restarting node #1: OK -18:01:59> Instance #1 is now a slave: OK -18:01:59> We can read back the value we set before: OK -18:01:59> Post condition: current_epoch >= my_epoch everywhere: OK +03:52:58> Cluster is writable before failover: OK +03:52:58> Terminating node #1: OK +03:52:58> Cluster should eventually be up again: OK +03:52:58> Cluster is writable again: OK +03:52:58> Restarting node #1: OK +03:52:58> Instance #1 is now a slave: OK +03:52:58> We can read back the value we set before: OK +03:52:58> Post condition: current_epoch >= my_epoch everywhere: OK Testing unit: 04-resharding.tcl -18:01:59> (init) Restart killed instances: OK -18:01:59> Cluster nodes are reachable: OK -18:01:59> Cluster nodes hard reset: OK -18:02:02> Cluster Join and auto-discovery test: OK -18:02:04> Before slots allocation, all nodes report cluster failure: OK -18:02:04> Create a 5 nodes cluster: OK -18:02:08> Cluster is up: OK -18:02:08> Enable AOF in all the instances: OK +03:52:58> (init) Restart killed instances: OK +03:52:58> Cluster nodes are reachable: OK +03:52:58> Cluster nodes hard reset: OK +03:52:59> Cluster Join and auto-discovery test: OK +03:53:01> Before slots allocation, all nodes report cluster failure: OK +03:53:01> Create a 5 nodes cluster: OK +03:53:05> Cluster is up: OK +03:53:05> Enable AOF in all the instances: OK Testing TLS cluster on start node 127.0.0.1:30000, plaintext port 30001 -18:02:08> Cluster consistency during live resharding: WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW...Starting resharding...W.......................................W.......................................................................................WWWW..............W...............WW..W...........W.........W................WWWWWWW.............W.....................W............................................................................W..............................................W...........................................W.................................................................................................................W...................................................................................W...........................................................W................................................................W....................................................................................................W............................................................................................................................W....................................................................Starting resharding...W...................................................................................................................................W........................................................................W...............................................................W..................................................................W......................................................................W.................................W............................W......................................................W.......................................................................................W.......................W........................................................................W.................................W.............................................W...........................W..........................................W...........................................W.....................W............................................WW...Starting resharding...W................................................................................................................................................................................W.............................................................................................W........................................................W................................................................W........................................W............................................................................W..................................................................................................................W.............................................................................................W.................................................................................................W........................................................................................W..........................................................................................WWWWWWWWW...Starting resharding...W......................................................W...............................................................................................................W.................................................................W.................................................W..................................................................................................W..................................................W............................................................................W......................................................................................W......................................................W................................................................................................W.........................................................................................W...........................................................................W.......................................................................................W..........WWWWWW...Starting resharding...W.......................................W...................................................................................................................W...................................................................W..........................................................................W.................................................................W.........................................................W..............................................W.....................................................................................W.............................................................................W.............................................................................................................................................................................................................................................................................................................................................................................OK -18:04:04> Verify 50000 keys for consistency with logical content: OK -18:04:10> Terminate and restart all the instances: OK -18:04:23> Cluster should eventually be up again: OK -18:04:25> Verify 50000 keys after the restart: OK -18:04:30> Disable AOF in all the instances: OK -18:04:31> Verify slaves consistency: OK -18:04:32> Dump sanitization was skipped for migrations: OK +03:53:05> Cluster consistency during live resharding: WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW...Starting resharding...W...........................................................................W...........................................................................................................W.......................................................................................W...............................W........................................................................W..........................................................................................W...............................................W.........................................................................................W.............................................................W..........................................................................................W...............................................W......................................................................................W............................................................................W.....................WWWWWW...Starting resharding...W.......................................................................................W......................................................................................W...........................................................................................................W................................................................................W........................................................................................................W.................................................................................................W.............................................W..............................................................................................................................W................................................................................................W..............................................................................................W.................................................................WWWWWWWWW...Starting resharding...W............................................................W........................................................................................................................W.........................................................................................W...................................................................................W.........................................................................W..................................................................................................W.............................................................................................W.............................................................................................................................W............................................................................W.......................................................................................................W.......................................................................................WWWWWWWWW...Starting resharding...W...........................................................................W.........................................................................................................................W...................................................................W.........................................................................W..........................................................................................W.............................................................................................W......................................................................................W.......................................................................................W...........................................................................................W..........................................................................................................W...............................................................................................W........................................WWWWWWWW...Starting resharding...W............................................................W..............................................................................................................................W....................................................................................W.............................................................................W.............................................................W............................................................................................................W....................................................................................................................W.........................................................................W..................................................................................W..........................................................................W....................................................................W..............................................................WWWWWWWWOK +03:54:46> Verify 50000 keys for consistency with logical content: OK +03:54:56> Terminate and restart all the instances: OK +03:55:01> Cluster should eventually be up again: OK +03:55:03> Verify 50000 keys after the restart: OK +03:55:13> Disable AOF in all the instances: OK +03:55:13> Verify slaves consistency: OK +03:55:14> Dump sanitization was skipped for migrations: OK Testing unit: 07-replica-migration.tcl -18:04:32> (init) Restart killed instances: OK -18:04:32> Cluster nodes are reachable: OK -18:04:32> Cluster nodes hard reset: OK -18:04:37> Cluster Join and auto-discovery test: OK -18:04:39> Before slots allocation, all nodes report cluster failure: OK -18:04:39> Create a 5 nodes cluster: OK -18:04:43> Cluster is up: OK -18:04:43> Each master should have two replicas attached: OK -18:04:43> Killing all the slaves of master #0 and #1: OK -18:04:47> Master #0 should have at least one replica: OK -18:04:52> Master #1 should have at least one replica: OK -18:04:53> Master #2 should have at least one replica: OK -18:04:53> Master #3 should have at least one replica: OK -18:04:53> Master #4 should have at least one replica: OK -18:04:53> (init) Restart killed instances: valkey/5 valkey/6 valkey/10 valkey/11 OK -18:04:54> Cluster nodes are reachable: OK -18:04:55> Cluster nodes hard reset: OK -18:04:59> Cluster Join and auto-discovery test: OK -18:05:01> Before slots allocation, all nodes report cluster failure: OK -18:05:01> Create a 5 nodes cluster: OK -18:05:05> Cluster is up: OK -18:05:05> Kill slave #7 of master #2. Only slave left is #12 now: OK -18:05:05> Killing master node #2, #12 should failover: OK -18:05:05> Wait for failover: OK -18:05:10> Cluster should eventually be up again: OK -18:05:10> Cluster is writable: OK -18:05:10> Instance 12 is now a master without slaves: OK -18:05:10> Master #12 should get at least one migrated replica: OK +03:55:14> (init) Restart killed instances: OK +03:55:14> Cluster nodes are reachable: OK +03:55:14> Cluster nodes hard reset: OK +03:55:15> Cluster Join and auto-discovery test: OK +03:55:17> Before slots allocation, all nodes report cluster failure: OK +03:55:17> Create a 5 nodes cluster: OK +03:55:21> Cluster is up: OK +03:55:21> Each master should have two replicas attached: OK +03:55:21> Killing all the slaves of master #0 and #1: OK +03:55:25> Master #0 should have at least one replica: OK +03:55:30> Master #1 should have at least one replica: OK +03:55:31> Master #2 should have at least one replica: OK +03:55:31> Master #3 should have at least one replica: OK +03:55:31> Master #4 should have at least one replica: OK +03:55:31> (init) Restart killed instances: valkey/5 valkey/6 valkey/10 valkey/11 OK +03:55:31> Cluster nodes are reachable: OK +03:55:31> Cluster nodes hard reset: OK +03:55:32> Cluster Join and auto-discovery test: OK +03:55:34> Before slots allocation, all nodes report cluster failure: OK +03:55:34> Create a 5 nodes cluster: OK +03:55:38> Cluster is up: OK +03:55:38> Kill slave #7 of master #2. Only slave left is #12 now: OK +03:55:38> Killing master node #2, #12 should failover: OK +03:55:38> Wait for failover: OK +03:55:45> Cluster should eventually be up again: OK +03:55:45> Cluster is writable: OK +03:55:45> Instance 12 is now a master without slaves: OK +03:55:45> Master #12 should get at least one migrated replica: OK Testing unit: 12-replica-migration-2.tcl -18:05:16> (init) Restart killed instances: valkey/2 valkey/7 OK -18:05:16> Cluster nodes are reachable: OK -18:05:16> Cluster nodes hard reset: OK -18:05:17> Cluster Join and auto-discovery test: OK -18:05:19> Before slots allocation, all nodes report cluster failure: OK -18:05:19> Create a 5 nodes cluster: OK -18:05:22> Cluster is up: OK -18:05:22> Each master should have at least two replicas attached: OK -18:05:22> Set allow-replica-migration yes: OK -18:05:22> Resharding all the master #0 slots away from it: >>> Performing Cluster Check (using node 127.0.0.1:30000) +03:55:50> (init) Restart killed instances: valkey/2 valkey/7 OK +03:55:50> Cluster nodes are reachable: OK +03:55:50> Cluster nodes hard reset: OK +03:55:52> Cluster Join and auto-discovery test: OK +03:55:54> Before slots allocation, all nodes report cluster failure: OK +03:55:54> Create a 5 nodes cluster: OK +03:55:58> Cluster is up: OK +03:55:58> Each master should have at least two replicas attached: OK +03:55:58> Set allow-replica-migration yes: OK +03:55:58> 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:30006 -#################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################### 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 #################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################### Moving 816 slots from 127.0.0.1:30000 to 127.0.0.1:30008 ################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################ OK -18:15:26> Master #0 who lost all slots should turn into a replica without replicas: OK -18:15:26> Resharding back some slot to master #0: >>> Performing Cluster Check (using node 127.0.0.1:30000) +04:05:42> Master #0 who lost all slots should turn into a replica without replicas: OK +04:05:42> 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 -18:15:36> Master #0 should re-acquire one or more replicas: OK +04:05:52> Master #0 should re-acquire one or more replicas: OK Testing unit: 12.1-replica-migration-3.tcl -18:15:36> (init) Restart killed instances: OK -18:15:36> Cluster nodes are reachable: OK -18:15:36> Cluster nodes hard reset: OK -18:15:45> Cluster Join and auto-discovery test: OK -18:15:53> Before slots allocation, all nodes report cluster failure: OK -18:15:53> Create a 5 nodes cluster: OK -18:15:57> Cluster is up: OK -18:15:57> Each master should have at least two replicas attached: OK -18:15:57> Set allow-replica-migration no: OK -18:15:57> Resharding all the master #0 slots away from it: >>> Performing Cluster Check (using node 127.0.0.1:30000) +04:05:52> (init) Restart killed instances: OK +04:05:52> Cluster nodes are reachable: OK +04:05:52> Cluster nodes hard reset: OK +04:05:54> Cluster Join and auto-discovery test: OK +04:05:57> Before slots allocation, all nodes report cluster failure: OK +04:05:57> Create a 5 nodes cluster: OK +04:06:01> Cluster is up: OK +04:06:01> Each master should have at least two replicas attached: OK +04:06:01> Set allow-replica-migration no: OK +04:06:01> 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 #################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################### +Moving 820 slots from 127.0.0.1:30000 to 127.0.0.1:30002 +#################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################### Moving 816 slots from 127.0.0.1:30000 to 127.0.0.1:30008 ################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################ OK -18:25:51> Wait cluster to be stable: OK -18:25:52> Master #0 still should have its replicas: OK -18:25:52> Each master should have at least two replicas attached: OK +04:15:06> Wait cluster to be stable: OK +04:15:06> Master #0 still should have its replicas: OK +04:15:06> Each master should have at least two replicas attached: OK Testing unit: 28-cluster-shards.tcl -18:25:52> (init) Restart killed instances: OK -18:25:52> Cluster nodes are reachable: OK -18:25:52> Cluster nodes hard reset: OK -18:25:53> Cluster Join and auto-discovery test: OK -18:25:55> Before slots allocation, all nodes report cluster failure: OK -18:25:55> Create a 8 nodes cluster with 4 shards: OK -18:25:55> Cluster should start ok: OK -18:25:59> Set cluster hostnames and verify they are propagated: OK -18:26:00> Verify information about the shards: OK -18:26:01> Verify no slot shard: OK -18:26:01> Kill a node and tell the replica to immediately takeover: OK -18:26:01> Verify health as fail for killed node: OK -18:26:06> Restarting primary node: OK -18:26:06> Instance #0 gets converted into a replica: OK -18:26:06> Test the replica reports a loading state while it's loading: OK -18:26:09> Regression test for a crash when calling SHARDS during handshake: OK -18:26:09> Cluster is up: OK -18:26:13> Shard ids are unique: OK -18:26:13> CLUSTER MYSHARDID reports same id for both primary and replica: OK -18:26:13> New replica receives primary's shard id: OK -18:26:13> CLUSTER MYSHARDID reports same shard id after shard restart: OK -18:26:15> CLUSTER MYSHARDID reports same shard id after cluster restart: OK +04:15:07> (init) Restart killed instances: OK +04:15:07> Cluster nodes are reachable: OK +04:15:07> Cluster nodes hard reset: OK +04:15:08> Cluster Join and auto-discovery test: OK +04:15:10> Before slots allocation, all nodes report cluster failure: OK +04:15:10> Create a 8 nodes cluster with 4 shards: OK +04:15:10> Cluster should start ok: OK +04:15:14> Set cluster hostnames and verify they are propagated: OK +04:15:16> Verify information about the shards: OK +04:15:17> Verify no slot shard: OK +04:15:17> Kill a node and tell the replica to immediately takeover: OK +04:15:17> Verify health as fail for killed node: OK +04:15:22> Restarting primary node: OK +04:15:22> Instance #0 gets converted into a replica: OK +04:15:22> Test the replica reports a loading state while it's loading: OK +04:15:25> Regression test for a crash when calling SHARDS during handshake: OK +04:15:25> Cluster is up: OK +04:15:28> Shard ids are unique: OK +04:15:28> CLUSTER MYSHARDID reports same id for both primary and replica: OK +04:15:28> New replica receives primary's shard id: OK +04:15:28> CLUSTER MYSHARDID reports same shard id after shard restart: OK +04:15:31> CLUSTER MYSHARDID reports same shard id after cluster restart: OK Cleaning up... -killing stale instance 1689032 -killing stale instance 1689101 -killing stale instance 1689291 -killing stale instance 1689396 -killing stale instance 1689416 -killing stale instance 1689437 -killing stale instance 1689451 -killing stale instance 1689510 -killing stale instance 1689548 -killing stale instance 1689587 -killing stale instance 1690502 -killing stale instance 1690513 -killing stale instance 1733289 -killing stale instance 1733295 -killing stale instance 1733302 -killing stale instance 1733310 -killing stale instance 1733320 -killing stale instance 1733326 -killing stale instance 1733333 -killing stale instance 1733342 +killing stale instance 3805260 +killing stale instance 3805274 +killing stale instance 3805310 +killing stale instance 3805321 +killing stale instance 3805332 +killing stale instance 3805347 +killing stale instance 3805360 +killing stale instance 3805372 +killing stale instance 3805383 +killing stale instance 3805394 +killing stale instance 3805480 +killing stale instance 3805486 +killing stale instance 3849150 +killing stale instance 3849156 +killing stale instance 3849162 +killing stale instance 3849169 +killing stale instance 3849174 +killing stale instance 3849180 +killing stale instance 3849188 +killing stale instance 3849196 GOOD! No errors. ./runtest-sentinel || true Starting sentinel #0 at port 20000 @@ -7030,248 +7058,248 @@ Starting valkey #3 at port 30003 Starting valkey #4 at port 30004 Testing unit: 00-base.tcl -18:26:21> (start-init) Flush config and compare rewrite config file lines: OK -18:26:21> (init) Restart killed instances: OK -18:26:21> (init) Remove old primary entry from sentinels: OK -18:26:21> (init) Create a primary-replicas cluster of 5 instances: OK -18:26:21> (init) Sentinels can start monitoring a primary: OK -18:26:22> (init) Sentinels can talk with the primary: OK -18:26:22> (init) Sentinels are able to auto-discover other sentinels: OK -18:26:23> (init) Sentinels are able to auto-discover replicas: OK -18:26:24> Sentinel command flag infrastructure works correctly: OK -18:26:24> SENTINEL HELP output the sentinel subcommand help: OK -18:26:24> SENTINEL MYID return the sentinel instance ID: OK -18:26:24> SENTINEL INFO CACHE returns the cached info: OK -18:26:24> SENTINEL PENDING-SCRIPTS returns the information about pending scripts: OK -18:26:24> SENTINEL PRIMARIES returns a list of monitored primaries: OK -18:26:24> SENTINEL SENTINELS returns a list of sentinel instances: OK -18:26:24> SENTINEL SLAVES returns a list of the monitored replicas: OK -18:26:24> SENTINEL SIMULATE-FAILURE HELP list supported flags: OK -18:26:24> Basic failover works if the primary is down: OK -18:26:28> New primary 127.0.0.1:30004 role matches: OK -18:26:28> All the other slaves now point to the new primary: OK -18:26:28> The old primary eventually gets reconfigured as a slave: OK -18:26:38> ODOWN is not possible without N (quorum) Sentinels reports: OK -18:26:39> Failover is not possible without majority agreement: OK -18:26:40> Failover works if we configure for absolute agreement: OK -18:26:44> New primary 127.0.0.1:30002 role matches: OK -18:26:44> SENTINEL RESET can resets the primary: OK -18:26:44> SENTINEL IS-PRIMARY-DOWN-BY-ADDR checks if the primary is down: OK +04:15:37> (start-init) Flush config and compare rewrite config file lines: OK +04:15:38> (init) Restart killed instances: OK +04:15:38> (init) Remove old primary entry from sentinels: OK +04:15:38> (init) Create a primary-replicas cluster of 5 instances: OK +04:15:38> (init) Sentinels can start monitoring a primary: OK +04:15:38> (init) Sentinels can talk with the primary: OK +04:15:38> (init) Sentinels are able to auto-discover other sentinels: OK +04:15:40> (init) Sentinels are able to auto-discover replicas: OK +04:15:40> Sentinel command flag infrastructure works correctly: OK +04:15:40> SENTINEL HELP output the sentinel subcommand help: OK +04:15:40> SENTINEL MYID return the sentinel instance ID: OK +04:15:40> SENTINEL INFO CACHE returns the cached info: OK +04:15:40> SENTINEL PENDING-SCRIPTS returns the information about pending scripts: OK +04:15:40> SENTINEL PRIMARIES returns a list of monitored primaries: OK +04:15:40> SENTINEL SENTINELS returns a list of sentinel instances: OK +04:15:40> SENTINEL SLAVES returns a list of the monitored replicas: OK +04:15:40> SENTINEL SIMULATE-FAILURE HELP list supported flags: OK +04:15:40> Basic failover works if the primary is down: OK +04:15:44> New primary 127.0.0.1:30002 role matches: OK +04:15:44> All the other slaves now point to the new primary: OK +04:15:44> The old primary eventually gets reconfigured as a slave: OK +04:15:54> ODOWN is not possible without N (quorum) Sentinels reports: OK +04:15:54> Failover is not possible without majority agreement: OK +04:15:55> Failover works if we configure for absolute agreement: OK +04:15:59> New primary 127.0.0.1:30001 role matches: OK +04:15:59> SENTINEL RESET can resets the primary: OK +04:15:59> SENTINEL IS-PRIMARY-DOWN-BY-ADDR checks if the primary is down: OK Testing unit: 01-conf-update.tcl -18:26:44> (init) Restart killed instances: OK -18:26:44> (init) Remove old primary entry from sentinels: OK -18:26:44> (init) Create a primary-replicas cluster of 5 instances: OK -18:26:44> (init) Sentinels can start monitoring a primary: OK -18:26:45> (init) Sentinels can talk with the primary: OK -18:26:45> (init) Sentinels are able to auto-discover other sentinels: OK -18:26:46> (init) Sentinels are able to auto-discover replicas: OK -18:26:46> We can failover with Sentinel 1 crashed: OK -18:26:51> After Sentinel 1 is restarted, its config gets updated: OK -18:26:51> New primary 127.0.0.1:30002 role matches: OK -18:26:51> Update log level: OK +04:15:59> (init) Restart killed instances: OK +04:15:59> (init) Remove old primary entry from sentinels: OK +04:15:59> (init) Create a primary-replicas cluster of 5 instances: OK +04:15:59> (init) Sentinels can start monitoring a primary: OK +04:16:00> (init) Sentinels can talk with the primary: OK +04:16:00> (init) Sentinels are able to auto-discover other sentinels: OK +04:16:02> (init) Sentinels are able to auto-discover replicas: OK +04:16:02> We can failover with Sentinel 1 crashed: OK +04:16:26> After Sentinel 1 is restarted, its config gets updated: OK +04:16:26> New primary 127.0.0.1:30001 role matches: OK +04:16:26> Update log level: OK Testing unit: 02-replicas-reconf.tcl -18:26:51> (init) Restart killed instances: OK -18:26:51> (init) Remove old primary entry from sentinels: OK -18:26:51> (init) Create a primary-replicas cluster of 5 instances: OK -18:26:51> (init) Sentinels can start monitoring a primary: OK -18:26:51> (init) Sentinels can talk with the primary: OK -18:26:51> (init) Sentinels are able to auto-discover other sentinels: OK -18:26:53> (init) Sentinels are able to auto-discover replicas: OK -18:26:53> Check that slaves replicate from current primary: OK -18:26:53> Crash the primary and force a failover: OK -18:26:58> Check that slaves replicate from current primary: OK -18:26:58> Kill a slave instance: OK -18:26:58> Crash the primary and force a failover: OK -18:27:01> Check that slaves replicate from current primary: OK -18:27:02> Wait for failover to end: OK -18:27:03> Restart killed slave and test replication of slaves again...: OK -18:27:03> Check that slaves replicate from current primary: OK +04:16:26> (init) Restart killed instances: OK +04:16:26> (init) Remove old primary entry from sentinels: OK +04:16:26> (init) Create a primary-replicas cluster of 5 instances: OK +04:16:26> (init) Sentinels can start monitoring a primary: OK +04:16:26> (init) Sentinels can talk with the primary: OK +04:16:26> (init) Sentinels are able to auto-discover other sentinels: OK +04:16:28> (init) Sentinels are able to auto-discover replicas: OK +04:16:28> Check that slaves replicate from current primary: OK +04:16:28> Crash the primary and force a failover: OK +04:16:32> Check that slaves replicate from current primary: OK +04:16:32> Kill a slave instance: OK +04:16:33> Crash the primary and force a failover: OK +04:16:37> Check that slaves replicate from current primary: OK +04:16:38> Wait for failover to end: OK +04:16:38> Restart killed slave and test replication of slaves again...: OK +04:16:38> Check that slaves replicate from current primary: OK Testing unit: 03-runtime-reconf.tcl -18:27:13> (init) Restart killed instances: OK -18:27:13> (init) Remove old primary entry from sentinels: OK -18:27:13> (init) Create a primary-replicas cluster of 5 instances: OK -18:27:13> (init) Sentinels can start monitoring a primary: OK -18:27:13> (init) Sentinels can talk with the primary: OK -18:27:13> (init) Sentinels are able to auto-discover other sentinels: OK -18:27:13> (init) Sentinels are able to auto-discover replicas: OK -18:27:13> Sentinels (re)connection following SENTINEL SET myprimary auth-pass: OK -18:27:15> Sentinels (re)connection following primary ACL change: OK -18:27:17> Set parameters in normal case: OK -18:27:17> Set parameters in normal case with bad format: OK -18:27:17> Sentinel Set with other error situations: OK +04:16:48> (init) Restart killed instances: OK +04:16:48> (init) Remove old primary entry from sentinels: OK +04:16:48> (init) Create a primary-replicas cluster of 5 instances: OK +04:16:48> (init) Sentinels can start monitoring a primary: OK +04:16:49> (init) Sentinels can talk with the primary: OK +04:16:49> (init) Sentinels are able to auto-discover other sentinels: OK +04:16:49> (init) Sentinels are able to auto-discover replicas: OK +04:16:49> Sentinels (re)connection following SENTINEL SET myprimary auth-pass: OK +04:16:50> Sentinels (re)connection following primary ACL change: OK +04:16:53> Set parameters in normal case: OK +04:16:53> Set parameters in normal case with bad format: OK +04:16:53> Sentinel Set with other error situations: OK Testing unit: 04-slave-selection.tcl Testing unit: 05-manual.tcl -18:27:17> (init) Restart killed instances: OK -18:27:17> (init) Remove old primary entry from sentinels: OK -18:27:17> (init) Create a primary-replicas cluster of 5 instances: OK -18:27:17> (init) Sentinels can start monitoring a primary: OK -18:27:18> (init) Sentinels can talk with the primary: OK -18:27:18> (init) Sentinels are able to auto-discover other sentinels: OK -18:27:19> (init) Sentinels are able to auto-discover replicas: OK -18:27:19> Manual failover works: OK -18:27:21> New primary 127.0.0.1:30003 role matches: OK -18:27:21> All the other slaves now point to the new primary: OK -18:27:21> The old primary eventually gets reconfigured as a slave: OK -18:27:25> (init) Restart killed instances: OK -18:27:25> (init) Remove old primary entry from sentinels: OK -18:27:25> (init) Create a primary-replicas cluster of 5 instances: OK -18:27:25> (init) Sentinels can start monitoring a primary: OK -18:27:25> (init) Sentinels can talk with the primary: OK -18:27:25> (init) Sentinels are able to auto-discover other sentinels: OK -18:27:26> (init) Sentinels are able to auto-discover replicas: OK -18:27:26> SENTINEL SIMULATE-FAILURE crash-after-election works: OK -18:27:26> (init) Restart killed instances: OK -18:27:26> (init) Remove old primary entry from sentinels: OK -18:27:26> (init) Create a primary-replicas cluster of 5 instances: OK -18:27:26> (init) Sentinels can start monitoring a primary: OK -18:27:26> (init) Sentinels can talk with the primary: OK -18:27:26> (init) Sentinels are able to auto-discover other sentinels: OK -18:27:28> (init) Sentinels are able to auto-discover replicas: OK -18:27:28> SENTINEL SIMULATE-FAILURE crash-after-promotion works: OK +04:16:53> (init) Restart killed instances: OK +04:16:53> (init) Remove old primary entry from sentinels: OK +04:16:53> (init) Create a primary-replicas cluster of 5 instances: OK +04:16:53> (init) Sentinels can start monitoring a primary: OK +04:16:54> (init) Sentinels can talk with the primary: OK +04:16:54> (init) Sentinels are able to auto-discover other sentinels: OK +04:16:55> (init) Sentinels are able to auto-discover replicas: OK +04:16:55> Manual failover works: OK +04:16:56> New primary 127.0.0.1:30003 role matches: OK +04:16:56> All the other slaves now point to the new primary: OK +04:16:56> The old primary eventually gets reconfigured as a slave: OK +04:17:00> (init) Restart killed instances: OK +04:17:00> (init) Remove old primary entry from sentinels: OK +04:17:00> (init) Create a primary-replicas cluster of 5 instances: OK +04:17:00> (init) Sentinels can start monitoring a primary: OK +04:17:01> (init) Sentinels can talk with the primary: OK +04:17:01> (init) Sentinels are able to auto-discover other sentinels: OK +04:17:02> (init) Sentinels are able to auto-discover replicas: OK +04:17:02> SENTINEL SIMULATE-FAILURE crash-after-election works: OK +04:17:02> (init) Restart killed instances: OK +04:17:02> (init) Remove old primary entry from sentinels: OK +04:17:02> (init) Create a primary-replicas cluster of 5 instances: OK +04:17:02> (init) Sentinels can start monitoring a primary: OK +04:17:02> (init) Sentinels can talk with the primary: OK +04:17:02> (init) Sentinels are able to auto-discover other sentinels: OK +04:17:04> (init) Sentinels are able to auto-discover replicas: OK +04:17:04> SENTINEL SIMULATE-FAILURE crash-after-promotion works: OK Testing unit: 06-ckquorum.tcl -18:27:29> (init) Restart killed instances: OK -18:27:29> (init) Remove old primary entry from sentinels: OK -18:27:29> (init) Create a primary-replicas cluster of 5 instances: OK -18:27:29> (init) Sentinels can start monitoring a primary: OK -18:27:30> (init) Sentinels can talk with the primary: OK -18:27:30> (init) Sentinels are able to auto-discover other sentinels: OK -18:27:31> (init) Sentinels are able to auto-discover replicas: OK -18:27:31> CKQUORUM reports OK and the right amount of Sentinels: OK -18:27:31> CKQUORUM detects quorum cannot be reached: OK -18:27:31> CKQUORUM detects failover authorization cannot be reached: OK +04:17:05> (init) Restart killed instances: OK +04:17:05> (init) Remove old primary entry from sentinels: OK +04:17:05> (init) Create a primary-replicas cluster of 5 instances: OK +04:17:05> (init) Sentinels can start monitoring a primary: OK +04:17:05> (init) Sentinels can talk with the primary: OK +04:17:05> (init) Sentinels are able to auto-discover other sentinels: OK +04:17:07> (init) Sentinels are able to auto-discover replicas: OK +04:17:07> CKQUORUM reports OK and the right amount of Sentinels: OK +04:17:07> CKQUORUM detects quorum cannot be reached: OK +04:17:07> CKQUORUM detects failover authorization cannot be reached: OK Testing unit: 07-down-conditions.tcl -18:27:34> (init) Restart killed instances: OK -18:27:34> (init) Remove old primary entry from sentinels: OK -18:27:34> (init) Create a primary-replicas cluster of 5 instances: OK -18:27:34> (init) Sentinels can start monitoring a primary: OK -18:27:34> (init) Sentinels can talk with the primary: OK -18:27:34> (init) Sentinels are able to auto-discover other sentinels: OK -18:27:36> (init) Sentinels are able to auto-discover replicas: OK -18:27:36> Crash the majority of Sentinels to prevent failovers for this unit: OK -18:27:36> SDOWN is triggered by non-responding but not crashed instance: OK -18:27:38> SDOWN is triggered by crashed instance: OK -18:27:41> SDOWN is triggered by primaries advertising as slaves: OK -18:27:45> SDOWN is triggered by misconfigured instance replying with errors: OK -18:27:55> SDOWN is triggered if we rename PING to PONG: OK +04:17:10> (init) Restart killed instances: OK +04:17:10> (init) Remove old primary entry from sentinels: OK +04:17:10> (init) Create a primary-replicas cluster of 5 instances: OK +04:17:10> (init) Sentinels can start monitoring a primary: OK +04:17:10> (init) Sentinels can talk with the primary: OK +04:17:10> (init) Sentinels are able to auto-discover other sentinels: OK +04:17:12> (init) Sentinels are able to auto-discover replicas: OK +04:17:12> Crash the majority of Sentinels to prevent failovers for this unit: OK +04:17:12> SDOWN is triggered by non-responding but not crashed instance: OK +04:17:14> SDOWN is triggered by crashed instance: OK +04:17:17> SDOWN is triggered by primaries advertising as slaves: OK +04:17:21> SDOWN is triggered by misconfigured instance replying with errors: OK +04:17:31> SDOWN is triggered if we rename PING to PONG: OK Testing unit: 08-hostname-conf.tcl -18:27:57> (pre-init) Configure instances and sentinel for hostname use: sentinel/0 sentinel/1 sentinel/2 OK -18:27:57> (init) Restart killed instances: OK -18:27:57> (init) Remove old primary entry from sentinels: OK -18:27:57> (init) Create a primary-replicas cluster of 5 instances: OK -18:27:57> (init) Sentinels can start monitoring a primary: OK -18:27:58> (init) Sentinels can talk with the primary: OK -18:27:58> (init) Sentinels are able to auto-discover other sentinels: OK -18:28:00> (init) Sentinels are able to auto-discover replicas: OK -18:28:00> Sentinel announces hostnames: OK -18:28:00> (post-cleanup) Configure instances and sentinel for IPs: OK +04:17:33> (pre-init) Configure instances and sentinel for hostname use: sentinel/0 sentinel/1 sentinel/2 OK +04:17:33> (init) Restart killed instances: OK +04:17:33> (init) Remove old primary entry from sentinels: OK +04:17:34> (init) Create a primary-replicas cluster of 5 instances: OK +04:17:34> (init) Sentinels can start monitoring a primary: OK +04:17:34> (init) Sentinels can talk with the primary: OK +04:17:34> (init) Sentinels are able to auto-discover other sentinels: OK +04:17:36> (init) Sentinels are able to auto-discover replicas: OK +04:17:36> Sentinel announces hostnames: OK +04:17:36> (post-cleanup) Configure instances and sentinel for IPs: OK Testing unit: 09-acl-support.tcl -18:28:00> (init) Restart killed instances: OK -18:28:00> (init) Remove old primary entry from sentinels: OK -18:28:00> (init) Create a primary-replicas cluster of 5 instances: OK -18:28:00> (init) Sentinels can start monitoring a primary: OK -18:28:00> (init) Sentinels can talk with the primary: OK -18:28:00> (init) Sentinels are able to auto-discover other sentinels: OK -18:28:02> (init) Sentinels are able to auto-discover replicas: OK -18:28:02> (post-init) Set up ACL configuration: OK -18:28:02> SENTINEL CONFIG SET handles on-the-fly credentials reconfiguration: OK -18:28:05> (post-cleanup) Tear down ACL configuration: OK +04:17:36> (init) Restart killed instances: OK +04:17:36> (init) Remove old primary entry from sentinels: OK +04:17:36> (init) Create a primary-replicas cluster of 5 instances: OK +04:17:36> (init) Sentinels can start monitoring a primary: OK +04:17:36> (init) Sentinels can talk with the primary: OK +04:17:36> (init) Sentinels are able to auto-discover other sentinels: OK +04:17:38> (init) Sentinels are able to auto-discover replicas: OK +04:17:38> (post-init) Set up ACL configuration: OK +04:17:38> SENTINEL CONFIG SET handles on-the-fly credentials reconfiguration: OK +04:17:41> (post-cleanup) Tear down ACL configuration: OK Testing unit: 10-replica-priority.tcl -18:28:05> (init) Restart killed instances: OK -18:28:05> (init) Remove old primary entry from sentinels: OK -18:28:05> (init) Create a primary-replicas cluster of 5 instances: OK -18:28:05> (init) Sentinels can start monitoring a primary: OK -18:28:06> (init) Sentinels can talk with the primary: OK -18:28:06> (init) Sentinels are able to auto-discover other sentinels: OK -18:28:07> (init) Sentinels are able to auto-discover replicas: OK -18:28:07> Check acceptable replica-priority values: OK -18:28:07> Set replica-announced=yes on all replicas: OK -18:28:07> Check sentinel replies with 4 replicas: OK -18:28:07> Set replica-announced=no on 2 replicas: OK -18:28:07> Check sentinel replies with 2 replicas: OK -18:28:08> Set replica-announced=yes on all replicas: OK -18:28:08> Check sentinel replies with 4 replicas: OK +04:17:41> (init) Restart killed instances: OK +04:17:41> (init) Remove old primary entry from sentinels: OK +04:17:41> (init) Create a primary-replicas cluster of 5 instances: OK +04:17:41> (init) Sentinels can start monitoring a primary: OK +04:17:42> (init) Sentinels can talk with the primary: OK +04:17:42> (init) Sentinels are able to auto-discover other sentinels: OK +04:17:44> (init) Sentinels are able to auto-discover replicas: OK +04:17:44> Check acceptable replica-priority values: OK +04:17:44> Set replica-announced=yes on all replicas: OK +04:17:44> Check sentinel replies with 4 replicas: OK +04:17:44> Set replica-announced=no on 2 replicas: OK +04:17:44> Check sentinel replies with 2 replicas: OK +04:17:44> Set replica-announced=yes on all replicas: OK +04:17:44> Check sentinel replies with 4 replicas: OK Testing unit: 11-port-0.tcl -18:28:08> (init) Restart killed instances: OK -18:28:08> (init) Remove old primary entry from sentinels: OK -18:28:08> (init) Create a primary-replicas cluster of 5 instances: OK -18:28:08> (init) Sentinels can start monitoring a primary: OK -18:28:08> (init) Sentinels can talk with the primary: OK -18:28:08> (init) Sentinels are able to auto-discover other sentinels: OK -18:28:08> (init) Sentinels are able to auto-discover replicas: OK -18:28:08> Start/Stop sentinel on same port with a different runID should not change the total number of sentinels: OK +04:17:44> (init) Restart killed instances: OK +04:17:44> (init) Remove old primary entry from sentinels: OK +04:17:44> (init) Create a primary-replicas cluster of 5 instances: OK +04:17:44> (init) Sentinels can start monitoring a primary: OK +04:17:45> (init) Sentinels can talk with the primary: OK +04:17:45> (init) Sentinels are able to auto-discover other sentinels: OK +04:17:45> (init) Sentinels are able to auto-discover replicas: OK +04:17:45> 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 -18:28:09> (init) Restart killed instances: sentinel/4 OK -18:28:09> (init) Remove old primary entry from sentinels: OK -18:28:09> (init) Create a primary-replicas cluster of 5 instances: OK -18:28:09> (init) Sentinels can start monitoring a primary: OK -18:28:10> (init) Sentinels can talk with the primary: OK -18:28:10> (init) Sentinels are able to auto-discover other sentinels: OK -18:28:11> (init) Sentinels are able to auto-discover replicas: OK -18:28:11> Primary reboot in very short time: OK -18:28:19> New primary 127.0.0.1:30003 role matches: OK -18:28:19> All the other slaves now point to the new primary: OK -18:28:19> The old primary eventually gets reconfigured as a slave: OK +04:17:46> (init) Restart killed instances: sentinel/4 OK +04:17:46> (init) Remove old primary entry from sentinels: OK +04:17:46> (init) Create a primary-replicas cluster of 5 instances: OK +04:17:46> (init) Sentinels can start monitoring a primary: OK +04:17:46> (init) Sentinels can talk with the primary: OK +04:17:46> (init) Sentinels are able to auto-discover other sentinels: OK +04:17:48> (init) Sentinels are able to auto-discover replicas: OK +04:17:48> Primary reboot in very short time: OK +04:17:55> New primary 127.0.0.1:30003 role matches: OK +04:17:55> All the other slaves now point to the new primary: OK +04:17:55> The old primary eventually gets reconfigured as a slave: OK Testing unit: 13-info-command.tcl -18:28:28> (init) Restart killed instances: OK -18:28:28> (init) Remove old primary entry from sentinels: OK -18:28:28> (init) Create a primary-replicas cluster of 5 instances: OK -18:28:28> (init) Sentinels can start monitoring a primary: OK -18:28:29> (init) Sentinels can talk with the primary: OK -18:28:29> (init) Sentinels are able to auto-discover other sentinels: OK -18:28:31> (init) Sentinels are able to auto-discover replicas: OK -18:28:31> info command with at most one argument: OK -18:28:31> info command with one sub-section: OK -18:28:31> info command with multiple sub-sections: OK +04:18:05> (init) Restart killed instances: OK +04:18:05> (init) Remove old primary entry from sentinels: OK +04:18:05> (init) Create a primary-replicas cluster of 5 instances: OK +04:18:05> (init) Sentinels can start monitoring a primary: OK +04:18:05> (init) Sentinels can talk with the primary: OK +04:18:05> (init) Sentinels are able to auto-discover other sentinels: OK +04:18:07> (init) Sentinels are able to auto-discover replicas: OK +04:18:07> info command with at most one argument: OK +04:18:07> info command with one sub-section: OK +04:18:07> info command with multiple sub-sections: OK Testing unit: 14-debug-command.tcl -18:28:31> (init) Restart killed instances: OK -18:28:31> (init) Remove old primary entry from sentinels: OK -18:28:31> (init) Create a primary-replicas cluster of 5 instances: OK -18:28:31> (init) Sentinels can start monitoring a primary: OK -18:28:32> (init) Sentinels can talk with the primary: OK -18:28:32> (init) Sentinels are able to auto-discover other sentinels: OK -18:28:33> (init) Sentinels are able to auto-discover replicas: OK -18:28:33> Sentinel debug test with arguments and without argument: OK +04:18:07> (init) Restart killed instances: OK +04:18:07> (init) Remove old primary entry from sentinels: OK +04:18:07> (init) Create a primary-replicas cluster of 5 instances: OK +04:18:07> (init) Sentinels can start monitoring a primary: OK +04:18:08> (init) Sentinels can talk with the primary: OK +04:18:08> (init) Sentinels are able to auto-discover other sentinels: OK +04:18:09> (init) Sentinels are able to auto-discover replicas: OK +04:18:09> Sentinel debug test with arguments and without argument: OK Testing unit: 15-sentinel-deprecated-commands.tcl -18:28:33> (init) Restart killed instances: OK -18:28:33> (init) Remove old primary entry from sentinels: OK -18:28:33> (init) Create a primary-replicas cluster of 5 instances: OK -18:28:33> (init) Sentinels can start monitoring a primary: OK -18:28:34> (init) Sentinels can talk with the primary: OK -18:28:34> (init) Sentinels are able to auto-discover other sentinels: OK -18:28:35> (init) Sentinels are able to auto-discover replicas: OK -18:28:35> SENTINEL MASTERS returns a list of monitored masters (SENTINEL MASTERS as a deprecated command): OK -18:28:35> SENTINEL SLAVES returns a list of the monitored slaves (SENTINEL SLAVES as a deprecated command): OK -18:28:35> SENTINEL MASTER returns the information list of the monitored master (SENTINEL MASTER as a deprecated command): OK -18:28:35> SENTINEL IS-MASTER-DOWN-BY-ADDR checks if the primary is down (SENTINEL IS-MASTER-DOWN-BY-ADDR as a deprecated command): OK +04:18:09> (init) Restart killed instances: OK +04:18:09> (init) Remove old primary entry from sentinels: OK +04:18:09> (init) Create a primary-replicas cluster of 5 instances: OK +04:18:09> (init) Sentinels can start monitoring a primary: OK +04:18:10> (init) Sentinels can talk with the primary: OK +04:18:10> (init) Sentinels are able to auto-discover other sentinels: OK +04:18:11> (init) Sentinels are able to auto-discover replicas: OK +04:18:11> SENTINEL MASTERS returns a list of monitored masters (SENTINEL MASTERS as a deprecated command): OK +04:18:11> SENTINEL SLAVES returns a list of the monitored slaves (SENTINEL SLAVES as a deprecated command): OK +04:18:11> SENTINEL MASTER returns the information list of the monitored master (SENTINEL MASTER as a deprecated command): OK +04:18:11> 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 -18:28:35> (init) Restart killed instances: OK -18:28:35> (init) Remove old primary entry from sentinels: OK -18:28:36> (init) Create a primary-replicas cluster of 5 instances: OK -18:28:36> (init) Sentinels can start monitoring a primary: OK -18:28:36> (init) Sentinels can talk with the primary: OK -18:28:36> (init) Sentinels are able to auto-discover other sentinels: OK -18:28:38> (init) Sentinels are able to auto-discover replicas: OK -18:28:38> SENTINEL CONFIG SET and SENTINEL CONFIG GET handles multiple variables: OK -18:28:38> SENTINEL CONFIG GET for duplicate and unknown variables: OK -18:28:38> SENTINEL CONFIG GET for patterns: OK -18:28:38> SENTINEL CONFIG SET duplicate variables: OK -18:28:38> SENTINEL CONFIG SET, one option does not exist: OK -18:28:38> SENTINEL CONFIG SET, one option with wrong value: OK -18:28:38> SENTINEL CONFIG SET, wrong number of arguments: OK +04:18:12> (init) Restart killed instances: OK +04:18:12> (init) Remove old primary entry from sentinels: OK +04:18:12> (init) Create a primary-replicas cluster of 5 instances: OK +04:18:12> (init) Sentinels can start monitoring a primary: OK +04:18:12> (init) Sentinels can talk with the primary: OK +04:18:12> (init) Sentinels are able to auto-discover other sentinels: OK +04:18:14> (init) Sentinels are able to auto-discover replicas: OK +04:18:14> SENTINEL CONFIG SET and SENTINEL CONFIG GET handles multiple variables: OK +04:18:14> SENTINEL CONFIG GET for duplicate and unknown variables: OK +04:18:14> SENTINEL CONFIG GET for patterns: OK +04:18:14> SENTINEL CONFIG SET duplicate variables: OK +04:18:14> SENTINEL CONFIG SET, one option does not exist: OK +04:18:14> SENTINEL CONFIG SET, one option with wrong value: OK +04:18:14> SENTINEL CONFIG SET, wrong number of arguments: OK Cleaning up... -killing stale instance 1733714 -killing stale instance 1733726 -killing stale instance 1735609 -killing stale instance 1737500 -killing stale instance 1738138 -killing stale instance 1738354 -killing stale instance 1738525 -killing stale instance 1738724 -killing stale instance 1738734 -killing stale instance 1738741 -killing stale instance 1738967 -killing stale instance 1738975 -killing stale instance 1739085 +killing stale instance 3849589 +killing stale instance 3849595 +killing stale instance 3850309 +killing stale instance 3852305 +killing stale instance 3852437 +killing stale instance 3852615 +killing stale instance 3852778 +killing stale instance 3852985 +killing stale instance 3852992 +killing stale instance 3852998 +killing stale instance 3853220 +killing stale instance 3853229 +killing stale instance 3853326 GOOD! No errors. # Clean up after gen-test-certs.sh rm -rf tests/tls || true @@ -7308,14 +7336,14 @@ dh_strip -a dh_makeshlibs -a dh_shlibdeps -a -dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/valkey-tools/usr/bin/valkey-check-aof debian/valkey-tools/usr/bin/valkey-check-rdb debian/valkey-tools/usr/bin/valkey-benchmark debian/valkey-tools/usr/bin/valkey-cli 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-check-rdb debian/valkey-tools/usr/bin/valkey-benchmark debian/valkey-tools/usr/bin/valkey-cli were not linked against libatomic.so.1 (they use none of the library's symbols) +dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/valkey-tools/usr/bin/valkey-cli debian/valkey-tools/usr/bin/valkey-benchmark debian/valkey-tools/usr/bin/valkey-check-rdb debian/valkey-tools/usr/bin/valkey-check-aof were not linked against libatomic.so.1 (they use none of the library's symbols) +dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/valkey-tools/usr/bin/valkey-cli debian/valkey-tools/usr/bin/valkey-benchmark debian/valkey-tools/usr/bin/valkey-check-rdb debian/valkey-tools/usr/bin/valkey-check-aof were not linked against liblzf.so.1 (they use none of the library's symbols) dh_installdeb dh_gencontrol dh_md5sums dh_builddeb -dpkg-deb: building package 'valkey-server' in '../valkey-server_8.0.1+dfsg1-1_amd64.deb'. dpkg-deb: building package 'valkey-sentinel' in '../valkey-sentinel_8.0.1+dfsg1-1_amd64.deb'. +dpkg-deb: building package 'valkey-server' in '../valkey-server_8.0.1+dfsg1-1_amd64.deb'. dpkg-deb: building package 'valkey-tools' in '../valkey-tools_8.0.1+dfsg1-1_amd64.deb'. dpkg-deb: building package 'valkey-tools-dbgsym' in '../valkey-tools-dbgsym_8.0.1+dfsg1-1_amd64.deb'. dpkg-genbuildinfo --build=binary -O../valkey_8.0.1+dfsg1-1_amd64.buildinfo @@ -7325,12 +7353,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/3629683/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/3629683/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/1514483 and its subdirectories -I: Current time: Fri Oct 18 18:28:51 -12 2024 -I: pbuilder-time-stamp: 1729319331 +I: removing directory /srv/workspace/pbuilder/3629683 and its subdirectories +I: Current time: Sat Nov 22 04:18:28 +14 2025 +I: pbuilder-time-stamp: 1763734708