Diff of the two buildlogs: -- --- b1/build.log 2022-03-26 16:54:50.982271950 +0000 +++ b2/build.log 2022-03-26 17:22:24.444493640 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Fri Apr 28 10:37:40 -12 2023 -I: pbuilder-time-stamp: 1682721460 +I: Current time: Sun Mar 27 06:54:52 +14 2022 +I: pbuilder-time-stamp: 1648313692 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/buster-reproducible-base.tgz] I: copying local configuration @@ -17,7 +17,7 @@ I: Extracting source gpgv: unknown type of key resource 'trustedkeys.kbx' gpgv: keyblock resource '/root/.gnupg/trustedkeys.kbx': General error -gpgv: Signature made Wed Feb 16 09:55:51 2022 -12 +gpgv: Signature made Thu Feb 17 11:55:51 2022 +14 gpgv: using RSA key C2FE4BD271C139B86C533E461E953E27D4311E58 gpgv: Can't check signature: No public key dpkg-source: warning: failed to verify signature on ./redis_5.0.14-1+deb10u2.dsc @@ -35,136 +35,170 @@ dpkg-source: info: applying debian-packaging/0008-Ensure-we-use-the-modules-for-third-party-libraries.patch I: using fakeroot in build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/1083593/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/3223195/tmp/hooks/D01_modify_environment starting +debug: Running on ionos11-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 +Removing 'diversion of /bin/sh to /bin/sh.distrib by dash' +Adding 'diversion of /bin/sh to /bin/sh.distrib by bash' +Removing 'diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by dash' +Adding 'diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by 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/3223195/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/3223195/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build' - 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='' - HOME='/root' - HOST_ARCH='amd64' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="0" [2]="3" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") + BASH_VERSION='5.0.3(1)-release' + BUILDDIR=/build + 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=15' + DIRSTACK=() + DISTRIBUTION= + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=x86_64 + HOST_ARCH=amd64 IFS=' ' - INVOCATION_ID='338fdc0bde754bad969466b58a39d518' - 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='1083593' - PS1='# ' - PS2='> ' + INVOCATION_ID=c4035c2a90014ebb850b01dab973eeef + 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=3223195 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/tmp.hZWG7Bxcsu/pbuilderrc_3SpU --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/buster-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/tmp.hZWG7Bxcsu/b1 --logfile b1/build.log redis_5.0.14-1+deb10u2.dsc' - SUDO_GID='110' - SUDO_UID='105' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://85.184.249.68:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/tmp.hZWG7Bxcsu/pbuilderrc_YZ4t --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/buster-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/tmp.hZWG7Bxcsu/b2 --logfile b2/build.log redis_5.0.14-1+deb10u2.dsc' + SUDO_GID=111 + SUDO_UID=106 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://78.137.99.97:3128 I: uname -a - Linux ionos5-amd64 5.16.0-0.bpo.3-amd64 #1 SMP PREEMPT Debian 5.16.11-1~bpo11+1 (2022-03-02) x86_64 GNU/Linux + Linux i-capture-the-hostname 5.10.0-12-amd64 #1 SMP Debian 5.10.103-1 (2022-03-07) x86_64 GNU/Linux I: ls -l /bin total 5116 - -rwxr-xr-x 1 root root 1168776 Apr 17 2019 bash - -rwxr-xr-x 3 root root 38984 Jul 10 2019 bunzip2 - -rwxr-xr-x 3 root root 38984 Jul 10 2019 bzcat - lrwxrwxrwx 1 root root 6 Jul 10 2019 bzcmp -> bzdiff - -rwxr-xr-x 1 root root 2227 Jul 10 2019 bzdiff - lrwxrwxrwx 1 root root 6 Jul 10 2019 bzegrep -> bzgrep - -rwxr-xr-x 1 root root 4877 Jun 24 2019 bzexe - lrwxrwxrwx 1 root root 6 Jul 10 2019 bzfgrep -> bzgrep - -rwxr-xr-x 1 root root 3641 Jul 10 2019 bzgrep - -rwxr-xr-x 3 root root 38984 Jul 10 2019 bzip2 - -rwxr-xr-x 1 root root 14328 Jul 10 2019 bzip2recover - lrwxrwxrwx 1 root root 6 Jul 10 2019 bzless -> bzmore - -rwxr-xr-x 1 root root 1297 Jul 10 2019 bzmore - -rwxr-xr-x 1 root root 43744 Feb 28 2019 cat - -rwxr-xr-x 1 root root 64320 Feb 28 2019 chgrp - -rwxr-xr-x 1 root root 64288 Feb 28 2019 chmod - -rwxr-xr-x 1 root root 72512 Feb 28 2019 chown - -rwxr-xr-x 1 root root 146880 Feb 28 2019 cp - -rwxr-xr-x 1 root root 121464 Jan 17 2019 dash - -rwxr-xr-x 1 root root 109408 Feb 28 2019 date - -rwxr-xr-x 1 root root 76712 Feb 28 2019 dd - -rwxr-xr-x 1 root root 93744 Feb 28 2019 df - -rwxr-xr-x 1 root root 138856 Feb 28 2019 dir - -rwxr-xr-x 1 root root 84288 Jan 9 2019 dmesg - lrwxrwxrwx 1 root root 8 Sep 26 2018 dnsdomainname -> hostname - lrwxrwxrwx 1 root root 8 Sep 26 2018 domainname -> hostname - -rwxr-xr-x 1 root root 39520 Feb 28 2019 echo - -rwxr-xr-x 1 root root 28 Jan 7 2019 egrep - -rwxr-xr-x 1 root root 35424 Feb 28 2019 false - -rwxr-xr-x 1 root root 28 Jan 7 2019 fgrep - -rwxr-xr-x 1 root root 68880 Jan 9 2019 findmnt - -rwsr-xr-x 1 root root 34896 Apr 22 2020 fusermount - -rwxr-xr-x 1 root root 198976 Jan 7 2019 grep - -rwxr-xr-x 2 root root 2345 Jan 5 2019 gunzip - -rwxr-xr-x 1 root root 6375 Jan 5 2019 gzexe - -rwxr-xr-x 1 root root 98048 Jan 5 2019 gzip - -rwxr-xr-x 1 root root 26696 Sep 26 2018 hostname - -rwxr-xr-x 1 root root 68552 Feb 28 2019 ln - -rwxr-xr-x 1 root root 56760 Jul 26 2018 login - -rwxr-xr-x 1 root root 138856 Feb 28 2019 ls - -rwxr-xr-x 1 root root 108624 Jan 9 2019 lsblk - -rwxr-xr-x 1 root root 89088 Feb 28 2019 mkdir - -rwxr-xr-x 1 root root 68544 Feb 28 2019 mknod - -rwxr-xr-x 1 root root 43808 Feb 28 2019 mktemp - -rwxr-xr-x 1 root root 43008 Jan 9 2019 more - -rwsr-xr-x 1 root root 51280 Jan 9 2019 mount - -rwxr-xr-x 1 root root 14408 Jan 9 2019 mountpoint - -rwxr-xr-x 1 root root 138728 Feb 28 2019 mv - lrwxrwxrwx 1 root root 8 Sep 26 2018 nisdomainname -> hostname - lrwxrwxrwx 1 root root 14 Feb 14 2019 pidof -> /sbin/killall5 - -rwxr-xr-x 1 root root 39616 Feb 28 2019 pwd - lrwxrwxrwx 1 root root 4 Apr 17 2019 rbash -> bash - -rwxr-xr-x 1 root root 47776 Feb 28 2019 readlink - -rwxr-xr-x 1 root root 68416 Feb 28 2019 rm - -rwxr-xr-x 1 root root 47776 Feb 28 2019 rmdir - -rwxr-xr-x 1 root root 23312 Jan 21 2019 run-parts - -rwxr-xr-x 1 root root 122224 Dec 22 2018 sed - lrwxrwxrwx 1 root root 4 Apr 9 02:47 sh -> dash - -rwxr-xr-x 1 root root 39552 Feb 28 2019 sleep - -rwxr-xr-x 1 root root 80672 Feb 28 2019 stty - -rwsr-xr-x 1 root root 63568 Jan 9 2019 su - -rwxr-xr-x 1 root root 35488 Feb 28 2019 sync - -rwxr-xr-x 1 root root 445560 Apr 23 2019 tar - -rwxr-xr-x 1 root root 14440 Jan 21 2019 tempfile - -rwxr-xr-x 1 root root 97152 Feb 28 2019 touch - -rwxr-xr-x 1 root root 35424 Feb 28 2019 true - -rwxr-xr-x 1 root root 14328 Apr 22 2020 ulockmgr_server - -rwsr-xr-x 1 root root 34888 Jan 9 2019 umount - -rwxr-xr-x 1 root root 39584 Feb 28 2019 uname - -rwxr-xr-x 2 root root 2345 Jan 5 2019 uncompress - -rwxr-xr-x 1 root root 138856 Feb 28 2019 vdir - -rwxr-xr-x 1 root root 34896 Jan 9 2019 wdctl - -rwxr-xr-x 1 root root 946 Jan 21 2019 which - lrwxrwxrwx 1 root root 8 Sep 26 2018 ypdomainname -> hostname - -rwxr-xr-x 1 root root 1983 Jan 5 2019 zcat - -rwxr-xr-x 1 root root 1677 Jan 5 2019 zcmp - -rwxr-xr-x 1 root root 5879 Jan 5 2019 zdiff - -rwxr-xr-x 1 root root 29 Jan 5 2019 zegrep - -rwxr-xr-x 1 root root 29 Jan 5 2019 zfgrep - -rwxr-xr-x 1 root root 2080 Jan 5 2019 zforce - -rwxr-xr-x 1 root root 7584 Jan 5 2019 zgrep - -rwxr-xr-x 1 root root 2205 Jan 5 2019 zless - -rwxr-xr-x 1 root root 1841 Jan 5 2019 zmore - -rwxr-xr-x 1 root root 4552 Jan 5 2019 znew -I: user script /srv/workspace/pbuilder/1083593/tmp/hooks/D02_print_environment finished + -rwxr-xr-x 1 root root 1168776 Apr 18 2019 bash + -rwxr-xr-x 3 root root 38984 Jul 11 2019 bunzip2 + -rwxr-xr-x 3 root root 38984 Jul 11 2019 bzcat + lrwxrwxrwx 1 root root 6 Jul 11 2019 bzcmp -> bzdiff + -rwxr-xr-x 1 root root 2227 Jul 11 2019 bzdiff + lrwxrwxrwx 1 root root 6 Jul 11 2019 bzegrep -> bzgrep + -rwxr-xr-x 1 root root 4877 Jun 25 2019 bzexe + lrwxrwxrwx 1 root root 6 Jul 11 2019 bzfgrep -> bzgrep + -rwxr-xr-x 1 root root 3641 Jul 11 2019 bzgrep + -rwxr-xr-x 3 root root 38984 Jul 11 2019 bzip2 + -rwxr-xr-x 1 root root 14328 Jul 11 2019 bzip2recover + lrwxrwxrwx 1 root root 6 Jul 11 2019 bzless -> bzmore + -rwxr-xr-x 1 root root 1297 Jul 11 2019 bzmore + -rwxr-xr-x 1 root root 43744 Mar 1 2019 cat + -rwxr-xr-x 1 root root 64320 Mar 1 2019 chgrp + -rwxr-xr-x 1 root root 64288 Mar 1 2019 chmod + -rwxr-xr-x 1 root root 72512 Mar 1 2019 chown + -rwxr-xr-x 1 root root 146880 Mar 1 2019 cp + -rwxr-xr-x 1 root root 121464 Jan 18 2019 dash + -rwxr-xr-x 1 root root 109408 Mar 1 2019 date + -rwxr-xr-x 1 root root 76712 Mar 1 2019 dd + -rwxr-xr-x 1 root root 93744 Mar 1 2019 df + -rwxr-xr-x 1 root root 138856 Mar 1 2019 dir + -rwxr-xr-x 1 root root 84288 Jan 10 2019 dmesg + lrwxrwxrwx 1 root root 8 Sep 27 2018 dnsdomainname -> hostname + lrwxrwxrwx 1 root root 8 Sep 27 2018 domainname -> hostname + -rwxr-xr-x 1 root root 39520 Mar 1 2019 echo + -rwxr-xr-x 1 root root 28 Jan 8 2019 egrep + -rwxr-xr-x 1 root root 35424 Mar 1 2019 false + -rwxr-xr-x 1 root root 28 Jan 8 2019 fgrep + -rwxr-xr-x 1 root root 68880 Jan 10 2019 findmnt + -rwsr-xr-x 1 root root 34896 Apr 23 2020 fusermount + -rwxr-xr-x 1 root root 198976 Jan 8 2019 grep + -rwxr-xr-x 2 root root 2345 Jan 6 2019 gunzip + -rwxr-xr-x 1 root root 6375 Jan 6 2019 gzexe + -rwxr-xr-x 1 root root 98048 Jan 6 2019 gzip + -rwxr-xr-x 1 root root 26696 Sep 27 2018 hostname + -rwxr-xr-x 1 root root 68552 Mar 1 2019 ln + -rwxr-xr-x 1 root root 56760 Jul 27 2018 login + -rwxr-xr-x 1 root root 138856 Mar 1 2019 ls + -rwxr-xr-x 1 root root 108624 Jan 10 2019 lsblk + -rwxr-xr-x 1 root root 89088 Mar 1 2019 mkdir + -rwxr-xr-x 1 root root 68544 Mar 1 2019 mknod + -rwxr-xr-x 1 root root 43808 Mar 1 2019 mktemp + -rwxr-xr-x 1 root root 43008 Jan 10 2019 more + -rwsr-xr-x 1 root root 51280 Jan 10 2019 mount + -rwxr-xr-x 1 root root 14408 Jan 10 2019 mountpoint + -rwxr-xr-x 1 root root 138728 Mar 1 2019 mv + lrwxrwxrwx 1 root root 8 Sep 27 2018 nisdomainname -> hostname + lrwxrwxrwx 1 root root 14 Feb 15 2019 pidof -> /sbin/killall5 + -rwxr-xr-x 1 root root 39616 Mar 1 2019 pwd + lrwxrwxrwx 1 root root 4 Apr 18 2019 rbash -> bash + -rwxr-xr-x 1 root root 47776 Mar 1 2019 readlink + -rwxr-xr-x 1 root root 68416 Mar 1 2019 rm + -rwxr-xr-x 1 root root 47776 Mar 1 2019 rmdir + -rwxr-xr-x 1 root root 23312 Jan 22 2019 run-parts + -rwxr-xr-x 1 root root 122224 Dec 23 2018 sed + lrwxrwxrwx 1 root root 4 Mar 27 06:54 sh -> bash + lrwxrwxrwx 1 root root 4 Mar 7 22:25 sh.distrib -> dash + -rwxr-xr-x 1 root root 39552 Mar 1 2019 sleep + -rwxr-xr-x 1 root root 80672 Mar 1 2019 stty + -rwsr-xr-x 1 root root 63568 Jan 10 2019 su + -rwxr-xr-x 1 root root 35488 Mar 1 2019 sync + -rwxr-xr-x 1 root root 445560 Apr 24 2019 tar + -rwxr-xr-x 1 root root 14440 Jan 22 2019 tempfile + -rwxr-xr-x 1 root root 97152 Mar 1 2019 touch + -rwxr-xr-x 1 root root 35424 Mar 1 2019 true + -rwxr-xr-x 1 root root 14328 Apr 23 2020 ulockmgr_server + -rwsr-xr-x 1 root root 34888 Jan 10 2019 umount + -rwxr-xr-x 1 root root 39584 Mar 1 2019 uname + -rwxr-xr-x 2 root root 2345 Jan 6 2019 uncompress + -rwxr-xr-x 1 root root 138856 Mar 1 2019 vdir + -rwxr-xr-x 1 root root 34896 Jan 10 2019 wdctl + -rwxr-xr-x 1 root root 946 Jan 22 2019 which + lrwxrwxrwx 1 root root 8 Sep 27 2018 ypdomainname -> hostname + -rwxr-xr-x 1 root root 1983 Jan 6 2019 zcat + -rwxr-xr-x 1 root root 1677 Jan 6 2019 zcmp + -rwxr-xr-x 1 root root 5879 Jan 6 2019 zdiff + -rwxr-xr-x 1 root root 29 Jan 6 2019 zegrep + -rwxr-xr-x 1 root root 29 Jan 6 2019 zfgrep + -rwxr-xr-x 1 root root 2080 Jan 6 2019 zforce + -rwxr-xr-x 1 root root 7584 Jan 6 2019 zgrep + -rwxr-xr-x 1 root root 2205 Jan 6 2019 zless + -rwxr-xr-x 1 root root 1841 Jan 6 2019 zmore + -rwxr-xr-x 1 root root 4552 Jan 6 2019 znew +I: user script /srv/workspace/pbuilder/3223195/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -267,7 +301,7 @@ Get: 51 http://deb.debian.org/debian buster/main amd64 lua-cjson-dev amd64 2.1.0+dfsg-2.1 [30.7 kB] Get: 52 http://deb.debian.org/debian buster/main amd64 tcl8.6 amd64 8.6.9+dfsg-2 [123 kB] Get: 53 http://deb.debian.org/debian buster/main amd64 tcl amd64 8.6.9+1 [5636 B] -Fetched 22.2 MB in 0s (47.0 MB/s) +Fetched 22.2 MB in 0s (57.6 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libbsd0:amd64. (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 ... 19195 files and directories currently installed.) @@ -503,7 +537,8 @@ fakeroot is already the newest version (1.23-1). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package -I: Running cd /build/redis-5.0.14/ && 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_5.0.14-1+deb10u2_source.changes +hostname: Name or service not known +I: Running cd /build/redis-5.0.14/ && 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_5.0.14-1+deb10u2_source.changes dpkg-buildpackage: info: source package redis dpkg-buildpackage: info: source version 5:5.0.14-1+deb10u2 dpkg-buildpackage: info: source distribution buster-security @@ -516,7 +551,7 @@ debian/rules override_dh_auto_clean make[1]: Entering directory '/build/redis-5.0.14' dh_auto_clean - make -j16 distclean + make -j15 distclean make[2]: Entering directory '/build/redis-5.0.14' cd src && make distclean make[3]: Entering directory '/build/redis-5.0.14/src' @@ -551,13 +586,13 @@ echo 'luaL_dostring(lua, "module = nil; require = nil; package = nil");' >>debian/lua_libs_debian.c # Build the non-bundled Lua libraries dh_auto_build --sourcedirectory=deps/lua/src -- lua_struct.o lua_cmsgpack.o - cd deps/lua/src && make -j16 "INSTALL=install --strip-program=true" lua_struct.o lua_cmsgpack.o + cd deps/lua/src && make -j15 "INSTALL=install --strip-program=true" lua_struct.o lua_cmsgpack.o make[2]: Entering directory '/build/redis-5.0.14/deps/lua/src' cc -O2 -Wall -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lua_struct.o lua_struct.c cc -O2 -Wall -Wdate-time -D_FORTIFY_SOURCE=2 -c -o lua_cmsgpack.o lua_cmsgpack.c make[2]: Leaving directory '/build/redis-5.0.14/deps/lua/src' dh_auto_build --parallel -- V=1 USE_SYSTEM_JEMALLOC=yes USE_SYSTEM_LUA=yes USE_SYSTEM_HIREDIS=yes - make -j16 "INSTALL=install --strip-program=true" V=1 USE_SYSTEM_JEMALLOC=yes USE_SYSTEM_LUA=yes USE_SYSTEM_HIREDIS=yes + make -j15 "INSTALL=install --strip-program=true" V=1 USE_SYSTEM_JEMALLOC=yes USE_SYSTEM_LUA=yes USE_SYSTEM_HIREDIS=yes make[2]: Entering directory '/build/redis-5.0.14' cd src && make all make[3]: Entering directory '/build/redis-5.0.14/src' @@ -636,9 +671,6 @@ cc -std=c99 -pedantic -DREDIS_STATIC='' -Wall -W -Wno-missing-field-initializers -O2 -g -ggdb -g -O2 -ffile-prefix-map=/build/redis-5.0.14=. -fstack-protector-strong -Wformat -Werror=format-security -I../deps/linenoise -DUSE_JEMALLOC -I/usr/include/jemalloc/include -I/usr/include/lua5.1 -I/usr/include/hiredis -Wdate-time -D_FORTIFY_SOURCE=2 -c memtest.c cc -std=c99 -pedantic -DREDIS_STATIC='' -Wall -W -Wno-missing-field-initializers -O2 -g -ggdb -g -O2 -ffile-prefix-map=/build/redis-5.0.14=. -fstack-protector-strong -Wformat -Werror=format-security -I../deps/linenoise -DUSE_JEMALLOC -I/usr/include/jemalloc/include -I/usr/include/lua5.1 -I/usr/include/hiredis -Wdate-time -D_FORTIFY_SOURCE=2 -c crc64.c cc -std=c99 -pedantic -DREDIS_STATIC='' -Wall -W -Wno-missing-field-initializers -O2 -g -ggdb -g -O2 -ffile-prefix-map=/build/redis-5.0.14=. -fstack-protector-strong -Wformat -Werror=format-security -I../deps/linenoise -DUSE_JEMALLOC -I/usr/include/jemalloc/include -I/usr/include/lua5.1 -I/usr/include/hiredis -Wdate-time -D_FORTIFY_SOURCE=2 -c bitops.c -cc -std=c99 -pedantic -DREDIS_STATIC='' -Wall -W -Wno-missing-field-initializers -O2 -g -ggdb -g -O2 -ffile-prefix-map=/build/redis-5.0.14=. -fstack-protector-strong -Wformat -Werror=format-security -I../deps/linenoise -DUSE_JEMALLOC -I/usr/include/jemalloc/include -I/usr/include/lua5.1 -I/usr/include/hiredis -Wdate-time -D_FORTIFY_SOURCE=2 -c sentinel.c -cc -std=c99 -pedantic -DREDIS_STATIC='' -Wall -W -Wno-missing-field-initializers -O2 -g -ggdb -g -O2 -ffile-prefix-map=/build/redis-5.0.14=. -fstack-protector-strong -Wformat -Werror=format-security -I../deps/linenoise -DUSE_JEMALLOC -I/usr/include/jemalloc/include -I/usr/include/lua5.1 -I/usr/include/hiredis -Wdate-time -D_FORTIFY_SOURCE=2 -c notify.c -cc -std=c99 -pedantic -DREDIS_STATIC='' -Wall -W -Wno-missing-field-initializers -O2 -g -ggdb -g -O2 -ffile-prefix-map=/build/redis-5.0.14=. -fstack-protector-strong -Wformat -Werror=format-security -I../deps/linenoise -DUSE_JEMALLOC -I/usr/include/jemalloc/include -I/usr/include/lua5.1 -I/usr/include/hiredis -Wdate-time -D_FORTIFY_SOURCE=2 -c setproctitle.c In file included from scripting.c:36: ../debian/lua_libs_debian.c: In function 'luaLoadLibraries': /usr/include/lua5.1/lauxlib.h:115:25: warning: value computed is not used [-Wunused-value] @@ -647,6 +679,9 @@ ../debian/lua_libs_debian.c:7:1: note: in expansion of macro 'luaL_dostring' luaL_dostring(lua, "module = nil; require = nil; package = nil"); ^~~~~~~~~~~~~ +cc -std=c99 -pedantic -DREDIS_STATIC='' -Wall -W -Wno-missing-field-initializers -O2 -g -ggdb -g -O2 -ffile-prefix-map=/build/redis-5.0.14=. -fstack-protector-strong -Wformat -Werror=format-security -I../deps/linenoise -DUSE_JEMALLOC -I/usr/include/jemalloc/include -I/usr/include/lua5.1 -I/usr/include/hiredis -Wdate-time -D_FORTIFY_SOURCE=2 -c sentinel.c +cc -std=c99 -pedantic -DREDIS_STATIC='' -Wall -W -Wno-missing-field-initializers -O2 -g -ggdb -g -O2 -ffile-prefix-map=/build/redis-5.0.14=. -fstack-protector-strong -Wformat -Werror=format-security -I../deps/linenoise -DUSE_JEMALLOC -I/usr/include/jemalloc/include -I/usr/include/lua5.1 -I/usr/include/hiredis -Wdate-time -D_FORTIFY_SOURCE=2 -c notify.c +cc -std=c99 -pedantic -DREDIS_STATIC='' -Wall -W -Wno-missing-field-initializers -O2 -g -ggdb -g -O2 -ffile-prefix-map=/build/redis-5.0.14=. -fstack-protector-strong -Wformat -Werror=format-security -I../deps/linenoise -DUSE_JEMALLOC -I/usr/include/jemalloc/include -I/usr/include/lua5.1 -I/usr/include/hiredis -Wdate-time -D_FORTIFY_SOURCE=2 -c setproctitle.c cc -std=c99 -pedantic -DREDIS_STATIC='' -Wall -W -Wno-missing-field-initializers -O2 -g -ggdb -g -O2 -ffile-prefix-map=/build/redis-5.0.14=. -fstack-protector-strong -Wformat -Werror=format-security -I../deps/linenoise -DUSE_JEMALLOC -I/usr/include/jemalloc/include -I/usr/include/lua5.1 -I/usr/include/hiredis -Wdate-time -D_FORTIFY_SOURCE=2 -c blocked.c cc -std=c99 -pedantic -DREDIS_STATIC='' -Wall -W -Wno-missing-field-initializers -O2 -g -ggdb -g -O2 -ffile-prefix-map=/build/redis-5.0.14=. -fstack-protector-strong -Wformat -Werror=format-security -I../deps/linenoise -DUSE_JEMALLOC -I/usr/include/jemalloc/include -I/usr/include/lua5.1 -I/usr/include/hiredis -Wdate-time -D_FORTIFY_SOURCE=2 -c hyperloglog.c cc -std=c99 -pedantic -DREDIS_STATIC='' -Wall -W -Wno-missing-field-initializers -O2 -g -ggdb -g -O2 -ffile-prefix-map=/build/redis-5.0.14=. -fstack-protector-strong -Wformat -Werror=format-security -I../deps/linenoise -DUSE_JEMALLOC -I/usr/include/jemalloc/include -I/usr/include/lua5.1 -I/usr/include/hiredis -Wdate-time -D_FORTIFY_SOURCE=2 -c latency.c @@ -692,10 +727,10 @@ ./runtest --clients 1 || true Cleanup: may take some time... OK Starting test server at port 11111 -[ready]: 1097671 +[ready]: 3225265 Testing unit/printver Testing Redis version 5.0.14 (00000000) -[1/50 done]: unit/printver (0 seconds) +[1/50 done]: unit/printver (1 seconds) Testing unit/dump [ok]: DUMP / RESTORE are able to serialize / unserialize a simple key [ok]: RESTORE can set an arbitrary expire to the materialized key @@ -723,7 +758,7 @@ [ok]: MIGRATE with multiple keys: stress command rewriting [ok]: MIGRATE with multiple keys: delete just ack keys [ok]: MIGRATE AUTH: correct and wrong password cases -[2/50 done]: unit/dump (28 seconds) +[2/50 done]: unit/dump (25 seconds) Testing unit/auth [ok]: AUTH fails if there is no password configured server side [ok]: AUTH fails when a wrong password is given @@ -802,7 +837,7 @@ [ok]: ZSCAN with PATTERN [ok]: ZSCAN scores: regression test for issue #2175 [ok]: SCAN regression test for issue #4906 -[6/50 done]: unit/scan (15 seconds) +[6/50 done]: unit/scan (7 seconds) Testing unit/type/string [ok]: SET and GET an item [ok]: SET and GET an empty item @@ -852,7 +887,7 @@ [ok]: Extended SET PX option [ok]: Extended SET using multiple options at once [ok]: GETRANGE with huge ranges, Github issue #1844 -[7/50 done]: unit/type/string (10 seconds) +[7/50 done]: unit/type/string (8 seconds) Testing unit/type/incr [ok]: INCR against non existing key [ok]: INCR against key created by incr itself @@ -998,14 +1033,14 @@ Testing unit/type/list-2 [ok]: LTRIM stress testing - linkedlist [ok]: LTRIM stress testing - ziplist -[10/50 done]: unit/type/list-2 (17 seconds) +[10/50 done]: unit/type/list-2 (13 seconds) Testing unit/type/list-3 [ok]: Explicit regression for a list bug [ok]: Regression for quicklist #3343 bug [ok]: Stress tester for #3343-alike bugs [ok]: ziplist implementation: value encoding and backlink [ok]: ziplist implementation: encoding stress testing -[11/50 done]: unit/type/list-3 (19 seconds) +[11/50 done]: unit/type/list-3 (15 seconds) Testing unit/type/set [ok]: SADD, SCARD, SISMEMBER, SMEMBERS basics - regular set [ok]: SADD, SCARD, SISMEMBER, SMEMBERS basics - intset @@ -1078,7 +1113,7 @@ [ok]: SMOVE wrong dst key type [ok]: SMOVE with identical source and destination [ok]: intsets implementation stress testing -[12/50 done]: unit/type/set (12 seconds) +[12/50 done]: unit/type/set (7 seconds) Testing unit/type/zset [ok]: Check encoding - ziplist [ok]: ZSET basic ZADD and score update - ziplist @@ -1244,7 +1279,7 @@ [ok]: BZPOPMIN with variadic ZADD [ok]: BZPOPMIN with zero timeout should block indefinitely [ok]: ZSET skiplist order consistency when elements are moved -[13/50 done]: unit/type/zset (13 seconds) +[13/50 done]: unit/type/zset (10 seconds) Testing unit/type/hash [ok]: HSET/HLEN - Small hash creation [ok]: Is the small hash encoded with a ziplist? @@ -1304,7 +1339,7 @@ [ok]: Hash fuzzing #2 - 512 fields [ok]: Stress test the hash ziplist -> hashtable encoding conversion [ok]: Test HINCRBYFLOAT for correct float representation (issue #2846) -[14/50 done]: unit/type/hash (5 seconds) +[14/50 done]: unit/type/hash (4 seconds) Testing unit/type/stream [ok]: XADD can add entries into a stream that XRANGE can fetch [ok]: XADD IDs are incremental @@ -1343,7 +1378,7 @@ [ok]: XSETID cannot SETID on non-existent key [ok]: Empty stream can be rewrite into AOF correctly [ok]: Stream can be rewrite into AOF correctly after XDEL lastid -[15/50 done]: unit/type/stream (28 seconds) +[15/50 done]: unit/type/stream (24 seconds) Testing unit/type/stream-cgroups [ok]: XGROUP CREATE: creation and duplicate group name detection [ok]: XGROUP CREATE: automatic stream creation fails without MKSTREAM @@ -1413,7 +1448,7 @@ [ok]: SORT speed, 100 element list BY hash field, 100 times [ok]: SORT speed, 100 element list directly, 100 times [ok]: SORT speed, 100 element list BY <const>, 100 times -[17/50 done]: unit/sort (9 seconds) +[17/50 done]: unit/sort (8 seconds) Testing unit/expire [ok]: EXPIRE - set timeouts multiple times [ok]: EXPIRE - It should be still possible to read 'x' @@ -1439,7 +1474,7 @@ [ok]: 5 keys in, 5 keys out [ok]: EXPIRE with empty string as TTL should report an error [ok]: SET - use EX/PX option, TTL should not be reseted after loadaof -[18/50 done]: unit/expire (15 seconds) +[18/50 done]: unit/expire (14 seconds) Testing unit/other [ok]: SAVE - make sure there are all the types as values [ok]: FUZZ stresser with data model binary @@ -1455,7 +1490,7 @@ [ok]: APPEND fuzzing [ok]: FLUSHDB [ok]: Perform a final SAVE to leave a clean DB on disk -[19/50 done]: unit/other (7 seconds) +[19/50 done]: unit/other (8 seconds) Testing unit/multi [ok]: MUTLI / EXEC basics [ok]: DISCARD @@ -1486,12 +1521,12 @@ [ok]: MULTI / EXEC is propagated correctly (empty transaction) [ok]: MULTI / EXEC is propagated correctly (read-only commands) [ok]: MULTI / EXEC is propagated correctly (write command, no effect) -[20/50 done]: unit/multi (2 seconds) +[20/50 done]: unit/multi (1 seconds) Testing unit/quit [ok]: QUIT returns OK [ok]: Pipelined commands after QUIT must not be executed [ok]: Pipelined commands after QUIT that exceed read buffer size -[21/50 done]: unit/quit (0 seconds) +[21/50 done]: unit/quit (1 seconds) Testing unit/aofrw [ok]: AOF rewrite during write load: RDB preamble=yes [ok]: AOF rewrite during write load: RDB preamble=no @@ -1512,7 +1547,7 @@ [ok]: AOF rewrite of zset with skiplist encoding, int data [ok]: BGREWRITEAOF is delayed if BGSAVE is in progress [ok]: BGREWRITEAOF is refused if already in progress -[22/50 done]: unit/aofrw (84 seconds) +[22/50 done]: unit/aofrw (101 seconds) Testing integration/block-repl [ok]: First server should have role slave after SLAVEOF [ok]: Test replication with blocking lists and sorted sets operations @@ -1536,7 +1571,7 @@ [ok]: Connect multiple replicas at the same time (issue #141), diskless=no [ok]: Connect multiple replicas at the same time (issue #141), diskless=yes [ok]: Master stream is correctly processed while the replica has a script in -BUSY state -[24/50 done]: integration/replication (163 seconds) +[24/50 done]: integration/replication (168 seconds) Testing integration/replication-2 [ok]: First server should have role slave after SLAVEOF [ok]: If min-slaves-to-write is honored, write is accepted @@ -1553,7 +1588,7 @@ [ok]: First server should have role slave after SLAVEOF [ok]: MASTER and SLAVE consistency with EVALSHA replication [ok]: SLAVE can reload "lua" AUX RDB fields of duplicated scripts -[26/50 done]: integration/replication-3 (31 seconds) +[26/50 done]: integration/replication-3 (30 seconds) Testing integration/replication-4 [ok]: First server should have role slave after SLAVEOF [ok]: Test replication with parallel clients writing in differnet DBs @@ -1596,7 +1631,7 @@ [ok]: Slave should be able to synchronize with the master [ok]: Detect write load to master [ok]: Test replication partial resync: backlog expired (diskless: yes, reconnect: 1) -[28/50 done]: integration/replication-psync (101 seconds) +[28/50 done]: integration/replication-psync (102 seconds) Testing integration/aof [ok]: Unfinished MULTI: Server should start if load-truncated is yes [ok]: Short read: Server should start if load-truncated is yes @@ -1626,7 +1661,7 @@ [ok]: Test RDB stream encoding [ok]: Server should not start if RDB file can't be open [ok]: Server should not start if RDB is corrupted -[30/50 done]: integration/rdb (2 seconds) +[30/50 done]: integration/rdb (1 seconds) Testing integration/convert-zipmap-hash-on-load [ok]: RDB load zipmap hash: converts to ziplist [ok]: RDB load zipmap hash: converts to hash table when hash-max-ziplist-entries is exceeded @@ -1634,59 +1669,65 @@ [31/50 done]: integration/convert-zipmap-hash-on-load (1 seconds) Testing integration/logging [ok]: Server is able to generate a stack trace on selected systems -[32/50 done]: integration/logging (0 seconds) +[32/50 done]: integration/logging (1 seconds) Testing integration/psync2 [ok]: PSYNC2: --- CYCLE 1 --- -[ok]: PSYNC2: [NEW LAYOUT] Set #0 as master -[ok]: PSYNC2: Set #4 to replicate from #0 -[ok]: PSYNC2: Set #2 to replicate from #0 -[ok]: PSYNC2: Set #3 to replicate from #2 -[ok]: PSYNC2: Set #1 to replicate from #2 +[ok]: PSYNC2: [NEW LAYOUT] Set #3 as master +[ok]: PSYNC2: Set #0 to replicate from #3 +[ok]: PSYNC2: Set #2 to replicate from #3 +[ok]: PSYNC2: Set #4 to replicate from #3 +[ok]: PSYNC2: Set #1 to replicate from #4 [ok]: PSYNC2: cluster is consistent after failover [ok]: PSYNC2: generate load while killing replication links -[ok]: PSYNC2: cluster is consistent after load (x = 47875) +[ok]: PSYNC2: cluster is consistent after load (x = 31739) [ok]: PSYNC2: total sum of full synchronizations is exactly 4 [ok]: PSYNC2: --- CYCLE 2 --- -[ok]: PSYNC2: [NEW LAYOUT] Set #4 as master -[ok]: PSYNC2: Set #0 to replicate from #4 +[ok]: PSYNC2: [NEW LAYOUT] Set #2 as master +[ok]: PSYNC2: Set #0 to replicate from #2 [ok]: PSYNC2: Set #1 to replicate from #0 -[ok]: PSYNC2: Set #2 to replicate from #0 -[ok]: PSYNC2: Set #3 to replicate from #4 +[ok]: PSYNC2: Set #3 to replicate from #2 +[ok]: PSYNC2: Set #4 to replicate from #3 [ok]: PSYNC2: cluster is consistent after failover [ok]: PSYNC2: generate load while killing replication links -[ok]: PSYNC2: cluster is consistent after load (x = 51463) +[ok]: PSYNC2: cluster is consistent after load (x = 68367) [ok]: PSYNC2: total sum of full synchronizations is exactly 4 [ok]: PSYNC2: --- CYCLE 3 --- +[ok]: PSYNC2: [NEW LAYOUT] Set #0 as master +[ok]: PSYNC2: Set #4 to replicate from #0 +[ok]: PSYNC2: Set #2 to replicate from #4 +[ok]: PSYNC2: Set #3 to replicate from #4 +[ok]: PSYNC2: Set #1 to replicate from #2 +[ok]: PSYNC2: cluster is consistent after failover +[ok]: PSYNC2: generate load while killing replication links +[ok]: PSYNC2: cluster is consistent after load (x = 115166) +[ok]: PSYNC2: total sum of full synchronizations is exactly 4 +[ok]: PSYNC2: --- CYCLE 4 --- [ok]: PSYNC2: [NEW LAYOUT] Set #4 as master [ok]: PSYNC2: Set #1 to replicate from #4 +[ok]: PSYNC2: Set #0 to replicate from #4 [ok]: PSYNC2: Set #3 to replicate from #4 -[ok]: PSYNC2: Set #0 to replicate from #3 [ok]: PSYNC2: Set #2 to replicate from #4 [ok]: PSYNC2: cluster is consistent after failover [ok]: PSYNC2: generate load while killing replication links -[ok]: PSYNC2: cluster is consistent after load (x = 52992) +[ok]: PSYNC2: cluster is consistent after load (x = 154723) [ok]: PSYNC2: total sum of full synchronizations is exactly 4 [ok]: PSYNC2: Bring the master back again for next test [ok]: PSYNC2: Partial resync after restart using RDB aux fields [ok]: PSYNC2: Replica RDB restart with EVALSHA in backlog issue #4483 -[33/50 done]: integration/psync2 (26 seconds) +[33/50 done]: integration/psync2 (30 seconds) Testing integration/psync2-reg [ok]: PSYNC2 #3899 regression: setup -[ok]: PSYNC2 #3899 regression: kill chained replica -[ok]: PSYNC2 #3899 regression: kill first replica -[ok]: PSYNC2 #3899 regression: kill chained replica -[ok]: PSYNC2 #3899 regression: kill chained replica [ok]: PSYNC2 #3899 regression: kill first replica [ok]: PSYNC2 #3899 regression: kill first replica [ok]: PSYNC2 #3899 regression: kill first replica [ok]: PSYNC2 #3899 regression: kill chained replica +[ok]: PSYNC2 #3899 regression: kill chained replica +[ok]: PSYNC2 #3899 regression: kill chained replica +[ok]: PSYNC2 #3899 regression: kill chained replica [ok]: PSYNC2 #3899 regression: kill first replica [ok]: PSYNC2 #3899 regression: kill first replica -[ok]: PSYNC2 #3899 regression: kill chained replica [ok]: PSYNC2 #3899 regression: kill first replica -[ok]: PSYNC2 #3899 regression: kill chained replica [ok]: PSYNC2 #3899 regression: kill first replica -[ok]: PSYNC2 #3899 regression: kill chained replica [ok]: PSYNC2 #3899 regression: kill first replica [ok]: PSYNC2 #3899 regression: verify consistency [34/50 done]: integration/psync2-reg (22 seconds) @@ -1717,7 +1758,7 @@ [ok]: Keyspace notifications: expired events (background expire) [ok]: Keyspace notifications: evicted events [ok]: Keyspace notifications: test CONFIG GET/SET of event flags -[35/50 done]: unit/pubsub (1 seconds) +[35/50 done]: unit/pubsub (0 seconds) Testing unit/slowlog [ok]: SLOWLOG - check that it starts with an empty log [ok]: SLOWLOG - only logs commands taking more time than specified @@ -1730,7 +1771,7 @@ [ok]: SLOWLOG - EXEC is not logged, just executed commands [ok]: SLOWLOG - can clean older entires [ok]: SLOWLOG - can be disabled -[36/50 done]: unit/slowlog (1 seconds) +[36/50 done]: unit/slowlog (2 seconds) Testing unit/scripting [ok]: EVAL - Does Lua interpreter replies to our requests? [ok]: EVAL - Lua integer -> Redis protocol type conversion @@ -1817,7 +1858,7 @@ [ok]: PRNG is seeded randomly for command replication [ok]: Using side effects is not a problem with command replication [ok]: Test scripting debug protocol parsing -[37/50 done]: unit/scripting (6 seconds) +[37/50 done]: unit/scripting (5 seconds) Testing unit/maxmemory [ok]: Without maxmemory small integers are shared [ok]: With maxmemory and non-LRU policy integers are still shared @@ -1851,7 +1892,7 @@ [ok]: CLIENT SETNAME can assign a name to this connection [ok]: CLIENT SETNAME can change the name of an existing connection [ok]: After CLIENT SETNAME, connection can still be closed -[39/50 done]: unit/introspection (0 seconds) +[39/50 done]: unit/introspection (1 seconds) Testing unit/introspection-2 [ok]: TTL and TYPYE do not alter the last access time of a key [ok]: TOUCH alters the last access time of a key @@ -1869,7 +1910,7 @@ [ok]: Client output buffer hard limit is enforced [ok]: Client output buffer soft limit is not enforced if time is not overreached [ok]: Client output buffer soft limit is enforced if time is overreached -[42/50 done]: unit/obuf-limits (27 seconds) +[42/50 done]: unit/obuf-limits (25 seconds) Testing unit/bitops [ok]: BITCOUNT returns 0 against non existing key [ok]: BITCOUNT returns 0 with out of range indexes @@ -1928,7 +1969,7 @@ [ok]: BITFIELD overflow wrap fuzzing [ok]: BITFIELD regression for #3221 [ok]: BITFIELD regression for #3564 -[44/50 done]: unit/bitfield (2 seconds) +[44/50 done]: unit/bitfield (1 seconds) Testing unit/geo [ok]: GEOADD create [ok]: GEOADD update @@ -1954,7 +1995,7 @@ [ok]: GEORANGE STOREDIST option: plain usage [ok]: GEORANGE STOREDIST option: COUNT ASC and DESC [ok]: GEOADD + GEORANGE randomized test -[45/50 done]: unit/geo (19 seconds) +[45/50 done]: unit/geo (15 seconds) Testing unit/memefficiency [ok]: Memory efficiency with values in range 32 [ok]: Memory efficiency with values in range 64 @@ -1963,7 +2004,7 @@ [ok]: Memory efficiency with values in range 16384 [ok]: Active defrag [ok]: Active defrag big keys -[46/50 done]: unit/memefficiency (39 seconds) +[46/50 done]: unit/memefficiency (34 seconds) Testing unit/hyperloglog [ok]: HyperLogLog self test passes [ok]: PFADD without arguments creates an HLL value @@ -1985,74 +2026,74 @@ [ok]: PFCOUNT multiple-keys merge returns cardinality of union #2 [ok]: PFDEBUG GETREG returns the HyperLogLog raw registers [ok]: PFADD / PFCOUNT cache invalidation works -[47/50 done]: unit/hyperloglog (52 seconds) +[47/50 done]: unit/hyperloglog (30 seconds) Testing unit/lazyfree [ok]: UNLINK can reclaim memory in background [ok]: FLUSHDB ASYNC can reclaim memory in background -[48/50 done]: unit/lazyfree (2 seconds) +[48/50 done]: unit/lazyfree (1 seconds) Testing unit/wait [ok]: Setup slave [ok]: WAIT should acknowledge 1 additional copy of the data [ok]: WAIT should not acknowledge 2 additional copies of the data [ok]: WAIT should not acknowledge 1 additional copy if slave is blocked -[49/50 done]: unit/wait (7 seconds) +[49/50 done]: unit/wait (6 seconds) Testing unit/pendingquerybuf [ok]: pending querybuf: check size of pending_querybuf after set a big value -[50/50 done]: unit/pendingquerybuf (9 seconds) +[50/50 done]: unit/pendingquerybuf (6 seconds) The End Execution time of different units: - 0 seconds - unit/printver - 28 seconds - unit/dump + 1 seconds - unit/printver + 25 seconds - unit/dump 0 seconds - unit/auth 1 seconds - unit/protocol 1 seconds - unit/keyspace - 15 seconds - unit/scan - 10 seconds - unit/type/string + 7 seconds - unit/scan + 8 seconds - unit/type/string 0 seconds - unit/type/incr 12 seconds - unit/type/list - 17 seconds - unit/type/list-2 - 19 seconds - unit/type/list-3 - 12 seconds - unit/type/set - 13 seconds - unit/type/zset - 5 seconds - unit/type/hash - 28 seconds - unit/type/stream + 13 seconds - unit/type/list-2 + 15 seconds - unit/type/list-3 + 7 seconds - unit/type/set + 10 seconds - unit/type/zset + 4 seconds - unit/type/hash + 24 seconds - unit/type/stream 4 seconds - unit/type/stream-cgroups - 9 seconds - unit/sort - 15 seconds - unit/expire - 7 seconds - unit/other - 2 seconds - unit/multi - 0 seconds - unit/quit - 84 seconds - unit/aofrw + 8 seconds - unit/sort + 14 seconds - unit/expire + 8 seconds - unit/other + 1 seconds - unit/multi + 1 seconds - unit/quit + 101 seconds - unit/aofrw 26 seconds - integration/block-repl - 163 seconds - integration/replication + 168 seconds - integration/replication 14 seconds - integration/replication-2 - 31 seconds - integration/replication-3 + 30 seconds - integration/replication-3 25 seconds - integration/replication-4 - 101 seconds - integration/replication-psync + 102 seconds - integration/replication-psync 3 seconds - integration/aof - 2 seconds - integration/rdb + 1 seconds - integration/rdb 1 seconds - integration/convert-zipmap-hash-on-load - 0 seconds - integration/logging - 26 seconds - integration/psync2 + 1 seconds - integration/logging + 30 seconds - integration/psync2 22 seconds - integration/psync2-reg - 1 seconds - unit/pubsub - 1 seconds - unit/slowlog - 6 seconds - unit/scripting + 0 seconds - unit/pubsub + 2 seconds - unit/slowlog + 5 seconds - unit/scripting 34 seconds - unit/maxmemory - 0 seconds - unit/introspection + 1 seconds - unit/introspection 6 seconds - unit/introspection-2 1 seconds - unit/limits - 27 seconds - unit/obuf-limits + 25 seconds - unit/obuf-limits 2 seconds - unit/bitops - 2 seconds - unit/bitfield - 19 seconds - unit/geo - 39 seconds - unit/memefficiency - 52 seconds - unit/hyperloglog - 2 seconds - unit/lazyfree - 7 seconds - unit/wait - 9 seconds - unit/pendingquerybuf + 1 seconds - unit/bitfield + 15 seconds - unit/geo + 34 seconds - unit/memefficiency + 30 seconds - unit/hyperloglog + 1 seconds - unit/lazyfree + 6 seconds - unit/wait + 6 seconds - unit/pendingquerybuf \o/ All tests passed without errors! @@ -2079,438 +2120,438 @@ Starting redis #18 at port 30018 Starting redis #19 at port 30019 Testing unit: 00-base.tcl -10:53:33> (init) Restart killed instances: OK -10:53:33> Cluster nodes are reachable: OK -10:53:33> Cluster nodes hard reset: OK -10:53:34> Cluster Join and auto-discovery test: OK -10:53:38> Before slots allocation, all nodes report cluster failure: OK -10:53:38> Different nodes have different IDs: OK -10:53:38> It is possible to perform slot allocation: OK -10:53:39> After the join, every node gets a different config epoch: OK -10:53:39> Nodes should report cluster_state is ok now: OK -10:53:42> It is possible to write and read from the cluster: OK +07:09:37> (init) Restart killed instances: OK +07:09:37> Cluster nodes are reachable: OK +07:09:37> Cluster nodes hard reset: OK +07:09:37> Cluster Join and auto-discovery test: OK +07:09:40> Before slots allocation, all nodes report cluster failure: OK +07:09:40> Different nodes have different IDs: OK +07:09:40> It is possible to perform slot allocation: OK +07:09:41> After the join, every node gets a different config epoch: OK +07:09:41> Nodes should report cluster_state is ok now: OK +07:09:44> It is possible to write and read from the cluster: OK Testing unit: 01-faildet.tcl -10:53:44> (init) Restart killed instances: OK -10:53:44> Cluster nodes are reachable: OK -10:53:44> Cluster nodes hard reset: OK -10:53:45> Cluster Join and auto-discovery test: OK -10:53:48> Before slots allocation, all nodes report cluster failure: OK -10:53:48> Create a 5 nodes cluster: OK -10:53:52> Cluster should start ok: OK -10:53:52> Killing two slave nodes: OK -10:53:53> Cluster should be still up: OK -10:53:53> Killing one master node: OK -10:53:53> Cluster should be down now: OK -10:53:56> Restarting master node: OK -10:53:56> Cluster should be up again: OK +07:09:44> (init) Restart killed instances: OK +07:09:44> Cluster nodes are reachable: OK +07:09:44> Cluster nodes hard reset: OK +07:09:44> Cluster Join and auto-discovery test: OK +07:09:47> Before slots allocation, all nodes report cluster failure: OK +07:09:47> Create a 5 nodes cluster: OK +07:09:51> Cluster should start ok: OK +07:09:51> Killing two slave nodes: OK +07:09:51> Cluster should be still up: OK +07:09:51> Killing one master node: OK +07:09:51> Cluster should be down now: OK +07:09:54> Restarting master node: OK +07:09:54> Cluster should be up again: OK Testing unit: 02-failover.tcl -10:54:03> (init) Restart killed instances: redis/5 redis/6 OK -10:54:04> Cluster nodes are reachable: OK -10:54:04> Cluster nodes hard reset: OK -10:54:05> Cluster Join and auto-discovery test: OK -10:54:08> Before slots allocation, all nodes report cluster failure: OK -10:54:08> Create a 5 nodes cluster: OK -10:54:12> Cluster is up: OK -10:54:12> Cluster is writable: OK -10:54:14> Instance #5 is a slave: OK -10:54:14> Instance #5 synced with the master: OK -10:54:14> Killing one master node: OK -10:54:14> Wait for failover: OK -10:54:18> Cluster should eventually be up again: OK -10:54:19> Cluster is writable: OK -10:54:19> Instance #5 is now a master: OK -10:54:19> Restarting the previously killed master node: OK -10:54:19> Instance #0 gets converted into a slave: OK +07:10:01> (init) Restart killed instances: redis/5 redis/6 OK +07:10:01> Cluster nodes are reachable: OK +07:10:01> Cluster nodes hard reset: OK +07:10:01> Cluster Join and auto-discovery test: OK +07:10:04> Before slots allocation, all nodes report cluster failure: OK +07:10:04> Create a 5 nodes cluster: OK +07:10:08> Cluster is up: OK +07:10:08> Cluster is writable: OK +07:10:08> Instance #5 is a slave: OK +07:10:08> Instance #5 synced with the master: OK +07:10:08> Killing one master node: OK +07:10:08> Wait for failover: OK +07:10:12> Cluster should eventually be up again: OK +07:10:12> Cluster is writable: OK +07:10:13> Instance #5 is now a master: OK +07:10:13> Restarting the previously killed master node: OK +07:10:13> Instance #0 gets converted into a slave: OK Testing unit: 03-failover-loop.tcl -10:54:19> (init) Restart killed instances: OK -10:54:19> Cluster nodes are reachable: OK -10:54:19> Cluster nodes hard reset: OK -10:54:19> Cluster Join and auto-discovery test: OK -10:54:24> Before slots allocation, all nodes report cluster failure: OK -10:54:24> Create a 5 nodes cluster: OK -10:54:27> Cluster is up: OK +07:10:13> (init) Restart killed instances: OK +07:10:13> Cluster nodes are reachable: OK +07:10:13> Cluster nodes hard reset: OK +07:10:13> Cluster Join and auto-discovery test: OK +07:10:16> Before slots allocation, all nodes report cluster failure: OK +07:10:16> Create a 5 nodes cluster: OK +07:10:20> Cluster is up: OK --- Iteration 19 --- -10:54:28> Wait for slave of #3 to sync: OK -10:54:28> Cluster is writable before failover: OK -10:54:28> Killing node #3: OK -10:54:28> Wait failover by #8 with old epoch 4: OK -10:54:32> Cluster should eventually be up again: OK -10:54:32> Cluster is writable again: OK -10:54:33> Restarting node #3: OK -10:54:33> Instance #3 is now a slave: OK -10:54:33> We can read back the value we set before: OK +07:10:20> Wait for slave of #3 to sync: OK +07:10:20> Cluster is writable before failover: OK +07:10:20> Killing node #3: OK +07:10:20> Wait failover by #8 with old epoch 4: OK +07:10:24> Cluster should eventually be up again: OK +07:10:24> Cluster is writable again: OK +07:10:25> Restarting node #3: OK +07:10:25> Instance #3 is now a slave: OK +07:10:25> We can read back the value we set before: OK --- Iteration 18 --- -10:54:34> Cluster is writable before failover: OK -10:54:35> Killing node #3: OK -10:54:35> Cluster should eventually be up again: OK -10:54:35> Cluster is writable again: OK -10:54:35> Restarting node #3: OK -10:54:35> Instance #3 is now a slave: OK -10:54:35> We can read back the value we set before: OK +07:10:25> Cluster is writable before failover: OK +07:10:25> Killing node #9: OK +07:10:25> Cluster should eventually be up again: OK +07:10:25> Cluster is writable again: OK +07:10:25> Restarting node #9: OK +07:10:25> Instance #9 is now a slave: OK +07:10:25> We can read back the value we set before: OK --- Iteration 17 --- -10:54:36> Wait for slave of #4 to sync: OK -10:54:36> Cluster is writable before failover: OK -10:54:37> Killing node #4: OK -10:54:37> Wait failover by #9 with old epoch 5: OK -10:54:41> Cluster should eventually be up again: OK -10:54:41> Cluster is writable again: OK -10:54:42> Restarting node #4: OK -10:54:42> Instance #4 is now a slave: OK -10:54:42> We can read back the value we set before: OK +07:10:25> Wait for slave of #0 to sync: OK +07:10:25> Cluster is writable before failover: OK +07:10:25> Killing node #0: OK +07:10:25> Wait failover by #5 with old epoch 1: OK +07:10:29> Cluster should eventually be up again: OK +07:10:29> Cluster is writable again: OK +07:10:29> Restarting node #0: OK +07:10:29> Instance #0 is now a slave: OK +07:10:29> We can read back the value we set before: OK --- Iteration 16 --- -10:54:42> Wait for slave of #0 to sync: OK -10:54:42> Cluster is writable before failover: OK -10:54:42> Killing node #0: OK -10:54:42> Wait failover by #5 with old epoch 1: OK -10:54:46> Cluster should eventually be up again: OK -10:54:46> Cluster is writable again: OK -10:54:46> Restarting node #0: OK -10:54:46> Instance #0 is now a slave: OK -10:54:46> We can read back the value we set before: OK +07:10:30> Cluster is writable before failover: OK +07:10:30> Killing node #7: OK +07:10:30> Cluster should eventually be up again: OK +07:10:30> Cluster is writable again: OK +07:10:30> Restarting node #7: OK +07:10:30> Instance #7 is now a slave: OK +07:10:30> We can read back the value we set before: OK --- Iteration 15 --- -10:54:47> Wait for slave of #5 to sync: OK -10:54:47> Cluster is writable before failover: OK -10:54:48> Killing node #5: OK -10:54:48> Wait failover by #0 with old epoch 23: OK -10:54:52> Cluster should eventually be up again: OK -10:54:52> Cluster is writable again: OK -10:54:52> Restarting node #5: OK -10:54:52> Instance #5 is now a slave: OK -10:54:52> We can read back the value we set before: OK +07:10:30> Cluster is writable before failover: OK +07:10:30> Killing node #9: OK +07:10:30> Cluster should eventually be up again: OK +07:10:30> Cluster is writable again: OK +07:10:30> Restarting node #9: OK +07:10:30> Instance #9 is now a slave: OK +07:10:30> We can read back the value we set before: OK --- Iteration 14 --- -10:54:52> Wait for slave of #8 to sync: OK -10:54:52> Cluster is writable before failover: OK -10:54:52> Killing node #8: OK -10:54:52> Wait failover by #3 with old epoch 21: OK -10:54:56> Cluster should eventually be up again: OK -10:54:56> Cluster is writable again: OK -10:54:56> Restarting node #8: OK -10:54:56> Instance #8 is now a slave: OK -10:54:56> We can read back the value we set before: OK +07:10:30> Cluster is writable before failover: OK +07:10:30> Killing node #7: OK +07:10:30> Cluster should eventually be up again: OK +07:10:30> Cluster is writable again: OK +07:10:30> Restarting node #7: OK +07:10:30> Instance #7 is now a slave: OK +07:10:30> We can read back the value we set before: OK --- Iteration 13 --- -10:54:57> Cluster is writable before failover: OK -10:54:57> Killing node #4: OK -10:54:57> Cluster should eventually be up again: OK -10:54:57> Cluster is writable again: OK -10:54:57> Restarting node #4: OK -10:54:57> Instance #4 is now a slave: OK -10:54:57> We can read back the value we set before: OK +07:10:30> Wait for slave of #4 to sync: OK +07:10:31> Cluster is writable before failover: OK +07:10:31> Killing node #4: OK +07:10:31> Wait failover by #9 with old epoch 5: OK +07:10:36> Cluster should eventually be up again: OK +07:10:36> Cluster is writable again: OK +07:10:36> Restarting node #4: OK +07:10:36> Instance #4 is now a slave: OK +07:10:36> We can read back the value we set before: OK --- Iteration 12 --- -10:54:57> Wait for slave of #1 to sync: OK -10:54:57> Cluster is writable before failover: OK -10:54:57> Killing node #1: OK -10:54:57> Wait failover by #6 with old epoch 2: OK -10:55:01> Cluster should eventually be up again: OK -10:55:01> Cluster is writable again: OK -10:55:01> Restarting node #1: OK -10:55:01> Instance #1 is now a slave: OK -10:55:01> We can read back the value we set before: OK +07:10:36> Cluster is writable before failover: OK +07:10:36> Killing node #3: OK +07:10:36> Cluster should eventually be up again: OK +07:10:36> Cluster is writable again: OK +07:10:36> Restarting node #3: OK +07:10:36> Instance #3 is now a slave: OK +07:10:36> We can read back the value we set before: OK --- Iteration 11 --- -10:55:01> Wait for slave of #2 to sync: OK -10:55:01> Cluster is writable before failover: OK -10:55:01> Killing node #2: OK -10:55:02> Wait failover by #7 with old epoch 3: OK -10:55:06> Cluster should eventually be up again: OK -10:55:06> Cluster is writable again: OK -10:55:07> Restarting node #2: OK -10:55:07> Instance #2 is now a slave: OK -10:55:07> We can read back the value we set before: OK +07:10:36> Cluster is writable before failover: OK +07:10:36> Killing node #6: OK +07:10:36> Cluster should eventually be up again: OK +07:10:36> Cluster is writable again: OK +07:10:36> Restarting node #6: OK +07:10:36> Instance #6 is now a slave: OK +07:10:36> We can read back the value we set before: OK --- Iteration 10 --- -10:55:08> Cluster is writable before failover: OK -10:55:09> Killing node #2: OK -10:55:09> Cluster should eventually be up again: OK -10:55:09> Cluster is writable again: OK -10:55:10> Restarting node #2: OK -10:55:10> Instance #2 is now a slave: OK -10:55:10> We can read back the value we set before: OK +07:10:37> Wait for slave of #8 to sync: OK +07:10:37> Cluster is writable before failover: OK +07:10:37> Killing node #8: OK +07:10:37> Wait failover by #3 with old epoch 21: OK +07:10:41> Cluster should eventually be up again: OK +07:10:41> Cluster is writable again: OK +07:10:41> Restarting node #8: OK +07:10:41> Instance #8 is now a slave: OK +07:10:42> We can read back the value we set before: OK --- Iteration 9 --- -10:55:11> Cluster is writable before failover: OK -10:55:12> Killing node #5: OK -10:55:12> Cluster should eventually be up again: OK -10:55:12> Cluster is writable again: OK -10:55:13> Restarting node #5: OK -10:55:13> Instance #5 is now a slave: OK -10:55:13> We can read back the value we set before: OK +07:10:42> Wait for slave of #2 to sync: OK +07:10:42> Cluster is writable before failover: OK +07:10:42> Killing node #2: OK +07:10:42> Wait failover by #7 with old epoch 3: OK +07:10:46> Cluster should eventually be up again: OK +07:10:46> Cluster is writable again: OK +07:10:46> Restarting node #2: OK +07:10:46> Instance #2 is now a slave: OK +07:10:46> We can read back the value we set before: OK --- Iteration 8 --- -10:55:15> Wait for slave of #6 to sync: OK -10:55:15> Cluster is writable before failover: OK -10:55:15> Killing node #6: OK -10:55:15> Wait failover by #1 with old epoch 26: OK -10:55:19> Cluster should eventually be up again: OK -10:55:19> Cluster is writable again: OK -10:55:20> Restarting node #6: OK -10:55:20> Instance #6 is now a slave: OK -10:55:20> We can read back the value we set before: OK +07:10:46> Cluster is writable before failover: OK +07:10:46> Killing node #4: OK +07:10:46> Cluster should eventually be up again: OK +07:10:46> Cluster is writable again: OK +07:10:46> Restarting node #4: OK +07:10:46> Instance #4 is now a slave: OK +07:10:46> We can read back the value we set before: OK --- Iteration 7 --- -10:55:20> Cluster is writable before failover: OK -10:55:20> Killing node #6: OK -10:55:20> Cluster should eventually be up again: OK -10:55:21> Cluster is writable again: OK -10:55:21> Restarting node #6: OK -10:55:21> Instance #6 is now a slave: OK -10:55:21> We can read back the value we set before: OK +07:10:46> Wait for slave of #9 to sync: OK +07:10:47> Cluster is writable before failover: OK +07:10:47> Killing node #9: OK +07:10:47> Wait failover by #4 with old epoch 23: OK +07:10:51> Cluster should eventually be up again: OK +07:10:51> Cluster is writable again: OK +07:10:51> Restarting node #9: OK +07:10:51> Instance #9 is now a slave: OK +07:10:51> We can read back the value we set before: OK --- Iteration 6 --- -10:55:23> Wait for slave of #9 to sync: OK -10:55:23> Cluster is writable before failover: OK -10:55:24> Killing node #9: OK -10:55:24> Wait failover by #4 with old epoch 22: OK -10:55:28> Cluster should eventually be up again: OK -10:55:28> Cluster is writable again: OK -10:55:28> Restarting node #9: OK -10:55:29> Instance #9 is now a slave: OK -10:55:29> We can read back the value we set before: OK +07:10:51> Cluster is writable before failover: OK +07:10:51> Killing node #8: OK +07:10:52> Cluster should eventually be up again: OK +07:10:52> Cluster is writable again: OK +07:10:52> Restarting node #8: OK +07:10:52> Instance #8 is now a slave: OK +07:10:52> We can read back the value we set before: OK --- Iteration 5 --- -10:55:30> Cluster is writable before failover: OK -10:55:30> Killing node #9: OK -10:55:31> Cluster should eventually be up again: OK -10:55:31> Cluster is writable again: OK -10:55:31> Restarting node #9: OK -10:55:31> Instance #9 is now a slave: OK -10:55:31> We can read back the value we set before: OK +07:10:52> Wait for slave of #3 to sync: OK +07:10:53> Cluster is writable before failover: OK +07:10:53> Killing node #3: OK +07:10:53> Wait failover by #8 with old epoch 24: OK +07:10:57> Cluster should eventually be up again: OK +07:10:57> Cluster is writable again: OK +07:10:57> Restarting node #3: OK +07:10:57> Instance #3 is now a slave: OK +07:10:57> We can read back the value we set before: OK --- Iteration 4 --- -10:55:33> Cluster is writable before failover: OK -10:55:33> Killing node #5: OK -10:55:33> Cluster should eventually be up again: OK -10:55:34> Cluster is writable again: OK -10:55:34> Restarting node #5: OK -10:55:34> Instance #5 is now a slave: OK -10:55:34> We can read back the value we set before: OK +07:10:58> Wait for slave of #8 to sync: OK +07:10:58> Cluster is writable before failover: OK +07:10:58> Killing node #8: OK +07:10:59> Wait failover by #3 with old epoch 27: OK +07:11:03> Cluster should eventually be up again: OK +07:11:03> Cluster is writable again: OK +07:11:03> Restarting node #8: OK +07:11:03> Instance #8 is now a slave: OK +07:11:03> We can read back the value we set before: OK --- Iteration 3 --- -10:55:36> Cluster is writable before failover: OK -10:55:36> Killing node #2: OK -10:55:36> Cluster should eventually be up again: OK -10:55:37> Cluster is writable again: OK -10:55:37> Restarting node #2: OK -10:55:37> Instance #2 is now a slave: OK -10:55:37> We can read back the value we set before: OK +07:11:03> Wait for slave of #5 to sync: OK +07:11:03> Cluster is writable before failover: OK +07:11:03> Killing node #5: OK +07:11:03> Wait failover by #0 with old epoch 22: OK +07:11:07> Cluster should eventually be up again: OK +07:11:07> Cluster is writable again: OK +07:11:07> Restarting node #5: OK +07:11:07> Instance #5 is now a slave: OK +07:11:07> We can read back the value we set before: OK --- Iteration 2 --- -10:55:39> Cluster is writable before failover: OK -10:55:39> Killing node #6: OK -10:55:39> Cluster should eventually be up again: OK -10:55:39> Cluster is writable again: OK -10:55:40> Restarting node #6: OK -10:55:40> Instance #6 is now a slave: OK -10:55:40> We can read back the value we set before: OK +07:11:07> Cluster is writable before failover: OK +07:11:07> Killing node #5: OK +07:11:07> Cluster should eventually be up again: OK +07:11:08> Cluster is writable again: OK +07:11:08> Restarting node #5: OK +07:11:08> Instance #5 is now a slave: OK +07:11:08> We can read back the value we set before: OK --- Iteration 1 --- -10:55:41> Wait for slave of #7 to sync: OK -10:55:41> Cluster is writable before failover: OK -10:55:42> Killing node #7: OK -10:55:42> Wait failover by #2 with old epoch 27: OK -10:55:46> Cluster should eventually be up again: OK -10:55:46> Cluster is writable again: OK -10:55:47> Restarting node #7: OK -10:55:47> Instance #7 is now a slave: OK -10:55:47> We can read back the value we set before: OK -10:55:48> Post condition: current_epoch >= my_epoch everywhere: OK +07:11:08> Wait for slave of #0 to sync: OK +07:11:09> Cluster is writable before failover: OK +07:11:09> Killing node #0: OK +07:11:09> Wait failover by #5 with old epoch 29: OK +07:11:13> Cluster should eventually be up again: OK +07:11:13> Cluster is writable again: OK +07:11:13> Restarting node #0: OK +07:11:13> Instance #0 is now a slave: OK +07:11:13> We can read back the value we set before: OK +07:11:13> Post condition: current_epoch >= my_epoch everywhere: OK Testing unit: 04-resharding.tcl -10:55:48> (init) Restart killed instances: OK -10:55:48> Cluster nodes are reachable: OK -10:55:48> Cluster nodes hard reset: OK -10:55:50> Cluster Join and auto-discovery test: OK -10:55:53> Before slots allocation, all nodes report cluster failure: OK -10:55:53> Create a 5 nodes cluster: OK -10:55:57> Cluster is up: OK -10:55:57> Enable AOF in all the instances: OK -10:55:58> Cluster consistency during live resharding: WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW...Starting resharding...W............................................................W.........................................................................W......................................................................W..............................................................................................W...................................................................................................................................................................................................................................W...........................................................................................................................................................................................W............................................................................W....................................................W............................................................................................................................W...Starting resharding...W.............................................................................................................................................................................................................................................................................................................W.............................................................................................................................................................................................................................................W............................................................................................................................................................................................................................................W.................................................................................................................................................................................................................................WWWWWW...Starting resharding...W.....................................................................................................................................................................................................................................................................................................................................W............................................................................................................................................................................................................................W.............................................................................................................................................................................W............................................................................................................................................................................................................................................W.........................WWWWW...Starting resharding...W............................................................................................................W...............................W.....................................................................................................................................W.......................W................W........................................................................................................................................................................W................................................................W.............................W................................................................................................................................W......................................................................................................................................................................................................................................................................................W............WWWWWWWWW...Starting resharding...W...........................................................................................................................................................................................................................................................................................................W..............................................................................................................................................................................................................................................................W........................................................................................................................................................................................................................................................................................W...........................................................................................................................................................................WWWWWW...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...................................................WWWWWWOK -11:00:50> Verify 50000 keys for consistency with logical content: OK -11:00:59> Crash and restart all the instances: OK -11:01:03> Cluster should eventually be up again: OK -11:01:05> Verify 50000 keys after the crash & restart: OK -11:01:18> Disable AOF in all the instances: OK -11:01:18> Verify slaves consistency: OK +07:11:13> (init) Restart killed instances: OK +07:11:13> Cluster nodes are reachable: OK +07:11:13> Cluster nodes hard reset: OK +07:11:13> Cluster Join and auto-discovery test: OK +07:11:17> Before slots allocation, all nodes report cluster failure: OK +07:11:17> Create a 5 nodes cluster: OK +07:11:20> Cluster is up: OK +07:11:20> Enable AOF in all the instances: OK +07:11:20> Cluster consistency during live resharding: WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW...Starting resharding...W...............................................................W.......................................................................W............................................................W..........................................................W..................................................W..........................................W..................................................W....................................................................W......................................................W............................................................................W.............................................................................W.....................................................................................W.......................................................W..........................................................................W.........................................W...........................................W..................WWW...Starting resharding...W...............................................................W.....................................................................................W..........................................................................W...................................................................W..................................................................................W.............................................................W...........................................................................W............................................................................................................W..........................................W........................................................W...........................................................................................W..........................................W..............................................W.......................................................W......................................WWWWW...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..............WWW...Starting resharding...W...............................................................................................................W.......................................................................W.........................................W........................................................W..........................................W...........................................................W...........................................................W..............................................................................W.........................................................W.....................................W.........................................................................W...........................................................................................W...........................................................W.....................................................................W.............................................................................W...........................WWWWOK +07:12:26> Verify 50000 keys for consistency with logical content: OK +07:12:40> Crash and restart all the instances: OK +07:12:43> Cluster should eventually be up again: OK +07:12:45> Verify 50000 keys after the crash & restart: OK +07:12:58> Disable AOF in all the instances: OK +07:12:58> Verify slaves consistency: OK Testing unit: 05-slave-selection.tcl -11:01:19> (init) Restart killed instances: OK -11:01:19> Cluster nodes are reachable: OK -11:01:19> Cluster nodes hard reset: OK -11:01:20> Cluster Join and auto-discovery test: OK -11:01:23> Before slots allocation, all nodes report cluster failure: OK -11:01:23> Create a 5 nodes cluster: OK -11:01:27> Cluster is up: OK -11:01:27> The first master has actually two slaves: OK -11:01:27> Slaves of #0 are instance #5 and #10 as expected: OK -11:01:27> Instance #5 and #10 synced with the master: OK -11:01:27> Slaves are both able to receive and acknowledge writes: OK -11:01:27> Write data while slave #10 is paused and can't receive it: OK -11:01:37> Wait for instance #5 (and not #10) to turn into a master: OK -11:01:42> Wait for the node #10 to return alive before ending the test: OK -11:01:42> Cluster should eventually be up again: OK -11:01:42> Node #10 should eventually replicate node #5: OK -11:01:42> (init) Restart killed instances: redis/0 OK -11:01:42> Cluster nodes are reachable: OK -11:01:42> Cluster nodes hard reset: OK -11:01:43> Cluster Join and auto-discovery test: OK -11:01:48> Before slots allocation, all nodes report cluster failure: OK -11:01:48> Create a 3 nodes cluster: OK -11:01:52> Cluster is up: OK -11:01:52> The first master has actually 5 slaves: OK -11:01:52> Slaves of #0 are instance #3, #6, #9, #12 and #15 as expected: OK -11:01:52> Instance #3, #6, #9, #12 and #15 synced with the master: OK -11:01:52> New Master down consecutively: OK +07:12:59> (init) Restart killed instances: OK +07:12:59> Cluster nodes are reachable: OK +07:12:59> Cluster nodes hard reset: OK +07:13:00> Cluster Join and auto-discovery test: OK +07:13:03> Before slots allocation, all nodes report cluster failure: OK +07:13:03> Create a 5 nodes cluster: OK +07:13:07> Cluster is up: OK +07:13:07> The first master has actually two slaves: OK +07:13:07> Slaves of #0 are instance #5 and #10 as expected: OK +07:13:07> Instance #5 and #10 synced with the master: OK +07:13:07> Slaves are both able to receive and acknowledge writes: OK +07:13:07> Write data while slave #10 is paused and can't receive it: OK +07:13:17> Wait for instance #5 (and not #10) to turn into a master: OK +07:13:22> Wait for the node #10 to return alive before ending the test: OK +07:13:22> Cluster should eventually be up again: OK +07:13:22> Node #10 should eventually replicate node #5: OK +07:13:22> (init) Restart killed instances: redis/0 OK +07:13:22> Cluster nodes are reachable: OK +07:13:22> Cluster nodes hard reset: OK +07:13:22> Cluster Join and auto-discovery test: OK +07:13:25> Before slots allocation, all nodes report cluster failure: OK +07:13:25> Create a 3 nodes cluster: OK +07:13:29> Cluster is up: OK +07:13:29> The first master has actually 5 slaves: OK +07:13:29> Slaves of #0 are instance #3, #6, #9, #12 and #15 as expected: OK +07:13:29> Instance #3, #6, #9, #12 and #15 synced with the master: OK +07:13:29> New Master down consecutively: OK Testing unit: 06-slave-stop-cond.tcl -11:02:22> (init) Restart killed instances: redis/0 redis/6 redis/9 redis/12 redis/15 OK -11:02:23> Cluster nodes are reachable: OK -11:02:23> Cluster nodes hard reset: OK -11:02:24> Cluster Join and auto-discovery test: OK -11:02:29> Before slots allocation, all nodes report cluster failure: OK -11:02:29> Create a 5 nodes cluster: OK -11:02:33> Cluster is up: OK -11:02:33> The first master has actually one slave: OK -11:02:33> Slaves of #0 is instance #5 as expected: OK -11:02:33> Instance #5 synced with the master: OK -11:02:33> Lower the slave validity factor of #5 to the value of 2: OK -11:02:33> Break master-slave link and prevent further reconnections: OK -11:02:53> Slave #5 is reachable and alive: OK -11:02:53> Slave #5 should not be able to failover: OK -11:03:03> Cluster should be down: OK +07:13:59> (init) Restart killed instances: redis/0 redis/3 redis/6 redis/9 redis/12 OK +07:14:00> Cluster nodes are reachable: OK +07:14:00> Cluster nodes hard reset: OK +07:14:00> Cluster Join and auto-discovery test: OK +07:14:04> Before slots allocation, all nodes report cluster failure: OK +07:14:04> Create a 5 nodes cluster: OK +07:14:08> Cluster is up: OK +07:14:08> The first master has actually one slave: OK +07:14:08> Slaves of #0 is instance #5 as expected: OK +07:14:08> Instance #5 synced with the master: OK +07:14:08> Lower the slave validity factor of #5 to the value of 2: OK +07:14:08> Break master-slave link and prevent further reconnections: OK +07:14:28> Slave #5 is reachable and alive: OK +07:14:28> Slave #5 should not be able to failover: OK +07:14:38> Cluster should be down: OK Testing unit: 07-replica-migration.tcl -11:03:03> (init) Restart killed instances: redis/0 OK -11:03:03> Cluster nodes are reachable: OK -11:03:03> Cluster nodes hard reset: OK -11:03:05> Cluster Join and auto-discovery test: OK -11:03:09> Before slots allocation, all nodes report cluster failure: OK -11:03:09> Create a 5 nodes cluster: OK -11:03:13> Cluster is up: OK -11:03:13> Each master should have two replicas attached: OK -11:03:13> Killing all the slaves of master #0 and #1: OK -11:03:18> Master #0 should have at least one replica: OK -11:03:24> Master #1 should have at least one replica: OK -11:03:24> Master #2 should have at least one replica: OK -11:03:24> Master #3 should have at least one replica: OK -11:03:24> Master #4 should have at least one replica: OK -11:03:24> (init) Restart killed instances: redis/5 redis/6 redis/10 redis/11 OK -11:03:24> Cluster nodes are reachable: OK -11:03:24> Cluster nodes hard reset: OK -11:03:25> Cluster Join and auto-discovery test: OK -11:03:31> Before slots allocation, all nodes report cluster failure: OK -11:03:31> Create a 5 nodes cluster: OK -11:03:34> Cluster is up: OK -11:03:34> Kill slave #7 of master #2. Only slave left is #12 now: OK -11:03:34> Killing master node #2, #12 should failover: OK -11:03:35> Wait for failover: OK -11:03:39> Cluster should eventually be up again: OK -11:03:39> Cluster is writable: OK -11:03:40> Instance 12 is now a master without slaves: OK -11:03:40> Master #12 should get at least one migrated replica: OK +07:14:38> (init) Restart killed instances: redis/0 OK +07:14:38> Cluster nodes are reachable: OK +07:14:38> Cluster nodes hard reset: OK +07:14:38> Cluster Join and auto-discovery test: OK +07:14:42> Before slots allocation, all nodes report cluster failure: OK +07:14:42> Create a 5 nodes cluster: OK +07:14:46> Cluster is up: OK +07:14:46> Each master should have two replicas attached: OK +07:14:46> Killing all the slaves of master #0 and #1: OK +07:14:50> Master #0 should have at least one replica: OK +07:14:55> Master #1 should have at least one replica: OK +07:14:56> Master #2 should have at least one replica: OK +07:14:56> Master #3 should have at least one replica: OK +07:14:56> Master #4 should have at least one replica: OK +07:14:56> (init) Restart killed instances: redis/5 redis/6 redis/10 redis/11 OK +07:14:56> Cluster nodes are reachable: OK +07:14:56> Cluster nodes hard reset: OK +07:14:56> Cluster Join and auto-discovery test: OK +07:15:00> Before slots allocation, all nodes report cluster failure: OK +07:15:00> Create a 5 nodes cluster: OK +07:15:04> Cluster is up: OK +07:15:04> Kill slave #7 of master #2. Only slave left is #12 now: OK +07:15:04> Killing master node #2, #12 should failover: OK +07:15:04> Wait for failover: OK +07:15:08> Cluster should eventually be up again: OK +07:15:08> Cluster is writable: OK +07:15:08> Instance 12 is now a master without slaves: OK +07:15:08> Master #12 should get at least one migrated replica: OK Testing unit: 08-update-msg.tcl -11:03:45> (init) Restart killed instances: redis/2 redis/7 OK -11:03:45> Cluster nodes are reachable: OK -11:03:45> Cluster nodes hard reset: OK -11:03:46> Cluster Join and auto-discovery test: OK -11:03:51> Before slots allocation, all nodes report cluster failure: OK -11:03:51> Create a 5 nodes cluster: OK -11:03:55> Cluster is up: OK -11:03:55> Cluster is writable: OK -11:03:57> Instance #5 is a slave: OK -11:03:57> Instance #5 synced with the master: OK -11:03:57> Killing one master node: OK -11:03:57> Wait for failover: OK -11:04:01> Cluster should eventually be up again: OK -11:04:01> Cluster is writable: OK -11:04:03> Instance #5 is now a master: OK -11:04:03> Killing the new master #5: OK -11:04:03> Cluster should be down now: OK -11:04:06> Restarting the old master node: OK -11:04:06> Instance #0 gets converted into a slave: OK -11:04:06> Restarting the new master node: OK -11:04:06> Cluster is up again: OK +07:15:14> (init) Restart killed instances: redis/2 redis/7 OK +07:15:14> Cluster nodes are reachable: OK +07:15:14> Cluster nodes hard reset: OK +07:15:14> Cluster Join and auto-discovery test: OK +07:15:20> Before slots allocation, all nodes report cluster failure: OK +07:15:20> Create a 5 nodes cluster: OK +07:15:24> Cluster is up: OK +07:15:24> Cluster is writable: OK +07:15:24> Instance #5 is a slave: OK +07:15:24> Instance #5 synced with the master: OK +07:15:24> Killing one master node: OK +07:15:24> Wait for failover: OK +07:15:29> Cluster should eventually be up again: OK +07:15:29> Cluster is writable: OK +07:15:29> Instance #5 is now a master: OK +07:15:29> Killing the new master #5: OK +07:15:29> Cluster should be down now: OK +07:15:32> Restarting the old master node: OK +07:15:32> Instance #0 gets converted into a slave: OK +07:15:32> Restarting the new master node: OK +07:15:32> Cluster is up again: OK Testing unit: 09-pubsub.tcl -11:04:14> (init) Restart killed instances: OK -11:04:14> Cluster nodes are reachable: OK -11:04:14> Cluster nodes hard reset: OK -11:04:15> Cluster Join and auto-discovery test: OK -11:04:20> Before slots allocation, all nodes report cluster failure: OK -11:04:20> Create a 5 nodes cluster: OK -11:04:24> Test publishing to master: OK -11:04:24> Test publishing to slave: OK +07:15:38> (init) Restart killed instances: OK +07:15:38> Cluster nodes are reachable: OK +07:15:38> Cluster nodes hard reset: OK +07:15:38> Cluster Join and auto-discovery test: OK +07:15:44> Before slots allocation, all nodes report cluster failure: OK +07:15:44> Create a 5 nodes cluster: OK +07:15:48> Test publishing to master: OK +07:15:48> Test publishing to slave: OK Testing unit: 10-manual-failover.tcl -11:04:24> (init) Restart killed instances: OK -11:04:24> Cluster nodes are reachable: OK -11:04:24> Cluster nodes hard reset: OK -11:04:26> Cluster Join and auto-discovery test: OK -11:04:29> Before slots allocation, all nodes report cluster failure: OK -11:04:29> Create a 5 nodes cluster: OK -11:04:33> Cluster is up: OK -11:04:33> Cluster is writable: OK -11:04:35> Instance #5 is a slave: OK -11:04:35> Instance #5 synced with the master: OK -11:04:35> Send CLUSTER FAILOVER to #5, during load: WWWWWWWWWWOK -11:05:40> Wait for failover: OK -11:05:40> Cluster should eventually be up again: OK -11:05:40> Cluster is writable: OK -11:05:42> Instance #5 is now a master: OK -11:05:42> Verify 50000 keys for consistency with logical content: OK -11:06:32> Instance #0 gets converted into a slave: OK -11:06:32> (init) Restart killed instances: OK -11:06:32> Cluster nodes are reachable: OK -11:06:32> Cluster nodes hard reset: OK -11:06:33> Cluster Join and auto-discovery test: OK -11:06:37> Before slots allocation, all nodes report cluster failure: OK -11:06:37> Create a 5 nodes cluster: OK -11:06:41> Cluster is up: OK -11:06:41> Cluster is writable: OK -11:06:42> Instance #5 is a slave: OK -11:06:42> Instance #5 synced with the master: OK -11:06:42> Make instance #0 unreachable without killing it: OK -11:06:42> Send CLUSTER FAILOVER to instance #5: OK -11:06:42> Instance #5 is still a slave after some time (no failover): OK -11:06:47> Wait for instance #0 to return back alive: OK -11:06:52> (init) Restart killed instances: OK -11:06:52> Cluster nodes are reachable: OK -11:06:52> Cluster nodes hard reset: OK -11:06:53> Cluster Join and auto-discovery test: OK -11:06:57> Before slots allocation, all nodes report cluster failure: OK -11:06:57> Create a 5 nodes cluster: OK -11:07:01> Cluster is up: OK -11:07:01> Cluster is writable: OK -11:07:02> Instance #5 is a slave: OK -11:07:02> Instance #5 synced with the master: OK -11:07:02> Make instance #0 unreachable without killing it: OK -11:07:02> Send CLUSTER FAILOVER to instance #5: OK -11:07:02> Instance #5 is a master after some time: OK -11:07:02> Wait for instance #0 to return back alive: OK +07:15:48> (init) Restart killed instances: OK +07:15:48> Cluster nodes are reachable: OK +07:15:48> Cluster nodes hard reset: OK +07:15:48> Cluster Join and auto-discovery test: OK +07:15:51> Before slots allocation, all nodes report cluster failure: OK +07:15:51> Create a 5 nodes cluster: OK +07:15:55> Cluster is up: OK +07:15:55> Cluster is writable: OK +07:15:55> Instance #5 is a slave: OK +07:15:55> Instance #5 synced with the master: OK +07:15:56> Send CLUSTER FAILOVER to #5, during load: WWWWWWWWWWOK +07:16:00> Wait for failover: OK +07:16:00> Cluster should eventually be up again: OK +07:16:00> Cluster is writable: OK +07:16:00> Instance #5 is now a master: OK +07:16:00> Verify 50000 keys for consistency with logical content: OK +07:16:03> Instance #0 gets converted into a slave: OK +07:16:03> (init) Restart killed instances: OK +07:16:03> Cluster nodes are reachable: OK +07:16:03> Cluster nodes hard reset: OK +07:16:03> Cluster Join and auto-discovery test: OK +07:16:06> Before slots allocation, all nodes report cluster failure: OK +07:16:06> Create a 5 nodes cluster: OK +07:16:10> Cluster is up: OK +07:16:10> Cluster is writable: OK +07:16:10> Instance #5 is a slave: OK +07:16:10> Instance #5 synced with the master: OK +07:16:10> Make instance #0 unreachable without killing it: OK +07:16:10> Send CLUSTER FAILOVER to instance #5: OK +07:16:10> Instance #5 is still a slave after some time (no failover): OK +07:16:15> Wait for instance #0 to return back alive: OK +07:16:20> (init) Restart killed instances: OK +07:16:20> Cluster nodes are reachable: OK +07:16:20> Cluster nodes hard reset: OK +07:16:20> Cluster Join and auto-discovery test: OK +07:16:23> Before slots allocation, all nodes report cluster failure: OK +07:16:23> Create a 5 nodes cluster: OK +07:16:27> Cluster is up: OK +07:16:27> Cluster is writable: OK +07:16:27> Instance #5 is a slave: OK +07:16:27> Instance #5 synced with the master: OK +07:16:27> Make instance #0 unreachable without killing it: OK +07:16:27> Send CLUSTER FAILOVER to instance #5: OK +07:16:27> Instance #5 is a master after some time: OK +07:16:27> Wait for instance #0 to return back alive: OK Testing unit: 11-manual-takeover.tcl -11:07:12> (init) Restart killed instances: OK -11:07:12> Cluster nodes are reachable: OK -11:07:12> Cluster nodes hard reset: OK -11:07:14> Cluster Join and auto-discovery test: OK -11:07:17> Before slots allocation, all nodes report cluster failure: OK -11:07:18> Create a 5 nodes cluster: OK -11:07:21> Cluster is up: OK -11:07:21> Cluster is writable: OK -11:07:23> Killing majority of master nodes: OK -11:07:23> Cluster should eventually be down: OK -11:07:27> Use takeover to bring slaves back: OK -11:07:27> Cluster should eventually be up again: OK -11:07:30> Cluster is writable: OK -11:07:32> Instance #5, #6, #7 are now masters: OK -11:07:32> Restarting the previously killed master nodes: OK -11:07:32> Instance #0, #1, #2 gets converted into a slaves: OK +07:16:37> (init) Restart killed instances: OK +07:16:37> Cluster nodes are reachable: OK +07:16:37> Cluster nodes hard reset: OK +07:16:37> Cluster Join and auto-discovery test: OK +07:16:45> Before slots allocation, all nodes report cluster failure: OK +07:16:45> Create a 5 nodes cluster: OK +07:16:48> Cluster is up: OK +07:16:48> Cluster is writable: OK +07:16:48> Killing majority of master nodes: OK +07:16:49> Cluster should eventually be down: OK +07:16:52> Use takeover to bring slaves back: OK +07:16:52> Cluster should eventually be up again: OK +07:16:55> Cluster is writable: OK +07:16:55> Instance #5, #6, #7 are now masters: OK +07:16:55> Restarting the previously killed master nodes: OK +07:16:55> Instance #0, #1, #2 gets converted into a slaves: OK Testing unit: 12-replica-migration-2.tcl -11:07:32> (init) Restart killed instances: OK -11:07:32> Cluster nodes are reachable: OK -11:07:32> Cluster nodes hard reset: OK -11:07:33> Cluster Join and auto-discovery test: OK -11:07:37> Before slots allocation, all nodes report cluster failure: OK -11:07:37> Create a 5 nodes cluster: OK -11:07:41> Cluster is up: OK -11:07:41> Each master should have at least two replicas attached: OK -11:07:41> Resharding all the master #0 slots away from it: >>> Performing Cluster Check (using node 127.0.0.1:30000) +07:16:55> (init) Restart killed instances: OK +07:16:55> Cluster nodes are reachable: OK +07:16:55> Cluster nodes hard reset: OK +07:16:55> Cluster Join and auto-discovery test: OK +07:16:58> Before slots allocation, all nodes report cluster failure: OK +07:16:58> Create a 5 nodes cluster: OK +07:17:01> Cluster is up: OK +07:17:01> Each master should have at least two replicas attached: OK +07:17:01> Resharding all the master #0 slots away from it: >>> Performing Cluster Check (using node 127.0.0.1:30000) [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. >>> Rebalancing across 5 nodes. Total weight = 4.00 -Moving 847 slots from 127.0.0.1:30000 to 127.0.0.1:30001 -############################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################### -Moving 835 slots from 127.0.0.1:30000 to 127.0.0.1:30002 -################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################### -Moving 830 slots from 127.0.0.1:30000 to 127.0.0.1:30004 -############################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################## -Moving 794 slots from 127.0.0.1:30000 to 127.0.0.1:30003 -########################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################## +Moving 852 slots from 127.0.0.1:30000 to 127.0.0.1:30001 +#################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################### +Moving 809 slots from 127.0.0.1:30000 to 127.0.0.1:30003 +######################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################### +Moving 807 slots from 127.0.0.1:30000 to 127.0.0.1:30004 +####################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################### +Moving 770 slots from 127.0.0.1:30000 to 127.0.0.1:30002 +################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################## OK -11:13:09> Master #0 should lose its replicas: OK -11:13:11> Resharding back some slot to master #0: >>> Performing Cluster Check (using node 127.0.0.1:30000) +07:18:33> Master #0 should lose its replicas: OK +07:18:34> 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... @@ -2518,43 +2559,43 @@ >>> Rebalancing across 5 nodes. Total weight = 4.01 Moving 11 slots from 127.0.0.1:30001 to 127.0.0.1:30000 ########### +Moving 11 slots from 127.0.0.1:30002 to 127.0.0.1:30000 +########### Moving 11 slots from 127.0.0.1:30003 to 127.0.0.1:30000 ########### Moving 11 slots from 127.0.0.1:30004 to 127.0.0.1:30000 ########### -Moving 11 slots from 127.0.0.1:30002 to 127.0.0.1:30000 -########### OK -11:13:25> Master #0 should re-acquire one or more replicas: OK +07:18:45> Master #0 should re-acquire one or more replicas: OK Testing unit: 13-no-failover-option.tcl -11:13:28> (init) Restart killed instances: OK -11:13:28> Cluster nodes are reachable: OK -11:13:28> Cluster nodes hard reset: OK -11:13:29> Cluster Join and auto-discovery test: OK -11:13:32> Before slots allocation, all nodes report cluster failure: OK -11:13:32> Create a 5 nodes cluster: OK -11:13:36> Cluster is up: OK -11:13:36> Cluster is writable: OK -11:13:38> Instance #5 is a slave: OK -11:13:38> Instance #5 synced with the master: OK -11:13:38> The nofailover flag is propagated: OK -11:13:39> Killing one master node: OK -11:13:39> Cluster should be still down after some time: OK -11:13:50> Instance #5 is still a slave: OK -11:13:50> Restarting the previously killed master node: OK +07:18:50> (init) Restart killed instances: OK +07:18:50> Cluster nodes are reachable: OK +07:18:50> Cluster nodes hard reset: OK +07:18:50> Cluster Join and auto-discovery test: OK +07:18:54> Before slots allocation, all nodes report cluster failure: OK +07:18:54> Create a 5 nodes cluster: OK +07:18:57> Cluster is up: OK +07:18:57> Cluster is writable: OK +07:18:57> Instance #5 is a slave: OK +07:18:57> Instance #5 synced with the master: OK +07:18:57> The nofailover flag is propagated: OK +07:18:59> Killing one master node: OK +07:18:59> Cluster should be still down after some time: OK +07:19:09> Instance #5 is still a slave: OK +07:19:09> Restarting the previously killed master node: OK Testing unit: 16-transactions-on-replica.tcl -11:13:50> (init) Restart killed instances: OK -11:13:50> Cluster nodes are reachable: OK -11:13:50> Cluster nodes hard reset: OK -11:13:51> Cluster Join and auto-discovery test: OK -11:13:55> Before slots allocation, all nodes report cluster failure: OK -11:13:55> Create a primary with a replica: OK -11:13:59> Cluster should start ok: OK -11:13:59> Cant read from replica without READONLY: OK -11:13:59> Can read from replica after READONLY: OK -11:13:59> Can preform HSET primary and HGET from replica: OK -11:13:59> MULTI-EXEC with write operations is MOVED: OK -11:13:59> read-only blocking operations from replica: OK +07:19:09> (init) Restart killed instances: OK +07:19:09> Cluster nodes are reachable: OK +07:19:09> Cluster nodes hard reset: OK +07:19:09> Cluster Join and auto-discovery test: OK +07:19:14> Before slots allocation, all nodes report cluster failure: OK +07:19:14> Create a primary with a replica: OK +07:19:19> Cluster should start ok: OK +07:19:19> Cant read from replica without READONLY: OK +07:19:19> Can read from replica after READONLY: OK +07:19:19> Can preform HSET primary and HGET from replica: OK +07:19:19> MULTI-EXEC with write operations is MOVED: OK +07:19:19> read-only blocking operations from replica: OK Cleaning up... GOOD! No errors. ./runtest-sentinel || true @@ -2569,88 +2610,88 @@ Starting redis #3 at port 30003 Starting redis #4 at port 30004 Testing unit: 00-base.tcl -11:14:01> (init) Restart killed instances: OK -11:14:01> (init) Remove old master entry from sentinels: OK -11:14:01> (init) Create a master-slaves cluster of 5 instances: OK -11:14:02> (init) Sentinels can start monitoring a master: OK -11:14:03> (init) Sentinels can talk with the master: OK -11:14:03> (init) Sentinels are able to auto-discover other sentinels: OK -11:14:05> (init) Sentinels are able to auto-discover slaves: OK -11:14:05> Basic failover works if the master is down: OK -11:14:08> New master 127.0.0.1:30002 role matches: OK -11:14:08> All the other slaves now point to the new master: OK -11:14:08> The old master eventually gets reconfigured as a slave: OK -11:14:18> ODOWN is not possible without N (quorum) Sentinels reports: OK -11:14:18> Failover is not possible without majority agreement: OK -11:14:19> Failover works if we configure for absolute agreement: OK -11:14:24> New master 127.0.0.1:30003 role matches: OK +07:19:19> (init) Restart killed instances: OK +07:19:20> (init) Remove old master entry from sentinels: OK +07:19:20> (init) Create a master-slaves cluster of 5 instances: OK +07:19:21> (init) Sentinels can start monitoring a master: OK +07:19:21> (init) Sentinels can talk with the master: OK +07:19:21> (init) Sentinels are able to auto-discover other sentinels: OK +07:19:23> (init) Sentinels are able to auto-discover slaves: OK +07:19:23> Basic failover works if the master is down: OK +07:19:26> New master 127.0.0.1:30001 role matches: OK +07:19:26> All the other slaves now point to the new master: OK +07:19:26> The old master eventually gets reconfigured as a slave: OK +07:19:36> ODOWN is not possible without N (quorum) Sentinels reports: OK +07:19:36> Failover is not possible without majority agreement: OK +07:19:36> Failover works if we configure for absolute agreement: OK +07:19:41> New master 127.0.0.1:30004 role matches: OK Testing unit: 01-conf-update.tcl -11:14:24> (init) Restart killed instances: OK -11:14:24> (init) Remove old master entry from sentinels: OK -11:14:24> (init) Create a master-slaves cluster of 5 instances: OK -11:14:25> (init) Sentinels can start monitoring a master: OK -11:14:25> (init) Sentinels can talk with the master: OK -11:14:25> (init) Sentinels are able to auto-discover other sentinels: OK -11:14:27> (init) Sentinels are able to auto-discover slaves: OK -11:14:27> We can failover with Sentinel 1 crashed: OK -11:14:30> After Sentinel 1 is restarted, its config gets updated: OK -11:14:31> New master 127.0.0.1:30004 role matches: OK +07:19:41> (init) Restart killed instances: OK +07:19:41> (init) Remove old master entry from sentinels: OK +07:19:41> (init) Create a master-slaves cluster of 5 instances: OK +07:19:42> (init) Sentinels can start monitoring a master: OK +07:19:42> (init) Sentinels can talk with the master: OK +07:19:42> (init) Sentinels are able to auto-discover other sentinels: OK +07:19:44> (init) Sentinels are able to auto-discover slaves: OK +07:19:44> We can failover with Sentinel 1 crashed: OK +07:19:47> After Sentinel 1 is restarted, its config gets updated: OK +07:19:48> New master 127.0.0.1:30001 role matches: OK Testing unit: 02-slaves-reconf.tcl -11:14:31> (init) Restart killed instances: OK -11:14:31> (init) Remove old master entry from sentinels: OK -11:14:31> (init) Create a master-slaves cluster of 5 instances: OK -11:14:32> (init) Sentinels can start monitoring a master: OK -11:14:32> (init) Sentinels can talk with the master: OK -11:14:32> (init) Sentinels are able to auto-discover other sentinels: OK -11:14:34> (init) Sentinels are able to auto-discover slaves: OK -11:14:34> Check that slaves replicate from current master: OK -11:14:34> Crash the master and force a failover: OK -11:14:38> Check that slaves replicate from current master: OK -11:15:00> Kill a slave instance: OK -11:15:00> Crash the master and force a failover: OK -11:15:03> Check that slaves replicate from current master: OK -11:15:15> Wait for failover to end: OK -11:15:15> Restart killed slave and test replication of slaves again...: OK -11:15:15> Check that slaves replicate from current master: OK +07:19:48> (init) Restart killed instances: OK +07:19:48> (init) Remove old master entry from sentinels: OK +07:19:48> (init) Create a master-slaves cluster of 5 instances: OK +07:19:49> (init) Sentinels can start monitoring a master: OK +07:19:49> (init) Sentinels can talk with the master: OK +07:19:49> (init) Sentinels are able to auto-discover other sentinels: OK +07:19:51> (init) Sentinels are able to auto-discover slaves: OK +07:19:51> Check that slaves replicate from current master: OK +07:19:51> Crash the master and force a failover: OK +07:19:54> Check that slaves replicate from current master: OK +07:20:16> Kill a slave instance: OK +07:20:16> Crash the master and force a failover: OK +07:20:19> Check that slaves replicate from current master: OK +07:20:31> Wait for failover to end: OK +07:20:31> Restart killed slave and test replication of slaves again...: OK +07:20:31> Check that slaves replicate from current master: OK Testing unit: 03-runtime-reconf.tcl Testing unit: 04-slave-selection.tcl Testing unit: 05-manual.tcl -11:15:37> (init) Restart killed instances: OK -11:15:37> (init) Remove old master entry from sentinels: OK -11:15:37> (init) Create a master-slaves cluster of 5 instances: OK -11:15:38> (init) Sentinels can start monitoring a master: OK -11:15:38> (init) Sentinels can talk with the master: OK -11:15:38> (init) Sentinels are able to auto-discover other sentinels: OK -11:15:40> (init) Sentinels are able to auto-discover slaves: OK -11:15:40> Manual failover works: OK -11:15:41> New master 127.0.0.1:30002 role matches: OK -11:15:41> All the other slaves now point to the new master: OK -11:15:41> The old master eventually gets reconfigured as a slave: OK +07:20:52> (init) Restart killed instances: OK +07:20:52> (init) Remove old master entry from sentinels: OK +07:20:52> (init) Create a master-slaves cluster of 5 instances: OK +07:20:53> (init) Sentinels can start monitoring a master: OK +07:20:53> (init) Sentinels can talk with the master: OK +07:20:53> (init) Sentinels are able to auto-discover other sentinels: OK +07:20:55> (init) Sentinels are able to auto-discover slaves: OK +07:20:55> Manual failover works: OK +07:20:56> New master 127.0.0.1:30001 role matches: OK +07:20:56> All the other slaves now point to the new master: OK +07:20:56> The old master eventually gets reconfigured as a slave: OK Testing unit: 06-ckquorum.tcl -11:15:51> (init) Restart killed instances: OK -11:15:51> (init) Remove old master entry from sentinels: OK -11:15:51> (init) Create a master-slaves cluster of 5 instances: OK -11:15:52> (init) Sentinels can start monitoring a master: OK -11:15:52> (init) Sentinels can talk with the master: OK -11:15:52> (init) Sentinels are able to auto-discover other sentinels: OK -11:15:54> (init) Sentinels are able to auto-discover slaves: OK -11:15:54> CKQUORUM reports OK and the right amount of Sentinels: OK -11:15:54> CKQUORUM detects quorum cannot be reached: OK -11:15:54> CKQUORUM detects failover authorization cannot be reached: OK +07:21:06> (init) Restart killed instances: OK +07:21:06> (init) Remove old master entry from sentinels: OK +07:21:06> (init) Create a master-slaves cluster of 5 instances: OK +07:21:07> (init) Sentinels can start monitoring a master: OK +07:21:07> (init) Sentinels can talk with the master: OK +07:21:07> (init) Sentinels are able to auto-discover other sentinels: OK +07:21:09> (init) Sentinels are able to auto-discover slaves: OK +07:21:09> CKQUORUM reports OK and the right amount of Sentinels: OK +07:21:09> CKQUORUM detects quorum cannot be reached: OK +07:21:09> CKQUORUM detects failover authorization cannot be reached: OK Testing unit: 07-down-conditions.tcl -11:16:00> (init) Restart killed instances: OK -11:16:00> (init) Remove old master entry from sentinels: OK -11:16:00> (init) Create a master-slaves cluster of 5 instances: OK -11:16:00> (init) Sentinels can start monitoring a master: OK -11:16:00> (init) Sentinels can talk with the master: OK -11:16:00> (init) Sentinels are able to auto-discover other sentinels: OK -11:16:02> (init) Sentinels are able to auto-discover slaves: OK -11:16:02> Crash the majority of Sentinels to prevent failovers for this unit: OK -11:16:02> SDOWN is triggered by non-responding but not crashed instance: OK -11:16:12> SDOWN is triggered by crashed instance: OK -11:16:16> SDOWN is triggered by masters advertising as slaves: OK -11:16:53> SDOWN is triggered by misconfigured instance repling with errors: OK -11:16:55> SDOWN is triggered if we rename PING to PONG: OK +07:21:14> (init) Restart killed instances: OK +07:21:14> (init) Remove old master entry from sentinels: OK +07:21:14> (init) Create a master-slaves cluster of 5 instances: OK +07:21:14> (init) Sentinels can start monitoring a master: OK +07:21:14> (init) Sentinels can talk with the master: OK +07:21:14> (init) Sentinels are able to auto-discover other sentinels: OK +07:21:16> (init) Sentinels are able to auto-discover slaves: OK +07:21:16> Crash the majority of Sentinels to prevent failovers for this unit: OK +07:21:17> SDOWN is triggered by non-responding but not crashed instance: OK +07:21:27> SDOWN is triggered by crashed instance: OK +07:21:30> SDOWN is triggered by masters advertising as slaves: OK +07:22:07> SDOWN is triggered by misconfigured instance repling with errors: OK +07:22:09> SDOWN is triggered if we rename PING to PONG: OK Cleaning up... GOOD! No errors. make[1]: Leaving directory '/build/redis-5.0.14' @@ -2687,15 +2728,15 @@ dh_strip dh_makeshlibs dh_shlibdeps -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-check-rdb debian/redis-tools/usr/bin/redis-cli were not linked against librt.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-check-rdb debian/redis-tools/usr/bin/redis-cli were not linked against libatomic.so.1 (they use none of the library's symbols) +dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/redis-tools/usr/bin/redis-cli debian/redis-tools/usr/bin/redis-check-rdb debian/redis-tools/usr/bin/redis-check-aof debian/redis-tools/usr/bin/redis-benchmark were not linked against librt.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-cli debian/redis-tools/usr/bin/redis-check-rdb debian/redis-tools/usr/bin/redis-check-aof debian/redis-tools/usr/bin/redis-benchmark were not linked against libatomic.so.1 (they use none of the library's symbols) dh_installdeb dh_gencontrol dh_md5sums dh_builddeb -dpkg-deb: building package 'redis-tools-dbgsym' in '../redis-tools-dbgsym_5.0.14-1+deb10u2_amd64.deb'. -dpkg-deb: building package 'redis-sentinel' in '../redis-sentinel_5.0.14-1+deb10u2_amd64.deb'. dpkg-deb: building package 'redis' in '../redis_5.0.14-1+deb10u2_all.deb'. +dpkg-deb: building package 'redis-sentinel' in '../redis-sentinel_5.0.14-1+deb10u2_amd64.deb'. +dpkg-deb: building package 'redis-tools-dbgsym' in '../redis-tools-dbgsym_5.0.14-1+deb10u2_amd64.deb'. dpkg-deb: building package 'redis-tools' in '../redis-tools_5.0.14-1+deb10u2_amd64.deb'. dpkg-deb: building package 'redis-server' in '../redis-server_5.0.14-1+deb10u2_amd64.deb'. dpkg-genbuildinfo --build=binary @@ -2706,12 +2747,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/3223195/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/3223195/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/1083593 and its subdirectories -I: Current time: Fri Apr 28 11:17:51 -12 2023 -I: pbuilder-time-stamp: 1682723871 +I: removing directory /srv/workspace/pbuilder/3223195 and its subdirectories +I: Current time: Sun Mar 27 07:22:24 +14 2022 +I: pbuilder-time-stamp: 1648315344