Diff of the two buildlogs: -- --- b1/build.log 2025-09-04 14:11:49.630478773 +0000 +++ b2/build.log 2025-09-04 15:04:54.570283851 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Wed Oct 7 07:43:18 -12 2026 -I: pbuilder-time-stamp: 1791402198 +I: Current time: Fri Sep 5 04:11:51 +14 2025 +I: pbuilder-time-stamp: 1756995111 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/forky-reproducible-base.tgz] I: copying local configuration @@ -31,52 +31,84 @@ dpkg-source: info: applying 0007-Add-Redis-ver.-REDIS_VERSION-to-LOLWUT-8-output-as-a.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/510729/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/2813406/tmp/hooks/D01_modify_environment starting +debug: Running on infom01-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 Sep 4 14:12 /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/2813406/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/2813406/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' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=16 ' - DISTRIBUTION='forky' - HOME='/root' - HOST_ARCH='amd64' + 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]="37" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") + BASH_VERSION='5.2.37(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 ' + DIRSTACK=() + DISTRIBUTION=forky + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=x86_64 + HOST_ARCH=amd64 IFS=' ' - INVOCATION_ID='ee48b6369ee7428f80c3bec920e674ec' - 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='510729' - PS1='# ' - PS2='> ' + INVOCATION_ID=3f5417a5a38f4468ab56b0f68683f1d1 + 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=2813406 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.v53MBpzu/pbuilderrc_HcZx --distribution forky --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/forky-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.v53MBpzu/b1 --logfile b1/build.log redis_8.0.2-3.dsc' - SUDO_GID='109' - SUDO_HOME='/var/lib/jenkins' - SUDO_UID='104' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' + 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.v53MBpzu/pbuilderrc_izki --distribution forky --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/forky-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.v53MBpzu/b2 --logfile b2/build.log redis_8.0.2-3.dsc' + SUDO_GID=109 + SUDO_HOME=/var/lib/jenkins + SUDO_UID=104 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' I: uname -a - Linux infom02-amd64 6.12.41+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.41-1 (2025-08-12) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.12.41+deb13-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.41-1 (2025-08-12) x86_64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Aug 10 2025 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/510729/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Aug 10 12:30 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/2813406/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -198,7 +230,7 @@ Get: 58 http://deb.debian.org/debian forky/main amd64 tcl8.6 amd64 8.6.17+dfsg-1 [121 kB] Get: 59 http://deb.debian.org/debian forky/main amd64 tcl amd64 8.6.16 [4096 B] Get: 60 http://deb.debian.org/debian forky/main amd64 tcl-tls amd64 1.8.0-2 [65.1 kB] -Fetched 22.2 MB in 0s (48.3 MB/s) +Fetched 22.2 MB in 1s (15.2 MB/s) Preconfiguring packages ... Selecting previously unselected package tzdata. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19897 files and directories currently installed.) @@ -400,8 +432,8 @@ Setting up tzdata (2025b-5) ... Current default time zone: 'Etc/UTC' -Local time is now: Wed Oct 7 19:44:14 UTC 2026. -Universal Time is now: Wed Oct 7 19:44:14 UTC 2026. +Local time is now: Thu Sep 4 14:13:01 UTC 2025. +Universal Time is now: Thu Sep 4 14:13:01 UTC 2025. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up libjemalloc-dev (5.3.0-3) ... @@ -463,7 +495,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/redis-8.0.2/ && 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 > ../redis_8.0.2-3_source.changes +I: user script /srv/workspace/pbuilder/2813406/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for forky +I: user script /srv/workspace/pbuilder/2813406/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/redis-8.0.2/ && 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 > ../redis_8.0.2-3_source.changes dpkg-buildpackage: info: source package redis dpkg-buildpackage: info: source version 5:8.0.2-3 dpkg-buildpackage: info: source distribution unstable @@ -475,9 +511,9 @@ debian/rules override_dh_auto_clean make[1]: Entering directory '/build/reproducible-path/redis-8.0.2' dh_auto_clean - make -j16 distclean + make -j12 distclean make[2]: Entering directory '/build/reproducible-path/redis-8.0.2' -make[2]: warning: -j16 forced in submake: resetting jobserver mode. +make[2]: warning: -j12 forced in submake: resetting jobserver mode. for dir in src; do make -C $dir distclean; done make[3]: Entering directory '/build/reproducible-path/redis-8.0.2/src' rm -rf redis-server redis-sentinel redis-cli redis-benchmark redis-check-rdb redis-check-aof *.o *.gcda *.gcno *.gcov redis.info lcov-html Makefile.dep *.so @@ -515,9 +551,9 @@ debian/rules override_dh_auto_build make[1]: Entering directory '/build/reproducible-path/redis-8.0.2' dh_auto_build -- V=1 USE_SYSTEM_JEMALLOC=yes USE_SYSTEMD=yes USE_JEMALLOC=yes - make -j16 "INSTALL=install --strip-program=true" V=1 USE_SYSTEM_JEMALLOC=yes USE_SYSTEMD=yes USE_JEMALLOC=yes + make -j12 "INSTALL=install --strip-program=true" V=1 USE_SYSTEM_JEMALLOC=yes USE_SYSTEMD=yes USE_JEMALLOC=yes make[2]: Entering directory '/build/reproducible-path/redis-8.0.2' -make[2]: warning: -j16 forced in submake: resetting jobserver mode. +make[2]: warning: -j12 forced in submake: resetting jobserver mode. for dir in src; do make -C $dir all; done make[3]: Entering directory '/build/reproducible-path/redis-8.0.2/src' cc -pedantic -DREDIS_STATIC='' -std=gnu11 -Wall -W -Wno-missing-field-initializers -Werror=deprecated-declarations -Wstrict-prototypes -O3 -flto=auto -fno-omit-frame-pointer -g -ggdb -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf -I../deps/hiredis -I../deps/linenoise -I../deps/lua/src -I../deps/hdr_histogram -I../deps/fpconv -I../deps/fast_float -DHAVE_LIBSYSTEMD -DUSE_JEMALLOC -DUSE_SYSTEM_JEMALLOC -I/usr/include/jemalloc/include -DUSE_OPENSSL=1 -DBUILD_TLS_MODULE=0 -DINCLUDE_VEC_SETS=1 -Wdate-time -D_FORTIFY_SOURCE=2 -MM acl.c adlist.c ae.c anet.c aof.c bio.c bitops.c blocked.c call_reply.c childinfo.c cli_commands.c cli_common.c cluster.c cluster_legacy.c commands.c config.c connection.c crc16.c crc64.c crccombine.c crcspeed.c db.c debug.c defrag.c dict.c ebuckets.c endianconv.c eval.c eventnotifier.c evict.c expire.c function_lua.c functions.c geo.c geohash.c geohash_helper.c hnsw.c hyperloglog.c intset.c iothread.c kvstore.c latency.c lazyfree.c listpack.c localtime.c logreqres.c lolwut.c lolwut5.c lolwut6.c lolwut8.c lzf_c.c lzf_d.c memtest.c module.c monotonic.c mstr.c mt19937-64.c multi.c networking.c notify.c object.c pqsort.c pubsub.c quicklist.c rand.c rax.c rdb.c redis-benchmark.c redis-check-aof.c redis-check-rdb.c redis-cli.c redisassert.c release.c replication.c resp_parser.c rio.c script.c script_lua.c sds.c sentinel.c server.c setcpuaffinity.c setproctitle.c sha1.c sha256.c siphash.c slowlog.c socket.c sort.c sparkline.c strl.c syncio.c syscheck.c t_hash.c t_list.c t_set.c t_stream.c t_string.c t_zset.c threads_mngr.c timeout.c tls.c tracking.c unix.c util.c vset.c ziplist.c zipmap.c zmalloc.c > Makefile.dep 2> /dev/null || true @@ -566,58 +602,60 @@ (echo "-g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/liblzf" > .make-cflags) (echo "-Wl,-z,relro -Wl,-z,now -Wl,-no-as-needed -ldl -latomic -llzf" > .make-ldflags) MAKE hiredis -cd hiredis && make static USE_SSL=1 MAKE linenoise -cd linenoise && make +cd hiredis && make static USE_SSL=1 MAKE lua MAKE hdr_histogram +cd linenoise && make cd lua/src && make all CFLAGS="-Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 hdr_histogram && make MAKE fpconv -make[5]: Entering directory '/build/reproducible-path/redis-8.0.2/deps/hiredis' -cd fpconv && make +cd hdr_histogram && make MAKE fast_float +cd fpconv && make cd fast_float && make libfast_float +make[5]: Entering directory '/build/reproducible-path/redis-8.0.2/deps/hiredis' make[5]: Entering directory '/build/reproducible-path/redis-8.0.2/deps/linenoise' cc -Wall -Os -g -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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/redis-8.0.2/deps/hdr_histogram' -cc -std=c99 -Wall -Os -g -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 make[5]: Entering directory '/build/reproducible-path/redis-8.0.2/deps/lua/src' cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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/redis-8.0.2/deps/hdr_histogram' make[5]: Entering directory '/build/reproducible-path/redis-8.0.2/deps/fpconv' cc -Wall -Os -g -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 +cc -std=c99 -Wall -Os -g -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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/redis-8.0.2/deps/fast_float' cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 -make[5]: Entering directory '/build/reproducible-path/redis-8.0.2/deps/fast_float' cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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/redis-8.0.2=. -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 -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 -std=c99 -c -O3 -fPIC -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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/redis-8.0.2=. -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 -std=c99 -c -O3 -fPIC -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 g++ -g -O2 -ffile-prefix-map=/build/reproducible-path/redis-8.0.2/deps/fast_float=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++11 -DFASTFLOAT_ALLOWS_LEADING_PLUS -c fast_float_strtod.cpp -cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 +ar rcs libfpconv.a fpconv_dtoa.o +make[5]: Leaving directory '/build/reproducible-path/redis-8.0.2/deps/fpconv' +cc -std=c99 -c -O3 -fPIC -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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/redis-8.0.2=. -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 -std=c99 -c -O3 -fPIC -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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/redis-8.0.2=. -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 -ar rcs libfpconv.a fpconv_dtoa.o -make[5]: Leaving directory '/build/reproducible-path/redis-8.0.2/deps/fpconv' cc -std=c99 -c -O3 -fPIC -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 +ar rcs libhdrhistogram.a hdr_histogram.o +make[5]: Leaving directory '/build/reproducible-path/redis-8.0.2/deps/hdr_histogram' cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 libhiredis_ssl.a ssl.o cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 -ar rcs libhdrhistogram.a hdr_histogram.o -make[5]: Leaving directory '/build/reproducible-path/redis-8.0.2/deps/hdr_histogram' cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 +make[5]: Leaving directory '/build/reproducible-path/redis-8.0.2/deps/linenoise' cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 @@ -627,26 +665,24 @@ cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 +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/redis-8.0.2/deps/hiredis' cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 -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 -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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_ssl.a ssl.o cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 -make[5]: Leaving directory '/build/reproducible-path/redis-8.0.2/deps/hiredis' cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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/redis-8.0.2/deps/linenoise' cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/redis-8.0.2=. -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 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 +ar -r libfast_float.a fast_float_strtod.o cc -o lua -Wl,-z,relro -Wl,-z,now -Wl,-no-as-needed -ldl -latomic -llzf lua.o liblua.a -lm cc -o luac -Wl,-z,relro -Wl,-z,now -Wl,-no-as-needed -ldl -latomic -llzf luac.o print.o liblua.a -lm make[5]: Leaving directory '/build/reproducible-path/redis-8.0.2/deps/lua/src' -ar -r libfast_float.a fast_float_strtod.o ar: creating libfast_float.a make[5]: Leaving directory '/build/reproducible-path/redis-8.0.2/deps/fast_float' make[4]: Leaving directory '/build/reproducible-path/redis-8.0.2/deps' @@ -785,170 +821,170 @@ Certificate request self-signature ok subject=O=Redis 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]: 524935 +[ready]: 2828151 Testing unit/acl-v2 === (acl external:skip) Starting server 127.0.0.1:21111 ok -[ok]: Test basic multiple selectors (3 ms) -[ok]: Test ACL selectors by default have no permissions (1 ms) +[ok]: Test basic multiple selectors (1 ms) +[ok]: Test ACL selectors by default have no permissions (0 ms) [ok]: Test deleting selectors (1 ms) -[ok]: Test selector syntax error reports the error in the selector context (2 ms) -[ok]: Test flexible selector definition (2 ms) +[ok]: Test selector syntax error reports the error in the selector context (0 ms) +[ok]: Test flexible selector definition (1 ms) [ok]: Test separate read permission (1 ms) -[ok]: Test separate write permission (2 ms) +[ok]: Test separate write permission (0 ms) [ok]: Test separate read and write permissions (1 ms) [ok]: Validate read and write permissions format - empty permission (0 ms) [ok]: Validate read and write permissions format - empty selector (0 ms) -[ok]: Validate read and write permissions format - empty pattern (1 ms) +[ok]: Validate read and write permissions format - empty pattern (0 ms) [ok]: Validate read and write permissions format - no pattern (0 ms) -[ok]: Test separate read and write permissions on different selectors are not additive (2 ms) -[ok]: Test SET with separate read permission (2 ms) -[ok]: Test SET with separate write permission (2 ms) -[ok]: Test SET with read and write permissions (3 ms) -[ok]: Test BITFIELD with separate read permission (2 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 (1 ms) +[ok]: Test SET with read and write permissions (1 ms) +[ok]: Test BITFIELD with separate read permission (0 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 (3 ms) +[ok]: Test BITFIELD with read and write permissions (0 ms) +[ok]: Test ACL log correctly identifies the relevant item when selectors are used (1 ms) [ok]: Test ACL GETUSER response information (1 ms) -[ok]: Test ACL list idempotency (1 ms) +[ok]: Test ACL list idempotency (0 ms) [ok]: Test R+W is the same as all permissions (1 ms) -[ok]: Test basic dry run functionality (1 ms) +[ok]: Test basic dry run functionality (0 ms) [ok]: Test various commands for command permissions (1 ms) -[ok]: Test various odd commands for key permissions (6 ms) -[ok]: Existence test commands are not marked as access (2 ms) -[ok]: Intersection cardinaltiy commands are access commands (2 ms) -[ok]: Test general keyspace commands require some type of permission to execute (3 ms) -[ok]: Cardinality commands require some type of permission to execute (4 ms) -[ok]: Test sharded channel permissions (2 ms) -[ok]: Test sort with ACL permissions (3 ms) -[ok]: Test DRYRUN with wrong number of arguments (1 ms) +[ok]: Test various odd commands for key permissions (2 ms) +[ok]: Existence test commands are not marked as access (1 ms) +[ok]: Intersection cardinaltiy commands are access commands (1 ms) +[ok]: Test general keyspace commands require some type of permission to execute (1 ms) +[ok]: Cardinality commands require some type of permission to execute (2 ms) +[ok]: Test sharded channel permissions (0 ms) +[ok]: Test sort with ACL permissions (1 ms) +[ok]: Test DRYRUN with wrong number of arguments (0 ms) === (external:skip) Starting server 127.0.0.1:21113 ok [ok]: Test behavior of loading ACLs (1 ms) -[1/96 done]: unit/acl-v2 (1 seconds) +[1/96 done]: unit/acl-v2 (0 seconds) Testing unit/acl === (acl external:skip) Starting server 127.0.0.1:21115 ok [ok]: Connections start with the default user (0 ms) -[ok]: It is possible to create new users (1 ms) +[ok]: It is possible to create new users (0 ms) [ok]: Coverage: ACL USERS (0 ms) [ok]: Usernames can not contain spaces or null characters (0 ms) [ok]: New users start disabled (1 ms) [ok]: Enabling the user allows the login (0 ms) -[ok]: Only the set of correct passwords work (1 ms) +[ok]: Only the set of correct passwords work (0 ms) [ok]: It is possible to remove passwords from the set of valid ones (0 ms) [ok]: 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]: ACL GETUSER returns the password hash instead of the actual password (0 ms) [ok]: Test hashed passwords removal (0 ms) [ok]: By default users are not able to access any command (1 ms) [ok]: By default users are not able to access any key (0 ms) -[ok]: It's possible to allow the access of a subset of keys (1 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 (1 ms) -[ok]: By default, only default user is not able to publish to any shard channel (1 ms) -[ok]: By default, only default user is able to subscribe to any channel (8 ms) -[ok]: By default, only default user is able to subscribe to any shard channel (8 ms) -[ok]: By default, only default user is able to subscribe to any pattern (8 ms) -[ok]: It's possible to allow publishing to a subset of channels (1 ms) +[ok]: By default, only default user is not able to publish to any shard channel (0 ms) +[ok]: By default, only default user is able to subscribe to any channel (6 ms) +[ok]: By default, only default user is able to subscribe to any shard channel (6 ms) +[ok]: By default, only default user is able to subscribe to any pattern (6 ms) +[ok]: It's possible to allow publishing to a subset of channels (0 ms) [ok]: It's possible to allow publishing to a subset of shard channels (0 ms) -[ok]: Validate subset of channels is prefixed with resetchannels flag (2 ms) +[ok]: Validate subset of channels is prefixed with resetchannels flag (1 ms) [ok]: In transaction queue publish/subscribe/psubscribe to unauthorized channel will fail (1 ms) -[ok]: It's possible to allow subscribing to a subset of channels (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 (12 ms) -[ok]: Subscribers are killed when revoked of channel permission (8 ms) -[ok]: Subscribers are killed when revoked of channel permission (8 ms) -[ok]: Subscribers are killed when revoked of pattern permission (8 ms) -[ok]: Subscribers are killed when revoked of allchannels permission (8 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 (12 ms) +[ok]: It's possible to allow subscribing to a subset of channels (6 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 (6 ms) +[ok]: Subscribers are killed when revoked of channel permission (6 ms) +[ok]: Subscribers are killed when revoked of channel permission (6 ms) +[ok]: Subscribers are killed when revoked of channel permission (7 ms) +[ok]: Subscribers are killed when revoked of pattern permission (6 ms) +[ok]: Subscribers are killed when revoked of allchannels permission (6 ms) +[ok]: Subscribers are pardoned if literal permissions are retained and/or gaining allchannels (6 ms) +[ok]: blocked command gets rejected when reprocessed after permission change (6 ms) [ok]: Users can be configured to authenticate with any password (1 ms) -[ok]: ACLs can exclude single commands (1 ms) -[ok]: ACLs can include or exclude whole classes of commands (2 ms) +[ok]: ACLs can exclude single commands (0 ms) +[ok]: ACLs can include or exclude whole classes of commands (1 ms) [ok]: ACLs can include single subcommands (1 ms) -[ok]: ACLs can exclude single subcommands, case 1 (2 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 exclude or include a container commands with a specific arg (1 ms) -[ok]: ACLs cannot exclude or include a container command with two args (1 ms) -[ok]: ACLs including of a type includes also subcommands (1 ms) +[ok]: ACLs cannot exclude or include a container command with two args (0 ms) +[ok]: ACLs including of a type includes also subcommands (0 ms) [ok]: ACLs can block SELECT of all but a specific DB (1 ms) -[ok]: ACLs can block all DEBUG subcommands except one (2 ms) -[ok]: ACLs set can include subcommands, if already full command exists (2 ms) -[ok]: ACLs set can exclude subcommands, if already full command exists (3 ms) -[ok]: ACL SETUSER RESET reverting to default newly created user (1 ms) -[ok]: ACL GETUSER is able to translate back command permissions (2 ms) -[ok]: ACL GETUSER provides reasonable results (15 ms) -[ok]: ACL GETUSER provides correct results (6 ms) +[ok]: ACLs can block all DEBUG subcommands except one (1 ms) +[ok]: ACLs set can include subcommands, if already full command exists (1 ms) +[ok]: ACLs set can exclude subcommands, if already full command exists (2 ms) +[ok]: ACL SETUSER RESET reverting to default newly created user (0 ms) +[ok]: ACL GETUSER is able to translate back command permissions (1 ms) +[ok]: ACL GETUSER provides reasonable results (9 ms) +[ok]: ACL GETUSER provides correct results (3 ms) [ok]: ACL CAT with illegal arguments (0 ms) [ok]: ACL CAT without category - list all categories (0 ms) [ok]: ACL CAT category - list all commands/subcommands that belong to category (1 ms) -[ok]: ACL requires explicit permission for scripting for EVAL_RO, EVALSHA_RO and FCALL_RO (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 (6 ms) -[ok]: ACL LOG shows failed command executions at toplevel (2 ms) +[ok]: ACL requires explicit permission for scripting for EVAL_RO, EVALSHA_RO and FCALL_RO (1 ms) +[ok]: ACL #5998 regression: memory leaks adding / removing subcommands (0 ms) +[ok]: ACL LOG aggregates similar errors together and assigns unique entry-id to new errors (4 ms) +[ok]: ACL LOG shows failed command executions at toplevel (1 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 keys access violations and key name (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 RESET is able to flush the entries in the log (0 ms) [ok]: ACL LOG can distinguish the transaction context (1) (1 ms) -[ok]: ACL LOG can distinguish the transaction context (2) (9 ms) -[ok]: ACL can log errors in the context of Lua scripting (2 ms) -[ok]: ACL LOG can accept a numerical argument to show less entries (3 ms) +[ok]: ACL LOG can distinguish the transaction context (2) (6 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 (1 ms) [ok]: ACL LOG can log failed auth attempts (1 ms) -[ok]: ACLLOG - zero max length is correctly handled (2 ms) -[ok]: ACL LOG entries are limited to a maximum amount (4 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 (8 ms) -[ok]: When default user has no command permission, hello command still works for other users (1 ms) +[ok]: ACLLOG - zero max length is correctly handled (1 ms) +[ok]: ACL LOG entries are limited to a maximum amount (2 ms) +[ok]: ACL LOG entries are still present on update of max len config (0 ms) +[ok]: When default user is off, new connections are not authenticated (5 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 (1 ms) +[ok]: When a setname chain is used in the HELLO cmd, the last setname cmd has precedence (0 ms) [ok]: When authentication fails in the HELLO cmd, the client setname should not be applied (1 ms) [ok]: ACL HELP should not have unexpected options (0 ms) -[ok]: Delete a user that the client doesn't use (1 ms) -[ok]: Delete a user that the client is using (0 ms) -[ok]: ACL GENPASS command failed test (8 ms) -[ok]: Default user can not be removed (1 ms) +[ok]: Delete a user that the client doesn't use (0 ms) +[ok]: Delete a user that the client is using (1 ms) +[ok]: ACL GENPASS command failed test (4 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 (6 ms) -[ok]: ACL-Metrics invalid command accesses (4 ms) -[ok]: ACL-Metrics invalid key accesses (4 ms) -[ok]: ACL-Metrics invalid channels accesses (3 ms) +[ok]: ACL-Metrics user AUTH failure (2 ms) +[ok]: ACL-Metrics invalid command accesses (2 ms) +[ok]: ACL-Metrics invalid key accesses (2 ms) +[ok]: ACL-Metrics invalid channels accesses (1 ms) === (external:skip) Starting server 127.0.0.1:21117 ok -[ok]: default: load from include file, can access any channels (1 ms) -[ok]: default: with config acl-pubsub-default allchannels after reset, can access any channels (1 ms) +[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]: Alice: can execute all command (0 ms) -[ok]: Bob: just execute @set and acl command (1 ms) -[ok]: ACL LOAD only disconnects affected clients (23 ms) -[ok]: ACL LOAD disconnects affected subscriber (14 ms) -[ok]: ACL LOAD disconnects clients of deleted users (22 ms) -[ok]: ACL load and save (266 ms) -[ok]: ACL load and save with restricted channels (8 ms) +[ok]: Bob: just execute @set and acl command (0 ms) +[ok]: ACL LOAD only disconnects affected clients (16 ms) +[ok]: ACL LOAD disconnects affected subscriber (10 ms) +[ok]: ACL LOAD disconnects clients of deleted users (15 ms) +[ok]: ACL load and save (108 ms) +[ok]: ACL load and save with restricted channels (18 ms) === (repl external:skip) Starting server 127.0.0.1:21119 ok [ok]: First server should have role slave after SLAVEOF (102 ms) -[ok]: ACL load on replica when connected to replica (1 ms) +[ok]: ACL load on replica when connected to replica (0 ms) === (external:skip) Starting server 127.0.0.1:21121 ok -[ok]: Default user has access to all channels irrespective of flag (1 ms) +[ok]: Default user has access to all channels irrespective of flag (0 ms) [ok]: Update acl-pubsub-default, existing users shouldn't get affected (1 ms) [ok]: Single channel is valid (0 ms) [ok]: Single channel is not valid with allchannels (0 ms) === (external:skip) Starting server 127.0.0.1:21123 ok [ok]: Only default user has access to all channels irrespective of flag (1 ms) === (external:skip) Starting server 127.0.0.1:21125 ok -[ok]: default: load from config file, without channel permission default user can't access any channels (1 ms) +[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:21127 ok -[ok]: default: load from config file with all channels permissions (1 ms) +[ok]: default: load from config file with all channels permissions (0 ms) === (external:skip) Starting server 127.0.0.1:21129 ok -[ok]: Test loading an ACL file with duplicate users (5 ms) -[ok]: Test loading an ACL file with duplicate default user (5 ms) -[ok]: Test loading duplicate users in config on startup (19 ms) +[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 (14 ms) === (acl external:skip) Starting server 127.0.0.1:21131 ok -[ok]: ACL from config file and config rewrite (207 ms) +[ok]: ACL from config file and config rewrite (209 ms) [2/96 done]: unit/acl (3 seconds) Testing unit/aofrw === (aofrw external:skip logreqres:skip) Starting server 127.0.0.1:21133 ok @@ -960,13 +996,12 @@ 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 (7980 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... [ok]: AOF rewrite during write load: RDB preamble=yes (9132 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... @@ -975,92 +1010,79 @@ 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 (12536 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite during write load: RDB preamble=no (11573 ms) === (aofrw external:skip) Starting server 127.0.0.1:21135 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 (282 ms) - -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of list with listpack encoding, string data (60 ms) +Waiting for background AOF rewrite to finish... [ok]: Turning off AOF kills the background writing child if any (120 ms) Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of list with quicklist encoding, string data (239 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of list with listpack encoding, string data (107 ms) -Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of list with listpack encoding, int data (128 ms) - -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of list with quicklist encoding, int data (227 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of list with quicklist encoding, string data (131 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 (284 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of list with listpack encoding, int data (106 ms) Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of set with hashtable encoding, string data (1760 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 (139 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of list with quicklist encoding, int data (230 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 of set with hashtable encoding, int data (589 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of set with intset encoding, string data (107 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 of hash with listpack encoding, string data (251 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of set with hashtable encoding, string data (118 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 of hash with hashtable encoding, string data (346 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of set with intset encoding, int data (106 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 (157 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of set with hashtable encoding, int data (120 ms) Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of hash with hashtable encoding, int data (440 ms) +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... -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of zset with listpack encoding, string data (127 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of hash with hashtable encoding, string data (126 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... [ok]: AOF rewrite of zset with skiplist encoding, string data (539 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of hash with listpack encoding, int data (105 ms) + +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of hash with hashtable encoding, int data (116 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 (125 ms) +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]: AOF rewrite of zset with skiplist encoding, string data (127 ms) Waiting for background AOF rewrite to finish... -Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of zset with skiplist encoding, int data (245 ms) +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of zset with listpack encoding, int data (105 ms) + +Waiting for background AOF rewrite to finish... [ok]: AOF rewrite of zset with skiplist encoding, int data (115 ms) Waiting for background AOF rewrite to finish... Waiting for background AOF rewrite to finish... [ok]: AOF rewrite functions (112 ms) -[ok]: BGREWRITEAOF is delayed if BGSAVE is in progress (240 ms) -[ok]: BGREWRITEAOF is refused if already in progress (34 ms) -[3/96 done]: unit/aofrw (28 seconds) +[ok]: BGREWRITEAOF is delayed if BGSAVE is in progress (220 ms) +[ok]: BGREWRITEAOF is refused if already in progress (14 ms) +[3/96 done]: unit/aofrw (22 seconds) Testing unit/auth === (auth external:skip) Starting server 127.0.0.1:21137 ok -[ok]: AUTH fails if there is no password configured server side (0 ms) -[ok]: Arity check for auth command (1 ms) +[ok]: AUTH fails if there is no password configured server side (1 ms) +[ok]: Arity check for auth command (0 ms) === (auth external:skip) Starting server 127.0.0.1:21139 ok -[ok]: AUTH fails when a wrong password is given (5 ms) -[ok]: Arbitrary command gives an error when AUTH is required (0 ms) +[ok]: AUTH fails when a wrong password is given (4 ms) +[ok]: Arbitrary command gives an error when AUTH is required (1 ms) [ok]: AUTH succeeds when the right password is given (0 ms) [ok]: Once AUTH succeeded we can actually send commands to the server (0 ms) -[ok]: For unauthenticated clients multibulk and bulk length are limited (13 ms) +[ok]: For unauthenticated clients multibulk and bulk length are limited (9 ms) [TIMEOUT]: clients state report follows. -sock56506782a5a0 => (IN PROGRESS) For unauthenticated clients output buffer is limited -Killing still running Redis server 527777 +sock5577b9db2b20 => (IN PROGRESS) For unauthenticated clients output buffer is limited +Killing still running Redis server 2831341 The End Execution time of different units: - 1 seconds - unit/acl-v2 + 0 seconds - unit/acl-v2 3 seconds - unit/acl - 28 seconds - unit/aofrw + 22 seconds - unit/aofrw !!! WARNING The following tests failed: @@ -1088,461 +1110,459 @@ Starting redis #18 at port 30036 Starting redis #19 at port 30038 Testing unit: 00-base.tcl -08:05:22> (init) Restart killed instances: OK -08:05:22> Cluster nodes are reachable: OK -08:05:22> Cluster nodes hard reset: OK -08:05:28> Cluster Join and auto-discovery test: OK -08:05:31> Before slots allocation, all nodes report cluster failure: OK -08:05:31> Different nodes have different IDs: OK -08:05:31> It is possible to perform slot allocation: OK -08:05:31> After the join, every node gets a different config epoch: OK -08:05:32> Nodes should report cluster_state is ok now: OK -08:05:35> Sanity for CLUSTER COUNTKEYSINSLOT: OK -08:05:35> It is possible to write and read from the cluster: OK -08:05:35> CLUSTER RESET SOFT test: OK -08:05:36> Coverage: CLUSTER HELP: OK -08:05:36> Coverage: ASKING: OK -08:05:36> CLUSTER SLAVES and CLUSTER REPLICAS with zero replicas: OK +04:34:13> (init) Restart killed instances: OK +04:34:13> Cluster nodes are reachable: OK +04:34:13> Cluster nodes hard reset: OK +04:34:14> Cluster Join and auto-discovery test: OK +04:34:17> Before slots allocation, all nodes report cluster failure: OK +04:34:17> Different nodes have different IDs: OK +04:34:17> It is possible to perform slot allocation: OK +04:34:17> After the join, every node gets a different config epoch: OK +04:34:17> Nodes should report cluster_state is ok now: OK +04:34:20> Sanity for CLUSTER COUNTKEYSINSLOT: OK +04:34:20> It is possible to write and read from the cluster: OK +04:34:20> CLUSTER RESET SOFT test: OK +04:34:20> Coverage: CLUSTER HELP: OK +04:34:20> Coverage: ASKING: OK +04:34:20> CLUSTER SLAVES and CLUSTER REPLICAS with zero replicas: OK Testing unit: 01-faildet.tcl -08:05:36> (init) Restart killed instances: OK -08:05:36> Cluster nodes are reachable: OK -08:05:36> Cluster nodes hard reset: OK -08:05:44> Cluster Join and auto-discovery test: OK -08:05:46> Before slots allocation, all nodes report cluster failure: OK -08:05:46> Create a 5 nodes cluster: OK -08:05:50> Cluster should start ok: OK -08:05:50> Killing two slave nodes: OK -08:05:51> Cluster should be still up: OK -08:05:51> Killing one master node: OK -08:05:52> Cluster should be down now: OK -08:05:54> Restarting master node: OK -08:05:55> Cluster should be up again: OK +04:34:20> (init) Restart killed instances: OK +04:34:20> Cluster nodes are reachable: OK +04:34:20> Cluster nodes hard reset: OK +04:34:21> Cluster Join and auto-discovery test: OK +04:34:23> Before slots allocation, all nodes report cluster failure: OK +04:34:23> Create a 5 nodes cluster: OK +04:34:27> Cluster should start ok: OK +04:34:27> Killing two slave nodes: OK +04:34:27> Cluster should be still up: OK +04:34:27> Killing one master node: OK +04:34:27> Cluster should be down now: OK +04:34:31> Restarting master node: OK +04:34:31> Cluster should be up again: OK Testing unit: 02-failover.tcl -08:06:02> (init) Restart killed instances: redis/5 redis/6 OK -08:06:04> Cluster nodes are reachable: OK -08:06:04> Cluster nodes hard reset: OK -08:06:05> Cluster Join and auto-discovery test: OK -08:06:08> Before slots allocation, all nodes report cluster failure: OK -08:06:08> Create a 5 nodes cluster: OK -08:06:13> Cluster is up: OK -08:06:13> Cluster is writable: OK -08:06:13> Instance #5 is a slave: OK -08:06:13> Instance #5 synced with the master: OK -08:06:13> Killing one master node: OK -08:06:14> Wait for failover: OK -08:06:19> Cluster should eventually be up again: OK -08:06:19> Cluster is writable: OK -08:06:19> Instance #5 is now a master: OK -08:06:19> Restarting the previously killed master node: OK -08:06:19> Instance #0 gets converted into a slave: OK +04:34:38> (init) Restart killed instances: redis/5 redis/6 OK +04:34:38> Cluster nodes are reachable: OK +04:34:39> Cluster nodes hard reset: OK +04:34:39> Cluster Join and auto-discovery test: OK +04:34:41> Before slots allocation, all nodes report cluster failure: OK +04:34:41> Create a 5 nodes cluster: OK +04:34:45> Cluster is up: OK +04:34:45> Cluster is writable: OK +04:34:45> Instance #5 is a slave: OK +04:34:45> Instance #5 synced with the master: OK +04:34:45> Killing one master node: OK +04:34:46> Wait for failover: OK +04:34:50> Cluster should eventually be up again: OK +04:34:50> Cluster is writable: OK +04:34:50> Instance #5 is now a master: OK +04:34:50> Restarting the previously killed master node: OK +04:34:50> Instance #0 gets converted into a slave: OK Testing unit: 03-failover-loop.tcl -08:06:19> (init) Restart killed instances: OK -08:06:19> Cluster nodes are reachable: OK -08:06:19> Cluster nodes hard reset: OK -08:06:23> Cluster Join and auto-discovery test: OK -08:06:28> Before slots allocation, all nodes report cluster failure: OK -08:06:28> Create a 5 nodes cluster: OK -08:06:32> Cluster is up: OK +04:34:50> (init) Restart killed instances: OK +04:34:50> Cluster nodes are reachable: OK +04:34:50> Cluster nodes hard reset: OK +04:34:51> Cluster Join and auto-discovery test: OK +04:34:54> Before slots allocation, all nodes report cluster failure: OK +04:34:54> Create a 5 nodes cluster: OK +04:34:57> Cluster is up: OK --- Iteration 19 --- -08:06:32> Wait for slave of #0 to sync: OK -08:06:32> Cluster is writable before failover: OK -08:06:32> Terminating node #0: OK -08:06:33> Wait failover by #5 with old epoch 1: OK -08:06:39> Cluster should eventually be up again: OK -08:06:39> Cluster is writable again: OK -08:06:39> Restarting node #0: OK -08:06:40> Instance #0 is now a slave: OK -08:06:40> We can read back the value we set before: OK +04:34:57> Cluster is writable before failover: OK +04:34:57> Terminating node #8: OK +04:34:57> Cluster should eventually be up again: OK +04:34:57> Cluster is writable again: OK +04:34:58> Restarting node #8: OK +04:34:58> Instance #8 is now a slave: OK +04:34:58> We can read back the value we set before: OK --- Iteration 18 --- -08:06:41> Wait for slave of #4 to sync: OK -08:06:41> Cluster is writable before failover: OK -08:06:41> Terminating node #4: OK -08:06:42> Wait failover by #9 with old epoch 5: OK -08:06:48> Cluster should eventually be up again: OK -08:06:48> Cluster is writable again: OK -08:06:49> Restarting node #4: OK -08:06:49> Instance #4 is now a slave: OK -08:06:49> We can read back the value we set before: OK +04:34:58> Wait for slave of #4 to sync: OK +04:34:58> Cluster is writable before failover: OK +04:34:58> Terminating node #4: OK +04:34:59> Wait failover by #9 with old epoch 5: OK +04:35:03> Cluster should eventually be up again: OK +04:35:03> Cluster is writable again: OK +04:35:03> Restarting node #4: OK +04:35:03> Instance #4 is now a slave: OK +04:35:03> We can read back the value we set before: OK --- Iteration 17 --- -08:06:49> Cluster is writable before failover: OK -08:06:49> Terminating node #7: OK -08:06:50> Cluster should eventually be up again: OK -08:06:50> Cluster is writable again: OK -08:06:50> Restarting node #7: OK -08:06:51> Instance #7 is now a slave: OK -08:06:51> We can read back the value we set before: OK +04:35:04> Cluster is writable before failover: OK +04:35:04> Terminating node #8: OK +04:35:04> Cluster should eventually be up again: OK +04:35:04> Cluster is writable again: OK +04:35:04> Restarting node #8: OK +04:35:04> Instance #8 is now a slave: OK +04:35:04> We can read back the value we set before: OK --- Iteration 16 --- -08:06:51> Wait for slave of #1 to sync: OK -08:06:51> Cluster is writable before failover: OK -08:06:51> Terminating node #1: OK -08:06:52> Wait failover by #6 with old epoch 2: OK -08:06:57> Cluster should eventually be up again: OK -08:06:57> Cluster is writable again: OK -08:06:57> Restarting node #1: OK -08:06:57> Instance #1 is now a slave: OK -08:06:57> We can read back the value we set before: OK +04:35:04> Cluster is writable before failover: OK +04:35:04> Terminating node #8: OK +04:35:04> Cluster should eventually be up again: OK +04:35:04> Cluster is writable again: OK +04:35:04> Restarting node #8: OK +04:35:04> Instance #8 is now a slave: OK +04:35:04> We can read back the value we set before: OK --- Iteration 15 --- -08:06:57> Wait for slave of #5 to sync: OK -08:06:57> Cluster is writable before failover: OK -08:06:57> Terminating node #5: OK -08:06:58> Wait failover by #0 with old epoch 21: OK -08:07:03> Cluster should eventually be up again: OK -08:07:04> Cluster is writable again: OK -08:07:04> Restarting node #5: OK -08:07:04> Instance #5 is now a slave: OK -08:07:04> We can read back the value we set before: OK +04:35:04> Cluster is writable before failover: OK +04:35:04> Terminating node #4: OK +04:35:04> Cluster should eventually be up again: OK +04:35:04> Cluster is writable again: OK +04:35:04> Restarting node #4: OK +04:35:04> Instance #4 is now a slave: OK +04:35:04> We can read back the value we set before: OK --- Iteration 14 --- -08:07:05> Wait for slave of #2 to sync: OK -08:07:05> Cluster is writable before failover: OK -08:07:05> Terminating node #2: OK -08:07:05> Wait failover by #7 with old epoch 3: OK -08:07:09> Cluster should eventually be up again: OK -08:07:10> Cluster is writable again: OK -08:07:10> Restarting node #2: OK -08:07:10> Instance #2 is now a slave: OK -08:07:10> We can read back the value we set before: OK +04:35:04> Cluster is writable before failover: OK +04:35:04> Terminating node #6: OK +04:35:05> Cluster should eventually be up again: OK +04:35:05> Cluster is writable again: OK +04:35:05> Restarting node #6: OK +04:35:05> Instance #6 is now a slave: OK +04:35:05> We can read back the value we set before: OK --- Iteration 13 --- -08:07:10> Cluster is writable before failover: OK -08:07:10> Terminating node #8: OK -08:07:10> Cluster should eventually be up again: OK -08:07:10> Cluster is writable again: OK -08:07:11> Restarting node #8: OK -08:07:12> Instance #8 is now a slave: OK -08:07:12> We can read back the value we set before: OK +04:35:05> Cluster is writable before failover: OK +04:35:05> Terminating node #6: OK +04:35:05> Cluster should eventually be up again: OK +04:35:05> Cluster is writable again: OK +04:35:05> Restarting node #6: OK +04:35:05> Instance #6 is now a slave: OK +04:35:05> We can read back the value we set before: OK --- Iteration 12 --- -08:07:12> Cluster is writable before failover: OK -08:07:12> Terminating node #2: OK -08:07:13> Cluster should eventually be up again: OK -08:07:13> Cluster is writable again: OK -08:07:13> Restarting node #2: OK -08:07:15> Instance #2 is now a slave: OK -08:07:15> We can read back the value we set before: OK +04:35:05> Wait for slave of #2 to sync: OK +04:35:05> Cluster is writable before failover: OK +04:35:05> Terminating node #2: OK +04:35:06> Wait failover by #7 with old epoch 3: OK +04:35:10> Cluster should eventually be up again: OK +04:35:10> Cluster is writable again: OK +04:35:10> Restarting node #2: OK +04:35:10> Instance #2 is now a slave: OK +04:35:10> We can read back the value we set before: OK --- Iteration 11 --- -08:07:15> Cluster is writable before failover: OK -08:07:15> Terminating node #4: OK -08:07:16> Cluster should eventually be up again: OK -08:07:16> Cluster is writable again: OK -08:07:16> Restarting node #4: OK -08:07:17> Instance #4 is now a slave: OK -08:07:17> We can read back the value we set before: OK +04:35:10> Cluster is writable before failover: OK +04:35:10> Terminating node #6: OK +04:35:10> Cluster should eventually be up again: OK +04:35:11> Cluster is writable again: OK +04:35:11> Restarting node #6: OK +04:35:11> Instance #6 is now a slave: OK +04:35:11> We can read back the value we set before: OK --- Iteration 10 --- -08:07:17> Cluster is writable before failover: OK -08:07:17> Terminating node #2: OK -08:07:17> Cluster should eventually be up again: OK -08:07:17> Cluster is writable again: OK -08:07:17> Restarting node #2: OK -08:07:17> Instance #2 is now a slave: OK -08:07:17> We can read back the value we set before: OK +04:35:11> Wait for slave of #0 to sync: OK +04:35:11> Cluster is writable before failover: OK +04:35:11> Terminating node #0: OK +04:35:11> Wait failover by #5 with old epoch 1: OK +04:35:17> Cluster should eventually be up again: OK +04:35:17> Cluster is writable again: OK +04:35:17> Restarting node #0: OK +04:35:17> Instance #0 is now a slave: OK +04:35:17> We can read back the value we set before: OK --- Iteration 9 --- -08:07:17> Cluster is writable before failover: OK -08:07:17> Terminating node #8: OK -08:07:18> Cluster should eventually be up again: OK -08:07:18> Cluster is writable again: OK -08:07:18> Restarting node #8: OK -08:07:18> Instance #8 is now a slave: OK -08:07:18> We can read back the value we set before: OK +04:35:17> Wait for slave of #1 to sync: OK +04:35:17> Cluster is writable before failover: OK +04:35:17> Terminating node #1: OK +04:35:18> Wait failover by #6 with old epoch 2: OK +04:35:23> Cluster should eventually be up again: OK +04:35:23> Cluster is writable again: OK +04:35:23> Restarting node #1: OK +04:35:23> Instance #1 is now a slave: OK +04:35:23> We can read back the value we set before: OK --- Iteration 8 --- -08:07:18> Cluster is writable before failover: OK -08:07:18> Terminating node #5: OK -08:07:19> Cluster should eventually be up again: OK -08:07:19> Cluster is writable again: OK -08:07:19> Restarting node #5: OK -08:07:19> Instance #5 is now a slave: OK -08:07:19> We can read back the value we set before: OK +04:35:23> Cluster is writable before failover: OK +04:35:23> Terminating node #8: OK +04:35:24> Cluster should eventually be up again: OK +04:35:24> Cluster is writable again: OK +04:35:24> Restarting node #8: OK +04:35:24> Instance #8 is now a slave: OK +04:35:24> We can read back the value we set before: OK --- Iteration 7 --- -08:07:20> Wait for slave of #0 to sync: OK -08:07:20> Cluster is writable before failover: OK -08:07:20> Terminating node #0: OK -08:07:20> Wait failover by #5 with old epoch 24: OK -08:07:25> Cluster should eventually be up again: OK -08:07:25> Cluster is writable again: OK -08:07:26> Restarting node #0: OK -08:07:26> Instance #0 is now a slave: OK -08:07:26> We can read back the value we set before: OK +04:35:24> Wait for slave of #5 to sync: OK +04:35:24> Cluster is writable before failover: OK +04:35:24> Terminating node #5: OK +04:35:24> Wait failover by #0 with old epoch 23: OK +04:35:29> Cluster should eventually be up again: OK +04:35:29> Cluster is writable again: OK +04:35:29> Restarting node #5: OK +04:35:29> Instance #5 is now a slave: OK +04:35:29> We can read back the value we set before: OK --- Iteration 6 --- -08:07:26> Cluster is writable before failover: OK -08:07:26> Terminating node #8: OK -08:07:26> Cluster should eventually be up again: OK -08:07:26> Cluster is writable again: OK -08:07:26> Restarting node #8: OK -08:07:27> Instance #8 is now a slave: OK -08:07:27> We can read back the value we set before: OK +04:35:29> Wait for slave of #0 to sync: OK +04:35:29> Cluster is writable before failover: OK +04:35:29> Terminating node #0: OK +04:35:30> Wait failover by #5 with old epoch 25: OK +04:35:36> Cluster should eventually be up again: OK +04:35:36> Cluster is writable again: OK +04:35:36> Restarting node #0: OK +04:35:36> Instance #0 is now a slave: OK +04:35:36> We can read back the value we set before: OK --- Iteration 5 --- -08:07:27> Cluster is writable before failover: OK -08:07:27> Terminating node #8: OK -08:07:27> Cluster should eventually be up again: OK -08:07:27> Cluster is writable again: OK -08:07:27> Restarting node #8: OK -08:07:27> Instance #8 is now a slave: OK -08:07:27> We can read back the value we set before: OK +04:35:36> Cluster is writable before failover: OK +04:35:36> Terminating node #8: OK +04:35:37> Cluster should eventually be up again: OK +04:35:37> Cluster is writable again: OK +04:35:37> Restarting node #8: OK +04:35:37> Instance #8 is now a slave: OK +04:35:37> We can read back the value we set before: OK --- Iteration 4 --- -08:07:27> Wait for slave of #7 to sync: OK -08:07:27> Cluster is writable before failover: OK -08:07:27> Terminating node #7: OK -08:07:28> Wait failover by #2 with old epoch 25: OK -08:07:33> Cluster should eventually be up again: OK -08:07:33> Cluster is writable again: OK -08:07:33> Restarting node #7: OK -08:07:34> Instance #7 is now a slave: OK -08:07:34> We can read back the value we set before: OK +04:35:37> Cluster is writable before failover: OK +04:35:37> Terminating node #4: OK +04:35:37> Cluster should eventually be up again: OK +04:35:37> Cluster is writable again: OK +04:35:37> Restarting node #4: OK +04:35:37> Instance #4 is now a slave: OK +04:35:37> We can read back the value we set before: OK --- Iteration 3 --- -08:07:35> Wait for slave of #6 to sync: OK -08:07:35> Cluster is writable before failover: OK -08:07:35> Terminating node #6: OK -08:07:35> Wait failover by #1 with old epoch 23: OK -08:07:40> Cluster should eventually be up again: OK -08:07:40> Cluster is writable again: OK -08:07:40> Restarting node #6: OK -08:07:40> Instance #6 is now a slave: OK -08:07:40> We can read back the value we set before: OK +04:35:37> Wait for slave of #6 to sync: OK +04:35:37> Cluster is writable before failover: OK +04:35:37> Terminating node #6: OK +04:35:38> Wait failover by #1 with old epoch 24: OK +04:35:43> Cluster should eventually be up again: OK +04:35:43> Cluster is writable again: OK +04:35:43> Restarting node #6: OK +04:35:43> Instance #6 is now a slave: OK +04:35:43> We can read back the value we set before: OK --- Iteration 2 --- -08:07:41> Cluster is writable before failover: OK -08:07:41> Terminating node #4: OK -08:07:41> Cluster should eventually be up again: OK -08:07:41> Cluster is writable again: OK -08:07:41> Restarting node #4: OK -08:07:41> Instance #4 is now a slave: OK -08:07:41> We can read back the value we set before: OK +04:35:43> Cluster is writable before failover: OK +04:35:43> Terminating node #0: OK +04:35:43> Cluster should eventually be up again: OK +04:35:43> Cluster is writable again: OK +04:35:43> Restarting node #0: OK +04:35:44> Instance #0 is now a slave: OK +04:35:44> We can read back the value we set before: OK --- Iteration 1 --- -08:07:41> Cluster is writable before failover: OK -08:07:41> Terminating node #6: OK -08:07:42> Cluster should eventually be up again: OK -08:07:42> Cluster is writable again: OK -08:07:42> Restarting node #6: OK -08:07:42> Instance #6 is now a slave: OK -08:07:42> We can read back the value we set before: OK -08:07:42> Post condition: current_epoch >= my_epoch everywhere: OK +04:35:44> Cluster is writable before failover: OK +04:35:44> Terminating node #2: OK +04:35:44> Cluster should eventually be up again: OK +04:35:44> Cluster is writable again: OK +04:35:44> Restarting node #2: OK +04:35:44> Instance #2 is now a slave: OK +04:35:44> We can read back the value we set before: OK +04:35:44> Post condition: current_epoch >= my_epoch everywhere: OK Testing unit: 04-resharding.tcl -08:07:42> (init) Restart killed instances: OK -08:07:42> Cluster nodes are reachable: OK -08:07:42> Cluster nodes hard reset: OK -08:07:48> Cluster Join and auto-discovery test: OK -08:07:53> Before slots allocation, all nodes report cluster failure: OK -08:07:53> Create a 5 nodes cluster: OK -08:07:57> Cluster is up: OK -08:07:57> Enable AOF in all the instances: OK +04:35:44> (init) Restart killed instances: OK +04:35:44> Cluster nodes are reachable: OK +04:35:44> Cluster nodes hard reset: OK +04:35:45> Cluster Join and auto-discovery test: OK +04:35:48> Before slots allocation, all nodes report cluster failure: OK +04:35:48> Create a 5 nodes cluster: OK +04:35:52> Cluster is up: OK +04:35:52> Enable AOF in all the instances: OK Testing TLS cluster on start node 127.0.0.1:30000, plaintext port 30001 -08:07:57> Cluster consistency during live resharding: WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW...Starting resharding...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....................................................................................W....................................W.................................................................W.................................................................................................................W.........................................................................................................................W..............................................................................................................WWWW...Starting resharding...W...................................................................................................W.................................................................................W........................W.............W........W...............W........W...............W..............................................W.............................................................................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.........................W...................W............................W.................W...................................................................................................W............................W..............................W....................................................................W....................W.............................................................................................................................................................................................................................................................................................................................................................OK -08:10:37> Verify 50000 keys for consistency with logical content: OK -08:10:48> Terminate and restart all the instances: OK -08:10:54> Cluster should eventually be up again: OK -08:10:56> Verify 50000 keys after the restart: OK -08:11:07> Disable AOF in all the instances: OK -08:11:10> Verify slaves consistency: OK -08:11:11> Dump sanitization was skipped for migrations: OK +04:35:52> Cluster consistency during live resharding: WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW...Starting resharding...W...........................W.................................................................................................................................W................................................................W..................................................................................W...........................W..................................................................................WW...................WW.......................................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..........................................................WWWWWW...Starting resharding...W...........................W..................................................................................................................................W....................................................................................W................................W.......................................................................................................................W...............................................................................W.............................................................................................................W..............................................................................................W...........................................................................................................W........WW............................................................W.....................................................................................W............................................WWWWWW...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.................................................................WW......WW...........WW..........W.....................................................................................W...................................................................................................W...............................................................................................................WWWOK +04:37:21> Verify 50000 keys for consistency with logical content: OK +04:37:26> Terminate and restart all the instances: OK +04:37:40> Cluster should eventually be up again: OK +04:37:41> Verify 50000 keys after the restart: OK +04:37:47> Disable AOF in all the instances: OK +04:37:48> Verify slaves consistency: OK +04:37:49> Dump sanitization was skipped for migrations: OK Testing unit: 05-slave-selection.tcl -08:11:11> (init) Restart killed instances: OK -08:11:11> Cluster nodes are reachable: OK -08:11:11> Cluster nodes hard reset: OK -08:11:15> Cluster Join and auto-discovery test: OK -08:11:19> Before slots allocation, all nodes report cluster failure: OK -08:11:19> Create a 5 nodes cluster: OK -08:11:23> Cluster is up: OK -08:11:23> The first master has actually two slaves: OK -08:11:23> CLUSTER SLAVES and CLUSTER REPLICAS output is consistent: OK -08:11:23> Slaves of #0 are instance #5 and #10 as expected: OK -08:11:23> Instance #5 and #10 synced with the master: OK -08:11:24> Slaves are both able to receive and acknowledge writes: OK -08:11:24> Write data while slave #10 is paused and can't receive it: OK -08:11:34> Wait for instance #5 (and not #10) to turn into a master: OK -08:11:39> Wait for the node #10 to return alive before ending the test: OK -08:11:40> Cluster should eventually be up again: OK -08:11:40> Node #10 should eventually replicate node #5: OK -08:11:40> (init) Restart killed instances: redis/0 OK -08:11:40> Cluster nodes are reachable: OK -08:11:40> Cluster nodes hard reset: OK -08:11:46> Cluster Join and auto-discovery test: OK -08:11:55> Before slots allocation, all nodes report cluster failure: OK -08:11:55> Create a 3 nodes cluster: OK -08:11:59> Cluster is up: OK -08:12:00> The first master has actually 5 slaves: OK -08:12:00> Slaves of #0 are instance #3, #6, #9, #12 and #15 as expected: OK -08:12:00> Instance #3, #6, #9, #12 and #15 synced with the master: OK -08:12:00> New Master down consecutively: OK +04:37:49> (init) Restart killed instances: OK +04:37:49> Cluster nodes are reachable: OK +04:37:49> Cluster nodes hard reset: OK +04:37:50> Cluster Join and auto-discovery test: OK +04:37:52> Before slots allocation, all nodes report cluster failure: OK +04:37:52> Create a 5 nodes cluster: OK +04:37:56> Cluster is up: OK +04:37:56> The first master has actually two slaves: OK +04:37:56> CLUSTER SLAVES and CLUSTER REPLICAS output is consistent: OK +04:37:56> Slaves of #0 are instance #5 and #10 as expected: OK +04:37:56> Instance #5 and #10 synced with the master: OK +04:37:56> Slaves are both able to receive and acknowledge writes: OK +04:37:56> Write data while slave #10 is paused and can't receive it: OK +04:38:06> Wait for instance #5 (and not #10) to turn into a master: OK +04:38:12> Wait for the node #10 to return alive before ending the test: OK +04:38:13> Cluster should eventually be up again: OK +04:38:13> Node #10 should eventually replicate node #5: OK +04:38:13> (init) Restart killed instances: redis/0 OK +04:38:13> Cluster nodes are reachable: OK +04:38:13> Cluster nodes hard reset: OK +04:38:15> Cluster Join and auto-discovery test: OK +04:38:18> Before slots allocation, all nodes report cluster failure: OK +04:38:19> Create a 3 nodes cluster: OK +04:38:23> Cluster is up: OK +04:38:23> The first master has actually 5 slaves: OK +04:38:23> Slaves of #0 are instance #3, #6, #9, #12 and #15 as expected: OK +04:38:23> Instance #3, #6, #9, #12 and #15 synced with the master: OK +04:38:23> New Master down consecutively: OK Testing unit: 06-slave-stop-cond.tcl -08:12:49> (init) Restart killed instances: redis/0 redis/6 redis/9 redis/12 redis/15 OK -08:12:51> Cluster nodes are reachable: OK -08:12:51> Cluster nodes hard reset: OK -08:12:55> Cluster Join and auto-discovery test: OK -08:12:58> Before slots allocation, all nodes report cluster failure: OK -08:12:58> Create a 5 nodes cluster: OK -08:13:02> Cluster is up: OK -08:13:02> The first master has actually one slave: OK -08:13:02> Slaves of #0 is instance #5 as expected: OK -08:13:02> Instance #5 synced with the master: OK -08:13:02> Lower the slave validity factor of #5 to the value of 2: OK -08:13:02> Break master-slave link and prevent further reconnections: OK -08:13:22> Slave #5 is reachable and alive: OK -08:13:22> Slave #5 should not be able to failover: OK -08:13:32> Cluster should be down: OK +04:39:10> (init) Restart killed instances: redis/0 redis/3 redis/6 redis/9 redis/12 OK +04:39:13> Cluster nodes are reachable: OK +04:39:13> Cluster nodes hard reset: OK +04:39:15> Cluster Join and auto-discovery test: OK +04:39:21> Before slots allocation, all nodes report cluster failure: OK +04:39:21> Create a 5 nodes cluster: OK +04:39:24> Cluster is up: OK +04:39:24> The first master has actually one slave: OK +04:39:24> Slaves of #0 is instance #5 as expected: OK +04:39:24> Instance #5 synced with the master: OK +04:39:24> Lower the slave validity factor of #5 to the value of 2: OK +04:39:24> Break master-slave link and prevent further reconnections: OK +04:39:44> Slave #5 is reachable and alive: OK +04:39:44> Slave #5 should not be able to failover: OK +04:39:54> Cluster should be down: OK Testing unit: 07-replica-migration.tcl -08:13:32> (init) Restart killed instances: redis/0 OK -08:13:33> Cluster nodes are reachable: OK -08:13:33> Cluster nodes hard reset: OK -08:13:36> Cluster Join and auto-discovery test: OK -08:13:39> Before slots allocation, all nodes report cluster failure: OK -08:13:39> Create a 5 nodes cluster: OK -08:13:43> Cluster is up: OK -08:13:43> Each master should have two replicas attached: OK -08:13:43> Killing all the slaves of master #0 and #1: OK -08:13:47> Master #0 should have at least one replica: OK -08:13:53> Master #1 should have at least one replica: OK -08:13:53> Master #2 should have at least one replica: OK -08:13:53> Master #3 should have at least one replica: OK -08:13:53> Master #4 should have at least one replica: OK -08:13:53> (init) Restart killed instances: redis/5 redis/6 redis/10 redis/11 OK -08:13:54> Cluster nodes are reachable: OK -08:13:54> Cluster nodes hard reset: OK -08:13:55> Cluster Join and auto-discovery test: OK -08:13:57> Before slots allocation, all nodes report cluster failure: OK -08:13:57> Create a 5 nodes cluster: OK -08:14:01> Cluster is up: OK -08:14:01> Kill slave #7 of master #2. Only slave left is #12 now: OK -08:14:01> Killing master node #2, #12 should failover: OK -08:14:01> Wait for failover: OK -08:14:06> Cluster should eventually be up again: OK -08:14:06> Cluster is writable: OK -08:14:06> Instance 12 is now a master without slaves: OK -08:14:06> Master #12 should get at least one migrated replica: OK +04:39:54> (init) Restart killed instances: redis/0 OK +04:39:54> Cluster nodes are reachable: OK +04:39:54> Cluster nodes hard reset: OK +04:39:55> Cluster Join and auto-discovery test: OK +04:39:58> Before slots allocation, all nodes report cluster failure: OK +04:39:58> Create a 5 nodes cluster: OK +04:40:01> Cluster is up: OK +04:40:01> Each master should have two replicas attached: OK +04:40:01> Killing all the slaves of master #0 and #1: OK +04:40:06> Master #0 should have at least one replica: OK +04:40:11> Master #1 should have at least one replica: OK +04:40:11> Master #2 should have at least one replica: OK +04:40:11> Master #3 should have at least one replica: OK +04:40:11> Master #4 should have at least one replica: OK +04:40:11> (init) Restart killed instances: redis/5 redis/6 redis/10 redis/11 OK +04:40:12> Cluster nodes are reachable: OK +04:40:12> Cluster nodes hard reset: OK +04:40:13> Cluster Join and auto-discovery test: OK +04:40:19> Before slots allocation, all nodes report cluster failure: OK +04:40:19> Create a 5 nodes cluster: OK +04:40:23> Cluster is up: OK +04:40:23> Kill slave #7 of master #2. Only slave left is #12 now: OK +04:40:23> Killing master node #2, #12 should failover: OK +04:40:23> Wait for failover: OK +04:40:28> Cluster should eventually be up again: OK +04:40:29> Cluster is writable: OK +04:40:29> Instance 12 is now a master without slaves: OK +04:40:29> Master #12 should get at least one migrated replica: OK Testing unit: 08-update-msg.tcl -08:14:11> (init) Restart killed instances: redis/2 redis/7 OK -08:14:14> Cluster nodes are reachable: OK -08:14:14> Cluster nodes hard reset: OK -08:14:14> Cluster Join and auto-discovery test: OK -08:14:17> Before slots allocation, all nodes report cluster failure: OK -08:14:17> Create a 5 nodes cluster: OK -08:14:20> Cluster is up: OK -08:14:20> Cluster is writable: OK -08:14:20> Instance #5 is a slave: OK -08:14:20> Instance #5 synced with the master: OK -08:14:20> Killing one master node: OK -08:14:21> Wait for failover: OK -08:14:26> Cluster should eventually be up again: OK -08:14:26> Cluster is writable: OK -08:14:26> Instance #5 is now a master: OK -08:14:26> Killing the new master #5: OK -08:14:26> Cluster should be down now: OK -08:14:30> Restarting the old master node: OK -08:14:30> Instance #0 gets converted into a slave: OK -08:14:30> Restarting the new master node: OK -08:14:30> Cluster is up again: OK +04:40:34> (init) Restart killed instances: redis/2 redis/7 OK +04:40:36> Cluster nodes are reachable: OK +04:40:36> Cluster nodes hard reset: OK +04:40:38> Cluster Join and auto-discovery test: OK +04:40:42> Before slots allocation, all nodes report cluster failure: OK +04:40:43> Create a 5 nodes cluster: OK +04:40:46> Cluster is up: OK +04:40:46> Cluster is writable: OK +04:40:46> Instance #5 is a slave: OK +04:40:46> Instance #5 synced with the master: OK +04:40:46> Killing one master node: OK +04:40:47> Wait for failover: OK +04:40:53> Cluster should eventually be up again: OK +04:40:53> Cluster is writable: OK +04:40:53> Instance #5 is now a master: OK +04:40:53> Killing the new master #5: OK +04:40:53> Cluster should be down now: OK +04:40:57> Restarting the old master node: OK +04:40:58> Instance #0 gets converted into a slave: OK +04:40:58> Restarting the new master node: OK +04:40:59> Cluster is up again: OK Testing unit: 09-pubsub.tcl -08:14:37> (init) Restart killed instances: OK -08:14:37> Cluster nodes are reachable: OK -08:14:37> Cluster nodes hard reset: OK -08:14:37> Cluster Join and auto-discovery test: OK -08:14:40> Before slots allocation, all nodes report cluster failure: OK -08:14:40> Create a 5 nodes cluster: OK -08:14:43> Test publishing to master: OK -08:14:43> Test publishing to slave: OK +04:41:04> (init) Restart killed instances: OK +04:41:04> Cluster nodes are reachable: OK +04:41:04> Cluster nodes hard reset: OK +04:41:06> Cluster Join and auto-discovery test: OK +04:41:08> Before slots allocation, all nodes report cluster failure: OK +04:41:08> Create a 5 nodes cluster: OK +04:41:12> Test publishing to master: OK +04:41:12> Test publishing to slave: OK Testing unit: 10-manual-failover.tcl -08:14:43> (init) Restart killed instances: OK -08:14:43> Cluster nodes are reachable: OK -08:14:43> Cluster nodes hard reset: OK -08:14:44> Cluster Join and auto-discovery test: OK -08:14:47> Before slots allocation, all nodes report cluster failure: OK -08:14:47> Create a 5 nodes cluster: OK -08:14:51> Cluster is up: OK -08:14:51> Cluster is writable: OK -08:14:51> Instance #5 is a slave: OK -08:14:51> Instance #5 synced with the master: OK -08:14:51> Send CLUSTER FAILOVER to #5, during load: WWWWWWWWWWOK -08:14:55> Wait for failover: OK -08:14:55> Cluster should eventually be up again: OK -08:14:55> Cluster is writable: OK -08:14:55> Instance #5 is now a master: OK -08:14:55> Verify 50000 keys for consistency with logical content: OK -08:14:57> Instance #0 gets converted into a slave: OK -08:14:57> (init) Restart killed instances: OK -08:14:57> Cluster nodes are reachable: OK -08:14:57> Cluster nodes hard reset: OK -08:14:57> Cluster Join and auto-discovery test: OK -08:15:02> Before slots allocation, all nodes report cluster failure: OK -08:15:02> Create a 5 nodes cluster: OK -08:15:06> Cluster is up: OK -08:15:06> Cluster is writable: OK -08:15:06> Instance #5 is a slave: OK -08:15:06> Instance #5 synced with the master: OK -08:15:06> Make instance #0 unreachable without killing it: OK -08:15:06> Send CLUSTER FAILOVER to instance #5: OK -08:15:06> Instance #5 is still a slave after some time (no failover): OK -08:15:11> Wait for instance #0 to return back alive: OK -08:15:16> (init) Restart killed instances: OK -08:15:16> Cluster nodes are reachable: OK -08:15:16> Cluster nodes hard reset: OK -08:15:19> Cluster Join and auto-discovery test: OK -08:15:22> Before slots allocation, all nodes report cluster failure: OK -08:15:22> Create a 5 nodes cluster: OK -08:15:26> Cluster is up: OK -08:15:26> Cluster is writable: OK -08:15:26> Instance #5 is a slave: OK -08:15:26> Instance #5 synced with the master: OK -08:15:26> Make instance #0 unreachable without killing it: OK -08:15:26> Send CLUSTER FAILOVER to instance #5: OK -08:15:26> Instance #5 is a master after some time: OK -08:15:26> Wait for instance #0 to return back alive: OK +04:41:12> (init) Restart killed instances: OK +04:41:12> Cluster nodes are reachable: OK +04:41:12> Cluster nodes hard reset: OK +04:41:13> Cluster Join and auto-discovery test: OK +04:41:16> Before slots allocation, all nodes report cluster failure: OK +04:41:16> Create a 5 nodes cluster: OK +04:41:20> Cluster is up: OK +04:41:20> Cluster is writable: OK +04:41:20> Instance #5 is a slave: OK +04:41:20> Instance #5 synced with the master: OK +04:41:20> Send CLUSTER FAILOVER to #5, during load: WWWWWWWWWWOK +04:41:22> Wait for failover: OK +04:41:22> Cluster should eventually be up again: OK +04:41:22> Cluster is writable: OK +04:41:22> Instance #5 is now a master: OK +04:41:22> Verify 50000 keys for consistency with logical content: OK +04:41:23> Instance #0 gets converted into a slave: OK +04:41:23> (init) Restart killed instances: OK +04:41:23> Cluster nodes are reachable: OK +04:41:23> Cluster nodes hard reset: OK +04:41:24> Cluster Join and auto-discovery test: OK +04:41:29> Before slots allocation, all nodes report cluster failure: OK +04:41:29> Create a 5 nodes cluster: OK +04:41:33> Cluster is up: OK +04:41:33> Cluster is writable: OK +04:41:33> Instance #5 is a slave: OK +04:41:33> Instance #5 synced with the master: OK +04:41:33> Make instance #0 unreachable without killing it: OK +04:41:33> Send CLUSTER FAILOVER to instance #5: OK +04:41:33> Instance #5 is still a slave after some time (no failover): OK +04:41:38> Wait for instance #0 to return back alive: OK +04:41:43> (init) Restart killed instances: OK +04:41:43> Cluster nodes are reachable: OK +04:41:43> Cluster nodes hard reset: OK +04:41:48> Cluster Join and auto-discovery test: OK +04:41:50> Before slots allocation, all nodes report cluster failure: OK +04:41:50> Create a 5 nodes cluster: OK +04:41:54> Cluster is up: OK +04:41:54> Cluster is writable: OK +04:41:54> Instance #5 is a slave: OK +04:41:54> Instance #5 synced with the master: OK +04:41:54> Make instance #0 unreachable without killing it: OK +04:41:54> Send CLUSTER FAILOVER to instance #5: OK +04:41:54> Instance #5 is a master after some time: OK +04:41:55> Wait for instance #0 to return back alive: OK Testing unit: 11-manual-takeover.tcl -08:15:36> (init) Restart killed instances: OK -08:15:36> Cluster nodes are reachable: OK -08:15:36> Cluster nodes hard reset: OK -08:15:39> Cluster Join and auto-discovery test: OK -08:15:42> Before slots allocation, all nodes report cluster failure: OK -08:15:42> Create a 5 nodes cluster: OK -08:15:47> Cluster is up: OK -08:15:47> Cluster is writable: OK -08:15:47> Killing majority of master nodes: OK -08:15:48> Cluster should eventually be down: OK -08:15:51> Use takeover to bring slaves back: OK -08:15:51> Cluster should eventually be up again: OK -08:15:51> Cluster is writable: OK -08:15:52> Instance #5, #6, #7 are now masters: OK -08:15:52> Restarting the previously killed master nodes: OK -08:15:52> Instance #0, #1, #2 gets converted into a slaves: OK +04:42:04> (init) Restart killed instances: OK +04:42:04> Cluster nodes are reachable: OK +04:42:04> Cluster nodes hard reset: OK +04:42:07> Cluster Join and auto-discovery test: OK +04:42:12> Before slots allocation, all nodes report cluster failure: OK +04:42:12> Create a 5 nodes cluster: OK +04:42:16> Cluster is up: OK +04:42:16> Cluster is writable: OK +04:42:16> Killing majority of master nodes: OK +04:42:17> Cluster should eventually be down: OK +04:42:21> Use takeover to bring slaves back: OK +04:42:21> Cluster should eventually be up again: OK +04:42:24> Cluster is writable: OK +04:42:24> Instance #5, #6, #7 are now masters: OK +04:42:24> Restarting the previously killed master nodes: OK +04:42:24> Instance #0, #1, #2 gets converted into a slaves: OK Testing unit: 12-replica-migration-2.tcl -08:15:52> (init) Restart killed instances: OK -08:15:52> Cluster nodes are reachable: OK -08:15:52> Cluster nodes hard reset: OK -08:15:54> Cluster Join and auto-discovery test: OK -08:15:58> Before slots allocation, all nodes report cluster failure: OK -08:15:58> Create a 5 nodes cluster: OK -08:16:01> Cluster is up: OK -08:16:01> Each master should have at least two replicas attached: OK -08:16:01> Set allow-replica-migration yes: OK -08:16:01> Resharding all the master #0 slots away from it: >>> Performing Cluster Check (using node 127.0.0.1:30000) +04:42:25> (init) Restart killed instances: OK +04:42:25> Cluster nodes are reachable: OK +04:42:25> Cluster nodes hard reset: OK +04:42:27> Cluster Join and auto-discovery test: OK +04:42:29> Before slots allocation, all nodes report cluster failure: OK +04:42:29> Create a 5 nodes cluster: OK +04:42:33> Cluster is up: OK +04:42:33> Each master should have at least two replicas attached: OK +04:42:33> Set allow-replica-migration yes: OK +04:42:33> 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:30004 #################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################### Moving 820 slots from 127.0.0.1:30000 to 127.0.0.1:30006 #################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################### +Moving 820 slots from 127.0.0.1:30000 to 127.0.0.1:30002 +#################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################### Moving 816 slots from 127.0.0.1:30000 to 127.0.0.1:30008 ################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################ OK -08:23:25> Master #0 who lost all slots should turn into a replica without replicas: OK -08:23:25> Resharding back some slot to master #0: >>> Performing Cluster Check (using node 127.0.0.1:30000) +04:48:47> Master #0 who lost all slots should turn into a replica without replicas: OK +04:48:47> 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 -08:23:35> Master #0 should re-acquire one or more replicas: OK +04:48:57> Master #0 should re-acquire one or more replicas: OK Testing unit: 12.1-replica-migration-3.tcl -08:23:35> (init) Restart killed instances: OK -08:23:35> Cluster nodes are reachable: OK -08:23:35> Cluster nodes hard reset: OK -08:23:38> Cluster Join and auto-discovery test: OK -08:23:42> Before slots allocation, all nodes report cluster failure: OK -08:23:42> Create a 5 nodes cluster: OK -08:23:46> Cluster is up: OK -08:23:46> Each master should have at least two replicas attached: OK -08:23:46> Set allow-replica-migration no: OK -08:23:46> Resharding all the master #0 slots away from it: >>> Performing Cluster Check (using node 127.0.0.1:30000) +04:48:57> (init) Restart killed instances: OK +04:48:57> Cluster nodes are reachable: OK +04:48:57> Cluster nodes hard reset: OK +04:48:59> Cluster Join and auto-discovery test: OK +04:49:02> Before slots allocation, all nodes report cluster failure: OK +04:49:02> Create a 5 nodes cluster: OK +04:49:05> Cluster is up: OK +04:49:05> Each master should have at least two replicas attached: OK +04:49:05> Set allow-replica-migration no: OK +04:49:05> 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... @@ -1557,201 +1577,201 @@ Moving 816 slots from 127.0.0.1:30000 to 127.0.0.1:30008 ################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################ OK -08:28:07> Wait cluster to be stable: OK -08:28:07> Master #0 still should have its replicas: OK -08:28:07> Each master should have at least two replicas attached: OK +04:55:58> Wait cluster to be stable: OK +04:55:58> Master #0 still should have its replicas: OK +04:55:58> Each master should have at least two replicas attached: OK Testing unit: 13-no-failover-option.tcl -08:28:07> (init) Restart killed instances: OK -08:28:07> Cluster nodes are reachable: OK -08:28:07> Cluster nodes hard reset: OK -08:28:08> Cluster Join and auto-discovery test: OK -08:28:10> Before slots allocation, all nodes report cluster failure: OK -08:28:10> Create a 5 nodes cluster: OK -08:28:14> Cluster is up: OK -08:28:14> Cluster is writable: OK -08:28:14> Instance #5 is a slave: OK -08:28:14> Instance #5 synced with the master: OK -08:28:14> The nofailover flag is propagated: OK -08:28:15> Killing one master node: OK -08:28:15> Cluster should be still down after some time: OK -08:28:25> Instance #5 is still a slave: OK -08:28:25> Restarting the previously killed master node: OK +04:55:58> (init) Restart killed instances: OK +04:55:58> Cluster nodes are reachable: OK +04:55:58> Cluster nodes hard reset: OK +04:56:01> Cluster Join and auto-discovery test: OK +04:56:04> Before slots allocation, all nodes report cluster failure: OK +04:56:04> Create a 5 nodes cluster: OK +04:56:08> Cluster is up: OK +04:56:08> Cluster is writable: OK +04:56:08> Instance #5 is a slave: OK +04:56:08> Instance #5 synced with the master: OK +04:56:08> The nofailover flag is propagated: OK +04:56:09> Killing one master node: OK +04:56:09> Cluster should be still down after some time: OK +04:56:19> Instance #5 is still a slave: OK +04:56:19> Restarting the previously killed master node: OK Testing unit: 14-consistency-check.tcl -08:28:25> (init) Restart killed instances: OK -08:28:25> Cluster nodes are reachable: OK -08:28:25> Cluster nodes hard reset: OK -08:28:28> Cluster Join and auto-discovery test: OK -08:28:32> Before slots allocation, all nodes report cluster failure: OK -08:28:32> Create a 5 nodes cluster: OK -08:28:36> Cluster should start ok: OK -08:28:36> Cluster is writable: OK -08:28:36> Slave expired keys is loaded when restarted: appendonly=no: OK -08:28:40> Slave expired keys is loaded when restarted: appendonly=yes: OK +04:56:19> (init) Restart killed instances: OK +04:56:19> Cluster nodes are reachable: OK +04:56:19> Cluster nodes hard reset: OK +04:56:21> Cluster Join and auto-discovery test: OK +04:56:24> Before slots allocation, all nodes report cluster failure: OK +04:56:24> Create a 5 nodes cluster: OK +04:56:28> Cluster should start ok: OK +04:56:28> Cluster is writable: OK +04:56:28> Slave expired keys is loaded when restarted: appendonly=no: OK +04:56:32> Slave expired keys is loaded when restarted: appendonly=yes: OK Testing unit: 15-cluster-slots.tcl -08:28:44> (init) Restart killed instances: OK -08:28:44> Cluster nodes are reachable: OK -08:28:44> Cluster nodes hard reset: OK -08:28:46> Cluster Join and auto-discovery test: OK -08:28:51> Before slots allocation, all nodes report cluster failure: OK -08:28:51> Create a 5 nodes cluster: OK -08:28:54> Cluster is up: OK -08:28:54> Cluster is writable: OK -08:28:54> Instance #5 is a slave: OK -08:28:54> client do not break when cluster slot: OK -08:28:57> client can handle keys with hash tag: OK -08:28:57> slot migration is valid from primary to another primary: OK -08:28:57> Client unblocks after slot migration from one primary to another: OK -08:28:57> slot migration is invalid from primary to replica: {0b2f3e358f1de6f2a6bbdf16097aaa83de5cb721 127.0.0.1:30018@40018 slave 83a896ee0838de92bccc7b30a1bf9ca5c5b70fc3 0 1791404936549 5 connected} {8681463939c9461dba50b6aeda2d7f2b630b7d60 127.0.0.1:30038@40038 slave 83a896ee0838de92bccc7b30a1bf9ca5c5b70fc3 0 1791404937000 5 connected} {046d826ce1fc6527bf3720b442bc3be4b319deb9 127.0.0.1:30028@40028 slave 83a896ee0838de92bccc7b30a1bf9ca5c5b70fc3 0 1791404937558 5 connected} -0b2f3e358f1de6f2a6bbdf16097aaa83de5cb721 +04:56:36> (init) Restart killed instances: OK +04:56:36> Cluster nodes are reachable: OK +04:56:36> Cluster nodes hard reset: OK +04:56:37> Cluster Join and auto-discovery test: OK +04:56:39> Before slots allocation, all nodes report cluster failure: OK +04:56:39> Create a 5 nodes cluster: OK +04:56:43> Cluster is up: OK +04:56:43> Cluster is writable: OK +04:56:43> Instance #5 is a slave: OK +04:56:43> client do not break when cluster slot: OK +04:56:44> client can handle keys with hash tag: OK +04:56:44> slot migration is valid from primary to another primary: OK +04:56:44> Client unblocks after slot migration from one primary to another: OK +04:56:44> slot migration is invalid from primary to replica: {2318f76c19dfef82e7acd3071d3552e8d5b5fbb2 127.0.0.1:30030@40030 slave c073f0be684c1275409d7e8b99b2f007998d673c 0 1756997804591 1 connected} {5bfed6ab75e02fdf26fc5db3fb5330d99a1c04ff 127.0.0.1:30020@40020 slave c073f0be684c1275409d7e8b99b2f007998d673c 0 1756997804591 1 connected} {296129ac7e3331c7df2825d598afdf95acf7a04d 127.0.0.1:30010@40010 slave,nofailover c073f0be684c1275409d7e8b99b2f007998d673c 0 1756997804087 1 connected} +2318f76c19dfef82e7acd3071d3552e8d5b5fbb2 OK -08:28:57> slot must be unbound on the owner when it is deleted: OK -08:29:06> CLUSTER SLOTS from non-TLS client in TLS cluster: OK +04:56:44> slot must be unbound on the owner when it is deleted: OK +04:56:51> CLUSTER SLOTS from non-TLS client in TLS cluster: OK Testing unit: 16-transactions-on-replica.tcl -08:29:09> (init) Restart killed instances: OK -08:29:09> Cluster nodes are reachable: OK -08:29:09> Cluster nodes hard reset: OK -08:29:10> Cluster Join and auto-discovery test: OK -08:29:12> Before slots allocation, all nodes report cluster failure: OK -08:29:12> Create a primary with a replica: OK -08:29:17> Cluster should start ok: OK -08:29:17> Can't read from replica without READONLY: OK -08:29:17> Can't read from replica after READWRITE: OK -08:29:17> Can read from replica after READONLY: OK -08:29:17> Can perform HSET primary and HGET from replica: OK -08:29:17> Can MULTI-EXEC transaction of HGET operations from replica: OK -08:29:17> MULTI-EXEC with write operations is MOVED: OK -08:29:17> read-only blocking operations from replica: OK -08:29:17> reply MOVED when eval from replica for update: OK +04:56:54> (init) Restart killed instances: OK +04:56:54> Cluster nodes are reachable: OK +04:56:54> Cluster nodes hard reset: OK +04:57:01> Cluster Join and auto-discovery test: OK +04:57:03> Before slots allocation, all nodes report cluster failure: OK +04:57:04> Create a primary with a replica: OK +04:57:08> Cluster should start ok: OK +04:57:08> Can't read from replica without READONLY: OK +04:57:08> Can't read from replica after READWRITE: OK +04:57:08> Can read from replica after READONLY: OK +04:57:08> Can perform HSET primary and HGET from replica: OK +04:57:08> Can MULTI-EXEC transaction of HGET operations from replica: OK +04:57:08> MULTI-EXEC with write operations is MOVED: OK +04:57:08> read-only blocking operations from replica: OK +04:57:08> reply MOVED when eval from replica for update: OK Testing unit: 17-diskless-load-swapdb.tcl -08:29:17> (init) Restart killed instances: OK -08:29:17> Cluster nodes are reachable: OK -08:29:17> Cluster nodes hard reset: OK -08:29:17> Cluster Join and auto-discovery test: OK -08:29:20> Before slots allocation, all nodes report cluster failure: OK -08:29:20> Create a primary with a replica: OK -08:29:25> Cluster should start ok: OK -08:29:25> Cluster is writable: OK -08:29:25> Main db not affected when fail to diskless load: Waiting for process 702709 to exit... -Waiting for process 702709 to exit... -Waiting for process 702709 to exit... +04:57:08> (init) Restart killed instances: OK +04:57:08> Cluster nodes are reachable: OK +04:57:08> Cluster nodes hard reset: OK +04:57:11> Cluster Join and auto-discovery test: OK +04:57:13> Before slots allocation, all nodes report cluster failure: OK +04:57:13> Create a primary with a replica: OK +04:57:18> Cluster should start ok: OK +04:57:18> Cluster is writable: OK +04:57:18> Main db not affected when fail to diskless load: Waiting for process 2984077 to exit... +Waiting for process 2984077 to exit... +Waiting for process 2984077 to exit... OK Testing unit: 18-info.tcl -08:29:57> (init) Restart killed instances: redis/0 OK -08:29:57> Cluster nodes are reachable: OK -08:29:57> Cluster nodes hard reset: OK -08:29:59> Cluster Join and auto-discovery test: OK -08:30:02> Before slots allocation, all nodes report cluster failure: OK -08:30:02> Create a primary with a replica: OK -08:30:06> Cluster should start ok: OK -08:30:06> errorstats: rejected call due to MOVED Redirection: OK +04:57:50> (init) Restart killed instances: redis/0 OK +04:57:50> Cluster nodes are reachable: OK +04:57:50> Cluster nodes hard reset: OK +04:57:52> Cluster Join and auto-discovery test: OK +04:57:58> Before slots allocation, all nodes report cluster failure: OK +04:57:58> Create a primary with a replica: OK +04:58:03> Cluster should start ok: OK +04:58:03> errorstats: rejected call due to MOVED Redirection: OK Testing unit: 19-cluster-nodes-slots.tcl -08:30:06> (init) Restart killed instances: OK -08:30:06> Cluster nodes are reachable: OK -08:30:06> Cluster nodes hard reset: OK -08:30:07> Cluster Join and auto-discovery test: OK -08:30:10> Before slots allocation, all nodes report cluster failure: OK -08:30:10> Create a 2 nodes cluster: OK -08:30:15> Cluster should start ok: OK -08:30:15> Continuous slots distribution: OK -08:30:15> Discontinuous slots distribution: OK +04:58:03> (init) Restart killed instances: OK +04:58:03> Cluster nodes are reachable: OK +04:58:03> Cluster nodes hard reset: OK +04:58:05> Cluster Join and auto-discovery test: OK +04:58:09> Before slots allocation, all nodes report cluster failure: OK +04:58:09> Create a 2 nodes cluster: OK +04:58:13> Cluster should start ok: OK +04:58:13> Continuous slots distribution: OK +04:58:13> Discontinuous slots distribution: OK Testing unit: 20-half-migrated-slot.tcl Testing unit: 21-many-slot-migration.tcl Testing unit: 22-replica-in-sync.tcl -08:30:15> (init) Restart killed instances: OK -08:30:15> Cluster nodes are reachable: OK -08:30:15> Cluster nodes hard reset: OK -08:30:16> Cluster Join and auto-discovery test: OK -08:30:18> Before slots allocation, all nodes report cluster failure: OK -08:30:18> Create a 1 node cluster: OK -08:30:23> Cluster is up: OK -08:30:23> Cluster is writable: OK -08:30:23> Fill up primary with data: OK -08:30:23> Add new node as replica: OK -08:30:23> Check digest and replica state: OK -08:30:24> Replica in loading state is hidden: OK -08:30:29> Check disconnected replica not hidden from slots: OK +04:58:13> (init) Restart killed instances: OK +04:58:13> Cluster nodes are reachable: OK +04:58:13> Cluster nodes hard reset: OK +04:58:16> Cluster Join and auto-discovery test: OK +04:58:22> Before slots allocation, all nodes report cluster failure: OK +04:58:22> Create a 1 node cluster: OK +04:58:27> Cluster is up: OK +04:58:27> Cluster is writable: OK +04:58:27> Fill up primary with data: OK +04:58:27> Add new node as replica: OK +04:58:27> Check digest and replica state: OK +04:58:29> Replica in loading state is hidden: OK +04:58:34> Check disconnected replica not hidden from slots: OK Testing unit: 25-pubsubshard-slot-migration.tcl -08:30:29> (init) Restart killed instances: OK -08:30:29> Cluster nodes are reachable: OK -08:30:29> Cluster nodes hard reset: OK -08:30:30> Cluster Join and auto-discovery test: OK -08:30:32> Before slots allocation, all nodes report cluster failure: OK -08:30:32> Create a 3 nodes cluster: OK -08:30:36> Cluster is up: OK -08:30:36> Migrate a slot, verify client receives sunsubscribe on primary serving the slot.: OK -08:30:36> Client subscribes to multiple channels, migrate a slot, verify client receives sunsubscribe on primary serving the slot.: OK -08:30:36> Migrate a slot, verify client receives sunsubscribe on replica serving the slot.: OK -08:30:36> Move a replica to another primary, verify client receives sunsubscribe on replica serving the slot.: OK -08:30:36> Delete a slot, verify sunsubscribe message: OK -08:30:36> Reset cluster, verify sunsubscribe message: OK +04:58:34> (init) Restart killed instances: OK +04:58:34> Cluster nodes are reachable: OK +04:58:34> Cluster nodes hard reset: OK +04:58:49> Cluster Join and auto-discovery test: OK +04:58:51> Before slots allocation, all nodes report cluster failure: OK +04:58:51> Create a 3 nodes cluster: OK +04:58:55> Cluster is up: OK +04:58:55> Migrate a slot, verify client receives sunsubscribe on primary serving the slot.: OK +04:58:56> Client subscribes to multiple channels, migrate a slot, verify client receives sunsubscribe on primary serving the slot.: OK +04:58:58> Migrate a slot, verify client receives sunsubscribe on replica serving the slot.: OK +04:58:59> Move a replica to another primary, verify client receives sunsubscribe on replica serving the slot.: OK +04:58:59> Delete a slot, verify sunsubscribe message: OK +04:58:59> Reset cluster, verify sunsubscribe message: OK Testing unit: 26-pubsubshard.tcl -08:30:37> (init) Restart killed instances: OK -08:30:37> Cluster nodes are reachable: OK -08:30:37> Cluster nodes hard reset: OK -08:30:37> Cluster Join and auto-discovery test: OK -08:30:40> Before slots allocation, all nodes report cluster failure: OK -08:30:41> Create a 3 nodes cluster: OK -08:30:45> Pub/Sub shard basics: OK -08:30:45> client can't subscribe to multiple shard channels across different slots in same call: OK -08:30:45> client can subscribe to multiple shard channels across different slots in separate call: OK -08:30:45> sunsubscribe without specifying any channel would unsubscribe all shard channels subscribed: OK -08:30:45> Verify Pub/Sub and Pub/Sub shard no overlap: OK -08:30:45> PUBSUB channels/shardchannels: OK +04:58:59> (init) Restart killed instances: OK +04:58:59> Cluster nodes are reachable: OK +04:58:59> Cluster nodes hard reset: OK +04:59:05> Cluster Join and auto-discovery test: OK +04:59:08> Before slots allocation, all nodes report cluster failure: OK +04:59:08> Create a 3 nodes cluster: OK +04:59:11> Pub/Sub shard basics: OK +04:59:11> client can't subscribe to multiple shard channels across different slots in same call: OK +04:59:11> client can subscribe to multiple shard channels across different slots in separate call: OK +04:59:11> sunsubscribe without specifying any channel would unsubscribe all shard channels subscribed: OK +04:59:11> Verify Pub/Sub and Pub/Sub shard no overlap: OK +04:59:12> PUBSUB channels/shardchannels: OK Testing unit: 28-cluster-shards.tcl -08:30:45> (init) Restart killed instances: OK -08:30:45> Cluster nodes are reachable: OK -08:30:45> Cluster nodes hard reset: OK -08:30:45> Cluster Join and auto-discovery test: OK -08:30:48> Before slots allocation, all nodes report cluster failure: OK -08:30:48> Create a 8 nodes cluster with 4 shards: OK -08:30:48> Cluster should start ok: OK -08:30:51> Set cluster hostnames and verify they are propagated: OK -08:30:53> Verify information about the shards: OK -08:30:54> Verify no slot shard: OK -08:30:54> Kill a node and tell the replica to immediately takeover: OK -08:30:54> Verify health as fail for killed node: OK -08:30:58> Verify that other nodes can correctly output the new master's slots: OK -08:30:58> Restarting primary node: OK -08:30:58> Instance #0 gets converted into a replica: OK -08:30:58> Test the replica reports a loading state while it's loading: OK -08:31:01> Regression test for a crash when calling SHARDS during handshake: OK -08:31:02> Cluster is up: OK -08:31:06> Shard ids are unique: OK -08:31:06> CLUSTER MYSHARDID reports same id for both primary and replica: OK -08:31:06> New replica receives primary's shard id: OK -08:31:06> CLUSTER MYSHARDID reports same shard id after shard restart: OK -08:31:09> CLUSTER MYSHARDID reports same shard id after cluster restart: OK +04:59:12> (init) Restart killed instances: OK +04:59:12> Cluster nodes are reachable: OK +04:59:12> Cluster nodes hard reset: OK +04:59:20> Cluster Join and auto-discovery test: OK +04:59:24> Before slots allocation, all nodes report cluster failure: OK +04:59:24> Create a 8 nodes cluster with 4 shards: OK +04:59:24> Cluster should start ok: OK +04:59:28> Set cluster hostnames and verify they are propagated: OK +04:59:31> Verify information about the shards: OK +04:59:32> Verify no slot shard: OK +04:59:32> Kill a node and tell the replica to immediately takeover: OK +04:59:32> Verify health as fail for killed node: OK +04:59:36> Verify that other nodes can correctly output the new master's slots: OK +04:59:36> Restarting primary node: OK +04:59:36> Instance #0 gets converted into a replica: OK +04:59:36> Test the replica reports a loading state while it's loading: OK +04:59:40> Regression test for a crash when calling SHARDS during handshake: OK +04:59:40> Cluster is up: OK +04:59:43> Shard ids are unique: OK +04:59:43> CLUSTER MYSHARDID reports same id for both primary and replica: OK +04:59:43> New replica receives primary's shard id: OK +04:59:43> CLUSTER MYSHARDID reports same shard id after shard restart: OK +04:59:45> CLUSTER MYSHARDID reports same shard id after cluster restart: OK Testing unit: 29-slot-migration-response.tcl -08:31:14> (init) Restart killed instances: OK -08:31:14> Cluster nodes are reachable: OK -08:31:14> Cluster nodes hard reset: OK -08:31:24> Cluster Join and auto-discovery test: OK -08:31:34> Before slots allocation, all nodes report cluster failure: OK -08:31:34> Create a 2 nodes cluster: OK -08:31:38> Cluster is up: OK -08:31:38> Set many keys in the cluster: OK -08:31:40> Test cluster responses during migration of slot x: OK +04:59:49> (init) Restart killed instances: OK +04:59:49> Cluster nodes are reachable: OK +04:59:49> Cluster nodes hard reset: OK +04:59:57> Cluster Join and auto-discovery test: OK +05:00:01> Before slots allocation, all nodes report cluster failure: OK +05:00:01> Create a 2 nodes cluster: OK +05:00:06> Cluster is up: OK +05:00:06> Set many keys in the cluster: OK +05:00:06> Test cluster responses during migration of slot x: OK Cleaning up... -killing stale instance 644213 -killing stale instance 644273 -killing stale instance 644285 -killing stale instance 644319 -killing stale instance 644329 -killing stale instance 644342 -killing stale instance 644365 -killing stale instance 649653 -killing stale instance 649690 -killing stale instance 649710 -killing stale instance 657479 -killing stale instance 657491 -killing stale instance 705642 -killing stale instance 705655 -killing stale instance 705672 -killing stale instance 705690 -killing stale instance 705700 -killing stale instance 705724 -killing stale instance 705745 -killing stale instance 705753 +killing stale instance 2916130 +killing stale instance 2916288 +killing stale instance 2916302 +killing stale instance 2916316 +killing stale instance 2916330 +killing stale instance 2916343 +killing stale instance 2916357 +killing stale instance 2916371 +killing stale instance 2920659 +killing stale instance 2920693 +killing stale instance 2926971 +killing stale instance 2926999 +killing stale instance 3001520 +killing stale instance 3001546 +killing stale instance 3001633 +killing stale instance 3001690 +killing stale instance 3001713 +killing stale instance 3001767 +killing stale instance 3001815 +killing stale instance 3001867 GOOD! No errors. ./runtest-sentinel || true Starting sentinel #0 at port 20000 @@ -1765,256 +1785,263 @@ Starting redis #3 at port 30003 Starting redis #4 at port 30004 Testing unit: 00-base.tcl -08:31:45> (start-init) Flush config and compare rewrite config file lines: OK -08:31:46> (init) Restart killed instances: OK -08:31:46> (init) Remove old master entry from sentinels: OK -08:31:46> (init) Create a master-slaves cluster of 5 instances: OK -08:31:46> (init) Sentinels can start monitoring a master: OK -08:31:56> (init) Sentinels can talk with the master: OK -08:31:56> (init) Sentinels are able to auto-discover other sentinels: OK -08:31:56> (init) Sentinels are able to auto-discover slaves: OK -08:31:56> Sentinel command flag infrastructure works correctly: OK -08:31:56> SENTINEL HELP output the sentinel subcommand help: OK -08:31:56> SENTINEL MYID return the sentinel instance ID: OK -08:31:56> SENTINEL INFO CACHE returns the cached info: OK -08:31:56> SENTINEL PENDING-SCRIPTS returns the information about pending scripts: OK -08:31:56> SENTINEL MASTERS returns a list of monitored masters: OK -08:31:56> SENTINEL SENTINELS returns a list of sentinel instances: OK -08:31:56> SENTINEL SLAVES returns a list of the monitored replicas: OK -08:31:56> SENTINEL SIMULATE-FAILURE HELP list supported flags: OK -08:31:56> Basic failover works if the master is down: OK -08:32:01> New master 127.0.0.1:30004 role matches: OK -08:32:01> All the other slaves now point to the new master: OK -08:32:01> The old master eventually gets reconfigured as a slave: OK -08:32:11> ODOWN is not possible without N (quorum) Sentinels reports: OK -08:32:12> Failover is not possible without majority agreement: OK -08:32:13> Failover works if we configure for absolute agreement: OK -08:32:19> New master 127.0.0.1:30000 role matches: OK -08:32:19> SENTINEL RESET can resets the master: OK +05:00:10> (start-init) Flush config and compare rewrite config file lines: OK +05:00:10> (init) Restart killed instances: OK +05:00:10> (init) Remove old master entry from sentinels: OK +05:00:10> (init) Create a master-slaves cluster of 5 instances: OK +05:00:10> (init) Sentinels can start monitoring a master: OK +05:00:11> (init) Sentinels can talk with the master: OK +05:00:11> (init) Sentinels are able to auto-discover other sentinels: OK +05:00:12> (init) Sentinels are able to auto-discover slaves: OK +05:00:12> Sentinel command flag infrastructure works correctly: OK +05:00:12> SENTINEL HELP output the sentinel subcommand help: OK +05:00:12> SENTINEL MYID return the sentinel instance ID: OK +05:00:12> SENTINEL INFO CACHE returns the cached info: OK +05:00:12> SENTINEL PENDING-SCRIPTS returns the information about pending scripts: OK +05:00:12> SENTINEL MASTERS returns a list of monitored masters: OK +05:00:12> SENTINEL SENTINELS returns a list of sentinel instances: OK +05:00:12> SENTINEL SLAVES returns a list of the monitored replicas: OK +05:00:12> SENTINEL SIMULATE-FAILURE HELP list supported flags: OK +05:00:12> Basic failover works if the master is down: OK +05:00:16> New master 127.0.0.1:30001 role matches: OK +05:00:16> All the other slaves now point to the new master: OK +05:00:16> The old master eventually gets reconfigured as a slave: OK +05:00:27> ODOWN is not possible without N (quorum) Sentinels reports: OK +05:00:28> Failover is not possible without majority agreement: OK +05:00:29> Failover works if we configure for absolute agreement: OK +05:00:53> New master 127.0.0.1:30004 role matches: OK +05:00:53> SENTINEL RESET can resets the master: OK Testing unit: 01-conf-update.tcl -08:32:19> (init) Restart killed instances: OK -08:32:19> (init) Remove old master entry from sentinels: OK -08:32:21> (init) Create a master-slaves cluster of 5 instances: OK -08:32:21> (init) Sentinels can start monitoring a master: OK -08:32:24> (init) Sentinels can talk with the master: OK -08:32:24> (init) Sentinels are able to auto-discover other sentinels: OK -08:32:24> (init) Sentinels are able to auto-discover slaves: OK -08:32:24> We can failover with Sentinel 1 crashed: OK -08:32:29> After Sentinel 1 is restarted, its config gets updated: OK -08:32:29> New master 127.0.0.1:30004 role matches: OK -08:32:29> Update log level: OK +05:00:53> (init) Restart killed instances: OK +05:00:53> (init) Remove old master entry from sentinels: OK +05:00:53> (init) Create a master-slaves cluster of 5 instances: OK +05:00:53> (init) Sentinels can start monitoring a master: OK +05:00:53> (init) Sentinels can talk with the master: OK +05:00:53> (init) Sentinels are able to auto-discover other sentinels: OK +05:00:55> (init) Sentinels are able to auto-discover slaves: OK +05:00:55> We can failover with Sentinel 1 crashed: OK +05:00:59> After Sentinel 1 is restarted, its config gets updated: OK +05:00:59> New master 127.0.0.1:30003 role matches: OK +05:00:59> Update log level: OK Testing unit: 02-slaves-reconf.tcl -08:32:31> (init) Restart killed instances: OK -08:32:31> (init) Remove old master entry from sentinels: OK -08:32:31> (init) Create a master-slaves cluster of 5 instances: OK -08:32:31> (init) Sentinels can start monitoring a master: OK -08:32:34> (init) Sentinels can talk with the master: OK -08:32:34> (init) Sentinels are able to auto-discover other sentinels: OK -08:32:34> (init) Sentinels are able to auto-discover slaves: OK -08:32:34> Check that slaves replicate from current master: OK -08:32:34> Crash the master and force a failover: OK -08:32:39> Check that slaves replicate from current master: OK -08:32:40> Kill a slave instance: OK -08:32:40> Crash the master and force a failover: OK -08:32:44> Check that slaves replicate from current master: OK -08:32:44> Wait for failover to end: OK -08:32:45> Restart killed slave and test replication of slaves again...: OK -08:32:45> Check that slaves replicate from current master: OK +05:00:59> (init) Restart killed instances: OK +05:00:59> (init) Remove old master entry from sentinels: OK +05:00:59> (init) Create a master-slaves cluster of 5 instances: OK +05:00:59> (init) Sentinels can start monitoring a master: OK +05:01:00> (init) Sentinels can talk with the master: OK +05:01:00> (init) Sentinels are able to auto-discover other sentinels: OK +05:01:02> (init) Sentinels are able to auto-discover slaves: OK +05:01:02> Check that slaves replicate from current master: OK +05:01:02> Crash the master and force a failover: OK +05:01:06> Check that slaves replicate from current master: OK +05:01:16> Kill a slave instance: OK +05:01:16> Crash the master and force a failover: OK +05:01:20> Check that slaves replicate from current master: OK +05:01:20> Wait for failover to end: OK +05:01:21> Restart killed slave and test replication of slaves again...: OK +05:01:21> Check that slaves replicate from current master: OK Testing unit: 03-runtime-reconf.tcl -08:32:55> (init) Restart killed instances: OK -08:32:55> (init) Remove old master entry from sentinels: OK -08:32:56> (init) Create a master-slaves cluster of 5 instances: OK -08:32:56> (init) Sentinels can start monitoring a master: OK -08:32:59> (init) Sentinels can talk with the master: OK -08:32:59> (init) Sentinels are able to auto-discover other sentinels: OK -08:32:59> (init) Sentinels are able to auto-discover slaves: OK -08:32:59> Sentinels (re)connection following SENTINEL SET mymaster auth-pass: OK -08:33:00> Sentinels (re)connection following master ACL change: OK -08:33:06> Set parameters in normal case: OK -08:33:06> Set parameters in normal case with bad format: OK -08:33:06> Sentinel Set with other error situations: OK +05:01:31> (init) Restart killed instances: OK +05:01:31> (init) Remove old master entry from sentinels: OK +05:01:31> (init) Create a master-slaves cluster of 5 instances: OK +05:01:31> (init) Sentinels can start monitoring a master: OK +05:01:31> (init) Sentinels can talk with the master: OK +05:01:31> (init) Sentinels are able to auto-discover other sentinels: OK +05:01:31> (init) Sentinels are able to auto-discover slaves: OK +05:01:31> Sentinels (re)connection following SENTINEL SET mymaster auth-pass: OK +05:01:33> Sentinels (re)connection following master ACL change: OK +05:01:35> Set parameters in normal case: OK +05:01:35> Set parameters in normal case with bad format: OK +05:01:35> Sentinel Set with other error situations: OK Testing unit: 04-slave-selection.tcl Testing unit: 05-manual.tcl -08:33:06> (init) Restart killed instances: OK -08:33:06> (init) Remove old master entry from sentinels: OK -08:33:07> (init) Create a master-slaves cluster of 5 instances: OK -08:33:07> (init) Sentinels can start monitoring a master: OK -08:33:08> (init) Sentinels can talk with the master: OK -08:33:08> (init) Sentinels are able to auto-discover other sentinels: OK -08:33:09> (init) Sentinels are able to auto-discover slaves: OK -08:33:09> Manual failover works: OK -08:33:11> New master 127.0.0.1:30004 role matches: OK -08:33:11> All the other slaves now point to the new master: OK -08:33:11> The old master eventually gets reconfigured as a slave: OK -08:33:15> (init) Restart killed instances: OK -08:33:15> (init) Remove old master entry from sentinels: OK -08:33:15> (init) Create a master-slaves cluster of 5 instances: OK -08:33:15> (init) Sentinels can start monitoring a master: OK -08:33:17> (init) Sentinels can talk with the master: OK -08:33:17> (init) Sentinels are able to auto-discover other sentinels: OK -08:33:17> (init) Sentinels are able to auto-discover slaves: OK -08:33:17> SENTINEL SIMULATE-FAILURE crash-after-election works: OK -08:33:17> (init) Restart killed instances: OK -08:33:17> (init) Remove old master entry from sentinels: OK -08:33:17> (init) Create a master-slaves cluster of 5 instances: OK -08:33:17> (init) Sentinels can start monitoring a master: OK -08:33:19> (init) Sentinels can talk with the master: OK -08:33:19> (init) Sentinels are able to auto-discover other sentinels: OK -08:33:20> (init) Sentinels are able to auto-discover slaves: OK -08:33:20> SENTINEL SIMULATE-FAILURE crash-after-promotion works: OK +05:01:35> (init) Restart killed instances: OK +05:01:35> (init) Remove old master entry from sentinels: OK +05:01:35> (init) Create a master-slaves cluster of 5 instances: OK +05:01:35> (init) Sentinels can start monitoring a master: OK +05:01:36> (init) Sentinels can talk with the master: OK +05:01:36> (init) Sentinels are able to auto-discover other sentinels: OK +05:01:37> (init) Sentinels are able to auto-discover slaves: OK +05:01:37> Manual failover works: OK +05:01:39> New master 127.0.0.1:30001 role matches: OK +05:01:39> All the other slaves now point to the new master: OK +05:01:39> The old master eventually gets reconfigured as a slave: OK +05:01:43> (init) Restart killed instances: OK +05:01:43> (init) Remove old master entry from sentinels: OK +05:01:43> (init) Create a master-slaves cluster of 5 instances: OK +05:01:43> (init) Sentinels can start monitoring a master: OK +05:01:43> (init) Sentinels can talk with the master: OK +05:01:43> (init) Sentinels are able to auto-discover other sentinels: OK +05:01:44> (init) Sentinels are able to auto-discover slaves: OK +05:01:44> SENTINEL SIMULATE-FAILURE crash-after-election works: OK +05:01:44> (init) Restart killed instances: OK +05:01:44> (init) Remove old master entry from sentinels: OK +05:01:44> (init) Create a master-slaves cluster of 5 instances: OK +05:01:44> (init) Sentinels can start monitoring a master: OK +05:01:44> (init) Sentinels can talk with the master: OK +05:01:44> (init) Sentinels are able to auto-discover other sentinels: OK +05:01:48> (init) Sentinels are able to auto-discover slaves: OK +05:01:48> SENTINEL SIMULATE-FAILURE crash-after-promotion works: OK Testing unit: 06-ckquorum.tcl -08:33:22> (init) Restart killed instances: OK -08:33:22> (init) Remove old master entry from sentinels: OK -08:33:22> (init) Create a master-slaves cluster of 5 instances: OK -08:33:22> (init) Sentinels can start monitoring a master: OK -08:33:23> (init) Sentinels can talk with the master: OK -08:33:23> (init) Sentinels are able to auto-discover other sentinels: OK -08:33:24> (init) Sentinels are able to auto-discover slaves: OK -08:33:24> CKQUORUM reports OK and the right amount of Sentinels: OK -08:33:24> CKQUORUM detects quorum cannot be reached: OK -08:33:24> CKQUORUM detects failover authorization cannot be reached: OK +05:01:50> (init) Restart killed instances: OK +05:01:50> (init) Remove old master entry from sentinels: OK +05:01:50> (init) Create a master-slaves cluster of 5 instances: OK +05:01:50> (init) Sentinels can start monitoring a master: OK +05:01:51> (init) Sentinels can talk with the master: OK +05:01:51> (init) Sentinels are able to auto-discover other sentinels: OK +05:01:52> (init) Sentinels are able to auto-discover slaves: OK +05:01:52> CKQUORUM reports OK and the right amount of Sentinels: OK +05:01:52> CKQUORUM detects quorum cannot be reached: OK +05:01:53> CKQUORUM detects failover authorization cannot be reached: OK Testing unit: 07-down-conditions.tcl -08:33:27> (init) Restart killed instances: OK -08:33:27> (init) Remove old master entry from sentinels: OK -08:33:27> (init) Create a master-slaves cluster of 5 instances: OK -08:33:27> (init) Sentinels can start monitoring a master: OK -08:33:28> (init) Sentinels can talk with the master: OK -08:33:28> (init) Sentinels are able to auto-discover other sentinels: OK -08:33:29> (init) Sentinels are able to auto-discover slaves: OK -08:33:29> Crash the majority of Sentinels to prevent failovers for this unit: OK -08:33:29> SDOWN is triggered by non-responding but not crashed instance: OK -08:33:31> SDOWN is triggered by crashed instance: OK -08:33:34> SDOWN is triggered by masters advertising as slaves: OK -08:33:38> SDOWN is triggered by misconfigured instance replying with errors: OK -08:33:48> SDOWN is triggered if we rename PING to PONG: OK +05:01:55> (init) Restart killed instances: OK +05:01:55> (init) Remove old master entry from sentinels: OK +05:01:56> (init) Create a master-slaves cluster of 5 instances: OK +05:01:56> (init) Sentinels can start monitoring a master: OK +05:01:57> (init) Sentinels can talk with the master: OK +05:01:57> (init) Sentinels are able to auto-discover other sentinels: OK +05:01:59> (init) Sentinels are able to auto-discover slaves: OK +05:01:59> Crash the majority of Sentinels to prevent failovers for this unit: OK +05:01:59> SDOWN is triggered by non-responding but not crashed instance: OK +05:02:02> SDOWN is triggered by crashed instance: OK +05:02:04> SDOWN is triggered by masters advertising as slaves: OK +05:02:08> SDOWN is triggered by misconfigured instance replying with errors: OK +05:02:18> SDOWN is triggered if we rename PING to PONG: OK Testing unit: 08-hostname-conf.tcl -08:33:51> (pre-init) Configure instances and sentinel for hostname use: sentinel/0 sentinel/1 sentinel/2 OK -08:33:51> (init) Restart killed instances: OK -08:33:51> (init) Remove old master entry from sentinels: OK -08:33:51> (init) Create a master-slaves cluster of 5 instances: OK -08:33:51> (init) Sentinels can start monitoring a master: OK -08:33:52> (init) Sentinels can talk with the master: OK -08:33:52> (init) Sentinels are able to auto-discover other sentinels: OK -08:33:54> (init) Sentinels are able to auto-discover slaves: OK -08:33:54> Sentinel announces hostnames: OK -08:33:54> (post-cleanup) Configure instances and sentinel for IPs: OK +05:02:21> (pre-init) Configure instances and sentinel for hostname use: sentinel/0 sentinel/1 sentinel/2 OK +05:02:22> (init) Restart killed instances: OK +05:02:22> (init) Remove old master entry from sentinels: OK +05:02:22> (init) Create a master-slaves cluster of 5 instances: OK +05:02:22> (init) Sentinels can start monitoring a master: OK +05:02:23> (init) Sentinels can talk with the master: OK +05:02:23> (init) Sentinels are able to auto-discover other sentinels: OK +05:02:24> (init) Sentinels are able to auto-discover slaves: OK +05:02:24> Sentinel announces hostnames: OK +05:02:24> (post-cleanup) Configure instances and sentinel for IPs: OK Testing unit: 09-acl-support.tcl -08:33:54> (init) Restart killed instances: OK -08:33:54> (init) Remove old master entry from sentinels: OK -08:33:54> (init) Create a master-slaves cluster of 5 instances: OK -08:33:54> (init) Sentinels can start monitoring a master: OK -08:33:55> (init) Sentinels can talk with the master: OK -08:33:55> (init) Sentinels are able to auto-discover other sentinels: OK -08:33:57> (init) Sentinels are able to auto-discover slaves: OK -08:33:57> (post-init) Set up ACL configuration: OK -08:33:57> SENTINEL CONFIG SET handles on-the-fly credentials reconfiguration: OK -08:34:01> (post-cleanup) Tear down ACL configuration: OK +05:02:25> (init) Restart killed instances: OK +05:02:25> (init) Remove old master entry from sentinels: OK +05:02:25> (init) Create a master-slaves cluster of 5 instances: OK +05:02:25> (init) Sentinels can start monitoring a master: OK +05:02:26> (init) Sentinels can talk with the master: OK +05:02:26> (init) Sentinels are able to auto-discover other sentinels: OK +05:02:27> (init) Sentinels are able to auto-discover slaves: OK +05:02:27> (post-init) Set up ACL configuration: OK +05:02:27> SENTINEL CONFIG SET handles on-the-fly credentials reconfiguration: OK +05:02:32> (post-cleanup) Tear down ACL configuration: OK Testing unit: 10-replica-priority.tcl -08:34:01> (init) Restart killed instances: OK -08:34:01> (init) Remove old master entry from sentinels: OK -08:34:01> (init) Create a master-slaves cluster of 5 instances: OK -08:34:01> (init) Sentinels can start monitoring a master: OK -08:34:02> (init) Sentinels can talk with the master: OK -08:34:02> (init) Sentinels are able to auto-discover other sentinels: OK -08:34:03> (init) Sentinels are able to auto-discover slaves: OK -08:34:03> Check acceptable replica-priority values: OK -08:34:03> Set replica-announced=yes on all replicas: OK -08:34:03> Check sentinel replies with 4 replicas: OK -08:34:03> Set replica-announced=no on 2 replicas: OK -08:34:03> Check sentinel replies with 2 replicas: OK -08:34:03> Set replica-announced=yes on all replicas: OK -08:34:03> Check sentinel replies with 4 replicas: OK +05:02:32> (init) Restart killed instances: OK +05:02:32> (init) Remove old master entry from sentinels: OK +05:02:32> (init) Create a master-slaves cluster of 5 instances: OK +05:02:32> (init) Sentinels can start monitoring a master: OK +05:02:38> (init) Sentinels can talk with the master: OK +05:02:38> (init) Sentinels are able to auto-discover other sentinels: OK +05:02:38> (init) Sentinels are able to auto-discover slaves: OK +05:02:38> Check acceptable replica-priority values: OK +05:02:38> Set replica-announced=yes on all replicas: OK +05:02:38> Check sentinel replies with 4 replicas: OK +05:02:38> Set replica-announced=no on 2 replicas: OK +05:02:38> Check sentinel replies with 2 replicas: OK +05:02:38> Set replica-announced=yes on all replicas: OK +05:02:38> Check sentinel replies with 4 replicas: OK Testing unit: 11-port-0.tcl -08:34:03> (init) Restart killed instances: OK -08:34:03> (init) Remove old master entry from sentinels: OK -08:34:03> (init) Create a master-slaves cluster of 5 instances: OK -08:34:03> (init) Sentinels can start monitoring a master: OK -08:34:04> (init) Sentinels can talk with the master: OK -08:34:04> (init) Sentinels are able to auto-discover other sentinels: OK -08:34:04> (init) Sentinels are able to auto-discover slaves: OK -08:34:04> Start/Stop sentinel on same port with a different runID should not change the total number of sentinels: OK +05:02:38> (init) Restart killed instances: OK +05:02:38> (init) Remove old master entry from sentinels: OK +05:02:38> (init) Create a master-slaves cluster of 5 instances: OK +05:02:38> (init) Sentinels can start monitoring a master: OK +05:02:39> (init) Sentinels can talk with the master: OK +05:02:39> (init) Sentinels are able to auto-discover other sentinels: OK +05:02:39> (init) Sentinels are able to auto-discover slaves: OK +05:02:39> Start/Stop sentinel on same port with a different runID should not change the total number of sentinels: OK Testing unit: 12-master-reboot.tcl -08:34:05> (init) Restart killed instances: sentinel/4 OK -08:34:05> (init) Remove old master entry from sentinels: OK -08:34:05> (init) Create a master-slaves cluster of 5 instances: OK -08:34:05> (init) Sentinels can start monitoring a master: OK -08:34:06> (init) Sentinels can talk with the master: OK -08:34:06> (init) Sentinels are able to auto-discover other sentinels: OK -08:34:08> (init) Sentinels are able to auto-discover slaves: OK -08:34:08> Master reboot in very short time: OK -08:34:15> New master 127.0.0.1:30004 role matches: OK -08:34:15> All the other slaves now point to the new master: OK -08:34:15> The old master eventually gets reconfigured as a slave: OK +05:02:40> (init) Restart killed instances: sentinel/4 OK +05:02:40> (init) Remove old master entry from sentinels: OK +05:02:43> (init) Create a master-slaves cluster of 5 instances: OK +05:02:43> (init) Sentinels can start monitoring a master: OK +05:02:43> (init) Sentinels can talk with the master: OK +05:02:43> (init) Sentinels are able to auto-discover other sentinels: OK +05:02:45> (init) Sentinels are able to auto-discover slaves: OK +05:02:45> Master reboot in very short time: FAILED: At least one Sentinel did not receive failover info +(Jumping to next unit after error) +FAILED: caught an error in the test +assertion:At least one Sentinel did not receive failover info + while executing +"foreach_sentinel_id id { + wait_for_condition 1000 100 { + [lindex [S $id SENTINEL GET-MASTER-ADDR-BY-NAME mymaster] 1] != $ol..." + ("uplevel" body line 21) + invoked from within +"uplevel 1 $code" Testing unit: 13-info-command.tcl -08:34:25> (init) Restart killed instances: OK -08:34:25> (init) Remove old master entry from sentinels: OK -08:34:25> (init) Create a master-slaves cluster of 5 instances: OK -08:34:25> (init) Sentinels can start monitoring a master: OK -08:34:26> (init) Sentinels can talk with the master: OK -08:34:26> (init) Sentinels are able to auto-discover other sentinels: OK -08:34:27> (init) Sentinels are able to auto-discover slaves: OK -08:34:27> info command with at most one argument: OK -08:34:27> info command with one sub-section: OK -08:34:27> info command with multiple sub-sections: OK +05:04:27> (init) Restart killed instances: OK +05:04:27> (init) Remove old master entry from sentinels: OK +05:04:27> (init) Create a master-slaves cluster of 5 instances: OK +05:04:27> (init) Sentinels can start monitoring a master: OK +05:04:31> (init) Sentinels can talk with the master: OK +05:04:31> (init) Sentinels are able to auto-discover other sentinels: OK +05:04:31> (init) Sentinels are able to auto-discover slaves: OK +05:04:31> info command with at most one argument: OK +05:04:31> info command with one sub-section: OK +05:04:31> info command with multiple sub-sections: OK Testing unit: 14-debug-command.tcl -08:34:27> (init) Restart killed instances: OK -08:34:27> (init) Remove old master entry from sentinels: OK -08:34:28> (init) Create a master-slaves cluster of 5 instances: OK -08:34:28> (init) Sentinels can start monitoring a master: OK -08:34:28> (init) Sentinels can talk with the master: OK -08:34:28> (init) Sentinels are able to auto-discover other sentinels: OK -08:34:30> (init) Sentinels are able to auto-discover slaves: OK -08:34:30> Sentinel debug test with arguments and without argument: OK +05:04:31> (init) Restart killed instances: OK +05:04:31> (init) Remove old master entry from sentinels: OK +05:04:31> (init) Create a master-slaves cluster of 5 instances: OK +05:04:31> (init) Sentinels can start monitoring a master: OK +05:04:33> (init) Sentinels can talk with the master: OK +05:04:33> (init) Sentinels are able to auto-discover other sentinels: OK +05:04:34> (init) Sentinels are able to auto-discover slaves: OK +05:04:34> Sentinel debug test with arguments and without argument: OK Testing unit: 15-config-set-config-get.tcl -08:34:30> (init) Restart killed instances: OK -08:34:30> (init) Remove old master entry from sentinels: OK -08:34:30> (init) Create a master-slaves cluster of 5 instances: OK -08:34:30> (init) Sentinels can start monitoring a master: OK -08:34:31> (init) Sentinels can talk with the master: OK -08:34:31> (init) Sentinels are able to auto-discover other sentinels: OK -08:34:33> (init) Sentinels are able to auto-discover slaves: OK -08:34:33> SENTINEL CONFIG SET and SENTINEL CONFIG GET handles multiple variables: OK -08:34:33> SENTINEL CONFIG GET for duplicate and unknown variables: OK -08:34:33> SENTINEL CONFIG GET for patterns: OK -08:34:33> SENTINEL CONFIG SET duplicate variables: OK -08:34:33> SENTINEL CONFIG SET, one option does not exist: OK -08:34:33> SENTINEL CONFIG SET, one option with wrong value: OK -08:34:33> SENTINEL CONFIG SET, wrong number of arguments: OK +05:04:34> (init) Restart killed instances: OK +05:04:34> (init) Remove old master entry from sentinels: OK +05:04:34> (init) Create a master-slaves cluster of 5 instances: OK +05:04:34> (init) Sentinels can start monitoring a master: OK +05:04:36> (init) Sentinels can talk with the master: OK +05:04:36> (init) Sentinels are able to auto-discover other sentinels: OK +05:04:36> (init) Sentinels are able to auto-discover slaves: OK +05:04:36> SENTINEL CONFIG SET and SENTINEL CONFIG GET handles multiple variables: OK +05:04:38> SENTINEL CONFIG GET for duplicate and unknown variables: OK +05:04:38> SENTINEL CONFIG GET for patterns: OK +05:04:39> SENTINEL CONFIG SET duplicate variables: OK +05:04:39> SENTINEL CONFIG SET, one option does not exist: OK +05:04:40> SENTINEL CONFIG SET, one option with wrong value: OK +05:04:40> SENTINEL CONFIG SET, wrong number of arguments: OK Cleaning up... -killing stale instance 706747 -killing stale instance 706754 -killing stale instance 706761 -killing stale instance 710196 -killing stale instance 712030 -killing stale instance 713307 -killing stale instance 714169 -killing stale instance 717722 -killing stale instance 717729 -killing stale instance 717737 -killing stale instance 718644 -killing stale instance 718661 -killing stale instance 718819 -GOOD! No errors. +killing stale instance 3004948 +killing stale instance 3004973 +killing stale instance 3012531 +killing stale instance 3014606 +killing stale instance 3014741 +killing stale instance 3015301 +killing stale instance 3015980 +killing stale instance 3017970 +killing stale instance 3017978 +killing stale instance 3017986 +killing stale instance 3019259 +killing stale instance 3019367 +killing stale instance 3020110 +WARNING 2 test(s) failed. # Clean up after gen-test-certs.sh rm -rf tests/tls || true # Other cleanup find tests/tmp ! -name .gitignore -type f -exec rm -rfv {} + -removed 'tests/tmp/resetchannels.acl.524935.17/nodefaultuser.acl' -removed 'tests/tmp/resetchannels.acl.524935.17/stdout' -removed 'tests/tmp/resetchannels.acl.524935.17/default.conf' -removed 'tests/tmp/resetchannels.acl.524935.17/stderr' -removed 'tests/tmp/resetchannels.acl.524935.14/nodefaultuser.acl' -removed 'tests/tmp/resetchannels.acl.524935.14/stdout' -removed 'tests/tmp/resetchannels.acl.524935.14/default.conf' -removed 'tests/tmp/resetchannels.acl.524935.14/stderr' -removed 'tests/tmp/duplicate.acl.524935.24/user.acl' -removed 'tests/tmp/duplicate.acl.524935.24/stdout' -removed 'tests/tmp/duplicate.acl.524935.24/default.conf' -removed 'tests/tmp/duplicate.acl.524935.24/stderr' -removed 'tests/tmp/selectors.acl.524935.3/userwithselectors.acl' -removed 'tests/tmp/selectors.acl.524935.3/stdout' -removed 'tests/tmp/selectors.acl.524935.3/default.conf' -removed 'tests/tmp/selectors.acl.524935.3/stderr' +removed 'tests/tmp/selectors.acl.2828151.3/default.conf' +removed 'tests/tmp/selectors.acl.2828151.3/stdout' +removed 'tests/tmp/selectors.acl.2828151.3/userwithselectors.acl' +removed 'tests/tmp/selectors.acl.2828151.3/stderr' +removed 'tests/tmp/duplicate.acl.2828151.24/default.conf' +removed 'tests/tmp/duplicate.acl.2828151.24/stdout' +removed 'tests/tmp/duplicate.acl.2828151.24/stderr' +removed 'tests/tmp/duplicate.acl.2828151.24/user.acl' +removed 'tests/tmp/resetchannels.acl.2828151.14/default.conf' +removed 'tests/tmp/resetchannels.acl.2828151.14/stdout' +removed 'tests/tmp/resetchannels.acl.2828151.14/nodefaultuser.acl' +removed 'tests/tmp/resetchannels.acl.2828151.14/stderr' +removed 'tests/tmp/resetchannels.acl.2828151.17/default.conf' +removed 'tests/tmp/resetchannels.acl.2828151.17/stdout' +removed 'tests/tmp/resetchannels.acl.2828151.17/nodefaultuser.acl' +removed 'tests/tmp/resetchannels.acl.2828151.17/stderr' make[1]: Leaving directory '/build/reproducible-path/redis-8.0.2' create-stamp debian/debhelper-build-stamp dh_prep @@ -2046,16 +2073,16 @@ dh_strip -a dh_makeshlibs -a dh_shlibdeps -a -dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/redis-tools/usr/bin/redis-check-aof debian/redis-tools/usr/bin/redis-benchmark debian/redis-tools/usr/bin/redis-cli debian/redis-tools/usr/bin/redis-check-rdb were not linked against liblzf.so.1 (they use none of the library's symbols) -dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/redis-tools/usr/bin/redis-check-aof debian/redis-tools/usr/bin/redis-benchmark debian/redis-tools/usr/bin/redis-cli debian/redis-tools/usr/bin/redis-check-rdb were not linked against libatomic.so.1 (they use none of the library's symbols) +dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/redis-tools/usr/bin/redis-benchmark debian/redis-tools/usr/bin/redis-cli debian/redis-tools/usr/bin/redis-check-rdb debian/redis-tools/usr/bin/redis-check-aof were not linked against liblzf.so.1 (they use none of the library's symbols) +dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/redis-tools/usr/bin/redis-benchmark debian/redis-tools/usr/bin/redis-cli debian/redis-tools/usr/bin/redis-check-rdb debian/redis-tools/usr/bin/redis-check-aof were not linked against libatomic.so.1 (they use none of the library's symbols) dh_installdeb dh_gencontrol dh_md5sums dh_builddeb +dpkg-deb: building package 'redis' in '../redis_8.0.2-3_all.deb'. dpkg-deb: building package 'redis-sentinel' in '../redis-sentinel_8.0.2-3_amd64.deb'. dpkg-deb: building package 'redis-server' in '../redis-server_8.0.2-3_amd64.deb'. dpkg-deb: building package 'redis-tools' in '../redis-tools_8.0.2-3_amd64.deb'. -dpkg-deb: building package 'redis' in '../redis_8.0.2-3_all.deb'. dpkg-deb: building package 'redis-tools-dbgsym' in '../redis-tools-dbgsym_8.0.2-3_amd64.deb'. dpkg-genbuildinfo --build=binary -O../redis_8.0.2-3_amd64.buildinfo dpkg-genchanges --build=binary -O../redis_8.0.2-3_amd64.changes @@ -2064,12 +2091,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: not including original source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/2813406/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/2813406/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/510729 and its subdirectories -I: Current time: Wed Oct 7 08:34:49 -12 2026 -I: pbuilder-time-stamp: 1791405289 +I: removing directory /srv/workspace/pbuilder/2813406 and its subdirectories +I: Current time: Fri Sep 5 05:04:54 +14 2025 +I: pbuilder-time-stamp: 1756998294