0s autopkgtest [19:17:03]: starting date and time: 2024-05-17 19:17:03+0000 0s autopkgtest [19:17:03]: git checkout: 699e7f9f ssh-setup/nova: explicitely set 'fqdn' in cloud-init 0s autopkgtest [19:17:03]: host juju-7f2275-prod-proposed-migration-environment-3; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.4yqqqwy1/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:zookeeper,src:python-click --apt-upgrade patroni --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 '--env=ADT_TEST_TRIGGERS=zookeeper/3.9.2-2 python-click/8.1.7-1' -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-3@lcy02-43.secgroup --name adt-oracular-amd64-patroni-20240517-191703-juju-7f2275-prod-proposed-migration-environment-3-6515371e-83d6-4004-be58-ca88eaf2ec23 --image adt/ubuntu-oracular-amd64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-3 --net-id=net_prod-proposed-migration -e TERM=linux -e ''"'"'http_proxy=http://squid.internal:3128'"'"'' -e ''"'"'https_proxy=http://squid.internal:3128'"'"'' -e ''"'"'no_proxy=127.0.0.1,127.0.1.1,login.ubuntu.com,localhost,localdomain,novalocal,internal,archive.ubuntu.com,ports.ubuntu.com,security.ubuntu.com,ddebs.ubuntu.com,changelogs.ubuntu.com,keyserver.ubuntu.com,launchpadlibrarian.net,launchpadcontent.net,launchpad.net,10.24.0.0/24,keystone.ps5.canonical.com,objectstorage.prodstack5.canonical.com'"'"'' --mirror=http://ftpmaster.internal/ubuntu/ 159s autopkgtest [19:19:42]: testbed dpkg architecture: amd64 159s autopkgtest [19:19:42]: testbed apt version: 2.7.14build2 159s autopkgtest [19:19:42]: @@@@@@@@@@@@@@@@@@@@ test bed setup 159s Get:1 http://ftpmaster.internal/ubuntu oracular-proposed InRelease [73.9 kB] 160s Get:2 http://ftpmaster.internal/ubuntu oracular-proposed/restricted Sources [1964 B] 160s Get:3 http://ftpmaster.internal/ubuntu oracular-proposed/main Sources [141 kB] 160s Get:4 http://ftpmaster.internal/ubuntu oracular-proposed/universe Sources [1726 kB] 160s Get:5 http://ftpmaster.internal/ubuntu oracular-proposed/multiverse Sources [9872 B] 160s Get:6 http://ftpmaster.internal/ubuntu oracular-proposed/main amd64 Packages [245 kB] 160s Get:7 http://ftpmaster.internal/ubuntu oracular-proposed/main i386 Packages [199 kB] 160s Get:8 http://ftpmaster.internal/ubuntu oracular-proposed/restricted amd64 Packages [7700 B] 160s Get:9 http://ftpmaster.internal/ubuntu oracular-proposed/universe amd64 Packages [1972 kB] 160s Get:10 http://ftpmaster.internal/ubuntu oracular-proposed/universe i386 Packages [940 kB] 160s Get:11 http://ftpmaster.internal/ubuntu oracular-proposed/multiverse i386 Packages [6324 B] 160s Get:12 http://ftpmaster.internal/ubuntu oracular-proposed/multiverse amd64 Packages [19.7 kB] 160s Fetched 5342 kB in 1s (5892 kB/s) 161s Reading package lists... 163s Reading package lists... 163s Building dependency tree... 163s Reading state information... 164s Calculating upgrade... 164s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 164s Reading package lists... 164s Building dependency tree... 164s Reading state information... 165s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 165s Hit:1 http://ftpmaster.internal/ubuntu oracular-proposed InRelease 165s Get:2 http://ftpmaster.internal/ubuntu oracular InRelease [73.9 kB] 165s Hit:3 http://ftpmaster.internal/ubuntu oracular-updates InRelease 165s Hit:4 http://ftpmaster.internal/ubuntu oracular-security InRelease 165s Get:5 http://ftpmaster.internal/ubuntu oracular/multiverse Sources [300 kB] 165s Get:6 http://ftpmaster.internal/ubuntu oracular/main Sources [1376 kB] 165s Get:7 http://ftpmaster.internal/ubuntu oracular/universe Sources [20.2 MB] 166s Get:8 http://ftpmaster.internal/ubuntu oracular/main amd64 Packages [1396 kB] 166s Get:9 http://ftpmaster.internal/ubuntu oracular/main i386 Packages [1039 kB] 166s Get:10 http://ftpmaster.internal/ubuntu oracular/universe i386 Packages [8543 kB] 166s Get:11 http://ftpmaster.internal/ubuntu oracular/universe amd64 Packages [15.2 MB] 166s Get:12 http://ftpmaster.internal/ubuntu oracular/multiverse amd64 Packages [269 kB] 172s Fetched 48.3 MB in 6s (7641 kB/s) 173s Reading package lists... 173s Reading package lists... 173s Building dependency tree... 173s Reading state information... 174s Calculating upgrade... 174s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 174s Reading package lists... 175s Building dependency tree... 175s Reading state information... 175s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 176s autopkgtest [19:19:59]: testbed running kernel: Linux 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 00:40:06 UTC 2024 176s autopkgtest [19:19:59]: @@@@@@@@@@@@@@@@@@@@ apt-source patroni 177s Get:1 http://ftpmaster.internal/ubuntu oracular/universe patroni 3.3.0-1 (dsc) [2873 B] 177s Get:2 http://ftpmaster.internal/ubuntu oracular/universe patroni 3.3.0-1 (tar) [1148 kB] 177s Get:3 http://ftpmaster.internal/ubuntu oracular/universe patroni 3.3.0-1 (diff) [23.0 kB] 177s gpgv: Signature made Thu Apr 18 20:14:46 2024 UTC 177s gpgv: using RSA key 9CA877749FAB2E4FA96862ECDC686A27B43481B0 177s gpgv: Can't check signature: No public key 177s dpkg-source: warning: cannot verify inline signature for ./patroni_3.3.0-1.dsc: no acceptable signature found 178s autopkgtest [19:20:01]: testing package patroni version 3.3.0-1 178s autopkgtest [19:20:01]: build not needed 178s autopkgtest [19:20:01]: test acceptance-etcd3: preparing testbed 178s Reading package lists... 179s Building dependency tree... 179s Reading state information... 179s Starting pkgProblemResolver with broken count: 0 179s Starting 2 pkgProblemResolver with broken count: 0 179s Done 180s The following additional packages will be installed: 180s etcd-server fonts-font-awesome fonts-lato libio-pty-perl libipc-run-perl 180s libjs-jquery libjs-sphinxdoc libjs-underscore libjson-perl libllvm17t64 180s libpq5 libtime-duration-perl libtimedate-perl libxslt1.1 moreutils patroni 180s patroni-doc postgresql postgresql-16 postgresql-client-16 180s postgresql-client-common postgresql-common python3-behave python3-cdiff 180s python3-click python3-colorama python3-coverage python3-dateutil 180s python3-dnspython python3-etcd python3-parse python3-parse-type 180s python3-prettytable python3-psutil python3-psycopg2 python3-wcwidth 180s sphinx-rtd-theme-common ssl-cert 180s Suggested packages: 180s etcd-client vip-manager haproxy postgresql-doc postgresql-doc-16 180s python-coverage-doc python3-trio python3-aioquic python3-h2 python3-httpx 180s python3-httpcore etcd python-psycopg2-doc 180s Recommended packages: 180s javascript-common libjson-xs-perl 180s The following NEW packages will be installed: 180s autopkgtest-satdep etcd-server fonts-font-awesome fonts-lato libio-pty-perl 180s libipc-run-perl libjs-jquery libjs-sphinxdoc libjs-underscore libjson-perl 180s libllvm17t64 libpq5 libtime-duration-perl libtimedate-perl libxslt1.1 180s moreutils patroni patroni-doc postgresql postgresql-16 postgresql-client-16 180s postgresql-client-common postgresql-common python3-behave python3-cdiff 180s python3-click python3-colorama python3-coverage python3-dateutil 180s python3-dnspython python3-etcd python3-parse python3-parse-type 180s python3-prettytable python3-psutil python3-psycopg2 python3-wcwidth 180s sphinx-rtd-theme-common ssl-cert 180s 0 upgraded, 39 newly installed, 0 to remove and 0 not upgraded. 180s Need to get 58.6 MB/58.6 MB of archives. 180s After this operation, 230 MB of additional disk space will be used. 180s Get:1 /tmp/autopkgtest.j0Dj5k/1-autopkgtest-satdep.deb autopkgtest-satdep amd64 0 [764 B] 180s Get:2 http://ftpmaster.internal/ubuntu oracular/main amd64 fonts-lato all 2.015-1 [2781 kB] 180s Get:3 http://ftpmaster.internal/ubuntu oracular/main amd64 libjson-perl all 4.10000-1 [81.9 kB] 180s Get:4 http://ftpmaster.internal/ubuntu oracular/main amd64 postgresql-client-common all 257build1 [36.3 kB] 180s Get:5 http://ftpmaster.internal/ubuntu oracular/main amd64 ssl-cert all 1.1.2ubuntu1 [17.8 kB] 180s Get:6 http://ftpmaster.internal/ubuntu oracular/main amd64 postgresql-common all 257build1 [161 kB] 180s Get:7 http://ftpmaster.internal/ubuntu oracular/universe amd64 etcd-server amd64 3.4.30-1build1 [8116 kB] 180s Get:8 http://ftpmaster.internal/ubuntu oracular/main amd64 fonts-font-awesome all 5.0.10+really4.7.0~dfsg-4.1 [516 kB] 180s Get:9 http://ftpmaster.internal/ubuntu oracular/main amd64 libio-pty-perl amd64 1:1.20-1build2 [31.2 kB] 180s Get:10 http://ftpmaster.internal/ubuntu oracular/main amd64 libipc-run-perl all 20231003.0-1 [92.1 kB] 180s Get:11 http://ftpmaster.internal/ubuntu oracular/main amd64 libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 180s Get:12 http://ftpmaster.internal/ubuntu oracular/main amd64 libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [118 kB] 180s Get:13 http://ftpmaster.internal/ubuntu oracular/main amd64 libjs-sphinxdoc all 7.2.6-6 [149 kB] 180s Get:14 http://ftpmaster.internal/ubuntu oracular/main amd64 libllvm17t64 amd64 1:17.0.6-9ubuntu1 [26.2 MB] 181s Get:15 http://ftpmaster.internal/ubuntu oracular/main amd64 libpq5 amd64 16.2-1ubuntu4 [138 kB] 181s Get:16 http://ftpmaster.internal/ubuntu oracular/main amd64 libtime-duration-perl all 1.21-2 [12.3 kB] 181s Get:17 http://ftpmaster.internal/ubuntu oracular/main amd64 libtimedate-perl all 2.3300-2 [34.0 kB] 181s Get:18 http://ftpmaster.internal/ubuntu oracular/main amd64 libxslt1.1 amd64 1.1.39-0exp1build1 [167 kB] 181s Get:19 http://ftpmaster.internal/ubuntu oracular/universe amd64 moreutils amd64 0.69-1 [56.4 kB] 181s Get:20 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-cdiff all 1.0-1.1 [16.4 kB] 181s Get:21 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-colorama all 0.4.6-4 [32.1 kB] 181s Get:22 http://ftpmaster.internal/ubuntu oracular-proposed/main amd64 python3-click all 8.1.7-1 [79.1 kB] 181s Get:23 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-dateutil all 2.8.2-3ubuntu1 [79.4 kB] 181s Get:24 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-wcwidth all 0.2.5+dfsg1-1.1ubuntu1 [22.5 kB] 181s Get:25 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-prettytable all 3.6.0-2 [32.8 kB] 181s Get:26 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-psutil amd64 5.9.8-2build2 [195 kB] 181s Get:27 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-psycopg2 amd64 2.9.9-1build1 [131 kB] 181s Get:28 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-dnspython all 2.6.1-1ubuntu1 [163 kB] 181s Get:29 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-etcd all 0.4.5-4 [31.9 kB] 181s Get:30 http://ftpmaster.internal/ubuntu oracular/universe amd64 patroni all 3.3.0-1 [264 kB] 181s Get:31 http://ftpmaster.internal/ubuntu oracular/main amd64 sphinx-rtd-theme-common all 2.0.0+dfsg-1 [1012 kB] 181s Get:32 http://ftpmaster.internal/ubuntu oracular/universe amd64 patroni-doc all 3.3.0-1 [496 kB] 181s Get:33 http://ftpmaster.internal/ubuntu oracular/main amd64 postgresql-client-16 amd64 16.2-1ubuntu4 [1269 kB] 181s Get:34 http://ftpmaster.internal/ubuntu oracular/main amd64 postgresql-16 amd64 16.2-1ubuntu4 [15.5 MB] 181s Get:35 http://ftpmaster.internal/ubuntu oracular/main amd64 postgresql all 16+257build1 [11.5 kB] 181s Get:36 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-parse all 1.19.0-0.2 [18.1 kB] 181s Get:37 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-parse-type all 0.6.2-1 [22.7 kB] 181s Get:38 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-behave all 1.2.6-5 [98.4 kB] 181s Get:39 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-coverage amd64 7.4.4+dfsg1-0ubuntu2 [147 kB] 181s Preconfiguring packages ... 181s Fetched 58.6 MB in 1s (96.5 MB/s) 181s Selecting previously unselected package fonts-lato. 182s (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 ... 73899 files and directories currently installed.) 182s Preparing to unpack .../00-fonts-lato_2.015-1_all.deb ... 182s Unpacking fonts-lato (2.015-1) ... 182s Selecting previously unselected package libjson-perl. 182s Preparing to unpack .../01-libjson-perl_4.10000-1_all.deb ... 182s Unpacking libjson-perl (4.10000-1) ... 182s Selecting previously unselected package postgresql-client-common. 182s Preparing to unpack .../02-postgresql-client-common_257build1_all.deb ... 182s Unpacking postgresql-client-common (257build1) ... 182s Selecting previously unselected package ssl-cert. 182s Preparing to unpack .../03-ssl-cert_1.1.2ubuntu1_all.deb ... 182s Unpacking ssl-cert (1.1.2ubuntu1) ... 182s Selecting previously unselected package postgresql-common. 182s Preparing to unpack .../04-postgresql-common_257build1_all.deb ... 182s Adding 'diversion of /usr/bin/pg_config to /usr/bin/pg_config.libpq-dev by postgresql-common' 182s Unpacking postgresql-common (257build1) ... 182s Selecting previously unselected package etcd-server. 182s Preparing to unpack .../05-etcd-server_3.4.30-1build1_amd64.deb ... 182s Unpacking etcd-server (3.4.30-1build1) ... 182s Selecting previously unselected package fonts-font-awesome. 183s Preparing to unpack .../06-fonts-font-awesome_5.0.10+really4.7.0~dfsg-4.1_all.deb ... 183s Unpacking fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 183s Selecting previously unselected package libio-pty-perl. 183s Preparing to unpack .../07-libio-pty-perl_1%3a1.20-1build2_amd64.deb ... 183s Unpacking libio-pty-perl (1:1.20-1build2) ... 183s Selecting previously unselected package libipc-run-perl. 183s Preparing to unpack .../08-libipc-run-perl_20231003.0-1_all.deb ... 183s Unpacking libipc-run-perl (20231003.0-1) ... 183s Selecting previously unselected package libjs-jquery. 183s Preparing to unpack .../09-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 183s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 183s Selecting previously unselected package libjs-underscore. 183s Preparing to unpack .../10-libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ... 183s Unpacking libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 183s Selecting previously unselected package libjs-sphinxdoc. 183s Preparing to unpack .../11-libjs-sphinxdoc_7.2.6-6_all.deb ... 183s Unpacking libjs-sphinxdoc (7.2.6-6) ... 183s Selecting previously unselected package libllvm17t64:amd64. 183s Preparing to unpack .../12-libllvm17t64_1%3a17.0.6-9ubuntu1_amd64.deb ... 183s Unpacking libllvm17t64:amd64 (1:17.0.6-9ubuntu1) ... 184s Selecting previously unselected package libpq5:amd64. 184s Preparing to unpack .../13-libpq5_16.2-1ubuntu4_amd64.deb ... 184s Unpacking libpq5:amd64 (16.2-1ubuntu4) ... 184s Selecting previously unselected package libtime-duration-perl. 184s Preparing to unpack .../14-libtime-duration-perl_1.21-2_all.deb ... 184s Unpacking libtime-duration-perl (1.21-2) ... 184s Selecting previously unselected package libtimedate-perl. 184s Preparing to unpack .../15-libtimedate-perl_2.3300-2_all.deb ... 184s Unpacking libtimedate-perl (2.3300-2) ... 184s Selecting previously unselected package libxslt1.1:amd64. 184s Preparing to unpack .../16-libxslt1.1_1.1.39-0exp1build1_amd64.deb ... 184s Unpacking libxslt1.1:amd64 (1.1.39-0exp1build1) ... 184s Selecting previously unselected package moreutils. 184s Preparing to unpack .../17-moreutils_0.69-1_amd64.deb ... 184s Unpacking moreutils (0.69-1) ... 184s Selecting previously unselected package python3-cdiff. 184s Preparing to unpack .../18-python3-cdiff_1.0-1.1_all.deb ... 184s Unpacking python3-cdiff (1.0-1.1) ... 184s Selecting previously unselected package python3-colorama. 184s Preparing to unpack .../19-python3-colorama_0.4.6-4_all.deb ... 184s Unpacking python3-colorama (0.4.6-4) ... 184s Selecting previously unselected package python3-click. 184s Preparing to unpack .../20-python3-click_8.1.7-1_all.deb ... 184s Unpacking python3-click (8.1.7-1) ... 184s Selecting previously unselected package python3-dateutil. 184s Preparing to unpack .../21-python3-dateutil_2.8.2-3ubuntu1_all.deb ... 184s Unpacking python3-dateutil (2.8.2-3ubuntu1) ... 184s Selecting previously unselected package python3-wcwidth. 184s Preparing to unpack .../22-python3-wcwidth_0.2.5+dfsg1-1.1ubuntu1_all.deb ... 184s Unpacking python3-wcwidth (0.2.5+dfsg1-1.1ubuntu1) ... 184s Selecting previously unselected package python3-prettytable. 184s Preparing to unpack .../23-python3-prettytable_3.6.0-2_all.deb ... 184s Unpacking python3-prettytable (3.6.0-2) ... 184s Selecting previously unselected package python3-psutil. 184s Preparing to unpack .../24-python3-psutil_5.9.8-2build2_amd64.deb ... 184s Unpacking python3-psutil (5.9.8-2build2) ... 184s Selecting previously unselected package python3-psycopg2. 184s Preparing to unpack .../25-python3-psycopg2_2.9.9-1build1_amd64.deb ... 184s Unpacking python3-psycopg2 (2.9.9-1build1) ... 184s Selecting previously unselected package python3-dnspython. 184s Preparing to unpack .../26-python3-dnspython_2.6.1-1ubuntu1_all.deb ... 184s Unpacking python3-dnspython (2.6.1-1ubuntu1) ... 184s Selecting previously unselected package python3-etcd. 184s Preparing to unpack .../27-python3-etcd_0.4.5-4_all.deb ... 184s Unpacking python3-etcd (0.4.5-4) ... 184s Selecting previously unselected package patroni. 184s Preparing to unpack .../28-patroni_3.3.0-1_all.deb ... 184s Unpacking patroni (3.3.0-1) ... 184s Selecting previously unselected package sphinx-rtd-theme-common. 184s Preparing to unpack .../29-sphinx-rtd-theme-common_2.0.0+dfsg-1_all.deb ... 184s Unpacking sphinx-rtd-theme-common (2.0.0+dfsg-1) ... 184s Selecting previously unselected package patroni-doc. 184s Preparing to unpack .../30-patroni-doc_3.3.0-1_all.deb ... 184s Unpacking patroni-doc (3.3.0-1) ... 184s Selecting previously unselected package postgresql-client-16. 184s Preparing to unpack .../31-postgresql-client-16_16.2-1ubuntu4_amd64.deb ... 184s Unpacking postgresql-client-16 (16.2-1ubuntu4) ... 185s Selecting previously unselected package postgresql-16. 185s Preparing to unpack .../32-postgresql-16_16.2-1ubuntu4_amd64.deb ... 185s Unpacking postgresql-16 (16.2-1ubuntu4) ... 185s Selecting previously unselected package postgresql. 185s Preparing to unpack .../33-postgresql_16+257build1_all.deb ... 185s Unpacking postgresql (16+257build1) ... 185s Selecting previously unselected package python3-parse. 185s Preparing to unpack .../34-python3-parse_1.19.0-0.2_all.deb ... 185s Unpacking python3-parse (1.19.0-0.2) ... 185s Selecting previously unselected package python3-parse-type. 185s Preparing to unpack .../35-python3-parse-type_0.6.2-1_all.deb ... 185s Unpacking python3-parse-type (0.6.2-1) ... 185s Selecting previously unselected package python3-behave. 185s Preparing to unpack .../36-python3-behave_1.2.6-5_all.deb ... 185s Unpacking python3-behave (1.2.6-5) ... 185s Selecting previously unselected package python3-coverage. 185s Preparing to unpack .../37-python3-coverage_7.4.4+dfsg1-0ubuntu2_amd64.deb ... 185s Unpacking python3-coverage (7.4.4+dfsg1-0ubuntu2) ... 185s Selecting previously unselected package autopkgtest-satdep. 185s Preparing to unpack .../38-1-autopkgtest-satdep.deb ... 185s Unpacking autopkgtest-satdep (0) ... 185s Setting up postgresql-client-common (257build1) ... 185s Setting up fonts-lato (2.015-1) ... 185s Setting up libio-pty-perl (1:1.20-1build2) ... 185s Setting up python3-colorama (0.4.6-4) ... 185s Setting up python3-cdiff (1.0-1.1) ... 186s Setting up libpq5:amd64 (16.2-1ubuntu4) ... 186s Setting up python3-coverage (7.4.4+dfsg1-0ubuntu2) ... 186s Setting up python3-click (8.1.7-1) ... 186s Setting up python3-psutil (5.9.8-2build2) ... 186s Setting up libllvm17t64:amd64 (1:17.0.6-9ubuntu1) ... 186s Setting up python3-wcwidth (0.2.5+dfsg1-1.1ubuntu1) ... 187s Setting up ssl-cert (1.1.2ubuntu1) ... 187s Created symlink /etc/systemd/system/multi-user.target.wants/ssl-cert.service → /usr/lib/systemd/system/ssl-cert.service. 188s Setting up python3-psycopg2 (2.9.9-1build1) ... 188s Setting up libipc-run-perl (20231003.0-1) ... 188s Setting up libtime-duration-perl (1.21-2) ... 188s Setting up libtimedate-perl (2.3300-2) ... 188s Setting up python3-dnspython (2.6.1-1ubuntu1) ... 188s Setting up python3-parse (1.19.0-0.2) ... 188s Setting up libjson-perl (4.10000-1) ... 188s Setting up libxslt1.1:amd64 (1.1.39-0exp1build1) ... 188s Setting up python3-dateutil (2.8.2-3ubuntu1) ... 189s Setting up etcd-server (3.4.30-1build1) ... 189s info: Selecting UID from range 100 to 999 ... 189s 189s info: Selecting GID from range 100 to 999 ... 189s info: Adding system user `etcd' (UID 108) ... 189s info: Adding new group `etcd' (GID 112) ... 189s info: Adding new user `etcd' (UID 108) with group `etcd' ... 189s info: Creating home directory `/var/lib/etcd/' ... 189s Created symlink /etc/systemd/system/etcd2.service → /usr/lib/systemd/system/etcd.service. 189s Created symlink /etc/systemd/system/multi-user.target.wants/etcd.service → /usr/lib/systemd/system/etcd.service. 191s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 191s Setting up python3-prettytable (3.6.0-2) ... 191s Setting up fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 191s Setting up sphinx-rtd-theme-common (2.0.0+dfsg-1) ... 191s Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 191s Setting up moreutils (0.69-1) ... 191s Setting up python3-etcd (0.4.5-4) ... 191s Setting up postgresql-client-16 (16.2-1ubuntu4) ... 192s update-alternatives: using /usr/share/postgresql/16/man/man1/psql.1.gz to provide /usr/share/man/man1/psql.1.gz (psql.1.gz) in auto mode 192s Setting up python3-parse-type (0.6.2-1) ... 192s Setting up postgresql-common (257build1) ... 193s 193s Creating config file /etc/postgresql-common/createcluster.conf with new version 193s Building PostgreSQL dictionaries from installed myspell/hunspell packages... 193s Removing obsolete dictionary files: 194s Created symlink /etc/systemd/system/multi-user.target.wants/postgresql.service → /usr/lib/systemd/system/postgresql.service. 194s Setting up libjs-sphinxdoc (7.2.6-6) ... 194s Setting up python3-behave (1.2.6-5) ... 194s /usr/lib/python3/dist-packages/behave/formatter/ansi_escapes.py:57: SyntaxWarning: invalid escape sequence '\[' 194s _ANSI_ESCAPE_PATTERN = re.compile(u"\x1b\[\d+[mA]", re.UNICODE) 194s /usr/lib/python3/dist-packages/behave/matchers.py:267: SyntaxWarning: invalid escape sequence '\d' 194s """Registers a custom type that will be available to "parse" 194s Setting up patroni (3.3.0-1) ... 194s Created symlink /etc/systemd/system/multi-user.target.wants/patroni.service → /usr/lib/systemd/system/patroni.service. 195s Setting up postgresql-16 (16.2-1ubuntu4) ... 196s Creating new PostgreSQL cluster 16/main ... 196s /usr/lib/postgresql/16/bin/initdb -D /var/lib/postgresql/16/main --auth-local peer --auth-host scram-sha-256 --no-instructions 196s The files belonging to this database system will be owned by user "postgres". 196s This user must also own the server process. 196s 196s The database cluster will be initialized with locale "C.UTF-8". 196s The default database encoding has accordingly been set to "UTF8". 196s The default text search configuration will be set to "english". 196s 196s Data page checksums are disabled. 196s 196s fixing permissions on existing directory /var/lib/postgresql/16/main ... ok 196s creating subdirectories ... ok 196s selecting dynamic shared memory implementation ... posix 196s selecting default max_connections ... 100 196s selecting default shared_buffers ... 128MB 196s selecting default time zone ... Etc/UTC 196s creating configuration files ... ok 196s running bootstrap script ... ok 197s performing post-bootstrap initialization ... ok 197s syncing data to disk ... ok 201s Setting up patroni-doc (3.3.0-1) ... 201s Setting up postgresql (16+257build1) ... 201s Setting up autopkgtest-satdep (0) ... 201s Processing triggers for man-db (2.12.0-4build2) ... 202s Processing triggers for libc-bin (2.39-0ubuntu8) ... 205s (Reading database ... 77290 files and directories currently installed.) 205s Removing autopkgtest-satdep (0) ... 206s autopkgtest [19:20:29]: test acceptance-etcd3: debian/tests/acceptance etcd3 206s autopkgtest [19:20:29]: test acceptance-etcd3: [----------------------- 206s dpkg-architecture: warning: cannot determine CC system type, falling back to default (native compilation) 206s ++ ls -1r /usr/lib/postgresql/ 206s ### PostgreSQL 16 acceptance-etcd3 ### 206s + for PG_VERSION in $(ls -1r /usr/lib/postgresql/) 206s + '[' 16 == 10 -o 16 == 11 ']' 206s + echo '### PostgreSQL 16 acceptance-etcd3 ###' 206s + bash -c 'set -o pipefail; ETCD_UNSUPPORTED_ARCH= DCS=etcd3 PATH=/usr/lib/postgresql/16/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin behave | ts' 207s May 17 19:20:30 Feature: basic replication # features/basic_replication.feature:1 207s May 17 19:20:30 We should check that the basic bootstrapping, replication and failover works. 207s May 17 19:20:30 Scenario: check replication of a single table # features/basic_replication.feature:4 207s May 17 19:20:30 Given I start postgres0 # features/steps/basic_replication.py:8 211s May 17 19:20:34 Then postgres0 is a leader after 10 seconds # features/steps/patroni_api.py:29 212s May 17 19:20:35 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 212s May 17 19:20:35 When I issue a PATCH request to http://127.0.0.1:8008/config with {"ttl": 20, "synchronous_mode": true} # features/steps/patroni_api.py:71 212s May 17 19:20:35 Then I receive a response code 200 # features/steps/patroni_api.py:98 212s May 17 19:20:35 When I start postgres1 # features/steps/basic_replication.py:8 216s May 17 19:20:39 And I configure and start postgres2 with a tag replicatefrom postgres0 # features/steps/cascading_replication.py:7 220s May 17 19:20:43 And "sync" key in DCS has leader=postgres0 after 20 seconds # features/steps/cascading_replication.py:23 220s May 17 19:20:43 And I add the table foo to postgres0 # features/steps/basic_replication.py:54 220s May 17 19:20:43 Then table foo is present on postgres1 after 20 seconds # features/steps/basic_replication.py:93 221s May 17 19:20:44 Then table foo is present on postgres2 after 20 seconds # features/steps/basic_replication.py:93 221s May 17 19:20:44 221s May 17 19:20:44 Scenario: check restart of sync replica # features/basic_replication.feature:17 221s May 17 19:20:44 Given I shut down postgres2 # features/steps/basic_replication.py:29 222s May 17 19:20:45 Then "sync" key in DCS has sync_standby=postgres1 after 5 seconds # features/steps/cascading_replication.py:23 222s May 17 19:20:45 When I start postgres2 # features/steps/basic_replication.py:8 225s May 17 19:20:48 And I shut down postgres1 # features/steps/basic_replication.py:29 228s May 17 19:20:51 Then "sync" key in DCS has sync_standby=postgres2 after 10 seconds # features/steps/cascading_replication.py:23 228s May 17 19:20:51 When I start postgres1 # features/steps/basic_replication.py:8 231s May 17 19:20:54 Then "members/postgres1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 232s May 17 19:20:55 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:142 232s May 17 19:20:55 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:142 232s May 17 19:20:55 232s May 17 19:20:55 Scenario: check stuck sync replica # features/basic_replication.feature:28 232s May 17 19:20:55 Given I issue a PATCH request to http://127.0.0.1:8008/config with {"pause": true, "maximum_lag_on_syncnode": 15000000, "postgresql": {"parameters": {"synchronous_commit": "remote_apply"}}} # features/steps/patroni_api.py:71 232s May 17 19:20:55 Then I receive a response code 200 # features/steps/patroni_api.py:98 232s May 17 19:20:55 And I create table on postgres0 # features/steps/basic_replication.py:73 232s May 17 19:20:55 And table mytest is present on postgres1 after 2 seconds # features/steps/basic_replication.py:93 233s May 17 19:20:56 And table mytest is present on postgres2 after 2 seconds # features/steps/basic_replication.py:93 233s May 17 19:20:56 When I pause wal replay on postgres2 # features/steps/basic_replication.py:64 233s May 17 19:20:56 And I load data on postgres0 # features/steps/basic_replication.py:84 234s May 17 19:20:57 Then "sync" key in DCS has sync_standby=postgres1 after 15 seconds # features/steps/cascading_replication.py:23 237s May 17 19:21:00 And I resume wal replay on postgres2 # features/steps/basic_replication.py:64 237s May 17 19:21:00 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:142 237s May 17 19:21:00 And Status code on GET http://127.0.0.1:8010/async is 200 after 3 seconds # features/steps/patroni_api.py:142 237s May 17 19:21:00 When I issue a PATCH request to http://127.0.0.1:8008/config with {"pause": null, "maximum_lag_on_syncnode": -1, "postgresql": {"parameters": {"synchronous_commit": "on"}}} # features/steps/patroni_api.py:71 237s May 17 19:21:00 Then I receive a response code 200 # features/steps/patroni_api.py:98 237s May 17 19:21:00 And I drop table on postgres0 # features/steps/basic_replication.py:73 237s May 17 19:21:00 237s May 17 19:21:00 Scenario: check multi sync replication # features/basic_replication.feature:44 237s May 17 19:21:00 Given I issue a PATCH request to http://127.0.0.1:8008/config with {"synchronous_node_count": 2} # features/steps/patroni_api.py:71 237s May 17 19:21:00 Then I receive a response code 200 # features/steps/patroni_api.py:98 237s May 17 19:21:00 Then "sync" key in DCS has sync_standby=postgres1,postgres2 after 10 seconds # features/steps/cascading_replication.py:23 241s May 17 19:21:04 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:142 241s May 17 19:21:04 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:142 241s May 17 19:21:04 When I issue a PATCH request to http://127.0.0.1:8008/config with {"synchronous_node_count": 1} # features/steps/patroni_api.py:71 241s May 17 19:21:04 Then I receive a response code 200 # features/steps/patroni_api.py:98 241s May 17 19:21:04 And I shut down postgres1 # features/steps/basic_replication.py:29 244s May 17 19:21:07 Then "sync" key in DCS has sync_standby=postgres2 after 10 seconds # features/steps/cascading_replication.py:23 245s May 17 19:21:08 When I start postgres1 # features/steps/basic_replication.py:8 248s May 17 19:21:11 Then "members/postgres1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 249s May 17 19:21:12 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:142 249s May 17 19:21:12 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:142 249s May 17 19:21:12 249s May 17 19:21:12 Scenario: check the basic failover in synchronous mode # features/basic_replication.feature:59 249s May 17 19:21:12 Given I run patronictl.py pause batman # features/steps/patroni_api.py:86 251s May 17 19:21:14 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 251s May 17 19:21:14 When I sleep for 2 seconds # features/steps/patroni_api.py:39 253s May 17 19:21:16 And I shut down postgres0 # features/steps/basic_replication.py:29 254s May 17 19:21:17 And I run patronictl.py resume batman # features/steps/patroni_api.py:86 256s May 17 19:21:19 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 256s May 17 19:21:19 And postgres2 role is the primary after 24 seconds # features/steps/basic_replication.py:105 275s May 17 19:21:38 And Response on GET http://127.0.0.1:8010/history contains recovery after 10 seconds # features/steps/patroni_api.py:156 277s May 17 19:21:40 And there is a postgres2_cb.log with "on_role_change master batman" in postgres2 data directory # features/steps/cascading_replication.py:12 277s May 17 19:21:40 When I issue a PATCH request to http://127.0.0.1:8010/config with {"synchronous_mode": null, "master_start_timeout": 0} # features/steps/patroni_api.py:71 277s May 17 19:21:40 Then I receive a response code 200 # features/steps/patroni_api.py:98 277s May 17 19:21:40 When I add the table bar to postgres2 # features/steps/basic_replication.py:54 277s May 17 19:21:40 Then table bar is present on postgres1 after 20 seconds # features/steps/basic_replication.py:93 280s May 17 19:21:43 And Response on GET http://127.0.0.1:8010/config contains master_start_timeout after 10 seconds # features/steps/patroni_api.py:156 280s May 17 19:21:43 280s May 17 19:21:43 Scenario: check rejoin of the former primary with pg_rewind # features/basic_replication.feature:75 280s May 17 19:21:43 Given I add the table splitbrain to postgres0 # features/steps/basic_replication.py:54 280s May 17 19:21:43 And I start postgres0 # features/steps/basic_replication.py:8 280s May 17 19:21:43 Then postgres0 role is the secondary after 20 seconds # features/steps/basic_replication.py:105 284s May 17 19:21:47 When I add the table buz to postgres2 # features/steps/basic_replication.py:54 284s May 17 19:21:47 Then table buz is present on postgres0 after 20 seconds # features/steps/basic_replication.py:93 288s May 17 19:21:51 288s May 17 19:21:51 @reject-duplicate-name 288s May 17 19:21:51 Scenario: check graceful rejection when two nodes have the same name # features/basic_replication.feature:83 288s May 17 19:21:51 Given I start duplicate postgres0 on port 8011 # features/steps/basic_replication.py:13 290s May 17 19:21:53 Then there is one of ["Can't start; there is already a node named 'postgres0' running"] CRITICAL in the dup-postgres0 patroni log after 5 seconds # features/steps/basic_replication.py:121 295s May 17 19:21:58 295s May 17 19:21:58 Feature: cascading replication # features/cascading_replication.feature:1 295s May 17 19:21:58 We should check that patroni can do base backup and streaming from the replica 295s May 17 19:21:58 Scenario: check a base backup and streaming replication from a replica # features/cascading_replication.feature:4 295s May 17 19:21:58 Given I start postgres0 # features/steps/basic_replication.py:8 299s May 17 19:22:02 And postgres0 is a leader after 10 seconds # features/steps/patroni_api.py:29 299s May 17 19:22:02 And I configure and start postgres1 with a tag clonefrom true # features/steps/cascading_replication.py:7 303s May 17 19:22:06 And replication works from postgres0 to postgres1 after 20 seconds # features/steps/basic_replication.py:112 304s May 17 19:22:07 And I create label with "postgres0" in postgres0 data directory # features/steps/cascading_replication.py:18 304s May 17 19:22:07 And I create label with "postgres1" in postgres1 data directory # features/steps/cascading_replication.py:18 304s May 17 19:22:07 And "members/postgres1" key in DCS has state=running after 12 seconds # features/steps/cascading_replication.py:23 304s May 17 19:22:07 And I configure and start postgres2 with a tag replicatefrom postgres1 # features/steps/cascading_replication.py:7 308s May 17 19:22:11 Then replication works from postgres0 to postgres2 after 30 seconds # features/steps/basic_replication.py:112 309s May 17 19:22:12 And there is a label with "postgres1" in postgres2 data directory # features/steps/cascading_replication.py:12 314s May 17 19:22:17 314s May 17 19:22:17 Feature: citus # features/citus.feature:1 314s SKIP FEATURE citus: Citus extenstion isn't available 314s SKIP Scenario check that worker cluster is registered in the coordinator: Citus extenstion isn't available 314s SKIP Scenario coordinator failover updates pg_dist_node: Citus extenstion isn't available 314s SKIP Scenario worker switchover doesn't break client queries on the coordinator: Citus extenstion isn't available 314s SKIP Scenario worker primary restart doesn't break client queries on the coordinator: Citus extenstion isn't available 314s SKIP Scenario check that in-flight transaction is rolled back after timeout when other workers need to change pg_dist_node: Citus extenstion isn't available 314s May 17 19:22:17 We should check that coordinator discovers and registers workers and clients don't have errors when worker cluster switches over 314s May 17 19:22:17 Scenario: check that worker cluster is registered in the coordinator # features/citus.feature:4 314s May 17 19:22:17 Given I start postgres0 in citus group 0 # None 314s May 17 19:22:17 And I start postgres2 in citus group 1 # None 314s May 17 19:22:17 Then postgres0 is a leader in a group 0 after 10 seconds # None 314s May 17 19:22:17 And postgres2 is a leader in a group 1 after 10 seconds # None 314s May 17 19:22:17 When I start postgres1 in citus group 0 # None 314s May 17 19:22:17 And I start postgres3 in citus group 1 # None 314s May 17 19:22:17 Then replication works from postgres0 to postgres1 after 15 seconds # None 314s May 17 19:22:17 Then replication works from postgres2 to postgres3 after 15 seconds # None 314s May 17 19:22:17 And postgres0 is registered in the postgres0 as the primary in group 0 after 5 seconds # None 314s May 17 19:22:17 And postgres2 is registered in the postgres0 as the primary in group 1 after 5 seconds # None 314s May 17 19:22:17 314s May 17 19:22:17 Scenario: coordinator failover updates pg_dist_node # features/citus.feature:16 314s May 17 19:22:17 Given I run patronictl.py failover batman --group 0 --candidate postgres1 --force # None 314s May 17 19:22:17 Then postgres1 role is the primary after 10 seconds # None 314s May 17 19:22:17 And "members/postgres0" key in a group 0 in DCS has state=running after 15 seconds # None 314s May 17 19:22:17 And replication works from postgres1 to postgres0 after 15 seconds # None 314s May 17 19:22:17 And postgres1 is registered in the postgres2 as the primary in group 0 after 5 seconds # None 314s May 17 19:22:17 And "sync" key in a group 0 in DCS has sync_standby=postgres0 after 15 seconds # None 314s May 17 19:22:17 When I run patronictl.py switchover batman --group 0 --candidate postgres0 --force # None 314s May 17 19:22:17 Then postgres0 role is the primary after 10 seconds # None 314s May 17 19:22:17 And replication works from postgres0 to postgres1 after 15 seconds # None 314s May 17 19:22:17 And postgres0 is registered in the postgres2 as the primary in group 0 after 5 seconds # None 314s May 17 19:22:17 And "sync" key in a group 0 in DCS has sync_standby=postgres1 after 15 seconds # None 314s May 17 19:22:17 314s May 17 19:22:17 Scenario: worker switchover doesn't break client queries on the coordinator # features/citus.feature:29 314s May 17 19:22:17 Given I create a distributed table on postgres0 # None 314s May 17 19:22:17 And I start a thread inserting data on postgres0 # None 314s May 17 19:22:17 When I run patronictl.py switchover batman --group 1 --force # None 314s May 17 19:22:17 Then I receive a response returncode 0 # None 314s May 17 19:22:17 And postgres3 role is the primary after 10 seconds # None 314s May 17 19:22:17 And "members/postgres2" key in a group 1 in DCS has state=running after 15 seconds # None 314s May 17 19:22:17 And replication works from postgres3 to postgres2 after 15 seconds # None 314s May 17 19:22:17 And postgres3 is registered in the postgres0 as the primary in group 1 after 5 seconds # None 314s May 17 19:22:17 And "sync" key in a group 1 in DCS has sync_standby=postgres2 after 15 seconds # None 314s May 17 19:22:17 And a thread is still alive # None 314s May 17 19:22:17 When I run patronictl.py switchover batman --group 1 --force # None 314s May 17 19:22:17 Then I receive a response returncode 0 # None 314s May 17 19:22:17 And postgres2 role is the primary after 10 seconds # None 314s May 17 19:22:17 And replication works from postgres2 to postgres3 after 15 seconds # None 314s May 17 19:22:17 And postgres2 is registered in the postgres0 as the primary in group 1 after 5 seconds # None 314s May 17 19:22:17 And "sync" key in a group 1 in DCS has sync_standby=postgres3 after 15 seconds # None 314s May 17 19:22:17 And a thread is still alive # None 314s May 17 19:22:17 When I stop a thread # None 314s May 17 19:22:17 Then a distributed table on postgres0 has expected rows # None 314s May 17 19:22:17 314s May 17 19:22:17 Scenario: worker primary restart doesn't break client queries on the coordinator # features/citus.feature:50 314s May 17 19:22:17 Given I cleanup a distributed table on postgres0 # None 314s May 17 19:22:17 And I start a thread inserting data on postgres0 # None 314s May 17 19:22:17 When I run patronictl.py restart batman postgres2 --group 1 --force # None 314s May 17 19:22:17 Then I receive a response returncode 0 # None 314s May 17 19:22:17 And postgres2 role is the primary after 10 seconds # None 314s May 17 19:22:17 And replication works from postgres2 to postgres3 after 15 seconds # None 314s May 17 19:22:17 And postgres2 is registered in the postgres0 as the primary in group 1 after 5 seconds # None 314s May 17 19:22:17 And a thread is still alive # None 314s May 17 19:22:17 When I stop a thread # None 314s May 17 19:22:17 Then a distributed table on postgres0 has expected rows # None 314s May 17 19:22:17 314s May 17 19:22:17 Scenario: check that in-flight transaction is rolled back after timeout when other workers need to change pg_dist_node # features/citus.feature:62 314s May 17 19:22:17 Given I start postgres4 in citus group 2 # None 314s May 17 19:22:17 Then postgres4 is a leader in a group 2 after 10 seconds # None 314s May 17 19:22:17 And "members/postgres4" key in a group 2 in DCS has role=master after 3 seconds # None 314s May 17 19:22:17 When I run patronictl.py edit-config batman --group 2 -s ttl=20 --force # None 314s May 17 19:22:17 Then I receive a response returncode 0 # None 314s May 17 19:22:17 And I receive a response output "+ttl: 20" # None 314s May 17 19:22:17 Then postgres4 is registered in the postgres2 as the primary in group 2 after 5 seconds # None 314s May 17 19:22:17 When I shut down postgres4 # None 314s May 17 19:22:17 Then there is a transaction in progress on postgres0 changing pg_dist_node after 5 seconds # None 314s May 17 19:22:17 When I run patronictl.py restart batman postgres2 --group 1 --force # None 314s May 17 19:22:17 Then a transaction finishes in 20 seconds # None 314s May 17 19:22:17 314s May 17 19:22:17 Feature: custom bootstrap # features/custom_bootstrap.feature:1 314s May 17 19:22:17 We should check that patroni can bootstrap a new cluster from a backup 314s May 17 19:22:17 Scenario: clone existing cluster using pg_basebackup # features/custom_bootstrap.feature:4 314s May 17 19:22:17 Given I start postgres0 # features/steps/basic_replication.py:8 318s May 17 19:22:21 Then postgres0 is a leader after 10 seconds # features/steps/patroni_api.py:29 320s May 17 19:22:22 When I add the table foo to postgres0 # features/steps/basic_replication.py:54 320s May 17 19:22:22 And I start postgres1 in a cluster batman1 as a clone of postgres0 # features/steps/custom_bootstrap.py:6 323s May 17 19:22:26 Then postgres1 is a leader of batman1 after 10 seconds # features/steps/custom_bootstrap.py:16 324s May 17 19:22:27 Then table foo is present on postgres1 after 10 seconds # features/steps/basic_replication.py:93 324s May 17 19:22:27 324s May 17 19:22:27 Scenario: make a backup and do a restore into a new cluster # features/custom_bootstrap.feature:12 324s May 17 19:22:27 Given I add the table bar to postgres1 # features/steps/basic_replication.py:54 324s May 17 19:22:27 And I do a backup of postgres1 # features/steps/custom_bootstrap.py:25 325s May 17 19:22:28 When I start postgres2 in a cluster batman2 from backup # features/steps/custom_bootstrap.py:11 331s May 17 19:22:34 Then postgres2 is a leader of batman2 after 30 seconds # features/steps/custom_bootstrap.py:16 332s May 17 19:22:35 And table bar is present on postgres2 after 10 seconds # features/steps/basic_replication.py:93 338s May 17 19:22:41 338s May 17 19:22:41 Feature: dcs failsafe mode # features/dcs_failsafe_mode.feature:1 338s May 17 19:22:41 We should check the basic dcs failsafe mode functioning 338s May 17 19:22:41 Scenario: check failsafe mode can be successfully enabled # features/dcs_failsafe_mode.feature:4 338s May 17 19:22:41 Given I start postgres0 # features/steps/basic_replication.py:8 342s May 17 19:22:45 And postgres0 is a leader after 10 seconds # features/steps/patroni_api.py:29 343s May 17 19:22:46 Then "config" key in DCS has ttl=30 after 10 seconds # features/steps/cascading_replication.py:23 343s May 17 19:22:46 When I issue a PATCH request to http://127.0.0.1:8008/config with {"loop_wait": 2, "ttl": 20, "retry_timeout": 3, "failsafe_mode": true} # features/steps/patroni_api.py:71 343s May 17 19:22:46 Then I receive a response code 200 # features/steps/patroni_api.py:98 343s May 17 19:22:46 And Response on GET http://127.0.0.1:8008/failsafe contains postgres0 after 10 seconds # features/steps/patroni_api.py:156 345s May 17 19:22:48 When I issue a GET request to http://127.0.0.1:8008/failsafe # features/steps/patroni_api.py:61 345s May 17 19:22:48 Then I receive a response code 200 # features/steps/patroni_api.py:98 345s May 17 19:22:48 And I receive a response postgres0 http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:98 345s May 17 19:22:48 When I issue a PATCH request to http://127.0.0.1:8008/config with {"postgresql": {"parameters": {"wal_level": "logical"}},"slots":{"dcs_slot_1": null,"postgres0":null}} # features/steps/patroni_api.py:71 345s May 17 19:22:48 Then I receive a response code 200 # features/steps/patroni_api.py:98 345s May 17 19:22:48 When I issue a PATCH request to http://127.0.0.1:8008/config with {"slots": {"dcs_slot_0": {"type": "logical", "database": "postgres", "plugin": "test_decoding"}}} # features/steps/patroni_api.py:71 345s May 17 19:22:48 Then I receive a response code 200 # features/steps/patroni_api.py:98 345s SKIP Scenario check one-node cluster is functioning while DCS is down: it is not possible to control state of etcd3 from tests 345s SKIP Scenario check new replica isn't promoted when leader is down and DCS is up: it is not possible to control state of etcd3 from tests 345s May 17 19:22:48 345s May 17 19:22:48 @dcs-failsafe 345s May 17 19:22:48 Scenario: check one-node cluster is functioning while DCS is down # features/dcs_failsafe_mode.feature:20 345s May 17 19:22:48 Given DCS is down # None 345s May 17 19:22:48 Then Response on GET http://127.0.0.1:8008/primary contains failsafe_mode_is_active after 12 seconds # None 345s May 17 19:22:48 And postgres0 role is the primary after 10 seconds # None 345s May 17 19:22:48 345s May 17 19:22:48 @dcs-failsafe 345s May 17 19:22:48 Scenario: check new replica isn't promoted when leader is down and DCS is up # features/dcs_failsafe_mode.feature:26 345s May 17 19:22:48 Given DCS is up # None 345s May 17 19:22:48 When I do a backup of postgres0 # None 345s May 17 19:22:48 And I shut down postgres0 # None 345s May 17 19:22:48 When I start postgres1 in a cluster batman from backup with no_leader # None 345s May 17 19:22:48 Then postgres1 role is the replica after 12 seconds # None 345s May 17 19:22:48 345s May 17 19:22:48 Scenario: check leader and replica are both in /failsafe key after leader is back # features/dcs_failsafe_mode.feature:33 345s May 17 19:22:48 Given I start postgres0 # features/steps/basic_replication.py:8 345s May 17 19:22:48 And I start postgres1 # features/steps/basic_replication.py:8 349s May 17 19:22:52 Then "members/postgres0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 349s May 17 19:22:52 And "members/postgres1" key in DCS has state=running after 2 seconds # features/steps/cascading_replication.py:23 350s May 17 19:22:53 And Response on GET http://127.0.0.1:8009/failsafe contains postgres1 after 10 seconds # features/steps/patroni_api.py:156 350s May 17 19:22:53 When I issue a GET request to http://127.0.0.1:8009/failsafe # features/steps/patroni_api.py:61 350s May 17 19:22:53 Then I receive a response code 200 # features/steps/patroni_api.py:98 350s May 17 19:22:53 And I receive a response postgres0 http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:98 350s May 17 19:22:53 And I receive a response postgres1 http://127.0.0.1:8009/patroni # features/steps/patroni_api.py:98 350s SKIP Scenario check leader and replica are functioning while DCS is down: it is not possible to control state of etcd3 from tests 350s SKIP Scenario check primary is demoted when one replica is shut down and DCS is down: it is not possible to control state of etcd3 from tests 350s May 17 19:22:53 350s May 17 19:22:53 @dcs-failsafe @slot-advance 350s May 17 19:22:53 Scenario: check leader and replica are functioning while DCS is down # features/dcs_failsafe_mode.feature:46 350s May 17 19:22:53 Given I get all changes from physical slot dcs_slot_1 on postgres0 # None 350s May 17 19:22:53 Then physical slot dcs_slot_1 is in sync between postgres0 and postgres1 after 10 seconds # None 350s May 17 19:22:53 And logical slot dcs_slot_0 is in sync between postgres0 and postgres1 after 10 seconds # None 350s May 17 19:22:53 And DCS is down # None 350s May 17 19:22:53 Then Response on GET http://127.0.0.1:8008/primary contains failsafe_mode_is_active after 12 seconds # None 350s May 17 19:22:53 Then postgres0 role is the primary after 10 seconds # None 350s May 17 19:22:53 And postgres1 role is the replica after 2 seconds # None 350s May 17 19:22:53 And replication works from postgres0 to postgres1 after 10 seconds # None 350s May 17 19:22:53 When I get all changes from logical slot dcs_slot_0 on postgres0 # None 350s May 17 19:22:53 And I get all changes from physical slot dcs_slot_1 on postgres0 # None 350s May 17 19:22:53 Then logical slot dcs_slot_0 is in sync between postgres0 and postgres1 after 20 seconds # None 350s May 17 19:22:53 And physical slot dcs_slot_1 is in sync between postgres0 and postgres1 after 10 seconds # None 350s May 17 19:22:53 350s May 17 19:22:53 @dcs-failsafe 350s May 17 19:22:53 Scenario: check primary is demoted when one replica is shut down and DCS is down # features/dcs_failsafe_mode.feature:61 350s May 17 19:22:53 Given DCS is down # None 350s May 17 19:22:53 And I kill postgres1 # None 350s May 17 19:22:53 And I kill postmaster on postgres1 # None 350s May 17 19:22:53 Then postgres0 role is the replica after 12 seconds # None 350s SKIP Scenario check known replica is promoted when leader is down and DCS is up: it is not possible to control state of etcd3 from tests 350s May 17 19:22:53 350s May 17 19:22:53 @dcs-failsafe 350s May 17 19:22:53 Scenario: check known replica is promoted when leader is down and DCS is up # features/dcs_failsafe_mode.feature:68 350s May 17 19:22:53 Given I kill postgres0 # None 350s May 17 19:22:53 And I shut down postmaster on postgres0 # None 350s May 17 19:22:53 And DCS is up # None 350s May 17 19:22:53 When I start postgres1 # None 350s May 17 19:22:53 Then "members/postgres1" key in DCS has state=running after 10 seconds # None 350s May 17 19:22:53 And postgres1 role is the primary after 25 seconds # None 350s SKIP Scenario scale to three-node cluster: it is not possible to control state of etcd3 from tests 350s SKIP Scenario make sure permanent slots exist on replicas: it is not possible to control state of etcd3 from tests 350s May 17 19:22:53 350s May 17 19:22:53 @dcs-failsafe 350s May 17 19:22:53 Scenario: scale to three-node cluster # features/dcs_failsafe_mode.feature:77 350s May 17 19:22:53 Given I start postgres0 # None 350s May 17 19:22:53 And I start postgres2 # None 350s May 17 19:22:53 Then "members/postgres2" key in DCS has state=running after 10 seconds # None 350s May 17 19:22:53 And "members/postgres0" key in DCS has state=running after 20 seconds # None 350s May 17 19:22:53 And Response on GET http://127.0.0.1:8008/failsafe contains postgres2 after 10 seconds # None 350s May 17 19:22:53 And replication works from postgres1 to postgres0 after 10 seconds # None 350s May 17 19:22:53 And replication works from postgres1 to postgres2 after 10 seconds # None 350s May 17 19:22:53 350s May 17 19:22:53 @dcs-failsafe @slot-advance 350s May 17 19:22:53 Scenario: make sure permanent slots exist on replicas # features/dcs_failsafe_mode.feature:88 350s May 17 19:22:53 Given I issue a PATCH request to http://127.0.0.1:8009/config with {"slots":{"dcs_slot_0":null,"dcs_slot_2":{"type":"logical","database":"postgres","plugin":"test_decoding"}}} # None 350s May 17 19:22:53 Then logical slot dcs_slot_2 is in sync between postgres1 and postgres0 after 20 seconds # None 350s May 17 19:22:53 And logical slot dcs_slot_2 is in sync between postgres1 and postgres2 after 20 seconds # None 350s May 17 19:22:53 When I get all changes from physical slot dcs_slot_1 on postgres1 # None 350s May 17 19:22:53 Then physical slot dcs_slot_1 is in sync between postgres1 and postgres0 after 10 seconds # None 350s May 17 19:22:53 And physical slot dcs_slot_1 is in sync between postgres1 and postgres2 after 10 seconds # None 350s May 17 19:22:53 And physical slot postgres0 is in sync between postgres1 and postgres2 after 10 seconds # None 350s May 17 19:22:53 350s May 17 19:22:53 @dcs-failsafe 350s May 17 19:22:53 Scenario: check three-node cluster is functioning while DCS is down # features/dcs_failsafe_mode.feature:98 350s May 17 19:22:53 Given DCS is down # None 350s May 17 19:22:53 Then Response on GET http://127.0.0.1:8009/primary contains failsafe_mode_is_active after 12 seconds # None 350s May 17 19:22:53 Then postgres1 role is the primary after 10 seconds # None 350s May 17 19:22:53 And postgres0 role is the replica after 2 seconds # None 350s May 17 19:22:53 And postgres2 role is the replica after 2 seconds # None 350s SKIP Scenario check three-node cluster is functioning while DCS is down: it is not possible to control state of etcd3 from tests 350s SKIP Scenario check that permanent slots are in sync between nodes while DCS is down: it is not possible to control state of etcd3 from tests 354s May 17 19:22:57 354s May 17 19:22:57 @dcs-failsafe @slot-advance 354s May 17 19:22:57 Scenario: check that permanent slots are in sync between nodes while DCS is down # features/dcs_failsafe_mode.feature:107 354s May 17 19:22:57 Given replication works from postgres1 to postgres0 after 10 seconds # None 354s May 17 19:22:57 And replication works from postgres1 to postgres2 after 10 seconds # None 354s May 17 19:22:57 When I get all changes from logical slot dcs_slot_2 on postgres1 # None 354s May 17 19:22:57 And I get all changes from physical slot dcs_slot_1 on postgres1 # None 354s May 17 19:22:57 Then logical slot dcs_slot_2 is in sync between postgres1 and postgres0 after 20 seconds # None 354s May 17 19:22:57 And logical slot dcs_slot_2 is in sync between postgres1 and postgres2 after 20 seconds # None 354s May 17 19:22:57 And physical slot dcs_slot_1 is in sync between postgres1 and postgres0 after 10 seconds # None 354s May 17 19:22:57 And physical slot dcs_slot_1 is in sync between postgres1 and postgres2 after 10 seconds # None 354s May 17 19:22:57 And physical slot postgres0 is in sync between postgres1 and postgres2 after 10 seconds # None 354s May 17 19:22:57 354s May 17 19:22:57 Feature: ignored slots # features/ignored_slots.feature:1 354s May 17 19:22:57 354s May 17 19:22:57 Scenario: check ignored slots aren't removed on failover/switchover # features/ignored_slots.feature:2 354s May 17 19:22:57 Given I start postgres1 # features/steps/basic_replication.py:8 358s May 17 19:23:01 Then postgres1 is a leader after 10 seconds # features/steps/patroni_api.py:29 359s May 17 19:23:02 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 359s May 17 19:23:02 When I issue a PATCH request to http://127.0.0.1:8009/config with {"ignore_slots": [{"name": "unmanaged_slot_0", "database": "postgres", "plugin": "test_decoding", "type": "logical"}, {"name": "unmanaged_slot_1", "database": "postgres", "plugin": "test_decoding"}, {"name": "unmanaged_slot_2", "database": "postgres"}, {"name": "unmanaged_slot_3"}], "postgresql": {"parameters": {"wal_level": "logical"}}} # features/steps/patroni_api.py:71 359s May 17 19:23:02 Then I receive a response code 200 # features/steps/patroni_api.py:98 359s May 17 19:23:02 And Response on GET http://127.0.0.1:8009/config contains ignore_slots after 10 seconds # features/steps/patroni_api.py:156 359s May 17 19:23:02 When I shut down postgres1 # features/steps/basic_replication.py:29 361s May 17 19:23:04 And I start postgres1 # features/steps/basic_replication.py:8 364s May 17 19:23:07 Then postgres1 is a leader after 10 seconds # features/steps/patroni_api.py:29 365s May 17 19:23:08 And "members/postgres1" key in DCS has role=master after 10 seconds # features/steps/cascading_replication.py:23 366s May 17 19:23:09 And postgres1 role is the primary after 20 seconds # features/steps/basic_replication.py:105 366s May 17 19:23:09 When I create a logical replication slot unmanaged_slot_0 on postgres1 with the test_decoding plugin # features/steps/slots.py:8 366s May 17 19:23:09 And I create a logical replication slot unmanaged_slot_1 on postgres1 with the test_decoding plugin # features/steps/slots.py:8 366s May 17 19:23:09 And I create a logical replication slot unmanaged_slot_2 on postgres1 with the test_decoding plugin # features/steps/slots.py:8 366s May 17 19:23:09 And I create a logical replication slot unmanaged_slot_3 on postgres1 with the test_decoding plugin # features/steps/slots.py:8 366s May 17 19:23:09 And I create a logical replication slot dummy_slot on postgres1 with the test_decoding plugin # features/steps/slots.py:8 366s May 17 19:23:09 Then postgres1 has a logical replication slot named unmanaged_slot_0 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 366s May 17 19:23:09 And postgres1 has a logical replication slot named unmanaged_slot_1 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 366s May 17 19:23:09 And postgres1 has a logical replication slot named unmanaged_slot_2 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 366s May 17 19:23:09 And postgres1 has a logical replication slot named unmanaged_slot_3 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 366s May 17 19:23:09 When I start postgres0 # features/steps/basic_replication.py:8 370s May 17 19:23:13 Then "members/postgres0" key in DCS has role=replica after 10 seconds # features/steps/cascading_replication.py:23 370s May 17 19:23:13 And postgres0 role is the secondary after 20 seconds # features/steps/basic_replication.py:105 370s May 17 19:23:13 And replication works from postgres1 to postgres0 after 20 seconds # features/steps/basic_replication.py:112 371s May 17 19:23:14 When I shut down postgres1 # features/steps/basic_replication.py:29 373s May 17 19:23:16 Then "members/postgres0" key in DCS has role=master after 10 seconds # features/steps/cascading_replication.py:23 374s May 17 19:23:17 When I start postgres1 # features/steps/basic_replication.py:8 378s May 17 19:23:21 Then postgres1 role is the secondary after 20 seconds # features/steps/basic_replication.py:105 378s May 17 19:23:21 And "members/postgres1" key in DCS has role=replica after 10 seconds # features/steps/cascading_replication.py:23 378s May 17 19:23:21 And I sleep for 2 seconds # features/steps/patroni_api.py:39 380s May 17 19:23:23 And postgres1 has a logical replication slot named unmanaged_slot_0 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 380s May 17 19:23:23 And postgres1 has a logical replication slot named unmanaged_slot_1 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 380s May 17 19:23:23 And postgres1 has a logical replication slot named unmanaged_slot_2 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 380s May 17 19:23:23 And postgres1 has a logical replication slot named unmanaged_slot_3 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 380s May 17 19:23:23 And postgres1 does not have a replication slot named dummy_slot # features/steps/slots.py:40 380s May 17 19:23:23 When I shut down postgres0 # features/steps/basic_replication.py:29 382s May 17 19:23:25 Then "members/postgres1" key in DCS has role=master after 10 seconds # features/steps/cascading_replication.py:23 383s May 17 19:23:26 And postgres1 has a logical replication slot named unmanaged_slot_0 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 383s May 17 19:23:26 And postgres1 has a logical replication slot named unmanaged_slot_1 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 383s May 17 19:23:26 And postgres1 has a logical replication slot named unmanaged_slot_2 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 383s May 17 19:23:26 And postgres1 has a logical replication slot named unmanaged_slot_3 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 386s May 17 19:23:29 386s May 17 19:23:29 Feature: nostream node # features/nostream_node.feature:1 386s May 17 19:23:29 386s May 17 19:23:29 Scenario: check nostream node is recovering from archive # features/nostream_node.feature:3 386s May 17 19:23:29 When I start postgres0 # features/steps/basic_replication.py:8 390s May 17 19:23:33 And I configure and start postgres1 with a tag nostream true # features/steps/cascading_replication.py:7 394s May 17 19:23:37 Then "members/postgres1" key in DCS has replication_state=in archive recovery after 10 seconds # features/steps/cascading_replication.py:23 394s May 17 19:23:37 And replication works from postgres0 to postgres1 after 30 seconds # features/steps/basic_replication.py:112 399s May 17 19:23:42 399s May 17 19:23:42 @slot-advance 399s May 17 19:23:42 Scenario: check permanent logical replication slots are not copied # features/nostream_node.feature:10 399s May 17 19:23:42 When I issue a PATCH request to http://127.0.0.1:8008/config with {"postgresql": {"parameters": {"wal_level": "logical"}}, "slots":{"test_logical":{"type":"logical","database":"postgres","plugin":"test_decoding"}}} # features/steps/patroni_api.py:71 399s May 17 19:23:42 Then I receive a response code 200 # features/steps/patroni_api.py:98 399s May 17 19:23:42 When I run patronictl.py restart batman postgres0 --force # features/steps/patroni_api.py:86 401s May 17 19:23:44 Then postgres0 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:19 402s May 17 19:23:45 When I configure and start postgres2 with a tag replicatefrom postgres1 # features/steps/cascading_replication.py:7 406s May 17 19:23:49 Then "members/postgres2" key in DCS has replication_state=streaming after 10 seconds # features/steps/cascading_replication.py:23 413s May 17 19:23:56 And postgres1 does not have a replication slot named test_logical # features/steps/slots.py:40 413s May 17 19:23:56 And postgres2 does not have a replication slot named test_logical # features/steps/slots.py:40 420s May 17 19:24:03 420s May 17 19:24:03 Feature: patroni api # features/patroni_api.feature:1 420s May 17 19:24:03 We should check that patroni correctly responds to valid and not-valid API requests. 420s May 17 19:24:03 Scenario: check API requests on a stand-alone server # features/patroni_api.feature:4 420s May 17 19:24:03 Given I start postgres0 # features/steps/basic_replication.py:8 424s May 17 19:24:07 And postgres0 is a leader after 10 seconds # features/steps/patroni_api.py:29 425s May 17 19:24:08 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:61 425s May 17 19:24:08 Then I receive a response code 200 # features/steps/patroni_api.py:98 425s May 17 19:24:08 And I receive a response state running # features/steps/patroni_api.py:98 425s May 17 19:24:08 And I receive a response role master # features/steps/patroni_api.py:98 425s May 17 19:24:08 When I issue a GET request to http://127.0.0.1:8008/standby_leader # features/steps/patroni_api.py:61 425s May 17 19:24:08 Then I receive a response code 503 # features/steps/patroni_api.py:98 425s May 17 19:24:08 When I issue a GET request to http://127.0.0.1:8008/health # features/steps/patroni_api.py:61 425s May 17 19:24:08 Then I receive a response code 200 # features/steps/patroni_api.py:98 425s May 17 19:24:08 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:61 425s May 17 19:24:08 Then I receive a response code 503 # features/steps/patroni_api.py:98 425s May 17 19:24:08 When I issue a POST request to http://127.0.0.1:8008/reinitialize with {"force": true} # features/steps/patroni_api.py:71 425s May 17 19:24:08 Then I receive a response code 503 # features/steps/patroni_api.py:98 425s May 17 19:24:08 And I receive a response text I am the leader, can not reinitialize # features/steps/patroni_api.py:98 425s May 17 19:24:08 When I run patronictl.py switchover batman --master postgres0 --force # features/steps/patroni_api.py:86 427s May 17 19:24:10 Then I receive a response returncode 1 # features/steps/patroni_api.py:98 427s May 17 19:24:10 And I receive a response output "Error: No candidates found to switchover to" # features/steps/patroni_api.py:98 427s May 17 19:24:10 When I issue a POST request to http://127.0.0.1:8008/switchover with {"leader": "postgres0"} # features/steps/patroni_api.py:71 427s May 17 19:24:10 Then I receive a response code 412 # features/steps/patroni_api.py:98 427s May 17 19:24:10 And I receive a response text switchover is not possible: cluster does not have members except leader # features/steps/patroni_api.py:98 427s May 17 19:24:10 When I issue an empty POST request to http://127.0.0.1:8008/failover # features/steps/patroni_api.py:66 427s May 17 19:24:10 Then I receive a response code 400 # features/steps/patroni_api.py:98 427s May 17 19:24:10 When I issue a POST request to http://127.0.0.1:8008/failover with {"foo": "bar"} # features/steps/patroni_api.py:71 427s May 17 19:24:10 Then I receive a response code 400 # features/steps/patroni_api.py:98 427s May 17 19:24:10 And I receive a response text "Failover could be performed only to a specific candidate" # features/steps/patroni_api.py:98 427s May 17 19:24:10 427s May 17 19:24:10 Scenario: check local configuration reload # features/patroni_api.feature:32 427s May 17 19:24:10 Given I add tag new_tag new_value to postgres0 config # features/steps/patroni_api.py:137 427s May 17 19:24:10 And I issue an empty POST request to http://127.0.0.1:8008/reload # features/steps/patroni_api.py:66 427s May 17 19:24:10 Then I receive a response code 202 # features/steps/patroni_api.py:98 427s May 17 19:24:10 427s May 17 19:24:10 Scenario: check dynamic configuration change via DCS # features/patroni_api.feature:37 427s May 17 19:24:10 Given I issue a PATCH request to http://127.0.0.1:8008/config with {"ttl": 20, "postgresql": {"parameters": {"max_connections": "101"}}} # features/steps/patroni_api.py:71 427s May 17 19:24:10 Then I receive a response code 200 # features/steps/patroni_api.py:98 427s May 17 19:24:10 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 11 seconds # features/steps/patroni_api.py:156 430s May 17 19:24:13 When I issue a GET request to http://127.0.0.1:8008/config # features/steps/patroni_api.py:61 430s May 17 19:24:13 Then I receive a response code 200 # features/steps/patroni_api.py:98 430s May 17 19:24:13 And I receive a response ttl 20 # features/steps/patroni_api.py:98 430s May 17 19:24:13 When I issue a GET request to http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:61 431s May 17 19:24:14 Then I receive a response code 200 # features/steps/patroni_api.py:98 431s May 17 19:24:14 And I receive a response tags {'new_tag': 'new_value'} # features/steps/patroni_api.py:98 431s May 17 19:24:14 And I sleep for 4 seconds # features/steps/patroni_api.py:39 435s May 17 19:24:18 435s May 17 19:24:18 Scenario: check the scheduled restart # features/patroni_api.feature:49 435s May 17 19:24:18 Given I run patronictl.py edit-config -p 'superuser_reserved_connections=6' --force batman # features/steps/patroni_api.py:86 436s May 17 19:24:19 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 436s May 17 19:24:19 And I receive a response output "+ superuser_reserved_connections: 6" # features/steps/patroni_api.py:98 436s May 17 19:24:19 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 5 seconds # features/steps/patroni_api.py:156 436s May 17 19:24:19 Given I issue a scheduled restart at http://127.0.0.1:8008 in 5 seconds with {"role": "replica"} # features/steps/patroni_api.py:124 436s May 17 19:24:19 Then I receive a response code 202 # features/steps/patroni_api.py:98 436s May 17 19:24:19 And I sleep for 8 seconds # features/steps/patroni_api.py:39 444s May 17 19:24:27 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 10 seconds # features/steps/patroni_api.py:156 444s May 17 19:24:27 Given I issue a scheduled restart at http://127.0.0.1:8008 in 5 seconds with {"restart_pending": "True"} # features/steps/patroni_api.py:124 444s May 17 19:24:27 Then I receive a response code 202 # features/steps/patroni_api.py:98 444s May 17 19:24:27 And Response on GET http://127.0.0.1:8008/patroni does not contain pending_restart after 10 seconds # features/steps/patroni_api.py:171 451s May 17 19:24:34 And postgres0 role is the primary after 10 seconds # features/steps/basic_replication.py:105 452s May 17 19:24:35 452s May 17 19:24:35 Scenario: check API requests for the primary-replica pair in the pause mode # features/patroni_api.feature:63 452s May 17 19:24:35 Given I start postgres1 # features/steps/basic_replication.py:8 456s May 17 19:24:39 Then replication works from postgres0 to postgres1 after 20 seconds # features/steps/basic_replication.py:112 457s May 17 19:24:40 When I run patronictl.py pause batman # features/steps/patroni_api.py:86 460s May 17 19:24:43 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 460s May 17 19:24:43 When I kill postmaster on postgres1 # features/steps/basic_replication.py:44 460s May 17 19:24:43 waiting for server to shut down.... done 460s May 17 19:24:43 server stopped 460s May 17 19:24:43 And I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:61 460s May 17 19:24:43 Then I receive a response code 503 # features/steps/patroni_api.py:98 460s May 17 19:24:43 And "members/postgres1" key in DCS has state=stopped after 10 seconds # features/steps/cascading_replication.py:23 462s May 17 19:24:45 When I run patronictl.py restart batman postgres1 --force # features/steps/patroni_api.py:86 465s May 17 19:24:48 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 465s May 17 19:24:48 Then replication works from postgres0 to postgres1 after 20 seconds # features/steps/basic_replication.py:112 466s May 17 19:24:49 And I sleep for 2 seconds # features/steps/patroni_api.py:39 468s May 17 19:24:51 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:61 468s May 17 19:24:51 Then I receive a response code 200 # features/steps/patroni_api.py:98 468s May 17 19:24:51 And I receive a response state running # features/steps/patroni_api.py:98 468s May 17 19:24:51 And I receive a response role replica # features/steps/patroni_api.py:98 468s May 17 19:24:51 When I run patronictl.py reinit batman postgres1 --force --wait # features/steps/patroni_api.py:86 472s May 17 19:24:55 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 472s May 17 19:24:55 And I receive a response output "Success: reinitialize for member postgres1" # features/steps/patroni_api.py:98 472s May 17 19:24:55 And postgres1 role is the secondary after 30 seconds # features/steps/basic_replication.py:105 473s May 17 19:24:56 And replication works from postgres0 to postgres1 after 20 seconds # features/steps/basic_replication.py:112 473s May 17 19:24:56 When I run patronictl.py restart batman postgres0 --force # features/steps/patroni_api.py:86 477s May 17 19:25:00 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 477s May 17 19:25:00 And I receive a response output "Success: restart on member postgres0" # features/steps/patroni_api.py:98 477s May 17 19:25:00 And postgres0 role is the primary after 5 seconds # features/steps/basic_replication.py:105 478s May 17 19:25:01 478s May 17 19:25:01 Scenario: check the switchover via the API in the pause mode # features/patroni_api.feature:90 478s May 17 19:25:01 Given I issue a POST request to http://127.0.0.1:8008/switchover with {"leader": "postgres0", "candidate": "postgres1"} # features/steps/patroni_api.py:71 480s May 17 19:25:03 Then I receive a response code 200 # features/steps/patroni_api.py:98 480s May 17 19:25:03 And postgres1 is a leader after 5 seconds # features/steps/patroni_api.py:29 480s May 17 19:25:03 And postgres1 role is the primary after 10 seconds # features/steps/basic_replication.py:105 481s May 17 19:25:04 And postgres0 role is the secondary after 10 seconds # features/steps/basic_replication.py:105 487s May 17 19:25:10 And replication works from postgres1 to postgres0 after 20 seconds # features/steps/basic_replication.py:112 487s May 17 19:25:10 And "members/postgres0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 487s May 17 19:25:10 When I issue a GET request to http://127.0.0.1:8008/primary # features/steps/patroni_api.py:61 487s May 17 19:25:10 Then I receive a response code 503 # features/steps/patroni_api.py:98 487s May 17 19:25:10 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:61 487s May 17 19:25:10 Then I receive a response code 200 # features/steps/patroni_api.py:98 487s May 17 19:25:10 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:61 487s May 17 19:25:10 Then I receive a response code 200 # features/steps/patroni_api.py:98 487s May 17 19:25:10 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:61 487s May 17 19:25:10 Then I receive a response code 503 # features/steps/patroni_api.py:98 487s May 17 19:25:10 487s May 17 19:25:10 Scenario: check the scheduled switchover # features/patroni_api.feature:107 487s May 17 19:25:10 Given I issue a scheduled switchover from postgres1 to postgres0 in 10 seconds # features/steps/patroni_api.py:117 489s May 17 19:25:12 Then I receive a response returncode 1 # features/steps/patroni_api.py:98 489s May 17 19:25:12 And I receive a response output "Can't schedule switchover in the paused state" # features/steps/patroni_api.py:98 489s May 17 19:25:12 When I run patronictl.py resume batman # features/steps/patroni_api.py:86 491s May 17 19:25:14 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 491s May 17 19:25:14 Given I issue a scheduled switchover from postgres1 to postgres0 in 10 seconds # features/steps/patroni_api.py:117 493s May 17 19:25:16 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 493s May 17 19:25:16 And postgres0 is a leader after 20 seconds # features/steps/patroni_api.py:29 503s May 17 19:25:26 And postgres0 role is the primary after 10 seconds # features/steps/basic_replication.py:105 504s May 17 19:25:27 And postgres1 role is the secondary after 10 seconds # features/steps/basic_replication.py:105 506s May 17 19:25:29 And replication works from postgres0 to postgres1 after 25 seconds # features/steps/basic_replication.py:112 506s May 17 19:25:29 And "members/postgres1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 507s May 17 19:25:30 When I issue a GET request to http://127.0.0.1:8008/primary # features/steps/patroni_api.py:61 507s May 17 19:25:30 Then I receive a response code 200 # features/steps/patroni_api.py:98 507s May 17 19:25:30 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:61 507s May 17 19:25:30 Then I receive a response code 503 # features/steps/patroni_api.py:98 507s May 17 19:25:30 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:61 508s May 17 19:25:31 Then I receive a response code 503 # features/steps/patroni_api.py:98 508s May 17 19:25:31 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:61 508s May 17 19:25:31 Then I receive a response code 200 # features/steps/patroni_api.py:98 512s May 17 19:25:35 512s May 17 19:25:35 Feature: permanent slots # features/permanent_slots.feature:1 512s May 17 19:25:35 512s May 17 19:25:35 Scenario: check that physical permanent slots are created # features/permanent_slots.feature:2 512s May 17 19:25:35 Given I start postgres0 # features/steps/basic_replication.py:8 516s May 17 19:25:39 Then postgres0 is a leader after 10 seconds # features/steps/patroni_api.py:29 516s May 17 19:25:39 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 516s May 17 19:25:39 When I issue a PATCH request to http://127.0.0.1:8008/config with {"slots":{"test_physical":0,"postgres0":0,"postgres1":0,"postgres3":0},"postgresql":{"parameters":{"wal_level":"logical"}}} # features/steps/patroni_api.py:71 516s May 17 19:25:39 Then I receive a response code 200 # features/steps/patroni_api.py:98 516s May 17 19:25:39 And Response on GET http://127.0.0.1:8008/config contains slots after 10 seconds # features/steps/patroni_api.py:156 516s May 17 19:25:39 When I start postgres1 # features/steps/basic_replication.py:8 520s May 17 19:25:43 And I start postgres2 # features/steps/basic_replication.py:8 524s May 17 19:25:47 And I configure and start postgres3 with a tag replicatefrom postgres2 # features/steps/cascading_replication.py:7 528s May 17 19:25:51 Then postgres0 has a physical replication slot named test_physical after 10 seconds # features/steps/slots.py:80 528s May 17 19:25:51 And postgres0 has a physical replication slot named postgres1 after 10 seconds # features/steps/slots.py:80 528s May 17 19:25:51 And postgres0 has a physical replication slot named postgres2 after 10 seconds # features/steps/slots.py:80 528s May 17 19:25:51 And postgres2 has a physical replication slot named postgres3 after 10 seconds # features/steps/slots.py:80 528s May 17 19:25:51 528s May 17 19:25:51 @slot-advance 528s May 17 19:25:51 Scenario: check that logical permanent slots are created # features/permanent_slots.feature:18 528s May 17 19:25:51 Given I run patronictl.py restart batman postgres0 --force # features/steps/patroni_api.py:86 531s May 17 19:25:54 And I issue a PATCH request to http://127.0.0.1:8008/config with {"slots":{"test_logical":{"type":"logical","database":"postgres","plugin":"test_decoding"}}} # features/steps/patroni_api.py:71 531s May 17 19:25:54 Then postgres0 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:19 532s May 17 19:25:55 532s May 17 19:25:55 @slot-advance 532s May 17 19:25:55 Scenario: check that permanent slots are created on replicas # features/permanent_slots.feature:24 532s May 17 19:25:55 Given postgres1 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:19 535s May 17 19:25:58 Then Logical slot test_logical is in sync between postgres0 and postgres1 after 10 seconds # features/steps/slots.py:51 535s May 17 19:25:58 And Logical slot test_logical is in sync between postgres0 and postgres2 after 10 seconds # features/steps/slots.py:51 536s May 17 19:25:59 And Logical slot test_logical is in sync between postgres0 and postgres3 after 10 seconds # features/steps/slots.py:51 537s May 17 19:26:00 And postgres1 has a physical replication slot named test_physical after 2 seconds # features/steps/slots.py:80 537s May 17 19:26:00 And postgres2 has a physical replication slot named test_physical after 2 seconds # features/steps/slots.py:80 537s May 17 19:26:00 And postgres3 has a physical replication slot named test_physical after 2 seconds # features/steps/slots.py:80 537s May 17 19:26:00 537s May 17 19:26:00 @slot-advance 537s May 17 19:26:00 Scenario: check permanent physical slots that match with member names # features/permanent_slots.feature:34 537s May 17 19:26:00 Given postgres0 has a physical replication slot named postgres3 after 2 seconds # features/steps/slots.py:80 537s May 17 19:26:00 And postgres1 has a physical replication slot named postgres0 after 2 seconds # features/steps/slots.py:80 537s May 17 19:26:00 And postgres1 has a physical replication slot named postgres3 after 2 seconds # features/steps/slots.py:80 537s May 17 19:26:00 And postgres2 has a physical replication slot named postgres0 after 2 seconds # features/steps/slots.py:80 537s May 17 19:26:00 And postgres2 has a physical replication slot named postgres3 after 2 seconds # features/steps/slots.py:80 537s May 17 19:26:00 And postgres2 has a physical replication slot named postgres1 after 2 seconds # features/steps/slots.py:80 537s May 17 19:26:00 And postgres1 does not have a replication slot named postgres2 # features/steps/slots.py:40 537s May 17 19:26:00 And postgres3 does not have a replication slot named postgres2 # features/steps/slots.py:40 537s May 17 19:26:00 537s May 17 19:26:00 @slot-advance 537s May 17 19:26:00 Scenario: check that permanent slots are advanced on replicas # features/permanent_slots.feature:45 537s May 17 19:26:00 Given I add the table replicate_me to postgres0 # features/steps/basic_replication.py:54 537s May 17 19:26:00 When I get all changes from logical slot test_logical on postgres0 # features/steps/slots.py:70 537s May 17 19:26:00 And I get all changes from physical slot test_physical on postgres0 # features/steps/slots.py:75 537s May 17 19:26:00 Then Logical slot test_logical is in sync between postgres0 and postgres1 after 10 seconds # features/steps/slots.py:51 538s May 17 19:26:01 And Physical slot test_physical is in sync between postgres0 and postgres1 after 10 seconds # features/steps/slots.py:51 538s May 17 19:26:01 And Logical slot test_logical is in sync between postgres0 and postgres2 after 10 seconds # features/steps/slots.py:51 538s May 17 19:26:01 And Physical slot test_physical is in sync between postgres0 and postgres2 after 10 seconds # features/steps/slots.py:51 538s May 17 19:26:01 And Logical slot test_logical is in sync between postgres0 and postgres3 after 10 seconds # features/steps/slots.py:51 538s May 17 19:26:01 And Physical slot test_physical is in sync between postgres0 and postgres3 after 10 seconds # features/steps/slots.py:51 538s May 17 19:26:01 And Physical slot postgres1 is in sync between postgres0 and postgres2 after 10 seconds # features/steps/slots.py:51 540s May 17 19:26:03 And Physical slot postgres3 is in sync between postgres2 and postgres0 after 20 seconds # features/steps/slots.py:51 540s May 17 19:26:03 And Physical slot postgres3 is in sync between postgres2 and postgres1 after 10 seconds # features/steps/slots.py:51 540s May 17 19:26:03 And postgres1 does not have a replication slot named postgres2 # features/steps/slots.py:40 540s May 17 19:26:03 And postgres3 does not have a replication slot named postgres2 # features/steps/slots.py:40 540s May 17 19:26:03 540s May 17 19:26:03 @slot-advance 540s May 17 19:26:03 Scenario: check that only permanent slots are written to the /status key # features/permanent_slots.feature:62 540s May 17 19:26:03 Given "status" key in DCS has test_physical in slots # features/steps/slots.py:96 540s May 17 19:26:03 And "status" key in DCS has postgres0 in slots # features/steps/slots.py:96 540s May 17 19:26:03 And "status" key in DCS has postgres1 in slots # features/steps/slots.py:96 540s May 17 19:26:03 And "status" key in DCS does not have postgres2 in slots # features/steps/slots.py:102 540s May 17 19:26:03 And "status" key in DCS has postgres3 in slots # features/steps/slots.py:96 540s May 17 19:26:03 540s May 17 19:26:03 Scenario: check permanent physical replication slot after failover # features/permanent_slots.feature:69 540s May 17 19:26:03 Given I shut down postgres3 # features/steps/basic_replication.py:29 541s May 17 19:26:04 And I shut down postgres2 # features/steps/basic_replication.py:29 542s May 17 19:26:05 And I shut down postgres0 # features/steps/basic_replication.py:29 544s May 17 19:26:07 Then postgres1 has a physical replication slot named test_physical after 10 seconds # features/steps/slots.py:80 544s May 17 19:26:07 And postgres1 has a physical replication slot named postgres0 after 10 seconds # features/steps/slots.py:80 544s May 17 19:26:07 And postgres1 has a physical replication slot named postgres3 after 10 seconds # features/steps/slots.py:80 547s May 17 19:26:10 547s May 17 19:26:10 Feature: priority replication # features/priority_failover.feature:1 547s May 17 19:26:10 We should check that we can give nodes priority during failover 547s May 17 19:26:10 Scenario: check failover priority 0 prevents leaderships # features/priority_failover.feature:4 547s May 17 19:26:10 Given I configure and start postgres0 with a tag failover_priority 1 # features/steps/cascading_replication.py:7 551s May 17 19:26:14 And I configure and start postgres1 with a tag failover_priority 0 # features/steps/cascading_replication.py:7 555s May 17 19:26:18 Then replication works from postgres0 to postgres1 after 20 seconds # features/steps/basic_replication.py:112 556s May 17 19:26:19 When I shut down postgres0 # features/steps/basic_replication.py:29 558s May 17 19:26:21 And there is one of ["following a different leader because I am not allowed to promote"] INFO in the postgres1 patroni log after 5 seconds # features/steps/basic_replication.py:121 560s May 17 19:26:23 Then postgres1 role is the secondary after 10 seconds # features/steps/basic_replication.py:105 560s May 17 19:26:23 When I start postgres0 # features/steps/basic_replication.py:8 563s May 17 19:26:26 Then postgres0 role is the primary after 10 seconds # features/steps/basic_replication.py:105 565s May 17 19:26:28 565s May 17 19:26:28 Scenario: check higher failover priority is respected # features/priority_failover.feature:14 565s May 17 19:26:28 Given I configure and start postgres2 with a tag failover_priority 1 # features/steps/cascading_replication.py:7 569s May 17 19:26:32 And I configure and start postgres3 with a tag failover_priority 2 # features/steps/cascading_replication.py:7 573s May 17 19:26:36 Then replication works from postgres0 to postgres2 after 20 seconds # features/steps/basic_replication.py:112 574s May 17 19:26:37 And replication works from postgres0 to postgres3 after 20 seconds # features/steps/basic_replication.py:112 575s May 17 19:26:38 When I shut down postgres0 # features/steps/basic_replication.py:29 577s May 17 19:26:40 Then postgres3 role is the primary after 10 seconds # features/steps/basic_replication.py:105 578s May 17 19:26:41 And there is one of ["postgres3 has equally tolerable WAL position and priority 2, while this node has priority 1","Wal position of postgres3 is ahead of my wal position"] INFO in the postgres2 patroni log after 5 seconds # features/steps/basic_replication.py:121 578s May 17 19:26:41 578s May 17 19:26:41 Scenario: check conflicting configuration handling # features/priority_failover.feature:23 578s May 17 19:26:41 When I set nofailover tag in postgres2 config # features/steps/patroni_api.py:131 578s May 17 19:26:41 And I issue an empty POST request to http://127.0.0.1:8010/reload # features/steps/patroni_api.py:66 578s May 17 19:26:41 Then I receive a response code 202 # features/steps/patroni_api.py:98 578s May 17 19:26:41 And there is one of ["Conflicting configuration between nofailover: True and failover_priority: 1. Defaulting to nofailover: True"] WARNING in the postgres2 patroni log after 5 seconds # features/steps/basic_replication.py:121 580s May 17 19:26:43 And "members/postgres2" key in DCS has tags={'failover_priority': '1', 'nofailover': True} after 10 seconds # features/steps/cascading_replication.py:23 581s May 17 19:26:44 When I issue a POST request to http://127.0.0.1:8010/failover with {"candidate": "postgres2"} # features/steps/patroni_api.py:71 581s May 17 19:26:44 Then I receive a response code 412 # features/steps/patroni_api.py:98 581s May 17 19:26:44 And I receive a response text "failover is not possible: no good candidates have been found" # features/steps/patroni_api.py:98 581s May 17 19:26:44 When I reset nofailover tag in postgres1 config # features/steps/patroni_api.py:131 581s May 17 19:26:44 And I issue an empty POST request to http://127.0.0.1:8009/reload # features/steps/patroni_api.py:66 581s May 17 19:26:44 Then I receive a response code 202 # features/steps/patroni_api.py:98 581s May 17 19:26:44 And there is one of ["Conflicting configuration between nofailover: False and failover_priority: 0. Defaulting to nofailover: False"] WARNING in the postgres1 patroni log after 5 seconds # features/steps/basic_replication.py:121 583s May 17 19:26:46 And "members/postgres1" key in DCS has tags={'failover_priority': '0', 'nofailover': False} after 10 seconds # features/steps/cascading_replication.py:23 584s May 17 19:26:47 And I issue a POST request to http://127.0.0.1:8009/failover with {"candidate": "postgres1"} # features/steps/patroni_api.py:71 588s May 17 19:26:51 Then I receive a response code 200 # features/steps/patroni_api.py:98 588s May 17 19:26:51 And postgres1 role is the primary after 10 seconds # features/steps/basic_replication.py:105 593s May 17 19:26:56 593s May 17 19:26:56 Feature: recovery # features/recovery.feature:1 593s May 17 19:26:56 We want to check that crashed postgres is started back 593s May 17 19:26:56 Scenario: check that timeline is not incremented when primary is started after crash # features/recovery.feature:4 593s May 17 19:26:56 Given I start postgres0 # features/steps/basic_replication.py:8 597s May 17 19:27:00 Then postgres0 is a leader after 10 seconds # features/steps/patroni_api.py:29 597s May 17 19:27:00 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 597s May 17 19:27:00 When I start postgres1 # features/steps/basic_replication.py:8 601s May 17 19:27:04 And I add the table foo to postgres0 # features/steps/basic_replication.py:54 601s May 17 19:27:04 Then table foo is present on postgres1 after 20 seconds # features/steps/basic_replication.py:93 602s May 17 19:27:05 When I kill postmaster on postgres0 # features/steps/basic_replication.py:44 602s May 17 19:27:05 waiting for server to shut down.... done 602s May 17 19:27:05 server stopped 602s May 17 19:27:05 Then postgres0 role is the primary after 10 seconds # features/steps/basic_replication.py:105 603s May 17 19:27:06 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:61 603s May 17 19:27:06 Then I receive a response code 200 # features/steps/patroni_api.py:98 603s May 17 19:27:06 And I receive a response role master # features/steps/patroni_api.py:98 603s May 17 19:27:06 And I receive a response timeline 1 # features/steps/patroni_api.py:98 603s May 17 19:27:06 And "members/postgres0" key in DCS has state=running after 12 seconds # features/steps/cascading_replication.py:23 604s May 17 19:27:07 And replication works from postgres0 to postgres1 after 15 seconds # features/steps/basic_replication.py:112 606s May 17 19:27:09 606s May 17 19:27:09 Scenario: check immediate failover when master_start_timeout=0 # features/recovery.feature:20 606s May 17 19:27:09 Given I issue a PATCH request to http://127.0.0.1:8008/config with {"master_start_timeout": 0} # features/steps/patroni_api.py:71 606s May 17 19:27:09 Then I receive a response code 200 # features/steps/patroni_api.py:98 606s May 17 19:27:09 And Response on GET http://127.0.0.1:8008/config contains master_start_timeout after 10 seconds # features/steps/patroni_api.py:156 606s May 17 19:27:09 When I kill postmaster on postgres0 # features/steps/basic_replication.py:44 607s May 17 19:27:10 waiting for server to shut down.... done 607s May 17 19:27:10 server stopped 607s May 17 19:27:10 Then postgres1 is a leader after 10 seconds # features/steps/patroni_api.py:29 610s May 17 19:27:13 And postgres1 role is the primary after 10 seconds # features/steps/basic_replication.py:105 613s May 17 19:27:16 613s May 17 19:27:16 Feature: standby cluster # features/standby_cluster.feature:1 613s May 17 19:27:16 613s May 17 19:27:16 Scenario: prepare the cluster with logical slots # features/standby_cluster.feature:2 613s May 17 19:27:16 Given I start postgres1 # features/steps/basic_replication.py:8 616s May 17 19:27:19 Then postgres1 is a leader after 10 seconds # features/steps/patroni_api.py:29 617s May 17 19:27:20 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 617s May 17 19:27:20 When I issue a PATCH request to http://127.0.0.1:8009/config with {"slots": {"pm_1": {"type": "physical"}}, "postgresql": {"parameters": {"wal_level": "logical"}}} # features/steps/patroni_api.py:71 617s May 17 19:27:20 Then I receive a response code 200 # features/steps/patroni_api.py:98 617s May 17 19:27:20 And Response on GET http://127.0.0.1:8009/config contains slots after 10 seconds # features/steps/patroni_api.py:156 617s May 17 19:27:20 And I sleep for 3 seconds # features/steps/patroni_api.py:39 620s May 17 19:27:23 When I issue a PATCH request to http://127.0.0.1:8009/config with {"slots": {"test_logical": {"type": "logical", "database": "postgres", "plugin": "test_decoding"}}} # features/steps/patroni_api.py:71 620s May 17 19:27:23 Then I receive a response code 200 # features/steps/patroni_api.py:98 620s May 17 19:27:23 And I do a backup of postgres1 # features/steps/custom_bootstrap.py:25 620s May 17 19:27:23 When I start postgres0 # features/steps/basic_replication.py:8 624s May 17 19:27:27 Then "members/postgres0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 624s May 17 19:27:27 And replication works from postgres1 to postgres0 after 15 seconds # features/steps/basic_replication.py:112 626s May 17 19:27:29 When I issue a GET request to http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:61 626s May 17 19:27:29 Then I receive a response code 200 # features/steps/patroni_api.py:98 626s May 17 19:27:29 And I receive a response replication_state streaming # features/steps/patroni_api.py:98 626s May 17 19:27:29 And "members/postgres0" key in DCS has replication_state=streaming after 10 seconds # features/steps/cascading_replication.py:23 626s May 17 19:27:29 626s May 17 19:27:29 @slot-advance 626s May 17 19:27:29 Scenario: check permanent logical slots are synced to the replica # features/standby_cluster.feature:22 626s May 17 19:27:29 Given I run patronictl.py restart batman postgres1 --force # features/steps/patroni_api.py:86 628s May 17 19:27:31 Then Logical slot test_logical is in sync between postgres0 and postgres1 after 10 seconds # features/steps/slots.py:51 634s May 17 19:27:37 634s May 17 19:27:37 Scenario: Detach exiting node from the cluster # features/standby_cluster.feature:26 634s May 17 19:27:37 When I shut down postgres1 # features/steps/basic_replication.py:29 636s May 17 19:27:39 Then postgres0 is a leader after 10 seconds # features/steps/patroni_api.py:29 636s May 17 19:27:39 And "members/postgres0" key in DCS has role=master after 5 seconds # features/steps/cascading_replication.py:23 637s May 17 19:27:40 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:61 637s May 17 19:27:40 Then I receive a response code 200 # features/steps/patroni_api.py:98 637s May 17 19:27:40 637s May 17 19:27:40 Scenario: check replication of a single table in a standby cluster # features/standby_cluster.feature:33 637s May 17 19:27:40 Given I start postgres1 in a standby cluster batman1 as a clone of postgres0 # features/steps/standby_cluster.py:23 641s May 17 19:27:44 Then postgres1 is a leader of batman1 after 10 seconds # features/steps/custom_bootstrap.py:16 641s May 17 19:27:44 When I add the table foo to postgres0 # features/steps/basic_replication.py:54 641s May 17 19:27:44 Then table foo is present on postgres1 after 20 seconds # features/steps/basic_replication.py:93 641s May 17 19:27:44 When I issue a GET request to http://127.0.0.1:8009/patroni # features/steps/patroni_api.py:61 641s May 17 19:27:44 Then I receive a response code 200 # features/steps/patroni_api.py:98 641s May 17 19:27:44 And I receive a response replication_state streaming # features/steps/patroni_api.py:98 641s May 17 19:27:44 And I sleep for 3 seconds # features/steps/patroni_api.py:39 644s May 17 19:27:47 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:61 644s May 17 19:27:47 Then I receive a response code 503 # features/steps/patroni_api.py:98 644s May 17 19:27:47 When I issue a GET request to http://127.0.0.1:8009/standby_leader # features/steps/patroni_api.py:61 644s May 17 19:27:47 Then I receive a response code 200 # features/steps/patroni_api.py:98 644s May 17 19:27:47 And I receive a response role standby_leader # features/steps/patroni_api.py:98 644s May 17 19:27:47 And there is a postgres1_cb.log with "on_role_change standby_leader batman1" in postgres1 data directory # features/steps/cascading_replication.py:12 644s May 17 19:27:47 When I start postgres2 in a cluster batman1 # features/steps/standby_cluster.py:12 648s May 17 19:27:51 Then postgres2 role is the replica after 24 seconds # features/steps/basic_replication.py:105 648s May 17 19:27:51 And postgres2 is replicating from postgres1 after 10 seconds # features/steps/standby_cluster.py:52 648s May 17 19:27:51 And table foo is present on postgres2 after 20 seconds # features/steps/basic_replication.py:93 648s May 17 19:27:51 When I issue a GET request to http://127.0.0.1:8010/patroni # features/steps/patroni_api.py:61 649s May 17 19:27:52 Then I receive a response code 200 # features/steps/patroni_api.py:98 649s May 17 19:27:52 And I receive a response replication_state streaming # features/steps/patroni_api.py:98 649s May 17 19:27:52 And postgres1 does not have a replication slot named test_logical # features/steps/slots.py:40 649s May 17 19:27:52 649s May 17 19:27:52 Scenario: check switchover # features/standby_cluster.feature:57 649s May 17 19:27:52 Given I run patronictl.py switchover batman1 --force # features/steps/patroni_api.py:86 653s May 17 19:27:56 Then Status code on GET http://127.0.0.1:8010/standby_leader is 200 after 10 seconds # features/steps/patroni_api.py:142 653s May 17 19:27:56 And postgres1 is replicating from postgres2 after 32 seconds # features/steps/standby_cluster.py:52 656s May 17 19:27:59 And there is a postgres2_cb.log with "on_start replica batman1\non_role_change standby_leader batman1" in postgres2 data directory # features/steps/cascading_replication.py:12 656s May 17 19:27:59 656s May 17 19:27:59 Scenario: check failover # features/standby_cluster.feature:63 656s May 17 19:27:59 When I kill postgres2 # features/steps/basic_replication.py:34 657s May 17 19:28:00 And I kill postmaster on postgres2 # features/steps/basic_replication.py:44 657s May 17 19:28:00 waiting for server to shut down.... done 657s May 17 19:28:00 server stopped 657s May 17 19:28:00 Then postgres1 is replicating from postgres0 after 32 seconds # features/steps/standby_cluster.py:52 675s May 17 19:28:18 And Status code on GET http://127.0.0.1:8009/standby_leader is 200 after 10 seconds # features/steps/patroni_api.py:142 675s May 17 19:28:18 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:61 675s May 17 19:28:18 Then I receive a response code 503 # features/steps/patroni_api.py:98 675s May 17 19:28:18 And I receive a response role standby_leader # features/steps/patroni_api.py:98 675s May 17 19:28:18 And replication works from postgres0 to postgres1 after 15 seconds # features/steps/basic_replication.py:112 676s May 17 19:28:19 And there is a postgres1_cb.log with "on_role_change replica batman1\non_role_change standby_leader batman1" in postgres1 data directory # features/steps/cascading_replication.py:12 680s May 17 19:28:23 680s May 17 19:28:23 Feature: watchdog # features/watchdog.feature:1 680s May 17 19:28:23 Verify that watchdog gets pinged and triggered under appropriate circumstances. 680s May 17 19:28:23 Scenario: watchdog is opened and pinged # features/watchdog.feature:4 680s May 17 19:28:23 Given I start postgres0 with watchdog # features/steps/watchdog.py:16 684s May 17 19:28:27 Then postgres0 is a leader after 10 seconds # features/steps/patroni_api.py:29 684s May 17 19:28:27 And postgres0 role is the primary after 10 seconds # features/steps/basic_replication.py:105 684s May 17 19:28:27 And postgres0 watchdog has been pinged after 10 seconds # features/steps/watchdog.py:21 685s May 17 19:28:28 And postgres0 watchdog has a 15 second timeout # features/steps/watchdog.py:34 685s May 17 19:28:28 685s May 17 19:28:28 Scenario: watchdog is reconfigured after global ttl changed # features/watchdog.feature:11 685s May 17 19:28:28 Given I run patronictl.py edit-config batman -s ttl=30 --force # features/steps/patroni_api.py:86 687s May 17 19:28:30 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 687s May 17 19:28:30 And I receive a response output "+ttl: 30" # features/steps/patroni_api.py:98 687s May 17 19:28:30 When I sleep for 4 seconds # features/steps/patroni_api.py:39 691s May 17 19:28:34 Then postgres0 watchdog has a 25 second timeout # features/steps/watchdog.py:34 691s May 17 19:28:34 691s May 17 19:28:34 Scenario: watchdog is disabled during pause # features/watchdog.feature:18 691s May 17 19:28:34 Given I run patronictl.py pause batman # features/steps/patroni_api.py:86 693s May 17 19:28:36 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 693s May 17 19:28:36 When I sleep for 2 seconds # features/steps/patroni_api.py:39 695s May 17 19:28:38 Then postgres0 watchdog has been closed # features/steps/watchdog.py:29 695s May 17 19:28:38 695s May 17 19:28:38 Scenario: watchdog is opened and pinged after resume # features/watchdog.feature:24 695s May 17 19:28:38 Given I reset postgres0 watchdog state # features/steps/watchdog.py:39 695s May 17 19:28:38 And I run patronictl.py resume batman # features/steps/patroni_api.py:86 697s May 17 19:28:40 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 697s May 17 19:28:40 And postgres0 watchdog has been pinged after 10 seconds # features/steps/watchdog.py:21 698s May 17 19:28:41 698s May 17 19:28:41 Scenario: watchdog is disabled when shutting down # features/watchdog.feature:30 698s May 17 19:28:41 Given I shut down postgres0 # features/steps/basic_replication.py:29 700s May 17 19:28:43 Then postgres0 watchdog has been closed # features/steps/watchdog.py:29 700s May 17 19:28:43 700s May 17 19:28:43 Scenario: watchdog is triggered if patroni stops responding # features/watchdog.feature:34 700s May 17 19:28:43 Given I reset postgres0 watchdog state # features/steps/watchdog.py:39 700s May 17 19:28:43 And I start postgres0 with watchdog # features/steps/watchdog.py:16 703s May 17 19:28:46 Then postgres0 role is the primary after 10 seconds # features/steps/basic_replication.py:105 705s May 17 19:28:48 When postgres0 hangs for 30 seconds # features/steps/watchdog.py:52 705s May 17 19:28:48 Then postgres0 watchdog is triggered after 30 seconds # features/steps/watchdog.py:44 732s May 17 19:29:15 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.4507.XvOGziDx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.4553.XbMQToDx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.4600.XtesVrLx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.4650.XsbtDtWx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.4695.XbXTpBRx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.4777.XNnVdXFx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.4825.XEvcToBx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.4828.XrDYUAxx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.4916.XnbgxZkx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.5017.XZEKnoDx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.5031.XxDexpCx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.5074.XzTYerVx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.5123.XpenrSux 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.5238.XOoNeaCx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.5286.XMGrPPHx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.5341.XUYvEOqx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.5430.XBmqMVtx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.5481.XOAiYhMx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.5579.XOTPuaRx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.5633.XLyGnrrx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.5695.XPyPMdex 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.5788.XYlFuFEx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.5887.XrzOljsx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.5924.XwIvKCUx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.5995.XHqFOEwx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.6029.XLUbtiBx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.6207.XgtWdjTx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.6258.XhBLuRqx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.6274.XUqanEtx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.6314.XVIVGlKx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.6363.XcvGIJvx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.6368.XkdelYWx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.6403.Xtlnnlox 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.6446.XfNbBxPx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.6613.XXFlbCUx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.6615.XsSkMsXx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.6621.XWfdDcAx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.6754.XrXiLDKx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.6799.XNJgsyDx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.6841.XooyBChx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.6890.XAYfdnKx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.6937.XDTbTdJx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.7113.XFLzPHqx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.7150.XciZbcDx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.7231.XkARItJx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.7303.XcocvKFx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.7380.XmXFYzSx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.7725.XOHFwnUx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.7768.XemBditx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.7907.XJvMUhKx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.7970.XfBElbjx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.8029.XMzXfUsx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.8129.XiGFWzkx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.8244.XTVAYwrx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.8379.XXNBQIUx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.8422.XeyKybgx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.8424.XoDSxcNx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.8427.XDilbTJx 733s May 17 19:29:16 Combined data file .coverage.adtubuntu-oracular-amd64-server-20240515.8438.XeRVgPWx 735s May 17 19:29:18 Name Stmts Miss Cover 735s May 17 19:29:18 ------------------------------------------------------------------------------------------------------------- 735s May 17 19:29:18 /usr/lib/python3/dist-packages/OpenSSL/SSL.py 1072 596 44% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/OpenSSL/__init__.py 4 0 100% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/OpenSSL/_util.py 41 14 66% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/OpenSSL/crypto.py 1225 982 20% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/OpenSSL/version.py 10 0 100% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/_distutils_hack/__init__.py 100 95 5% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/__about__.py 5 0 100% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/__init__.py 3 0 100% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/exceptions.py 26 5 81% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/hazmat/__init__.py 2 0 100% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/hazmat/_oid.py 126 0 100% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/__init__.py 0 0 100% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/__init__.py 0 0 100% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/_conditional.py 73 32 56% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/binding.py 73 13 82% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/__init__.py 0 0 100% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_asymmetric.py 6 0 100% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_cipheralgorithm.py 18 0 100% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_serialization.py 80 35 56% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/__init__.py 0 0 100% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/dh.py 118 47 60% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/dsa.py 134 57 57% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ec.py 219 56 74% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ed448.py 45 12 73% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ed25519.py 45 12 73% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/padding.py 47 20 57% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/rsa.py 184 106 42% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/types.py 19 0 100% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/utils.py 14 5 64% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/x448.py 43 12 72% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/x25519.py 43 12 72% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/__init__.py 4 0 100% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/algorithms.py 129 35 73% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/base.py 138 79 43% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/modes.py 140 58 59% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/constant_time.py 6 3 50% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/hashes.py 128 20 84% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/__init__.py 5 0 100% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/base.py 22 12 45% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/ssh.py 761 605 20% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/utils.py 76 29 62% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/x509/__init__.py 70 0 100% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/x509/base.py 458 224 51% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/x509/certificate_transparency.py 42 0 100% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/x509/extensions.py 1038 569 45% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/x509/general_name.py 166 94 43% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/x509/name.py 233 142 39% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/cryptography/x509/oid.py 3 0 100% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dateutil/__init__.py 5 2 60% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dateutil/_common.py 25 15 40% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dateutil/_version.py 11 2 82% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dateutil/parser/__init__.py 33 4 88% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dateutil/parser/_parser.py 813 436 46% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dateutil/parser/isoparser.py 185 150 19% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dateutil/relativedelta.py 241 206 15% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dateutil/tz/__init__.py 4 0 100% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dateutil/tz/_common.py 161 121 25% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dateutil/tz/_factories.py 49 21 57% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dateutil/tz/tz.py 800 626 22% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dateutil/tz/win.py 153 149 3% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/__init__.py 3 0 100% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/_asyncbackend.py 14 6 57% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/_ddr.py 105 86 18% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/_features.py 44 7 84% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/_immutable_ctx.py 40 5 88% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/asyncbackend.py 44 32 27% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/asyncquery.py 277 242 13% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/edns.py 270 161 40% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/entropy.py 80 49 39% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/enum.py 72 46 36% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/exception.py 60 33 45% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/flags.py 41 14 66% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/grange.py 34 30 12% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/immutable.py 41 30 27% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/inet.py 80 65 19% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/ipv4.py 27 20 26% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/ipv6.py 115 100 13% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/message.py 809 662 18% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/name.py 620 427 31% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/nameserver.py 101 54 47% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/node.py 118 71 40% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/opcode.py 31 7 77% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/query.py 536 462 14% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/quic/__init__.py 26 23 12% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/rcode.py 69 13 81% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/rdata.py 377 269 29% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/rdataclass.py 44 9 80% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/rdataset.py 193 133 31% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/rdatatype.py 214 25 88% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/OPT.py 34 19 44% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/SOA.py 41 26 37% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/TSIG.py 58 42 28% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/ZONEMD.py 43 27 37% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/__init__.py 2 0 100% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/rdtypes/__init__.py 2 0 100% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/rdtypes/svcbbase.py 397 261 34% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/rdtypes/util.py 191 154 19% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/renderer.py 152 118 22% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/resolver.py 899 719 20% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/reversename.py 33 24 27% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/rrset.py 78 56 28% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/serial.py 93 79 15% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/set.py 149 108 28% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/tokenizer.py 335 279 17% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/transaction.py 271 203 25% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/tsig.py 177 122 31% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/ttl.py 45 38 16% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/version.py 7 0 100% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/wire.py 64 42 34% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/xfr.py 148 126 15% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/zone.py 508 383 25% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/zonefile.py 429 380 11% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/dns/zonetypes.py 15 2 87% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/etcd/__init__.py 125 63 50% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/etcd/client.py 380 256 33% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/etcd/lock.py 125 103 18% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/idna/__init__.py 4 0 100% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/idna/core.py 294 259 12% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/idna/idnadata.py 4 0 100% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/idna/intranges.py 30 24 20% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/idna/package_data.py 1 0 100% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/__init__.py 13 2 85% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/__main__.py 199 63 68% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/api.py 770 286 63% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/async_executor.py 96 15 84% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/collections.py 56 6 89% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/config.py 371 94 75% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/config_generator.py 211 153 27% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/daemon.py 76 3 96% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/dcs/__init__.py 637 77 88% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/dcs/etcd3.py 679 124 82% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/dcs/etcd.py 603 253 58% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/dynamic_loader.py 35 7 80% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/exceptions.py 16 0 100% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/file_perm.py 43 8 81% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/global_config.py 81 0 100% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/ha.py 1244 361 71% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/log.py 215 66 69% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/postgresql/__init__.py 821 173 79% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/postgresql/available_parameters/__init__.py 21 1 95% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/postgresql/bootstrap.py 254 63 75% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/postgresql/callback_executor.py 55 8 85% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/postgresql/cancellable.py 104 41 61% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/postgresql/config.py 822 217 74% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/postgresql/connection.py 75 1 99% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/postgresql/misc.py 41 8 80% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/postgresql/mpp/__init__.py 89 11 88% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/postgresql/postmaster.py 170 85 50% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/postgresql/rewind.py 416 166 60% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/postgresql/slots.py 334 30 91% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/postgresql/sync.py 130 19 85% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/postgresql/validator.py 157 23 85% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/psycopg.py 42 16 62% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/request.py 62 7 89% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/tags.py 38 0 100% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/utils.py 350 106 70% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/validator.py 301 208 31% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/version.py 1 0 100% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/watchdog/__init__.py 2 0 100% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/watchdog/base.py 203 42 79% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/patroni/watchdog/linux.py 135 35 74% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/psutil/__init__.py 951 629 34% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/psutil/_common.py 424 212 50% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/psutil/_compat.py 302 263 13% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/psutil/_pslinux.py 1251 924 26% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/psutil/_psposix.py 96 38 60% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/psycopg2/__init__.py 19 3 84% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/psycopg2/_json.py 64 27 58% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/psycopg2/_range.py 269 172 36% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/psycopg2/errors.py 3 2 33% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/psycopg2/extensions.py 91 25 73% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/six.py 504 250 50% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/urllib3/__init__.py 50 14 72% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/urllib3/_base_connection.py 70 52 26% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/urllib3/_collections.py 234 123 47% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/urllib3/_request_methods.py 53 23 57% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/urllib3/_version.py 2 0 100% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/urllib3/connection.py 324 99 69% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/urllib3/connectionpool.py 347 124 64% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/urllib3/contrib/__init__.py 0 0 100% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/urllib3/contrib/pyopenssl.py 257 96 63% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/urllib3/exceptions.py 115 32 72% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/urllib3/fields.py 92 73 21% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/urllib3/filepost.py 37 24 35% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/urllib3/poolmanager.py 233 85 64% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/urllib3/response.py 562 274 51% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/urllib3/util/__init__.py 10 0 100% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/urllib3/util/connection.py 66 42 36% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/urllib3/util/proxy.py 13 6 54% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/urllib3/util/request.py 104 49 53% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/urllib3/util/response.py 32 15 53% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/urllib3/util/retry.py 173 49 72% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/urllib3/util/ssl_.py 177 78 56% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/urllib3/util/ssl_match_hostname.py 66 54 18% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/urllib3/util/ssltransport.py 160 112 30% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/urllib3/util/timeout.py 71 14 80% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/urllib3/util/url.py 205 72 65% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/urllib3/util/util.py 26 10 62% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/urllib3/util/wait.py 49 18 63% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/yaml/__init__.py 165 109 34% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/yaml/composer.py 92 17 82% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/yaml/constructor.py 479 276 42% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/yaml/cyaml.py 46 24 48% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/yaml/dumper.py 23 12 48% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/yaml/emitter.py 838 769 8% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/yaml/error.py 58 42 28% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/yaml/events.py 61 6 90% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/yaml/loader.py 47 24 49% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/yaml/nodes.py 29 7 76% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/yaml/parser.py 352 198 44% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/yaml/reader.py 122 34 72% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/yaml/representer.py 248 176 29% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/yaml/resolver.py 135 76 44% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/yaml/scanner.py 758 437 42% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/yaml/serializer.py 85 70 18% 735s May 17 19:29:18 /usr/lib/python3/dist-packages/yaml/tokens.py 76 17 78% 735s May 17 19:29:18 patroni/__init__.py 13 2 85% 735s May 17 19:29:18 patroni/__main__.py 199 199 0% 735s May 17 19:29:18 patroni/api.py 770 770 0% 735s May 17 19:29:18 patroni/async_executor.py 96 69 28% 735s May 17 19:29:18 patroni/collections.py 56 15 73% 735s May 17 19:29:18 patroni/config.py 371 196 47% 735s May 17 19:29:18 patroni/config_generator.py 211 211 0% 735s May 17 19:29:18 patroni/ctl.py 936 411 56% 735s May 17 19:29:18 patroni/daemon.py 76 76 0% 735s May 17 19:29:18 patroni/dcs/__init__.py 637 260 59% 735s May 17 19:29:18 patroni/dcs/consul.py 485 485 0% 735s May 17 19:29:18 patroni/dcs/etcd3.py 679 346 49% 735s May 17 19:29:18 patroni/dcs/etcd.py 603 277 54% 735s May 17 19:29:18 patroni/dcs/exhibitor.py 61 61 0% 735s May 17 19:29:18 patroni/dcs/kubernetes.py 938 938 0% 735s May 17 19:29:18 patroni/dcs/raft.py 319 319 0% 735s May 17 19:29:18 patroni/dcs/zookeeper.py 288 288 0% 735s May 17 19:29:18 patroni/dynamic_loader.py 35 7 80% 735s May 17 19:29:18 patroni/exceptions.py 16 1 94% 735s May 17 19:29:18 patroni/file_perm.py 43 15 65% 735s May 17 19:29:18 patroni/global_config.py 81 18 78% 735s May 17 19:29:18 patroni/ha.py 1244 1244 0% 735s May 17 19:29:18 patroni/log.py 215 170 21% 735s May 17 19:29:18 patroni/postgresql/__init__.py 821 651 21% 735s May 17 19:29:18 patroni/postgresql/available_parameters/__init__.py 21 1 95% 735s May 17 19:29:18 patroni/postgresql/bootstrap.py 254 224 12% 735s May 17 19:29:18 patroni/postgresql/callback_executor.py 55 34 38% 735s May 17 19:29:18 patroni/postgresql/cancellable.py 104 84 19% 735s May 17 19:29:18 patroni/postgresql/config.py 822 707 14% 735s May 17 19:29:18 patroni/postgresql/connection.py 75 50 33% 735s May 17 19:29:18 patroni/postgresql/misc.py 41 29 29% 735s May 17 19:29:18 patroni/postgresql/mpp/__init__.py 89 21 76% 735s May 17 19:29:18 patroni/postgresql/mpp/citus.py 259 259 0% 735s May 17 19:29:18 patroni/postgresql/postmaster.py 170 139 18% 735s May 17 19:29:18 patroni/postgresql/rewind.py 416 416 0% 735s May 17 19:29:18 patroni/postgresql/slots.py 334 285 15% 735s May 17 19:29:18 patroni/postgresql/sync.py 130 96 26% 735s May 17 19:29:18 patroni/postgresql/validator.py 157 52 67% 735s May 17 19:29:18 patroni/psycopg.py 42 28 33% 735s May 17 19:29:18 patroni/raft_controller.py 22 22 0% 735s May 17 19:29:18 patroni/request.py 62 6 90% 735s May 17 19:29:18 patroni/scripts/__init__.py 0 0 100% 735s May 17 19:29:18 patroni/scripts/aws.py 59 59 0% 735s May 17 19:29:18 patroni/scripts/barman/__init__.py 0 0 100% 735s May 17 19:29:18 patroni/scripts/barman/cli.py 51 51 0% 735s May 17 19:29:18 patroni/scripts/barman/config_switch.py 51 51 0% 735s May 17 19:29:18 patroni/scripts/barman/recover.py 37 37 0% 735s May 17 19:29:18 patroni/scripts/barman/utils.py 94 94 0% 735s May 17 19:29:18 patroni/scripts/wale_restore.py 207 207 0% 735s May 17 19:29:18 patroni/tags.py 38 11 71% 735s May 17 19:29:18 patroni/utils.py 350 177 49% 735s May 17 19:29:18 patroni/validator.py 301 215 29% 735s May 17 19:29:18 patroni/version.py 1 0 100% 735s May 17 19:29:18 patroni/watchdog/__init__.py 2 2 0% 735s May 17 19:29:18 patroni/watchdog/base.py 203 203 0% 735s May 17 19:29:18 patroni/watchdog/linux.py 135 135 0% 735s May 17 19:29:18 ------------------------------------------------------------------------------------------------------------- 735s May 17 19:29:18 TOTAL 54152 32586 40% 735s May 17 19:29:18 12 features passed, 0 failed, 1 skipped 735s May 17 19:29:18 46 scenarios passed, 0 failed, 14 skipped 735s May 17 19:29:18 466 steps passed, 0 failed, 119 skipped, 0 undefined 735s May 17 19:29:18 Took 7m55.851s 736s ### End 16 acceptance-etcd3 ### 736s + echo '### End 16 acceptance-etcd3 ###' 736s + rm -f '/tmp/pgpass?' 736s ++ id -u 736s + '[' 1000 -eq 0 ']' 736s autopkgtest [19:29:19]: test acceptance-etcd3: -----------------------] 736s acceptance-etcd3 PASS 736s autopkgtest [19:29:19]: test acceptance-etcd3: - - - - - - - - - - results - - - - - - - - - - 736s autopkgtest [19:29:19]: test acceptance-etcd-basic: preparing testbed 1128s autopkgtest [19:35:51]: testbed dpkg architecture: amd64 1128s autopkgtest [19:35:51]: testbed apt version: 2.7.14build2 1128s autopkgtest [19:35:51]: @@@@@@@@@@@@@@@@@@@@ test bed setup 1128s Get:1 http://ftpmaster.internal/ubuntu oracular-proposed InRelease [73.9 kB] 1128s Get:2 http://ftpmaster.internal/ubuntu oracular-proposed/restricted Sources [1964 B] 1128s Get:3 http://ftpmaster.internal/ubuntu oracular-proposed/universe Sources [1681 kB] 1128s Get:4 http://ftpmaster.internal/ubuntu oracular-proposed/main Sources [134 kB] 1128s Get:5 http://ftpmaster.internal/ubuntu oracular-proposed/multiverse Sources [9872 B] 1128s Get:6 http://ftpmaster.internal/ubuntu oracular-proposed/main i386 Packages [194 kB] 1128s Get:7 http://ftpmaster.internal/ubuntu oracular-proposed/main amd64 Packages [233 kB] 1128s Get:8 http://ftpmaster.internal/ubuntu oracular-proposed/restricted amd64 Packages [7700 B] 1128s Get:9 http://ftpmaster.internal/ubuntu oracular-proposed/universe i386 Packages [921 kB] 1128s Get:10 http://ftpmaster.internal/ubuntu oracular-proposed/universe amd64 Packages [1927 kB] 1128s Get:11 http://ftpmaster.internal/ubuntu oracular-proposed/multiverse amd64 Packages [19.7 kB] 1128s Get:12 http://ftpmaster.internal/ubuntu oracular-proposed/multiverse i386 Packages [6324 B] 1129s Fetched 5210 kB in 1s (7322 kB/s) 1129s Reading package lists... 1131s Reading package lists... 1131s Building dependency tree... 1131s Reading state information... 1131s Calculating upgrade... 1131s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 1131s Reading package lists... 1131s Building dependency tree... 1131s Reading state information... 1132s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 1132s Hit:1 http://ftpmaster.internal/ubuntu oracular-proposed InRelease 1132s Hit:2 http://ftpmaster.internal/ubuntu oracular InRelease 1132s Hit:3 http://ftpmaster.internal/ubuntu oracular-updates InRelease 1132s Hit:4 http://ftpmaster.internal/ubuntu oracular-security InRelease 1133s Reading package lists... 1133s Reading package lists... 1133s Building dependency tree... 1133s Reading state information... 1133s Calculating upgrade... 1134s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 1134s Reading package lists... 1134s Building dependency tree... 1134s Reading state information... 1134s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 1135s Reading package lists... 1135s Building dependency tree... 1135s Reading state information... 1136s Starting pkgProblemResolver with broken count: 0 1136s Starting 2 pkgProblemResolver with broken count: 0 1136s Done 1136s The following additional packages will be installed: 1136s etcd-server fonts-font-awesome fonts-lato libio-pty-perl libipc-run-perl 1136s libjs-jquery libjs-sphinxdoc libjs-underscore libjson-perl libllvm17t64 1136s libpq5 libtime-duration-perl libtimedate-perl libxslt1.1 moreutils patroni 1136s patroni-doc postgresql postgresql-16 postgresql-client-16 1136s postgresql-client-common postgresql-common python3-behave python3-cdiff 1136s python3-click python3-colorama python3-coverage python3-dateutil 1136s python3-dnspython python3-etcd python3-parse python3-parse-type 1136s python3-prettytable python3-psutil python3-psycopg2 python3-wcwidth 1136s sphinx-rtd-theme-common ssl-cert 1136s Suggested packages: 1136s etcd-client vip-manager haproxy postgresql-doc postgresql-doc-16 1136s python-coverage-doc python3-trio python3-aioquic python3-h2 python3-httpx 1136s python3-httpcore etcd python-psycopg2-doc 1136s Recommended packages: 1136s javascript-common libjson-xs-perl 1136s The following NEW packages will be installed: 1136s autopkgtest-satdep etcd-server fonts-font-awesome fonts-lato libio-pty-perl 1136s libipc-run-perl libjs-jquery libjs-sphinxdoc libjs-underscore libjson-perl 1136s libllvm17t64 libpq5 libtime-duration-perl libtimedate-perl libxslt1.1 1136s moreutils patroni patroni-doc postgresql postgresql-16 postgresql-client-16 1136s postgresql-client-common postgresql-common python3-behave python3-cdiff 1136s python3-click python3-colorama python3-coverage python3-dateutil 1136s python3-dnspython python3-etcd python3-parse python3-parse-type 1136s python3-prettytable python3-psutil python3-psycopg2 python3-wcwidth 1136s sphinx-rtd-theme-common ssl-cert 1136s 0 upgraded, 39 newly installed, 0 to remove and 0 not upgraded. 1136s Need to get 58.6 MB/58.6 MB of archives. 1136s After this operation, 230 MB of additional disk space will be used. 1136s Get:1 /tmp/autopkgtest.j0Dj5k/2-autopkgtest-satdep.deb autopkgtest-satdep amd64 0 [772 B] 1136s Get:2 http://ftpmaster.internal/ubuntu oracular/main amd64 fonts-lato all 2.015-1 [2781 kB] 1136s Get:3 http://ftpmaster.internal/ubuntu oracular/main amd64 libjson-perl all 4.10000-1 [81.9 kB] 1136s Get:4 http://ftpmaster.internal/ubuntu oracular/main amd64 postgresql-client-common all 257build1 [36.3 kB] 1136s Get:5 http://ftpmaster.internal/ubuntu oracular/main amd64 ssl-cert all 1.1.2ubuntu1 [17.8 kB] 1136s Get:6 http://ftpmaster.internal/ubuntu oracular/main amd64 postgresql-common all 257build1 [161 kB] 1136s Get:7 http://ftpmaster.internal/ubuntu oracular/universe amd64 etcd-server amd64 3.4.30-1build1 [8116 kB] 1136s Get:8 http://ftpmaster.internal/ubuntu oracular/main amd64 fonts-font-awesome all 5.0.10+really4.7.0~dfsg-4.1 [516 kB] 1136s Get:9 http://ftpmaster.internal/ubuntu oracular/main amd64 libio-pty-perl amd64 1:1.20-1build2 [31.2 kB] 1136s Get:10 http://ftpmaster.internal/ubuntu oracular/main amd64 libipc-run-perl all 20231003.0-1 [92.1 kB] 1136s Get:11 http://ftpmaster.internal/ubuntu oracular/main amd64 libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 1136s Get:12 http://ftpmaster.internal/ubuntu oracular/main amd64 libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [118 kB] 1136s Get:13 http://ftpmaster.internal/ubuntu oracular/main amd64 libjs-sphinxdoc all 7.2.6-6 [149 kB] 1136s Get:14 http://ftpmaster.internal/ubuntu oracular/main amd64 libllvm17t64 amd64 1:17.0.6-9ubuntu1 [26.2 MB] 1137s Get:15 http://ftpmaster.internal/ubuntu oracular/main amd64 libpq5 amd64 16.2-1ubuntu4 [138 kB] 1137s Get:16 http://ftpmaster.internal/ubuntu oracular/main amd64 libtime-duration-perl all 1.21-2 [12.3 kB] 1137s Get:17 http://ftpmaster.internal/ubuntu oracular/main amd64 libtimedate-perl all 2.3300-2 [34.0 kB] 1137s Get:18 http://ftpmaster.internal/ubuntu oracular/main amd64 libxslt1.1 amd64 1.1.39-0exp1build1 [167 kB] 1137s Get:19 http://ftpmaster.internal/ubuntu oracular/universe amd64 moreutils amd64 0.69-1 [56.4 kB] 1137s Get:20 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-cdiff all 1.0-1.1 [16.4 kB] 1137s Get:21 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-colorama all 0.4.6-4 [32.1 kB] 1137s Get:22 http://ftpmaster.internal/ubuntu oracular-proposed/main amd64 python3-click all 8.1.7-1 [79.1 kB] 1137s Get:23 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-dateutil all 2.8.2-3ubuntu1 [79.4 kB] 1137s Get:24 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-wcwidth all 0.2.5+dfsg1-1.1ubuntu1 [22.5 kB] 1137s Get:25 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-prettytable all 3.6.0-2 [32.8 kB] 1137s Get:26 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-psutil amd64 5.9.8-2build2 [195 kB] 1137s Get:27 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-psycopg2 amd64 2.9.9-1build1 [131 kB] 1137s Get:28 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-dnspython all 2.6.1-1ubuntu1 [163 kB] 1137s Get:29 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-etcd all 0.4.5-4 [31.9 kB] 1137s Get:30 http://ftpmaster.internal/ubuntu oracular/universe amd64 patroni all 3.3.0-1 [264 kB] 1137s Get:31 http://ftpmaster.internal/ubuntu oracular/main amd64 sphinx-rtd-theme-common all 2.0.0+dfsg-1 [1012 kB] 1137s Get:32 http://ftpmaster.internal/ubuntu oracular/universe amd64 patroni-doc all 3.3.0-1 [496 kB] 1137s Get:33 http://ftpmaster.internal/ubuntu oracular/main amd64 postgresql-client-16 amd64 16.2-1ubuntu4 [1269 kB] 1137s Get:34 http://ftpmaster.internal/ubuntu oracular/main amd64 postgresql-16 amd64 16.2-1ubuntu4 [15.5 MB] 1137s Get:35 http://ftpmaster.internal/ubuntu oracular/main amd64 postgresql all 16+257build1 [11.5 kB] 1137s Get:36 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-parse all 1.19.0-0.2 [18.1 kB] 1137s Get:37 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-parse-type all 0.6.2-1 [22.7 kB] 1137s Get:38 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-behave all 1.2.6-5 [98.4 kB] 1137s Get:39 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-coverage amd64 7.4.4+dfsg1-0ubuntu2 [147 kB] 1137s Preconfiguring packages ... 1137s Fetched 58.6 MB in 1s (113 MB/s) 1137s Selecting previously unselected package fonts-lato. 1137s (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 ... 73899 files and directories currently installed.) 1137s Preparing to unpack .../00-fonts-lato_2.015-1_all.deb ... 1137s Unpacking fonts-lato (2.015-1) ... 1138s Selecting previously unselected package libjson-perl. 1138s Preparing to unpack .../01-libjson-perl_4.10000-1_all.deb ... 1138s Unpacking libjson-perl (4.10000-1) ... 1138s Selecting previously unselected package postgresql-client-common. 1138s Preparing to unpack .../02-postgresql-client-common_257build1_all.deb ... 1138s Unpacking postgresql-client-common (257build1) ... 1138s Selecting previously unselected package ssl-cert. 1138s Preparing to unpack .../03-ssl-cert_1.1.2ubuntu1_all.deb ... 1138s Unpacking ssl-cert (1.1.2ubuntu1) ... 1138s Selecting previously unselected package postgresql-common. 1138s Preparing to unpack .../04-postgresql-common_257build1_all.deb ... 1138s Adding 'diversion of /usr/bin/pg_config to /usr/bin/pg_config.libpq-dev by postgresql-common' 1138s Unpacking postgresql-common (257build1) ... 1138s Selecting previously unselected package etcd-server. 1138s Preparing to unpack .../05-etcd-server_3.4.30-1build1_amd64.deb ... 1138s Unpacking etcd-server (3.4.30-1build1) ... 1138s Selecting previously unselected package fonts-font-awesome. 1138s Preparing to unpack .../06-fonts-font-awesome_5.0.10+really4.7.0~dfsg-4.1_all.deb ... 1138s Unpacking fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 1138s Selecting previously unselected package libio-pty-perl. 1138s Preparing to unpack .../07-libio-pty-perl_1%3a1.20-1build2_amd64.deb ... 1138s Unpacking libio-pty-perl (1:1.20-1build2) ... 1138s Selecting previously unselected package libipc-run-perl. 1138s Preparing to unpack .../08-libipc-run-perl_20231003.0-1_all.deb ... 1138s Unpacking libipc-run-perl (20231003.0-1) ... 1138s Selecting previously unselected package libjs-jquery. 1138s Preparing to unpack .../09-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 1138s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 1138s Selecting previously unselected package libjs-underscore. 1138s Preparing to unpack .../10-libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ... 1138s Unpacking libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 1138s Selecting previously unselected package libjs-sphinxdoc. 1138s Preparing to unpack .../11-libjs-sphinxdoc_7.2.6-6_all.deb ... 1138s Unpacking libjs-sphinxdoc (7.2.6-6) ... 1138s Selecting previously unselected package libllvm17t64:amd64. 1138s Preparing to unpack .../12-libllvm17t64_1%3a17.0.6-9ubuntu1_amd64.deb ... 1138s Unpacking libllvm17t64:amd64 (1:17.0.6-9ubuntu1) ... 1139s Selecting previously unselected package libpq5:amd64. 1139s Preparing to unpack .../13-libpq5_16.2-1ubuntu4_amd64.deb ... 1139s Unpacking libpq5:amd64 (16.2-1ubuntu4) ... 1139s Selecting previously unselected package libtime-duration-perl. 1139s Preparing to unpack .../14-libtime-duration-perl_1.21-2_all.deb ... 1139s Unpacking libtime-duration-perl (1.21-2) ... 1139s Selecting previously unselected package libtimedate-perl. 1139s Preparing to unpack .../15-libtimedate-perl_2.3300-2_all.deb ... 1139s Unpacking libtimedate-perl (2.3300-2) ... 1139s Selecting previously unselected package libxslt1.1:amd64. 1139s Preparing to unpack .../16-libxslt1.1_1.1.39-0exp1build1_amd64.deb ... 1139s Unpacking libxslt1.1:amd64 (1.1.39-0exp1build1) ... 1139s Selecting previously unselected package moreutils. 1139s Preparing to unpack .../17-moreutils_0.69-1_amd64.deb ... 1139s Unpacking moreutils (0.69-1) ... 1139s Selecting previously unselected package python3-cdiff. 1139s Preparing to unpack .../18-python3-cdiff_1.0-1.1_all.deb ... 1139s Unpacking python3-cdiff (1.0-1.1) ... 1139s Selecting previously unselected package python3-colorama. 1139s Preparing to unpack .../19-python3-colorama_0.4.6-4_all.deb ... 1139s Unpacking python3-colorama (0.4.6-4) ... 1139s Selecting previously unselected package python3-click. 1139s Preparing to unpack .../20-python3-click_8.1.7-1_all.deb ... 1139s Unpacking python3-click (8.1.7-1) ... 1139s Selecting previously unselected package python3-dateutil. 1139s Preparing to unpack .../21-python3-dateutil_2.8.2-3ubuntu1_all.deb ... 1139s Unpacking python3-dateutil (2.8.2-3ubuntu1) ... 1139s Selecting previously unselected package python3-wcwidth. 1139s Preparing to unpack .../22-python3-wcwidth_0.2.5+dfsg1-1.1ubuntu1_all.deb ... 1139s Unpacking python3-wcwidth (0.2.5+dfsg1-1.1ubuntu1) ... 1139s Selecting previously unselected package python3-prettytable. 1139s Preparing to unpack .../23-python3-prettytable_3.6.0-2_all.deb ... 1139s Unpacking python3-prettytable (3.6.0-2) ... 1139s Selecting previously unselected package python3-psutil. 1139s Preparing to unpack .../24-python3-psutil_5.9.8-2build2_amd64.deb ... 1139s Unpacking python3-psutil (5.9.8-2build2) ... 1139s Selecting previously unselected package python3-psycopg2. 1139s Preparing to unpack .../25-python3-psycopg2_2.9.9-1build1_amd64.deb ... 1139s Unpacking python3-psycopg2 (2.9.9-1build1) ... 1139s Selecting previously unselected package python3-dnspython. 1139s Preparing to unpack .../26-python3-dnspython_2.6.1-1ubuntu1_all.deb ... 1139s Unpacking python3-dnspython (2.6.1-1ubuntu1) ... 1139s Selecting previously unselected package python3-etcd. 1139s Preparing to unpack .../27-python3-etcd_0.4.5-4_all.deb ... 1139s Unpacking python3-etcd (0.4.5-4) ... 1139s Selecting previously unselected package patroni. 1139s Preparing to unpack .../28-patroni_3.3.0-1_all.deb ... 1139s Unpacking patroni (3.3.0-1) ... 1139s Selecting previously unselected package sphinx-rtd-theme-common. 1139s Preparing to unpack .../29-sphinx-rtd-theme-common_2.0.0+dfsg-1_all.deb ... 1139s Unpacking sphinx-rtd-theme-common (2.0.0+dfsg-1) ... 1139s Selecting previously unselected package patroni-doc. 1139s Preparing to unpack .../30-patroni-doc_3.3.0-1_all.deb ... 1139s Unpacking patroni-doc (3.3.0-1) ... 1139s Selecting previously unselected package postgresql-client-16. 1139s Preparing to unpack .../31-postgresql-client-16_16.2-1ubuntu4_amd64.deb ... 1139s Unpacking postgresql-client-16 (16.2-1ubuntu4) ... 1139s Selecting previously unselected package postgresql-16. 1139s Preparing to unpack .../32-postgresql-16_16.2-1ubuntu4_amd64.deb ... 1139s Unpacking postgresql-16 (16.2-1ubuntu4) ... 1140s Selecting previously unselected package postgresql. 1140s Preparing to unpack .../33-postgresql_16+257build1_all.deb ... 1140s Unpacking postgresql (16+257build1) ... 1140s Selecting previously unselected package python3-parse. 1140s Preparing to unpack .../34-python3-parse_1.19.0-0.2_all.deb ... 1140s Unpacking python3-parse (1.19.0-0.2) ... 1140s Selecting previously unselected package python3-parse-type. 1140s Preparing to unpack .../35-python3-parse-type_0.6.2-1_all.deb ... 1140s Unpacking python3-parse-type (0.6.2-1) ... 1140s Selecting previously unselected package python3-behave. 1140s Preparing to unpack .../36-python3-behave_1.2.6-5_all.deb ... 1140s Unpacking python3-behave (1.2.6-5) ... 1140s Selecting previously unselected package python3-coverage. 1140s Preparing to unpack .../37-python3-coverage_7.4.4+dfsg1-0ubuntu2_amd64.deb ... 1140s Unpacking python3-coverage (7.4.4+dfsg1-0ubuntu2) ... 1140s Selecting previously unselected package autopkgtest-satdep. 1140s Preparing to unpack .../38-2-autopkgtest-satdep.deb ... 1140s Unpacking autopkgtest-satdep (0) ... 1140s Setting up postgresql-client-common (257build1) ... 1140s Setting up fonts-lato (2.015-1) ... 1140s Setting up libio-pty-perl (1:1.20-1build2) ... 1140s Setting up python3-colorama (0.4.6-4) ... 1140s Setting up python3-cdiff (1.0-1.1) ... 1140s Setting up libpq5:amd64 (16.2-1ubuntu4) ... 1140s Setting up python3-coverage (7.4.4+dfsg1-0ubuntu2) ... 1141s Setting up python3-click (8.1.7-1) ... 1141s Setting up python3-psutil (5.9.8-2build2) ... 1141s Setting up libllvm17t64:amd64 (1:17.0.6-9ubuntu1) ... 1141s Setting up python3-wcwidth (0.2.5+dfsg1-1.1ubuntu1) ... 1141s Setting up ssl-cert (1.1.2ubuntu1) ... 1142s Created symlink /etc/systemd/system/multi-user.target.wants/ssl-cert.service → /usr/lib/systemd/system/ssl-cert.service. 1142s Setting up python3-psycopg2 (2.9.9-1build1) ... 1142s Setting up libipc-run-perl (20231003.0-1) ... 1142s Setting up libtime-duration-perl (1.21-2) ... 1142s Setting up libtimedate-perl (2.3300-2) ... 1142s Setting up python3-dnspython (2.6.1-1ubuntu1) ... 1143s Setting up python3-parse (1.19.0-0.2) ... 1143s Setting up libjson-perl (4.10000-1) ... 1143s Setting up libxslt1.1:amd64 (1.1.39-0exp1build1) ... 1143s Setting up python3-dateutil (2.8.2-3ubuntu1) ... 1143s Setting up etcd-server (3.4.30-1build1) ... 1143s info: Selecting UID from range 100 to 999 ... 1143s 1143s info: Selecting GID from range 100 to 999 ... 1143s info: Adding system user `etcd' (UID 108) ... 1143s info: Adding new group `etcd' (GID 112) ... 1143s info: Adding new user `etcd' (UID 108) with group `etcd' ... 1143s info: Creating home directory `/var/lib/etcd/' ... 1143s Created symlink /etc/systemd/system/etcd2.service → /usr/lib/systemd/system/etcd.service. 1143s Created symlink /etc/systemd/system/multi-user.target.wants/etcd.service → /usr/lib/systemd/system/etcd.service. 1144s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 1144s Setting up python3-prettytable (3.6.0-2) ... 1144s Setting up fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 1144s Setting up sphinx-rtd-theme-common (2.0.0+dfsg-1) ... 1144s Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 1144s Setting up moreutils (0.69-1) ... 1144s Setting up python3-etcd (0.4.5-4) ... 1144s Setting up postgresql-client-16 (16.2-1ubuntu4) ... 1145s update-alternatives: using /usr/share/postgresql/16/man/man1/psql.1.gz to provide /usr/share/man/man1/psql.1.gz (psql.1.gz) in auto mode 1145s Setting up python3-parse-type (0.6.2-1) ... 1145s Setting up postgresql-common (257build1) ... 1145s 1145s Creating config file /etc/postgresql-common/createcluster.conf with new version 1145s Building PostgreSQL dictionaries from installed myspell/hunspell packages... 1145s Removing obsolete dictionary files: 1146s Created symlink /etc/systemd/system/multi-user.target.wants/postgresql.service → /usr/lib/systemd/system/postgresql.service. 1147s Setting up libjs-sphinxdoc (7.2.6-6) ... 1147s Setting up python3-behave (1.2.6-5) ... 1147s /usr/lib/python3/dist-packages/behave/formatter/ansi_escapes.py:57: SyntaxWarning: invalid escape sequence '\[' 1147s _ANSI_ESCAPE_PATTERN = re.compile(u"\x1b\[\d+[mA]", re.UNICODE) 1147s /usr/lib/python3/dist-packages/behave/matchers.py:267: SyntaxWarning: invalid escape sequence '\d' 1147s """Registers a custom type that will be available to "parse" 1147s Setting up patroni (3.3.0-1) ... 1147s Created symlink /etc/systemd/system/multi-user.target.wants/patroni.service → /usr/lib/systemd/system/patroni.service. 1147s Setting up postgresql-16 (16.2-1ubuntu4) ... 1148s Creating new PostgreSQL cluster 16/main ... 1148s /usr/lib/postgresql/16/bin/initdb -D /var/lib/postgresql/16/main --auth-local peer --auth-host scram-sha-256 --no-instructions 1148s The files belonging to this database system will be owned by user "postgres". 1148s This user must also own the server process. 1148s 1148s The database cluster will be initialized with locale "C.UTF-8". 1148s The default database encoding has accordingly been set to "UTF8". 1148s The default text search configuration will be set to "english". 1148s 1148s Data page checksums are disabled. 1148s 1148s fixing permissions on existing directory /var/lib/postgresql/16/main ... ok 1148s creating subdirectories ... ok 1148s selecting dynamic shared memory implementation ... posix 1148s selecting default max_connections ... 100 1148s selecting default shared_buffers ... 128MB 1148s selecting default time zone ... Etc/UTC 1148s creating configuration files ... ok 1148s running bootstrap script ... ok 1148s performing post-bootstrap initialization ... ok 1148s syncing data to disk ... ok 1152s Setting up patroni-doc (3.3.0-1) ... 1152s Setting up postgresql (16+257build1) ... 1152s Setting up autopkgtest-satdep (0) ... 1152s Processing triggers for man-db (2.12.0-4build2) ... 1153s Processing triggers for libc-bin (2.39-0ubuntu8) ... 1156s (Reading database ... 77290 files and directories currently installed.) 1156s Removing autopkgtest-satdep (0) ... 1157s autopkgtest [19:36:20]: test acceptance-etcd-basic: debian/tests/acceptance etcd features/basic_replication.feature 1157s autopkgtest [19:36:20]: test acceptance-etcd-basic: [----------------------- 1157s dpkg-architecture: warning: cannot determine CC system type, falling back to default (native compilation) 1158s ++ ls -1r /usr/lib/postgresql/ 1158s ○ etcd.service - etcd - highly-available key value store 1158s Loaded: loaded (/usr/lib/systemd/system/etcd.service; enabled; preset: enabled) 1158s Active: inactive (dead) since Fri 2024-05-17 19:36:21 UTC; 12ms ago 1158s Duration: 13.528s 1158s Docs: https://etcd.io/docs 1158s man:etcd 1158s Process: 2400 ExecStart=/usr/bin/etcd $DAEMON_ARGS (code=killed, signal=TERM) 1158s Main PID: 2400 (code=killed, signal=TERM) 1158s CPU: 78ms 1158s 1158s May 17 19:36:07 autopkgtest etcd[2400]: enabled capabilities for version 3.4 1158s May 17 19:36:07 autopkgtest etcd[2400]: serving insecure client requests on 127.0.0.1:2379, this is strongly discouraged! 1158s May 17 19:36:07 autopkgtest systemd[1]: Started etcd.service - etcd - highly-available key value store. 1158s May 17 19:36:21 autopkgtest systemd[1]: Stopping etcd.service - etcd - highly-available key value store... 1158s May 17 19:36:21 autopkgtest etcd[2400]: received terminated signal, shutting down... 1158s May 17 19:36:21 autopkgtest etcd[2400]: stopping insecure grpc server due to error: accept tcp 127.0.0.1:2379: use of closed network connection 1158s May 17 19:36:21 autopkgtest etcd[2400]: stopped insecure grpc server due to error: accept tcp 127.0.0.1:2379: use of closed network connection 1158s May 17 19:36:21 autopkgtest etcd[2400]: skipped leadership transfer for single voting member cluster 1158s May 17 19:36:21 autopkgtest systemd[1]: etcd.service: Deactivated successfully. 1158s May 17 19:36:21 autopkgtest systemd[1]: Stopped etcd.service - etcd - highly-available key value store. 1158s ### PostgreSQL 16 acceptance-etcd features/basic_replication.feature ### 1158s + for PG_VERSION in $(ls -1r /usr/lib/postgresql/) 1158s + '[' 16 == 10 -o 16 == 11 ']' 1158s + echo '### PostgreSQL 16 acceptance-etcd features/basic_replication.feature ###' 1158s + su postgres -p -c 'set -o pipefail; ETCD_UNSUPPORTED_ARCH= DCS=etcd PATH=/usr/lib/postgresql/16/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin behave features/basic_replication.feature | ts' 1159s May 17 19:36:22 Feature: basic replication # features/basic_replication.feature:1 1159s May 17 19:36:22 We should check that the basic bootstrapping, replication and failover works. 1159s May 17 19:36:22 Scenario: check replication of a single table # features/basic_replication.feature:4 1159s May 17 19:36:22 Given I start postgres0 # features/steps/basic_replication.py:8 1162s May 17 19:36:25 Then postgres0 is a leader after 10 seconds # features/steps/patroni_api.py:29 1163s May 17 19:36:26 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 1163s May 17 19:36:26 When I issue a PATCH request to http://127.0.0.1:8008/config with {"ttl": 20, "synchronous_mode": true} # features/steps/patroni_api.py:71 1163s May 17 19:36:26 Then I receive a response code 200 # features/steps/patroni_api.py:98 1163s May 17 19:36:26 When I start postgres1 # features/steps/basic_replication.py:8 1166s May 17 19:36:29 And I configure and start postgres2 with a tag replicatefrom postgres0 # features/steps/cascading_replication.py:7 1169s May 17 19:36:32 And "sync" key in DCS has leader=postgres0 after 20 seconds # features/steps/cascading_replication.py:23 1169s May 17 19:36:32 And I add the table foo to postgres0 # features/steps/basic_replication.py:54 1170s May 17 19:36:33 Then table foo is present on postgres1 after 20 seconds # features/steps/basic_replication.py:93 1171s May 17 19:36:34 Then table foo is present on postgres2 after 20 seconds # features/steps/basic_replication.py:93 1176s May 17 19:36:39 1176s May 17 19:36:39 Scenario: check restart of sync replica # features/basic_replication.feature:17 1176s May 17 19:36:39 Given I shut down postgres2 # features/steps/basic_replication.py:29 1177s May 17 19:36:40 Then "sync" key in DCS has sync_standby=postgres1 after 5 seconds # features/steps/cascading_replication.py:23 1177s May 17 19:36:40 When I start postgres2 # features/steps/basic_replication.py:8 1180s May 17 19:36:43 And I shut down postgres1 # features/steps/basic_replication.py:29 1183s May 17 19:36:46 Then "sync" key in DCS has sync_standby=postgres2 after 10 seconds # features/steps/cascading_replication.py:23 1183s May 17 19:36:46 When I start postgres1 # features/steps/basic_replication.py:8 1186s May 17 19:36:49 Then "members/postgres1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1186s May 17 19:36:49 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:142 1186s May 17 19:36:49 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:142 1186s May 17 19:36:49 1186s May 17 19:36:49 Scenario: check stuck sync replica # features/basic_replication.feature:28 1186s May 17 19:36:49 Given I issue a PATCH request to http://127.0.0.1:8008/config with {"pause": true, "maximum_lag_on_syncnode": 15000000, "postgresql": {"parameters": {"synchronous_commit": "remote_apply"}}} # features/steps/patroni_api.py:71 1186s May 17 19:36:49 Then I receive a response code 200 # features/steps/patroni_api.py:98 1186s May 17 19:36:49 And I create table on postgres0 # features/steps/basic_replication.py:73 1186s May 17 19:36:49 And table mytest is present on postgres1 after 2 seconds # features/steps/basic_replication.py:93 1187s May 17 19:36:50 And table mytest is present on postgres2 after 2 seconds # features/steps/basic_replication.py:93 1187s May 17 19:36:50 When I pause wal replay on postgres2 # features/steps/basic_replication.py:64 1187s May 17 19:36:50 And I load data on postgres0 # features/steps/basic_replication.py:84 1187s May 17 19:36:50 Then "sync" key in DCS has sync_standby=postgres1 after 15 seconds # features/steps/cascading_replication.py:23 1190s May 17 19:36:53 And I resume wal replay on postgres2 # features/steps/basic_replication.py:64 1190s May 17 19:36:53 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:142 1192s May 17 19:36:55 And Status code on GET http://127.0.0.1:8010/async is 200 after 3 seconds # features/steps/patroni_api.py:142 1192s May 17 19:36:55 When I issue a PATCH request to http://127.0.0.1:8008/config with {"pause": null, "maximum_lag_on_syncnode": -1, "postgresql": {"parameters": {"synchronous_commit": "on"}}} # features/steps/patroni_api.py:71 1192s May 17 19:36:55 Then I receive a response code 200 # features/steps/patroni_api.py:98 1192s May 17 19:36:55 And I drop table on postgres0 # features/steps/basic_replication.py:73 1192s May 17 19:36:55 1192s May 17 19:36:55 Scenario: check multi sync replication # features/basic_replication.feature:44 1192s May 17 19:36:55 Given I issue a PATCH request to http://127.0.0.1:8008/config with {"synchronous_node_count": 2} # features/steps/patroni_api.py:71 1192s May 17 19:36:55 Then I receive a response code 200 # features/steps/patroni_api.py:98 1192s May 17 19:36:55 Then "sync" key in DCS has sync_standby=postgres1,postgres2 after 10 seconds # features/steps/cascading_replication.py:23 1196s May 17 19:36:59 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:142 1196s May 17 19:36:59 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:142 1196s May 17 19:36:59 When I issue a PATCH request to http://127.0.0.1:8008/config with {"synchronous_node_count": 1} # features/steps/patroni_api.py:71 1196s May 17 19:36:59 Then I receive a response code 200 # features/steps/patroni_api.py:98 1196s May 17 19:36:59 And I shut down postgres1 # features/steps/basic_replication.py:29 1199s May 17 19:37:02 Then "sync" key in DCS has sync_standby=postgres2 after 10 seconds # features/steps/cascading_replication.py:23 1200s May 17 19:37:03 When I start postgres1 # features/steps/basic_replication.py:8 1203s May 17 19:37:06 Then "members/postgres1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1203s May 17 19:37:06 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:142 1203s May 17 19:37:06 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:142 1203s May 17 19:37:06 1203s May 17 19:37:06 Scenario: check the basic failover in synchronous mode # features/basic_replication.feature:59 1203s May 17 19:37:06 Given I run patronictl.py pause batman # features/steps/patroni_api.py:86 1204s May 17 19:37:07 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 1204s May 17 19:37:07 When I sleep for 2 seconds # features/steps/patroni_api.py:39 1206s May 17 19:37:09 And I shut down postgres0 # features/steps/basic_replication.py:29 1207s May 17 19:37:10 And I run patronictl.py resume batman # features/steps/patroni_api.py:86 1209s May 17 19:37:12 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 1209s May 17 19:37:12 And postgres2 role is the primary after 24 seconds # features/steps/basic_replication.py:105 1228s May 17 19:37:31 And Response on GET http://127.0.0.1:8010/history contains recovery after 10 seconds # features/steps/patroni_api.py:156 1230s May 17 19:37:33 And there is a postgres2_cb.log with "on_role_change master batman" in postgres2 data directory # features/steps/cascading_replication.py:12 1230s May 17 19:37:33 When I issue a PATCH request to http://127.0.0.1:8010/config with {"synchronous_mode": null, "master_start_timeout": 0} # features/steps/patroni_api.py:71 1230s May 17 19:37:33 Then I receive a response code 200 # features/steps/patroni_api.py:98 1230s May 17 19:37:33 When I add the table bar to postgres2 # features/steps/basic_replication.py:54 1230s May 17 19:37:33 Then table bar is present on postgres1 after 20 seconds # features/steps/basic_replication.py:93 1233s May 17 19:37:36 And Response on GET http://127.0.0.1:8010/config contains master_start_timeout after 10 seconds # features/steps/patroni_api.py:156 1233s May 17 19:37:36 1233s May 17 19:37:36 Scenario: check rejoin of the former primary with pg_rewind # features/basic_replication.feature:75 1233s May 17 19:37:36 Given I add the table splitbrain to postgres0 # features/steps/basic_replication.py:54 1233s May 17 19:37:36 And I start postgres0 # features/steps/basic_replication.py:8 1233s May 17 19:37:36 Then postgres0 role is the secondary after 20 seconds # features/steps/basic_replication.py:105 1240s May 17 19:37:43 When I add the table buz to postgres2 # features/steps/basic_replication.py:54 1240s May 17 19:37:43 Then table buz is present on postgres0 after 20 seconds # features/steps/basic_replication.py:93 1240s May 17 19:37:43 1240s May 17 19:37:43 @reject-duplicate-name 1240s May 17 19:37:43 Scenario: check graceful rejection when two nodes have the same name # features/basic_replication.feature:83 1240s May 17 19:37:43 Given I start duplicate postgres0 on port 8011 # features/steps/basic_replication.py:13 1242s May 17 19:37:45 Then there is one of ["Can't start; there is already a node named 'postgres0' running"] CRITICAL in the dup-postgres0 patroni log after 5 seconds # features/steps/basic_replication.py:121 1247s May 17 19:37:50 1248s Failed to get list of machines from http://127.0.0.1:2379/v2: MaxRetryError("HTTPConnectionPool(host='127.0.0.1', port=2379): Max retries exceeded with url: /v2/machines (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))") 1248s Failed to get list of machines from http://[::1]:2379/v2: MaxRetryError("HTTPConnectionPool(host='::1', port=2379): Max retries exceeded with url: /v2/machines (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))") 1248s May 17 19:37:51 Combined data file .coverage.autopkgtest.4585.XZgmtNpx 1248s May 17 19:37:51 Combined data file .coverage.autopkgtest.4630.XzgXxtYx 1248s May 17 19:37:51 Combined data file .coverage.autopkgtest.4666.XbcePqbx 1248s May 17 19:37:51 Combined data file .coverage.autopkgtest.4739.XzKpgwax 1248s May 17 19:37:51 Combined data file .coverage.autopkgtest.4784.XRkTZJjx 1248s May 17 19:37:51 Combined data file .coverage.autopkgtest.4857.XZDlCJLx 1248s May 17 19:37:51 Combined data file .coverage.autopkgtest.4905.XILdHHDx 1248s May 17 19:37:51 Combined data file .coverage.autopkgtest.4908.XIQsJuxx 1248s May 17 19:37:51 Combined data file .coverage.autopkgtest.4993.XMVYSPPx 1248s May 17 19:37:51 Combined data file .coverage.autopkgtest.5089.XgEQfoDx 1250s May 17 19:37:53 Name Stmts Miss Cover 1250s May 17 19:37:53 ------------------------------------------------------------------------------------------------------------- 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/OpenSSL/SSL.py 1072 602 44% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/OpenSSL/__init__.py 4 0 100% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/OpenSSL/_util.py 41 14 66% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/OpenSSL/crypto.py 1225 982 20% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/OpenSSL/version.py 10 0 100% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/_distutils_hack/__init__.py 100 95 5% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/__about__.py 5 0 100% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/__init__.py 3 0 100% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/exceptions.py 26 5 81% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/hazmat/__init__.py 2 0 100% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/hazmat/_oid.py 126 0 100% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/__init__.py 0 0 100% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/__init__.py 0 0 100% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/_conditional.py 73 32 56% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/binding.py 73 13 82% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/__init__.py 0 0 100% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_asymmetric.py 6 0 100% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_cipheralgorithm.py 18 0 100% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_serialization.py 80 35 56% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/__init__.py 0 0 100% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/dh.py 118 47 60% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/dsa.py 134 57 57% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ec.py 219 56 74% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ed448.py 45 12 73% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ed25519.py 45 12 73% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/padding.py 47 20 57% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/rsa.py 184 106 42% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/types.py 19 0 100% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/utils.py 14 5 64% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/x448.py 43 12 72% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/x25519.py 43 12 72% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/__init__.py 4 0 100% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/algorithms.py 129 35 73% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/base.py 138 79 43% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/modes.py 140 58 59% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/constant_time.py 6 3 50% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/hashes.py 128 20 84% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/__init__.py 5 0 100% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/base.py 22 12 45% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/ssh.py 761 605 20% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/utils.py 76 29 62% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/x509/__init__.py 70 0 100% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/x509/base.py 458 224 51% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/x509/certificate_transparency.py 42 0 100% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/x509/extensions.py 1038 569 45% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/x509/general_name.py 166 94 43% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/x509/name.py 233 142 39% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/cryptography/x509/oid.py 3 0 100% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dateutil/__init__.py 5 2 60% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dateutil/_common.py 25 15 40% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dateutil/_version.py 11 2 82% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dateutil/parser/__init__.py 33 4 88% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dateutil/parser/_parser.py 813 688 15% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dateutil/parser/isoparser.py 185 150 19% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dateutil/relativedelta.py 241 206 15% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dateutil/tz/__init__.py 4 0 100% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dateutil/tz/_common.py 161 124 23% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dateutil/tz/_factories.py 49 21 57% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dateutil/tz/tz.py 800 629 21% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dateutil/tz/win.py 153 149 3% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/__init__.py 3 0 100% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/_asyncbackend.py 14 6 57% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/_ddr.py 105 86 18% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/_features.py 44 7 84% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/_immutable_ctx.py 40 5 88% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/asyncbackend.py 44 32 27% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/asyncquery.py 277 242 13% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/edns.py 270 161 40% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/entropy.py 80 49 39% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/enum.py 72 46 36% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/exception.py 60 33 45% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/flags.py 41 14 66% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/grange.py 34 30 12% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/immutable.py 41 30 27% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/inet.py 80 65 19% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/ipv4.py 27 20 26% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/ipv6.py 115 100 13% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/message.py 809 662 18% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/name.py 620 427 31% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/nameserver.py 101 54 47% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/node.py 118 71 40% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/opcode.py 31 7 77% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/query.py 536 462 14% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/quic/__init__.py 26 23 12% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/rcode.py 69 13 81% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/rdata.py 377 269 29% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/rdataclass.py 44 9 80% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/rdataset.py 193 133 31% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/rdatatype.py 214 25 88% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/OPT.py 34 19 44% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/SOA.py 41 26 37% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/TSIG.py 58 42 28% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/ZONEMD.py 43 27 37% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/__init__.py 2 0 100% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/rdtypes/__init__.py 2 0 100% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/rdtypes/svcbbase.py 397 261 34% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/rdtypes/util.py 191 154 19% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/renderer.py 152 118 22% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/resolver.py 899 719 20% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/reversename.py 33 24 27% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/rrset.py 78 56 28% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/serial.py 93 79 15% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/set.py 149 108 28% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/tokenizer.py 335 279 17% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/transaction.py 271 203 25% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/tsig.py 177 122 31% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/ttl.py 45 38 16% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/version.py 7 0 100% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/wire.py 64 42 34% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/xfr.py 148 126 15% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/zone.py 508 383 25% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/zonefile.py 429 380 11% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/dns/zonetypes.py 15 2 87% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/etcd/__init__.py 125 27 78% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/etcd/client.py 380 195 49% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/etcd/lock.py 125 103 18% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/idna/__init__.py 4 0 100% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/idna/core.py 294 259 12% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/idna/idnadata.py 4 0 100% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/idna/intranges.py 30 24 20% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/idna/package_data.py 1 0 100% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/__init__.py 13 2 85% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/__main__.py 199 67 66% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/api.py 770 429 44% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/async_executor.py 96 19 80% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/collections.py 56 6 89% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/config.py 371 110 70% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/config_generator.py 211 153 27% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/daemon.py 76 6 92% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/dcs/__init__.py 637 147 77% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/dcs/etcd.py 603 180 70% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/dynamic_loader.py 35 7 80% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/exceptions.py 16 0 100% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/file_perm.py 43 9 79% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/global_config.py 81 4 95% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/ha.py 1244 616 50% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/log.py 215 68 68% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/postgresql/__init__.py 821 239 71% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/postgresql/available_parameters/__init__.py 21 1 95% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/postgresql/bootstrap.py 254 92 64% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/postgresql/callback_executor.py 55 8 85% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/postgresql/cancellable.py 104 41 61% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/postgresql/config.py 822 257 69% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/postgresql/connection.py 75 7 91% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/postgresql/misc.py 41 13 68% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/postgresql/mpp/__init__.py 89 12 87% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/postgresql/postmaster.py 170 92 46% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/postgresql/rewind.py 416 200 52% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/postgresql/slots.py 334 174 48% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/postgresql/sync.py 130 19 85% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/postgresql/validator.py 157 23 85% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/psycopg.py 42 16 62% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/request.py 62 7 89% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/tags.py 38 5 87% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/utils.py 350 140 60% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/validator.py 301 211 30% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/version.py 1 0 100% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/watchdog/__init__.py 2 0 100% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/watchdog/base.py 203 49 76% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/patroni/watchdog/linux.py 135 50 63% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/psutil/__init__.py 951 636 33% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/psutil/_common.py 424 212 50% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/psutil/_compat.py 302 264 13% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/psutil/_pslinux.py 1251 936 25% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/psutil/_psposix.py 96 41 57% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/psycopg2/__init__.py 19 3 84% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/psycopg2/_json.py 64 27 58% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/psycopg2/_range.py 269 172 36% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/psycopg2/errors.py 3 2 33% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/psycopg2/extensions.py 91 25 73% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/six.py 504 250 50% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/urllib3/__init__.py 50 14 72% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/urllib3/_base_connection.py 70 52 26% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/urllib3/_collections.py 234 100 57% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/urllib3/_request_methods.py 53 11 79% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/urllib3/_version.py 2 0 100% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/urllib3/connection.py 324 100 69% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/urllib3/connectionpool.py 347 130 63% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/urllib3/contrib/__init__.py 0 0 100% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/urllib3/contrib/pyopenssl.py 257 98 62% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/urllib3/exceptions.py 115 37 68% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/urllib3/fields.py 92 73 21% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/urllib3/filepost.py 37 24 35% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/urllib3/poolmanager.py 233 85 64% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/urllib3/response.py 562 318 43% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/urllib3/util/__init__.py 10 0 100% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/urllib3/util/connection.py 66 42 36% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/urllib3/util/proxy.py 13 6 54% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/urllib3/util/request.py 104 49 53% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/urllib3/util/response.py 32 17 47% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/urllib3/util/retry.py 173 55 68% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/urllib3/util/ssl_.py 177 78 56% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/urllib3/util/ssl_match_hostname.py 66 54 18% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/urllib3/util/ssltransport.py 160 112 30% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/urllib3/util/timeout.py 71 14 80% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/urllib3/util/url.py 205 68 67% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/urllib3/util/util.py 26 10 62% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/urllib3/util/wait.py 49 18 63% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/yaml/__init__.py 165 109 34% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/yaml/composer.py 92 17 82% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/yaml/constructor.py 479 276 42% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/yaml/cyaml.py 46 24 48% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/yaml/dumper.py 23 12 48% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/yaml/emitter.py 838 769 8% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/yaml/error.py 58 42 28% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/yaml/events.py 61 6 90% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/yaml/loader.py 47 24 49% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/yaml/nodes.py 29 7 76% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/yaml/parser.py 352 198 44% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/yaml/reader.py 122 34 72% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/yaml/representer.py 248 176 29% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/yaml/resolver.py 135 76 44% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/yaml/scanner.py 758 437 42% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/yaml/serializer.py 85 70 18% 1250s May 17 19:37:53 /usr/lib/python3/dist-packages/yaml/tokens.py 76 17 78% 1250s May 17 19:37:53 patroni/__init__.py 13 2 85% 1250s May 17 19:37:53 patroni/__main__.py 199 199 0% 1250s May 17 19:37:53 patroni/api.py 770 770 0% 1250s May 17 19:37:53 patroni/async_executor.py 96 69 28% 1250s May 17 19:37:53 patroni/collections.py 56 15 73% 1250s May 17 19:37:53 patroni/config.py 371 196 47% 1250s May 17 19:37:53 patroni/config_generator.py 211 211 0% 1250s May 17 19:37:53 patroni/ctl.py 936 663 29% 1250s May 17 19:37:53 patroni/daemon.py 76 76 0% 1250s May 17 19:37:53 patroni/dcs/__init__.py 637 299 53% 1250s May 17 19:37:53 patroni/dcs/consul.py 485 485 0% 1250s May 17 19:37:53 patroni/dcs/etcd3.py 679 679 0% 1250s May 17 19:37:53 patroni/dcs/etcd.py 603 232 62% 1250s May 17 19:37:53 patroni/dcs/exhibitor.py 61 61 0% 1250s May 17 19:37:53 patroni/dcs/kubernetes.py 938 938 0% 1250s May 17 19:37:53 patroni/dcs/raft.py 319 319 0% 1250s May 17 19:37:53 patroni/dcs/zookeeper.py 288 288 0% 1250s May 17 19:37:53 patroni/dynamic_loader.py 35 7 80% 1250s May 17 19:37:53 patroni/exceptions.py 16 1 94% 1250s May 17 19:37:53 patroni/file_perm.py 43 15 65% 1250s May 17 19:37:53 patroni/global_config.py 81 23 72% 1250s May 17 19:37:53 patroni/ha.py 1244 1244 0% 1250s May 17 19:37:53 patroni/log.py 215 170 21% 1250s May 17 19:37:53 patroni/postgresql/__init__.py 821 651 21% 1250s May 17 19:37:53 patroni/postgresql/available_parameters/__init__.py 21 3 86% 1250s May 17 19:37:53 patroni/postgresql/bootstrap.py 254 224 12% 1250s May 17 19:37:53 patroni/postgresql/callback_executor.py 55 34 38% 1250s May 17 19:37:53 patroni/postgresql/cancellable.py 104 84 19% 1250s May 17 19:37:53 patroni/postgresql/config.py 822 707 14% 1250s May 17 19:37:53 patroni/postgresql/connection.py 75 50 33% 1250s May 17 19:37:53 patroni/postgresql/misc.py 41 29 29% 1250s May 17 19:37:53 patroni/postgresql/mpp/__init__.py 89 21 76% 1250s May 17 19:37:53 patroni/postgresql/mpp/citus.py 259 259 0% 1250s May 17 19:37:53 patroni/postgresql/postmaster.py 170 139 18% 1250s May 17 19:37:53 patroni/postgresql/rewind.py 416 416 0% 1250s May 17 19:37:53 patroni/postgresql/slots.py 334 285 15% 1250s May 17 19:37:53 patroni/postgresql/sync.py 130 96 26% 1250s May 17 19:37:53 patroni/postgresql/validator.py 157 52 67% 1250s May 17 19:37:53 patroni/psycopg.py 42 28 33% 1250s May 17 19:37:53 patroni/raft_controller.py 22 22 0% 1250s May 17 19:37:53 patroni/request.py 62 6 90% 1250s May 17 19:37:53 patroni/scripts/__init__.py 0 0 100% 1250s May 17 19:37:53 patroni/scripts/aws.py 59 59 0% 1250s May 17 19:37:53 patroni/scripts/barman/__init__.py 0 0 100% 1250s May 17 19:37:53 patroni/scripts/barman/cli.py 51 51 0% 1250s May 17 19:37:53 patroni/scripts/barman/config_switch.py 51 51 0% 1250s May 17 19:37:53 patroni/scripts/barman/recover.py 37 37 0% 1250s May 17 19:37:53 patroni/scripts/barman/utils.py 94 94 0% 1250s May 17 19:37:53 patroni/scripts/wale_restore.py 207 207 0% 1250s May 17 19:37:53 patroni/tags.py 38 15 61% 1250s May 17 19:37:53 patroni/utils.py 350 246 30% 1250s May 17 19:37:53 patroni/validator.py 301 215 29% 1250s May 17 19:37:53 patroni/version.py 1 0 100% 1250s May 17 19:37:53 patroni/watchdog/__init__.py 2 2 0% 1250s May 17 19:37:53 patroni/watchdog/base.py 203 203 0% 1250s May 17 19:37:53 patroni/watchdog/linux.py 135 135 0% 1250s May 17 19:37:53 ------------------------------------------------------------------------------------------------------------- 1250s May 17 19:37:53 TOTAL 53473 34163 36% 1250s May 17 19:37:53 1 feature passed, 0 failed, 0 skipped 1250s May 17 19:37:53 7 scenarios passed, 0 failed, 0 skipped 1250s May 17 19:37:53 68 steps passed, 0 failed, 0 skipped, 0 undefined 1250s May 17 19:37:53 Took 1m23.032s 1250s ### End 16 acceptance-etcd features/basic_replication.feature ### 1250s + echo '### End 16 acceptance-etcd features/basic_replication.feature ###' 1250s + rm -f '/tmp/pgpass?' 1250s ++ id -u 1250s + '[' 0 -eq 0 ']' 1250s + '[' -x /etc/init.d/zookeeper ']' 1251s autopkgtest [19:37:54]: test acceptance-etcd-basic: -----------------------] 1251s autopkgtest [19:37:54]: test acceptance-etcd-basic: - - - - - - - - - - results - - - - - - - - - - 1251s acceptance-etcd-basic PASS 1251s autopkgtest [19:37:54]: test acceptance-etcd: preparing testbed 1252s Reading package lists... 1252s Building dependency tree... 1252s Reading state information... 1252s Starting pkgProblemResolver with broken count: 0 1252s Starting 2 pkgProblemResolver with broken count: 0 1252s Done 1253s The following NEW packages will be installed: 1253s autopkgtest-satdep 1253s 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. 1253s Need to get 0 B/772 B of archives. 1253s After this operation, 0 B of additional disk space will be used. 1253s Get:1 /tmp/autopkgtest.j0Dj5k/3-autopkgtest-satdep.deb autopkgtest-satdep amd64 0 [772 B] 1253s Selecting previously unselected package autopkgtest-satdep. 1253s (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 ... 77290 files and directories currently installed.) 1253s Preparing to unpack .../3-autopkgtest-satdep.deb ... 1253s Unpacking autopkgtest-satdep (0) ... 1253s Setting up autopkgtest-satdep (0) ... 1254s (Reading database ... 77290 files and directories currently installed.) 1254s Removing autopkgtest-satdep (0) ... 1255s autopkgtest [19:37:58]: test acceptance-etcd: debian/tests/acceptance etcd 1255s autopkgtest [19:37:58]: test acceptance-etcd: [----------------------- 1255s dpkg-architecture: warning: cannot determine CC system type, falling back to default (native compilation) 1255s ++ ls -1r /usr/lib/postgresql/ 1255s ○ etcd.service - etcd - highly-available key value store 1255s Loaded: loaded (/usr/lib/systemd/system/etcd.service; enabled; preset: enabled) 1255s Active: inactive (dead) since Fri 2024-05-17 19:36:21 UTC; 1min 37s ago 1255s Duration: 13.528s 1255s Docs: https://etcd.io/docs 1255s man:etcd 1255s Process: 2400 ExecStart=/usr/bin/etcd $DAEMON_ARGS (code=killed, signal=TERM) 1255s Main PID: 2400 (code=killed, signal=TERM) 1255s CPU: 78ms 1255s 1255s May 17 19:36:07 autopkgtest etcd[2400]: enabled capabilities for version 3.4 1255s May 17 19:36:07 autopkgtest etcd[2400]: serving insecure client requests on 127.0.0.1:2379, this is strongly discouraged! 1255s May 17 19:36:07 autopkgtest systemd[1]: Started etcd.service - etcd - highly-available key value store. 1255s May 17 19:36:21 autopkgtest systemd[1]: Stopping etcd.service - etcd - highly-available key value store... 1255s May 17 19:36:21 autopkgtest etcd[2400]: received terminated signal, shutting down... 1255s May 17 19:36:21 autopkgtest etcd[2400]: stopping insecure grpc server due to error: accept tcp 127.0.0.1:2379: use of closed network connection 1255s May 17 19:36:21 autopkgtest etcd[2400]: stopped insecure grpc server due to error: accept tcp 127.0.0.1:2379: use of closed network connection 1255s May 17 19:36:21 autopkgtest etcd[2400]: skipped leadership transfer for single voting member cluster 1255s May 17 19:36:21 autopkgtest systemd[1]: etcd.service: Deactivated successfully. 1255s May 17 19:36:21 autopkgtest systemd[1]: Stopped etcd.service - etcd - highly-available key value store. 1255s ### PostgreSQL 16 acceptance-etcd ### 1255s + for PG_VERSION in $(ls -1r /usr/lib/postgresql/) 1255s + '[' 16 == 10 -o 16 == 11 ']' 1255s + echo '### PostgreSQL 16 acceptance-etcd ###' 1255s + su postgres -p -c 'set -o pipefail; ETCD_UNSUPPORTED_ARCH= DCS=etcd PATH=/usr/lib/postgresql/16/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin behave | ts' 1257s May 17 19:38:00 Feature: basic replication # features/basic_replication.feature:1 1257s May 17 19:38:00 We should check that the basic bootstrapping, replication and failover works. 1257s May 17 19:38:00 Scenario: check replication of a single table # features/basic_replication.feature:4 1257s May 17 19:38:00 Given I start postgres0 # features/steps/basic_replication.py:8 1260s May 17 19:38:03 Then postgres0 is a leader after 10 seconds # features/steps/patroni_api.py:29 1261s May 17 19:38:04 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 1261s May 17 19:38:04 When I issue a PATCH request to http://127.0.0.1:8008/config with {"ttl": 20, "synchronous_mode": true} # features/steps/patroni_api.py:71 1261s May 17 19:38:04 Then I receive a response code 200 # features/steps/patroni_api.py:98 1261s May 17 19:38:04 When I start postgres1 # features/steps/basic_replication.py:8 1264s May 17 19:38:07 And I configure and start postgres2 with a tag replicatefrom postgres0 # features/steps/cascading_replication.py:7 1267s May 17 19:38:10 And "sync" key in DCS has leader=postgres0 after 20 seconds # features/steps/cascading_replication.py:23 1267s May 17 19:38:10 And I add the table foo to postgres0 # features/steps/basic_replication.py:54 1267s May 17 19:38:10 Then table foo is present on postgres1 after 20 seconds # features/steps/basic_replication.py:93 1268s May 17 19:38:11 Then table foo is present on postgres2 after 20 seconds # features/steps/basic_replication.py:93 1273s May 17 19:38:16 1273s May 17 19:38:16 Scenario: check restart of sync replica # features/basic_replication.feature:17 1273s May 17 19:38:16 Given I shut down postgres2 # features/steps/basic_replication.py:29 1274s May 17 19:38:17 Then "sync" key in DCS has sync_standby=postgres1 after 5 seconds # features/steps/cascading_replication.py:23 1274s May 17 19:38:17 When I start postgres2 # features/steps/basic_replication.py:8 1277s May 17 19:38:20 And I shut down postgres1 # features/steps/basic_replication.py:29 1280s May 17 19:38:23 Then "sync" key in DCS has sync_standby=postgres2 after 10 seconds # features/steps/cascading_replication.py:23 1281s May 17 19:38:24 When I start postgres1 # features/steps/basic_replication.py:8 1284s May 17 19:38:27 Then "members/postgres1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1284s May 17 19:38:27 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:142 1284s May 17 19:38:27 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:142 1284s May 17 19:38:28 1284s May 17 19:38:28 Scenario: check stuck sync replica # features/basic_replication.feature:28 1284s May 17 19:38:28 Given I issue a PATCH request to http://127.0.0.1:8008/config with {"pause": true, "maximum_lag_on_syncnode": 15000000, "postgresql": {"parameters": {"synchronous_commit": "remote_apply"}}} # features/steps/patroni_api.py:71 1285s May 17 19:38:28 Then I receive a response code 200 # features/steps/patroni_api.py:98 1285s May 17 19:38:28 And I create table on postgres0 # features/steps/basic_replication.py:73 1285s May 17 19:38:28 And table mytest is present on postgres1 after 2 seconds # features/steps/basic_replication.py:93 1286s May 17 19:38:29 And table mytest is present on postgres2 after 2 seconds # features/steps/basic_replication.py:93 1286s May 17 19:38:29 When I pause wal replay on postgres2 # features/steps/basic_replication.py:64 1286s May 17 19:38:29 And I load data on postgres0 # features/steps/basic_replication.py:84 1286s May 17 19:38:29 Then "sync" key in DCS has sync_standby=postgres1 after 15 seconds # features/steps/cascading_replication.py:23 1289s May 17 19:38:32 And I resume wal replay on postgres2 # features/steps/basic_replication.py:64 1289s May 17 19:38:32 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:142 1290s May 17 19:38:33 And Status code on GET http://127.0.0.1:8010/async is 200 after 3 seconds # features/steps/patroni_api.py:142 1290s May 17 19:38:33 When I issue a PATCH request to http://127.0.0.1:8008/config with {"pause": null, "maximum_lag_on_syncnode": -1, "postgresql": {"parameters": {"synchronous_commit": "on"}}} # features/steps/patroni_api.py:71 1290s May 17 19:38:33 Then I receive a response code 200 # features/steps/patroni_api.py:98 1290s May 17 19:38:33 And I drop table on postgres0 # features/steps/basic_replication.py:73 1290s May 17 19:38:33 1290s May 17 19:38:33 Scenario: check multi sync replication # features/basic_replication.feature:44 1290s May 17 19:38:33 Given I issue a PATCH request to http://127.0.0.1:8008/config with {"synchronous_node_count": 2} # features/steps/patroni_api.py:71 1290s May 17 19:38:33 Then I receive a response code 200 # features/steps/patroni_api.py:98 1290s May 17 19:38:33 Then "sync" key in DCS has sync_standby=postgres1,postgres2 after 10 seconds # features/steps/cascading_replication.py:23 1294s May 17 19:38:37 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:142 1294s May 17 19:38:37 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:142 1294s May 17 19:38:37 When I issue a PATCH request to http://127.0.0.1:8008/config with {"synchronous_node_count": 1} # features/steps/patroni_api.py:71 1294s May 17 19:38:37 Then I receive a response code 200 # features/steps/patroni_api.py:98 1294s May 17 19:38:37 And I shut down postgres1 # features/steps/basic_replication.py:29 1297s May 17 19:38:40 Then "sync" key in DCS has sync_standby=postgres2 after 10 seconds # features/steps/cascading_replication.py:23 1298s May 17 19:38:41 When I start postgres1 # features/steps/basic_replication.py:8 1302s May 17 19:38:45 Then "members/postgres1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1302s May 17 19:38:45 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:142 1302s May 17 19:38:45 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:142 1302s May 17 19:38:45 1302s May 17 19:38:45 Scenario: check the basic failover in synchronous mode # features/basic_replication.feature:59 1302s May 17 19:38:45 Given I run patronictl.py pause batman # features/steps/patroni_api.py:86 1303s May 17 19:38:46 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 1303s May 17 19:38:46 When I sleep for 2 seconds # features/steps/patroni_api.py:39 1305s May 17 19:38:48 And I shut down postgres0 # features/steps/basic_replication.py:29 1306s May 17 19:38:49 And I run patronictl.py resume batman # features/steps/patroni_api.py:86 1308s May 17 19:38:51 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 1308s May 17 19:38:51 And postgres2 role is the primary after 24 seconds # features/steps/basic_replication.py:105 1327s May 17 19:39:10 And Response on GET http://127.0.0.1:8010/history contains recovery after 10 seconds # features/steps/patroni_api.py:156 1329s May 17 19:39:12 And there is a postgres2_cb.log with "on_role_change master batman" in postgres2 data directory # features/steps/cascading_replication.py:12 1329s May 17 19:39:12 When I issue a PATCH request to http://127.0.0.1:8010/config with {"synchronous_mode": null, "master_start_timeout": 0} # features/steps/patroni_api.py:71 1329s May 17 19:39:12 Then I receive a response code 200 # features/steps/patroni_api.py:98 1329s May 17 19:39:12 When I add the table bar to postgres2 # features/steps/basic_replication.py:54 1329s May 17 19:39:12 Then table bar is present on postgres1 after 20 seconds # features/steps/basic_replication.py:93 1332s May 17 19:39:15 And Response on GET http://127.0.0.1:8010/config contains master_start_timeout after 10 seconds # features/steps/patroni_api.py:156 1332s May 17 19:39:15 1332s May 17 19:39:15 Scenario: check rejoin of the former primary with pg_rewind # features/basic_replication.feature:75 1332s May 17 19:39:15 Given I add the table splitbrain to postgres0 # features/steps/basic_replication.py:54 1332s May 17 19:39:15 And I start postgres0 # features/steps/basic_replication.py:8 1332s May 17 19:39:15 Then postgres0 role is the secondary after 20 seconds # features/steps/basic_replication.py:105 1339s May 17 19:39:22 When I add the table buz to postgres2 # features/steps/basic_replication.py:54 1339s May 17 19:39:22 Then table buz is present on postgres0 after 20 seconds # features/steps/basic_replication.py:93 1339s May 17 19:39:22 1339s May 17 19:39:22 @reject-duplicate-name 1339s May 17 19:39:22 Scenario: check graceful rejection when two nodes have the same name # features/basic_replication.feature:83 1339s May 17 19:39:22 Given I start duplicate postgres0 on port 8011 # features/steps/basic_replication.py:13 1341s May 17 19:39:24 Then there is one of ["Can't start; there is already a node named 'postgres0' running"] CRITICAL in the dup-postgres0 patroni log after 5 seconds # features/steps/basic_replication.py:121 1345s May 17 19:39:28 1345s May 17 19:39:28 Feature: cascading replication # features/cascading_replication.feature:1 1345s May 17 19:39:28 We should check that patroni can do base backup and streaming from the replica 1345s May 17 19:39:28 Scenario: check a base backup and streaming replication from a replica # features/cascading_replication.feature:4 1345s May 17 19:39:28 Given I start postgres0 # features/steps/basic_replication.py:8 1348s May 17 19:39:31 And postgres0 is a leader after 10 seconds # features/steps/patroni_api.py:29 1349s May 17 19:39:32 And I configure and start postgres1 with a tag clonefrom true # features/steps/cascading_replication.py:7 1352s May 17 19:39:35 And replication works from postgres0 to postgres1 after 20 seconds # features/steps/basic_replication.py:112 1354s May 17 19:39:37 And I create label with "postgres0" in postgres0 data directory # features/steps/cascading_replication.py:18 1354s May 17 19:39:37 And I create label with "postgres1" in postgres1 data directory # features/steps/cascading_replication.py:18 1354s May 17 19:39:37 And "members/postgres1" key in DCS has state=running after 12 seconds # features/steps/cascading_replication.py:23 1354s May 17 19:39:37 And I configure and start postgres2 with a tag replicatefrom postgres1 # features/steps/cascading_replication.py:7 1357s May 17 19:39:40 Then replication works from postgres0 to postgres2 after 30 seconds # features/steps/basic_replication.py:112 1358s May 17 19:39:41 And there is a label with "postgres1" in postgres2 data directory # features/steps/cascading_replication.py:12 1363s May 17 19:39:46 1363s SKIP FEATURE citus: Citus extenstion isn't available 1363s May 17 19:39:46 Feature: citus # features/citus.feature:1 1363s May 17 19:39:46 We should check that coordinator discovers and registers workers and clients don't have errors when worker cluster switches over 1363s May 17 19:39:46 Scenario: check that worker cluster is registered in the coordinator # features/citus.feature:4 1363s May 17 19:39:46 Given I start postgres0 in citus group 0 # None 1363s May 17 19:39:46 And I start postgres2 in citus group 1 # None 1363s May 17 19:39:46 Then postgres0 is a leader in a group 0 after 10 seconds # None 1363s May 17 19:39:46 And postgres2 is a leader in a group 1 after 10 seconds # None 1363s May 17 19:39:46 When I start postgres1 in citus group 0 # None 1363s May 17 19:39:46 And I start postgres3 in citus group 1 # None 1363s May 17 19:39:46 Then replication works from postgres0 to postgres1 after 15 seconds # None 1363s May 17 19:39:46 Then replication works from postgres2 to postgres3 after 15 seconds # None 1363s May 17 19:39:46 And postgres0 is registered in the postgres0 as the primary in group 0 after 5 seconds # None 1363s May 17 19:39:46 And postgres2 is registered in the postgres0 as the primary in group 1 after 5 seconds # None 1363s SKIP Scenario check that worker cluster is registered in the coordinator: Citus extenstion isn't available 1363s SKIP Scenario coordinator failover updates pg_dist_node: Citus extenstion isn't available 1363s SKIP Scenario worker switchover doesn't break client queries on the coordinator: Citus extenstion isn't available 1363s SKIP Scenario worker primary restart doesn't break client queries on the coordinator: Citus extenstion isn't available 1363s SKIP Scenario check that in-flight transaction is rolled back after timeout when other workers need to change pg_dist_node: Citus extenstion isn't available 1363s May 17 19:39:46 1363s May 17 19:39:46 Scenario: coordinator failover updates pg_dist_node # features/citus.feature:16 1363s May 17 19:39:46 Given I run patronictl.py failover batman --group 0 --candidate postgres1 --force # None 1363s May 17 19:39:46 Then postgres1 role is the primary after 10 seconds # None 1363s May 17 19:39:46 And "members/postgres0" key in a group 0 in DCS has state=running after 15 seconds # None 1363s May 17 19:39:46 And replication works from postgres1 to postgres0 after 15 seconds # None 1363s May 17 19:39:46 And postgres1 is registered in the postgres2 as the primary in group 0 after 5 seconds # None 1363s May 17 19:39:46 And "sync" key in a group 0 in DCS has sync_standby=postgres0 after 15 seconds # None 1363s May 17 19:39:46 When I run patronictl.py switchover batman --group 0 --candidate postgres0 --force # None 1363s May 17 19:39:46 Then postgres0 role is the primary after 10 seconds # None 1363s May 17 19:39:46 And replication works from postgres0 to postgres1 after 15 seconds # None 1363s May 17 19:39:46 And postgres0 is registered in the postgres2 as the primary in group 0 after 5 seconds # None 1363s May 17 19:39:46 And "sync" key in a group 0 in DCS has sync_standby=postgres1 after 15 seconds # None 1363s May 17 19:39:46 1363s May 17 19:39:46 Scenario: worker switchover doesn't break client queries on the coordinator # features/citus.feature:29 1363s May 17 19:39:46 Given I create a distributed table on postgres0 # None 1363s May 17 19:39:46 And I start a thread inserting data on postgres0 # None 1363s May 17 19:39:46 When I run patronictl.py switchover batman --group 1 --force # None 1363s May 17 19:39:46 Then I receive a response returncode 0 # None 1363s May 17 19:39:46 And postgres3 role is the primary after 10 seconds # None 1363s May 17 19:39:46 And "members/postgres2" key in a group 1 in DCS has state=running after 15 seconds # None 1363s May 17 19:39:46 And replication works from postgres3 to postgres2 after 15 seconds # None 1363s May 17 19:39:46 And postgres3 is registered in the postgres0 as the primary in group 1 after 5 seconds # None 1363s May 17 19:39:46 And "sync" key in a group 1 in DCS has sync_standby=postgres2 after 15 seconds # None 1363s May 17 19:39:46 And a thread is still alive # None 1363s May 17 19:39:46 When I run patronictl.py switchover batman --group 1 --force # None 1363s May 17 19:39:46 Then I receive a response returncode 0 # None 1363s May 17 19:39:46 And postgres2 role is the primary after 10 seconds # None 1363s May 17 19:39:46 And replication works from postgres2 to postgres3 after 15 seconds # None 1363s May 17 19:39:46 And postgres2 is registered in the postgres0 as the primary in group 1 after 5 seconds # None 1363s May 17 19:39:46 And "sync" key in a group 1 in DCS has sync_standby=postgres3 after 15 seconds # None 1363s May 17 19:39:46 And a thread is still alive # None 1363s May 17 19:39:46 When I stop a thread # None 1363s May 17 19:39:46 Then a distributed table on postgres0 has expected rows # None 1363s May 17 19:39:46 1363s May 17 19:39:46 Scenario: worker primary restart doesn't break client queries on the coordinator # features/citus.feature:50 1363s May 17 19:39:46 Given I cleanup a distributed table on postgres0 # None 1363s May 17 19:39:46 And I start a thread inserting data on postgres0 # None 1363s May 17 19:39:46 When I run patronictl.py restart batman postgres2 --group 1 --force # None 1363s May 17 19:39:46 Then I receive a response returncode 0 # None 1363s May 17 19:39:46 And postgres2 role is the primary after 10 seconds # None 1363s May 17 19:39:46 And replication works from postgres2 to postgres3 after 15 seconds # None 1363s May 17 19:39:46 And postgres2 is registered in the postgres0 as the primary in group 1 after 5 seconds # None 1363s May 17 19:39:46 And a thread is still alive # None 1363s May 17 19:39:46 When I stop a thread # None 1363s May 17 19:39:46 Then a distributed table on postgres0 has expected rows # None 1363s May 17 19:39:46 1363s May 17 19:39:46 Scenario: check that in-flight transaction is rolled back after timeout when other workers need to change pg_dist_node # features/citus.feature:62 1363s May 17 19:39:46 Given I start postgres4 in citus group 2 # None 1363s May 17 19:39:46 Then postgres4 is a leader in a group 2 after 10 seconds # None 1363s May 17 19:39:46 And "members/postgres4" key in a group 2 in DCS has role=master after 3 seconds # None 1363s May 17 19:39:46 When I run patronictl.py edit-config batman --group 2 -s ttl=20 --force # None 1363s May 17 19:39:46 Then I receive a response returncode 0 # None 1363s May 17 19:39:46 And I receive a response output "+ttl: 20" # None 1363s May 17 19:39:46 Then postgres4 is registered in the postgres2 as the primary in group 2 after 5 seconds # None 1363s May 17 19:39:46 When I shut down postgres4 # None 1363s May 17 19:39:46 Then there is a transaction in progress on postgres0 changing pg_dist_node after 5 seconds # None 1363s May 17 19:39:46 When I run patronictl.py restart batman postgres2 --group 1 --force # None 1363s May 17 19:39:46 Then a transaction finishes in 20 seconds # None 1363s May 17 19:39:46 1363s May 17 19:39:46 Feature: custom bootstrap # features/custom_bootstrap.feature:1 1363s May 17 19:39:46 We should check that patroni can bootstrap a new cluster from a backup 1363s May 17 19:39:46 Scenario: clone existing cluster using pg_basebackup # features/custom_bootstrap.feature:4 1363s May 17 19:39:46 Given I start postgres0 # features/steps/basic_replication.py:8 1366s May 17 19:39:49 Then postgres0 is a leader after 10 seconds # features/steps/patroni_api.py:29 1367s May 17 19:39:50 When I add the table foo to postgres0 # features/steps/basic_replication.py:54 1367s May 17 19:39:50 And I start postgres1 in a cluster batman1 as a clone of postgres0 # features/steps/custom_bootstrap.py:6 1371s May 17 19:39:54 Then postgres1 is a leader of batman1 after 10 seconds # features/steps/custom_bootstrap.py:16 1372s May 17 19:39:55 Then table foo is present on postgres1 after 10 seconds # features/steps/basic_replication.py:93 1372s May 17 19:39:55 1372s May 17 19:39:55 Scenario: make a backup and do a restore into a new cluster # features/custom_bootstrap.feature:12 1372s May 17 19:39:55 Given I add the table bar to postgres1 # features/steps/basic_replication.py:54 1372s May 17 19:39:55 And I do a backup of postgres1 # features/steps/custom_bootstrap.py:25 1372s May 17 19:39:55 When I start postgres2 in a cluster batman2 from backup # features/steps/custom_bootstrap.py:11 1376s May 17 19:39:59 Then postgres2 is a leader of batman2 after 30 seconds # features/steps/custom_bootstrap.py:16 1376s May 17 19:39:59 And table bar is present on postgres2 after 10 seconds # features/steps/basic_replication.py:93 1383s May 17 19:40:06 1383s May 17 19:40:06 Feature: dcs failsafe mode # features/dcs_failsafe_mode.feature:1 1383s May 17 19:40:06 We should check the basic dcs failsafe mode functioning 1383s May 17 19:40:06 Scenario: check failsafe mode can be successfully enabled # features/dcs_failsafe_mode.feature:4 1383s May 17 19:40:06 Given I start postgres0 # features/steps/basic_replication.py:8 1386s May 17 19:40:09 And postgres0 is a leader after 10 seconds # features/steps/patroni_api.py:29 1386s May 17 19:40:09 Then "config" key in DCS has ttl=30 after 10 seconds # features/steps/cascading_replication.py:23 1386s May 17 19:40:09 When I issue a PATCH request to http://127.0.0.1:8008/config with {"loop_wait": 2, "ttl": 20, "retry_timeout": 3, "failsafe_mode": true} # features/steps/patroni_api.py:71 1386s May 17 19:40:09 Then I receive a response code 200 # features/steps/patroni_api.py:98 1386s May 17 19:40:09 And Response on GET http://127.0.0.1:8008/failsafe contains postgres0 after 10 seconds # features/steps/patroni_api.py:156 1386s May 17 19:40:09 When I issue a GET request to http://127.0.0.1:8008/failsafe # features/steps/patroni_api.py:61 1386s May 17 19:40:09 Then I receive a response code 200 # features/steps/patroni_api.py:98 1386s May 17 19:40:09 And I receive a response postgres0 http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:98 1386s May 17 19:40:09 When I issue a PATCH request to http://127.0.0.1:8008/config with {"postgresql": {"parameters": {"wal_level": "logical"}},"slots":{"dcs_slot_1": null,"postgres0":null}} # features/steps/patroni_api.py:71 1386s May 17 19:40:09 Then I receive a response code 200 # features/steps/patroni_api.py:98 1386s May 17 19:40:09 When I issue a PATCH request to http://127.0.0.1:8008/config with {"slots": {"dcs_slot_0": {"type": "logical", "database": "postgres", "plugin": "test_decoding"}}} # features/steps/patroni_api.py:71 1386s May 17 19:40:09 Then I receive a response code 200 # features/steps/patroni_api.py:98 1386s May 17 19:40:09 1386s May 17 19:40:09 @dcs-failsafe 1386s May 17 19:40:09 Scenario: check one-node cluster is functioning while DCS is down # features/dcs_failsafe_mode.feature:20 1386s May 17 19:40:09 Given DCS is down # features/steps/dcs_failsafe_mode.py:4 1386s May 17 19:40:09 Then Response on GET http://127.0.0.1:8008/primary contains failsafe_mode_is_active after 12 seconds # features/steps/patroni_api.py:156 1392s May 17 19:40:15 And postgres0 role is the primary after 10 seconds # features/steps/basic_replication.py:105 1392s May 17 19:40:15 1392s May 17 19:40:15 @dcs-failsafe 1392s May 17 19:40:15 Scenario: check new replica isn't promoted when leader is down and DCS is up # features/dcs_failsafe_mode.feature:26 1392s May 17 19:40:15 Given DCS is up # features/steps/dcs_failsafe_mode.py:9 1392s May 17 19:40:15 When I do a backup of postgres0 # features/steps/custom_bootstrap.py:25 1393s May 17 19:40:16 And I shut down postgres0 # features/steps/basic_replication.py:29 1395s May 17 19:40:18 When I start postgres1 in a cluster batman from backup with no_leader # features/steps/dcs_failsafe_mode.py:14 1398s May 17 19:40:21 Then postgres1 role is the replica after 12 seconds # features/steps/basic_replication.py:105 1398s May 17 19:40:21 1398s May 17 19:40:21 Scenario: check leader and replica are both in /failsafe key after leader is back # features/dcs_failsafe_mode.feature:33 1398s May 17 19:40:21 Given I start postgres0 # features/steps/basic_replication.py:8 1401s May 17 19:40:24 And I start postgres1 # features/steps/basic_replication.py:8 1401s May 17 19:40:24 Then "members/postgres0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1401s May 17 19:40:24 And "members/postgres1" key in DCS has state=running after 2 seconds # features/steps/cascading_replication.py:23 1401s May 17 19:40:24 And Response on GET http://127.0.0.1:8009/failsafe contains postgres1 after 10 seconds # features/steps/patroni_api.py:156 1402s May 17 19:40:25 When I issue a GET request to http://127.0.0.1:8009/failsafe # features/steps/patroni_api.py:61 1402s May 17 19:40:25 Then I receive a response code 200 # features/steps/patroni_api.py:98 1402s May 17 19:40:25 And I receive a response postgres0 http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:98 1402s May 17 19:40:25 And I receive a response postgres1 http://127.0.0.1:8009/patroni # features/steps/patroni_api.py:98 1402s May 17 19:40:25 1402s May 17 19:40:25 @dcs-failsafe @slot-advance 1402s May 17 19:40:25 Scenario: check leader and replica are functioning while DCS is down # features/dcs_failsafe_mode.feature:46 1402s May 17 19:40:25 Given I get all changes from physical slot dcs_slot_1 on postgres0 # features/steps/slots.py:75 1402s May 17 19:40:25 Then physical slot dcs_slot_1 is in sync between postgres0 and postgres1 after 10 seconds # features/steps/slots.py:51 1404s May 17 19:40:27 And logical slot dcs_slot_0 is in sync between postgres0 and postgres1 after 10 seconds # features/steps/slots.py:51 1407s May 17 19:40:30 And DCS is down # features/steps/dcs_failsafe_mode.py:4 1407s May 17 19:40:30 Then Response on GET http://127.0.0.1:8008/primary contains failsafe_mode_is_active after 12 seconds # features/steps/patroni_api.py:156 1413s May 17 19:40:36 Then postgres0 role is the primary after 10 seconds # features/steps/basic_replication.py:105 1413s May 17 19:40:36 And postgres1 role is the replica after 2 seconds # features/steps/basic_replication.py:105 1413s May 17 19:40:36 And replication works from postgres0 to postgres1 after 10 seconds # features/steps/basic_replication.py:112 1413s May 17 19:40:36 When I get all changes from logical slot dcs_slot_0 on postgres0 # features/steps/slots.py:70 1413s May 17 19:40:36 And I get all changes from physical slot dcs_slot_1 on postgres0 # features/steps/slots.py:75 1413s May 17 19:40:36 Then logical slot dcs_slot_0 is in sync between postgres0 and postgres1 after 20 seconds # features/steps/slots.py:51 1417s May 17 19:40:40 And physical slot dcs_slot_1 is in sync between postgres0 and postgres1 after 10 seconds # features/steps/slots.py:51 1417s May 17 19:40:40 1417s May 17 19:40:40 @dcs-failsafe 1417s May 17 19:40:40 Scenario: check primary is demoted when one replica is shut down and DCS is down # features/dcs_failsafe_mode.feature:61 1417s May 17 19:40:40 Given DCS is down # features/steps/dcs_failsafe_mode.py:4 1417s May 17 19:40:40 And I kill postgres1 # features/steps/basic_replication.py:34 1418s May 17 19:40:41 And I kill postmaster on postgres1 # features/steps/basic_replication.py:44 1418s May 17 19:40:41 waiting for server to shut down.... done 1418s May 17 19:40:41 server stopped 1418s May 17 19:40:41 Then postgres0 role is the replica after 12 seconds # features/steps/basic_replication.py:105 1420s May 17 19:40:43 1420s May 17 19:40:43 @dcs-failsafe 1420s May 17 19:40:43 Scenario: check known replica is promoted when leader is down and DCS is up # features/dcs_failsafe_mode.feature:68 1420s May 17 19:40:43 Given I kill postgres0 # features/steps/basic_replication.py:34 1421s May 17 19:40:44 And I shut down postmaster on postgres0 # features/steps/basic_replication.py:39 1422s May 17 19:40:45 waiting for server to shut down.... done 1422s May 17 19:40:45 server stopped 1422s May 17 19:40:45 And DCS is up # features/steps/dcs_failsafe_mode.py:9 1422s May 17 19:40:45 When I start postgres1 # features/steps/basic_replication.py:8 1425s May 17 19:40:48 Then "members/postgres1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1425s May 17 19:40:48 And postgres1 role is the primary after 25 seconds # features/steps/basic_replication.py:105 1427s May 17 19:40:50 1427s May 17 19:40:50 @dcs-failsafe 1427s May 17 19:40:50 Scenario: scale to three-node cluster # features/dcs_failsafe_mode.feature:77 1427s May 17 19:40:50 Given I start postgres0 # features/steps/basic_replication.py:8 1430s May 17 19:40:53 And I start postgres2 # features/steps/basic_replication.py:8 1433s May 17 19:40:56 Then "members/postgres2" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1434s May 17 19:40:57 And "members/postgres0" key in DCS has state=running after 20 seconds # features/steps/cascading_replication.py:23 1434s May 17 19:40:57 And Response on GET http://127.0.0.1:8008/failsafe contains postgres2 after 10 seconds # features/steps/patroni_api.py:156 1434s May 17 19:40:57 And replication works from postgres1 to postgres0 after 10 seconds # features/steps/basic_replication.py:112 1435s May 17 19:40:58 And replication works from postgres1 to postgres2 after 10 seconds # features/steps/basic_replication.py:112 1436s May 17 19:40:59 1436s May 17 19:40:59 @dcs-failsafe @slot-advance 1436s May 17 19:40:59 Scenario: make sure permanent slots exist on replicas # features/dcs_failsafe_mode.feature:88 1436s May 17 19:40:59 Given I issue a PATCH request to http://127.0.0.1:8009/config with {"slots":{"dcs_slot_0":null,"dcs_slot_2":{"type":"logical","database":"postgres","plugin":"test_decoding"}}} # features/steps/patroni_api.py:71 1436s May 17 19:40:59 Then logical slot dcs_slot_2 is in sync between postgres1 and postgres0 after 20 seconds # features/steps/slots.py:51 1442s May 17 19:41:05 And logical slot dcs_slot_2 is in sync between postgres1 and postgres2 after 20 seconds # features/steps/slots.py:51 1443s May 17 19:41:06 When I get all changes from physical slot dcs_slot_1 on postgres1 # features/steps/slots.py:75 1443s May 17 19:41:06 Then physical slot dcs_slot_1 is in sync between postgres1 and postgres0 after 10 seconds # features/steps/slots.py:51 1444s May 17 19:41:07 And physical slot dcs_slot_1 is in sync between postgres1 and postgres2 after 10 seconds # features/steps/slots.py:51 1444s May 17 19:41:07 And physical slot postgres0 is in sync between postgres1 and postgres2 after 10 seconds # features/steps/slots.py:51 1444s May 17 19:41:07 1444s May 17 19:41:07 @dcs-failsafe 1444s May 17 19:41:07 Scenario: check three-node cluster is functioning while DCS is down # features/dcs_failsafe_mode.feature:98 1444s May 17 19:41:07 Given DCS is down # features/steps/dcs_failsafe_mode.py:4 1444s May 17 19:41:07 Then Response on GET http://127.0.0.1:8009/primary contains failsafe_mode_is_active after 12 seconds # features/steps/patroni_api.py:156 1451s May 17 19:41:14 Then postgres1 role is the primary after 10 seconds # features/steps/basic_replication.py:105 1451s May 17 19:41:14 And postgres0 role is the replica after 2 seconds # features/steps/basic_replication.py:105 1451s May 17 19:41:14 And postgres2 role is the replica after 2 seconds # features/steps/basic_replication.py:105 1451s May 17 19:41:14 1451s May 17 19:41:14 @dcs-failsafe @slot-advance 1451s May 17 19:41:14 Scenario: check that permanent slots are in sync between nodes while DCS is down # features/dcs_failsafe_mode.feature:107 1451s May 17 19:41:14 Given replication works from postgres1 to postgres0 after 10 seconds # features/steps/basic_replication.py:112 1451s May 17 19:41:14 And replication works from postgres1 to postgres2 after 10 seconds # features/steps/basic_replication.py:112 1453s May 17 19:41:16 When I get all changes from logical slot dcs_slot_2 on postgres1 # features/steps/slots.py:70 1453s May 17 19:41:16 And I get all changes from physical slot dcs_slot_1 on postgres1 # features/steps/slots.py:75 1453s May 17 19:41:16 Then logical slot dcs_slot_2 is in sync between postgres1 and postgres0 after 20 seconds # features/steps/slots.py:51 1454s May 17 19:41:17 And logical slot dcs_slot_2 is in sync between postgres1 and postgres2 after 20 seconds # features/steps/slots.py:51 1454s May 17 19:41:17 And physical slot dcs_slot_1 is in sync between postgres1 and postgres0 after 10 seconds # features/steps/slots.py:51 1454s May 17 19:41:17 And physical slot dcs_slot_1 is in sync between postgres1 and postgres2 after 10 seconds # features/steps/slots.py:51 1454s May 17 19:41:17 And physical slot postgres0 is in sync between postgres1 and postgres2 after 10 seconds # features/steps/slots.py:51 1458s May 17 19:41:21 1458s May 17 19:41:21 Feature: ignored slots # features/ignored_slots.feature:1 1458s May 17 19:41:21 1458s May 17 19:41:21 Scenario: check ignored slots aren't removed on failover/switchover # features/ignored_slots.feature:2 1458s May 17 19:41:21 Given I start postgres1 # features/steps/basic_replication.py:8 1461s May 17 19:41:24 Then postgres1 is a leader after 10 seconds # features/steps/patroni_api.py:29 1461s May 17 19:41:24 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 1461s May 17 19:41:24 When I issue a PATCH request to http://127.0.0.1:8009/config with {"ignore_slots": [{"name": "unmanaged_slot_0", "database": "postgres", "plugin": "test_decoding", "type": "logical"}, {"name": "unmanaged_slot_1", "database": "postgres", "plugin": "test_decoding"}, {"name": "unmanaged_slot_2", "database": "postgres"}, {"name": "unmanaged_slot_3"}], "postgresql": {"parameters": {"wal_level": "logical"}}} # features/steps/patroni_api.py:71 1461s May 17 19:41:24 Then I receive a response code 200 # features/steps/patroni_api.py:98 1461s May 17 19:41:24 And Response on GET http://127.0.0.1:8009/config contains ignore_slots after 10 seconds # features/steps/patroni_api.py:156 1461s May 17 19:41:24 When I shut down postgres1 # features/steps/basic_replication.py:29 1463s May 17 19:41:26 And I start postgres1 # features/steps/basic_replication.py:8 1465s May 17 19:41:28 Then postgres1 is a leader after 10 seconds # features/steps/patroni_api.py:29 1466s May 17 19:41:29 And "members/postgres1" key in DCS has role=master after 10 seconds # features/steps/cascading_replication.py:23 1467s May 17 19:41:30 And postgres1 role is the primary after 20 seconds # features/steps/basic_replication.py:105 1467s May 17 19:41:30 When I create a logical replication slot unmanaged_slot_0 on postgres1 with the test_decoding plugin # features/steps/slots.py:8 1467s May 17 19:41:30 And I create a logical replication slot unmanaged_slot_1 on postgres1 with the test_decoding plugin # features/steps/slots.py:8 1467s May 17 19:41:30 And I create a logical replication slot unmanaged_slot_2 on postgres1 with the test_decoding plugin # features/steps/slots.py:8 1467s May 17 19:41:30 And I create a logical replication slot unmanaged_slot_3 on postgres1 with the test_decoding plugin # features/steps/slots.py:8 1467s May 17 19:41:30 And I create a logical replication slot dummy_slot on postgres1 with the test_decoding plugin # features/steps/slots.py:8 1467s May 17 19:41:30 Then postgres1 has a logical replication slot named unmanaged_slot_0 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 1467s May 17 19:41:30 And postgres1 has a logical replication slot named unmanaged_slot_1 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 1467s May 17 19:41:30 And postgres1 has a logical replication slot named unmanaged_slot_2 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 1467s May 17 19:41:30 And postgres1 has a logical replication slot named unmanaged_slot_3 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 1467s May 17 19:41:30 When I start postgres0 # features/steps/basic_replication.py:8 1470s May 17 19:41:33 Then "members/postgres0" key in DCS has role=replica after 10 seconds # features/steps/cascading_replication.py:23 1471s May 17 19:41:34 And postgres0 role is the secondary after 20 seconds # features/steps/basic_replication.py:105 1471s May 17 19:41:34 And replication works from postgres1 to postgres0 after 20 seconds # features/steps/basic_replication.py:112 1472s May 17 19:41:35 When I shut down postgres1 # features/steps/basic_replication.py:29 1474s May 17 19:41:37 Then "members/postgres0" key in DCS has role=master after 10 seconds # features/steps/cascading_replication.py:23 1475s May 17 19:41:38 When I start postgres1 # features/steps/basic_replication.py:8 1478s May 17 19:41:41 Then postgres1 role is the secondary after 20 seconds # features/steps/basic_replication.py:105 1478s May 17 19:41:41 And "members/postgres1" key in DCS has role=replica after 10 seconds # features/steps/cascading_replication.py:23 1478s May 17 19:41:41 And I sleep for 2 seconds # features/steps/patroni_api.py:39 1480s May 17 19:41:43 And postgres1 has a logical replication slot named unmanaged_slot_0 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 1480s May 17 19:41:43 And postgres1 has a logical replication slot named unmanaged_slot_1 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 1480s May 17 19:41:43 And postgres1 has a logical replication slot named unmanaged_slot_2 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 1480s May 17 19:41:43 And postgres1 has a logical replication slot named unmanaged_slot_3 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 1480s May 17 19:41:43 And postgres1 does not have a replication slot named dummy_slot # features/steps/slots.py:40 1480s May 17 19:41:43 When I shut down postgres0 # features/steps/basic_replication.py:29 1482s May 17 19:41:45 Then "members/postgres1" key in DCS has role=master after 10 seconds # features/steps/cascading_replication.py:23 1483s May 17 19:41:46 And postgres1 has a logical replication slot named unmanaged_slot_0 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 1483s May 17 19:41:46 And postgres1 has a logical replication slot named unmanaged_slot_1 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 1483s May 17 19:41:46 And postgres1 has a logical replication slot named unmanaged_slot_2 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 1483s May 17 19:41:46 And postgres1 has a logical replication slot named unmanaged_slot_3 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 1485s May 17 19:41:48 1485s May 17 19:41:48 Feature: nostream node # features/nostream_node.feature:1 1485s May 17 19:41:48 1485s May 17 19:41:48 Scenario: check nostream node is recovering from archive # features/nostream_node.feature:3 1485s May 17 19:41:48 When I start postgres0 # features/steps/basic_replication.py:8 1488s May 17 19:41:51 And I configure and start postgres1 with a tag nostream true # features/steps/cascading_replication.py:7 1492s May 17 19:41:55 Then "members/postgres1" key in DCS has replication_state=in archive recovery after 10 seconds # features/steps/cascading_replication.py:23 1493s May 17 19:41:56 And replication works from postgres0 to postgres1 after 30 seconds # features/steps/basic_replication.py:112 1497s May 17 19:42:00 1497s May 17 19:42:00 @slot-advance 1497s May 17 19:42:00 Scenario: check permanent logical replication slots are not copied # features/nostream_node.feature:10 1497s May 17 19:42:00 When I issue a PATCH request to http://127.0.0.1:8008/config with {"postgresql": {"parameters": {"wal_level": "logical"}}, "slots":{"test_logical":{"type":"logical","database":"postgres","plugin":"test_decoding"}}} # features/steps/patroni_api.py:71 1497s May 17 19:42:00 Then I receive a response code 200 # features/steps/patroni_api.py:98 1497s May 17 19:42:00 When I run patronictl.py restart batman postgres0 --force # features/steps/patroni_api.py:86 1500s May 17 19:42:03 Then postgres0 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:19 1501s May 17 19:42:04 When I configure and start postgres2 with a tag replicatefrom postgres1 # features/steps/cascading_replication.py:7 1504s May 17 19:42:07 Then "members/postgres2" key in DCS has replication_state=streaming after 10 seconds # features/steps/cascading_replication.py:23 1510s May 17 19:42:13 And postgres1 does not have a replication slot named test_logical # features/steps/slots.py:40 1510s May 17 19:42:13 And postgres2 does not have a replication slot named test_logical # features/steps/slots.py:40 1515s May 17 19:42:18 1515s May 17 19:42:18 Feature: patroni api # features/patroni_api.feature:1 1515s May 17 19:42:18 We should check that patroni correctly responds to valid and not-valid API requests. 1515s May 17 19:42:18 Scenario: check API requests on a stand-alone server # features/patroni_api.feature:4 1515s May 17 19:42:18 Given I start postgres0 # features/steps/basic_replication.py:8 1518s May 17 19:42:21 And postgres0 is a leader after 10 seconds # features/steps/patroni_api.py:29 1518s May 17 19:42:21 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:61 1518s May 17 19:42:21 Then I receive a response code 200 # features/steps/patroni_api.py:98 1518s May 17 19:42:21 And I receive a response state running # features/steps/patroni_api.py:98 1518s May 17 19:42:21 And I receive a response role master # features/steps/patroni_api.py:98 1518s May 17 19:42:21 When I issue a GET request to http://127.0.0.1:8008/standby_leader # features/steps/patroni_api.py:61 1518s May 17 19:42:21 Then I receive a response code 503 # features/steps/patroni_api.py:98 1518s May 17 19:42:21 When I issue a GET request to http://127.0.0.1:8008/health # features/steps/patroni_api.py:61 1518s May 17 19:42:21 Then I receive a response code 200 # features/steps/patroni_api.py:98 1518s May 17 19:42:21 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:61 1518s May 17 19:42:21 Then I receive a response code 503 # features/steps/patroni_api.py:98 1518s May 17 19:42:21 When I issue a POST request to http://127.0.0.1:8008/reinitialize with {"force": true} # features/steps/patroni_api.py:71 1518s May 17 19:42:21 Then I receive a response code 503 # features/steps/patroni_api.py:98 1518s May 17 19:42:21 And I receive a response text I am the leader, can not reinitialize # features/steps/patroni_api.py:98 1518s May 17 19:42:21 When I run patronictl.py switchover batman --master postgres0 --force # features/steps/patroni_api.py:86 1520s May 17 19:42:23 Then I receive a response returncode 1 # features/steps/patroni_api.py:98 1520s May 17 19:42:23 And I receive a response output "Error: No candidates found to switchover to" # features/steps/patroni_api.py:98 1520s May 17 19:42:23 When I issue a POST request to http://127.0.0.1:8008/switchover with {"leader": "postgres0"} # features/steps/patroni_api.py:71 1520s May 17 19:42:23 Then I receive a response code 412 # features/steps/patroni_api.py:98 1520s May 17 19:42:23 And I receive a response text switchover is not possible: cluster does not have members except leader # features/steps/patroni_api.py:98 1520s May 17 19:42:23 When I issue an empty POST request to http://127.0.0.1:8008/failover # features/steps/patroni_api.py:66 1520s May 17 19:42:23 Then I receive a response code 400 # features/steps/patroni_api.py:98 1520s May 17 19:42:23 When I issue a POST request to http://127.0.0.1:8008/failover with {"foo": "bar"} # features/steps/patroni_api.py:71 1520s May 17 19:42:23 Then I receive a response code 400 # features/steps/patroni_api.py:98 1520s May 17 19:42:23 And I receive a response text "Failover could be performed only to a specific candidate" # features/steps/patroni_api.py:98 1520s May 17 19:42:23 1520s May 17 19:42:23 Scenario: check local configuration reload # features/patroni_api.feature:32 1520s May 17 19:42:23 Given I add tag new_tag new_value to postgres0 config # features/steps/patroni_api.py:137 1520s May 17 19:42:23 And I issue an empty POST request to http://127.0.0.1:8008/reload # features/steps/patroni_api.py:66 1520s May 17 19:42:23 Then I receive a response code 202 # features/steps/patroni_api.py:98 1520s May 17 19:42:23 1520s May 17 19:42:23 Scenario: check dynamic configuration change via DCS # features/patroni_api.feature:37 1520s May 17 19:42:23 Given I issue a PATCH request to http://127.0.0.1:8008/config with {"ttl": 20, "postgresql": {"parameters": {"max_connections": "101"}}} # features/steps/patroni_api.py:71 1520s May 17 19:42:23 Then I receive a response code 200 # features/steps/patroni_api.py:98 1520s May 17 19:42:23 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 11 seconds # features/steps/patroni_api.py:156 1522s May 17 19:42:25 When I issue a GET request to http://127.0.0.1:8008/config # features/steps/patroni_api.py:61 1522s May 17 19:42:25 Then I receive a response code 200 # features/steps/patroni_api.py:98 1522s May 17 19:42:25 And I receive a response ttl 20 # features/steps/patroni_api.py:98 1522s May 17 19:42:25 When I issue a GET request to http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:61 1522s May 17 19:42:25 Then I receive a response code 200 # features/steps/patroni_api.py:98 1522s May 17 19:42:25 And I receive a response tags {'new_tag': 'new_value'} # features/steps/patroni_api.py:98 1522s May 17 19:42:25 And I sleep for 4 seconds # features/steps/patroni_api.py:39 1526s May 17 19:42:29 1526s May 17 19:42:29 Scenario: check the scheduled restart # features/patroni_api.feature:49 1526s May 17 19:42:29 Given I run patronictl.py edit-config -p 'superuser_reserved_connections=6' --force batman # features/steps/patroni_api.py:86 1528s May 17 19:42:31 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 1528s May 17 19:42:31 And I receive a response output "+ superuser_reserved_connections: 6" # features/steps/patroni_api.py:98 1528s May 17 19:42:31 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 5 seconds # features/steps/patroni_api.py:156 1528s May 17 19:42:31 Given I issue a scheduled restart at http://127.0.0.1:8008 in 5 seconds with {"role": "replica"} # features/steps/patroni_api.py:124 1528s May 17 19:42:31 Then I receive a response code 202 # features/steps/patroni_api.py:98 1528s May 17 19:42:31 And I sleep for 8 seconds # features/steps/patroni_api.py:39 1536s May 17 19:42:39 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 10 seconds # features/steps/patroni_api.py:156 1536s May 17 19:42:39 Given I issue a scheduled restart at http://127.0.0.1:8008 in 5 seconds with {"restart_pending": "True"} # features/steps/patroni_api.py:124 1536s May 17 19:42:39 Then I receive a response code 202 # features/steps/patroni_api.py:98 1536s May 17 19:42:39 And Response on GET http://127.0.0.1:8008/patroni does not contain pending_restart after 10 seconds # features/steps/patroni_api.py:171 1543s May 17 19:42:46 And postgres0 role is the primary after 10 seconds # features/steps/basic_replication.py:105 1544s May 17 19:42:47 1544s May 17 19:42:47 Scenario: check API requests for the primary-replica pair in the pause mode # features/patroni_api.feature:63 1544s May 17 19:42:47 Given I start postgres1 # features/steps/basic_replication.py:8 1547s May 17 19:42:50 Then replication works from postgres0 to postgres1 after 20 seconds # features/steps/basic_replication.py:112 1548s May 17 19:42:51 When I run patronictl.py pause batman # features/steps/patroni_api.py:86 1549s May 17 19:42:52 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 1549s May 17 19:42:52 When I kill postmaster on postgres1 # features/steps/basic_replication.py:44 1549s May 17 19:42:52 waiting for server to shut down.... done 1549s May 17 19:42:52 server stopped 1549s May 17 19:42:52 And I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:61 1549s May 17 19:42:52 Then I receive a response code 503 # features/steps/patroni_api.py:98 1549s May 17 19:42:52 And "members/postgres1" key in DCS has state=stopped after 10 seconds # features/steps/cascading_replication.py:23 1550s May 17 19:42:53 When I run patronictl.py restart batman postgres1 --force # features/steps/patroni_api.py:86 1553s May 17 19:42:56 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 1553s May 17 19:42:56 Then replication works from postgres0 to postgres1 after 20 seconds # features/steps/basic_replication.py:112 1554s May 17 19:42:57 And I sleep for 2 seconds # features/steps/patroni_api.py:39 1556s May 17 19:42:59 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:61 1556s May 17 19:42:59 Then I receive a response code 200 # features/steps/patroni_api.py:98 1556s May 17 19:42:59 And I receive a response state running # features/steps/patroni_api.py:98 1556s May 17 19:42:59 And I receive a response role replica # features/steps/patroni_api.py:98 1556s May 17 19:42:59 When I run patronictl.py reinit batman postgres1 --force --wait # features/steps/patroni_api.py:86 1560s May 17 19:43:03 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 1560s May 17 19:43:03 And I receive a response output "Success: reinitialize for member postgres1" # features/steps/patroni_api.py:98 1560s May 17 19:43:03 And postgres1 role is the secondary after 30 seconds # features/steps/basic_replication.py:105 1561s May 17 19:43:04 And replication works from postgres0 to postgres1 after 20 seconds # features/steps/basic_replication.py:112 1561s May 17 19:43:04 When I run patronictl.py restart batman postgres0 --force # features/steps/patroni_api.py:86 1563s May 17 19:43:06 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 1563s May 17 19:43:06 And I receive a response output "Success: restart on member postgres0" # features/steps/patroni_api.py:98 1563s May 17 19:43:06 And postgres0 role is the primary after 5 seconds # features/steps/basic_replication.py:105 1564s May 17 19:43:07 1564s May 17 19:43:07 Scenario: check the switchover via the API in the pause mode # features/patroni_api.feature:90 1564s May 17 19:43:07 Given I issue a POST request to http://127.0.0.1:8008/switchover with {"leader": "postgres0", "candidate": "postgres1"} # features/steps/patroni_api.py:71 1566s May 17 19:43:09 Then I receive a response code 200 # features/steps/patroni_api.py:98 1566s May 17 19:43:09 And postgres1 is a leader after 5 seconds # features/steps/patroni_api.py:29 1566s May 17 19:43:09 And postgres1 role is the primary after 10 seconds # features/steps/basic_replication.py:105 1567s May 17 19:43:10 And postgres0 role is the secondary after 10 seconds # features/steps/basic_replication.py:105 1571s May 17 19:43:14 And replication works from postgres1 to postgres0 after 20 seconds # features/steps/basic_replication.py:112 1571s May 17 19:43:14 And "members/postgres0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1572s May 17 19:43:15 When I issue a GET request to http://127.0.0.1:8008/primary # features/steps/patroni_api.py:61 1572s May 17 19:43:15 Then I receive a response code 503 # features/steps/patroni_api.py:98 1572s May 17 19:43:15 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:61 1572s May 17 19:43:15 Then I receive a response code 200 # features/steps/patroni_api.py:98 1572s May 17 19:43:15 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:61 1572s May 17 19:43:15 Then I receive a response code 200 # features/steps/patroni_api.py:98 1572s May 17 19:43:15 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:61 1572s May 17 19:43:15 Then I receive a response code 503 # features/steps/patroni_api.py:98 1572s May 17 19:43:15 1572s May 17 19:43:15 Scenario: check the scheduled switchover # features/patroni_api.feature:107 1572s May 17 19:43:15 Given I issue a scheduled switchover from postgres1 to postgres0 in 10 seconds # features/steps/patroni_api.py:117 1574s May 17 19:43:17 Then I receive a response returncode 1 # features/steps/patroni_api.py:98 1574s May 17 19:43:17 And I receive a response output "Can't schedule switchover in the paused state" # features/steps/patroni_api.py:98 1574s May 17 19:43:17 When I run patronictl.py resume batman # features/steps/patroni_api.py:86 1575s May 17 19:43:18 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 1575s May 17 19:43:18 Given I issue a scheduled switchover from postgres1 to postgres0 in 10 seconds # features/steps/patroni_api.py:117 1577s May 17 19:43:20 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 1577s May 17 19:43:20 And postgres0 is a leader after 20 seconds # features/steps/patroni_api.py:29 1588s May 17 19:43:31 And postgres0 role is the primary after 10 seconds # features/steps/basic_replication.py:105 1588s May 17 19:43:31 And postgres1 role is the secondary after 10 seconds # features/steps/basic_replication.py:105 1590s May 17 19:43:33 And replication works from postgres0 to postgres1 after 25 seconds # features/steps/basic_replication.py:112 1590s May 17 19:43:33 And "members/postgres1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1591s May 17 19:43:34 When I issue a GET request to http://127.0.0.1:8008/primary # features/steps/patroni_api.py:61 1591s May 17 19:43:34 Then I receive a response code 200 # features/steps/patroni_api.py:98 1591s May 17 19:43:34 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:61 1591s May 17 19:43:34 Then I receive a response code 503 # features/steps/patroni_api.py:98 1591s May 17 19:43:34 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:61 1591s May 17 19:43:34 Then I receive a response code 503 # features/steps/patroni_api.py:98 1591s May 17 19:43:34 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:61 1591s May 17 19:43:34 Then I receive a response code 200 # features/steps/patroni_api.py:98 1595s May 17 19:43:38 1595s May 17 19:43:38 Feature: permanent slots # features/permanent_slots.feature:1 1595s May 17 19:43:38 1595s May 17 19:43:38 Scenario: check that physical permanent slots are created # features/permanent_slots.feature:2 1595s May 17 19:43:38 Given I start postgres0 # features/steps/basic_replication.py:8 1598s May 17 19:43:41 Then postgres0 is a leader after 10 seconds # features/steps/patroni_api.py:29 1598s May 17 19:43:41 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 1598s May 17 19:43:41 When I issue a PATCH request to http://127.0.0.1:8008/config with {"slots":{"test_physical":0,"postgres0":0,"postgres1":0,"postgres3":0},"postgresql":{"parameters":{"wal_level":"logical"}}} # features/steps/patroni_api.py:71 1598s May 17 19:43:41 Then I receive a response code 200 # features/steps/patroni_api.py:98 1598s May 17 19:43:41 And Response on GET http://127.0.0.1:8008/config contains slots after 10 seconds # features/steps/patroni_api.py:156 1598s May 17 19:43:41 When I start postgres1 # features/steps/basic_replication.py:8 1601s May 17 19:43:44 And I start postgres2 # features/steps/basic_replication.py:8 1605s May 17 19:43:48 And I configure and start postgres3 with a tag replicatefrom postgres2 # features/steps/cascading_replication.py:7 1608s May 17 19:43:51 Then postgres0 has a physical replication slot named test_physical after 10 seconds # features/steps/slots.py:80 1608s May 17 19:43:51 And postgres0 has a physical replication slot named postgres1 after 10 seconds # features/steps/slots.py:80 1608s May 17 19:43:51 And postgres0 has a physical replication slot named postgres2 after 10 seconds # features/steps/slots.py:80 1608s May 17 19:43:51 And postgres2 has a physical replication slot named postgres3 after 10 seconds # features/steps/slots.py:80 1608s May 17 19:43:51 1608s May 17 19:43:51 @slot-advance 1608s May 17 19:43:51 Scenario: check that logical permanent slots are created # features/permanent_slots.feature:18 1608s May 17 19:43:51 Given I run patronictl.py restart batman postgres0 --force # features/steps/patroni_api.py:86 1611s May 17 19:43:54 And I issue a PATCH request to http://127.0.0.1:8008/config with {"slots":{"test_logical":{"type":"logical","database":"postgres","plugin":"test_decoding"}}} # features/steps/patroni_api.py:71 1611s May 17 19:43:54 Then postgres0 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:19 1612s May 17 19:43:55 1612s May 17 19:43:55 @slot-advance 1612s May 17 19:43:55 Scenario: check that permanent slots are created on replicas # features/permanent_slots.feature:24 1612s May 17 19:43:55 Given postgres1 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:19 1617s May 17 19:44:00 Then Logical slot test_logical is in sync between postgres0 and postgres1 after 10 seconds # features/steps/slots.py:51 1617s May 17 19:44:00 And Logical slot test_logical is in sync between postgres0 and postgres2 after 10 seconds # features/steps/slots.py:51 1618s May 17 19:44:01 And Logical slot test_logical is in sync between postgres0 and postgres3 after 10 seconds # features/steps/slots.py:51 1619s May 17 19:44:02 And postgres1 has a physical replication slot named test_physical after 2 seconds # features/steps/slots.py:80 1619s May 17 19:44:02 And postgres2 has a physical replication slot named test_physical after 2 seconds # features/steps/slots.py:80 1619s May 17 19:44:02 And postgres3 has a physical replication slot named test_physical after 2 seconds # features/steps/slots.py:80 1619s May 17 19:44:02 1619s May 17 19:44:02 @slot-advance 1619s May 17 19:44:02 Scenario: check permanent physical slots that match with member names # features/permanent_slots.feature:34 1619s May 17 19:44:02 Given postgres0 has a physical replication slot named postgres3 after 2 seconds # features/steps/slots.py:80 1619s May 17 19:44:02 And postgres1 has a physical replication slot named postgres0 after 2 seconds # features/steps/slots.py:80 1619s May 17 19:44:02 And postgres1 has a physical replication slot named postgres3 after 2 seconds # features/steps/slots.py:80 1619s May 17 19:44:02 And postgres2 has a physical replication slot named postgres0 after 2 seconds # features/steps/slots.py:80 1619s May 17 19:44:02 And postgres2 has a physical replication slot named postgres3 after 2 seconds # features/steps/slots.py:80 1619s May 17 19:44:02 And postgres2 has a physical replication slot named postgres1 after 2 seconds # features/steps/slots.py:80 1619s May 17 19:44:02 And postgres1 does not have a replication slot named postgres2 # features/steps/slots.py:40 1619s May 17 19:44:02 And postgres3 does not have a replication slot named postgres2 # features/steps/slots.py:40 1619s May 17 19:44:02 1619s May 17 19:44:02 @slot-advance 1619s May 17 19:44:02 Scenario: check that permanent slots are advanced on replicas # features/permanent_slots.feature:45 1619s May 17 19:44:02 Given I add the table replicate_me to postgres0 # features/steps/basic_replication.py:54 1619s May 17 19:44:02 When I get all changes from logical slot test_logical on postgres0 # features/steps/slots.py:70 1619s May 17 19:44:02 And I get all changes from physical slot test_physical on postgres0 # features/steps/slots.py:75 1619s May 17 19:44:02 Then Logical slot test_logical is in sync between postgres0 and postgres1 after 10 seconds # features/steps/slots.py:51 1621s May 17 19:44:04 And Physical slot test_physical is in sync between postgres0 and postgres1 after 10 seconds # features/steps/slots.py:51 1621s May 17 19:44:04 And Logical slot test_logical is in sync between postgres0 and postgres2 after 10 seconds # features/steps/slots.py:51 1621s May 17 19:44:04 And Physical slot test_physical is in sync between postgres0 and postgres2 after 10 seconds # features/steps/slots.py:51 1621s May 17 19:44:04 And Logical slot test_logical is in sync between postgres0 and postgres3 after 10 seconds # features/steps/slots.py:51 1621s May 17 19:44:04 And Physical slot test_physical is in sync between postgres0 and postgres3 after 10 seconds # features/steps/slots.py:51 1621s May 17 19:44:04 And Physical slot postgres1 is in sync between postgres0 and postgres2 after 10 seconds # features/steps/slots.py:51 1621s May 17 19:44:04 And Physical slot postgres3 is in sync between postgres2 and postgres0 after 20 seconds # features/steps/slots.py:51 1623s May 17 19:44:06 And Physical slot postgres3 is in sync between postgres2 and postgres1 after 10 seconds # features/steps/slots.py:51 1623s May 17 19:44:06 And postgres1 does not have a replication slot named postgres2 # features/steps/slots.py:40 1623s May 17 19:44:06 And postgres3 does not have a replication slot named postgres2 # features/steps/slots.py:40 1623s May 17 19:44:06 1623s May 17 19:44:06 @slot-advance 1623s May 17 19:44:06 Scenario: check that only permanent slots are written to the /status key # features/permanent_slots.feature:62 1623s May 17 19:44:06 Given "status" key in DCS has test_physical in slots # features/steps/slots.py:96 1623s May 17 19:44:06 And "status" key in DCS has postgres0 in slots # features/steps/slots.py:96 1623s May 17 19:44:06 And "status" key in DCS has postgres1 in slots # features/steps/slots.py:96 1623s May 17 19:44:06 And "status" key in DCS does not have postgres2 in slots # features/steps/slots.py:102 1623s May 17 19:44:06 And "status" key in DCS has postgres3 in slots # features/steps/slots.py:96 1623s May 17 19:44:06 1623s May 17 19:44:06 Scenario: check permanent physical replication slot after failover # features/permanent_slots.feature:69 1623s May 17 19:44:06 Given I shut down postgres3 # features/steps/basic_replication.py:29 1624s May 17 19:44:07 And I shut down postgres2 # features/steps/basic_replication.py:29 1625s May 17 19:44:08 And I shut down postgres0 # features/steps/basic_replication.py:29 1627s May 17 19:44:10 Then postgres1 has a physical replication slot named test_physical after 10 seconds # features/steps/slots.py:80 1627s May 17 19:44:10 And postgres1 has a physical replication slot named postgres0 after 10 seconds # features/steps/slots.py:80 1627s May 17 19:44:10 And postgres1 has a physical replication slot named postgres3 after 10 seconds # features/steps/slots.py:80 1630s May 17 19:44:13 1630s May 17 19:44:13 Feature: priority replication # features/priority_failover.feature:1 1630s May 17 19:44:13 We should check that we can give nodes priority during failover 1630s May 17 19:44:13 Scenario: check failover priority 0 prevents leaderships # features/priority_failover.feature:4 1630s May 17 19:44:13 Given I configure and start postgres0 with a tag failover_priority 1 # features/steps/cascading_replication.py:7 1633s May 17 19:44:16 And I configure and start postgres1 with a tag failover_priority 0 # features/steps/cascading_replication.py:7 1636s May 17 19:44:19 Then replication works from postgres0 to postgres1 after 20 seconds # features/steps/basic_replication.py:112 1637s May 17 19:44:20 When I shut down postgres0 # features/steps/basic_replication.py:29 1639s May 17 19:44:22 And there is one of ["following a different leader because I am not allowed to promote"] INFO in the postgres1 patroni log after 5 seconds # features/steps/basic_replication.py:121 1641s May 17 19:44:24 Then postgres1 role is the secondary after 10 seconds # features/steps/basic_replication.py:105 1641s May 17 19:44:24 When I start postgres0 # features/steps/basic_replication.py:8 1644s May 17 19:44:27 Then postgres0 role is the primary after 10 seconds # features/steps/basic_replication.py:105 1645s May 17 19:44:28 1645s May 17 19:44:28 Scenario: check higher failover priority is respected # features/priority_failover.feature:14 1645s May 17 19:44:28 Given I configure and start postgres2 with a tag failover_priority 1 # features/steps/cascading_replication.py:7 1648s May 17 19:44:31 And I configure and start postgres3 with a tag failover_priority 2 # features/steps/cascading_replication.py:7 1651s May 17 19:44:34 Then replication works from postgres0 to postgres2 after 20 seconds # features/steps/basic_replication.py:112 1652s May 17 19:44:35 And replication works from postgres0 to postgres3 after 20 seconds # features/steps/basic_replication.py:112 1653s May 17 19:44:36 When I shut down postgres0 # features/steps/basic_replication.py:29 1655s May 17 19:44:38 Then postgres3 role is the primary after 10 seconds # features/steps/basic_replication.py:105 1655s May 17 19:44:38 And there is one of ["postgres3 has equally tolerable WAL position and priority 2, while this node has priority 1","Wal position of postgres3 is ahead of my wal position"] INFO in the postgres2 patroni log after 5 seconds # features/steps/basic_replication.py:121 1655s May 17 19:44:38 1655s May 17 19:44:38 Scenario: check conflicting configuration handling # features/priority_failover.feature:23 1655s May 17 19:44:38 When I set nofailover tag in postgres2 config # features/steps/patroni_api.py:131 1655s May 17 19:44:38 And I issue an empty POST request to http://127.0.0.1:8010/reload # features/steps/patroni_api.py:66 1655s May 17 19:44:38 Then I receive a response code 202 # features/steps/patroni_api.py:98 1655s May 17 19:44:38 And there is one of ["Conflicting configuration between nofailover: True and failover_priority: 1. Defaulting to nofailover: True"] WARNING in the postgres2 patroni log after 5 seconds # features/steps/basic_replication.py:121 1657s May 17 19:44:40 And "members/postgres2" key in DCS has tags={'failover_priority': '1', 'nofailover': True} after 10 seconds # features/steps/cascading_replication.py:23 1658s May 17 19:44:41 When I issue a POST request to http://127.0.0.1:8010/failover with {"candidate": "postgres2"} # features/steps/patroni_api.py:71 1658s May 17 19:44:41 Then I receive a response code 412 # features/steps/patroni_api.py:98 1658s May 17 19:44:41 And I receive a response text "failover is not possible: no good candidates have been found" # features/steps/patroni_api.py:98 1658s May 17 19:44:41 When I reset nofailover tag in postgres1 config # features/steps/patroni_api.py:131 1658s May 17 19:44:41 And I issue an empty POST request to http://127.0.0.1:8009/reload # features/steps/patroni_api.py:66 1658s May 17 19:44:41 Then I receive a response code 202 # features/steps/patroni_api.py:98 1658s May 17 19:44:41 And there is one of ["Conflicting configuration between nofailover: False and failover_priority: 0. Defaulting to nofailover: False"] WARNING in the postgres1 patroni log after 5 seconds # features/steps/basic_replication.py:121 1660s May 17 19:44:43 And "members/postgres1" key in DCS has tags={'failover_priority': '0', 'nofailover': False} after 10 seconds # features/steps/cascading_replication.py:23 1661s May 17 19:44:44 And I issue a POST request to http://127.0.0.1:8009/failover with {"candidate": "postgres1"} # features/steps/patroni_api.py:71 1663s May 17 19:44:46 Then I receive a response code 200 # features/steps/patroni_api.py:98 1663s May 17 19:44:46 And postgres1 role is the primary after 10 seconds # features/steps/basic_replication.py:105 1668s May 17 19:44:51 1668s May 17 19:44:51 Feature: recovery # features/recovery.feature:1 1668s May 17 19:44:51 We want to check that crashed postgres is started back 1668s May 17 19:44:51 Scenario: check that timeline is not incremented when primary is started after crash # features/recovery.feature:4 1668s May 17 19:44:51 Given I start postgres0 # features/steps/basic_replication.py:8 1671s May 17 19:44:54 Then postgres0 is a leader after 10 seconds # features/steps/patroni_api.py:29 1671s May 17 19:44:54 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 1671s May 17 19:44:54 When I start postgres1 # features/steps/basic_replication.py:8 1674s May 17 19:44:57 And I add the table foo to postgres0 # features/steps/basic_replication.py:54 1674s May 17 19:44:57 Then table foo is present on postgres1 after 20 seconds # features/steps/basic_replication.py:93 1675s May 17 19:44:58 When I kill postmaster on postgres0 # features/steps/basic_replication.py:44 1675s May 17 19:44:58 waiting for server to shut down.... done 1675s May 17 19:44:58 server stopped 1675s May 17 19:44:58 Then postgres0 role is the primary after 10 seconds # features/steps/basic_replication.py:105 1677s May 17 19:45:00 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:61 1677s May 17 19:45:00 Then I receive a response code 200 # features/steps/patroni_api.py:98 1677s May 17 19:45:00 And I receive a response role master # features/steps/patroni_api.py:98 1677s May 17 19:45:00 And I receive a response timeline 1 # features/steps/patroni_api.py:98 1677s May 17 19:45:00 And "members/postgres0" key in DCS has state=running after 12 seconds # features/steps/cascading_replication.py:23 1678s May 17 19:45:01 And replication works from postgres0 to postgres1 after 15 seconds # features/steps/basic_replication.py:112 1681s May 17 19:45:04 1681s May 17 19:45:04 Scenario: check immediate failover when master_start_timeout=0 # features/recovery.feature:20 1681s May 17 19:45:04 Given I issue a PATCH request to http://127.0.0.1:8008/config with {"master_start_timeout": 0} # features/steps/patroni_api.py:71 1681s May 17 19:45:04 Then I receive a response code 200 # features/steps/patroni_api.py:98 1681s May 17 19:45:04 And Response on GET http://127.0.0.1:8008/config contains master_start_timeout after 10 seconds # features/steps/patroni_api.py:156 1681s May 17 19:45:04 When I kill postmaster on postgres0 # features/steps/basic_replication.py:44 1681s May 17 19:45:04 waiting for server to shut down.... done 1681s May 17 19:45:04 server stopped 1681s May 17 19:45:04 Then postgres1 is a leader after 10 seconds # features/steps/patroni_api.py:29 1683s May 17 19:45:06 And postgres1 role is the primary after 10 seconds # features/steps/basic_replication.py:105 1687s May 17 19:45:10 1687s May 17 19:45:10 Feature: standby cluster # features/standby_cluster.feature:1 1687s May 17 19:45:10 1687s May 17 19:45:10 Scenario: prepare the cluster with logical slots # features/standby_cluster.feature:2 1687s May 17 19:45:10 Given I start postgres1 # features/steps/basic_replication.py:8 1690s May 17 19:45:13 Then postgres1 is a leader after 10 seconds # features/steps/patroni_api.py:29 1690s May 17 19:45:13 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 1690s May 17 19:45:13 When I issue a PATCH request to http://127.0.0.1:8009/config with {"slots": {"pm_1": {"type": "physical"}}, "postgresql": {"parameters": {"wal_level": "logical"}}} # features/steps/patroni_api.py:71 1690s May 17 19:45:13 Then I receive a response code 200 # features/steps/patroni_api.py:98 1690s May 17 19:45:13 And Response on GET http://127.0.0.1:8009/config contains slots after 10 seconds # features/steps/patroni_api.py:156 1690s May 17 19:45:13 And I sleep for 3 seconds # features/steps/patroni_api.py:39 1693s May 17 19:45:16 When I issue a PATCH request to http://127.0.0.1:8009/config with {"slots": {"test_logical": {"type": "logical", "database": "postgres", "plugin": "test_decoding"}}} # features/steps/patroni_api.py:71 1693s May 17 19:45:16 Then I receive a response code 200 # features/steps/patroni_api.py:98 1693s May 17 19:45:16 And I do a backup of postgres1 # features/steps/custom_bootstrap.py:25 1694s May 17 19:45:17 When I start postgres0 # features/steps/basic_replication.py:8 1697s May 17 19:45:20 Then "members/postgres0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1698s May 17 19:45:21 And replication works from postgres1 to postgres0 after 15 seconds # features/steps/basic_replication.py:112 1699s May 17 19:45:22 When I issue a GET request to http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:61 1699s May 17 19:45:22 Then I receive a response code 200 # features/steps/patroni_api.py:98 1699s May 17 19:45:22 And I receive a response replication_state streaming # features/steps/patroni_api.py:98 1699s May 17 19:45:22 And "members/postgres0" key in DCS has replication_state=streaming after 10 seconds # features/steps/cascading_replication.py:23 1699s May 17 19:45:22 1699s May 17 19:45:22 @slot-advance 1699s May 17 19:45:22 Scenario: check permanent logical slots are synced to the replica # features/standby_cluster.feature:22 1699s May 17 19:45:22 Given I run patronictl.py restart batman postgres1 --force # features/steps/patroni_api.py:86 1701s May 17 19:45:24 Then Logical slot test_logical is in sync between postgres0 and postgres1 after 10 seconds # features/steps/slots.py:51 1706s May 17 19:45:29 1706s May 17 19:45:29 Scenario: Detach exiting node from the cluster # features/standby_cluster.feature:26 1706s May 17 19:45:29 When I shut down postgres1 # features/steps/basic_replication.py:29 1708s May 17 19:45:31 Then postgres0 is a leader after 10 seconds # features/steps/patroni_api.py:29 1708s May 17 19:45:31 And "members/postgres0" key in DCS has role=master after 5 seconds # features/steps/cascading_replication.py:23 1709s May 17 19:45:32 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:61 1709s May 17 19:45:32 Then I receive a response code 200 # features/steps/patroni_api.py:98 1709s May 17 19:45:32 1709s May 17 19:45:32 Scenario: check replication of a single table in a standby cluster # features/standby_cluster.feature:33 1709s May 17 19:45:32 Given I start postgres1 in a standby cluster batman1 as a clone of postgres0 # features/steps/standby_cluster.py:23 1712s May 17 19:45:35 Then postgres1 is a leader of batman1 after 10 seconds # features/steps/custom_bootstrap.py:16 1712s May 17 19:45:35 When I add the table foo to postgres0 # features/steps/basic_replication.py:54 1712s May 17 19:45:35 Then table foo is present on postgres1 after 20 seconds # features/steps/basic_replication.py:93 1712s May 17 19:45:35 When I issue a GET request to http://127.0.0.1:8009/patroni # features/steps/patroni_api.py:61 1712s May 17 19:45:35 Then I receive a response code 200 # features/steps/patroni_api.py:98 1712s May 17 19:45:35 And I receive a response replication_state streaming # features/steps/patroni_api.py:98 1712s May 17 19:45:35 And I sleep for 3 seconds # features/steps/patroni_api.py:39 1715s May 17 19:45:38 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:61 1715s May 17 19:45:38 Then I receive a response code 503 # features/steps/patroni_api.py:98 1715s May 17 19:45:38 When I issue a GET request to http://127.0.0.1:8009/standby_leader # features/steps/patroni_api.py:61 1716s May 17 19:45:39 Then I receive a response code 200 # features/steps/patroni_api.py:98 1716s May 17 19:45:39 And I receive a response role standby_leader # features/steps/patroni_api.py:98 1716s May 17 19:45:39 And there is a postgres1_cb.log with "on_role_change standby_leader batman1" in postgres1 data directory # features/steps/cascading_replication.py:12 1716s May 17 19:45:39 When I start postgres2 in a cluster batman1 # features/steps/standby_cluster.py:12 1719s May 17 19:45:42 Then postgres2 role is the replica after 24 seconds # features/steps/basic_replication.py:105 1719s May 17 19:45:42 And postgres2 is replicating from postgres1 after 10 seconds # features/steps/standby_cluster.py:52 1719s May 17 19:45:42 And table foo is present on postgres2 after 20 seconds # features/steps/basic_replication.py:93 1719s May 17 19:45:42 When I issue a GET request to http://127.0.0.1:8010/patroni # features/steps/patroni_api.py:61 1719s May 17 19:45:42 Then I receive a response code 200 # features/steps/patroni_api.py:98 1719s May 17 19:45:42 And I receive a response replication_state streaming # features/steps/patroni_api.py:98 1719s May 17 19:45:42 And postgres1 does not have a replication slot named test_logical # features/steps/slots.py:40 1719s May 17 19:45:42 1719s May 17 19:45:42 Scenario: check switchover # features/standby_cluster.feature:57 1719s May 17 19:45:42 Given I run patronictl.py switchover batman1 --force # features/steps/patroni_api.py:86 1722s May 17 19:45:45 Then Status code on GET http://127.0.0.1:8010/standby_leader is 200 after 10 seconds # features/steps/patroni_api.py:142 1722s May 17 19:45:45 And postgres1 is replicating from postgres2 after 32 seconds # features/steps/standby_cluster.py:52 1724s May 17 19:45:47 And there is a postgres2_cb.log with "on_start replica batman1\non_role_change standby_leader batman1" in postgres2 data directory # features/steps/cascading_replication.py:12 1724s May 17 19:45:47 1724s May 17 19:45:47 Scenario: check failover # features/standby_cluster.feature:63 1724s May 17 19:45:47 When I kill postgres2 # features/steps/basic_replication.py:34 1725s May 17 19:45:48 And I kill postmaster on postgres2 # features/steps/basic_replication.py:44 1725s May 17 19:45:48 waiting for server to shut down.... done 1725s May 17 19:45:48 server stopped 1725s May 17 19:45:48 Then postgres1 is replicating from postgres0 after 32 seconds # features/steps/standby_cluster.py:52 1744s May 17 19:46:07 And Status code on GET http://127.0.0.1:8009/standby_leader is 200 after 10 seconds # features/steps/patroni_api.py:142 1744s May 17 19:46:07 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:61 1744s May 17 19:46:07 Then I receive a response code 503 # features/steps/patroni_api.py:98 1744s May 17 19:46:07 And I receive a response role standby_leader # features/steps/patroni_api.py:98 1744s May 17 19:46:07 And replication works from postgres0 to postgres1 after 15 seconds # features/steps/basic_replication.py:112 1746s May 17 19:46:09 And there is a postgres1_cb.log with "on_role_change replica batman1\non_role_change standby_leader batman1" in postgres1 data directory # features/steps/cascading_replication.py:12 1750s May 17 19:46:13 1750s May 17 19:46:13 Feature: watchdog # features/watchdog.feature:1 1750s May 17 19:46:13 Verify that watchdog gets pinged and triggered under appropriate circumstances. 1750s May 17 19:46:13 Scenario: watchdog is opened and pinged # features/watchdog.feature:4 1750s May 17 19:46:13 Given I start postgres0 with watchdog # features/steps/watchdog.py:16 1753s May 17 19:46:16 Then postgres0 is a leader after 10 seconds # features/steps/patroni_api.py:29 1753s May 17 19:46:16 And postgres0 role is the primary after 10 seconds # features/steps/basic_replication.py:105 1753s May 17 19:46:16 And postgres0 watchdog has been pinged after 10 seconds # features/steps/watchdog.py:21 1754s May 17 19:46:17 And postgres0 watchdog has a 15 second timeout # features/steps/watchdog.py:34 1754s May 17 19:46:17 1754s May 17 19:46:17 Scenario: watchdog is reconfigured after global ttl changed # features/watchdog.feature:11 1754s May 17 19:46:17 Given I run patronictl.py edit-config batman -s ttl=30 --force # features/steps/patroni_api.py:86 1755s May 17 19:46:18 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 1755s May 17 19:46:18 And I receive a response output "+ttl: 30" # features/steps/patroni_api.py:98 1755s May 17 19:46:18 When I sleep for 4 seconds # features/steps/patroni_api.py:39 1759s May 17 19:46:22 Then postgres0 watchdog has a 25 second timeout # features/steps/watchdog.py:34 1759s May 17 19:46:22 1759s May 17 19:46:22 Scenario: watchdog is disabled during pause # features/watchdog.feature:18 1759s May 17 19:46:22 Given I run patronictl.py pause batman # features/steps/patroni_api.py:86 1761s May 17 19:46:24 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 1761s May 17 19:46:24 When I sleep for 2 seconds # features/steps/patroni_api.py:39 1763s May 17 19:46:26 Then postgres0 watchdog has been closed # features/steps/watchdog.py:29 1763s May 17 19:46:26 1763s May 17 19:46:26 Scenario: watchdog is opened and pinged after resume # features/watchdog.feature:24 1763s May 17 19:46:26 Given I reset postgres0 watchdog state # features/steps/watchdog.py:39 1763s May 17 19:46:26 And I run patronictl.py resume batman # features/steps/patroni_api.py:86 1764s May 17 19:46:27 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 1764s May 17 19:46:27 And postgres0 watchdog has been pinged after 10 seconds # features/steps/watchdog.py:21 1765s May 17 19:46:28 1765s May 17 19:46:28 Scenario: watchdog is disabled when shutting down # features/watchdog.feature:30 1765s May 17 19:46:28 Given I shut down postgres0 # features/steps/basic_replication.py:29 1767s May 17 19:46:30 Then postgres0 watchdog has been closed # features/steps/watchdog.py:29 1767s May 17 19:46:30 1767s May 17 19:46:30 Scenario: watchdog is triggered if patroni stops responding # features/watchdog.feature:34 1767s May 17 19:46:30 Given I reset postgres0 watchdog state # features/steps/watchdog.py:39 1767s May 17 19:46:30 And I start postgres0 with watchdog # features/steps/watchdog.py:16 1770s May 17 19:46:33 Then postgres0 role is the primary after 10 seconds # features/steps/basic_replication.py:105 1771s May 17 19:46:34 When postgres0 hangs for 30 seconds # features/steps/watchdog.py:52 1771s May 17 19:46:34 Then postgres0 watchdog is triggered after 30 seconds # features/steps/watchdog.py:44 1799s May 17 19:47:02 1799s Failed to get list of machines from http://[::1]:2379/v2: MaxRetryError("HTTPConnectionPool(host='::1', port=2379): Max retries exceeded with url: /v2/machines (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))") 1800s Failed to get list of machines from http://[::1]:2379/v2: MaxRetryError("HTTPConnectionPool(host='::1', port=2379): Max retries exceeded with url: /v2/machines (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))") 1800s Failed to get list of machines from http://127.0.0.1:2379/v2: MaxRetryError("HTTPConnectionPool(host='127.0.0.1', port=2379): Max retries exceeded with url: /v2/machines (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))") 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.5391.XekUQCKx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.5436.XuRWtTNx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.5476.XOvjQvgx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.5547.XskoNeGx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.5592.XrJHhTNx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.5665.XttysoNx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.5713.XYcPzAFx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.5716.XWWGMnjx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.5802.XVQVQpdx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.5900.XjRDyhvx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.5907.XzORUPRx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.5951.XLTLmcPx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.5997.XOJwWEex 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.6108.XZtpEDDx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.6154.XDRYAtIx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.6208.XpHImeSx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.6292.XPuFqaLx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.6604.XwQzcwWx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.6677.XGpaImrx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.6733.XaQPgTPx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.6961.XxIDzsox 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.7012.XlFqtbSx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.7073.XEfOAUnx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.7161.XeiMeZOx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.7258.XgfqwQbx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.7300.XbZrYLVx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.7362.XnWHKWCx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.7411.XNBsKdDx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.7545.XqKXEbwx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.7593.XSFnxLAx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.7608.XUvcsABx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.7645.XRlqCXax 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.7691.XKOsWtkx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.7696.Xwyeljfx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.7732.XirfBSrx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.7775.XXnKBfSx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.7935.XXLjEPqx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.7937.XLWjiIqx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.7942.XqCAVfex 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.8075.XDbojeax 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.8120.XdDLCmMx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.8160.XXIfqGVx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.8209.XdPlsQrx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.8252.XBVtLZOx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.8440.XEVwrnNx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.8477.XLbokfHx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.8555.XyFzxVrx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.8632.XCjmXHpx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.8677.XHcdqEIx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.9018.XkCyqTFx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.9060.XdnPLxRx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.9197.XiQdEKyx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.9259.XCMkkcQx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.9311.XULkudRx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.9410.XqsQxoGx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.9524.XSXDBitx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.9646.XUcVINvx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.9690.XVosdsix 1800s May 17 19:47:03 Skipping duplicate data .coverage.autopkgtest.9694.XqePvyWx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.9697.XXqtmogx 1800s May 17 19:47:03 Combined data file .coverage.autopkgtest.9708.XUcZAfqx 1802s May 17 19:47:05 Name Stmts Miss Cover 1802s May 17 19:47:05 ------------------------------------------------------------------------------------------------------------- 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/OpenSSL/SSL.py 1072 596 44% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/OpenSSL/__init__.py 4 0 100% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/OpenSSL/_util.py 41 14 66% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/OpenSSL/crypto.py 1225 982 20% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/OpenSSL/version.py 10 0 100% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/_distutils_hack/__init__.py 100 95 5% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/__about__.py 5 0 100% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/__init__.py 3 0 100% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/exceptions.py 26 5 81% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/hazmat/__init__.py 2 0 100% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/hazmat/_oid.py 126 0 100% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/__init__.py 0 0 100% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/__init__.py 0 0 100% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/_conditional.py 73 32 56% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/binding.py 73 13 82% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/__init__.py 0 0 100% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_asymmetric.py 6 0 100% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_cipheralgorithm.py 18 0 100% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_serialization.py 80 35 56% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/__init__.py 0 0 100% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/dh.py 118 47 60% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/dsa.py 134 57 57% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ec.py 219 56 74% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ed448.py 45 12 73% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ed25519.py 45 12 73% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/padding.py 47 20 57% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/rsa.py 184 106 42% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/types.py 19 0 100% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/utils.py 14 5 64% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/x448.py 43 12 72% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/x25519.py 43 12 72% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/__init__.py 4 0 100% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/algorithms.py 129 35 73% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/base.py 138 79 43% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/modes.py 140 58 59% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/constant_time.py 6 3 50% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/hashes.py 128 20 84% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/__init__.py 5 0 100% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/base.py 22 12 45% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/ssh.py 761 605 20% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/utils.py 76 29 62% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/x509/__init__.py 70 0 100% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/x509/base.py 458 224 51% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/x509/certificate_transparency.py 42 0 100% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/x509/extensions.py 1038 569 45% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/x509/general_name.py 166 94 43% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/x509/name.py 233 142 39% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/cryptography/x509/oid.py 3 0 100% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dateutil/__init__.py 5 2 60% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dateutil/_common.py 25 15 40% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dateutil/_version.py 11 2 82% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dateutil/parser/__init__.py 33 4 88% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dateutil/parser/_parser.py 813 436 46% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dateutil/parser/isoparser.py 185 150 19% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dateutil/relativedelta.py 241 206 15% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dateutil/tz/__init__.py 4 0 100% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dateutil/tz/_common.py 161 121 25% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dateutil/tz/_factories.py 49 21 57% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dateutil/tz/tz.py 800 626 22% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dateutil/tz/win.py 153 149 3% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/__init__.py 3 0 100% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/_asyncbackend.py 14 6 57% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/_ddr.py 105 86 18% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/_features.py 44 7 84% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/_immutable_ctx.py 40 5 88% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/asyncbackend.py 44 32 27% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/asyncquery.py 277 242 13% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/edns.py 270 161 40% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/entropy.py 80 49 39% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/enum.py 72 46 36% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/exception.py 60 33 45% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/flags.py 41 14 66% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/grange.py 34 30 12% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/immutable.py 41 30 27% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/inet.py 80 65 19% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/ipv4.py 27 20 26% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/ipv6.py 115 100 13% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/message.py 809 662 18% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/name.py 620 427 31% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/nameserver.py 101 54 47% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/node.py 118 71 40% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/opcode.py 31 7 77% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/query.py 536 462 14% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/quic/__init__.py 26 23 12% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/rcode.py 69 13 81% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/rdata.py 377 269 29% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/rdataclass.py 44 9 80% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/rdataset.py 193 133 31% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/rdatatype.py 214 25 88% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/OPT.py 34 19 44% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/SOA.py 41 26 37% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/TSIG.py 58 42 28% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/ZONEMD.py 43 27 37% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/__init__.py 2 0 100% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/rdtypes/__init__.py 2 0 100% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/rdtypes/svcbbase.py 397 261 34% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/rdtypes/util.py 191 154 19% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/renderer.py 152 118 22% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/resolver.py 899 719 20% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/reversename.py 33 24 27% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/rrset.py 78 56 28% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/serial.py 93 79 15% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/set.py 149 108 28% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/tokenizer.py 335 279 17% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/transaction.py 271 203 25% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/tsig.py 177 122 31% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/ttl.py 45 38 16% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/version.py 7 0 100% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/wire.py 64 42 34% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/xfr.py 148 126 15% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/zone.py 508 383 25% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/zonefile.py 429 380 11% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/dns/zonetypes.py 15 2 87% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/etcd/__init__.py 125 24 81% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/etcd/client.py 380 192 49% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/etcd/lock.py 125 103 18% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/idna/__init__.py 4 0 100% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/idna/core.py 294 259 12% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/idna/idnadata.py 4 0 100% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/idna/intranges.py 30 24 20% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/idna/package_data.py 1 0 100% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/__init__.py 13 2 85% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/__main__.py 199 63 68% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/api.py 770 279 64% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/async_executor.py 96 15 84% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/collections.py 56 6 89% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/config.py 371 94 75% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/config_generator.py 211 153 27% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/daemon.py 76 3 96% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/dcs/__init__.py 637 76 88% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/dcs/etcd.py 603 119 80% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/dynamic_loader.py 35 7 80% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/exceptions.py 16 0 100% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/file_perm.py 43 8 81% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/global_config.py 81 0 100% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/ha.py 1244 320 74% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/log.py 215 66 69% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/postgresql/__init__.py 821 173 79% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/postgresql/available_parameters/__init__.py 21 1 95% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/postgresql/bootstrap.py 254 63 75% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/postgresql/callback_executor.py 55 8 85% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/postgresql/cancellable.py 104 41 61% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/postgresql/config.py 822 215 74% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/postgresql/connection.py 75 1 99% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/postgresql/misc.py 41 8 80% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/postgresql/mpp/__init__.py 89 11 88% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/postgresql/postmaster.py 170 85 50% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/postgresql/rewind.py 416 163 61% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/postgresql/slots.py 334 31 91% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/postgresql/sync.py 130 19 85% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/postgresql/validator.py 157 23 85% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/psycopg.py 42 16 62% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/request.py 62 6 90% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/tags.py 38 0 100% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/utils.py 350 120 66% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/validator.py 301 208 31% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/version.py 1 0 100% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/watchdog/__init__.py 2 0 100% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/watchdog/base.py 203 42 79% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/patroni/watchdog/linux.py 135 35 74% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/psutil/__init__.py 951 629 34% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/psutil/_common.py 424 212 50% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/psutil/_compat.py 302 263 13% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/psutil/_pslinux.py 1251 924 26% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/psutil/_psposix.py 96 38 60% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/psycopg2/__init__.py 19 3 84% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/psycopg2/_json.py 64 27 58% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/psycopg2/_range.py 269 172 36% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/psycopg2/errors.py 3 2 33% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/psycopg2/extensions.py 91 25 73% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/six.py 504 250 50% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/urllib3/__init__.py 50 14 72% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/urllib3/_base_connection.py 70 52 26% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/urllib3/_collections.py 234 100 57% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/urllib3/_request_methods.py 53 9 83% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/urllib3/_version.py 2 0 100% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/urllib3/connection.py 324 99 69% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/urllib3/connectionpool.py 347 120 65% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/urllib3/contrib/__init__.py 0 0 100% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/urllib3/contrib/pyopenssl.py 257 96 63% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/urllib3/exceptions.py 115 37 68% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/urllib3/fields.py 92 73 21% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/urllib3/filepost.py 37 24 35% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/urllib3/poolmanager.py 233 85 64% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/urllib3/response.py 562 310 45% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/urllib3/util/__init__.py 10 0 100% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/urllib3/util/connection.py 66 42 36% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/urllib3/util/proxy.py 13 6 54% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/urllib3/util/request.py 104 49 53% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/urllib3/util/response.py 32 17 47% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/urllib3/util/retry.py 173 47 73% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/urllib3/util/ssl_.py 177 78 56% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/urllib3/util/ssl_match_hostname.py 66 54 18% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/urllib3/util/ssltransport.py 160 112 30% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/urllib3/util/timeout.py 71 14 80% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/urllib3/util/url.py 205 68 67% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/urllib3/util/util.py 26 10 62% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/urllib3/util/wait.py 49 18 63% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/yaml/__init__.py 165 109 34% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/yaml/composer.py 92 17 82% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/yaml/constructor.py 479 276 42% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/yaml/cyaml.py 46 24 48% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/yaml/dumper.py 23 12 48% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/yaml/emitter.py 838 769 8% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/yaml/error.py 58 42 28% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/yaml/events.py 61 6 90% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/yaml/loader.py 47 24 49% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/yaml/nodes.py 29 7 76% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/yaml/parser.py 352 198 44% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/yaml/reader.py 122 34 72% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/yaml/representer.py 248 176 29% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/yaml/resolver.py 135 76 44% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/yaml/scanner.py 758 437 42% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/yaml/serializer.py 85 70 18% 1802s May 17 19:47:05 /usr/lib/python3/dist-packages/yaml/tokens.py 76 17 78% 1802s May 17 19:47:05 patroni/__init__.py 13 2 85% 1802s May 17 19:47:05 patroni/__main__.py 199 199 0% 1802s May 17 19:47:05 patroni/api.py 770 770 0% 1802s May 17 19:47:05 patroni/async_executor.py 96 69 28% 1802s May 17 19:47:05 patroni/collections.py 56 15 73% 1802s May 17 19:47:05 patroni/config.py 371 196 47% 1802s May 17 19:47:05 patroni/config_generator.py 211 211 0% 1802s May 17 19:47:05 patroni/ctl.py 936 411 56% 1802s May 17 19:47:05 patroni/daemon.py 76 76 0% 1802s May 17 19:47:05 patroni/dcs/__init__.py 637 261 59% 1802s May 17 19:47:05 patroni/dcs/consul.py 485 485 0% 1802s May 17 19:47:05 patroni/dcs/etcd3.py 679 679 0% 1802s May 17 19:47:05 patroni/dcs/etcd.py 603 224 63% 1802s May 17 19:47:05 patroni/dcs/exhibitor.py 61 61 0% 1802s May 17 19:47:05 patroni/dcs/kubernetes.py 938 938 0% 1802s May 17 19:47:05 patroni/dcs/raft.py 319 319 0% 1802s May 17 19:47:05 patroni/dcs/zookeeper.py 288 288 0% 1802s May 17 19:47:05 patroni/dynamic_loader.py 35 7 80% 1802s May 17 19:47:05 patroni/exceptions.py 16 1 94% 1802s May 17 19:47:05 patroni/file_perm.py 43 15 65% 1802s May 17 19:47:05 patroni/global_config.py 81 18 78% 1802s May 17 19:47:05 patroni/ha.py 1244 1244 0% 1802s May 17 19:47:05 patroni/log.py 215 170 21% 1802s May 17 19:47:05 patroni/postgresql/__init__.py 821 651 21% 1802s May 17 19:47:05 patroni/postgresql/available_parameters/__init__.py 21 3 86% 1802s May 17 19:47:05 patroni/postgresql/bootstrap.py 254 224 12% 1802s May 17 19:47:05 patroni/postgresql/callback_executor.py 55 34 38% 1802s May 17 19:47:05 patroni/postgresql/cancellable.py 104 84 19% 1802s May 17 19:47:05 patroni/postgresql/config.py 822 707 14% 1802s May 17 19:47:05 patroni/postgresql/connection.py 75 50 33% 1802s May 17 19:47:05 patroni/postgresql/misc.py 41 29 29% 1802s May 17 19:47:05 patroni/postgresql/mpp/__init__.py 89 21 76% 1802s May 17 19:47:05 patroni/postgresql/mpp/citus.py 259 259 0% 1802s May 17 19:47:05 patroni/postgresql/postmaster.py 170 139 18% 1802s May 17 19:47:05 patroni/postgresql/rewind.py 416 416 0% 1802s May 17 19:47:05 patroni/postgresql/slots.py 334 285 15% 1802s May 17 19:47:05 patroni/postgresql/sync.py 130 96 26% 1802s May 17 19:47:05 patroni/postgresql/validator.py 157 52 67% 1802s May 17 19:47:05 patroni/psycopg.py 42 28 33% 1802s May 17 19:47:05 patroni/raft_controller.py 22 22 0% 1802s May 17 19:47:05 patroni/request.py 62 6 90% 1802s May 17 19:47:05 patroni/scripts/__init__.py 0 0 100% 1802s May 17 19:47:05 patroni/scripts/aws.py 59 59 0% 1802s May 17 19:47:05 patroni/scripts/barman/__init__.py 0 0 100% 1802s May 17 19:47:05 patroni/scripts/barman/cli.py 51 51 0% 1802s May 17 19:47:05 patroni/scripts/barman/config_switch.py 51 51 0% 1802s May 17 19:47:05 patroni/scripts/barman/recover.py 37 37 0% 1802s May 17 19:47:05 patroni/scripts/barman/utils.py 94 94 0% 1802s May 17 19:47:05 patroni/scripts/wale_restore.py 207 207 0% 1802s May 17 19:47:05 patroni/tags.py 38 11 71% 1802s May 17 19:47:05 patroni/utils.py 350 196 44% 1802s May 17 19:47:05 patroni/validator.py 301 215 29% 1802s May 17 19:47:05 patroni/version.py 1 0 100% 1802s May 17 19:47:05 patroni/watchdog/__init__.py 2 2 0% 1802s May 17 19:47:05 patroni/watchdog/base.py 203 203 0% 1802s May 17 19:47:05 patroni/watchdog/linux.py 135 135 0% 1802s May 17 19:47:05 ------------------------------------------------------------------------------------------------------------- 1802s May 17 19:47:05 TOTAL 53473 32483 39% 1802s May 17 19:47:05 12 features passed, 0 failed, 1 skipped 1802s May 17 19:47:05 55 scenarios passed, 0 failed, 5 skipped 1802s May 17 19:47:05 524 steps passed, 0 failed, 61 skipped, 0 undefined 1802s May 17 19:47:05 Took 8m13.170s 1802s + echo '### End 16 acceptance-etcd ###' 1802s ### End 16 acceptance-etcd ### 1802s + rm -f '/tmp/pgpass?' 1802s ++ id -u 1802s + '[' 0 -eq 0 ']' 1802s + '[' -x /etc/init.d/zookeeper ']' 1803s autopkgtest [19:47:06]: test acceptance-etcd: -----------------------] 1803s acceptance-etcd PASS 1803s autopkgtest [19:47:06]: test acceptance-etcd: - - - - - - - - - - results - - - - - - - - - - 1803s autopkgtest [19:47:06]: test acceptance-consul: preparing testbed 2029s autopkgtest [19:50:52]: testbed dpkg architecture: amd64 2029s autopkgtest [19:50:52]: testbed apt version: 2.7.14build2 2029s autopkgtest [19:50:52]: @@@@@@@@@@@@@@@@@@@@ test bed setup 2029s Get:1 http://ftpmaster.internal/ubuntu oracular-proposed InRelease [73.9 kB] 2029s Get:2 http://ftpmaster.internal/ubuntu oracular-proposed/universe Sources [1681 kB] 2029s Get:3 http://ftpmaster.internal/ubuntu oracular-proposed/restricted Sources [1964 B] 2029s Get:4 http://ftpmaster.internal/ubuntu oracular-proposed/multiverse Sources [9872 B] 2029s Get:5 http://ftpmaster.internal/ubuntu oracular-proposed/main Sources [134 kB] 2029s Get:6 http://ftpmaster.internal/ubuntu oracular-proposed/main i386 Packages [194 kB] 2029s Get:7 http://ftpmaster.internal/ubuntu oracular-proposed/main amd64 Packages [233 kB] 2029s Get:8 http://ftpmaster.internal/ubuntu oracular-proposed/restricted amd64 Packages [7700 B] 2029s Get:9 http://ftpmaster.internal/ubuntu oracular-proposed/universe amd64 Packages [1927 kB] 2029s Get:10 http://ftpmaster.internal/ubuntu oracular-proposed/universe i386 Packages [921 kB] 2029s Get:11 http://ftpmaster.internal/ubuntu oracular-proposed/multiverse i386 Packages [6324 B] 2029s Get:12 http://ftpmaster.internal/ubuntu oracular-proposed/multiverse amd64 Packages [19.7 kB] 2030s Fetched 5210 kB in 1s (6802 kB/s) 2030s Reading package lists... 2031s Reading package lists... 2032s Building dependency tree... 2032s Reading state information... 2032s Calculating upgrade... 2033s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 2033s Reading package lists... 2033s Building dependency tree... 2033s Reading state information... 2033s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 2033s Hit:1 http://ftpmaster.internal/ubuntu oracular-proposed InRelease 2033s Hit:2 http://ftpmaster.internal/ubuntu oracular InRelease 2033s Hit:3 http://ftpmaster.internal/ubuntu oracular-updates InRelease 2033s Hit:4 http://ftpmaster.internal/ubuntu oracular-security InRelease 2035s Reading package lists... 2035s Reading package lists... 2035s Building dependency tree... 2035s Reading state information... 2036s Calculating upgrade... 2036s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 2036s Reading package lists... 2036s Building dependency tree... 2036s Reading state information... 2037s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 2038s Reading package lists... 2039s Building dependency tree... 2039s Reading state information... 2039s Starting pkgProblemResolver with broken count: 1 2039s Starting 2 pkgProblemResolver with broken count: 1 2039s Investigating (0) autopkgtest-satdep:amd64 < none -> 0 @un puN Ib > 2039s Broken autopkgtest-satdep:amd64 Depends on consul:amd64 < none @un H > 2039s Broken autopkgtest-satdep:amd64 Depends on moreutils:amd64 < none | 0.69-1 @un uH > 2039s Considering moreutils:amd64 1 as a solution to autopkgtest-satdep:amd64 9998 2039s Re-Instated libio-pty-perl:amd64 2039s Re-Instated libipc-run-perl:amd64 2039s Re-Instated libtime-duration-perl:amd64 2039s Re-Instated libtimedate-perl:amd64 2039s Re-Instated moreutils:amd64 2039s Broken autopkgtest-satdep:amd64 Depends on postgresql:amd64 < none | 16+257build1 @un uH > 2039s Considering postgresql:amd64 1 as a solution to autopkgtest-satdep:amd64 9998 2039s Re-Instated libpq5:amd64 2039s Re-Instated postgresql-client-common:amd64 2039s Re-Instated postgresql-client-16:amd64 2039s Re-Instated libjson-perl:amd64 2039s Re-Instated ssl-cert:amd64 2039s Re-Instated postgresql-common:amd64 2039s Re-Instated libllvm17t64:amd64 2039s Re-Instated libxslt1.1:amd64 2039s Re-Instated postgresql-16:amd64 2039s Re-Instated postgresql:amd64 2039s Broken autopkgtest-satdep:amd64 Depends on python3-behave:amd64 < none | 1.2.6-5 @un uH > 2039s Considering python3-behave:amd64 1 as a solution to autopkgtest-satdep:amd64 9998 2039s Re-Instated python3-parse:amd64 2039s Re-Instated python3-parse-type:amd64 2039s Re-Instated python3-behave:amd64 2039s Broken autopkgtest-satdep:amd64 Depends on python3-consul:amd64 < none | 0.7.1-2 @un uH > (>= 0.7.0) 2039s Considering python3-consul:amd64 0 as a solution to autopkgtest-satdep:amd64 9998 2039s Re-Instated python3-consul:amd64 2039s Broken autopkgtest-satdep:amd64 Depends on python3-coverage:amd64 < none | 7.4.4+dfsg1-0ubuntu2 @un uH > 2039s Considering python3-coverage:amd64 1 as a solution to autopkgtest-satdep:amd64 9998 2039s Re-Instated python3-coverage:amd64 2039s Broken autopkgtest-satdep:amd64 Depends on patroni:amd64 < none | 3.3.0-1 @un uH > 2039s Considering patroni:amd64 1 as a solution to autopkgtest-satdep:amd64 9998 2039s Re-Instated python3-cdiff:amd64 2039s Re-Instated python3-colorama:amd64 2039s Re-Instated python3-click:amd64 2039s Re-Instated python3-dateutil:amd64 2039s Re-Instated python3-wcwidth:amd64 2039s Re-Instated python3-prettytable:amd64 2039s Re-Instated python3-psutil:amd64 2039s Re-Instated python3-psycopg2:amd64 2039s Re-Instated patroni:amd64 2039s Broken autopkgtest-satdep:amd64 Depends on patroni-doc:amd64 < none | 3.3.0-1 @un uH > 2039s Considering patroni-doc:amd64 1 as a solution to autopkgtest-satdep:amd64 9998 2039s Re-Instated libjs-jquery:amd64 2039s Re-Instated libjs-underscore:amd64 2039s Re-Instated libjs-sphinxdoc:amd64 2039s Re-Instated fonts-font-awesome:amd64 2039s Re-Instated fonts-lato:amd64 2039s Re-Instated sphinx-rtd-theme-common:amd64 2039s Re-Instated patroni-doc:amd64 2039s Done 2039s Some packages could not be installed. This may mean that you have 2039s requested an impossible situation or if you are using the unstable 2039s distribution that some required packages have not yet been created 2039s or been moved out of Incoming. 2039s The following information may help to resolve the situation: 2039s 2039s The following packages have unmet dependencies: 2039s autopkgtest-satdep : Depends: consul but it is not installable 2039s E: Unable to correct problems, you have held broken packages. 2039s autopkgtest: WARNING: Test dependencies are unsatisfiable with using apt pinning. Retrying with using all packages from oracular-proposed 2039s Reading package lists... 2040s Building dependency tree... 2040s Reading state information... 2040s Starting pkgProblemResolver with broken count: 1 2040s Starting 2 pkgProblemResolver with broken count: 1 2040s Investigating (0) autopkgtest-satdep:amd64 < none -> 0 @un puN Ib > 2040s Broken autopkgtest-satdep:amd64 Depends on consul:amd64 < none @un H > 2040s Broken autopkgtest-satdep:amd64 Depends on moreutils:amd64 < none | 0.69-1 @un uH > 2040s Considering moreutils:amd64 1 as a solution to autopkgtest-satdep:amd64 9998 2040s Re-Instated libio-pty-perl:amd64 2040s Re-Instated libipc-run-perl:amd64 2040s Re-Instated libtime-duration-perl:amd64 2040s Re-Instated libtimedate-perl:amd64 2040s Re-Instated moreutils:amd64 2040s Broken autopkgtest-satdep:amd64 Depends on postgresql:amd64 < none | 16+260 @un uH > 2040s Considering postgresql:amd64 1 as a solution to autopkgtest-satdep:amd64 9998 2040s Re-Instated libpq5:amd64 2040s Re-Instated postgresql-client-common:amd64 2040s Re-Instated postgresql-client-16:amd64 2040s Re-Instated libjson-perl:amd64 2040s Re-Instated ssl-cert:amd64 2040s Re-Instated postgresql-common:amd64 2040s Re-Instated libllvm17t64:amd64 2040s Re-Instated libxslt1.1:amd64 2040s Re-Instated postgresql-16:amd64 2040s Re-Instated postgresql:amd64 2040s Broken autopkgtest-satdep:amd64 Depends on python3-behave:amd64 < none | 1.2.6-5 @un uH > 2040s Considering python3-behave:amd64 1 as a solution to autopkgtest-satdep:amd64 9998 2040s Re-Instated python3-parse:amd64 2040s Re-Instated python3-parse-type:amd64 2040s Re-Instated python3-behave:amd64 2040s Broken autopkgtest-satdep:amd64 Depends on python3-consul:amd64 < none | 0.7.1-2 @un uH > (>= 0.7.0) 2040s Considering python3-consul:amd64 0 as a solution to autopkgtest-satdep:amd64 9998 2040s Re-Instated python3-consul:amd64 2040s Broken autopkgtest-satdep:amd64 Depends on python3-coverage:amd64 < none | 7.4.4+dfsg1-0ubuntu2 @un uH > 2040s Considering python3-coverage:amd64 1 as a solution to autopkgtest-satdep:amd64 9998 2040s Re-Instated python3-coverage:amd64 2040s Broken autopkgtest-satdep:amd64 Depends on patroni:amd64 < none | 3.3.0-1 @un uH > 2040s Considering patroni:amd64 1 as a solution to autopkgtest-satdep:amd64 9998 2040s Re-Instated python3-cdiff:amd64 2040s Re-Instated python3-colorama:amd64 2040s Re-Instated python3-click:amd64 2040s Re-Instated python3-dateutil:amd64 2040s Re-Instated python3-wcwidth:amd64 2040s Re-Instated python3-prettytable:amd64 2040s Re-Instated python3-psutil:amd64 2040s Re-Instated python3-psycopg2:amd64 2040s Re-Instated patroni:amd64 2040s Broken autopkgtest-satdep:amd64 Depends on patroni-doc:amd64 < none | 3.3.0-1 @un uH > 2040s Considering patroni-doc:amd64 1 as a solution to autopkgtest-satdep:amd64 9998 2040s Re-Instated libjs-jquery:amd64 2040s Re-Instated libjs-underscore:amd64 2040s Re-Instated libjs-sphinxdoc:amd64 2040s Re-Instated fonts-font-awesome:amd64 2040s Re-Instated fonts-lato:amd64 2040s Re-Instated sphinx-rtd-theme-common:amd64 2040s Re-Instated patroni-doc:amd64 2040s Done 2040s Some packages could not be installed. This may mean that you have 2040s requested an impossible situation or if you are using the unstable 2040s distribution that some required packages have not yet been created 2040s or been moved out of Incoming. 2040s The following information may help to resolve the situation: 2040s 2040s The following packages have unmet dependencies: 2041s autopkgtest-satdep : Depends: consul but it is not installable 2041s E: Unable to correct problems, you have held broken packages. 2041s autopkgtest: WARNING: Test dependencies are unsatisfiable - calling apt install on test deps directly for further data about failing dependencies in test logs 2041s acceptance-consul SKIP installation fails and skip-not-installable set 2041s autopkgtest [19:51:04]: test acceptance-zookeeper: preparing testbed 2237s autopkgtest [19:54:20]: testbed dpkg architecture: amd64 2237s autopkgtest [19:54:20]: testbed apt version: 2.7.14build2 2237s autopkgtest [19:54:20]: @@@@@@@@@@@@@@@@@@@@ test bed setup 2237s Get:1 http://ftpmaster.internal/ubuntu oracular-proposed InRelease [73.9 kB] 2237s Get:2 http://ftpmaster.internal/ubuntu oracular-proposed/main Sources [134 kB] 2237s Get:3 http://ftpmaster.internal/ubuntu oracular-proposed/universe Sources [1681 kB] 2237s Get:4 http://ftpmaster.internal/ubuntu oracular-proposed/multiverse Sources [9872 B] 2237s Get:5 http://ftpmaster.internal/ubuntu oracular-proposed/restricted Sources [1964 B] 2237s Get:6 http://ftpmaster.internal/ubuntu oracular-proposed/main i386 Packages [194 kB] 2237s Get:7 http://ftpmaster.internal/ubuntu oracular-proposed/main amd64 Packages [233 kB] 2237s Get:8 http://ftpmaster.internal/ubuntu oracular-proposed/restricted amd64 Packages [7700 B] 2237s Get:9 http://ftpmaster.internal/ubuntu oracular-proposed/universe amd64 Packages [1927 kB] 2237s Get:10 http://ftpmaster.internal/ubuntu oracular-proposed/universe i386 Packages [921 kB] 2237s Get:11 http://ftpmaster.internal/ubuntu oracular-proposed/multiverse i386 Packages [6324 B] 2237s Get:12 http://ftpmaster.internal/ubuntu oracular-proposed/multiverse amd64 Packages [19.7 kB] 2238s Fetched 5210 kB in 1s (7173 kB/s) 2238s Reading package lists... 2239s Reading package lists... 2239s Building dependency tree... 2239s Reading state information... 2240s Calculating upgrade... 2240s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 2240s Reading package lists... 2240s Building dependency tree... 2240s Reading state information... 2241s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 2241s Hit:1 http://ftpmaster.internal/ubuntu oracular-proposed InRelease 2241s Hit:2 http://ftpmaster.internal/ubuntu oracular InRelease 2241s Hit:3 http://ftpmaster.internal/ubuntu oracular-updates InRelease 2241s Hit:4 http://ftpmaster.internal/ubuntu oracular-security InRelease 2242s Reading package lists... 2242s Reading package lists... 2242s Building dependency tree... 2242s Reading state information... 2243s Calculating upgrade... 2243s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 2243s Reading package lists... 2243s Building dependency tree... 2243s Reading state information... 2244s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 2245s Reading package lists... 2245s Building dependency tree... 2245s Reading state information... 2245s Starting pkgProblemResolver with broken count: 0 2245s Starting 2 pkgProblemResolver with broken count: 0 2245s Done 2246s The following additional packages will be installed: 2246s adwaita-icon-theme at-spi2-common ca-certificates-java 2246s dconf-gsettings-backend dconf-service default-jre default-jre-headless 2246s fontconfig fonts-font-awesome fonts-lato gtk-update-icon-cache 2246s hicolor-icon-theme humanity-icon-theme java-common junit4 libactivation-java 2246s libapache-pom-java libapr1t64 libasm-java libasound2-data libasound2t64 2246s libatinject-jsr330-api-java libatk-bridge2.0-0t64 libatk1.0-0t64 2246s libatspi2.0-0t64 libavahi-client3 libavahi-common-data libavahi-common3 2246s libcairo-gobject2 libcairo2 libcares2 libcolord2 libcommons-cli-java 2246s libcommons-io-java libcommons-logging-java libcommons-parent-java 2246s libcups2t64 libdatrie1 libdconf1 libdrm-amdgpu1 libdrm-intel1 2246s libdrm-nouveau2 libdrm-radeon1 libdropwizard-metrics-java 2246s libeclipse-jdt-core-java libel-api-java libepoxy0 liberror-prone-java 2246s libev4t64 libfindbugs-annotations-java libgdk-pixbuf-2.0-0 2246s libgdk-pixbuf2.0-common libgif7 libgl1 libgl1-mesa-dri libglapi-mesa 2246s libglvnd0 libglx-mesa0 libglx0 libgraphite2-3 libgtk-3-0t64 libgtk-3-common 2246s libguava-java libhamcrest-java libharfbuzz0b libio-pty-perl libipc-run-perl 2246s libjackson2-annotations-java libjackson2-core-java libjackson2-databind-java 2246s libjaxb-api-java libjctools-java libjetty9-extra-java libjetty9-java 2246s libjffi-java libjffi-jni libjnr-constants-java libjnr-enxio-java 2246s libjnr-ffi-java libjnr-posix-java libjnr-unixsocket-java libjnr-x86asm-java 2246s libjs-jquery libjs-sphinxdoc libjs-underscore libjson-perl libjsp-api-java 2246s libjsr305-java liblcms2-2 libllvm17t64 liblog4j1.2-java libmail-java 2246s libnetty-java libnetty-tcnative-java libnetty-tcnative-jni libpango-1.0-0 2246s libpangocairo-1.0-0 libpangoft2-1.0-0 libpciaccess0 libpcsclite1 2246s libpixman-1-0 libpq5 libservlet-api-java libslf4j-java libsnappy-java 2246s libsnappy-jni libsnappy1v5 libspring-beans-java libspring-core-java 2246s libtaglibs-standard-impl-java libtaglibs-standard-spec-java libthai-data 2246s libthai0 libtime-duration-perl libtimedate-perl libtomcat9-java libvulkan1 2246s libwayland-client0 libwayland-cursor0 libwayland-egl1 libwebsocket-api-java 2246s libx11-xcb1 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0 2246s libxcb-randr0 libxcb-render0 libxcb-shm0 libxcb-sync1 libxcb-xfixes0 2246s libxcomposite1 libxcursor1 libxdamage1 libxfixes3 libxi6 libxinerama1 2246s libxrandr2 libxrender1 libxshmfence1 libxslt1.1 libxtst6 libxxf86vm1 2246s libzookeeper-java moreutils openjdk-21-jre openjdk-21-jre-headless patroni 2246s patroni-doc postgresql postgresql-16 postgresql-client-16 2246s postgresql-client-common postgresql-common python3-behave python3-cdiff 2246s python3-click python3-colorama python3-coverage python3-dateutil 2246s python3-dnspython python3-eventlet python3-gevent python3-greenlet 2246s python3-kazoo python3-kerberos python3-parse python3-parse-type 2246s python3-prettytable python3-psutil python3-psycopg2 python3-pure-sasl 2246s python3-wcwidth python3-zope.event python3-zope.interface 2246s sphinx-rtd-theme-common ssl-cert ubuntu-mono x11-common zookeeper zookeeperd 2246s Suggested packages: 2246s alsa-utils libasound2-plugins libatinject-jsr330-api-java-doc colord 2246s libcommons-io-java-doc libavalon-framework-java libexcalibur-logkit-java 2246s cups-common gvfs libjackson2-annotations-java-doc jetty9 libjnr-ffi-java-doc 2246s libjnr-posix-java-doc libjsr305-java-doc liblcms2-utils liblog4j1.2-java-doc 2246s libmail-java-doc libbcpkix-java libcompress-lzf-java libjzlib-java 2246s liblog4j2-java libprotobuf-java pcscd libcglib-java libyaml-snake-java 2246s libaspectj-java libcommons-collections3-java tomcat9 libzookeeper-java-doc 2246s libnss-mdns fonts-dejavu-extra fonts-ipafont-gothic fonts-ipafont-mincho 2246s fonts-wqy-microhei | fonts-wqy-zenhei fonts-indic vip-manager haproxy 2246s postgresql-doc postgresql-doc-16 python-coverage-doc python3-trio 2246s python3-aioquic python3-h2 python3-httpx python3-httpcore 2246s python-eventlet-doc python-gevent-doc python-greenlet-dev 2246s python-greenlet-doc python-kazoo-doc python-psycopg2-doc 2246s Recommended packages: 2246s librsvg2-common alsa-ucm-conf alsa-topology-conf at-spi2-core 2246s libgdk-pixbuf2.0-bin libgl1-amber-dri libgtk-3-bin javascript-common 2246s libjson-xs-perl mesa-vulkan-drivers | vulkan-icd libatk-wrapper-java-jni 2246s fonts-dejavu-extra 2246s The following NEW packages will be installed: 2246s adwaita-icon-theme at-spi2-common autopkgtest-satdep ca-certificates-java 2246s dconf-gsettings-backend dconf-service default-jre default-jre-headless 2246s fontconfig fonts-font-awesome fonts-lato gtk-update-icon-cache 2246s hicolor-icon-theme humanity-icon-theme java-common junit4 libactivation-java 2246s libapache-pom-java libapr1t64 libasm-java libasound2-data libasound2t64 2246s libatinject-jsr330-api-java libatk-bridge2.0-0t64 libatk1.0-0t64 2246s libatspi2.0-0t64 libavahi-client3 libavahi-common-data libavahi-common3 2246s libcairo-gobject2 libcairo2 libcares2 libcolord2 libcommons-cli-java 2246s libcommons-io-java libcommons-logging-java libcommons-parent-java 2246s libcups2t64 libdatrie1 libdconf1 libdrm-amdgpu1 libdrm-intel1 2246s libdrm-nouveau2 libdrm-radeon1 libdropwizard-metrics-java 2246s libeclipse-jdt-core-java libel-api-java libepoxy0 liberror-prone-java 2246s libev4t64 libfindbugs-annotations-java libgdk-pixbuf-2.0-0 2246s libgdk-pixbuf2.0-common libgif7 libgl1 libgl1-mesa-dri libglapi-mesa 2246s libglvnd0 libglx-mesa0 libglx0 libgraphite2-3 libgtk-3-0t64 libgtk-3-common 2246s libguava-java libhamcrest-java libharfbuzz0b libio-pty-perl libipc-run-perl 2246s libjackson2-annotations-java libjackson2-core-java libjackson2-databind-java 2246s libjaxb-api-java libjctools-java libjetty9-extra-java libjetty9-java 2246s libjffi-java libjffi-jni libjnr-constants-java libjnr-enxio-java 2246s libjnr-ffi-java libjnr-posix-java libjnr-unixsocket-java libjnr-x86asm-java 2246s libjs-jquery libjs-sphinxdoc libjs-underscore libjson-perl libjsp-api-java 2246s libjsr305-java liblcms2-2 libllvm17t64 liblog4j1.2-java libmail-java 2246s libnetty-java libnetty-tcnative-java libnetty-tcnative-jni libpango-1.0-0 2246s libpangocairo-1.0-0 libpangoft2-1.0-0 libpciaccess0 libpcsclite1 2246s libpixman-1-0 libpq5 libservlet-api-java libslf4j-java libsnappy-java 2246s libsnappy-jni libsnappy1v5 libspring-beans-java libspring-core-java 2246s libtaglibs-standard-impl-java libtaglibs-standard-spec-java libthai-data 2246s libthai0 libtime-duration-perl libtimedate-perl libtomcat9-java libvulkan1 2246s libwayland-client0 libwayland-cursor0 libwayland-egl1 libwebsocket-api-java 2246s libx11-xcb1 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0 2246s libxcb-randr0 libxcb-render0 libxcb-shm0 libxcb-sync1 libxcb-xfixes0 2246s libxcomposite1 libxcursor1 libxdamage1 libxfixes3 libxi6 libxinerama1 2246s libxrandr2 libxrender1 libxshmfence1 libxslt1.1 libxtst6 libxxf86vm1 2246s libzookeeper-java moreutils openjdk-21-jre openjdk-21-jre-headless patroni 2246s patroni-doc postgresql postgresql-16 postgresql-client-16 2246s postgresql-client-common postgresql-common python3-behave python3-cdiff 2246s python3-click python3-colorama python3-coverage python3-dateutil 2246s python3-dnspython python3-eventlet python3-gevent python3-greenlet 2246s python3-kazoo python3-kerberos python3-parse python3-parse-type 2246s python3-prettytable python3-psutil python3-psycopg2 python3-pure-sasl 2246s python3-wcwidth python3-zope.event python3-zope.interface 2246s sphinx-rtd-theme-common ssl-cert ubuntu-mono x11-common zookeeper zookeeperd 2246s 0 upgraded, 182 newly installed, 0 to remove and 0 not upgraded. 2246s Need to get 154 MB/154 MB of archives. 2246s After this operation, 569 MB of additional disk space will be used. 2246s Get:1 /tmp/autopkgtest.j0Dj5k/5-autopkgtest-satdep.deb autopkgtest-satdep amd64 0 [768 B] 2246s Get:2 http://ftpmaster.internal/ubuntu oracular/main amd64 fonts-lato all 2.015-1 [2781 kB] 2246s Get:3 http://ftpmaster.internal/ubuntu oracular/main amd64 libjson-perl all 4.10000-1 [81.9 kB] 2246s Get:4 http://ftpmaster.internal/ubuntu oracular/main amd64 postgresql-client-common all 257build1 [36.3 kB] 2246s Get:5 http://ftpmaster.internal/ubuntu oracular/main amd64 ssl-cert all 1.1.2ubuntu1 [17.8 kB] 2246s Get:6 http://ftpmaster.internal/ubuntu oracular/main amd64 postgresql-common all 257build1 [161 kB] 2246s Get:7 http://ftpmaster.internal/ubuntu oracular/main amd64 ca-certificates-java all 20240118 [11.6 kB] 2246s Get:8 http://ftpmaster.internal/ubuntu oracular/main amd64 java-common all 0.75+exp1 [6798 B] 2246s Get:9 http://ftpmaster.internal/ubuntu oracular/main amd64 liblcms2-2 amd64 2.14-2build1 [161 kB] 2246s Get:10 http://ftpmaster.internal/ubuntu oracular/main amd64 libpcsclite1 amd64 2.0.3-1build1 [21.4 kB] 2246s Get:11 http://ftpmaster.internal/ubuntu oracular-proposed/main amd64 openjdk-21-jre-headless amd64 21.0.3+9-1ubuntu1 [46.6 MB] 2247s Get:12 http://ftpmaster.internal/ubuntu oracular/main amd64 default-jre-headless amd64 2:1.21-75+exp1 [3094 B] 2247s Get:13 http://ftpmaster.internal/ubuntu oracular/main amd64 libgdk-pixbuf2.0-common all 2.42.10+dfsg-3ubuntu3 [7852 B] 2247s Get:14 http://ftpmaster.internal/ubuntu oracular/main amd64 libgdk-pixbuf-2.0-0 amd64 2.42.10+dfsg-3ubuntu3 [147 kB] 2247s Get:15 http://ftpmaster.internal/ubuntu oracular/main amd64 gtk-update-icon-cache amd64 3.24.41-4ubuntu1 [51.6 kB] 2247s Get:16 http://ftpmaster.internal/ubuntu oracular/main amd64 hicolor-icon-theme all 0.17-2 [9976 B] 2247s Get:17 http://ftpmaster.internal/ubuntu oracular/main amd64 humanity-icon-theme all 0.6.16 [1282 kB] 2247s Get:18 http://ftpmaster.internal/ubuntu oracular/main amd64 ubuntu-mono all 24.04-0ubuntu1 [151 kB] 2247s Get:19 http://ftpmaster.internal/ubuntu oracular/main amd64 adwaita-icon-theme all 46.0-1 [723 kB] 2247s Get:20 http://ftpmaster.internal/ubuntu oracular/main amd64 at-spi2-common all 2.52.0-1build1 [8674 B] 2247s Get:21 http://ftpmaster.internal/ubuntu oracular/main amd64 libatk1.0-0t64 amd64 2.52.0-1build1 [55.3 kB] 2247s Get:22 http://ftpmaster.internal/ubuntu oracular/main amd64 libxi6 amd64 2:1.8.1-1build1 [32.4 kB] 2247s Get:23 http://ftpmaster.internal/ubuntu oracular/main amd64 libatspi2.0-0t64 amd64 2.52.0-1build1 [80.5 kB] 2247s Get:24 http://ftpmaster.internal/ubuntu oracular/main amd64 libatk-bridge2.0-0t64 amd64 2.52.0-1build1 [66.0 kB] 2247s Get:25 http://ftpmaster.internal/ubuntu oracular/main amd64 libpixman-1-0 amd64 0.42.2-1build1 [279 kB] 2247s Get:26 http://ftpmaster.internal/ubuntu oracular/main amd64 libxcb-render0 amd64 1.15-1ubuntu2 [16.2 kB] 2247s Get:27 http://ftpmaster.internal/ubuntu oracular/main amd64 libxcb-shm0 amd64 1.15-1ubuntu2 [5756 B] 2247s Get:28 http://ftpmaster.internal/ubuntu oracular/main amd64 libxrender1 amd64 1:0.9.10-1.1build1 [19.0 kB] 2247s Get:29 http://ftpmaster.internal/ubuntu oracular/main amd64 libcairo2 amd64 1.18.0-3build1 [566 kB] 2247s Get:30 http://ftpmaster.internal/ubuntu oracular/main amd64 libcairo-gobject2 amd64 1.18.0-3build1 [127 kB] 2247s Get:31 http://ftpmaster.internal/ubuntu oracular/main amd64 libcolord2 amd64 1.4.7-1build2 [149 kB] 2247s Get:32 http://ftpmaster.internal/ubuntu oracular/main amd64 libavahi-common-data amd64 0.8-13ubuntu6 [29.7 kB] 2247s Get:33 http://ftpmaster.internal/ubuntu oracular/main amd64 libavahi-common3 amd64 0.8-13ubuntu6 [23.3 kB] 2247s Get:34 http://ftpmaster.internal/ubuntu oracular/main amd64 libavahi-client3 amd64 0.8-13ubuntu6 [26.8 kB] 2247s Get:35 http://ftpmaster.internal/ubuntu oracular/main amd64 libcups2t64 amd64 2.4.7-1.2ubuntu7 [270 kB] 2247s Get:36 http://ftpmaster.internal/ubuntu oracular/main amd64 libepoxy0 amd64 1.5.10-1build1 [220 kB] 2247s Get:37 http://ftpmaster.internal/ubuntu oracular/main amd64 libgraphite2-3 amd64 1.3.14-2build1 [73.0 kB] 2247s Get:38 http://ftpmaster.internal/ubuntu oracular/main amd64 libharfbuzz0b amd64 8.3.0-2build2 [469 kB] 2247s Get:39 http://ftpmaster.internal/ubuntu oracular/main amd64 fontconfig amd64 2.15.0-1.1ubuntu2 [180 kB] 2247s Get:40 http://ftpmaster.internal/ubuntu oracular/main amd64 libthai-data all 0.1.29-2build1 [158 kB] 2247s Get:41 http://ftpmaster.internal/ubuntu oracular/main amd64 libdatrie1 amd64 0.2.13-3build1 [19.0 kB] 2247s Get:42 http://ftpmaster.internal/ubuntu oracular/main amd64 libthai0 amd64 0.1.29-2build1 [18.9 kB] 2247s Get:43 http://ftpmaster.internal/ubuntu oracular/main amd64 libpango-1.0-0 amd64 1.52.1+ds-1build1 [231 kB] 2247s Get:44 http://ftpmaster.internal/ubuntu oracular/main amd64 libpangoft2-1.0-0 amd64 1.52.1+ds-1build1 [42.5 kB] 2247s Get:45 http://ftpmaster.internal/ubuntu oracular/main amd64 libpangocairo-1.0-0 amd64 1.52.1+ds-1build1 [28.8 kB] 2247s Get:46 http://ftpmaster.internal/ubuntu oracular/main amd64 libwayland-client0 amd64 1.22.0-2.1build1 [26.4 kB] 2247s Get:47 http://ftpmaster.internal/ubuntu oracular/main amd64 libwayland-cursor0 amd64 1.22.0-2.1build1 [10.4 kB] 2247s Get:48 http://ftpmaster.internal/ubuntu oracular/main amd64 libwayland-egl1 amd64 1.22.0-2.1build1 [5628 B] 2247s Get:49 http://ftpmaster.internal/ubuntu oracular/main amd64 libxcomposite1 amd64 1:0.4.5-1build3 [6320 B] 2247s Get:50 http://ftpmaster.internal/ubuntu oracular/main amd64 libxfixes3 amd64 1:6.0.0-2build1 [10.8 kB] 2247s Get:51 http://ftpmaster.internal/ubuntu oracular/main amd64 libxcursor1 amd64 1:1.2.1-1build1 [20.7 kB] 2247s Get:52 http://ftpmaster.internal/ubuntu oracular/main amd64 libxdamage1 amd64 1:1.1.6-1build1 [6150 B] 2247s Get:53 http://ftpmaster.internal/ubuntu oracular/main amd64 libxinerama1 amd64 2:1.1.4-3build1 [6396 B] 2247s Get:54 http://ftpmaster.internal/ubuntu oracular/main amd64 libxrandr2 amd64 2:1.5.2-2build1 [19.7 kB] 2247s Get:55 http://ftpmaster.internal/ubuntu oracular/main amd64 libdconf1 amd64 0.40.0-4build2 [39.4 kB] 2247s Get:56 http://ftpmaster.internal/ubuntu oracular/main amd64 dconf-service amd64 0.40.0-4build2 [27.5 kB] 2247s Get:57 http://ftpmaster.internal/ubuntu oracular/main amd64 dconf-gsettings-backend amd64 0.40.0-4build2 [22.1 kB] 2247s Get:58 http://ftpmaster.internal/ubuntu oracular/main amd64 libgtk-3-common all 3.24.41-4ubuntu1 [1202 kB] 2247s Get:59 http://ftpmaster.internal/ubuntu oracular/main amd64 libgtk-3-0t64 amd64 3.24.41-4ubuntu1 [2901 kB] 2247s Get:60 http://ftpmaster.internal/ubuntu oracular/main amd64 libglvnd0 amd64 1.7.0-1build1 [69.6 kB] 2247s Get:61 http://ftpmaster.internal/ubuntu oracular/main amd64 libglapi-mesa amd64 24.0.5-1ubuntu1 [41.0 kB] 2247s Get:62 http://ftpmaster.internal/ubuntu oracular/main amd64 libx11-xcb1 amd64 2:1.8.7-1build1 [7800 B] 2247s Get:63 http://ftpmaster.internal/ubuntu oracular/main amd64 libxcb-dri2-0 amd64 1.15-1ubuntu2 [7222 B] 2247s Get:64 http://ftpmaster.internal/ubuntu oracular/main amd64 libxcb-dri3-0 amd64 1.15-1ubuntu2 [7142 B] 2247s Get:65 http://ftpmaster.internal/ubuntu oracular/main amd64 libxcb-glx0 amd64 1.15-1ubuntu2 [24.8 kB] 2247s Get:66 http://ftpmaster.internal/ubuntu oracular/main amd64 libxcb-present0 amd64 1.15-1ubuntu2 [5676 B] 2247s Get:67 http://ftpmaster.internal/ubuntu oracular/main amd64 libxcb-randr0 amd64 1.15-1ubuntu2 [17.9 kB] 2247s Get:68 http://ftpmaster.internal/ubuntu oracular/main amd64 libxcb-sync1 amd64 1.15-1ubuntu2 [9312 B] 2247s Get:69 http://ftpmaster.internal/ubuntu oracular/main amd64 libxcb-xfixes0 amd64 1.15-1ubuntu2 [10.2 kB] 2247s Get:70 http://ftpmaster.internal/ubuntu oracular/main amd64 libxshmfence1 amd64 1.3-1build5 [4764 B] 2247s Get:71 http://ftpmaster.internal/ubuntu oracular/main amd64 libxxf86vm1 amd64 1:1.1.4-1build4 [9282 B] 2247s Get:72 http://ftpmaster.internal/ubuntu oracular/main amd64 libvulkan1 amd64 1.3.280.0-1 [141 kB] 2247s Get:73 http://ftpmaster.internal/ubuntu oracular/main amd64 libdrm-amdgpu1 amd64 2.4.120-2build1 [20.2 kB] 2247s Get:74 http://ftpmaster.internal/ubuntu oracular/main amd64 libpciaccess0 amd64 0.17-3build1 [18.6 kB] 2247s Get:75 http://ftpmaster.internal/ubuntu oracular/main amd64 libdrm-intel1 amd64 2.4.120-2build1 [63.8 kB] 2247s Get:76 http://ftpmaster.internal/ubuntu oracular/main amd64 libdrm-nouveau2 amd64 2.4.120-2build1 [17.7 kB] 2247s Get:77 http://ftpmaster.internal/ubuntu oracular/main amd64 libdrm-radeon1 amd64 2.4.120-2build1 [20.8 kB] 2247s Get:78 http://ftpmaster.internal/ubuntu oracular/main amd64 libllvm17t64 amd64 1:17.0.6-9ubuntu1 [26.2 MB] 2247s Get:79 http://ftpmaster.internal/ubuntu oracular/main amd64 libgl1-mesa-dri amd64 24.0.5-1ubuntu1 [8939 kB] 2247s Get:80 http://ftpmaster.internal/ubuntu oracular/main amd64 libglx-mesa0 amd64 24.0.5-1ubuntu1 [154 kB] 2247s Get:81 http://ftpmaster.internal/ubuntu oracular/main amd64 libglx0 amd64 1.7.0-1build1 [38.6 kB] 2247s Get:82 http://ftpmaster.internal/ubuntu oracular/main amd64 libgl1 amd64 1.7.0-1build1 [102 kB] 2247s Get:83 http://ftpmaster.internal/ubuntu oracular/main amd64 libasound2-data all 1.2.11-1build2 [21.0 kB] 2247s Get:84 http://ftpmaster.internal/ubuntu oracular/main amd64 libasound2t64 amd64 1.2.11-1build2 [399 kB] 2247s Get:85 http://ftpmaster.internal/ubuntu oracular/main amd64 libgif7 amd64 5.2.2-1ubuntu1 [35.2 kB] 2247s Get:86 http://ftpmaster.internal/ubuntu oracular/main amd64 x11-common all 1:7.7+23ubuntu3 [21.7 kB] 2247s Get:87 http://ftpmaster.internal/ubuntu oracular/main amd64 libxtst6 amd64 2:1.2.3-1.1build1 [12.6 kB] 2247s Get:88 http://ftpmaster.internal/ubuntu oracular-proposed/main amd64 openjdk-21-jre amd64 21.0.3+9-1ubuntu1 [226 kB] 2247s Get:89 http://ftpmaster.internal/ubuntu oracular/main amd64 default-jre amd64 2:1.21-75+exp1 [922 B] 2247s Get:90 http://ftpmaster.internal/ubuntu oracular/universe amd64 libhamcrest-java all 2.2-2 [117 kB] 2247s Get:91 http://ftpmaster.internal/ubuntu oracular/universe amd64 junit4 all 4.13.2-4 [347 kB] 2247s Get:92 http://ftpmaster.internal/ubuntu oracular/universe amd64 libcommons-cli-java all 1.6.0-1 [59.9 kB] 2247s Get:93 http://ftpmaster.internal/ubuntu oracular/universe amd64 libapache-pom-java all 29-2 [5284 B] 2247s Get:94 http://ftpmaster.internal/ubuntu oracular/universe amd64 libcommons-parent-java all 56-1 [10.7 kB] 2247s Get:95 http://ftpmaster.internal/ubuntu oracular/universe amd64 libcommons-io-java all 2.11.0-2 [297 kB] 2247s Get:96 http://ftpmaster.internal/ubuntu oracular/universe amd64 libdropwizard-metrics-java all 3.2.6-1 [240 kB] 2247s Get:97 http://ftpmaster.internal/ubuntu oracular/universe amd64 libfindbugs-annotations-java all 3.1.0~preview2-3 [49.2 kB] 2247s Get:98 http://ftpmaster.internal/ubuntu oracular/universe amd64 libatinject-jsr330-api-java all 1.0+ds1-5 [5348 B] 2247s Get:99 http://ftpmaster.internal/ubuntu oracular/universe amd64 liberror-prone-java all 2.18.0-1 [22.5 kB] 2247s Get:100 http://ftpmaster.internal/ubuntu oracular/universe amd64 libjsr305-java all 0.1~+svn49-11 [27.0 kB] 2247s Get:101 http://ftpmaster.internal/ubuntu oracular/universe amd64 libguava-java all 32.0.1-1 [2692 kB] 2247s Get:102 http://ftpmaster.internal/ubuntu oracular/universe amd64 libjackson2-annotations-java all 2.14.0-1 [64.7 kB] 2247s Get:103 http://ftpmaster.internal/ubuntu oracular/universe amd64 libjackson2-core-java all 2.14.1-1 [432 kB] 2247s Get:104 http://ftpmaster.internal/ubuntu oracular/universe amd64 libjackson2-databind-java all 2.14.0-1 [1531 kB] 2247s Get:105 http://ftpmaster.internal/ubuntu oracular/universe amd64 libasm-java all 9.7-1 [392 kB] 2247s Get:106 http://ftpmaster.internal/ubuntu oracular/universe amd64 libel-api-java all 3.0.0-3 [64.9 kB] 2247s Get:107 http://ftpmaster.internal/ubuntu oracular/universe amd64 libjsp-api-java all 2.3.4-3 [53.7 kB] 2247s Get:108 http://ftpmaster.internal/ubuntu oracular/universe amd64 libservlet-api-java all 4.0.1-2 [81.0 kB] 2247s Get:109 http://ftpmaster.internal/ubuntu oracular/universe amd64 libwebsocket-api-java all 1.1-2 [40.1 kB] 2247s Get:110 http://ftpmaster.internal/ubuntu oracular/universe amd64 libjetty9-java all 9.4.54-1 [2787 kB] 2247s Get:111 http://ftpmaster.internal/ubuntu oracular/universe amd64 libjnr-constants-java all 0.10.4-2 [1397 kB] 2247s Get:112 http://ftpmaster.internal/ubuntu oracular/universe amd64 libjffi-jni amd64 1.3.13+ds-1 [27.3 kB] 2247s Get:113 http://ftpmaster.internal/ubuntu oracular/universe amd64 libjffi-java all 1.3.13+ds-1 [112 kB] 2247s Get:114 http://ftpmaster.internal/ubuntu oracular/universe amd64 libjnr-x86asm-java all 1.0.2-5.1 [207 kB] 2247s Get:115 http://ftpmaster.internal/ubuntu oracular/universe amd64 libjnr-ffi-java all 2.2.15-2 [627 kB] 2247s Get:116 http://ftpmaster.internal/ubuntu oracular/universe amd64 libjnr-enxio-java all 0.32.16-1 [33.7 kB] 2247s Get:117 http://ftpmaster.internal/ubuntu oracular/universe amd64 libjnr-posix-java all 3.1.18-1 [267 kB] 2247s Get:118 http://ftpmaster.internal/ubuntu oracular/universe amd64 libjnr-unixsocket-java all 0.38.21-2 [46.9 kB] 2247s Get:119 http://ftpmaster.internal/ubuntu oracular/universe amd64 libactivation-java all 1.2.0-2 [84.7 kB] 2247s Get:120 http://ftpmaster.internal/ubuntu oracular/universe amd64 libmail-java all 1.6.5-2 [681 kB] 2248s Get:121 http://ftpmaster.internal/ubuntu oracular/universe amd64 libcommons-logging-java all 1.3.0-1ubuntu1 [63.8 kB] 2248s Get:122 http://ftpmaster.internal/ubuntu oracular/universe amd64 libjaxb-api-java all 2.3.1-1 [119 kB] 2248s Get:123 http://ftpmaster.internal/ubuntu oracular/universe amd64 libspring-core-java all 4.3.30-2 [1015 kB] 2248s Get:124 http://ftpmaster.internal/ubuntu oracular/universe amd64 libspring-beans-java all 4.3.30-2 [675 kB] 2248s Get:125 http://ftpmaster.internal/ubuntu oracular/universe amd64 libtaglibs-standard-spec-java all 1.2.5-3 [35.2 kB] 2248s Get:126 http://ftpmaster.internal/ubuntu oracular/universe amd64 libtaglibs-standard-impl-java all 1.2.5-3 [182 kB] 2248s Get:127 http://ftpmaster.internal/ubuntu oracular/universe amd64 libeclipse-jdt-core-java all 3.32.0+eclipse4.26-2 [6438 kB] 2248s Get:128 http://ftpmaster.internal/ubuntu oracular/universe amd64 libtomcat9-java all 9.0.70-2 [6154 kB] 2248s Get:129 http://ftpmaster.internal/ubuntu oracular/universe amd64 libjetty9-extra-java all 9.4.54-1 [1199 kB] 2248s Get:130 http://ftpmaster.internal/ubuntu oracular/universe amd64 libjctools-java all 2.0.2-1 [188 kB] 2248s Get:131 http://ftpmaster.internal/ubuntu oracular/universe amd64 libnetty-java all 1:4.1.48-10 [3628 kB] 2248s Get:132 http://ftpmaster.internal/ubuntu oracular/universe amd64 libslf4j-java all 1.7.32-1 [141 kB] 2248s Get:133 http://ftpmaster.internal/ubuntu oracular/main amd64 libsnappy1v5 amd64 1.2.0-2 [30.3 kB] 2248s Get:134 http://ftpmaster.internal/ubuntu oracular/universe amd64 libsnappy-jni amd64 1.1.10.5-2 [6622 B] 2248s Get:135 http://ftpmaster.internal/ubuntu oracular/universe amd64 libsnappy-java all 1.1.10.5-2 [83.7 kB] 2248s Get:136 http://ftpmaster.internal/ubuntu oracular/main amd64 libapr1t64 amd64 1.7.2-3.1build2 [107 kB] 2248s Get:137 http://ftpmaster.internal/ubuntu oracular/universe amd64 libnetty-tcnative-jni amd64 2.0.28-1build4 [35.7 kB] 2248s Get:138 http://ftpmaster.internal/ubuntu oracular/universe amd64 libnetty-tcnative-java all 2.0.28-1build4 [24.8 kB] 2248s Get:139 http://ftpmaster.internal/ubuntu oracular/universe amd64 liblog4j1.2-java all 1.2.17-11 [439 kB] 2248s Get:140 http://ftpmaster.internal/ubuntu oracular-proposed/universe amd64 libzookeeper-java all 3.9.2-2 [1885 kB] 2248s Get:141 http://ftpmaster.internal/ubuntu oracular-proposed/universe amd64 zookeeper all 3.9.2-2 [57.8 kB] 2248s Get:142 http://ftpmaster.internal/ubuntu oracular-proposed/universe amd64 zookeeperd all 3.9.2-2 [6036 B] 2248s Get:143 http://ftpmaster.internal/ubuntu oracular/main amd64 fonts-font-awesome all 5.0.10+really4.7.0~dfsg-4.1 [516 kB] 2248s Get:144 http://ftpmaster.internal/ubuntu oracular/main amd64 libcares2 amd64 1.27.0-1.0ubuntu1 [73.7 kB] 2248s Get:145 http://ftpmaster.internal/ubuntu oracular/universe amd64 libev4t64 amd64 1:4.33-2.1build1 [31.0 kB] 2248s Get:146 http://ftpmaster.internal/ubuntu oracular/main amd64 libio-pty-perl amd64 1:1.20-1build2 [31.2 kB] 2248s Get:147 http://ftpmaster.internal/ubuntu oracular/main amd64 libipc-run-perl all 20231003.0-1 [92.1 kB] 2248s Get:148 http://ftpmaster.internal/ubuntu oracular/main amd64 libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 2248s Get:149 http://ftpmaster.internal/ubuntu oracular/main amd64 libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [118 kB] 2248s Get:150 http://ftpmaster.internal/ubuntu oracular/main amd64 libjs-sphinxdoc all 7.2.6-6 [149 kB] 2248s Get:151 http://ftpmaster.internal/ubuntu oracular/main amd64 libpq5 amd64 16.2-1ubuntu4 [138 kB] 2248s Get:152 http://ftpmaster.internal/ubuntu oracular/main amd64 libtime-duration-perl all 1.21-2 [12.3 kB] 2248s Get:153 http://ftpmaster.internal/ubuntu oracular/main amd64 libtimedate-perl all 2.3300-2 [34.0 kB] 2248s Get:154 http://ftpmaster.internal/ubuntu oracular/main amd64 libxslt1.1 amd64 1.1.39-0exp1build1 [167 kB] 2248s Get:155 http://ftpmaster.internal/ubuntu oracular/universe amd64 moreutils amd64 0.69-1 [56.4 kB] 2248s Get:156 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-cdiff all 1.0-1.1 [16.4 kB] 2248s Get:157 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-colorama all 0.4.6-4 [32.1 kB] 2248s Get:158 http://ftpmaster.internal/ubuntu oracular-proposed/main amd64 python3-click all 8.1.7-1 [79.1 kB] 2248s Get:159 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-dateutil all 2.8.2-3ubuntu1 [79.4 kB] 2248s Get:160 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-wcwidth all 0.2.5+dfsg1-1.1ubuntu1 [22.5 kB] 2248s Get:161 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-prettytable all 3.6.0-2 [32.8 kB] 2248s Get:162 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-psutil amd64 5.9.8-2build2 [195 kB] 2248s Get:163 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-psycopg2 amd64 2.9.9-1build1 [131 kB] 2248s Get:164 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-greenlet amd64 3.0.3-0ubuntu5 [154 kB] 2248s Get:165 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-dnspython all 2.6.1-1ubuntu1 [163 kB] 2248s Get:166 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-eventlet all 0.35.2-0ubuntu1 [274 kB] 2248s Get:167 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-zope.event all 5.0-0.1 [7512 B] 2248s Get:168 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-zope.interface amd64 6.1-1build1 [137 kB] 2248s Get:169 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-gevent amd64 24.2.1-0.1ubuntu2 [806 kB] 2248s Get:170 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-kerberos amd64 1.1.14-3.1build9 [21.2 kB] 2248s Get:171 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-pure-sasl all 0.5.1+dfsg1-4 [11.4 kB] 2248s Get:172 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-kazoo all 2.9.0-2 [103 kB] 2248s Get:173 http://ftpmaster.internal/ubuntu oracular/universe amd64 patroni all 3.3.0-1 [264 kB] 2248s Get:174 http://ftpmaster.internal/ubuntu oracular/main amd64 sphinx-rtd-theme-common all 2.0.0+dfsg-1 [1012 kB] 2248s Get:175 http://ftpmaster.internal/ubuntu oracular/universe amd64 patroni-doc all 3.3.0-1 [496 kB] 2248s Get:176 http://ftpmaster.internal/ubuntu oracular/main amd64 postgresql-client-16 amd64 16.2-1ubuntu4 [1269 kB] 2248s Get:177 http://ftpmaster.internal/ubuntu oracular/main amd64 postgresql-16 amd64 16.2-1ubuntu4 [15.5 MB] 2248s Get:178 http://ftpmaster.internal/ubuntu oracular/main amd64 postgresql all 16+257build1 [11.5 kB] 2248s Get:179 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-parse all 1.19.0-0.2 [18.1 kB] 2248s Get:180 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-parse-type all 0.6.2-1 [22.7 kB] 2248s Get:181 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-behave all 1.2.6-5 [98.4 kB] 2248s Get:182 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-coverage amd64 7.4.4+dfsg1-0ubuntu2 [147 kB] 2249s Preconfiguring packages ... 2249s Fetched 154 MB in 2s (68.5 MB/s) 2249s Selecting previously unselected package fonts-lato. 2249s (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 ... 73899 files and directories currently installed.) 2249s Preparing to unpack .../000-fonts-lato_2.015-1_all.deb ... 2249s Unpacking fonts-lato (2.015-1) ... 2249s Selecting previously unselected package libjson-perl. 2249s Preparing to unpack .../001-libjson-perl_4.10000-1_all.deb ... 2249s Unpacking libjson-perl (4.10000-1) ... 2249s Selecting previously unselected package postgresql-client-common. 2249s Preparing to unpack .../002-postgresql-client-common_257build1_all.deb ... 2249s Unpacking postgresql-client-common (257build1) ... 2249s Selecting previously unselected package ssl-cert. 2249s Preparing to unpack .../003-ssl-cert_1.1.2ubuntu1_all.deb ... 2249s Unpacking ssl-cert (1.1.2ubuntu1) ... 2249s Selecting previously unselected package postgresql-common. 2249s Preparing to unpack .../004-postgresql-common_257build1_all.deb ... 2249s Adding 'diversion of /usr/bin/pg_config to /usr/bin/pg_config.libpq-dev by postgresql-common' 2249s Unpacking postgresql-common (257build1) ... 2250s Selecting previously unselected package ca-certificates-java. 2250s Preparing to unpack .../005-ca-certificates-java_20240118_all.deb ... 2250s Unpacking ca-certificates-java (20240118) ... 2250s Selecting previously unselected package java-common. 2250s Preparing to unpack .../006-java-common_0.75+exp1_all.deb ... 2250s Unpacking java-common (0.75+exp1) ... 2250s Selecting previously unselected package liblcms2-2:amd64. 2250s Preparing to unpack .../007-liblcms2-2_2.14-2build1_amd64.deb ... 2250s Unpacking liblcms2-2:amd64 (2.14-2build1) ... 2250s Selecting previously unselected package libpcsclite1:amd64. 2250s Preparing to unpack .../008-libpcsclite1_2.0.3-1build1_amd64.deb ... 2250s Unpacking libpcsclite1:amd64 (2.0.3-1build1) ... 2250s Selecting previously unselected package openjdk-21-jre-headless:amd64. 2250s Preparing to unpack .../009-openjdk-21-jre-headless_21.0.3+9-1ubuntu1_amd64.deb ... 2250s Unpacking openjdk-21-jre-headless:amd64 (21.0.3+9-1ubuntu1) ... 2251s Selecting previously unselected package default-jre-headless. 2251s Preparing to unpack .../010-default-jre-headless_2%3a1.21-75+exp1_amd64.deb ... 2251s Unpacking default-jre-headless (2:1.21-75+exp1) ... 2251s Selecting previously unselected package libgdk-pixbuf2.0-common. 2251s Preparing to unpack .../011-libgdk-pixbuf2.0-common_2.42.10+dfsg-3ubuntu3_all.deb ... 2251s Unpacking libgdk-pixbuf2.0-common (2.42.10+dfsg-3ubuntu3) ... 2251s Selecting previously unselected package libgdk-pixbuf-2.0-0:amd64. 2251s Preparing to unpack .../012-libgdk-pixbuf-2.0-0_2.42.10+dfsg-3ubuntu3_amd64.deb ... 2251s Unpacking libgdk-pixbuf-2.0-0:amd64 (2.42.10+dfsg-3ubuntu3) ... 2251s Selecting previously unselected package gtk-update-icon-cache. 2251s Preparing to unpack .../013-gtk-update-icon-cache_3.24.41-4ubuntu1_amd64.deb ... 2251s Unpacking gtk-update-icon-cache (3.24.41-4ubuntu1) ... 2251s Selecting previously unselected package hicolor-icon-theme. 2251s Preparing to unpack .../014-hicolor-icon-theme_0.17-2_all.deb ... 2251s Unpacking hicolor-icon-theme (0.17-2) ... 2251s Selecting previously unselected package humanity-icon-theme. 2251s Preparing to unpack .../015-humanity-icon-theme_0.6.16_all.deb ... 2251s Unpacking humanity-icon-theme (0.6.16) ... 2252s Selecting previously unselected package ubuntu-mono. 2252s Preparing to unpack .../016-ubuntu-mono_24.04-0ubuntu1_all.deb ... 2252s Unpacking ubuntu-mono (24.04-0ubuntu1) ... 2252s Selecting previously unselected package adwaita-icon-theme. 2252s Preparing to unpack .../017-adwaita-icon-theme_46.0-1_all.deb ... 2252s Unpacking adwaita-icon-theme (46.0-1) ... 2252s Selecting previously unselected package at-spi2-common. 2252s Preparing to unpack .../018-at-spi2-common_2.52.0-1build1_all.deb ... 2252s Unpacking at-spi2-common (2.52.0-1build1) ... 2253s Selecting previously unselected package libatk1.0-0t64:amd64. 2253s Preparing to unpack .../019-libatk1.0-0t64_2.52.0-1build1_amd64.deb ... 2253s Unpacking libatk1.0-0t64:amd64 (2.52.0-1build1) ... 2253s Selecting previously unselected package libxi6:amd64. 2253s Preparing to unpack .../020-libxi6_2%3a1.8.1-1build1_amd64.deb ... 2253s Unpacking libxi6:amd64 (2:1.8.1-1build1) ... 2253s Selecting previously unselected package libatspi2.0-0t64:amd64. 2253s Preparing to unpack .../021-libatspi2.0-0t64_2.52.0-1build1_amd64.deb ... 2253s Unpacking libatspi2.0-0t64:amd64 (2.52.0-1build1) ... 2253s Selecting previously unselected package libatk-bridge2.0-0t64:amd64. 2253s Preparing to unpack .../022-libatk-bridge2.0-0t64_2.52.0-1build1_amd64.deb ... 2253s Unpacking libatk-bridge2.0-0t64:amd64 (2.52.0-1build1) ... 2253s Selecting previously unselected package libpixman-1-0:amd64. 2253s Preparing to unpack .../023-libpixman-1-0_0.42.2-1build1_amd64.deb ... 2253s Unpacking libpixman-1-0:amd64 (0.42.2-1build1) ... 2253s Selecting previously unselected package libxcb-render0:amd64. 2253s Preparing to unpack .../024-libxcb-render0_1.15-1ubuntu2_amd64.deb ... 2253s Unpacking libxcb-render0:amd64 (1.15-1ubuntu2) ... 2253s Selecting previously unselected package libxcb-shm0:amd64. 2253s Preparing to unpack .../025-libxcb-shm0_1.15-1ubuntu2_amd64.deb ... 2253s Unpacking libxcb-shm0:amd64 (1.15-1ubuntu2) ... 2253s Selecting previously unselected package libxrender1:amd64. 2253s Preparing to unpack .../026-libxrender1_1%3a0.9.10-1.1build1_amd64.deb ... 2253s Unpacking libxrender1:amd64 (1:0.9.10-1.1build1) ... 2253s Selecting previously unselected package libcairo2:amd64. 2253s Preparing to unpack .../027-libcairo2_1.18.0-3build1_amd64.deb ... 2253s Unpacking libcairo2:amd64 (1.18.0-3build1) ... 2253s Selecting previously unselected package libcairo-gobject2:amd64. 2253s Preparing to unpack .../028-libcairo-gobject2_1.18.0-3build1_amd64.deb ... 2253s Unpacking libcairo-gobject2:amd64 (1.18.0-3build1) ... 2253s Selecting previously unselected package libcolord2:amd64. 2253s Preparing to unpack .../029-libcolord2_1.4.7-1build2_amd64.deb ... 2253s Unpacking libcolord2:amd64 (1.4.7-1build2) ... 2253s Selecting previously unselected package libavahi-common-data:amd64. 2253s Preparing to unpack .../030-libavahi-common-data_0.8-13ubuntu6_amd64.deb ... 2253s Unpacking libavahi-common-data:amd64 (0.8-13ubuntu6) ... 2253s Selecting previously unselected package libavahi-common3:amd64. 2253s Preparing to unpack .../031-libavahi-common3_0.8-13ubuntu6_amd64.deb ... 2253s Unpacking libavahi-common3:amd64 (0.8-13ubuntu6) ... 2253s Selecting previously unselected package libavahi-client3:amd64. 2253s Preparing to unpack .../032-libavahi-client3_0.8-13ubuntu6_amd64.deb ... 2253s Unpacking libavahi-client3:amd64 (0.8-13ubuntu6) ... 2253s Selecting previously unselected package libcups2t64:amd64. 2253s Preparing to unpack .../033-libcups2t64_2.4.7-1.2ubuntu7_amd64.deb ... 2253s Unpacking libcups2t64:amd64 (2.4.7-1.2ubuntu7) ... 2253s Selecting previously unselected package libepoxy0:amd64. 2253s Preparing to unpack .../034-libepoxy0_1.5.10-1build1_amd64.deb ... 2253s Unpacking libepoxy0:amd64 (1.5.10-1build1) ... 2253s Selecting previously unselected package libgraphite2-3:amd64. 2253s Preparing to unpack .../035-libgraphite2-3_1.3.14-2build1_amd64.deb ... 2253s Unpacking libgraphite2-3:amd64 (1.3.14-2build1) ... 2253s Selecting previously unselected package libharfbuzz0b:amd64. 2253s Preparing to unpack .../036-libharfbuzz0b_8.3.0-2build2_amd64.deb ... 2253s Unpacking libharfbuzz0b:amd64 (8.3.0-2build2) ... 2253s Selecting previously unselected package fontconfig. 2253s Preparing to unpack .../037-fontconfig_2.15.0-1.1ubuntu2_amd64.deb ... 2253s Unpacking fontconfig (2.15.0-1.1ubuntu2) ... 2253s Selecting previously unselected package libthai-data. 2253s Preparing to unpack .../038-libthai-data_0.1.29-2build1_all.deb ... 2253s Unpacking libthai-data (0.1.29-2build1) ... 2253s Selecting previously unselected package libdatrie1:amd64. 2253s Preparing to unpack .../039-libdatrie1_0.2.13-3build1_amd64.deb ... 2253s Unpacking libdatrie1:amd64 (0.2.13-3build1) ... 2253s Selecting previously unselected package libthai0:amd64. 2253s Preparing to unpack .../040-libthai0_0.1.29-2build1_amd64.deb ... 2253s Unpacking libthai0:amd64 (0.1.29-2build1) ... 2253s Selecting previously unselected package libpango-1.0-0:amd64. 2253s Preparing to unpack .../041-libpango-1.0-0_1.52.1+ds-1build1_amd64.deb ... 2253s Unpacking libpango-1.0-0:amd64 (1.52.1+ds-1build1) ... 2253s Selecting previously unselected package libpangoft2-1.0-0:amd64. 2253s Preparing to unpack .../042-libpangoft2-1.0-0_1.52.1+ds-1build1_amd64.deb ... 2253s Unpacking libpangoft2-1.0-0:amd64 (1.52.1+ds-1build1) ... 2253s Selecting previously unselected package libpangocairo-1.0-0:amd64. 2253s Preparing to unpack .../043-libpangocairo-1.0-0_1.52.1+ds-1build1_amd64.deb ... 2253s Unpacking libpangocairo-1.0-0:amd64 (1.52.1+ds-1build1) ... 2253s Selecting previously unselected package libwayland-client0:amd64. 2253s Preparing to unpack .../044-libwayland-client0_1.22.0-2.1build1_amd64.deb ... 2253s Unpacking libwayland-client0:amd64 (1.22.0-2.1build1) ... 2253s Selecting previously unselected package libwayland-cursor0:amd64. 2253s Preparing to unpack .../045-libwayland-cursor0_1.22.0-2.1build1_amd64.deb ... 2253s Unpacking libwayland-cursor0:amd64 (1.22.0-2.1build1) ... 2253s Selecting previously unselected package libwayland-egl1:amd64. 2253s Preparing to unpack .../046-libwayland-egl1_1.22.0-2.1build1_amd64.deb ... 2253s Unpacking libwayland-egl1:amd64 (1.22.0-2.1build1) ... 2253s Selecting previously unselected package libxcomposite1:amd64. 2253s Preparing to unpack .../047-libxcomposite1_1%3a0.4.5-1build3_amd64.deb ... 2253s Unpacking libxcomposite1:amd64 (1:0.4.5-1build3) ... 2253s Selecting previously unselected package libxfixes3:amd64. 2253s Preparing to unpack .../048-libxfixes3_1%3a6.0.0-2build1_amd64.deb ... 2253s Unpacking libxfixes3:amd64 (1:6.0.0-2build1) ... 2253s Selecting previously unselected package libxcursor1:amd64. 2253s Preparing to unpack .../049-libxcursor1_1%3a1.2.1-1build1_amd64.deb ... 2253s Unpacking libxcursor1:amd64 (1:1.2.1-1build1) ... 2253s Selecting previously unselected package libxdamage1:amd64. 2253s Preparing to unpack .../050-libxdamage1_1%3a1.1.6-1build1_amd64.deb ... 2253s Unpacking libxdamage1:amd64 (1:1.1.6-1build1) ... 2253s Selecting previously unselected package libxinerama1:amd64. 2253s Preparing to unpack .../051-libxinerama1_2%3a1.1.4-3build1_amd64.deb ... 2253s Unpacking libxinerama1:amd64 (2:1.1.4-3build1) ... 2253s Selecting previously unselected package libxrandr2:amd64. 2254s Preparing to unpack .../052-libxrandr2_2%3a1.5.2-2build1_amd64.deb ... 2254s Unpacking libxrandr2:amd64 (2:1.5.2-2build1) ... 2254s Selecting previously unselected package libdconf1:amd64. 2254s Preparing to unpack .../053-libdconf1_0.40.0-4build2_amd64.deb ... 2254s Unpacking libdconf1:amd64 (0.40.0-4build2) ... 2254s Selecting previously unselected package dconf-service. 2254s Preparing to unpack .../054-dconf-service_0.40.0-4build2_amd64.deb ... 2254s Unpacking dconf-service (0.40.0-4build2) ... 2254s Selecting previously unselected package dconf-gsettings-backend:amd64. 2254s Preparing to unpack .../055-dconf-gsettings-backend_0.40.0-4build2_amd64.deb ... 2254s Unpacking dconf-gsettings-backend:amd64 (0.40.0-4build2) ... 2254s Selecting previously unselected package libgtk-3-common. 2254s Preparing to unpack .../056-libgtk-3-common_3.24.41-4ubuntu1_all.deb ... 2254s Unpacking libgtk-3-common (3.24.41-4ubuntu1) ... 2254s Selecting previously unselected package libgtk-3-0t64:amd64. 2254s Preparing to unpack .../057-libgtk-3-0t64_3.24.41-4ubuntu1_amd64.deb ... 2254s Unpacking libgtk-3-0t64:amd64 (3.24.41-4ubuntu1) ... 2254s Selecting previously unselected package libglvnd0:amd64. 2254s Preparing to unpack .../058-libglvnd0_1.7.0-1build1_amd64.deb ... 2254s Unpacking libglvnd0:amd64 (1.7.0-1build1) ... 2254s Selecting previously unselected package libglapi-mesa:amd64. 2254s Preparing to unpack .../059-libglapi-mesa_24.0.5-1ubuntu1_amd64.deb ... 2254s Unpacking libglapi-mesa:amd64 (24.0.5-1ubuntu1) ... 2254s Selecting previously unselected package libx11-xcb1:amd64. 2254s Preparing to unpack .../060-libx11-xcb1_2%3a1.8.7-1build1_amd64.deb ... 2254s Unpacking libx11-xcb1:amd64 (2:1.8.7-1build1) ... 2254s Selecting previously unselected package libxcb-dri2-0:amd64. 2254s Preparing to unpack .../061-libxcb-dri2-0_1.15-1ubuntu2_amd64.deb ... 2254s Unpacking libxcb-dri2-0:amd64 (1.15-1ubuntu2) ... 2254s Selecting previously unselected package libxcb-dri3-0:amd64. 2254s Preparing to unpack .../062-libxcb-dri3-0_1.15-1ubuntu2_amd64.deb ... 2254s Unpacking libxcb-dri3-0:amd64 (1.15-1ubuntu2) ... 2254s Selecting previously unselected package libxcb-glx0:amd64. 2254s Preparing to unpack .../063-libxcb-glx0_1.15-1ubuntu2_amd64.deb ... 2254s Unpacking libxcb-glx0:amd64 (1.15-1ubuntu2) ... 2254s Selecting previously unselected package libxcb-present0:amd64. 2254s Preparing to unpack .../064-libxcb-present0_1.15-1ubuntu2_amd64.deb ... 2254s Unpacking libxcb-present0:amd64 (1.15-1ubuntu2) ... 2254s Selecting previously unselected package libxcb-randr0:amd64. 2254s Preparing to unpack .../065-libxcb-randr0_1.15-1ubuntu2_amd64.deb ... 2254s Unpacking libxcb-randr0:amd64 (1.15-1ubuntu2) ... 2254s Selecting previously unselected package libxcb-sync1:amd64. 2254s Preparing to unpack .../066-libxcb-sync1_1.15-1ubuntu2_amd64.deb ... 2254s Unpacking libxcb-sync1:amd64 (1.15-1ubuntu2) ... 2254s Selecting previously unselected package libxcb-xfixes0:amd64. 2254s Preparing to unpack .../067-libxcb-xfixes0_1.15-1ubuntu2_amd64.deb ... 2254s Unpacking libxcb-xfixes0:amd64 (1.15-1ubuntu2) ... 2254s Selecting previously unselected package libxshmfence1:amd64. 2254s Preparing to unpack .../068-libxshmfence1_1.3-1build5_amd64.deb ... 2254s Unpacking libxshmfence1:amd64 (1.3-1build5) ... 2254s Selecting previously unselected package libxxf86vm1:amd64. 2254s Preparing to unpack .../069-libxxf86vm1_1%3a1.1.4-1build4_amd64.deb ... 2254s Unpacking libxxf86vm1:amd64 (1:1.1.4-1build4) ... 2254s Selecting previously unselected package libvulkan1:amd64. 2254s Preparing to unpack .../070-libvulkan1_1.3.280.0-1_amd64.deb ... 2254s Unpacking libvulkan1:amd64 (1.3.280.0-1) ... 2254s Selecting previously unselected package libdrm-amdgpu1:amd64. 2254s Preparing to unpack .../071-libdrm-amdgpu1_2.4.120-2build1_amd64.deb ... 2254s Unpacking libdrm-amdgpu1:amd64 (2.4.120-2build1) ... 2254s Selecting previously unselected package libpciaccess0:amd64. 2254s Preparing to unpack .../072-libpciaccess0_0.17-3build1_amd64.deb ... 2254s Unpacking libpciaccess0:amd64 (0.17-3build1) ... 2254s Selecting previously unselected package libdrm-intel1:amd64. 2254s Preparing to unpack .../073-libdrm-intel1_2.4.120-2build1_amd64.deb ... 2254s Unpacking libdrm-intel1:amd64 (2.4.120-2build1) ... 2254s Selecting previously unselected package libdrm-nouveau2:amd64. 2254s Preparing to unpack .../074-libdrm-nouveau2_2.4.120-2build1_amd64.deb ... 2254s Unpacking libdrm-nouveau2:amd64 (2.4.120-2build1) ... 2254s Selecting previously unselected package libdrm-radeon1:amd64. 2254s Preparing to unpack .../075-libdrm-radeon1_2.4.120-2build1_amd64.deb ... 2254s Unpacking libdrm-radeon1:amd64 (2.4.120-2build1) ... 2254s Selecting previously unselected package libllvm17t64:amd64. 2254s Preparing to unpack .../076-libllvm17t64_1%3a17.0.6-9ubuntu1_amd64.deb ... 2254s Unpacking libllvm17t64:amd64 (1:17.0.6-9ubuntu1) ... 2255s Selecting previously unselected package libgl1-mesa-dri:amd64. 2255s Preparing to unpack .../077-libgl1-mesa-dri_24.0.5-1ubuntu1_amd64.deb ... 2255s Unpacking libgl1-mesa-dri:amd64 (24.0.5-1ubuntu1) ... 2255s Selecting previously unselected package libglx-mesa0:amd64. 2255s Preparing to unpack .../078-libglx-mesa0_24.0.5-1ubuntu1_amd64.deb ... 2255s Unpacking libglx-mesa0:amd64 (24.0.5-1ubuntu1) ... 2255s Selecting previously unselected package libglx0:amd64. 2255s Preparing to unpack .../079-libglx0_1.7.0-1build1_amd64.deb ... 2255s Unpacking libglx0:amd64 (1.7.0-1build1) ... 2255s Selecting previously unselected package libgl1:amd64. 2255s Preparing to unpack .../080-libgl1_1.7.0-1build1_amd64.deb ... 2255s Unpacking libgl1:amd64 (1.7.0-1build1) ... 2255s Selecting previously unselected package libasound2-data. 2255s Preparing to unpack .../081-libasound2-data_1.2.11-1build2_all.deb ... 2255s Unpacking libasound2-data (1.2.11-1build2) ... 2255s Selecting previously unselected package libasound2t64:amd64. 2255s Preparing to unpack .../082-libasound2t64_1.2.11-1build2_amd64.deb ... 2255s Unpacking libasound2t64:amd64 (1.2.11-1build2) ... 2255s Selecting previously unselected package libgif7:amd64. 2255s Preparing to unpack .../083-libgif7_5.2.2-1ubuntu1_amd64.deb ... 2255s Unpacking libgif7:amd64 (5.2.2-1ubuntu1) ... 2255s Selecting previously unselected package x11-common. 2255s Preparing to unpack .../084-x11-common_1%3a7.7+23ubuntu3_all.deb ... 2255s Unpacking x11-common (1:7.7+23ubuntu3) ... 2255s Selecting previously unselected package libxtst6:amd64. 2255s Preparing to unpack .../085-libxtst6_2%3a1.2.3-1.1build1_amd64.deb ... 2255s Unpacking libxtst6:amd64 (2:1.2.3-1.1build1) ... 2255s Selecting previously unselected package openjdk-21-jre:amd64. 2255s Preparing to unpack .../086-openjdk-21-jre_21.0.3+9-1ubuntu1_amd64.deb ... 2255s Unpacking openjdk-21-jre:amd64 (21.0.3+9-1ubuntu1) ... 2255s Selecting previously unselected package default-jre. 2255s Preparing to unpack .../087-default-jre_2%3a1.21-75+exp1_amd64.deb ... 2255s Unpacking default-jre (2:1.21-75+exp1) ... 2256s Selecting previously unselected package libhamcrest-java. 2256s Preparing to unpack .../088-libhamcrest-java_2.2-2_all.deb ... 2256s Unpacking libhamcrest-java (2.2-2) ... 2256s Selecting previously unselected package junit4. 2256s Preparing to unpack .../089-junit4_4.13.2-4_all.deb ... 2256s Unpacking junit4 (4.13.2-4) ... 2256s Selecting previously unselected package libcommons-cli-java. 2256s Preparing to unpack .../090-libcommons-cli-java_1.6.0-1_all.deb ... 2256s Unpacking libcommons-cli-java (1.6.0-1) ... 2256s Selecting previously unselected package libapache-pom-java. 2256s Preparing to unpack .../091-libapache-pom-java_29-2_all.deb ... 2256s Unpacking libapache-pom-java (29-2) ... 2256s Selecting previously unselected package libcommons-parent-java. 2256s Preparing to unpack .../092-libcommons-parent-java_56-1_all.deb ... 2256s Unpacking libcommons-parent-java (56-1) ... 2256s Selecting previously unselected package libcommons-io-java. 2256s Preparing to unpack .../093-libcommons-io-java_2.11.0-2_all.deb ... 2256s Unpacking libcommons-io-java (2.11.0-2) ... 2256s Selecting previously unselected package libdropwizard-metrics-java. 2256s Preparing to unpack .../094-libdropwizard-metrics-java_3.2.6-1_all.deb ... 2256s Unpacking libdropwizard-metrics-java (3.2.6-1) ... 2256s Selecting previously unselected package libfindbugs-annotations-java. 2256s Preparing to unpack .../095-libfindbugs-annotations-java_3.1.0~preview2-3_all.deb ... 2256s Unpacking libfindbugs-annotations-java (3.1.0~preview2-3) ... 2256s Selecting previously unselected package libatinject-jsr330-api-java. 2256s Preparing to unpack .../096-libatinject-jsr330-api-java_1.0+ds1-5_all.deb ... 2256s Unpacking libatinject-jsr330-api-java (1.0+ds1-5) ... 2256s Selecting previously unselected package liberror-prone-java. 2256s Preparing to unpack .../097-liberror-prone-java_2.18.0-1_all.deb ... 2256s Unpacking liberror-prone-java (2.18.0-1) ... 2256s Selecting previously unselected package libjsr305-java. 2256s Preparing to unpack .../098-libjsr305-java_0.1~+svn49-11_all.deb ... 2256s Unpacking libjsr305-java (0.1~+svn49-11) ... 2256s Selecting previously unselected package libguava-java. 2256s Preparing to unpack .../099-libguava-java_32.0.1-1_all.deb ... 2256s Unpacking libguava-java (32.0.1-1) ... 2256s Selecting previously unselected package libjackson2-annotations-java. 2256s Preparing to unpack .../100-libjackson2-annotations-java_2.14.0-1_all.deb ... 2256s Unpacking libjackson2-annotations-java (2.14.0-1) ... 2256s Selecting previously unselected package libjackson2-core-java. 2256s Preparing to unpack .../101-libjackson2-core-java_2.14.1-1_all.deb ... 2256s Unpacking libjackson2-core-java (2.14.1-1) ... 2256s Selecting previously unselected package libjackson2-databind-java. 2256s Preparing to unpack .../102-libjackson2-databind-java_2.14.0-1_all.deb ... 2256s Unpacking libjackson2-databind-java (2.14.0-1) ... 2256s Selecting previously unselected package libasm-java. 2256s Preparing to unpack .../103-libasm-java_9.7-1_all.deb ... 2256s Unpacking libasm-java (9.7-1) ... 2256s Selecting previously unselected package libel-api-java. 2256s Preparing to unpack .../104-libel-api-java_3.0.0-3_all.deb ... 2256s Unpacking libel-api-java (3.0.0-3) ... 2256s Selecting previously unselected package libjsp-api-java. 2256s Preparing to unpack .../105-libjsp-api-java_2.3.4-3_all.deb ... 2256s Unpacking libjsp-api-java (2.3.4-3) ... 2256s Selecting previously unselected package libservlet-api-java. 2256s Preparing to unpack .../106-libservlet-api-java_4.0.1-2_all.deb ... 2256s Unpacking libservlet-api-java (4.0.1-2) ... 2256s Selecting previously unselected package libwebsocket-api-java. 2256s Preparing to unpack .../107-libwebsocket-api-java_1.1-2_all.deb ... 2256s Unpacking libwebsocket-api-java (1.1-2) ... 2256s Selecting previously unselected package libjetty9-java. 2256s Preparing to unpack .../108-libjetty9-java_9.4.54-1_all.deb ... 2256s Unpacking libjetty9-java (9.4.54-1) ... 2256s Selecting previously unselected package libjnr-constants-java. 2256s Preparing to unpack .../109-libjnr-constants-java_0.10.4-2_all.deb ... 2256s Unpacking libjnr-constants-java (0.10.4-2) ... 2256s Selecting previously unselected package libjffi-jni:amd64. 2256s Preparing to unpack .../110-libjffi-jni_1.3.13+ds-1_amd64.deb ... 2256s Unpacking libjffi-jni:amd64 (1.3.13+ds-1) ... 2256s Selecting previously unselected package libjffi-java. 2256s Preparing to unpack .../111-libjffi-java_1.3.13+ds-1_all.deb ... 2256s Unpacking libjffi-java (1.3.13+ds-1) ... 2256s Selecting previously unselected package libjnr-x86asm-java. 2256s Preparing to unpack .../112-libjnr-x86asm-java_1.0.2-5.1_all.deb ... 2256s Unpacking libjnr-x86asm-java (1.0.2-5.1) ... 2256s Selecting previously unselected package libjnr-ffi-java. 2256s Preparing to unpack .../113-libjnr-ffi-java_2.2.15-2_all.deb ... 2256s Unpacking libjnr-ffi-java (2.2.15-2) ... 2256s Selecting previously unselected package libjnr-enxio-java. 2256s Preparing to unpack .../114-libjnr-enxio-java_0.32.16-1_all.deb ... 2256s Unpacking libjnr-enxio-java (0.32.16-1) ... 2257s Selecting previously unselected package libjnr-posix-java. 2257s Preparing to unpack .../115-libjnr-posix-java_3.1.18-1_all.deb ... 2257s Unpacking libjnr-posix-java (3.1.18-1) ... 2257s Selecting previously unselected package libjnr-unixsocket-java. 2257s Preparing to unpack .../116-libjnr-unixsocket-java_0.38.21-2_all.deb ... 2257s Unpacking libjnr-unixsocket-java (0.38.21-2) ... 2257s Selecting previously unselected package libactivation-java. 2257s Preparing to unpack .../117-libactivation-java_1.2.0-2_all.deb ... 2257s Unpacking libactivation-java (1.2.0-2) ... 2257s Selecting previously unselected package libmail-java. 2257s Preparing to unpack .../118-libmail-java_1.6.5-2_all.deb ... 2257s Unpacking libmail-java (1.6.5-2) ... 2257s Selecting previously unselected package libcommons-logging-java. 2257s Preparing to unpack .../119-libcommons-logging-java_1.3.0-1ubuntu1_all.deb ... 2257s Unpacking libcommons-logging-java (1.3.0-1ubuntu1) ... 2257s Selecting previously unselected package libjaxb-api-java. 2257s Preparing to unpack .../120-libjaxb-api-java_2.3.1-1_all.deb ... 2257s Unpacking libjaxb-api-java (2.3.1-1) ... 2257s Selecting previously unselected package libspring-core-java. 2257s Preparing to unpack .../121-libspring-core-java_4.3.30-2_all.deb ... 2257s Unpacking libspring-core-java (4.3.30-2) ... 2257s Selecting previously unselected package libspring-beans-java. 2257s Preparing to unpack .../122-libspring-beans-java_4.3.30-2_all.deb ... 2257s Unpacking libspring-beans-java (4.3.30-2) ... 2257s Selecting previously unselected package libtaglibs-standard-spec-java. 2257s Preparing to unpack .../123-libtaglibs-standard-spec-java_1.2.5-3_all.deb ... 2257s Unpacking libtaglibs-standard-spec-java (1.2.5-3) ... 2257s Selecting previously unselected package libtaglibs-standard-impl-java. 2257s Preparing to unpack .../124-libtaglibs-standard-impl-java_1.2.5-3_all.deb ... 2257s Unpacking libtaglibs-standard-impl-java (1.2.5-3) ... 2257s Selecting previously unselected package libeclipse-jdt-core-java. 2257s Preparing to unpack .../125-libeclipse-jdt-core-java_3.32.0+eclipse4.26-2_all.deb ... 2257s Unpacking libeclipse-jdt-core-java (3.32.0+eclipse4.26-2) ... 2257s Selecting previously unselected package libtomcat9-java. 2257s Preparing to unpack .../126-libtomcat9-java_9.0.70-2_all.deb ... 2257s Unpacking libtomcat9-java (9.0.70-2) ... 2257s Selecting previously unselected package libjetty9-extra-java. 2257s Preparing to unpack .../127-libjetty9-extra-java_9.4.54-1_all.deb ... 2257s Unpacking libjetty9-extra-java (9.4.54-1) ... 2257s Selecting previously unselected package libjctools-java. 2257s Preparing to unpack .../128-libjctools-java_2.0.2-1_all.deb ... 2257s Unpacking libjctools-java (2.0.2-1) ... 2257s Selecting previously unselected package libnetty-java. 2257s Preparing to unpack .../129-libnetty-java_1%3a4.1.48-10_all.deb ... 2257s Unpacking libnetty-java (1:4.1.48-10) ... 2257s Selecting previously unselected package libslf4j-java. 2257s Preparing to unpack .../130-libslf4j-java_1.7.32-1_all.deb ... 2257s Unpacking libslf4j-java (1.7.32-1) ... 2257s Selecting previously unselected package libsnappy1v5:amd64. 2257s Preparing to unpack .../131-libsnappy1v5_1.2.0-2_amd64.deb ... 2257s Unpacking libsnappy1v5:amd64 (1.2.0-2) ... 2257s Selecting previously unselected package libsnappy-jni. 2257s Preparing to unpack .../132-libsnappy-jni_1.1.10.5-2_amd64.deb ... 2257s Unpacking libsnappy-jni (1.1.10.5-2) ... 2257s Selecting previously unselected package libsnappy-java. 2257s Preparing to unpack .../133-libsnappy-java_1.1.10.5-2_all.deb ... 2257s Unpacking libsnappy-java (1.1.10.5-2) ... 2257s Selecting previously unselected package libapr1t64:amd64. 2257s Preparing to unpack .../134-libapr1t64_1.7.2-3.1build2_amd64.deb ... 2257s Unpacking libapr1t64:amd64 (1.7.2-3.1build2) ... 2257s Selecting previously unselected package libnetty-tcnative-jni. 2257s Preparing to unpack .../135-libnetty-tcnative-jni_2.0.28-1build4_amd64.deb ... 2257s Unpacking libnetty-tcnative-jni (2.0.28-1build4) ... 2257s Selecting previously unselected package libnetty-tcnative-java. 2257s Preparing to unpack .../136-libnetty-tcnative-java_2.0.28-1build4_all.deb ... 2257s Unpacking libnetty-tcnative-java (2.0.28-1build4) ... 2257s Selecting previously unselected package liblog4j1.2-java. 2257s Preparing to unpack .../137-liblog4j1.2-java_1.2.17-11_all.deb ... 2257s Unpacking liblog4j1.2-java (1.2.17-11) ... 2257s Selecting previously unselected package libzookeeper-java. 2257s Preparing to unpack .../138-libzookeeper-java_3.9.2-2_all.deb ... 2257s Unpacking libzookeeper-java (3.9.2-2) ... 2257s Selecting previously unselected package zookeeper. 2257s Preparing to unpack .../139-zookeeper_3.9.2-2_all.deb ... 2257s Unpacking zookeeper (3.9.2-2) ... 2258s Selecting previously unselected package zookeeperd. 2258s Preparing to unpack .../140-zookeeperd_3.9.2-2_all.deb ... 2258s Unpacking zookeeperd (3.9.2-2) ... 2258s Selecting previously unselected package fonts-font-awesome. 2258s Preparing to unpack .../141-fonts-font-awesome_5.0.10+really4.7.0~dfsg-4.1_all.deb ... 2258s Unpacking fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 2258s Selecting previously unselected package libcares2:amd64. 2258s Preparing to unpack .../142-libcares2_1.27.0-1.0ubuntu1_amd64.deb ... 2258s Unpacking libcares2:amd64 (1.27.0-1.0ubuntu1) ... 2258s Selecting previously unselected package libev4t64:amd64. 2258s Preparing to unpack .../143-libev4t64_1%3a4.33-2.1build1_amd64.deb ... 2258s Unpacking libev4t64:amd64 (1:4.33-2.1build1) ... 2258s Selecting previously unselected package libio-pty-perl. 2258s Preparing to unpack .../144-libio-pty-perl_1%3a1.20-1build2_amd64.deb ... 2258s Unpacking libio-pty-perl (1:1.20-1build2) ... 2258s Selecting previously unselected package libipc-run-perl. 2258s Preparing to unpack .../145-libipc-run-perl_20231003.0-1_all.deb ... 2258s Unpacking libipc-run-perl (20231003.0-1) ... 2258s Selecting previously unselected package libjs-jquery. 2258s Preparing to unpack .../146-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 2258s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 2258s Selecting previously unselected package libjs-underscore. 2258s Preparing to unpack .../147-libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ... 2258s Unpacking libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 2258s Selecting previously unselected package libjs-sphinxdoc. 2258s Preparing to unpack .../148-libjs-sphinxdoc_7.2.6-6_all.deb ... 2258s Unpacking libjs-sphinxdoc (7.2.6-6) ... 2258s Selecting previously unselected package libpq5:amd64. 2258s Preparing to unpack .../149-libpq5_16.2-1ubuntu4_amd64.deb ... 2258s Unpacking libpq5:amd64 (16.2-1ubuntu4) ... 2258s Selecting previously unselected package libtime-duration-perl. 2258s Preparing to unpack .../150-libtime-duration-perl_1.21-2_all.deb ... 2258s Unpacking libtime-duration-perl (1.21-2) ... 2258s Selecting previously unselected package libtimedate-perl. 2258s Preparing to unpack .../151-libtimedate-perl_2.3300-2_all.deb ... 2258s Unpacking libtimedate-perl (2.3300-2) ... 2258s Selecting previously unselected package libxslt1.1:amd64. 2258s Preparing to unpack .../152-libxslt1.1_1.1.39-0exp1build1_amd64.deb ... 2258s Unpacking libxslt1.1:amd64 (1.1.39-0exp1build1) ... 2258s Selecting previously unselected package moreutils. 2258s Preparing to unpack .../153-moreutils_0.69-1_amd64.deb ... 2258s Unpacking moreutils (0.69-1) ... 2258s Selecting previously unselected package python3-cdiff. 2258s Preparing to unpack .../154-python3-cdiff_1.0-1.1_all.deb ... 2258s Unpacking python3-cdiff (1.0-1.1) ... 2258s Selecting previously unselected package python3-colorama. 2258s Preparing to unpack .../155-python3-colorama_0.4.6-4_all.deb ... 2258s Unpacking python3-colorama (0.4.6-4) ... 2258s Selecting previously unselected package python3-click. 2258s Preparing to unpack .../156-python3-click_8.1.7-1_all.deb ... 2258s Unpacking python3-click (8.1.7-1) ... 2258s Selecting previously unselected package python3-dateutil. 2258s Preparing to unpack .../157-python3-dateutil_2.8.2-3ubuntu1_all.deb ... 2258s Unpacking python3-dateutil (2.8.2-3ubuntu1) ... 2258s Selecting previously unselected package python3-wcwidth. 2258s Preparing to unpack .../158-python3-wcwidth_0.2.5+dfsg1-1.1ubuntu1_all.deb ... 2258s Unpacking python3-wcwidth (0.2.5+dfsg1-1.1ubuntu1) ... 2258s Selecting previously unselected package python3-prettytable. 2258s Preparing to unpack .../159-python3-prettytable_3.6.0-2_all.deb ... 2258s Unpacking python3-prettytable (3.6.0-2) ... 2258s Selecting previously unselected package python3-psutil. 2258s Preparing to unpack .../160-python3-psutil_5.9.8-2build2_amd64.deb ... 2258s Unpacking python3-psutil (5.9.8-2build2) ... 2258s Selecting previously unselected package python3-psycopg2. 2258s Preparing to unpack .../161-python3-psycopg2_2.9.9-1build1_amd64.deb ... 2258s Unpacking python3-psycopg2 (2.9.9-1build1) ... 2258s Selecting previously unselected package python3-greenlet. 2258s Preparing to unpack .../162-python3-greenlet_3.0.3-0ubuntu5_amd64.deb ... 2258s Unpacking python3-greenlet (3.0.3-0ubuntu5) ... 2258s Selecting previously unselected package python3-dnspython. 2258s Preparing to unpack .../163-python3-dnspython_2.6.1-1ubuntu1_all.deb ... 2258s Unpacking python3-dnspython (2.6.1-1ubuntu1) ... 2258s Selecting previously unselected package python3-eventlet. 2258s Preparing to unpack .../164-python3-eventlet_0.35.2-0ubuntu1_all.deb ... 2258s Unpacking python3-eventlet (0.35.2-0ubuntu1) ... 2258s Selecting previously unselected package python3-zope.event. 2258s Preparing to unpack .../165-python3-zope.event_5.0-0.1_all.deb ... 2258s Unpacking python3-zope.event (5.0-0.1) ... 2258s Selecting previously unselected package python3-zope.interface. 2258s Preparing to unpack .../166-python3-zope.interface_6.1-1build1_amd64.deb ... 2258s Unpacking python3-zope.interface (6.1-1build1) ... 2258s Selecting previously unselected package python3-gevent. 2258s Preparing to unpack .../167-python3-gevent_24.2.1-0.1ubuntu2_amd64.deb ... 2258s Unpacking python3-gevent (24.2.1-0.1ubuntu2) ... 2259s Selecting previously unselected package python3-kerberos. 2259s Preparing to unpack .../168-python3-kerberos_1.1.14-3.1build9_amd64.deb ... 2259s Unpacking python3-kerberos (1.1.14-3.1build9) ... 2259s Selecting previously unselected package python3-pure-sasl. 2259s Preparing to unpack .../169-python3-pure-sasl_0.5.1+dfsg1-4_all.deb ... 2259s Unpacking python3-pure-sasl (0.5.1+dfsg1-4) ... 2259s Selecting previously unselected package python3-kazoo. 2259s Preparing to unpack .../170-python3-kazoo_2.9.0-2_all.deb ... 2259s Unpacking python3-kazoo (2.9.0-2) ... 2259s Selecting previously unselected package patroni. 2259s Preparing to unpack .../171-patroni_3.3.0-1_all.deb ... 2259s Unpacking patroni (3.3.0-1) ... 2259s Selecting previously unselected package sphinx-rtd-theme-common. 2259s Preparing to unpack .../172-sphinx-rtd-theme-common_2.0.0+dfsg-1_all.deb ... 2259s Unpacking sphinx-rtd-theme-common (2.0.0+dfsg-1) ... 2259s Selecting previously unselected package patroni-doc. 2259s Preparing to unpack .../173-patroni-doc_3.3.0-1_all.deb ... 2259s Unpacking patroni-doc (3.3.0-1) ... 2259s Selecting previously unselected package postgresql-client-16. 2259s Preparing to unpack .../174-postgresql-client-16_16.2-1ubuntu4_amd64.deb ... 2259s Unpacking postgresql-client-16 (16.2-1ubuntu4) ... 2259s Selecting previously unselected package postgresql-16. 2259s Preparing to unpack .../175-postgresql-16_16.2-1ubuntu4_amd64.deb ... 2259s Unpacking postgresql-16 (16.2-1ubuntu4) ... 2259s Selecting previously unselected package postgresql. 2259s Preparing to unpack .../176-postgresql_16+257build1_all.deb ... 2259s Unpacking postgresql (16+257build1) ... 2259s Selecting previously unselected package python3-parse. 2259s Preparing to unpack .../177-python3-parse_1.19.0-0.2_all.deb ... 2259s Unpacking python3-parse (1.19.0-0.2) ... 2259s Selecting previously unselected package python3-parse-type. 2259s Preparing to unpack .../178-python3-parse-type_0.6.2-1_all.deb ... 2259s Unpacking python3-parse-type (0.6.2-1) ... 2259s Selecting previously unselected package python3-behave. 2259s Preparing to unpack .../179-python3-behave_1.2.6-5_all.deb ... 2259s Unpacking python3-behave (1.2.6-5) ... 2259s Selecting previously unselected package python3-coverage. 2259s Preparing to unpack .../180-python3-coverage_7.4.4+dfsg1-0ubuntu2_amd64.deb ... 2259s Unpacking python3-coverage (7.4.4+dfsg1-0ubuntu2) ... 2259s Selecting previously unselected package autopkgtest-satdep. 2259s Preparing to unpack .../181-5-autopkgtest-satdep.deb ... 2259s Unpacking autopkgtest-satdep (0) ... 2259s Setting up postgresql-client-common (257build1) ... 2259s Setting up libgraphite2-3:amd64 (1.3.14-2build1) ... 2259s Setting up libxcb-dri3-0:amd64 (1.15-1ubuntu2) ... 2259s Setting up liblcms2-2:amd64 (2.14-2build1) ... 2259s Setting up libtaglibs-standard-spec-java (1.2.5-3) ... 2259s Setting up libpixman-1-0:amd64 (0.42.2-1build1) ... 2259s Setting up libev4t64:amd64 (1:4.33-2.1build1) ... 2259s Setting up libjackson2-annotations-java (2.14.0-1) ... 2259s Setting up libx11-xcb1:amd64 (2:1.8.7-1build1) ... 2259s Setting up libpciaccess0:amd64 (0.17-3build1) ... 2259s Setting up libslf4j-java (1.7.32-1) ... 2259s Setting up fontconfig (2.15.0-1.1ubuntu2) ... 2262s Regenerating fonts cache... done. 2262s Setting up libdrm-nouveau2:amd64 (2.4.120-2build1) ... 2262s Setting up fonts-lato (2.015-1) ... 2262s Setting up libxdamage1:amd64 (1:1.1.6-1build1) ... 2262s Setting up libxcb-xfixes0:amd64 (1.15-1ubuntu2) ... 2262s Setting up libjsr305-java (0.1~+svn49-11) ... 2262s Setting up hicolor-icon-theme (0.17-2) ... 2262s Setting up libxi6:amd64 (2:1.8.1-1build1) ... 2262s Setting up java-common (0.75+exp1) ... 2262s Setting up libxrender1:amd64 (1:0.9.10-1.1build1) ... 2262s Setting up libdatrie1:amd64 (0.2.13-3build1) ... 2262s Setting up libcommons-cli-java (1.6.0-1) ... 2262s Setting up libio-pty-perl (1:1.20-1build2) ... 2262s Setting up python3-colorama (0.4.6-4) ... 2262s Setting up libxcb-render0:amd64 (1.15-1ubuntu2) ... 2262s Setting up python3-zope.event (5.0-0.1) ... 2262s Setting up python3-zope.interface (6.1-1build1) ... 2262s Setting up libdrm-radeon1:amd64 (2.4.120-2build1) ... 2262s Setting up libglvnd0:amd64 (1.7.0-1build1) ... 2262s Setting up libxcb-glx0:amd64 (1.15-1ubuntu2) ... 2262s Setting up python3-cdiff (1.0-1.1) ... 2262s Setting up libdrm-intel1:amd64 (2.4.120-2build1) ... 2262s Setting up libgdk-pixbuf2.0-common (2.42.10+dfsg-3ubuntu3) ... 2262s Setting up libasm-java (9.7-1) ... 2262s Setting up x11-common (1:7.7+23ubuntu3) ... 2263s Setting up libpq5:amd64 (16.2-1ubuntu4) ... 2263s Setting up python3-kerberos (1.1.14-3.1build9) ... 2263s Setting up liblog4j1.2-java (1.2.17-11) ... 2263s Setting up libel-api-java (3.0.0-3) ... 2263s Setting up python3-coverage (7.4.4+dfsg1-0ubuntu2) ... 2263s Setting up libxcb-shm0:amd64 (1.15-1ubuntu2) ... 2263s Setting up python3-click (8.1.7-1) ... 2263s Setting up libjnr-x86asm-java (1.0.2-5.1) ... 2263s Setting up libcairo2:amd64 (1.18.0-3build1) ... 2263s Setting up libcolord2:amd64 (1.4.7-1build2) ... 2263s Setting up python3-psutil (5.9.8-2build2) ... 2263s Setting up libeclipse-jdt-core-java (3.32.0+eclipse4.26-2) ... 2263s Setting up libxxf86vm1:amd64 (1:1.1.4-1build4) ... 2263s Setting up libsnappy1v5:amd64 (1.2.0-2) ... 2263s Setting up libxcb-present0:amd64 (1.15-1ubuntu2) ... 2263s Setting up libtaglibs-standard-impl-java (1.2.5-3) ... 2263s Setting up libdconf1:amd64 (0.40.0-4build2) ... 2263s Setting up libjctools-java (2.0.2-1) ... 2263s Setting up libdropwizard-metrics-java (3.2.6-1) ... 2263s Setting up libasound2-data (1.2.11-1build2) ... 2263s Setting up libasound2t64:amd64 (1.2.11-1build2) ... 2263s Setting up libllvm17t64:amd64 (1:17.0.6-9ubuntu1) ... 2263s Setting up python3-wcwidth (0.2.5+dfsg1-1.1ubuntu1) ... 2264s Setting up libfindbugs-annotations-java (3.1.0~preview2-3) ... 2264s Setting up libepoxy0:amd64 (1.5.10-1build1) ... 2264s Setting up ssl-cert (1.1.2ubuntu1) ... 2264s Created symlink /etc/systemd/system/multi-user.target.wants/ssl-cert.service → /usr/lib/systemd/system/ssl-cert.service. 2265s Setting up libxfixes3:amd64 (1:6.0.0-2build1) ... 2265s Setting up libxcb-sync1:amd64 (1.15-1ubuntu2) ... 2265s Setting up libapache-pom-java (29-2) ... 2265s Setting up libavahi-common-data:amd64 (0.8-13ubuntu6) ... 2265s Setting up libatinject-jsr330-api-java (1.0+ds1-5) ... 2265s Setting up libatspi2.0-0t64:amd64 (2.52.0-1build1) ... 2265s Setting up libwebsocket-api-java (1.1-2) ... 2265s Setting up python3-greenlet (3.0.3-0ubuntu5) ... 2265s Setting up libxinerama1:amd64 (2:1.1.4-3build1) ... 2265s Setting up libcares2:amd64 (1.27.0-1.0ubuntu1) ... 2265s Setting up libxrandr2:amd64 (2:1.5.2-2build1) ... 2265s Setting up python3-psycopg2 (2.9.9-1build1) ... 2265s Setting up libipc-run-perl (20231003.0-1) ... 2265s Setting up libpcsclite1:amd64 (2.0.3-1build1) ... 2265s Setting up libactivation-java (1.2.0-2) ... 2265s Setting up libtomcat9-java (9.0.70-2) ... 2265s Setting up libhamcrest-java (2.2-2) ... 2265s Setting up libglapi-mesa:amd64 (24.0.5-1ubuntu1) ... 2265s Setting up libjsp-api-java (2.3.4-3) ... 2265s Setting up libvulkan1:amd64 (1.3.280.0-1) ... 2265s Setting up libtime-duration-perl (1.21-2) ... 2265s Setting up libtimedate-perl (2.3300-2) ... 2265s Setting up libxcb-dri2-0:amd64 (1.15-1ubuntu2) ... 2265s Setting up libgif7:amd64 (5.2.2-1ubuntu1) ... 2265s Setting up libxshmfence1:amd64 (1.3-1build5) ... 2265s Setting up libmail-java (1.6.5-2) ... 2265s Setting up at-spi2-common (2.52.0-1build1) ... 2265s Setting up python3-dnspython (2.6.1-1ubuntu1) ... 2265s Setting up libnetty-java (1:4.1.48-10) ... 2265s Setting up libxcb-randr0:amd64 (1.15-1ubuntu2) ... 2265s Setting up python3-parse (1.19.0-0.2) ... 2265s Setting up libapr1t64:amd64 (1.7.2-3.1build2) ... 2265s Setting up libjson-perl (4.10000-1) ... 2265s Setting up libxslt1.1:amd64 (1.1.39-0exp1build1) ... 2265s Setting up libservlet-api-java (4.0.1-2) ... 2265s Setting up libjackson2-core-java (2.14.1-1) ... 2265s Setting up libharfbuzz0b:amd64 (8.3.0-2build2) ... 2265s Setting up libthai-data (0.1.29-2build1) ... 2265s Setting up python3-dateutil (2.8.2-3ubuntu1) ... 2266s Setting up libgdk-pixbuf-2.0-0:amd64 (2.42.10+dfsg-3ubuntu3) ... 2266s Setting up libcairo-gobject2:amd64 (1.18.0-3build1) ... 2266s Setting up libjffi-jni:amd64 (1.3.13+ds-1) ... 2266s Setting up libwayland-egl1:amd64 (1.22.0-2.1build1) ... 2266s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 2266s Setting up ca-certificates-java (20240118) ... 2266s No JRE found. Skipping Java certificates setup. 2266s Setting up python3-prettytable (3.6.0-2) ... 2266s Setting up libsnappy-jni (1.1.10.5-2) ... 2266s Setting up libxcomposite1:amd64 (1:0.4.5-1build3) ... 2266s Setting up fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 2266s Setting up sphinx-rtd-theme-common (2.0.0+dfsg-1) ... 2266s Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 2266s Setting up libdrm-amdgpu1:amd64 (2.4.120-2build1) ... 2266s Setting up libjnr-constants-java (0.10.4-2) ... 2266s Setting up libwayland-client0:amd64 (1.22.0-2.1build1) ... 2266s Setting up libjaxb-api-java (2.3.1-1) ... 2266s Setting up libjffi-java (1.3.13+ds-1) ... 2266s Setting up gtk-update-icon-cache (3.24.41-4ubuntu1) ... 2266s Setting up libjetty9-java (9.4.54-1) ... 2266s Setting up moreutils (0.69-1) ... 2266s Setting up libatk1.0-0t64:amd64 (2.52.0-1build1) ... 2266s Setting up openjdk-21-jre-headless:amd64 (21.0.3+9-1ubuntu1) ... 2266s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/java to provide /usr/bin/java (java) in auto mode 2266s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/jpackage to provide /usr/bin/jpackage (jpackage) in auto mode 2266s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/keytool to provide /usr/bin/keytool (keytool) in auto mode 2266s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/rmiregistry to provide /usr/bin/rmiregistry (rmiregistry) in auto mode 2266s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/lib/jexec to provide /usr/bin/jexec (jexec) in auto mode 2266s Setting up python3-pure-sasl (0.5.1+dfsg1-4) ... 2266s Setting up libxtst6:amd64 (2:1.2.3-1.1build1) ... 2266s Setting up libxcursor1:amd64 (1:1.2.1-1build1) ... 2266s Setting up postgresql-client-16 (16.2-1ubuntu4) ... 2266s update-alternatives: using /usr/share/postgresql/16/man/man1/psql.1.gz to provide /usr/share/man/man1/psql.1.gz (psql.1.gz) in auto mode 2266s Setting up libgl1-mesa-dri:amd64 (24.0.5-1ubuntu1) ... 2266s Setting up libcommons-parent-java (56-1) ... 2267s Setting up libavahi-common3:amd64 (0.8-13ubuntu6) ... 2267s Setting up libcommons-logging-java (1.3.0-1ubuntu1) ... 2267s Setting up dconf-service (0.40.0-4build2) ... 2267s Setting up python3-gevent (24.2.1-0.1ubuntu2) ... 2267s Setting up libjackson2-databind-java (2.14.0-1) ... 2267s Setting up libthai0:amd64 (0.1.29-2build1) ... 2267s Setting up python3-parse-type (0.6.2-1) ... 2267s Setting up python3-eventlet (0.35.2-0ubuntu1) ... 2267s Setting up libnetty-tcnative-jni (2.0.28-1build4) ... 2267s Setting up python3-kazoo (2.9.0-2) ... 2267s Setting up postgresql-common (257build1) ... 2268s 2268s Creating config file /etc/postgresql-common/createcluster.conf with new version 2268s Building PostgreSQL dictionaries from installed myspell/hunspell packages... 2268s Removing obsolete dictionary files: 2269s Created symlink /etc/systemd/system/multi-user.target.wants/postgresql.service → /usr/lib/systemd/system/postgresql.service. 2269s Setting up libjs-sphinxdoc (7.2.6-6) ... 2269s Setting up libwayland-cursor0:amd64 (1.22.0-2.1build1) ... 2269s Setting up python3-behave (1.2.6-5) ... 2269s /usr/lib/python3/dist-packages/behave/formatter/ansi_escapes.py:57: SyntaxWarning: invalid escape sequence '\[' 2269s _ANSI_ESCAPE_PATTERN = re.compile(u"\x1b\[\d+[mA]", re.UNICODE) 2269s /usr/lib/python3/dist-packages/behave/matchers.py:267: SyntaxWarning: invalid escape sequence '\d' 2269s """Registers a custom type that will be available to "parse" 2269s Setting up libsnappy-java (1.1.10.5-2) ... 2269s Setting up patroni (3.3.0-1) ... 2269s Created symlink /etc/systemd/system/multi-user.target.wants/patroni.service → /usr/lib/systemd/system/patroni.service. 2270s Setting up libavahi-client3:amd64 (0.8-13ubuntu6) ... 2270s Setting up libjnr-ffi-java (2.2.15-2) ... 2270s Setting up libatk-bridge2.0-0t64:amd64 (2.52.0-1build1) ... 2270s Setting up libglx-mesa0:amd64 (24.0.5-1ubuntu1) ... 2270s Setting up postgresql-16 (16.2-1ubuntu4) ... 2270s Creating new PostgreSQL cluster 16/main ... 2270s /usr/lib/postgresql/16/bin/initdb -D /var/lib/postgresql/16/main --auth-local peer --auth-host scram-sha-256 --no-instructions 2270s The files belonging to this database system will be owned by user "postgres". 2270s This user must also own the server process. 2270s 2270s The database cluster will be initialized with locale "C.UTF-8". 2270s The default database encoding has accordingly been set to "UTF8". 2270s The default text search configuration will be set to "english". 2270s 2270s Data page checksums are disabled. 2270s 2270s fixing permissions on existing directory /var/lib/postgresql/16/main ... ok 2270s creating subdirectories ... ok 2270s selecting dynamic shared memory implementation ... posix 2270s selecting default max_connections ... 100 2270s selecting default shared_buffers ... 128MB 2270s selecting default time zone ... Etc/UTC 2270s creating configuration files ... ok 2271s running bootstrap script ... ok 2271s performing post-bootstrap initialization ... ok 2271s syncing data to disk ... ok 2275s Setting up libglx0:amd64 (1.7.0-1build1) ... 2275s Setting up libspring-core-java (4.3.30-2) ... 2275s Setting up dconf-gsettings-backend:amd64 (0.40.0-4build2) ... 2275s Setting up libcommons-io-java (2.11.0-2) ... 2275s Setting up patroni-doc (3.3.0-1) ... 2275s Setting up libpango-1.0-0:amd64 (1.52.1+ds-1build1) ... 2275s Setting up libjnr-enxio-java (0.32.16-1) ... 2275s Setting up libgl1:amd64 (1.7.0-1build1) ... 2275s Setting up postgresql (16+257build1) ... 2275s Setting up libpangoft2-1.0-0:amd64 (1.52.1+ds-1build1) ... 2275s Setting up libcups2t64:amd64 (2.4.7-1.2ubuntu7) ... 2275s Setting up libgtk-3-common (3.24.41-4ubuntu1) ... 2275s Setting up libjnr-posix-java (3.1.18-1) ... 2275s Setting up libpangocairo-1.0-0:amd64 (1.52.1+ds-1build1) ... 2275s Setting up libspring-beans-java (4.3.30-2) ... 2275s Setting up libjnr-unixsocket-java (0.38.21-2) ... 2275s Setting up libjetty9-extra-java (9.4.54-1) ... 2275s Setting up libguava-java (32.0.1-1) ... 2275s Setting up adwaita-icon-theme (46.0-1) ... 2275s update-alternatives: using /usr/share/icons/Adwaita/cursor.theme to provide /usr/share/icons/default/index.theme (x-cursor-theme) in auto mode 2275s Setting up liberror-prone-java (2.18.0-1) ... 2275s Setting up humanity-icon-theme (0.6.16) ... 2275s Setting up ubuntu-mono (24.04-0ubuntu1) ... 2275s Processing triggers for man-db (2.12.0-4build2) ... 2277s Processing triggers for libglib2.0-0t64:amd64 (2.80.0-6ubuntu1) ... 2277s Setting up libgtk-3-0t64:amd64 (3.24.41-4ubuntu1) ... 2277s Processing triggers for libc-bin (2.39-0ubuntu8) ... 2277s Processing triggers for ca-certificates-java (20240118) ... 2277s Adding debian:ACCVRAIZ1.pem 2277s Adding debian:AC_RAIZ_FNMT-RCM.pem 2277s Adding debian:AC_RAIZ_FNMT-RCM_SERVIDORES_SEGUROS.pem 2277s Adding debian:ANF_Secure_Server_Root_CA.pem 2277s Adding debian:Actalis_Authentication_Root_CA.pem 2277s Adding debian:AffirmTrust_Commercial.pem 2277s Adding debian:AffirmTrust_Networking.pem 2277s Adding debian:AffirmTrust_Premium.pem 2277s Adding debian:AffirmTrust_Premium_ECC.pem 2277s Adding debian:Amazon_Root_CA_1.pem 2277s Adding debian:Amazon_Root_CA_2.pem 2277s Adding debian:Amazon_Root_CA_3.pem 2277s Adding debian:Amazon_Root_CA_4.pem 2277s Adding debian:Atos_TrustedRoot_2011.pem 2277s Adding debian:Atos_TrustedRoot_Root_CA_ECC_TLS_2021.pem 2277s Adding debian:Atos_TrustedRoot_Root_CA_RSA_TLS_2021.pem 2277s Adding debian:Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.pem 2277s Adding debian:BJCA_Global_Root_CA1.pem 2277s Adding debian:BJCA_Global_Root_CA2.pem 2277s Adding debian:Baltimore_CyberTrust_Root.pem 2277s Adding debian:Buypass_Class_2_Root_CA.pem 2277s Adding debian:Buypass_Class_3_Root_CA.pem 2277s Adding debian:CA_Disig_Root_R2.pem 2277s Adding debian:CFCA_EV_ROOT.pem 2277s Adding debian:COMODO_Certification_Authority.pem 2277s Adding debian:COMODO_ECC_Certification_Authority.pem 2277s Adding debian:COMODO_RSA_Certification_Authority.pem 2277s Adding debian:Certainly_Root_E1.pem 2277s Adding debian:Certainly_Root_R1.pem 2277s Adding debian:Certigna.pem 2277s Adding debian:Certigna_Root_CA.pem 2277s Adding debian:Certum_EC-384_CA.pem 2277s Adding debian:Certum_Trusted_Network_CA.pem 2277s Adding debian:Certum_Trusted_Network_CA_2.pem 2277s Adding debian:Certum_Trusted_Root_CA.pem 2277s Adding debian:CommScope_Public_Trust_ECC_Root-01.pem 2277s Adding debian:CommScope_Public_Trust_ECC_Root-02.pem 2277s Adding debian:CommScope_Public_Trust_RSA_Root-01.pem 2277s Adding debian:CommScope_Public_Trust_RSA_Root-02.pem 2277s Adding debian:Comodo_AAA_Services_root.pem 2277s Adding debian:D-TRUST_BR_Root_CA_1_2020.pem 2277s Adding debian:D-TRUST_EV_Root_CA_1_2020.pem 2277s Adding debian:D-TRUST_Root_Class_3_CA_2_2009.pem 2277s Adding debian:D-TRUST_Root_Class_3_CA_2_EV_2009.pem 2277s Adding debian:DigiCert_Assured_ID_Root_CA.pem 2277s Adding debian:DigiCert_Assured_ID_Root_G2.pem 2277s Adding debian:DigiCert_Assured_ID_Root_G3.pem 2277s Adding debian:DigiCert_Global_Root_CA.pem 2277s Adding debian:DigiCert_Global_Root_G2.pem 2277s Adding debian:DigiCert_Global_Root_G3.pem 2277s Adding debian:DigiCert_High_Assurance_EV_Root_CA.pem 2277s Adding debian:DigiCert_TLS_ECC_P384_Root_G5.pem 2277s Adding debian:DigiCert_TLS_RSA4096_Root_G5.pem 2277s Adding debian:DigiCert_Trusted_Root_G4.pem 2277s Adding debian:Entrust.net_Premium_2048_Secure_Server_CA.pem 2277s Adding debian:Entrust_Root_Certification_Authority.pem 2277s Adding debian:Entrust_Root_Certification_Authority_-_EC1.pem 2277s Adding debian:Entrust_Root_Certification_Authority_-_G2.pem 2277s Adding debian:Entrust_Root_Certification_Authority_-_G4.pem 2277s Adding debian:GDCA_TrustAUTH_R5_ROOT.pem 2277s Adding debian:GLOBALTRUST_2020.pem 2277s Adding debian:GTS_Root_R1.pem 2277s Adding debian:GTS_Root_R2.pem 2277s Adding debian:GTS_Root_R3.pem 2277s Adding debian:GTS_Root_R4.pem 2277s Adding debian:GlobalSign_ECC_Root_CA_-_R4.pem 2277s Adding debian:GlobalSign_ECC_Root_CA_-_R5.pem 2277s Adding debian:GlobalSign_Root_CA.pem 2277s Adding debian:GlobalSign_Root_CA_-_R3.pem 2277s Adding debian:GlobalSign_Root_CA_-_R6.pem 2277s Adding debian:GlobalSign_Root_E46.pem 2277s Adding debian:GlobalSign_Root_R46.pem 2277s Adding debian:Go_Daddy_Class_2_CA.pem 2277s Adding debian:Go_Daddy_Root_Certificate_Authority_-_G2.pem 2277s Adding debian:HARICA_TLS_ECC_Root_CA_2021.pem 2277s Adding debian:HARICA_TLS_RSA_Root_CA_2021.pem 2277s Adding debian:Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.pem 2277s Adding debian:Hellenic_Academic_and_Research_Institutions_RootCA_2015.pem 2277s Adding debian:HiPKI_Root_CA_-_G1.pem 2277s Adding debian:Hongkong_Post_Root_CA_3.pem 2277s Adding debian:ISRG_Root_X1.pem 2277s Adding debian:ISRG_Root_X2.pem 2277s Adding debian:IdenTrust_Commercial_Root_CA_1.pem 2277s Adding debian:IdenTrust_Public_Sector_Root_CA_1.pem 2277s Adding debian:Izenpe.com.pem 2277s Adding debian:Microsec_e-Szigno_Root_CA_2009.pem 2277s Adding debian:Microsoft_ECC_Root_Certificate_Authority_2017.pem 2277s Adding debian:Microsoft_RSA_Root_Certificate_Authority_2017.pem 2277s Adding debian:NAVER_Global_Root_Certification_Authority.pem 2277s Adding debian:NetLock_Arany_=Class_Gold=_Főtanúsítvány.pem 2277s Adding debian:OISTE_WISeKey_Global_Root_GB_CA.pem 2277s Adding debian:OISTE_WISeKey_Global_Root_GC_CA.pem 2277s Adding debian:QuoVadis_Root_CA_1_G3.pem 2277s Adding debian:QuoVadis_Root_CA_2.pem 2277s Adding debian:QuoVadis_Root_CA_2_G3.pem 2277s Adding debian:QuoVadis_Root_CA_3.pem 2277s Adding debian:QuoVadis_Root_CA_3_G3.pem 2277s Adding debian:SSL.com_EV_Root_Certification_Authority_ECC.pem 2277s Adding debian:SSL.com_EV_Root_Certification_Authority_RSA_R2.pem 2277s Adding debian:SSL.com_Root_Certification_Authority_ECC.pem 2277s Adding debian:SSL.com_Root_Certification_Authority_RSA.pem 2277s Adding debian:SSL.com_TLS_ECC_Root_CA_2022.pem 2277s Adding debian:SSL.com_TLS_RSA_Root_CA_2022.pem 2277s Adding debian:SZAFIR_ROOT_CA2.pem 2277s Adding debian:Sectigo_Public_Server_Authentication_Root_E46.pem 2277s Adding debian:Sectigo_Public_Server_Authentication_Root_R46.pem 2277s Adding debian:SecureSign_RootCA11.pem 2277s Adding debian:SecureTrust_CA.pem 2277s Adding debian:Secure_Global_CA.pem 2277s Adding debian:Security_Communication_ECC_RootCA1.pem 2277s Adding debian:Security_Communication_RootCA2.pem 2277s Adding debian:Security_Communication_RootCA3.pem 2277s Adding debian:Security_Communication_Root_CA.pem 2277s Adding debian:Starfield_Class_2_CA.pem 2277s Adding debian:Starfield_Root_Certificate_Authority_-_G2.pem 2277s Adding debian:Starfield_Services_Root_Certificate_Authority_-_G2.pem 2277s Adding debian:SwissSign_Gold_CA_-_G2.pem 2277s Adding debian:SwissSign_Silver_CA_-_G2.pem 2277s Adding debian:T-TeleSec_GlobalRoot_Class_2.pem 2277s Adding debian:T-TeleSec_GlobalRoot_Class_3.pem 2277s Adding debian:TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.pem 2277s Adding debian:TWCA_Global_Root_CA.pem 2277s Adding debian:TWCA_Root_Certification_Authority.pem 2277s Adding debian:TeliaSonera_Root_CA_v1.pem 2277s Adding debian:Telia_Root_CA_v2.pem 2277s Adding debian:TrustAsia_Global_Root_CA_G3.pem 2277s Adding debian:TrustAsia_Global_Root_CA_G4.pem 2277s Adding debian:Trustwave_Global_Certification_Authority.pem 2277s Adding debian:Trustwave_Global_ECC_P256_Certification_Authority.pem 2278s Adding debian:Trustwave_Global_ECC_P384_Certification_Authority.pem 2278s Adding debian:TunTrust_Root_CA.pem 2278s Adding debian:UCA_Extended_Validation_Root.pem 2278s Adding debian:UCA_Global_G2_Root.pem 2278s Adding debian:USERTrust_ECC_Certification_Authority.pem 2278s Adding debian:USERTrust_RSA_Certification_Authority.pem 2278s Adding debian:XRamp_Global_CA_Root.pem 2278s Adding debian:certSIGN_ROOT_CA.pem 2278s Adding debian:certSIGN_Root_CA_G2.pem 2278s Adding debian:e-Szigno_Root_CA_2017.pem 2278s Adding debian:ePKI_Root_Certification_Authority.pem 2278s Adding debian:emSign_ECC_Root_CA_-_C3.pem 2278s Adding debian:emSign_ECC_Root_CA_-_G3.pem 2278s Adding debian:emSign_Root_CA_-_C1.pem 2278s Adding debian:emSign_Root_CA_-_G1.pem 2278s Adding debian:vTrus_ECC_Root_CA.pem 2278s Adding debian:vTrus_Root_CA.pem 2278s done. 2278s Setting up openjdk-21-jre:amd64 (21.0.3+9-1ubuntu1) ... 2278s Setting up junit4 (4.13.2-4) ... 2278s Setting up default-jre-headless (2:1.21-75+exp1) ... 2278s Setting up default-jre (2:1.21-75+exp1) ... 2278s Setting up libnetty-tcnative-java (2.0.28-1build4) ... 2278s Setting up libzookeeper-java (3.9.2-2) ... 2278s Setting up zookeeper (3.9.2-2) ... 2278s warn: The home directory `/var/lib/zookeeper' already exists. Not touching this directory. 2278s warn: Warning: The home directory `/var/lib/zookeeper' does not belong to the user you are currently creating. 2278s update-alternatives: using /etc/zookeeper/conf_example to provide /etc/zookeeper/conf (zookeeper-conf) in auto mode 2278s Setting up zookeeperd (3.9.2-2) ... 2278s Setting up autopkgtest-satdep (0) ... 2284s (Reading database ... 93478 files and directories currently installed.) 2284s Removing autopkgtest-satdep (0) ... 2285s autopkgtest [19:55:08]: test acceptance-zookeeper: debian/tests/acceptance zookeeper "-e dcs_failsafe_mode" 2285s autopkgtest [19:55:08]: test acceptance-zookeeper: [----------------------- 2290s dpkg-architecture: warning: cannot determine CC system type, falling back to default (native compilation) 2290s ++ ls -1r /usr/lib/postgresql/ 2290s ### PostgreSQL 16 acceptance-zookeeper -e dcs_failsafe_mode ### 2290s + for PG_VERSION in $(ls -1r /usr/lib/postgresql/) 2290s + '[' 16 == 10 -o 16 == 11 ']' 2290s + echo '### PostgreSQL 16 acceptance-zookeeper -e dcs_failsafe_mode ###' 2290s + su postgres -p -c 'set -o pipefail; ETCD_UNSUPPORTED_ARCH= DCS=zookeeper PATH=/usr/lib/postgresql/16/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin behave -e dcs_failsafe_mode | ts' 2291s May 17 19:55:14 Feature: basic replication # features/basic_replication.feature:1 2291s May 17 19:55:14 We should check that the basic bootstrapping, replication and failover works. 2291s May 17 19:55:14 Scenario: check replication of a single table # features/basic_replication.feature:4 2291s May 17 19:55:14 Given I start postgres0 # features/steps/basic_replication.py:8 2294s May 17 19:55:17 Then postgres0 is a leader after 10 seconds # features/steps/patroni_api.py:29 2295s May 17 19:55:18 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 2295s May 17 19:55:18 When I issue a PATCH request to http://127.0.0.1:8008/config with {"ttl": 20, "synchronous_mode": true} # features/steps/patroni_api.py:71 2295s May 17 19:55:18 Then I receive a response code 200 # features/steps/patroni_api.py:98 2295s May 17 19:55:18 When I start postgres1 # features/steps/basic_replication.py:8 2298s May 17 19:55:21 And I configure and start postgres2 with a tag replicatefrom postgres0 # features/steps/cascading_replication.py:7 2301s May 17 19:55:24 And "sync" key in DCS has leader=postgres0 after 20 seconds # features/steps/cascading_replication.py:23 2301s May 17 19:55:24 And I add the table foo to postgres0 # features/steps/basic_replication.py:54 2301s May 17 19:55:24 Then table foo is present on postgres1 after 20 seconds # features/steps/basic_replication.py:93 2302s May 17 19:55:25 Then table foo is present on postgres2 after 20 seconds # features/steps/basic_replication.py:93 2306s May 17 19:55:29 2306s May 17 19:55:29 Scenario: check restart of sync replica # features/basic_replication.feature:17 2306s May 17 19:55:29 Given I shut down postgres2 # features/steps/basic_replication.py:29 2307s May 17 19:55:30 Then "sync" key in DCS has sync_standby=postgres1 after 5 seconds # features/steps/cascading_replication.py:23 2307s May 17 19:55:30 When I start postgres2 # features/steps/basic_replication.py:8 2310s May 17 19:55:33 And I shut down postgres1 # features/steps/basic_replication.py:29 2313s May 17 19:55:36 Then "sync" key in DCS has sync_standby=postgres2 after 10 seconds # features/steps/cascading_replication.py:23 2314s May 17 19:55:37 When I start postgres1 # features/steps/basic_replication.py:8 2317s May 17 19:55:40 Then "members/postgres1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 2317s May 17 19:55:40 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:142 2317s May 17 19:55:40 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:142 2317s May 17 19:55:40 2317s May 17 19:55:40 Scenario: check stuck sync replica # features/basic_replication.feature:28 2317s May 17 19:55:40 Given I issue a PATCH request to http://127.0.0.1:8008/config with {"pause": true, "maximum_lag_on_syncnode": 15000000, "postgresql": {"parameters": {"synchronous_commit": "remote_apply"}}} # features/steps/patroni_api.py:71 2317s May 17 19:55:40 Then I receive a response code 200 # features/steps/patroni_api.py:98 2317s May 17 19:55:40 And I create table on postgres0 # features/steps/basic_replication.py:73 2317s May 17 19:55:40 And table mytest is present on postgres1 after 2 seconds # features/steps/basic_replication.py:93 2318s May 17 19:55:41 And table mytest is present on postgres2 after 2 seconds # features/steps/basic_replication.py:93 2318s May 17 19:55:41 When I pause wal replay on postgres2 # features/steps/basic_replication.py:64 2318s May 17 19:55:41 And I load data on postgres0 # features/steps/basic_replication.py:84 2319s May 17 19:55:42 Then "sync" key in DCS has sync_standby=postgres1 after 15 seconds # features/steps/cascading_replication.py:23 2322s May 17 19:55:45 And I resume wal replay on postgres2 # features/steps/basic_replication.py:64 2322s May 17 19:55:45 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:142 2323s May 17 19:55:46 And Status code on GET http://127.0.0.1:8010/async is 200 after 3 seconds # features/steps/patroni_api.py:142 2323s May 17 19:55:46 When I issue a PATCH request to http://127.0.0.1:8008/config with {"pause": null, "maximum_lag_on_syncnode": -1, "postgresql": {"parameters": {"synchronous_commit": "on"}}} # features/steps/patroni_api.py:71 2323s May 17 19:55:46 Then I receive a response code 200 # features/steps/patroni_api.py:98 2323s May 17 19:55:46 And I drop table on postgres0 # features/steps/basic_replication.py:73 2323s May 17 19:55:46 2323s May 17 19:55:46 Scenario: check multi sync replication # features/basic_replication.feature:44 2323s May 17 19:55:46 Given I issue a PATCH request to http://127.0.0.1:8008/config with {"synchronous_node_count": 2} # features/steps/patroni_api.py:71 2323s May 17 19:55:46 Then I receive a response code 200 # features/steps/patroni_api.py:98 2323s May 17 19:55:46 Then "sync" key in DCS has sync_standby=postgres1,postgres2 after 10 seconds # features/steps/cascading_replication.py:23 2327s May 17 19:55:50 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:142 2327s May 17 19:55:50 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:142 2327s May 17 19:55:50 When I issue a PATCH request to http://127.0.0.1:8008/config with {"synchronous_node_count": 1} # features/steps/patroni_api.py:71 2327s May 17 19:55:50 Then I receive a response code 200 # features/steps/patroni_api.py:98 2327s May 17 19:55:50 And I shut down postgres1 # features/steps/basic_replication.py:29 2330s May 17 19:55:53 Then "sync" key in DCS has sync_standby=postgres2 after 10 seconds # features/steps/cascading_replication.py:23 2331s May 17 19:55:54 When I start postgres1 # features/steps/basic_replication.py:8 2334s May 17 19:55:57 Then "members/postgres1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 2334s May 17 19:55:57 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:142 2334s May 17 19:55:57 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:142 2334s May 17 19:55:57 2334s May 17 19:55:57 Scenario: check the basic failover in synchronous mode # features/basic_replication.feature:59 2334s May 17 19:55:57 Given I run patronictl.py pause batman # features/steps/patroni_api.py:86 2336s May 17 19:55:59 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 2336s May 17 19:55:59 When I sleep for 2 seconds # features/steps/patroni_api.py:39 2338s May 17 19:56:01 And I shut down postgres0 # features/steps/basic_replication.py:29 2339s May 17 19:56:02 And I run patronictl.py resume batman # features/steps/patroni_api.py:86 2340s May 17 19:56:03 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 2340s May 17 19:56:03 And postgres2 role is the primary after 24 seconds # features/steps/basic_replication.py:105 2360s May 17 19:56:23 And Response on GET http://127.0.0.1:8010/history contains recovery after 10 seconds # features/steps/patroni_api.py:156 2363s May 17 19:56:26 And there is a postgres2_cb.log with "on_role_change master batman" in postgres2 data directory # features/steps/cascading_replication.py:12 2363s May 17 19:56:26 When I issue a PATCH request to http://127.0.0.1:8010/config with {"synchronous_mode": null, "master_start_timeout": 0} # features/steps/patroni_api.py:71 2363s May 17 19:56:26 Then I receive a response code 200 # features/steps/patroni_api.py:98 2363s May 17 19:56:26 When I add the table bar to postgres2 # features/steps/basic_replication.py:54 2363s May 17 19:56:26 Then table bar is present on postgres1 after 20 seconds # features/steps/basic_replication.py:93 2366s May 17 19:56:29 And Response on GET http://127.0.0.1:8010/config contains master_start_timeout after 10 seconds # features/steps/patroni_api.py:156 2366s May 17 19:56:29 2366s May 17 19:56:29 Scenario: check rejoin of the former primary with pg_rewind # features/basic_replication.feature:75 2366s May 17 19:56:29 Given I add the table splitbrain to postgres0 # features/steps/basic_replication.py:54 2366s May 17 19:56:29 And I start postgres0 # features/steps/basic_replication.py:8 2366s May 17 19:56:29 Then postgres0 role is the secondary after 20 seconds # features/steps/basic_replication.py:105 2374s May 17 19:56:37 When I add the table buz to postgres2 # features/steps/basic_replication.py:54 2374s May 17 19:56:37 Then table buz is present on postgres0 after 20 seconds # features/steps/basic_replication.py:93 2374s May 17 19:56:37 2374s May 17 19:56:37 @reject-duplicate-name 2374s May 17 19:56:37 Scenario: check graceful rejection when two nodes have the same name # features/basic_replication.feature:83 2374s May 17 19:56:37 Given I start duplicate postgres0 on port 8011 # features/steps/basic_replication.py:13 2376s May 17 19:56:39 Then there is one of ["Can't start; there is already a node named 'postgres0' running"] CRITICAL in the dup-postgres0 patroni log after 5 seconds # features/steps/basic_replication.py:121 2380s May 17 19:56:43 2380s May 17 19:56:43 Feature: cascading replication # features/cascading_replication.feature:1 2380s May 17 19:56:43 We should check that patroni can do base backup and streaming from the replica 2380s May 17 19:56:43 Scenario: check a base backup and streaming replication from a replica # features/cascading_replication.feature:4 2380s May 17 19:56:43 Given I start postgres0 # features/steps/basic_replication.py:8 2383s May 17 19:56:46 And postgres0 is a leader after 10 seconds # features/steps/patroni_api.py:29 2384s May 17 19:56:47 And I configure and start postgres1 with a tag clonefrom true # features/steps/cascading_replication.py:7 2387s May 17 19:56:50 And replication works from postgres0 to postgres1 after 20 seconds # features/steps/basic_replication.py:112 2388s May 17 19:56:51 And I create label with "postgres0" in postgres0 data directory # features/steps/cascading_replication.py:18 2388s May 17 19:56:51 And I create label with "postgres1" in postgres1 data directory # features/steps/cascading_replication.py:18 2388s May 17 19:56:51 And "members/postgres1" key in DCS has state=running after 12 seconds # features/steps/cascading_replication.py:23 2388s May 17 19:56:51 And I configure and start postgres2 with a tag replicatefrom postgres1 # features/steps/cascading_replication.py:7 2391s May 17 19:56:54 Then replication works from postgres0 to postgres2 after 30 seconds # features/steps/basic_replication.py:112 2392s May 17 19:56:55 And there is a label with "postgres1" in postgres2 data directory # features/steps/cascading_replication.py:12 2398s May 17 19:57:01 2398s May 17 19:57:01 Feature: citus # features/citus.feature:1 2398s May 17 19:57:01 We should check that coordinator discovers and registers workers and clients don't have errors when worker cluster switches over 2398s May 17 19:57:01 Scenario: check that worker cluster is registered in the coordinator # features/citus.feature:4 2398s May 17 19:57:01 Given I start postgres0 in citus group 0 # None 2398s May 17 19:57:01 And I start postgres2 in citus group 1 # None 2398s May 17 19:57:01 Then postgres0 is a leader in a group 0 after 10 seconds # None 2398s May 17 19:57:01 And postgres2 is a leader in a group 1 after 10 seconds # None 2398s May 17 19:57:01 When I start postgres1 in citus group 0 # None 2398s May 17 19:57:01 And I start postgres3 in citus group 1 # None 2398s May 17 19:57:01 Then replication works from postgres0 to postgres1 after 15 seconds # None 2398s May 17 19:57:01 Then replication works from postgres2 to postgres3 after 15 seconds # None 2398s May 17 19:57:01 And postgres0 is registered in the postgres0 as the primary in group 0 after 5 seconds # None 2398s May 17 19:57:01 And postgres2 is registered in the postgres0 as the primary in group 1 after 5 seconds # None 2398s May 17 19:57:01 2398s May 17 19:57:01 Scenario: coordinator failover updates pg_dist_node # features/citus.feature:16 2398s May 17 19:57:01 Given I run patronictl.py failover batman --group 0 --candidate postgres1 --force # None 2398s May 17 19:57:01 Then postgres1 role is the primary after 10 seconds # None 2398s May 17 19:57:01 And "members/postgres0" key in a group 0 in DCS has state=running after 15 seconds # None 2398s May 17 19:57:01 And replication works from postgres1 to postgres0 after 15 seconds # None 2398s May 17 19:57:01 And postgres1 is registered in the postgres2 as the primary in group 0 after 5 seconds # None 2398s May 17 19:57:01 And "sync" key in a group 0 in DCS has sync_standby=postgres0 after 15 seconds # None 2398s May 17 19:57:01 When I run patronictl.py switchover batman --group 0 --candidate postgres0 --force # None 2398s May 17 19:57:01 Then postgres0 role is the primary after 10 seconds # None 2398s May 17 19:57:01 And replication works from postgres0 to postgres1 after 15 seconds # None 2398s May 17 19:57:01 And postgres0 is registered in the postgres2 as the primary in group 0 after 5 seconds # None 2398s May 17 19:57:01 And "sync" key in a group 0 in DCS has sync_standby=postgres1 after 15 seconds # None 2398s May 17 19:57:01 2398s May 17 19:57:01 Scenario: worker switchover doesn't break client queries on the coordinator # features/citus.feature:29 2398s May 17 19:57:01 Given I create a distributed table on postgres0 # None 2398s May 17 19:57:01 And I start a thread inserting data on postgres0 # None 2398s May 17 19:57:01 When I run patronictl.py switchover batman --group 1 --force # None 2398s May 17 19:57:01 Then I receive a response returncode 0 # None 2398s May 17 19:57:01 And postgres3 role is the primary after 10 seconds # None 2398s May 17 19:57:01 And "members/postgres2" key in a group 1 in DCS has state=running after 15 seconds # None 2398s May 17 19:57:01 And replication works from postgres3 to postgres2 after 15 seconds # None 2398s May 17 19:57:01 And postgres3 is registered in the postgres0 as the primary in group 1 after 5 seconds # None 2398s May 17 19:57:01 And "sync" key in a group 1 in DCS has sync_standby=postgres2 after 15 seconds # None 2398s May 17 19:57:01 And a thread is still alive # None 2398s May 17 19:57:01 When I run patronictl.py switchover batman --group 1 --force # None 2398s May 17 19:57:01 Then I receive a response returncode 0 # None 2398s May 17 19:57:01 And postgres2 role is the primary after 10 seconds # None 2398s May 17 19:57:01 And replication works from postgres2 to postgres3 after 15 seconds # None 2398s May 17 19:57:01 And postgres2 is registered in the postgres0 as the primary in group 1 after 5 seconds # None 2398s May 17 19:57:01 And "sync" key in a group 1 in DCS has sync_standby=postgres3 after 15 seconds # None 2398s May 17 19:57:01 And a thread is still alive # None 2398s May 17 19:57:01 When I stop a thread # None 2398s May 17 19:57:01 Then a distributed table on postgres0 has expected rows # None 2398s May 17 19:57:01 2398s May 17 19:57:01 Scenario: worker primary restart doesn't break client queries on the coordinator # features/citus.feature:50 2398s May 17 19:57:01 Given I cleanup a distributed table on postgres0 # None 2398s May 17 19:57:01 And I start a thread inserting data on postgres0 # None 2398s May 17 19:57:01 When I run patronictl.py restart batman postgres2 --group 1 --force # None 2398s May 17 19:57:01 Then I receive a response returncode 0 # None 2398s May 17 19:57:01 And postgres2 role is the primary after 10 seconds # None 2398s May 17 19:57:01 And replication works from postgres2 to postgres3 after 15 seconds # None 2398s May 17 19:57:01 And postgres2 is registered in the postgres0 as the primary in group 1 after 5 seconds # None 2398s May 17 19:57:01 And a thread is still alive # None 2398s May 17 19:57:01 When I stop a thread # None 2398s May 17 19:57:01 Then a distributed table on postgres0 has expected rows # None 2398s SKIP FEATURE citus: Citus extenstion isn't available 2398s SKIP Scenario check that worker cluster is registered in the coordinator: Citus extenstion isn't available 2398s SKIP Scenario coordinator failover updates pg_dist_node: Citus extenstion isn't available 2398s SKIP Scenario worker switchover doesn't break client queries on the coordinator: Citus extenstion isn't available 2398s SKIP Scenario worker primary restart doesn't break client queries on the coordinator: Citus extenstion isn't available 2398s SKIP Scenario check that in-flight transaction is rolled back after timeout when other workers need to change pg_dist_node: Citus extenstion isn't available 2398s May 17 19:57:01 2398s May 17 19:57:01 Scenario: check that in-flight transaction is rolled back after timeout when other workers need to change pg_dist_node # features/citus.feature:62 2398s May 17 19:57:01 Given I start postgres4 in citus group 2 # None 2398s May 17 19:57:01 Then postgres4 is a leader in a group 2 after 10 seconds # None 2398s May 17 19:57:01 And "members/postgres4" key in a group 2 in DCS has role=master after 3 seconds # None 2398s May 17 19:57:01 When I run patronictl.py edit-config batman --group 2 -s ttl=20 --force # None 2398s May 17 19:57:01 Then I receive a response returncode 0 # None 2398s May 17 19:57:01 And I receive a response output "+ttl: 20" # None 2398s May 17 19:57:01 Then postgres4 is registered in the postgres2 as the primary in group 2 after 5 seconds # None 2398s May 17 19:57:01 When I shut down postgres4 # None 2398s May 17 19:57:01 Then there is a transaction in progress on postgres0 changing pg_dist_node after 5 seconds # None 2398s May 17 19:57:01 When I run patronictl.py restart batman postgres2 --group 1 --force # None 2398s May 17 19:57:01 Then a transaction finishes in 20 seconds # None 2398s May 17 19:57:01 2398s May 17 19:57:01 Feature: custom bootstrap # features/custom_bootstrap.feature:1 2398s May 17 19:57:01 We should check that patroni can bootstrap a new cluster from a backup 2398s May 17 19:57:01 Scenario: clone existing cluster using pg_basebackup # features/custom_bootstrap.feature:4 2398s May 17 19:57:01 Given I start postgres0 # features/steps/basic_replication.py:8 2401s May 17 19:57:04 Then postgres0 is a leader after 10 seconds # features/steps/patroni_api.py:29 2401s May 17 19:57:04 When I add the table foo to postgres0 # features/steps/basic_replication.py:54 2401s May 17 19:57:04 And I start postgres1 in a cluster batman1 as a clone of postgres0 # features/steps/custom_bootstrap.py:6 2405s May 17 19:57:08 Then postgres1 is a leader of batman1 after 10 seconds # features/steps/custom_bootstrap.py:16 2406s May 17 19:57:09 Then table foo is present on postgres1 after 10 seconds # features/steps/basic_replication.py:93 2406s May 17 19:57:09 2406s May 17 19:57:09 Scenario: make a backup and do a restore into a new cluster # features/custom_bootstrap.feature:12 2406s May 17 19:57:09 Given I add the table bar to postgres1 # features/steps/basic_replication.py:54 2406s May 17 19:57:09 And I do a backup of postgres1 # features/steps/custom_bootstrap.py:25 2407s May 17 19:57:10 When I start postgres2 in a cluster batman2 from backup # features/steps/custom_bootstrap.py:11 2412s May 17 19:57:15 Then postgres2 is a leader of batman2 after 30 seconds # features/steps/custom_bootstrap.py:16 2412s May 17 19:57:15 And table bar is present on postgres2 after 10 seconds # features/steps/basic_replication.py:93 2418s May 17 19:57:21 2418s May 17 19:57:21 Feature: ignored slots # features/ignored_slots.feature:1 2418s May 17 19:57:21 2418s May 17 19:57:21 Scenario: check ignored slots aren't removed on failover/switchover # features/ignored_slots.feature:2 2418s May 17 19:57:21 Given I start postgres1 # features/steps/basic_replication.py:8 2421s May 17 19:57:24 Then postgres1 is a leader after 10 seconds # features/steps/patroni_api.py:29 2421s May 17 19:57:24 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 2421s May 17 19:57:24 When I issue a PATCH request to http://127.0.0.1:8009/config with {"ignore_slots": [{"name": "unmanaged_slot_0", "database": "postgres", "plugin": "test_decoding", "type": "logical"}, {"name": "unmanaged_slot_1", "database": "postgres", "plugin": "test_decoding"}, {"name": "unmanaged_slot_2", "database": "postgres"}, {"name": "unmanaged_slot_3"}], "postgresql": {"parameters": {"wal_level": "logical"}}} # features/steps/patroni_api.py:71 2421s May 17 19:57:24 Then I receive a response code 200 # features/steps/patroni_api.py:98 2421s May 17 19:57:24 And Response on GET http://127.0.0.1:8009/config contains ignore_slots after 10 seconds # features/steps/patroni_api.py:156 2421s May 17 19:57:24 When I shut down postgres1 # features/steps/basic_replication.py:29 2423s May 17 19:57:26 And I start postgres1 # features/steps/basic_replication.py:8 2425s May 17 19:57:28 Then postgres1 is a leader after 10 seconds # features/steps/patroni_api.py:29 2426s May 17 19:57:29 And "members/postgres1" key in DCS has role=master after 10 seconds # features/steps/cascading_replication.py:23 2427s May 17 19:57:30 And postgres1 role is the primary after 20 seconds # features/steps/basic_replication.py:105 2427s May 17 19:57:30 When I create a logical replication slot unmanaged_slot_0 on postgres1 with the test_decoding plugin # features/steps/slots.py:8 2427s May 17 19:57:30 And I create a logical replication slot unmanaged_slot_1 on postgres1 with the test_decoding plugin # features/steps/slots.py:8 2427s May 17 19:57:30 And I create a logical replication slot unmanaged_slot_2 on postgres1 with the test_decoding plugin # features/steps/slots.py:8 2427s May 17 19:57:30 And I create a logical replication slot unmanaged_slot_3 on postgres1 with the test_decoding plugin # features/steps/slots.py:8 2427s May 17 19:57:30 And I create a logical replication slot dummy_slot on postgres1 with the test_decoding plugin # features/steps/slots.py:8 2427s May 17 19:57:30 Then postgres1 has a logical replication slot named unmanaged_slot_0 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 2427s May 17 19:57:30 And postgres1 has a logical replication slot named unmanaged_slot_1 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 2427s May 17 19:57:30 And postgres1 has a logical replication slot named unmanaged_slot_2 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 2427s May 17 19:57:30 And postgres1 has a logical replication slot named unmanaged_slot_3 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 2427s May 17 19:57:30 When I start postgres0 # features/steps/basic_replication.py:8 2430s May 17 19:57:33 Then "members/postgres0" key in DCS has role=replica after 10 seconds # features/steps/cascading_replication.py:23 2431s May 17 19:57:34 And postgres0 role is the secondary after 20 seconds # features/steps/basic_replication.py:105 2431s May 17 19:57:34 And replication works from postgres1 to postgres0 after 20 seconds # features/steps/basic_replication.py:112 2433s May 17 19:57:36 When I shut down postgres1 # features/steps/basic_replication.py:29 2435s May 17 19:57:38 Then "members/postgres0" key in DCS has role=master after 10 seconds # features/steps/cascading_replication.py:23 2436s May 17 19:57:39 When I start postgres1 # features/steps/basic_replication.py:8 2439s May 17 19:57:42 Then postgres1 role is the secondary after 20 seconds # features/steps/basic_replication.py:105 2439s May 17 19:57:42 And "members/postgres1" key in DCS has role=replica after 10 seconds # features/steps/cascading_replication.py:23 2439s May 17 19:57:42 And I sleep for 2 seconds # features/steps/patroni_api.py:39 2441s May 17 19:57:44 And postgres1 has a logical replication slot named unmanaged_slot_0 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 2441s May 17 19:57:44 And postgres1 has a logical replication slot named unmanaged_slot_1 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 2441s May 17 19:57:44 And postgres1 has a logical replication slot named unmanaged_slot_2 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 2441s May 17 19:57:44 And postgres1 has a logical replication slot named unmanaged_slot_3 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 2441s May 17 19:57:44 And postgres1 does not have a replication slot named dummy_slot # features/steps/slots.py:40 2441s May 17 19:57:44 When I shut down postgres0 # features/steps/basic_replication.py:29 2443s May 17 19:57:46 Then "members/postgres1" key in DCS has role=master after 10 seconds # features/steps/cascading_replication.py:23 2444s May 17 19:57:47 And postgres1 has a logical replication slot named unmanaged_slot_0 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 2444s May 17 19:57:47 And postgres1 has a logical replication slot named unmanaged_slot_1 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 2444s May 17 19:57:47 And postgres1 has a logical replication slot named unmanaged_slot_2 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 2444s May 17 19:57:47 And postgres1 has a logical replication slot named unmanaged_slot_3 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 2446s May 17 19:57:49 2446s May 17 19:57:49 Feature: nostream node # features/nostream_node.feature:1 2446s May 17 19:57:49 2446s May 17 19:57:49 Scenario: check nostream node is recovering from archive # features/nostream_node.feature:3 2446s May 17 19:57:49 When I start postgres0 # features/steps/basic_replication.py:8 2449s May 17 19:57:52 And I configure and start postgres1 with a tag nostream true # features/steps/cascading_replication.py:7 2452s May 17 19:57:55 Then "members/postgres1" key in DCS has replication_state=in archive recovery after 10 seconds # features/steps/cascading_replication.py:23 2453s May 17 19:57:56 And replication works from postgres0 to postgres1 after 30 seconds # features/steps/basic_replication.py:112 2457s May 17 19:58:00 2457s May 17 19:58:00 @slot-advance 2457s May 17 19:58:00 Scenario: check permanent logical replication slots are not copied # features/nostream_node.feature:10 2457s May 17 19:58:00 When I issue a PATCH request to http://127.0.0.1:8008/config with {"postgresql": {"parameters": {"wal_level": "logical"}}, "slots":{"test_logical":{"type":"logical","database":"postgres","plugin":"test_decoding"}}} # features/steps/patroni_api.py:71 2457s May 17 19:58:00 Then I receive a response code 200 # features/steps/patroni_api.py:98 2457s May 17 19:58:00 When I run patronictl.py restart batman postgres0 --force # features/steps/patroni_api.py:86 2459s May 17 19:58:02 Then postgres0 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:19 2460s May 17 19:58:03 When I configure and start postgres2 with a tag replicatefrom postgres1 # features/steps/cascading_replication.py:7 2463s May 17 19:58:06 Then "members/postgres2" key in DCS has replication_state=streaming after 10 seconds # features/steps/cascading_replication.py:23 2464s May 17 19:58:07 And postgres1 does not have a replication slot named test_logical # features/steps/slots.py:40 2464s May 17 19:58:07 And postgres2 does not have a replication slot named test_logical # features/steps/slots.py:40 2470s May 17 19:58:13 2470s May 17 19:58:13 Feature: patroni api # features/patroni_api.feature:1 2470s May 17 19:58:13 We should check that patroni correctly responds to valid and not-valid API requests. 2470s May 17 19:58:13 Scenario: check API requests on a stand-alone server # features/patroni_api.feature:4 2470s May 17 19:58:13 Given I start postgres0 # features/steps/basic_replication.py:8 2473s May 17 19:58:16 And postgres0 is a leader after 10 seconds # features/steps/patroni_api.py:29 2473s May 17 19:58:16 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:61 2473s May 17 19:58:16 Then I receive a response code 200 # features/steps/patroni_api.py:98 2473s May 17 19:58:16 And I receive a response state running # features/steps/patroni_api.py:98 2473s May 17 19:58:16 And I receive a response role master # features/steps/patroni_api.py:98 2473s May 17 19:58:16 When I issue a GET request to http://127.0.0.1:8008/standby_leader # features/steps/patroni_api.py:61 2473s May 17 19:58:16 Then I receive a response code 503 # features/steps/patroni_api.py:98 2473s May 17 19:58:16 When I issue a GET request to http://127.0.0.1:8008/health # features/steps/patroni_api.py:61 2473s May 17 19:58:16 Then I receive a response code 200 # features/steps/patroni_api.py:98 2473s May 17 19:58:16 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:61 2473s May 17 19:58:16 Then I receive a response code 503 # features/steps/patroni_api.py:98 2473s May 17 19:58:16 When I issue a POST request to http://127.0.0.1:8008/reinitialize with {"force": true} # features/steps/patroni_api.py:71 2473s May 17 19:58:16 Then I receive a response code 503 # features/steps/patroni_api.py:98 2473s May 17 19:58:16 And I receive a response text I am the leader, can not reinitialize # features/steps/patroni_api.py:98 2473s May 17 19:58:16 When I run patronictl.py switchover batman --master postgres0 --force # features/steps/patroni_api.py:86 2474s May 17 19:58:17 Then I receive a response returncode 1 # features/steps/patroni_api.py:98 2474s May 17 19:58:17 And I receive a response output "Error: No candidates found to switchover to" # features/steps/patroni_api.py:98 2474s May 17 19:58:17 When I issue a POST request to http://127.0.0.1:8008/switchover with {"leader": "postgres0"} # features/steps/patroni_api.py:71 2474s May 17 19:58:17 Then I receive a response code 412 # features/steps/patroni_api.py:98 2474s May 17 19:58:17 And I receive a response text switchover is not possible: cluster does not have members except leader # features/steps/patroni_api.py:98 2474s May 17 19:58:17 When I issue an empty POST request to http://127.0.0.1:8008/failover # features/steps/patroni_api.py:66 2474s May 17 19:58:17 Then I receive a response code 400 # features/steps/patroni_api.py:98 2474s May 17 19:58:17 When I issue a POST request to http://127.0.0.1:8008/failover with {"foo": "bar"} # features/steps/patroni_api.py:71 2474s May 17 19:58:17 Then I receive a response code 400 # features/steps/patroni_api.py:98 2474s May 17 19:58:17 And I receive a response text "Failover could be performed only to a specific candidate" # features/steps/patroni_api.py:98 2474s May 17 19:58:17 2474s May 17 19:58:17 Scenario: check local configuration reload # features/patroni_api.feature:32 2474s May 17 19:58:17 Given I add tag new_tag new_value to postgres0 config # features/steps/patroni_api.py:137 2474s May 17 19:58:17 And I issue an empty POST request to http://127.0.0.1:8008/reload # features/steps/patroni_api.py:66 2474s May 17 19:58:17 Then I receive a response code 202 # features/steps/patroni_api.py:98 2474s May 17 19:58:17 2474s May 17 19:58:17 Scenario: check dynamic configuration change via DCS # features/patroni_api.feature:37 2474s May 17 19:58:17 Given I issue a PATCH request to http://127.0.0.1:8008/config with {"ttl": 20, "postgresql": {"parameters": {"max_connections": "101"}}} # features/steps/patroni_api.py:71 2474s May 17 19:58:17 Then I receive a response code 200 # features/steps/patroni_api.py:98 2474s May 17 19:58:17 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 11 seconds # features/steps/patroni_api.py:156 2477s May 17 19:58:20 When I issue a GET request to http://127.0.0.1:8008/config # features/steps/patroni_api.py:61 2477s May 17 19:58:20 Then I receive a response code 200 # features/steps/patroni_api.py:98 2477s May 17 19:58:20 And I receive a response ttl 20 # features/steps/patroni_api.py:98 2477s May 17 19:58:20 When I issue a GET request to http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:61 2477s May 17 19:58:20 Then I receive a response code 200 # features/steps/patroni_api.py:98 2477s May 17 19:58:20 And I receive a response tags {'new_tag': 'new_value'} # features/steps/patroni_api.py:98 2477s May 17 19:58:20 And I sleep for 4 seconds # features/steps/patroni_api.py:39 2481s May 17 19:58:24 2481s May 17 19:58:24 Scenario: check the scheduled restart # features/patroni_api.feature:49 2481s May 17 19:58:24 Given I run patronictl.py edit-config -p 'superuser_reserved_connections=6' --force batman # features/steps/patroni_api.py:86 2482s May 17 19:58:25 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 2482s May 17 19:58:25 And I receive a response output "+ superuser_reserved_connections: 6" # features/steps/patroni_api.py:98 2482s May 17 19:58:25 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 5 seconds # features/steps/patroni_api.py:156 2482s May 17 19:58:25 Given I issue a scheduled restart at http://127.0.0.1:8008 in 5 seconds with {"role": "replica"} # features/steps/patroni_api.py:124 2482s May 17 19:58:25 Then I receive a response code 202 # features/steps/patroni_api.py:98 2482s May 17 19:58:25 And I sleep for 8 seconds # features/steps/patroni_api.py:39 2490s May 17 19:58:33 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 10 seconds # features/steps/patroni_api.py:156 2490s May 17 19:58:33 Given I issue a scheduled restart at http://127.0.0.1:8008 in 5 seconds with {"restart_pending": "True"} # features/steps/patroni_api.py:124 2490s May 17 19:58:33 Then I receive a response code 202 # features/steps/patroni_api.py:98 2490s May 17 19:58:33 And Response on GET http://127.0.0.1:8008/patroni does not contain pending_restart after 10 seconds # features/steps/patroni_api.py:171 2497s May 17 19:58:40 And postgres0 role is the primary after 10 seconds # features/steps/basic_replication.py:105 2498s May 17 19:58:41 2498s May 17 19:58:41 Scenario: check API requests for the primary-replica pair in the pause mode # features/patroni_api.feature:63 2498s May 17 19:58:41 Given I start postgres1 # features/steps/basic_replication.py:8 2501s May 17 19:58:44 Then replication works from postgres0 to postgres1 after 20 seconds # features/steps/basic_replication.py:112 2502s May 17 19:58:45 When I run patronictl.py pause batman # features/steps/patroni_api.py:86 2503s May 17 19:58:46 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 2503s May 17 19:58:46 When I kill postmaster on postgres1 # features/steps/basic_replication.py:44 2503s May 17 19:58:46 waiting for server to shut down.... done 2503s May 17 19:58:46 server stopped 2503s May 17 19:58:46 And I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:61 2503s May 17 19:58:46 Then I receive a response code 503 # features/steps/patroni_api.py:98 2503s May 17 19:58:46 And "members/postgres1" key in DCS has state=stopped after 10 seconds # features/steps/cascading_replication.py:23 2504s May 17 19:58:47 When I run patronictl.py restart batman postgres1 --force # features/steps/patroni_api.py:86 2507s May 17 19:58:50 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 2507s May 17 19:58:50 Then replication works from postgres0 to postgres1 after 20 seconds # features/steps/basic_replication.py:112 2508s May 17 19:58:51 And I sleep for 2 seconds # features/steps/patroni_api.py:39 2510s May 17 19:58:53 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:61 2510s May 17 19:58:53 Then I receive a response code 200 # features/steps/patroni_api.py:98 2510s May 17 19:58:53 And I receive a response state running # features/steps/patroni_api.py:98 2510s May 17 19:58:53 And I receive a response role replica # features/steps/patroni_api.py:98 2510s May 17 19:58:53 When I run patronictl.py reinit batman postgres1 --force --wait # features/steps/patroni_api.py:86 2514s May 17 19:58:57 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 2514s May 17 19:58:57 And I receive a response output "Success: reinitialize for member postgres1" # features/steps/patroni_api.py:98 2514s May 17 19:58:57 And postgres1 role is the secondary after 30 seconds # features/steps/basic_replication.py:105 2515s May 17 19:58:58 And replication works from postgres0 to postgres1 after 20 seconds # features/steps/basic_replication.py:112 2515s May 17 19:58:58 When I run patronictl.py restart batman postgres0 --force # features/steps/patroni_api.py:86 2517s May 17 19:59:00 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 2517s May 17 19:59:00 And I receive a response output "Success: restart on member postgres0" # features/steps/patroni_api.py:98 2517s May 17 19:59:00 And postgres0 role is the primary after 5 seconds # features/steps/basic_replication.py:105 2518s May 17 19:59:01 2518s May 17 19:59:01 Scenario: check the switchover via the API in the pause mode # features/patroni_api.feature:90 2518s May 17 19:59:01 Given I issue a POST request to http://127.0.0.1:8008/switchover with {"leader": "postgres0", "candidate": "postgres1"} # features/steps/patroni_api.py:71 2520s May 17 19:59:03 Then I receive a response code 200 # features/steps/patroni_api.py:98 2520s May 17 19:59:03 And postgres1 is a leader after 5 seconds # features/steps/patroni_api.py:29 2520s May 17 19:59:03 And postgres1 role is the primary after 10 seconds # features/steps/basic_replication.py:105 2520s May 17 19:59:03 And postgres0 role is the secondary after 10 seconds # features/steps/basic_replication.py:105 2525s May 17 19:59:08 And replication works from postgres1 to postgres0 after 20 seconds # features/steps/basic_replication.py:112 2525s May 17 19:59:08 And "members/postgres0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 2526s May 17 19:59:09 When I issue a GET request to http://127.0.0.1:8008/primary # features/steps/patroni_api.py:61 2526s May 17 19:59:09 Then I receive a response code 503 # features/steps/patroni_api.py:98 2526s May 17 19:59:09 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:61 2526s May 17 19:59:09 Then I receive a response code 200 # features/steps/patroni_api.py:98 2526s May 17 19:59:09 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:61 2526s May 17 19:59:09 Then I receive a response code 200 # features/steps/patroni_api.py:98 2526s May 17 19:59:09 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:61 2526s May 17 19:59:09 Then I receive a response code 503 # features/steps/patroni_api.py:98 2526s May 17 19:59:09 2526s May 17 19:59:09 Scenario: check the scheduled switchover # features/patroni_api.feature:107 2526s May 17 19:59:09 Given I issue a scheduled switchover from postgres1 to postgres0 in 10 seconds # features/steps/patroni_api.py:117 2528s May 17 19:59:11 Then I receive a response returncode 1 # features/steps/patroni_api.py:98 2528s May 17 19:59:11 And I receive a response output "Can't schedule switchover in the paused state" # features/steps/patroni_api.py:98 2528s May 17 19:59:11 When I run patronictl.py resume batman # features/steps/patroni_api.py:86 2529s May 17 19:59:12 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 2529s May 17 19:59:12 Given I issue a scheduled switchover from postgres1 to postgres0 in 10 seconds # features/steps/patroni_api.py:117 2530s May 17 19:59:13 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 2530s May 17 19:59:13 And postgres0 is a leader after 20 seconds # features/steps/patroni_api.py:29 2540s May 17 19:59:23 And postgres0 role is the primary after 10 seconds # features/steps/basic_replication.py:105 2541s May 17 19:59:24 And postgres1 role is the secondary after 10 seconds # features/steps/basic_replication.py:105 2543s May 17 19:59:26 And replication works from postgres0 to postgres1 after 25 seconds # features/steps/basic_replication.py:112 2543s May 17 19:59:26 And "members/postgres1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 2544s May 17 19:59:27 When I issue a GET request to http://127.0.0.1:8008/primary # features/steps/patroni_api.py:61 2544s May 17 19:59:27 Then I receive a response code 200 # features/steps/patroni_api.py:98 2544s May 17 19:59:27 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:61 2544s May 17 19:59:28 Then I receive a response code 503 # features/steps/patroni_api.py:98 2544s May 17 19:59:28 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:61 2545s May 17 19:59:28 Then I receive a response code 503 # features/steps/patroni_api.py:98 2545s May 17 19:59:28 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:61 2545s May 17 19:59:28 Then I receive a response code 200 # features/steps/patroni_api.py:98 2549s May 17 19:59:32 2549s May 17 19:59:32 Feature: permanent slots # features/permanent_slots.feature:1 2549s May 17 19:59:32 2549s May 17 19:59:32 Scenario: check that physical permanent slots are created # features/permanent_slots.feature:2 2549s May 17 19:59:32 Given I start postgres0 # features/steps/basic_replication.py:8 2552s May 17 19:59:35 Then postgres0 is a leader after 10 seconds # features/steps/patroni_api.py:29 2553s May 17 19:59:36 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 2553s May 17 19:59:36 When I issue a PATCH request to http://127.0.0.1:8008/config with {"slots":{"test_physical":0,"postgres0":0,"postgres1":0,"postgres3":0},"postgresql":{"parameters":{"wal_level":"logical"}}} # features/steps/patroni_api.py:71 2553s May 17 19:59:36 Then I receive a response code 200 # features/steps/patroni_api.py:98 2553s May 17 19:59:36 And Response on GET http://127.0.0.1:8008/config contains slots after 10 seconds # features/steps/patroni_api.py:156 2553s May 17 19:59:36 When I start postgres1 # features/steps/basic_replication.py:8 2556s May 17 19:59:39 And I start postgres2 # features/steps/basic_replication.py:8 2559s May 17 19:59:42 And I configure and start postgres3 with a tag replicatefrom postgres2 # features/steps/cascading_replication.py:7 2562s May 17 19:59:45 Then postgres0 has a physical replication slot named test_physical after 10 seconds # features/steps/slots.py:80 2562s May 17 19:59:45 And postgres0 has a physical replication slot named postgres1 after 10 seconds # features/steps/slots.py:80 2562s May 17 19:59:45 And postgres0 has a physical replication slot named postgres2 after 10 seconds # features/steps/slots.py:80 2562s May 17 19:59:45 And postgres2 has a physical replication slot named postgres3 after 10 seconds # features/steps/slots.py:80 2562s May 17 19:59:45 2562s May 17 19:59:45 @slot-advance 2562s May 17 19:59:45 Scenario: check that logical permanent slots are created # features/permanent_slots.feature:18 2562s May 17 19:59:45 Given I run patronictl.py restart batman postgres0 --force # features/steps/patroni_api.py:86 2564s May 17 19:59:47 And I issue a PATCH request to http://127.0.0.1:8008/config with {"slots":{"test_logical":{"type":"logical","database":"postgres","plugin":"test_decoding"}}} # features/steps/patroni_api.py:71 2564s May 17 19:59:47 Then postgres0 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:19 2565s May 17 19:59:48 2565s May 17 19:59:48 @slot-advance 2565s May 17 19:59:48 Scenario: check that permanent slots are created on replicas # features/permanent_slots.feature:24 2565s May 17 19:59:48 Given postgres1 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:19 2572s May 17 19:59:55 Then Logical slot test_logical is in sync between postgres0 and postgres1 after 10 seconds # features/steps/slots.py:51 2572s May 17 19:59:55 And Logical slot test_logical is in sync between postgres0 and postgres2 after 10 seconds # features/steps/slots.py:51 2573s May 17 19:59:56 And Logical slot test_logical is in sync between postgres0 and postgres3 after 10 seconds # features/steps/slots.py:51 2574s May 17 19:59:57 And postgres1 has a physical replication slot named test_physical after 2 seconds # features/steps/slots.py:80 2574s May 17 19:59:57 And postgres2 has a physical replication slot named test_physical after 2 seconds # features/steps/slots.py:80 2574s May 17 19:59:57 And postgres3 has a physical replication slot named test_physical after 2 seconds # features/steps/slots.py:80 2574s May 17 19:59:57 2574s May 17 19:59:57 @slot-advance 2574s May 17 19:59:57 Scenario: check permanent physical slots that match with member names # features/permanent_slots.feature:34 2574s May 17 19:59:57 Given postgres0 has a physical replication slot named postgres3 after 2 seconds # features/steps/slots.py:80 2574s May 17 19:59:57 And postgres1 has a physical replication slot named postgres0 after 2 seconds # features/steps/slots.py:80 2574s May 17 19:59:57 And postgres1 has a physical replication slot named postgres3 after 2 seconds # features/steps/slots.py:80 2574s May 17 19:59:57 And postgres2 has a physical replication slot named postgres0 after 2 seconds # features/steps/slots.py:80 2574s May 17 19:59:57 And postgres2 has a physical replication slot named postgres3 after 2 seconds # features/steps/slots.py:80 2574s May 17 19:59:57 And postgres2 has a physical replication slot named postgres1 after 2 seconds # features/steps/slots.py:80 2574s May 17 19:59:57 And postgres1 does not have a replication slot named postgres2 # features/steps/slots.py:40 2574s May 17 19:59:57 And postgres3 does not have a replication slot named postgres2 # features/steps/slots.py:40 2574s May 17 19:59:57 2574s May 17 19:59:57 @slot-advance 2574s May 17 19:59:57 Scenario: check that permanent slots are advanced on replicas # features/permanent_slots.feature:45 2574s May 17 19:59:57 Given I add the table replicate_me to postgres0 # features/steps/basic_replication.py:54 2575s May 17 19:59:58 When I get all changes from logical slot test_logical on postgres0 # features/steps/slots.py:70 2575s May 17 19:59:58 And I get all changes from physical slot test_physical on postgres0 # features/steps/slots.py:75 2575s May 17 19:59:58 Then Logical slot test_logical is in sync between postgres0 and postgres1 after 10 seconds # features/steps/slots.py:51 2579s May 17 20:00:02 And Physical slot test_physical is in sync between postgres0 and postgres1 after 10 seconds # features/steps/slots.py:51 2579s May 17 20:00:02 And Logical slot test_logical is in sync between postgres0 and postgres2 after 10 seconds # features/steps/slots.py:51 2579s May 17 20:00:02 And Physical slot test_physical is in sync between postgres0 and postgres2 after 10 seconds # features/steps/slots.py:51 2579s May 17 20:00:02 And Logical slot test_logical is in sync between postgres0 and postgres3 after 10 seconds # features/steps/slots.py:51 2579s May 17 20:00:02 And Physical slot test_physical is in sync between postgres0 and postgres3 after 10 seconds # features/steps/slots.py:51 2579s May 17 20:00:02 And Physical slot postgres1 is in sync between postgres0 and postgres2 after 10 seconds # features/steps/slots.py:51 2579s May 17 20:00:02 And Physical slot postgres3 is in sync between postgres2 and postgres0 after 20 seconds # features/steps/slots.py:51 2579s May 17 20:00:02 And Physical slot postgres3 is in sync between postgres2 and postgres1 after 10 seconds # features/steps/slots.py:51 2579s May 17 20:00:02 And postgres1 does not have a replication slot named postgres2 # features/steps/slots.py:40 2579s May 17 20:00:02 And postgres3 does not have a replication slot named postgres2 # features/steps/slots.py:40 2579s May 17 20:00:02 2579s May 17 20:00:02 @slot-advance 2579s May 17 20:00:02 Scenario: check that only permanent slots are written to the /status key # features/permanent_slots.feature:62 2579s May 17 20:00:02 Given "status" key in DCS has test_physical in slots # features/steps/slots.py:96 2579s May 17 20:00:02 And "status" key in DCS has postgres0 in slots # features/steps/slots.py:96 2579s May 17 20:00:02 And "status" key in DCS has postgres1 in slots # features/steps/slots.py:96 2579s May 17 20:00:02 And "status" key in DCS does not have postgres2 in slots # features/steps/slots.py:102 2579s May 17 20:00:02 And "status" key in DCS has postgres3 in slots # features/steps/slots.py:96 2579s May 17 20:00:02 2579s May 17 20:00:02 Scenario: check permanent physical replication slot after failover # features/permanent_slots.feature:69 2579s May 17 20:00:02 Given I shut down postgres3 # features/steps/basic_replication.py:29 2580s May 17 20:00:03 And I shut down postgres2 # features/steps/basic_replication.py:29 2581s May 17 20:00:04 And I shut down postgres0 # features/steps/basic_replication.py:29 2583s May 17 20:00:06 Then postgres1 has a physical replication slot named test_physical after 10 seconds # features/steps/slots.py:80 2583s May 17 20:00:06 And postgres1 has a physical replication slot named postgres0 after 10 seconds # features/steps/slots.py:80 2583s May 17 20:00:06 And postgres1 has a physical replication slot named postgres3 after 10 seconds # features/steps/slots.py:80 2585s May 17 20:00:08 2585s May 17 20:00:08 Feature: priority replication # features/priority_failover.feature:1 2585s May 17 20:00:08 We should check that we can give nodes priority during failover 2585s May 17 20:00:08 Scenario: check failover priority 0 prevents leaderships # features/priority_failover.feature:4 2585s May 17 20:00:08 Given I configure and start postgres0 with a tag failover_priority 1 # features/steps/cascading_replication.py:7 2588s May 17 20:00:11 And I configure and start postgres1 with a tag failover_priority 0 # features/steps/cascading_replication.py:7 2591s May 17 20:00:14 Then replication works from postgres0 to postgres1 after 20 seconds # features/steps/basic_replication.py:112 2592s May 17 20:00:15 When I shut down postgres0 # features/steps/basic_replication.py:29 2594s May 17 20:00:17 And there is one of ["following a different leader because I am not allowed to promote"] INFO in the postgres1 patroni log after 5 seconds # features/steps/basic_replication.py:121 2596s May 17 20:00:19 Then postgres1 role is the secondary after 10 seconds # features/steps/basic_replication.py:105 2596s May 17 20:00:19 When I start postgres0 # features/steps/basic_replication.py:8 2599s May 17 20:00:22 Then postgres0 role is the primary after 10 seconds # features/steps/basic_replication.py:105 2600s May 17 20:00:23 2600s May 17 20:00:23 Scenario: check higher failover priority is respected # features/priority_failover.feature:14 2600s May 17 20:00:23 Given I configure and start postgres2 with a tag failover_priority 1 # features/steps/cascading_replication.py:7 2603s May 17 20:00:26 And I configure and start postgres3 with a tag failover_priority 2 # features/steps/cascading_replication.py:7 2606s May 17 20:00:29 Then replication works from postgres0 to postgres2 after 20 seconds # features/steps/basic_replication.py:112 2607s May 17 20:00:30 And replication works from postgres0 to postgres3 after 20 seconds # features/steps/basic_replication.py:112 2608s May 17 20:00:31 When I shut down postgres0 # features/steps/basic_replication.py:29 2610s May 17 20:00:33 Then postgres3 role is the primary after 10 seconds # features/steps/basic_replication.py:105 2610s May 17 20:00:33 And there is one of ["postgres3 has equally tolerable WAL position and priority 2, while this node has priority 1","Wal position of postgres3 is ahead of my wal position"] INFO in the postgres2 patroni log after 5 seconds # features/steps/basic_replication.py:121 2610s May 17 20:00:33 2610s May 17 20:00:33 Scenario: check conflicting configuration handling # features/priority_failover.feature:23 2610s May 17 20:00:33 When I set nofailover tag in postgres2 config # features/steps/patroni_api.py:131 2610s May 17 20:00:33 And I issue an empty POST request to http://127.0.0.1:8010/reload # features/steps/patroni_api.py:66 2610s May 17 20:00:33 Then I receive a response code 202 # features/steps/patroni_api.py:98 2610s May 17 20:00:33 And there is one of ["Conflicting configuration between nofailover: True and failover_priority: 1. Defaulting to nofailover: True"] WARNING in the postgres2 patroni log after 5 seconds # features/steps/basic_replication.py:121 2612s May 17 20:00:35 And "members/postgres2" key in DCS has tags={'failover_priority': '1', 'nofailover': True} after 10 seconds # features/steps/cascading_replication.py:23 2613s May 17 20:00:36 When I issue a POST request to http://127.0.0.1:8010/failover with {"candidate": "postgres2"} # features/steps/patroni_api.py:71 2613s May 17 20:00:36 Then I receive a response code 412 # features/steps/patroni_api.py:98 2613s May 17 20:00:36 And I receive a response text "failover is not possible: no good candidates have been found" # features/steps/patroni_api.py:98 2613s May 17 20:00:36 When I reset nofailover tag in postgres1 config # features/steps/patroni_api.py:131 2613s May 17 20:00:36 And I issue an empty POST request to http://127.0.0.1:8009/reload # features/steps/patroni_api.py:66 2614s May 17 20:00:37 Then I receive a response code 202 # features/steps/patroni_api.py:98 2614s May 17 20:00:37 And there is one of ["Conflicting configuration between nofailover: False and failover_priority: 0. Defaulting to nofailover: False"] WARNING in the postgres1 patroni log after 5 seconds # features/steps/basic_replication.py:121 2615s May 17 20:00:38 And "members/postgres1" key in DCS has tags={'failover_priority': '0', 'nofailover': False} after 10 seconds # features/steps/cascading_replication.py:23 2616s May 17 20:00:39 And I issue a POST request to http://127.0.0.1:8009/failover with {"candidate": "postgres1"} # features/steps/patroni_api.py:71 2619s May 17 20:00:42 Then I receive a response code 200 # features/steps/patroni_api.py:98 2619s May 17 20:00:42 And postgres1 role is the primary after 10 seconds # features/steps/basic_replication.py:105 2623s May 17 20:00:46 2623s May 17 20:00:46 Feature: recovery # features/recovery.feature:1 2623s May 17 20:00:46 We want to check that crashed postgres is started back 2623s May 17 20:00:46 Scenario: check that timeline is not incremented when primary is started after crash # features/recovery.feature:4 2623s May 17 20:00:46 Given I start postgres0 # features/steps/basic_replication.py:8 2626s May 17 20:00:49 Then postgres0 is a leader after 10 seconds # features/steps/patroni_api.py:29 2626s May 17 20:00:49 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 2626s May 17 20:00:49 When I start postgres1 # features/steps/basic_replication.py:8 2629s May 17 20:00:52 And I add the table foo to postgres0 # features/steps/basic_replication.py:54 2629s May 17 20:00:52 Then table foo is present on postgres1 after 20 seconds # features/steps/basic_replication.py:93 2630s May 17 20:00:53 When I kill postmaster on postgres0 # features/steps/basic_replication.py:44 2630s May 17 20:00:53 waiting for server to shut down.... done 2630s May 17 20:00:53 server stopped 2630s May 17 20:00:53 Then postgres0 role is the primary after 10 seconds # features/steps/basic_replication.py:105 2632s May 17 20:00:55 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:61 2632s May 17 20:00:55 Then I receive a response code 200 # features/steps/patroni_api.py:98 2632s May 17 20:00:55 And I receive a response role master # features/steps/patroni_api.py:98 2632s May 17 20:00:55 And I receive a response timeline 1 # features/steps/patroni_api.py:98 2632s May 17 20:00:55 And "members/postgres0" key in DCS has state=running after 12 seconds # features/steps/cascading_replication.py:23 2633s May 17 20:00:56 And replication works from postgres0 to postgres1 after 15 seconds # features/steps/basic_replication.py:112 2637s May 17 20:01:00 2637s May 17 20:01:00 Scenario: check immediate failover when master_start_timeout=0 # features/recovery.feature:20 2637s May 17 20:01:00 Given I issue a PATCH request to http://127.0.0.1:8008/config with {"master_start_timeout": 0} # features/steps/patroni_api.py:71 2637s May 17 20:01:00 Then I receive a response code 200 # features/steps/patroni_api.py:98 2637s May 17 20:01:00 And Response on GET http://127.0.0.1:8008/config contains master_start_timeout after 10 seconds # features/steps/patroni_api.py:156 2637s May 17 20:01:00 When I kill postmaster on postgres0 # features/steps/basic_replication.py:44 2637s May 17 20:01:00 waiting for server to shut down.... done 2637s May 17 20:01:00 server stopped 2637s May 17 20:01:00 Then postgres1 is a leader after 10 seconds # features/steps/patroni_api.py:29 2639s May 17 20:01:02 And postgres1 role is the primary after 10 seconds # features/steps/basic_replication.py:105 2643s May 17 20:01:06 2643s May 17 20:01:06 Feature: standby cluster # features/standby_cluster.feature:1 2643s May 17 20:01:06 2643s May 17 20:01:06 Scenario: prepare the cluster with logical slots # features/standby_cluster.feature:2 2643s May 17 20:01:06 Given I start postgres1 # features/steps/basic_replication.py:8 2646s May 17 20:01:09 Then postgres1 is a leader after 10 seconds # features/steps/patroni_api.py:29 2646s May 17 20:01:09 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 2646s May 17 20:01:09 When I issue a PATCH request to http://127.0.0.1:8009/config with {"slots": {"pm_1": {"type": "physical"}}, "postgresql": {"parameters": {"wal_level": "logical"}}} # features/steps/patroni_api.py:71 2646s May 17 20:01:09 Then I receive a response code 200 # features/steps/patroni_api.py:98 2646s May 17 20:01:09 And Response on GET http://127.0.0.1:8009/config contains slots after 10 seconds # features/steps/patroni_api.py:156 2646s May 17 20:01:09 And I sleep for 3 seconds # features/steps/patroni_api.py:39 2649s May 17 20:01:12 When I issue a PATCH request to http://127.0.0.1:8009/config with {"slots": {"test_logical": {"type": "logical", "database": "postgres", "plugin": "test_decoding"}}} # features/steps/patroni_api.py:71 2649s May 17 20:01:12 Then I receive a response code 200 # features/steps/patroni_api.py:98 2649s May 17 20:01:12 And I do a backup of postgres1 # features/steps/custom_bootstrap.py:25 2650s May 17 20:01:13 When I start postgres0 # features/steps/basic_replication.py:8 2653s May 17 20:01:16 Then "members/postgres0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 2654s May 17 20:01:17 And replication works from postgres1 to postgres0 after 15 seconds # features/steps/basic_replication.py:112 2655s May 17 20:01:18 When I issue a GET request to http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:61 2655s May 17 20:01:18 Then I receive a response code 200 # features/steps/patroni_api.py:98 2655s May 17 20:01:18 And I receive a response replication_state streaming # features/steps/patroni_api.py:98 2655s May 17 20:01:18 And "members/postgres0" key in DCS has replication_state=streaming after 10 seconds # features/steps/cascading_replication.py:23 2655s May 17 20:01:18 2655s May 17 20:01:18 @slot-advance 2655s May 17 20:01:18 Scenario: check permanent logical slots are synced to the replica # features/standby_cluster.feature:22 2655s May 17 20:01:18 Given I run patronictl.py restart batman postgres1 --force # features/steps/patroni_api.py:86 2657s May 17 20:01:20 Then Logical slot test_logical is in sync between postgres0 and postgres1 after 10 seconds # features/steps/slots.py:51 2662s May 17 20:01:25 2662s May 17 20:01:25 Scenario: Detach exiting node from the cluster # features/standby_cluster.feature:26 2662s May 17 20:01:25 When I shut down postgres1 # features/steps/basic_replication.py:29 2664s May 17 20:01:27 Then postgres0 is a leader after 10 seconds # features/steps/patroni_api.py:29 2664s May 17 20:01:27 And "members/postgres0" key in DCS has role=master after 5 seconds # features/steps/cascading_replication.py:23 2665s May 17 20:01:28 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:61 2665s May 17 20:01:28 Then I receive a response code 200 # features/steps/patroni_api.py:98 2665s May 17 20:01:28 2665s May 17 20:01:28 Scenario: check replication of a single table in a standby cluster # features/standby_cluster.feature:33 2665s May 17 20:01:28 Given I start postgres1 in a standby cluster batman1 as a clone of postgres0 # features/steps/standby_cluster.py:23 2668s May 17 20:01:31 Then postgres1 is a leader of batman1 after 10 seconds # features/steps/custom_bootstrap.py:16 2668s May 17 20:01:31 When I add the table foo to postgres0 # features/steps/basic_replication.py:54 2668s May 17 20:01:31 Then table foo is present on postgres1 after 20 seconds # features/steps/basic_replication.py:93 2668s May 17 20:01:31 When I issue a GET request to http://127.0.0.1:8009/patroni # features/steps/patroni_api.py:61 2668s May 17 20:01:31 Then I receive a response code 200 # features/steps/patroni_api.py:98 2668s May 17 20:01:31 And I receive a response replication_state streaming # features/steps/patroni_api.py:98 2668s May 17 20:01:31 And I sleep for 3 seconds # features/steps/patroni_api.py:39 2671s May 17 20:01:34 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:61 2671s May 17 20:01:34 Then I receive a response code 503 # features/steps/patroni_api.py:98 2671s May 17 20:01:34 When I issue a GET request to http://127.0.0.1:8009/standby_leader # features/steps/patroni_api.py:61 2671s May 17 20:01:34 Then I receive a response code 200 # features/steps/patroni_api.py:98 2671s May 17 20:01:34 And I receive a response role standby_leader # features/steps/patroni_api.py:98 2671s May 17 20:01:34 And there is a postgres1_cb.log with "on_role_change standby_leader batman1" in postgres1 data directory # features/steps/cascading_replication.py:12 2671s May 17 20:01:34 When I start postgres2 in a cluster batman1 # features/steps/standby_cluster.py:12 2674s May 17 20:01:37 Then postgres2 role is the replica after 24 seconds # features/steps/basic_replication.py:105 2674s May 17 20:01:37 And postgres2 is replicating from postgres1 after 10 seconds # features/steps/standby_cluster.py:52 2675s May 17 20:01:38 And table foo is present on postgres2 after 20 seconds # features/steps/basic_replication.py:93 2675s May 17 20:01:38 When I issue a GET request to http://127.0.0.1:8010/patroni # features/steps/patroni_api.py:61 2675s May 17 20:01:38 Then I receive a response code 200 # features/steps/patroni_api.py:98 2675s May 17 20:01:38 And I receive a response replication_state streaming # features/steps/patroni_api.py:98 2675s May 17 20:01:38 And postgres1 does not have a replication slot named test_logical # features/steps/slots.py:40 2675s May 17 20:01:38 2675s May 17 20:01:38 Scenario: check switchover # features/standby_cluster.feature:57 2675s May 17 20:01:38 Given I run patronictl.py switchover batman1 --force # features/steps/patroni_api.py:86 2679s May 17 20:01:42 Then Status code on GET http://127.0.0.1:8010/standby_leader is 200 after 10 seconds # features/steps/patroni_api.py:142 2679s May 17 20:01:42 And postgres1 is replicating from postgres2 after 32 seconds # features/steps/standby_cluster.py:52 2681s May 17 20:01:44 And there is a postgres2_cb.log with "on_start replica batman1\non_role_change standby_leader batman1" in postgres2 data directory # features/steps/cascading_replication.py:12 2681s May 17 20:01:44 2681s May 17 20:01:44 Scenario: check failover # features/standby_cluster.feature:63 2681s May 17 20:01:44 When I kill postgres2 # features/steps/basic_replication.py:34 2682s May 17 20:01:45 And I kill postmaster on postgres2 # features/steps/basic_replication.py:44 2682s May 17 20:01:45 waiting for server to shut down.... done 2682s May 17 20:01:45 server stopped 2682s May 17 20:01:45 Then postgres1 is replicating from postgres0 after 32 seconds # features/steps/standby_cluster.py:52 2702s May 17 20:02:05 And Status code on GET http://127.0.0.1:8009/standby_leader is 200 after 10 seconds # features/steps/patroni_api.py:142 2702s May 17 20:02:05 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:61 2702s May 17 20:02:05 Then I receive a response code 503 # features/steps/patroni_api.py:98 2702s May 17 20:02:05 And I receive a response role standby_leader # features/steps/patroni_api.py:98 2702s May 17 20:02:05 And replication works from postgres0 to postgres1 after 15 seconds # features/steps/basic_replication.py:112 2703s May 17 20:02:06 And there is a postgres1_cb.log with "on_role_change replica batman1\non_role_change standby_leader batman1" in postgres1 data directory # features/steps/cascading_replication.py:12 2708s May 17 20:02:11 2708s May 17 20:02:11 Feature: watchdog # features/watchdog.feature:1 2708s May 17 20:02:11 Verify that watchdog gets pinged and triggered under appropriate circumstances. 2708s May 17 20:02:11 Scenario: watchdog is opened and pinged # features/watchdog.feature:4 2708s May 17 20:02:11 Given I start postgres0 with watchdog # features/steps/watchdog.py:16 2711s May 17 20:02:14 Then postgres0 is a leader after 10 seconds # features/steps/patroni_api.py:29 2711s May 17 20:02:14 And postgres0 role is the primary after 10 seconds # features/steps/basic_replication.py:105 2711s May 17 20:02:14 And postgres0 watchdog has been pinged after 10 seconds # features/steps/watchdog.py:21 2712s May 17 20:02:15 And postgres0 watchdog has a 15 second timeout # features/steps/watchdog.py:34 2712s May 17 20:02:15 2712s May 17 20:02:15 Scenario: watchdog is reconfigured after global ttl changed # features/watchdog.feature:11 2712s May 17 20:02:15 Given I run patronictl.py edit-config batman -s ttl=30 --force # features/steps/patroni_api.py:86 2713s May 17 20:02:16 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 2713s May 17 20:02:16 And I receive a response output "+ttl: 30" # features/steps/patroni_api.py:98 2713s May 17 20:02:16 When I sleep for 4 seconds # features/steps/patroni_api.py:39 2717s May 17 20:02:20 Then postgres0 watchdog has a 25 second timeout # features/steps/watchdog.py:34 2717s May 17 20:02:20 2717s May 17 20:02:20 Scenario: watchdog is disabled during pause # features/watchdog.feature:18 2717s May 17 20:02:20 Given I run patronictl.py pause batman # features/steps/patroni_api.py:86 2719s May 17 20:02:22 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 2719s May 17 20:02:22 When I sleep for 2 seconds # features/steps/patroni_api.py:39 2721s May 17 20:02:24 Then postgres0 watchdog has been closed # features/steps/watchdog.py:29 2721s May 17 20:02:24 2721s May 17 20:02:24 Scenario: watchdog is opened and pinged after resume # features/watchdog.feature:24 2721s May 17 20:02:24 Given I reset postgres0 watchdog state # features/steps/watchdog.py:39 2721s May 17 20:02:24 And I run patronictl.py resume batman # features/steps/patroni_api.py:86 2722s May 17 20:02:25 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 2722s May 17 20:02:25 And postgres0 watchdog has been pinged after 10 seconds # features/steps/watchdog.py:21 2722s May 17 20:02:25 2722s May 17 20:02:25 Scenario: watchdog is disabled when shutting down # features/watchdog.feature:30 2722s May 17 20:02:25 Given I shut down postgres0 # features/steps/basic_replication.py:29 2724s May 17 20:02:27 Then postgres0 watchdog has been closed # features/steps/watchdog.py:29 2724s May 17 20:02:27 2724s May 17 20:02:27 Scenario: watchdog is triggered if patroni stops responding # features/watchdog.feature:34 2724s May 17 20:02:27 Given I reset postgres0 watchdog state # features/steps/watchdog.py:39 2724s May 17 20:02:27 And I start postgres0 with watchdog # features/steps/watchdog.py:16 2727s May 17 20:02:30 Then postgres0 role is the primary after 10 seconds # features/steps/basic_replication.py:105 2728s May 17 20:02:31 When postgres0 hangs for 30 seconds # features/steps/watchdog.py:52 2728s May 17 20:02:31 Then postgres0 watchdog is triggered after 30 seconds # features/steps/watchdog.py:44 2755s May 17 20:02:58 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.10101.XuCAluTx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.10148.XdVLqBDx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.10155.Xviubskx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.10160.XsPGwWox 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.10176.XjIJqqIx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.6344.XcrmUpYx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.6391.XcgrwsDx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.6438.XaYmKmEx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.6518.XRIjJykx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.6564.XRyvivZx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.6639.XJEuHrFx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.6690.XFLIakjx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.6695.XFOlMtpx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.6794.XmdTZiUx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.6892.XcULuhsx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.6904.XVnbieVx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.6950.XAIgzYjx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.6998.XUJUKdHx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.7123.XtBqZLYx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.7169.XExtahEx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.7225.XVjtCENx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.7322.XosZeGlx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.7378.XoYCcFlx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.7441.XZtyVyqx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.7535.XQWtfLJx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.7642.XLjAPqGx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.7686.XVxOLiXx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.7752.XthRRrTx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.7785.XSpHstux 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.7898.XSdMEasx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.7948.XiOyScCx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.7968.XjDCLKkx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.8007.XgbsLQgx 2756s May 17 20:02:59 Skipping duplicate data .coverage.autopkgtest.8059.XMjygarx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.8066.XWJxPOax 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.8104.XfHhojBx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.8147.XQkyXOcx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.8314.XEqjOlcx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.8318.XSsbQrYx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.8326.XBygbakx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.8467.XtQqjKpx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.8516.XzFeRTCx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.8558.XaNYqVLx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.8608.XuhEspNx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.8649.XPnWRRix 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.8843.XqzQlLHx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.8887.XHhvyLMx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.8962.Xlumhyix 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.9040.XomRnMox 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.9087.XiASbFvx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.9435.XBzynwnx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.9479.XwqxUofx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.9622.XKsrKHpx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.9685.XjZomqDx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.9739.XcwJALfx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.9842.XqlJMbrx 2756s May 17 20:02:59 Combined data file .coverage.autopkgtest.9964.XMnEhJxx 2758s May 17 20:03:01 Name Stmts Miss Cover 2758s May 17 20:03:01 -------------------------------------------------------------------------------------------------------- 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/_distutils_hack/__init__.py 100 95 5% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/dateutil/__init__.py 5 2 60% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/dateutil/_common.py 25 15 40% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/dateutil/_version.py 11 2 82% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/dateutil/parser/__init__.py 33 4 88% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/dateutil/parser/_parser.py 813 436 46% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/dateutil/parser/isoparser.py 185 150 19% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/dateutil/relativedelta.py 241 206 15% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/dateutil/tz/__init__.py 4 0 100% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/dateutil/tz/_common.py 161 121 25% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/dateutil/tz/_factories.py 49 21 57% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/dateutil/tz/tz.py 800 626 22% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/dateutil/tz/win.py 153 149 3% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/kazoo/__init__.py 1 0 100% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/kazoo/client.py 629 266 58% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/kazoo/exceptions.py 110 1 99% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/kazoo/handlers/__init__.py 0 0 100% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/kazoo/handlers/threading.py 94 15 84% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/kazoo/handlers/utils.py 222 75 66% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/kazoo/hosts.py 18 4 78% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/kazoo/loggingsupport.py 1 0 100% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/kazoo/protocol/__init__.py 0 0 100% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/kazoo/protocol/connection.py 485 176 64% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/kazoo/protocol/paths.py 33 8 76% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/kazoo/protocol/serialization.py 316 111 65% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/kazoo/protocol/states.py 49 9 82% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/kazoo/python2atexit.py 32 19 41% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/kazoo/recipe/__init__.py 0 0 100% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/kazoo/recipe/barrier.py 97 80 18% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/kazoo/recipe/counter.py 49 36 27% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/kazoo/recipe/election.py 16 10 38% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/kazoo/recipe/lease.py 54 36 33% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/kazoo/recipe/lock.py 295 242 18% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/kazoo/recipe/partitioner.py 155 120 23% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/kazoo/recipe/party.py 62 43 31% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/kazoo/recipe/queue.py 157 126 20% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/kazoo/recipe/watchers.py 172 138 20% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/kazoo/retry.py 60 9 85% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/kazoo/security.py 58 35 40% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/kazoo/version.py 1 0 100% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/__init__.py 13 2 85% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/__main__.py 199 63 68% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/api.py 770 289 62% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/async_executor.py 96 15 84% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/collections.py 56 6 89% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/config.py 371 91 75% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/config_generator.py 211 153 27% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/daemon.py 76 3 96% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/dcs/__init__.py 637 91 86% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/dcs/zookeeper.py 288 70 76% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/dynamic_loader.py 35 7 80% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/exceptions.py 16 0 100% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/file_perm.py 43 8 81% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/global_config.py 81 0 100% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/ha.py 1244 373 70% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/log.py 215 66 69% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/postgresql/__init__.py 821 173 79% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/postgresql/available_parameters/__init__.py 21 1 95% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/postgresql/bootstrap.py 254 63 75% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/postgresql/callback_executor.py 55 8 85% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/postgresql/cancellable.py 104 41 61% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/postgresql/config.py 822 215 74% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/postgresql/connection.py 75 1 99% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/postgresql/misc.py 41 8 80% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/postgresql/mpp/__init__.py 89 11 88% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/postgresql/postmaster.py 170 85 50% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/postgresql/rewind.py 416 166 60% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/postgresql/slots.py 334 34 90% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/postgresql/sync.py 130 19 85% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/postgresql/validator.py 157 23 85% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/psycopg.py 42 16 62% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/request.py 62 7 89% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/tags.py 38 0 100% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/utils.py 350 123 65% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/validator.py 301 208 31% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/version.py 1 0 100% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/watchdog/__init__.py 2 0 100% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/watchdog/base.py 203 46 77% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/patroni/watchdog/linux.py 135 35 74% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/psutil/__init__.py 951 629 34% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/psutil/_common.py 424 212 50% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/psutil/_compat.py 302 263 13% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/psutil/_pslinux.py 1251 924 26% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/psutil/_psposix.py 96 38 60% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/psycopg2/__init__.py 19 3 84% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/psycopg2/_json.py 64 27 58% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/psycopg2/_range.py 269 172 36% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/psycopg2/errors.py 3 2 33% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/psycopg2/extensions.py 91 25 73% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/puresasl/__init__.py 21 2 90% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/puresasl/client.py 71 47 34% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/puresasl/mechanisms.py 363 263 28% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/six.py 504 249 51% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/urllib3/__init__.py 50 14 72% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/urllib3/_base_connection.py 70 52 26% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/urllib3/_collections.py 234 128 45% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/urllib3/_request_methods.py 53 23 57% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/urllib3/_version.py 2 0 100% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/urllib3/connection.py 324 110 66% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/urllib3/connectionpool.py 347 136 61% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/urllib3/exceptions.py 115 37 68% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/urllib3/fields.py 92 73 21% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/urllib3/filepost.py 37 24 35% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/urllib3/poolmanager.py 233 88 62% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/urllib3/response.py 562 334 41% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/urllib3/util/__init__.py 10 0 100% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/urllib3/util/connection.py 66 9 86% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/urllib3/util/proxy.py 13 6 54% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/urllib3/util/request.py 104 52 50% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/urllib3/util/response.py 32 17 47% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/urllib3/util/retry.py 173 52 70% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/urllib3/util/ssl_.py 177 75 58% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/urllib3/util/ssl_match_hostname.py 66 54 18% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/urllib3/util/ssltransport.py 160 112 30% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/urllib3/util/timeout.py 71 19 73% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/urllib3/util/url.py 205 78 62% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/urllib3/util/util.py 26 18 31% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/urllib3/util/wait.py 49 38 22% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/yaml/__init__.py 165 109 34% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/yaml/composer.py 92 17 82% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/yaml/constructor.py 479 276 42% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/yaml/cyaml.py 46 24 48% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/yaml/dumper.py 23 12 48% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/yaml/emitter.py 838 769 8% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/yaml/error.py 58 42 28% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/yaml/events.py 61 6 90% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/yaml/loader.py 47 24 49% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/yaml/nodes.py 29 7 76% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/yaml/parser.py 352 180 49% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/yaml/reader.py 122 30 75% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/yaml/representer.py 248 176 29% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/yaml/resolver.py 135 76 44% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/yaml/scanner.py 758 415 45% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/yaml/serializer.py 85 70 18% 2758s May 17 20:03:01 /usr/lib/python3/dist-packages/yaml/tokens.py 76 17 78% 2758s May 17 20:03:01 patroni/__init__.py 13 2 85% 2758s May 17 20:03:01 patroni/__main__.py 199 199 0% 2758s May 17 20:03:01 patroni/api.py 770 770 0% 2758s May 17 20:03:01 patroni/async_executor.py 96 69 28% 2758s May 17 20:03:01 patroni/collections.py 56 15 73% 2758s May 17 20:03:01 patroni/config.py 371 194 48% 2758s May 17 20:03:01 patroni/config_generator.py 211 211 0% 2758s May 17 20:03:01 patroni/ctl.py 936 411 56% 2758s May 17 20:03:01 patroni/daemon.py 76 76 0% 2758s May 17 20:03:01 patroni/dcs/__init__.py 637 260 59% 2758s May 17 20:03:01 patroni/dcs/consul.py 485 485 0% 2758s May 17 20:03:01 patroni/dcs/etcd3.py 679 679 0% 2758s May 17 20:03:01 patroni/dcs/etcd.py 603 603 0% 2758s May 17 20:03:01 patroni/dcs/exhibitor.py 61 61 0% 2758s May 17 20:03:01 patroni/dcs/kubernetes.py 938 938 0% 2758s May 17 20:03:01 patroni/dcs/raft.py 319 319 0% 2758s May 17 20:03:01 patroni/dcs/zookeeper.py 288 149 48% 2758s May 17 20:03:01 patroni/dynamic_loader.py 35 7 80% 2758s May 17 20:03:01 patroni/exceptions.py 16 1 94% 2758s May 17 20:03:01 patroni/file_perm.py 43 15 65% 2758s May 17 20:03:01 patroni/global_config.py 81 18 78% 2758s May 17 20:03:01 patroni/ha.py 1244 1244 0% 2758s May 17 20:03:01 patroni/log.py 215 170 21% 2758s May 17 20:03:01 patroni/postgresql/__init__.py 821 651 21% 2758s May 17 20:03:01 patroni/postgresql/available_parameters/__init__.py 21 3 86% 2758s May 17 20:03:01 patroni/postgresql/bootstrap.py 254 224 12% 2758s May 17 20:03:01 patroni/postgresql/callback_executor.py 55 34 38% 2758s May 17 20:03:01 patroni/postgresql/cancellable.py 104 84 19% 2758s May 17 20:03:01 patroni/postgresql/config.py 822 707 14% 2758s May 17 20:03:01 patroni/postgresql/connection.py 75 50 33% 2758s May 17 20:03:01 patroni/postgresql/misc.py 41 29 29% 2758s May 17 20:03:01 patroni/postgresql/mpp/__init__.py 89 21 76% 2758s May 17 20:03:01 patroni/postgresql/mpp/citus.py 259 259 0% 2758s May 17 20:03:01 patroni/postgresql/postmaster.py 170 139 18% 2758s May 17 20:03:01 patroni/postgresql/rewind.py 416 416 0% 2758s May 17 20:03:01 patroni/postgresql/slots.py 334 285 15% 2758s May 17 20:03:01 patroni/postgresql/sync.py 130 96 26% 2758s May 17 20:03:01 patroni/postgresql/validator.py 157 52 67% 2758s May 17 20:03:01 patroni/psycopg.py 42 28 33% 2758s May 17 20:03:01 patroni/raft_controller.py 22 22 0% 2758s May 17 20:03:01 patroni/request.py 62 6 90% 2758s May 17 20:03:01 patroni/scripts/__init__.py 0 0 100% 2758s May 17 20:03:01 patroni/scripts/aws.py 59 59 0% 2758s May 17 20:03:01 patroni/scripts/barman/__init__.py 0 0 100% 2758s May 17 20:03:01 patroni/scripts/barman/cli.py 51 51 0% 2758s May 17 20:03:01 patroni/scripts/barman/config_switch.py 51 51 0% 2758s May 17 20:03:01 patroni/scripts/barman/recover.py 37 37 0% 2758s May 17 20:03:01 patroni/scripts/barman/utils.py 94 94 0% 2758s May 17 20:03:01 patroni/scripts/wale_restore.py 207 207 0% 2758s May 17 20:03:01 patroni/tags.py 38 11 71% 2758s May 17 20:03:01 patroni/utils.py 350 228 35% 2758s May 17 20:03:01 patroni/validator.py 301 215 29% 2758s May 17 20:03:01 patroni/version.py 1 0 100% 2758s May 17 20:03:01 patroni/watchdog/__init__.py 2 2 0% 2758s May 17 20:03:01 patroni/watchdog/base.py 203 203 0% 2758s May 17 20:03:01 patroni/watchdog/linux.py 135 135 0% 2758s May 17 20:03:01 -------------------------------------------------------------------------------------------------------- 2758s May 17 20:03:01 TOTAL 39809 23856 40% 2758s May 17 20:03:01 11 features passed, 0 failed, 1 skipped 2758s May 17 20:03:01 44 scenarios passed, 0 failed, 5 skipped 2758s May 17 20:03:01 444 steps passed, 0 failed, 61 skipped, 0 undefined 2758s May 17 20:03:01 Took 6m59.311s 2758s + echo '### End 16 acceptance-zookeeper -e dcs_failsafe_mode ###' 2758s ### End 16 acceptance-zookeeper -e dcs_failsafe_mode ### 2758s + rm -f '/tmp/pgpass?' 2758s ++ id -u 2758s + '[' 0 -eq 0 ']' 2758s + '[' -x /etc/init.d/zookeeper ']' 2758s + /etc/init.d/zookeeper stop 2758s Stopping zookeeper (via systemctl): zookeeper.service. 2759s autopkgtest [20:03:02]: test acceptance-zookeeper: -----------------------] 2759s autopkgtest [20:03:02]: test acceptance-zookeeper: - - - - - - - - - - results - - - - - - - - - - 2759s acceptance-zookeeper PASS 2759s autopkgtest [20:03:02]: test acceptance-raft: preparing testbed 3087s autopkgtest [20:08:30]: testbed dpkg architecture: amd64 3087s autopkgtest [20:08:30]: testbed apt version: 2.7.14build2 3087s autopkgtest [20:08:30]: @@@@@@@@@@@@@@@@@@@@ test bed setup 3087s Get:1 http://ftpmaster.internal/ubuntu oracular-proposed InRelease [73.9 kB] 3087s Get:2 http://ftpmaster.internal/ubuntu oracular-proposed/multiverse Sources [9872 B] 3087s Get:3 http://ftpmaster.internal/ubuntu oracular-proposed/restricted Sources [1964 B] 3087s Get:4 http://ftpmaster.internal/ubuntu oracular-proposed/main Sources [134 kB] 3087s Get:5 http://ftpmaster.internal/ubuntu oracular-proposed/universe Sources [1671 kB] 3087s Get:6 http://ftpmaster.internal/ubuntu oracular-proposed/main amd64 Packages [233 kB] 3087s Get:7 http://ftpmaster.internal/ubuntu oracular-proposed/main i386 Packages [194 kB] 3087s Get:8 http://ftpmaster.internal/ubuntu oracular-proposed/restricted amd64 Packages [7700 B] 3087s Get:9 http://ftpmaster.internal/ubuntu oracular-proposed/universe amd64 Packages [1922 kB] 3087s Get:10 http://ftpmaster.internal/ubuntu oracular-proposed/universe i386 Packages [921 kB] 3087s Get:11 http://ftpmaster.internal/ubuntu oracular-proposed/multiverse i386 Packages [6324 B] 3087s Get:12 http://ftpmaster.internal/ubuntu oracular-proposed/multiverse amd64 Packages [19.7 kB] 3088s Fetched 5194 kB in 1s (7112 kB/s) 3088s Reading package lists... 3090s Reading package lists... 3090s Building dependency tree... 3090s Reading state information... 3090s Calculating upgrade... 3091s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 3091s Reading package lists... 3091s Building dependency tree... 3091s Reading state information... 3091s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 3091s Hit:1 http://ftpmaster.internal/ubuntu oracular-proposed InRelease 3091s Hit:2 http://ftpmaster.internal/ubuntu oracular InRelease 3091s Hit:3 http://ftpmaster.internal/ubuntu oracular-updates InRelease 3091s Hit:4 http://ftpmaster.internal/ubuntu oracular-security InRelease 3093s Reading package lists... 3093s Reading package lists... 3093s Building dependency tree... 3093s Reading state information... 3093s Calculating upgrade... 3094s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 3094s Reading package lists... 3094s Building dependency tree... 3094s Reading state information... 3094s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 3096s Reading package lists... 3096s Building dependency tree... 3096s Reading state information... 3096s Starting pkgProblemResolver with broken count: 0 3096s Starting 2 pkgProblemResolver with broken count: 0 3096s Done 3097s The following additional packages will be installed: 3097s fonts-font-awesome fonts-lato libio-pty-perl libipc-run-perl libjs-jquery 3097s libjs-sphinxdoc libjs-underscore libjson-perl libllvm17t64 libpq5 3097s libtime-duration-perl libtimedate-perl libxslt1.1 moreutils patroni 3097s patroni-doc postgresql postgresql-16 postgresql-client-16 3097s postgresql-client-common postgresql-common python3-behave python3-cdiff 3097s python3-click python3-colorama python3-coverage python3-dateutil 3097s python3-parse python3-parse-type python3-prettytable python3-psutil 3097s python3-psycopg2 python3-pysyncobj python3-wcwidth sphinx-rtd-theme-common 3097s ssl-cert 3097s Suggested packages: 3097s etcd-server | consul | zookeeperd vip-manager haproxy postgresql-doc 3097s postgresql-doc-16 python-coverage-doc python-psycopg2-doc 3097s Recommended packages: 3097s javascript-common libjson-xs-perl 3097s The following NEW packages will be installed: 3097s autopkgtest-satdep fonts-font-awesome fonts-lato libio-pty-perl 3097s libipc-run-perl libjs-jquery libjs-sphinxdoc libjs-underscore libjson-perl 3097s libllvm17t64 libpq5 libtime-duration-perl libtimedate-perl libxslt1.1 3097s moreutils patroni patroni-doc postgresql postgresql-16 postgresql-client-16 3097s postgresql-client-common postgresql-common python3-behave python3-cdiff 3097s python3-click python3-colorama python3-coverage python3-dateutil 3097s python3-parse python3-parse-type python3-prettytable python3-psutil 3097s python3-psycopg2 python3-pysyncobj python3-wcwidth sphinx-rtd-theme-common 3097s ssl-cert 3097s 0 upgraded, 37 newly installed, 0 to remove and 0 not upgraded. 3097s Need to get 50.3 MB/50.3 MB of archives. 3097s After this operation, 205 MB of additional disk space will be used. 3097s Get:1 /tmp/autopkgtest.j0Dj5k/6-autopkgtest-satdep.deb autopkgtest-satdep amd64 0 [756 B] 3097s Get:2 http://ftpmaster.internal/ubuntu oracular/main amd64 fonts-lato all 2.015-1 [2781 kB] 3097s Get:3 http://ftpmaster.internal/ubuntu oracular/main amd64 libjson-perl all 4.10000-1 [81.9 kB] 3097s Get:4 http://ftpmaster.internal/ubuntu oracular/main amd64 postgresql-client-common all 257build1 [36.3 kB] 3097s Get:5 http://ftpmaster.internal/ubuntu oracular/main amd64 ssl-cert all 1.1.2ubuntu1 [17.8 kB] 3097s Get:6 http://ftpmaster.internal/ubuntu oracular/main amd64 postgresql-common all 257build1 [161 kB] 3097s Get:7 http://ftpmaster.internal/ubuntu oracular/main amd64 fonts-font-awesome all 5.0.10+really4.7.0~dfsg-4.1 [516 kB] 3097s Get:8 http://ftpmaster.internal/ubuntu oracular/main amd64 libio-pty-perl amd64 1:1.20-1build2 [31.2 kB] 3097s Get:9 http://ftpmaster.internal/ubuntu oracular/main amd64 libipc-run-perl all 20231003.0-1 [92.1 kB] 3097s Get:10 http://ftpmaster.internal/ubuntu oracular/main amd64 libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 3097s Get:11 http://ftpmaster.internal/ubuntu oracular/main amd64 libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [118 kB] 3097s Get:12 http://ftpmaster.internal/ubuntu oracular/main amd64 libjs-sphinxdoc all 7.2.6-6 [149 kB] 3097s Get:13 http://ftpmaster.internal/ubuntu oracular/main amd64 libllvm17t64 amd64 1:17.0.6-9ubuntu1 [26.2 MB] 3097s Get:14 http://ftpmaster.internal/ubuntu oracular/main amd64 libpq5 amd64 16.2-1ubuntu4 [138 kB] 3097s Get:15 http://ftpmaster.internal/ubuntu oracular/main amd64 libtime-duration-perl all 1.21-2 [12.3 kB] 3097s Get:16 http://ftpmaster.internal/ubuntu oracular/main amd64 libtimedate-perl all 2.3300-2 [34.0 kB] 3097s Get:17 http://ftpmaster.internal/ubuntu oracular/main amd64 libxslt1.1 amd64 1.1.39-0exp1build1 [167 kB] 3097s Get:18 http://ftpmaster.internal/ubuntu oracular/universe amd64 moreutils amd64 0.69-1 [56.4 kB] 3097s Get:19 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-cdiff all 1.0-1.1 [16.4 kB] 3097s Get:20 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-colorama all 0.4.6-4 [32.1 kB] 3097s Get:21 http://ftpmaster.internal/ubuntu oracular-proposed/main amd64 python3-click all 8.1.7-1 [79.1 kB] 3097s Get:22 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-dateutil all 2.8.2-3ubuntu1 [79.4 kB] 3097s Get:23 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-wcwidth all 0.2.5+dfsg1-1.1ubuntu1 [22.5 kB] 3097s Get:24 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-prettytable all 3.6.0-2 [32.8 kB] 3097s Get:25 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-psutil amd64 5.9.8-2build2 [195 kB] 3097s Get:26 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-psycopg2 amd64 2.9.9-1build1 [131 kB] 3097s Get:27 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-pysyncobj all 0.3.12-1 [38.9 kB] 3097s Get:28 http://ftpmaster.internal/ubuntu oracular/universe amd64 patroni all 3.3.0-1 [264 kB] 3097s Get:29 http://ftpmaster.internal/ubuntu oracular/main amd64 sphinx-rtd-theme-common all 2.0.0+dfsg-1 [1012 kB] 3097s Get:30 http://ftpmaster.internal/ubuntu oracular/universe amd64 patroni-doc all 3.3.0-1 [496 kB] 3097s Get:31 http://ftpmaster.internal/ubuntu oracular/main amd64 postgresql-client-16 amd64 16.2-1ubuntu4 [1269 kB] 3097s Get:32 http://ftpmaster.internal/ubuntu oracular/main amd64 postgresql-16 amd64 16.2-1ubuntu4 [15.5 MB] 3097s Get:33 http://ftpmaster.internal/ubuntu oracular/main amd64 postgresql all 16+257build1 [11.5 kB] 3097s Get:34 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-parse all 1.19.0-0.2 [18.1 kB] 3097s Get:35 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-parse-type all 0.6.2-1 [22.7 kB] 3097s Get:36 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-behave all 1.2.6-5 [98.4 kB] 3097s Get:37 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-coverage amd64 7.4.4+dfsg1-0ubuntu2 [147 kB] 3098s Preconfiguring packages ... 3098s Fetched 50.3 MB in 1s (99.8 MB/s) 3098s Selecting previously unselected package fonts-lato. 3098s (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 ... 73899 files and directories currently installed.) 3098s Preparing to unpack .../00-fonts-lato_2.015-1_all.deb ... 3098s Unpacking fonts-lato (2.015-1) ... 3098s Selecting previously unselected package libjson-perl. 3098s Preparing to unpack .../01-libjson-perl_4.10000-1_all.deb ... 3098s Unpacking libjson-perl (4.10000-1) ... 3098s Selecting previously unselected package postgresql-client-common. 3098s Preparing to unpack .../02-postgresql-client-common_257build1_all.deb ... 3098s Unpacking postgresql-client-common (257build1) ... 3098s Selecting previously unselected package ssl-cert. 3098s Preparing to unpack .../03-ssl-cert_1.1.2ubuntu1_all.deb ... 3098s Unpacking ssl-cert (1.1.2ubuntu1) ... 3098s Selecting previously unselected package postgresql-common. 3098s Preparing to unpack .../04-postgresql-common_257build1_all.deb ... 3098s Adding 'diversion of /usr/bin/pg_config to /usr/bin/pg_config.libpq-dev by postgresql-common' 3098s Unpacking postgresql-common (257build1) ... 3098s Selecting previously unselected package fonts-font-awesome. 3098s Preparing to unpack .../05-fonts-font-awesome_5.0.10+really4.7.0~dfsg-4.1_all.deb ... 3098s Unpacking fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 3098s Selecting previously unselected package libio-pty-perl. 3098s Preparing to unpack .../06-libio-pty-perl_1%3a1.20-1build2_amd64.deb ... 3098s Unpacking libio-pty-perl (1:1.20-1build2) ... 3098s Selecting previously unselected package libipc-run-perl. 3098s Preparing to unpack .../07-libipc-run-perl_20231003.0-1_all.deb ... 3098s Unpacking libipc-run-perl (20231003.0-1) ... 3098s Selecting previously unselected package libjs-jquery. 3098s Preparing to unpack .../08-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 3098s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 3099s Selecting previously unselected package libjs-underscore. 3099s Preparing to unpack .../09-libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ... 3099s Unpacking libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 3099s Selecting previously unselected package libjs-sphinxdoc. 3099s Preparing to unpack .../10-libjs-sphinxdoc_7.2.6-6_all.deb ... 3099s Unpacking libjs-sphinxdoc (7.2.6-6) ... 3099s Selecting previously unselected package libllvm17t64:amd64. 3099s Preparing to unpack .../11-libllvm17t64_1%3a17.0.6-9ubuntu1_amd64.deb ... 3099s Unpacking libllvm17t64:amd64 (1:17.0.6-9ubuntu1) ... 3099s Selecting previously unselected package libpq5:amd64. 3099s Preparing to unpack .../12-libpq5_16.2-1ubuntu4_amd64.deb ... 3099s Unpacking libpq5:amd64 (16.2-1ubuntu4) ... 3099s Selecting previously unselected package libtime-duration-perl. 3099s Preparing to unpack .../13-libtime-duration-perl_1.21-2_all.deb ... 3099s Unpacking libtime-duration-perl (1.21-2) ... 3099s Selecting previously unselected package libtimedate-perl. 3099s Preparing to unpack .../14-libtimedate-perl_2.3300-2_all.deb ... 3099s Unpacking libtimedate-perl (2.3300-2) ... 3099s Selecting previously unselected package libxslt1.1:amd64. 3099s Preparing to unpack .../15-libxslt1.1_1.1.39-0exp1build1_amd64.deb ... 3099s Unpacking libxslt1.1:amd64 (1.1.39-0exp1build1) ... 3099s Selecting previously unselected package moreutils. 3099s Preparing to unpack .../16-moreutils_0.69-1_amd64.deb ... 3099s Unpacking moreutils (0.69-1) ... 3099s Selecting previously unselected package python3-cdiff. 3099s Preparing to unpack .../17-python3-cdiff_1.0-1.1_all.deb ... 3099s Unpacking python3-cdiff (1.0-1.1) ... 3099s Selecting previously unselected package python3-colorama. 3099s Preparing to unpack .../18-python3-colorama_0.4.6-4_all.deb ... 3099s Unpacking python3-colorama (0.4.6-4) ... 3099s Selecting previously unselected package python3-click. 3099s Preparing to unpack .../19-python3-click_8.1.7-1_all.deb ... 3099s Unpacking python3-click (8.1.7-1) ... 3099s Selecting previously unselected package python3-dateutil. 3099s Preparing to unpack .../20-python3-dateutil_2.8.2-3ubuntu1_all.deb ... 3099s Unpacking python3-dateutil (2.8.2-3ubuntu1) ... 3099s Selecting previously unselected package python3-wcwidth. 3099s Preparing to unpack .../21-python3-wcwidth_0.2.5+dfsg1-1.1ubuntu1_all.deb ... 3099s Unpacking python3-wcwidth (0.2.5+dfsg1-1.1ubuntu1) ... 3099s Selecting previously unselected package python3-prettytable. 3099s Preparing to unpack .../22-python3-prettytable_3.6.0-2_all.deb ... 3099s Unpacking python3-prettytable (3.6.0-2) ... 3099s Selecting previously unselected package python3-psutil. 3099s Preparing to unpack .../23-python3-psutil_5.9.8-2build2_amd64.deb ... 3099s Unpacking python3-psutil (5.9.8-2build2) ... 3099s Selecting previously unselected package python3-psycopg2. 3099s Preparing to unpack .../24-python3-psycopg2_2.9.9-1build1_amd64.deb ... 3099s Unpacking python3-psycopg2 (2.9.9-1build1) ... 3100s Selecting previously unselected package python3-pysyncobj. 3100s Preparing to unpack .../25-python3-pysyncobj_0.3.12-1_all.deb ... 3100s Unpacking python3-pysyncobj (0.3.12-1) ... 3100s Selecting previously unselected package patroni. 3100s Preparing to unpack .../26-patroni_3.3.0-1_all.deb ... 3100s Unpacking patroni (3.3.0-1) ... 3100s Selecting previously unselected package sphinx-rtd-theme-common. 3100s Preparing to unpack .../27-sphinx-rtd-theme-common_2.0.0+dfsg-1_all.deb ... 3100s Unpacking sphinx-rtd-theme-common (2.0.0+dfsg-1) ... 3100s Selecting previously unselected package patroni-doc. 3100s Preparing to unpack .../28-patroni-doc_3.3.0-1_all.deb ... 3100s Unpacking patroni-doc (3.3.0-1) ... 3100s Selecting previously unselected package postgresql-client-16. 3100s Preparing to unpack .../29-postgresql-client-16_16.2-1ubuntu4_amd64.deb ... 3100s Unpacking postgresql-client-16 (16.2-1ubuntu4) ... 3100s Selecting previously unselected package postgresql-16. 3100s Preparing to unpack .../30-postgresql-16_16.2-1ubuntu4_amd64.deb ... 3100s Unpacking postgresql-16 (16.2-1ubuntu4) ... 3100s Selecting previously unselected package postgresql. 3100s Preparing to unpack .../31-postgresql_16+257build1_all.deb ... 3100s Unpacking postgresql (16+257build1) ... 3100s Selecting previously unselected package python3-parse. 3100s Preparing to unpack .../32-python3-parse_1.19.0-0.2_all.deb ... 3100s Unpacking python3-parse (1.19.0-0.2) ... 3100s Selecting previously unselected package python3-parse-type. 3100s Preparing to unpack .../33-python3-parse-type_0.6.2-1_all.deb ... 3100s Unpacking python3-parse-type (0.6.2-1) ... 3100s Selecting previously unselected package python3-behave. 3100s Preparing to unpack .../34-python3-behave_1.2.6-5_all.deb ... 3100s Unpacking python3-behave (1.2.6-5) ... 3100s Selecting previously unselected package python3-coverage. 3100s Preparing to unpack .../35-python3-coverage_7.4.4+dfsg1-0ubuntu2_amd64.deb ... 3100s Unpacking python3-coverage (7.4.4+dfsg1-0ubuntu2) ... 3100s Selecting previously unselected package autopkgtest-satdep. 3100s Preparing to unpack .../36-6-autopkgtest-satdep.deb ... 3100s Unpacking autopkgtest-satdep (0) ... 3100s Setting up postgresql-client-common (257build1) ... 3100s Setting up fonts-lato (2.015-1) ... 3100s Setting up libio-pty-perl (1:1.20-1build2) ... 3100s Setting up python3-pysyncobj (0.3.12-1) ... 3101s Setting up python3-colorama (0.4.6-4) ... 3101s Setting up python3-cdiff (1.0-1.1) ... 3101s Setting up libpq5:amd64 (16.2-1ubuntu4) ... 3101s Setting up python3-coverage (7.4.4+dfsg1-0ubuntu2) ... 3101s Setting up python3-click (8.1.7-1) ... 3101s Setting up python3-psutil (5.9.8-2build2) ... 3101s Setting up libllvm17t64:amd64 (1:17.0.6-9ubuntu1) ... 3101s Setting up python3-wcwidth (0.2.5+dfsg1-1.1ubuntu1) ... 3102s Setting up ssl-cert (1.1.2ubuntu1) ... 3102s Created symlink /etc/systemd/system/multi-user.target.wants/ssl-cert.service → /usr/lib/systemd/system/ssl-cert.service. 3103s Setting up python3-psycopg2 (2.9.9-1build1) ... 3103s Setting up libipc-run-perl (20231003.0-1) ... 3103s Setting up libtime-duration-perl (1.21-2) ... 3103s Setting up libtimedate-perl (2.3300-2) ... 3103s Setting up python3-parse (1.19.0-0.2) ... 3103s Setting up libjson-perl (4.10000-1) ... 3103s Setting up libxslt1.1:amd64 (1.1.39-0exp1build1) ... 3103s Setting up python3-dateutil (2.8.2-3ubuntu1) ... 3103s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 3103s Setting up python3-prettytable (3.6.0-2) ... 3103s Setting up fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 3103s Setting up sphinx-rtd-theme-common (2.0.0+dfsg-1) ... 3103s Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 3103s Setting up moreutils (0.69-1) ... 3103s Setting up postgresql-client-16 (16.2-1ubuntu4) ... 3104s update-alternatives: using /usr/share/postgresql/16/man/man1/psql.1.gz to provide /usr/share/man/man1/psql.1.gz (psql.1.gz) in auto mode 3104s Setting up python3-parse-type (0.6.2-1) ... 3104s Setting up postgresql-common (257build1) ... 3104s 3104s Creating config file /etc/postgresql-common/createcluster.conf with new version 3104s Building PostgreSQL dictionaries from installed myspell/hunspell packages... 3104s Removing obsolete dictionary files: 3105s Created symlink /etc/systemd/system/multi-user.target.wants/postgresql.service → /usr/lib/systemd/system/postgresql.service. 3106s Setting up libjs-sphinxdoc (7.2.6-6) ... 3106s Setting up python3-behave (1.2.6-5) ... 3106s /usr/lib/python3/dist-packages/behave/formatter/ansi_escapes.py:57: SyntaxWarning: invalid escape sequence '\[' 3106s _ANSI_ESCAPE_PATTERN = re.compile(u"\x1b\[\d+[mA]", re.UNICODE) 3106s /usr/lib/python3/dist-packages/behave/matchers.py:267: SyntaxWarning: invalid escape sequence '\d' 3106s """Registers a custom type that will be available to "parse" 3106s Setting up patroni (3.3.0-1) ... 3106s Created symlink /etc/systemd/system/multi-user.target.wants/patroni.service → /usr/lib/systemd/system/patroni.service. 3107s Setting up postgresql-16 (16.2-1ubuntu4) ... 3107s Creating new PostgreSQL cluster 16/main ... 3107s /usr/lib/postgresql/16/bin/initdb -D /var/lib/postgresql/16/main --auth-local peer --auth-host scram-sha-256 --no-instructions 3107s The files belonging to this database system will be owned by user "postgres". 3107s This user must also own the server process. 3107s 3107s The database cluster will be initialized with locale "C.UTF-8". 3107s The default database encoding has accordingly been set to "UTF8". 3107s The default text search configuration will be set to "english". 3107s 3107s Data page checksums are disabled. 3107s 3107s fixing permissions on existing directory /var/lib/postgresql/16/main ... ok 3107s creating subdirectories ... ok 3107s selecting dynamic shared memory implementation ... posix 3107s selecting default max_connections ... 100 3107s selecting default shared_buffers ... 128MB 3107s selecting default time zone ... Etc/UTC 3107s creating configuration files ... ok 3107s running bootstrap script ... ok 3108s performing post-bootstrap initialization ... ok 3108s syncing data to disk ... ok 3111s Setting up patroni-doc (3.3.0-1) ... 3111s Setting up postgresql (16+257build1) ... 3111s Setting up autopkgtest-satdep (0) ... 3111s Processing triggers for man-db (2.12.0-4build2) ... 3113s Processing triggers for libc-bin (2.39-0ubuntu8) ... 3115s (Reading database ... 76882 files and directories currently installed.) 3115s Removing autopkgtest-satdep (0) ... 3116s autopkgtest [20:08:59]: test acceptance-raft: debian/tests/acceptance raft 3116s autopkgtest [20:08:59]: test acceptance-raft: [----------------------- 3116s dpkg-architecture: warning: cannot determine CC system type, falling back to default (native compilation) 3116s ++ ls -1r /usr/lib/postgresql/ 3116s ### PostgreSQL 16 acceptance-raft ### 3116s + for PG_VERSION in $(ls -1r /usr/lib/postgresql/) 3116s + '[' 16 == 10 -o 16 == 11 ']' 3116s + echo '### PostgreSQL 16 acceptance-raft ###' 3116s + bash -c 'set -o pipefail; ETCD_UNSUPPORTED_ARCH= DCS=raft PATH=/usr/lib/postgresql/16/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin behave | ts' 3122s May 17 20:09:05 Feature: basic replication # features/basic_replication.feature:1 3122s May 17 20:09:05 We should check that the basic bootstrapping, replication and failover works. 3122s May 17 20:09:05 Scenario: check replication of a single table # features/basic_replication.feature:4 3122s May 17 20:09:05 Given I start postgres0 # features/steps/basic_replication.py:8 3125s May 17 20:09:08 Then postgres0 is a leader after 10 seconds # features/steps/patroni_api.py:29 3126s May 17 20:09:09 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 3126s May 17 20:09:09 When I issue a PATCH request to http://127.0.0.1:8008/config with {"ttl": 20, "synchronous_mode": true} # features/steps/patroni_api.py:71 3126s May 17 20:09:09 Then I receive a response code 200 # features/steps/patroni_api.py:98 3126s May 17 20:09:09 When I start postgres1 # features/steps/basic_replication.py:8 3129s May 17 20:09:12 And I configure and start postgres2 with a tag replicatefrom postgres0 # features/steps/cascading_replication.py:7 3132s May 17 20:09:15 And "sync" key in DCS has leader=postgres0 after 20 seconds # features/steps/cascading_replication.py:23 3132s May 17 20:09:15 And I add the table foo to postgres0 # features/steps/basic_replication.py:54 3132s May 17 20:09:15 Then table foo is present on postgres1 after 20 seconds # features/steps/basic_replication.py:93 3133s May 17 20:09:16 Then table foo is present on postgres2 after 20 seconds # features/steps/basic_replication.py:93 3133s May 17 20:09:16 3133s May 17 20:09:16 Scenario: check restart of sync replica # features/basic_replication.feature:17 3133s May 17 20:09:16 Given I shut down postgres2 # features/steps/basic_replication.py:29 3134s May 17 20:09:17 Then "sync" key in DCS has sync_standby=postgres1 after 5 seconds # features/steps/cascading_replication.py:23 3134s May 17 20:09:17 When I start postgres2 # features/steps/basic_replication.py:8 3137s May 17 20:09:20 And I shut down postgres1 # features/steps/basic_replication.py:29 3140s May 17 20:09:23 Then "sync" key in DCS has sync_standby=postgres2 after 10 seconds # features/steps/cascading_replication.py:23 3141s May 17 20:09:24 When I start postgres1 # features/steps/basic_replication.py:8 3144s May 17 20:09:27 Then "members/postgres1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 3145s May 17 20:09:28 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:142 3145s May 17 20:09:28 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:142 3145s May 17 20:09:28 3145s May 17 20:09:28 Scenario: check stuck sync replica # features/basic_replication.feature:28 3145s May 17 20:09:28 Given I issue a PATCH request to http://127.0.0.1:8008/config with {"pause": true, "maximum_lag_on_syncnode": 15000000, "postgresql": {"parameters": {"synchronous_commit": "remote_apply"}}} # features/steps/patroni_api.py:71 3145s May 17 20:09:28 Then I receive a response code 200 # features/steps/patroni_api.py:98 3145s May 17 20:09:28 And I create table on postgres0 # features/steps/basic_replication.py:73 3146s May 17 20:09:29 And table mytest is present on postgres1 after 2 seconds # features/steps/basic_replication.py:93 3147s May 17 20:09:30 And table mytest is present on postgres2 after 2 seconds # features/steps/basic_replication.py:93 3147s May 17 20:09:30 When I pause wal replay on postgres2 # features/steps/basic_replication.py:64 3147s May 17 20:09:30 And I load data on postgres0 # features/steps/basic_replication.py:84 3147s May 17 20:09:30 Then "sync" key in DCS has sync_standby=postgres1 after 15 seconds # features/steps/cascading_replication.py:23 3150s May 17 20:09:33 And I resume wal replay on postgres2 # features/steps/basic_replication.py:64 3150s May 17 20:09:33 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:142 3150s May 17 20:09:33 And Status code on GET http://127.0.0.1:8010/async is 200 after 3 seconds # features/steps/patroni_api.py:142 3150s May 17 20:09:33 When I issue a PATCH request to http://127.0.0.1:8008/config with {"pause": null, "maximum_lag_on_syncnode": -1, "postgresql": {"parameters": {"synchronous_commit": "on"}}} # features/steps/patroni_api.py:71 3150s May 17 20:09:33 Then I receive a response code 200 # features/steps/patroni_api.py:98 3150s May 17 20:09:33 And I drop table on postgres0 # features/steps/basic_replication.py:73 3150s May 17 20:09:33 3150s May 17 20:09:33 Scenario: check multi sync replication # features/basic_replication.feature:44 3150s May 17 20:09:33 Given I issue a PATCH request to http://127.0.0.1:8008/config with {"synchronous_node_count": 2} # features/steps/patroni_api.py:71 3150s May 17 20:09:33 Then I receive a response code 200 # features/steps/patroni_api.py:98 3150s May 17 20:09:33 Then "sync" key in DCS has sync_standby=postgres1,postgres2 after 10 seconds # features/steps/cascading_replication.py:23 3154s May 17 20:09:37 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:142 3154s May 17 20:09:37 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:142 3154s May 17 20:09:37 When I issue a PATCH request to http://127.0.0.1:8008/config with {"synchronous_node_count": 1} # features/steps/patroni_api.py:71 3155s May 17 20:09:38 Then I receive a response code 200 # features/steps/patroni_api.py:98 3155s May 17 20:09:38 And I shut down postgres1 # features/steps/basic_replication.py:29 3158s May 17 20:09:41 Then "sync" key in DCS has sync_standby=postgres2 after 10 seconds # features/steps/cascading_replication.py:23 3159s May 17 20:09:42 When I start postgres1 # features/steps/basic_replication.py:8 3162s May 17 20:09:45 Then "members/postgres1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 3163s May 17 20:09:46 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:142 3163s May 17 20:09:46 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:142 3163s May 17 20:09:46 3163s May 17 20:09:46 Scenario: check the basic failover in synchronous mode # features/basic_replication.feature:59 3163s May 17 20:09:46 Given I run patronictl.py pause batman # features/steps/patroni_api.py:86 3164s May 17 20:09:47 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 3164s May 17 20:09:47 When I sleep for 2 seconds # features/steps/patroni_api.py:39 3166s May 17 20:09:49 And I shut down postgres0 # features/steps/basic_replication.py:29 3167s May 17 20:09:50 And I run patronictl.py resume batman # features/steps/patroni_api.py:86 3169s May 17 20:09:52 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 3169s May 17 20:09:52 And postgres2 role is the primary after 24 seconds # features/steps/basic_replication.py:105 3188s May 17 20:10:11 And Response on GET http://127.0.0.1:8010/history contains recovery after 10 seconds # features/steps/patroni_api.py:156 3190s May 17 20:10:13 And there is a postgres2_cb.log with "on_role_change master batman" in postgres2 data directory # features/steps/cascading_replication.py:12 3190s May 17 20:10:13 When I issue a PATCH request to http://127.0.0.1:8010/config with {"synchronous_mode": null, "master_start_timeout": 0} # features/steps/patroni_api.py:71 3190s May 17 20:10:13 Then I receive a response code 200 # features/steps/patroni_api.py:98 3190s May 17 20:10:13 When I add the table bar to postgres2 # features/steps/basic_replication.py:54 3190s May 17 20:10:13 Then table bar is present on postgres1 after 20 seconds # features/steps/basic_replication.py:93 3192s May 17 20:10:15 And Response on GET http://127.0.0.1:8010/config contains master_start_timeout after 10 seconds # features/steps/patroni_api.py:156 3192s May 17 20:10:15 3192s May 17 20:10:15 Scenario: check rejoin of the former primary with pg_rewind # features/basic_replication.feature:75 3192s May 17 20:10:15 Given I add the table splitbrain to postgres0 # features/steps/basic_replication.py:54 3192s May 17 20:10:15 And I start postgres0 # features/steps/basic_replication.py:8 3192s May 17 20:10:15 Then postgres0 role is the secondary after 20 seconds # features/steps/basic_replication.py:105 3196s May 17 20:10:19 When I add the table buz to postgres2 # features/steps/basic_replication.py:54 3196s May 17 20:10:19 Then table buz is present on postgres0 after 20 seconds # features/steps/basic_replication.py:93 3200s SKIP Scenario check graceful rejection when two nodes have the same name: Flaky test with Raft 3215s May 17 20:10:38 3215s May 17 20:10:38 @reject-duplicate-name 3215s May 17 20:10:38 Scenario: check graceful rejection when two nodes have the same name # features/basic_replication.feature:83 3215s May 17 20:10:38 Given I start duplicate postgres0 on port 8011 # None 3215s May 17 20:10:38 Then there is one of ["Can't start; there is already a node named 'postgres0' running"] CRITICAL in the dup-postgres0 patroni log after 5 seconds # None 3215s May 17 20:10:38 3215s May 17 20:10:38 Feature: cascading replication # features/cascading_replication.feature:1 3215s May 17 20:10:38 We should check that patroni can do base backup and streaming from the replica 3215s May 17 20:10:38 Scenario: check a base backup and streaming replication from a replica # features/cascading_replication.feature:4 3215s May 17 20:10:38 Given I start postgres0 # features/steps/basic_replication.py:8 3219s May 17 20:10:42 And postgres0 is a leader after 10 seconds # features/steps/patroni_api.py:29 3220s May 17 20:10:43 And I configure and start postgres1 with a tag clonefrom true # features/steps/cascading_replication.py:7 3223s May 17 20:10:46 And replication works from postgres0 to postgres1 after 20 seconds # features/steps/basic_replication.py:112 3229s May 17 20:10:52 And I create label with "postgres0" in postgres0 data directory # features/steps/cascading_replication.py:18 3229s May 17 20:10:52 And I create label with "postgres1" in postgres1 data directory # features/steps/cascading_replication.py:18 3229s May 17 20:10:52 And "members/postgres1" key in DCS has state=running after 12 seconds # features/steps/cascading_replication.py:23 3229s May 17 20:10:52 And I configure and start postgres2 with a tag replicatefrom postgres1 # features/steps/cascading_replication.py:7 3238s May 17 20:11:01 Then replication works from postgres0 to postgres2 after 30 seconds # features/steps/basic_replication.py:112 3238s May 17 20:11:01 And there is a label with "postgres1" in postgres2 data directory # features/steps/cascading_replication.py:12 3254s SKIP FEATURE citus: Citus extenstion isn't available 3254s SKIP Scenario check that worker cluster is registered in the coordinator: Citus extenstion isn't available 3254s SKIP Scenario coordinator failover updates pg_dist_node: Citus extenstion isn't available 3254s SKIP Scenario worker switchover doesn't break client queries on the coordinator: Citus extenstion isn't available 3254s SKIP Scenario worker primary restart doesn't break client queries on the coordinator: Citus extenstion isn't available 3254s SKIP Scenario check that in-flight transaction is rolled back after timeout when other workers need to change pg_dist_node: Citus extenstion isn't available 3254s May 17 20:11:17 3254s May 17 20:11:17 Feature: citus # features/citus.feature:1 3254s May 17 20:11:17 We should check that coordinator discovers and registers workers and clients don't have errors when worker cluster switches over 3254s May 17 20:11:17 Scenario: check that worker cluster is registered in the coordinator # features/citus.feature:4 3254s May 17 20:11:17 Given I start postgres0 in citus group 0 # None 3254s May 17 20:11:17 And I start postgres2 in citus group 1 # None 3254s May 17 20:11:17 Then postgres0 is a leader in a group 0 after 10 seconds # None 3254s May 17 20:11:17 And postgres2 is a leader in a group 1 after 10 seconds # None 3254s May 17 20:11:17 When I start postgres1 in citus group 0 # None 3254s May 17 20:11:17 And I start postgres3 in citus group 1 # None 3254s May 17 20:11:17 Then replication works from postgres0 to postgres1 after 15 seconds # None 3254s May 17 20:11:17 Then replication works from postgres2 to postgres3 after 15 seconds # None 3254s May 17 20:11:17 And postgres0 is registered in the postgres0 as the primary in group 0 after 5 seconds # None 3254s May 17 20:11:17 And postgres2 is registered in the postgres0 as the primary in group 1 after 5 seconds # None 3254s May 17 20:11:17 3254s May 17 20:11:17 Scenario: coordinator failover updates pg_dist_node # features/citus.feature:16 3254s May 17 20:11:17 Given I run patronictl.py failover batman --group 0 --candidate postgres1 --force # None 3254s May 17 20:11:17 Then postgres1 role is the primary after 10 seconds # None 3254s May 17 20:11:17 And "members/postgres0" key in a group 0 in DCS has state=running after 15 seconds # None 3254s May 17 20:11:17 And replication works from postgres1 to postgres0 after 15 seconds # None 3254s May 17 20:11:17 And postgres1 is registered in the postgres2 as the primary in group 0 after 5 seconds # None 3254s May 17 20:11:17 And "sync" key in a group 0 in DCS has sync_standby=postgres0 after 15 seconds # None 3254s May 17 20:11:17 When I run patronictl.py switchover batman --group 0 --candidate postgres0 --force # None 3254s May 17 20:11:17 Then postgres0 role is the primary after 10 seconds # None 3254s May 17 20:11:17 And replication works from postgres0 to postgres1 after 15 seconds # None 3254s May 17 20:11:17 And postgres0 is registered in the postgres2 as the primary in group 0 after 5 seconds # None 3254s May 17 20:11:17 And "sync" key in a group 0 in DCS has sync_standby=postgres1 after 15 seconds # None 3254s May 17 20:11:17 3254s May 17 20:11:17 Scenario: worker switchover doesn't break client queries on the coordinator # features/citus.feature:29 3254s May 17 20:11:17 Given I create a distributed table on postgres0 # None 3254s May 17 20:11:17 And I start a thread inserting data on postgres0 # None 3254s May 17 20:11:17 When I run patronictl.py switchover batman --group 1 --force # None 3254s May 17 20:11:17 Then I receive a response returncode 0 # None 3254s May 17 20:11:17 And postgres3 role is the primary after 10 seconds # None 3254s May 17 20:11:17 And "members/postgres2" key in a group 1 in DCS has state=running after 15 seconds # None 3254s May 17 20:11:17 And replication works from postgres3 to postgres2 after 15 seconds # None 3254s May 17 20:11:17 And postgres3 is registered in the postgres0 as the primary in group 1 after 5 seconds # None 3254s May 17 20:11:17 And "sync" key in a group 1 in DCS has sync_standby=postgres2 after 15 seconds # None 3254s May 17 20:11:17 And a thread is still alive # None 3254s May 17 20:11:17 When I run patronictl.py switchover batman --group 1 --force # None 3254s May 17 20:11:17 Then I receive a response returncode 0 # None 3254s May 17 20:11:17 And postgres2 role is the primary after 10 seconds # None 3254s May 17 20:11:17 And replication works from postgres2 to postgres3 after 15 seconds # None 3254s May 17 20:11:17 And postgres2 is registered in the postgres0 as the primary in group 1 after 5 seconds # None 3254s May 17 20:11:17 And "sync" key in a group 1 in DCS has sync_standby=postgres3 after 15 seconds # None 3254s May 17 20:11:17 And a thread is still alive # None 3254s May 17 20:11:17 When I stop a thread # None 3254s May 17 20:11:17 Then a distributed table on postgres0 has expected rows # None 3254s May 17 20:11:17 3254s May 17 20:11:17 Scenario: worker primary restart doesn't break client queries on the coordinator # features/citus.feature:50 3254s May 17 20:11:17 Given I cleanup a distributed table on postgres0 # None 3254s May 17 20:11:17 And I start a thread inserting data on postgres0 # None 3254s May 17 20:11:17 When I run patronictl.py restart batman postgres2 --group 1 --force # None 3254s May 17 20:11:17 Then I receive a response returncode 0 # None 3254s May 17 20:11:17 And postgres2 role is the primary after 10 seconds # None 3254s May 17 20:11:17 And replication works from postgres2 to postgres3 after 15 seconds # None 3254s May 17 20:11:17 And postgres2 is registered in the postgres0 as the primary in group 1 after 5 seconds # None 3254s May 17 20:11:17 And a thread is still alive # None 3254s May 17 20:11:17 When I stop a thread # None 3254s May 17 20:11:17 Then a distributed table on postgres0 has expected rows # None 3260s May 17 20:11:23 3260s May 17 20:11:23 Scenario: check that in-flight transaction is rolled back after timeout when other workers need to change pg_dist_node # features/citus.feature:62 3260s May 17 20:11:23 Given I start postgres4 in citus group 2 # None 3260s May 17 20:11:23 Then postgres4 is a leader in a group 2 after 10 seconds # None 3260s May 17 20:11:23 And "members/postgres4" key in a group 2 in DCS has role=master after 3 seconds # None 3260s May 17 20:11:23 When I run patronictl.py edit-config batman --group 2 -s ttl=20 --force # None 3260s May 17 20:11:23 Then I receive a response returncode 0 # None 3260s May 17 20:11:23 And I receive a response output "+ttl: 20" # None 3260s May 17 20:11:23 Then postgres4 is registered in the postgres2 as the primary in group 2 after 5 seconds # None 3260s May 17 20:11:23 When I shut down postgres4 # None 3260s May 17 20:11:23 Then there is a transaction in progress on postgres0 changing pg_dist_node after 5 seconds # None 3260s May 17 20:11:23 When I run patronictl.py restart batman postgres2 --group 1 --force # None 3260s May 17 20:11:23 Then a transaction finishes in 20 seconds # None 3260s May 17 20:11:23 3260s May 17 20:11:23 Feature: custom bootstrap # features/custom_bootstrap.feature:1 3260s May 17 20:11:23 We should check that patroni can bootstrap a new cluster from a backup 3260s May 17 20:11:23 Scenario: clone existing cluster using pg_basebackup # features/custom_bootstrap.feature:4 3260s May 17 20:11:23 Given I start postgres0 # features/steps/basic_replication.py:8 3263s May 17 20:11:26 Then postgres0 is a leader after 10 seconds # features/steps/patroni_api.py:29 3263s May 17 20:11:26 When I add the table foo to postgres0 # features/steps/basic_replication.py:54 3263s May 17 20:11:26 And I start postgres1 in a cluster batman1 as a clone of postgres0 # features/steps/custom_bootstrap.py:6 3273s May 17 20:11:36 Then postgres1 is a leader of batman1 after 10 seconds # features/steps/custom_bootstrap.py:16 3274s May 17 20:11:37 Then table foo is present on postgres1 after 10 seconds # features/steps/basic_replication.py:93 3274s May 17 20:11:37 3274s May 17 20:11:37 Scenario: make a backup and do a restore into a new cluster # features/custom_bootstrap.feature:12 3274s May 17 20:11:37 Given I add the table bar to postgres1 # features/steps/basic_replication.py:54 3274s May 17 20:11:37 And I do a backup of postgres1 # features/steps/custom_bootstrap.py:25 3275s May 17 20:11:38 When I start postgres2 in a cluster batman2 from backup # features/steps/custom_bootstrap.py:11 3279s May 17 20:11:42 Then postgres2 is a leader of batman2 after 30 seconds # features/steps/custom_bootstrap.py:16 3280s May 17 20:11:43 And table bar is present on postgres2 after 10 seconds # features/steps/basic_replication.py:93 3297s May 17 20:12:00 3297s May 17 20:12:00 Feature: dcs failsafe mode # features/dcs_failsafe_mode.feature:1 3297s May 17 20:12:00 We should check the basic dcs failsafe mode functioning 3297s May 17 20:12:00 Scenario: check failsafe mode can be successfully enabled # features/dcs_failsafe_mode.feature:4 3297s May 17 20:12:00 Given I start postgres0 # features/steps/basic_replication.py:8 3300s May 17 20:12:03 And postgres0 is a leader after 10 seconds # features/steps/patroni_api.py:29 3300s May 17 20:12:03 Then "config" key in DCS has ttl=30 after 10 seconds # features/steps/cascading_replication.py:23 3300s May 17 20:12:03 When I issue a PATCH request to http://127.0.0.1:8008/config with {"loop_wait": 2, "ttl": 20, "retry_timeout": 3, "failsafe_mode": true} # features/steps/patroni_api.py:71 3300s May 17 20:12:03 Then I receive a response code 200 # features/steps/patroni_api.py:98 3300s May 17 20:12:03 And Response on GET http://127.0.0.1:8008/failsafe contains postgres0 after 10 seconds # features/steps/patroni_api.py:156 3300s May 17 20:12:03 When I issue a GET request to http://127.0.0.1:8008/failsafe # features/steps/patroni_api.py:61 3300s May 17 20:12:03 Then I receive a response code 200 # features/steps/patroni_api.py:98 3300s May 17 20:12:03 And I receive a response postgres0 http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:98 3300s May 17 20:12:03 When I issue a PATCH request to http://127.0.0.1:8008/config with {"postgresql": {"parameters": {"wal_level": "logical"}},"slots":{"dcs_slot_1": null,"postgres0":null}} # features/steps/patroni_api.py:71 3300s May 17 20:12:03 Then I receive a response code 200 # features/steps/patroni_api.py:98 3300s May 17 20:12:03 When I issue a PATCH request to http://127.0.0.1:8008/config with {"slots": {"dcs_slot_0": {"type": "logical", "database": "postgres", "plugin": "test_decoding"}}} # features/steps/patroni_api.py:71 3301s May 17 20:12:04 Then I receive a response code 200 # features/steps/patroni_api.py:98 3301s May 17 20:12:04 3301s May 17 20:12:04 @dcs-failsafe 3301s May 17 20:12:04 Scenario: check one-node cluster is functioning while DCS is down # features/dcs_failsafe_mode.feature:20 3301s May 17 20:12:04 Given DCS is down # features/steps/dcs_failsafe_mode.py:4 3301s May 17 20:12:04 Then Response on GET http://127.0.0.1:8008/primary contains failsafe_mode_is_active after 12 seconds # features/steps/patroni_api.py:156 3305s May 17 20:12:08 And postgres0 role is the primary after 10 seconds # features/steps/basic_replication.py:105 3305s May 17 20:12:08 3305s May 17 20:12:08 @dcs-failsafe 3305s May 17 20:12:08 Scenario: check new replica isn't promoted when leader is down and DCS is up # features/dcs_failsafe_mode.feature:26 3305s May 17 20:12:08 Given DCS is up # features/steps/dcs_failsafe_mode.py:9 3305s May 17 20:12:08 When I do a backup of postgres0 # features/steps/custom_bootstrap.py:25 3305s May 17 20:12:08 And I shut down postgres0 # features/steps/basic_replication.py:29 3307s May 17 20:12:10 When I start postgres1 in a cluster batman from backup with no_leader # features/steps/dcs_failsafe_mode.py:14 3310s May 17 20:12:13 Then postgres1 role is the replica after 12 seconds # features/steps/basic_replication.py:105 3310s May 17 20:12:13 3310s May 17 20:12:13 Scenario: check leader and replica are both in /failsafe key after leader is back # features/dcs_failsafe_mode.feature:33 3310s May 17 20:12:13 Given I start postgres0 # features/steps/basic_replication.py:8 3313s May 17 20:12:16 And I start postgres1 # features/steps/basic_replication.py:8 3313s May 17 20:12:16 Then "members/postgres0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 3314s May 17 20:12:17 And "members/postgres1" key in DCS has state=running after 2 seconds # features/steps/cascading_replication.py:23 3314s May 17 20:12:17 And Response on GET http://127.0.0.1:8009/failsafe contains postgres1 after 10 seconds # features/steps/patroni_api.py:156 3320s May 17 20:12:23 When I issue a GET request to http://127.0.0.1:8009/failsafe # features/steps/patroni_api.py:61 3320s May 17 20:12:23 Then I receive a response code 200 # features/steps/patroni_api.py:98 3320s May 17 20:12:23 And I receive a response postgres0 http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:98 3320s May 17 20:12:23 And I receive a response postgres1 http://127.0.0.1:8009/patroni # features/steps/patroni_api.py:98 3320s May 17 20:12:23 3320s May 17 20:12:23 @dcs-failsafe @slot-advance 3320s May 17 20:12:23 Scenario: check leader and replica are functioning while DCS is down # features/dcs_failsafe_mode.feature:46 3320s May 17 20:12:23 Given I get all changes from physical slot dcs_slot_1 on postgres0 # features/steps/slots.py:75 3320s May 17 20:12:23 Then physical slot dcs_slot_1 is in sync between postgres0 and postgres1 after 10 seconds # features/steps/slots.py:51 3321s May 17 20:12:24 And logical slot dcs_slot_0 is in sync between postgres0 and postgres1 after 10 seconds # features/steps/slots.py:51 3323s May 17 20:12:26 And DCS is down # features/steps/dcs_failsafe_mode.py:4 3323s May 17 20:12:26 Then Response on GET http://127.0.0.1:8008/primary contains failsafe_mode_is_active after 12 seconds # features/steps/patroni_api.py:156 3328s May 17 20:12:31 Then postgres0 role is the primary after 10 seconds # features/steps/basic_replication.py:105 3328s May 17 20:12:31 And postgres1 role is the replica after 2 seconds # features/steps/basic_replication.py:105 3328s May 17 20:12:31 And replication works from postgres0 to postgres1 after 10 seconds # features/steps/basic_replication.py:112 3328s May 17 20:12:31 When I get all changes from logical slot dcs_slot_0 on postgres0 # features/steps/slots.py:70 3328s May 17 20:12:31 And I get all changes from physical slot dcs_slot_1 on postgres0 # features/steps/slots.py:75 3328s May 17 20:12:31 Then logical slot dcs_slot_0 is in sync between postgres0 and postgres1 after 20 seconds # features/steps/slots.py:51 3335s May 17 20:12:38 And physical slot dcs_slot_1 is in sync between postgres0 and postgres1 after 10 seconds # features/steps/slots.py:51 3335s May 17 20:12:38 3335s May 17 20:12:38 @dcs-failsafe 3335s May 17 20:12:38 Scenario: check primary is demoted when one replica is shut down and DCS is down # features/dcs_failsafe_mode.feature:61 3335s May 17 20:12:38 Given DCS is down # features/steps/dcs_failsafe_mode.py:4 3335s May 17 20:12:38 And I kill postgres1 # features/steps/basic_replication.py:34 3336s May 17 20:12:39 And I kill postmaster on postgres1 # features/steps/basic_replication.py:44 3336s May 17 20:12:39 waiting for server to shut down.... done 3336s May 17 20:12:39 server stopped 3336s May 17 20:12:39 Then postgres0 role is the replica after 12 seconds # features/steps/basic_replication.py:105 3338s May 17 20:12:41 3338s May 17 20:12:41 @dcs-failsafe 3338s May 17 20:12:41 Scenario: check known replica is promoted when leader is down and DCS is up # features/dcs_failsafe_mode.feature:68 3338s May 17 20:12:41 Given I kill postgres0 # features/steps/basic_replication.py:34 3339s May 17 20:12:42 And I shut down postmaster on postgres0 # features/steps/basic_replication.py:39 3339s May 17 20:12:42 waiting for server to shut down.... done 3339s May 17 20:12:42 server stopped 3339s May 17 20:12:42 And DCS is up # features/steps/dcs_failsafe_mode.py:9 3339s May 17 20:12:42 When I start postgres1 # features/steps/basic_replication.py:8 3342s May 17 20:12:45 Then "members/postgres1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 3342s May 17 20:12:45 And postgres1 role is the primary after 25 seconds # features/steps/basic_replication.py:105 3343s May 17 20:12:46 3343s May 17 20:12:46 @dcs-failsafe 3343s May 17 20:12:46 Scenario: scale to three-node cluster # features/dcs_failsafe_mode.feature:77 3343s May 17 20:12:46 Given I start postgres0 # features/steps/basic_replication.py:8 3348s May 17 20:12:51 And I start postgres2 # features/steps/basic_replication.py:8 3353s May 17 20:12:56 Then "members/postgres2" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 3353s May 17 20:12:56 And "members/postgres0" key in DCS has state=running after 20 seconds # features/steps/cascading_replication.py:23 3353s May 17 20:12:56 And Response on GET http://127.0.0.1:8008/failsafe contains postgres2 after 10 seconds # features/steps/patroni_api.py:156 3353s May 17 20:12:56 And replication works from postgres1 to postgres0 after 10 seconds # features/steps/basic_replication.py:112 3354s May 17 20:12:57 And replication works from postgres1 to postgres2 after 10 seconds # features/steps/basic_replication.py:112 3356s May 17 20:12:59 3356s May 17 20:12:59 @dcs-failsafe @slot-advance 3356s May 17 20:12:59 Scenario: make sure permanent slots exist on replicas # features/dcs_failsafe_mode.feature:88 3356s May 17 20:12:59 Given I issue a PATCH request to http://127.0.0.1:8009/config with {"slots":{"dcs_slot_0":null,"dcs_slot_2":{"type":"logical","database":"postgres","plugin":"test_decoding"}}} # features/steps/patroni_api.py:71 3356s May 17 20:12:59 Then logical slot dcs_slot_2 is in sync between postgres1 and postgres0 after 20 seconds # features/steps/slots.py:51 3360s May 17 20:13:03 And logical slot dcs_slot_2 is in sync between postgres1 and postgres2 after 20 seconds # features/steps/slots.py:51 3361s May 17 20:13:04 When I get all changes from physical slot dcs_slot_1 on postgres1 # features/steps/slots.py:75 3361s May 17 20:13:04 Then physical slot dcs_slot_1 is in sync between postgres1 and postgres0 after 10 seconds # features/steps/slots.py:51 3363s May 17 20:13:06 And physical slot dcs_slot_1 is in sync between postgres1 and postgres2 after 10 seconds # features/steps/slots.py:51 3363s May 17 20:13:06 And physical slot postgres0 is in sync between postgres1 and postgres2 after 10 seconds # features/steps/slots.py:51 3363s May 17 20:13:06 3363s May 17 20:13:06 @dcs-failsafe 3363s May 17 20:13:06 Scenario: check three-node cluster is functioning while DCS is down # features/dcs_failsafe_mode.feature:98 3363s May 17 20:13:06 Given DCS is down # features/steps/dcs_failsafe_mode.py:4 3363s May 17 20:13:06 Then Response on GET http://127.0.0.1:8009/primary contains failsafe_mode_is_active after 12 seconds # features/steps/patroni_api.py:156 3367s May 17 20:13:10 Then postgres1 role is the primary after 10 seconds # features/steps/basic_replication.py:105 3367s May 17 20:13:10 And postgres0 role is the replica after 2 seconds # features/steps/basic_replication.py:105 3367s May 17 20:13:10 And postgres2 role is the replica after 2 seconds # features/steps/basic_replication.py:105 3367s May 17 20:13:10 3367s May 17 20:13:10 @dcs-failsafe @slot-advance 3367s May 17 20:13:10 Scenario: check that permanent slots are in sync between nodes while DCS is down # features/dcs_failsafe_mode.feature:107 3367s May 17 20:13:10 Given replication works from postgres1 to postgres0 after 10 seconds # features/steps/basic_replication.py:112 3367s May 17 20:13:10 And replication works from postgres1 to postgres2 after 10 seconds # features/steps/basic_replication.py:112 3368s May 17 20:13:11 When I get all changes from logical slot dcs_slot_2 on postgres1 # features/steps/slots.py:70 3368s May 17 20:13:11 And I get all changes from physical slot dcs_slot_1 on postgres1 # features/steps/slots.py:75 3368s May 17 20:13:11 Then logical slot dcs_slot_2 is in sync between postgres1 and postgres0 after 20 seconds # features/steps/slots.py:51 3374s May 17 20:13:17 And logical slot dcs_slot_2 is in sync between postgres1 and postgres2 after 20 seconds # features/steps/slots.py:51 3374s May 17 20:13:17 And physical slot dcs_slot_1 is in sync between postgres1 and postgres0 after 10 seconds # features/steps/slots.py:51 3374s May 17 20:13:17 And physical slot dcs_slot_1 is in sync between postgres1 and postgres2 after 10 seconds # features/steps/slots.py:51 3374s May 17 20:13:17 And physical slot postgres0 is in sync between postgres1 and postgres2 after 10 seconds # features/steps/slots.py:51 3387s May 17 20:13:30 3387s May 17 20:13:30 Feature: ignored slots # features/ignored_slots.feature:1 3387s May 17 20:13:30 3387s May 17 20:13:30 Scenario: check ignored slots aren't removed on failover/switchover # features/ignored_slots.feature:2 3387s May 17 20:13:30 Given I start postgres1 # features/steps/basic_replication.py:8 3390s May 17 20:13:33 Then postgres1 is a leader after 10 seconds # features/steps/patroni_api.py:29 3390s May 17 20:13:33 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 3390s May 17 20:13:33 When I issue a PATCH request to http://127.0.0.1:8009/config with {"ignore_slots": [{"name": "unmanaged_slot_0", "database": "postgres", "plugin": "test_decoding", "type": "logical"}, {"name": "unmanaged_slot_1", "database": "postgres", "plugin": "test_decoding"}, {"name": "unmanaged_slot_2", "database": "postgres"}, {"name": "unmanaged_slot_3"}], "postgresql": {"parameters": {"wal_level": "logical"}}} # features/steps/patroni_api.py:71 3390s May 17 20:13:33 Then I receive a response code 200 # features/steps/patroni_api.py:98 3390s May 17 20:13:33 And Response on GET http://127.0.0.1:8009/config contains ignore_slots after 10 seconds # features/steps/patroni_api.py:156 3390s May 17 20:13:33 When I shut down postgres1 # features/steps/basic_replication.py:29 3392s May 17 20:13:35 And I start postgres1 # features/steps/basic_replication.py:8 3395s May 17 20:13:38 Then postgres1 is a leader after 10 seconds # features/steps/patroni_api.py:29 3397s May 17 20:13:40 And "members/postgres1" key in DCS has role=master after 10 seconds # features/steps/cascading_replication.py:23 3398s May 17 20:13:41 And postgres1 role is the primary after 20 seconds # features/steps/basic_replication.py:105 3398s May 17 20:13:41 When I create a logical replication slot unmanaged_slot_0 on postgres1 with the test_decoding plugin # features/steps/slots.py:8 3398s May 17 20:13:41 And I create a logical replication slot unmanaged_slot_1 on postgres1 with the test_decoding plugin # features/steps/slots.py:8 3398s May 17 20:13:41 And I create a logical replication slot unmanaged_slot_2 on postgres1 with the test_decoding plugin # features/steps/slots.py:8 3398s May 17 20:13:41 And I create a logical replication slot unmanaged_slot_3 on postgres1 with the test_decoding plugin # features/steps/slots.py:8 3398s May 17 20:13:41 And I create a logical replication slot dummy_slot on postgres1 with the test_decoding plugin # features/steps/slots.py:8 3398s May 17 20:13:41 Then postgres1 has a logical replication slot named unmanaged_slot_0 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 3398s May 17 20:13:41 And postgres1 has a logical replication slot named unmanaged_slot_1 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 3398s May 17 20:13:41 And postgres1 has a logical replication slot named unmanaged_slot_2 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 3398s May 17 20:13:41 And postgres1 has a logical replication slot named unmanaged_slot_3 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 3398s May 17 20:13:41 When I start postgres0 # features/steps/basic_replication.py:8 3401s May 17 20:13:44 Then "members/postgres0" key in DCS has role=replica after 10 seconds # features/steps/cascading_replication.py:23 3402s May 17 20:13:45 And postgres0 role is the secondary after 20 seconds # features/steps/basic_replication.py:105 3402s May 17 20:13:45 And replication works from postgres1 to postgres0 after 20 seconds # features/steps/basic_replication.py:112 3403s May 17 20:13:46 When I shut down postgres1 # features/steps/basic_replication.py:29 3405s May 17 20:13:48 Then "members/postgres0" key in DCS has role=master after 10 seconds # features/steps/cascading_replication.py:23 3406s May 17 20:13:49 When I start postgres1 # features/steps/basic_replication.py:8 3409s May 17 20:13:52 Then postgres1 role is the secondary after 20 seconds # features/steps/basic_replication.py:105 3409s May 17 20:13:52 And "members/postgres1" key in DCS has role=replica after 10 seconds # features/steps/cascading_replication.py:23 3409s May 17 20:13:52 And I sleep for 2 seconds # features/steps/patroni_api.py:39 3411s May 17 20:13:54 And postgres1 has a logical replication slot named unmanaged_slot_0 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 3411s May 17 20:13:54 And postgres1 has a logical replication slot named unmanaged_slot_1 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 3411s May 17 20:13:54 And postgres1 has a logical replication slot named unmanaged_slot_2 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 3411s May 17 20:13:54 And postgres1 has a logical replication slot named unmanaged_slot_3 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 3411s May 17 20:13:54 And postgres1 does not have a replication slot named dummy_slot # features/steps/slots.py:40 3411s May 17 20:13:54 When I shut down postgres0 # features/steps/basic_replication.py:29 3413s May 17 20:13:56 Then "members/postgres1" key in DCS has role=master after 10 seconds # features/steps/cascading_replication.py:23 3414s May 17 20:13:57 And postgres1 has a logical replication slot named unmanaged_slot_0 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 3414s May 17 20:13:57 And postgres1 has a logical replication slot named unmanaged_slot_1 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 3414s May 17 20:13:57 And postgres1 has a logical replication slot named unmanaged_slot_2 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 3414s May 17 20:13:57 And postgres1 has a logical replication slot named unmanaged_slot_3 with the test_decoding plugin after 2 seconds # features/steps/slots.py:19 3423s May 17 20:14:06 3423s May 17 20:14:06 Feature: nostream node # features/nostream_node.feature:1 3423s May 17 20:14:06 3423s May 17 20:14:06 Scenario: check nostream node is recovering from archive # features/nostream_node.feature:3 3423s May 17 20:14:06 When I start postgres0 # features/steps/basic_replication.py:8 3432s May 17 20:14:15 And I configure and start postgres1 with a tag nostream true # features/steps/cascading_replication.py:7 3435s May 17 20:14:18 Then "members/postgres1" key in DCS has replication_state=in archive recovery after 10 seconds # features/steps/cascading_replication.py:23 3436s May 17 20:14:19 And replication works from postgres0 to postgres1 after 30 seconds # features/steps/basic_replication.py:112 3441s May 17 20:14:24 3441s May 17 20:14:24 @slot-advance 3441s May 17 20:14:24 Scenario: check permanent logical replication slots are not copied # features/nostream_node.feature:10 3441s May 17 20:14:24 When I issue a PATCH request to http://127.0.0.1:8008/config with {"postgresql": {"parameters": {"wal_level": "logical"}}, "slots":{"test_logical":{"type":"logical","database":"postgres","plugin":"test_decoding"}}} # features/steps/patroni_api.py:71 3441s May 17 20:14:24 Then I receive a response code 200 # features/steps/patroni_api.py:98 3441s May 17 20:14:24 When I run patronictl.py restart batman postgres0 --force # features/steps/patroni_api.py:86 3443s May 17 20:14:26 Then postgres0 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:19 3444s May 17 20:14:27 When I configure and start postgres2 with a tag replicatefrom postgres1 # features/steps/cascading_replication.py:7 3447s May 17 20:14:30 Then "members/postgres2" key in DCS has replication_state=streaming after 10 seconds # features/steps/cascading_replication.py:23 3448s May 17 20:14:31 And postgres1 does not have a replication slot named test_logical # features/steps/slots.py:40 3448s May 17 20:14:31 And postgres2 does not have a replication slot named test_logical # features/steps/slots.py:40 3464s May 17 20:14:47 3464s May 17 20:14:47 Feature: patroni api # features/patroni_api.feature:1 3464s May 17 20:14:47 We should check that patroni correctly responds to valid and not-valid API requests. 3464s May 17 20:14:47 Scenario: check API requests on a stand-alone server # features/patroni_api.feature:4 3464s May 17 20:14:47 Given I start postgres0 # features/steps/basic_replication.py:8 3467s May 17 20:14:50 And postgres0 is a leader after 10 seconds # features/steps/patroni_api.py:29 3467s May 17 20:14:50 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:61 3467s May 17 20:14:50 Then I receive a response code 200 # features/steps/patroni_api.py:98 3467s May 17 20:14:50 And I receive a response state running # features/steps/patroni_api.py:98 3467s May 17 20:14:50 And I receive a response role master # features/steps/patroni_api.py:98 3467s May 17 20:14:50 When I issue a GET request to http://127.0.0.1:8008/standby_leader # features/steps/patroni_api.py:61 3467s May 17 20:14:50 Then I receive a response code 503 # features/steps/patroni_api.py:98 3467s May 17 20:14:50 When I issue a GET request to http://127.0.0.1:8008/health # features/steps/patroni_api.py:61 3467s May 17 20:14:50 Then I receive a response code 200 # features/steps/patroni_api.py:98 3467s May 17 20:14:50 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:61 3467s May 17 20:14:50 Then I receive a response code 503 # features/steps/patroni_api.py:98 3467s May 17 20:14:50 When I issue a POST request to http://127.0.0.1:8008/reinitialize with {"force": true} # features/steps/patroni_api.py:71 3467s May 17 20:14:50 Then I receive a response code 503 # features/steps/patroni_api.py:98 3467s May 17 20:14:50 And I receive a response text I am the leader, can not reinitialize # features/steps/patroni_api.py:98 3467s May 17 20:14:50 When I run patronictl.py switchover batman --master postgres0 --force # features/steps/patroni_api.py:86 3468s May 17 20:14:51 Then I receive a response returncode 1 # features/steps/patroni_api.py:98 3468s May 17 20:14:51 And I receive a response output "Error: No candidates found to switchover to" # features/steps/patroni_api.py:98 3468s May 17 20:14:51 When I issue a POST request to http://127.0.0.1:8008/switchover with {"leader": "postgres0"} # features/steps/patroni_api.py:71 3468s May 17 20:14:51 Then I receive a response code 412 # features/steps/patroni_api.py:98 3468s May 17 20:14:51 And I receive a response text switchover is not possible: cluster does not have members except leader # features/steps/patroni_api.py:98 3468s May 17 20:14:51 When I issue an empty POST request to http://127.0.0.1:8008/failover # features/steps/patroni_api.py:66 3469s May 17 20:14:52 Then I receive a response code 400 # features/steps/patroni_api.py:98 3469s May 17 20:14:52 When I issue a POST request to http://127.0.0.1:8008/failover with {"foo": "bar"} # features/steps/patroni_api.py:71 3469s May 17 20:14:52 Then I receive a response code 400 # features/steps/patroni_api.py:98 3469s May 17 20:14:52 And I receive a response text "Failover could be performed only to a specific candidate" # features/steps/patroni_api.py:98 3469s May 17 20:14:52 3469s May 17 20:14:52 Scenario: check local configuration reload # features/patroni_api.feature:32 3469s May 17 20:14:52 Given I add tag new_tag new_value to postgres0 config # features/steps/patroni_api.py:137 3469s May 17 20:14:52 And I issue an empty POST request to http://127.0.0.1:8008/reload # features/steps/patroni_api.py:66 3469s May 17 20:14:52 Then I receive a response code 202 # features/steps/patroni_api.py:98 3469s May 17 20:14:52 3469s May 17 20:14:52 Scenario: check dynamic configuration change via DCS # features/patroni_api.feature:37 3469s May 17 20:14:52 Given I issue a PATCH request to http://127.0.0.1:8008/config with {"ttl": 20, "postgresql": {"parameters": {"max_connections": "101"}}} # features/steps/patroni_api.py:71 3469s May 17 20:14:52 Then I receive a response code 200 # features/steps/patroni_api.py:98 3469s May 17 20:14:52 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 11 seconds # features/steps/patroni_api.py:156 3471s May 17 20:14:54 When I issue a GET request to http://127.0.0.1:8008/config # features/steps/patroni_api.py:61 3471s May 17 20:14:54 Then I receive a response code 200 # features/steps/patroni_api.py:98 3471s May 17 20:14:54 And I receive a response ttl 20 # features/steps/patroni_api.py:98 3471s May 17 20:14:54 When I issue a GET request to http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:61 3471s May 17 20:14:54 Then I receive a response code 200 # features/steps/patroni_api.py:98 3471s May 17 20:14:54 And I receive a response tags {'new_tag': 'new_value'} # features/steps/patroni_api.py:98 3471s May 17 20:14:54 And I sleep for 4 seconds # features/steps/patroni_api.py:39 3475s May 17 20:14:58 3475s May 17 20:14:58 Scenario: check the scheduled restart # features/patroni_api.feature:49 3475s May 17 20:14:58 Given I run patronictl.py edit-config -p 'superuser_reserved_connections=6' --force batman # features/steps/patroni_api.py:86 3476s May 17 20:14:59 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 3476s May 17 20:14:59 And I receive a response output "+ superuser_reserved_connections: 6" # features/steps/patroni_api.py:98 3476s May 17 20:14:59 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 5 seconds # features/steps/patroni_api.py:156 3477s May 17 20:15:00 Given I issue a scheduled restart at http://127.0.0.1:8008 in 5 seconds with {"role": "replica"} # features/steps/patroni_api.py:124 3477s May 17 20:15:00 Then I receive a response code 202 # features/steps/patroni_api.py:98 3477s May 17 20:15:00 And I sleep for 8 seconds # features/steps/patroni_api.py:39 3485s May 17 20:15:08 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 10 seconds # features/steps/patroni_api.py:156 3485s May 17 20:15:08 Given I issue a scheduled restart at http://127.0.0.1:8008 in 5 seconds with {"restart_pending": "True"} # features/steps/patroni_api.py:124 3485s May 17 20:15:08 Then I receive a response code 202 # features/steps/patroni_api.py:98 3485s May 17 20:15:08 And Response on GET http://127.0.0.1:8008/patroni does not contain pending_restart after 10 seconds # features/steps/patroni_api.py:171 3492s May 17 20:15:15 And postgres0 role is the primary after 10 seconds # features/steps/basic_replication.py:105 3493s May 17 20:15:16 3493s May 17 20:15:16 Scenario: check API requests for the primary-replica pair in the pause mode # features/patroni_api.feature:63 3493s May 17 20:15:16 Given I start postgres1 # features/steps/basic_replication.py:8 3496s May 17 20:15:19 Then replication works from postgres0 to postgres1 after 20 seconds # features/steps/basic_replication.py:112 3497s May 17 20:15:20 When I run patronictl.py pause batman # features/steps/patroni_api.py:86 3498s May 17 20:15:21 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 3498s May 17 20:15:21 When I kill postmaster on postgres1 # features/steps/basic_replication.py:44 3498s May 17 20:15:21 waiting for server to shut down.... done 3498s May 17 20:15:21 server stopped 3498s May 17 20:15:21 And I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:61 3498s May 17 20:15:21 Then I receive a response code 503 # features/steps/patroni_api.py:98 3498s May 17 20:15:21 And "members/postgres1" key in DCS has state=stopped after 10 seconds # features/steps/cascading_replication.py:23 3499s May 17 20:15:22 When I run patronictl.py restart batman postgres1 --force # features/steps/patroni_api.py:86 3503s May 17 20:15:26 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 3503s May 17 20:15:26 Then replication works from postgres0 to postgres1 after 20 seconds # features/steps/basic_replication.py:112 3504s May 17 20:15:27 And I sleep for 2 seconds # features/steps/patroni_api.py:39 3506s May 17 20:15:29 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:61 3506s May 17 20:15:29 Then I receive a response code 200 # features/steps/patroni_api.py:98 3506s May 17 20:15:29 And I receive a response state running # features/steps/patroni_api.py:98 3506s May 17 20:15:29 And I receive a response role replica # features/steps/patroni_api.py:98 3506s May 17 20:15:29 When I run patronictl.py reinit batman postgres1 --force --wait # features/steps/patroni_api.py:86 3509s May 17 20:15:32 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 3509s May 17 20:15:32 And I receive a response output "Success: reinitialize for member postgres1" # features/steps/patroni_api.py:98 3509s May 17 20:15:32 And postgres1 role is the secondary after 30 seconds # features/steps/basic_replication.py:105 3510s May 17 20:15:33 And replication works from postgres0 to postgres1 after 20 seconds # features/steps/basic_replication.py:112 3510s May 17 20:15:33 When I run patronictl.py restart batman postgres0 --force # features/steps/patroni_api.py:86 3513s May 17 20:15:36 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 3513s May 17 20:15:36 And I receive a response output "Success: restart on member postgres0" # features/steps/patroni_api.py:98 3513s May 17 20:15:36 And postgres0 role is the primary after 5 seconds # features/steps/basic_replication.py:105 3514s May 17 20:15:37 3514s May 17 20:15:37 Scenario: check the switchover via the API in the pause mode # features/patroni_api.feature:90 3514s May 17 20:15:37 Given I issue a POST request to http://127.0.0.1:8008/switchover with {"leader": "postgres0", "candidate": "postgres1"} # features/steps/patroni_api.py:71 3516s May 17 20:15:39 Then I receive a response code 200 # features/steps/patroni_api.py:98 3516s May 17 20:15:39 And postgres1 is a leader after 5 seconds # features/steps/patroni_api.py:29 3516s May 17 20:15:39 And postgres1 role is the primary after 10 seconds # features/steps/basic_replication.py:105 3516s May 17 20:15:39 And postgres0 role is the secondary after 10 seconds # features/steps/basic_replication.py:105 3521s May 17 20:15:44 And replication works from postgres1 to postgres0 after 20 seconds # features/steps/basic_replication.py:112 3521s May 17 20:15:44 And "members/postgres0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 3522s May 17 20:15:45 When I issue a GET request to http://127.0.0.1:8008/primary # features/steps/patroni_api.py:61 3522s May 17 20:15:45 Then I receive a response code 503 # features/steps/patroni_api.py:98 3522s May 17 20:15:45 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:61 3522s May 17 20:15:45 Then I receive a response code 200 # features/steps/patroni_api.py:98 3522s May 17 20:15:45 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:61 3522s May 17 20:15:45 Then I receive a response code 200 # features/steps/patroni_api.py:98 3522s May 17 20:15:45 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:61 3522s May 17 20:15:45 Then I receive a response code 503 # features/steps/patroni_api.py:98 3522s May 17 20:15:45 3522s May 17 20:15:45 Scenario: check the scheduled switchover # features/patroni_api.feature:107 3522s May 17 20:15:45 Given I issue a scheduled switchover from postgres1 to postgres0 in 10 seconds # features/steps/patroni_api.py:117 3524s May 17 20:15:47 Then I receive a response returncode 1 # features/steps/patroni_api.py:98 3524s May 17 20:15:47 And I receive a response output "Can't schedule switchover in the paused state" # features/steps/patroni_api.py:98 3524s May 17 20:15:47 When I run patronictl.py resume batman # features/steps/patroni_api.py:86 3525s May 17 20:15:48 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 3525s May 17 20:15:48 Given I issue a scheduled switchover from postgres1 to postgres0 in 10 seconds # features/steps/patroni_api.py:117 3527s May 17 20:15:50 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 3527s May 17 20:15:50 And postgres0 is a leader after 20 seconds # features/steps/patroni_api.py:29 3537s May 17 20:16:00 And postgres0 role is the primary after 10 seconds # features/steps/basic_replication.py:105 3537s May 17 20:16:00 And postgres1 role is the secondary after 10 seconds # features/steps/basic_replication.py:105 3540s May 17 20:16:03 And replication works from postgres0 to postgres1 after 25 seconds # features/steps/basic_replication.py:112 3540s May 17 20:16:03 And "members/postgres1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 3541s May 17 20:16:04 When I issue a GET request to http://127.0.0.1:8008/primary # features/steps/patroni_api.py:61 3541s May 17 20:16:04 Then I receive a response code 200 # features/steps/patroni_api.py:98 3541s May 17 20:16:04 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:61 3541s May 17 20:16:04 Then I receive a response code 503 # features/steps/patroni_api.py:98 3541s May 17 20:16:04 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:61 3541s May 17 20:16:04 Then I receive a response code 503 # features/steps/patroni_api.py:98 3541s May 17 20:16:04 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:61 3541s May 17 20:16:04 Then I receive a response code 200 # features/steps/patroni_api.py:98 3551s May 17 20:16:14 3551s May 17 20:16:14 Feature: permanent slots # features/permanent_slots.feature:1 3551s May 17 20:16:14 3551s May 17 20:16:14 Scenario: check that physical permanent slots are created # features/permanent_slots.feature:2 3551s May 17 20:16:14 Given I start postgres0 # features/steps/basic_replication.py:8 3560s May 17 20:16:23 Then postgres0 is a leader after 10 seconds # features/steps/patroni_api.py:29 3561s May 17 20:16:24 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 3561s May 17 20:16:24 When I issue a PATCH request to http://127.0.0.1:8008/config with {"slots":{"test_physical":0,"postgres0":0,"postgres1":0,"postgres3":0},"postgresql":{"parameters":{"wal_level":"logical"}}} # features/steps/patroni_api.py:71 3561s May 17 20:16:24 Then I receive a response code 200 # features/steps/patroni_api.py:98 3561s May 17 20:16:24 And Response on GET http://127.0.0.1:8008/config contains slots after 10 seconds # features/steps/patroni_api.py:156 3562s May 17 20:16:25 When I start postgres1 # features/steps/basic_replication.py:8 3571s May 17 20:16:34 And I start postgres2 # features/steps/basic_replication.py:8 3574s May 17 20:16:37 And I configure and start postgres3 with a tag replicatefrom postgres2 # features/steps/cascading_replication.py:7 3577s May 17 20:16:40 Then postgres0 has a physical replication slot named test_physical after 10 seconds # features/steps/slots.py:80 3577s May 17 20:16:40 And postgres0 has a physical replication slot named postgres1 after 10 seconds # features/steps/slots.py:80 3577s May 17 20:16:40 And postgres0 has a physical replication slot named postgres2 after 10 seconds # features/steps/slots.py:80 3577s May 17 20:16:40 And postgres2 has a physical replication slot named postgres3 after 10 seconds # features/steps/slots.py:80 3577s May 17 20:16:40 3577s May 17 20:16:40 @slot-advance 3577s May 17 20:16:40 Scenario: check that logical permanent slots are created # features/permanent_slots.feature:18 3577s May 17 20:16:40 Given I run patronictl.py restart batman postgres0 --force # features/steps/patroni_api.py:86 3580s May 17 20:16:43 And I issue a PATCH request to http://127.0.0.1:8008/config with {"slots":{"test_logical":{"type":"logical","database":"postgres","plugin":"test_decoding"}}} # features/steps/patroni_api.py:71 3580s May 17 20:16:43 Then postgres0 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:19 3581s May 17 20:16:44 3581s May 17 20:16:44 @slot-advance 3581s May 17 20:16:44 Scenario: check that permanent slots are created on replicas # features/permanent_slots.feature:24 3581s May 17 20:16:44 Given postgres1 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:19 3584s May 17 20:16:47 Then Logical slot test_logical is in sync between postgres0 and postgres1 after 10 seconds # features/steps/slots.py:51 3584s May 17 20:16:47 And Logical slot test_logical is in sync between postgres0 and postgres2 after 10 seconds # features/steps/slots.py:51 3585s May 17 20:16:48 And Logical slot test_logical is in sync between postgres0 and postgres3 after 10 seconds # features/steps/slots.py:51 3586s May 17 20:16:49 And postgres1 has a physical replication slot named test_physical after 2 seconds # features/steps/slots.py:80 3586s May 17 20:16:49 And postgres2 has a physical replication slot named test_physical after 2 seconds # features/steps/slots.py:80 3586s May 17 20:16:49 And postgres3 has a physical replication slot named test_physical after 2 seconds # features/steps/slots.py:80 3586s May 17 20:16:49 3586s May 17 20:16:49 @slot-advance 3586s May 17 20:16:49 Scenario: check permanent physical slots that match with member names # features/permanent_slots.feature:34 3586s May 17 20:16:49 Given postgres0 has a physical replication slot named postgres3 after 2 seconds # features/steps/slots.py:80 3586s May 17 20:16:49 And postgres1 has a physical replication slot named postgres0 after 2 seconds # features/steps/slots.py:80 3586s May 17 20:16:49 And postgres1 has a physical replication slot named postgres3 after 2 seconds # features/steps/slots.py:80 3586s May 17 20:16:49 And postgres2 has a physical replication slot named postgres0 after 2 seconds # features/steps/slots.py:80 3586s May 17 20:16:49 And postgres2 has a physical replication slot named postgres3 after 2 seconds # features/steps/slots.py:80 3586s May 17 20:16:49 And postgres2 has a physical replication slot named postgres1 after 2 seconds # features/steps/slots.py:80 3586s May 17 20:16:49 And postgres1 does not have a replication slot named postgres2 # features/steps/slots.py:40 3586s May 17 20:16:49 And postgres3 does not have a replication slot named postgres2 # features/steps/slots.py:40 3586s May 17 20:16:49 3586s May 17 20:16:49 @slot-advance 3586s May 17 20:16:49 Scenario: check that permanent slots are advanced on replicas # features/permanent_slots.feature:45 3586s May 17 20:16:49 Given I add the table replicate_me to postgres0 # features/steps/basic_replication.py:54 3586s May 17 20:16:49 When I get all changes from logical slot test_logical on postgres0 # features/steps/slots.py:70 3586s May 17 20:16:49 And I get all changes from physical slot test_physical on postgres0 # features/steps/slots.py:75 3586s May 17 20:16:49 Then Logical slot test_logical is in sync between postgres0 and postgres1 after 10 seconds # features/steps/slots.py:51 3588s May 17 20:16:51 And Physical slot test_physical is in sync between postgres0 and postgres1 after 10 seconds # features/steps/slots.py:51 3588s May 17 20:16:51 And Logical slot test_logical is in sync between postgres0 and postgres2 after 10 seconds # features/steps/slots.py:51 3588s May 17 20:16:51 And Physical slot test_physical is in sync between postgres0 and postgres2 after 10 seconds # features/steps/slots.py:51 3588s May 17 20:16:51 And Logical slot test_logical is in sync between postgres0 and postgres3 after 10 seconds # features/steps/slots.py:51 3588s May 17 20:16:51 And Physical slot test_physical is in sync between postgres0 and postgres3 after 10 seconds # features/steps/slots.py:51 3588s May 17 20:16:51 And Physical slot postgres1 is in sync between postgres0 and postgres2 after 10 seconds # features/steps/slots.py:51 3588s May 17 20:16:51 And Physical slot postgres3 is in sync between postgres2 and postgres0 after 20 seconds # features/steps/slots.py:51 3588s May 17 20:16:51 And Physical slot postgres3 is in sync between postgres2 and postgres1 after 10 seconds # features/steps/slots.py:51 3588s May 17 20:16:51 And postgres1 does not have a replication slot named postgres2 # features/steps/slots.py:40 3588s May 17 20:16:51 And postgres3 does not have a replication slot named postgres2 # features/steps/slots.py:40 3588s May 17 20:16:51 3588s May 17 20:16:51 @slot-advance 3588s May 17 20:16:51 Scenario: check that only permanent slots are written to the /status key # features/permanent_slots.feature:62 3588s May 17 20:16:51 Given "status" key in DCS has test_physical in slots # features/steps/slots.py:96 3588s May 17 20:16:51 And "status" key in DCS has postgres0 in slots # features/steps/slots.py:96 3588s May 17 20:16:51 And "status" key in DCS has postgres1 in slots # features/steps/slots.py:96 3588s May 17 20:16:51 And "status" key in DCS does not have postgres2 in slots # features/steps/slots.py:102 3588s May 17 20:16:51 And "status" key in DCS has postgres3 in slots # features/steps/slots.py:96 3588s May 17 20:16:51 3588s May 17 20:16:51 Scenario: check permanent physical replication slot after failover # features/permanent_slots.feature:69 3588s May 17 20:16:51 Given I shut down postgres3 # features/steps/basic_replication.py:29 3589s May 17 20:16:52 And I shut down postgres2 # features/steps/basic_replication.py:29 3590s May 17 20:16:53 And I shut down postgres0 # features/steps/basic_replication.py:29 3592s May 17 20:16:55 Then postgres1 has a physical replication slot named test_physical after 10 seconds # features/steps/slots.py:80 3592s May 17 20:16:55 And postgres1 has a physical replication slot named postgres0 after 10 seconds # features/steps/slots.py:80 3592s May 17 20:16:55 And postgres1 has a physical replication slot named postgres3 after 10 seconds # features/steps/slots.py:80 3604s May 17 20:17:07 3604s May 17 20:17:07 Feature: priority replication # features/priority_failover.feature:1 3604s May 17 20:17:07 We should check that we can give nodes priority during failover 3604s May 17 20:17:07 Scenario: check failover priority 0 prevents leaderships # features/priority_failover.feature:4 3604s May 17 20:17:07 Given I configure and start postgres0 with a tag failover_priority 1 # features/steps/cascading_replication.py:7 3613s May 17 20:17:16 And I configure and start postgres1 with a tag failover_priority 0 # features/steps/cascading_replication.py:7 3622s May 17 20:17:25 Then replication works from postgres0 to postgres1 after 20 seconds # features/steps/basic_replication.py:112 3623s May 17 20:17:26 When I shut down postgres0 # features/steps/basic_replication.py:29 3625s May 17 20:17:28 And there is one of ["following a different leader because I am not allowed to promote"] INFO in the postgres1 patroni log after 5 seconds # features/steps/basic_replication.py:121 3627s May 17 20:17:30 Then postgres1 role is the secondary after 10 seconds # features/steps/basic_replication.py:105 3627s May 17 20:17:30 When I start postgres0 # features/steps/basic_replication.py:8 3630s May 17 20:17:33 Then postgres0 role is the primary after 10 seconds # features/steps/basic_replication.py:105 3633s May 17 20:17:36 3633s May 17 20:17:36 Scenario: check higher failover priority is respected # features/priority_failover.feature:14 3633s May 17 20:17:36 Given I configure and start postgres2 with a tag failover_priority 1 # features/steps/cascading_replication.py:7 3642s May 17 20:17:45 And I configure and start postgres3 with a tag failover_priority 2 # features/steps/cascading_replication.py:7 3645s May 17 20:17:48 Then replication works from postgres0 to postgres2 after 20 seconds # features/steps/basic_replication.py:112 3646s May 17 20:17:49 And replication works from postgres0 to postgres3 after 20 seconds # features/steps/basic_replication.py:112 3647s May 17 20:17:50 When I shut down postgres0 # features/steps/basic_replication.py:29 3649s May 17 20:17:52 Then postgres3 role is the primary after 10 seconds # features/steps/basic_replication.py:105 3649s May 17 20:17:52 And there is one of ["postgres3 has equally tolerable WAL position and priority 2, while this node has priority 1","Wal position of postgres3 is ahead of my wal position"] INFO in the postgres2 patroni log after 5 seconds # features/steps/basic_replication.py:121 3649s May 17 20:17:52 3649s May 17 20:17:52 Scenario: check conflicting configuration handling # features/priority_failover.feature:23 3649s May 17 20:17:52 When I set nofailover tag in postgres2 config # features/steps/patroni_api.py:131 3649s May 17 20:17:52 And I issue an empty POST request to http://127.0.0.1:8010/reload # features/steps/patroni_api.py:66 3649s May 17 20:17:52 Then I receive a response code 202 # features/steps/patroni_api.py:98 3649s May 17 20:17:52 And there is one of ["Conflicting configuration between nofailover: True and failover_priority: 1. Defaulting to nofailover: True"] WARNING in the postgres2 patroni log after 5 seconds # features/steps/basic_replication.py:121 3650s May 17 20:17:53 And "members/postgres2" key in DCS has tags={'failover_priority': '1', 'nofailover': True} after 10 seconds # features/steps/cascading_replication.py:23 3651s May 17 20:17:54 When I issue a POST request to http://127.0.0.1:8010/failover with {"candidate": "postgres2"} # features/steps/patroni_api.py:71 3652s May 17 20:17:55 Then I receive a response code 412 # features/steps/patroni_api.py:98 3652s May 17 20:17:55 And I receive a response text "failover is not possible: no good candidates have been found" # features/steps/patroni_api.py:98 3652s May 17 20:17:55 When I reset nofailover tag in postgres1 config # features/steps/patroni_api.py:131 3652s May 17 20:17:55 And I issue an empty POST request to http://127.0.0.1:8009/reload # features/steps/patroni_api.py:66 3652s May 17 20:17:55 Then I receive a response code 202 # features/steps/patroni_api.py:98 3652s May 17 20:17:55 And there is one of ["Conflicting configuration between nofailover: False and failover_priority: 0. Defaulting to nofailover: False"] WARNING in the postgres1 patroni log after 5 seconds # features/steps/basic_replication.py:121 3654s May 17 20:17:57 And "members/postgres1" key in DCS has tags={'failover_priority': '0', 'nofailover': False} after 10 seconds # features/steps/cascading_replication.py:23 3655s May 17 20:17:58 And I issue a POST request to http://127.0.0.1:8009/failover with {"candidate": "postgres1"} # features/steps/patroni_api.py:71 3658s May 17 20:18:01 Then I receive a response code 200 # features/steps/patroni_api.py:98 3658s May 17 20:18:01 And postgres1 role is the primary after 10 seconds # features/steps/basic_replication.py:105 3670s May 17 20:18:13 3670s May 17 20:18:13 Feature: recovery # features/recovery.feature:1 3670s May 17 20:18:13 We want to check that crashed postgres is started back 3670s May 17 20:18:13 Scenario: check that timeline is not incremented when primary is started after crash # features/recovery.feature:4 3670s May 17 20:18:13 Given I start postgres0 # features/steps/basic_replication.py:8 3679s May 17 20:18:22 Then postgres0 is a leader after 10 seconds # features/steps/patroni_api.py:29 3679s May 17 20:18:22 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 3679s May 17 20:18:22 When I start postgres1 # features/steps/basic_replication.py:8 3682s May 17 20:18:25 And I add the table foo to postgres0 # features/steps/basic_replication.py:54 3683s May 17 20:18:26 Then table foo is present on postgres1 after 20 seconds # features/steps/basic_replication.py:93 3684s May 17 20:18:27 When I kill postmaster on postgres0 # features/steps/basic_replication.py:44 3684s May 17 20:18:27 waiting for server to shut down.... done 3684s May 17 20:18:27 server stopped 3684s May 17 20:18:27 Then postgres0 role is the primary after 10 seconds # features/steps/basic_replication.py:105 3686s May 17 20:18:29 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:61 3686s May 17 20:18:29 Then I receive a response code 200 # features/steps/patroni_api.py:98 3686s May 17 20:18:29 And I receive a response role master # features/steps/patroni_api.py:98 3686s May 17 20:18:29 And I receive a response timeline 1 # features/steps/patroni_api.py:98 3686s May 17 20:18:29 And "members/postgres0" key in DCS has state=running after 12 seconds # features/steps/cascading_replication.py:23 3687s May 17 20:18:30 And replication works from postgres0 to postgres1 after 15 seconds # features/steps/basic_replication.py:112 3690s May 17 20:18:33 3690s May 17 20:18:33 Scenario: check immediate failover when master_start_timeout=0 # features/recovery.feature:20 3690s May 17 20:18:33 Given I issue a PATCH request to http://127.0.0.1:8008/config with {"master_start_timeout": 0} # features/steps/patroni_api.py:71 3690s May 17 20:18:33 Then I receive a response code 200 # features/steps/patroni_api.py:98 3690s May 17 20:18:33 And Response on GET http://127.0.0.1:8008/config contains master_start_timeout after 10 seconds # features/steps/patroni_api.py:156 3690s May 17 20:18:33 When I kill postmaster on postgres0 # features/steps/basic_replication.py:44 3690s May 17 20:18:33 waiting for server to shut down.... done 3690s May 17 20:18:33 server stopped 3690s May 17 20:18:33 Then postgres1 is a leader after 10 seconds # features/steps/patroni_api.py:29 3692s May 17 20:18:35 And postgres1 role is the primary after 10 seconds # features/steps/basic_replication.py:105 3702s May 17 20:18:45 3702s May 17 20:18:45 Feature: standby cluster # features/standby_cluster.feature:1 3702s May 17 20:18:45 3702s May 17 20:18:45 Scenario: prepare the cluster with logical slots # features/standby_cluster.feature:2 3702s May 17 20:18:45 Given I start postgres1 # features/steps/basic_replication.py:8 3705s May 17 20:18:48 Then postgres1 is a leader after 10 seconds # features/steps/patroni_api.py:29 3705s May 17 20:18:48 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 3705s May 17 20:18:48 When I issue a PATCH request to http://127.0.0.1:8009/config with {"slots": {"pm_1": {"type": "physical"}}, "postgresql": {"parameters": {"wal_level": "logical"}}} # features/steps/patroni_api.py:71 3706s May 17 20:18:49 Then I receive a response code 200 # features/steps/patroni_api.py:98 3706s May 17 20:18:49 And Response on GET http://127.0.0.1:8009/config contains slots after 10 seconds # features/steps/patroni_api.py:156 3706s May 17 20:18:49 And I sleep for 3 seconds # features/steps/patroni_api.py:39 3709s May 17 20:18:52 When I issue a PATCH request to http://127.0.0.1:8009/config with {"slots": {"test_logical": {"type": "logical", "database": "postgres", "plugin": "test_decoding"}}} # features/steps/patroni_api.py:71 3709s May 17 20:18:52 Then I receive a response code 200 # features/steps/patroni_api.py:98 3709s May 17 20:18:52 And I do a backup of postgres1 # features/steps/custom_bootstrap.py:25 3709s May 17 20:18:52 When I start postgres0 # features/steps/basic_replication.py:8 3712s May 17 20:18:55 Then "members/postgres0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 3713s May 17 20:18:56 And replication works from postgres1 to postgres0 after 15 seconds # features/steps/basic_replication.py:112 3714s May 17 20:18:57 When I issue a GET request to http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:61 3714s May 17 20:18:57 Then I receive a response code 200 # features/steps/patroni_api.py:98 3714s May 17 20:18:57 And I receive a response replication_state streaming # features/steps/patroni_api.py:98 3714s May 17 20:18:57 And "members/postgres0" key in DCS has replication_state=streaming after 10 seconds # features/steps/cascading_replication.py:23 3714s May 17 20:18:57 3714s May 17 20:18:57 @slot-advance 3714s May 17 20:18:57 Scenario: check permanent logical slots are synced to the replica # features/standby_cluster.feature:22 3714s May 17 20:18:57 Given I run patronictl.py restart batman postgres1 --force # features/steps/patroni_api.py:86 3717s May 17 20:19:00 Then Logical slot test_logical is in sync between postgres0 and postgres1 after 10 seconds # features/steps/slots.py:51 3722s May 17 20:19:05 3722s May 17 20:19:05 Scenario: Detach exiting node from the cluster # features/standby_cluster.feature:26 3722s May 17 20:19:05 When I shut down postgres1 # features/steps/basic_replication.py:29 3724s May 17 20:19:07 Then postgres0 is a leader after 10 seconds # features/steps/patroni_api.py:29 3724s May 17 20:19:07 And "members/postgres0" key in DCS has role=master after 5 seconds # features/steps/cascading_replication.py:23 3725s May 17 20:19:08 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:61 3725s May 17 20:19:08 Then I receive a response code 200 # features/steps/patroni_api.py:98 3725s May 17 20:19:08 3725s May 17 20:19:08 Scenario: check replication of a single table in a standby cluster # features/standby_cluster.feature:33 3725s May 17 20:19:08 Given I start postgres1 in a standby cluster batman1 as a clone of postgres0 # features/steps/standby_cluster.py:23 3728s May 17 20:19:11 Then postgres1 is a leader of batman1 after 10 seconds # features/steps/custom_bootstrap.py:16 3731s May 17 20:19:14 When I add the table foo to postgres0 # features/steps/basic_replication.py:54 3731s May 17 20:19:14 Then table foo is present on postgres1 after 20 seconds # features/steps/basic_replication.py:93 3731s May 17 20:19:14 When I issue a GET request to http://127.0.0.1:8009/patroni # features/steps/patroni_api.py:61 3731s May 17 20:19:14 Then I receive a response code 200 # features/steps/patroni_api.py:98 3731s May 17 20:19:14 And I receive a response replication_state streaming # features/steps/patroni_api.py:98 3731s May 17 20:19:14 And I sleep for 3 seconds # features/steps/patroni_api.py:39 3734s May 17 20:19:17 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:61 3734s May 17 20:19:17 Then I receive a response code 503 # features/steps/patroni_api.py:98 3734s May 17 20:19:17 When I issue a GET request to http://127.0.0.1:8009/standby_leader # features/steps/patroni_api.py:61 3734s May 17 20:19:17 Then I receive a response code 200 # features/steps/patroni_api.py:98 3734s May 17 20:19:17 And I receive a response role standby_leader # features/steps/patroni_api.py:98 3734s May 17 20:19:17 And there is a postgres1_cb.log with "on_role_change standby_leader batman1" in postgres1 data directory # features/steps/cascading_replication.py:12 3734s May 17 20:19:17 When I start postgres2 in a cluster batman1 # features/steps/standby_cluster.py:12 3737s May 17 20:19:20 Then postgres2 role is the replica after 24 seconds # features/steps/basic_replication.py:105 3737s May 17 20:19:20 And postgres2 is replicating from postgres1 after 10 seconds # features/steps/standby_cluster.py:52 3738s May 17 20:19:21 And table foo is present on postgres2 after 20 seconds # features/steps/basic_replication.py:93 3738s May 17 20:19:21 When I issue a GET request to http://127.0.0.1:8010/patroni # features/steps/patroni_api.py:61 3738s May 17 20:19:21 Then I receive a response code 200 # features/steps/patroni_api.py:98 3738s May 17 20:19:21 And I receive a response replication_state streaming # features/steps/patroni_api.py:98 3738s May 17 20:19:21 And postgres1 does not have a replication slot named test_logical # features/steps/slots.py:40 3738s May 17 20:19:21 3738s May 17 20:19:21 Scenario: check switchover # features/standby_cluster.feature:57 3738s May 17 20:19:21 Given I run patronictl.py switchover batman1 --force # features/steps/patroni_api.py:86 3742s May 17 20:19:25 Then Status code on GET http://127.0.0.1:8010/standby_leader is 200 after 10 seconds # features/steps/patroni_api.py:142 3742s May 17 20:19:25 And postgres1 is replicating from postgres2 after 32 seconds # features/steps/standby_cluster.py:52 3744s May 17 20:19:27 And there is a postgres2_cb.log with "on_start replica batman1\non_role_change standby_leader batman1" in postgres2 data directory # features/steps/cascading_replication.py:12 3744s May 17 20:19:27 3744s May 17 20:19:27 Scenario: check failover # features/standby_cluster.feature:63 3744s May 17 20:19:27 When I kill postgres2 # features/steps/basic_replication.py:34 3745s May 17 20:19:28 And I kill postmaster on postgres2 # features/steps/basic_replication.py:44 3745s May 17 20:19:28 waiting for server to shut down.... done 3745s May 17 20:19:28 server stopped 3745s May 17 20:19:28 Then postgres1 is replicating from postgres0 after 32 seconds # features/steps/standby_cluster.py:52 3764s May 17 20:19:47 And Status code on GET http://127.0.0.1:8009/standby_leader is 200 after 10 seconds # features/steps/patroni_api.py:142 3764s May 17 20:19:47 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:61 3764s May 17 20:19:47 Then I receive a response code 503 # features/steps/patroni_api.py:98 3764s May 17 20:19:47 And I receive a response role standby_leader # features/steps/patroni_api.py:98 3764s May 17 20:19:47 And replication works from postgres0 to postgres1 after 15 seconds # features/steps/basic_replication.py:112 3765s May 17 20:19:48 And there is a postgres1_cb.log with "on_role_change replica batman1\non_role_change standby_leader batman1" in postgres1 data directory # features/steps/cascading_replication.py:12 3780s May 17 20:20:03 3780s May 17 20:20:03 Feature: watchdog # features/watchdog.feature:1 3780s May 17 20:20:03 Verify that watchdog gets pinged and triggered under appropriate circumstances. 3780s May 17 20:20:03 Scenario: watchdog is opened and pinged # features/watchdog.feature:4 3780s May 17 20:20:03 Given I start postgres0 with watchdog # features/steps/watchdog.py:16 3783s May 17 20:20:06 Then postgres0 is a leader after 10 seconds # features/steps/patroni_api.py:29 3783s May 17 20:20:06 And postgres0 role is the primary after 10 seconds # features/steps/basic_replication.py:105 3783s May 17 20:20:06 And postgres0 watchdog has been pinged after 10 seconds # features/steps/watchdog.py:21 3784s May 17 20:20:07 And postgres0 watchdog has a 15 second timeout # features/steps/watchdog.py:34 3784s May 17 20:20:07 3784s May 17 20:20:07 Scenario: watchdog is reconfigured after global ttl changed # features/watchdog.feature:11 3784s May 17 20:20:07 Given I run patronictl.py edit-config batman -s ttl=30 --force # features/steps/patroni_api.py:86 3786s May 17 20:20:09 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 3786s May 17 20:20:09 And I receive a response output "+ttl: 30" # features/steps/patroni_api.py:98 3786s May 17 20:20:09 When I sleep for 4 seconds # features/steps/patroni_api.py:39 3790s May 17 20:20:13 Then postgres0 watchdog has a 25 second timeout # features/steps/watchdog.py:34 3790s May 17 20:20:13 3790s May 17 20:20:13 Scenario: watchdog is disabled during pause # features/watchdog.feature:18 3790s May 17 20:20:13 Given I run patronictl.py pause batman # features/steps/patroni_api.py:86 3791s May 17 20:20:14 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 3791s May 17 20:20:14 When I sleep for 2 seconds # features/steps/patroni_api.py:39 3793s May 17 20:20:16 Then postgres0 watchdog has been closed # features/steps/watchdog.py:29 3793s May 17 20:20:16 3793s May 17 20:20:16 Scenario: watchdog is opened and pinged after resume # features/watchdog.feature:24 3793s May 17 20:20:16 Given I reset postgres0 watchdog state # features/steps/watchdog.py:39 3793s May 17 20:20:16 And I run patronictl.py resume batman # features/steps/patroni_api.py:86 3795s May 17 20:20:18 Then I receive a response returncode 0 # features/steps/patroni_api.py:98 3795s May 17 20:20:18 And postgres0 watchdog has been pinged after 10 seconds # features/steps/watchdog.py:21 3795s May 17 20:20:18 3795s May 17 20:20:18 Scenario: watchdog is disabled when shutting down # features/watchdog.feature:30 3795s May 17 20:20:18 Given I shut down postgres0 # features/steps/basic_replication.py:29 3797s May 17 20:20:20 Then postgres0 watchdog has been closed # features/steps/watchdog.py:29 3797s May 17 20:20:20 3797s May 17 20:20:20 Scenario: watchdog is triggered if patroni stops responding # features/watchdog.feature:34 3797s May 17 20:20:20 Given I reset postgres0 watchdog state # features/steps/watchdog.py:39 3797s May 17 20:20:20 And I start postgres0 with watchdog # features/steps/watchdog.py:16 3800s May 17 20:20:23 Then postgres0 role is the primary after 10 seconds # features/steps/basic_replication.py:105 3802s May 17 20:20:25 When postgres0 hangs for 30 seconds # features/steps/watchdog.py:52 3802s May 17 20:20:25 Then postgres0 watchdog is triggered after 30 seconds # features/steps/watchdog.py:44 3839s May 17 20:21:02 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.4430.XdaCfcrx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.4433.XJCybjrx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.4479.XiSszygx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.4516.XzbGjBUx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.4583.XqBotgZx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.4629.XMPabrqx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.4699.XsHMVxmx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.4746.XkdgVhNx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.4750.XNMBSHzx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.4839.XrZIKafx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.4944.XTSjRYMx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.4947.XTUakfqx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.4992.XRJShUFx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.5056.XNWUMpyx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.5180.XkxCKnxx 3841s May 17 20:21:04 Skipping duplicate data .coverage.autopkgtest.5184.XphvbKzx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.5187.XKJhIdQx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.5232.XfzVtzRx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.5287.XwCtWsxx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.5377.XvDZYZox 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.5380.XurkgNjx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.5698.XaxALLRx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.5772.XurbCBFx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.5857.XTGCKTzx 3841s May 17 20:21:04 Skipping duplicate data .coverage.autopkgtest.6089.XMkilMtx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.6092.XTokUwqx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.6144.XhnlOQxx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.6206.XLrHKgjx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.6295.XXFNVhLx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.6392.XPrIrFAx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.6396.XygDcUfx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.6440.XtkZneqx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.6506.XSQHwdJx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.6537.XYjctbsx 3841s May 17 20:21:04 Skipping duplicate data .coverage.autopkgtest.6668.XCfMEaIx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.6671.XRJFFayx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.6720.XaUtAUBx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.6737.XuTAxEDx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.6778.XJPcFJax 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.6824.XtnnfjXx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.6830.XQVdcOox 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.6867.XQTmxRHx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.6910.Xyrifszx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.7072.XiqKSIax 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.7075.XRtXTwNx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.7082.XZFPntlx 3841s May 17 20:21:04 Skipping duplicate data .coverage.autopkgtest.7216.XwJmcHmx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.7219.XFioIELx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.7267.XZfTRJTx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.7308.XcDwBWGx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.7352.XgtGriZx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.7396.XJUygwBx 3841s May 17 20:21:04 Skipping duplicate data .coverage.autopkgtest.7568.XuFidevx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.7571.XJMgIeox 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.7614.XytJkUSx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.7685.XVUdTGix 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.7769.XrpkMPlx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.7832.XagtdySx 3841s May 17 20:21:04 Skipping duplicate data .coverage.autopkgtest.8158.XjMhCumx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.8161.XKcPJwqx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.8205.XXIVotzx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.8341.XWgUCLgx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.8346.XKAhgemx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.8408.XcYJUphx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.8462.XBqxpWMx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.8562.XHHcuYAx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.8677.XSXeZsvx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.8804.XbOlrCkx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.8808.XaTgBHhx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.8851.XdfIlQsx 3841s May 17 20:21:04 Skipping duplicate data .coverage.autopkgtest.8854.XVMcSWkx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.8858.XfIbxCwx 3841s May 17 20:21:04 Combined data file .coverage.autopkgtest.8870.XFvJQUCx 3841s May 17 20:21:04 Skipping duplicate data .coverage.autopkgtest.8937.XkbxqBmx 3843s May 17 20:21:06 Name Stmts Miss Cover 3843s May 17 20:21:06 ------------------------------------------------------------------------------------------------------------- 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/_distutils_hack/__init__.py 100 95 5% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/__about__.py 5 0 100% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/__init__.py 3 0 100% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/exceptions.py 26 5 81% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/fernet.py 137 54 61% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/__init__.py 2 0 100% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/_oid.py 126 0 100% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/backends/__init__.py 5 0 100% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/__init__.py 3 0 100% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/aead.py 213 187 12% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/backend.py 919 710 23% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/ciphers.py 125 50 60% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/cmac.py 47 35 26% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/ec.py 150 114 24% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/rsa.py 262 217 17% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/utils.py 35 28 20% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/__init__.py 0 0 100% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/__init__.py 0 0 100% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/_conditional.py 73 32 56% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/binding.py 73 13 82% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/__init__.py 0 0 100% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_asymmetric.py 6 0 100% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_cipheralgorithm.py 18 0 100% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_serialization.py 80 35 56% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/__init__.py 0 0 100% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/dh.py 118 47 60% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/dsa.py 134 57 57% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ec.py 219 56 74% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ed448.py 45 12 73% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ed25519.py 45 12 73% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/padding.py 47 20 57% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/rsa.py 184 106 42% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/types.py 19 0 100% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/utils.py 14 5 64% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/x448.py 43 12 72% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/x25519.py 43 12 72% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/__init__.py 4 0 100% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/algorithms.py 129 30 77% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/base.py 138 57 59% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/modes.py 140 50 64% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/constant_time.py 6 3 50% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/hashes.py 128 20 84% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/hmac.py 6 0 100% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/kdf/__init__.py 7 0 100% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/kdf/pbkdf2.py 27 5 81% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/padding.py 117 27 77% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/__init__.py 5 0 100% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/base.py 22 12 45% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/pkcs12.py 82 49 40% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/ssh.py 761 605 20% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/utils.py 76 23 70% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/x509/__init__.py 70 0 100% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/x509/base.py 458 224 51% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/x509/certificate_transparency.py 42 0 100% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/x509/extensions.py 1038 569 45% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/x509/general_name.py 166 94 43% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/x509/name.py 233 142 39% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/cryptography/x509/oid.py 3 0 100% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/dateutil/__init__.py 5 2 60% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/dateutil/_common.py 25 15 40% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/dateutil/_version.py 11 2 82% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/dateutil/parser/__init__.py 33 4 88% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/dateutil/parser/_parser.py 813 436 46% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/dateutil/parser/isoparser.py 185 150 19% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/dateutil/relativedelta.py 241 206 15% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/dateutil/tz/__init__.py 4 0 100% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/dateutil/tz/_common.py 161 121 25% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/dateutil/tz/_factories.py 49 21 57% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/dateutil/tz/tz.py 800 626 22% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/dateutil/tz/win.py 153 149 3% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/__init__.py 13 2 85% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/__main__.py 199 65 67% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/api.py 770 288 63% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/async_executor.py 96 15 84% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/collections.py 56 6 89% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/config.py 371 98 74% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/config_generator.py 211 153 27% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/daemon.py 76 3 96% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/dcs/__init__.py 637 82 87% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/dcs/raft.py 319 42 87% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/dynamic_loader.py 35 7 80% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/exceptions.py 16 0 100% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/file_perm.py 43 8 81% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/global_config.py 81 0 100% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/ha.py 1244 304 76% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/log.py 215 66 69% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/postgresql/__init__.py 821 167 80% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/postgresql/available_parameters/__init__.py 21 1 95% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/postgresql/bootstrap.py 254 63 75% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/postgresql/callback_executor.py 55 8 85% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/postgresql/cancellable.py 104 41 61% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/postgresql/config.py 822 217 74% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/postgresql/connection.py 75 1 99% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/postgresql/misc.py 41 8 80% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/postgresql/mpp/__init__.py 89 11 88% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/postgresql/postmaster.py 170 85 50% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/postgresql/rewind.py 416 163 61% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/postgresql/slots.py 334 34 90% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/postgresql/sync.py 130 19 85% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/postgresql/validator.py 157 23 85% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/psycopg.py 42 16 62% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/request.py 62 6 90% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/tags.py 38 0 100% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/utils.py 350 123 65% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/validator.py 301 208 31% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/version.py 1 0 100% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/watchdog/__init__.py 2 0 100% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/watchdog/base.py 203 42 79% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/patroni/watchdog/linux.py 135 35 74% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/psutil/__init__.py 951 629 34% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/psutil/_common.py 424 212 50% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/psutil/_compat.py 302 263 13% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/psutil/_pslinux.py 1251 924 26% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/psutil/_psposix.py 96 38 60% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/psycopg2/__init__.py 19 3 84% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/psycopg2/_json.py 64 27 58% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/psycopg2/_range.py 269 172 36% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/psycopg2/errors.py 3 2 33% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/psycopg2/extensions.py 91 25 73% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/pysyncobj/__init__.py 2 0 100% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/pysyncobj/atomic_replace.py 4 0 100% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/pysyncobj/config.py 80 1 99% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/pysyncobj/dns_resolver.py 51 10 80% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/pysyncobj/encryptor.py 17 2 88% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/pysyncobj/fast_queue.py 21 1 95% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/pysyncobj/journal.py 193 37 81% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/pysyncobj/monotonic.py 77 70 9% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/pysyncobj/node.py 49 10 80% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/pysyncobj/pickle.py 52 32 38% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/pysyncobj/pipe_notifier.py 24 2 92% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/pysyncobj/poller.py 87 41 53% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/pysyncobj/serializer.py 166 133 20% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/pysyncobj/syncobj.py 1045 491 53% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/pysyncobj/tcp_connection.py 250 35 86% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/pysyncobj/tcp_server.py 56 12 79% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/pysyncobj/transport.py 266 57 79% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/pysyncobj/utility.py 59 7 88% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/pysyncobj/version.py 1 0 100% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/pysyncobj/win_inet_pton.py 44 31 30% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/six.py 504 250 50% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/urllib3/__init__.py 50 14 72% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/urllib3/_base_connection.py 70 52 26% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/urllib3/_collections.py 234 108 54% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/urllib3/_request_methods.py 53 15 72% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/urllib3/_version.py 2 0 100% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/urllib3/connection.py 324 104 68% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/urllib3/connectionpool.py 347 136 61% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/urllib3/exceptions.py 115 37 68% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/urllib3/fields.py 92 73 21% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/urllib3/filepost.py 37 24 35% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/urllib3/poolmanager.py 233 88 62% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/urllib3/response.py 562 336 40% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/urllib3/util/__init__.py 10 0 100% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/urllib3/util/connection.py 66 9 86% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/urllib3/util/proxy.py 13 6 54% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/urllib3/util/request.py 104 49 53% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/urllib3/util/response.py 32 17 47% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/urllib3/util/retry.py 173 49 72% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/urllib3/util/ssl_.py 177 75 58% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/urllib3/util/ssl_match_hostname.py 66 54 18% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/urllib3/util/ssltransport.py 160 112 30% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/urllib3/util/timeout.py 71 19 73% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/urllib3/util/url.py 205 78 62% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/urllib3/util/util.py 26 9 65% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/urllib3/util/wait.py 49 38 22% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/yaml/__init__.py 165 109 34% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/yaml/composer.py 92 17 82% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/yaml/constructor.py 479 276 42% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/yaml/cyaml.py 46 24 48% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/yaml/dumper.py 23 12 48% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/yaml/emitter.py 838 769 8% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/yaml/error.py 58 42 28% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/yaml/events.py 61 6 90% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/yaml/loader.py 47 24 49% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/yaml/nodes.py 29 7 76% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/yaml/parser.py 352 180 49% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/yaml/reader.py 122 30 75% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/yaml/representer.py 248 176 29% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/yaml/resolver.py 135 76 44% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/yaml/scanner.py 758 415 45% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/yaml/serializer.py 85 70 18% 3843s May 17 20:21:06 /usr/lib/python3/dist-packages/yaml/tokens.py 76 17 78% 3843s May 17 20:21:06 patroni/__init__.py 13 2 85% 3843s May 17 20:21:06 patroni/__main__.py 199 199 0% 3843s May 17 20:21:06 patroni/api.py 770 770 0% 3843s May 17 20:21:06 patroni/async_executor.py 96 69 28% 3843s May 17 20:21:06 patroni/collections.py 56 15 73% 3843s May 17 20:21:06 patroni/config.py 371 189 49% 3843s May 17 20:21:06 patroni/config_generator.py 211 211 0% 3843s May 17 20:21:06 patroni/ctl.py 936 411 56% 3843s May 17 20:21:06 patroni/daemon.py 76 6 92% 3843s May 17 20:21:06 patroni/dcs/__init__.py 637 259 59% 3843s May 17 20:21:06 patroni/dcs/consul.py 485 485 0% 3843s May 17 20:21:06 patroni/dcs/etcd3.py 679 679 0% 3843s May 17 20:21:06 patroni/dcs/etcd.py 603 603 0% 3843s May 17 20:21:06 patroni/dcs/exhibitor.py 61 61 0% 3843s May 17 20:21:06 patroni/dcs/kubernetes.py 938 938 0% 3843s May 17 20:21:06 patroni/dcs/raft.py 319 73 77% 3843s May 17 20:21:06 patroni/dcs/zookeeper.py 288 288 0% 3843s May 17 20:21:06 patroni/dynamic_loader.py 35 7 80% 3843s May 17 20:21:06 patroni/exceptions.py 16 1 94% 3843s May 17 20:21:06 patroni/file_perm.py 43 15 65% 3843s May 17 20:21:06 patroni/global_config.py 81 18 78% 3843s May 17 20:21:06 patroni/ha.py 1244 1244 0% 3843s May 17 20:21:06 patroni/log.py 215 90 58% 3843s May 17 20:21:06 patroni/postgresql/__init__.py 821 651 21% 3843s May 17 20:21:06 patroni/postgresql/available_parameters/__init__.py 21 1 95% 3843s May 17 20:21:06 patroni/postgresql/bootstrap.py 254 224 12% 3843s May 17 20:21:06 patroni/postgresql/callback_executor.py 55 34 38% 3843s May 17 20:21:06 patroni/postgresql/cancellable.py 104 84 19% 3843s May 17 20:21:06 patroni/postgresql/config.py 822 707 14% 3843s May 17 20:21:06 patroni/postgresql/connection.py 75 50 33% 3843s May 17 20:21:06 patroni/postgresql/misc.py 41 29 29% 3843s May 17 20:21:06 patroni/postgresql/mpp/__init__.py 89 21 76% 3843s May 17 20:21:06 patroni/postgresql/mpp/citus.py 259 259 0% 3843s May 17 20:21:06 patroni/postgresql/postmaster.py 170 139 18% 3843s May 17 20:21:06 patroni/postgresql/rewind.py 416 416 0% 3843s May 17 20:21:06 patroni/postgresql/slots.py 334 285 15% 3843s May 17 20:21:06 patroni/postgresql/sync.py 130 96 26% 3843s May 17 20:21:06 patroni/postgresql/validator.py 157 52 67% 3843s May 17 20:21:06 patroni/psycopg.py 42 28 33% 3843s May 17 20:21:06 patroni/raft_controller.py 22 1 95% 3843s May 17 20:21:06 patroni/request.py 62 6 90% 3843s May 17 20:21:06 patroni/scripts/__init__.py 0 0 100% 3843s May 17 20:21:06 patroni/scripts/aws.py 59 59 0% 3843s May 17 20:21:06 patroni/scripts/barman/__init__.py 0 0 100% 3843s May 17 20:21:06 patroni/scripts/barman/cli.py 51 51 0% 3843s May 17 20:21:06 patroni/scripts/barman/config_switch.py 51 51 0% 3843s May 17 20:21:06 patroni/scripts/barman/recover.py 37 37 0% 3843s May 17 20:21:06 patroni/scripts/barman/utils.py 94 94 0% 3843s May 17 20:21:06 patroni/scripts/wale_restore.py 207 207 0% 3843s May 17 20:21:06 patroni/tags.py 38 11 71% 3843s May 17 20:21:06 patroni/utils.py 350 214 39% 3843s May 17 20:21:06 patroni/validator.py 301 215 29% 3843s May 17 20:21:06 patroni/version.py 1 0 100% 3843s May 17 20:21:06 patroni/watchdog/__init__.py 2 2 0% 3843s May 17 20:21:06 patroni/watchdog/base.py 203 203 0% 3843s May 17 20:21:06 patroni/watchdog/linux.py 135 135 0% 3843s May 17 20:21:06 ------------------------------------------------------------------------------------------------------------- 3843s May 17 20:21:06 TOTAL 45640 26230 43% 3843s May 17 20:21:06 12 features passed, 0 failed, 1 skipped 3843s May 17 20:21:06 54 scenarios passed, 0 failed, 6 skipped 3843s May 17 20:21:06 522 steps passed, 0 failed, 63 skipped, 0 undefined 3843s May 17 20:21:06 Took 9m13.890s 3843s ### End 16 acceptance-raft ### 3843s + echo '### End 16 acceptance-raft ###' 3843s + rm -f '/tmp/pgpass?' 3843s ++ id -u 3843s + '[' 1000 -eq 0 ']' 3843s autopkgtest [20:21:06]: test acceptance-raft: -----------------------] 3843s autopkgtest [20:21:06]: test acceptance-raft: - - - - - - - - - - results - - - - - - - - - - 3843s acceptance-raft PASS 3843s autopkgtest [20:21:06]: test test: preparing testbed 4306s autopkgtest [20:28:49]: testbed dpkg architecture: amd64 4306s autopkgtest [20:28:49]: testbed apt version: 2.7.14build2 4306s autopkgtest [20:28:49]: @@@@@@@@@@@@@@@@@@@@ test bed setup 4306s Get:1 http://ftpmaster.internal/ubuntu oracular-proposed InRelease [73.9 kB] 4306s Get:2 http://ftpmaster.internal/ubuntu oracular-proposed/universe Sources [1671 kB] 4306s Get:3 http://ftpmaster.internal/ubuntu oracular-proposed/main Sources [134 kB] 4306s Get:4 http://ftpmaster.internal/ubuntu oracular-proposed/restricted Sources [1964 B] 4306s Get:5 http://ftpmaster.internal/ubuntu oracular-proposed/multiverse Sources [9872 B] 4306s Get:6 http://ftpmaster.internal/ubuntu oracular-proposed/main amd64 Packages [233 kB] 4306s Get:7 http://ftpmaster.internal/ubuntu oracular-proposed/main i386 Packages [194 kB] 4306s Get:8 http://ftpmaster.internal/ubuntu oracular-proposed/restricted amd64 Packages [7700 B] 4306s Get:9 http://ftpmaster.internal/ubuntu oracular-proposed/universe amd64 Packages [1922 kB] 4307s Get:10 http://ftpmaster.internal/ubuntu oracular-proposed/universe i386 Packages [921 kB] 4307s Get:11 http://ftpmaster.internal/ubuntu oracular-proposed/multiverse amd64 Packages [19.7 kB] 4307s Get:12 http://ftpmaster.internal/ubuntu oracular-proposed/multiverse i386 Packages [6324 B] 4307s Fetched 5194 kB in 1s (7445 kB/s) 4307s Reading package lists... 4309s Reading package lists... 4309s Building dependency tree... 4309s Reading state information... 4309s Calculating upgrade... 4310s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 4310s Reading package lists... 4310s Building dependency tree... 4310s Reading state information... 4310s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 4310s Hit:1 http://ftpmaster.internal/ubuntu oracular-proposed InRelease 4310s Hit:2 http://ftpmaster.internal/ubuntu oracular InRelease 4310s Hit:3 http://ftpmaster.internal/ubuntu oracular-updates InRelease 4310s Hit:4 http://ftpmaster.internal/ubuntu oracular-security InRelease 4312s Reading package lists... 4312s Reading package lists... 4312s Building dependency tree... 4312s Reading state information... 4312s Calculating upgrade... 4313s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 4313s Reading package lists... 4313s Building dependency tree... 4313s Reading state information... 4313s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 4314s Reading package lists... 4314s Building dependency tree... 4314s Reading state information... 4315s Starting pkgProblemResolver with broken count: 0 4315s Starting 2 pkgProblemResolver with broken count: 0 4315s Done 4315s The following additional packages will be installed: 4315s fonts-font-awesome fonts-lato libcares2 libev4t64 libjs-jquery 4315s libjs-jquery-hotkeys libjs-jquery-isonscreen libjs-jquery-metadata 4315s libjs-jquery-tablesorter libjs-jquery-throttle-debounce libjs-sphinxdoc 4315s libjs-underscore libpq5 patroni patroni-doc python3-aiohttp 4315s python3-aiosignal python3-async-timeout python3-boto3 python3-botocore 4315s python3-cachetools python3-cdiff python3-click python3-colorama 4315s python3-consul python3-coverage python3-dateutil python3-dnspython 4315s python3-etcd python3-eventlet python3-flake8 python3-frozenlist 4315s python3-gevent python3-google-auth python3-greenlet python3-iniconfig 4315s python3-jmespath python3-kazoo python3-kerberos python3-kubernetes 4315s python3-mccabe python3-mock python3-multidict python3-packaging 4315s python3-pluggy python3-prettytable python3-psutil python3-psycopg2 4315s python3-pure-sasl python3-pyasn1 python3-pyasn1-modules python3-pycodestyle 4315s python3-pyflakes python3-pysyncobj python3-pytest python3-pytest-cov 4315s python3-pyu2f python3-requests-oauthlib python3-responses python3-rsa 4315s python3-s3transfer python3-wcwidth python3-websocket python3-yarl 4315s python3-zope.event python3-zope.interface sphinx-rtd-theme-common 4315s Suggested packages: 4315s postgresql etcd-server | consul | zookeeperd vip-manager haproxy 4315s python3-tornado python3-twisted python-coverage-doc python3-trio 4315s python3-aioquic python3-h2 python3-httpx python3-httpcore etcd 4315s python-eventlet-doc python-gevent-doc python-greenlet-dev 4315s python-greenlet-doc python-kazoo-doc python-mock-doc python-psycopg2-doc 4315s Recommended packages: 4315s javascript-common python3-aiodns pyflakes3 4315s The following NEW packages will be installed: 4315s autopkgtest-satdep fonts-font-awesome fonts-lato libcares2 libev4t64 4315s libjs-jquery libjs-jquery-hotkeys libjs-jquery-isonscreen 4315s libjs-jquery-metadata libjs-jquery-tablesorter 4315s libjs-jquery-throttle-debounce libjs-sphinxdoc libjs-underscore libpq5 4315s patroni patroni-doc python3-aiohttp python3-aiosignal python3-async-timeout 4315s python3-boto3 python3-botocore python3-cachetools python3-cdiff 4315s python3-click python3-colorama python3-consul python3-coverage 4315s python3-dateutil python3-dnspython python3-etcd python3-eventlet 4315s python3-flake8 python3-frozenlist python3-gevent python3-google-auth 4315s python3-greenlet python3-iniconfig python3-jmespath python3-kazoo 4315s python3-kerberos python3-kubernetes python3-mccabe python3-mock 4315s python3-multidict python3-packaging python3-pluggy python3-prettytable 4315s python3-psutil python3-psycopg2 python3-pure-sasl python3-pyasn1 4315s python3-pyasn1-modules python3-pycodestyle python3-pyflakes 4315s python3-pysyncobj python3-pytest python3-pytest-cov python3-pyu2f 4315s python3-requests-oauthlib python3-responses python3-rsa python3-s3transfer 4315s python3-wcwidth python3-websocket python3-yarl python3-zope.event 4315s python3-zope.interface sphinx-rtd-theme-common 4315s 0 upgraded, 68 newly installed, 0 to remove and 0 not upgraded. 4315s Need to get 16.8 MB/16.8 MB of archives. 4315s After this operation, 156 MB of additional disk space will be used. 4315s Get:1 /tmp/autopkgtest.j0Dj5k/7-autopkgtest-satdep.deb autopkgtest-satdep amd64 0 [788 B] 4315s Get:2 http://ftpmaster.internal/ubuntu oracular/main amd64 fonts-lato all 2.015-1 [2781 kB] 4315s Get:3 http://ftpmaster.internal/ubuntu oracular/main amd64 libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 4315s Get:4 http://ftpmaster.internal/ubuntu oracular/universe amd64 libjs-jquery-hotkeys all 0~20130707+git2d51e3a9+dfsg-2ubuntu2 [11.5 kB] 4315s Get:5 http://ftpmaster.internal/ubuntu oracular/main amd64 fonts-font-awesome all 5.0.10+really4.7.0~dfsg-4.1 [516 kB] 4315s Get:6 http://ftpmaster.internal/ubuntu oracular/main amd64 libcares2 amd64 1.27.0-1.0ubuntu1 [73.7 kB] 4315s Get:7 http://ftpmaster.internal/ubuntu oracular/universe amd64 libev4t64 amd64 1:4.33-2.1build1 [31.0 kB] 4315s Get:8 http://ftpmaster.internal/ubuntu oracular/universe amd64 libjs-jquery-metadata all 12-4 [6582 B] 4315s Get:9 http://ftpmaster.internal/ubuntu oracular/universe amd64 libjs-jquery-tablesorter all 1:2.31.3+dfsg1-3 [193 kB] 4315s Get:10 http://ftpmaster.internal/ubuntu oracular/universe amd64 libjs-jquery-throttle-debounce all 1.1+dfsg.1-2 [12.5 kB] 4315s Get:11 http://ftpmaster.internal/ubuntu oracular/main amd64 libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [118 kB] 4315s Get:12 http://ftpmaster.internal/ubuntu oracular/main amd64 libjs-sphinxdoc all 7.2.6-6 [149 kB] 4315s Get:13 http://ftpmaster.internal/ubuntu oracular/main amd64 libpq5 amd64 16.2-1ubuntu4 [138 kB] 4315s Get:14 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-cdiff all 1.0-1.1 [16.4 kB] 4315s Get:15 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-colorama all 0.4.6-4 [32.1 kB] 4315s Get:16 http://ftpmaster.internal/ubuntu oracular-proposed/main amd64 python3-click all 8.1.7-1 [79.1 kB] 4315s Get:17 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-dateutil all 2.8.2-3ubuntu1 [79.4 kB] 4315s Get:18 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-wcwidth all 0.2.5+dfsg1-1.1ubuntu1 [22.5 kB] 4315s Get:19 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-prettytable all 3.6.0-2 [32.8 kB] 4315s Get:20 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-psutil amd64 5.9.8-2build2 [195 kB] 4315s Get:21 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-psycopg2 amd64 2.9.9-1build1 [131 kB] 4315s Get:22 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-dnspython all 2.6.1-1ubuntu1 [163 kB] 4315s Get:23 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-etcd all 0.4.5-4 [31.9 kB] 4315s Get:24 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-consul all 0.7.1-2 [21.6 kB] 4315s Get:25 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-greenlet amd64 3.0.3-0ubuntu5 [154 kB] 4315s Get:26 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-eventlet all 0.35.2-0ubuntu1 [274 kB] 4315s Get:27 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-zope.event all 5.0-0.1 [7512 B] 4315s Get:28 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-zope.interface amd64 6.1-1build1 [137 kB] 4315s Get:29 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-gevent amd64 24.2.1-0.1ubuntu2 [806 kB] 4315s Get:30 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-kerberos amd64 1.1.14-3.1build9 [21.2 kB] 4315s Get:31 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-pure-sasl all 0.5.1+dfsg1-4 [11.4 kB] 4315s Get:32 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-kazoo all 2.9.0-2 [103 kB] 4315s Get:33 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-multidict amd64 6.0.4-1.1build1 [33.5 kB] 4315s Get:34 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-yarl amd64 1.8.2-3build2 [58.3 kB] 4315s Get:35 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-async-timeout all 4.0.3-1 [6412 B] 4315s Get:36 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-frozenlist amd64 1.4.0-1build2 [42.0 kB] 4315s Get:37 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-aiosignal all 1.3.1-1 [5172 B] 4315s Get:38 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-aiohttp amd64 3.9.1-1build1 [283 kB] 4315s Get:39 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-cachetools all 5.3.0-2 [10.6 kB] 4315s Get:40 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-pyasn1 all 0.4.8-4 [51.2 kB] 4315s Get:41 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-pyasn1-modules all 0.3.0-1 [80.2 kB] 4315s Get:42 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-pyu2f all 0.1.5-2 [22.8 kB] 4315s Get:43 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-responses all 0.24.1-1 [53.9 kB] 4315s Get:44 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-rsa all 4.9-2 [28.2 kB] 4315s Get:45 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-google-auth all 2.28.2-2 [91.0 kB] 4315s Get:46 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-requests-oauthlib all 1.3.1-1 [18.8 kB] 4315s Get:47 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-websocket all 1.7.0-1 [38.1 kB] 4315s Get:48 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-kubernetes all 29.0.0-1 [368 kB] 4315s Get:49 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-pysyncobj all 0.3.12-1 [38.9 kB] 4315s Get:50 http://ftpmaster.internal/ubuntu oracular/universe amd64 patroni all 3.3.0-1 [264 kB] 4315s Get:51 http://ftpmaster.internal/ubuntu oracular/main amd64 sphinx-rtd-theme-common all 2.0.0+dfsg-1 [1012 kB] 4316s Get:52 http://ftpmaster.internal/ubuntu oracular/universe amd64 patroni-doc all 3.3.0-1 [496 kB] 4316s Get:53 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-jmespath all 1.0.1-1 [21.3 kB] 4316s Get:54 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-botocore all 1.34.46+repack-1ubuntu1 [6211 kB] 4316s Get:55 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-s3transfer all 0.10.1-1ubuntu2 [54.3 kB] 4316s Get:56 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-boto3 all 1.34.46+dfsg-1ubuntu1 [72.5 kB] 4316s Get:57 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-coverage amd64 7.4.4+dfsg1-0ubuntu2 [147 kB] 4316s Get:58 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-mccabe all 0.7.0-1 [8678 B] 4316s Get:59 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-pycodestyle all 2.11.1-1 [29.9 kB] 4316s Get:60 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-pyflakes all 3.2.0-1 [52.8 kB] 4316s Get:61 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-flake8 all 7.0.0-1 [43.7 kB] 4316s Get:62 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-iniconfig all 1.1.1-2 [6024 B] 4316s Get:63 http://ftpmaster.internal/ubuntu oracular/main amd64 python3-packaging all 24.0-1 [41.1 kB] 4316s Get:64 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-pluggy all 1.4.0-1 [20.4 kB] 4316s Get:65 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-pytest all 7.4.4-1 [305 kB] 4316s Get:66 http://ftpmaster.internal/ubuntu oracular/universe amd64 libjs-jquery-isonscreen all 1.2.0-1.1 [3244 B] 4316s Get:67 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-pytest-cov all 4.1.0-1 [21.5 kB] 4316s Get:68 http://ftpmaster.internal/ubuntu oracular/universe amd64 python3-mock all 5.1.0-1 [64.1 kB] 4316s Fetched 16.8 MB in 0s (48.3 MB/s) 4316s Selecting previously unselected package fonts-lato. 4316s (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 ... 73899 files and directories currently installed.) 4316s Preparing to unpack .../00-fonts-lato_2.015-1_all.deb ... 4316s Unpacking fonts-lato (2.015-1) ... 4317s Selecting previously unselected package libjs-jquery. 4317s Preparing to unpack .../01-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 4317s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 4317s Selecting previously unselected package libjs-jquery-hotkeys. 4317s Preparing to unpack .../02-libjs-jquery-hotkeys_0~20130707+git2d51e3a9+dfsg-2ubuntu2_all.deb ... 4317s Unpacking libjs-jquery-hotkeys (0~20130707+git2d51e3a9+dfsg-2ubuntu2) ... 4317s Selecting previously unselected package fonts-font-awesome. 4317s Preparing to unpack .../03-fonts-font-awesome_5.0.10+really4.7.0~dfsg-4.1_all.deb ... 4317s Unpacking fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 4317s Selecting previously unselected package libcares2:amd64. 4317s Preparing to unpack .../04-libcares2_1.27.0-1.0ubuntu1_amd64.deb ... 4317s Unpacking libcares2:amd64 (1.27.0-1.0ubuntu1) ... 4317s Selecting previously unselected package libev4t64:amd64. 4317s Preparing to unpack .../05-libev4t64_1%3a4.33-2.1build1_amd64.deb ... 4317s Unpacking libev4t64:amd64 (1:4.33-2.1build1) ... 4317s Selecting previously unselected package libjs-jquery-metadata. 4317s Preparing to unpack .../06-libjs-jquery-metadata_12-4_all.deb ... 4317s Unpacking libjs-jquery-metadata (12-4) ... 4317s Selecting previously unselected package libjs-jquery-tablesorter. 4317s Preparing to unpack .../07-libjs-jquery-tablesorter_1%3a2.31.3+dfsg1-3_all.deb ... 4317s Unpacking libjs-jquery-tablesorter (1:2.31.3+dfsg1-3) ... 4317s Selecting previously unselected package libjs-jquery-throttle-debounce. 4317s Preparing to unpack .../08-libjs-jquery-throttle-debounce_1.1+dfsg.1-2_all.deb ... 4317s Unpacking libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... 4317s Selecting previously unselected package libjs-underscore. 4317s Preparing to unpack .../09-libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ... 4317s Unpacking libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 4317s Selecting previously unselected package libjs-sphinxdoc. 4317s Preparing to unpack .../10-libjs-sphinxdoc_7.2.6-6_all.deb ... 4317s Unpacking libjs-sphinxdoc (7.2.6-6) ... 4317s Selecting previously unselected package libpq5:amd64. 4317s Preparing to unpack .../11-libpq5_16.2-1ubuntu4_amd64.deb ... 4317s Unpacking libpq5:amd64 (16.2-1ubuntu4) ... 4317s Selecting previously unselected package python3-cdiff. 4317s Preparing to unpack .../12-python3-cdiff_1.0-1.1_all.deb ... 4317s Unpacking python3-cdiff (1.0-1.1) ... 4317s Selecting previously unselected package python3-colorama. 4317s Preparing to unpack .../13-python3-colorama_0.4.6-4_all.deb ... 4317s Unpacking python3-colorama (0.4.6-4) ... 4317s Selecting previously unselected package python3-click. 4317s Preparing to unpack .../14-python3-click_8.1.7-1_all.deb ... 4317s Unpacking python3-click (8.1.7-1) ... 4317s Selecting previously unselected package python3-dateutil. 4317s Preparing to unpack .../15-python3-dateutil_2.8.2-3ubuntu1_all.deb ... 4317s Unpacking python3-dateutil (2.8.2-3ubuntu1) ... 4317s Selecting previously unselected package python3-wcwidth. 4317s Preparing to unpack .../16-python3-wcwidth_0.2.5+dfsg1-1.1ubuntu1_all.deb ... 4317s Unpacking python3-wcwidth (0.2.5+dfsg1-1.1ubuntu1) ... 4317s Selecting previously unselected package python3-prettytable. 4317s Preparing to unpack .../17-python3-prettytable_3.6.0-2_all.deb ... 4317s Unpacking python3-prettytable (3.6.0-2) ... 4317s Selecting previously unselected package python3-psutil. 4317s Preparing to unpack .../18-python3-psutil_5.9.8-2build2_amd64.deb ... 4317s Unpacking python3-psutil (5.9.8-2build2) ... 4317s Selecting previously unselected package python3-psycopg2. 4317s Preparing to unpack .../19-python3-psycopg2_2.9.9-1build1_amd64.deb ... 4317s Unpacking python3-psycopg2 (2.9.9-1build1) ... 4317s Selecting previously unselected package python3-dnspython. 4317s Preparing to unpack .../20-python3-dnspython_2.6.1-1ubuntu1_all.deb ... 4317s Unpacking python3-dnspython (2.6.1-1ubuntu1) ... 4317s Selecting previously unselected package python3-etcd. 4317s Preparing to unpack .../21-python3-etcd_0.4.5-4_all.deb ... 4317s Unpacking python3-etcd (0.4.5-4) ... 4317s Selecting previously unselected package python3-consul. 4317s Preparing to unpack .../22-python3-consul_0.7.1-2_all.deb ... 4317s Unpacking python3-consul (0.7.1-2) ... 4317s Selecting previously unselected package python3-greenlet. 4317s Preparing to unpack .../23-python3-greenlet_3.0.3-0ubuntu5_amd64.deb ... 4317s Unpacking python3-greenlet (3.0.3-0ubuntu5) ... 4317s Selecting previously unselected package python3-eventlet. 4317s Preparing to unpack .../24-python3-eventlet_0.35.2-0ubuntu1_all.deb ... 4317s Unpacking python3-eventlet (0.35.2-0ubuntu1) ... 4317s Selecting previously unselected package python3-zope.event. 4317s Preparing to unpack .../25-python3-zope.event_5.0-0.1_all.deb ... 4317s Unpacking python3-zope.event (5.0-0.1) ... 4317s Selecting previously unselected package python3-zope.interface. 4317s Preparing to unpack .../26-python3-zope.interface_6.1-1build1_amd64.deb ... 4317s Unpacking python3-zope.interface (6.1-1build1) ... 4317s Selecting previously unselected package python3-gevent. 4317s Preparing to unpack .../27-python3-gevent_24.2.1-0.1ubuntu2_amd64.deb ... 4317s Unpacking python3-gevent (24.2.1-0.1ubuntu2) ... 4318s Selecting previously unselected package python3-kerberos. 4318s Preparing to unpack .../28-python3-kerberos_1.1.14-3.1build9_amd64.deb ... 4318s Unpacking python3-kerberos (1.1.14-3.1build9) ... 4318s Selecting previously unselected package python3-pure-sasl. 4318s Preparing to unpack .../29-python3-pure-sasl_0.5.1+dfsg1-4_all.deb ... 4318s Unpacking python3-pure-sasl (0.5.1+dfsg1-4) ... 4318s Selecting previously unselected package python3-kazoo. 4318s Preparing to unpack .../30-python3-kazoo_2.9.0-2_all.deb ... 4318s Unpacking python3-kazoo (2.9.0-2) ... 4318s Selecting previously unselected package python3-multidict. 4318s Preparing to unpack .../31-python3-multidict_6.0.4-1.1build1_amd64.deb ... 4318s Unpacking python3-multidict (6.0.4-1.1build1) ... 4318s Selecting previously unselected package python3-yarl. 4318s Preparing to unpack .../32-python3-yarl_1.8.2-3build2_amd64.deb ... 4318s Unpacking python3-yarl (1.8.2-3build2) ... 4318s Selecting previously unselected package python3-async-timeout. 4318s Preparing to unpack .../33-python3-async-timeout_4.0.3-1_all.deb ... 4318s Unpacking python3-async-timeout (4.0.3-1) ... 4318s Selecting previously unselected package python3-frozenlist. 4318s Preparing to unpack .../34-python3-frozenlist_1.4.0-1build2_amd64.deb ... 4318s Unpacking python3-frozenlist (1.4.0-1build2) ... 4318s Selecting previously unselected package python3-aiosignal. 4318s Preparing to unpack .../35-python3-aiosignal_1.3.1-1_all.deb ... 4318s Unpacking python3-aiosignal (1.3.1-1) ... 4318s Selecting previously unselected package python3-aiohttp. 4318s Preparing to unpack .../36-python3-aiohttp_3.9.1-1build1_amd64.deb ... 4318s Unpacking python3-aiohttp (3.9.1-1build1) ... 4318s Selecting previously unselected package python3-cachetools. 4318s Preparing to unpack .../37-python3-cachetools_5.3.0-2_all.deb ... 4318s Unpacking python3-cachetools (5.3.0-2) ... 4318s Selecting previously unselected package python3-pyasn1. 4318s Preparing to unpack .../38-python3-pyasn1_0.4.8-4_all.deb ... 4318s Unpacking python3-pyasn1 (0.4.8-4) ... 4318s Selecting previously unselected package python3-pyasn1-modules. 4318s Preparing to unpack .../39-python3-pyasn1-modules_0.3.0-1_all.deb ... 4318s Unpacking python3-pyasn1-modules (0.3.0-1) ... 4318s Selecting previously unselected package python3-pyu2f. 4318s Preparing to unpack .../40-python3-pyu2f_0.1.5-2_all.deb ... 4318s Unpacking python3-pyu2f (0.1.5-2) ... 4318s Selecting previously unselected package python3-responses. 4318s Preparing to unpack .../41-python3-responses_0.24.1-1_all.deb ... 4318s Unpacking python3-responses (0.24.1-1) ... 4318s Selecting previously unselected package python3-rsa. 4318s Preparing to unpack .../42-python3-rsa_4.9-2_all.deb ... 4318s Unpacking python3-rsa (4.9-2) ... 4318s Selecting previously unselected package python3-google-auth. 4318s Preparing to unpack .../43-python3-google-auth_2.28.2-2_all.deb ... 4318s Unpacking python3-google-auth (2.28.2-2) ... 4318s Selecting previously unselected package python3-requests-oauthlib. 4318s Preparing to unpack .../44-python3-requests-oauthlib_1.3.1-1_all.deb ... 4318s Unpacking python3-requests-oauthlib (1.3.1-1) ... 4318s Selecting previously unselected package python3-websocket. 4318s Preparing to unpack .../45-python3-websocket_1.7.0-1_all.deb ... 4318s Unpacking python3-websocket (1.7.0-1) ... 4318s Selecting previously unselected package python3-kubernetes. 4318s Preparing to unpack .../46-python3-kubernetes_29.0.0-1_all.deb ... 4318s Unpacking python3-kubernetes (29.0.0-1) ... 4318s Selecting previously unselected package python3-pysyncobj. 4318s Preparing to unpack .../47-python3-pysyncobj_0.3.12-1_all.deb ... 4318s Unpacking python3-pysyncobj (0.3.12-1) ... 4318s Selecting previously unselected package patroni. 4318s Preparing to unpack .../48-patroni_3.3.0-1_all.deb ... 4318s Unpacking patroni (3.3.0-1) ... 4318s Selecting previously unselected package sphinx-rtd-theme-common. 4318s Preparing to unpack .../49-sphinx-rtd-theme-common_2.0.0+dfsg-1_all.deb ... 4318s Unpacking sphinx-rtd-theme-common (2.0.0+dfsg-1) ... 4318s Selecting previously unselected package patroni-doc. 4318s Preparing to unpack .../50-patroni-doc_3.3.0-1_all.deb ... 4318s Unpacking patroni-doc (3.3.0-1) ... 4318s Selecting previously unselected package python3-jmespath. 4318s Preparing to unpack .../51-python3-jmespath_1.0.1-1_all.deb ... 4318s Unpacking python3-jmespath (1.0.1-1) ... 4318s Selecting previously unselected package python3-botocore. 4318s Preparing to unpack .../52-python3-botocore_1.34.46+repack-1ubuntu1_all.deb ... 4318s Unpacking python3-botocore (1.34.46+repack-1ubuntu1) ... 4319s Selecting previously unselected package python3-s3transfer. 4319s Preparing to unpack .../53-python3-s3transfer_0.10.1-1ubuntu2_all.deb ... 4319s Unpacking python3-s3transfer (0.10.1-1ubuntu2) ... 4319s Selecting previously unselected package python3-boto3. 4319s Preparing to unpack .../54-python3-boto3_1.34.46+dfsg-1ubuntu1_all.deb ... 4319s Unpacking python3-boto3 (1.34.46+dfsg-1ubuntu1) ... 4319s Selecting previously unselected package python3-coverage. 4319s Preparing to unpack .../55-python3-coverage_7.4.4+dfsg1-0ubuntu2_amd64.deb ... 4319s Unpacking python3-coverage (7.4.4+dfsg1-0ubuntu2) ... 4319s Selecting previously unselected package python3-mccabe. 4319s Preparing to unpack .../56-python3-mccabe_0.7.0-1_all.deb ... 4319s Unpacking python3-mccabe (0.7.0-1) ... 4319s Selecting previously unselected package python3-pycodestyle. 4319s Preparing to unpack .../57-python3-pycodestyle_2.11.1-1_all.deb ... 4319s Unpacking python3-pycodestyle (2.11.1-1) ... 4319s Selecting previously unselected package python3-pyflakes. 4319s Preparing to unpack .../58-python3-pyflakes_3.2.0-1_all.deb ... 4319s Unpacking python3-pyflakes (3.2.0-1) ... 4319s Selecting previously unselected package python3-flake8. 4319s Preparing to unpack .../59-python3-flake8_7.0.0-1_all.deb ... 4319s Unpacking python3-flake8 (7.0.0-1) ... 4319s Selecting previously unselected package python3-iniconfig. 4319s Preparing to unpack .../60-python3-iniconfig_1.1.1-2_all.deb ... 4319s Unpacking python3-iniconfig (1.1.1-2) ... 4319s Selecting previously unselected package python3-packaging. 4319s Preparing to unpack .../61-python3-packaging_24.0-1_all.deb ... 4319s Unpacking python3-packaging (24.0-1) ... 4319s Selecting previously unselected package python3-pluggy. 4319s Preparing to unpack .../62-python3-pluggy_1.4.0-1_all.deb ... 4319s Unpacking python3-pluggy (1.4.0-1) ... 4319s Selecting previously unselected package python3-pytest. 4319s Preparing to unpack .../63-python3-pytest_7.4.4-1_all.deb ... 4319s Unpacking python3-pytest (7.4.4-1) ... 4319s Selecting previously unselected package libjs-jquery-isonscreen. 4319s Preparing to unpack .../64-libjs-jquery-isonscreen_1.2.0-1.1_all.deb ... 4319s Unpacking libjs-jquery-isonscreen (1.2.0-1.1) ... 4319s Selecting previously unselected package python3-pytest-cov. 4319s Preparing to unpack .../65-python3-pytest-cov_4.1.0-1_all.deb ... 4319s Unpacking python3-pytest-cov (4.1.0-1) ... 4319s Selecting previously unselected package python3-mock. 4319s Preparing to unpack .../66-python3-mock_5.1.0-1_all.deb ... 4319s Unpacking python3-mock (5.1.0-1) ... 4319s Selecting previously unselected package autopkgtest-satdep. 4319s Preparing to unpack .../67-7-autopkgtest-satdep.deb ... 4319s Unpacking autopkgtest-satdep (0) ... 4320s Setting up python3-iniconfig (1.1.1-2) ... 4320s Setting up libev4t64:amd64 (1:4.33-2.1build1) ... 4320s Setting up fonts-lato (2.015-1) ... 4320s Setting up python3-pysyncobj (0.3.12-1) ... 4320s Setting up python3-cachetools (5.3.0-2) ... 4320s Setting up python3-colorama (0.4.6-4) ... 4320s Setting up python3-zope.event (5.0-0.1) ... 4320s Setting up python3-zope.interface (6.1-1build1) ... 4320s Setting up python3-cdiff (1.0-1.1) ... 4321s Setting up python3-pyflakes (3.2.0-1) ... 4321s Setting up libpq5:amd64 (16.2-1ubuntu4) ... 4321s Setting up python3-kerberos (1.1.14-3.1build9) ... 4321s Setting up python3-coverage (7.4.4+dfsg1-0ubuntu2) ... 4321s Setting up libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... 4321s Setting up python3-click (8.1.7-1) ... 4321s Setting up python3-psutil (5.9.8-2build2) ... 4321s Setting up python3-multidict (6.0.4-1.1build1) ... 4322s Setting up python3-frozenlist (1.4.0-1build2) ... 4322s Setting up python3-aiosignal (1.3.1-1) ... 4322s Setting up python3-mock (5.1.0-1) ... 4322s Setting up python3-async-timeout (4.0.3-1) ... 4322s Setting up python3-responses (0.24.1-1) ... 4322s Setting up python3-pycodestyle (2.11.1-1) ... 4322s Setting up python3-packaging (24.0-1) ... 4323s Setting up python3-wcwidth (0.2.5+dfsg1-1.1ubuntu1) ... 4323s Setting up python3-pyu2f (0.1.5-2) ... 4323s Setting up python3-jmespath (1.0.1-1) ... 4323s Setting up python3-greenlet (3.0.3-0ubuntu5) ... 4323s Setting up libcares2:amd64 (1.27.0-1.0ubuntu1) ... 4323s Setting up python3-psycopg2 (2.9.9-1build1) ... 4323s Setting up python3-pluggy (1.4.0-1) ... 4323s Setting up python3-dnspython (2.6.1-1ubuntu1) ... 4324s Setting up python3-pyasn1 (0.4.8-4) ... 4324s Setting up python3-dateutil (2.8.2-3ubuntu1) ... 4324s Setting up python3-mccabe (0.7.0-1) ... 4324s Setting up python3-consul (0.7.1-2) ... 4324s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 4324s Setting up libjs-jquery-hotkeys (0~20130707+git2d51e3a9+dfsg-2ubuntu2) ... 4324s Setting up python3-prettytable (3.6.0-2) ... 4324s Setting up python3-yarl (1.8.2-3build2) ... 4325s Setting up fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 4325s Setting up sphinx-rtd-theme-common (2.0.0+dfsg-1) ... 4325s Setting up python3-websocket (1.7.0-1) ... 4325s Setting up python3-requests-oauthlib (1.3.1-1) ... 4325s Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 4325s Setting up python3-pure-sasl (0.5.1+dfsg1-4) ... 4325s Setting up python3-etcd (0.4.5-4) ... 4325s Setting up python3-pytest (7.4.4-1) ... 4325s Setting up python3-aiohttp (3.9.1-1build1) ... 4326s Setting up python3-gevent (24.2.1-0.1ubuntu2) ... 4326s Setting up python3-flake8 (7.0.0-1) ... 4326s Setting up python3-eventlet (0.35.2-0ubuntu1) ... 4326s Setting up python3-kazoo (2.9.0-2) ... 4327s Setting up python3-pyasn1-modules (0.3.0-1) ... 4327s Setting up libjs-jquery-metadata (12-4) ... 4327s Setting up python3-botocore (1.34.46+repack-1ubuntu1) ... 4327s Setting up libjs-jquery-isonscreen (1.2.0-1.1) ... 4327s Setting up libjs-sphinxdoc (7.2.6-6) ... 4327s Setting up libjs-jquery-tablesorter (1:2.31.3+dfsg1-3) ... 4327s Setting up python3-rsa (4.9-2) ... 4327s Setting up patroni (3.3.0-1) ... 4327s Created symlink /etc/systemd/system/multi-user.target.wants/patroni.service → /usr/lib/systemd/system/patroni.service. 4328s Setting up patroni-doc (3.3.0-1) ... 4328s Setting up python3-s3transfer (0.10.1-1ubuntu2) ... 4328s Setting up python3-pytest-cov (4.1.0-1) ... 4328s Setting up python3-google-auth (2.28.2-2) ... 4329s Setting up python3-boto3 (1.34.46+dfsg-1ubuntu1) ... 4329s Setting up python3-kubernetes (29.0.0-1) ... 4330s Setting up autopkgtest-satdep (0) ... 4330s Processing triggers for man-db (2.12.0-4build2) ... 4331s Processing triggers for libc-bin (2.39-0ubuntu8) ... 4334s (Reading database ... 79918 files and directories currently installed.) 4334s Removing autopkgtest-satdep (0) ... 4334s autopkgtest [20:29:17]: test test: [----------------------- 4335s running test 4335s ============================= test session starts ============================== 4335s platform linux -- Python 3.12.3, pytest-7.4.4, pluggy-1.4.0 -- /usr/bin/python3 4335s cachedir: .pytest_cache 4335s rootdir: /tmp/autopkgtest.j0Dj5k/build.cfs/src 4335s plugins: cov-4.1.0 4341s collecting ... collected 643 items 4341s 4341s tests/test_api.py::TestRestApiHandler::test_RestApiServer_query PASSED [ 0%] 4341s tests/test_api.py::TestRestApiHandler::test_basicauth PASSED [ 0%] 4341s tests/test_api.py::TestRestApiHandler::test_do_DELETE_restart PASSED [ 0%] 4341s tests/test_api.py::TestRestApiHandler::test_do_DELETE_switchover PASSED [ 0%] 4341s tests/test_api.py::TestRestApiHandler::test_do_GET PASSED [ 0%] 4341s tests/test_api.py::TestRestApiHandler::test_do_GET_cluster PASSED [ 0%] 4341s tests/test_api.py::TestRestApiHandler::test_do_GET_config PASSED [ 1%] 4341s tests/test_api.py::TestRestApiHandler::test_do_GET_failsafe PASSED [ 1%] 4341s tests/test_api.py::TestRestApiHandler::test_do_GET_history PASSED [ 1%] 4341s tests/test_api.py::TestRestApiHandler::test_do_GET_liveness PASSED [ 1%] 4341s tests/test_api.py::TestRestApiHandler::test_do_GET_metrics PASSED [ 1%] 4341s tests/test_api.py::TestRestApiHandler::test_do_GET_patroni PASSED [ 1%] 4341s tests/test_api.py::TestRestApiHandler::test_do_GET_readiness PASSED [ 2%] 4341s tests/test_api.py::TestRestApiHandler::test_do_HEAD PASSED [ 2%] 4341s tests/test_api.py::TestRestApiHandler::test_do_OPTIONS PASSED [ 2%] 4341s tests/test_api.py::TestRestApiHandler::test_do_PATCH_config PASSED [ 2%] 4341s tests/test_api.py::TestRestApiHandler::test_do_POST_citus PASSED [ 2%] 4341s tests/test_api.py::TestRestApiHandler::test_do_POST_failover PASSED [ 2%] 4341s tests/test_api.py::TestRestApiHandler::test_do_POST_failsafe PASSED [ 2%] 4341s tests/test_api.py::TestRestApiHandler::test_do_POST_mpp PASSED [ 3%] 4341s tests/test_api.py::TestRestApiHandler::test_do_POST_reinitialize PASSED [ 3%] 4341s tests/test_api.py::TestRestApiHandler::test_do_POST_reload PASSED [ 3%] 4341s tests/test_api.py::TestRestApiHandler::test_do_POST_restart PASSED [ 3%] 4341s tests/test_api.py::TestRestApiHandler::test_do_POST_sigterm PASSED [ 3%] 4342s tests/test_api.py::TestRestApiHandler::test_do_POST_switchover PASSED [ 3%] 4342s tests/test_api.py::TestRestApiHandler::test_do_PUT_config PASSED [ 4%] 4342s tests/test_api.py::TestRestApiServer::test_check_access PASSED [ 4%] 4342s tests/test_api.py::TestRestApiServer::test_get_certificate_serial_number PASSED [ 4%] 4342s tests/test_api.py::TestRestApiServer::test_handle_error PASSED [ 4%] 4342s tests/test_api.py::TestRestApiServer::test_process_request_error PASSED [ 4%] 4342s tests/test_api.py::TestRestApiServer::test_process_request_thread PASSED [ 4%] 4342s tests/test_api.py::TestRestApiServer::test_query PASSED [ 4%] 4342s tests/test_api.py::TestRestApiServer::test_reload_config PASSED [ 5%] 4342s tests/test_api.py::TestRestApiServer::test_reload_local_certificate PASSED [ 5%] 4342s tests/test_api.py::TestRestApiServer::test_socket_error PASSED [ 5%] 4342s tests/test_async_executor.py::TestAsyncExecutor::test_cancel PASSED [ 5%] 4342s tests/test_async_executor.py::TestAsyncExecutor::test_run PASSED [ 5%] 4342s tests/test_async_executor.py::TestAsyncExecutor::test_run_async PASSED [ 5%] 4342s tests/test_async_executor.py::TestCriticalTask::test_completed_task PASSED [ 6%] 4342s tests/test_aws.py::TestAWSConnection::test_aws_bizare_response PASSED [ 6%] 4342s tests/test_aws.py::TestAWSConnection::test_main PASSED [ 6%] 4342s tests/test_aws.py::TestAWSConnection::test_non_aws PASSED [ 6%] 4343s tests/test_aws.py::TestAWSConnection::test_on_role_change PASSED [ 6%] 4343s tests/test_barman.py::test_set_up_logging PASSED [ 6%] 4343s tests/test_barman.py::TestPgBackupApi::test__build_full_url PASSED [ 6%] 4343s tests/test_barman.py::TestPgBackupApi::test__deserialize_response PASSED [ 7%] 4343s tests/test_barman.py::TestPgBackupApi::test__ensure_api_ok PASSED [ 7%] 4343s tests/test_barman.py::TestPgBackupApi::test__get_request PASSED [ 7%] 4343s tests/test_barman.py::TestPgBackupApi::test__post_request PASSED [ 7%] 4343s tests/test_barman.py::TestPgBackupApi::test__serialize_request PASSED [ 7%] 4343s tests/test_barman.py::TestPgBackupApi::test_create_config_switch_operation PASSED [ 7%] 4343s tests/test_barman.py::TestPgBackupApi::test_create_recovery_operation PASSED [ 8%] 4343s tests/test_barman.py::TestPgBackupApi::test_get_operation_status PASSED [ 8%] 4343s tests/test_barman.py::TestBarmanRecover::test__restore_backup PASSED [ 8%] 4343s tests/test_barman.py::TestBarmanRecoverCli::test_run_barman_recover PASSED [ 8%] 4343s tests/test_barman.py::TestBarmanConfigSwitch::test__switch_config PASSED [ 8%] 4343s tests/test_barman.py::TestBarmanConfigSwitchCli::test__should_skip_switch PASSED [ 8%] 4343s tests/test_barman.py::TestBarmanConfigSwitchCli::test_run_barman_config_switch PASSED [ 9%] 4343s tests/test_barman.py::TestMain::test_main PASSED [ 9%] 4343s tests/test_bootstrap.py::TestBootstrap::test__initdb PASSED [ 9%] 4343s tests/test_bootstrap.py::TestBootstrap::test__process_user_options PASSED [ 9%] 4343s tests/test_bootstrap.py::TestBootstrap::test_basebackup PASSED [ 9%] 4343s tests/test_bootstrap.py::TestBootstrap::test_bootstrap PASSED [ 9%] 4343s tests/test_bootstrap.py::TestBootstrap::test_call_post_bootstrap PASSED [ 9%] 4343s tests/test_bootstrap.py::TestBootstrap::test_clone PASSED [ 10%] 4343s tests/test_bootstrap.py::TestBootstrap::test_create_replica PASSED [ 10%] 4343s tests/test_bootstrap.py::TestBootstrap::test_create_replica_old_format PASSED [ 10%] 4343s tests/test_bootstrap.py::TestBootstrap::test_custom_bootstrap PASSED [ 10%] 4343s tests/test_bootstrap.py::TestBootstrap::test_post_bootstrap PASSED [ 10%] 4343s tests/test_callback_executor.py::TestCallbackExecutor::test_callback_executor PASSED [ 10%] 4343s tests/test_cancellable.py::TestCancellableSubprocess::test__kill_children PASSED [ 11%] 4343s tests/test_cancellable.py::TestCancellableSubprocess::test_call PASSED [ 11%] 4343s tests/test_cancellable.py::TestCancellableSubprocess::test_cancel PASSED [ 11%] 4343s tests/test_citus.py::TestCitus::test_add_task SKIPPED (Citus not tested) [ 11%] 4343s tests/test_citus.py::TestCitus::test_adjust_postgres_gucs SKIPPED (C...) [ 11%] 4343s tests/test_citus.py::TestCitus::test_bootstrap_duplicate_database SKIPPED [ 11%] 4343s tests/test_citus.py::TestCitus::test_handle_event SKIPPED (Citus not...) [ 11%] 4343s tests/test_citus.py::TestCitus::test_ignore_replication_slot SKIPPED [ 12%] 4343s tests/test_citus.py::TestCitus::test_load_pg_dist_node SKIPPED (Citu...) [ 12%] 4343s tests/test_citus.py::TestCitus::test_on_demote SKIPPED (Citus not te...) [ 12%] 4343s tests/test_citus.py::TestCitus::test_pick_task SKIPPED (Citus not te...) [ 12%] 4343s tests/test_citus.py::TestCitus::test_process_task SKIPPED (Citus not...) [ 12%] 4343s tests/test_citus.py::TestCitus::test_process_tasks SKIPPED (Citus no...) [ 12%] 4343s tests/test_citus.py::TestCitus::test_run SKIPPED (Citus not tested) [ 13%] 4343s tests/test_citus.py::TestCitus::test_sync_meta_data SKIPPED (Citus n...) [ 13%] 4343s tests/test_citus.py::TestCitus::test_wait SKIPPED (Citus not tested) [ 13%] 4343s tests/test_config.py::TestConfig::test__process_postgresql_parameters PASSED [ 13%] 4343s tests/test_config.py::TestConfig::test__validate_and_adjust_timeouts PASSED [ 13%] 4343s tests/test_config.py::TestConfig::test__validate_failover_tags PASSED [ 13%] 4343s tests/test_config.py::TestConfig::test_configuration_directory PASSED [ 13%] 4343s tests/test_config.py::TestConfig::test_global_config_is_synchronous_mode PASSED [ 14%] 4343s tests/test_config.py::TestConfig::test_invalid_path PASSED [ 14%] 4343s tests/test_config.py::TestConfig::test_reload_local_configuration PASSED [ 14%] 4343s tests/test_config.py::TestConfig::test_save_cache PASSED [ 14%] 4343s tests/test_config.py::TestConfig::test_set_dynamic_configuration PASSED [ 14%] 4343s tests/test_config.py::TestConfig::test_standby_cluster_parameters PASSED [ 14%] 4343s tests/test_config_generator.py::TestGenerateConfig::test_generate_config_running_instance_16 PASSED [ 15%] 4343s tests/test_config_generator.py::TestGenerateConfig::test_generate_config_running_instance_16_connect_from_env PASSED [ 15%] 4343s tests/test_config_generator.py::TestGenerateConfig::test_generate_config_running_instance_errors PASSED [ 15%] 4343s tests/test_config_generator.py::TestGenerateConfig::test_generate_sample_config_16 PASSED [ 15%] 4343s tests/test_config_generator.py::TestGenerateConfig::test_generate_sample_config_pre_13_dir_creation PASSED [ 15%] 4343s tests/test_config_generator.py::TestGenerateConfig::test_get_address PASSED [ 15%] 4343s tests/test_consul.py::TestHTTPClient::test_get PASSED [ 16%] 4343s tests/test_consul.py::TestHTTPClient::test_put PASSED [ 16%] 4343s tests/test_consul.py::TestHTTPClient::test_unknown_method PASSED [ 16%] 4343s tests/test_consul.py::TestConsul::test__get_citus_cluster PASSED [ 16%] 4343s tests/test_consul.py::TestConsul::test_cancel_initialization PASSED [ 16%] 4343s tests/test_consul.py::TestConsul::test_create_session PASSED [ 16%] 4343s tests/test_consul.py::TestConsul::test_delete_cluster PASSED [ 16%] 4343s tests/test_consul.py::TestConsul::test_delete_leader PASSED [ 17%] 4343s tests/test_consul.py::TestConsul::test_get_cluster PASSED [ 17%] 4343s tests/test_consul.py::TestConsul::test_initialize PASSED [ 17%] 4343s tests/test_consul.py::TestConsul::test_referesh_session PASSED [ 17%] 4343s tests/test_consul.py::TestConsul::test_reload_config PASSED [ 17%] 4343s tests/test_consul.py::TestConsul::test_set_config_value PASSED [ 17%] 4343s tests/test_consul.py::TestConsul::test_set_failover_value PASSED [ 18%] 4343s tests/test_consul.py::TestConsul::test_set_history_value PASSED [ 18%] 4343s tests/test_consul.py::TestConsul::test_set_retry_timeout PASSED [ 18%] 4343s tests/test_consul.py::TestConsul::test_sync_state PASSED [ 18%] 4343s tests/test_consul.py::TestConsul::test_take_leader PASSED [ 18%] 4343s tests/test_consul.py::TestConsul::test_touch_member PASSED [ 18%] 4343s tests/test_consul.py::TestConsul::test_update_leader PASSED [ 18%] 4343s tests/test_consul.py::TestConsul::test_update_service PASSED [ 19%] 4343s tests/test_consul.py::TestConsul::test_watch PASSED [ 19%] 4343s tests/test_consul.py::TestConsul::test_write_leader_optime PASSED [ 19%] 4343s tests/test_ctl.py::TestCtl::test_apply_config_changes PASSED [ 19%] 4343s tests/test_ctl.py::TestCtl::test_ctl PASSED [ 19%] 4343s tests/test_ctl.py::TestCtl::test_dsn PASSED [ 19%] 4343s tests/test_ctl.py::TestCtl::test_edit_config PASSED [ 20%] 4343s tests/test_ctl.py::TestCtl::test_failover PASSED [ 20%] 4343s tests/test_ctl.py::TestCtl::test_flush_restart PASSED [ 20%] 4343s tests/test_ctl.py::TestCtl::test_flush_switchover PASSED [ 20%] 4343s tests/test_ctl.py::TestCtl::test_format_pg_version PASSED [ 20%] 4343s tests/test_ctl.py::TestCtl::test_get_all_members PASSED [ 20%] 4343s tests/test_ctl.py::TestCtl::test_get_any_member PASSED [ 20%] 4343s tests/test_ctl.py::TestCtl::test_get_cursor PASSED [ 21%] 4343s tests/test_ctl.py::TestCtl::test_get_dcs PASSED [ 21%] 4343s tests/test_ctl.py::TestCtl::test_get_members PASSED [ 21%] 4343s tests/test_ctl.py::TestCtl::test_history PASSED [ 21%] 4343s tests/test_ctl.py::TestCtl::test_invoke_editor PASSED [ 21%] 4343s tests/test_ctl.py::TestCtl::test_list_extended PASSED [ 21%] 4343s tests/test_ctl.py::TestCtl::test_load_config PASSED [ 22%] 4343s tests/test_ctl.py::TestCtl::test_members PASSED [ 22%] 4343s tests/test_ctl.py::TestCtl::test_output_members PASSED [ 22%] 4343s tests/test_ctl.py::TestCtl::test_parse_dcs PASSED [ 22%] 4343s tests/test_ctl.py::TestCtl::test_pause_cluster PASSED [ 22%] 4343s tests/test_ctl.py::TestCtl::test_query PASSED [ 22%] 4343s tests/test_ctl.py::TestCtl::test_query_member PASSED [ 23%] 4343s tests/test_ctl.py::TestCtl::test_reinit_wait PASSED [ 23%] 4343s tests/test_ctl.py::TestCtl::test_reload PASSED [ 23%] 4343s tests/test_ctl.py::TestCtl::test_remove PASSED [ 23%] 4343s tests/test_ctl.py::TestCtl::test_restart_reinit PASSED [ 23%] 4343s tests/test_ctl.py::TestCtl::test_resume_cluster PASSED [ 23%] 4343s tests/test_ctl.py::TestCtl::test_show_config PASSED [ 23%] 4343s tests/test_ctl.py::TestCtl::test_show_diff PASSED [ 24%] 4344s tests/test_ctl.py::TestCtl::test_switchover PASSED [ 24%] 4344s tests/test_ctl.py::TestCtl::test_topology PASSED [ 24%] 4344s tests/test_ctl.py::TestCtl::test_version PASSED [ 24%] 4344s tests/test_ctl.py::TestPatronictlPrettyTable::test__get_hline PASSED [ 24%] 4344s tests/test_ctl.py::TestPatronictlPrettyTable::test__stringify_hrule PASSED [ 24%] 4344s tests/test_ctl.py::TestPatronictlPrettyTable::test_output PASSED [ 25%] 4344s tests/test_etcd.py::TestDnsCachingResolver::test_run PASSED [ 25%] 4344s tests/test_etcd.py::TestClient::test___del__ PASSED [ 25%] 4344s tests/test_etcd.py::TestClient::test__get_machines_cache_from_dns PASSED [ 25%] 4344s tests/test_etcd.py::TestClient::test__get_machines_cache_from_srv PASSED [ 25%] 4344s tests/test_etcd.py::TestClient::test__load_machines_cache PASSED [ 25%] 4344s tests/test_etcd.py::TestClient::test__refresh_machines_cache PASSED [ 25%] 4345s tests/test_etcd.py::TestClient::test_api_execute PASSED [ 26%] 4345s tests/test_etcd.py::TestClient::test_create_connection_patched PASSED [ 26%] 4345s tests/test_etcd.py::TestClient::test_get_srv_record PASSED [ 26%] 4345s tests/test_etcd.py::TestClient::test_machines PASSED [ 26%] 4345s tests/test_etcd.py::TestEtcd::test__get_citus_cluster PASSED [ 26%] 4345s tests/test_etcd.py::TestEtcd::test_attempt_to_acquire_leader PASSED [ 26%] 4345s tests/test_etcd.py::TestEtcd::test_base_path PASSED [ 27%] 4345s tests/test_etcd.py::TestEtcd::test_cancel_initializion PASSED [ 27%] 4345s tests/test_etcd.py::TestEtcd::test_delete_cluster PASSED [ 27%] 4345s tests/test_etcd.py::TestEtcd::test_delete_leader PASSED [ 27%] 4345s tests/test_etcd.py::TestEtcd::test_get_cluster PASSED [ 27%] 4345s tests/test_etcd.py::TestEtcd::test_get_etcd_client PASSED [ 27%] 4345s tests/test_etcd.py::TestEtcd::test_initialize PASSED [ 27%] 4345s tests/test_etcd.py::TestEtcd::test_last_seen PASSED [ 28%] 4345s tests/test_etcd.py::TestEtcd::test_other_exceptions PASSED [ 28%] 4345s tests/test_etcd.py::TestEtcd::test_set_history_value PASSED [ 28%] 4345s tests/test_etcd.py::TestEtcd::test_set_ttl PASSED [ 28%] 4345s tests/test_etcd.py::TestEtcd::test_sync_state PASSED [ 28%] 4345s tests/test_etcd.py::TestEtcd::test_take_leader PASSED [ 28%] 4345s tests/test_etcd.py::TestEtcd::test_touch_member PASSED [ 29%] 4345s tests/test_etcd.py::TestEtcd::test_update_leader PASSED [ 29%] 4345s tests/test_etcd.py::TestEtcd::test_watch PASSED [ 29%] 4345s tests/test_etcd.py::TestEtcd::test_write_leader_optime PASSED [ 29%] 4345s tests/test_etcd3.py::TestEtcd3Client::test_authenticate PASSED [ 29%] 4345s tests/test_etcd3.py::TestKVCache::test__build_cache PASSED [ 29%] 4345s tests/test_etcd3.py::TestKVCache::test__do_watch PASSED [ 30%] 4345s tests/test_etcd3.py::TestKVCache::test_kill_stream PASSED [ 30%] 4345s tests/test_etcd3.py::TestKVCache::test_run PASSED [ 30%] 4345s tests/test_etcd3.py::TestPatroniEtcd3Client::test__ensure_version_prefix PASSED [ 30%] 4345s tests/test_etcd3.py::TestPatroniEtcd3Client::test__handle_auth_errors PASSED [ 30%] 4345s tests/test_etcd3.py::TestPatroniEtcd3Client::test__handle_server_response PASSED [ 30%] 4345s tests/test_etcd3.py::TestPatroniEtcd3Client::test__init__ PASSED [ 30%] 4345s tests/test_etcd3.py::TestPatroniEtcd3Client::test__restart_watcher PASSED [ 31%] 4345s tests/test_etcd3.py::TestPatroniEtcd3Client::test__wait_cache PASSED [ 31%] 4345s tests/test_etcd3.py::TestPatroniEtcd3Client::test_call_rpc PASSED [ 31%] 4345s tests/test_etcd3.py::TestPatroniEtcd3Client::test_txn PASSED [ 31%] 4345s tests/test_etcd3.py::TestEtcd3::test__get_citus_cluster PASSED [ 31%] 4345s tests/test_etcd3.py::TestEtcd3::test__update_leader PASSED [ 31%] 4345s tests/test_etcd3.py::TestEtcd3::test_attempt_to_acquire_leader PASSED [ 32%] 4345s tests/test_etcd3.py::TestEtcd3::test_cancel_initialization PASSED [ 32%] 4345s tests/test_etcd3.py::TestEtcd3::test_create_lease PASSED [ 32%] 4345s tests/test_etcd3.py::TestEtcd3::test_delete_cluster PASSED [ 32%] 4345s tests/test_etcd3.py::TestEtcd3::test_delete_leader PASSED [ 32%] 4345s tests/test_etcd3.py::TestEtcd3::test_delete_sync_state PASSED [ 32%] 4345s tests/test_etcd3.py::TestEtcd3::test_get_cluster PASSED [ 32%] 4345s tests/test_etcd3.py::TestEtcd3::test_initialize PASSED [ 33%] 4345s tests/test_etcd3.py::TestEtcd3::test_refresh_lease PASSED [ 33%] 4345s tests/test_etcd3.py::TestEtcd3::test_set_config_value PASSED [ 33%] 4345s tests/test_etcd3.py::TestEtcd3::test_set_failover_value PASSED [ 33%] 4345s tests/test_etcd3.py::TestEtcd3::test_set_history_value PASSED [ 33%] 4345s tests/test_etcd3.py::TestEtcd3::test_set_socket_options PASSED [ 33%] 4345s tests/test_etcd3.py::TestEtcd3::test_set_sync_state_value PASSED [ 34%] 4345s tests/test_etcd3.py::TestEtcd3::test_set_ttl PASSED [ 34%] 4345s tests/test_etcd3.py::TestEtcd3::test_take_leader PASSED [ 34%] 4345s tests/test_etcd3.py::TestEtcd3::test_touch_member PASSED [ 34%] 4345s tests/test_etcd3.py::TestEtcd3::test_watch PASSED [ 34%] 4345s tests/test_exhibitor.py::TestExhibitorEnsembleProvider::test_init PASSED [ 34%] 4345s tests/test_exhibitor.py::TestExhibitorEnsembleProvider::test_poll PASSED [ 34%] 4345s tests/test_exhibitor.py::TestExhibitor::test_get_cluster PASSED [ 35%] 4345s tests/test_file_perm.py::TestFilePermissions::test_set_permissions_from_data_directory PASSED [ 35%] 4345s tests/test_file_perm.py::TestFilePermissions::test_set_umask PASSED [ 35%] 4345s tests/test_ha.py::TestHa::test__is_healthiest_node PASSED [ 35%] 4345s tests/test_ha.py::TestHa::test_abort_join PASSED [ 35%] 4345s tests/test_ha.py::TestHa::test_acquire_lock PASSED [ 35%] 4345s tests/test_ha.py::TestHa::test_acquire_lock_as_primary PASSED [ 36%] 4345s tests/test_ha.py::TestHa::test_after_pause PASSED [ 36%] 4345s tests/test_ha.py::TestHa::test_bootstrap_as_standby_leader PASSED [ 36%] 4345s tests/test_ha.py::TestHa::test_bootstrap_from_another_member PASSED [ 36%] 4345s tests/test_ha.py::TestHa::test_bootstrap_initialize_lock_failed PASSED [ 36%] 4345s tests/test_ha.py::TestHa::test_bootstrap_initialized_new_cluster PASSED [ 36%] 4345s tests/test_ha.py::TestHa::test_bootstrap_not_running_concurrently PASSED [ 37%] 4345s tests/test_ha.py::TestHa::test_bootstrap_release_initialize_key_on_failure PASSED [ 37%] 4345s tests/test_ha.py::TestHa::test_bootstrap_release_initialize_key_on_watchdog_failure PASSED [ 37%] 4345s tests/test_ha.py::TestHa::test_bootstrap_waiting_for_leader PASSED [ 37%] 4345s tests/test_ha.py::TestHa::test_bootstrap_waiting_for_standby_leader PASSED [ 37%] 4345s tests/test_ha.py::TestHa::test_bootstrap_without_leader PASSED [ 37%] 4345s tests/test_ha.py::TestHa::test_check_failsafe_topology PASSED [ 37%] 4345s tests/test_ha.py::TestHa::test_coordinator_leader_with_lock PASSED [ 38%] 4345s tests/test_ha.py::TestHa::test_crash_recovery PASSED [ 38%] 4345s tests/test_ha.py::TestHa::test_crash_recovery_before_rewind PASSED [ 38%] 4345s tests/test_ha.py::TestHa::test_delete_future_restarts PASSED [ 38%] 4345s tests/test_ha.py::TestHa::test_demote_after_failing_to_obtain_lock PASSED [ 38%] 4345s tests/test_ha.py::TestHa::test_demote_because_not_having_lock PASSED [ 38%] 4345s tests/test_ha.py::TestHa::test_demote_because_not_healthiest PASSED [ 39%] 4345s tests/test_ha.py::TestHa::test_demote_because_update_lock_failed PASSED [ 39%] 4345s tests/test_ha.py::TestHa::test_demote_immediate PASSED [ 39%] 4345s tests/test_ha.py::TestHa::test_disable_sync_when_restarting PASSED [ 39%] 4345s tests/test_ha.py::TestHa::test_effective_tags PASSED [ 39%] 4345s tests/test_ha.py::TestHa::test_empty_directory_in_pause PASSED [ 39%] 4345s tests/test_ha.py::TestHa::test_enable_synchronous_mode PASSED [ 39%] 4345s tests/test_ha.py::TestHa::test_evaluate_scheduled_restart PASSED [ 40%] 4345s tests/test_ha.py::TestHa::test_failed_to_update_lock_in_pause PASSED [ 40%] 4345s tests/test_ha.py::TestHa::test_failover_immediately_on_zero_primary_start_timeout PASSED [ 40%] 4345s tests/test_ha.py::TestHa::test_fetch_node_status PASSED [ 40%] 4346s tests/test_ha.py::TestHa::test_follow PASSED [ 40%] 4346s tests/test_ha.py::TestHa::test_follow_copy PASSED [ 40%] 4346s tests/test_ha.py::TestHa::test_follow_in_pause PASSED [ 41%] 4346s tests/test_ha.py::TestHa::test_follow_new_leader_after_failing_to_obtain_lock PASSED [ 41%] 4346s tests/test_ha.py::TestHa::test_follow_new_leader_because_not_healthiest PASSED [ 41%] 4346s tests/test_ha.py::TestHa::test_follow_triggers_rewind PASSED [ 41%] 4346s tests/test_ha.py::TestHa::test_get_node_to_follow_nostream PASSED [ 41%] 4346s tests/test_ha.py::TestHa::test_inconsistent_synchronous_state PASSED [ 41%] 4346s tests/test_ha.py::TestHa::test_is_healthiest_node PASSED [ 41%] 4346s tests/test_ha.py::TestHa::test_is_leader PASSED [ 42%] 4346s tests/test_ha.py::TestHa::test_leader_race_stale_primary PASSED [ 42%] 4346s tests/test_ha.py::TestHa::test_leader_with_lock PASSED [ 42%] 4346s tests/test_ha.py::TestHa::test_leader_with_not_accessible_data_directory PASSED [ 42%] 4346s tests/test_ha.py::TestHa::test_long_promote PASSED [ 42%] 4346s tests/test_ha.py::TestHa::test_lost_leader_lock_during_promote PASSED [ 42%] 4346s tests/test_ha.py::TestHa::test_manual_failover_from_leader PASSED [ 43%] 4346s tests/test_ha.py::TestHa::test_manual_failover_from_leader_in_pause PASSED [ 43%] 4346s tests/test_ha.py::TestHa::test_manual_failover_from_leader_in_synchronous_mode PASSED [ 43%] 4346s tests/test_ha.py::TestHa::test_manual_failover_process_no_leader PASSED [ 43%] 4346s tests/test_ha.py::TestHa::test_manual_failover_process_no_leader_in_pause PASSED [ 43%] 4346s tests/test_ha.py::TestHa::test_manual_failover_process_no_leader_in_synchronous_mode PASSED [ 43%] 4346s tests/test_ha.py::TestHa::test_manual_failover_while_starting PASSED [ 44%] 4346s tests/test_ha.py::TestHa::test_manual_switchover_from_leader PASSED [ 44%] 4346s tests/test_ha.py::TestHa::test_manual_switchover_from_leader_in_pause PASSED [ 44%] 4346s tests/test_ha.py::TestHa::test_manual_switchover_from_leader_in_synchronous_mode PASSED [ 44%] 4346s tests/test_ha.py::TestHa::test_manual_switchover_process_no_leader PASSED [ 44%] 4346s tests/test_ha.py::TestHa::test_manual_switchover_process_no_leader_in_pause PASSED [ 44%] 4346s tests/test_ha.py::TestHa::test_manual_switchover_process_no_leader_in_synchronous_mode PASSED [ 44%] 4346s tests/test_ha.py::TestHa::test_no_dcs_connection_primary_demote PASSED [ 45%] 4346s tests/test_ha.py::TestHa::test_no_dcs_connection_primary_failsafe PASSED [ 45%] 4346s tests/test_ha.py::TestHa::test_no_dcs_connection_replica_failsafe PASSED [ 45%] 4346s tests/test_ha.py::TestHa::test_no_dcs_connection_replica_failsafe_not_enabled_but_active PASSED [ 45%] 4346s tests/test_ha.py::TestHa::test_no_etcd_connection_in_pause PASSED [ 45%] 4346s tests/test_ha.py::TestHa::test_notify_citus_coordinator PASSED [ 45%] 4346s tests/test_ha.py::TestHa::test_permanent_logical_slots_after_promote PASSED [ 46%] 4346s tests/test_ha.py::TestHa::test_post_recover PASSED [ 46%] 4346s tests/test_ha.py::TestHa::test_postgres_unhealthy_in_pause PASSED [ 46%] 4346s tests/test_ha.py::TestHa::test_primary_stop_timeout PASSED [ 46%] 4346s tests/test_ha.py::TestHa::test_process_healthy_cluster_in_pause PASSED [ 46%] 4346s tests/test_ha.py::TestHa::test_process_healthy_standby_cluster_as_cascade_replica PASSED [ 46%] 4346s tests/test_ha.py::TestHa::test_process_healthy_standby_cluster_as_standby_leader PASSED [ 46%] 4346s tests/test_ha.py::TestHa::test_process_sync_replication PASSED [ 47%] 4346s tests/test_ha.py::TestHa::test_process_unhealthy_standby_cluster_as_cascade_replica PASSED [ 47%] 4346s tests/test_ha.py::TestHa::test_process_unhealthy_standby_cluster_as_standby_leader PASSED [ 47%] 4346s tests/test_ha.py::TestHa::test_promote_because_have_lock PASSED [ 47%] 4346s tests/test_ha.py::TestHa::test_promote_without_watchdog PASSED [ 47%] 4346s tests/test_ha.py::TestHa::test_promoted_by_acquiring_lock PASSED [ 47%] 4346s tests/test_ha.py::TestHa::test_promotion_cancelled_after_pre_promote_failed PASSED [ 48%] 4346s tests/test_ha.py::TestHa::test_readonly_dcs_primary_failsafe PASSED [ 48%] 4346s tests/test_ha.py::TestHa::test_recover_former_primary PASSED [ 48%] 4346s tests/test_ha.py::TestHa::test_recover_raft PASSED [ 48%] 4346s tests/test_ha.py::TestHa::test_recover_replica_failed PASSED [ 48%] 4347s tests/test_ha.py::TestHa::test_recover_unhealthy_leader_in_standby_cluster PASSED [ 48%] 4347s tests/test_ha.py::TestHa::test_recover_unhealthy_unlocked_standby_cluster PASSED [ 48%] 4347s tests/test_ha.py::TestHa::test_recover_with_reinitialize PASSED [ 49%] 4347s tests/test_ha.py::TestHa::test_recover_with_rewind PASSED [ 49%] 4347s tests/test_ha.py::TestHa::test_reinitialize PASSED [ 49%] 4347s tests/test_ha.py::TestHa::test_restart PASSED [ 49%] 4347s tests/test_ha.py::TestHa::test_restart_in_progress PASSED [ 49%] 4347s tests/test_ha.py::TestHa::test_restart_matches PASSED [ 49%] 4347s tests/test_ha.py::TestHa::test_restore_cluster_config PASSED [ 50%] 4347s tests/test_ha.py::TestHa::test_run_cycle PASSED [ 50%] 4347s tests/test_ha.py::TestHa::test_schedule_future_restart PASSED [ 50%] 4347s tests/test_ha.py::TestHa::test_scheduled_restart PASSED [ 50%] 4347s tests/test_ha.py::TestHa::test_scheduled_switchover_from_leader PASSED [ 50%] 4347s tests/test_ha.py::TestHa::test_shutdown PASSED [ 50%] 4347s tests/test_ha.py::TestHa::test_shutdown_citus_worker PASSED [ 51%] 4347s tests/test_ha.py::TestHa::test_start_as_cascade_replica_in_standby_cluster PASSED [ 51%] 4347s tests/test_ha.py::TestHa::test_start_as_readonly PASSED [ 51%] 4347s tests/test_ha.py::TestHa::test_start_as_replica PASSED [ 51%] 4347s tests/test_ha.py::TestHa::test_start_primary_after_failure PASSED [ 51%] 4347s tests/test_ha.py::TestHa::test_starting_timeout PASSED [ 51%] 4347s tests/test_ha.py::TestHa::test_sync_replication_become_primary PASSED [ 51%] 4347s tests/test_ha.py::TestHa::test_sysid_no_match PASSED [ 52%] 4347s tests/test_ha.py::TestHa::test_sysid_no_match_in_pause PASSED [ 52%] 4347s tests/test_ha.py::TestHa::test_touch_member PASSED [ 52%] 4347s tests/test_ha.py::TestHa::test_unhealthy_sync_mode PASSED [ 52%] 4347s tests/test_ha.py::TestHa::test_update_cluster_history PASSED [ 52%] 4347s tests/test_ha.py::TestHa::test_update_failsafe PASSED [ 52%] 4347s tests/test_ha.py::TestHa::test_update_lock PASSED [ 53%] 4347s tests/test_ha.py::TestHa::test_wakup PASSED [ 53%] 4347s tests/test_ha.py::TestHa::test_watch PASSED [ 53%] 4347s tests/test_ha.py::TestHa::test_worker_restart PASSED [ 53%] 4347s tests/test_kubernetes.py::TestK8sConfig::test_load_incluster_config PASSED [ 53%] 4347s tests/test_kubernetes.py::TestK8sConfig::test_load_kube_config PASSED [ 53%] 4347s tests/test_kubernetes.py::TestK8sConfig::test_refresh_token PASSED [ 53%] 4347s tests/test_kubernetes.py::TestApiClient::test__do_http_request PASSED [ 54%] 4347s tests/test_kubernetes.py::TestApiClient::test__refresh_api_servers_cache PASSED [ 54%] 4347s tests/test_kubernetes.py::TestApiClient::test_request PASSED [ 54%] 4347s tests/test_kubernetes.py::TestCoreV1Api::test_create_namespaced_service PASSED [ 54%] 4347s tests/test_kubernetes.py::TestCoreV1Api::test_delete_namespaced_pod PASSED [ 54%] 4347s tests/test_kubernetes.py::TestCoreV1Api::test_list_namespaced_endpoints PASSED [ 54%] 4347s tests/test_kubernetes.py::TestCoreV1Api::test_list_namespaced_pod PASSED [ 55%] 4347s tests/test_kubernetes.py::TestCoreV1Api::test_patch_namespaced_config_map PASSED [ 55%] 4347s tests/test_kubernetes.py::TestKubernetesConfigMaps::test__get_citus_cluster PASSED [ 55%] 4347s tests/test_kubernetes.py::TestKubernetesConfigMaps::test__wait_caches PASSED [ 55%] 4347s tests/test_kubernetes.py::TestKubernetesConfigMaps::test_attempt_to_acquire_leader PASSED [ 55%] 4347s tests/test_kubernetes.py::TestKubernetesConfigMaps::test_cancel_initialization PASSED [ 55%] 4347s tests/test_kubernetes.py::TestKubernetesConfigMaps::test_delete_cluster PASSED [ 55%] 4347s tests/test_kubernetes.py::TestKubernetesConfigMaps::test_delete_leader PASSED [ 56%] 4347s tests/test_kubernetes.py::TestKubernetesConfigMaps::test_get_citus_coordinator PASSED [ 56%] 4347s tests/test_kubernetes.py::TestKubernetesConfigMaps::test_get_cluster PASSED [ 56%] 4347s tests/test_kubernetes.py::TestKubernetesConfigMaps::test_get_mpp_coordinator PASSED [ 56%] 4347s tests/test_kubernetes.py::TestKubernetesConfigMaps::test_initialize PASSED [ 56%] 4347s tests/test_kubernetes.py::TestKubernetesConfigMaps::test_manual_failover PASSED [ 56%] 4347s tests/test_kubernetes.py::TestKubernetesConfigMaps::test_reload_config PASSED [ 57%] 4347s tests/test_kubernetes.py::TestKubernetesConfigMaps::test_set_config_value PASSED [ 57%] 4347s tests/test_kubernetes.py::TestKubernetesConfigMaps::test_set_history_value PASSED [ 57%] 4347s tests/test_kubernetes.py::TestKubernetesConfigMaps::test_take_leader PASSED [ 57%] 4347s tests/test_kubernetes.py::TestKubernetesConfigMaps::test_touch_member PASSED [ 57%] 4348s tests/test_kubernetes.py::TestKubernetesConfigMaps::test_watch PASSED [ 57%] 4348s tests/test_kubernetes.py::TestKubernetesEndpointsNoPodIP::test_update_leader PASSED [ 58%] 4348s tests/test_kubernetes.py::TestKubernetesEndpoints::test__create_config_service PASSED [ 58%] 4348s tests/test_kubernetes.py::TestKubernetesEndpoints::test__update_leader_with_retry PASSED [ 58%] 4349s tests/test_kubernetes.py::TestKubernetesEndpoints::test_delete_sync_state PASSED [ 58%] 4349s tests/test_kubernetes.py::TestKubernetesEndpoints::test_update_leader PASSED [ 58%] 4349s tests/test_kubernetes.py::TestKubernetesEndpoints::test_write_leader_optime PASSED [ 58%] 4349s tests/test_kubernetes.py::TestKubernetesEndpoints::test_write_sync_state PASSED [ 58%] 4349s tests/test_kubernetes.py::TestCacheBuilder::test__build_cache PASSED [ 59%] 4349s tests/test_kubernetes.py::TestCacheBuilder::test__do_watch PASSED [ 59%] 4349s tests/test_kubernetes.py::TestCacheBuilder::test__list PASSED [ 59%] 4349s tests/test_kubernetes.py::TestCacheBuilder::test_kill_stream PASSED [ 59%] 4349s tests/test_kubernetes.py::TestCacheBuilder::test_run PASSED [ 59%] 4349s tests/test_log.py::TestPatroniLogger::test_dateformat PASSED [ 59%] 4349s tests/test_log.py::TestPatroniLogger::test_fail_to_use_python_json_logger PASSED [ 60%] 4349s tests/test_log.py::TestPatroniLogger::test_interceptor PASSED [ 60%] 4349s tests/test_log.py::TestPatroniLogger::test_invalid_dateformat PASSED [ 60%] 4349s tests/test_log.py::TestPatroniLogger::test_invalid_json_format PASSED [ 60%] 4349s tests/test_log.py::TestPatroniLogger::test_invalid_plain_format PASSED [ 60%] 4349s tests/test_log.py::TestPatroniLogger::test_json_list_format PASSED [ 60%] 4349s tests/test_log.py::TestPatroniLogger::test_json_str_format PASSED [ 60%] 4349s tests/test_log.py::TestPatroniLogger::test_patroni_logger PASSED [ 61%] 4349s tests/test_log.py::TestPatroniLogger::test_plain_format PASSED [ 61%] 4349s tests/test_mpp.py::TestMPP::test_get_handler_impl_exception PASSED [ 61%] 4349s tests/test_mpp.py::TestMPP::test_null_handler PASSED [ 61%] 4349s tests/test_patroni.py::TestPatroni::test__filter_tags PASSED [ 61%] 4349s tests/test_patroni.py::TestPatroni::test_check_psycopg PASSED [ 61%] 4349s tests/test_patroni.py::TestPatroni::test_ensure_unique_name PASSED [ 62%] 4349s tests/test_patroni.py::TestPatroni::test_failover_priority PASSED [ 62%] 4349s tests/test_patroni.py::TestPatroni::test_load_dynamic_configuration PASSED [ 62%] 4349s tests/test_patroni.py::TestPatroni::test_no_config PASSED [ 62%] 4349s tests/test_patroni.py::TestPatroni::test_nofailover PASSED [ 62%] 4349s tests/test_patroni.py::TestPatroni::test_noloadbalance PASSED [ 62%] 4349s tests/test_patroni.py::TestPatroni::test_nostream PASSED [ 62%] 4349s tests/test_patroni.py::TestPatroni::test_nosync PASSED [ 63%] 4349s tests/test_patroni.py::TestPatroni::test_patroni_main PASSED [ 63%] 4349s tests/test_patroni.py::TestPatroni::test_patroni_patroni_main PASSED [ 63%] 4349s tests/test_patroni.py::TestPatroni::test_reload_config PASSED [ 63%] 4349s tests/test_patroni.py::TestPatroni::test_replicatefrom PASSED [ 63%] 4350s tests/test_patroni.py::TestPatroni::test_run PASSED [ 63%] 4350s tests/test_patroni.py::TestPatroni::test_schedule_next_run PASSED [ 64%] 4350s tests/test_patroni.py::TestPatroni::test_shutdown PASSED [ 64%] 4350s tests/test_patroni.py::TestPatroni::test_sigterm_handler PASSED [ 64%] 4350s tests/test_patroni.py::TestPatroni::test_validate_config PASSED [ 64%] 4350s tests/test_postgresql.py::TestPostgresql::test__do_stop PASSED [ 64%] 4350s tests/test_postgresql.py::TestPostgresql::test__get_postgres_guc_validators PASSED [ 64%] 4350s tests/test_postgresql.py::TestPostgresql::test__load_postgres_gucs_validators PASSED [ 65%] 4350s tests/test_postgresql.py::TestPostgresql::test__query PASSED [ 65%] 4350s tests/test_postgresql.py::TestPostgresql::test__read_postgres_gucs_validators_file PASSED [ 65%] 4350s tests/test_postgresql.py::TestPostgresql::test__read_recovery_params PASSED [ 65%] 4350s tests/test_postgresql.py::TestPostgresql::test__read_recovery_params_pre_v12 PASSED [ 65%] 4350s tests/test_postgresql.py::TestPostgresql::test__wait_for_connection_close PASSED [ 65%] 4350s tests/test_postgresql.py::TestPostgresql::test__write_recovery_params PASSED [ 65%] 4350s tests/test_postgresql.py::TestPostgresql::test_call_nowait PASSED [ 66%] 4350s tests/test_postgresql.py::TestPostgresql::test_can_create_replica_without_replication_connection PASSED [ 66%] 4350s tests/test_postgresql.py::TestPostgresql::test_check_for_startup PASSED [ 66%] 4350s tests/test_postgresql.py::TestPostgresql::test_check_recovery_conf PASSED [ 66%] 4350s tests/test_postgresql.py::TestPostgresql::test_checkpoint PASSED [ 66%] 4350s tests/test_postgresql.py::TestPostgresql::test_controldata PASSED [ 66%] 4350s tests/test_postgresql.py::TestPostgresql::test_effective_configuration PASSED [ 67%] 4350s tests/test_postgresql.py::TestPostgresql::test_follow PASSED [ 67%] 4350s tests/test_postgresql.py::TestPostgresql::test_get_major_version PASSED [ 67%] 4350s tests/test_postgresql.py::TestPostgresql::test_get_postgres_role_from_data_directory PASSED [ 67%] 4350s tests/test_postgresql.py::TestPostgresql::test_get_primary_timeline PASSED [ 67%] 4350s tests/test_postgresql.py::TestPostgresql::test_get_server_parameters PASSED [ 67%] 4350s tests/test_postgresql.py::TestPostgresql::test_handle_parameter_change PASSED [ 67%] 4350s tests/test_postgresql.py::TestPostgresql::test_is_healthy PASSED [ 68%] 4350s tests/test_postgresql.py::TestPostgresql::test_is_primary PASSED [ 68%] 4350s tests/test_postgresql.py::TestPostgresql::test_is_primary_exception PASSED [ 68%] 4350s tests/test_postgresql.py::TestPostgresql::test_is_running PASSED [ 68%] 4350s tests/test_postgresql.py::TestPostgresql::test_latest_checkpoint_location PASSED [ 68%] 4350s tests/test_postgresql.py::TestPostgresql::test_move_data_directory PASSED [ 68%] 4350s tests/test_postgresql.py::TestPostgresql::test_pgpass_is_dir PASSED [ 69%] 4350s tests/test_postgresql.py::TestPostgresql::test_postmaster_start_time PASSED [ 69%] 4350s tests/test_postgresql.py::TestPostgresql::test_promote PASSED [ 69%] 4350s tests/test_postgresql.py::TestPostgresql::test_query PASSED [ 69%] 4350s tests/test_postgresql.py::TestPostgresql::test_received_timeline PASSED [ 69%] 4350s tests/test_postgresql.py::TestPostgresql::test_reload PASSED [ 69%] 4350s tests/test_postgresql.py::TestPostgresql::test_reload_config PASSED [ 69%] 4350s tests/test_postgresql.py::TestPostgresql::test_remove_data_directory PASSED [ 70%] 4350s tests/test_postgresql.py::TestPostgresql::test_replica_cached_timeline PASSED [ 70%] 4350s tests/test_postgresql.py::TestPostgresql::test_replica_method_can_work_without_replication_connection PASSED [ 70%] 4350s tests/test_postgresql.py::TestPostgresql::test_resolve_connection_addresses PASSED [ 70%] 4350s tests/test_postgresql.py::TestPostgresql::test_restart PASSED [ 70%] 4350s tests/test_postgresql.py::TestPostgresql::test_restore_configuration_files PASSED [ 70%] 4350s tests/test_postgresql.py::TestPostgresql::test_save_configuration_files PASSED [ 71%] 4350s tests/test_postgresql.py::TestPostgresql::test_set_enforce_hot_standby_feedback PASSED [ 71%] 4350s tests/test_postgresql.py::TestPostgresql::test_start PASSED [ 71%] 4350s tests/test_postgresql.py::TestPostgresql::test_stop PASSED [ 71%] 4350s tests/test_postgresql.py::TestPostgresql::test_sysid PASSED [ 71%] 4350s tests/test_postgresql.py::TestPostgresql::test_terminate_starting_postmaster PASSED [ 71%] 4350s tests/test_postgresql.py::TestPostgresql::test_timeline_wal_position PASSED [ 72%] 4350s tests/test_postgresql.py::TestPostgresql::test_validator_factory PASSED [ 72%] 4350s tests/test_postgresql.py::TestPostgresql::test_wait_for_port_open PASSED [ 72%] 4350s tests/test_postgresql.py::TestPostgresql::test_wait_for_startup PASSED [ 72%] 4350s tests/test_postgresql.py::TestPostgresql::test_write_pgpass PASSED [ 72%] 4350s tests/test_postgresql.py::TestPostgresql::test_write_postgresql_and_sanitize_auto_conf PASSED [ 72%] 4350s tests/test_postgresql.py::TestPostgresql2::test_available_gucs PASSED [ 72%] 4350s tests/test_postgresql.py::TestPostgresql2::test_cluster_info_query PASSED [ 73%] 4350s tests/test_postgresql.py::TestPostgresql2::test_load_current_server_parameters PASSED [ 73%] 4350s tests/test_postmaster.py::TestPostmasterProcess::test_from_pid PASSED [ 73%] 4350s tests/test_postmaster.py::TestPostmasterProcess::test_from_pidfile PASSED [ 73%] 4350s tests/test_postmaster.py::TestPostmasterProcess::test_init PASSED [ 73%] 4350s tests/test_postmaster.py::TestPostmasterProcess::test_read_postmaster_pidfile PASSED [ 73%] 4350s tests/test_postmaster.py::TestPostmasterProcess::test_signal_kill PASSED [ 74%] 4350s tests/test_postmaster.py::TestPostmasterProcess::test_signal_stop PASSED [ 74%] 4350s tests/test_postmaster.py::TestPostmasterProcess::test_signal_stop_nt PASSED [ 74%] 4350s tests/test_postmaster.py::TestPostmasterProcess::test_start PASSED [ 74%] 4350s tests/test_postmaster.py::TestPostmasterProcess::test_wait_for_user_backends_to_close PASSED [ 74%] 4350s tests/test_raft.py::TestTCPTransport::test__connectIfNecessarySingle PASSED [ 74%] 4350s tests/test_raft.py::TestDynMemberSyncObj::test__SyncObj__doChangeCluster PASSED [ 74%] 4350s tests/test_raft.py::TestDynMemberSyncObj::test_add_member PASSED [ 75%] 4350s tests/test_raft.py::TestDynMemberSyncObj::test_getMembers PASSED [ 75%] 4353s tests/test_raft.py::TestKVStoreTTL::test_delete PASSED [ 75%] 4355s tests/test_raft.py::TestKVStoreTTL::test_expire PASSED [ 75%] 4357s tests/test_raft.py::TestKVStoreTTL::test_on_ready_override PASSED [ 75%] 4357s tests/test_raft.py::TestKVStoreTTL::test_retry PASSED [ 75%] 4359s tests/test_raft.py::TestKVStoreTTL::test_set PASSED [ 76%] 4359s tests/test_raft.py::TestRaft::test_init PASSED [ 76%] 4361s tests/test_raft.py::TestRaft::test_raft PASSED [ 76%] 4361s tests/test_raft_controller.py::TestPatroniRaftController::test_patroni_raft_controller_main PASSED [ 76%] 4361s tests/test_raft_controller.py::TestPatroniRaftController::test_reload_config PASSED [ 76%] 4361s tests/test_raft_controller.py::TestPatroniRaftController::test_run PASSED [ 76%] 4361s tests/test_rewind.py::TestRewind::test__check_timeline_and_lsn PASSED [ 76%] 4361s tests/test_rewind.py::TestRewind::test__get_local_timeline_lsn PASSED [ 77%] 4361s tests/test_rewind.py::TestRewind::test__log_primary_history PASSED [ 77%] 4361s tests/test_rewind.py::TestRewind::test_archive_ready_wals PASSED [ 77%] 4361s tests/test_rewind.py::TestRewind::test_can_rewind PASSED [ 77%] 4361s tests/test_rewind.py::TestRewind::test_check_leader_is_not_in_recovery PASSED [ 77%] 4361s tests/test_rewind.py::TestRewind::test_cleanup_archive_status PASSED [ 77%] 4361s tests/test_rewind.py::TestRewind::test_ensure_checkpoint_after_promote PASSED [ 78%] 4361s tests/test_rewind.py::TestRewind::test_ensure_clean_shutdown PASSED [ 78%] 4361s tests/test_rewind.py::TestRewind::test_execute PASSED [ 78%] 4361s tests/test_rewind.py::TestRewind::test_maybe_clean_pg_replslot PASSED [ 78%] 4361s tests/test_rewind.py::TestRewind::test_pg_rewind PASSED [ 78%] 4361s tests/test_rewind.py::TestRewind::test_read_postmaster_opts PASSED [ 78%] 4361s tests/test_rewind.py::TestRewind::test_single_user_mode PASSED [ 79%] 4361s tests/test_slots.py::TestSlotsHandler::test__ensure_logical_slots_replica PASSED [ 79%] 4361s tests/test_slots.py::TestSlotsHandler::test_advance_physical_slots PASSED [ 79%] 4361s tests/test_slots.py::TestSlotsHandler::test_cascading_replica_sync_replication_slots PASSED [ 79%] 4361s tests/test_slots.py::TestSlotsHandler::test_check_logical_slots_readiness PASSED [ 79%] 4361s tests/test_slots.py::TestSlotsHandler::test_copy_logical_slots PASSED [ 79%] 4361s tests/test_slots.py::TestSlotsHandler::test_fsync_dir PASSED [ 79%] 4361s tests/test_slots.py::TestSlotsHandler::test_nostream_slot_processing PASSED [ 80%] 4361s tests/test_slots.py::TestSlotsHandler::test_on_promote PASSED [ 80%] 4361s tests/test_slots.py::TestSlotsHandler::test_process_permanent_slots PASSED [ 80%] 4361s tests/test_slots.py::TestSlotsHandler::test_slots_advance_thread PASSED [ 80%] 4361s tests/test_slots.py::TestSlotsHandler::test_sync_replication_slots PASSED [ 80%] 4361s tests/test_sync.py::TestSync::test_pick_sync_standby PASSED [ 80%] 4361s tests/test_sync.py::TestSync::test_set_sync_standby PASSED [ 81%] 4361s tests/test_utils.py::TestUtils::test_enable_keepalive PASSED [ 81%] 4361s tests/test_utils.py::TestUtils::test_polling_loop PASSED [ 81%] 4361s tests/test_utils.py::TestUtils::test_unquote PASSED [ 81%] 4361s tests/test_utils.py::TestUtils::test_validate_directory_couldnt_create PASSED [ 81%] 4361s tests/test_utils.py::TestUtils::test_validate_directory_is_not_a_directory PASSED [ 81%] 4361s tests/test_utils.py::TestUtils::test_validate_directory_not_writable PASSED [ 81%] 4361s tests/test_utils.py::TestUtils::test_validate_directory_writable PASSED [ 82%] 4361s tests/test_utils.py::TestRetrySleeper::test_copy PASSED [ 82%] 4361s tests/test_utils.py::TestRetrySleeper::test_deadline PASSED [ 82%] 4361s tests/test_utils.py::TestRetrySleeper::test_maximum_delay PASSED [ 82%] 4361s tests/test_utils.py::TestRetrySleeper::test_reset PASSED [ 82%] 4361s tests/test_utils.py::TestRetrySleeper::test_too_many_tries PASSED [ 82%] 4361s tests/test_validator.py::TestValidator::test_bin_dir_is_empty PASSED [ 83%] 4362s tests/test_validator.py::TestValidator::test_bin_dir_is_empty_string_excutables_in_path PASSED [ 83%] 4362s tests/test_validator.py::TestValidator::test_bin_dir_is_file PASSED [ 83%] 4362s tests/test_validator.py::TestValidator::test_complete_config PASSED [ 83%] 4362s tests/test_validator.py::TestValidator::test_data_dir_contains_pg_version PASSED [ 83%] 4362s tests/test_validator.py::TestValidator::test_data_dir_is_empty_string PASSED [ 83%] 4362s tests/test_validator.py::TestValidator::test_directory_contains PASSED [ 83%] 4362s tests/test_validator.py::TestValidator::test_empty_config PASSED [ 84%] 4362s tests/test_validator.py::TestValidator::test_failover_priority_int PASSED [ 84%] 4362s tests/test_validator.py::TestValidator::test_json_log_format PASSED [ 84%] 4362s tests/test_validator.py::TestValidator::test_one_of PASSED [ 84%] 4362s tests/test_validator.py::TestValidator::test_pg_version_missmatch PASSED [ 84%] 4362s tests/test_validator.py::TestValidator::test_pg_wal_doesnt_exist PASSED [ 84%] 4362s tests/test_validator.py::TestValidator::test_validate_binary_name PASSED [ 85%] 4362s tests/test_validator.py::TestValidator::test_validate_binary_name_empty_string PASSED [ 85%] 4362s tests/test_validator.py::TestValidator::test_validate_binary_name_missing PASSED [ 85%] 4362s tests/test_wale_restore.py::TestWALERestore::test_create_replica_with_s3 PASSED [ 85%] 4362s tests/test_wale_restore.py::TestWALERestore::test_fix_subdirectory_path_if_broken PASSED [ 85%] 4362s tests/test_wale_restore.py::TestWALERestore::test_get_major_version PASSED [ 85%] 4362s tests/test_wale_restore.py::TestWALERestore::test_main PASSED [ 86%] 4362s tests/test_wale_restore.py::TestWALERestore::test_run PASSED [ 86%] 4362s tests/test_wale_restore.py::TestWALERestore::test_should_use_s3_to_create_replica PASSED [ 86%] 4362s tests/test_watchdog.py::TestWatchdog::test_basic_operation PASSED [ 86%] 4362s tests/test_watchdog.py::TestWatchdog::test_config_reload PASSED [ 86%] 4362s tests/test_watchdog.py::TestWatchdog::test_exceptions PASSED [ 86%] 4362s tests/test_watchdog.py::TestWatchdog::test_invalid_timings PASSED [ 86%] 4362s tests/test_watchdog.py::TestWatchdog::test_parse_mode PASSED [ 87%] 4362s tests/test_watchdog.py::TestWatchdog::test_timeout_does_not_ensure_safe_termination PASSED [ 87%] 4362s tests/test_watchdog.py::TestWatchdog::test_unsafe_timeout_disable_watchdog_and_exit PASSED [ 87%] 4362s tests/test_watchdog.py::TestWatchdog::test_unsupported_platform PASSED [ 87%] 4362s tests/test_watchdog.py::TestWatchdog::test_watchdog_activate PASSED [ 87%] 4362s tests/test_watchdog.py::TestWatchdog::test_watchdog_not_activated PASSED [ 87%] 4362s tests/test_watchdog.py::TestNullWatchdog::test_basics PASSED [ 88%] 4362s tests/test_watchdog.py::TestLinuxWatchdogDevice::test__ioctl PASSED [ 88%] 4362s tests/test_watchdog.py::TestLinuxWatchdogDevice::test_basics PASSED [ 88%] 4362s tests/test_watchdog.py::TestLinuxWatchdogDevice::test_error_handling PASSED [ 88%] 4362s tests/test_watchdog.py::TestLinuxWatchdogDevice::test_is_healthy PASSED [ 88%] 4362s tests/test_watchdog.py::TestLinuxWatchdogDevice::test_open PASSED [ 88%] 4362s tests/test_zookeeper.py::TestPatroniSequentialThreadingHandler::test_create_connection PASSED [ 88%] 4362s tests/test_zookeeper.py::TestPatroniSequentialThreadingHandler::test_select PASSED [ 89%] 4362s tests/test_zookeeper.py::TestPatroniKazooClient::test__call PASSED [ 89%] 4362s tests/test_zookeeper.py::TestZooKeeper::test__cluster_loader PASSED [ 89%] 4362s tests/test_zookeeper.py::TestZooKeeper::test__get_citus_cluster PASSED [ 89%] 4362s tests/test_zookeeper.py::TestZooKeeper::test__kazoo_connect PASSED [ 89%] 4362s tests/test_zookeeper.py::TestZooKeeper::test_attempt_to_acquire_leader PASSED [ 89%] 4362s tests/test_zookeeper.py::TestZooKeeper::test_cancel_initialization PASSED [ 90%] 4362s tests/test_zookeeper.py::TestZooKeeper::test_delete_cluster PASSED [ 90%] 4362s tests/test_zookeeper.py::TestZooKeeper::test_delete_leader PASSED [ 90%] 4362s tests/test_zookeeper.py::TestZooKeeper::test_get_children PASSED [ 90%] 4362s tests/test_zookeeper.py::TestZooKeeper::test_get_citus_coordinator PASSED [ 90%] 4362s tests/test_zookeeper.py::TestZooKeeper::test_get_cluster PASSED [ 90%] 4362s tests/test_zookeeper.py::TestZooKeeper::test_get_mpp_coordinator PASSED [ 90%] 4362s tests/test_zookeeper.py::TestZooKeeper::test_get_node PASSED [ 91%] 4362s tests/test_zookeeper.py::TestZooKeeper::test_initialize PASSED [ 91%] 4362s tests/test_zookeeper.py::TestZooKeeper::test_reload_config PASSED [ 91%] 4362s tests/test_zookeeper.py::TestZooKeeper::test_set_config_value PASSED [ 91%] 4362s tests/test_zookeeper.py::TestZooKeeper::test_set_failover_value PASSED [ 91%] 4362s tests/test_zookeeper.py::TestZooKeeper::test_set_history_value PASSED [ 91%] 4362s tests/test_zookeeper.py::TestZooKeeper::test_sync_state PASSED [ 92%] 4362s tests/test_zookeeper.py::TestZooKeeper::test_take_leader PASSED [ 92%] 4362s tests/test_zookeeper.py::TestZooKeeper::test_touch_member PASSED [ 92%] 4362s tests/test_zookeeper.py::TestZooKeeper::test_update_leader PASSED [ 92%] 4362s tests/test_zookeeper.py::TestZooKeeper::test_watch PASSED [ 92%] 4362s tests/test_zookeeper.py::TestZooKeeper::test_watcher PASSED [ 92%] 4362s tests/test_zookeeper.py::TestZooKeeper::test_write_leader_optime PASSED [ 93%] 4362s patroni/__init__.py::patroni.parse_version PASSED [ 93%] 4362s patroni/api.py::patroni.api.check_access PASSED [ 93%] 4362s patroni/collections.py::patroni.collections.CaseInsensitiveDict.__len__ PASSED [ 93%] 4362s patroni/collections.py::patroni.collections.CaseInsensitiveDict.__repr__ PASSED [ 93%] 4362s patroni/collections.py::patroni.collections.CaseInsensitiveSet.__len__ PASSED [ 93%] 4362s patroni/collections.py::patroni.collections.CaseInsensitiveSet.__repr__ PASSED [ 93%] 4362s patroni/collections.py::patroni.collections.CaseInsensitiveSet.__str__ SKIPPED [ 94%] 4362s patroni/collections.py::patroni.collections._FrozenDict.__len__ PASSED [ 94%] 4362s patroni/ctl.py::patroni.ctl.format_pg_version PASSED [ 94%] 4362s patroni/ctl.py::patroni.ctl.parse_dcs PASSED [ 94%] 4362s patroni/ctl.py::patroni.ctl.parse_scheduled PASSED [ 94%] 4363s patroni/ctl.py::patroni.ctl.watching PASSED [ 94%] 4363s patroni/utils.py::patroni.utils.compare_values PASSED [ 95%] 4363s patroni/utils.py::patroni.utils.convert_int_from_base_unit PASSED [ 95%] 4363s patroni/utils.py::patroni.utils.convert_real_from_base_unit PASSED [ 95%] 4363s patroni/utils.py::patroni.utils.convert_to_base_unit PASSED [ 95%] 4363s patroni/utils.py::patroni.utils.deep_compare PASSED [ 95%] 4363s patroni/utils.py::patroni.utils.maybe_convert_from_base_unit PASSED [ 95%] 4363s patroni/utils.py::patroni.utils.parse_bool PASSED [ 95%] 4363s patroni/utils.py::patroni.utils.parse_int PASSED [ 96%] 4363s patroni/utils.py::patroni.utils.parse_real PASSED [ 96%] 4363s patroni/utils.py::patroni.utils.split_host_port PASSED [ 96%] 4363s patroni/utils.py::patroni.utils.strtod PASSED [ 96%] 4363s patroni/utils.py::patroni.utils.strtol PASSED [ 96%] 4363s patroni/utils.py::patroni.utils.unquote PASSED [ 96%] 4363s patroni/dcs/__init__.py::patroni.dcs.Cluster.__len__ PASSED [ 97%] 4363s patroni/dcs/__init__.py::patroni.dcs.Cluster.timeline PASSED [ 97%] 4363s patroni/dcs/__init__.py::patroni.dcs.ClusterConfig.from_node PASSED [ 97%] 4363s patroni/dcs/__init__.py::patroni.dcs.Failover PASSED [ 97%] 4363s patroni/dcs/__init__.py::patroni.dcs.Failover.__len__ PASSED [ 97%] 4363s patroni/dcs/__init__.py::patroni.dcs.Leader.checkpoint_after_promote PASSED [ 97%] 4363s patroni/dcs/__init__.py::patroni.dcs.Member.from_node PASSED [ 97%] 4363s patroni/dcs/__init__.py::patroni.dcs.Member.patroni_version PASSED [ 98%] 4363s patroni/dcs/__init__.py::patroni.dcs.SyncState.from_node PASSED [ 98%] 4363s patroni/dcs/__init__.py::patroni.dcs.SyncState.matches PASSED [ 98%] 4363s patroni/dcs/__init__.py::patroni.dcs.TimelineHistory.from_node PASSED [ 98%] 4363s patroni/dcs/kubernetes.py::patroni.dcs.kubernetes.Kubernetes.subsets_changed PASSED [ 98%] 4363s patroni/postgresql/bootstrap.py::patroni.postgresql.bootstrap.Bootstrap.process_user_options PASSED [ 98%] 4363s patroni/postgresql/config.py::patroni.postgresql.config.parse_dsn PASSED [ 99%] 4363s patroni/postgresql/config.py::patroni.postgresql.config.read_recovery_param_value PASSED [ 99%] 4363s patroni/postgresql/misc.py::patroni.postgresql.misc.postgres_major_version_to_int PASSED [ 99%] 4363s patroni/postgresql/misc.py::patroni.postgresql.misc.postgres_version_to_int PASSED [ 99%] 4363s patroni/postgresql/sync.py::patroni.postgresql.sync.parse_sync_standby_names PASSED [ 99%] 4363s patroni/scripts/wale_restore.py::patroni.scripts.wale_restore.repr_size PASSED [ 99%] 4366s patroni/scripts/wale_restore.py::patroni.scripts.wale_restore.size_as_bytes PASSED [100%] 4366s 4366s =============================== warnings summary =============================== 4366s tests/test_ha.py::TestHa::test_scheduled_switchover_from_leader 4366s /tmp/autopkgtest.j0Dj5k/build.cfs/src/tests/test_ha.py:793: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). 4366s scheduled = datetime.datetime.utcnow().replace(tzinfo=tzutc) 4366s 4366s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 4366s 4366s ---------- coverage: platform linux, python 3.12.3-final-0 ----------- 4366s Name Stmts Miss Cover Missing 4366s ----------------------------------------------------------------------------------- 4366s patroni/__init__.py 13 0 100% 4366s patroni/__main__.py 199 1 99% 395 4366s patroni/api.py 770 0 100% 4366s patroni/async_executor.py 96 0 100% 4366s patroni/collections.py 56 3 95% 50, 99, 107 4366s patroni/config.py 371 0 100% 4366s patroni/config_generator.py 211 0 100% 4366s patroni/ctl.py 936 0 100% 4366s patroni/daemon.py 76 0 100% 4366s patroni/dcs/__init__.py 637 0 100% 4366s patroni/dcs/consul.py 485 0 100% 4366s patroni/dcs/etcd3.py 679 0 100% 4366s patroni/dcs/etcd.py 603 0 100% 4366s patroni/dcs/exhibitor.py 61 0 100% 4366s patroni/dcs/kubernetes.py 938 0 100% 4366s patroni/dcs/raft.py 319 0 100% 4366s patroni/dcs/zookeeper.py 288 0 100% 4366s patroni/dynamic_loader.py 35 0 100% 4366s patroni/exceptions.py 16 0 100% 4366s patroni/file_perm.py 43 0 100% 4366s patroni/global_config.py 81 0 100% 4366s patroni/ha.py 1244 2 99% 1925-1926 4366s patroni/log.py 215 0 100% 4366s patroni/postgresql/__init__.py 821 0 100% 4366s patroni/postgresql/available_parameters/__init__.py 21 0 100% 4366s patroni/postgresql/bootstrap.py 254 0 100% 4366s patroni/postgresql/callback_executor.py 55 0 100% 4366s patroni/postgresql/cancellable.py 104 0 100% 4366s patroni/postgresql/config.py 822 0 100% 4366s patroni/postgresql/connection.py 75 0 100% 4366s patroni/postgresql/misc.py 41 0 100% 4366s patroni/postgresql/mpp/__init__.py 89 0 100% 4366s patroni/postgresql/mpp/citus.py 259 122 53% 49, 52, 62, 66, 135-144, 149-162, 183-186, 205-227, 230-234, 255-271, 274-299, 302-320, 330, 338, 343-346, 360-361, 369-380, 395-399, 436, 457-458 4366s patroni/postgresql/postmaster.py 170 0 100% 4366s patroni/postgresql/rewind.py 416 0 100% 4366s patroni/postgresql/slots.py 334 0 100% 4366s patroni/postgresql/sync.py 130 0 100% 4366s patroni/postgresql/validator.py 157 0 100% 4366s patroni/psycopg.py 42 16 62% 19, 25-26, 42, 44-82, 120 4366s patroni/raft_controller.py 22 0 100% 4366s patroni/request.py 62 0 100% 4366s patroni/scripts/__init__.py 0 0 100% 4366s patroni/scripts/aws.py 59 1 98% 86 4366s patroni/scripts/barman/__init__.py 0 0 100% 4366s patroni/scripts/barman/cli.py 51 1 98% 240 4366s patroni/scripts/barman/config_switch.py 51 0 100% 4366s patroni/scripts/barman/recover.py 37 0 100% 4366s patroni/scripts/barman/utils.py 94 0 100% 4366s patroni/scripts/wale_restore.py 207 1 99% 374 4366s patroni/tags.py 38 0 100% 4366s patroni/utils.py 350 0 100% 4366s patroni/validator.py 301 0 100% 4366s patroni/version.py 1 0 100% 4366s patroni/watchdog/__init__.py 2 0 100% 4366s patroni/watchdog/base.py 203 0 100% 4366s patroni/watchdog/linux.py 135 1 99% 36 4366s ----------------------------------------------------------------------------------- 4366s TOTAL 13775 148 99% 4366s Coverage XML written to file coverage.xml 4366s 4366s ================= 629 passed, 14 skipped, 1 warning in 30.83s ================== 4366s autopkgtest [20:29:49]: test test: -----------------------] 4367s test PASS 4367s autopkgtest [20:29:50]: test test: - - - - - - - - - - results - - - - - - - - - - 4367s autopkgtest [20:29:50]: @@@@@@@@@@@@@@@@@@@@ summary 4367s acceptance-etcd3 PASS 4367s acceptance-etcd-basic PASS 4367s acceptance-etcd PASS 4367s acceptance-consul SKIP installation fails and skip-not-installable set 4367s acceptance-zookeeper PASS 4367s acceptance-raft PASS 4367s test PASS 4380s flock: timeout while waiting to get lock 4380s Creating nova instance adt-oracular-amd64-patroni-20240517-191703-juju-7f2275-prod-proposed-migration-environment-3-6515371e-83d6-4004-be58-ca88eaf2ec23 from image adt/ubuntu-oracular-amd64-server-20240517.img (UUID 563125b5-f02b-4a53-8995-aabb4f54fc43)... 4380s flock: timeout while waiting to get lock 4380s Creating nova instance adt-oracular-amd64-patroni-20240517-191703-juju-7f2275-prod-proposed-migration-environment-3-6515371e-83d6-4004-be58-ca88eaf2ec23 from image adt/ubuntu-oracular-amd64-server-20240517.img (UUID 563125b5-f02b-4a53-8995-aabb4f54fc43)... 4380s flock: timeout while waiting to get lock 4380s Creating nova instance adt-oracular-amd64-patroni-20240517-191703-juju-7f2275-prod-proposed-migration-environment-3-6515371e-83d6-4004-be58-ca88eaf2ec23 from image adt/ubuntu-oracular-amd64-server-20240517.img (UUID 563125b5-f02b-4a53-8995-aabb4f54fc43)... 4380s Creating nova instance adt-oracular-amd64-patroni-20240517-191703-juju-7f2275-prod-proposed-migration-environment-3-6515371e-83d6-4004-be58-ca88eaf2ec23 from image adt/ubuntu-oracular-amd64-server-20240517.img (UUID 563125b5-f02b-4a53-8995-aabb4f54fc43)... 4380s flock: timeout while waiting to get lock 4380s Creating nova instance adt-oracular-amd64-patroni-20240517-191703-juju-7f2275-prod-proposed-migration-environment-3-6515371e-83d6-4004-be58-ca88eaf2ec23 from image adt/ubuntu-oracular-amd64-server-20240517.img (UUID 563125b5-f02b-4a53-8995-aabb4f54fc43)... 4380s flock: timeout while waiting to get lock 4380s Creating nova instance adt-oracular-amd64-patroni-20240517-191703-juju-7f2275-prod-proposed-migration-environment-3-6515371e-83d6-4004-be58-ca88eaf2ec23 from image adt/ubuntu-oracular-amd64-server-20240517.img (UUID 563125b5-f02b-4a53-8995-aabb4f54fc43)...