0s autopkgtest [13:51:49]: starting date and time: 2025-05-02 13:51:49+0000 0s autopkgtest [13:51:49]: git checkout: 9986aa8c Merge branch 'skia/fix_network_interface' into 'ubuntu/production' 0s autopkgtest [13:51:49]: host juju-7f2275-prod-proposed-migration-environment-9; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.t_uew7zh/out --timeout-copy=6000 --setup-commands 'ln -s /dev/null /etc/systemd/system/bluetooth.service; printf "http_proxy=http://squid.internal:3128\nhttps_proxy=http://squid.internal:3128\nno_proxy=127.0.0.1,127.0.1.1,localhost,localdomain,internal,login.ubuntu.com,archive.ubuntu.com,ports.ubuntu.com,security.ubuntu.com,ddebs.ubuntu.com,changelogs.ubuntu.com,keyserver.ubuntu.com,launchpadlibrarian.net,launchpadcontent.net,launchpad.net,keystone.ps5.canonical.com,objectstorage.prodstack5.canonical.com,radosgw.ps5.canonical.com\n" >> /etc/environment' --apt-pocket=proposed=src:postgresql-common --apt-upgrade patroni --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=postgresql-common/277 -- lxd -r lxd-armhf-10.145.243.142 lxd-armhf-10.145.243.142:autopkgtest/ubuntu/questing/armhf 22s autopkgtest [13:52:11]: testbed dpkg architecture: armhf 24s autopkgtest [13:52:13]: testbed apt version: 3.0.0 28s autopkgtest [13:52:17]: @@@@@@@@@@@@@@@@@@@@ test bed setup 30s autopkgtest [13:52:19]: testbed release detected to be: None 38s autopkgtest [13:52:27]: updating testbed package index (apt update) 40s Get:1 http://ftpmaster.internal/ubuntu questing-proposed InRelease [110 kB] 40s Get:2 http://ftpmaster.internal/ubuntu questing InRelease [110 kB] 40s Get:3 http://ftpmaster.internal/ubuntu questing-updates InRelease [110 kB] 40s Get:4 http://ftpmaster.internal/ubuntu questing-security InRelease [110 kB] 40s Get:5 http://ftpmaster.internal/ubuntu questing-proposed/multiverse Sources [44.4 kB] 40s Get:6 http://ftpmaster.internal/ubuntu questing-proposed/main Sources [171 kB] 40s Get:7 http://ftpmaster.internal/ubuntu questing-proposed/universe Sources [2029 kB] 40s Get:8 http://ftpmaster.internal/ubuntu questing-proposed/main armhf Packages [197 kB] 40s Get:9 http://ftpmaster.internal/ubuntu questing-proposed/universe armhf Packages [1391 kB] 40s Get:10 http://ftpmaster.internal/ubuntu questing-proposed/multiverse armhf Packages [13.7 kB] 40s Get:11 http://ftpmaster.internal/ubuntu questing/multiverse Sources [299 kB] 40s Get:12 http://ftpmaster.internal/ubuntu questing/main Sources [1385 kB] 40s Get:13 http://ftpmaster.internal/ubuntu questing/universe Sources [21.1 MB] 41s Get:14 http://ftpmaster.internal/ubuntu questing/main armhf Packages [1358 kB] 41s Get:15 http://ftpmaster.internal/ubuntu questing/universe armhf Packages [15.3 MB] 42s Get:16 http://ftpmaster.internal/ubuntu questing/multiverse armhf Packages [173 kB] 45s Fetched 43.9 MB in 5s (8144 kB/s) 46s Reading package lists... 52s autopkgtest [13:52:41]: upgrading testbed (apt dist-upgrade and autopurge) 54s Reading package lists... 54s Building dependency tree... 54s Reading state information... 54s Calculating upgrade...Starting pkgProblemResolver with broken count: 0 55s Starting 2 pkgProblemResolver with broken count: 0 55s Done 55s Entering ResolveByKeep 56s 56s Calculating upgrade... 56s The following packages will be upgraded: 56s base-files distro-info-data dpkg dpkg-dev htop libdpkg-perl libnpth0t64 56s motd-news-config nano ubuntu-pro-client ubuntu-pro-client-l10n usb.ids 57s 12 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 57s Need to get 3645 kB of archives. 57s After this operation, 57.3 kB of additional disk space will be used. 57s Get:1 http://ftpmaster.internal/ubuntu questing/main armhf motd-news-config all 13.7ubuntu1 [5260 B] 57s Get:2 http://ftpmaster.internal/ubuntu questing/main armhf base-files armhf 13.7ubuntu1 [75.4 kB] 57s Get:3 http://ftpmaster.internal/ubuntu questing/main armhf dpkg armhf 1.22.18ubuntu3 [1254 kB] 57s Get:4 http://ftpmaster.internal/ubuntu questing/main armhf libnpth0t64 armhf 1.8-3 [7716 B] 57s Get:5 http://ftpmaster.internal/ubuntu questing/main armhf distro-info-data all 0.64 [6664 B] 57s Get:6 http://ftpmaster.internal/ubuntu questing/main armhf ubuntu-pro-client-l10n armhf 35.1ubuntu0 [19.7 kB] 57s Get:7 http://ftpmaster.internal/ubuntu questing/main armhf ubuntu-pro-client armhf 35.1ubuntu0 [258 kB] 57s Get:8 http://ftpmaster.internal/ubuntu questing/main armhf nano armhf 8.4-1 [278 kB] 57s Get:9 http://ftpmaster.internal/ubuntu questing/main armhf usb.ids all 2025.04.01-1 [223 kB] 57s Get:10 http://ftpmaster.internal/ubuntu questing/main armhf dpkg-dev all 1.22.18ubuntu3 [1089 kB] 57s Get:11 http://ftpmaster.internal/ubuntu questing/main armhf libdpkg-perl all 1.22.18ubuntu3 [281 kB] 57s Get:12 http://ftpmaster.internal/ubuntu questing/main armhf htop armhf 3.4.1-4 [147 kB] 58s Fetched 3645 kB in 1s (4913 kB/s) 58s (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 ... 63953 files and directories currently installed.) 58s Preparing to unpack .../motd-news-config_13.7ubuntu1_all.deb ... 58s Unpacking motd-news-config (13.7ubuntu1) over (13.6ubuntu2) ... 58s Preparing to unpack .../base-files_13.7ubuntu1_armhf.deb ... 58s Unpacking base-files (13.7ubuntu1) over (13.6ubuntu2) ... 58s Setting up base-files (13.7ubuntu1) ... 58s Installing new version of config file /etc/issue ... 58s Installing new version of config file /etc/issue.net ... 58s Installing new version of config file /etc/lsb-release ... 59s motd-news.service is a disabled or a static unit not running, not starting it. 59s (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 ... 63953 files and directories currently installed.) 59s Preparing to unpack .../dpkg_1.22.18ubuntu3_armhf.deb ... 59s Unpacking dpkg (1.22.18ubuntu3) over (1.22.18ubuntu2) ... 59s Setting up dpkg (1.22.18ubuntu3) ... 60s (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 ... 63953 files and directories currently installed.) 60s Preparing to unpack .../libnpth0t64_1.8-3_armhf.deb ... 60s Unpacking libnpth0t64:armhf (1.8-3) over (1.8-2) ... 60s Setting up libnpth0t64:armhf (1.8-3) ... 60s (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 ... 63953 files and directories currently installed.) 60s Preparing to unpack .../0-distro-info-data_0.64_all.deb ... 60s Unpacking distro-info-data (0.64) over (0.63) ... 60s Preparing to unpack .../1-ubuntu-pro-client-l10n_35.1ubuntu0_armhf.deb ... 60s Unpacking ubuntu-pro-client-l10n (35.1ubuntu0) over (35) ... 60s Preparing to unpack .../2-ubuntu-pro-client_35.1ubuntu0_armhf.deb ... 60s Unpacking ubuntu-pro-client (35.1ubuntu0) over (35) ... 60s Preparing to unpack .../3-nano_8.4-1_armhf.deb ... 60s Unpacking nano (8.4-1) over (8.3-1) ... 60s Preparing to unpack .../4-usb.ids_2025.04.01-1_all.deb ... 60s Unpacking usb.ids (2025.04.01-1) over (2025.01.14-1) ... 60s Preparing to unpack .../5-dpkg-dev_1.22.18ubuntu3_all.deb ... 60s Unpacking dpkg-dev (1.22.18ubuntu3) over (1.22.18ubuntu2) ... 60s Preparing to unpack .../6-libdpkg-perl_1.22.18ubuntu3_all.deb ... 60s Unpacking libdpkg-perl (1.22.18ubuntu3) over (1.22.18ubuntu2) ... 60s Preparing to unpack .../7-htop_3.4.1-4_armhf.deb ... 60s Unpacking htop (3.4.1-4) over (3.4.0-2) ... 60s Setting up motd-news-config (13.7ubuntu1) ... 60s Setting up distro-info-data (0.64) ... 60s Setting up htop (3.4.1-4) ... 60s Setting up usb.ids (2025.04.01-1) ... 60s Setting up libdpkg-perl (1.22.18ubuntu3) ... 60s Setting up nano (8.4-1) ... 60s Installing new version of config file /etc/nanorc ... 60s Setting up ubuntu-pro-client (35.1ubuntu0) ... 61s apparmor_parser: Unable to replace "ubuntu_pro_apt_news". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 61s 61s apparmor_parser: Unable to replace "apt_methods". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 61s 61s apparmor_parser: Unable to replace "ubuntu_pro_esm_cache". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 61s 62s Setting up ubuntu-pro-client-l10n (35.1ubuntu0) ... 62s Setting up dpkg-dev (1.22.18ubuntu3) ... 62s Processing triggers for install-info (7.1.1-1) ... 62s Processing triggers for libc-bin (2.41-6ubuntu1) ... 63s Processing triggers for man-db (2.13.0-1) ... 64s Processing triggers for plymouth-theme-ubuntu-text (24.004.60-2ubuntu7) ... 64s Processing triggers for initramfs-tools (0.147ubuntu1) ... 67s Reading package lists... 67s Building dependency tree... 67s Reading state information... 67s Starting pkgProblemResolver with broken count: 0 67s Starting 2 pkgProblemResolver with broken count: 0 67s Done 68s Solving dependencies... 69s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 70s autopkgtest [13:52:59]: rebooting testbed after setup commands that affected boot 111s autopkgtest [13:53:40]: testbed running kernel: Linux 6.8.0-58-generic #60~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Mar 28 14:48:37 UTC 2 136s autopkgtest [13:54:05]: @@@@@@@@@@@@@@@@@@@@ apt-source patroni 150s Get:1 http://ftpmaster.internal/ubuntu questing/universe patroni 4.0.4-7 (dsc) [2850 B] 150s Get:2 http://ftpmaster.internal/ubuntu questing/universe patroni 4.0.4-7 (tar) [1205 kB] 150s Get:3 http://ftpmaster.internal/ubuntu questing/universe patroni 4.0.4-7 (diff) [26.8 kB] 150s gpgv: Signature made Wed Feb 12 17:39:45 2025 UTC 150s gpgv: using RSA key 9CA877749FAB2E4FA96862ECDC686A27B43481B0 150s gpgv: Can't check signature: No public key 150s dpkg-source: warning: cannot verify inline signature for ./patroni_4.0.4-7.dsc: no acceptable signature found 150s autopkgtest [13:54:19]: testing package patroni version 4.0.4-7 152s autopkgtest [13:54:21]: build not needed 155s autopkgtest [13:54:24]: test test: preparing testbed 157s Reading package lists... 157s Building dependency tree... 157s Reading state information... 157s Starting pkgProblemResolver with broken count: 0 158s Starting 2 pkgProblemResolver with broken count: 0 158s Done 159s The following NEW packages will be installed: 159s fonts-font-awesome fonts-lato libcares2 libev4t64 libjs-jquery 159s libjs-jquery-hotkeys libjs-jquery-isonscreen libjs-jquery-metadata 159s libjs-jquery-tablesorter libjs-jquery-throttle-debounce libjs-sphinxdoc 159s libjs-underscore libpq5 patroni patroni-doc python3-aiohappyeyeballs 159s python3-aiohttp python3-aiosignal python3-async-timeout python3-cachetools 159s python3-click python3-consul python3-coverage python3-dnspython python3-etcd 159s python3-eventlet python3-flake8 python3-frozenlist python3-gevent 159s python3-google-auth python3-greenlet python3-iniconfig python3-kazoo 159s python3-kerberos python3-kubernetes python3-mccabe python3-mock 159s python3-multidict python3-pluggy python3-prettytable python3-psutil 159s python3-psycopg2 python3-pure-sasl python3-pyasn1 python3-pyasn1-modules 159s python3-pycodestyle python3-pyflakes python3-pysyncobj python3-pytest 159s python3-pytest-cov python3-pyu2f python3-requests-oauthlib python3-responses 159s python3-rsa python3-wcwidth python3-websocket python3-yarl python3-ydiff 159s python3-zope.event python3-zope.interface sphinx-rtd-theme-common 159s 0 upgraded, 61 newly installed, 0 to remove and 0 not upgraded. 159s Need to get 10.3 MB of archives. 159s After this operation, 61.1 MB of additional disk space will be used. 159s Get:1 http://ftpmaster.internal/ubuntu questing/main armhf fonts-lato all 2.015-1 [2781 kB] 159s Get:2 http://ftpmaster.internal/ubuntu questing/main armhf fonts-font-awesome all 5.0.10+really4.7.0~dfsg-4.1 [516 kB] 159s Get:3 http://ftpmaster.internal/ubuntu questing/main armhf libcares2 armhf 1.34.4-2.1 [85.0 kB] 159s Get:4 http://ftpmaster.internal/ubuntu questing/universe armhf libev4t64 armhf 1:4.33-2.1build1 [26.3 kB] 159s Get:5 http://ftpmaster.internal/ubuntu questing/main armhf libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 159s Get:6 http://ftpmaster.internal/ubuntu questing/universe armhf libjs-jquery-metadata all 12-4 [6582 B] 159s Get:7 http://ftpmaster.internal/ubuntu questing/universe armhf libjs-jquery-tablesorter all 1:2.31.3+dfsg1-4 [192 kB] 159s Get:8 http://ftpmaster.internal/ubuntu questing/universe armhf libjs-jquery-throttle-debounce all 1.1+dfsg.1-2 [12.5 kB] 159s Get:9 http://ftpmaster.internal/ubuntu questing/main armhf libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [118 kB] 159s Get:10 http://ftpmaster.internal/ubuntu questing/main armhf libjs-sphinxdoc all 8.1.3-5 [31.0 kB] 159s Get:11 http://ftpmaster.internal/ubuntu questing/main armhf libpq5 armhf 17.4-1 [125 kB] 159s Get:12 http://ftpmaster.internal/ubuntu questing/main armhf python3-click all 8.2.0+0.really.8.1.8-1 [80.0 kB] 159s Get:13 http://ftpmaster.internal/ubuntu questing/main armhf python3-wcwidth all 0.2.13+dfsg1-1 [26.3 kB] 159s Get:14 http://ftpmaster.internal/ubuntu questing/main armhf python3-prettytable all 3.12.0-1 [36.5 kB] 159s Get:15 http://ftpmaster.internal/ubuntu questing/main armhf python3-psutil armhf 5.9.8-2build3 [194 kB] 159s Get:16 http://ftpmaster.internal/ubuntu questing/universe armhf python3-ydiff all 1.4.2-1 [19.0 kB] 159s Get:17 http://ftpmaster.internal/ubuntu questing/main armhf python3-psycopg2 armhf 2.9.10-1build1 [125 kB] 159s Get:18 http://ftpmaster.internal/ubuntu questing/main armhf python3-dnspython all 2.7.0-1ubuntu1 [167 kB] 159s Get:19 http://ftpmaster.internal/ubuntu questing/universe armhf python3-etcd all 0.4.5-6 [32.1 kB] 159s Get:20 http://ftpmaster.internal/ubuntu questing/universe armhf python3-consul all 1.5.1+dfsg-1 [21.7 kB] 159s Get:21 http://ftpmaster.internal/ubuntu questing/main armhf python3-greenlet armhf 3.1.0-1build1 [161 kB] 159s Get:22 http://ftpmaster.internal/ubuntu questing/main armhf python3-eventlet all 0.39.0-0ubuntu1 [277 kB] 159s Get:23 http://ftpmaster.internal/ubuntu questing/universe armhf python3-zope.event all 5.0-0.1 [7512 B] 159s Get:24 http://ftpmaster.internal/ubuntu questing/main armhf python3-zope.interface armhf 7.2-1build1 [139 kB] 159s Get:25 http://ftpmaster.internal/ubuntu questing/universe armhf python3-gevent armhf 24.11.1-1build1 [822 kB] 159s Get:26 http://ftpmaster.internal/ubuntu questing/universe armhf python3-kerberos armhf 1.1.14-3.1build11 [19.9 kB] 159s Get:27 http://ftpmaster.internal/ubuntu questing/universe armhf python3-pure-sasl all 0.5.1+dfsg1-5 [11.4 kB] 159s Get:28 http://ftpmaster.internal/ubuntu questing/universe armhf python3-kazoo all 2.9.0-2 [103 kB] 159s Get:29 http://ftpmaster.internal/ubuntu questing/universe armhf python3-multidict armhf 6.2.0-2 [32.8 kB] 160s Get:30 http://ftpmaster.internal/ubuntu questing/universe armhf python3-yarl armhf 1.13.1-1build2 [91.4 kB] 160s Get:31 http://ftpmaster.internal/ubuntu questing/universe armhf python3-async-timeout all 5.0.1-1 [6830 B] 160s Get:32 http://ftpmaster.internal/ubuntu questing/universe armhf python3-aiohappyeyeballs all 2.6.1-1 [11.1 kB] 160s Get:33 http://ftpmaster.internal/ubuntu questing/universe armhf python3-frozenlist armhf 1.5.0-1build2 [47.0 kB] 160s Get:34 http://ftpmaster.internal/ubuntu questing/universe armhf python3-aiosignal all 1.3.2-1 [5182 B] 160s Get:35 http://ftpmaster.internal/ubuntu questing/universe armhf python3-aiohttp armhf 3.10.11-1build1 [289 kB] 160s Get:36 http://ftpmaster.internal/ubuntu questing/main armhf python3-cachetools all 5.3.3-1 [10.3 kB] 160s Get:37 http://ftpmaster.internal/ubuntu questing/main armhf python3-pyasn1 all 0.6.1-1 [56.4 kB] 160s Get:38 http://ftpmaster.internal/ubuntu questing/main armhf python3-pyasn1-modules all 0.4.1-2 [80.3 kB] 160s Get:39 http://ftpmaster.internal/ubuntu questing/universe armhf python3-pyu2f all 0.1.5-4 [22.9 kB] 160s Get:40 http://ftpmaster.internal/ubuntu questing/universe armhf python3-responses all 0.25.6-1 [40.5 kB] 160s Get:41 http://ftpmaster.internal/ubuntu questing/universe armhf python3-rsa all 4.9-2 [28.2 kB] 160s Get:42 http://ftpmaster.internal/ubuntu questing/universe armhf python3-google-auth all 2.28.2-3 [91.0 kB] 160s Get:43 http://ftpmaster.internal/ubuntu questing/universe armhf python3-requests-oauthlib all 1.3.1-1 [18.8 kB] 160s Get:44 http://ftpmaster.internal/ubuntu questing/universe armhf python3-websocket all 1.8.0-2 [38.5 kB] 160s Get:45 http://ftpmaster.internal/ubuntu questing/universe armhf python3-kubernetes all 30.1.0-2 [385 kB] 160s Get:46 http://ftpmaster.internal/ubuntu questing/universe armhf python3-pysyncobj all 0.3.14-2 [61.9 kB] 160s Get:47 http://ftpmaster.internal/ubuntu questing/universe armhf patroni all 4.0.4-7 [281 kB] 160s Get:48 http://ftpmaster.internal/ubuntu questing/main armhf sphinx-rtd-theme-common all 3.0.2+dfsg-2 [1014 kB] 160s Get:49 http://ftpmaster.internal/ubuntu questing/universe armhf patroni-doc all 4.0.4-7 [526 kB] 160s Get:50 http://ftpmaster.internal/ubuntu questing/universe armhf python3-coverage armhf 7.6.0+dfsg1-2build1 [152 kB] 160s Get:51 http://ftpmaster.internal/ubuntu questing/universe armhf python3-mccabe all 0.7.0-1 [8678 B] 160s Get:52 http://ftpmaster.internal/ubuntu questing/universe armhf python3-pycodestyle all 2.12.1-2 [30.2 kB] 160s Get:53 http://ftpmaster.internal/ubuntu questing/universe armhf python3-pyflakes all 3.2.0-3 [53.0 kB] 160s Get:54 http://ftpmaster.internal/ubuntu questing/universe armhf python3-flake8 all 7.1.1-3 [44.0 kB] 160s Get:55 http://ftpmaster.internal/ubuntu questing/universe armhf python3-iniconfig all 1.1.1-2 [6024 B] 160s Get:56 http://ftpmaster.internal/ubuntu questing/universe armhf python3-pluggy all 1.5.0-1 [21.0 kB] 160s Get:57 http://ftpmaster.internal/ubuntu questing/universe armhf python3-pytest all 8.3.5-1 [252 kB] 160s Get:58 http://ftpmaster.internal/ubuntu questing/universe armhf libjs-jquery-hotkeys all 0.2.0-1 [13.3 kB] 160s Get:59 http://ftpmaster.internal/ubuntu questing/universe armhf libjs-jquery-isonscreen all 1.2.0-1.1 [3244 B] 160s Get:60 http://ftpmaster.internal/ubuntu questing/universe armhf python3-pytest-cov all 5.0.0-1 [21.3 kB] 160s Get:61 http://ftpmaster.internal/ubuntu questing/universe armhf python3-mock all 5.1.0-1 [64.1 kB] 161s Fetched 10.3 MB in 1s (7276 kB/s) 161s Selecting previously unselected package fonts-lato. 161s (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 ... 63953 files and directories currently installed.) 161s Preparing to unpack .../00-fonts-lato_2.015-1_all.deb ... 161s Unpacking fonts-lato (2.015-1) ... 161s Selecting previously unselected package fonts-font-awesome. 161s Preparing to unpack .../01-fonts-font-awesome_5.0.10+really4.7.0~dfsg-4.1_all.deb ... 161s Unpacking fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 161s Selecting previously unselected package libcares2:armhf. 161s Preparing to unpack .../02-libcares2_1.34.4-2.1_armhf.deb ... 161s Unpacking libcares2:armhf (1.34.4-2.1) ... 161s Selecting previously unselected package libev4t64:armhf. 161s Preparing to unpack .../03-libev4t64_1%3a4.33-2.1build1_armhf.deb ... 161s Unpacking libev4t64:armhf (1:4.33-2.1build1) ... 161s Selecting previously unselected package libjs-jquery. 161s Preparing to unpack .../04-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 161s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 161s Selecting previously unselected package libjs-jquery-metadata. 161s Preparing to unpack .../05-libjs-jquery-metadata_12-4_all.deb ... 161s Unpacking libjs-jquery-metadata (12-4) ... 161s Selecting previously unselected package libjs-jquery-tablesorter. 161s Preparing to unpack .../06-libjs-jquery-tablesorter_1%3a2.31.3+dfsg1-4_all.deb ... 161s Unpacking libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... 161s Selecting previously unselected package libjs-jquery-throttle-debounce. 161s Preparing to unpack .../07-libjs-jquery-throttle-debounce_1.1+dfsg.1-2_all.deb ... 161s Unpacking libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... 161s Selecting previously unselected package libjs-underscore. 161s Preparing to unpack .../08-libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ... 161s Unpacking libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 161s Selecting previously unselected package libjs-sphinxdoc. 161s Preparing to unpack .../09-libjs-sphinxdoc_8.1.3-5_all.deb ... 161s Unpacking libjs-sphinxdoc (8.1.3-5) ... 161s Selecting previously unselected package libpq5:armhf. 161s Preparing to unpack .../10-libpq5_17.4-1_armhf.deb ... 161s Unpacking libpq5:armhf (17.4-1) ... 161s Selecting previously unselected package python3-click. 161s Preparing to unpack .../11-python3-click_8.2.0+0.really.8.1.8-1_all.deb ... 161s Unpacking python3-click (8.2.0+0.really.8.1.8-1) ... 161s Selecting previously unselected package python3-wcwidth. 162s Preparing to unpack .../12-python3-wcwidth_0.2.13+dfsg1-1_all.deb ... 162s Unpacking python3-wcwidth (0.2.13+dfsg1-1) ... 162s Selecting previously unselected package python3-prettytable. 162s Preparing to unpack .../13-python3-prettytable_3.12.0-1_all.deb ... 162s Unpacking python3-prettytable (3.12.0-1) ... 162s Selecting previously unselected package python3-psutil. 162s Preparing to unpack .../14-python3-psutil_5.9.8-2build3_armhf.deb ... 162s Unpacking python3-psutil (5.9.8-2build3) ... 162s Selecting previously unselected package python3-ydiff. 162s Preparing to unpack .../15-python3-ydiff_1.4.2-1_all.deb ... 162s Unpacking python3-ydiff (1.4.2-1) ... 162s Selecting previously unselected package python3-psycopg2. 162s Preparing to unpack .../16-python3-psycopg2_2.9.10-1build1_armhf.deb ... 162s Unpacking python3-psycopg2 (2.9.10-1build1) ... 162s Selecting previously unselected package python3-dnspython. 162s Preparing to unpack .../17-python3-dnspython_2.7.0-1ubuntu1_all.deb ... 162s Unpacking python3-dnspython (2.7.0-1ubuntu1) ... 162s Selecting previously unselected package python3-etcd. 162s Preparing to unpack .../18-python3-etcd_0.4.5-6_all.deb ... 162s Unpacking python3-etcd (0.4.5-6) ... 162s Selecting previously unselected package python3-consul. 162s Preparing to unpack .../19-python3-consul_1.5.1+dfsg-1_all.deb ... 162s Unpacking python3-consul (1.5.1+dfsg-1) ... 162s Selecting previously unselected package python3-greenlet. 162s Preparing to unpack .../20-python3-greenlet_3.1.0-1build1_armhf.deb ... 162s Unpacking python3-greenlet (3.1.0-1build1) ... 162s Selecting previously unselected package python3-eventlet. 162s Preparing to unpack .../21-python3-eventlet_0.39.0-0ubuntu1_all.deb ... 162s Unpacking python3-eventlet (0.39.0-0ubuntu1) ... 162s Selecting previously unselected package python3-zope.event. 162s Preparing to unpack .../22-python3-zope.event_5.0-0.1_all.deb ... 162s Unpacking python3-zope.event (5.0-0.1) ... 162s Selecting previously unselected package python3-zope.interface. 162s Preparing to unpack .../23-python3-zope.interface_7.2-1build1_armhf.deb ... 162s Unpacking python3-zope.interface (7.2-1build1) ... 162s Selecting previously unselected package python3-gevent. 162s Preparing to unpack .../24-python3-gevent_24.11.1-1build1_armhf.deb ... 162s Unpacking python3-gevent (24.11.1-1build1) ... 162s Selecting previously unselected package python3-kerberos. 162s Preparing to unpack .../25-python3-kerberos_1.1.14-3.1build11_armhf.deb ... 162s Unpacking python3-kerberos (1.1.14-3.1build11) ... 162s Selecting previously unselected package python3-pure-sasl. 162s Preparing to unpack .../26-python3-pure-sasl_0.5.1+dfsg1-5_all.deb ... 162s Unpacking python3-pure-sasl (0.5.1+dfsg1-5) ... 162s Selecting previously unselected package python3-kazoo. 162s Preparing to unpack .../27-python3-kazoo_2.9.0-2_all.deb ... 162s Unpacking python3-kazoo (2.9.0-2) ... 162s Selecting previously unselected package python3-multidict. 162s Preparing to unpack .../28-python3-multidict_6.2.0-2_armhf.deb ... 162s Unpacking python3-multidict (6.2.0-2) ... 163s Selecting previously unselected package python3-yarl. 163s Preparing to unpack .../29-python3-yarl_1.13.1-1build2_armhf.deb ... 163s Unpacking python3-yarl (1.13.1-1build2) ... 163s Selecting previously unselected package python3-async-timeout. 163s Preparing to unpack .../30-python3-async-timeout_5.0.1-1_all.deb ... 163s Unpacking python3-async-timeout (5.0.1-1) ... 163s Selecting previously unselected package python3-aiohappyeyeballs. 163s Preparing to unpack .../31-python3-aiohappyeyeballs_2.6.1-1_all.deb ... 163s Unpacking python3-aiohappyeyeballs (2.6.1-1) ... 163s Selecting previously unselected package python3-frozenlist. 163s Preparing to unpack .../32-python3-frozenlist_1.5.0-1build2_armhf.deb ... 163s Unpacking python3-frozenlist (1.5.0-1build2) ... 163s Selecting previously unselected package python3-aiosignal. 163s Preparing to unpack .../33-python3-aiosignal_1.3.2-1_all.deb ... 163s Unpacking python3-aiosignal (1.3.2-1) ... 163s Selecting previously unselected package python3-aiohttp. 163s Preparing to unpack .../34-python3-aiohttp_3.10.11-1build1_armhf.deb ... 163s Unpacking python3-aiohttp (3.10.11-1build1) ... 163s Selecting previously unselected package python3-cachetools. 163s Preparing to unpack .../35-python3-cachetools_5.3.3-1_all.deb ... 163s Unpacking python3-cachetools (5.3.3-1) ... 163s Selecting previously unselected package python3-pyasn1. 163s Preparing to unpack .../36-python3-pyasn1_0.6.1-1_all.deb ... 163s Unpacking python3-pyasn1 (0.6.1-1) ... 163s Selecting previously unselected package python3-pyasn1-modules. 163s Preparing to unpack .../37-python3-pyasn1-modules_0.4.1-2_all.deb ... 163s Unpacking python3-pyasn1-modules (0.4.1-2) ... 163s Selecting previously unselected package python3-pyu2f. 163s Preparing to unpack .../38-python3-pyu2f_0.1.5-4_all.deb ... 163s Unpacking python3-pyu2f (0.1.5-4) ... 163s Selecting previously unselected package python3-responses. 163s Preparing to unpack .../39-python3-responses_0.25.6-1_all.deb ... 163s Unpacking python3-responses (0.25.6-1) ... 163s Selecting previously unselected package python3-rsa. 163s Preparing to unpack .../40-python3-rsa_4.9-2_all.deb ... 163s Unpacking python3-rsa (4.9-2) ... 163s Selecting previously unselected package python3-google-auth. 163s Preparing to unpack .../41-python3-google-auth_2.28.2-3_all.deb ... 163s Unpacking python3-google-auth (2.28.2-3) ... 163s Selecting previously unselected package python3-requests-oauthlib. 163s Preparing to unpack .../42-python3-requests-oauthlib_1.3.1-1_all.deb ... 163s Unpacking python3-requests-oauthlib (1.3.1-1) ... 163s Selecting previously unselected package python3-websocket. 163s Preparing to unpack .../43-python3-websocket_1.8.0-2_all.deb ... 163s Unpacking python3-websocket (1.8.0-2) ... 163s Selecting previously unselected package python3-kubernetes. 163s Preparing to unpack .../44-python3-kubernetes_30.1.0-2_all.deb ... 163s Unpacking python3-kubernetes (30.1.0-2) ... 163s Selecting previously unselected package python3-pysyncobj. 163s Preparing to unpack .../45-python3-pysyncobj_0.3.14-2_all.deb ... 163s Unpacking python3-pysyncobj (0.3.14-2) ... 163s Selecting previously unselected package patroni. 163s Preparing to unpack .../46-patroni_4.0.4-7_all.deb ... 163s Unpacking patroni (4.0.4-7) ... 163s Selecting previously unselected package sphinx-rtd-theme-common. 163s Preparing to unpack .../47-sphinx-rtd-theme-common_3.0.2+dfsg-2_all.deb ... 163s Unpacking sphinx-rtd-theme-common (3.0.2+dfsg-2) ... 164s Selecting previously unselected package patroni-doc. 164s Preparing to unpack .../48-patroni-doc_4.0.4-7_all.deb ... 164s Unpacking patroni-doc (4.0.4-7) ... 164s Selecting previously unselected package python3-coverage. 164s Preparing to unpack .../49-python3-coverage_7.6.0+dfsg1-2build1_armhf.deb ... 164s Unpacking python3-coverage (7.6.0+dfsg1-2build1) ... 164s Selecting previously unselected package python3-mccabe. 164s Preparing to unpack .../50-python3-mccabe_0.7.0-1_all.deb ... 164s Unpacking python3-mccabe (0.7.0-1) ... 164s Selecting previously unselected package python3-pycodestyle. 164s Preparing to unpack .../51-python3-pycodestyle_2.12.1-2_all.deb ... 164s Unpacking python3-pycodestyle (2.12.1-2) ... 164s Selecting previously unselected package python3-pyflakes. 164s Preparing to unpack .../52-python3-pyflakes_3.2.0-3_all.deb ... 164s Unpacking python3-pyflakes (3.2.0-3) ... 164s Selecting previously unselected package python3-flake8. 164s Preparing to unpack .../53-python3-flake8_7.1.1-3_all.deb ... 164s Unpacking python3-flake8 (7.1.1-3) ... 164s Selecting previously unselected package python3-iniconfig. 164s Preparing to unpack .../54-python3-iniconfig_1.1.1-2_all.deb ... 164s Unpacking python3-iniconfig (1.1.1-2) ... 164s Selecting previously unselected package python3-pluggy. 164s Preparing to unpack .../55-python3-pluggy_1.5.0-1_all.deb ... 164s Unpacking python3-pluggy (1.5.0-1) ... 164s Selecting previously unselected package python3-pytest. 164s Preparing to unpack .../56-python3-pytest_8.3.5-1_all.deb ... 164s Unpacking python3-pytest (8.3.5-1) ... 164s Selecting previously unselected package libjs-jquery-hotkeys. 164s Preparing to unpack .../57-libjs-jquery-hotkeys_0.2.0-1_all.deb ... 164s Unpacking libjs-jquery-hotkeys (0.2.0-1) ... 164s Selecting previously unselected package libjs-jquery-isonscreen. 164s Preparing to unpack .../58-libjs-jquery-isonscreen_1.2.0-1.1_all.deb ... 164s Unpacking libjs-jquery-isonscreen (1.2.0-1.1) ... 164s Selecting previously unselected package python3-pytest-cov. 164s Preparing to unpack .../59-python3-pytest-cov_5.0.0-1_all.deb ... 164s Unpacking python3-pytest-cov (5.0.0-1) ... 164s Selecting previously unselected package python3-mock. 164s Preparing to unpack .../60-python3-mock_5.1.0-1_all.deb ... 164s Unpacking python3-mock (5.1.0-1) ... 164s Setting up python3-iniconfig (1.1.1-2) ... 164s Setting up libev4t64:armhf (1:4.33-2.1build1) ... 164s Setting up fonts-lato (2.015-1) ... 164s Setting up python3-pysyncobj (0.3.14-2) ... 164s Setting up python3-cachetools (5.3.3-1) ... 165s Setting up python3-zope.event (5.0-0.1) ... 165s Setting up python3-zope.interface (7.2-1build1) ... 165s Setting up python3-pyflakes (3.2.0-3) ... 165s Setting up python3-ydiff (1.4.2-1) ... 165s Setting up libpq5:armhf (17.4-1) ... 165s Setting up python3-kerberos (1.1.14-3.1build11) ... 165s Setting up python3-coverage (7.6.0+dfsg1-2build1) ... 166s Setting up libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... 166s Setting up python3-click (8.2.0+0.really.8.1.8-1) ... 166s Setting up python3-psutil (5.9.8-2build3) ... 166s Setting up python3-multidict (6.2.0-2) ... 166s Setting up python3-frozenlist (1.5.0-1build2) ... 167s Setting up python3-aiosignal (1.3.2-1) ... 167s Setting up python3-mock (5.1.0-1) ... 167s Setting up python3-async-timeout (5.0.1-1) ... 167s Setting up python3-responses (0.25.6-1) ... 167s Setting up python3-pycodestyle (2.12.1-2) ... 168s Setting up python3-wcwidth (0.2.13+dfsg1-1) ... 168s Setting up python3-pyu2f (0.1.5-4) ... 168s Setting up python3-greenlet (3.1.0-1build1) ... 168s Setting up libcares2:armhf (1.34.4-2.1) ... 168s Setting up python3-psycopg2 (2.9.10-1build1) ... 168s Setting up python3-aiohappyeyeballs (2.6.1-1) ... 168s Setting up python3-pluggy (1.5.0-1) ... 169s Setting up python3-dnspython (2.7.0-1ubuntu1) ... 169s Setting up python3-pyasn1 (0.6.1-1) ... 169s Setting up python3-mccabe (0.7.0-1) ... 169s Setting up python3-consul (1.5.1+dfsg-1) ... 169s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 169s Setting up libjs-jquery-hotkeys (0.2.0-1) ... 169s Setting up python3-prettytable (3.12.0-1) ... 170s Setting up python3-yarl (1.13.1-1build2) ... 170s Setting up fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 170s Setting up sphinx-rtd-theme-common (3.0.2+dfsg-2) ... 170s Setting up python3-websocket (1.8.0-2) ... 170s Setting up python3-requests-oauthlib (1.3.1-1) ... 170s Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 170s Setting up python3-pure-sasl (0.5.1+dfsg1-5) ... 170s Setting up python3-etcd (0.4.5-6) ... 170s Setting up python3-pytest (8.3.5-1) ... 171s Setting up python3-aiohttp (3.10.11-1build1) ... 171s Setting up python3-gevent (24.11.1-1build1) ... 172s Setting up python3-flake8 (7.1.1-3) ... 172s Setting up python3-eventlet (0.39.0-0ubuntu1) ... 172s Setting up python3-kazoo (2.9.0-2) ... 172s Setting up python3-pyasn1-modules (0.4.1-2) ... 173s Setting up libjs-jquery-metadata (12-4) ... 173s Setting up libjs-jquery-isonscreen (1.2.0-1.1) ... 173s Setting up libjs-sphinxdoc (8.1.3-5) ... 173s Setting up libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... 173s Setting up python3-rsa (4.9-2) ... 173s Setting up patroni (4.0.4-7) ... 173s Created symlink '/etc/systemd/system/multi-user.target.wants/patroni.service' → '/usr/lib/systemd/system/patroni.service'. 174s Setting up patroni-doc (4.0.4-7) ... 174s Setting up python3-pytest-cov (5.0.0-1) ... 174s Setting up python3-google-auth (2.28.2-3) ... 174s Setting up python3-kubernetes (30.1.0-2) ... 176s Processing triggers for man-db (2.13.0-1) ... 176s Processing triggers for libc-bin (2.41-6ubuntu1) ... 186s autopkgtest [13:54:55]: test test: [----------------------- 190s ============================= test session starts ============================== 190s platform linux -- Python 3.13.3, pytest-8.3.5, pluggy-1.5.0 190s rootdir: /tmp/autopkgtest.po6k1D/build.1xR/src 190s plugins: typeguard-4.4.2, cov-5.0.0 190s collected 651 items 190s 190s tests/test_api.py ................................... [ 5%] 190s tests/test_async_executor.py .... [ 5%] 191s tests/test_aws.py .... [ 6%] 191s tests/test_barman.py ................ [ 9%] 191s tests/test_bootstrap.py .......... [ 10%] 191s tests/test_callback_executor.py . [ 10%] 191s tests/test_cancellable.py ... [ 11%] 191s tests/test_citus.py sssssssssssss................ [ 15%] 191s tests/test_config.py .......... [ 17%] 192s tests/test_config_generator.py ...... [ 18%] 192s tests/test_consul.py ....................... [ 21%] 192s tests/test_ctl.py ...................................... [ 27%] 193s tests/test_etcd.py ............................. [ 31%] 193s tests/test_etcd3.py ................................. [ 37%] 193s tests/test_exhibitor.py ... [ 37%] 193s tests/test_file_perm.py ... [ 37%] 194s tests/test_ha.py ....................................................... [ 46%] 195s ................................................................ [ 56%] 196s tests/test_kubernetes.py ........................................ [ 62%] 196s tests/test_log.py .......... [ 63%] 196s tests/test_mpp.py .. [ 64%] 197s tests/test_patroni.py .................... [ 67%] 197s tests/test_postgresql.py ............................................... [ 74%] 197s ............. [ 76%] 197s tests/test_postmaster.py ......... [ 77%] 197s tests/test_quorum.py ............... [ 80%] 206s tests/test_raft.py ........... [ 81%] 206s tests/test_raft_controller.py ... [ 82%] 206s tests/test_rewind.py .............. [ 84%] 206s tests/test_slots.py ............... [ 86%] 207s tests/test_sync.py .... [ 87%] 207s tests/test_utils.py ............... [ 89%] 207s tests/test_validator.py .................. [ 92%] 207s tests/test_wale_restore.py ...... [ 93%] 207s tests/test_watchdog.py ................ [ 95%] 207s tests/test_zookeeper.py ........................... [100%] 207s 207s ======================= 638 passed, 13 skipped in 18.59s ======================= 208s autopkgtest [13:55:17]: test test: -----------------------] 212s test PASS 212s autopkgtest [13:55:21]: test test: - - - - - - - - - - results - - - - - - - - - - 216s autopkgtest [13:55:25]: test acceptance-etcd3: preparing testbed 238s autopkgtest [13:55:47]: testbed dpkg architecture: armhf 240s autopkgtest [13:55:49]: testbed apt version: 3.0.0 244s autopkgtest [13:55:53]: @@@@@@@@@@@@@@@@@@@@ test bed setup 245s autopkgtest [13:55:54]: testbed release detected to be: questing 253s autopkgtest [13:56:02]: updating testbed package index (apt update) 255s Get:1 http://ftpmaster.internal/ubuntu questing-proposed InRelease [110 kB] 255s Get:2 http://ftpmaster.internal/ubuntu questing InRelease [110 kB] 255s Get:3 http://ftpmaster.internal/ubuntu questing-updates InRelease [110 kB] 255s Get:4 http://ftpmaster.internal/ubuntu questing-security InRelease [110 kB] 255s Get:5 http://ftpmaster.internal/ubuntu questing-proposed/multiverse Sources [44.4 kB] 255s Get:6 http://ftpmaster.internal/ubuntu questing-proposed/universe Sources [2029 kB] 255s Get:7 http://ftpmaster.internal/ubuntu questing-proposed/main Sources [171 kB] 255s Get:8 http://ftpmaster.internal/ubuntu questing-proposed/main armhf Packages [197 kB] 255s Get:9 http://ftpmaster.internal/ubuntu questing-proposed/universe armhf Packages [1391 kB] 256s Get:10 http://ftpmaster.internal/ubuntu questing-proposed/multiverse armhf Packages [13.7 kB] 256s Get:11 http://ftpmaster.internal/ubuntu questing/main Sources [1385 kB] 256s Get:12 http://ftpmaster.internal/ubuntu questing/multiverse Sources [299 kB] 256s Get:13 http://ftpmaster.internal/ubuntu questing/universe Sources [21.1 MB] 256s Get:14 http://ftpmaster.internal/ubuntu questing/main armhf Packages [1358 kB] 256s Get:15 http://ftpmaster.internal/ubuntu questing/universe armhf Packages [15.3 MB] 257s Get:16 http://ftpmaster.internal/ubuntu questing/multiverse armhf Packages [173 kB] 260s Fetched 43.9 MB in 5s (8424 kB/s) 261s Reading package lists... 267s autopkgtest [13:56:16]: upgrading testbed (apt dist-upgrade and autopurge) 268s Reading package lists... 269s Building dependency tree... 269s Reading state information... 269s Calculating upgrade...Starting pkgProblemResolver with broken count: 0 270s Starting 2 pkgProblemResolver with broken count: 0 270s Done 270s Entering ResolveByKeep 271s 271s Calculating upgrade... 271s The following packages will be upgraded: 271s base-files distro-info-data dpkg dpkg-dev htop libdpkg-perl libnpth0t64 271s motd-news-config nano ubuntu-pro-client ubuntu-pro-client-l10n usb.ids 272s 12 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 272s Need to get 3645 kB of archives. 272s After this operation, 57.3 kB of additional disk space will be used. 272s Get:1 http://ftpmaster.internal/ubuntu questing/main armhf motd-news-config all 13.7ubuntu1 [5260 B] 272s Get:2 http://ftpmaster.internal/ubuntu questing/main armhf base-files armhf 13.7ubuntu1 [75.4 kB] 272s Get:3 http://ftpmaster.internal/ubuntu questing/main armhf dpkg armhf 1.22.18ubuntu3 [1254 kB] 272s Get:4 http://ftpmaster.internal/ubuntu questing/main armhf libnpth0t64 armhf 1.8-3 [7716 B] 272s Get:5 http://ftpmaster.internal/ubuntu questing/main armhf distro-info-data all 0.64 [6664 B] 272s Get:6 http://ftpmaster.internal/ubuntu questing/main armhf ubuntu-pro-client-l10n armhf 35.1ubuntu0 [19.7 kB] 272s Get:7 http://ftpmaster.internal/ubuntu questing/main armhf ubuntu-pro-client armhf 35.1ubuntu0 [258 kB] 272s Get:8 http://ftpmaster.internal/ubuntu questing/main armhf nano armhf 8.4-1 [278 kB] 272s Get:9 http://ftpmaster.internal/ubuntu questing/main armhf usb.ids all 2025.04.01-1 [223 kB] 272s Get:10 http://ftpmaster.internal/ubuntu questing/main armhf dpkg-dev all 1.22.18ubuntu3 [1089 kB] 272s Get:11 http://ftpmaster.internal/ubuntu questing/main armhf libdpkg-perl all 1.22.18ubuntu3 [281 kB] 272s Get:12 http://ftpmaster.internal/ubuntu questing/main armhf htop armhf 3.4.1-4 [147 kB] 273s Fetched 3645 kB in 1s (4607 kB/s) 273s (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 ... 63953 files and directories currently installed.) 273s Preparing to unpack .../motd-news-config_13.7ubuntu1_all.deb ... 273s Unpacking motd-news-config (13.7ubuntu1) over (13.6ubuntu2) ... 273s Preparing to unpack .../base-files_13.7ubuntu1_armhf.deb ... 273s Unpacking base-files (13.7ubuntu1) over (13.6ubuntu2) ... 273s Setting up base-files (13.7ubuntu1) ... 273s Installing new version of config file /etc/issue ... 273s Installing new version of config file /etc/issue.net ... 273s Installing new version of config file /etc/lsb-release ... 274s motd-news.service is a disabled or a static unit not running, not starting it. 274s (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 ... 63953 files and directories currently installed.) 274s Preparing to unpack .../dpkg_1.22.18ubuntu3_armhf.deb ... 274s Unpacking dpkg (1.22.18ubuntu3) over (1.22.18ubuntu2) ... 274s Setting up dpkg (1.22.18ubuntu3) ... 274s (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 ... 63953 files and directories currently installed.) 274s Preparing to unpack .../libnpth0t64_1.8-3_armhf.deb ... 274s Unpacking libnpth0t64:armhf (1.8-3) over (1.8-2) ... 274s Setting up libnpth0t64:armhf (1.8-3) ... 274s (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 ... 63953 files and directories currently installed.) 274s Preparing to unpack .../0-distro-info-data_0.64_all.deb ... 274s Unpacking distro-info-data (0.64) over (0.63) ... 274s Preparing to unpack .../1-ubuntu-pro-client-l10n_35.1ubuntu0_armhf.deb ... 274s Unpacking ubuntu-pro-client-l10n (35.1ubuntu0) over (35) ... 275s Preparing to unpack .../2-ubuntu-pro-client_35.1ubuntu0_armhf.deb ... 275s Unpacking ubuntu-pro-client (35.1ubuntu0) over (35) ... 275s Preparing to unpack .../3-nano_8.4-1_armhf.deb ... 275s Unpacking nano (8.4-1) over (8.3-1) ... 275s Preparing to unpack .../4-usb.ids_2025.04.01-1_all.deb ... 275s Unpacking usb.ids (2025.04.01-1) over (2025.01.14-1) ... 275s Preparing to unpack .../5-dpkg-dev_1.22.18ubuntu3_all.deb ... 275s Unpacking dpkg-dev (1.22.18ubuntu3) over (1.22.18ubuntu2) ... 275s Preparing to unpack .../6-libdpkg-perl_1.22.18ubuntu3_all.deb ... 275s Unpacking libdpkg-perl (1.22.18ubuntu3) over (1.22.18ubuntu2) ... 275s Preparing to unpack .../7-htop_3.4.1-4_armhf.deb ... 275s Unpacking htop (3.4.1-4) over (3.4.0-2) ... 275s Setting up motd-news-config (13.7ubuntu1) ... 275s Setting up distro-info-data (0.64) ... 275s Setting up htop (3.4.1-4) ... 275s Setting up usb.ids (2025.04.01-1) ... 275s Setting up libdpkg-perl (1.22.18ubuntu3) ... 275s Setting up nano (8.4-1) ... 275s Installing new version of config file /etc/nanorc ... 275s Setting up ubuntu-pro-client (35.1ubuntu0) ... 275s apparmor_parser: Unable to replace "ubuntu_pro_apt_news". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 275s 276s apparmor_parser: Unable to replace "apt_methods". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 276s 276s apparmor_parser: Unable to replace "ubuntu_pro_esm_cache". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 276s 277s Setting up ubuntu-pro-client-l10n (35.1ubuntu0) ... 277s Setting up dpkg-dev (1.22.18ubuntu3) ... 277s Processing triggers for install-info (7.1.1-1) ... 277s Processing triggers for libc-bin (2.41-6ubuntu1) ... 277s Processing triggers for man-db (2.13.0-1) ... 279s Processing triggers for plymouth-theme-ubuntu-text (24.004.60-2ubuntu7) ... 279s Processing triggers for initramfs-tools (0.147ubuntu1) ... 281s Reading package lists... 281s Building dependency tree... 281s Reading state information... 282s Starting pkgProblemResolver with broken count: 0 282s Starting 2 pkgProblemResolver with broken count: 0 282s Done 282s Solving dependencies... 283s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 285s autopkgtest [13:56:34]: rebooting testbed after setup commands that affected boot 351s Reading package lists... 351s Building dependency tree... 351s Reading state information... 352s Starting pkgProblemResolver with broken count: 0 352s Starting 2 pkgProblemResolver with broken count: 0 352s Done 353s The following NEW packages will be installed: 353s etcd-server fonts-font-awesome fonts-lato libio-pty-perl libipc-run-perl 353s libjs-jquery libjs-sphinxdoc libjs-underscore libjson-perl libllvm20 libpq5 353s libtime-duration-perl libtimedate-perl libxslt1.1 moreutils patroni 353s patroni-doc postgresql postgresql-17 postgresql-client-17 353s postgresql-client-common postgresql-common postgresql-common-dev 353s python3-behave python3-click python3-coverage python3-dnspython python3-etcd 353s python3-parse python3-parse-type python3-prettytable python3-psutil 353s python3-psycopg2 python3-wcwidth python3-ydiff sphinx-rtd-theme-common 353s ssl-cert 353s 0 upgraded, 37 newly installed, 0 to remove and 0 not upgraded. 353s Need to get 64.4 MB of archives. 353s After this operation, 253 MB of additional disk space will be used. 353s Get:1 http://ftpmaster.internal/ubuntu questing/main armhf fonts-lato all 2.015-1 [2781 kB] 354s Get:2 http://ftpmaster.internal/ubuntu questing/main armhf libjson-perl all 4.10000-1 [81.9 kB] 354s Get:3 http://ftpmaster.internal/ubuntu questing-proposed/main armhf postgresql-client-common all 277 [48.0 kB] 354s Get:4 http://ftpmaster.internal/ubuntu questing/main armhf libio-pty-perl armhf 1:1.20-1build3 [31.0 kB] 354s Get:5 http://ftpmaster.internal/ubuntu questing/main armhf libipc-run-perl all 20231003.0-2 [91.5 kB] 354s Get:6 http://ftpmaster.internal/ubuntu questing-proposed/main armhf postgresql-common-dev all 277 [73.4 kB] 354s Get:7 http://ftpmaster.internal/ubuntu questing/main armhf ssl-cert all 1.1.3ubuntu1 [18.7 kB] 354s Get:8 http://ftpmaster.internal/ubuntu questing-proposed/main armhf postgresql-common all 277 [101 kB] 354s Get:9 http://ftpmaster.internal/ubuntu questing/universe armhf etcd-server armhf 3.5.16-4 [11.3 MB] 355s Get:10 http://ftpmaster.internal/ubuntu questing/main armhf fonts-font-awesome all 5.0.10+really4.7.0~dfsg-4.1 [516 kB] 355s Get:11 http://ftpmaster.internal/ubuntu questing/main armhf libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 355s Get:12 http://ftpmaster.internal/ubuntu questing/main armhf libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [118 kB] 355s Get:13 http://ftpmaster.internal/ubuntu questing/main armhf libjs-sphinxdoc all 8.1.3-5 [31.0 kB] 355s Get:14 http://ftpmaster.internal/ubuntu questing/main armhf libllvm20 armhf 1:20.1.2-0ubuntu1 [29.6 MB] 356s Get:15 http://ftpmaster.internal/ubuntu questing/main armhf libpq5 armhf 17.4-1 [125 kB] 356s Get:16 http://ftpmaster.internal/ubuntu questing/main armhf libtime-duration-perl all 1.21-2 [12.3 kB] 356s Get:17 http://ftpmaster.internal/ubuntu questing/main armhf libtimedate-perl all 2.3300-2 [34.0 kB] 356s Get:18 http://ftpmaster.internal/ubuntu questing/main armhf libxslt1.1 armhf 1.1.39-0exp1ubuntu4 [151 kB] 356s Get:19 http://ftpmaster.internal/ubuntu questing/universe armhf moreutils armhf 0.69-1 [53.5 kB] 356s Get:20 http://ftpmaster.internal/ubuntu questing/main armhf python3-click all 8.2.0+0.really.8.1.8-1 [80.0 kB] 356s Get:21 http://ftpmaster.internal/ubuntu questing/main armhf python3-wcwidth all 0.2.13+dfsg1-1 [26.3 kB] 356s Get:22 http://ftpmaster.internal/ubuntu questing/main armhf python3-prettytable all 3.12.0-1 [36.5 kB] 356s Get:23 http://ftpmaster.internal/ubuntu questing/main armhf python3-psutil armhf 5.9.8-2build3 [194 kB] 356s Get:24 http://ftpmaster.internal/ubuntu questing/universe armhf python3-ydiff all 1.4.2-1 [19.0 kB] 356s Get:25 http://ftpmaster.internal/ubuntu questing/main armhf python3-psycopg2 armhf 2.9.10-1build1 [125 kB] 356s Get:26 http://ftpmaster.internal/ubuntu questing/main armhf python3-dnspython all 2.7.0-1ubuntu1 [167 kB] 356s Get:27 http://ftpmaster.internal/ubuntu questing/universe armhf python3-etcd all 0.4.5-6 [32.1 kB] 356s Get:28 http://ftpmaster.internal/ubuntu questing/universe armhf patroni all 4.0.4-7 [281 kB] 356s Get:29 http://ftpmaster.internal/ubuntu questing/main armhf sphinx-rtd-theme-common all 3.0.2+dfsg-2 [1014 kB] 356s Get:30 http://ftpmaster.internal/ubuntu questing/universe armhf patroni-doc all 4.0.4-7 [526 kB] 356s Get:31 http://ftpmaster.internal/ubuntu questing/main armhf postgresql-client-17 armhf 17.4-1 [1285 kB] 356s Get:32 http://ftpmaster.internal/ubuntu questing/main armhf postgresql-17 armhf 17.4-1 [14.8 MB] 357s Get:33 http://ftpmaster.internal/ubuntu questing-proposed/main armhf postgresql all 17+277 [16.5 kB] 357s Get:34 http://ftpmaster.internal/ubuntu questing/universe armhf python3-parse all 1.20.2-1 [27.0 kB] 357s Get:35 http://ftpmaster.internal/ubuntu questing/universe armhf python3-parse-type all 0.6.4-2 [23.5 kB] 357s Get:36 http://ftpmaster.internal/ubuntu questing/universe armhf python3-behave all 1.2.6-6 [98.6 kB] 357s Get:37 http://ftpmaster.internal/ubuntu questing/universe armhf python3-coverage armhf 7.6.0+dfsg1-2build1 [152 kB] 357s Preconfiguring packages ... 357s /var/cache/debconf/tmp.ci/postgresql.config.E7SAem: 12: pg_lsclusters: not found 357s Fetched 64.4 MB in 4s (16.4 MB/s) 357s Selecting previously unselected package fonts-lato. 357s (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 ... 63953 files and directories currently installed.) 357s Preparing to unpack .../00-fonts-lato_2.015-1_all.deb ... 357s Unpacking fonts-lato (2.015-1) ... 357s Selecting previously unselected package libjson-perl. 357s Preparing to unpack .../01-libjson-perl_4.10000-1_all.deb ... 357s Unpacking libjson-perl (4.10000-1) ... 357s Selecting previously unselected package postgresql-client-common. 358s Preparing to unpack .../02-postgresql-client-common_277_all.deb ... 358s Unpacking postgresql-client-common (277) ... 358s Selecting previously unselected package libio-pty-perl. 358s Preparing to unpack .../03-libio-pty-perl_1%3a1.20-1build3_armhf.deb ... 358s Unpacking libio-pty-perl (1:1.20-1build3) ... 358s Selecting previously unselected package libipc-run-perl. 358s Preparing to unpack .../04-libipc-run-perl_20231003.0-2_all.deb ... 358s Unpacking libipc-run-perl (20231003.0-2) ... 358s Selecting previously unselected package postgresql-common-dev. 358s Preparing to unpack .../05-postgresql-common-dev_277_all.deb ... 358s Unpacking postgresql-common-dev (277) ... 358s Selecting previously unselected package ssl-cert. 358s Preparing to unpack .../06-ssl-cert_1.1.3ubuntu1_all.deb ... 358s Unpacking ssl-cert (1.1.3ubuntu1) ... 358s Selecting previously unselected package postgresql-common. 358s Preparing to unpack .../07-postgresql-common_277_all.deb ... 358s Adding 'diversion of /usr/bin/pg_config to /usr/bin/pg_config.libpq-dev by postgresql-common' 358s Unpacking postgresql-common (277) ... 358s Selecting previously unselected package etcd-server. 358s Preparing to unpack .../08-etcd-server_3.5.16-4_armhf.deb ... 358s Unpacking etcd-server (3.5.16-4) ... 358s Selecting previously unselected package fonts-font-awesome. 358s Preparing to unpack .../09-fonts-font-awesome_5.0.10+really4.7.0~dfsg-4.1_all.deb ... 358s Unpacking fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 358s Selecting previously unselected package libjs-jquery. 358s Preparing to unpack .../10-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 358s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 358s Selecting previously unselected package libjs-underscore. 358s Preparing to unpack .../11-libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ... 358s Unpacking libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 358s Selecting previously unselected package libjs-sphinxdoc. 358s Preparing to unpack .../12-libjs-sphinxdoc_8.1.3-5_all.deb ... 358s Unpacking libjs-sphinxdoc (8.1.3-5) ... 358s Selecting previously unselected package libllvm20:armhf. 358s Preparing to unpack .../13-libllvm20_1%3a20.1.2-0ubuntu1_armhf.deb ... 358s Unpacking libllvm20:armhf (1:20.1.2-0ubuntu1) ... 359s Selecting previously unselected package libpq5:armhf. 359s Preparing to unpack .../14-libpq5_17.4-1_armhf.deb ... 359s Unpacking libpq5:armhf (17.4-1) ... 359s Selecting previously unselected package libtime-duration-perl. 359s Preparing to unpack .../15-libtime-duration-perl_1.21-2_all.deb ... 359s Unpacking libtime-duration-perl (1.21-2) ... 359s Selecting previously unselected package libtimedate-perl. 360s Preparing to unpack .../16-libtimedate-perl_2.3300-2_all.deb ... 360s Unpacking libtimedate-perl (2.3300-2) ... 360s Selecting previously unselected package libxslt1.1:armhf. 360s Preparing to unpack .../17-libxslt1.1_1.1.39-0exp1ubuntu4_armhf.deb ... 360s Unpacking libxslt1.1:armhf (1.1.39-0exp1ubuntu4) ... 360s Selecting previously unselected package moreutils. 360s Preparing to unpack .../18-moreutils_0.69-1_armhf.deb ... 360s Unpacking moreutils (0.69-1) ... 360s Selecting previously unselected package python3-click. 360s Preparing to unpack .../19-python3-click_8.2.0+0.really.8.1.8-1_all.deb ... 360s Unpacking python3-click (8.2.0+0.really.8.1.8-1) ... 360s Selecting previously unselected package python3-wcwidth. 360s Preparing to unpack .../20-python3-wcwidth_0.2.13+dfsg1-1_all.deb ... 360s Unpacking python3-wcwidth (0.2.13+dfsg1-1) ... 360s Selecting previously unselected package python3-prettytable. 360s Preparing to unpack .../21-python3-prettytable_3.12.0-1_all.deb ... 360s Unpacking python3-prettytable (3.12.0-1) ... 360s Selecting previously unselected package python3-psutil. 360s Preparing to unpack .../22-python3-psutil_5.9.8-2build3_armhf.deb ... 360s Unpacking python3-psutil (5.9.8-2build3) ... 360s Selecting previously unselected package python3-ydiff. 360s Preparing to unpack .../23-python3-ydiff_1.4.2-1_all.deb ... 360s Unpacking python3-ydiff (1.4.2-1) ... 360s Selecting previously unselected package python3-psycopg2. 360s Preparing to unpack .../24-python3-psycopg2_2.9.10-1build1_armhf.deb ... 360s Unpacking python3-psycopg2 (2.9.10-1build1) ... 360s Selecting previously unselected package python3-dnspython. 360s Preparing to unpack .../25-python3-dnspython_2.7.0-1ubuntu1_all.deb ... 360s Unpacking python3-dnspython (2.7.0-1ubuntu1) ... 360s Selecting previously unselected package python3-etcd. 360s Preparing to unpack .../26-python3-etcd_0.4.5-6_all.deb ... 360s Unpacking python3-etcd (0.4.5-6) ... 360s Selecting previously unselected package patroni. 360s Preparing to unpack .../27-patroni_4.0.4-7_all.deb ... 360s Unpacking patroni (4.0.4-7) ... 360s Selecting previously unselected package sphinx-rtd-theme-common. 360s Preparing to unpack .../28-sphinx-rtd-theme-common_3.0.2+dfsg-2_all.deb ... 360s Unpacking sphinx-rtd-theme-common (3.0.2+dfsg-2) ... 360s Selecting previously unselected package patroni-doc. 360s Preparing to unpack .../29-patroni-doc_4.0.4-7_all.deb ... 360s Unpacking patroni-doc (4.0.4-7) ... 360s Selecting previously unselected package postgresql-client-17. 360s Preparing to unpack .../30-postgresql-client-17_17.4-1_armhf.deb ... 360s Unpacking postgresql-client-17 (17.4-1) ... 360s Selecting previously unselected package postgresql-17. 360s Preparing to unpack .../31-postgresql-17_17.4-1_armhf.deb ... 360s Unpacking postgresql-17 (17.4-1) ... 361s Selecting previously unselected package postgresql. 361s Preparing to unpack .../32-postgresql_17+277_all.deb ... 361s Unpacking postgresql (17+277) ... 361s Selecting previously unselected package python3-parse. 361s Preparing to unpack .../33-python3-parse_1.20.2-1_all.deb ... 361s Unpacking python3-parse (1.20.2-1) ... 361s Selecting previously unselected package python3-parse-type. 361s Preparing to unpack .../34-python3-parse-type_0.6.4-2_all.deb ... 361s Unpacking python3-parse-type (0.6.4-2) ... 361s Selecting previously unselected package python3-behave. 361s Preparing to unpack .../35-python3-behave_1.2.6-6_all.deb ... 361s Unpacking python3-behave (1.2.6-6) ... 361s Selecting previously unselected package python3-coverage. 361s Preparing to unpack .../36-python3-coverage_7.6.0+dfsg1-2build1_armhf.deb ... 361s Unpacking python3-coverage (7.6.0+dfsg1-2build1) ... 361s Setting up postgresql-client-common (277) ... 361s Setting up fonts-lato (2.015-1) ... 361s Setting up libio-pty-perl (1:1.20-1build3) ... 361s Setting up python3-ydiff (1.4.2-1) ... 361s Setting up libpq5:armhf (17.4-1) ... 361s Setting up python3-coverage (7.6.0+dfsg1-2build1) ... 361s Setting up python3-click (8.2.0+0.really.8.1.8-1) ... 362s Setting up python3-psutil (5.9.8-2build3) ... 362s Setting up python3-wcwidth (0.2.13+dfsg1-1) ... 362s Setting up ssl-cert (1.1.3ubuntu1) ... 363s Created symlink '/etc/systemd/system/multi-user.target.wants/ssl-cert.service' → '/usr/lib/systemd/system/ssl-cert.service'. 363s Setting up libllvm20:armhf (1:20.1.2-0ubuntu1) ... 363s Setting up python3-psycopg2 (2.9.10-1build1) ... 364s Setting up libipc-run-perl (20231003.0-2) ... 364s Setting up libtime-duration-perl (1.21-2) ... 364s Setting up libtimedate-perl (2.3300-2) ... 364s Setting up python3-dnspython (2.7.0-1ubuntu1) ... 364s Setting up python3-parse (1.20.2-1) ... 364s Setting up libjson-perl (4.10000-1) ... 364s Setting up libxslt1.1:armhf (1.1.39-0exp1ubuntu4) ... 364s Setting up etcd-server (3.5.16-4) ... 364s info: Selecting UID from range 100 to 999 ... 364s 364s info: Selecting GID from range 100 to 999 ... 364s info: Adding system user `etcd' (UID 106) ... 364s info: Adding new group `etcd' (GID 110) ... 364s info: Adding new user `etcd' (UID 106) with group `etcd' ... 364s info: Creating home directory `/var/lib/etcd/' ... 365s Created symlink '/etc/systemd/system/etcd2.service' → '/usr/lib/systemd/system/etcd.service'. 365s Created symlink '/etc/systemd/system/multi-user.target.wants/etcd.service' → '/usr/lib/systemd/system/etcd.service'. 365s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 365s Setting up python3-prettytable (3.12.0-1) ... 365s Setting up fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 365s Setting up sphinx-rtd-theme-common (3.0.2+dfsg-2) ... 365s Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 365s Setting up postgresql-common-dev (277) ... 365s Setting up moreutils (0.69-1) ... 365s Setting up postgresql-client-17 (17.4-1) ... 366s update-alternatives: using /usr/share/postgresql/17/man/man1/psql.1.gz to provide /usr/share/man/man1/psql.1.gz (psql.1.gz) in auto mode 366s Setting up python3-etcd (0.4.5-6) ... 366s Setting up python3-parse-type (0.6.4-2) ... 367s Setting up postgresql-common (277) ... 367s Creating config file /etc/postgresql-common/createcluster.conf with new version 367s Building PostgreSQL dictionaries from installed myspell/hunspell packages... 367s Removing obsolete dictionary files: 368s Created symlink '/etc/systemd/system/multi-user.target.wants/postgresql.service' → '/usr/lib/systemd/system/postgresql.service'. 368s Setting up libjs-sphinxdoc (8.1.3-5) ... 368s Setting up python3-behave (1.2.6-6) ... 369s /usr/lib/python3/dist-packages/behave/formatter/ansi_escapes.py:57: SyntaxWarning: invalid escape sequence '\[' 369s _ANSI_ESCAPE_PATTERN = re.compile(u"\x1b\[\d+[mA]", re.UNICODE) 369s /usr/lib/python3/dist-packages/behave/matchers.py:284: SyntaxWarning: invalid escape sequence '\d' 369s @parse.with_pattern(r"\d+") 369s Setting up patroni (4.0.4-7) ... 369s Created symlink '/etc/systemd/system/multi-user.target.wants/patroni.service' → '/usr/lib/systemd/system/patroni.service'. 370s Setting up postgresql-17 (17.4-1) ... 371s Creating new PostgreSQL cluster 17/main ... 371s /usr/lib/postgresql/17/bin/initdb -D /var/lib/postgresql/17/main --auth-local peer --auth-host scram-sha-256 --no-instructions 371s The files belonging to this database system will be owned by user "postgres". 371s This user must also own the server process. 371s 371s The database cluster will be initialized with locale "C.UTF-8". 371s The default database encoding has accordingly been set to "UTF8". 371s The default text search configuration will be set to "english". 371s 371s Data page checksums are disabled. 371s 371s fixing permissions on existing directory /var/lib/postgresql/17/main ... ok 371s creating subdirectories ... ok 371s selecting dynamic shared memory implementation ... posix 371s selecting default "max_connections" ... 100 371s selecting default "shared_buffers" ... 128MB 371s selecting default time zone ... Etc/UTC 371s creating configuration files ... ok 371s running bootstrap script ... ok 371s performing post-bootstrap initialization ... ok 371s syncing data to disk ... ok 374s Setting up patroni-doc (4.0.4-7) ... 374s Setting up postgresql (17+277) ... 375s Processing triggers for man-db (2.13.0-1) ... 375s Processing triggers for libc-bin (2.41-6ubuntu1) ... 394s autopkgtest [13:58:23]: test acceptance-etcd3: debian/tests/acceptance etcd3 394s autopkgtest [13:58:23]: test acceptance-etcd3: [----------------------- 396s dpkg-architecture: warning: cannot determine CC system type, falling back to default (native compilation) 396s ++ ls -1r /usr/lib/postgresql/ 396s + for PG_VERSION in $(ls -1r /usr/lib/postgresql/) 396s + '[' 17 == 10 -o 17 == 11 ']' 396s + echo '### PostgreSQL 17 acceptance-etcd3 ###' 396s + bash -c 'set -o pipefail; ETCD_UNSUPPORTED_ARCH=arm DCS=etcd3 PATH=/usr/lib/postgresql/17/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin behave | ts' 396s ### PostgreSQL 17 acceptance-etcd3 ### 397s May 02 13:58:26 Feature: basic replication # features/basic_replication.feature:1 397s May 02 13:58:26 We should check that the basic bootstrapping, replication and failover works. 397s May 02 13:58:26 Scenario: check replication of a single table # features/basic_replication.feature:4 397s May 02 13:58:26 Given I start postgres-0 # features/steps/basic_replication.py:20 402s May 02 13:58:31 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 402s May 02 13:58:31 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 402s May 02 13:58:31 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:73 402s May 02 13:58:31 Then I receive a response code 200 # features/steps/patroni_api.py:100 402s May 02 13:58:31 When I start postgres-1 # features/steps/basic_replication.py:20 407s May 02 13:58:36 And I configure and start postgres-2 with a tag replicatefrom postgres-0 # features/steps/cascading_replication.py:7 412s May 02 13:58:41 And "sync" key in DCS has leader=postgres-0 after 20 seconds # features/steps/cascading_replication.py:23 412s May 02 13:58:41 And I add the table foo to postgres-0 # features/steps/basic_replication.py:66 412s May 02 13:58:41 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 413s May 02 13:58:42 Then table foo is present on postgres-2 after 20 seconds # features/steps/basic_replication.py:105 413s May 02 13:58:42 413s May 02 13:58:42 Scenario: check restart of sync replica # features/basic_replication.feature:17 413s May 02 13:58:42 Given I shut down postgres-2 # features/steps/basic_replication.py:41 414s May 02 13:58:43 Then "sync" key in DCS has sync_standby=postgres-1 after 5 seconds # features/steps/cascading_replication.py:23 414s May 02 13:58:43 When I start postgres-2 # features/steps/basic_replication.py:20 417s May 02 13:58:46 And I shut down postgres-1 # features/steps/basic_replication.py:41 420s May 02 13:58:49 Then "sync" key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 420s May 02 13:58:49 When I start postgres-1 # features/steps/basic_replication.py:20 423s May 02 13:58:52 Then "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 423s May 02 13:58:52 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 424s May 02 13:58:52 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:144 424s May 02 13:58:53 424s May 02 13:58:53 Scenario: check stuck sync replica # features/basic_replication.feature:28 424s May 02 13:58:53 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:73 424s May 02 13:58:53 Then I receive a response code 200 # features/steps/patroni_api.py:100 424s May 02 13:58:53 And I create table on postgres-0 # features/steps/basic_replication.py:85 424s May 02 13:58:53 And table mytest is present on postgres-1 after 2 seconds # features/steps/basic_replication.py:105 425s May 02 13:58:54 And table mytest is present on postgres-2 after 2 seconds # features/steps/basic_replication.py:105 425s May 02 13:58:54 When I pause wal replay on postgres-2 # features/steps/basic_replication.py:76 425s May 02 13:58:54 And I load data on postgres-0 # features/steps/basic_replication.py:96 425s May 02 13:58:54 Then "sync" key in DCS has sync_standby=postgres-1 after 15 seconds # features/steps/cascading_replication.py:23 428s May 02 13:58:57 And I resume wal replay on postgres-2 # features/steps/basic_replication.py:76 428s May 02 13:58:57 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 429s May 02 13:58:58 And Status code on GET http://127.0.0.1:8010/async is 200 after 3 seconds # features/steps/patroni_api.py:144 429s May 02 13:58:58 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:73 430s May 02 13:58:59 Then I receive a response code 200 # features/steps/patroni_api.py:100 430s May 02 13:58:59 And I drop table on postgres-0 # features/steps/basic_replication.py:85 430s May 02 13:58:59 430s May 02 13:58:59 Scenario: check multi sync replication # features/basic_replication.feature:44 430s May 02 13:58:59 Given I issue a PATCH request to http://127.0.0.1:8008/config with {"synchronous_node_count": 2} # features/steps/patroni_api.py:73 430s May 02 13:58:59 Then I receive a response code 200 # features/steps/patroni_api.py:100 430s May 02 13:58:59 Then "sync" key in DCS has sync_standby=postgres-1,postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 434s May 02 13:59:03 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 434s May 02 13:59:03 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 434s May 02 13:59:03 When I issue a PATCH request to http://127.0.0.1:8008/config with {"synchronous_node_count": 1} # features/steps/patroni_api.py:73 434s May 02 13:59:03 Then I receive a response code 200 # features/steps/patroni_api.py:100 434s May 02 13:59:03 And I shut down postgres-1 # features/steps/basic_replication.py:41 437s May 02 13:59:06 Then "sync" key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 438s May 02 13:59:07 When I start postgres-1 # features/steps/basic_replication.py:20 441s May 02 13:59:10 Then "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 442s May 02 13:59:11 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 442s May 02 13:59:11 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:144 442s May 02 13:59:11 442s May 02 13:59:11 Scenario: check the basic failover in synchronous mode # features/basic_replication.feature:59 442s May 02 13:59:11 Given I run patronictl.py pause batman # features/steps/patroni_api.py:88 443s May 02 13:59:12 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 443s May 02 13:59:12 When I sleep for 2 seconds # features/steps/patroni_api.py:41 445s May 02 13:59:14 And I shut down postgres-0 # features/steps/basic_replication.py:41 446s May 02 13:59:15 And I run patronictl.py resume batman # features/steps/patroni_api.py:88 447s May 02 13:59:16 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 447s May 02 13:59:16 And postgres-2 role is the primary after 24 seconds # features/steps/basic_replication.py:117 466s May 02 13:59:35 And Response on GET http://127.0.0.1:8010/history contains recovery after 10 seconds # features/steps/patroni_api.py:158 471s May 02 13:59:40 And there is a postgres-2_cb.log with "on_role_change primary batman" in postgres-2 data directory # features/steps/cascading_replication.py:12 471s May 02 13:59: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:73 471s May 02 13:59:40 Then I receive a response code 200 # features/steps/patroni_api.py:100 471s May 02 13:59:40 When I add the table bar to postgres-2 # features/steps/basic_replication.py:66 471s May 02 13:59:40 Then table bar is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 471s May 02 13:59:40 And Response on GET http://127.0.0.1:8010/config contains master_start_timeout after 10 seconds # features/steps/patroni_api.py:158 471s May 02 13:59:40 471s May 02 13:59:40 Scenario: check rejoin of the former primary with pg_rewind # features/basic_replication.feature:75 471s May 02 13:59:40 Given I add the table splitbrain to postgres-0 # features/steps/basic_replication.py:66 471s May 02 13:59:40 And I start postgres-0 # features/steps/basic_replication.py:20 471s May 02 13:59:40 Then postgres-0 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 475s May 02 13:59:44 When I add the table buz to postgres-2 # features/steps/basic_replication.py:66 475s May 02 13:59:44 Then table buz is present on postgres-0 after 20 seconds # features/steps/basic_replication.py:105 479s May 02 13:59:48 479s May 02 13:59:48 @reject-duplicate-name 479s May 02 13:59:48 Scenario: check graceful rejection when two nodes have the same name # features/basic_replication.feature:83 479s May 02 13:59:48 Given I start duplicate postgres-0 on port 8011 # features/steps/basic_replication.py:25 481s May 02 13:59:50 Then there is one of ["Can't start; there is already a node named 'postgres-0' running"] CRITICAL in the dup-postgres-0 patroni log after 5 seconds # features/steps/basic_replication.py:133 485s May 02 13:59:54 485s May 02 13:59:54 Feature: cascading replication # features/cascading_replication.feature:1 485s May 02 13:59:54 We should check that patroni can do base backup and streaming from the replica 485s May 02 13:59:54 Scenario: check a base backup and streaming replication from a replica # features/cascading_replication.feature:4 485s May 02 13:59:54 Given I start postgres-0 # features/steps/basic_replication.py:20 490s May 02 13:59:59 And postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 490s May 02 13:59:59 And I configure and start postgres-1 with a tag clonefrom true # features/steps/cascading_replication.py:7 495s May 02 14:00:04 And replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 497s May 02 14:00:05 And I create label with "postgres-0" in postgres-0 data directory # features/steps/cascading_replication.py:18 497s May 02 14:00:05 And I create label with "postgres-1" in postgres-1 data directory # features/steps/cascading_replication.py:18 497s May 02 14:00:05 And "members/postgres-1" key in DCS has state=running after 12 seconds # features/steps/cascading_replication.py:23 497s May 02 14:00:05 And I configure and start postgres-2 with a tag replicatefrom postgres-1 # features/steps/cascading_replication.py:7 502s May 02 14:00:11 Then replication works from postgres-0 to postgres-2 after 30 seconds # features/steps/basic_replication.py:124 503s May 02 14:00:12 And there is a label with "postgres-1" in postgres-2 data directory # features/steps/cascading_replication.py:12 508s May 02 14:00:17 508s May 02 14:00:17 Feature: citus # features/citus.feature:1 508s SKIP FEATURE citus: Citus extension isn't available 508s SKIP Scenario check that worker cluster is registered in the coordinator: Citus extension isn't available 508s SKIP Scenario coordinator failover updates pg_dist_node: Citus extension isn't available 508s SKIP Scenario worker switchover doesn't break client queries on the coordinator: Citus extension isn't available 508s SKIP Scenario worker primary restart doesn't break client queries on the coordinator: Citus extension isn't available 508s SKIP Scenario check that in-flight transaction is rolled back after timeout when other workers need to change pg_dist_node: Citus extension isn't available 508s May 02 14:00:17 We should check that coordinator discovers and registers workers and clients don't have errors when worker cluster switches over 508s May 02 14:00:17 Scenario: check that worker cluster is registered in the coordinator # features/citus.feature:4 508s May 02 14:00:17 Given I start postgres-0 in citus group 0 # None 508s May 02 14:00:17 And I start postgres-2 in citus group 1 # None 508s May 02 14:00:17 Then postgres-0 is a leader in a group 0 after 10 seconds # None 508s May 02 14:00:17 And postgres-2 is a leader in a group 1 after 10 seconds # None 508s May 02 14:00:17 When I start postgres-1 in citus group 0 # None 508s May 02 14:00:17 And I start postgres-3 in citus group 1 # None 508s May 02 14:00:17 Then replication works from postgres-0 to postgres-1 after 15 seconds # None 508s May 02 14:00:17 Then replication works from postgres-2 to postgres-3 after 15 seconds # None 508s May 02 14:00:17 And postgres-0 is registered in the postgres-0 as the primary in group 0 after 5 seconds # None 508s May 02 14:00:17 And postgres-1 is registered in the postgres-0 as the secondary in group 0 after 5 seconds # None 508s May 02 14:00:17 And postgres-2 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 508s May 02 14:00:17 And postgres-3 is registered in the postgres-0 as the secondary in group 1 after 5 seconds # None 508s May 02 14:00:17 508s May 02 14:00:17 Scenario: coordinator failover updates pg_dist_node # features/citus.feature:18 508s May 02 14:00:17 Given I run patronictl.py failover batman --group 0 --candidate postgres-1 --force # None 508s May 02 14:00:17 Then postgres-1 role is the primary after 10 seconds # None 508s May 02 14:00:17 And "members/postgres-0" key in a group 0 in DCS has state=running after 15 seconds # None 508s May 02 14:00:17 And replication works from postgres-1 to postgres-0 after 15 seconds # None 508s May 02 14:00:17 And postgres-1 is registered in the postgres-2 as the primary in group 0 after 5 seconds # None 508s May 02 14:00:17 And postgres-0 is registered in the postgres-2 as the secondary in group 0 after 15 seconds # None 508s May 02 14:00:17 And "sync" key in a group 0 in DCS has sync_standby=postgres-0 after 15 seconds # None 508s May 02 14:00:17 When I run patronictl.py switchover batman --group 0 --candidate postgres-0 --force # None 508s May 02 14:00:17 Then postgres-0 role is the primary after 10 seconds # None 508s May 02 14:00:17 And replication works from postgres-0 to postgres-1 after 15 seconds # None 508s May 02 14:00:17 And postgres-0 is registered in the postgres-2 as the primary in group 0 after 5 seconds # None 508s May 02 14:00:17 And postgres-1 is registered in the postgres-2 as the secondary in group 0 after 15 seconds # None 508s May 02 14:00:17 And "sync" key in a group 0 in DCS has sync_standby=postgres-1 after 15 seconds # None 508s May 02 14:00:17 508s May 02 14:00:17 Scenario: worker switchover doesn't break client queries on the coordinator # features/citus.feature:33 508s May 02 14:00:17 Given I create a distributed table on postgres-0 # None 508s May 02 14:00:17 And I start a thread inserting data on postgres-0 # None 508s May 02 14:00:17 When I run patronictl.py switchover batman --group 1 --force # None 508s May 02 14:00:17 Then I receive a response returncode 0 # None 508s May 02 14:00:17 And postgres-3 role is the primary after 10 seconds # None 508s May 02 14:00:17 And "members/postgres-2" key in a group 1 in DCS has state=running after 15 seconds # None 508s May 02 14:00:17 And replication works from postgres-3 to postgres-2 after 15 seconds # None 508s May 02 14:00:17 And postgres-3 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 508s May 02 14:00:17 And postgres-2 is registered in the postgres-0 as the secondary in group 1 after 15 seconds # None 508s May 02 14:00:17 And "sync" key in a group 1 in DCS has sync_standby=postgres-2 after 15 seconds # None 508s May 02 14:00:17 And a thread is still alive # None 508s May 02 14:00:17 When I run patronictl.py switchover batman --group 1 --force # None 508s May 02 14:00:17 Then I receive a response returncode 0 # None 508s May 02 14:00:17 And postgres-2 role is the primary after 10 seconds # None 508s May 02 14:00:17 And replication works from postgres-2 to postgres-3 after 15 seconds # None 508s May 02 14:00:17 And postgres-2 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 508s May 02 14:00:17 And postgres-3 is registered in the postgres-0 as the secondary in group 1 after 15 seconds # None 508s May 02 14:00:17 And "sync" key in a group 1 in DCS has sync_standby=postgres-3 after 15 seconds # None 508s May 02 14:00:17 And a thread is still alive # None 508s May 02 14:00:17 When I stop a thread # None 508s May 02 14:00:17 Then a distributed table on postgres-0 has expected rows # None 508s May 02 14:00:17 508s May 02 14:00:17 Scenario: worker primary restart doesn't break client queries on the coordinator # features/citus.feature:56 508s May 02 14:00:17 Given I cleanup a distributed table on postgres-0 # None 508s May 02 14:00:17 And I start a thread inserting data on postgres-0 # None 508s May 02 14:00:17 When I run patronictl.py restart batman postgres-2 --group 1 --force # None 508s May 02 14:00:17 Then I receive a response returncode 0 # None 508s May 02 14:00:17 And postgres-2 role is the primary after 10 seconds # None 508s May 02 14:00:17 And replication works from postgres-2 to postgres-3 after 15 seconds # None 508s May 02 14:00:17 And postgres-2 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 508s May 02 14:00:17 And postgres-3 is registered in the postgres-0 as the secondary in group 1 after 15 seconds # None 508s May 02 14:00:17 And a thread is still alive # None 508s May 02 14:00:17 When I stop a thread # None 508s May 02 14:00:17 Then a distributed table on postgres-0 has expected rows # None 508s May 02 14:00:17 508s May 02 14:00:17 Scenario: check that in-flight transaction is rolled back after timeout when other workers need to change pg_dist_node # features/citus.feature:69 508s May 02 14:00:17 Given I start postgres-4 in citus group 2 # None 508s May 02 14:00:17 Then postgres-4 is a leader in a group 2 after 10 seconds # None 508s May 02 14:00:17 And "members/postgres-4" key in a group 2 in DCS has role=primary after 3 seconds # None 508s May 02 14:00:17 When I run patronictl.py edit-config batman --group 2 -s ttl=20 --force # None 508s May 02 14:00:17 Then I receive a response returncode 0 # None 508s May 02 14:00:17 And I receive a response output "+ttl: 20" # None 508s May 02 14:00:17 Then postgres-4 is registered in the postgres-2 as the primary in group 2 after 5 seconds # None 508s May 02 14:00:17 When I shut down postgres-4 # None 508s May 02 14:00:17 Then there is a transaction in progress on postgres-0 changing pg_dist_node after 5 seconds # None 508s May 02 14:00:17 When I run patronictl.py restart batman postgres-2 --group 1 --force # None 508s May 02 14:00:17 Then a transaction finishes in 20 seconds # None 508s May 02 14:00:17 508s May 02 14:00:17 Feature: custom bootstrap # features/custom_bootstrap.feature:1 508s May 02 14:00:17 We should check that patroni can bootstrap a new cluster from a backup 508s May 02 14:00:17 Scenario: clone existing cluster using pg_basebackup # features/custom_bootstrap.feature:4 508s May 02 14:00:17 Given I start postgres-0 # features/steps/basic_replication.py:20 513s May 02 14:00:22 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 513s May 02 14:00:22 When I add the table foo to postgres-0 # features/steps/basic_replication.py:66 513s May 02 14:00:22 And I start postgres-1 in a cluster batman1 as a clone of postgres-0 # features/steps/custom_bootstrap.py:6 518s May 02 14:00:27 Then postgres-1 is a leader of batman1 after 10 seconds # features/steps/custom_bootstrap.py:16 519s May 02 14:00:28 Then table foo is present on postgres-1 after 10 seconds # features/steps/basic_replication.py:105 519s May 02 14:00:28 519s May 02 14:00:28 Scenario: make a backup and do a restore into a new cluster # features/custom_bootstrap.feature:12 519s May 02 14:00:28 Given I add the table bar to postgres-1 # features/steps/basic_replication.py:66 519s May 02 14:00:28 And I do a backup of postgres-1 # features/steps/custom_bootstrap.py:25 521s May 02 14:00:30 When I start postgres-2 in a cluster batman2 from backup # features/steps/custom_bootstrap.py:11 527s May 02 14:00:36 Then postgres-2 is a leader of batman2 after 30 seconds # features/steps/custom_bootstrap.py:16 527s May 02 14:00:36 And table bar is present on postgres-2 after 10 seconds # features/steps/basic_replication.py:105 533s May 02 14:00:42 533s May 02 14:00:42 Feature: dcs failsafe mode # features/dcs_failsafe_mode.feature:1 533s May 02 14:00:42 We should check the basic dcs failsafe mode functioning 533s May 02 14:00:42 Scenario: check failsafe mode can be successfully enabled # features/dcs_failsafe_mode.feature:4 533s May 02 14:00:42 Given I start postgres-0 # features/steps/basic_replication.py:20 538s May 02 14:00:47 And postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 538s May 02 14:00:47 Then "config" key in DCS has ttl=30 after 10 seconds # features/steps/cascading_replication.py:23 538s May 02 14:00:47 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:73 538s May 02 14:00:47 Then I receive a response code 200 # features/steps/patroni_api.py:100 538s May 02 14:00:47 And Response on GET http://127.0.0.1:8008/failsafe contains postgres-0 after 10 seconds # features/steps/patroni_api.py:158 539s May 02 14:00:48 When I issue a GET request to http://127.0.0.1:8008/failsafe # features/steps/patroni_api.py:63 540s May 02 14:00:48 Then I receive a response code 200 # features/steps/patroni_api.py:100 540s May 02 14:00:48 And I receive a response postgres-0 http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:100 540s May 02 14:00: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,"postgres_0":null}} # features/steps/patroni_api.py:73 540s May 02 14:00:49 Then I receive a response code 200 # features/steps/patroni_api.py:100 540s May 02 14:00:49 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:73 540s SKIP Scenario check one-node cluster is functioning while DCS is down: it is not possible to control state of etcd3 from tests 540s 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 540s May 02 14:00:49 Then I receive a response code 200 # features/steps/patroni_api.py:100 540s May 02 14:00:49 540s May 02 14:00:49 @dcs-failsafe 540s May 02 14:00:49 Scenario: check one-node cluster is functioning while DCS is down # features/dcs_failsafe_mode.feature:20 540s May 02 14:00:49 Given DCS is down # None 540s May 02 14:00:49 Then Response on GET http://127.0.0.1:8008/primary contains failsafe_mode_is_active after 12 seconds # None 540s May 02 14:00:49 And postgres-0 role is the primary after 10 seconds # None 540s May 02 14:00:49 540s May 02 14:00:49 @dcs-failsafe 540s May 02 14:00:49 Scenario: check new replica isn't promoted when leader is down and DCS is up # features/dcs_failsafe_mode.feature:26 540s May 02 14:00:49 Given DCS is up # None 540s May 02 14:00:49 When I do a backup of postgres-0 # None 540s May 02 14:00:49 And I shut down postgres-0 # None 540s May 02 14:00:49 When I start postgres-1 in a cluster batman from backup with no_leader # None 540s May 02 14:00:49 Then postgres-1 role is the replica after 12 seconds # None 540s May 02 14:00:49 540s May 02 14:00:49 Scenario: check leader and replica are both in /failsafe key after leader is back # features/dcs_failsafe_mode.feature:33 540s May 02 14:00:49 Given I start postgres-0 # features/steps/basic_replication.py:20 540s May 02 14:00:49 And I start postgres-1 # features/steps/basic_replication.py:20 545s May 02 14:00:54 Then "members/postgres-0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 545s May 02 14:00:54 And "members/postgres-1" key in DCS has state=running after 2 seconds # features/steps/cascading_replication.py:23 546s May 02 14:00:55 And Response on GET http://127.0.0.1:8009/failsafe contains postgres-1 after 10 seconds # features/steps/patroni_api.py:158 546s May 02 14:00:55 When I issue a GET request to http://127.0.0.1:8009/failsafe # features/steps/patroni_api.py:63 546s May 02 14:00:55 Then I receive a response code 200 # features/steps/patroni_api.py:100 546s May 02 14:00:55 And I receive a response postgres-0 http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:100 546s May 02 14:00:55 And I receive a response postgres-1 http://127.0.0.1:8009/patroni # features/steps/patroni_api.py:100 546s May 02 14:00:55 546s May 02 14:00:55 @dcs-failsafe @slot-advance 546s May 02 14:00:55 Scenario: check leader and replica are functioning while DCS is down # features/dcs_failsafe_mode.feature:46 546s May 02 14:00:55 Given I get all changes from physical slot dcs_slot_1 on postgres-0 # None 546s May 02 14:00:55 Then physical slot dcs_slot_1 is in sync between postgres-0 and postgres-1 after 10 seconds # None 546s May 02 14:00:55 And logical slot dcs_slot_0 is in sync between postgres-0 and postgres-1 after 10 seconds # None 546s May 02 14:00:55 And DCS is down # None 546s May 02 14:00:55 Then Response on GET http://127.0.0.1:8008/primary contains failsafe_mode_is_active after 12 seconds # None 546s May 02 14:00:55 Then postgres-0 role is the primary after 10 seconds # None 546s May 02 14:00:55 And postgres-1 role is the replica after 2 seconds # None 546s May 02 14:00:55 And replication works from postgres-0 to postgres-1 after 10 seconds # None 546s May 02 14:00:55 When I get all changes from logical slot dcs_slot_0 on postgres-0 # None 546s May 02 14:00:55 And I get all changes from physical slot dcs_slot_1 on postgres-0 # None 546s May 02 14:00:55 Then logical slot dcs_slot_0 is in sync between postgres-0 and postgres-1 after 20 seconds # None 546s May 02 14:00:55 And physical slot dcs_slot_1 is in sync between postgres-0 and postgres-1 after 10 seconds # None 546s SKIP Scenario check leader and replica are functioning while DCS is down: it is not possible to control state of etcd3 from tests 546s 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 546s 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 546s May 02 14:00:55 546s May 02 14:00:55 @dcs-failsafe 546s May 02 14:00:55 Scenario: check primary is demoted when one replica is shut down and DCS is down # features/dcs_failsafe_mode.feature:61 546s May 02 14:00:55 Given DCS is down # None 546s May 02 14:00:55 And I kill postgres-1 # None 546s May 02 14:00:55 And I kill postmaster on postgres-1 # None 546s May 02 14:00:55 Then postgres-0 role is the replica after 12 seconds # None 546s SKIP Scenario scale to three-node cluster: it is not possible to control state of etcd3 from tests 546s May 02 14:00:55 546s May 02 14:00:55 @dcs-failsafe 546s May 02 14:00:55 Scenario: check known replica is promoted when leader is down and DCS is up # features/dcs_failsafe_mode.feature:68 546s May 02 14:00:55 Given I kill postgres-0 # None 546s May 02 14:00:55 And I shut down postmaster on postgres-0 # None 546s May 02 14:00:55 And DCS is up # None 546s May 02 14:00:55 When I start postgres-1 # None 546s May 02 14:00:55 Then "members/postgres-1" key in DCS has state=running after 10 seconds # None 546s May 02 14:00:55 And postgres-1 role is the primary after 25 seconds # None 546s May 02 14:00:55 546s May 02 14:00:55 @dcs-failsafe 546s May 02 14:00:55 Scenario: scale to three-node cluster # features/dcs_failsafe_mode.feature:77 546s May 02 14:00:55 Given I start postgres-0 # None 546s May 02 14:00:55 And I configure and start postgres-2 with a tag replicatefrom postgres-0 # None 546s May 02 14:00:55 Then "members/postgres-2" key in DCS has state=running after 10 seconds # None 546s May 02 14:00:55 And "members/postgres-0" key in DCS has state=running after 20 seconds # None 546s May 02 14:00:55 And Response on GET http://127.0.0.1:8008/failsafe contains postgres-2 after 10 seconds # None 546s May 02 14:00:55 And replication works from postgres-1 to postgres-0 after 10 seconds # None 546s May 02 14:00:55 And replication works from postgres-1 to postgres-2 after 10 seconds # None 546s SKIP Scenario make sure permanent slots exist on replicas: it is not possible to control state of etcd3 from tests 546s SKIP Scenario check three-node cluster is functioning while DCS is down: it is not possible to control state of etcd3 from tests 546s May 02 14:00:55 546s May 02 14:00:55 @dcs-failsafe @slot-advance 546s May 02 14:00:55 Scenario: make sure permanent slots exist on replicas # features/dcs_failsafe_mode.feature:88 546s May 02 14:00:55 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 546s May 02 14:00:55 Then logical slot dcs_slot_2 is in sync between postgres-1 and postgres-0 after 20 seconds # None 546s May 02 14:00:55 And logical slot dcs_slot_2 is in sync between postgres-1 and postgres-2 after 20 seconds # None 546s May 02 14:00:55 When I get all changes from physical slot dcs_slot_1 on postgres-1 # None 546s May 02 14:00:55 Then physical slot dcs_slot_1 is in sync between postgres-1 and postgres-0 after 10 seconds # None 546s May 02 14:00:55 And physical slot dcs_slot_1 is in sync between postgres-1 and postgres-2 after 10 seconds # None 546s May 02 14:00:55 And physical slot postgres_0 is in sync between postgres-1 and postgres-2 after 10 seconds # None 546s May 02 14:00:55 And physical slot postgres_2 is in sync between postgres-0 and postgres-1 after 10 seconds # None 546s 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 546s May 02 14:00:55 546s May 02 14:00:55 @dcs-failsafe 546s May 02 14:00:55 Scenario: check three-node cluster is functioning while DCS is down # features/dcs_failsafe_mode.feature:99 546s May 02 14:00:55 Given DCS is down # None 546s May 02 14:00:55 Then Response on GET http://127.0.0.1:8009/primary contains failsafe_mode_is_active after 12 seconds # None 546s May 02 14:00:55 Then postgres-1 role is the primary after 10 seconds # None 546s May 02 14:00:55 And postgres-0 role is the replica after 2 seconds # None 546s May 02 14:00:55 And postgres-2 role is the replica after 2 seconds # None 550s May 02 14:00:59 550s May 02 14:00:59 @dcs-failsafe @slot-advance 550s May 02 14:00:59 Scenario: check that permanent slots are in sync between nodes while DCS is down # features/dcs_failsafe_mode.feature:108 550s May 02 14:00:59 Given replication works from postgres-1 to postgres-0 after 10 seconds # None 550s May 02 14:00:59 And replication works from postgres-1 to postgres-2 after 10 seconds # None 550s May 02 14:00:59 When I get all changes from logical slot dcs_slot_2 on postgres-1 # None 550s May 02 14:00:59 And I get all changes from physical slot dcs_slot_1 on postgres-1 # None 550s May 02 14:00:59 Then logical slot dcs_slot_2 is in sync between postgres-1 and postgres-0 after 20 seconds # None 550s May 02 14:00:59 And logical slot dcs_slot_2 is in sync between postgres-1 and postgres-2 after 20 seconds # None 550s May 02 14:00:59 And physical slot dcs_slot_1 is in sync between postgres-1 and postgres-0 after 10 seconds # None 550s May 02 14:00:59 And physical slot dcs_slot_1 is in sync between postgres-1 and postgres-2 after 10 seconds # None 550s May 02 14:00:59 And physical slot postgres_0 is in sync between postgres-1 and postgres-2 after 10 seconds # None 550s May 02 14:00:59 And physical slot postgres_2 is in sync between postgres-0 and postgres-1 after 10 seconds # None 550s May 02 14:00:59 550s May 02 14:00:59 Feature: ignored slots # features/ignored_slots.feature:1 550s May 02 14:00:59 550s May 02 14:00:59 Scenario: check ignored slots aren't removed on failover/switchover # features/ignored_slots.feature:2 550s May 02 14:00:59 Given I start postgres-1 # features/steps/basic_replication.py:20 555s May 02 14:01:04 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 555s May 02 14:01:04 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 555s May 02 14:01:04 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:73 555s May 02 14:01:04 Then I receive a response code 200 # features/steps/patroni_api.py:100 555s May 02 14:01:04 And Response on GET http://127.0.0.1:8009/config contains ignore_slots after 10 seconds # features/steps/patroni_api.py:158 555s May 02 14:01:04 When I shut down postgres-1 # features/steps/basic_replication.py:41 557s May 02 14:01:06 And I start postgres-1 # features/steps/basic_replication.py:20 560s May 02 14:01:09 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 560s May 02 14:01:09 And "members/postgres-1" key in DCS has role=primary after 10 seconds # features/steps/cascading_replication.py:23 562s May 02 14:01:11 And postgres-1 role is the primary after 20 seconds # features/steps/basic_replication.py:117 562s May 02 14:01:11 When I create a logical replication slot unmanaged_slot_0 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 562s May 02 14:01:11 And I create a logical replication slot unmanaged_slot_1 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 562s May 02 14:01:11 And I create a logical replication slot unmanaged_slot_2 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 562s May 02 14:01:11 And I create a logical replication slot unmanaged_slot_3 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 562s May 02 14:01:11 And I create a logical replication slot dummy_slot on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 562s May 02 14:01:11 Then postgres-1 has a logical replication slot named unmanaged_slot_0 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 562s May 02 14:01:11 And postgres-1 has a logical replication slot named unmanaged_slot_1 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 562s May 02 14:01:11 And postgres-1 has a logical replication slot named unmanaged_slot_2 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 562s May 02 14:01:11 And postgres-1 has a logical replication slot named unmanaged_slot_3 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 562s May 02 14:01:11 When I start postgres-0 # features/steps/basic_replication.py:20 567s May 02 14:01:16 Then "members/postgres-0" key in DCS has role=replica after 10 seconds # features/steps/cascading_replication.py:23 568s May 02 14:01:17 And postgres-0 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 568s May 02 14:01:17 And replication works from postgres-1 to postgres-0 after 20 seconds # features/steps/basic_replication.py:124 569s May 02 14:01:18 When I shut down postgres-1 # features/steps/basic_replication.py:41 571s May 02 14:01:20 Then "members/postgres-0" key in DCS has role=primary after 10 seconds # features/steps/cascading_replication.py:23 572s May 02 14:01:21 When I start postgres-1 # features/steps/basic_replication.py:20 575s May 02 14:01:24 Then postgres-1 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 575s May 02 14:01:24 And "members/postgres-1" key in DCS has role=replica after 10 seconds # features/steps/cascading_replication.py:23 575s May 02 14:01:24 And I sleep for 2 seconds # features/steps/patroni_api.py:41 578s May 02 14:01:26 And postgres-1 has a logical replication slot named unmanaged_slot_0 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 578s May 02 14:01:26 And postgres-1 has a logical replication slot named unmanaged_slot_1 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 578s May 02 14:01:26 And postgres-1 has a logical replication slot named unmanaged_slot_2 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 578s May 02 14:01:26 And postgres-1 has a logical replication slot named unmanaged_slot_3 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 578s May 02 14:01:26 And postgres-1 does not have a replication slot named dummy_slot # features/steps/slots.py:41 578s May 02 14:01:26 When I shut down postgres-0 # features/steps/basic_replication.py:41 580s May 02 14:01:28 Then "members/postgres-1" key in DCS has role=primary after 10 seconds # features/steps/cascading_replication.py:23 581s May 02 14:01:29 And postgres-1 has a logical replication slot named unmanaged_slot_0 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 581s May 02 14:01:29 And postgres-1 has a logical replication slot named unmanaged_slot_1 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 581s May 02 14:01:29 And postgres-1 has a logical replication slot named unmanaged_slot_2 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 581s May 02 14:01:29 And postgres-1 has a logical replication slot named unmanaged_slot_3 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 583s May 02 14:01:32 583s May 02 14:01:32 Feature: nostream node # features/nostream_node.feature:1 583s May 02 14:01:32 583s May 02 14:01:32 Scenario: check nostream node is recovering from archive # features/nostream_node.feature:3 583s May 02 14:01:32 When I start postgres-0 # features/steps/basic_replication.py:20 588s May 02 14:01:37 And I configure and start postgres-1 with a tag nostream true # features/steps/cascading_replication.py:7 593s May 02 14:01:42 Then "members/postgres-1" key in DCS has replication_state=in archive recovery after 10 seconds # features/steps/cascading_replication.py:23 593s May 02 14:01:42 And replication works from postgres-0 to postgres-1 after 30 seconds # features/steps/basic_replication.py:124 598s May 02 14:01:47 598s May 02 14:01:47 @slot-advance 598s May 02 14:01:47 Scenario: check permanent logical replication slots are not copied # features/nostream_node.feature:10 598s May 02 14:01:47 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:73 598s May 02 14:01:47 Then I receive a response code 200 # features/steps/patroni_api.py:100 598s May 02 14:01:47 When I run patronictl.py restart batman postgres-0 --force # features/steps/patroni_api.py:88 600s May 02 14:01:49 Then postgres-0 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:20 601s May 02 14:01:50 When I configure and start postgres-2 with a tag replicatefrom postgres-1 # features/steps/cascading_replication.py:7 606s May 02 14:01:55 Then "members/postgres-2" key in DCS has replication_state=streaming after 10 seconds # features/steps/cascading_replication.py:23 606s May 02 14:01:55 And postgres-1 does not have a replication slot named test_logical # features/steps/slots.py:41 606s May 02 14:01:55 And postgres-2 does not have a replication slot named test_logical # features/steps/slots.py:41 606s May 02 14:01:55 606s May 02 14:01:55 @slot-advance 606s May 02 14:01:55 Scenario: check that slots are written to the /status key # features/nostream_node.feature:21 606s May 02 14:01:55 Given "status" key in DCS has postgres_0 in slots # features/steps/slots.py:118 606s May 02 14:01:55 And "status" key in DCS has postgres_2 in slots # features/steps/slots.py:118 606s May 02 14:01:55 And "status" key in DCS has test_logical in slots # features/steps/slots.py:118 606s May 02 14:01:55 And "status" key in DCS has test_logical in slots # features/steps/slots.py:118 606s May 02 14:01:55 And "status" key in DCS does not have postgres_1 in slots # features/steps/slots.py:124 612s May 02 14:02:01 612s May 02 14:02:01 Feature: patroni api # features/patroni_api.feature:1 612s May 02 14:02:01 We should check that patroni correctly responds to valid and not-valid API requests. 612s May 02 14:02:01 Scenario: check API requests on a stand-alone server # features/patroni_api.feature:4 612s May 02 14:02:01 Given I start postgres-0 # features/steps/basic_replication.py:20 617s May 02 14:02:06 And postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 617s May 02 14:02:06 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:63 617s May 02 14:02:06 Then I receive a response code 200 # features/steps/patroni_api.py:100 617s May 02 14:02:06 And I receive a response state running # features/steps/patroni_api.py:100 617s May 02 14:02:06 And I receive a response role primary # features/steps/patroni_api.py:100 617s May 02 14:02:06 When I issue a GET request to http://127.0.0.1:8008/standby_leader # features/steps/patroni_api.py:63 617s May 02 14:02:06 Then I receive a response code 503 # features/steps/patroni_api.py:100 617s May 02 14:02:06 When I issue a GET request to http://127.0.0.1:8008/health # features/steps/patroni_api.py:63 617s May 02 14:02:06 Then I receive a response code 200 # features/steps/patroni_api.py:100 617s May 02 14:02:06 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:63 617s May 02 14:02:06 Then I receive a response code 503 # features/steps/patroni_api.py:100 617s May 02 14:02:06 When I issue a POST request to http://127.0.0.1:8008/reinitialize with {"force": true} # features/steps/patroni_api.py:73 618s May 02 14:02:06 Then I receive a response code 503 # features/steps/patroni_api.py:100 618s May 02 14:02:06 And I receive a response text I am the leader, can not reinitialize # features/steps/patroni_api.py:100 618s May 02 14:02:06 When I run patronictl.py switchover batman --primary postgres-0 --force # features/steps/patroni_api.py:88 619s May 02 14:02:08 Then I receive a response returncode 1 # features/steps/patroni_api.py:100 619s May 02 14:02:08 And I receive a response output "Error: No candidates found to switchover to" # features/steps/patroni_api.py:100 619s May 02 14:02:08 When I issue a POST request to http://127.0.0.1:8008/switchover with {"leader": "postgres-0"} # features/steps/patroni_api.py:73 619s May 02 14:02:08 Then I receive a response code 412 # features/steps/patroni_api.py:100 619s May 02 14:02:08 And I receive a response text switchover is not possible: cluster does not have members except leader # features/steps/patroni_api.py:100 619s May 02 14:02:08 When I issue an empty POST request to http://127.0.0.1:8008/failover # features/steps/patroni_api.py:68 619s May 02 14:02:08 Then I receive a response code 400 # features/steps/patroni_api.py:100 619s May 02 14:02:08 When I issue a POST request to http://127.0.0.1:8008/failover with {"foo": "bar"} # features/steps/patroni_api.py:73 619s May 02 14:02:08 Then I receive a response code 400 # features/steps/patroni_api.py:100 619s May 02 14:02:08 And I receive a response text "Failover could be performed only to a specific candidate" # features/steps/patroni_api.py:100 619s May 02 14:02:08 619s May 02 14:02:08 Scenario: check local configuration reload # features/patroni_api.feature:32 619s May 02 14:02:08 Given I add tag new_tag new_value to postgres-0 config # features/steps/patroni_api.py:139 619s May 02 14:02:08 And I issue an empty POST request to http://127.0.0.1:8008/reload # features/steps/patroni_api.py:68 619s May 02 14:02:08 Then I receive a response code 202 # features/steps/patroni_api.py:100 619s May 02 14:02:08 619s May 02 14:02:08 Scenario: check dynamic configuration change via DCS # features/patroni_api.feature:37 619s May 02 14:02:08 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:73 619s May 02 14:02:08 Then I receive a response code 200 # features/steps/patroni_api.py:100 619s May 02 14:02:08 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 11 seconds # features/steps/patroni_api.py:158 622s May 02 14:02:11 When I issue a GET request to http://127.0.0.1:8008/config # features/steps/patroni_api.py:63 622s May 02 14:02:11 Then I receive a response code 200 # features/steps/patroni_api.py:100 622s May 02 14:02:11 And I receive a response ttl 20 # features/steps/patroni_api.py:100 622s May 02 14:02:11 When I issue a GET request to http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:63 622s May 02 14:02:11 Then I receive a response code 200 # features/steps/patroni_api.py:100 622s May 02 14:02:11 And I receive a response tags {'new_tag': 'new_value'} # features/steps/patroni_api.py:100 622s May 02 14:02:11 And I sleep for 4 seconds # features/steps/patroni_api.py:41 626s May 02 14:02:15 626s May 02 14:02:15 Scenario: check the scheduled restart # features/patroni_api.feature:49 626s May 02 14:02:15 Given I run patronictl.py edit-config -p 'superuser_reserved_connections=6' --force batman # features/steps/patroni_api.py:88 628s May 02 14:02:17 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 628s May 02 14:02:17 And I receive a response output "+ superuser_reserved_connections: 6" # features/steps/patroni_api.py:100 628s May 02 14:02:17 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 5 seconds # features/steps/patroni_api.py:158 628s May 02 14:02:17 Given I issue a scheduled restart at http://127.0.0.1:8008 in 5 seconds with {"role": "replica"} # features/steps/patroni_api.py:126 628s May 02 14:02:17 Then I receive a response code 202 # features/steps/patroni_api.py:100 628s May 02 14:02:17 And I sleep for 8 seconds # features/steps/patroni_api.py:41 636s May 02 14:02:25 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 10 seconds # features/steps/patroni_api.py:158 636s May 02 14:02:25 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:126 636s May 02 14:02:25 Then I receive a response code 202 # features/steps/patroni_api.py:100 636s May 02 14:02:25 And Response on GET http://127.0.0.1:8008/patroni does not contain pending_restart after 10 seconds # features/steps/patroni_api.py:173 643s May 02 14:02:32 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 644s May 02 14:02:33 644s May 02 14:02:33 Scenario: check API requests for the primary-replica pair in the pause mode # features/patroni_api.feature:63 644s May 02 14:02:33 Given I start postgres-1 # features/steps/basic_replication.py:20 649s May 02 14:02:38 Then replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 650s May 02 14:02:39 When I run patronictl.py pause batman # features/steps/patroni_api.py:88 652s May 02 14:02:41 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 652s May 02 14:02:41 When I kill postmaster on postgres-1 # features/steps/basic_replication.py:56 652s May 02 14:02:41 waiting for server to shut down.... done 652s May 02 14:02:41 server stopped 652s May 02 14:02:41 And I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 652s May 02 14:02:41 Then I receive a response code 503 # features/steps/patroni_api.py:100 652s May 02 14:02:41 And "members/postgres-1" key in DCS has state=stopped after 10 seconds # features/steps/cascading_replication.py:23 654s May 02 14:02:43 When I run patronictl.py restart batman postgres-1 --force # features/steps/patroni_api.py:88 657s May 02 14:02:45 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 657s May 02 14:02:45 Then replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 658s May 02 14:02:47 And I sleep for 2 seconds # features/steps/patroni_api.py:41 660s May 02 14:02:49 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 660s May 02 14:02:49 Then I receive a response code 200 # features/steps/patroni_api.py:100 660s May 02 14:02:49 And I receive a response state running # features/steps/patroni_api.py:100 660s May 02 14:02:49 And I receive a response role replica # features/steps/patroni_api.py:100 660s May 02 14:02:49 When I run patronictl.py reinit batman postgres-1 --force --wait # features/steps/patroni_api.py:88 664s May 02 14:02:53 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 664s May 02 14:02:53 And I receive a response output "Success: reinitialize for member postgres-1" # features/steps/patroni_api.py:100 664s May 02 14:02:53 And postgres-1 role is the secondary after 30 seconds # features/steps/basic_replication.py:117 665s May 02 14:02:54 And replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 666s May 02 14:02:55 When I run patronictl.py restart batman postgres-0 --force # features/steps/patroni_api.py:88 668s May 02 14:02:57 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 668s May 02 14:02:57 And I receive a response output "Success: restart on member postgres-0" # features/steps/patroni_api.py:100 668s May 02 14:02:57 And postgres-0 role is the primary after 5 seconds # features/steps/basic_replication.py:117 669s May 02 14:02:58 669s May 02 14:02:58 Scenario: check the switchover via the API in the pause mode # features/patroni_api.feature:90 669s May 02 14:02:58 Given I issue a POST request to http://127.0.0.1:8008/switchover with {"leader": "postgres-0", "candidate": "postgres-1"} # features/steps/patroni_api.py:73 671s May 02 14:03:00 Then I receive a response code 200 # features/steps/patroni_api.py:100 671s May 02 14:03:00 And postgres-1 is a leader after 5 seconds # features/steps/patroni_api.py:31 671s May 02 14:03:00 And postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 672s May 02 14:03:01 And postgres-0 role is the secondary after 10 seconds # features/steps/basic_replication.py:117 678s May 02 14:03:07 And replication works from postgres-1 to postgres-0 after 20 seconds # features/steps/basic_replication.py:124 678s May 02 14:03:07 And "members/postgres-0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 678s May 02 14:03:07 When I issue a GET request to http://127.0.0.1:8008/primary # features/steps/patroni_api.py:63 678s May 02 14:03:07 Then I receive a response code 503 # features/steps/patroni_api.py:100 678s May 02 14:03:07 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:63 678s May 02 14:03:07 Then I receive a response code 200 # features/steps/patroni_api.py:100 678s May 02 14:03:07 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 678s May 02 14:03:07 Then I receive a response code 200 # features/steps/patroni_api.py:100 678s May 02 14:03:07 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 679s May 02 14:03:08 Then I receive a response code 503 # features/steps/patroni_api.py:100 679s May 02 14:03:08 679s May 02 14:03:08 Scenario: check the scheduled switchover # features/patroni_api.feature:107 679s May 02 14:03:08 Given I issue a scheduled switchover from postgres-1 to postgres-0 in 10 seconds # features/steps/patroni_api.py:119 680s May 02 14:03:09 Then I receive a response returncode 1 # features/steps/patroni_api.py:100 680s May 02 14:03:09 And I receive a response output "Can't schedule switchover in the paused state" # features/steps/patroni_api.py:100 680s May 02 14:03:09 When I run patronictl.py resume batman # features/steps/patroni_api.py:88 681s May 02 14:03:10 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 681s May 02 14:03:10 Given I issue a scheduled switchover from postgres-1 to postgres-0 in 10 seconds # features/steps/patroni_api.py:119 682s May 02 14:03:11 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 682s May 02 14:03:11 And postgres-0 is a leader after 20 seconds # features/steps/patroni_api.py:31 693s May 02 14:03:22 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 693s May 02 14:03:22 And postgres-1 role is the secondary after 10 seconds # features/steps/basic_replication.py:117 696s May 02 14:03:25 And replication works from postgres-0 to postgres-1 after 25 seconds # features/steps/basic_replication.py:124 696s May 02 14:03:25 And "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 697s May 02 14:03:26 When I issue a GET request to http://127.0.0.1:8008/primary # features/steps/patroni_api.py:63 697s May 02 14:03:26 Then I receive a response code 200 # features/steps/patroni_api.py:100 697s May 02 14:03:26 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:63 697s May 02 14:03:26 Then I receive a response code 503 # features/steps/patroni_api.py:100 697s May 02 14:03:26 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 697s May 02 14:03:26 Then I receive a response code 503 # features/steps/patroni_api.py:100 697s May 02 14:03:26 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 698s May 02 14:03:27 Then I receive a response code 200 # features/steps/patroni_api.py:100 702s May 02 14:03:31 702s May 02 14:03:31 Feature: permanent slots # features/permanent_slots.feature:1 702s May 02 14:03:31 702s May 02 14:03:31 Scenario: check that physical permanent slots are created # features/permanent_slots.feature:2 702s May 02 14:03:31 Given I start postgres-0 # features/steps/basic_replication.py:20 707s May 02 14:03:36 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 707s May 02 14:03:36 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 707s May 02 14:03:36 When I issue a PATCH request to http://127.0.0.1:8008/config with {"slots":{"test_physical":0,"postgres_3":0},"postgresql":{"parameters":{"wal_level":"logical"}}} # features/steps/patroni_api.py:73 707s May 02 14:03:36 Then I receive a response code 200 # features/steps/patroni_api.py:100 707s May 02 14:03:36 And Response on GET http://127.0.0.1:8008/config contains slots after 10 seconds # features/steps/patroni_api.py:158 707s May 02 14:03:36 When I start postgres-1 # features/steps/basic_replication.py:20 712s May 02 14:03:41 And I configure and start postgres-2 with a tag nofailover true # features/steps/cascading_replication.py:7 717s May 02 14:03:46 And I configure and start postgres-3 with a tag replicatefrom postgres-2 # features/steps/cascading_replication.py:7 722s May 02 14:03:51 Then postgres-0 has a physical replication slot named test_physical after 10 seconds # features/steps/slots.py:82 722s May 02 14:03:51 And postgres-0 has a physical replication slot named postgres_1 after 10 seconds # features/steps/slots.py:82 722s May 02 14:03:51 And postgres-0 has a physical replication slot named postgres_2 after 10 seconds # features/steps/slots.py:82 722s May 02 14:03:51 And postgres-2 has a physical replication slot named postgres_3 after 10 seconds # features/steps/slots.py:82 722s May 02 14:03:51 And postgres-2 does not have a replication slot named test_physical # features/steps/slots.py:41 722s May 02 14:03:51 722s May 02 14:03:51 @slot-advance 722s May 02 14:03:51 Scenario: check that logical permanent slots are created # features/permanent_slots.feature:19 722s May 02 14:03:51 Given I run patronictl.py restart batman postgres-0 --force # features/steps/patroni_api.py:88 724s May 02 14:03:53 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:73 724s May 02 14:03:53 Then postgres-0 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:20 725s May 02 14:03:54 725s May 02 14:03:54 @slot-advance 725s May 02 14:03:54 Scenario: check that permanent slots are created on replicas # features/permanent_slots.feature:25 725s May 02 14:03:54 Given postgres-1 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:20 730s May 02 14:03:59 Then Logical slot test_logical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 730s May 02 14:03:59 And Logical slot test_logical is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 731s May 02 14:04:00 And postgres-1 has a physical replication slot named test_physical after 2 seconds # features/steps/slots.py:82 731s May 02 14:04:00 And postgres-2 does not have a replication slot named test_logical # features/steps/slots.py:41 731s May 02 14:04:00 And postgres-3 has a physical replication slot named test_physical after 2 seconds # features/steps/slots.py:82 731s May 02 14:04:00 731s May 02 14:04:00 @slot-advance 731s May 02 14:04:00 Scenario: check permanent physical slots that match with member names # features/permanent_slots.feature:34 731s May 02 14:04:00 Given postgres-0 has a physical replication slot named postgres_3 after 2 seconds # features/steps/slots.py:82 731s May 02 14:04:00 And postgres-1 has a physical replication slot named postgres_0 after 2 seconds # features/steps/slots.py:82 731s May 02 14:04:00 And postgres-1 has a physical replication slot named postgres_2 after 2 seconds # features/steps/slots.py:82 731s May 02 14:04:00 And postgres-1 has a physical replication slot named postgres_3 after 2 seconds # features/steps/slots.py:82 731s May 02 14:04:00 And postgres-2 does not have a replication slot named postgres_0 # features/steps/slots.py:41 731s May 02 14:04:00 And postgres-2 does not have a replication slot named postgres_1 # features/steps/slots.py:41 731s May 02 14:04:00 And postgres-2 has a physical replication slot named postgres_3 after 2 seconds # features/steps/slots.py:82 731s May 02 14:04:00 And postgres-3 has a physical replication slot named postgres_0 after 2 seconds # features/steps/slots.py:82 731s May 02 14:04:00 And postgres-3 has a physical replication slot named postgres_1 after 2 seconds # features/steps/slots.py:82 731s May 02 14:04:00 And postgres-3 has a physical replication slot named postgres_2 after 2 seconds # features/steps/slots.py:82 731s May 02 14:04:00 731s May 02 14:04:00 @slot-advance 731s May 02 14:04:00 Scenario: check that permanent slots are advanced on replicas # features/permanent_slots.feature:47 731s May 02 14:04:00 Given I add the table replicate_me to postgres-0 # features/steps/basic_replication.py:66 731s May 02 14:04:00 When I get all changes from logical slot test_logical on postgres-0 # features/steps/slots.py:72 731s May 02 14:04:00 And I get all changes from physical slot test_physical on postgres-0 # features/steps/slots.py:77 731s May 02 14:04:00 Then Logical slot test_logical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 732s May 02 14:04:01 And Physical slot test_physical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 732s May 02 14:04:01 And Logical slot test_logical is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 732s May 02 14:04:01 And Physical slot test_physical is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 732s May 02 14:04:01 And Physical slot postgres_1 is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 732s May 02 14:04:01 And Physical slot postgres_3 is in sync between postgres-2 and postgres-0 after 20 seconds # features/steps/slots.py:52 734s May 02 14:04:03 And Physical slot postgres_3 is in sync between postgres-2 and postgres-1 after 10 seconds # features/steps/slots.py:52 735s May 02 14:04:04 735s May 02 14:04:04 @slot-advance 735s May 02 14:04:04 Scenario: check that permanent slots and member slots are written to the /status key # features/permanent_slots.feature:60 735s May 02 14:04:04 Given "status" key in DCS has test_physical in slots # features/steps/slots.py:118 735s May 02 14:04:04 And "status" key in DCS has postgres_0 in slots # features/steps/slots.py:118 735s May 02 14:04:04 And "status" key in DCS has postgres_1 in slots # features/steps/slots.py:118 735s May 02 14:04:04 And "status" key in DCS has postgres_2 in slots # features/steps/slots.py:118 735s May 02 14:04:04 And "status" key in DCS has postgres_3 in slots # features/steps/slots.py:118 735s May 02 14:04:04 735s May 02 14:04:04 @slot-advance 735s May 02 14:04:04 Scenario: check that only non-permanent member slots are written to the retain_slots in /status key # features/permanent_slots.feature:68 735s May 02 14:04:04 Given "status" key in DCS has postgres_0 in retain_slots # features/steps/slots.py:118 735s May 02 14:04:04 And "status" key in DCS has postgres_1 in retain_slots # features/steps/slots.py:118 735s May 02 14:04:04 And "status" key in DCS has postgres_2 in retain_slots # features/steps/slots.py:118 735s May 02 14:04:04 And "status" key in DCS does not have postgres_3 in retain_slots # features/steps/slots.py:124 735s May 02 14:04:04 735s May 02 14:04:04 Scenario: check permanent physical replication slot after failover # features/permanent_slots.feature:74 735s May 02 14:04:04 Given I shut down postgres-3 # features/steps/basic_replication.py:41 736s May 02 14:04:05 And I shut down postgres-2 # features/steps/basic_replication.py:41 737s May 02 14:04:06 And I shut down postgres-0 # features/steps/basic_replication.py:41 739s May 02 14:04:08 Then postgres-1 has a physical replication slot named test_physical after 10 seconds # features/steps/slots.py:82 739s May 02 14:04:08 And postgres-1 has a physical replication slot named postgres_0 after 10 seconds # features/steps/slots.py:82 739s May 02 14:04:08 And postgres-1 has a physical replication slot named postgres_3 after 10 seconds # features/steps/slots.py:82 739s May 02 14:04:08 When I start postgres-0 # features/steps/basic_replication.py:20 742s May 02 14:04:11 Then postgres-0 role is the replica after 20 seconds # features/steps/basic_replication.py:117 742s May 02 14:04:11 And physical replication slot named postgres_1 on postgres-0 has no xmin value after 10 seconds # features/steps/slots.py:98 742s May 02 14:04:11 And postgres-0 has a physical replication slot named postgres_2 after 10 seconds # features/steps/slots.py:82 742s May 02 14:04:11 And postgres-0 has a physical replication slot named postgres_3 after 10 seconds # features/steps/slots.py:82 745s May 02 14:04:14 745s May 02 14:04:14 Feature: priority replication # features/priority_failover.feature:1 745s May 02 14:04:14 We should check that we can give nodes priority during failover 745s May 02 14:04:14 Scenario: check failover priority 0 prevents leaderships # features/priority_failover.feature:4 745s May 02 14:04:14 Given I configure and start postgres-0 with a tag failover_priority 1 # features/steps/cascading_replication.py:7 751s May 02 14:04:19 And I configure and start postgres-1 with a tag failover_priority 0 # features/steps/cascading_replication.py:7 756s May 02 14:04:25 Then replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 757s May 02 14:04:26 When I shut down postgres-0 # features/steps/basic_replication.py:41 759s May 02 14:04:28 And there is one of ["following a different leader because I am not allowed to promote"] INFO in the postgres-1 patroni log after 5 seconds # features/steps/basic_replication.py:133 761s May 02 14:04:30 Then postgres-1 role is the secondary after 10 seconds # features/steps/basic_replication.py:117 761s May 02 14:04:30 When I start postgres-0 # features/steps/basic_replication.py:20 764s May 02 14:04:33 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 765s May 02 14:04:34 765s May 02 14:04:34 Scenario: check higher failover priority is respected # features/priority_failover.feature:14 765s May 02 14:04:34 Given I configure and start postgres-2 with a tag failover_priority 1 # features/steps/cascading_replication.py:7 770s May 02 14:04:39 And I configure and start postgres-3 with a tag failover_priority 2 # features/steps/cascading_replication.py:7 775s May 02 14:04:44 Then replication works from postgres-0 to postgres-2 after 20 seconds # features/steps/basic_replication.py:124 776s May 02 14:04:45 And replication works from postgres-0 to postgres-3 after 20 seconds # features/steps/basic_replication.py:124 777s May 02 14:04:46 When I shut down postgres-0 # features/steps/basic_replication.py:41 779s May 02 14:04:48 Then postgres-3 role is the primary after 10 seconds # features/steps/basic_replication.py:117 780s May 02 14:04:49 And there is one of ["postgres-3 has equally tolerable WAL position and priority 2, while this node has priority 1","Wal position of postgres-3 is ahead of my wal position"] INFO in the postgres-2 patroni log after 5 seconds # features/steps/basic_replication.py:133 780s May 02 14:04:49 780s May 02 14:04:49 Scenario: check conflicting configuration handling # features/priority_failover.feature:23 780s May 02 14:04:49 When I set nofailover tag in postgres-2 config # features/steps/patroni_api.py:133 780s May 02 14:04:49 And I issue an empty POST request to http://127.0.0.1:8010/reload # features/steps/patroni_api.py:68 780s May 02 14:04:49 Then I receive a response code 202 # features/steps/patroni_api.py:100 780s May 02 14:04:49 And there is one of ["Conflicting configuration between nofailover: True and failover_priority: 1. Defaulting to nofailover: True"] WARNING in the postgres-2 patroni log after 5 seconds # features/steps/basic_replication.py:133 781s May 02 14:04:50 And "members/postgres-2" key in DCS has tags={'failover_priority': '1', 'nofailover': True} after 10 seconds # features/steps/cascading_replication.py:23 782s May 02 14:04:51 When I issue a POST request to http://127.0.0.1:8010/failover with {"candidate": "postgres-2"} # features/steps/patroni_api.py:73 782s May 02 14:04:51 Then I receive a response code 412 # features/steps/patroni_api.py:100 782s May 02 14:04:51 And I receive a response text "failover is not possible: no good candidates have been found" # features/steps/patroni_api.py:100 782s May 02 14:04:51 When I reset nofailover tag in postgres-1 config # features/steps/patroni_api.py:133 782s May 02 14:04:51 And I issue an empty POST request to http://127.0.0.1:8009/reload # features/steps/patroni_api.py:68 782s May 02 14:04:51 Then I receive a response code 202 # features/steps/patroni_api.py:100 782s May 02 14:04:51 And there is one of ["Conflicting configuration between nofailover: False and failover_priority: 0. Defaulting to nofailover: False"] WARNING in the postgres-1 patroni log after 5 seconds # features/steps/basic_replication.py:133 785s May 02 14:04:54 And "members/postgres-1" key in DCS has tags={'failover_priority': '0', 'nofailover': False} after 10 seconds # features/steps/cascading_replication.py:23 786s May 02 14:04:55 And I issue a POST request to http://127.0.0.1:8009/failover with {"candidate": "postgres-1"} # features/steps/patroni_api.py:73 789s May 02 14:04:58 Then I receive a response code 200 # features/steps/patroni_api.py:100 789s May 02 14:04:58 And postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 795s May 02 14:05:04 795s May 02 14:05:04 Feature: quorum commit # features/quorum_commit.feature:1 795s May 02 14:05:04 Check basic workfrlows when quorum commit is enabled 795s May 02 14:05:04 Scenario: check enable quorum commit and that the only leader promotes after restart # features/quorum_commit.feature:4 795s May 02 14:05:04 Given I start postgres-0 # features/steps/basic_replication.py:20 800s May 02 14:05:09 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 800s May 02 14:05:09 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 800s May 02 14:05:09 When I issue a PATCH request to http://127.0.0.1:8008/config with {"ttl": 20, "synchronous_mode": "quorum"} # features/steps/patroni_api.py:73 800s May 02 14:05:09 Then I receive a response code 200 # features/steps/patroni_api.py:100 800s May 02 14:05:09 And sync key in DCS has leader=postgres-0 after 20 seconds # features/steps/quorum_commit.py:8 801s May 02 14:05:10 And sync key in DCS has quorum=0 after 2 seconds # features/steps/quorum_commit.py:8 801s May 02 14:05:10 And synchronous_standby_names on postgres-0 is set to '_empty_str_' after 2 seconds # features/steps/quorum_commit.py:39 801s May 02 14:05:10 When I shut down postgres-0 # features/steps/basic_replication.py:41 803s May 02 14:05:12 And sync key in DCS has leader=postgres-0 after 2 seconds # features/steps/quorum_commit.py:8 803s May 02 14:05:12 When I start postgres-0 # features/steps/basic_replication.py:20 806s May 02 14:05:15 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 807s May 02 14:05:16 When I issue a PATCH request to http://127.0.0.1:8008/config with {"synchronous_mode_strict": true} # features/steps/patroni_api.py:73 807s May 02 14:05:16 Then synchronous_standby_names on postgres-0 is set to 'ANY 1 (*)' after 10 seconds # features/steps/quorum_commit.py:39 808s May 02 14:05:17 808s May 02 14:05:17 Scenario: check failover with one quorum standby # features/quorum_commit.feature:20 808s May 02 14:05:17 Given I start postgres-1 # features/steps/basic_replication.py:20 813s May 02 14:05:22 Then sync key in DCS has sync_standby=postgres-1 after 10 seconds # features/steps/quorum_commit.py:8 815s May 02 14:05:24 And synchronous_standby_names on postgres-0 is set to 'ANY 1 ("postgres-1")' after 2 seconds # features/steps/quorum_commit.py:39 815s May 02 14:05:24 When I shut down postgres-0 # features/steps/basic_replication.py:41 817s May 02 14:05:26 Then postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 818s May 02 14:05:27 And sync key in DCS has quorum=0 after 10 seconds # features/steps/quorum_commit.py:8 818s May 02 14:05:27 Then synchronous_standby_names on postgres-1 is set to 'ANY 1 (*)' after 10 seconds # features/steps/quorum_commit.py:39 821s May 02 14:05:30 When I start postgres-0 # features/steps/basic_replication.py:20 824s May 02 14:05:33 Then sync key in DCS has leader=postgres-1 after 10 seconds # features/steps/quorum_commit.py:8 824s May 02 14:05:33 Then sync key in DCS has sync_standby=postgres-0 after 10 seconds # features/steps/quorum_commit.py:8 826s May 02 14:05:35 And synchronous_standby_names on postgres-1 is set to 'ANY 1 ("postgres-0")' after 2 seconds # features/steps/quorum_commit.py:39 826s May 02 14:05:35 826s May 02 14:05:35 Scenario: check behavior with three nodes and different replication factor # features/quorum_commit.feature:33 826s May 02 14:05:35 Given I start postgres-2 # features/steps/basic_replication.py:20 831s May 02 14:05:40 Then sync key in DCS has sync_standby=postgres-0,postgres-2 after 10 seconds # features/steps/quorum_commit.py:8 832s May 02 14:05:41 And sync key in DCS has quorum=1 after 2 seconds # features/steps/quorum_commit.py:8 832s May 02 14:05:41 And synchronous_standby_names on postgres-1 is set to 'ANY 1 ("postgres-0","postgres-2")' after 2 seconds # features/steps/quorum_commit.py:39 832s May 02 14:05:41 When I issue a PATCH request to http://127.0.0.1:8009/config with {"synchronous_node_count": 2} # features/steps/patroni_api.py:73 832s May 02 14:05:41 Then sync key in DCS has quorum=0 after 10 seconds # features/steps/quorum_commit.py:8 833s May 02 14:05:42 And synchronous_standby_names on postgres-1 is set to 'ANY 2 ("postgres-0","postgres-2")' after 2 seconds # features/steps/quorum_commit.py:39 833s May 02 14:05:42 833s May 02 14:05:42 Scenario: switch from quorum replication to good old multisync and back # features/quorum_commit.feature:42 833s May 02 14:05:42 Given I issue a PATCH request to http://127.0.0.1:8009/config with {"synchronous_mode": true, "synchronous_node_count": 1} # features/steps/patroni_api.py:73 833s May 02 14:05:42 And I shut down postgres-0 # features/steps/basic_replication.py:41 836s May 02 14:05:45 Then synchronous_standby_names on postgres-1 is set to '"postgres-2"' after 10 seconds # features/steps/quorum_commit.py:39 836s May 02 14:05:45 And sync key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/quorum_commit.py:8 838s May 02 14:05:47 Then sync key in DCS has quorum=0 after 2 seconds # features/steps/quorum_commit.py:8 838s May 02 14:05:47 When I issue a PATCH request to http://127.0.0.1:8009/config with {"synchronous_mode": "quorum"} # features/steps/patroni_api.py:73 838s May 02 14:05:47 And I start postgres-0 # features/steps/basic_replication.py:20 841s May 02 14:05:50 Then synchronous_standby_names on postgres-1 is set to 'ANY 1 ("postgres-0","postgres-2")' after 10 seconds # features/steps/quorum_commit.py:39 842s May 02 14:05:51 And sync key in DCS has sync_standby=postgres-0,postgres-2 after 10 seconds # features/steps/quorum_commit.py:8 842s May 02 14:05:51 Then sync key in DCS has quorum=1 after 2 seconds # features/steps/quorum_commit.py:8 842s May 02 14:05:51 842s May 02 14:05:51 Scenario: REST API and patronictl # features/quorum_commit.feature:54 842s May 02 14:05:51 Given I run patronictl.py list batman # features/steps/patroni_api.py:88 844s May 02 14:05:53 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 844s May 02 14:05:53 And I receive a response output "Quorum Standby" # features/steps/patroni_api.py:100 844s May 02 14:05:53 And Status code on GET http://127.0.0.1:8008/quorum is 200 after 3 seconds # features/steps/patroni_api.py:144 844s May 02 14:05:53 And Status code on GET http://127.0.0.1:8010/quorum is 200 after 3 seconds # features/steps/patroni_api.py:144 844s May 02 14:05:53 844s May 02 14:05:53 Scenario: nosync node is removed from voters and synchronous_standby_names # features/quorum_commit.feature:61 844s May 02 14:05:53 Given I add tag nosync true to postgres-2 config # features/steps/patroni_api.py:139 844s May 02 14:05:53 When I issue an empty POST request to http://127.0.0.1:8010/reload # features/steps/patroni_api.py:68 844s May 02 14:05:53 Then I receive a response code 202 # features/steps/patroni_api.py:100 844s May 02 14:05:53 And sync key in DCS has quorum=0 after 10 seconds # features/steps/quorum_commit.py:8 846s May 02 14:05:55 And sync key in DCS has sync_standby=postgres-0 after 10 seconds # features/steps/quorum_commit.py:8 846s May 02 14:05:55 And synchronous_standby_names on postgres-1 is set to 'ANY 1 ("postgres-0")' after 2 seconds # features/steps/quorum_commit.py:39 846s May 02 14:05:55 And Status code on GET http://127.0.0.1:8010/quorum is 503 after 10 seconds # features/steps/patroni_api.py:144 853s May 02 14:06:02 853s May 02 14:06:02 Feature: recovery # features/recovery.feature:1 853s May 02 14:06:02 We want to check that crashed postgres is started back 853s May 02 14:06:02 Scenario: check that timeline is not incremented when primary is started after crash # features/recovery.feature:4 853s May 02 14:06:02 Given I start postgres-0 # features/steps/basic_replication.py:20 858s May 02 14:06:07 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 858s May 02 14:06:07 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 858s May 02 14:06:07 When I start postgres-1 # features/steps/basic_replication.py:20 862s May 02 14:06:11 And I add the table foo to postgres-0 # features/steps/basic_replication.py:66 862s May 02 14:06:11 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 863s May 02 14:06:12 When I kill postmaster on postgres-0 # features/steps/basic_replication.py:56 863s May 02 14:06:12 waiting for server to shut down.... done 863s May 02 14:06:12 server stopped 863s May 02 14:06:12 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 865s May 02 14:06:14 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:63 865s May 02 14:06:14 Then I receive a response code 200 # features/steps/patroni_api.py:100 865s May 02 14:06:14 And I receive a response role primary # features/steps/patroni_api.py:100 865s May 02 14:06:14 And I receive a response timeline 1 # features/steps/patroni_api.py:100 865s May 02 14:06:14 And "members/postgres-0" key in DCS has state=running after 12 seconds # features/steps/cascading_replication.py:23 865s May 02 14:06:14 And replication works from postgres-0 to postgres-1 after 15 seconds # features/steps/basic_replication.py:124 869s May 02 14:06:18 869s May 02 14:06:18 Scenario: check immediate failover when master_start_timeout=0 # features/recovery.feature:20 869s May 02 14:06:18 Given I issue a PATCH request to http://127.0.0.1:8008/config with {"master_start_timeout": 0} # features/steps/patroni_api.py:73 870s May 02 14:06:19 Then I receive a response code 200 # features/steps/patroni_api.py:100 870s May 02 14:06:19 And Response on GET http://127.0.0.1:8008/config contains master_start_timeout after 10 seconds # features/steps/patroni_api.py:158 870s May 02 14:06:19 When I kill postmaster on postgres-0 # features/steps/basic_replication.py:56 870s May 02 14:06:19 waiting for server to shut down.... done 870s May 02 14:06:19 server stopped 870s May 02 14:06:19 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 873s May 02 14:06:22 And postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 873s May 02 14:06:22 873s May 02 14:06:22 Scenario: check crashed primary demotes after failed attempt to start # features/recovery.feature:28 873s May 02 14:06:22 Given I issue a PATCH request to http://127.0.0.1:8009/config with {"master_start_timeout": null} # features/steps/patroni_api.py:73 873s May 02 14:06:22 Then I receive a response code 200 # features/steps/patroni_api.py:100 873s May 02 14:06:22 And postgres-0 role is the replica after 10 seconds # features/steps/basic_replication.py:117 875s May 02 14:06:24 When I ensure postgres-1 fails to start after a failure # features/steps/recovery.py:6 875s May 02 14:06:24 When I kill postmaster on postgres-1 # features/steps/basic_replication.py:56 875s May 02 14:06:24 waiting for server to shut down.... done 875s May 02 14:06:24 server stopped 875s May 02 14:06:24 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 876s May 02 14:06:25 And there is a postgres-1_cb.log with "on_role_change demoted batman" in postgres-1 data directory # features/steps/cascading_replication.py:12 880s May 02 14:06:29 880s May 02 14:06:29 Feature: standby cluster # features/standby_cluster.feature:1 880s May 02 14:06:29 880s May 02 14:06:29 Scenario: prepare the cluster with logical slots # features/standby_cluster.feature:2 880s May 02 14:06:29 Given I start postgres-1 # features/steps/basic_replication.py:20 885s May 02 14:06:34 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 885s May 02 14:06:34 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 885s May 02 14:06:34 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:73 885s May 02 14:06:34 Then I receive a response code 200 # features/steps/patroni_api.py:100 885s May 02 14:06:34 And Response on GET http://127.0.0.1:8009/config contains slots after 10 seconds # features/steps/patroni_api.py:158 885s May 02 14:06:34 And I sleep for 3 seconds # features/steps/patroni_api.py:41 888s May 02 14:06:37 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:73 888s May 02 14:06:37 Then I receive a response code 200 # features/steps/patroni_api.py:100 888s May 02 14:06:37 And I do a backup of postgres-1 # features/steps/custom_bootstrap.py:25 891s May 02 14:06:39 When I start postgres-0 # features/steps/basic_replication.py:20 896s May 02 14:06:45 Then "members/postgres-0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 896s May 02 14:06:45 And replication works from postgres-1 to postgres-0 after 15 seconds # features/steps/basic_replication.py:124 897s May 02 14:06:46 When I issue a GET request to http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:63 897s May 02 14:06:46 Then I receive a response code 200 # features/steps/patroni_api.py:100 897s May 02 14:06:46 And I receive a response replication_state streaming # features/steps/patroni_api.py:100 897s May 02 14:06:46 And "members/postgres-0" key in DCS has replication_state=streaming after 10 seconds # features/steps/cascading_replication.py:23 897s May 02 14:06:46 897s May 02 14:06:46 @slot-advance 897s May 02 14:06:46 Scenario: check permanent logical slots are synced to the replica # features/standby_cluster.feature:22 897s May 02 14:06:46 Given I run patronictl.py restart batman postgres-1 --force # features/steps/patroni_api.py:88 898s May 02 14:06:47 Then Logical slot test_logical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 905s May 02 14:06:54 905s May 02 14:06:54 Scenario: Detach exiting node from the cluster # features/standby_cluster.feature:26 905s May 02 14:06:54 When I shut down postgres-1 # features/steps/basic_replication.py:41 907s May 02 14:06:56 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 907s May 02 14:06:56 And "members/postgres-0" key in DCS has role=primary after 5 seconds # features/steps/cascading_replication.py:23 908s May 02 14:06:57 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:63 908s May 02 14:06:57 Then I receive a response code 200 # features/steps/patroni_api.py:100 908s May 02 14:06:57 908s May 02 14:06:57 Scenario: check replication of a single table in a standby cluster # features/standby_cluster.feature:33 908s May 02 14:06:57 Given I start postgres-1 in a standby cluster batman1 as a clone of postgres-0 # features/steps/standby_cluster.py:23 911s May 02 14:07:00 Then postgres-1 is a leader of batman1 after 10 seconds # features/steps/custom_bootstrap.py:16 912s May 02 14:07:01 When I add the table foo to postgres-0 # features/steps/basic_replication.py:66 912s May 02 14:07:01 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 912s May 02 14:07:01 When I issue a GET request to http://127.0.0.1:8009/patroni # features/steps/patroni_api.py:63 912s May 02 14:07:01 Then I receive a response code 200 # features/steps/patroni_api.py:100 912s May 02 14:07:01 And I receive a response replication_state streaming # features/steps/patroni_api.py:100 912s May 02 14:07:01 And I sleep for 3 seconds # features/steps/patroni_api.py:41 915s May 02 14:07:04 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 915s May 02 14:07:04 Then I receive a response code 503 # features/steps/patroni_api.py:100 915s May 02 14:07:04 When I issue a GET request to http://127.0.0.1:8009/standby_leader # features/steps/patroni_api.py:63 915s May 02 14:07:04 Then I receive a response code 200 # features/steps/patroni_api.py:100 915s May 02 14:07:04 And I receive a response role standby_leader # features/steps/patroni_api.py:100 915s May 02 14:07:04 And there is a postgres-1_cb.log with "on_role_change standby_leader batman1" in postgres-1 data directory # features/steps/cascading_replication.py:12 915s May 02 14:07:04 When I start postgres-2 in a cluster batman1 # features/steps/standby_cluster.py:12 920s May 02 14:07:09 Then postgres-2 role is the replica after 24 seconds # features/steps/basic_replication.py:117 920s May 02 14:07:09 And postgres-2 is replicating from postgres-1 after 10 seconds # features/steps/standby_cluster.py:52 920s May 02 14:07:09 And table foo is present on postgres-2 after 20 seconds # features/steps/basic_replication.py:105 920s May 02 14:07:09 When I issue a GET request to http://127.0.0.1:8010/patroni # features/steps/patroni_api.py:63 920s May 02 14:07:09 Then I receive a response code 200 # features/steps/patroni_api.py:100 920s May 02 14:07:09 And I receive a response replication_state streaming # features/steps/patroni_api.py:100 920s May 02 14:07:09 And postgres-1 does not have a replication slot named test_logical # features/steps/slots.py:41 920s May 02 14:07:09 920s May 02 14:07:09 Scenario: check switchover # features/standby_cluster.feature:57 920s May 02 14:07:09 Given I run patronictl.py switchover batman1 --force # features/steps/patroni_api.py:88 923s May 02 14:07:12 Then Status code on GET http://127.0.0.1:8010/standby_leader is 200 after 10 seconds # features/steps/patroni_api.py:144 923s May 02 14:07:12 And postgres-1 is replicating from postgres-2 after 32 seconds # features/steps/standby_cluster.py:52 926s May 02 14:07:15 And there is a postgres-2_cb.log with "on_start replica batman1\non_role_change standby_leader batman1" in postgres-2 data directory # features/steps/cascading_replication.py:12 926s May 02 14:07:15 926s May 02 14:07:15 Scenario: check failover # features/standby_cluster.feature:63 926s May 02 14:07:15 When I kill postgres-2 # features/steps/basic_replication.py:46 927s May 02 14:07:16 And I kill postmaster on postgres-2 # features/steps/basic_replication.py:56 927s May 02 14:07:16 waiting for server to shut down.... done 927s May 02 14:07:16 server stopped 927s May 02 14:07:16 Then postgres-1 is replicating from postgres-0 after 32 seconds # features/steps/standby_cluster.py:52 946s May 02 14:07:35 And Status code on GET http://127.0.0.1:8009/standby_leader is 200 after 10 seconds # features/steps/patroni_api.py:144 946s May 02 14:07:35 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 946s May 02 14:07:35 Then I receive a response code 503 # features/steps/patroni_api.py:100 946s May 02 14:07:35 And I receive a response role standby_leader # features/steps/patroni_api.py:100 946s May 02 14:07:35 And replication works from postgres-0 to postgres-1 after 15 seconds # features/steps/basic_replication.py:124 947s May 02 14:07:36 And there is a postgres-1_cb.log with "on_role_change replica batman1\non_role_change standby_leader batman1" in postgres-1 data directory # features/steps/cascading_replication.py:12 951s May 02 14:07:40 951s May 02 14:07:40 Feature: watchdog # features/watchdog.feature:1 951s May 02 14:07:40 Verify that watchdog gets pinged and triggered under appropriate circumstances. 951s May 02 14:07:40 Scenario: watchdog is opened and pinged # features/watchdog.feature:4 951s May 02 14:07:40 Given I start postgres-0 with watchdog # features/steps/watchdog.py:17 956s May 02 14:07:45 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 956s May 02 14:07:45 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 956s May 02 14:07:45 And postgres-0 watchdog has been pinged after 10 seconds # features/steps/watchdog.py:22 956s May 02 14:07:45 And postgres-0 watchdog has a 15 second timeout # features/steps/watchdog.py:35 956s May 02 14:07:45 956s May 02 14:07:45 Scenario: watchdog is reconfigured after global ttl changed # features/watchdog.feature:11 956s May 02 14:07:45 Given I run patronictl.py edit-config batman -s ttl=30 --force # features/steps/patroni_api.py:88 957s May 02 14:07:46 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 957s May 02 14:07:46 And I receive a response output "+ttl: 30" # features/steps/patroni_api.py:100 957s May 02 14:07:46 When I sleep for 4 seconds # features/steps/patroni_api.py:41 961s May 02 14:07:50 Then postgres-0 watchdog has a 25 second timeout # features/steps/watchdog.py:35 961s May 02 14:07:50 961s May 02 14:07:50 Scenario: watchdog is disabled during pause # features/watchdog.feature:18 961s May 02 14:07:50 Given I run patronictl.py pause batman # features/steps/patroni_api.py:88 962s May 02 14:07:51 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 962s May 02 14:07:51 When I sleep for 2 seconds # features/steps/patroni_api.py:41 964s May 02 14:07:53 Then postgres-0 watchdog has been closed # features/steps/watchdog.py:30 964s May 02 14:07:53 964s May 02 14:07:53 Scenario: watchdog is opened and pinged after resume # features/watchdog.feature:24 964s May 02 14:07:53 Given I reset postgres-0 watchdog state # features/steps/watchdog.py:40 964s May 02 14:07:53 And I run patronictl.py resume batman # features/steps/patroni_api.py:88 966s May 02 14:07:55 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 966s May 02 14:07:55 And postgres-0 watchdog has been pinged after 10 seconds # features/steps/watchdog.py:22 967s May 02 14:07:56 967s May 02 14:07:56 Scenario: watchdog is disabled when shutting down # features/watchdog.feature:30 967s May 02 14:07:56 Given I shut down postgres-0 # features/steps/basic_replication.py:41 969s May 02 14:07:58 Then postgres-0 watchdog has been closed # features/steps/watchdog.py:30 969s May 02 14:07:58 969s May 02 14:07:58 Scenario: watchdog is triggered if patroni stops responding # features/watchdog.feature:34 969s May 02 14:07:58 Given I reset postgres-0 watchdog state # features/steps/watchdog.py:40 969s May 02 14:07:58 And I start postgres-0 with watchdog # features/steps/watchdog.py:17 972s May 02 14:08:01 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 973s May 02 14:08:02 When postgres-0 hangs for 30 seconds # features/steps/watchdog.py:53 973s May 02 14:08:02 Then postgres-0 watchdog is triggered after 30 seconds # features/steps/watchdog.py:45 1000s May 02 14:08:29 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.3331.XoaywfIx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.3376.XXHxxUXx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.3424.XHzleGux 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.3477.XyZINTjx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.3524.XMuYztPx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.3600.XvXBMFix 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.3651.XKMqtfTx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.3654.XtvDJFUx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.3733.XBJrpHix 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.3838.XbkMskSx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.3852.XTTMeKKx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.3896.XabVgEFx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.3947.XatMDvnx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.4065.XPkIWwfx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.4111.XgMeIkxx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.4167.XHvrYnlx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.4260.XtjmmBVx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.4310.XcsKxIOx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.4410.XUaUiDGx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.4464.XEhjIzXx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.4528.XhKhGyVx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.4619.XPPQWmwx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.4717.XQsHiDzx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.4761.XHgCcBnx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.4827.XsRToQkx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.4866.XpXbYhFx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.5022.XymbAqMx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.5073.XqTPaEEx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.5089.XrekwVNx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.5128.XpeaaNpx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.5178.XzwlSWZx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.5183.XfRSXtEx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.5220.XpSPDDRx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.5266.XsdiuoRx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.5435.XZPByWPx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.5437.XXgBBKDx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.5443.XMzZmyPx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.5577.XiGDZStx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.5623.XvKleSpx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.5673.XZSTYPLx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.5719.XevkwLXx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.5765.XUTXLxRx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.5908.XDcowrsx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.5976.XuAHnbPx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.6020.XbobgVsx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.6093.XuoqzKmx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.6177.XDzhNlZx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.6236.XogmXxNx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.6568.XDQVtHzx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.6619.XXmKrwfx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.6684.XHFyVbSx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.6775.XUFfyPix 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.6825.XnkUEPdx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.6881.XRZiDFmx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.6926.XppBUQox 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.6966.XrvVVbxx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.7010.XYZltmQx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.7229.XFmdOZux 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.7294.XYIJtAIx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.7349.XHdWhQjx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.7455.XnpNPcax 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.7576.XUGvpDKx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.7712.XnjRMGqx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.7757.XjRcrghx 1000s May 02 14:08:29 Skipping duplicate data .coverage.autopkgtest-lxd-xruleb.7759.XvgDAezx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.7762.XLePnPwx 1000s May 02 14:08:29 Combined data file .coverage.autopkgtest-lxd-xruleb.7773.XTVBUvEx 1005s May 02 14:08:34 Name Stmts Miss Cover 1005s May 02 14:08:34 ------------------------------------------------------------------------------------------------------------- 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/OpenSSL/SSL.py 1159 642 45% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/OpenSSL/__init__.py 3 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/OpenSSL/_util.py 44 15 66% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/OpenSSL/crypto.py 869 663 24% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/OpenSSL/version.py 9 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/_distutils_hack/__init__.py 101 96 5% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/bcrypt/__init__.py 3 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/__about__.py 5 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/__init__.py 3 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/exceptions.py 26 5 81% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/hazmat/__init__.py 2 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/hazmat/_oid.py 135 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/__init__.py 0 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/__init__.py 0 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/_conditional.py 38 17 55% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/binding.py 51 4 92% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/hazmat/decrepit/__init__.py 1 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/hazmat/decrepit/ciphers/__init__.py 1 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/hazmat/decrepit/ciphers/algorithms.py 68 18 74% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/__init__.py 0 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_asymmetric.py 6 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_cipheralgorithm.py 23 4 83% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_serialization.py 79 35 56% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/__init__.py 0 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/dh.py 47 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/dsa.py 55 5 91% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ec.py 172 22 87% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ed448.py 45 12 73% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ed25519.py 43 12 72% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/padding.py 55 23 58% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/rsa.py 93 40 57% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/types.py 19 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/utils.py 14 5 64% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/x448.py 43 12 72% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/x25519.py 41 12 71% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/__init__.py 4 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/algorithms.py 72 15 79% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/base.py 54 12 78% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/modes.py 140 59 58% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/constant_time.py 6 3 50% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/hashes.py 127 20 84% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/__init__.py 5 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/base.py 7 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/ssh.py 775 614 21% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/utils.py 76 28 63% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/x509/__init__.py 70 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/x509/base.py 488 227 53% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/x509/certificate_transparency.py 42 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/x509/extensions.py 1024 552 46% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/x509/general_name.py 166 94 43% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/x509/name.py 236 144 39% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/x509/oid.py 3 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/cryptography/x509/verification.py 12 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dateutil/__init__.py 13 4 69% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dateutil/_common.py 25 15 40% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dateutil/_version.py 13 3 77% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dateutil/parser/__init__.py 33 4 88% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dateutil/parser/_parser.py 810 436 46% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dateutil/parser/isoparser.py 183 150 18% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dateutil/relativedelta.py 240 206 14% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dateutil/tz/__init__.py 4 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dateutil/tz/_common.py 151 114 25% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dateutil/tz/_factories.py 49 21 57% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dateutil/tz/tz.py 794 626 21% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dateutil/tz/win.py 152 149 2% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/__init__.py 2 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/_asyncbackend.py 14 6 57% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/_ddr.py 105 86 18% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/_features.py 46 8 83% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/_immutable_ctx.py 40 5 88% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/asyncbackend.py 44 32 27% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/asyncquery.py 322 283 12% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/edns.py 307 185 40% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/entropy.py 80 49 39% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/enum.py 72 46 36% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/exception.py 59 33 44% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/flags.py 40 14 65% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/grange.py 33 30 9% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/immutable.py 41 30 27% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/inet.py 79 65 18% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/ipv4.py 26 20 23% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/ipv6.py 114 100 12% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/message.py 829 676 18% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/name.py 617 425 31% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/nameserver.py 102 55 46% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/node.py 117 71 39% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/opcode.py 30 7 77% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/query.py 562 477 15% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/quic/__init__.py 28 23 18% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/rcode.py 68 13 81% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/rdata.py 386 277 28% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/rdataclass.py 43 9 79% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/rdataset.py 192 133 31% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/rdatatype.py 215 23 89% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/OPT.py 34 19 44% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/SOA.py 41 26 37% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/TSIG.py 58 42 28% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/ZONEMD.py 43 27 37% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/__init__.py 1 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/rdtypes/__init__.py 1 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/rdtypes/svcbbase.py 415 268 35% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/rdtypes/util.py 191 154 19% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/renderer.py 151 118 22% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/resolver.py 873 696 20% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/reversename.py 32 24 25% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/rrset.py 77 56 27% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/serial.py 92 79 14% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/set.py 148 107 28% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/tokenizer.py 334 279 16% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/transaction.py 269 201 25% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/tsig.py 176 122 31% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/ttl.py 44 38 14% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/version.py 6 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/wire.py 64 42 34% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/xfr.py 148 126 15% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/zone.py 507 383 24% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/zonefile.py 427 379 11% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/dns/zonetypes.py 14 2 86% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/etcd/__init__.py 125 63 50% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/etcd/client.py 380 256 33% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/etcd/lock.py 125 103 18% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/idna/__init__.py 4 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/idna/core.py 292 257 12% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/idna/idnadata.py 4 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/idna/intranges.py 30 24 20% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/idna/package_data.py 1 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/__init__.py 13 2 85% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/__main__.py 201 64 68% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/api.py 788 292 63% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/async_executor.py 96 15 84% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/collections.py 56 5 91% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/config.py 357 84 76% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/config_generator.py 212 159 25% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/daemon.py 76 3 96% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/dcs/__init__.py 710 95 87% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/dcs/etcd3.py 679 127 81% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/dcs/etcd.py 603 256 58% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/dynamic_loader.py 35 7 80% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/exceptions.py 16 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/file_perm.py 47 10 79% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/global_config.py 87 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/ha.py 1359 376 72% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/log.py 235 79 66% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/postgresql/__init__.py 825 170 79% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/postgresql/available_parameters/__init__.py 24 3 88% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/postgresql/bootstrap.py 254 60 76% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/postgresql/callback_executor.py 55 8 85% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/postgresql/cancellable.py 104 41 61% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/postgresql/config.py 839 215 74% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/postgresql/connection.py 75 1 99% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/postgresql/misc.py 43 8 81% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/postgresql/mpp/__init__.py 89 11 88% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/postgresql/postmaster.py 170 83 51% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/postgresql/rewind.py 416 128 69% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/postgresql/slots.py 349 38 89% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/postgresql/sync.py 154 10 94% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/postgresql/validator.py 157 24 85% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/psycopg.py 46 19 59% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/quorum.py 182 48 74% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/request.py 58 7 88% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/tags.py 38 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/utils.py 371 106 71% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/validator.py 309 215 30% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/version.py 1 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/watchdog/__init__.py 2 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/watchdog/base.py 203 42 79% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/patroni/watchdog/linux.py 135 35 74% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/psutil/__init__.py 950 629 34% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/psutil/_common.py 422 212 50% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/psutil/_compat.py 301 263 13% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/psutil/_pslinux.py 1250 924 26% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/psutil/_psposix.py 95 38 60% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/psycopg2/__init__.py 19 3 84% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/psycopg2/_json.py 64 27 58% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/psycopg2/_range.py 269 172 36% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/psycopg2/errors.py 3 2 33% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/psycopg2/extensions.py 91 25 73% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/urllib3/__init__.py 49 15 69% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/urllib3/_base_connection.py 63 45 29% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/urllib3/_collections.py 231 124 46% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/urllib3/_request_methods.py 54 24 56% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/urllib3/_version.py 13 3 77% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/urllib3/connection.py 389 137 65% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/urllib3/connectionpool.py 344 129 62% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/urllib3/contrib/__init__.py 0 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/urllib3/contrib/pyopenssl.py 263 101 62% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/urllib3/exceptions.py 121 39 68% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/urllib3/fields.py 92 73 21% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/urllib3/filepost.py 37 24 35% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/urllib3/http2/__init__.py 28 21 25% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/urllib3/http2/probe.py 49 31 37% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/urllib3/poolmanager.py 233 86 63% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/urllib3/response.py 634 330 48% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/urllib3/util/__init__.py 10 0 100% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/urllib3/util/connection.py 66 42 36% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/urllib3/util/proxy.py 13 6 54% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/urllib3/util/request.py 104 49 53% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/urllib3/util/response.py 32 15 53% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/urllib3/util/retry.py 174 51 71% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/urllib3/util/ssl_.py 172 74 57% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/urllib3/util/ssl_match_hostname.py 66 54 18% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/urllib3/util/ssltransport.py 152 106 30% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/urllib3/util/timeout.py 71 14 80% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/urllib3/util/url.py 203 73 64% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/urllib3/util/util.py 26 10 62% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/urllib3/util/wait.py 49 18 63% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/yaml/__init__.py 165 109 34% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/yaml/composer.py 92 17 82% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/yaml/constructor.py 479 276 42% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/yaml/cyaml.py 46 24 48% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/yaml/dumper.py 23 12 48% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/yaml/emitter.py 838 769 8% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/yaml/error.py 58 42 28% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/yaml/events.py 61 6 90% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/yaml/loader.py 47 24 49% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/yaml/nodes.py 29 7 76% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/yaml/parser.py 352 198 44% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/yaml/reader.py 122 34 72% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/yaml/representer.py 248 176 29% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/yaml/resolver.py 135 76 44% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/yaml/scanner.py 758 437 42% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/yaml/serializer.py 85 70 18% 1005s May 02 14:08:34 /usr/lib/python3/dist-packages/yaml/tokens.py 76 17 78% 1005s May 02 14:08:34 patroni/__init__.py 13 2 85% 1005s May 02 14:08:34 patroni/__main__.py 201 201 0% 1005s May 02 14:08:34 patroni/api.py 788 788 0% 1005s May 02 14:08:34 patroni/async_executor.py 96 69 28% 1005s May 02 14:08:34 patroni/collections.py 56 15 73% 1005s May 02 14:08:34 patroni/config.py 357 186 48% 1005s May 02 14:08:34 patroni/config_generator.py 212 212 0% 1005s May 02 14:08:34 patroni/ctl.py 936 395 58% 1005s May 02 14:08:34 patroni/daemon.py 76 76 0% 1005s May 02 14:08:34 patroni/dcs/__init__.py 710 315 56% 1005s May 02 14:08:34 patroni/dcs/consul.py 482 482 0% 1005s May 02 14:08:34 patroni/dcs/etcd3.py 679 346 49% 1005s May 02 14:08:34 patroni/dcs/etcd.py 603 280 54% 1005s May 02 14:08:34 patroni/dcs/exhibitor.py 62 62 0% 1005s May 02 14:08:34 patroni/dcs/kubernetes.py 943 943 0% 1005s May 02 14:08:34 patroni/dcs/raft.py 319 319 0% 1005s May 02 14:08:34 patroni/dcs/zookeeper.py 289 289 0% 1005s May 02 14:08:34 patroni/dynamic_loader.py 35 7 80% 1005s May 02 14:08:34 patroni/exceptions.py 16 1 94% 1005s May 02 14:08:34 patroni/file_perm.py 47 17 64% 1005s May 02 14:08:34 patroni/global_config.py 87 19 78% 1005s May 02 14:08:34 patroni/ha.py 1359 1359 0% 1005s May 02 14:08:34 patroni/log.py 235 183 22% 1005s May 02 14:08:34 patroni/postgresql/__init__.py 825 653 21% 1005s May 02 14:08:34 patroni/postgresql/available_parameters/__init__.py 24 3 88% 1005s May 02 14:08:34 patroni/postgresql/bootstrap.py 254 224 12% 1005s May 02 14:08:34 patroni/postgresql/callback_executor.py 55 34 38% 1005s May 02 14:08:34 patroni/postgresql/cancellable.py 104 84 19% 1005s May 02 14:08:34 patroni/postgresql/config.py 839 719 14% 1005s May 02 14:08:34 patroni/postgresql/connection.py 75 50 33% 1005s May 02 14:08:34 patroni/postgresql/misc.py 43 30 30% 1005s May 02 14:08:34 patroni/postgresql/mpp/__init__.py 89 21 76% 1005s May 02 14:08:34 patroni/postgresql/mpp/citus.py 366 366 0% 1005s May 02 14:08:34 patroni/postgresql/postmaster.py 170 139 18% 1005s May 02 14:08:34 patroni/postgresql/rewind.py 416 416 0% 1005s May 02 14:08:34 patroni/postgresql/slots.py 349 300 14% 1005s May 02 14:08:34 patroni/postgresql/sync.py 154 114 26% 1005s May 02 14:08:34 patroni/postgresql/validator.py 157 52 67% 1005s May 02 14:08:34 patroni/psycopg.py 46 32 30% 1005s May 02 14:08:34 patroni/quorum.py 182 182 0% 1005s May 02 14:08:34 patroni/raft_controller.py 22 22 0% 1005s May 02 14:08:34 patroni/request.py 58 6 90% 1005s May 02 14:08:34 patroni/scripts/__init__.py 0 0 100% 1005s May 02 14:08:34 patroni/scripts/aws.py 59 59 0% 1005s May 02 14:08:34 patroni/scripts/barman/__init__.py 0 0 100% 1005s May 02 14:08:34 patroni/scripts/barman/cli.py 50 50 0% 1005s May 02 14:08:34 patroni/scripts/barman/config_switch.py 50 50 0% 1005s May 02 14:08:34 patroni/scripts/barman/recover.py 36 36 0% 1005s May 02 14:08:34 patroni/scripts/barman/utils.py 93 93 0% 1005s May 02 14:08:34 patroni/scripts/wale_restore.py 207 207 0% 1005s May 02 14:08:34 patroni/tags.py 38 11 71% 1005s May 02 14:08:34 patroni/utils.py 371 186 50% 1005s May 02 14:08:34 patroni/validator.py 309 222 28% 1005s May 02 14:08:34 patroni/version.py 1 0 100% 1005s May 02 14:08:34 patroni/watchdog/__init__.py 2 2 0% 1005s May 02 14:08:34 patroni/watchdog/base.py 203 203 0% 1005s May 02 14:08:34 patroni/watchdog/linux.py 135 135 0% 1005s May 02 14:08:34 ------------------------------------------------------------------------------------------------------------- 1005s May 02 14:08:34 TOTAL 54415 32606 40% 1005s May 02 14:08:34 13 features passed, 0 failed, 1 skipped 1005s May 02 14:08:34 55 scenarios passed, 0 failed, 14 skipped 1005s May 02 14:08:34 539 steps passed, 0 failed, 128 skipped, 0 undefined 1005s May 02 14:08:34 Took 9m5.825s 1005s ### End 17 acceptance-etcd3 ### 1005s + echo '### End 17 acceptance-etcd3 ###' 1005s + rm -f '/tmp/pgpass?' 1005s ++ id -u 1005s + '[' 1000 -eq 0 ']' 1006s autopkgtest [14:08:35]: test acceptance-etcd3: -----------------------] 1009s autopkgtest [14:08:38]: test acceptance-etcd3: - - - - - - - - - - results - - - - - - - - - - 1009s acceptance-etcd3 PASS 1013s autopkgtest [14:08:42]: test acceptance-etcd-basic: preparing testbed 1036s autopkgtest [14:09:05]: testbed dpkg architecture: armhf 1038s autopkgtest [14:09:07]: testbed apt version: 3.0.0 1042s autopkgtest [14:09:10]: @@@@@@@@@@@@@@@@@@@@ test bed setup 1043s autopkgtest [14:09:12]: testbed release detected to be: questing 1051s autopkgtest [14:09:20]: updating testbed package index (apt update) 1053s Get:1 http://ftpmaster.internal/ubuntu questing-proposed InRelease [110 kB] 1053s Get:2 http://ftpmaster.internal/ubuntu questing InRelease [110 kB] 1053s Get:3 http://ftpmaster.internal/ubuntu questing-updates InRelease [110 kB] 1053s Get:4 http://ftpmaster.internal/ubuntu questing-security InRelease [110 kB] 1053s Get:5 http://ftpmaster.internal/ubuntu questing-proposed/multiverse Sources [44.4 kB] 1053s Get:6 http://ftpmaster.internal/ubuntu questing-proposed/main Sources [171 kB] 1053s Get:7 http://ftpmaster.internal/ubuntu questing-proposed/universe Sources [2029 kB] 1054s Get:8 http://ftpmaster.internal/ubuntu questing-proposed/main armhf Packages [197 kB] 1054s Get:9 http://ftpmaster.internal/ubuntu questing-proposed/universe armhf Packages [1391 kB] 1055s Get:10 http://ftpmaster.internal/ubuntu questing-proposed/multiverse armhf Packages [13.7 kB] 1055s Get:11 http://ftpmaster.internal/ubuntu questing/universe Sources [21.1 MB] 1056s Get:12 http://ftpmaster.internal/ubuntu questing/main Sources [1385 kB] 1057s Get:13 http://ftpmaster.internal/ubuntu questing/multiverse Sources [299 kB] 1057s Get:14 http://ftpmaster.internal/ubuntu questing/main armhf Packages [1358 kB] 1057s Get:15 http://ftpmaster.internal/ubuntu questing/universe armhf Packages [15.3 MB] 1057s Get:16 http://ftpmaster.internal/ubuntu questing/multiverse armhf Packages [173 kB] 1060s Fetched 43.9 MB in 8s (5740 kB/s) 1062s Reading package lists... 1067s autopkgtest [14:09:36]: upgrading testbed (apt dist-upgrade and autopurge) 1069s Reading package lists... 1069s Building dependency tree... 1069s Reading state information... 1070s Calculating upgrade...Starting pkgProblemResolver with broken count: 0 1070s Starting 2 pkgProblemResolver with broken count: 0 1070s Done 1071s Entering ResolveByKeep 1071s 1072s Calculating upgrade... 1072s The following packages will be upgraded: 1072s base-files distro-info-data dpkg dpkg-dev htop libdpkg-perl libnpth0t64 1072s motd-news-config nano ubuntu-pro-client ubuntu-pro-client-l10n usb.ids 1072s 12 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 1072s Need to get 3645 kB of archives. 1072s After this operation, 57.3 kB of additional disk space will be used. 1072s Get:1 http://ftpmaster.internal/ubuntu questing/main armhf motd-news-config all 13.7ubuntu1 [5260 B] 1072s Get:2 http://ftpmaster.internal/ubuntu questing/main armhf base-files armhf 13.7ubuntu1 [75.4 kB] 1073s Get:3 http://ftpmaster.internal/ubuntu questing/main armhf dpkg armhf 1.22.18ubuntu3 [1254 kB] 1073s Get:4 http://ftpmaster.internal/ubuntu questing/main armhf libnpth0t64 armhf 1.8-3 [7716 B] 1073s Get:5 http://ftpmaster.internal/ubuntu questing/main armhf distro-info-data all 0.64 [6664 B] 1073s Get:6 http://ftpmaster.internal/ubuntu questing/main armhf ubuntu-pro-client-l10n armhf 35.1ubuntu0 [19.7 kB] 1073s Get:7 http://ftpmaster.internal/ubuntu questing/main armhf ubuntu-pro-client armhf 35.1ubuntu0 [258 kB] 1073s Get:8 http://ftpmaster.internal/ubuntu questing/main armhf nano armhf 8.4-1 [278 kB] 1073s Get:9 http://ftpmaster.internal/ubuntu questing/main armhf usb.ids all 2025.04.01-1 [223 kB] 1073s Get:10 http://ftpmaster.internal/ubuntu questing/main armhf dpkg-dev all 1.22.18ubuntu3 [1089 kB] 1073s Get:11 http://ftpmaster.internal/ubuntu questing/main armhf libdpkg-perl all 1.22.18ubuntu3 [281 kB] 1073s Get:12 http://ftpmaster.internal/ubuntu questing/main armhf htop armhf 3.4.1-4 [147 kB] 1073s Fetched 3645 kB in 1s (4810 kB/s) 1074s (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 ... 63953 files and directories currently installed.) 1074s Preparing to unpack .../motd-news-config_13.7ubuntu1_all.deb ... 1074s Unpacking motd-news-config (13.7ubuntu1) over (13.6ubuntu2) ... 1074s Preparing to unpack .../base-files_13.7ubuntu1_armhf.deb ... 1074s Unpacking base-files (13.7ubuntu1) over (13.6ubuntu2) ... 1074s Setting up base-files (13.7ubuntu1) ... 1074s Installing new version of config file /etc/issue ... 1074s Installing new version of config file /etc/issue.net ... 1074s Installing new version of config file /etc/lsb-release ... 1075s motd-news.service is a disabled or a static unit not running, not starting it. 1075s (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 ... 63953 files and directories currently installed.) 1075s Preparing to unpack .../dpkg_1.22.18ubuntu3_armhf.deb ... 1075s Unpacking dpkg (1.22.18ubuntu3) over (1.22.18ubuntu2) ... 1075s Setting up dpkg (1.22.18ubuntu3) ... 1075s (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 ... 63953 files and directories currently installed.) 1075s Preparing to unpack .../libnpth0t64_1.8-3_armhf.deb ... 1075s Unpacking libnpth0t64:armhf (1.8-3) over (1.8-2) ... 1075s Setting up libnpth0t64:armhf (1.8-3) ... 1075s (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 ... 63953 files and directories currently installed.) 1075s Preparing to unpack .../0-distro-info-data_0.64_all.deb ... 1075s Unpacking distro-info-data (0.64) over (0.63) ... 1075s Preparing to unpack .../1-ubuntu-pro-client-l10n_35.1ubuntu0_armhf.deb ... 1075s Unpacking ubuntu-pro-client-l10n (35.1ubuntu0) over (35) ... 1075s Preparing to unpack .../2-ubuntu-pro-client_35.1ubuntu0_armhf.deb ... 1076s Unpacking ubuntu-pro-client (35.1ubuntu0) over (35) ... 1076s Preparing to unpack .../3-nano_8.4-1_armhf.deb ... 1076s Unpacking nano (8.4-1) over (8.3-1) ... 1076s Preparing to unpack .../4-usb.ids_2025.04.01-1_all.deb ... 1076s Unpacking usb.ids (2025.04.01-1) over (2025.01.14-1) ... 1076s Preparing to unpack .../5-dpkg-dev_1.22.18ubuntu3_all.deb ... 1076s Unpacking dpkg-dev (1.22.18ubuntu3) over (1.22.18ubuntu2) ... 1076s Preparing to unpack .../6-libdpkg-perl_1.22.18ubuntu3_all.deb ... 1076s Unpacking libdpkg-perl (1.22.18ubuntu3) over (1.22.18ubuntu2) ... 1076s Preparing to unpack .../7-htop_3.4.1-4_armhf.deb ... 1076s Unpacking htop (3.4.1-4) over (3.4.0-2) ... 1076s Setting up motd-news-config (13.7ubuntu1) ... 1076s Setting up distro-info-data (0.64) ... 1076s Setting up htop (3.4.1-4) ... 1076s Setting up usb.ids (2025.04.01-1) ... 1076s Setting up libdpkg-perl (1.22.18ubuntu3) ... 1076s Setting up nano (8.4-1) ... 1076s Installing new version of config file /etc/nanorc ... 1076s Setting up ubuntu-pro-client (35.1ubuntu0) ... 1076s apparmor_parser: Unable to replace "ubuntu_pro_apt_news". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 1076s 1076s apparmor_parser: Unable to replace "apt_methods". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 1076s 1076s apparmor_parser: Unable to replace "ubuntu_pro_esm_cache". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 1076s 1078s Setting up ubuntu-pro-client-l10n (35.1ubuntu0) ... 1078s Setting up dpkg-dev (1.22.18ubuntu3) ... 1078s Processing triggers for install-info (7.1.1-1) ... 1078s Processing triggers for libc-bin (2.41-6ubuntu1) ... 1078s Processing triggers for man-db (2.13.0-1) ... 1080s Processing triggers for plymouth-theme-ubuntu-text (24.004.60-2ubuntu7) ... 1080s Processing triggers for initramfs-tools (0.147ubuntu1) ... 1082s Reading package lists... 1082s Building dependency tree... 1082s Reading state information... 1083s Starting pkgProblemResolver with broken count: 0 1083s Starting 2 pkgProblemResolver with broken count: 0 1083s Done 1083s Solving dependencies... 1084s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 1086s autopkgtest [14:09:55]: rebooting testbed after setup commands that affected boot 1150s Reading package lists... 1150s Building dependency tree... 1150s Reading state information... 1150s Starting pkgProblemResolver with broken count: 0 1150s Starting 2 pkgProblemResolver with broken count: 0 1150s Done 1151s The following NEW packages will be installed: 1151s etcd-server fonts-font-awesome fonts-lato libio-pty-perl libipc-run-perl 1151s libjs-jquery libjs-sphinxdoc libjs-underscore libjson-perl libllvm20 libpq5 1151s libtime-duration-perl libtimedate-perl libxslt1.1 moreutils patroni 1151s patroni-doc postgresql postgresql-17 postgresql-client-17 1151s postgresql-client-common postgresql-common postgresql-common-dev 1151s python3-behave python3-click python3-coverage python3-dnspython python3-etcd 1151s python3-parse python3-parse-type python3-prettytable python3-psutil 1151s python3-psycopg2 python3-wcwidth python3-ydiff sphinx-rtd-theme-common 1151s ssl-cert 1151s 0 upgraded, 37 newly installed, 0 to remove and 0 not upgraded. 1151s Need to get 64.4 MB of archives. 1151s After this operation, 253 MB of additional disk space will be used. 1151s Get:1 http://ftpmaster.internal/ubuntu questing/main armhf fonts-lato all 2.015-1 [2781 kB] 1152s Get:2 http://ftpmaster.internal/ubuntu questing/main armhf libjson-perl all 4.10000-1 [81.9 kB] 1152s Get:3 http://ftpmaster.internal/ubuntu questing-proposed/main armhf postgresql-client-common all 277 [48.0 kB] 1152s Get:4 http://ftpmaster.internal/ubuntu questing/main armhf libio-pty-perl armhf 1:1.20-1build3 [31.0 kB] 1152s Get:5 http://ftpmaster.internal/ubuntu questing/main armhf libipc-run-perl all 20231003.0-2 [91.5 kB] 1152s Get:6 http://ftpmaster.internal/ubuntu questing-proposed/main armhf postgresql-common-dev all 277 [73.4 kB] 1152s Get:7 http://ftpmaster.internal/ubuntu questing/main armhf ssl-cert all 1.1.3ubuntu1 [18.7 kB] 1152s Get:8 http://ftpmaster.internal/ubuntu questing-proposed/main armhf postgresql-common all 277 [101 kB] 1152s Get:9 http://ftpmaster.internal/ubuntu questing/universe armhf etcd-server armhf 3.5.16-4 [11.3 MB] 1152s Get:10 http://ftpmaster.internal/ubuntu questing/main armhf fonts-font-awesome all 5.0.10+really4.7.0~dfsg-4.1 [516 kB] 1152s Get:11 http://ftpmaster.internal/ubuntu questing/main armhf libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 1152s Get:12 http://ftpmaster.internal/ubuntu questing/main armhf libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [118 kB] 1152s Get:13 http://ftpmaster.internal/ubuntu questing/main armhf libjs-sphinxdoc all 8.1.3-5 [31.0 kB] 1152s Get:14 http://ftpmaster.internal/ubuntu questing/main armhf libllvm20 armhf 1:20.1.2-0ubuntu1 [29.6 MB] 1154s Get:15 http://ftpmaster.internal/ubuntu questing/main armhf libpq5 armhf 17.4-1 [125 kB] 1154s Get:16 http://ftpmaster.internal/ubuntu questing/main armhf libtime-duration-perl all 1.21-2 [12.3 kB] 1154s Get:17 http://ftpmaster.internal/ubuntu questing/main armhf libtimedate-perl all 2.3300-2 [34.0 kB] 1154s Get:18 http://ftpmaster.internal/ubuntu questing/main armhf libxslt1.1 armhf 1.1.39-0exp1ubuntu4 [151 kB] 1154s Get:19 http://ftpmaster.internal/ubuntu questing/universe armhf moreutils armhf 0.69-1 [53.5 kB] 1154s Get:20 http://ftpmaster.internal/ubuntu questing/main armhf python3-click all 8.2.0+0.really.8.1.8-1 [80.0 kB] 1154s Get:21 http://ftpmaster.internal/ubuntu questing/main armhf python3-wcwidth all 0.2.13+dfsg1-1 [26.3 kB] 1154s Get:22 http://ftpmaster.internal/ubuntu questing/main armhf python3-prettytable all 3.12.0-1 [36.5 kB] 1154s Get:23 http://ftpmaster.internal/ubuntu questing/main armhf python3-psutil armhf 5.9.8-2build3 [194 kB] 1154s Get:24 http://ftpmaster.internal/ubuntu questing/universe armhf python3-ydiff all 1.4.2-1 [19.0 kB] 1154s Get:25 http://ftpmaster.internal/ubuntu questing/main armhf python3-psycopg2 armhf 2.9.10-1build1 [125 kB] 1154s Get:26 http://ftpmaster.internal/ubuntu questing/main armhf python3-dnspython all 2.7.0-1ubuntu1 [167 kB] 1154s Get:27 http://ftpmaster.internal/ubuntu questing/universe armhf python3-etcd all 0.4.5-6 [32.1 kB] 1154s Get:28 http://ftpmaster.internal/ubuntu questing/universe armhf patroni all 4.0.4-7 [281 kB] 1154s Get:29 http://ftpmaster.internal/ubuntu questing/main armhf sphinx-rtd-theme-common all 3.0.2+dfsg-2 [1014 kB] 1154s Get:30 http://ftpmaster.internal/ubuntu questing/universe armhf patroni-doc all 4.0.4-7 [526 kB] 1154s Get:31 http://ftpmaster.internal/ubuntu questing/main armhf postgresql-client-17 armhf 17.4-1 [1285 kB] 1154s Get:32 http://ftpmaster.internal/ubuntu questing/main armhf postgresql-17 armhf 17.4-1 [14.8 MB] 1155s Get:33 http://ftpmaster.internal/ubuntu questing-proposed/main armhf postgresql all 17+277 [16.5 kB] 1155s Get:34 http://ftpmaster.internal/ubuntu questing/universe armhf python3-parse all 1.20.2-1 [27.0 kB] 1155s Get:35 http://ftpmaster.internal/ubuntu questing/universe armhf python3-parse-type all 0.6.4-2 [23.5 kB] 1155s Get:36 http://ftpmaster.internal/ubuntu questing/universe armhf python3-behave all 1.2.6-6 [98.6 kB] 1155s Get:37 http://ftpmaster.internal/ubuntu questing/universe armhf python3-coverage armhf 7.6.0+dfsg1-2build1 [152 kB] 1155s Preconfiguring packages ... 1155s /var/cache/debconf/tmp.ci/postgresql.config.824I7P: 12: pg_lsclusters: not found 1155s Fetched 64.4 MB in 3s (19.6 MB/s) 1155s Selecting previously unselected package fonts-lato. 1155s (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 ... 63953 files and directories currently installed.) 1155s Preparing to unpack .../00-fonts-lato_2.015-1_all.deb ... 1155s Unpacking fonts-lato (2.015-1) ... 1155s Selecting previously unselected package libjson-perl. 1155s Preparing to unpack .../01-libjson-perl_4.10000-1_all.deb ... 1155s Unpacking libjson-perl (4.10000-1) ... 1155s Selecting previously unselected package postgresql-client-common. 1155s Preparing to unpack .../02-postgresql-client-common_277_all.deb ... 1155s Unpacking postgresql-client-common (277) ... 1155s Selecting previously unselected package libio-pty-perl. 1155s Preparing to unpack .../03-libio-pty-perl_1%3a1.20-1build3_armhf.deb ... 1155s Unpacking libio-pty-perl (1:1.20-1build3) ... 1155s Selecting previously unselected package libipc-run-perl. 1156s Preparing to unpack .../04-libipc-run-perl_20231003.0-2_all.deb ... 1156s Unpacking libipc-run-perl (20231003.0-2) ... 1156s Selecting previously unselected package postgresql-common-dev. 1156s Preparing to unpack .../05-postgresql-common-dev_277_all.deb ... 1156s Unpacking postgresql-common-dev (277) ... 1156s Selecting previously unselected package ssl-cert. 1156s Preparing to unpack .../06-ssl-cert_1.1.3ubuntu1_all.deb ... 1156s Unpacking ssl-cert (1.1.3ubuntu1) ... 1156s Selecting previously unselected package postgresql-common. 1156s Preparing to unpack .../07-postgresql-common_277_all.deb ... 1156s Adding 'diversion of /usr/bin/pg_config to /usr/bin/pg_config.libpq-dev by postgresql-common' 1156s Unpacking postgresql-common (277) ... 1156s Selecting previously unselected package etcd-server. 1156s Preparing to unpack .../08-etcd-server_3.5.16-4_armhf.deb ... 1156s Unpacking etcd-server (3.5.16-4) ... 1156s Selecting previously unselected package fonts-font-awesome. 1156s Preparing to unpack .../09-fonts-font-awesome_5.0.10+really4.7.0~dfsg-4.1_all.deb ... 1156s Unpacking fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 1156s Selecting previously unselected package libjs-jquery. 1156s Preparing to unpack .../10-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 1156s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 1156s Selecting previously unselected package libjs-underscore. 1156s Preparing to unpack .../11-libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ... 1156s Unpacking libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 1156s Selecting previously unselected package libjs-sphinxdoc. 1156s Preparing to unpack .../12-libjs-sphinxdoc_8.1.3-5_all.deb ... 1156s Unpacking libjs-sphinxdoc (8.1.3-5) ... 1156s Selecting previously unselected package libllvm20:armhf. 1156s Preparing to unpack .../13-libllvm20_1%3a20.1.2-0ubuntu1_armhf.deb ... 1156s Unpacking libllvm20:armhf (1:20.1.2-0ubuntu1) ... 1157s Selecting previously unselected package libpq5:armhf. 1157s Preparing to unpack .../14-libpq5_17.4-1_armhf.deb ... 1157s Unpacking libpq5:armhf (17.4-1) ... 1157s Selecting previously unselected package libtime-duration-perl. 1157s Preparing to unpack .../15-libtime-duration-perl_1.21-2_all.deb ... 1157s Unpacking libtime-duration-perl (1.21-2) ... 1157s Selecting previously unselected package libtimedate-perl. 1157s Preparing to unpack .../16-libtimedate-perl_2.3300-2_all.deb ... 1157s Unpacking libtimedate-perl (2.3300-2) ... 1157s Selecting previously unselected package libxslt1.1:armhf. 1157s Preparing to unpack .../17-libxslt1.1_1.1.39-0exp1ubuntu4_armhf.deb ... 1157s Unpacking libxslt1.1:armhf (1.1.39-0exp1ubuntu4) ... 1157s Selecting previously unselected package moreutils. 1157s Preparing to unpack .../18-moreutils_0.69-1_armhf.deb ... 1157s Unpacking moreutils (0.69-1) ... 1157s Selecting previously unselected package python3-click. 1157s Preparing to unpack .../19-python3-click_8.2.0+0.really.8.1.8-1_all.deb ... 1157s Unpacking python3-click (8.2.0+0.really.8.1.8-1) ... 1158s Selecting previously unselected package python3-wcwidth. 1158s Preparing to unpack .../20-python3-wcwidth_0.2.13+dfsg1-1_all.deb ... 1158s Unpacking python3-wcwidth (0.2.13+dfsg1-1) ... 1158s Selecting previously unselected package python3-prettytable. 1158s Preparing to unpack .../21-python3-prettytable_3.12.0-1_all.deb ... 1158s Unpacking python3-prettytable (3.12.0-1) ... 1158s Selecting previously unselected package python3-psutil. 1158s Preparing to unpack .../22-python3-psutil_5.9.8-2build3_armhf.deb ... 1158s Unpacking python3-psutil (5.9.8-2build3) ... 1158s Selecting previously unselected package python3-ydiff. 1158s Preparing to unpack .../23-python3-ydiff_1.4.2-1_all.deb ... 1158s Unpacking python3-ydiff (1.4.2-1) ... 1158s Selecting previously unselected package python3-psycopg2. 1158s Preparing to unpack .../24-python3-psycopg2_2.9.10-1build1_armhf.deb ... 1158s Unpacking python3-psycopg2 (2.9.10-1build1) ... 1158s Selecting previously unselected package python3-dnspython. 1158s Preparing to unpack .../25-python3-dnspython_2.7.0-1ubuntu1_all.deb ... 1158s Unpacking python3-dnspython (2.7.0-1ubuntu1) ... 1158s Selecting previously unselected package python3-etcd. 1158s Preparing to unpack .../26-python3-etcd_0.4.5-6_all.deb ... 1158s Unpacking python3-etcd (0.4.5-6) ... 1158s Selecting previously unselected package patroni. 1158s Preparing to unpack .../27-patroni_4.0.4-7_all.deb ... 1158s Unpacking patroni (4.0.4-7) ... 1158s Selecting previously unselected package sphinx-rtd-theme-common. 1158s Preparing to unpack .../28-sphinx-rtd-theme-common_3.0.2+dfsg-2_all.deb ... 1158s Unpacking sphinx-rtd-theme-common (3.0.2+dfsg-2) ... 1158s Selecting previously unselected package patroni-doc. 1158s Preparing to unpack .../29-patroni-doc_4.0.4-7_all.deb ... 1158s Unpacking patroni-doc (4.0.4-7) ... 1158s Selecting previously unselected package postgresql-client-17. 1158s Preparing to unpack .../30-postgresql-client-17_17.4-1_armhf.deb ... 1158s Unpacking postgresql-client-17 (17.4-1) ... 1158s Selecting previously unselected package postgresql-17. 1158s Preparing to unpack .../31-postgresql-17_17.4-1_armhf.deb ... 1158s Unpacking postgresql-17 (17.4-1) ... 1159s Selecting previously unselected package postgresql. 1159s Preparing to unpack .../32-postgresql_17+277_all.deb ... 1159s Unpacking postgresql (17+277) ... 1159s Selecting previously unselected package python3-parse. 1159s Preparing to unpack .../33-python3-parse_1.20.2-1_all.deb ... 1159s Unpacking python3-parse (1.20.2-1) ... 1159s Selecting previously unselected package python3-parse-type. 1159s Preparing to unpack .../34-python3-parse-type_0.6.4-2_all.deb ... 1159s Unpacking python3-parse-type (0.6.4-2) ... 1159s Selecting previously unselected package python3-behave. 1159s Preparing to unpack .../35-python3-behave_1.2.6-6_all.deb ... 1159s Unpacking python3-behave (1.2.6-6) ... 1159s Selecting previously unselected package python3-coverage. 1159s Preparing to unpack .../36-python3-coverage_7.6.0+dfsg1-2build1_armhf.deb ... 1159s Unpacking python3-coverage (7.6.0+dfsg1-2build1) ... 1159s Setting up postgresql-client-common (277) ... 1159s Setting up fonts-lato (2.015-1) ... 1159s Setting up libio-pty-perl (1:1.20-1build3) ... 1159s Setting up python3-ydiff (1.4.2-1) ... 1159s Setting up libpq5:armhf (17.4-1) ... 1159s Setting up python3-coverage (7.6.0+dfsg1-2build1) ... 1159s Setting up python3-click (8.2.0+0.really.8.1.8-1) ... 1159s Setting up python3-psutil (5.9.8-2build3) ... 1160s Setting up python3-wcwidth (0.2.13+dfsg1-1) ... 1160s Setting up ssl-cert (1.1.3ubuntu1) ... 1161s Created symlink '/etc/systemd/system/multi-user.target.wants/ssl-cert.service' → '/usr/lib/systemd/system/ssl-cert.service'. 1161s Setting up libllvm20:armhf (1:20.1.2-0ubuntu1) ... 1161s Setting up python3-psycopg2 (2.9.10-1build1) ... 1161s Setting up libipc-run-perl (20231003.0-2) ... 1161s Setting up libtime-duration-perl (1.21-2) ... 1161s Setting up libtimedate-perl (2.3300-2) ... 1161s Setting up python3-dnspython (2.7.0-1ubuntu1) ... 1161s Setting up python3-parse (1.20.2-1) ... 1162s Setting up libjson-perl (4.10000-1) ... 1162s Setting up libxslt1.1:armhf (1.1.39-0exp1ubuntu4) ... 1162s Setting up etcd-server (3.5.16-4) ... 1162s info: Selecting UID from range 100 to 999 ... 1162s 1162s info: Selecting GID from range 100 to 999 ... 1162s info: Adding system user `etcd' (UID 106) ... 1162s info: Adding new group `etcd' (GID 110) ... 1162s info: Adding new user `etcd' (UID 106) with group `etcd' ... 1162s info: Creating home directory `/var/lib/etcd/' ... 1162s Created symlink '/etc/systemd/system/etcd2.service' → '/usr/lib/systemd/system/etcd.service'. 1162s Created symlink '/etc/systemd/system/multi-user.target.wants/etcd.service' → '/usr/lib/systemd/system/etcd.service'. 1163s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 1163s Setting up python3-prettytable (3.12.0-1) ... 1163s Setting up fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 1163s Setting up sphinx-rtd-theme-common (3.0.2+dfsg-2) ... 1163s Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 1163s Setting up postgresql-common-dev (277) ... 1163s Setting up moreutils (0.69-1) ... 1163s Setting up postgresql-client-17 (17.4-1) ... 1164s update-alternatives: using /usr/share/postgresql/17/man/man1/psql.1.gz to provide /usr/share/man/man1/psql.1.gz (psql.1.gz) in auto mode 1164s Setting up python3-etcd (0.4.5-6) ... 1164s Setting up python3-parse-type (0.6.4-2) ... 1164s Setting up postgresql-common (277) ... 1165s Creating config file /etc/postgresql-common/createcluster.conf with new version 1165s Building PostgreSQL dictionaries from installed myspell/hunspell packages... 1165s Removing obsolete dictionary files: 1166s Created symlink '/etc/systemd/system/multi-user.target.wants/postgresql.service' → '/usr/lib/systemd/system/postgresql.service'. 1166s Setting up libjs-sphinxdoc (8.1.3-5) ... 1166s Setting up python3-behave (1.2.6-6) ... 1166s /usr/lib/python3/dist-packages/behave/formatter/ansi_escapes.py:57: SyntaxWarning: invalid escape sequence '\[' 1166s _ANSI_ESCAPE_PATTERN = re.compile(u"\x1b\[\d+[mA]", re.UNICODE) 1166s /usr/lib/python3/dist-packages/behave/matchers.py:284: SyntaxWarning: invalid escape sequence '\d' 1166s @parse.with_pattern(r"\d+") 1167s Setting up patroni (4.0.4-7) ... 1167s Created symlink '/etc/systemd/system/multi-user.target.wants/patroni.service' → '/usr/lib/systemd/system/patroni.service'. 1167s Setting up postgresql-17 (17.4-1) ... 1169s Creating new PostgreSQL cluster 17/main ... 1169s /usr/lib/postgresql/17/bin/initdb -D /var/lib/postgresql/17/main --auth-local peer --auth-host scram-sha-256 --no-instructions 1169s The files belonging to this database system will be owned by user "postgres". 1169s This user must also own the server process. 1169s 1169s The database cluster will be initialized with locale "C.UTF-8". 1169s The default database encoding has accordingly been set to "UTF8". 1169s The default text search configuration will be set to "english". 1169s 1169s Data page checksums are disabled. 1169s 1169s fixing permissions on existing directory /var/lib/postgresql/17/main ... ok 1169s creating subdirectories ... ok 1169s selecting dynamic shared memory implementation ... posix 1169s selecting default "max_connections" ... 100 1169s selecting default "shared_buffers" ... 128MB 1169s selecting default time zone ... Etc/UTC 1169s creating configuration files ... ok 1169s running bootstrap script ... ok 1169s performing post-bootstrap initialization ... ok 1169s syncing data to disk ... ok 1172s Setting up patroni-doc (4.0.4-7) ... 1172s Setting up postgresql (17+277) ... 1173s Processing triggers for man-db (2.13.0-1) ... 1173s Processing triggers for libc-bin (2.41-6ubuntu1) ... 1192s autopkgtest [14:11:41]: test acceptance-etcd-basic: debian/tests/acceptance etcd features/basic_replication.feature 1192s autopkgtest [14:11:41]: test acceptance-etcd-basic: [----------------------- 1194s dpkg-architecture: warning: cannot determine CC system type, falling back to default (native compilation) 1195s ○ etcd.service - etcd - highly-available key value store 1195s Loaded: loaded (/usr/lib/systemd/system/etcd.service; enabled; preset: enabled) 1195s Active: inactive (dead) since Fri 2025-05-02 14:11:44 UTC; 19ms ago 1195s Duration: 31.592s 1195s Invocation: a320e87c0fb446f18af9dc93b4d50f2c 1195s Docs: https://etcd.io/docs 1195s man:etcd 1195s Process: 1173 ExecStart=/usr/bin/etcd $DAEMON_ARGS (code=killed, signal=TERM) 1195s Main PID: 1173 (code=killed, signal=TERM) 1195s 1195s May 02 14:11:44 autopkgtest-lxd-pqmwqx etcd[1173]: {"level":"info","ts":"2025-05-02T14:11:44.115496Z","caller":"osutil/interrupt_unix.go:64","msg":"received signal; shutting down","signal":"terminated"} 1195s May 02 14:11:44 autopkgtest-lxd-pqmwqx etcd[1173]: {"level":"info","ts":"2025-05-02T14:11:44.115621Z","caller":"embed/etcd.go:378","msg":"closing etcd server","name":"autopkgtest-lxd-pqmwqx","data-dir":"/var/lib/etcd/default","advertise-peer-urls":["http://localhost:2380"],"advertise-client-urls":["http://localhost:2379"]} 1195s May 02 14:11:44 autopkgtest-lxd-pqmwqx etcd[1173]: {"level":"warn","ts":"2025-05-02T14:11:44.115728Z","caller":"embed/serve.go:161","msg":"stopping insecure grpc server due to error","error":"accept tcp 127.0.0.1:2379: use of closed network connection"} 1195s May 02 14:11:44 autopkgtest-lxd-pqmwqx etcd[1173]: {"level":"warn","ts":"2025-05-02T14:11:44.115938Z","caller":"embed/serve.go:163","msg":"stopped insecure grpc server due to error","error":"accept tcp 127.0.0.1:2379: use of closed network connection"} 1195s May 02 14:11:44 autopkgtest-lxd-pqmwqx etcd[1173]: {"level":"info","ts":"2025-05-02T14:11:44.116042Z","caller":"etcdserver/server.go:1543","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"8e9e05c52164694d","current-leader-member-id":"8e9e05c52164694d"} 1195s May 02 14:11:44 autopkgtest-lxd-pqmwqx etcd[1173]: {"level":"info","ts":"2025-05-02T14:11:44.129602Z","caller":"embed/etcd.go:582","msg":"stopping serving peer traffic","address":"127.0.0.1:2380"} 1195s May 02 14:11:44 autopkgtest-lxd-pqmwqx etcd[1173]: {"level":"info","ts":"2025-05-02T14:11:44.129870Z","caller":"embed/etcd.go:587","msg":"stopped serving peer traffic","address":"127.0.0.1:2380"} 1195s May 02 14:11:44 autopkgtest-lxd-pqmwqx etcd[1173]: {"level":"info","ts":"2025-05-02T14:11:44.129888Z","caller":"embed/etcd.go:380","msg":"closed etcd server","name":"autopkgtest-lxd-pqmwqx","data-dir":"/var/lib/etcd/default","advertise-peer-urls":["http://localhost:2380"],"advertise-client-urls":["http://localhost:2379"]} 1195s May 02 14:11:44 autopkgtest-lxd-pqmwqx systemd[1]: etcd.service: Deactivated successfully. 1195s May 02 14:11:44 autopkgtest-lxd-pqmwqx systemd[1]: Stopped etcd.service - etcd - highly-available key value store. 1195s ++ ls -1r /usr/lib/postgresql/ 1195s + for PG_VERSION in $(ls -1r /usr/lib/postgresql/) 1195s + '[' 17 == 10 -o 17 == 11 ']' 1195s + echo '### PostgreSQL 17 acceptance-etcd features/basic_replication.feature ###' 1195s + su postgres -p -c 'set -o pipefail; ETCD_UNSUPPORTED_ARCH=arm DCS=etcd PATH=/usr/lib/postgresql/17/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' 1195s ### PostgreSQL 17 acceptance-etcd features/basic_replication.feature ### 1197s May 02 14:11:46 Feature: basic replication # features/basic_replication.feature:1 1197s May 02 14:11:46 We should check that the basic bootstrapping, replication and failover works. 1197s May 02 14:11:46 Scenario: check replication of a single table # features/basic_replication.feature:4 1197s May 02 14:11:46 Given I start postgres-0 # features/steps/basic_replication.py:20 1202s May 02 14:11:51 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1202s May 02 14:11:51 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 1202s May 02 14:11:51 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:73 1202s May 02 14:11:51 Then I receive a response code 200 # features/steps/patroni_api.py:100 1202s May 02 14:11:51 When I start postgres-1 # features/steps/basic_replication.py:20 1207s May 02 14:11:56 And I configure and start postgres-2 with a tag replicatefrom postgres-0 # features/steps/cascading_replication.py:7 1212s May 02 14:12:01 And "sync" key in DCS has leader=postgres-0 after 20 seconds # features/steps/cascading_replication.py:23 1212s May 02 14:12:01 And I add the table foo to postgres-0 # features/steps/basic_replication.py:66 1212s May 02 14:12:01 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 1213s May 02 14:12:02 Then table foo is present on postgres-2 after 20 seconds # features/steps/basic_replication.py:105 1213s May 02 14:12:02 1213s May 02 14:12:02 Scenario: check restart of sync replica # features/basic_replication.feature:17 1213s May 02 14:12:02 Given I shut down postgres-2 # features/steps/basic_replication.py:41 1214s May 02 14:12:03 Then "sync" key in DCS has sync_standby=postgres-1 after 5 seconds # features/steps/cascading_replication.py:23 1214s May 02 14:12:03 When I start postgres-2 # features/steps/basic_replication.py:20 1217s May 02 14:12:06 And I shut down postgres-1 # features/steps/basic_replication.py:41 1220s May 02 14:12:09 Then "sync" key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 1221s May 02 14:12:10 When I start postgres-1 # features/steps/basic_replication.py:20 1224s May 02 14:12:13 Then "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1224s May 02 14:12:13 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 1225s May 02 14:12:13 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:144 1225s May 02 14:12:14 1225s May 02 14:12:14 Scenario: check stuck sync replica # features/basic_replication.feature:28 1225s May 02 14:12:14 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:73 1225s May 02 14:12:14 Then I receive a response code 200 # features/steps/patroni_api.py:100 1225s May 02 14:12:14 And I create table on postgres-0 # features/steps/basic_replication.py:85 1225s May 02 14:12:14 And table mytest is present on postgres-1 after 2 seconds # features/steps/basic_replication.py:105 1226s May 02 14:12:15 And table mytest is present on postgres-2 after 2 seconds # features/steps/basic_replication.py:105 1226s May 02 14:12:15 When I pause wal replay on postgres-2 # features/steps/basic_replication.py:76 1226s May 02 14:12:15 And I load data on postgres-0 # features/steps/basic_replication.py:96 1226s May 02 14:12:15 Then "sync" key in DCS has sync_standby=postgres-1 after 15 seconds # features/steps/cascading_replication.py:23 1229s May 02 14:12:18 And I resume wal replay on postgres-2 # features/steps/basic_replication.py:76 1229s May 02 14:12:18 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 1229s May 02 14:12:18 And Status code on GET http://127.0.0.1:8010/async is 200 after 3 seconds # features/steps/patroni_api.py:144 1229s May 02 14:12:18 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:73 1229s May 02 14:12:18 Then I receive a response code 200 # features/steps/patroni_api.py:100 1229s May 02 14:12:18 And I drop table on postgres-0 # features/steps/basic_replication.py:85 1230s May 02 14:12:18 1230s May 02 14:12:18 Scenario: check multi sync replication # features/basic_replication.feature:44 1230s May 02 14:12:18 Given I issue a PATCH request to http://127.0.0.1:8008/config with {"synchronous_node_count": 2} # features/steps/patroni_api.py:73 1230s May 02 14:12:19 Then I receive a response code 200 # features/steps/patroni_api.py:100 1230s May 02 14:12:19 Then "sync" key in DCS has sync_standby=postgres-1,postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 1234s May 02 14:12:23 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 1234s May 02 14:12:23 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 1234s May 02 14:12:23 When I issue a PATCH request to http://127.0.0.1:8008/config with {"synchronous_node_count": 1} # features/steps/patroni_api.py:73 1234s May 02 14:12:23 Then I receive a response code 200 # features/steps/patroni_api.py:100 1234s May 02 14:12:23 And I shut down postgres-1 # features/steps/basic_replication.py:41 1237s May 02 14:12:26 Then "sync" key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 1238s May 02 14:12:27 When I start postgres-1 # features/steps/basic_replication.py:20 1241s May 02 14:12:30 Then "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1241s May 02 14:12:30 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 1241s May 02 14:12:30 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:144 1241s May 02 14:12:30 1241s May 02 14:12:30 Scenario: check the basic failover in synchronous mode # features/basic_replication.feature:59 1241s May 02 14:12:30 Given I run patronictl.py pause batman # features/steps/patroni_api.py:88 1242s May 02 14:12:31 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1242s May 02 14:12:31 When I sleep for 2 seconds # features/steps/patroni_api.py:41 1244s May 02 14:12:33 And I shut down postgres-0 # features/steps/basic_replication.py:41 1245s May 02 14:12:34 And I run patronictl.py resume batman # features/steps/patroni_api.py:88 1246s May 02 14:12:35 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1246s May 02 14:12:35 And postgres-2 role is the primary after 24 seconds # features/steps/basic_replication.py:117 1265s May 02 14:12:54 And Response on GET http://127.0.0.1:8010/history contains recovery after 10 seconds # features/steps/patroni_api.py:158 1269s May 02 14:12:58 And there is a postgres-2_cb.log with "on_role_change primary batman" in postgres-2 data directory # features/steps/cascading_replication.py:12 1269s May 02 14:12:58 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:73 1269s May 02 14:12:58 Then I receive a response code 200 # features/steps/patroni_api.py:100 1269s May 02 14:12:58 When I add the table bar to postgres-2 # features/steps/basic_replication.py:66 1269s May 02 14:12:58 Then table bar is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 1269s May 02 14:12:58 And Response on GET http://127.0.0.1:8010/config contains master_start_timeout after 10 seconds # features/steps/patroni_api.py:158 1269s May 02 14:12:58 1269s May 02 14:12:58 Scenario: check rejoin of the former primary with pg_rewind # features/basic_replication.feature:75 1269s May 02 14:12:58 Given I add the table splitbrain to postgres-0 # features/steps/basic_replication.py:66 1269s May 02 14:12:58 And I start postgres-0 # features/steps/basic_replication.py:20 1269s May 02 14:12:58 Then postgres-0 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 1277s May 02 14:13:06 When I add the table buz to postgres-2 # features/steps/basic_replication.py:66 1277s May 02 14:13:06 Then table buz is present on postgres-0 after 20 seconds # features/steps/basic_replication.py:105 1277s May 02 14:13:06 1277s May 02 14:13:06 @reject-duplicate-name 1277s May 02 14:13:06 Scenario: check graceful rejection when two nodes have the same name # features/basic_replication.feature:83 1277s May 02 14:13:06 Given I start duplicate postgres-0 on port 8011 # features/steps/basic_replication.py:25 1279s May 02 14:13:08 Then there is one of ["Can't start; there is already a node named 'postgres-0' running"] CRITICAL in the dup-postgres-0 patroni log after 5 seconds # features/steps/basic_replication.py:133 1283s May 02 14:13:12 1284s 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'))") 1284s May 02 14:13:13 Combined data file .coverage.autopkgtest-lxd-pqmwqx.3359.XaQFqDWx 1284s May 02 14:13:13 Combined data file .coverage.autopkgtest-lxd-pqmwqx.3404.XFZZgzFx 1284s May 02 14:13:13 Combined data file .coverage.autopkgtest-lxd-pqmwqx.3452.XfcBIMAx 1284s May 02 14:13:13 Combined data file .coverage.autopkgtest-lxd-pqmwqx.3501.XFEdBQKx 1284s May 02 14:13:13 Combined data file .coverage.autopkgtest-lxd-pqmwqx.3547.XVjNxjtx 1284s May 02 14:13:13 Combined data file .coverage.autopkgtest-lxd-pqmwqx.3621.XTmiTzzx 1284s May 02 14:13:13 Combined data file .coverage.autopkgtest-lxd-pqmwqx.3670.XdeVOVix 1284s May 02 14:13:13 Combined data file .coverage.autopkgtest-lxd-pqmwqx.3673.XQfSmQjx 1284s May 02 14:13:13 Combined data file .coverage.autopkgtest-lxd-pqmwqx.3741.XvSGlKbx 1284s May 02 14:13:13 Combined data file .coverage.autopkgtest-lxd-pqmwqx.3843.XokQKUwx 1289s May 02 14:13:18 Name Stmts Miss Cover 1289s May 02 14:13:18 ------------------------------------------------------------------------------------------------------------- 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/OpenSSL/SSL.py 1159 647 44% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/OpenSSL/__init__.py 3 0 100% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/OpenSSL/_util.py 44 15 66% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/OpenSSL/crypto.py 869 663 24% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/OpenSSL/version.py 9 0 100% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/_distutils_hack/__init__.py 101 96 5% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/bcrypt/__init__.py 3 0 100% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/__about__.py 5 0 100% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/__init__.py 3 0 100% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/exceptions.py 26 5 81% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/hazmat/__init__.py 2 0 100% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/hazmat/_oid.py 135 0 100% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/__init__.py 0 0 100% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/__init__.py 0 0 100% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/_conditional.py 38 17 55% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/binding.py 51 4 92% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/hazmat/decrepit/__init__.py 1 0 100% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/hazmat/decrepit/ciphers/__init__.py 1 0 100% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/hazmat/decrepit/ciphers/algorithms.py 68 18 74% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/__init__.py 0 0 100% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_asymmetric.py 6 0 100% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_cipheralgorithm.py 23 4 83% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_serialization.py 79 35 56% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/__init__.py 0 0 100% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/dh.py 47 0 100% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/dsa.py 55 5 91% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ec.py 172 22 87% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ed448.py 45 12 73% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ed25519.py 43 12 72% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/padding.py 55 23 58% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/rsa.py 93 40 57% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/types.py 19 0 100% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/utils.py 14 5 64% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/x448.py 43 12 72% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/x25519.py 41 12 71% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/__init__.py 4 0 100% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/algorithms.py 72 15 79% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/base.py 54 12 78% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/modes.py 140 59 58% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/constant_time.py 6 3 50% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/hashes.py 127 20 84% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/__init__.py 5 0 100% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/base.py 7 0 100% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/ssh.py 775 614 21% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/utils.py 76 28 63% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/x509/__init__.py 70 0 100% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/x509/base.py 488 227 53% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/x509/certificate_transparency.py 42 0 100% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/x509/extensions.py 1024 552 46% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/x509/general_name.py 166 94 43% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/x509/name.py 236 144 39% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/x509/oid.py 3 0 100% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/cryptography/x509/verification.py 12 0 100% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dateutil/__init__.py 13 4 69% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dateutil/_common.py 25 15 40% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dateutil/_version.py 13 3 77% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dateutil/parser/__init__.py 33 4 88% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dateutil/parser/_parser.py 810 688 15% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dateutil/parser/isoparser.py 183 150 18% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dateutil/relativedelta.py 240 206 14% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dateutil/tz/__init__.py 4 0 100% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dateutil/tz/_common.py 151 117 23% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dateutil/tz/_factories.py 49 21 57% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dateutil/tz/tz.py 794 629 21% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dateutil/tz/win.py 152 149 2% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/__init__.py 2 0 100% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/_asyncbackend.py 14 6 57% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/_ddr.py 105 86 18% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/_features.py 46 8 83% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/_immutable_ctx.py 40 5 88% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/asyncbackend.py 44 32 27% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/asyncquery.py 322 283 12% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/edns.py 307 185 40% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/entropy.py 80 49 39% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/enum.py 72 46 36% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/exception.py 59 33 44% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/flags.py 40 14 65% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/grange.py 33 30 9% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/immutable.py 41 30 27% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/inet.py 79 65 18% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/ipv4.py 26 20 23% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/ipv6.py 114 100 12% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/message.py 829 676 18% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/name.py 617 425 31% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/nameserver.py 102 55 46% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/node.py 117 71 39% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/opcode.py 30 7 77% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/query.py 562 477 15% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/quic/__init__.py 28 23 18% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/rcode.py 68 13 81% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/rdata.py 386 277 28% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/rdataclass.py 43 9 79% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/rdataset.py 192 133 31% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/rdatatype.py 215 23 89% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/OPT.py 34 19 44% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/SOA.py 41 26 37% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/TSIG.py 58 42 28% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/ZONEMD.py 43 27 37% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/__init__.py 1 0 100% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/rdtypes/__init__.py 1 0 100% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/rdtypes/svcbbase.py 415 268 35% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/rdtypes/util.py 191 154 19% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/renderer.py 151 118 22% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/resolver.py 873 696 20% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/reversename.py 32 24 25% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/rrset.py 77 56 27% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/serial.py 92 79 14% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/set.py 148 107 28% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/tokenizer.py 334 279 16% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/transaction.py 269 201 25% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/tsig.py 176 122 31% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/ttl.py 44 38 14% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/version.py 6 0 100% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/wire.py 64 42 34% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/xfr.py 148 126 15% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/zone.py 507 383 24% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/zonefile.py 427 379 11% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/dns/zonetypes.py 14 2 86% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/etcd/__init__.py 125 27 78% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/etcd/client.py 380 195 49% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/etcd/lock.py 125 103 18% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/idna/__init__.py 4 0 100% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/idna/core.py 292 257 12% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/idna/idnadata.py 4 0 100% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/idna/intranges.py 30 24 20% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/idna/package_data.py 1 0 100% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/__init__.py 13 2 85% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/__main__.py 201 68 66% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/api.py 788 439 44% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/async_executor.py 96 19 80% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/collections.py 56 7 88% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/config.py 357 100 72% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/config_generator.py 212 159 25% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/daemon.py 76 6 92% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/dcs/__init__.py 710 166 77% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/dcs/etcd.py 603 183 70% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/dynamic_loader.py 35 7 80% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/exceptions.py 16 0 100% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/file_perm.py 47 11 77% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/global_config.py 87 4 95% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/ha.py 1359 688 49% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/log.py 235 81 66% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/postgresql/__init__.py 825 240 71% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/postgresql/available_parameters/__init__.py 24 3 88% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/postgresql/bootstrap.py 254 89 65% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/postgresql/callback_executor.py 55 8 85% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/postgresql/cancellable.py 104 41 61% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/postgresql/config.py 839 259 69% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/postgresql/connection.py 75 7 91% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/postgresql/misc.py 43 13 70% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/postgresql/mpp/__init__.py 89 12 87% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/postgresql/postmaster.py 170 92 46% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/postgresql/rewind.py 416 200 52% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/postgresql/slots.py 349 177 49% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/postgresql/sync.py 154 23 85% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/postgresql/validator.py 157 24 85% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/psycopg.py 46 19 59% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/quorum.py 182 160 12% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/request.py 58 7 88% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/tags.py 38 5 87% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/utils.py 371 140 62% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/validator.py 309 218 29% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/version.py 1 0 100% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/watchdog/__init__.py 2 0 100% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/watchdog/base.py 203 49 76% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/patroni/watchdog/linux.py 135 50 63% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/psutil/__init__.py 950 636 33% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/psutil/_common.py 422 212 50% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/psutil/_compat.py 301 264 12% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/psutil/_pslinux.py 1250 936 25% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/psutil/_psposix.py 95 41 57% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/psycopg2/__init__.py 19 3 84% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/psycopg2/_json.py 64 27 58% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/psycopg2/_range.py 269 172 36% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/psycopg2/errors.py 3 2 33% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/psycopg2/extensions.py 91 25 73% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/urllib3/__init__.py 49 15 69% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/urllib3/_base_connection.py 63 45 29% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/urllib3/_collections.py 231 101 56% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/urllib3/_request_methods.py 54 12 78% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/urllib3/_version.py 13 3 77% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/urllib3/connection.py 389 138 65% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/urllib3/connectionpool.py 344 135 61% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/urllib3/contrib/__init__.py 0 0 100% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/urllib3/contrib/pyopenssl.py 263 103 61% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/urllib3/exceptions.py 121 39 68% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/urllib3/fields.py 92 73 21% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/urllib3/filepost.py 37 24 35% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/urllib3/http2/__init__.py 28 21 25% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/urllib3/http2/probe.py 49 31 37% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/urllib3/poolmanager.py 233 86 63% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/urllib3/response.py 634 377 41% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/urllib3/util/__init__.py 10 0 100% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/urllib3/util/connection.py 66 42 36% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/urllib3/util/proxy.py 13 6 54% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/urllib3/util/request.py 104 49 53% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/urllib3/util/response.py 32 17 47% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/urllib3/util/retry.py 174 57 67% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/urllib3/util/ssl_.py 172 74 57% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/urllib3/util/ssl_match_hostname.py 66 54 18% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/urllib3/util/ssltransport.py 152 106 30% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/urllib3/util/timeout.py 71 14 80% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/urllib3/util/url.py 203 69 66% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/urllib3/util/util.py 26 10 62% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/urllib3/util/wait.py 49 18 63% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/yaml/__init__.py 165 109 34% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/yaml/composer.py 92 17 82% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/yaml/constructor.py 479 276 42% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/yaml/cyaml.py 46 24 48% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/yaml/dumper.py 23 12 48% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/yaml/emitter.py 838 769 8% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/yaml/error.py 58 42 28% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/yaml/events.py 61 6 90% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/yaml/loader.py 47 24 49% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/yaml/nodes.py 29 7 76% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/yaml/parser.py 352 198 44% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/yaml/reader.py 122 34 72% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/yaml/representer.py 248 176 29% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/yaml/resolver.py 135 76 44% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/yaml/scanner.py 758 437 42% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/yaml/serializer.py 85 70 18% 1289s May 02 14:13:18 /usr/lib/python3/dist-packages/yaml/tokens.py 76 17 78% 1289s May 02 14:13:18 patroni/__init__.py 13 2 85% 1289s May 02 14:13:18 patroni/__main__.py 201 201 0% 1289s May 02 14:13:18 patroni/api.py 788 788 0% 1289s May 02 14:13:18 patroni/async_executor.py 96 69 28% 1289s May 02 14:13:18 patroni/collections.py 56 15 73% 1289s May 02 14:13:18 patroni/config.py 357 186 48% 1289s May 02 14:13:18 patroni/config_generator.py 212 212 0% 1289s May 02 14:13:18 patroni/ctl.py 936 661 29% 1289s May 02 14:13:18 patroni/daemon.py 76 76 0% 1289s May 02 14:13:18 patroni/dcs/__init__.py 710 358 50% 1289s May 02 14:13:18 patroni/dcs/consul.py 482 482 0% 1289s May 02 14:13:18 patroni/dcs/etcd3.py 679 679 0% 1289s May 02 14:13:18 patroni/dcs/etcd.py 603 235 61% 1289s May 02 14:13:18 patroni/dcs/exhibitor.py 62 62 0% 1289s May 02 14:13:18 patroni/dcs/kubernetes.py 943 943 0% 1289s May 02 14:13:18 patroni/dcs/raft.py 319 319 0% 1289s May 02 14:13:18 patroni/dcs/zookeeper.py 289 289 0% 1289s May 02 14:13:18 patroni/dynamic_loader.py 35 7 80% 1289s May 02 14:13:18 patroni/exceptions.py 16 1 94% 1289s May 02 14:13:18 patroni/file_perm.py 47 17 64% 1289s May 02 14:13:18 patroni/global_config.py 87 25 71% 1289s May 02 14:13:18 patroni/ha.py 1359 1359 0% 1289s May 02 14:13:18 patroni/log.py 235 183 22% 1289s May 02 14:13:18 patroni/postgresql/__init__.py 825 653 21% 1289s May 02 14:13:18 patroni/postgresql/available_parameters/__init__.py 24 6 75% 1289s May 02 14:13:18 patroni/postgresql/bootstrap.py 254 224 12% 1289s May 02 14:13:18 patroni/postgresql/callback_executor.py 55 34 38% 1289s May 02 14:13:18 patroni/postgresql/cancellable.py 104 84 19% 1289s May 02 14:13:18 patroni/postgresql/config.py 839 719 14% 1289s May 02 14:13:18 patroni/postgresql/connection.py 75 50 33% 1289s May 02 14:13:18 patroni/postgresql/misc.py 43 30 30% 1289s May 02 14:13:18 patroni/postgresql/mpp/__init__.py 89 21 76% 1289s May 02 14:13:18 patroni/postgresql/mpp/citus.py 366 366 0% 1289s May 02 14:13:18 patroni/postgresql/postmaster.py 170 139 18% 1289s May 02 14:13:18 patroni/postgresql/rewind.py 416 416 0% 1289s May 02 14:13:18 patroni/postgresql/slots.py 349 300 14% 1289s May 02 14:13:18 patroni/postgresql/sync.py 154 114 26% 1289s May 02 14:13:18 patroni/postgresql/validator.py 157 52 67% 1289s May 02 14:13:18 patroni/psycopg.py 46 32 30% 1289s May 02 14:13:18 patroni/quorum.py 182 182 0% 1289s May 02 14:13:18 patroni/raft_controller.py 22 22 0% 1289s May 02 14:13:18 patroni/request.py 58 6 90% 1289s May 02 14:13:18 patroni/scripts/__init__.py 0 0 100% 1289s May 02 14:13:18 patroni/scripts/aws.py 59 59 0% 1289s May 02 14:13:18 patroni/scripts/barman/__init__.py 0 0 100% 1289s May 02 14:13:18 patroni/scripts/barman/cli.py 50 50 0% 1289s May 02 14:13:18 patroni/scripts/barman/config_switch.py 50 50 0% 1289s May 02 14:13:18 patroni/scripts/barman/recover.py 36 36 0% 1289s May 02 14:13:18 patroni/scripts/barman/utils.py 93 93 0% 1289s May 02 14:13:18 patroni/scripts/wale_restore.py 207 207 0% 1289s May 02 14:13:18 patroni/tags.py 38 15 61% 1289s May 02 14:13:18 patroni/utils.py 371 266 28% 1289s May 02 14:13:18 patroni/validator.py 309 222 28% 1289s May 02 14:13:18 patroni/version.py 1 0 100% 1289s May 02 14:13:18 patroni/watchdog/__init__.py 2 2 0% 1289s May 02 14:13:18 patroni/watchdog/base.py 203 203 0% 1289s May 02 14:13:18 patroni/watchdog/linux.py 135 135 0% 1289s May 02 14:13:18 ------------------------------------------------------------------------------------------------------------- 1289s May 02 14:13:18 TOTAL 53736 34440 36% 1289s May 02 14:13:18 1 feature passed, 0 failed, 0 skipped 1289s May 02 14:13:18 7 scenarios passed, 0 failed, 0 skipped 1289s May 02 14:13:18 68 steps passed, 0 failed, 0 skipped, 0 undefined 1289s May 02 14:13:18 Took 1m21.899s 1289s ### End 17 acceptance-etcd features/basic_replication.feature ### 1289s + echo '### End 17 acceptance-etcd features/basic_replication.feature ###' 1289s + rm -f '/tmp/pgpass?' 1289s ++ id -u 1289s + '[' 0 -eq 0 ']' 1289s + '[' -x /etc/init.d/zookeeper ']' 1289s autopkgtest [14:13:18]: test acceptance-etcd-basic: -----------------------] 1293s autopkgtest [14:13:22]: test acceptance-etcd-basic: - - - - - - - - - - results - - - - - - - - - - 1293s acceptance-etcd-basic PASS 1297s autopkgtest [14:13:26]: test acceptance-etcd: preparing testbed 1299s Reading package lists... 1299s Building dependency tree... 1299s Reading state information... 1299s Starting pkgProblemResolver with broken count: 0 1300s Starting 2 pkgProblemResolver with broken count: 0 1300s Done 1300s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 1310s autopkgtest [14:13:39]: test acceptance-etcd: debian/tests/acceptance etcd 1310s autopkgtest [14:13:39]: test acceptance-etcd: [----------------------- 1312s dpkg-architecture: warning: cannot determine CC system type, falling back to default (native compilation) 1312s ○ etcd.service - etcd - highly-available key value store 1312s Loaded: loaded (/usr/lib/systemd/system/etcd.service; enabled; preset: enabled) 1312s Active: inactive (dead) since Fri 2025-05-02 14:11:44 UTC; 1min 57s ago 1312s Duration: 31.592s 1312s Invocation: a320e87c0fb446f18af9dc93b4d50f2c 1312s Docs: https://etcd.io/docs 1312s man:etcd 1312s Process: 1173 ExecStart=/usr/bin/etcd $DAEMON_ARGS (code=killed, signal=TERM) 1312s Main PID: 1173 (code=killed, signal=TERM) 1312s 1312s May 02 14:11:44 autopkgtest-lxd-pqmwqx etcd[1173]: {"level":"info","ts":"2025-05-02T14:11:44.115496Z","caller":"osutil/interrupt_unix.go:64","msg":"received signal; shutting down","signal":"terminated"} 1312s May 02 14:11:44 autopkgtest-lxd-pqmwqx etcd[1173]: {"level":"info","ts":"2025-05-02T14:11:44.115621Z","caller":"embed/etcd.go:378","msg":"closing etcd server","name":"autopkgtest-lxd-pqmwqx","data-dir":"/var/lib/etcd/default","advertise-peer-urls":["http://localhost:2380"],"advertise-client-urls":["http://localhost:2379"]} 1312s May 02 14:11:44 autopkgtest-lxd-pqmwqx etcd[1173]: {"level":"warn","ts":"2025-05-02T14:11:44.115728Z","caller":"embed/serve.go:161","msg":"stopping insecure grpc server due to error","error":"accept tcp 127.0.0.1:2379: use of closed network connection"} 1312s May 02 14:11:44 autopkgtest-lxd-pqmwqx etcd[1173]: {"level":"warn","ts":"2025-05-02T14:11:44.115938Z","caller":"embed/serve.go:163","msg":"stopped insecure grpc server due to error","error":"accept tcp 127.0.0.1:2379: use of closed network connection"} 1312s May 02 14:11:44 autopkgtest-lxd-pqmwqx etcd[1173]: {"level":"info","ts":"2025-05-02T14:11:44.116042Z","caller":"etcdserver/server.go:1543","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"8e9e05c52164694d","current-leader-member-id":"8e9e05c52164694d"} 1312s May 02 14:11:44 autopkgtest-lxd-pqmwqx etcd[1173]: {"level":"info","ts":"2025-05-02T14:11:44.129602Z","caller":"embed/etcd.go:582","msg":"stopping serving peer traffic","address":"127.0.0.1:2380"} 1312s May 02 14:11:44 autopkgtest-lxd-pqmwqx etcd[1173]: {"level":"info","ts":"2025-05-02T14:11:44.129870Z","caller":"embed/etcd.go:587","msg":"stopped serving peer traffic","address":"127.0.0.1:2380"} 1312s May 02 14:11:44 autopkgtest-lxd-pqmwqx etcd[1173]: {"level":"info","ts":"2025-05-02T14:11:44.129888Z","caller":"embed/etcd.go:380","msg":"closed etcd server","name":"autopkgtest-lxd-pqmwqx","data-dir":"/var/lib/etcd/default","advertise-peer-urls":["http://localhost:2380"],"advertise-client-urls":["http://localhost:2379"]} 1312s May 02 14:11:44 autopkgtest-lxd-pqmwqx systemd[1]: etcd.service: Deactivated successfully. 1312s May 02 14:11:44 autopkgtest-lxd-pqmwqx systemd[1]: Stopped etcd.service - etcd - highly-available key value store. 1312s ++ ls -1r /usr/lib/postgresql/ 1312s ### PostgreSQL 17 acceptance-etcd ### 1312s + for PG_VERSION in $(ls -1r /usr/lib/postgresql/) 1312s + '[' 17 == 10 -o 17 == 11 ']' 1312s + echo '### PostgreSQL 17 acceptance-etcd ###' 1312s + su postgres -p -c 'set -o pipefail; ETCD_UNSUPPORTED_ARCH=arm DCS=etcd PATH=/usr/lib/postgresql/17/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin behave | ts' 1314s May 02 14:13:43 Feature: basic replication # features/basic_replication.feature:1 1314s May 02 14:13:43 We should check that the basic bootstrapping, replication and failover works. 1314s May 02 14:13:43 Scenario: check replication of a single table # features/basic_replication.feature:4 1314s May 02 14:13:43 Given I start postgres-0 # features/steps/basic_replication.py:20 1318s May 02 14:13:47 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1318s May 02 14:13:47 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 1318s May 02 14:13:47 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:73 1318s May 02 14:13:47 Then I receive a response code 200 # features/steps/patroni_api.py:100 1318s May 02 14:13:47 When I start postgres-1 # features/steps/basic_replication.py:20 1322s May 02 14:13:51 And I configure and start postgres-2 with a tag replicatefrom postgres-0 # features/steps/cascading_replication.py:7 1326s May 02 14:13:55 And "sync" key in DCS has leader=postgres-0 after 20 seconds # features/steps/cascading_replication.py:23 1326s May 02 14:13:55 And I add the table foo to postgres-0 # features/steps/basic_replication.py:66 1327s May 02 14:13:55 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 1328s May 02 14:13:56 Then table foo is present on postgres-2 after 20 seconds # features/steps/basic_replication.py:105 1328s May 02 14:13:56 1328s May 02 14:13:56 Scenario: check restart of sync replica # features/basic_replication.feature:17 1328s May 02 14:13:56 Given I shut down postgres-2 # features/steps/basic_replication.py:41 1329s May 02 14:13:57 Then "sync" key in DCS has sync_standby=postgres-1 after 5 seconds # features/steps/cascading_replication.py:23 1329s May 02 14:13:57 When I start postgres-2 # features/steps/basic_replication.py:20 1332s May 02 14:14:01 And I shut down postgres-1 # features/steps/basic_replication.py:41 1335s May 02 14:14:04 Then "sync" key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 1336s May 02 14:14:05 When I start postgres-1 # features/steps/basic_replication.py:20 1339s May 02 14:14:08 Then "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1339s May 02 14:14:08 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 1339s May 02 14:14:08 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:144 1339s May 02 14:14:08 1339s May 02 14:14:08 Scenario: check stuck sync replica # features/basic_replication.feature:28 1339s May 02 14:14:08 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:73 1339s May 02 14:14:08 Then I receive a response code 200 # features/steps/patroni_api.py:100 1339s May 02 14:14:08 And I create table on postgres-0 # features/steps/basic_replication.py:85 1339s May 02 14:14:08 And table mytest is present on postgres-1 after 2 seconds # features/steps/basic_replication.py:105 1340s May 02 14:14:09 And table mytest is present on postgres-2 after 2 seconds # features/steps/basic_replication.py:105 1340s May 02 14:14:09 When I pause wal replay on postgres-2 # features/steps/basic_replication.py:76 1340s May 02 14:14:09 And I load data on postgres-0 # features/steps/basic_replication.py:96 1340s May 02 14:14:09 Then "sync" key in DCS has sync_standby=postgres-1 after 15 seconds # features/steps/cascading_replication.py:23 1343s May 02 14:14:12 And I resume wal replay on postgres-2 # features/steps/basic_replication.py:76 1343s May 02 14:14:12 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 1343s May 02 14:14:12 And Status code on GET http://127.0.0.1:8010/async is 200 after 3 seconds # features/steps/patroni_api.py:144 1343s May 02 14:14:12 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:73 1344s May 02 14:14:13 Then I receive a response code 200 # features/steps/patroni_api.py:100 1344s May 02 14:14:13 And I drop table on postgres-0 # features/steps/basic_replication.py:85 1344s May 02 14:14:13 1344s May 02 14:14:13 Scenario: check multi sync replication # features/basic_replication.feature:44 1344s May 02 14:14:13 Given I issue a PATCH request to http://127.0.0.1:8008/config with {"synchronous_node_count": 2} # features/steps/patroni_api.py:73 1344s May 02 14:14:13 Then I receive a response code 200 # features/steps/patroni_api.py:100 1344s May 02 14:14:13 Then "sync" key in DCS has sync_standby=postgres-1,postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 1348s May 02 14:14:17 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 1348s May 02 14:14:17 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 1348s May 02 14:14:17 When I issue a PATCH request to http://127.0.0.1:8008/config with {"synchronous_node_count": 1} # features/steps/patroni_api.py:73 1348s May 02 14:14:17 Then I receive a response code 200 # features/steps/patroni_api.py:100 1348s May 02 14:14:17 And I shut down postgres-1 # features/steps/basic_replication.py:41 1351s May 02 14:14:20 Then "sync" key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 1352s May 02 14:14:21 When I start postgres-1 # features/steps/basic_replication.py:20 1355s May 02 14:14:24 Then "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1355s May 02 14:14:24 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 1355s May 02 14:14:24 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:144 1355s May 02 14:14:24 1355s May 02 14:14:24 Scenario: check the basic failover in synchronous mode # features/basic_replication.feature:59 1355s May 02 14:14:24 Given I run patronictl.py pause batman # features/steps/patroni_api.py:88 1356s May 02 14:14:25 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1356s May 02 14:14:25 When I sleep for 2 seconds # features/steps/patroni_api.py:41 1358s May 02 14:14:27 And I shut down postgres-0 # features/steps/basic_replication.py:41 1359s May 02 14:14:28 And I run patronictl.py resume batman # features/steps/patroni_api.py:88 1360s May 02 14:14:29 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1360s May 02 14:14:29 And postgres-2 role is the primary after 24 seconds # features/steps/basic_replication.py:117 1380s May 02 14:14:49 And Response on GET http://127.0.0.1:8010/history contains recovery after 10 seconds # features/steps/patroni_api.py:158 1383s May 02 14:14:52 And there is a postgres-2_cb.log with "on_role_change primary batman" in postgres-2 data directory # features/steps/cascading_replication.py:12 1383s May 02 14:14:52 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:73 1383s May 02 14:14:52 Then I receive a response code 200 # features/steps/patroni_api.py:100 1383s May 02 14:14:52 When I add the table bar to postgres-2 # features/steps/basic_replication.py:66 1383s May 02 14:14:52 Then table bar is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 1383s May 02 14:14:52 And Response on GET http://127.0.0.1:8010/config contains master_start_timeout after 10 seconds # features/steps/patroni_api.py:158 1385s May 02 14:14:54 1385s May 02 14:14:54 Scenario: check rejoin of the former primary with pg_rewind # features/basic_replication.feature:75 1385s May 02 14:14:54 Given I add the table splitbrain to postgres-0 # features/steps/basic_replication.py:66 1385s May 02 14:14:54 And I start postgres-0 # features/steps/basic_replication.py:20 1385s May 02 14:14:54 Then postgres-0 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 1393s May 02 14:15:02 When I add the table buz to postgres-2 # features/steps/basic_replication.py:66 1393s May 02 14:15:02 Then table buz is present on postgres-0 after 20 seconds # features/steps/basic_replication.py:105 1393s May 02 14:15:02 1393s May 02 14:15:02 @reject-duplicate-name 1393s May 02 14:15:02 Scenario: check graceful rejection when two nodes have the same name # features/basic_replication.feature:83 1393s May 02 14:15:02 Given I start duplicate postgres-0 on port 8011 # features/steps/basic_replication.py:25 1395s May 02 14:15:04 Then there is one of ["Can't start; there is already a node named 'postgres-0' running"] CRITICAL in the dup-postgres-0 patroni log after 5 seconds # features/steps/basic_replication.py:133 1399s May 02 14:15:08 1399s May 02 14:15:08 Feature: cascading replication # features/cascading_replication.feature:1 1399s May 02 14:15:08 We should check that patroni can do base backup and streaming from the replica 1399s May 02 14:15:08 Scenario: check a base backup and streaming replication from a replica # features/cascading_replication.feature:4 1399s May 02 14:15:08 Given I start postgres-0 # features/steps/basic_replication.py:20 1404s May 02 14:15:13 And postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1404s May 02 14:15:13 And I configure and start postgres-1 with a tag clonefrom true # features/steps/cascading_replication.py:7 1408s May 02 14:15:17 And replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 1409s May 02 14:15:18 And I create label with "postgres-0" in postgres-0 data directory # features/steps/cascading_replication.py:18 1409s May 02 14:15:18 And I create label with "postgres-1" in postgres-1 data directory # features/steps/cascading_replication.py:18 1409s May 02 14:15:18 And "members/postgres-1" key in DCS has state=running after 12 seconds # features/steps/cascading_replication.py:23 1409s May 02 14:15:18 And I configure and start postgres-2 with a tag replicatefrom postgres-1 # features/steps/cascading_replication.py:7 1414s May 02 14:15:23 Then replication works from postgres-0 to postgres-2 after 30 seconds # features/steps/basic_replication.py:124 1415s May 02 14:15:24 And there is a label with "postgres-1" in postgres-2 data directory # features/steps/cascading_replication.py:12 1422s May 02 14:15:31 1422s May 02 14:15:31 Feature: citus # features/citus.feature:1 1422s May 02 14:15:31 We should check that coordinator discovers and registers workers and clients don't have errors when worker cluster switches over 1422s May 02 14:15:31 Scenario: check that worker cluster is registered in the coordinator # features/citus.feature:4 1422s May 02 14:15:31 Given I start postgres-0 in citus group 0 # None 1422s May 02 14:15:31 And I start postgres-2 in citus group 1 # None 1422s May 02 14:15:31 Then postgres-0 is a leader in a group 0 after 10 seconds # None 1422s May 02 14:15:31 And postgres-2 is a leader in a group 1 after 10 seconds # None 1422s May 02 14:15:31 When I start postgres-1 in citus group 0 # None 1422s May 02 14:15:31 And I start postgres-3 in citus group 1 # None 1422s May 02 14:15:31 Then replication works from postgres-0 to postgres-1 after 15 seconds # None 1422s May 02 14:15:31 Then replication works from postgres-2 to postgres-3 after 15 seconds # None 1422s May 02 14:15:31 And postgres-0 is registered in the postgres-0 as the primary in group 0 after 5 seconds # None 1422s May 02 14:15:31 And postgres-1 is registered in the postgres-0 as the secondary in group 0 after 5 seconds # None 1422s May 02 14:15:31 And postgres-2 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 1422s May 02 14:15:31 And postgres-3 is registered in the postgres-0 as the secondary in group 1 after 5 seconds # None 1422s May 02 14:15:31 1422s May 02 14:15:31 Scenario: coordinator failover updates pg_dist_node # features/citus.feature:18 1422s May 02 14:15:31 Given I run patronictl.py failover batman --group 0 --candidate postgres-1 --force # None 1422s May 02 14:15:31 Then postgres-1 role is the primary after 10 seconds # None 1422s May 02 14:15:31 And "members/postgres-0" key in a group 0 in DCS has state=running after 15 seconds # None 1422s May 02 14:15:31 And replication works from postgres-1 to postgres-0 after 15 seconds # None 1422s May 02 14:15:31 And postgres-1 is registered in the postgres-2 as the primary in group 0 after 5 seconds # None 1422s May 02 14:15:31 And postgres-0 is registered in the postgres-2 as the secondary in group 0 after 15 seconds # None 1422s May 02 14:15:31 And "sync" key in a group 0 in DCS has sync_standby=postgres-0 after 15 seconds # None 1422s May 02 14:15:31 When I run patronictl.py switchover batman --group 0 --candidate postgres-0 --force # None 1422s May 02 14:15:31 Then postgres-0 role is the primary after 10 seconds # None 1422s May 02 14:15:31 And replication works from postgres-0 to postgres-1 after 15 seconds # None 1422s May 02 14:15:31 And postgres-0 is registered in the postgres-2 as the primary in group 0 after 5 seconds # None 1422s May 02 14:15:31 And postgres-1 is registered in the postgres-2 as the secondary in group 0 after 15 seconds # None 1422s May 02 14:15:31 And "sync" key in a group 0 in DCS has sync_standby=postgres-1 after 15 seconds # None 1422s May 02 14:15:31 1422s May 02 14:15:31 Scenario: worker switchover doesn't break client queries on the coordinator # features/citus.feature:33 1422s May 02 14:15:31 Given I create a distributed table on postgres-0 # None 1422s May 02 14:15:31 And I start a thread inserting data on postgres-0 # None 1422s May 02 14:15:31 When I run patronictl.py switchover batman --group 1 --force # None 1422s May 02 14:15:31 Then I receive a response returncode 0 # None 1422s May 02 14:15:31 And postgres-3 role is the primary after 10 seconds # None 1422s May 02 14:15:31 And "members/postgres-2" key in a group 1 in DCS has state=running after 15 seconds # None 1422s May 02 14:15:31 And replication works from postgres-3 to postgres-2 after 15 seconds # None 1422s May 02 14:15:31 And postgres-3 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 1422s May 02 14:15:31 And postgres-2 is registered in the postgres-0 as the secondary in group 1 after 15 seconds # None 1422s May 02 14:15:31 And "sync" key in a group 1 in DCS has sync_standby=postgres-2 after 15 seconds # None 1422s May 02 14:15:31 And a thread is still alive # None 1422s May 02 14:15:31 When I run patronictl.py switchover batman --group 1 --force # None 1422s May 02 14:15:31 Then I receive a response returncode 0 # None 1422s May 02 14:15:31 And postgres-2 role is the primary after 10 seconds # None 1422s May 02 14:15:31 And replication works from postgres-2 to postgres-3 after 15 seconds # None 1422s May 02 14:15:31 And postgres-2 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 1422s May 02 14:15:31 And postgres-3 is registered in the postgres-0 as the secondary in group 1 after 15 seconds # None 1422s SKIP FEATURE citus: Citus extension isn't available 1422s SKIP Scenario check that worker cluster is registered in the coordinator: Citus extension isn't available 1422s SKIP Scenario coordinator failover updates pg_dist_node: Citus extension isn't available 1422s SKIP Scenario worker switchover doesn't break client queries on the coordinator: Citus extension isn't available 1422s SKIP Scenario worker primary restart doesn't break client queries on the coordinator: Citus extension isn't available 1422s SKIP Scenario check that in-flight transaction is rolled back after timeout when other workers need to change pg_dist_node: Citus extension isn't available 1422s May 02 14:15:31 And "sync" key in a group 1 in DCS has sync_standby=postgres-3 after 15 seconds # None 1422s May 02 14:15:31 And a thread is still alive # None 1422s May 02 14:15:31 When I stop a thread # None 1422s May 02 14:15:31 Then a distributed table on postgres-0 has expected rows # None 1422s May 02 14:15:31 1422s May 02 14:15:31 Scenario: worker primary restart doesn't break client queries on the coordinator # features/citus.feature:56 1422s May 02 14:15:31 Given I cleanup a distributed table on postgres-0 # None 1422s May 02 14:15:31 And I start a thread inserting data on postgres-0 # None 1422s May 02 14:15:31 When I run patronictl.py restart batman postgres-2 --group 1 --force # None 1422s May 02 14:15:31 Then I receive a response returncode 0 # None 1422s May 02 14:15:31 And postgres-2 role is the primary after 10 seconds # None 1422s May 02 14:15:31 And replication works from postgres-2 to postgres-3 after 15 seconds # None 1422s May 02 14:15:31 And postgres-2 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 1422s May 02 14:15:31 And postgres-3 is registered in the postgres-0 as the secondary in group 1 after 15 seconds # None 1422s May 02 14:15:31 And a thread is still alive # None 1422s May 02 14:15:31 When I stop a thread # None 1422s May 02 14:15:31 Then a distributed table on postgres-0 has expected rows # None 1422s May 02 14:15:31 1422s May 02 14:15:31 Scenario: check that in-flight transaction is rolled back after timeout when other workers need to change pg_dist_node # features/citus.feature:69 1422s May 02 14:15:31 Given I start postgres-4 in citus group 2 # None 1422s May 02 14:15:31 Then postgres-4 is a leader in a group 2 after 10 seconds # None 1422s May 02 14:15:31 And "members/postgres-4" key in a group 2 in DCS has role=primary after 3 seconds # None 1422s May 02 14:15:31 When I run patronictl.py edit-config batman --group 2 -s ttl=20 --force # None 1422s May 02 14:15:31 Then I receive a response returncode 0 # None 1422s May 02 14:15:31 And I receive a response output "+ttl: 20" # None 1422s May 02 14:15:31 Then postgres-4 is registered in the postgres-2 as the primary in group 2 after 5 seconds # None 1422s May 02 14:15:31 When I shut down postgres-4 # None 1422s May 02 14:15:31 Then there is a transaction in progress on postgres-0 changing pg_dist_node after 5 seconds # None 1422s May 02 14:15:31 When I run patronictl.py restart batman postgres-2 --group 1 --force # None 1422s May 02 14:15:31 Then a transaction finishes in 20 seconds # None 1422s May 02 14:15:31 1422s May 02 14:15:31 Feature: custom bootstrap # features/custom_bootstrap.feature:1 1422s May 02 14:15:31 We should check that patroni can bootstrap a new cluster from a backup 1422s May 02 14:15:31 Scenario: clone existing cluster using pg_basebackup # features/custom_bootstrap.feature:4 1422s May 02 14:15:31 Given I start postgres-0 # features/steps/basic_replication.py:20 1427s May 02 14:15:36 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1427s May 02 14:15:36 When I add the table foo to postgres-0 # features/steps/basic_replication.py:66 1427s May 02 14:15:36 And I start postgres-1 in a cluster batman1 as a clone of postgres-0 # features/steps/custom_bootstrap.py:6 1432s May 02 14:15:41 Then postgres-1 is a leader of batman1 after 10 seconds # features/steps/custom_bootstrap.py:16 1433s May 02 14:15:42 Then table foo is present on postgres-1 after 10 seconds # features/steps/basic_replication.py:105 1433s May 02 14:15:42 1433s May 02 14:15:42 Scenario: make a backup and do a restore into a new cluster # features/custom_bootstrap.feature:12 1433s May 02 14:15:42 Given I add the table bar to postgres-1 # features/steps/basic_replication.py:66 1433s May 02 14:15:42 And I do a backup of postgres-1 # features/steps/custom_bootstrap.py:25 1435s May 02 14:15:44 When I start postgres-2 in a cluster batman2 from backup # features/steps/custom_bootstrap.py:11 1441s May 02 14:15:50 Then postgres-2 is a leader of batman2 after 30 seconds # features/steps/custom_bootstrap.py:16 1441s May 02 14:15:50 And table bar is present on postgres-2 after 10 seconds # features/steps/basic_replication.py:105 1447s May 02 14:15:56 1447s May 02 14:15:56 Feature: dcs failsafe mode # features/dcs_failsafe_mode.feature:1 1447s May 02 14:15:56 We should check the basic dcs failsafe mode functioning 1447s May 02 14:15:56 Scenario: check failsafe mode can be successfully enabled # features/dcs_failsafe_mode.feature:4 1447s May 02 14:15:56 Given I start postgres-0 # features/steps/basic_replication.py:20 1452s May 02 14:16:01 And postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1452s May 02 14:16:01 Then "config" key in DCS has ttl=30 after 10 seconds # features/steps/cascading_replication.py:23 1452s May 02 14:16:01 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:73 1452s May 02 14:16:01 Then I receive a response code 200 # features/steps/patroni_api.py:100 1452s May 02 14:16:01 And Response on GET http://127.0.0.1:8008/failsafe contains postgres-0 after 10 seconds # features/steps/patroni_api.py:158 1452s May 02 14:16:01 When I issue a GET request to http://127.0.0.1:8008/failsafe # features/steps/patroni_api.py:63 1452s May 02 14:16:01 Then I receive a response code 200 # features/steps/patroni_api.py:100 1452s May 02 14:16:01 And I receive a response postgres-0 http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:100 1452s May 02 14:16:01 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,"postgres_0":null}} # features/steps/patroni_api.py:73 1453s May 02 14:16:01 Then I receive a response code 200 # features/steps/patroni_api.py:100 1453s May 02 14:16:01 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:73 1453s May 02 14:16:02 Then I receive a response code 200 # features/steps/patroni_api.py:100 1453s May 02 14:16:02 1453s May 02 14:16:02 @dcs-failsafe 1453s May 02 14:16:02 Scenario: check one-node cluster is functioning while DCS is down # features/dcs_failsafe_mode.feature:20 1453s May 02 14:16:02 Given DCS is down # features/steps/dcs_failsafe_mode.py:4 1453s May 02 14:16:02 Then Response on GET http://127.0.0.1:8008/primary contains failsafe_mode_is_active after 12 seconds # features/steps/patroni_api.py:158 1460s May 02 14:16:09 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1460s May 02 14:16:09 1460s May 02 14:16:09 @dcs-failsafe 1460s May 02 14:16:09 Scenario: check new replica isn't promoted when leader is down and DCS is up # features/dcs_failsafe_mode.feature:26 1460s May 02 14:16:09 Given DCS is up # features/steps/dcs_failsafe_mode.py:9 1460s May 02 14:16:09 When I do a backup of postgres-0 # features/steps/custom_bootstrap.py:25 1462s May 02 14:16:11 And I shut down postgres-0 # features/steps/basic_replication.py:41 1464s May 02 14:16:13 When I start postgres-1 in a cluster batman from backup with no_leader # features/steps/dcs_failsafe_mode.py:14 1469s May 02 14:16:18 Then postgres-1 role is the replica after 12 seconds # features/steps/basic_replication.py:117 1469s May 02 14:16:18 1469s May 02 14:16:18 Scenario: check leader and replica are both in /failsafe key after leader is back # features/dcs_failsafe_mode.feature:33 1469s May 02 14:16:18 Given I start postgres-0 # features/steps/basic_replication.py:20 1472s May 02 14:16:21 And I start postgres-1 # features/steps/basic_replication.py:20 1472s May 02 14:16:21 Then "members/postgres-0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1472s May 02 14:16:21 And "members/postgres-1" key in DCS has state=running after 2 seconds # features/steps/cascading_replication.py:23 1472s May 02 14:16:21 And Response on GET http://127.0.0.1:8009/failsafe contains postgres-1 after 10 seconds # features/steps/patroni_api.py:158 1474s May 02 14:16:22 When I issue a GET request to http://127.0.0.1:8009/failsafe # features/steps/patroni_api.py:63 1474s May 02 14:16:23 Then I receive a response code 200 # features/steps/patroni_api.py:100 1474s May 02 14:16:23 And I receive a response postgres-0 http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:100 1474s May 02 14:16:23 And I receive a response postgres-1 http://127.0.0.1:8009/patroni # features/steps/patroni_api.py:100 1474s May 02 14:16:23 1474s May 02 14:16:23 @dcs-failsafe @slot-advance 1474s May 02 14:16:23 Scenario: check leader and replica are functioning while DCS is down # features/dcs_failsafe_mode.feature:46 1474s May 02 14:16:23 Given I get all changes from physical slot dcs_slot_1 on postgres-0 # features/steps/slots.py:77 1474s May 02 14:16:23 Then physical slot dcs_slot_1 is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 1476s May 02 14:16:25 And logical slot dcs_slot_0 is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 1479s May 02 14:16:28 And DCS is down # features/steps/dcs_failsafe_mode.py:4 1479s May 02 14:16:28 Then Response on GET http://127.0.0.1:8008/primary contains failsafe_mode_is_active after 12 seconds # features/steps/patroni_api.py:158 1486s May 02 14:16:35 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1486s May 02 14:16:35 And postgres-1 role is the replica after 2 seconds # features/steps/basic_replication.py:117 1486s May 02 14:16:35 And replication works from postgres-0 to postgres-1 after 10 seconds # features/steps/basic_replication.py:124 1486s May 02 14:16:35 When I get all changes from logical slot dcs_slot_0 on postgres-0 # features/steps/slots.py:72 1486s May 02 14:16:35 And I get all changes from physical slot dcs_slot_1 on postgres-0 # features/steps/slots.py:77 1486s May 02 14:16:35 Then logical slot dcs_slot_0 is in sync between postgres-0 and postgres-1 after 20 seconds # features/steps/slots.py:52 1492s May 02 14:16:41 And physical slot dcs_slot_1 is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 1492s May 02 14:16:41 1492s May 02 14:16:41 @dcs-failsafe 1492s May 02 14:16:41 Scenario: check primary is demoted when one replica is shut down and DCS is down # features/dcs_failsafe_mode.feature:61 1492s May 02 14:16:41 Given DCS is down # features/steps/dcs_failsafe_mode.py:4 1492s May 02 14:16:41 And I kill postgres-1 # features/steps/basic_replication.py:46 1493s May 02 14:16:42 And I kill postmaster on postgres-1 # features/steps/basic_replication.py:56 1493s May 02 14:16:42 waiting for server to shut down.... done 1493s May 02 14:16:42 server stopped 1493s May 02 14:16:42 Then postgres-0 role is the replica after 12 seconds # features/steps/basic_replication.py:117 1496s May 02 14:16:45 1496s May 02 14:16:45 @dcs-failsafe 1496s May 02 14:16:45 Scenario: check known replica is promoted when leader is down and DCS is up # features/dcs_failsafe_mode.feature:68 1496s May 02 14:16:45 Given I kill postgres-0 # features/steps/basic_replication.py:46 1497s May 02 14:16:46 And I shut down postmaster on postgres-0 # features/steps/basic_replication.py:51 1497s May 02 14:16:46 waiting for server to shut down.... done 1497s May 02 14:16:46 server stopped 1497s May 02 14:16:46 And DCS is up # features/steps/dcs_failsafe_mode.py:9 1497s May 02 14:16:46 When I start postgres-1 # features/steps/basic_replication.py:20 1500s May 02 14:16:49 Then "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1500s May 02 14:16:49 And postgres-1 role is the primary after 25 seconds # features/steps/basic_replication.py:117 1501s May 02 14:16:50 1501s May 02 14:16:50 @dcs-failsafe 1501s May 02 14:16:50 Scenario: scale to three-node cluster # features/dcs_failsafe_mode.feature:77 1501s May 02 14:16:50 Given I start postgres-0 # features/steps/basic_replication.py:20 1505s May 02 14:16:54 And I configure and start postgres-2 with a tag replicatefrom postgres-0 # features/steps/cascading_replication.py:7 1511s May 02 14:17:00 Then "members/postgres-2" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1511s May 02 14:17:00 And "members/postgres-0" key in DCS has state=running after 20 seconds # features/steps/cascading_replication.py:23 1511s May 02 14:17:00 And Response on GET http://127.0.0.1:8008/failsafe contains postgres-2 after 10 seconds # features/steps/patroni_api.py:158 1512s May 02 14:17:00 And replication works from postgres-1 to postgres-0 after 10 seconds # features/steps/basic_replication.py:124 1513s May 02 14:17:02 And replication works from postgres-1 to postgres-2 after 10 seconds # features/steps/basic_replication.py:124 1514s May 02 14:17:03 1514s May 02 14:17:03 @dcs-failsafe @slot-advance 1514s May 02 14:17:03 Scenario: make sure permanent slots exist on replicas # features/dcs_failsafe_mode.feature:88 1514s May 02 14:17:03 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:73 1514s May 02 14:17:03 Then logical slot dcs_slot_2 is in sync between postgres-1 and postgres-0 after 20 seconds # features/steps/slots.py:52 1520s May 02 14:17:09 And logical slot dcs_slot_2 is in sync between postgres-1 and postgres-2 after 20 seconds # features/steps/slots.py:52 1521s May 02 14:17:10 When I get all changes from physical slot dcs_slot_1 on postgres-1 # features/steps/slots.py:77 1521s May 02 14:17:10 Then physical slot dcs_slot_1 is in sync between postgres-1 and postgres-0 after 10 seconds # features/steps/slots.py:52 1522s May 02 14:17:11 And physical slot dcs_slot_1 is in sync between postgres-1 and postgres-2 after 10 seconds # features/steps/slots.py:52 1522s May 02 14:17:11 And physical slot postgres_0 is in sync between postgres-1 and postgres-2 after 10 seconds # features/steps/slots.py:52 1522s May 02 14:17:11 And physical slot postgres_2 is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 1522s May 02 14:17:11 1522s May 02 14:17:11 @dcs-failsafe 1522s May 02 14:17:11 Scenario: check three-node cluster is functioning while DCS is down # features/dcs_failsafe_mode.feature:99 1522s May 02 14:17:11 Given DCS is down # features/steps/dcs_failsafe_mode.py:4 1522s May 02 14:17:11 Then Response on GET http://127.0.0.1:8009/primary contains failsafe_mode_is_active after 12 seconds # features/steps/patroni_api.py:158 1530s May 02 14:17:19 Then postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1530s May 02 14:17:19 And postgres-0 role is the replica after 2 seconds # features/steps/basic_replication.py:117 1530s May 02 14:17:19 And postgres-2 role is the replica after 2 seconds # features/steps/basic_replication.py:117 1530s May 02 14:17:19 1530s May 02 14:17:19 @dcs-failsafe @slot-advance 1530s May 02 14:17:19 Scenario: check that permanent slots are in sync between nodes while DCS is down # features/dcs_failsafe_mode.feature:108 1530s May 02 14:17:19 Given replication works from postgres-1 to postgres-0 after 10 seconds # features/steps/basic_replication.py:124 1530s May 02 14:17:19 And replication works from postgres-1 to postgres-2 after 10 seconds # features/steps/basic_replication.py:124 1531s May 02 14:17:20 When I get all changes from logical slot dcs_slot_2 on postgres-1 # features/steps/slots.py:72 1531s May 02 14:17:20 And I get all changes from physical slot dcs_slot_1 on postgres-1 # features/steps/slots.py:77 1531s May 02 14:17:20 Then logical slot dcs_slot_2 is in sync between postgres-1 and postgres-0 after 20 seconds # features/steps/slots.py:52 1533s May 02 14:17:22 And logical slot dcs_slot_2 is in sync between postgres-1 and postgres-2 after 20 seconds # features/steps/slots.py:52 1533s May 02 14:17:22 And physical slot dcs_slot_1 is in sync between postgres-1 and postgres-0 after 10 seconds # features/steps/slots.py:52 1533s May 02 14:17:22 And physical slot dcs_slot_1 is in sync between postgres-1 and postgres-2 after 10 seconds # features/steps/slots.py:52 1533s May 02 14:17:22 And physical slot postgres_0 is in sync between postgres-1 and postgres-2 after 10 seconds # features/steps/slots.py:52 1533s May 02 14:17:22 And physical slot postgres_2 is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 1541s May 02 14:17:30 1541s May 02 14:17:30 Feature: ignored slots # features/ignored_slots.feature:1 1541s May 02 14:17:30 1541s May 02 14:17:30 Scenario: check ignored slots aren't removed on failover/switchover # features/ignored_slots.feature:2 1541s May 02 14:17:30 Given I start postgres-1 # features/steps/basic_replication.py:20 1545s May 02 14:17:34 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 1546s May 02 14:17:35 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 1546s May 02 14:17:35 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:73 1546s May 02 14:17:35 Then I receive a response code 200 # features/steps/patroni_api.py:100 1546s May 02 14:17:35 And Response on GET http://127.0.0.1:8009/config contains ignore_slots after 10 seconds # features/steps/patroni_api.py:158 1546s May 02 14:17:35 When I shut down postgres-1 # features/steps/basic_replication.py:41 1548s May 02 14:17:37 And I start postgres-1 # features/steps/basic_replication.py:20 1550s May 02 14:17:39 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 1551s May 02 14:17:40 And "members/postgres-1" key in DCS has role=primary after 10 seconds # features/steps/cascading_replication.py:23 1552s May 02 14:17:41 And postgres-1 role is the primary after 20 seconds # features/steps/basic_replication.py:117 1552s May 02 14:17:41 When I create a logical replication slot unmanaged_slot_0 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 1552s May 02 14:17:41 And I create a logical replication slot unmanaged_slot_1 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 1552s May 02 14:17:41 And I create a logical replication slot unmanaged_slot_2 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 1552s May 02 14:17:41 And I create a logical replication slot unmanaged_slot_3 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 1552s May 02 14:17:41 And I create a logical replication slot dummy_slot on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 1552s May 02 14:17:41 Then postgres-1 has a logical replication slot named unmanaged_slot_0 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 1552s May 02 14:17:41 And postgres-1 has a logical replication slot named unmanaged_slot_1 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 1552s May 02 14:17:41 And postgres-1 has a logical replication slot named unmanaged_slot_2 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 1552s May 02 14:17:41 And postgres-1 has a logical replication slot named unmanaged_slot_3 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 1552s May 02 14:17:41 When I start postgres-0 # features/steps/basic_replication.py:20 1556s May 02 14:17:45 Then "members/postgres-0" key in DCS has role=replica after 10 seconds # features/steps/cascading_replication.py:23 1556s May 02 14:17:45 And postgres-0 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 1556s May 02 14:17:45 And replication works from postgres-1 to postgres-0 after 20 seconds # features/steps/basic_replication.py:124 1557s May 02 14:17:46 When I shut down postgres-1 # features/steps/basic_replication.py:41 1559s May 02 14:17:48 Then "members/postgres-0" key in DCS has role=primary after 10 seconds # features/steps/cascading_replication.py:23 1560s May 02 14:17:49 When I start postgres-1 # features/steps/basic_replication.py:20 1563s May 02 14:17:52 Then postgres-1 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 1563s May 02 14:17:52 And "members/postgres-1" key in DCS has role=replica after 10 seconds # features/steps/cascading_replication.py:23 1563s May 02 14:17:52 And I sleep for 2 seconds # features/steps/patroni_api.py:41 1565s May 02 14:17:54 And postgres-1 has a logical replication slot named unmanaged_slot_0 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 1565s May 02 14:17:54 And postgres-1 has a logical replication slot named unmanaged_slot_1 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 1565s May 02 14:17:54 And postgres-1 has a logical replication slot named unmanaged_slot_2 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 1565s May 02 14:17:54 And postgres-1 has a logical replication slot named unmanaged_slot_3 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 1565s May 02 14:17:54 And postgres-1 does not have a replication slot named dummy_slot # features/steps/slots.py:41 1565s May 02 14:17:54 When I shut down postgres-0 # features/steps/basic_replication.py:41 1567s May 02 14:17:56 Then "members/postgres-1" key in DCS has role=primary after 10 seconds # features/steps/cascading_replication.py:23 1568s May 02 14:17:57 And postgres-1 has a logical replication slot named unmanaged_slot_0 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 1568s May 02 14:17:57 And postgres-1 has a logical replication slot named unmanaged_slot_1 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 1568s May 02 14:17:57 And postgres-1 has a logical replication slot named unmanaged_slot_2 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 1568s May 02 14:17:57 And postgres-1 has a logical replication slot named unmanaged_slot_3 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 1570s May 02 14:17:59 1570s May 02 14:17:59 Feature: nostream node # features/nostream_node.feature:1 1570s May 02 14:17:59 1570s May 02 14:17:59 Scenario: check nostream node is recovering from archive # features/nostream_node.feature:3 1570s May 02 14:17:59 When I start postgres-0 # features/steps/basic_replication.py:20 1574s May 02 14:18:03 And I configure and start postgres-1 with a tag nostream true # features/steps/cascading_replication.py:7 1579s May 02 14:18:08 Then "members/postgres-1" key in DCS has replication_state=in archive recovery after 10 seconds # features/steps/cascading_replication.py:23 1579s May 02 14:18:08 And replication works from postgres-0 to postgres-1 after 30 seconds # features/steps/basic_replication.py:124 1585s May 02 14:18:13 1585s May 02 14:18:13 @slot-advance 1585s May 02 14:18:13 Scenario: check permanent logical replication slots are not copied # features/nostream_node.feature:10 1585s May 02 14:18:13 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:73 1585s May 02 14:18:14 Then I receive a response code 200 # features/steps/patroni_api.py:100 1585s May 02 14:18:14 When I run patronictl.py restart batman postgres-0 --force # features/steps/patroni_api.py:88 1586s May 02 14:18:15 Then postgres-0 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:20 1587s May 02 14:18:16 When I configure and start postgres-2 with a tag replicatefrom postgres-1 # features/steps/cascading_replication.py:7 1593s May 02 14:18:22 Then "members/postgres-2" key in DCS has replication_state=streaming after 10 seconds # features/steps/cascading_replication.py:23 1594s May 02 14:18:23 And postgres-1 does not have a replication slot named test_logical # features/steps/slots.py:41 1594s May 02 14:18:23 And postgres-2 does not have a replication slot named test_logical # features/steps/slots.py:41 1594s May 02 14:18:23 1594s May 02 14:18:23 @slot-advance 1594s May 02 14:18:23 Scenario: check that slots are written to the /status key # features/nostream_node.feature:21 1594s May 02 14:18:23 Given "status" key in DCS has postgres_0 in slots # features/steps/slots.py:118 1594s May 02 14:18:23 And "status" key in DCS has postgres_2 in slots # features/steps/slots.py:118 1594s May 02 14:18:23 And "status" key in DCS has test_logical in slots # features/steps/slots.py:118 1594s May 02 14:18:23 And "status" key in DCS has test_logical in slots # features/steps/slots.py:118 1594s May 02 14:18:23 And "status" key in DCS does not have postgres_1 in slots # features/steps/slots.py:124 1599s May 02 14:18:28 1599s May 02 14:18:28 Feature: patroni api # features/patroni_api.feature:1 1599s May 02 14:18:28 We should check that patroni correctly responds to valid and not-valid API requests. 1599s May 02 14:18:28 Scenario: check API requests on a stand-alone server # features/patroni_api.feature:4 1599s May 02 14:18:28 Given I start postgres-0 # features/steps/basic_replication.py:20 1604s May 02 14:18:33 And postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1604s May 02 14:18:33 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:63 1604s May 02 14:18:33 Then I receive a response code 200 # features/steps/patroni_api.py:100 1604s May 02 14:18:33 And I receive a response state running # features/steps/patroni_api.py:100 1604s May 02 14:18:33 And I receive a response role primary # features/steps/patroni_api.py:100 1604s May 02 14:18:33 When I issue a GET request to http://127.0.0.1:8008/standby_leader # features/steps/patroni_api.py:63 1604s May 02 14:18:33 Then I receive a response code 503 # features/steps/patroni_api.py:100 1604s May 02 14:18:33 When I issue a GET request to http://127.0.0.1:8008/health # features/steps/patroni_api.py:63 1604s May 02 14:18:33 Then I receive a response code 200 # features/steps/patroni_api.py:100 1604s May 02 14:18:33 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:63 1604s May 02 14:18:33 Then I receive a response code 503 # features/steps/patroni_api.py:100 1604s May 02 14:18:33 When I issue a POST request to http://127.0.0.1:8008/reinitialize with {"force": true} # features/steps/patroni_api.py:73 1604s May 02 14:18:33 Then I receive a response code 503 # features/steps/patroni_api.py:100 1604s May 02 14:18:33 And I receive a response text I am the leader, can not reinitialize # features/steps/patroni_api.py:100 1604s May 02 14:18:33 When I run patronictl.py switchover batman --primary postgres-0 --force # features/steps/patroni_api.py:88 1605s May 02 14:18:34 Then I receive a response returncode 1 # features/steps/patroni_api.py:100 1605s May 02 14:18:34 And I receive a response output "Error: No candidates found to switchover to" # features/steps/patroni_api.py:100 1605s May 02 14:18:34 When I issue a POST request to http://127.0.0.1:8008/switchover with {"leader": "postgres-0"} # features/steps/patroni_api.py:73 1605s May 02 14:18:34 Then I receive a response code 412 # features/steps/patroni_api.py:100 1605s May 02 14:18:34 And I receive a response text switchover is not possible: cluster does not have members except leader # features/steps/patroni_api.py:100 1605s May 02 14:18:34 When I issue an empty POST request to http://127.0.0.1:8008/failover # features/steps/patroni_api.py:68 1605s May 02 14:18:34 Then I receive a response code 400 # features/steps/patroni_api.py:100 1605s May 02 14:18:34 When I issue a POST request to http://127.0.0.1:8008/failover with {"foo": "bar"} # features/steps/patroni_api.py:73 1605s May 02 14:18:34 Then I receive a response code 400 # features/steps/patroni_api.py:100 1605s May 02 14:18:34 And I receive a response text "Failover could be performed only to a specific candidate" # features/steps/patroni_api.py:100 1605s May 02 14:18:34 1605s May 02 14:18:34 Scenario: check local configuration reload # features/patroni_api.feature:32 1605s May 02 14:18:34 Given I add tag new_tag new_value to postgres-0 config # features/steps/patroni_api.py:139 1605s May 02 14:18:34 And I issue an empty POST request to http://127.0.0.1:8008/reload # features/steps/patroni_api.py:68 1606s May 02 14:18:35 Then I receive a response code 202 # features/steps/patroni_api.py:100 1606s May 02 14:18:35 1606s May 02 14:18:35 Scenario: check dynamic configuration change via DCS # features/patroni_api.feature:37 1606s May 02 14:18:35 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:73 1606s May 02 14:18:35 Then I receive a response code 200 # features/steps/patroni_api.py:100 1606s May 02 14:18:35 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 11 seconds # features/steps/patroni_api.py:158 1608s May 02 14:18:37 When I issue a GET request to http://127.0.0.1:8008/config # features/steps/patroni_api.py:63 1608s May 02 14:18:37 Then I receive a response code 200 # features/steps/patroni_api.py:100 1608s May 02 14:18:37 And I receive a response ttl 20 # features/steps/patroni_api.py:100 1608s May 02 14:18:37 When I issue a GET request to http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:63 1608s May 02 14:18:37 Then I receive a response code 200 # features/steps/patroni_api.py:100 1608s May 02 14:18:37 And I receive a response tags {'new_tag': 'new_value'} # features/steps/patroni_api.py:100 1608s May 02 14:18:37 And I sleep for 4 seconds # features/steps/patroni_api.py:41 1612s May 02 14:18:41 1612s May 02 14:18:41 Scenario: check the scheduled restart # features/patroni_api.feature:49 1612s May 02 14:18:41 Given I run patronictl.py edit-config -p 'superuser_reserved_connections=6' --force batman # features/steps/patroni_api.py:88 1613s May 02 14:18:42 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1613s May 02 14:18:42 And I receive a response output "+ superuser_reserved_connections: 6" # features/steps/patroni_api.py:100 1613s May 02 14:18:42 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 5 seconds # features/steps/patroni_api.py:158 1613s May 02 14:18:42 Given I issue a scheduled restart at http://127.0.0.1:8008 in 5 seconds with {"role": "replica"} # features/steps/patroni_api.py:126 1613s May 02 14:18:42 Then I receive a response code 202 # features/steps/patroni_api.py:100 1613s May 02 14:18:42 And I sleep for 8 seconds # features/steps/patroni_api.py:41 1621s May 02 14:18:50 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 10 seconds # features/steps/patroni_api.py:158 1621s May 02 14:18:50 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:126 1621s May 02 14:18:50 Then I receive a response code 202 # features/steps/patroni_api.py:100 1621s May 02 14:18:50 And Response on GET http://127.0.0.1:8008/patroni does not contain pending_restart after 10 seconds # features/steps/patroni_api.py:173 1628s May 02 14:18:57 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1629s May 02 14:18:58 1629s May 02 14:18:58 Scenario: check API requests for the primary-replica pair in the pause mode # features/patroni_api.feature:63 1629s May 02 14:18:58 Given I start postgres-1 # features/steps/basic_replication.py:20 1633s May 02 14:19:02 Then replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 1634s May 02 14:19:03 When I run patronictl.py pause batman # features/steps/patroni_api.py:88 1635s May 02 14:19:04 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1635s May 02 14:19:04 When I kill postmaster on postgres-1 # features/steps/basic_replication.py:56 1635s May 02 14:19:04 waiting for server to shut down.... done 1635s May 02 14:19:04 server stopped 1635s May 02 14:19:04 And I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 1636s May 02 14:19:05 Then I receive a response code 503 # features/steps/patroni_api.py:100 1636s May 02 14:19:05 And "members/postgres-1" key in DCS has state=stopped after 10 seconds # features/steps/cascading_replication.py:23 1637s May 02 14:19:06 When I run patronictl.py restart batman postgres-1 --force # features/steps/patroni_api.py:88 1639s May 02 14:19:08 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1639s May 02 14:19:08 Then replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 1640s May 02 14:19:09 And I sleep for 2 seconds # features/steps/patroni_api.py:41 1642s May 02 14:19:11 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 1642s May 02 14:19:11 Then I receive a response code 200 # features/steps/patroni_api.py:100 1642s May 02 14:19:11 And I receive a response state running # features/steps/patroni_api.py:100 1642s May 02 14:19:11 And I receive a response role replica # features/steps/patroni_api.py:100 1642s May 02 14:19:11 When I run patronictl.py reinit batman postgres-1 --force --wait # features/steps/patroni_api.py:88 1647s May 02 14:19:16 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1647s May 02 14:19:16 And I receive a response output "Success: reinitialize for member postgres-1" # features/steps/patroni_api.py:100 1647s May 02 14:19:16 And postgres-1 role is the secondary after 30 seconds # features/steps/basic_replication.py:117 1648s May 02 14:19:17 And replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 1649s May 02 14:19:18 When I run patronictl.py restart batman postgres-0 --force # features/steps/patroni_api.py:88 1651s May 02 14:19:20 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1651s May 02 14:19:20 And I receive a response output "Success: restart on member postgres-0" # features/steps/patroni_api.py:100 1651s May 02 14:19:20 And postgres-0 role is the primary after 5 seconds # features/steps/basic_replication.py:117 1652s May 02 14:19:21 1652s May 02 14:19:21 Scenario: check the switchover via the API in the pause mode # features/patroni_api.feature:90 1652s May 02 14:19:21 Given I issue a POST request to http://127.0.0.1:8008/switchover with {"leader": "postgres-0", "candidate": "postgres-1"} # features/steps/patroni_api.py:73 1654s May 02 14:19:23 Then I receive a response code 200 # features/steps/patroni_api.py:100 1654s May 02 14:19:23 And postgres-1 is a leader after 5 seconds # features/steps/patroni_api.py:31 1654s May 02 14:19:23 And postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1655s May 02 14:19:24 And postgres-0 role is the secondary after 10 seconds # features/steps/basic_replication.py:117 1660s May 02 14:19:29 And replication works from postgres-1 to postgres-0 after 20 seconds # features/steps/basic_replication.py:124 1660s May 02 14:19:29 And "members/postgres-0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1661s May 02 14:19:30 When I issue a GET request to http://127.0.0.1:8008/primary # features/steps/patroni_api.py:63 1661s May 02 14:19:30 Then I receive a response code 503 # features/steps/patroni_api.py:100 1661s May 02 14:19:30 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:63 1661s May 02 14:19:30 Then I receive a response code 200 # features/steps/patroni_api.py:100 1661s May 02 14:19:30 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 1661s May 02 14:19:30 Then I receive a response code 200 # features/steps/patroni_api.py:100 1661s May 02 14:19:30 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 1661s May 02 14:19:30 Then I receive a response code 503 # features/steps/patroni_api.py:100 1661s May 02 14:19:30 1661s May 02 14:19:30 Scenario: check the scheduled switchover # features/patroni_api.feature:107 1661s May 02 14:19:30 Given I issue a scheduled switchover from postgres-1 to postgres-0 in 10 seconds # features/steps/patroni_api.py:119 1662s May 02 14:19:31 Then I receive a response returncode 1 # features/steps/patroni_api.py:100 1662s May 02 14:19:31 And I receive a response output "Can't schedule switchover in the paused state" # features/steps/patroni_api.py:100 1662s May 02 14:19:31 When I run patronictl.py resume batman # features/steps/patroni_api.py:88 1664s May 02 14:19:33 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1664s May 02 14:19:33 Given I issue a scheduled switchover from postgres-1 to postgres-0 in 10 seconds # features/steps/patroni_api.py:119 1665s May 02 14:19:34 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1665s May 02 14:19:34 And postgres-0 is a leader after 20 seconds # features/steps/patroni_api.py:31 1676s May 02 14:19:45 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1676s May 02 14:19:45 And postgres-1 role is the secondary after 10 seconds # features/steps/basic_replication.py:117 1678s May 02 14:19:47 And replication works from postgres-0 to postgres-1 after 25 seconds # features/steps/basic_replication.py:124 1678s May 02 14:19:47 And "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1679s May 02 14:19:48 When I issue a GET request to http://127.0.0.1:8008/primary # features/steps/patroni_api.py:63 1679s May 02 14:19:48 Then I receive a response code 200 # features/steps/patroni_api.py:100 1679s May 02 14:19:48 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:63 1679s May 02 14:19:48 Then I receive a response code 503 # features/steps/patroni_api.py:100 1679s May 02 14:19:48 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 1679s May 02 14:19:48 Then I receive a response code 503 # features/steps/patroni_api.py:100 1679s May 02 14:19:48 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 1679s May 02 14:19:48 Then I receive a response code 200 # features/steps/patroni_api.py:100 1683s May 02 14:19:52 1683s May 02 14:19:52 Feature: permanent slots # features/permanent_slots.feature:1 1683s May 02 14:19:52 1683s May 02 14:19:52 Scenario: check that physical permanent slots are created # features/permanent_slots.feature:2 1683s May 02 14:19:52 Given I start postgres-0 # features/steps/basic_replication.py:20 1688s May 02 14:19:57 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1688s May 02 14:19:57 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 1688s May 02 14:19:57 When I issue a PATCH request to http://127.0.0.1:8008/config with {"slots":{"test_physical":0,"postgres_3":0},"postgresql":{"parameters":{"wal_level":"logical"}}} # features/steps/patroni_api.py:73 1688s May 02 14:19:57 Then I receive a response code 200 # features/steps/patroni_api.py:100 1688s May 02 14:19:57 And Response on GET http://127.0.0.1:8008/config contains slots after 10 seconds # features/steps/patroni_api.py:158 1689s May 02 14:19:58 When I start postgres-1 # features/steps/basic_replication.py:20 1694s May 02 14:20:03 And I configure and start postgres-2 with a tag nofailover true # features/steps/cascading_replication.py:7 1699s May 02 14:20:08 And I configure and start postgres-3 with a tag replicatefrom postgres-2 # features/steps/cascading_replication.py:7 1703s May 02 14:20:12 Then postgres-0 has a physical replication slot named test_physical after 10 seconds # features/steps/slots.py:82 1703s May 02 14:20:12 And postgres-0 has a physical replication slot named postgres_1 after 10 seconds # features/steps/slots.py:82 1703s May 02 14:20:12 And postgres-0 has a physical replication slot named postgres_2 after 10 seconds # features/steps/slots.py:82 1703s May 02 14:20:12 And postgres-2 has a physical replication slot named postgres_3 after 10 seconds # features/steps/slots.py:82 1703s May 02 14:20:12 And postgres-2 does not have a replication slot named test_physical # features/steps/slots.py:41 1703s May 02 14:20:12 1703s May 02 14:20:12 @slot-advance 1703s May 02 14:20:12 Scenario: check that logical permanent slots are created # features/permanent_slots.feature:19 1703s May 02 14:20:12 Given I run patronictl.py restart batman postgres-0 --force # features/steps/patroni_api.py:88 1706s May 02 14:20:15 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:73 1706s May 02 14:20:15 Then postgres-0 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:20 1707s May 02 14:20:16 1707s May 02 14:20:16 @slot-advance 1707s May 02 14:20:16 Scenario: check that permanent slots are created on replicas # features/permanent_slots.feature:25 1707s May 02 14:20:16 Given postgres-1 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:20 1712s May 02 14:20:21 Then Logical slot test_logical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 1712s May 02 14:20:21 And Logical slot test_logical is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 1713s May 02 14:20:22 And postgres-1 has a physical replication slot named test_physical after 2 seconds # features/steps/slots.py:82 1713s May 02 14:20:22 And postgres-2 does not have a replication slot named test_logical # features/steps/slots.py:41 1713s May 02 14:20:22 And postgres-3 has a physical replication slot named test_physical after 2 seconds # features/steps/slots.py:82 1713s May 02 14:20:22 1713s May 02 14:20:22 @slot-advance 1713s May 02 14:20:22 Scenario: check permanent physical slots that match with member names # features/permanent_slots.feature:34 1713s May 02 14:20:22 Given postgres-0 has a physical replication slot named postgres_3 after 2 seconds # features/steps/slots.py:82 1713s May 02 14:20:22 And postgres-1 has a physical replication slot named postgres_0 after 2 seconds # features/steps/slots.py:82 1713s May 02 14:20:22 And postgres-1 has a physical replication slot named postgres_2 after 2 seconds # features/steps/slots.py:82 1713s May 02 14:20:22 And postgres-1 has a physical replication slot named postgres_3 after 2 seconds # features/steps/slots.py:82 1713s May 02 14:20:22 And postgres-2 does not have a replication slot named postgres_0 # features/steps/slots.py:41 1713s May 02 14:20:22 And postgres-2 does not have a replication slot named postgres_1 # features/steps/slots.py:41 1713s May 02 14:20:22 And postgres-2 has a physical replication slot named postgres_3 after 2 seconds # features/steps/slots.py:82 1713s May 02 14:20:22 And postgres-3 has a physical replication slot named postgres_0 after 2 seconds # features/steps/slots.py:82 1713s May 02 14:20:22 And postgres-3 has a physical replication slot named postgres_1 after 2 seconds # features/steps/slots.py:82 1713s May 02 14:20:22 And postgres-3 has a physical replication slot named postgres_2 after 2 seconds # features/steps/slots.py:82 1713s May 02 14:20:22 1713s May 02 14:20:22 @slot-advance 1713s May 02 14:20:22 Scenario: check that permanent slots are advanced on replicas # features/permanent_slots.feature:47 1713s May 02 14:20:22 Given I add the table replicate_me to postgres-0 # features/steps/basic_replication.py:66 1713s May 02 14:20:22 When I get all changes from logical slot test_logical on postgres-0 # features/steps/slots.py:72 1713s May 02 14:20:22 And I get all changes from physical slot test_physical on postgres-0 # features/steps/slots.py:77 1713s May 02 14:20:22 Then Logical slot test_logical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 1714s May 02 14:20:23 And Physical slot test_physical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 1714s May 02 14:20:23 And Logical slot test_logical is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 1714s May 02 14:20:23 And Physical slot test_physical is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 1714s May 02 14:20:23 And Physical slot postgres_1 is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 1714s May 02 14:20:23 And Physical slot postgres_3 is in sync between postgres-2 and postgres-0 after 20 seconds # features/steps/slots.py:52 1716s May 02 14:20:25 And Physical slot postgres_3 is in sync between postgres-2 and postgres-1 after 10 seconds # features/steps/slots.py:52 1716s May 02 14:20:25 1716s May 02 14:20:25 @slot-advance 1716s May 02 14:20:25 Scenario: check that permanent slots and member slots are written to the /status key # features/permanent_slots.feature:60 1716s May 02 14:20:25 Given "status" key in DCS has test_physical in slots # features/steps/slots.py:118 1716s May 02 14:20:25 And "status" key in DCS has postgres_0 in slots # features/steps/slots.py:118 1716s May 02 14:20:25 And "status" key in DCS has postgres_1 in slots # features/steps/slots.py:118 1716s May 02 14:20:25 And "status" key in DCS has postgres_2 in slots # features/steps/slots.py:118 1716s May 02 14:20:25 And "status" key in DCS has postgres_3 in slots # features/steps/slots.py:118 1716s May 02 14:20:25 1716s May 02 14:20:25 @slot-advance 1716s May 02 14:20:25 Scenario: check that only non-permanent member slots are written to the retain_slots in /status key # features/permanent_slots.feature:68 1716s May 02 14:20:25 Given "status" key in DCS has postgres_0 in retain_slots # features/steps/slots.py:118 1716s May 02 14:20:25 And "status" key in DCS has postgres_1 in retain_slots # features/steps/slots.py:118 1716s May 02 14:20:25 And "status" key in DCS has postgres_2 in retain_slots # features/steps/slots.py:118 1716s May 02 14:20:25 And "status" key in DCS does not have postgres_3 in retain_slots # features/steps/slots.py:124 1716s May 02 14:20:25 1716s May 02 14:20:25 Scenario: check permanent physical replication slot after failover # features/permanent_slots.feature:74 1716s May 02 14:20:25 Given I shut down postgres-3 # features/steps/basic_replication.py:41 1717s May 02 14:20:26 And I shut down postgres-2 # features/steps/basic_replication.py:41 1718s May 02 14:20:27 And I shut down postgres-0 # features/steps/basic_replication.py:41 1720s May 02 14:20:29 Then postgres-1 has a physical replication slot named test_physical after 10 seconds # features/steps/slots.py:82 1720s May 02 14:20:29 And postgres-1 has a physical replication slot named postgres_0 after 10 seconds # features/steps/slots.py:82 1720s May 02 14:20:29 And postgres-1 has a physical replication slot named postgres_3 after 10 seconds # features/steps/slots.py:82 1720s May 02 14:20:29 When I start postgres-0 # features/steps/basic_replication.py:20 1723s May 02 14:20:32 Then postgres-0 role is the replica after 20 seconds # features/steps/basic_replication.py:117 1723s May 02 14:20:32 And physical replication slot named postgres_1 on postgres-0 has no xmin value after 10 seconds # features/steps/slots.py:98 1724s May 02 14:20:33 And postgres-0 has a physical replication slot named postgres_2 after 10 seconds # features/steps/slots.py:82 1724s May 02 14:20:33 And postgres-0 has a physical replication slot named postgres_3 after 10 seconds # features/steps/slots.py:82 1727s May 02 14:20:36 1727s May 02 14:20:36 Feature: priority replication # features/priority_failover.feature:1 1727s May 02 14:20:36 We should check that we can give nodes priority during failover 1727s May 02 14:20:36 Scenario: check failover priority 0 prevents leaderships # features/priority_failover.feature:4 1727s May 02 14:20:36 Given I configure and start postgres-0 with a tag failover_priority 1 # features/steps/cascading_replication.py:7 1732s May 02 14:20:41 And I configure and start postgres-1 with a tag failover_priority 0 # features/steps/cascading_replication.py:7 1737s May 02 14:20:46 Then replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 1738s May 02 14:20:47 When I shut down postgres-0 # features/steps/basic_replication.py:41 1740s May 02 14:20:49 And there is one of ["following a different leader because I am not allowed to promote"] INFO in the postgres-1 patroni log after 5 seconds # features/steps/basic_replication.py:133 1742s May 02 14:20:51 Then postgres-1 role is the secondary after 10 seconds # features/steps/basic_replication.py:117 1742s May 02 14:20:51 When I start postgres-0 # features/steps/basic_replication.py:20 1745s May 02 14:20:54 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1746s May 02 14:20:55 1746s May 02 14:20:55 Scenario: check higher failover priority is respected # features/priority_failover.feature:14 1746s May 02 14:20:55 Given I configure and start postgres-2 with a tag failover_priority 1 # features/steps/cascading_replication.py:7 1751s May 02 14:21:00 And I configure and start postgres-3 with a tag failover_priority 2 # features/steps/cascading_replication.py:7 1757s May 02 14:21:06 Then replication works from postgres-0 to postgres-2 after 20 seconds # features/steps/basic_replication.py:124 1758s May 02 14:21:07 And replication works from postgres-0 to postgres-3 after 20 seconds # features/steps/basic_replication.py:124 1759s May 02 14:21:08 When I shut down postgres-0 # features/steps/basic_replication.py:41 1761s May 02 14:21:10 Then postgres-3 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1761s May 02 14:21:10 And there is one of ["postgres-3 has equally tolerable WAL position and priority 2, while this node has priority 1","Wal position of postgres-3 is ahead of my wal position"] INFO in the postgres-2 patroni log after 5 seconds # features/steps/basic_replication.py:133 1761s May 02 14:21:10 1761s May 02 14:21:10 Scenario: check conflicting configuration handling # features/priority_failover.feature:23 1761s May 02 14:21:10 When I set nofailover tag in postgres-2 config # features/steps/patroni_api.py:133 1761s May 02 14:21:10 And I issue an empty POST request to http://127.0.0.1:8010/reload # features/steps/patroni_api.py:68 1761s May 02 14:21:10 Then I receive a response code 202 # features/steps/patroni_api.py:100 1761s May 02 14:21:10 And there is one of ["Conflicting configuration between nofailover: True and failover_priority: 1. Defaulting to nofailover: True"] WARNING in the postgres-2 patroni log after 5 seconds # features/steps/basic_replication.py:133 1763s May 02 14:21:12 And "members/postgres-2" key in DCS has tags={'failover_priority': '1', 'nofailover': True} after 10 seconds # features/steps/cascading_replication.py:23 1764s May 02 14:21:13 When I issue a POST request to http://127.0.0.1:8010/failover with {"candidate": "postgres-2"} # features/steps/patroni_api.py:73 1764s May 02 14:21:13 Then I receive a response code 412 # features/steps/patroni_api.py:100 1764s May 02 14:21:13 And I receive a response text "failover is not possible: no good candidates have been found" # features/steps/patroni_api.py:100 1764s May 02 14:21:13 When I reset nofailover tag in postgres-1 config # features/steps/patroni_api.py:133 1764s May 02 14:21:13 And I issue an empty POST request to http://127.0.0.1:8009/reload # features/steps/patroni_api.py:68 1764s May 02 14:21:13 Then I receive a response code 202 # features/steps/patroni_api.py:100 1764s May 02 14:21:13 And there is one of ["Conflicting configuration between nofailover: False and failover_priority: 0. Defaulting to nofailover: False"] WARNING in the postgres-1 patroni log after 5 seconds # features/steps/basic_replication.py:133 1766s May 02 14:21:15 And "members/postgres-1" key in DCS has tags={'failover_priority': '0', 'nofailover': False} after 10 seconds # features/steps/cascading_replication.py:23 1767s May 02 14:21:16 And I issue a POST request to http://127.0.0.1:8009/failover with {"candidate": "postgres-1"} # features/steps/patroni_api.py:73 1771s May 02 14:21:20 Then I receive a response code 200 # features/steps/patroni_api.py:100 1771s May 02 14:21:20 And postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1775s May 02 14:21:24 1775s May 02 14:21:24 Feature: quorum commit # features/quorum_commit.feature:1 1775s May 02 14:21:24 Check basic workfrlows when quorum commit is enabled 1775s May 02 14:21:24 Scenario: check enable quorum commit and that the only leader promotes after restart # features/quorum_commit.feature:4 1775s May 02 14:21:24 Given I start postgres-0 # features/steps/basic_replication.py:20 1780s May 02 14:21:29 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1780s May 02 14:21:29 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 1780s May 02 14:21:29 When I issue a PATCH request to http://127.0.0.1:8008/config with {"ttl": 20, "synchronous_mode": "quorum"} # features/steps/patroni_api.py:73 1780s May 02 14:21:29 Then I receive a response code 200 # features/steps/patroni_api.py:100 1780s May 02 14:21:29 And sync key in DCS has leader=postgres-0 after 20 seconds # features/steps/quorum_commit.py:8 1780s May 02 14:21:29 And sync key in DCS has quorum=0 after 2 seconds # features/steps/quorum_commit.py:8 1780s May 02 14:21:29 And synchronous_standby_names on postgres-0 is set to '_empty_str_' after 2 seconds # features/steps/quorum_commit.py:39 1780s May 02 14:21:29 When I shut down postgres-0 # features/steps/basic_replication.py:41 1782s May 02 14:21:31 And sync key in DCS has leader=postgres-0 after 2 seconds # features/steps/quorum_commit.py:8 1782s May 02 14:21:31 When I start postgres-0 # features/steps/basic_replication.py:20 1785s May 02 14:21:34 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1786s May 02 14:21:35 When I issue a PATCH request to http://127.0.0.1:8008/config with {"synchronous_mode_strict": true} # features/steps/patroni_api.py:73 1787s May 02 14:21:36 Then synchronous_standby_names on postgres-0 is set to 'ANY 1 (*)' after 10 seconds # features/steps/quorum_commit.py:39 1788s May 02 14:21:37 1788s May 02 14:21:37 Scenario: check failover with one quorum standby # features/quorum_commit.feature:20 1788s May 02 14:21:37 Given I start postgres-1 # features/steps/basic_replication.py:20 1792s May 02 14:21:41 Then sync key in DCS has sync_standby=postgres-1 after 10 seconds # features/steps/quorum_commit.py:8 1794s May 02 14:21:43 And synchronous_standby_names on postgres-0 is set to 'ANY 1 ("postgres-1")' after 2 seconds # features/steps/quorum_commit.py:39 1794s May 02 14:21:43 When I shut down postgres-0 # features/steps/basic_replication.py:41 1796s May 02 14:21:45 Then postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1797s May 02 14:21:46 And sync key in DCS has quorum=0 after 10 seconds # features/steps/quorum_commit.py:8 1797s May 02 14:21:46 Then synchronous_standby_names on postgres-1 is set to 'ANY 1 (*)' after 10 seconds # features/steps/quorum_commit.py:39 1800s May 02 14:21:49 When I start postgres-0 # features/steps/basic_replication.py:20 1803s May 02 14:21:52 Then sync key in DCS has leader=postgres-1 after 10 seconds # features/steps/quorum_commit.py:8 1803s May 02 14:21:52 Then sync key in DCS has sync_standby=postgres-0 after 10 seconds # features/steps/quorum_commit.py:8 1805s May 02 14:21:54 And synchronous_standby_names on postgres-1 is set to 'ANY 1 ("postgres-0")' after 2 seconds # features/steps/quorum_commit.py:39 1805s May 02 14:21:54 1805s May 02 14:21:54 Scenario: check behavior with three nodes and different replication factor # features/quorum_commit.feature:33 1805s May 02 14:21:54 Given I start postgres-2 # features/steps/basic_replication.py:20 1810s May 02 14:21:59 Then sync key in DCS has sync_standby=postgres-0,postgres-2 after 10 seconds # features/steps/quorum_commit.py:8 1811s May 02 14:22:00 And sync key in DCS has quorum=1 after 2 seconds # features/steps/quorum_commit.py:8 1811s May 02 14:22:00 And synchronous_standby_names on postgres-1 is set to 'ANY 1 ("postgres-0","postgres-2")' after 2 seconds # features/steps/quorum_commit.py:39 1811s May 02 14:22:00 When I issue a PATCH request to http://127.0.0.1:8009/config with {"synchronous_node_count": 2} # features/steps/patroni_api.py:73 1811s May 02 14:22:00 Then sync key in DCS has quorum=0 after 10 seconds # features/steps/quorum_commit.py:8 1812s May 02 14:22:01 And synchronous_standby_names on postgres-1 is set to 'ANY 2 ("postgres-0","postgres-2")' after 2 seconds # features/steps/quorum_commit.py:39 1812s May 02 14:22:01 1812s May 02 14:22:01 Scenario: switch from quorum replication to good old multisync and back # features/quorum_commit.feature:42 1812s May 02 14:22:01 Given I issue a PATCH request to http://127.0.0.1:8009/config with {"synchronous_mode": true, "synchronous_node_count": 1} # features/steps/patroni_api.py:73 1812s May 02 14:22:01 And I shut down postgres-0 # features/steps/basic_replication.py:41 1813s May 02 14:22:02 Then synchronous_standby_names on postgres-1 is set to '"postgres-2"' after 10 seconds # features/steps/quorum_commit.py:39 1815s May 02 14:22:04 And sync key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/quorum_commit.py:8 1817s May 02 14:22:06 Then sync key in DCS has quorum=0 after 2 seconds # features/steps/quorum_commit.py:8 1817s May 02 14:22:06 When I issue a PATCH request to http://127.0.0.1:8009/config with {"synchronous_mode": "quorum"} # features/steps/patroni_api.py:73 1817s May 02 14:22:06 And I start postgres-0 # features/steps/basic_replication.py:20 1820s May 02 14:22:09 Then synchronous_standby_names on postgres-1 is set to 'ANY 1 ("postgres-0","postgres-2")' after 10 seconds # features/steps/quorum_commit.py:39 1820s May 02 14:22:09 And sync key in DCS has sync_standby=postgres-0,postgres-2 after 10 seconds # features/steps/quorum_commit.py:8 1820s May 02 14:22:09 Then sync key in DCS has quorum=1 after 2 seconds # features/steps/quorum_commit.py:8 1820s May 02 14:22:09 1820s May 02 14:22:09 Scenario: REST API and patronictl # features/quorum_commit.feature:54 1820s May 02 14:22:09 Given I run patronictl.py list batman # features/steps/patroni_api.py:88 1821s May 02 14:22:10 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1821s May 02 14:22:10 And I receive a response output "Quorum Standby" # features/steps/patroni_api.py:100 1821s May 02 14:22:10 And Status code on GET http://127.0.0.1:8008/quorum is 200 after 3 seconds # features/steps/patroni_api.py:144 1821s May 02 14:22:10 And Status code on GET http://127.0.0.1:8010/quorum is 200 after 3 seconds # features/steps/patroni_api.py:144 1821s May 02 14:22:10 1821s May 02 14:22:10 Scenario: nosync node is removed from voters and synchronous_standby_names # features/quorum_commit.feature:61 1821s May 02 14:22:10 Given I add tag nosync true to postgres-2 config # features/steps/patroni_api.py:139 1821s May 02 14:22:10 When I issue an empty POST request to http://127.0.0.1:8010/reload # features/steps/patroni_api.py:68 1821s May 02 14:22:10 Then I receive a response code 202 # features/steps/patroni_api.py:100 1821s May 02 14:22:10 And sync key in DCS has quorum=0 after 10 seconds # features/steps/quorum_commit.py:8 1823s May 02 14:22:12 And sync key in DCS has sync_standby=postgres-0 after 10 seconds # features/steps/quorum_commit.py:8 1823s May 02 14:22:12 And synchronous_standby_names on postgres-1 is set to 'ANY 1 ("postgres-0")' after 2 seconds # features/steps/quorum_commit.py:39 1823s May 02 14:22:12 And Status code on GET http://127.0.0.1:8010/quorum is 503 after 10 seconds # features/steps/patroni_api.py:144 1831s May 02 14:22:20 1831s May 02 14:22:20 Feature: recovery # features/recovery.feature:1 1831s May 02 14:22:20 We want to check that crashed postgres is started back 1831s May 02 14:22:20 Scenario: check that timeline is not incremented when primary is started after crash # features/recovery.feature:4 1831s May 02 14:22:20 Given I start postgres-0 # features/steps/basic_replication.py:20 1835s May 02 14:22:24 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1836s May 02 14:22:25 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 1836s May 02 14:22:25 When I start postgres-1 # features/steps/basic_replication.py:20 1841s May 02 14:22:30 And I add the table foo to postgres-0 # features/steps/basic_replication.py:66 1841s May 02 14:22:30 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 1842s May 02 14:22:31 When I kill postmaster on postgres-0 # features/steps/basic_replication.py:56 1842s May 02 14:22:31 waiting for server to shut down.... done 1842s May 02 14:22:31 server stopped 1842s May 02 14:22:31 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1845s May 02 14:22:34 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:63 1845s May 02 14:22:34 Then I receive a response code 200 # features/steps/patroni_api.py:100 1845s May 02 14:22:34 And I receive a response role primary # features/steps/patroni_api.py:100 1845s May 02 14:22:34 And I receive a response timeline 1 # features/steps/patroni_api.py:100 1845s May 02 14:22:34 And "members/postgres-0" key in DCS has state=running after 12 seconds # features/steps/cascading_replication.py:23 1845s May 02 14:22:34 And replication works from postgres-0 to postgres-1 after 15 seconds # features/steps/basic_replication.py:124 1848s May 02 14:22:37 1848s May 02 14:22:37 Scenario: check immediate failover when master_start_timeout=0 # features/recovery.feature:20 1848s May 02 14:22:37 Given I issue a PATCH request to http://127.0.0.1:8008/config with {"master_start_timeout": 0} # features/steps/patroni_api.py:73 1848s May 02 14:22:37 Then I receive a response code 200 # features/steps/patroni_api.py:100 1848s May 02 14:22:37 And Response on GET http://127.0.0.1:8008/config contains master_start_timeout after 10 seconds # features/steps/patroni_api.py:158 1848s May 02 14:22:37 When I kill postmaster on postgres-0 # features/steps/basic_replication.py:56 1848s May 02 14:22:37 waiting for server to shut down.... done 1848s May 02 14:22:37 server stopped 1848s May 02 14:22:37 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 1850s May 02 14:22:39 And postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1851s May 02 14:22:40 1851s May 02 14:22:40 Scenario: check crashed primary demotes after failed attempt to start # features/recovery.feature:28 1851s May 02 14:22:40 Given I issue a PATCH request to http://127.0.0.1:8009/config with {"master_start_timeout": null} # features/steps/patroni_api.py:73 1851s May 02 14:22:40 Then I receive a response code 200 # features/steps/patroni_api.py:100 1851s May 02 14:22:40 And postgres-0 role is the replica after 10 seconds # features/steps/basic_replication.py:117 1853s May 02 14:22:42 When I ensure postgres-1 fails to start after a failure # features/steps/recovery.py:6 1853s May 02 14:22:42 When I kill postmaster on postgres-1 # features/steps/basic_replication.py:56 1853s May 02 14:22:42 waiting for server to shut down.... done 1853s May 02 14:22:42 server stopped 1853s May 02 14:22:42 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1856s May 02 14:22:45 And there is a postgres-1_cb.log with "on_role_change demoted batman" in postgres-1 data directory # features/steps/cascading_replication.py:12 1860s May 02 14:22:49 1860s May 02 14:22:49 Feature: standby cluster # features/standby_cluster.feature:1 1860s May 02 14:22:49 1860s May 02 14:22:49 Scenario: prepare the cluster with logical slots # features/standby_cluster.feature:2 1860s May 02 14:22:49 Given I start postgres-1 # features/steps/basic_replication.py:20 1864s May 02 14:22:53 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 1865s May 02 14:22:54 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 1865s May 02 14:22:54 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:73 1865s May 02 14:22:54 Then I receive a response code 200 # features/steps/patroni_api.py:100 1865s May 02 14:22:54 And Response on GET http://127.0.0.1:8009/config contains slots after 10 seconds # features/steps/patroni_api.py:158 1865s May 02 14:22:54 And I sleep for 3 seconds # features/steps/patroni_api.py:41 1868s May 02 14:22:57 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:73 1868s May 02 14:22:57 Then I receive a response code 200 # features/steps/patroni_api.py:100 1868s May 02 14:22:57 And I do a backup of postgres-1 # features/steps/custom_bootstrap.py:25 1870s May 02 14:22:59 When I start postgres-0 # features/steps/basic_replication.py:20 1875s May 02 14:23:04 Then "members/postgres-0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1875s May 02 14:23:04 And replication works from postgres-1 to postgres-0 after 15 seconds # features/steps/basic_replication.py:124 1876s May 02 14:23:05 When I issue a GET request to http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:63 1876s May 02 14:23:05 Then I receive a response code 200 # features/steps/patroni_api.py:100 1876s May 02 14:23:05 And I receive a response replication_state streaming # features/steps/patroni_api.py:100 1876s May 02 14:23:05 And "members/postgres-0" key in DCS has replication_state=streaming after 10 seconds # features/steps/cascading_replication.py:23 1876s May 02 14:23:05 1876s May 02 14:23:05 @slot-advance 1876s May 02 14:23:05 Scenario: check permanent logical slots are synced to the replica # features/standby_cluster.feature:22 1876s May 02 14:23:05 Given I run patronictl.py restart batman postgres-1 --force # features/steps/patroni_api.py:88 1878s May 02 14:23:07 Then Logical slot test_logical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 1883s May 02 14:23:12 1883s May 02 14:23:12 Scenario: Detach exiting node from the cluster # features/standby_cluster.feature:26 1883s May 02 14:23:12 When I shut down postgres-1 # features/steps/basic_replication.py:41 1885s May 02 14:23:14 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1885s May 02 14:23:14 And "members/postgres-0" key in DCS has role=primary after 5 seconds # features/steps/cascading_replication.py:23 1886s May 02 14:23:15 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:63 1886s May 02 14:23:15 Then I receive a response code 200 # features/steps/patroni_api.py:100 1886s May 02 14:23:15 1886s May 02 14:23:15 Scenario: check replication of a single table in a standby cluster # features/standby_cluster.feature:33 1886s May 02 14:23:15 Given I start postgres-1 in a standby cluster batman1 as a clone of postgres-0 # features/steps/standby_cluster.py:23 1889s May 02 14:23:18 Then postgres-1 is a leader of batman1 after 10 seconds # features/steps/custom_bootstrap.py:16 1889s May 02 14:23:18 When I add the table foo to postgres-0 # features/steps/basic_replication.py:66 1889s May 02 14:23:18 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 1889s May 02 14:23:18 When I issue a GET request to http://127.0.0.1:8009/patroni # features/steps/patroni_api.py:63 1889s May 02 14:23:18 Then I receive a response code 200 # features/steps/patroni_api.py:100 1889s May 02 14:23:18 And I receive a response replication_state streaming # features/steps/patroni_api.py:100 1889s May 02 14:23:18 And I sleep for 3 seconds # features/steps/patroni_api.py:41 1892s May 02 14:23:21 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 1892s May 02 14:23:21 Then I receive a response code 503 # features/steps/patroni_api.py:100 1892s May 02 14:23:21 When I issue a GET request to http://127.0.0.1:8009/standby_leader # features/steps/patroni_api.py:63 1892s May 02 14:23:21 Then I receive a response code 200 # features/steps/patroni_api.py:100 1892s May 02 14:23:21 And I receive a response role standby_leader # features/steps/patroni_api.py:100 1892s May 02 14:23:21 And there is a postgres-1_cb.log with "on_role_change standby_leader batman1" in postgres-1 data directory # features/steps/cascading_replication.py:12 1892s May 02 14:23:21 When I start postgres-2 in a cluster batman1 # features/steps/standby_cluster.py:12 1897s May 02 14:23:26 Then postgres-2 role is the replica after 24 seconds # features/steps/basic_replication.py:117 1897s May 02 14:23:26 And postgres-2 is replicating from postgres-1 after 10 seconds # features/steps/standby_cluster.py:52 1897s May 02 14:23:26 And table foo is present on postgres-2 after 20 seconds # features/steps/basic_replication.py:105 1897s May 02 14:23:26 When I issue a GET request to http://127.0.0.1:8010/patroni # features/steps/patroni_api.py:63 1897s May 02 14:23:26 Then I receive a response code 200 # features/steps/patroni_api.py:100 1897s May 02 14:23:26 And I receive a response replication_state streaming # features/steps/patroni_api.py:100 1897s May 02 14:23:26 And postgres-1 does not have a replication slot named test_logical # features/steps/slots.py:41 1897s May 02 14:23:26 1897s May 02 14:23:26 Scenario: check switchover # features/standby_cluster.feature:57 1897s May 02 14:23:26 Given I run patronictl.py switchover batman1 --force # features/steps/patroni_api.py:88 1901s May 02 14:23:30 Then Status code on GET http://127.0.0.1:8010/standby_leader is 200 after 10 seconds # features/steps/patroni_api.py:144 1901s May 02 14:23:30 And postgres-1 is replicating from postgres-2 after 32 seconds # features/steps/standby_cluster.py:52 1903s May 02 14:23:32 And there is a postgres-2_cb.log with "on_start replica batman1\non_role_change standby_leader batman1" in postgres-2 data directory # features/steps/cascading_replication.py:12 1903s May 02 14:23:32 1903s May 02 14:23:32 Scenario: check failover # features/standby_cluster.feature:63 1903s May 02 14:23:32 When I kill postgres-2 # features/steps/basic_replication.py:46 1904s May 02 14:23:33 And I kill postmaster on postgres-2 # features/steps/basic_replication.py:56 1904s May 02 14:23:33 waiting for server to shut down.... done 1904s May 02 14:23:33 server stopped 1904s May 02 14:23:33 Then postgres-1 is replicating from postgres-0 after 32 seconds # features/steps/standby_cluster.py:52 1923s May 02 14:23:52 And Status code on GET http://127.0.0.1:8009/standby_leader is 200 after 10 seconds # features/steps/patroni_api.py:144 1923s May 02 14:23:52 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 1923s May 02 14:23:52 Then I receive a response code 503 # features/steps/patroni_api.py:100 1923s May 02 14:23:52 And I receive a response role standby_leader # features/steps/patroni_api.py:100 1923s May 02 14:23:52 And replication works from postgres-0 to postgres-1 after 15 seconds # features/steps/basic_replication.py:124 1924s May 02 14:23:53 And there is a postgres-1_cb.log with "on_role_change replica batman1\non_role_change standby_leader batman1" in postgres-1 data directory # features/steps/cascading_replication.py:12 1928s May 02 14:23:57 1928s May 02 14:23:57 Feature: watchdog # features/watchdog.feature:1 1928s May 02 14:23:57 Verify that watchdog gets pinged and triggered under appropriate circumstances. 1928s May 02 14:23:57 Scenario: watchdog is opened and pinged # features/watchdog.feature:4 1928s May 02 14:23:57 Given I start postgres-0 with watchdog # features/steps/watchdog.py:17 1933s May 02 14:24:02 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1933s May 02 14:24:02 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1933s May 02 14:24:02 And postgres-0 watchdog has been pinged after 10 seconds # features/steps/watchdog.py:22 1934s May 02 14:24:03 And postgres-0 watchdog has a 15 second timeout # features/steps/watchdog.py:35 1934s May 02 14:24:03 1934s May 02 14:24:03 Scenario: watchdog is reconfigured after global ttl changed # features/watchdog.feature:11 1934s May 02 14:24:03 Given I run patronictl.py edit-config batman -s ttl=30 --force # features/steps/patroni_api.py:88 1936s May 02 14:24:05 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1936s May 02 14:24:05 And I receive a response output "+ttl: 30" # features/steps/patroni_api.py:100 1936s May 02 14:24:05 When I sleep for 4 seconds # features/steps/patroni_api.py:41 1940s May 02 14:24:09 Then postgres-0 watchdog has a 25 second timeout # features/steps/watchdog.py:35 1940s May 02 14:24:09 1940s May 02 14:24:09 Scenario: watchdog is disabled during pause # features/watchdog.feature:18 1940s May 02 14:24:09 Given I run patronictl.py pause batman # features/steps/patroni_api.py:88 1941s May 02 14:24:10 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1941s May 02 14:24:10 When I sleep for 2 seconds # features/steps/patroni_api.py:41 1943s May 02 14:24:12 Then postgres-0 watchdog has been closed # features/steps/watchdog.py:30 1943s May 02 14:24:12 1943s May 02 14:24:12 Scenario: watchdog is opened and pinged after resume # features/watchdog.feature:24 1943s May 02 14:24:12 Given I reset postgres-0 watchdog state # features/steps/watchdog.py:40 1943s May 02 14:24:12 And I run patronictl.py resume batman # features/steps/patroni_api.py:88 1944s May 02 14:24:13 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1944s May 02 14:24:13 And postgres-0 watchdog has been pinged after 10 seconds # features/steps/watchdog.py:22 1945s May 02 14:24:14 1945s May 02 14:24:14 Scenario: watchdog is disabled when shutting down # features/watchdog.feature:30 1945s May 02 14:24:14 Given I shut down postgres-0 # features/steps/basic_replication.py:41 1947s May 02 14:24:16 Then postgres-0 watchdog has been closed # features/steps/watchdog.py:30 1947s May 02 14:24:16 1947s May 02 14:24:16 Scenario: watchdog is triggered if patroni stops responding # features/watchdog.feature:34 1947s May 02 14:24:16 Given I reset postgres-0 watchdog state # features/steps/watchdog.py:40 1947s May 02 14:24:16 And I start postgres-0 with watchdog # features/steps/watchdog.py:17 1950s May 02 14:24:19 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1951s May 02 14:24:20 When postgres-0 hangs for 30 seconds # features/steps/watchdog.py:53 1951s May 02 14:24:20 Then postgres-0 watchdog is triggered after 30 seconds # features/steps/watchdog.py:45 1978s May 02 14:24:47 1979s 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'))") 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.4098.XwVALKVx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.4142.XEACjTRx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.4180.XPgoKAex 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.4236.XKjpWbux 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.4283.XWNLxzhx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.4356.XYFDtRvx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.4406.XkaMhYOx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.4409.XwmaPocx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.4494.XAqkzdmx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.4599.XtSzirZx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.4607.XhNHTotx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.4650.XKokXAYx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.4697.XcVLKrdx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.4809.XsRhbxrx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.4854.XYoUOrlx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.4910.XYoTGZsx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.5002.XCOuystx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.5329.XFjfjOtx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.5400.XthhxJDx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.5457.XMlLWYGx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.5713.XRSvaHJx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.5765.XpPrDIzx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.5827.XpJjBDAx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.5914.XtnwsObx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.6011.XwOACZhx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.6054.XThoNOUx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.6118.XOjszRGx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.6152.XIWKsCQx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.6264.XBWdyUJx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.6313.XASWzuDx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.6328.XCroPVKx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.6367.XSejtBDx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.6414.XqSOGVLx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.6419.XnZpKkXx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.6457.XNhMMrhx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.6501.XJGGJkpx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.6668.XILRaxhx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.6670.XbdzFXhx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.6675.XAZDaicx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.6808.XioGUaxx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.6854.XsHJlbEx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.6902.XJTwNzjx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.6951.XoSKtDex 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.6988.XdxoSZRx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.7144.XJnHXEUx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.7209.XOwCZsUx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.7253.XmKbqBLx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.7325.XoFGYIix 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.7409.XcNDfNKx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.7465.XxZxNLAx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.7791.XvzOtbnx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.7842.XFqEiMkx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.7906.XEGMWCkx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.7995.XdlAfUgx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.8044.XLQusDFx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.8101.XmldoNEx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.8145.XygxERmx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.8171.XLrRtnfx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.8215.XNSBRomx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.8444.XPxdeXkx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.8507.XAJEzGox 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.8560.XpBdASwx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.8662.XZIXkVlx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.8785.XpzLgGEx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.8910.XjWgQvPx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.8954.XOoWCwLx 1980s May 02 14:24:49 Skipping duplicate data .coverage.autopkgtest-lxd-pqmwqx.8956.XBFKGJRx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.8959.XobPfFFx 1980s May 02 14:24:49 Combined data file .coverage.autopkgtest-lxd-pqmwqx.8970.XLwtVZMx 1984s May 02 14:24:53 Name Stmts Miss Cover 1984s May 02 14:24:53 ------------------------------------------------------------------------------------------------------------- 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/OpenSSL/SSL.py 1159 642 45% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/OpenSSL/__init__.py 3 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/OpenSSL/_util.py 44 15 66% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/OpenSSL/crypto.py 869 663 24% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/OpenSSL/version.py 9 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/_distutils_hack/__init__.py 101 96 5% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/bcrypt/__init__.py 3 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/__about__.py 5 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/__init__.py 3 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/exceptions.py 26 5 81% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/hazmat/__init__.py 2 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/hazmat/_oid.py 135 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/__init__.py 0 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/__init__.py 0 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/_conditional.py 38 17 55% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/binding.py 51 4 92% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/hazmat/decrepit/__init__.py 1 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/hazmat/decrepit/ciphers/__init__.py 1 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/hazmat/decrepit/ciphers/algorithms.py 68 18 74% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/__init__.py 0 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_asymmetric.py 6 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_cipheralgorithm.py 23 4 83% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_serialization.py 79 35 56% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/__init__.py 0 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/dh.py 47 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/dsa.py 55 5 91% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ec.py 172 22 87% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ed448.py 45 12 73% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ed25519.py 43 12 72% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/padding.py 55 23 58% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/rsa.py 93 40 57% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/types.py 19 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/utils.py 14 5 64% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/x448.py 43 12 72% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/x25519.py 41 12 71% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/__init__.py 4 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/algorithms.py 72 15 79% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/base.py 54 12 78% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/modes.py 140 59 58% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/constant_time.py 6 3 50% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/hashes.py 127 20 84% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/__init__.py 5 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/base.py 7 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/ssh.py 775 614 21% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/utils.py 76 28 63% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/x509/__init__.py 70 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/x509/base.py 488 227 53% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/x509/certificate_transparency.py 42 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/x509/extensions.py 1024 552 46% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/x509/general_name.py 166 94 43% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/x509/name.py 236 144 39% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/x509/oid.py 3 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/cryptography/x509/verification.py 12 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dateutil/__init__.py 13 4 69% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dateutil/_common.py 25 15 40% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dateutil/_version.py 13 3 77% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dateutil/parser/__init__.py 33 4 88% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dateutil/parser/_parser.py 810 436 46% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dateutil/parser/isoparser.py 183 150 18% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dateutil/relativedelta.py 240 206 14% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dateutil/tz/__init__.py 4 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dateutil/tz/_common.py 151 114 25% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dateutil/tz/_factories.py 49 21 57% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dateutil/tz/tz.py 794 626 21% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dateutil/tz/win.py 152 149 2% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/__init__.py 2 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/_asyncbackend.py 14 6 57% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/_ddr.py 105 86 18% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/_features.py 46 8 83% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/_immutable_ctx.py 40 5 88% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/asyncbackend.py 44 32 27% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/asyncquery.py 322 283 12% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/edns.py 307 185 40% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/entropy.py 80 49 39% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/enum.py 72 46 36% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/exception.py 59 33 44% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/flags.py 40 14 65% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/grange.py 33 30 9% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/immutable.py 41 30 27% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/inet.py 79 65 18% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/ipv4.py 26 20 23% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/ipv6.py 114 100 12% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/message.py 829 676 18% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/name.py 617 425 31% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/nameserver.py 102 55 46% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/node.py 117 71 39% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/opcode.py 30 7 77% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/query.py 562 477 15% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/quic/__init__.py 28 23 18% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/rcode.py 68 13 81% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/rdata.py 386 277 28% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/rdataclass.py 43 9 79% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/rdataset.py 192 133 31% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/rdatatype.py 215 23 89% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/OPT.py 34 19 44% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/SOA.py 41 26 37% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/TSIG.py 58 42 28% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/ZONEMD.py 43 27 37% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/__init__.py 1 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/rdtypes/__init__.py 1 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/rdtypes/svcbbase.py 415 268 35% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/rdtypes/util.py 191 154 19% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/renderer.py 151 118 22% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/resolver.py 873 696 20% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/reversename.py 32 24 25% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/rrset.py 77 56 27% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/serial.py 92 79 14% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/set.py 148 107 28% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/tokenizer.py 334 279 16% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/transaction.py 269 201 25% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/tsig.py 176 122 31% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/ttl.py 44 38 14% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/version.py 6 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/wire.py 64 42 34% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/xfr.py 148 126 15% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/zone.py 507 383 24% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/zonefile.py 427 379 11% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/dns/zonetypes.py 14 2 86% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/etcd/__init__.py 125 24 81% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/etcd/client.py 380 192 49% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/etcd/lock.py 125 103 18% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/idna/__init__.py 4 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/idna/core.py 292 257 12% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/idna/idnadata.py 4 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/idna/intranges.py 30 24 20% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/idna/package_data.py 1 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/__init__.py 13 2 85% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/__main__.py 201 64 68% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/api.py 788 284 64% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/async_executor.py 96 15 84% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/collections.py 56 5 91% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/config.py 357 84 76% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/config_generator.py 212 159 25% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/daemon.py 76 3 96% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/dcs/__init__.py 710 93 87% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/dcs/etcd.py 603 119 80% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/dynamic_loader.py 35 7 80% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/exceptions.py 16 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/file_perm.py 47 10 79% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/global_config.py 87 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/ha.py 1359 310 77% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/log.py 235 79 66% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/postgresql/__init__.py 825 160 81% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/postgresql/available_parameters/__init__.py 24 3 88% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/postgresql/bootstrap.py 254 60 76% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/postgresql/callback_executor.py 55 8 85% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/postgresql/cancellable.py 104 41 61% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/postgresql/config.py 839 215 74% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/postgresql/connection.py 75 1 99% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/postgresql/misc.py 43 8 81% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/postgresql/mpp/__init__.py 89 11 88% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/postgresql/postmaster.py 170 83 51% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/postgresql/rewind.py 416 128 69% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/postgresql/slots.py 349 35 90% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/postgresql/sync.py 154 10 94% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/postgresql/validator.py 157 24 85% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/psycopg.py 46 19 59% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/quorum.py 182 48 74% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/request.py 58 6 90% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/tags.py 38 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/utils.py 371 118 68% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/validator.py 309 215 30% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/version.py 1 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/watchdog/__init__.py 2 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/watchdog/base.py 203 42 79% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/patroni/watchdog/linux.py 135 35 74% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/psutil/__init__.py 950 629 34% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/psutil/_common.py 422 212 50% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/psutil/_compat.py 301 263 13% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/psutil/_pslinux.py 1250 924 26% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/psutil/_psposix.py 95 38 60% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/psycopg2/__init__.py 19 3 84% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/psycopg2/_json.py 64 27 58% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/psycopg2/_range.py 269 172 36% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/psycopg2/errors.py 3 2 33% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/psycopg2/extensions.py 91 25 73% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/urllib3/__init__.py 49 15 69% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/urllib3/_base_connection.py 63 45 29% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/urllib3/_collections.py 231 97 58% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/urllib3/_request_methods.py 54 10 81% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/urllib3/_version.py 13 3 77% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/urllib3/connection.py 389 137 65% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/urllib3/connectionpool.py 344 111 68% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/urllib3/contrib/__init__.py 0 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/urllib3/contrib/pyopenssl.py 263 101 62% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/urllib3/exceptions.py 121 39 68% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/urllib3/fields.py 92 73 21% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/urllib3/filepost.py 37 24 35% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/urllib3/http2/__init__.py 28 21 25% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/urllib3/http2/probe.py 49 31 37% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/urllib3/poolmanager.py 233 85 64% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/urllib3/response.py 634 368 42% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/urllib3/util/__init__.py 10 0 100% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/urllib3/util/connection.py 66 42 36% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/urllib3/util/proxy.py 13 6 54% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/urllib3/util/request.py 104 49 53% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/urllib3/util/response.py 32 17 47% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/urllib3/util/retry.py 174 48 72% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/urllib3/util/ssl_.py 172 74 57% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/urllib3/util/ssl_match_hostname.py 66 54 18% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/urllib3/util/ssltransport.py 152 106 30% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/urllib3/util/timeout.py 71 14 80% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/urllib3/util/url.py 203 69 66% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/urllib3/util/util.py 26 10 62% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/urllib3/util/wait.py 49 18 63% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/yaml/__init__.py 165 109 34% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/yaml/composer.py 92 17 82% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/yaml/constructor.py 479 276 42% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/yaml/cyaml.py 46 24 48% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/yaml/dumper.py 23 12 48% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/yaml/emitter.py 838 769 8% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/yaml/error.py 58 42 28% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/yaml/events.py 61 6 90% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/yaml/loader.py 47 24 49% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/yaml/nodes.py 29 7 76% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/yaml/parser.py 352 198 44% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/yaml/reader.py 122 34 72% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/yaml/representer.py 248 176 29% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/yaml/resolver.py 135 76 44% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/yaml/scanner.py 758 437 42% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/yaml/serializer.py 85 70 18% 1984s May 02 14:24:53 /usr/lib/python3/dist-packages/yaml/tokens.py 76 17 78% 1984s May 02 14:24:53 patroni/__init__.py 13 2 85% 1984s May 02 14:24:53 patroni/__main__.py 201 201 0% 1984s May 02 14:24:53 patroni/api.py 788 788 0% 1984s May 02 14:24:53 patroni/async_executor.py 96 69 28% 1984s May 02 14:24:53 patroni/collections.py 56 15 73% 1984s May 02 14:24:53 patroni/config.py 357 186 48% 1984s May 02 14:24:53 patroni/config_generator.py 212 212 0% 1984s May 02 14:24:53 patroni/ctl.py 936 395 58% 1984s May 02 14:24:53 patroni/daemon.py 76 76 0% 1984s May 02 14:24:53 patroni/dcs/__init__.py 710 318 55% 1984s May 02 14:24:53 patroni/dcs/consul.py 482 482 0% 1984s May 02 14:24:53 patroni/dcs/etcd3.py 679 679 0% 1984s May 02 14:24:53 patroni/dcs/etcd.py 603 227 62% 1984s May 02 14:24:53 patroni/dcs/exhibitor.py 62 62 0% 1984s May 02 14:24:53 patroni/dcs/kubernetes.py 943 943 0% 1984s May 02 14:24:53 patroni/dcs/raft.py 319 319 0% 1984s May 02 14:24:53 patroni/dcs/zookeeper.py 289 289 0% 1984s May 02 14:24:53 patroni/dynamic_loader.py 35 7 80% 1984s May 02 14:24:53 patroni/exceptions.py 16 1 94% 1984s May 02 14:24:53 patroni/file_perm.py 47 17 64% 1984s May 02 14:24:53 patroni/global_config.py 87 19 78% 1984s May 02 14:24:53 patroni/ha.py 1359 1359 0% 1984s May 02 14:24:53 patroni/log.py 235 183 22% 1984s May 02 14:24:53 patroni/postgresql/__init__.py 825 653 21% 1984s May 02 14:24:53 patroni/postgresql/available_parameters/__init__.py 24 6 75% 1984s May 02 14:24:53 patroni/postgresql/bootstrap.py 254 224 12% 1984s May 02 14:24:53 patroni/postgresql/callback_executor.py 55 34 38% 1984s May 02 14:24:53 patroni/postgresql/cancellable.py 104 84 19% 1984s May 02 14:24:53 patroni/postgresql/config.py 839 719 14% 1984s May 02 14:24:53 patroni/postgresql/connection.py 75 50 33% 1984s May 02 14:24:53 patroni/postgresql/misc.py 43 30 30% 1984s May 02 14:24:53 patroni/postgresql/mpp/__init__.py 89 21 76% 1984s May 02 14:24:53 patroni/postgresql/mpp/citus.py 366 366 0% 1984s May 02 14:24:53 patroni/postgresql/postmaster.py 170 139 18% 1984s May 02 14:24:53 patroni/postgresql/rewind.py 416 416 0% 1984s May 02 14:24:53 patroni/postgresql/slots.py 349 300 14% 1984s May 02 14:24:53 patroni/postgresql/sync.py 154 114 26% 1984s May 02 14:24:53 patroni/postgresql/validator.py 157 52 67% 1984s May 02 14:24:53 patroni/psycopg.py 46 32 30% 1984s May 02 14:24:53 patroni/quorum.py 182 182 0% 1984s May 02 14:24:53 patroni/raft_controller.py 22 22 0% 1984s May 02 14:24:53 patroni/request.py 58 6 90% 1984s May 02 14:24:53 patroni/scripts/__init__.py 0 0 100% 1984s May 02 14:24:53 patroni/scripts/aws.py 59 59 0% 1984s May 02 14:24:53 patroni/scripts/barman/__init__.py 0 0 100% 1984s May 02 14:24:53 patroni/scripts/barman/cli.py 50 50 0% 1984s May 02 14:24:53 patroni/scripts/barman/config_switch.py 50 50 0% 1984s May 02 14:24:53 patroni/scripts/barman/recover.py 36 36 0% 1984s May 02 14:24:53 patroni/scripts/barman/utils.py 93 93 0% 1984s May 02 14:24:53 patroni/scripts/wale_restore.py 207 207 0% 1984s May 02 14:24:53 patroni/tags.py 38 11 71% 1984s May 02 14:24:53 patroni/utils.py 371 213 43% 1984s May 02 14:24:53 patroni/validator.py 309 222 28% 1984s May 02 14:24:53 patroni/version.py 1 0 100% 1984s May 02 14:24:53 patroni/watchdog/__init__.py 2 2 0% 1984s May 02 14:24:53 patroni/watchdog/base.py 203 203 0% 1984s May 02 14:24:53 patroni/watchdog/linux.py 135 135 0% 1984s May 02 14:24:53 ------------------------------------------------------------------------------------------------------------- 1984s May 02 14:24:53 TOTAL 53736 32447 40% 1984s May 02 14:24:53 13 features passed, 0 failed, 1 skipped 1984s May 02 14:24:53 64 scenarios passed, 0 failed, 5 skipped 1984s May 02 14:24:53 599 steps passed, 0 failed, 68 skipped, 0 undefined 1984s May 02 14:24:53 Took 10m8.552s 1985s + echo '### End 17 acceptance-etcd ###' 1985s + rm -f '/tmp/pgpass?' 1985s ### End 17 acceptance-etcd ### 1985s ++ id -u 1985s + '[' 0 -eq 0 ']' 1985s + '[' -x /etc/init.d/zookeeper ']' 1985s autopkgtest [14:24:54]: test acceptance-etcd: -----------------------] 1989s acceptance-etcd PASS 1989s autopkgtest [14:24:58]: test acceptance-etcd: - - - - - - - - - - results - - - - - - - - - - 1992s autopkgtest [14:25:01]: test acceptance-zookeeper: preparing testbed 2015s autopkgtest [14:25:24]: testbed dpkg architecture: armhf 2017s autopkgtest [14:25:26]: testbed apt version: 3.0.0 2020s autopkgtest [14:25:29]: @@@@@@@@@@@@@@@@@@@@ test bed setup 2023s autopkgtest [14:25:32]: testbed release detected to be: questing 2030s autopkgtest [14:25:39]: updating testbed package index (apt update) 2032s Get:1 http://ftpmaster.internal/ubuntu questing-proposed InRelease [110 kB] 2032s Get:2 http://ftpmaster.internal/ubuntu questing InRelease [110 kB] 2032s Get:3 http://ftpmaster.internal/ubuntu questing-updates InRelease [110 kB] 2032s Get:4 http://ftpmaster.internal/ubuntu questing-security InRelease [110 kB] 2032s Get:5 http://ftpmaster.internal/ubuntu questing-proposed/multiverse Sources [44.4 kB] 2032s Get:6 http://ftpmaster.internal/ubuntu questing-proposed/universe Sources [2029 kB] 2033s Get:7 http://ftpmaster.internal/ubuntu questing-proposed/main Sources [171 kB] 2033s Get:8 http://ftpmaster.internal/ubuntu questing-proposed/main armhf Packages [197 kB] 2033s Get:9 http://ftpmaster.internal/ubuntu questing-proposed/universe armhf Packages [1391 kB] 2033s Get:10 http://ftpmaster.internal/ubuntu questing-proposed/multiverse armhf Packages [13.7 kB] 2033s Get:11 http://ftpmaster.internal/ubuntu questing/multiverse Sources [299 kB] 2033s Get:12 http://ftpmaster.internal/ubuntu questing/universe Sources [21.1 MB] 2034s Get:13 http://ftpmaster.internal/ubuntu questing/main Sources [1385 kB] 2034s Get:14 http://ftpmaster.internal/ubuntu questing/main armhf Packages [1358 kB] 2034s Get:15 http://ftpmaster.internal/ubuntu questing/universe armhf Packages [15.3 MB] 2035s Get:16 http://ftpmaster.internal/ubuntu questing/multiverse armhf Packages [173 kB] 2038s Fetched 43.9 MB in 6s (7044 kB/s) 2039s Reading package lists... 2045s autopkgtest [14:25:54]: upgrading testbed (apt dist-upgrade and autopurge) 2047s Reading package lists... 2047s Building dependency tree... 2047s Reading state information... 2048s Calculating upgrade...Starting pkgProblemResolver with broken count: 0 2048s Starting 2 pkgProblemResolver with broken count: 0 2048s Done 2049s Entering ResolveByKeep 2049s 2049s Calculating upgrade... 2050s The following packages will be upgraded: 2050s base-files distro-info-data dpkg dpkg-dev htop libdpkg-perl libnpth0t64 2050s motd-news-config nano ubuntu-pro-client ubuntu-pro-client-l10n usb.ids 2050s 12 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 2050s Need to get 3645 kB of archives. 2050s After this operation, 57.3 kB of additional disk space will be used. 2050s Get:1 http://ftpmaster.internal/ubuntu questing/main armhf motd-news-config all 13.7ubuntu1 [5260 B] 2050s Get:2 http://ftpmaster.internal/ubuntu questing/main armhf base-files armhf 13.7ubuntu1 [75.4 kB] 2050s Get:3 http://ftpmaster.internal/ubuntu questing/main armhf dpkg armhf 1.22.18ubuntu3 [1254 kB] 2050s Get:4 http://ftpmaster.internal/ubuntu questing/main armhf libnpth0t64 armhf 1.8-3 [7716 B] 2050s Get:5 http://ftpmaster.internal/ubuntu questing/main armhf distro-info-data all 0.64 [6664 B] 2050s Get:6 http://ftpmaster.internal/ubuntu questing/main armhf ubuntu-pro-client-l10n armhf 35.1ubuntu0 [19.7 kB] 2050s Get:7 http://ftpmaster.internal/ubuntu questing/main armhf ubuntu-pro-client armhf 35.1ubuntu0 [258 kB] 2050s Get:8 http://ftpmaster.internal/ubuntu questing/main armhf nano armhf 8.4-1 [278 kB] 2050s Get:9 http://ftpmaster.internal/ubuntu questing/main armhf usb.ids all 2025.04.01-1 [223 kB] 2050s Get:10 http://ftpmaster.internal/ubuntu questing/main armhf dpkg-dev all 1.22.18ubuntu3 [1089 kB] 2050s Get:11 http://ftpmaster.internal/ubuntu questing/main armhf libdpkg-perl all 1.22.18ubuntu3 [281 kB] 2050s Get:12 http://ftpmaster.internal/ubuntu questing/main armhf htop armhf 3.4.1-4 [147 kB] 2051s Fetched 3645 kB in 1s (4917 kB/s) 2051s (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 ... 63953 files and directories currently installed.) 2051s Preparing to unpack .../motd-news-config_13.7ubuntu1_all.deb ... 2051s Unpacking motd-news-config (13.7ubuntu1) over (13.6ubuntu2) ... 2051s Preparing to unpack .../base-files_13.7ubuntu1_armhf.deb ... 2051s Unpacking base-files (13.7ubuntu1) over (13.6ubuntu2) ... 2051s Setting up base-files (13.7ubuntu1) ... 2051s Installing new version of config file /etc/issue ... 2051s Installing new version of config file /etc/issue.net ... 2051s Installing new version of config file /etc/lsb-release ... 2052s motd-news.service is a disabled or a static unit not running, not starting it. 2052s (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 ... 63953 files and directories currently installed.) 2052s Preparing to unpack .../dpkg_1.22.18ubuntu3_armhf.deb ... 2052s Unpacking dpkg (1.22.18ubuntu3) over (1.22.18ubuntu2) ... 2052s Setting up dpkg (1.22.18ubuntu3) ... 2053s (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 ... 63953 files and directories currently installed.) 2053s Preparing to unpack .../libnpth0t64_1.8-3_armhf.deb ... 2053s Unpacking libnpth0t64:armhf (1.8-3) over (1.8-2) ... 2053s Setting up libnpth0t64:armhf (1.8-3) ... 2053s (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 ... 63953 files and directories currently installed.) 2053s Preparing to unpack .../0-distro-info-data_0.64_all.deb ... 2053s Unpacking distro-info-data (0.64) over (0.63) ... 2053s Preparing to unpack .../1-ubuntu-pro-client-l10n_35.1ubuntu0_armhf.deb ... 2053s Unpacking ubuntu-pro-client-l10n (35.1ubuntu0) over (35) ... 2053s Preparing to unpack .../2-ubuntu-pro-client_35.1ubuntu0_armhf.deb ... 2053s Unpacking ubuntu-pro-client (35.1ubuntu0) over (35) ... 2053s Preparing to unpack .../3-nano_8.4-1_armhf.deb ... 2053s Unpacking nano (8.4-1) over (8.3-1) ... 2053s Preparing to unpack .../4-usb.ids_2025.04.01-1_all.deb ... 2053s Unpacking usb.ids (2025.04.01-1) over (2025.01.14-1) ... 2053s Preparing to unpack .../5-dpkg-dev_1.22.18ubuntu3_all.deb ... 2053s Unpacking dpkg-dev (1.22.18ubuntu3) over (1.22.18ubuntu2) ... 2053s Preparing to unpack .../6-libdpkg-perl_1.22.18ubuntu3_all.deb ... 2053s Unpacking libdpkg-perl (1.22.18ubuntu3) over (1.22.18ubuntu2) ... 2053s Preparing to unpack .../7-htop_3.4.1-4_armhf.deb ... 2053s Unpacking htop (3.4.1-4) over (3.4.0-2) ... 2053s Setting up motd-news-config (13.7ubuntu1) ... 2053s Setting up distro-info-data (0.64) ... 2053s Setting up htop (3.4.1-4) ... 2053s Setting up usb.ids (2025.04.01-1) ... 2053s Setting up libdpkg-perl (1.22.18ubuntu3) ... 2053s Setting up nano (8.4-1) ... 2053s Installing new version of config file /etc/nanorc ... 2054s Setting up ubuntu-pro-client (35.1ubuntu0) ... 2054s apparmor_parser: Unable to replace "ubuntu_pro_apt_news". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 2054s 2054s apparmor_parser: Unable to replace "apt_methods". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 2054s 2054s apparmor_parser: Unable to replace "ubuntu_pro_esm_cache". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 2054s 2056s Setting up ubuntu-pro-client-l10n (35.1ubuntu0) ... 2056s Setting up dpkg-dev (1.22.18ubuntu3) ... 2056s Processing triggers for install-info (7.1.1-1) ... 2056s Processing triggers for libc-bin (2.41-6ubuntu1) ... 2056s Processing triggers for man-db (2.13.0-1) ... 2058s Processing triggers for plymouth-theme-ubuntu-text (24.004.60-2ubuntu7) ... 2058s Processing triggers for initramfs-tools (0.147ubuntu1) ... 2060s Reading package lists... 2060s Building dependency tree... 2060s Reading state information... 2060s Starting pkgProblemResolver with broken count: 0 2061s Starting 2 pkgProblemResolver with broken count: 0 2061s Done 2061s Solving dependencies... 2062s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 2063s autopkgtest [14:26:12]: rebooting testbed after setup commands that affected boot 2126s Reading package lists... 2126s Building dependency tree... 2126s Reading state information... 2127s Starting pkgProblemResolver with broken count: 0 2127s Starting 2 pkgProblemResolver with broken count: 0 2127s Done 2128s The following NEW packages will be installed: 2128s adwaita-icon-theme at-spi2-common ca-certificates-java 2128s dconf-gsettings-backend dconf-service default-jre default-jre-headless 2128s fontconfig fontconfig-config fonts-dejavu-core fonts-dejavu-mono 2128s fonts-font-awesome fonts-lato gtk-update-icon-cache hicolor-icon-theme 2128s java-common junit4 libactivation-java libapache-pom-java libapr1t64 2128s libasm-java libasound2-data libasound2t64 libatinject-jsr330-api-java 2128s libatk-bridge2.0-0t64 libatk1.0-0t64 libatspi2.0-0t64 libavahi-client3 2128s libavahi-common-data libavahi-common3 libcairo-gobject2 libcairo2 libcares2 2128s libcolord2 libcommons-cli-java libcommons-io-java libcommons-logging-java 2128s libcommons-parent-java libcups2t64 libdatrie1 libdconf1 libdeflate0 2128s libdropwizard-metrics-java libeclipse-jdt-core-compiler-batch-java 2128s libeclipse-jdt-core-java libel-api-java libepoxy0 liberror-prone-java 2128s libev4t64 libfindbugs-annotations-java libfontconfig1 libfreetype6 libgbm1 2128s libgdk-pixbuf-2.0-0 libgdk-pixbuf2.0-common libgif7 libgl1 libgl1-mesa-dri 2128s libglvnd0 libglx-mesa0 libglx0 libgraphite2-3 libgtk-3-0t64 libgtk-3-common 2128s libguava-java libhamcrest-java libharfbuzz0b libio-pty-perl libipc-run-perl 2128s libjackson2-annotations-java libjackson2-core-java libjackson2-databind-java 2128s libjavaparser-java libjaxb-api-java libjbig0 libjctools-java 2128s libjetty9-extra-java libjetty9-java libjffi-java libjffi-jni 2128s libjnr-constants-java libjnr-enxio-java libjnr-ffi-java libjnr-posix-java 2128s libjnr-unixsocket-java libjnr-x86asm-java libjpeg-turbo8 libjpeg8 2128s libjs-jquery libjs-sphinxdoc libjs-underscore libjson-perl libjsp-api-java 2128s libjsr305-java liblcms2-2 liblerc4 libllvm19 libllvm20 liblog4j1.2-java 2128s libmail-java libnetty-java libnetty-tcnative-java libnetty-tcnative-jni 2128s libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpcsclite1 2128s libpixman-1-0 libpq5 libservlet-api-java libsharpyuv0 libslf4j-java 2128s libsnappy-java libsnappy-jni libsnappy1v5 libspring-beans-java 2128s libspring-core-java libtaglibs-standard-impl-java 2128s libtaglibs-standard-spec-java libthai-data libthai0 libtiff6 2128s libtime-duration-perl libtimedate-perl libtomcat9-java libvulkan1 2128s libwayland-client0 libwayland-cursor0 libwayland-egl1 libwayland-server0 2128s libwebp7 libwebsocket-api-java libx11-xcb1 libxcb-dri3-0 libxcb-glx0 2128s libxcb-present0 libxcb-randr0 libxcb-render0 libxcb-shm0 libxcb-sync1 2128s libxcb-xfixes0 libxcomposite1 libxcursor1 libxdamage1 libxfixes3 libxi6 2128s libxinerama1 libxrandr2 libxrender1 libxshmfence1 libxslt1.1 libxtst6 2128s libxxf86vm1 libzookeeper-java mesa-libgallium moreutils openjdk-21-jre 2128s openjdk-21-jre-headless patroni patroni-doc postgresql postgresql-17 2128s postgresql-client-17 postgresql-client-common postgresql-common 2128s postgresql-common-dev python3-behave python3-click python3-coverage 2128s python3-dnspython python3-eventlet python3-gevent python3-greenlet 2128s python3-kazoo python3-kerberos python3-parse python3-parse-type 2128s python3-prettytable python3-psutil python3-psycopg2 python3-pure-sasl 2128s python3-wcwidth python3-ydiff python3-zope.event python3-zope.interface 2128s sphinx-rtd-theme-common ssl-cert x11-common zookeeper zookeeperd 2128s 0 upgraded, 190 newly installed, 0 to remove and 0 not upgraded. 2128s Need to get 180 MB of archives. 2128s After this operation, 630 MB of additional disk space will be used. 2128s Get:1 http://ftpmaster.internal/ubuntu questing/main armhf fonts-lato all 2.015-1 [2781 kB] 2128s Get:2 http://ftpmaster.internal/ubuntu questing/main armhf libjson-perl all 4.10000-1 [81.9 kB] 2128s Get:3 http://ftpmaster.internal/ubuntu questing-proposed/main armhf postgresql-client-common all 277 [48.0 kB] 2128s Get:4 http://ftpmaster.internal/ubuntu questing/main armhf libio-pty-perl armhf 1:1.20-1build3 [31.0 kB] 2128s Get:5 http://ftpmaster.internal/ubuntu questing/main armhf libipc-run-perl all 20231003.0-2 [91.5 kB] 2128s Get:6 http://ftpmaster.internal/ubuntu questing-proposed/main armhf postgresql-common-dev all 277 [73.4 kB] 2128s Get:7 http://ftpmaster.internal/ubuntu questing/main armhf ssl-cert all 1.1.3ubuntu1 [18.7 kB] 2128s Get:8 http://ftpmaster.internal/ubuntu questing-proposed/main armhf postgresql-common all 277 [101 kB] 2128s Get:9 http://ftpmaster.internal/ubuntu questing/main armhf ca-certificates-java all 20240118 [11.6 kB] 2128s Get:10 http://ftpmaster.internal/ubuntu questing/main armhf java-common all 0.76 [6852 B] 2129s Get:11 http://ftpmaster.internal/ubuntu questing/main armhf liblcms2-2 armhf 2.16-2 [137 kB] 2129s Get:12 http://ftpmaster.internal/ubuntu questing/main armhf libjpeg-turbo8 armhf 2.1.5-3ubuntu2 [127 kB] 2129s Get:13 http://ftpmaster.internal/ubuntu questing/main armhf libjpeg8 armhf 8c-2ubuntu11 [2148 B] 2129s Get:14 http://ftpmaster.internal/ubuntu questing/main armhf libpcsclite1 armhf 2.3.1-1 [24.9 kB] 2129s Get:15 http://ftpmaster.internal/ubuntu questing/main armhf openjdk-21-jre-headless armhf 21.0.7~8ea-1 [39.8 MB] 2130s Get:16 http://ftpmaster.internal/ubuntu questing/main armhf default-jre-headless armhf 2:1.21-76 [3182 B] 2130s Get:17 http://ftpmaster.internal/ubuntu questing/main armhf libgdk-pixbuf2.0-common all 2.42.12+dfsg-2 [8004 B] 2130s Get:18 http://ftpmaster.internal/ubuntu questing/main armhf libdeflate0 armhf 1.23-1 [38.5 kB] 2130s Get:19 http://ftpmaster.internal/ubuntu questing/main armhf libjbig0 armhf 2.1-6.1ubuntu2 [24.9 kB] 2130s Get:20 http://ftpmaster.internal/ubuntu questing/main armhf liblerc4 armhf 4.0.0+ds-5ubuntu1 [160 kB] 2130s Get:21 http://ftpmaster.internal/ubuntu questing/main armhf libsharpyuv0 armhf 1.5.0-0.1 [16.4 kB] 2130s Get:22 http://ftpmaster.internal/ubuntu questing/main armhf libwebp7 armhf 1.5.0-0.1 [188 kB] 2130s Get:23 http://ftpmaster.internal/ubuntu questing/main armhf libtiff6 armhf 4.5.1+git230720-4ubuntu4 [179 kB] 2130s Get:24 http://ftpmaster.internal/ubuntu questing/main armhf libgdk-pixbuf-2.0-0 armhf 2.42.12+dfsg-2 [136 kB] 2130s Get:25 http://ftpmaster.internal/ubuntu questing/main armhf gtk-update-icon-cache armhf 4.18.4+ds-1 [51.8 kB] 2130s Get:26 http://ftpmaster.internal/ubuntu questing/main armhf hicolor-icon-theme all 0.18-2 [13.3 kB] 2130s Get:27 http://ftpmaster.internal/ubuntu questing/main armhf adwaita-icon-theme all 48.0-1 [578 kB] 2130s Get:28 http://ftpmaster.internal/ubuntu questing/main armhf at-spi2-common all 2.56.1-1 [9142 B] 2130s Get:29 http://ftpmaster.internal/ubuntu questing/main armhf libatk1.0-0t64 armhf 2.56.1-1 [48.5 kB] 2130s Get:30 http://ftpmaster.internal/ubuntu questing/main armhf libxi6 armhf 2:1.8.2-1 [26.5 kB] 2130s Get:31 http://ftpmaster.internal/ubuntu questing/main armhf libatspi2.0-0t64 armhf 2.56.1-1 [74.8 kB] 2130s Get:32 http://ftpmaster.internal/ubuntu questing/main armhf libatk-bridge2.0-0t64 armhf 2.56.1-1 [59.8 kB] 2130s Get:33 http://ftpmaster.internal/ubuntu questing/main armhf libfreetype6 armhf 2.13.3+dfsg-1 [330 kB] 2130s Get:34 http://ftpmaster.internal/ubuntu questing/main armhf fonts-dejavu-mono all 2.37-8 [502 kB] 2130s Get:35 http://ftpmaster.internal/ubuntu questing/main armhf fonts-dejavu-core all 2.37-8 [835 kB] 2130s Get:36 http://ftpmaster.internal/ubuntu questing/main armhf fontconfig-config armhf 2.15.0-2.2ubuntu1 [37.9 kB] 2130s Get:37 http://ftpmaster.internal/ubuntu questing/main armhf libfontconfig1 armhf 2.15.0-2.2ubuntu1 [114 kB] 2130s Get:38 http://ftpmaster.internal/ubuntu questing/main armhf libpixman-1-0 armhf 0.44.0-3 [183 kB] 2130s Get:39 http://ftpmaster.internal/ubuntu questing/main armhf libxcb-render0 armhf 1.17.0-2 [15.3 kB] 2130s Get:40 http://ftpmaster.internal/ubuntu questing/main armhf libxcb-shm0 armhf 1.17.0-2 [5774 B] 2130s Get:41 http://ftpmaster.internal/ubuntu questing/main armhf libxrender1 armhf 1:0.9.10-1.1build1 [16.0 kB] 2130s Get:42 http://ftpmaster.internal/ubuntu questing/main armhf libcairo2 armhf 1.18.4-1 [483 kB] 2130s Get:43 http://ftpmaster.internal/ubuntu questing/main armhf libcairo-gobject2 armhf 1.18.4-1 [126 kB] 2130s Get:44 http://ftpmaster.internal/ubuntu questing/main armhf libcolord2 armhf 1.4.7-3 [132 kB] 2130s Get:45 http://ftpmaster.internal/ubuntu questing/main armhf libavahi-common-data armhf 0.8-16ubuntu2 [31.0 kB] 2130s Get:46 http://ftpmaster.internal/ubuntu questing/main armhf libavahi-common3 armhf 0.8-16ubuntu2 [20.2 kB] 2130s Get:47 http://ftpmaster.internal/ubuntu questing/main armhf libavahi-client3 armhf 0.8-16ubuntu2 [24.5 kB] 2130s Get:48 http://ftpmaster.internal/ubuntu questing/main armhf libcups2t64 armhf 2.4.12-0ubuntu1 [240 kB] 2130s Get:49 http://ftpmaster.internal/ubuntu questing/main armhf libepoxy0 armhf 1.5.10-2 [192 kB] 2130s Get:50 http://ftpmaster.internal/ubuntu questing/main armhf libgraphite2-3 armhf 1.3.14-2ubuntu1 [64.8 kB] 2130s Get:51 http://ftpmaster.internal/ubuntu questing/main armhf libharfbuzz0b armhf 10.2.0-1 [464 kB] 2130s Get:52 http://ftpmaster.internal/ubuntu questing/main armhf fontconfig armhf 2.15.0-2.2ubuntu1 [190 kB] 2130s Get:53 http://ftpmaster.internal/ubuntu questing/main armhf libthai-data all 0.1.29-2build1 [158 kB] 2130s Get:54 http://ftpmaster.internal/ubuntu questing/main armhf libdatrie1 armhf 0.2.13-3build1 [15.7 kB] 2130s Get:55 http://ftpmaster.internal/ubuntu questing/main armhf libthai0 armhf 0.1.29-2build1 [15.2 kB] 2131s Get:56 http://ftpmaster.internal/ubuntu questing/main armhf libpango-1.0-0 armhf 1.56.3-1 [216 kB] 2131s Get:57 http://ftpmaster.internal/ubuntu questing/main armhf libpangoft2-1.0-0 armhf 1.56.3-1 [44.1 kB] 2131s Get:58 http://ftpmaster.internal/ubuntu questing/main armhf libpangocairo-1.0-0 armhf 1.56.3-1 [25.0 kB] 2131s Get:59 http://ftpmaster.internal/ubuntu questing/main armhf libwayland-client0 armhf 1.23.1-3 [23.3 kB] 2131s Get:60 http://ftpmaster.internal/ubuntu questing/main armhf libwayland-cursor0 armhf 1.23.1-3 [9648 B] 2131s Get:61 http://ftpmaster.internal/ubuntu questing/main armhf libwayland-egl1 armhf 1.23.1-3 [5874 B] 2131s Get:62 http://ftpmaster.internal/ubuntu questing/main armhf libxcomposite1 armhf 1:0.4.6-1 [6060 B] 2131s Get:63 http://ftpmaster.internal/ubuntu questing/main armhf libxfixes3 armhf 1:6.0.0-2build1 [9038 B] 2131s Get:64 http://ftpmaster.internal/ubuntu questing/main armhf libxcursor1 armhf 1:1.2.3-1 [18.0 kB] 2131s Get:65 http://ftpmaster.internal/ubuntu questing/main armhf libxdamage1 armhf 1:1.1.6-1build1 [5462 B] 2131s Get:66 http://ftpmaster.internal/ubuntu questing/main armhf libxinerama1 armhf 2:1.1.4-3build1 [5866 B] 2131s Get:67 http://ftpmaster.internal/ubuntu questing/main armhf libxrandr2 armhf 2:1.5.4-1 [15.8 kB] 2131s Get:68 http://ftpmaster.internal/ubuntu questing/main armhf libdconf1 armhf 0.40.0-5 [38.4 kB] 2131s Get:69 http://ftpmaster.internal/ubuntu questing/main armhf dconf-service armhf 0.40.0-5 [27.6 kB] 2131s Get:70 http://ftpmaster.internal/ubuntu questing/main armhf dconf-gsettings-backend armhf 0.40.0-5 [23.8 kB] 2131s Get:71 http://ftpmaster.internal/ubuntu questing/main armhf libgtk-3-common all 3.24.49-2ubuntu1 [1424 kB] 2131s Get:72 http://ftpmaster.internal/ubuntu questing/main armhf libgtk-3-0t64 armhf 3.24.49-2ubuntu1 [2623 kB] 2131s Get:73 http://ftpmaster.internal/ubuntu questing/main armhf libglvnd0 armhf 1.7.0-1build1 [83.7 kB] 2131s Get:74 http://ftpmaster.internal/ubuntu questing/main armhf libx11-xcb1 armhf 2:1.8.10-2 [7902 B] 2131s Get:75 http://ftpmaster.internal/ubuntu questing/main armhf libxcb-dri3-0 armhf 1.17.0-2 [7120 B] 2131s Get:76 http://ftpmaster.internal/ubuntu questing/main armhf libxcb-glx0 armhf 1.17.0-2 [22.6 kB] 2131s Get:77 http://ftpmaster.internal/ubuntu questing/main armhf libxcb-present0 armhf 1.17.0-2 [5940 B] 2131s Get:78 http://ftpmaster.internal/ubuntu questing/main armhf libxcb-xfixes0 armhf 1.17.0-2 [10.0 kB] 2131s Get:79 http://ftpmaster.internal/ubuntu questing/main armhf libxxf86vm1 armhf 1:1.1.4-1build4 [8068 B] 2131s Get:80 http://ftpmaster.internal/ubuntu questing/main armhf libllvm19 armhf 1:19.1.7-3ubuntu1 [27.8 MB] 2132s Get:81 http://ftpmaster.internal/ubuntu questing/main armhf libxcb-randr0 armhf 1.17.0-2 [17.0 kB] 2132s Get:82 http://ftpmaster.internal/ubuntu questing/main armhf libxcb-sync1 armhf 1.17.0-2 [8732 B] 2132s Get:83 http://ftpmaster.internal/ubuntu questing/main armhf libxshmfence1 armhf 1.3-1build5 [4464 B] 2132s Get:84 http://ftpmaster.internal/ubuntu questing/main armhf mesa-libgallium armhf 25.0.3-1ubuntu2 [8260 kB] 2132s Get:85 http://ftpmaster.internal/ubuntu questing/main armhf libwayland-server0 armhf 1.23.1-3 [30.3 kB] 2132s Get:86 http://ftpmaster.internal/ubuntu questing/main armhf libgbm1 armhf 25.0.3-1ubuntu2 [29.0 kB] 2132s Get:87 http://ftpmaster.internal/ubuntu questing/main armhf libvulkan1 armhf 1.4.304.0-1 [127 kB] 2132s Get:88 http://ftpmaster.internal/ubuntu questing/main armhf libgl1-mesa-dri armhf 25.0.3-1ubuntu2 [32.0 kB] 2132s Get:89 http://ftpmaster.internal/ubuntu questing/main armhf libglx-mesa0 armhf 25.0.3-1ubuntu2 [120 kB] 2132s Get:90 http://ftpmaster.internal/ubuntu questing/main armhf libglx0 armhf 1.7.0-1build1 [39.3 kB] 2132s Get:91 http://ftpmaster.internal/ubuntu questing/main armhf libgl1 armhf 1.7.0-1build1 [105 kB] 2132s Get:92 http://ftpmaster.internal/ubuntu questing/main armhf libasound2-data all 1.2.13-1build1 [21.1 kB] 2132s Get:93 http://ftpmaster.internal/ubuntu questing/main armhf libasound2t64 armhf 1.2.13-1build1 [347 kB] 2132s Get:94 http://ftpmaster.internal/ubuntu questing/main armhf libgif7 armhf 5.2.2-1ubuntu2 [32.5 kB] 2132s Get:95 http://ftpmaster.internal/ubuntu questing/main armhf x11-common all 1:7.7+23ubuntu4 [21.8 kB] 2132s Get:96 http://ftpmaster.internal/ubuntu questing/main armhf libxtst6 armhf 2:1.2.5-1 [11.0 kB] 2132s Get:97 http://ftpmaster.internal/ubuntu questing/main armhf openjdk-21-jre armhf 21.0.7~8ea-1 [198 kB] 2132s Get:98 http://ftpmaster.internal/ubuntu questing/main armhf default-jre armhf 2:1.21-76 [918 B] 2132s Get:99 http://ftpmaster.internal/ubuntu questing/universe armhf libhamcrest-java all 2.2-2 [117 kB] 2132s Get:100 http://ftpmaster.internal/ubuntu questing/universe armhf junit4 all 4.13.2-5 [348 kB] 2132s Get:101 http://ftpmaster.internal/ubuntu questing/universe armhf libcommons-cli-java all 1.6.0-1 [59.9 kB] 2132s Get:102 http://ftpmaster.internal/ubuntu questing/universe armhf libapache-pom-java all 33-2 [5874 B] 2132s Get:103 http://ftpmaster.internal/ubuntu questing/universe armhf libcommons-parent-java all 56-1 [10.7 kB] 2132s Get:104 http://ftpmaster.internal/ubuntu questing/universe armhf libcommons-io-java all 2.18.0-1 [477 kB] 2133s Get:105 http://ftpmaster.internal/ubuntu questing/universe armhf libdropwizard-metrics-java all 3.2.6-1 [240 kB] 2133s Get:106 http://ftpmaster.internal/ubuntu questing/universe armhf libfindbugs-annotations-java all 3.1.0~preview2-4 [48.9 kB] 2133s Get:107 http://ftpmaster.internal/ubuntu questing/universe armhf libatinject-jsr330-api-java all 1.0+ds1-6 [5076 B] 2133s Get:108 http://ftpmaster.internal/ubuntu questing/universe armhf liberror-prone-java all 2.18.0-1 [22.5 kB] 2133s Get:109 http://ftpmaster.internal/ubuntu questing/universe armhf libjsr305-java all 0.1~+svn49-12 [27.0 kB] 2133s Get:110 http://ftpmaster.internal/ubuntu questing/universe armhf libguava-java all 32.0.1-1 [2692 kB] 2133s Get:111 http://ftpmaster.internal/ubuntu questing/universe armhf libjackson2-annotations-java all 2.14.0-1 [64.7 kB] 2133s Get:112 http://ftpmaster.internal/ubuntu questing/universe armhf libjackson2-core-java all 2.14.1-1 [432 kB] 2133s Get:113 http://ftpmaster.internal/ubuntu questing/universe armhf libjackson2-databind-java all 2.14.0+ds-1 [1481 kB] 2133s Get:114 http://ftpmaster.internal/ubuntu questing/universe armhf libasm-java all 9.7.1-1 [388 kB] 2133s Get:115 http://ftpmaster.internal/ubuntu questing/universe armhf libel-api-java all 3.0.0-3 [64.9 kB] 2133s Get:116 http://ftpmaster.internal/ubuntu questing/universe armhf libjsp-api-java all 2.3.4-3 [53.7 kB] 2133s Get:117 http://ftpmaster.internal/ubuntu questing/universe armhf libservlet-api-java all 4.0.1-2 [81.0 kB] 2133s Get:118 http://ftpmaster.internal/ubuntu questing/universe armhf libwebsocket-api-java all 1.1-2 [40.1 kB] 2133s Get:119 http://ftpmaster.internal/ubuntu questing/universe armhf libjetty9-java all 9.4.56-1 [2790 kB] 2133s Get:120 http://ftpmaster.internal/ubuntu questing/universe armhf libjnr-constants-java all 0.10.4-2 [1397 kB] 2133s Get:121 http://ftpmaster.internal/ubuntu questing/universe armhf libjffi-jni armhf 1.3.13+ds-1 [24.9 kB] 2133s Get:122 http://ftpmaster.internal/ubuntu questing/universe armhf libjffi-java all 1.3.13+ds-1 [112 kB] 2133s Get:123 http://ftpmaster.internal/ubuntu questing/universe armhf libjnr-x86asm-java all 1.0.2-6 [216 kB] 2133s Get:124 http://ftpmaster.internal/ubuntu questing/universe armhf libjnr-ffi-java all 2.2.15-2 [627 kB] 2133s Get:125 http://ftpmaster.internal/ubuntu questing/universe armhf libjnr-enxio-java all 0.32.16-1 [33.7 kB] 2133s Get:126 http://ftpmaster.internal/ubuntu questing/universe armhf libjnr-posix-java all 3.1.18-1 [267 kB] 2133s Get:127 http://ftpmaster.internal/ubuntu questing/universe armhf libjnr-unixsocket-java all 0.38.21-2 [46.9 kB] 2133s Get:128 http://ftpmaster.internal/ubuntu questing/universe armhf libactivation-java all 1.2.0-2 [84.7 kB] 2133s Get:129 http://ftpmaster.internal/ubuntu questing/universe armhf libmail-java all 1.6.5-3 [681 kB] 2133s Get:130 http://ftpmaster.internal/ubuntu questing/universe armhf libcommons-logging-java all 1.3.0-1ubuntu1 [63.8 kB] 2133s Get:131 http://ftpmaster.internal/ubuntu questing/universe armhf libjaxb-api-java all 2.3.1-1 [119 kB] 2133s Get:132 http://ftpmaster.internal/ubuntu questing/universe armhf libspring-core-java all 4.3.30-2ubuntu1 [1015 kB] 2133s Get:133 http://ftpmaster.internal/ubuntu questing/universe armhf libspring-beans-java all 4.3.30-2ubuntu1 [677 kB] 2133s Get:134 http://ftpmaster.internal/ubuntu questing/universe armhf libtaglibs-standard-spec-java all 1.2.5-3 [35.2 kB] 2133s Get:135 http://ftpmaster.internal/ubuntu questing/universe armhf libtaglibs-standard-impl-java all 1.2.5-3 [182 kB] 2133s Get:136 http://ftpmaster.internal/ubuntu questing/universe armhf libeclipse-jdt-core-compiler-batch-java all 3.35.0+eclipse4.29-2 [2933 kB] 2133s Get:137 http://ftpmaster.internal/ubuntu questing/universe armhf libeclipse-jdt-core-java all 3.35.0+eclipse4.29-2 [3831 kB] 2134s Get:138 http://ftpmaster.internal/ubuntu questing/universe armhf libtomcat9-java all 9.0.70-2ubuntu1.1 [6161 kB] 2134s Get:139 http://ftpmaster.internal/ubuntu questing/universe armhf libjetty9-extra-java all 9.4.56-1 [1199 kB] 2134s Get:140 http://ftpmaster.internal/ubuntu questing/universe armhf libjavaparser-java all 3.26.1-1 [1326 kB] 2134s Get:141 http://ftpmaster.internal/ubuntu questing/universe armhf libjctools-java all 4.0.5+dfsg-1 [506 kB] 2134s Get:142 http://ftpmaster.internal/ubuntu questing/universe armhf libnetty-java all 1:4.1.48-10 [3628 kB] 2134s Get:143 http://ftpmaster.internal/ubuntu questing/universe armhf libslf4j-java all 1.7.32-1 [141 kB] 2134s Get:144 http://ftpmaster.internal/ubuntu questing/main armhf libsnappy1v5 armhf 1.2.1-1 [28.4 kB] 2134s Get:145 http://ftpmaster.internal/ubuntu questing/universe armhf libsnappy-jni armhf 1.1.10.7-1 [6228 B] 2134s Get:146 http://ftpmaster.internal/ubuntu questing/universe armhf libsnappy-java all 1.1.10.7-1 [83.6 kB] 2134s Get:147 http://ftpmaster.internal/ubuntu questing/main armhf libapr1t64 armhf 1.7.5-1 [88.2 kB] 2134s Get:148 http://ftpmaster.internal/ubuntu questing/universe armhf libnetty-tcnative-jni armhf 2.0.28-1build4 [28.9 kB] 2134s Get:149 http://ftpmaster.internal/ubuntu questing/universe armhf libnetty-tcnative-java all 2.0.28-1build4 [24.8 kB] 2134s Get:150 http://ftpmaster.internal/ubuntu questing/universe armhf liblog4j1.2-java all 1.2.17-11 [439 kB] 2134s Get:151 http://ftpmaster.internal/ubuntu questing/universe armhf libzookeeper-java all 3.9.3-1build1 [1890 kB] 2134s Get:152 http://ftpmaster.internal/ubuntu questing/universe armhf zookeeper all 3.9.3-1build1 [57.8 kB] 2134s Get:153 http://ftpmaster.internal/ubuntu questing/universe armhf zookeeperd all 3.9.3-1build1 [6016 B] 2134s Get:154 http://ftpmaster.internal/ubuntu questing/main armhf fonts-font-awesome all 5.0.10+really4.7.0~dfsg-4.1 [516 kB] 2134s Get:155 http://ftpmaster.internal/ubuntu questing/main armhf libcares2 armhf 1.34.4-2.1 [85.0 kB] 2134s Get:156 http://ftpmaster.internal/ubuntu questing/universe armhf libev4t64 armhf 1:4.33-2.1build1 [26.3 kB] 2134s Get:157 http://ftpmaster.internal/ubuntu questing/main armhf libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 2134s Get:158 http://ftpmaster.internal/ubuntu questing/main armhf libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [118 kB] 2134s Get:159 http://ftpmaster.internal/ubuntu questing/main armhf libjs-sphinxdoc all 8.1.3-5 [31.0 kB] 2134s Get:160 http://ftpmaster.internal/ubuntu questing/main armhf libllvm20 armhf 1:20.1.2-0ubuntu1 [29.6 MB] 2135s Get:161 http://ftpmaster.internal/ubuntu questing/main armhf libpq5 armhf 17.4-1 [125 kB] 2135s Get:162 http://ftpmaster.internal/ubuntu questing/main armhf libtime-duration-perl all 1.21-2 [12.3 kB] 2135s Get:163 http://ftpmaster.internal/ubuntu questing/main armhf libtimedate-perl all 2.3300-2 [34.0 kB] 2135s Get:164 http://ftpmaster.internal/ubuntu questing/main armhf libxslt1.1 armhf 1.1.39-0exp1ubuntu4 [151 kB] 2135s Get:165 http://ftpmaster.internal/ubuntu questing/universe armhf moreutils armhf 0.69-1 [53.5 kB] 2135s Get:166 http://ftpmaster.internal/ubuntu questing/main armhf python3-click all 8.2.0+0.really.8.1.8-1 [80.0 kB] 2135s Get:167 http://ftpmaster.internal/ubuntu questing/main armhf python3-wcwidth all 0.2.13+dfsg1-1 [26.3 kB] 2135s Get:168 http://ftpmaster.internal/ubuntu questing/main armhf python3-prettytable all 3.12.0-1 [36.5 kB] 2135s Get:169 http://ftpmaster.internal/ubuntu questing/main armhf python3-psutil armhf 5.9.8-2build3 [194 kB] 2135s Get:170 http://ftpmaster.internal/ubuntu questing/universe armhf python3-ydiff all 1.4.2-1 [19.0 kB] 2135s Get:171 http://ftpmaster.internal/ubuntu questing/main armhf python3-psycopg2 armhf 2.9.10-1build1 [125 kB] 2135s Get:172 http://ftpmaster.internal/ubuntu questing/main armhf python3-greenlet armhf 3.1.0-1build1 [161 kB] 2135s Get:173 http://ftpmaster.internal/ubuntu questing/main armhf python3-dnspython all 2.7.0-1ubuntu1 [167 kB] 2135s Get:174 http://ftpmaster.internal/ubuntu questing/main armhf python3-eventlet all 0.39.0-0ubuntu1 [277 kB] 2135s Get:175 http://ftpmaster.internal/ubuntu questing/universe armhf python3-zope.event all 5.0-0.1 [7512 B] 2135s Get:176 http://ftpmaster.internal/ubuntu questing/main armhf python3-zope.interface armhf 7.2-1build1 [139 kB] 2135s Get:177 http://ftpmaster.internal/ubuntu questing/universe armhf python3-gevent armhf 24.11.1-1build1 [822 kB] 2135s Get:178 http://ftpmaster.internal/ubuntu questing/universe armhf python3-kerberos armhf 1.1.14-3.1build11 [19.9 kB] 2135s Get:179 http://ftpmaster.internal/ubuntu questing/universe armhf python3-pure-sasl all 0.5.1+dfsg1-5 [11.4 kB] 2135s Get:180 http://ftpmaster.internal/ubuntu questing/universe armhf python3-kazoo all 2.9.0-2 [103 kB] 2135s Get:181 http://ftpmaster.internal/ubuntu questing/universe armhf patroni all 4.0.4-7 [281 kB] 2135s Get:182 http://ftpmaster.internal/ubuntu questing/main armhf sphinx-rtd-theme-common all 3.0.2+dfsg-2 [1014 kB] 2136s Get:183 http://ftpmaster.internal/ubuntu questing/universe armhf patroni-doc all 4.0.4-7 [526 kB] 2136s Get:184 http://ftpmaster.internal/ubuntu questing/main armhf postgresql-client-17 armhf 17.4-1 [1285 kB] 2136s Get:185 http://ftpmaster.internal/ubuntu questing/main armhf postgresql-17 armhf 17.4-1 [14.8 MB] 2136s Get:186 http://ftpmaster.internal/ubuntu questing-proposed/main armhf postgresql all 17+277 [16.5 kB] 2136s Get:187 http://ftpmaster.internal/ubuntu questing/universe armhf python3-parse all 1.20.2-1 [27.0 kB] 2136s Get:188 http://ftpmaster.internal/ubuntu questing/universe armhf python3-parse-type all 0.6.4-2 [23.5 kB] 2136s Get:189 http://ftpmaster.internal/ubuntu questing/universe armhf python3-behave all 1.2.6-6 [98.6 kB] 2136s Get:190 http://ftpmaster.internal/ubuntu questing/universe armhf python3-coverage armhf 7.6.0+dfsg1-2build1 [152 kB] 2137s Preconfiguring packages ... 2137s /var/cache/debconf/tmp.ci/postgresql.config.MQEBV0: 12: pg_lsclusters: not found 2137s Fetched 180 MB in 8s (21.4 MB/s) 2137s Selecting previously unselected package fonts-lato. 2137s (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 ... 63953 files and directories currently installed.) 2137s Preparing to unpack .../000-fonts-lato_2.015-1_all.deb ... 2137s Unpacking fonts-lato (2.015-1) ... 2137s Selecting previously unselected package libjson-perl. 2137s Preparing to unpack .../001-libjson-perl_4.10000-1_all.deb ... 2137s Unpacking libjson-perl (4.10000-1) ... 2137s Selecting previously unselected package postgresql-client-common. 2137s Preparing to unpack .../002-postgresql-client-common_277_all.deb ... 2137s Unpacking postgresql-client-common (277) ... 2137s Selecting previously unselected package libio-pty-perl. 2137s Preparing to unpack .../003-libio-pty-perl_1%3a1.20-1build3_armhf.deb ... 2137s Unpacking libio-pty-perl (1:1.20-1build3) ... 2137s Selecting previously unselected package libipc-run-perl. 2137s Preparing to unpack .../004-libipc-run-perl_20231003.0-2_all.deb ... 2137s Unpacking libipc-run-perl (20231003.0-2) ... 2137s Selecting previously unselected package postgresql-common-dev. 2137s Preparing to unpack .../005-postgresql-common-dev_277_all.deb ... 2137s Unpacking postgresql-common-dev (277) ... 2137s Selecting previously unselected package ssl-cert. 2138s Preparing to unpack .../006-ssl-cert_1.1.3ubuntu1_all.deb ... 2138s Unpacking ssl-cert (1.1.3ubuntu1) ... 2138s Selecting previously unselected package postgresql-common. 2138s Preparing to unpack .../007-postgresql-common_277_all.deb ... 2138s Adding 'diversion of /usr/bin/pg_config to /usr/bin/pg_config.libpq-dev by postgresql-common' 2138s Unpacking postgresql-common (277) ... 2138s Selecting previously unselected package ca-certificates-java. 2138s Preparing to unpack .../008-ca-certificates-java_20240118_all.deb ... 2138s Unpacking ca-certificates-java (20240118) ... 2138s Selecting previously unselected package java-common. 2138s Preparing to unpack .../009-java-common_0.76_all.deb ... 2138s Unpacking java-common (0.76) ... 2138s Selecting previously unselected package liblcms2-2:armhf. 2138s Preparing to unpack .../010-liblcms2-2_2.16-2_armhf.deb ... 2138s Unpacking liblcms2-2:armhf (2.16-2) ... 2138s Selecting previously unselected package libjpeg-turbo8:armhf. 2138s Preparing to unpack .../011-libjpeg-turbo8_2.1.5-3ubuntu2_armhf.deb ... 2138s Unpacking libjpeg-turbo8:armhf (2.1.5-3ubuntu2) ... 2138s Selecting previously unselected package libjpeg8:armhf. 2138s Preparing to unpack .../012-libjpeg8_8c-2ubuntu11_armhf.deb ... 2138s Unpacking libjpeg8:armhf (8c-2ubuntu11) ... 2138s Selecting previously unselected package libpcsclite1:armhf. 2138s Preparing to unpack .../013-libpcsclite1_2.3.1-1_armhf.deb ... 2138s Unpacking libpcsclite1:armhf (2.3.1-1) ... 2138s Selecting previously unselected package openjdk-21-jre-headless:armhf. 2138s Preparing to unpack .../014-openjdk-21-jre-headless_21.0.7~8ea-1_armhf.deb ... 2138s Unpacking openjdk-21-jre-headless:armhf (21.0.7~8ea-1) ... 2139s Selecting previously unselected package default-jre-headless. 2139s Preparing to unpack .../015-default-jre-headless_2%3a1.21-76_armhf.deb ... 2139s Unpacking default-jre-headless (2:1.21-76) ... 2139s Selecting previously unselected package libgdk-pixbuf2.0-common. 2139s Preparing to unpack .../016-libgdk-pixbuf2.0-common_2.42.12+dfsg-2_all.deb ... 2139s Unpacking libgdk-pixbuf2.0-common (2.42.12+dfsg-2) ... 2139s Selecting previously unselected package libdeflate0:armhf. 2139s Preparing to unpack .../017-libdeflate0_1.23-1_armhf.deb ... 2139s Unpacking libdeflate0:armhf (1.23-1) ... 2139s Selecting previously unselected package libjbig0:armhf. 2139s Preparing to unpack .../018-libjbig0_2.1-6.1ubuntu2_armhf.deb ... 2139s Unpacking libjbig0:armhf (2.1-6.1ubuntu2) ... 2139s Selecting previously unselected package liblerc4:armhf. 2139s Preparing to unpack .../019-liblerc4_4.0.0+ds-5ubuntu1_armhf.deb ... 2139s Unpacking liblerc4:armhf (4.0.0+ds-5ubuntu1) ... 2139s Selecting previously unselected package libsharpyuv0:armhf. 2139s Preparing to unpack .../020-libsharpyuv0_1.5.0-0.1_armhf.deb ... 2139s Unpacking libsharpyuv0:armhf (1.5.0-0.1) ... 2139s Selecting previously unselected package libwebp7:armhf. 2139s Preparing to unpack .../021-libwebp7_1.5.0-0.1_armhf.deb ... 2139s Unpacking libwebp7:armhf (1.5.0-0.1) ... 2139s Selecting previously unselected package libtiff6:armhf. 2139s Preparing to unpack .../022-libtiff6_4.5.1+git230720-4ubuntu4_armhf.deb ... 2139s Unpacking libtiff6:armhf (4.5.1+git230720-4ubuntu4) ... 2139s Selecting previously unselected package libgdk-pixbuf-2.0-0:armhf. 2139s Preparing to unpack .../023-libgdk-pixbuf-2.0-0_2.42.12+dfsg-2_armhf.deb ... 2139s Unpacking libgdk-pixbuf-2.0-0:armhf (2.42.12+dfsg-2) ... 2139s Selecting previously unselected package gtk-update-icon-cache. 2139s Preparing to unpack .../024-gtk-update-icon-cache_4.18.4+ds-1_armhf.deb ... 2139s No diversion 'diversion of /usr/sbin/update-icon-caches to /usr/sbin/update-icon-caches.gtk2 by libgtk-3-bin', none removed. 2139s No diversion 'diversion of /usr/share/man/man8/update-icon-caches.8.gz to /usr/share/man/man8/update-icon-caches.gtk2.8.gz by libgtk-3-bin', none removed. 2139s Unpacking gtk-update-icon-cache (4.18.4+ds-1) ... 2139s Selecting previously unselected package hicolor-icon-theme. 2140s Preparing to unpack .../025-hicolor-icon-theme_0.18-2_all.deb ... 2140s Unpacking hicolor-icon-theme (0.18-2) ... 2140s Selecting previously unselected package adwaita-icon-theme. 2140s Preparing to unpack .../026-adwaita-icon-theme_48.0-1_all.deb ... 2140s Unpacking adwaita-icon-theme (48.0-1) ... 2140s Selecting previously unselected package at-spi2-common. 2140s Preparing to unpack .../027-at-spi2-common_2.56.1-1_all.deb ... 2140s Unpacking at-spi2-common (2.56.1-1) ... 2140s Selecting previously unselected package libatk1.0-0t64:armhf. 2140s Preparing to unpack .../028-libatk1.0-0t64_2.56.1-1_armhf.deb ... 2140s Unpacking libatk1.0-0t64:armhf (2.56.1-1) ... 2140s Selecting previously unselected package libxi6:armhf. 2140s Preparing to unpack .../029-libxi6_2%3a1.8.2-1_armhf.deb ... 2140s Unpacking libxi6:armhf (2:1.8.2-1) ... 2140s Selecting previously unselected package libatspi2.0-0t64:armhf. 2140s Preparing to unpack .../030-libatspi2.0-0t64_2.56.1-1_armhf.deb ... 2140s Unpacking libatspi2.0-0t64:armhf (2.56.1-1) ... 2140s Selecting previously unselected package libatk-bridge2.0-0t64:armhf. 2140s Preparing to unpack .../031-libatk-bridge2.0-0t64_2.56.1-1_armhf.deb ... 2140s Unpacking libatk-bridge2.0-0t64:armhf (2.56.1-1) ... 2140s Selecting previously unselected package libfreetype6:armhf. 2140s Preparing to unpack .../032-libfreetype6_2.13.3+dfsg-1_armhf.deb ... 2140s Unpacking libfreetype6:armhf (2.13.3+dfsg-1) ... 2140s Selecting previously unselected package fonts-dejavu-mono. 2140s Preparing to unpack .../033-fonts-dejavu-mono_2.37-8_all.deb ... 2140s Unpacking fonts-dejavu-mono (2.37-8) ... 2140s Selecting previously unselected package fonts-dejavu-core. 2140s Preparing to unpack .../034-fonts-dejavu-core_2.37-8_all.deb ... 2140s Unpacking fonts-dejavu-core (2.37-8) ... 2140s Selecting previously unselected package fontconfig-config. 2140s Preparing to unpack .../035-fontconfig-config_2.15.0-2.2ubuntu1_armhf.deb ... 2140s Unpacking fontconfig-config (2.15.0-2.2ubuntu1) ... 2140s Selecting previously unselected package libfontconfig1:armhf. 2140s Preparing to unpack .../036-libfontconfig1_2.15.0-2.2ubuntu1_armhf.deb ... 2140s Unpacking libfontconfig1:armhf (2.15.0-2.2ubuntu1) ... 2140s Selecting previously unselected package libpixman-1-0:armhf. 2141s Preparing to unpack .../037-libpixman-1-0_0.44.0-3_armhf.deb ... 2141s Unpacking libpixman-1-0:armhf (0.44.0-3) ... 2141s Selecting previously unselected package libxcb-render0:armhf. 2141s Preparing to unpack .../038-libxcb-render0_1.17.0-2_armhf.deb ... 2141s Unpacking libxcb-render0:armhf (1.17.0-2) ... 2141s Selecting previously unselected package libxcb-shm0:armhf. 2141s Preparing to unpack .../039-libxcb-shm0_1.17.0-2_armhf.deb ... 2141s Unpacking libxcb-shm0:armhf (1.17.0-2) ... 2141s Selecting previously unselected package libxrender1:armhf. 2141s Preparing to unpack .../040-libxrender1_1%3a0.9.10-1.1build1_armhf.deb ... 2141s Unpacking libxrender1:armhf (1:0.9.10-1.1build1) ... 2141s Selecting previously unselected package libcairo2:armhf. 2141s Preparing to unpack .../041-libcairo2_1.18.4-1_armhf.deb ... 2141s Unpacking libcairo2:armhf (1.18.4-1) ... 2141s Selecting previously unselected package libcairo-gobject2:armhf. 2141s Preparing to unpack .../042-libcairo-gobject2_1.18.4-1_armhf.deb ... 2141s Unpacking libcairo-gobject2:armhf (1.18.4-1) ... 2141s Selecting previously unselected package libcolord2:armhf. 2141s Preparing to unpack .../043-libcolord2_1.4.7-3_armhf.deb ... 2141s Unpacking libcolord2:armhf (1.4.7-3) ... 2141s Selecting previously unselected package libavahi-common-data:armhf. 2141s Preparing to unpack .../044-libavahi-common-data_0.8-16ubuntu2_armhf.deb ... 2141s Unpacking libavahi-common-data:armhf (0.8-16ubuntu2) ... 2141s Selecting previously unselected package libavahi-common3:armhf. 2141s Preparing to unpack .../045-libavahi-common3_0.8-16ubuntu2_armhf.deb ... 2141s Unpacking libavahi-common3:armhf (0.8-16ubuntu2) ... 2141s Selecting previously unselected package libavahi-client3:armhf. 2141s Preparing to unpack .../046-libavahi-client3_0.8-16ubuntu2_armhf.deb ... 2141s Unpacking libavahi-client3:armhf (0.8-16ubuntu2) ... 2141s Selecting previously unselected package libcups2t64:armhf. 2141s Preparing to unpack .../047-libcups2t64_2.4.12-0ubuntu1_armhf.deb ... 2141s Unpacking libcups2t64:armhf (2.4.12-0ubuntu1) ... 2141s Selecting previously unselected package libepoxy0:armhf. 2141s Preparing to unpack .../048-libepoxy0_1.5.10-2_armhf.deb ... 2141s Unpacking libepoxy0:armhf (1.5.10-2) ... 2141s Selecting previously unselected package libgraphite2-3:armhf. 2141s Preparing to unpack .../049-libgraphite2-3_1.3.14-2ubuntu1_armhf.deb ... 2141s Unpacking libgraphite2-3:armhf (1.3.14-2ubuntu1) ... 2141s Selecting previously unselected package libharfbuzz0b:armhf. 2141s Preparing to unpack .../050-libharfbuzz0b_10.2.0-1_armhf.deb ... 2141s Unpacking libharfbuzz0b:armhf (10.2.0-1) ... 2141s Selecting previously unselected package fontconfig. 2141s Preparing to unpack .../051-fontconfig_2.15.0-2.2ubuntu1_armhf.deb ... 2141s Unpacking fontconfig (2.15.0-2.2ubuntu1) ... 2141s Selecting previously unselected package libthai-data. 2141s Preparing to unpack .../052-libthai-data_0.1.29-2build1_all.deb ... 2141s Unpacking libthai-data (0.1.29-2build1) ... 2141s Selecting previously unselected package libdatrie1:armhf. 2141s Preparing to unpack .../053-libdatrie1_0.2.13-3build1_armhf.deb ... 2141s Unpacking libdatrie1:armhf (0.2.13-3build1) ... 2141s Selecting previously unselected package libthai0:armhf. 2141s Preparing to unpack .../054-libthai0_0.1.29-2build1_armhf.deb ... 2141s Unpacking libthai0:armhf (0.1.29-2build1) ... 2141s Selecting previously unselected package libpango-1.0-0:armhf. 2141s Preparing to unpack .../055-libpango-1.0-0_1.56.3-1_armhf.deb ... 2141s Unpacking libpango-1.0-0:armhf (1.56.3-1) ... 2141s Selecting previously unselected package libpangoft2-1.0-0:armhf. 2141s Preparing to unpack .../056-libpangoft2-1.0-0_1.56.3-1_armhf.deb ... 2141s Unpacking libpangoft2-1.0-0:armhf (1.56.3-1) ... 2141s Selecting previously unselected package libpangocairo-1.0-0:armhf. 2141s Preparing to unpack .../057-libpangocairo-1.0-0_1.56.3-1_armhf.deb ... 2141s Unpacking libpangocairo-1.0-0:armhf (1.56.3-1) ... 2141s Selecting previously unselected package libwayland-client0:armhf. 2141s Preparing to unpack .../058-libwayland-client0_1.23.1-3_armhf.deb ... 2141s Unpacking libwayland-client0:armhf (1.23.1-3) ... 2141s Selecting previously unselected package libwayland-cursor0:armhf. 2141s Preparing to unpack .../059-libwayland-cursor0_1.23.1-3_armhf.deb ... 2141s Unpacking libwayland-cursor0:armhf (1.23.1-3) ... 2141s Selecting previously unselected package libwayland-egl1:armhf. 2141s Preparing to unpack .../060-libwayland-egl1_1.23.1-3_armhf.deb ... 2141s Unpacking libwayland-egl1:armhf (1.23.1-3) ... 2141s Selecting previously unselected package libxcomposite1:armhf. 2142s Preparing to unpack .../061-libxcomposite1_1%3a0.4.6-1_armhf.deb ... 2142s Unpacking libxcomposite1:armhf (1:0.4.6-1) ... 2142s Selecting previously unselected package libxfixes3:armhf. 2142s Preparing to unpack .../062-libxfixes3_1%3a6.0.0-2build1_armhf.deb ... 2142s Unpacking libxfixes3:armhf (1:6.0.0-2build1) ... 2142s Selecting previously unselected package libxcursor1:armhf. 2142s Preparing to unpack .../063-libxcursor1_1%3a1.2.3-1_armhf.deb ... 2142s Unpacking libxcursor1:armhf (1:1.2.3-1) ... 2142s Selecting previously unselected package libxdamage1:armhf. 2142s Preparing to unpack .../064-libxdamage1_1%3a1.1.6-1build1_armhf.deb ... 2142s Unpacking libxdamage1:armhf (1:1.1.6-1build1) ... 2142s Selecting previously unselected package libxinerama1:armhf. 2142s Preparing to unpack .../065-libxinerama1_2%3a1.1.4-3build1_armhf.deb ... 2142s Unpacking libxinerama1:armhf (2:1.1.4-3build1) ... 2142s Selecting previously unselected package libxrandr2:armhf. 2142s Preparing to unpack .../066-libxrandr2_2%3a1.5.4-1_armhf.deb ... 2142s Unpacking libxrandr2:armhf (2:1.5.4-1) ... 2142s Selecting previously unselected package libdconf1:armhf. 2142s Preparing to unpack .../067-libdconf1_0.40.0-5_armhf.deb ... 2142s Unpacking libdconf1:armhf (0.40.0-5) ... 2142s Selecting previously unselected package dconf-service. 2142s Preparing to unpack .../068-dconf-service_0.40.0-5_armhf.deb ... 2142s Unpacking dconf-service (0.40.0-5) ... 2142s Selecting previously unselected package dconf-gsettings-backend:armhf. 2142s Preparing to unpack .../069-dconf-gsettings-backend_0.40.0-5_armhf.deb ... 2142s Unpacking dconf-gsettings-backend:armhf (0.40.0-5) ... 2142s Selecting previously unselected package libgtk-3-common. 2142s Preparing to unpack .../070-libgtk-3-common_3.24.49-2ubuntu1_all.deb ... 2142s Unpacking libgtk-3-common (3.24.49-2ubuntu1) ... 2142s Selecting previously unselected package libgtk-3-0t64:armhf. 2142s Preparing to unpack .../071-libgtk-3-0t64_3.24.49-2ubuntu1_armhf.deb ... 2142s Unpacking libgtk-3-0t64:armhf (3.24.49-2ubuntu1) ... 2142s Selecting previously unselected package libglvnd0:armhf. 2142s Preparing to unpack .../072-libglvnd0_1.7.0-1build1_armhf.deb ... 2142s Unpacking libglvnd0:armhf (1.7.0-1build1) ... 2142s Selecting previously unselected package libx11-xcb1:armhf. 2142s Preparing to unpack .../073-libx11-xcb1_2%3a1.8.10-2_armhf.deb ... 2142s Unpacking libx11-xcb1:armhf (2:1.8.10-2) ... 2142s Selecting previously unselected package libxcb-dri3-0:armhf. 2142s Preparing to unpack .../074-libxcb-dri3-0_1.17.0-2_armhf.deb ... 2142s Unpacking libxcb-dri3-0:armhf (1.17.0-2) ... 2142s Selecting previously unselected package libxcb-glx0:armhf. 2142s Preparing to unpack .../075-libxcb-glx0_1.17.0-2_armhf.deb ... 2142s Unpacking libxcb-glx0:armhf (1.17.0-2) ... 2142s Selecting previously unselected package libxcb-present0:armhf. 2142s Preparing to unpack .../076-libxcb-present0_1.17.0-2_armhf.deb ... 2142s Unpacking libxcb-present0:armhf (1.17.0-2) ... 2142s Selecting previously unselected package libxcb-xfixes0:armhf. 2142s Preparing to unpack .../077-libxcb-xfixes0_1.17.0-2_armhf.deb ... 2142s Unpacking libxcb-xfixes0:armhf (1.17.0-2) ... 2142s Selecting previously unselected package libxxf86vm1:armhf. 2142s Preparing to unpack .../078-libxxf86vm1_1%3a1.1.4-1build4_armhf.deb ... 2142s Unpacking libxxf86vm1:armhf (1:1.1.4-1build4) ... 2142s Selecting previously unselected package libllvm19:armhf. 2142s Preparing to unpack .../079-libllvm19_1%3a19.1.7-3ubuntu1_armhf.deb ... 2142s Unpacking libllvm19:armhf (1:19.1.7-3ubuntu1) ... 2143s Selecting previously unselected package libxcb-randr0:armhf. 2143s Preparing to unpack .../080-libxcb-randr0_1.17.0-2_armhf.deb ... 2143s Unpacking libxcb-randr0:armhf (1.17.0-2) ... 2143s Selecting previously unselected package libxcb-sync1:armhf. 2143s Preparing to unpack .../081-libxcb-sync1_1.17.0-2_armhf.deb ... 2143s Unpacking libxcb-sync1:armhf (1.17.0-2) ... 2143s Selecting previously unselected package libxshmfence1:armhf. 2143s Preparing to unpack .../082-libxshmfence1_1.3-1build5_armhf.deb ... 2143s Unpacking libxshmfence1:armhf (1.3-1build5) ... 2143s Selecting previously unselected package mesa-libgallium:armhf. 2143s Preparing to unpack .../083-mesa-libgallium_25.0.3-1ubuntu2_armhf.deb ... 2143s Unpacking mesa-libgallium:armhf (25.0.3-1ubuntu2) ... 2144s Selecting previously unselected package libwayland-server0:armhf. 2144s Preparing to unpack .../084-libwayland-server0_1.23.1-3_armhf.deb ... 2144s Unpacking libwayland-server0:armhf (1.23.1-3) ... 2144s Selecting previously unselected package libgbm1:armhf. 2144s Preparing to unpack .../085-libgbm1_25.0.3-1ubuntu2_armhf.deb ... 2144s Unpacking libgbm1:armhf (25.0.3-1ubuntu2) ... 2144s Selecting previously unselected package libvulkan1:armhf. 2144s Preparing to unpack .../086-libvulkan1_1.4.304.0-1_armhf.deb ... 2144s Unpacking libvulkan1:armhf (1.4.304.0-1) ... 2144s Selecting previously unselected package libgl1-mesa-dri:armhf. 2144s Preparing to unpack .../087-libgl1-mesa-dri_25.0.3-1ubuntu2_armhf.deb ... 2144s Unpacking libgl1-mesa-dri:armhf (25.0.3-1ubuntu2) ... 2144s Selecting previously unselected package libglx-mesa0:armhf. 2144s Preparing to unpack .../088-libglx-mesa0_25.0.3-1ubuntu2_armhf.deb ... 2144s Unpacking libglx-mesa0:armhf (25.0.3-1ubuntu2) ... 2144s Selecting previously unselected package libglx0:armhf. 2144s Preparing to unpack .../089-libglx0_1.7.0-1build1_armhf.deb ... 2144s Unpacking libglx0:armhf (1.7.0-1build1) ... 2144s Selecting previously unselected package libgl1:armhf. 2144s Preparing to unpack .../090-libgl1_1.7.0-1build1_armhf.deb ... 2144s Unpacking libgl1:armhf (1.7.0-1build1) ... 2144s Selecting previously unselected package libasound2-data. 2144s Preparing to unpack .../091-libasound2-data_1.2.13-1build1_all.deb ... 2144s Unpacking libasound2-data (1.2.13-1build1) ... 2144s Selecting previously unselected package libasound2t64:armhf. 2144s Preparing to unpack .../092-libasound2t64_1.2.13-1build1_armhf.deb ... 2144s Unpacking libasound2t64:armhf (1.2.13-1build1) ... 2144s Selecting previously unselected package libgif7:armhf. 2144s Preparing to unpack .../093-libgif7_5.2.2-1ubuntu2_armhf.deb ... 2144s Unpacking libgif7:armhf (5.2.2-1ubuntu2) ... 2144s Selecting previously unselected package x11-common. 2144s Preparing to unpack .../094-x11-common_1%3a7.7+23ubuntu4_all.deb ... 2144s Unpacking x11-common (1:7.7+23ubuntu4) ... 2144s Selecting previously unselected package libxtst6:armhf. 2144s Preparing to unpack .../095-libxtst6_2%3a1.2.5-1_armhf.deb ... 2144s Unpacking libxtst6:armhf (2:1.2.5-1) ... 2144s Selecting previously unselected package openjdk-21-jre:armhf. 2144s Preparing to unpack .../096-openjdk-21-jre_21.0.7~8ea-1_armhf.deb ... 2144s Unpacking openjdk-21-jre:armhf (21.0.7~8ea-1) ... 2144s Selecting previously unselected package default-jre. 2144s Preparing to unpack .../097-default-jre_2%3a1.21-76_armhf.deb ... 2144s Unpacking default-jre (2:1.21-76) ... 2144s Selecting previously unselected package libhamcrest-java. 2144s Preparing to unpack .../098-libhamcrest-java_2.2-2_all.deb ... 2144s Unpacking libhamcrest-java (2.2-2) ... 2144s Selecting previously unselected package junit4. 2144s Preparing to unpack .../099-junit4_4.13.2-5_all.deb ... 2144s Unpacking junit4 (4.13.2-5) ... 2144s Selecting previously unselected package libcommons-cli-java. 2145s Preparing to unpack .../100-libcommons-cli-java_1.6.0-1_all.deb ... 2145s Unpacking libcommons-cli-java (1.6.0-1) ... 2145s Selecting previously unselected package libapache-pom-java. 2145s Preparing to unpack .../101-libapache-pom-java_33-2_all.deb ... 2145s Unpacking libapache-pom-java (33-2) ... 2145s Selecting previously unselected package libcommons-parent-java. 2145s Preparing to unpack .../102-libcommons-parent-java_56-1_all.deb ... 2145s Unpacking libcommons-parent-java (56-1) ... 2145s Selecting previously unselected package libcommons-io-java. 2145s Preparing to unpack .../103-libcommons-io-java_2.18.0-1_all.deb ... 2145s Unpacking libcommons-io-java (2.18.0-1) ... 2145s Selecting previously unselected package libdropwizard-metrics-java. 2145s Preparing to unpack .../104-libdropwizard-metrics-java_3.2.6-1_all.deb ... 2145s Unpacking libdropwizard-metrics-java (3.2.6-1) ... 2145s Selecting previously unselected package libfindbugs-annotations-java. 2145s Preparing to unpack .../105-libfindbugs-annotations-java_3.1.0~preview2-4_all.deb ... 2145s Unpacking libfindbugs-annotations-java (3.1.0~preview2-4) ... 2145s Selecting previously unselected package libatinject-jsr330-api-java. 2145s Preparing to unpack .../106-libatinject-jsr330-api-java_1.0+ds1-6_all.deb ... 2145s Unpacking libatinject-jsr330-api-java (1.0+ds1-6) ... 2145s Selecting previously unselected package liberror-prone-java. 2145s Preparing to unpack .../107-liberror-prone-java_2.18.0-1_all.deb ... 2145s Unpacking liberror-prone-java (2.18.0-1) ... 2145s Selecting previously unselected package libjsr305-java. 2145s Preparing to unpack .../108-libjsr305-java_0.1~+svn49-12_all.deb ... 2145s Unpacking libjsr305-java (0.1~+svn49-12) ... 2145s Selecting previously unselected package libguava-java. 2145s Preparing to unpack .../109-libguava-java_32.0.1-1_all.deb ... 2145s Unpacking libguava-java (32.0.1-1) ... 2145s Selecting previously unselected package libjackson2-annotations-java. 2145s Preparing to unpack .../110-libjackson2-annotations-java_2.14.0-1_all.deb ... 2145s Unpacking libjackson2-annotations-java (2.14.0-1) ... 2145s Selecting previously unselected package libjackson2-core-java. 2145s Preparing to unpack .../111-libjackson2-core-java_2.14.1-1_all.deb ... 2145s Unpacking libjackson2-core-java (2.14.1-1) ... 2145s Selecting previously unselected package libjackson2-databind-java. 2145s Preparing to unpack .../112-libjackson2-databind-java_2.14.0+ds-1_all.deb ... 2145s Unpacking libjackson2-databind-java (2.14.0+ds-1) ... 2145s Selecting previously unselected package libasm-java. 2145s Preparing to unpack .../113-libasm-java_9.7.1-1_all.deb ... 2145s Unpacking libasm-java (9.7.1-1) ... 2145s Selecting previously unselected package libel-api-java. 2145s Preparing to unpack .../114-libel-api-java_3.0.0-3_all.deb ... 2145s Unpacking libel-api-java (3.0.0-3) ... 2145s Selecting previously unselected package libjsp-api-java. 2145s Preparing to unpack .../115-libjsp-api-java_2.3.4-3_all.deb ... 2145s Unpacking libjsp-api-java (2.3.4-3) ... 2145s Selecting previously unselected package libservlet-api-java. 2145s Preparing to unpack .../116-libservlet-api-java_4.0.1-2_all.deb ... 2145s Unpacking libservlet-api-java (4.0.1-2) ... 2145s Selecting previously unselected package libwebsocket-api-java. 2145s Preparing to unpack .../117-libwebsocket-api-java_1.1-2_all.deb ... 2145s Unpacking libwebsocket-api-java (1.1-2) ... 2145s Selecting previously unselected package libjetty9-java. 2146s Preparing to unpack .../118-libjetty9-java_9.4.56-1_all.deb ... 2146s Unpacking libjetty9-java (9.4.56-1) ... 2146s Selecting previously unselected package libjnr-constants-java. 2146s Preparing to unpack .../119-libjnr-constants-java_0.10.4-2_all.deb ... 2146s Unpacking libjnr-constants-java (0.10.4-2) ... 2146s Selecting previously unselected package libjffi-jni:armhf. 2146s Preparing to unpack .../120-libjffi-jni_1.3.13+ds-1_armhf.deb ... 2146s Unpacking libjffi-jni:armhf (1.3.13+ds-1) ... 2146s Selecting previously unselected package libjffi-java. 2146s Preparing to unpack .../121-libjffi-java_1.3.13+ds-1_all.deb ... 2146s Unpacking libjffi-java (1.3.13+ds-1) ... 2146s Selecting previously unselected package libjnr-x86asm-java. 2146s Preparing to unpack .../122-libjnr-x86asm-java_1.0.2-6_all.deb ... 2146s Unpacking libjnr-x86asm-java (1.0.2-6) ... 2146s Selecting previously unselected package libjnr-ffi-java. 2146s Preparing to unpack .../123-libjnr-ffi-java_2.2.15-2_all.deb ... 2146s Unpacking libjnr-ffi-java (2.2.15-2) ... 2146s Selecting previously unselected package libjnr-enxio-java. 2146s Preparing to unpack .../124-libjnr-enxio-java_0.32.16-1_all.deb ... 2146s Unpacking libjnr-enxio-java (0.32.16-1) ... 2146s Selecting previously unselected package libjnr-posix-java. 2146s Preparing to unpack .../125-libjnr-posix-java_3.1.18-1_all.deb ... 2146s Unpacking libjnr-posix-java (3.1.18-1) ... 2146s Selecting previously unselected package libjnr-unixsocket-java. 2146s Preparing to unpack .../126-libjnr-unixsocket-java_0.38.21-2_all.deb ... 2146s Unpacking libjnr-unixsocket-java (0.38.21-2) ... 2146s Selecting previously unselected package libactivation-java. 2146s Preparing to unpack .../127-libactivation-java_1.2.0-2_all.deb ... 2146s Unpacking libactivation-java (1.2.0-2) ... 2146s Selecting previously unselected package libmail-java. 2146s Preparing to unpack .../128-libmail-java_1.6.5-3_all.deb ... 2146s Unpacking libmail-java (1.6.5-3) ... 2146s Selecting previously unselected package libcommons-logging-java. 2146s Preparing to unpack .../129-libcommons-logging-java_1.3.0-1ubuntu1_all.deb ... 2146s Unpacking libcommons-logging-java (1.3.0-1ubuntu1) ... 2146s Selecting previously unselected package libjaxb-api-java. 2146s Preparing to unpack .../130-libjaxb-api-java_2.3.1-1_all.deb ... 2146s Unpacking libjaxb-api-java (2.3.1-1) ... 2147s Selecting previously unselected package libspring-core-java. 2147s Preparing to unpack .../131-libspring-core-java_4.3.30-2ubuntu1_all.deb ... 2147s Unpacking libspring-core-java (4.3.30-2ubuntu1) ... 2147s Selecting previously unselected package libspring-beans-java. 2147s Preparing to unpack .../132-libspring-beans-java_4.3.30-2ubuntu1_all.deb ... 2147s Unpacking libspring-beans-java (4.3.30-2ubuntu1) ... 2147s Selecting previously unselected package libtaglibs-standard-spec-java. 2147s Preparing to unpack .../133-libtaglibs-standard-spec-java_1.2.5-3_all.deb ... 2147s Unpacking libtaglibs-standard-spec-java (1.2.5-3) ... 2147s Selecting previously unselected package libtaglibs-standard-impl-java. 2147s Preparing to unpack .../134-libtaglibs-standard-impl-java_1.2.5-3_all.deb ... 2147s Unpacking libtaglibs-standard-impl-java (1.2.5-3) ... 2147s Selecting previously unselected package libeclipse-jdt-core-compiler-batch-java. 2147s Preparing to unpack .../135-libeclipse-jdt-core-compiler-batch-java_3.35.0+eclipse4.29-2_all.deb ... 2147s Unpacking libeclipse-jdt-core-compiler-batch-java (3.35.0+eclipse4.29-2) ... 2147s Selecting previously unselected package libeclipse-jdt-core-java. 2147s Preparing to unpack .../136-libeclipse-jdt-core-java_3.35.0+eclipse4.29-2_all.deb ... 2147s Unpacking libeclipse-jdt-core-java (3.35.0+eclipse4.29-2) ... 2147s Selecting previously unselected package libtomcat9-java. 2147s Preparing to unpack .../137-libtomcat9-java_9.0.70-2ubuntu1.1_all.deb ... 2147s Unpacking libtomcat9-java (9.0.70-2ubuntu1.1) ... 2147s Selecting previously unselected package libjetty9-extra-java. 2147s Preparing to unpack .../138-libjetty9-extra-java_9.4.56-1_all.deb ... 2147s Unpacking libjetty9-extra-java (9.4.56-1) ... 2147s Selecting previously unselected package libjavaparser-java. 2147s Preparing to unpack .../139-libjavaparser-java_3.26.1-1_all.deb ... 2147s Unpacking libjavaparser-java (3.26.1-1) ... 2147s Selecting previously unselected package libjctools-java. 2147s Preparing to unpack .../140-libjctools-java_4.0.5+dfsg-1_all.deb ... 2147s Unpacking libjctools-java (4.0.5+dfsg-1) ... 2147s Selecting previously unselected package libnetty-java. 2147s Preparing to unpack .../141-libnetty-java_1%3a4.1.48-10_all.deb ... 2147s Unpacking libnetty-java (1:4.1.48-10) ... 2147s Selecting previously unselected package libslf4j-java. 2147s Preparing to unpack .../142-libslf4j-java_1.7.32-1_all.deb ... 2147s Unpacking libslf4j-java (1.7.32-1) ... 2147s Selecting previously unselected package libsnappy1v5:armhf. 2147s Preparing to unpack .../143-libsnappy1v5_1.2.1-1_armhf.deb ... 2147s Unpacking libsnappy1v5:armhf (1.2.1-1) ... 2147s Selecting previously unselected package libsnappy-jni. 2147s Preparing to unpack .../144-libsnappy-jni_1.1.10.7-1_armhf.deb ... 2147s Unpacking libsnappy-jni (1.1.10.7-1) ... 2148s Selecting previously unselected package libsnappy-java. 2148s Preparing to unpack .../145-libsnappy-java_1.1.10.7-1_all.deb ... 2148s Unpacking libsnappy-java (1.1.10.7-1) ... 2148s Selecting previously unselected package libapr1t64:armhf. 2148s Preparing to unpack .../146-libapr1t64_1.7.5-1_armhf.deb ... 2148s Unpacking libapr1t64:armhf (1.7.5-1) ... 2148s Selecting previously unselected package libnetty-tcnative-jni. 2148s Preparing to unpack .../147-libnetty-tcnative-jni_2.0.28-1build4_armhf.deb ... 2148s Unpacking libnetty-tcnative-jni (2.0.28-1build4) ... 2148s Selecting previously unselected package libnetty-tcnative-java. 2148s Preparing to unpack .../148-libnetty-tcnative-java_2.0.28-1build4_all.deb ... 2148s Unpacking libnetty-tcnative-java (2.0.28-1build4) ... 2148s Selecting previously unselected package liblog4j1.2-java. 2148s Preparing to unpack .../149-liblog4j1.2-java_1.2.17-11_all.deb ... 2148s Unpacking liblog4j1.2-java (1.2.17-11) ... 2148s Selecting previously unselected package libzookeeper-java. 2148s Preparing to unpack .../150-libzookeeper-java_3.9.3-1build1_all.deb ... 2148s Unpacking libzookeeper-java (3.9.3-1build1) ... 2148s Selecting previously unselected package zookeeper. 2148s Preparing to unpack .../151-zookeeper_3.9.3-1build1_all.deb ... 2148s Unpacking zookeeper (3.9.3-1build1) ... 2148s Selecting previously unselected package zookeeperd. 2148s Preparing to unpack .../152-zookeeperd_3.9.3-1build1_all.deb ... 2148s Unpacking zookeeperd (3.9.3-1build1) ... 2148s Selecting previously unselected package fonts-font-awesome. 2148s Preparing to unpack .../153-fonts-font-awesome_5.0.10+really4.7.0~dfsg-4.1_all.deb ... 2148s Unpacking fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 2148s Selecting previously unselected package libcares2:armhf. 2148s Preparing to unpack .../154-libcares2_1.34.4-2.1_armhf.deb ... 2148s Unpacking libcares2:armhf (1.34.4-2.1) ... 2148s Selecting previously unselected package libev4t64:armhf. 2148s Preparing to unpack .../155-libev4t64_1%3a4.33-2.1build1_armhf.deb ... 2148s Unpacking libev4t64:armhf (1:4.33-2.1build1) ... 2148s Selecting previously unselected package libjs-jquery. 2148s Preparing to unpack .../156-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 2148s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 2148s Selecting previously unselected package libjs-underscore. 2148s Preparing to unpack .../157-libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ... 2148s Unpacking libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 2148s Selecting previously unselected package libjs-sphinxdoc. 2148s Preparing to unpack .../158-libjs-sphinxdoc_8.1.3-5_all.deb ... 2148s Unpacking libjs-sphinxdoc (8.1.3-5) ... 2148s Selecting previously unselected package libllvm20:armhf. 2149s Preparing to unpack .../159-libllvm20_1%3a20.1.2-0ubuntu1_armhf.deb ... 2149s Unpacking libllvm20:armhf (1:20.1.2-0ubuntu1) ... 2150s Selecting previously unselected package libpq5:armhf. 2150s Preparing to unpack .../160-libpq5_17.4-1_armhf.deb ... 2150s Unpacking libpq5:armhf (17.4-1) ... 2150s Selecting previously unselected package libtime-duration-perl. 2150s Preparing to unpack .../161-libtime-duration-perl_1.21-2_all.deb ... 2150s Unpacking libtime-duration-perl (1.21-2) ... 2150s Selecting previously unselected package libtimedate-perl. 2150s Preparing to unpack .../162-libtimedate-perl_2.3300-2_all.deb ... 2150s Unpacking libtimedate-perl (2.3300-2) ... 2150s Selecting previously unselected package libxslt1.1:armhf. 2150s Preparing to unpack .../163-libxslt1.1_1.1.39-0exp1ubuntu4_armhf.deb ... 2150s Unpacking libxslt1.1:armhf (1.1.39-0exp1ubuntu4) ... 2150s Selecting previously unselected package moreutils. 2150s Preparing to unpack .../164-moreutils_0.69-1_armhf.deb ... 2150s Unpacking moreutils (0.69-1) ... 2150s Selecting previously unselected package python3-click. 2150s Preparing to unpack .../165-python3-click_8.2.0+0.really.8.1.8-1_all.deb ... 2150s Unpacking python3-click (8.2.0+0.really.8.1.8-1) ... 2150s Selecting previously unselected package python3-wcwidth. 2150s Preparing to unpack .../166-python3-wcwidth_0.2.13+dfsg1-1_all.deb ... 2150s Unpacking python3-wcwidth (0.2.13+dfsg1-1) ... 2150s Selecting previously unselected package python3-prettytable. 2150s Preparing to unpack .../167-python3-prettytable_3.12.0-1_all.deb ... 2150s Unpacking python3-prettytable (3.12.0-1) ... 2150s Selecting previously unselected package python3-psutil. 2150s Preparing to unpack .../168-python3-psutil_5.9.8-2build3_armhf.deb ... 2150s Unpacking python3-psutil (5.9.8-2build3) ... 2150s Selecting previously unselected package python3-ydiff. 2150s Preparing to unpack .../169-python3-ydiff_1.4.2-1_all.deb ... 2150s Unpacking python3-ydiff (1.4.2-1) ... 2150s Selecting previously unselected package python3-psycopg2. 2150s Preparing to unpack .../170-python3-psycopg2_2.9.10-1build1_armhf.deb ... 2150s Unpacking python3-psycopg2 (2.9.10-1build1) ... 2150s Selecting previously unselected package python3-greenlet. 2150s Preparing to unpack .../171-python3-greenlet_3.1.0-1build1_armhf.deb ... 2150s Unpacking python3-greenlet (3.1.0-1build1) ... 2150s Selecting previously unselected package python3-dnspython. 2150s Preparing to unpack .../172-python3-dnspython_2.7.0-1ubuntu1_all.deb ... 2150s Unpacking python3-dnspython (2.7.0-1ubuntu1) ... 2150s Selecting previously unselected package python3-eventlet. 2150s Preparing to unpack .../173-python3-eventlet_0.39.0-0ubuntu1_all.deb ... 2150s Unpacking python3-eventlet (0.39.0-0ubuntu1) ... 2150s Selecting previously unselected package python3-zope.event. 2150s Preparing to unpack .../174-python3-zope.event_5.0-0.1_all.deb ... 2150s Unpacking python3-zope.event (5.0-0.1) ... 2150s Selecting previously unselected package python3-zope.interface. 2150s Preparing to unpack .../175-python3-zope.interface_7.2-1build1_armhf.deb ... 2150s Unpacking python3-zope.interface (7.2-1build1) ... 2150s Selecting previously unselected package python3-gevent. 2150s Preparing to unpack .../176-python3-gevent_24.11.1-1build1_armhf.deb ... 2150s Unpacking python3-gevent (24.11.1-1build1) ... 2150s Selecting previously unselected package python3-kerberos. 2150s Preparing to unpack .../177-python3-kerberos_1.1.14-3.1build11_armhf.deb ... 2150s Unpacking python3-kerberos (1.1.14-3.1build11) ... 2150s Selecting previously unselected package python3-pure-sasl. 2150s Preparing to unpack .../178-python3-pure-sasl_0.5.1+dfsg1-5_all.deb ... 2150s Unpacking python3-pure-sasl (0.5.1+dfsg1-5) ... 2150s Selecting previously unselected package python3-kazoo. 2150s Preparing to unpack .../179-python3-kazoo_2.9.0-2_all.deb ... 2150s Unpacking python3-kazoo (2.9.0-2) ... 2150s Selecting previously unselected package patroni. 2150s Preparing to unpack .../180-patroni_4.0.4-7_all.deb ... 2150s Unpacking patroni (4.0.4-7) ... 2150s Selecting previously unselected package sphinx-rtd-theme-common. 2151s Preparing to unpack .../181-sphinx-rtd-theme-common_3.0.2+dfsg-2_all.deb ... 2151s Unpacking sphinx-rtd-theme-common (3.0.2+dfsg-2) ... 2151s Selecting previously unselected package patroni-doc. 2151s Preparing to unpack .../182-patroni-doc_4.0.4-7_all.deb ... 2151s Unpacking patroni-doc (4.0.4-7) ... 2151s Selecting previously unselected package postgresql-client-17. 2151s Preparing to unpack .../183-postgresql-client-17_17.4-1_armhf.deb ... 2151s Unpacking postgresql-client-17 (17.4-1) ... 2151s Selecting previously unselected package postgresql-17. 2151s Preparing to unpack .../184-postgresql-17_17.4-1_armhf.deb ... 2151s Unpacking postgresql-17 (17.4-1) ... 2152s Selecting previously unselected package postgresql. 2152s Preparing to unpack .../185-postgresql_17+277_all.deb ... 2152s Unpacking postgresql (17+277) ... 2152s Selecting previously unselected package python3-parse. 2152s Preparing to unpack .../186-python3-parse_1.20.2-1_all.deb ... 2152s Unpacking python3-parse (1.20.2-1) ... 2152s Selecting previously unselected package python3-parse-type. 2152s Preparing to unpack .../187-python3-parse-type_0.6.4-2_all.deb ... 2152s Unpacking python3-parse-type (0.6.4-2) ... 2152s Selecting previously unselected package python3-behave. 2152s Preparing to unpack .../188-python3-behave_1.2.6-6_all.deb ... 2152s Unpacking python3-behave (1.2.6-6) ... 2152s Selecting previously unselected package python3-coverage. 2152s Preparing to unpack .../189-python3-coverage_7.6.0+dfsg1-2build1_armhf.deb ... 2152s Unpacking python3-coverage (7.6.0+dfsg1-2build1) ... 2152s Setting up postgresql-client-common (277) ... 2152s Setting up libgraphite2-3:armhf (1.3.14-2ubuntu1) ... 2152s Setting up libxcb-dri3-0:armhf (1.17.0-2) ... 2152s Setting up liblcms2-2:armhf (2.16-2) ... 2152s Setting up libtaglibs-standard-spec-java (1.2.5-3) ... 2152s Setting up libpixman-1-0:armhf (0.44.0-3) ... 2152s Setting up libev4t64:armhf (1:4.33-2.1build1) ... 2152s Setting up libjackson2-annotations-java (2.14.0-1) ... 2152s Setting up libllvm19:armhf (1:19.1.7-3ubuntu1) ... 2152s Setting up libsharpyuv0:armhf (1.5.0-0.1) ... 2152s Setting up libwayland-server0:armhf (1.23.1-3) ... 2152s Setting up libx11-xcb1:armhf (2:1.8.10-2) ... 2152s Setting up libslf4j-java (1.7.32-1) ... 2152s Setting up fonts-lato (2.015-1) ... 2152s Setting up libeclipse-jdt-core-compiler-batch-java (3.35.0+eclipse4.29-2) ... 2152s Setting up libxdamage1:armhf (1:1.1.6-1build1) ... 2152s Setting up libxcb-xfixes0:armhf (1.17.0-2) ... 2152s Setting up libjavaparser-java (3.26.1-1) ... 2152s Setting up liblerc4:armhf (4.0.0+ds-5ubuntu1) ... 2152s Setting up libjsr305-java (0.1~+svn49-12) ... 2152s Setting up hicolor-icon-theme (0.18-2) ... 2152s Setting up libxi6:armhf (2:1.8.2-1) ... 2152s Setting up java-common (0.76) ... 2152s Setting up libxrender1:armhf (1:0.9.10-1.1build1) ... 2152s Setting up libdatrie1:armhf (0.2.13-3build1) ... 2152s Setting up libcommons-cli-java (1.6.0-1) ... 2152s Setting up libio-pty-perl (1:1.20-1build3) ... 2152s Setting up libxcb-render0:armhf (1.17.0-2) ... 2152s Setting up python3-zope.event (5.0-0.1) ... 2152s Setting up python3-zope.interface (7.2-1build1) ... 2152s Setting up libglvnd0:armhf (1.7.0-1build1) ... 2152s Setting up libxcb-glx0:armhf (1.17.0-2) ... 2152s Setting up libgdk-pixbuf2.0-common (2.42.12+dfsg-2) ... 2152s Setting up python3-ydiff (1.4.2-1) ... 2153s Setting up libasm-java (9.7.1-1) ... 2153s Setting up x11-common (1:7.7+23ubuntu4) ... 2153s Setting up libpq5:armhf (17.4-1) ... 2153s Setting up libdeflate0:armhf (1.23-1) ... 2153s Setting up python3-kerberos (1.1.14-3.1build11) ... 2153s Setting up liblog4j1.2-java (1.2.17-11) ... 2153s Setting up libel-api-java (3.0.0-3) ... 2153s Setting up python3-coverage (7.6.0+dfsg1-2build1) ... 2153s Setting up libxcb-shm0:armhf (1.17.0-2) ... 2153s Setting up python3-click (8.2.0+0.really.8.1.8-1) ... 2153s Setting up libjnr-x86asm-java (1.0.2-6) ... 2153s Setting up libjbig0:armhf (2.1-6.1ubuntu2) ... 2153s Setting up libcolord2:armhf (1.4.7-3) ... 2153s Setting up python3-psutil (5.9.8-2build3) ... 2154s Setting up libeclipse-jdt-core-java (3.35.0+eclipse4.29-2) ... 2154s Setting up libxxf86vm1:armhf (1:1.1.4-1build4) ... 2154s Setting up libsnappy1v5:armhf (1.2.1-1) ... 2154s Setting up libxcb-present0:armhf (1.17.0-2) ... 2154s Setting up libtaglibs-standard-impl-java (1.2.5-3) ... 2154s Setting up libdconf1:armhf (0.40.0-5) ... 2154s Setting up libjctools-java (4.0.5+dfsg-1) ... 2154s Setting up libdropwizard-metrics-java (3.2.6-1) ... 2154s Setting up libasound2-data (1.2.13-1build1) ... 2154s Setting up libasound2t64:armhf (1.2.13-1build1) ... 2154s Setting up python3-wcwidth (0.2.13+dfsg1-1) ... 2154s Setting up libfreetype6:armhf (2.13.3+dfsg-1) ... 2154s Setting up libfindbugs-annotations-java (3.1.0~preview2-4) ... 2154s Setting up libepoxy0:armhf (1.5.10-2) ... 2154s Setting up ssl-cert (1.1.3ubuntu1) ... 2155s Created symlink '/etc/systemd/system/multi-user.target.wants/ssl-cert.service' → '/usr/lib/systemd/system/ssl-cert.service'. 2155s Setting up libxfixes3:armhf (1:6.0.0-2build1) ... 2155s Setting up libxcb-sync1:armhf (1.17.0-2) ... 2155s Setting up libapache-pom-java (33-2) ... 2155s Setting up libavahi-common-data:armhf (0.8-16ubuntu2) ... 2155s Setting up libatinject-jsr330-api-java (1.0+ds1-6) ... 2155s Setting up libatspi2.0-0t64:armhf (2.56.1-1) ... 2155s Setting up libwebsocket-api-java (1.1-2) ... 2155s Setting up python3-greenlet (3.1.0-1build1) ... 2155s Setting up libxinerama1:armhf (2:1.1.4-3build1) ... 2155s Setting up fonts-dejavu-mono (2.37-8) ... 2155s Setting up libcares2:armhf (1.34.4-2.1) ... 2155s Setting up libxrandr2:armhf (2:1.5.4-1) ... 2155s Setting up libllvm20:armhf (1:20.1.2-0ubuntu1) ... 2155s Setting up python3-psycopg2 (2.9.10-1build1) ... 2155s Setting up fonts-dejavu-core (2.37-8) ... 2155s Setting up libipc-run-perl (20231003.0-2) ... 2155s Setting up libpcsclite1:armhf (2.3.1-1) ... 2155s Setting up libjpeg-turbo8:armhf (2.1.5-3ubuntu2) ... 2155s Setting up libactivation-java (1.2.0-2) ... 2155s Setting up libtomcat9-java (9.0.70-2ubuntu1.1) ... 2155s Setting up libhamcrest-java (2.2-2) ... 2155s Setting up libjsp-api-java (2.3.4-3) ... 2155s Setting up libvulkan1:armhf (1.4.304.0-1) ... 2155s Setting up libtime-duration-perl (1.21-2) ... 2155s Setting up libwebp7:armhf (1.5.0-0.1) ... 2155s Setting up libtimedate-perl (2.3300-2) ... 2155s Setting up libgif7:armhf (5.2.2-1ubuntu2) ... 2155s Setting up libxshmfence1:armhf (1.3-1build5) ... 2155s Setting up libmail-java (1.6.5-3) ... 2155s Setting up at-spi2-common (2.56.1-1) ... 2155s Setting up python3-dnspython (2.7.0-1ubuntu1) ... 2156s Setting up libnetty-java (1:4.1.48-10) ... 2156s Setting up libxcb-randr0:armhf (1.17.0-2) ... 2156s Setting up python3-parse (1.20.2-1) ... 2156s Setting up libapr1t64:armhf (1.7.5-1) ... 2156s Setting up libjson-perl (4.10000-1) ... 2156s Setting up libxslt1.1:armhf (1.1.39-0exp1ubuntu4) ... 2156s Setting up libservlet-api-java (4.0.1-2) ... 2156s Setting up libjackson2-core-java (2.14.1-1) ... 2156s Setting up libharfbuzz0b:armhf (10.2.0-1) ... 2156s Setting up libthai-data (0.1.29-2build1) ... 2156s Setting up libjffi-jni:armhf (1.3.13+ds-1) ... 2156s Setting up libwayland-egl1:armhf (1.23.1-3) ... 2156s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 2156s Setting up ca-certificates-java (20240118) ... 2156s No JRE found. Skipping Java certificates setup. 2156s Setting up python3-prettytable (3.12.0-1) ... 2156s Setting up libsnappy-jni (1.1.10.7-1) ... 2156s Setting up libxcomposite1:armhf (1:0.4.6-1) ... 2156s Setting up fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 2156s Setting up sphinx-rtd-theme-common (3.0.2+dfsg-2) ... 2156s Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 2156s Setting up postgresql-common-dev (277) ... 2156s Setting up libjnr-constants-java (0.10.4-2) ... 2156s Setting up libwayland-client0:armhf (1.23.1-3) ... 2156s Setting up libjpeg8:armhf (8c-2ubuntu11) ... 2156s Setting up libjaxb-api-java (2.3.1-1) ... 2156s Setting up libjffi-java (1.3.13+ds-1) ... 2156s Setting up mesa-libgallium:armhf (25.0.3-1ubuntu2) ... 2156s Setting up libjetty9-java (9.4.56-1) ... 2156s Setting up moreutils (0.69-1) ... 2156s Setting up libatk1.0-0t64:armhf (2.56.1-1) ... 2156s Setting up openjdk-21-jre-headless:armhf (21.0.7~8ea-1) ... 2156s update-alternatives: using /usr/lib/jvm/java-21-openjdk-armhf/bin/java to provide /usr/bin/java (java) in auto mode 2156s update-alternatives: using /usr/lib/jvm/java-21-openjdk-armhf/bin/jpackage to provide /usr/bin/jpackage (jpackage) in auto mode 2156s update-alternatives: using /usr/lib/jvm/java-21-openjdk-armhf/bin/keytool to provide /usr/bin/keytool (keytool) in auto mode 2156s update-alternatives: using /usr/lib/jvm/java-21-openjdk-armhf/bin/rmiregistry to provide /usr/bin/rmiregistry (rmiregistry) in auto mode 2156s update-alternatives: using /usr/lib/jvm/java-21-openjdk-armhf/lib/jexec to provide /usr/bin/jexec (jexec) in auto mode 2156s Setting up python3-pure-sasl (0.5.1+dfsg1-5) ... 2157s Setting up libgbm1:armhf (25.0.3-1ubuntu2) ... 2157s Setting up postgresql-client-17 (17.4-1) ... 2158s update-alternatives: using /usr/share/postgresql/17/man/man1/psql.1.gz to provide /usr/share/man/man1/psql.1.gz (psql.1.gz) in auto mode 2158s Setting up fontconfig-config (2.15.0-2.2ubuntu1) ... 2158s Setting up libxtst6:armhf (2:1.2.5-1) ... 2158s Setting up libxcursor1:armhf (1:1.2.3-1) ... 2158s Setting up libgl1-mesa-dri:armhf (25.0.3-1ubuntu2) ... 2158s Setting up libcommons-parent-java (56-1) ... 2158s Setting up libavahi-common3:armhf (0.8-16ubuntu2) ... 2158s Setting up libcommons-logging-java (1.3.0-1ubuntu1) ... 2158s Setting up dconf-service (0.40.0-5) ... 2158s Setting up python3-gevent (24.11.1-1build1) ... 2159s Setting up libjackson2-databind-java (2.14.0+ds-1) ... 2159s Setting up libthai0:armhf (0.1.29-2build1) ... 2159s Setting up python3-parse-type (0.6.4-2) ... 2159s Setting up python3-eventlet (0.39.0-0ubuntu1) ... 2159s Setting up libnetty-tcnative-jni (2.0.28-1build4) ... 2159s Setting up python3-kazoo (2.9.0-2) ... 2160s Setting up postgresql-common (277) ... 2160s Creating config file /etc/postgresql-common/createcluster.conf with new version 2161s Building PostgreSQL dictionaries from installed myspell/hunspell packages... 2161s Removing obsolete dictionary files: 2161s Created symlink '/etc/systemd/system/multi-user.target.wants/postgresql.service' → '/usr/lib/systemd/system/postgresql.service'. 2162s Setting up libjs-sphinxdoc (8.1.3-5) ... 2162s Setting up libtiff6:armhf (4.5.1+git230720-4ubuntu4) ... 2162s Setting up libwayland-cursor0:armhf (1.23.1-3) ... 2162s Setting up libgdk-pixbuf-2.0-0:armhf (2.42.12+dfsg-2) ... 2162s Setting up python3-behave (1.2.6-6) ... 2162s /usr/lib/python3/dist-packages/behave/formatter/ansi_escapes.py:57: SyntaxWarning: invalid escape sequence '\[' 2162s _ANSI_ESCAPE_PATTERN = re.compile(u"\x1b\[\d+[mA]", re.UNICODE) 2162s /usr/lib/python3/dist-packages/behave/matchers.py:284: SyntaxWarning: invalid escape sequence '\d' 2162s @parse.with_pattern(r"\d+") 2162s Setting up libsnappy-java (1.1.10.7-1) ... 2162s Setting up libfontconfig1:armhf (2.15.0-2.2ubuntu1) ... 2162s Setting up patroni (4.0.4-7) ... 2162s Created symlink '/etc/systemd/system/multi-user.target.wants/patroni.service' → '/usr/lib/systemd/system/patroni.service'. 2163s Setting up libavahi-client3:armhf (0.8-16ubuntu2) ... 2163s Setting up libjnr-ffi-java (2.2.15-2) ... 2163s Setting up libatk-bridge2.0-0t64:armhf (2.56.1-1) ... 2163s Setting up gtk-update-icon-cache (4.18.4+ds-1) ... 2163s Setting up fontconfig (2.15.0-2.2ubuntu1) ... 2165s Regenerating fonts cache... done. 2165s Setting up postgresql-17 (17.4-1) ... 2166s Creating new PostgreSQL cluster 17/main ... 2166s /usr/lib/postgresql/17/bin/initdb -D /var/lib/postgresql/17/main --auth-local peer --auth-host scram-sha-256 --no-instructions 2166s The files belonging to this database system will be owned by user "postgres". 2166s This user must also own the server process. 2166s 2166s The database cluster will be initialized with locale "C.UTF-8". 2166s The default database encoding has accordingly been set to "UTF8". 2166s The default text search configuration will be set to "english". 2166s 2166s Data page checksums are disabled. 2166s 2166s fixing permissions on existing directory /var/lib/postgresql/17/main ... ok 2166s creating subdirectories ... ok 2166s selecting dynamic shared memory implementation ... posix 2166s selecting default "max_connections" ... 100 2166s selecting default "shared_buffers" ... 128MB 2166s selecting default time zone ... Etc/UTC 2166s creating configuration files ... ok 2166s running bootstrap script ... ok 2167s performing post-bootstrap initialization ... ok 2167s syncing data to disk ... ok 2170s Setting up libglx-mesa0:armhf (25.0.3-1ubuntu2) ... 2170s Setting up libglx0:armhf (1.7.0-1build1) ... 2170s Setting up libspring-core-java (4.3.30-2ubuntu1) ... 2170s Setting up dconf-gsettings-backend:armhf (0.40.0-5) ... 2170s Setting up libcommons-io-java (2.18.0-1) ... 2170s Setting up patroni-doc (4.0.4-7) ... 2170s Setting up libpango-1.0-0:armhf (1.56.3-1) ... 2170s Setting up libcairo2:armhf (1.18.4-1) ... 2170s Setting up libjnr-enxio-java (0.32.16-1) ... 2170s Setting up libgl1:armhf (1.7.0-1build1) ... 2170s Setting up adwaita-icon-theme (48.0-1) ... 2170s update-alternatives: using /usr/share/icons/Adwaita/cursor.theme to provide /usr/share/icons/default/index.theme (x-cursor-theme) in auto mode 2170s Setting up libcairo-gobject2:armhf (1.18.4-1) ... 2170s Setting up postgresql (17+277) ... 2170s Setting up libpangoft2-1.0-0:armhf (1.56.3-1) ... 2170s Setting up libcups2t64:armhf (2.4.12-0ubuntu1) ... 2170s Setting up libgtk-3-common (3.24.49-2ubuntu1) ... 2170s Setting up libjnr-posix-java (3.1.18-1) ... 2170s Setting up libpangocairo-1.0-0:armhf (1.56.3-1) ... 2170s Setting up libspring-beans-java (4.3.30-2ubuntu1) ... 2170s Setting up libjnr-unixsocket-java (0.38.21-2) ... 2170s Setting up libjetty9-extra-java (9.4.56-1) ... 2170s Setting up libguava-java (32.0.1-1) ... 2170s Setting up liberror-prone-java (2.18.0-1) ... 2170s Processing triggers for libc-bin (2.41-6ubuntu1) ... 2170s Processing triggers for man-db (2.13.0-1) ... 2171s Processing triggers for libglib2.0-0t64:armhf (2.84.1-1) ... 2171s Setting up libgtk-3-0t64:armhf (3.24.49-2ubuntu1) ... 2171s Processing triggers for ca-certificates-java (20240118) ... 2172s Adding debian:ACCVRAIZ1.pem 2172s Adding debian:AC_RAIZ_FNMT-RCM.pem 2172s Adding debian:AC_RAIZ_FNMT-RCM_SERVIDORES_SEGUROS.pem 2172s Adding debian:ANF_Secure_Server_Root_CA.pem 2172s Adding debian:Actalis_Authentication_Root_CA.pem 2172s Adding debian:AffirmTrust_Commercial.pem 2172s Adding debian:AffirmTrust_Networking.pem 2172s Adding debian:AffirmTrust_Premium.pem 2172s Adding debian:AffirmTrust_Premium_ECC.pem 2172s Adding debian:Amazon_Root_CA_1.pem 2172s Adding debian:Amazon_Root_CA_2.pem 2172s Adding debian:Amazon_Root_CA_3.pem 2172s Adding debian:Amazon_Root_CA_4.pem 2172s Adding debian:Atos_TrustedRoot_2011.pem 2172s Adding debian:Atos_TrustedRoot_Root_CA_ECC_TLS_2021.pem 2172s Adding debian:Atos_TrustedRoot_Root_CA_RSA_TLS_2021.pem 2172s Adding debian:Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.pem 2172s Adding debian:BJCA_Global_Root_CA1.pem 2172s Adding debian:BJCA_Global_Root_CA2.pem 2172s Adding debian:Baltimore_CyberTrust_Root.pem 2172s Adding debian:Buypass_Class_2_Root_CA.pem 2172s Adding debian:Buypass_Class_3_Root_CA.pem 2172s Adding debian:CA_Disig_Root_R2.pem 2172s Adding debian:CFCA_EV_ROOT.pem 2172s Adding debian:COMODO_Certification_Authority.pem 2172s Adding debian:COMODO_ECC_Certification_Authority.pem 2172s Adding debian:COMODO_RSA_Certification_Authority.pem 2172s Adding debian:Certainly_Root_E1.pem 2172s Adding debian:Certainly_Root_R1.pem 2172s Adding debian:Certigna.pem 2172s Adding debian:Certigna_Root_CA.pem 2172s Adding debian:Certum_EC-384_CA.pem 2172s Adding debian:Certum_Trusted_Network_CA.pem 2172s Adding debian:Certum_Trusted_Network_CA_2.pem 2172s Adding debian:Certum_Trusted_Root_CA.pem 2172s Adding debian:CommScope_Public_Trust_ECC_Root-01.pem 2172s Adding debian:CommScope_Public_Trust_ECC_Root-02.pem 2172s Adding debian:CommScope_Public_Trust_RSA_Root-01.pem 2172s Adding debian:CommScope_Public_Trust_RSA_Root-02.pem 2172s Adding debian:Comodo_AAA_Services_root.pem 2172s Adding debian:D-TRUST_BR_Root_CA_1_2020.pem 2172s Adding debian:D-TRUST_EV_Root_CA_1_2020.pem 2172s Adding debian:D-TRUST_Root_Class_3_CA_2_2009.pem 2172s Adding debian:D-TRUST_Root_Class_3_CA_2_EV_2009.pem 2172s Adding debian:DigiCert_Assured_ID_Root_CA.pem 2172s Adding debian:DigiCert_Assured_ID_Root_G2.pem 2172s Adding debian:DigiCert_Assured_ID_Root_G3.pem 2172s Adding debian:DigiCert_Global_Root_CA.pem 2172s Adding debian:DigiCert_Global_Root_G2.pem 2172s Adding debian:DigiCert_Global_Root_G3.pem 2172s Adding debian:DigiCert_High_Assurance_EV_Root_CA.pem 2172s Adding debian:DigiCert_TLS_ECC_P384_Root_G5.pem 2172s Adding debian:DigiCert_TLS_RSA4096_Root_G5.pem 2172s Adding debian:DigiCert_Trusted_Root_G4.pem 2172s Adding debian:Entrust.net_Premium_2048_Secure_Server_CA.pem 2172s Adding debian:Entrust_Root_Certification_Authority.pem 2172s Adding debian:Entrust_Root_Certification_Authority_-_EC1.pem 2172s Adding debian:Entrust_Root_Certification_Authority_-_G2.pem 2172s Adding debian:Entrust_Root_Certification_Authority_-_G4.pem 2172s Adding debian:FIRMAPROFESIONAL_CA_ROOT-A_WEB.pem 2172s Adding debian:GDCA_TrustAUTH_R5_ROOT.pem 2172s Adding debian:GLOBALTRUST_2020.pem 2172s Adding debian:GTS_Root_R1.pem 2172s Adding debian:GTS_Root_R2.pem 2172s Adding debian:GTS_Root_R3.pem 2172s Adding debian:GTS_Root_R4.pem 2172s Adding debian:GlobalSign_ECC_Root_CA_-_R4.pem 2172s Adding debian:GlobalSign_ECC_Root_CA_-_R5.pem 2172s Adding debian:GlobalSign_Root_CA.pem 2172s Adding debian:GlobalSign_Root_CA_-_R3.pem 2172s Adding debian:GlobalSign_Root_CA_-_R6.pem 2172s Adding debian:GlobalSign_Root_E46.pem 2172s Adding debian:GlobalSign_Root_R46.pem 2172s Adding debian:Go_Daddy_Class_2_CA.pem 2172s Adding debian:Go_Daddy_Root_Certificate_Authority_-_G2.pem 2172s Adding debian:HARICA_TLS_ECC_Root_CA_2021.pem 2172s Adding debian:HARICA_TLS_RSA_Root_CA_2021.pem 2172s Adding debian:Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.pem 2172s Adding debian:Hellenic_Academic_and_Research_Institutions_RootCA_2015.pem 2172s Adding debian:HiPKI_Root_CA_-_G1.pem 2172s Adding debian:Hongkong_Post_Root_CA_3.pem 2172s Adding debian:ISRG_Root_X1.pem 2172s Adding debian:ISRG_Root_X2.pem 2172s Adding debian:IdenTrust_Commercial_Root_CA_1.pem 2172s Adding debian:IdenTrust_Public_Sector_Root_CA_1.pem 2172s Adding debian:Izenpe.com.pem 2172s Adding debian:Microsec_e-Szigno_Root_CA_2009.pem 2172s Adding debian:Microsoft_ECC_Root_Certificate_Authority_2017.pem 2172s Adding debian:Microsoft_RSA_Root_Certificate_Authority_2017.pem 2172s Adding debian:NAVER_Global_Root_Certification_Authority.pem 2172s Adding debian:NetLock_Arany_=Class_Gold=_Főtanúsítvány.pem 2172s Adding debian:OISTE_WISeKey_Global_Root_GB_CA.pem 2172s Adding debian:OISTE_WISeKey_Global_Root_GC_CA.pem 2172s Adding debian:QuoVadis_Root_CA_1_G3.pem 2172s Adding debian:QuoVadis_Root_CA_2.pem 2172s Adding debian:QuoVadis_Root_CA_2_G3.pem 2172s Adding debian:QuoVadis_Root_CA_3.pem 2172s Adding debian:QuoVadis_Root_CA_3_G3.pem 2172s Adding debian:SSL.com_EV_Root_Certification_Authority_ECC.pem 2172s Adding debian:SSL.com_EV_Root_Certification_Authority_RSA_R2.pem 2172s Adding debian:SSL.com_Root_Certification_Authority_ECC.pem 2172s Adding debian:SSL.com_Root_Certification_Authority_RSA.pem 2172s Adding debian:SSL.com_TLS_ECC_Root_CA_2022.pem 2172s Adding debian:SSL.com_TLS_RSA_Root_CA_2022.pem 2172s Adding debian:SZAFIR_ROOT_CA2.pem 2172s Adding debian:Sectigo_Public_Server_Authentication_Root_E46.pem 2172s Adding debian:Sectigo_Public_Server_Authentication_Root_R46.pem 2172s Adding debian:SecureSign_RootCA11.pem 2172s Adding debian:SecureSign_Root_CA12.pem 2172s Adding debian:SecureSign_Root_CA14.pem 2172s Adding debian:SecureSign_Root_CA15.pem 2172s Adding debian:SecureTrust_CA.pem 2172s Adding debian:Secure_Global_CA.pem 2172s Adding debian:Security_Communication_ECC_RootCA1.pem 2172s Adding debian:Security_Communication_RootCA2.pem 2172s Adding debian:Security_Communication_RootCA3.pem 2172s Adding debian:Starfield_Class_2_CA.pem 2172s Adding debian:Starfield_Root_Certificate_Authority_-_G2.pem 2172s Adding debian:Starfield_Services_Root_Certificate_Authority_-_G2.pem 2172s Adding debian:SwissSign_Gold_CA_-_G2.pem 2172s Adding debian:SwissSign_Silver_CA_-_G2.pem 2172s Adding debian:T-TeleSec_GlobalRoot_Class_2.pem 2172s Adding debian:T-TeleSec_GlobalRoot_Class_3.pem 2172s Adding debian:TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.pem 2172s Adding debian:TWCA_CYBER_Root_CA.pem 2172s Adding debian:TWCA_Global_Root_CA.pem 2172s Adding debian:TWCA_Root_Certification_Authority.pem 2172s Adding debian:Telekom_Security_TLS_ECC_Root_2020.pem 2172s Adding debian:Telekom_Security_TLS_RSA_Root_2023.pem 2172s Adding debian:TeliaSonera_Root_CA_v1.pem 2172s Adding debian:Telia_Root_CA_v2.pem 2172s Adding debian:TrustAsia_Global_Root_CA_G3.pem 2172s Adding debian:TrustAsia_Global_Root_CA_G4.pem 2172s Adding debian:Trustwave_Global_Certification_Authority.pem 2172s Adding debian:Trustwave_Global_ECC_P256_Certification_Authority.pem 2172s Adding debian:Trustwave_Global_ECC_P384_Certification_Authority.pem 2172s Adding debian:TunTrust_Root_CA.pem 2172s Adding debian:UCA_Extended_Validation_Root.pem 2172s Adding debian:UCA_Global_G2_Root.pem 2172s Adding debian:USERTrust_ECC_Certification_Authority.pem 2172s Adding debian:USERTrust_RSA_Certification_Authority.pem 2172s Adding debian:XRamp_Global_CA_Root.pem 2172s Adding debian:certSIGN_ROOT_CA.pem 2172s Adding debian:certSIGN_Root_CA_G2.pem 2172s Adding debian:e-Szigno_Root_CA_2017.pem 2172s Adding debian:ePKI_Root_Certification_Authority.pem 2172s Adding debian:emSign_ECC_Root_CA_-_C3.pem 2172s Adding debian:emSign_ECC_Root_CA_-_G3.pem 2172s Adding debian:emSign_Root_CA_-_C1.pem 2172s Adding debian:emSign_Root_CA_-_G1.pem 2172s Adding debian:vTrus_ECC_Root_CA.pem 2172s Adding debian:vTrus_Root_CA.pem 2172s done. 2172s Setting up default-jre-headless (2:1.21-76) ... 2172s Setting up openjdk-21-jre:armhf (21.0.7~8ea-1) ... 2172s Setting up junit4 (4.13.2-5) ... 2172s Setting up default-jre (2:1.21-76) ... 2172s Setting up libnetty-tcnative-java (2.0.28-1build4) ... 2172s Setting up libzookeeper-java (3.9.3-1build1) ... 2172s Setting up zookeeper (3.9.3-1build1) ... 2172s warn: The home directory `/var/lib/zookeeper' already exists. Not touching this directory. 2172s warn: Warning: The home directory `/var/lib/zookeeper' does not belong to the user you are currently creating. 2172s update-alternatives: using /etc/zookeeper/conf_example to provide /etc/zookeeper/conf (zookeeper-conf) in auto mode 2172s Setting up zookeeperd (3.9.3-1build1) ... 2173s Processing triggers for libc-bin (2.41-6ubuntu1) ... 2191s autopkgtest [14:28:20]: test acceptance-zookeeper: debian/tests/acceptance zookeeper "-e dcs_failsafe_mode" 2191s autopkgtest [14:28:20]: test acceptance-zookeeper: [----------------------- 2198s dpkg-architecture: warning: cannot determine CC system type, falling back to default (native compilation) 2198s ++ ls -1r /usr/lib/postgresql/ 2198s ### PostgreSQL 17 acceptance-zookeeper -e dcs_failsafe_mode ### 2198s + for PG_VERSION in $(ls -1r /usr/lib/postgresql/) 2198s + '[' 17 == 10 -o 17 == 11 ']' 2198s + echo '### PostgreSQL 17 acceptance-zookeeper -e dcs_failsafe_mode ###' 2198s + su postgres -p -c 'set -o pipefail; ETCD_UNSUPPORTED_ARCH=arm DCS=zookeeper PATH=/usr/lib/postgresql/17/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' 2199s May 02 14:28:28 Feature: basic replication # features/basic_replication.feature:1 2199s May 02 14:28:28 We should check that the basic bootstrapping, replication and failover works. 2199s May 02 14:28:28 Scenario: check replication of a single table # features/basic_replication.feature:4 2199s May 02 14:28:28 Given I start postgres-0 # features/steps/basic_replication.py:20 2203s May 02 14:28:32 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 2204s May 02 14:28:33 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 2204s May 02 14:28:33 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:73 2204s May 02 14:28:33 Then I receive a response code 200 # features/steps/patroni_api.py:100 2204s May 02 14:28:33 When I start postgres-1 # features/steps/basic_replication.py:20 2208s May 02 14:28:37 And I configure and start postgres-2 with a tag replicatefrom postgres-0 # features/steps/cascading_replication.py:7 2213s May 02 14:28:42 And "sync" key in DCS has leader=postgres-0 after 20 seconds # features/steps/cascading_replication.py:23 2213s May 02 14:28:42 And I add the table foo to postgres-0 # features/steps/basic_replication.py:66 2213s May 02 14:28:42 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 2214s May 02 14:28:43 Then table foo is present on postgres-2 after 20 seconds # features/steps/basic_replication.py:105 2214s May 02 14:28:43 2214s May 02 14:28:43 Scenario: check restart of sync replica # features/basic_replication.feature:17 2214s May 02 14:28:43 Given I shut down postgres-2 # features/steps/basic_replication.py:41 2215s May 02 14:28:44 Then "sync" key in DCS has sync_standby=postgres-1 after 5 seconds # features/steps/cascading_replication.py:23 2215s May 02 14:28:44 When I start postgres-2 # features/steps/basic_replication.py:20 2218s May 02 14:28:47 And I shut down postgres-1 # features/steps/basic_replication.py:41 2221s May 02 14:28:50 Then "sync" key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 2222s May 02 14:28:51 When I start postgres-1 # features/steps/basic_replication.py:20 2225s May 02 14:28:54 Then "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 2225s May 02 14:28:54 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 2225s May 02 14:28:54 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:144 2225s May 02 14:28:54 2225s May 02 14:28:54 Scenario: check stuck sync replica # features/basic_replication.feature:28 2225s May 02 14:28:54 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:73 2225s May 02 14:28:54 Then I receive a response code 200 # features/steps/patroni_api.py:100 2225s May 02 14:28:54 And I create table on postgres-0 # features/steps/basic_replication.py:85 2225s May 02 14:28:54 And table mytest is present on postgres-1 after 2 seconds # features/steps/basic_replication.py:105 2226s May 02 14:28:55 And table mytest is present on postgres-2 after 2 seconds # features/steps/basic_replication.py:105 2226s May 02 14:28:55 When I pause wal replay on postgres-2 # features/steps/basic_replication.py:76 2226s May 02 14:28:55 And I load data on postgres-0 # features/steps/basic_replication.py:96 2227s May 02 14:28:56 Then "sync" key in DCS has sync_standby=postgres-1 after 15 seconds # features/steps/cascading_replication.py:23 2230s May 02 14:28:59 And I resume wal replay on postgres-2 # features/steps/basic_replication.py:76 2230s May 02 14:28:59 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 2231s May 02 14:29:00 And Status code on GET http://127.0.0.1:8010/async is 200 after 3 seconds # features/steps/patroni_api.py:144 2231s May 02 14:29: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:73 2231s May 02 14:29:00 Then I receive a response code 200 # features/steps/patroni_api.py:100 2231s May 02 14:29:00 And I drop table on postgres-0 # features/steps/basic_replication.py:85 2231s May 02 14:29:00 2231s May 02 14:29:00 Scenario: check multi sync replication # features/basic_replication.feature:44 2231s May 02 14:29: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:73 2231s May 02 14:29:00 Then I receive a response code 200 # features/steps/patroni_api.py:100 2231s May 02 14:29:00 Then "sync" key in DCS has sync_standby=postgres-1,postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 2235s May 02 14:29:04 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 2235s May 02 14:29:04 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 2235s May 02 14:29: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:73 2236s May 02 14:29:05 Then I receive a response code 200 # features/steps/patroni_api.py:100 2236s May 02 14:29:05 And I shut down postgres-1 # features/steps/basic_replication.py:41 2239s May 02 14:29:08 Then "sync" key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 2240s May 02 14:29:09 When I start postgres-1 # features/steps/basic_replication.py:20 2243s May 02 14:29:12 Then "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 2243s May 02 14:29:12 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 2243s May 02 14:29:12 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:144 2243s May 02 14:29:12 2243s May 02 14:29:12 Scenario: check the basic failover in synchronous mode # features/basic_replication.feature:59 2243s May 02 14:29:12 Given I run patronictl.py pause batman # features/steps/patroni_api.py:88 2244s May 02 14:29:13 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2244s May 02 14:29:13 When I sleep for 2 seconds # features/steps/patroni_api.py:41 2246s May 02 14:29:15 And I shut down postgres-0 # features/steps/basic_replication.py:41 2247s May 02 14:29:16 And I run patronictl.py resume batman # features/steps/patroni_api.py:88 2248s May 02 14:29:17 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2248s May 02 14:29:17 And postgres-2 role is the primary after 24 seconds # features/steps/basic_replication.py:117 2269s May 02 14:29:38 And Response on GET http://127.0.0.1:8010/history contains recovery after 10 seconds # features/steps/patroni_api.py:158 2271s May 02 14:29:40 And there is a postgres-2_cb.log with "on_role_change primary batman" in postgres-2 data directory # features/steps/cascading_replication.py:12 2271s May 02 14:29: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:73 2271s May 02 14:29:40 Then I receive a response code 200 # features/steps/patroni_api.py:100 2271s May 02 14:29:40 When I add the table bar to postgres-2 # features/steps/basic_replication.py:66 2271s May 02 14:29:40 Then table bar is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 2271s May 02 14:29:40 And Response on GET http://127.0.0.1:8010/config contains master_start_timeout after 10 seconds # features/steps/patroni_api.py:158 2273s May 02 14:29:42 2273s May 02 14:29:42 Scenario: check rejoin of the former primary with pg_rewind # features/basic_replication.feature:75 2273s May 02 14:29:42 Given I add the table splitbrain to postgres-0 # features/steps/basic_replication.py:66 2273s May 02 14:29:42 And I start postgres-0 # features/steps/basic_replication.py:20 2273s May 02 14:29:42 Then postgres-0 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 2282s May 02 14:29:50 When I add the table buz to postgres-2 # features/steps/basic_replication.py:66 2282s May 02 14:29:51 Then table buz is present on postgres-0 after 20 seconds # features/steps/basic_replication.py:105 2282s May 02 14:29:51 2282s May 02 14:29:51 @reject-duplicate-name 2282s May 02 14:29:51 Scenario: check graceful rejection when two nodes have the same name # features/basic_replication.feature:83 2282s May 02 14:29:51 Given I start duplicate postgres-0 on port 8011 # features/steps/basic_replication.py:25 2284s May 02 14:29:53 Then there is one of ["Can't start; there is already a node named 'postgres-0' running"] CRITICAL in the dup-postgres-0 patroni log after 5 seconds # features/steps/basic_replication.py:133 2288s May 02 14:29:57 2288s May 02 14:29:57 Feature: cascading replication # features/cascading_replication.feature:1 2288s May 02 14:29:57 We should check that patroni can do base backup and streaming from the replica 2288s May 02 14:29:57 Scenario: check a base backup and streaming replication from a replica # features/cascading_replication.feature:4 2288s May 02 14:29:57 Given I start postgres-0 # features/steps/basic_replication.py:20 2293s May 02 14:30:02 And postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 2293s May 02 14:30:02 And I configure and start postgres-1 with a tag clonefrom true # features/steps/cascading_replication.py:7 2298s May 02 14:30:07 And replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 2299s May 02 14:30:08 And I create label with "postgres-0" in postgres-0 data directory # features/steps/cascading_replication.py:18 2299s May 02 14:30:08 And I create label with "postgres-1" in postgres-1 data directory # features/steps/cascading_replication.py:18 2299s May 02 14:30:08 And "members/postgres-1" key in DCS has state=running after 12 seconds # features/steps/cascading_replication.py:23 2299s May 02 14:30:08 And I configure and start postgres-2 with a tag replicatefrom postgres-1 # features/steps/cascading_replication.py:7 2304s May 02 14:30:13 Then replication works from postgres-0 to postgres-2 after 30 seconds # features/steps/basic_replication.py:124 2305s May 02 14:30:14 And there is a label with "postgres-1" in postgres-2 data directory # features/steps/cascading_replication.py:12 2310s May 02 14:30:19 2310s May 02 14:30:19 Feature: citus # features/citus.feature:1 2310s May 02 14:30:19 We should check that coordinator discovers and registers workers and clients don't have errors when worker cluster switches over 2310s May 02 14:30:19 Scenario: check that worker cluster is registered in the coordinator # features/citus.feature:4 2310s SKIP FEATURE citus: Citus extension isn't available 2310s SKIP Scenario check that worker cluster is registered in the coordinator: Citus extension isn't available 2310s SKIP Scenario coordinator failover updates pg_dist_node: Citus extension isn't available 2310s SKIP Scenario worker switchover doesn't break client queries on the coordinator: Citus extension isn't available 2310s SKIP Scenario worker primary restart doesn't break client queries on the coordinator: Citus extension isn't available 2310s SKIP Scenario check that in-flight transaction is rolled back after timeout when other workers need to change pg_dist_node: Citus extension isn't available 2310s May 02 14:30:19 Given I start postgres-0 in citus group 0 # None 2310s May 02 14:30:19 And I start postgres-2 in citus group 1 # None 2311s May 02 14:30:19 Then postgres-0 is a leader in a group 0 after 10 seconds # None 2311s May 02 14:30:19 And postgres-2 is a leader in a group 1 after 10 seconds # None 2311s May 02 14:30:19 When I start postgres-1 in citus group 0 # None 2311s May 02 14:30:19 And I start postgres-3 in citus group 1 # None 2311s May 02 14:30:19 Then replication works from postgres-0 to postgres-1 after 15 seconds # None 2311s May 02 14:30:19 Then replication works from postgres-2 to postgres-3 after 15 seconds # None 2311s May 02 14:30:19 And postgres-0 is registered in the postgres-0 as the primary in group 0 after 5 seconds # None 2311s May 02 14:30:19 And postgres-1 is registered in the postgres-0 as the secondary in group 0 after 5 seconds # None 2311s May 02 14:30:19 And postgres-2 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 2311s May 02 14:30:19 And postgres-3 is registered in the postgres-0 as the secondary in group 1 after 5 seconds # None 2311s May 02 14:30:19 2311s May 02 14:30:19 Scenario: coordinator failover updates pg_dist_node # features/citus.feature:18 2311s May 02 14:30:19 Given I run patronictl.py failover batman --group 0 --candidate postgres-1 --force # None 2311s May 02 14:30:19 Then postgres-1 role is the primary after 10 seconds # None 2311s May 02 14:30:19 And "members/postgres-0" key in a group 0 in DCS has state=running after 15 seconds # None 2311s May 02 14:30:19 And replication works from postgres-1 to postgres-0 after 15 seconds # None 2311s May 02 14:30:19 And postgres-1 is registered in the postgres-2 as the primary in group 0 after 5 seconds # None 2311s May 02 14:30:19 And postgres-0 is registered in the postgres-2 as the secondary in group 0 after 15 seconds # None 2311s May 02 14:30:19 And "sync" key in a group 0 in DCS has sync_standby=postgres-0 after 15 seconds # None 2311s May 02 14:30:19 When I run patronictl.py switchover batman --group 0 --candidate postgres-0 --force # None 2311s May 02 14:30:19 Then postgres-0 role is the primary after 10 seconds # None 2311s May 02 14:30:19 And replication works from postgres-0 to postgres-1 after 15 seconds # None 2311s May 02 14:30:19 And postgres-0 is registered in the postgres-2 as the primary in group 0 after 5 seconds # None 2311s May 02 14:30:19 And postgres-1 is registered in the postgres-2 as the secondary in group 0 after 15 seconds # None 2311s May 02 14:30:19 And "sync" key in a group 0 in DCS has sync_standby=postgres-1 after 15 seconds # None 2311s May 02 14:30:19 2311s May 02 14:30:19 Scenario: worker switchover doesn't break client queries on the coordinator # features/citus.feature:33 2311s May 02 14:30:19 Given I create a distributed table on postgres-0 # None 2311s May 02 14:30:19 And I start a thread inserting data on postgres-0 # None 2311s May 02 14:30:19 When I run patronictl.py switchover batman --group 1 --force # None 2311s May 02 14:30:19 Then I receive a response returncode 0 # None 2311s May 02 14:30:19 And postgres-3 role is the primary after 10 seconds # None 2311s May 02 14:30:19 And "members/postgres-2" key in a group 1 in DCS has state=running after 15 seconds # None 2311s May 02 14:30:19 And replication works from postgres-3 to postgres-2 after 15 seconds # None 2311s May 02 14:30:19 And postgres-3 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 2311s May 02 14:30:19 And postgres-2 is registered in the postgres-0 as the secondary in group 1 after 15 seconds # None 2311s May 02 14:30:19 And "sync" key in a group 1 in DCS has sync_standby=postgres-2 after 15 seconds # None 2311s May 02 14:30:19 And a thread is still alive # None 2311s May 02 14:30:19 When I run patronictl.py switchover batman --group 1 --force # None 2311s May 02 14:30:19 Then I receive a response returncode 0 # None 2311s May 02 14:30:19 And postgres-2 role is the primary after 10 seconds # None 2311s May 02 14:30:19 And replication works from postgres-2 to postgres-3 after 15 seconds # None 2311s May 02 14:30:19 And postgres-2 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 2311s May 02 14:30:19 And postgres-3 is registered in the postgres-0 as the secondary in group 1 after 15 seconds # None 2311s May 02 14:30:19 And "sync" key in a group 1 in DCS has sync_standby=postgres-3 after 15 seconds # None 2311s May 02 14:30:19 And a thread is still alive # None 2311s May 02 14:30:19 When I stop a thread # None 2311s May 02 14:30:19 Then a distributed table on postgres-0 has expected rows # None 2311s May 02 14:30:19 2311s May 02 14:30:19 Scenario: worker primary restart doesn't break client queries on the coordinator # features/citus.feature:56 2311s May 02 14:30:19 Given I cleanup a distributed table on postgres-0 # None 2311s May 02 14:30:19 And I start a thread inserting data on postgres-0 # None 2311s May 02 14:30:19 When I run patronictl.py restart batman postgres-2 --group 1 --force # None 2311s May 02 14:30:19 Then I receive a response returncode 0 # None 2311s May 02 14:30:19 And postgres-2 role is the primary after 10 seconds # None 2311s May 02 14:30:19 And replication works from postgres-2 to postgres-3 after 15 seconds # None 2311s May 02 14:30:19 And postgres-2 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 2311s May 02 14:30:19 And postgres-3 is registered in the postgres-0 as the secondary in group 1 after 15 seconds # None 2311s May 02 14:30:19 And a thread is still alive # None 2311s May 02 14:30:19 When I stop a thread # None 2311s May 02 14:30:19 Then a distributed table on postgres-0 has expected rows # None 2311s May 02 14:30:19 2311s May 02 14:30:19 Scenario: check that in-flight transaction is rolled back after timeout when other workers need to change pg_dist_node # features/citus.feature:69 2311s May 02 14:30:19 Given I start postgres-4 in citus group 2 # None 2311s May 02 14:30:19 Then postgres-4 is a leader in a group 2 after 10 seconds # None 2311s May 02 14:30:19 And "members/postgres-4" key in a group 2 in DCS has role=primary after 3 seconds # None 2311s May 02 14:30:19 When I run patronictl.py edit-config batman --group 2 -s ttl=20 --force # None 2311s May 02 14:30:19 Then I receive a response returncode 0 # None 2311s May 02 14:30:19 And I receive a response output "+ttl: 20" # None 2311s May 02 14:30:19 Then postgres-4 is registered in the postgres-2 as the primary in group 2 after 5 seconds # None 2311s May 02 14:30:19 When I shut down postgres-4 # None 2311s May 02 14:30:19 Then there is a transaction in progress on postgres-0 changing pg_dist_node after 5 seconds # None 2311s May 02 14:30:19 When I run patronictl.py restart batman postgres-2 --group 1 --force # None 2311s May 02 14:30:19 Then a transaction finishes in 20 seconds # None 2311s May 02 14:30:19 2311s May 02 14:30:19 Feature: custom bootstrap # features/custom_bootstrap.feature:1 2311s May 02 14:30:19 We should check that patroni can bootstrap a new cluster from a backup 2311s May 02 14:30:19 Scenario: clone existing cluster using pg_basebackup # features/custom_bootstrap.feature:4 2311s May 02 14:30:19 Given I start postgres-0 # features/steps/basic_replication.py:20 2316s May 02 14:30:24 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 2316s May 02 14:30:24 When I add the table foo to postgres-0 # features/steps/basic_replication.py:66 2316s May 02 14:30:25 And I start postgres-1 in a cluster batman1 as a clone of postgres-0 # features/steps/custom_bootstrap.py:6 2321s May 02 14:30:30 Then postgres-1 is a leader of batman1 after 10 seconds # features/steps/custom_bootstrap.py:16 2322s May 02 14:30:31 Then table foo is present on postgres-1 after 10 seconds # features/steps/basic_replication.py:105 2322s May 02 14:30:31 2322s May 02 14:30:31 Scenario: make a backup and do a restore into a new cluster # features/custom_bootstrap.feature:12 2322s May 02 14:30:31 Given I add the table bar to postgres-1 # features/steps/basic_replication.py:66 2322s May 02 14:30:31 And I do a backup of postgres-1 # features/steps/custom_bootstrap.py:25 2323s May 02 14:30:32 When I start postgres-2 in a cluster batman2 from backup # features/steps/custom_bootstrap.py:11 2330s May 02 14:30:39 Then postgres-2 is a leader of batman2 after 30 seconds # features/steps/custom_bootstrap.py:16 2330s May 02 14:30:39 And table bar is present on postgres-2 after 10 seconds # features/steps/basic_replication.py:105 2336s May 02 14:30:45 2336s May 02 14:30:45 Feature: ignored slots # features/ignored_slots.feature:1 2336s May 02 14:30:45 2336s May 02 14:30:45 Scenario: check ignored slots aren't removed on failover/switchover # features/ignored_slots.feature:2 2336s May 02 14:30:45 Given I start postgres-1 # features/steps/basic_replication.py:20 2341s May 02 14:30:50 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 2341s May 02 14:30:50 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 2341s May 02 14:30:50 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:73 2341s May 02 14:30:50 Then I receive a response code 200 # features/steps/patroni_api.py:100 2341s May 02 14:30:50 And Response on GET http://127.0.0.1:8009/config contains ignore_slots after 10 seconds # features/steps/patroni_api.py:158 2341s May 02 14:30:50 When I shut down postgres-1 # features/steps/basic_replication.py:41 2343s May 02 14:30:52 And I start postgres-1 # features/steps/basic_replication.py:20 2345s May 02 14:30:54 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 2346s May 02 14:30:55 And "members/postgres-1" key in DCS has role=primary after 10 seconds # features/steps/cascading_replication.py:23 2347s May 02 14:30:56 And postgres-1 role is the primary after 20 seconds # features/steps/basic_replication.py:117 2347s May 02 14:30:56 When I create a logical replication slot unmanaged_slot_0 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 2347s May 02 14:30:56 And I create a logical replication slot unmanaged_slot_1 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 2347s May 02 14:30:56 And I create a logical replication slot unmanaged_slot_2 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 2347s May 02 14:30:56 And I create a logical replication slot unmanaged_slot_3 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 2347s May 02 14:30:56 And I create a logical replication slot dummy_slot on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 2347s May 02 14:30:56 Then postgres-1 has a logical replication slot named unmanaged_slot_0 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 2347s May 02 14:30:56 And postgres-1 has a logical replication slot named unmanaged_slot_1 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 2347s May 02 14:30:56 And postgres-1 has a logical replication slot named unmanaged_slot_2 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 2347s May 02 14:30:56 And postgres-1 has a logical replication slot named unmanaged_slot_3 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 2347s May 02 14:30:56 When I start postgres-0 # features/steps/basic_replication.py:20 2352s May 02 14:31:01 Then "members/postgres-0" key in DCS has role=replica after 10 seconds # features/steps/cascading_replication.py:23 2353s May 02 14:31:02 And postgres-0 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 2353s May 02 14:31:02 And replication works from postgres-1 to postgres-0 after 20 seconds # features/steps/basic_replication.py:124 2354s May 02 14:31:03 When I shut down postgres-1 # features/steps/basic_replication.py:41 2356s May 02 14:31:05 Then "members/postgres-0" key in DCS has role=primary after 10 seconds # features/steps/cascading_replication.py:23 2357s May 02 14:31:06 When I start postgres-1 # features/steps/basic_replication.py:20 2361s May 02 14:31:09 Then postgres-1 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 2361s May 02 14:31:09 And "members/postgres-1" key in DCS has role=replica after 10 seconds # features/steps/cascading_replication.py:23 2361s May 02 14:31:09 And I sleep for 2 seconds # features/steps/patroni_api.py:41 2362s May 02 14:31:11 And postgres-1 has a logical replication slot named unmanaged_slot_0 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 2362s May 02 14:31:11 And postgres-1 has a logical replication slot named unmanaged_slot_1 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 2362s May 02 14:31:11 And postgres-1 has a logical replication slot named unmanaged_slot_2 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 2362s May 02 14:31:11 And postgres-1 has a logical replication slot named unmanaged_slot_3 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 2362s May 02 14:31:11 And postgres-1 does not have a replication slot named dummy_slot # features/steps/slots.py:41 2362s May 02 14:31:11 When I shut down postgres-0 # features/steps/basic_replication.py:41 2364s May 02 14:31:13 Then "members/postgres-1" key in DCS has role=primary after 10 seconds # features/steps/cascading_replication.py:23 2365s May 02 14:31:14 And postgres-1 has a logical replication slot named unmanaged_slot_0 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 2365s May 02 14:31:14 And postgres-1 has a logical replication slot named unmanaged_slot_1 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 2365s May 02 14:31:14 And postgres-1 has a logical replication slot named unmanaged_slot_2 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 2365s May 02 14:31:14 And postgres-1 has a logical replication slot named unmanaged_slot_3 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 2368s May 02 14:31:17 2368s May 02 14:31:17 Feature: nostream node # features/nostream_node.feature:1 2368s May 02 14:31:17 2368s May 02 14:31:17 Scenario: check nostream node is recovering from archive # features/nostream_node.feature:3 2368s May 02 14:31:17 When I start postgres-0 # features/steps/basic_replication.py:20 2373s May 02 14:31:22 And I configure and start postgres-1 with a tag nostream true # features/steps/cascading_replication.py:7 2378s May 02 14:31:27 Then "members/postgres-1" key in DCS has replication_state=in archive recovery after 10 seconds # features/steps/cascading_replication.py:23 2378s May 02 14:31:27 And replication works from postgres-0 to postgres-1 after 30 seconds # features/steps/basic_replication.py:124 2383s May 02 14:31:32 2383s May 02 14:31:32 @slot-advance 2383s May 02 14:31:32 Scenario: check permanent logical replication slots are not copied # features/nostream_node.feature:10 2383s May 02 14:31:32 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:73 2383s May 02 14:31:32 Then I receive a response code 200 # features/steps/patroni_api.py:100 2383s May 02 14:31:32 When I run patronictl.py restart batman postgres-0 --force # features/steps/patroni_api.py:88 2385s May 02 14:31:34 Then postgres-0 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:20 2386s May 02 14:31:35 When I configure and start postgres-2 with a tag replicatefrom postgres-1 # features/steps/cascading_replication.py:7 2391s May 02 14:31:40 Then "members/postgres-2" key in DCS has replication_state=streaming after 10 seconds # features/steps/cascading_replication.py:23 2391s May 02 14:31:40 And postgres-1 does not have a replication slot named test_logical # features/steps/slots.py:41 2391s May 02 14:31:40 And postgres-2 does not have a replication slot named test_logical # features/steps/slots.py:41 2391s May 02 14:31:40 2391s May 02 14:31:40 @slot-advance 2391s May 02 14:31:40 Scenario: check that slots are written to the /status key # features/nostream_node.feature:21 2391s May 02 14:31:40 Given "status" key in DCS has postgres_0 in slots # features/steps/slots.py:118 2391s May 02 14:31:40 And "status" key in DCS has postgres_2 in slots # features/steps/slots.py:118 2391s May 02 14:31:40 And "status" key in DCS has test_logical in slots # features/steps/slots.py:118 2391s May 02 14:31:40 And "status" key in DCS has test_logical in slots # features/steps/slots.py:118 2391s May 02 14:31:40 And "status" key in DCS does not have postgres_1 in slots # features/steps/slots.py:124 2397s May 02 14:31:46 2397s May 02 14:31:46 Feature: patroni api # features/patroni_api.feature:1 2397s May 02 14:31:46 We should check that patroni correctly responds to valid and not-valid API requests. 2397s May 02 14:31:46 Scenario: check API requests on a stand-alone server # features/patroni_api.feature:4 2397s May 02 14:31:46 Given I start postgres-0 # features/steps/basic_replication.py:20 2402s May 02 14:31:51 And postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 2402s May 02 14:31:51 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:63 2402s May 02 14:31:51 Then I receive a response code 200 # features/steps/patroni_api.py:100 2402s May 02 14:31:51 And I receive a response state running # features/steps/patroni_api.py:100 2402s May 02 14:31:51 And I receive a response role primary # features/steps/patroni_api.py:100 2402s May 02 14:31:51 When I issue a GET request to http://127.0.0.1:8008/standby_leader # features/steps/patroni_api.py:63 2402s May 02 14:31:51 Then I receive a response code 503 # features/steps/patroni_api.py:100 2402s May 02 14:31:51 When I issue a GET request to http://127.0.0.1:8008/health # features/steps/patroni_api.py:63 2402s May 02 14:31:51 Then I receive a response code 200 # features/steps/patroni_api.py:100 2402s May 02 14:31:51 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:63 2402s May 02 14:31:51 Then I receive a response code 503 # features/steps/patroni_api.py:100 2402s May 02 14:31:51 When I issue a POST request to http://127.0.0.1:8008/reinitialize with {"force": true} # features/steps/patroni_api.py:73 2402s May 02 14:31:51 Then I receive a response code 503 # features/steps/patroni_api.py:100 2402s May 02 14:31:51 And I receive a response text I am the leader, can not reinitialize # features/steps/patroni_api.py:100 2402s May 02 14:31:51 When I run patronictl.py switchover batman --primary postgres-0 --force # features/steps/patroni_api.py:88 2403s May 02 14:31:52 Then I receive a response returncode 1 # features/steps/patroni_api.py:100 2403s May 02 14:31:52 And I receive a response output "Error: No candidates found to switchover to" # features/steps/patroni_api.py:100 2403s May 02 14:31:52 When I issue a POST request to http://127.0.0.1:8008/switchover with {"leader": "postgres-0"} # features/steps/patroni_api.py:73 2403s May 02 14:31:52 Then I receive a response code 412 # features/steps/patroni_api.py:100 2403s May 02 14:31:52 And I receive a response text switchover is not possible: cluster does not have members except leader # features/steps/patroni_api.py:100 2403s May 02 14:31:52 When I issue an empty POST request to http://127.0.0.1:8008/failover # features/steps/patroni_api.py:68 2404s May 02 14:31:52 Then I receive a response code 400 # features/steps/patroni_api.py:100 2404s May 02 14:31:52 When I issue a POST request to http://127.0.0.1:8008/failover with {"foo": "bar"} # features/steps/patroni_api.py:73 2404s May 02 14:31:53 Then I receive a response code 400 # features/steps/patroni_api.py:100 2404s May 02 14:31:53 And I receive a response text "Failover could be performed only to a specific candidate" # features/steps/patroni_api.py:100 2404s May 02 14:31:53 2404s May 02 14:31:53 Scenario: check local configuration reload # features/patroni_api.feature:32 2404s May 02 14:31:53 Given I add tag new_tag new_value to postgres-0 config # features/steps/patroni_api.py:139 2404s May 02 14:31:53 And I issue an empty POST request to http://127.0.0.1:8008/reload # features/steps/patroni_api.py:68 2404s May 02 14:31:53 Then I receive a response code 202 # features/steps/patroni_api.py:100 2404s May 02 14:31:53 2404s May 02 14:31:53 Scenario: check dynamic configuration change via DCS # features/patroni_api.feature:37 2404s May 02 14:31:53 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:73 2404s May 02 14:31:53 Then I receive a response code 200 # features/steps/patroni_api.py:100 2404s May 02 14:31:53 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 11 seconds # features/steps/patroni_api.py:158 2406s May 02 14:31:55 When I issue a GET request to http://127.0.0.1:8008/config # features/steps/patroni_api.py:63 2406s May 02 14:31:55 Then I receive a response code 200 # features/steps/patroni_api.py:100 2406s May 02 14:31:55 And I receive a response ttl 20 # features/steps/patroni_api.py:100 2406s May 02 14:31:55 When I issue a GET request to http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:63 2406s May 02 14:31:55 Then I receive a response code 200 # features/steps/patroni_api.py:100 2406s May 02 14:31:55 And I receive a response tags {'new_tag': 'new_value'} # features/steps/patroni_api.py:100 2406s May 02 14:31:55 And I sleep for 4 seconds # features/steps/patroni_api.py:41 2410s May 02 14:31:59 2410s May 02 14:31:59 Scenario: check the scheduled restart # features/patroni_api.feature:49 2410s May 02 14:31:59 Given I run patronictl.py edit-config -p 'superuser_reserved_connections=6' --force batman # features/steps/patroni_api.py:88 2411s May 02 14:32:00 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2411s May 02 14:32:00 And I receive a response output "+ superuser_reserved_connections: 6" # features/steps/patroni_api.py:100 2411s May 02 14:32:00 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 5 seconds # features/steps/patroni_api.py:158 2411s May 02 14:32: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:126 2411s May 02 14:32:00 Then I receive a response code 202 # features/steps/patroni_api.py:100 2411s May 02 14:32:00 And I sleep for 8 seconds # features/steps/patroni_api.py:41 2419s May 02 14:32:08 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 10 seconds # features/steps/patroni_api.py:158 2419s May 02 14:32: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:126 2419s May 02 14:32:08 Then I receive a response code 202 # features/steps/patroni_api.py:100 2419s May 02 14:32: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:173 2426s May 02 14:32:15 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2427s May 02 14:32:16 2427s May 02 14:32:16 Scenario: check API requests for the primary-replica pair in the pause mode # features/patroni_api.feature:63 2427s May 02 14:32:16 Given I start postgres-1 # features/steps/basic_replication.py:20 2432s May 02 14:32:21 Then replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 2433s May 02 14:32:22 When I run patronictl.py pause batman # features/steps/patroni_api.py:88 2434s May 02 14:32:23 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2434s May 02 14:32:23 When I kill postmaster on postgres-1 # features/steps/basic_replication.py:56 2434s May 02 14:32:23 waiting for server to shut down.... done 2434s May 02 14:32:23 server stopped 2434s May 02 14:32:23 And I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 2434s May 02 14:32:23 Then I receive a response code 503 # features/steps/patroni_api.py:100 2434s May 02 14:32:23 And "members/postgres-1" key in DCS has state=stopped after 10 seconds # features/steps/cascading_replication.py:23 2435s May 02 14:32:24 When I run patronictl.py restart batman postgres-1 --force # features/steps/patroni_api.py:88 2438s May 02 14:32:27 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2438s May 02 14:32:27 Then replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 2439s May 02 14:32:28 And I sleep for 2 seconds # features/steps/patroni_api.py:41 2441s May 02 14:32:30 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 2441s May 02 14:32:30 Then I receive a response code 200 # features/steps/patroni_api.py:100 2441s May 02 14:32:30 And I receive a response state running # features/steps/patroni_api.py:100 2441s May 02 14:32:30 And I receive a response role replica # features/steps/patroni_api.py:100 2441s May 02 14:32:30 When I run patronictl.py reinit batman postgres-1 --force --wait # features/steps/patroni_api.py:88 2446s May 02 14:32:35 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2446s May 02 14:32:35 And I receive a response output "Success: reinitialize for member postgres-1" # features/steps/patroni_api.py:100 2446s May 02 14:32:35 And postgres-1 role is the secondary after 30 seconds # features/steps/basic_replication.py:117 2447s May 02 14:32:36 And replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 2448s May 02 14:32:37 When I run patronictl.py restart batman postgres-0 --force # features/steps/patroni_api.py:88 2450s May 02 14:32:39 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2450s May 02 14:32:39 And I receive a response output "Success: restart on member postgres-0" # features/steps/patroni_api.py:100 2450s May 02 14:32:39 And postgres-0 role is the primary after 5 seconds # features/steps/basic_replication.py:117 2451s May 02 14:32:40 2451s May 02 14:32:40 Scenario: check the switchover via the API in the pause mode # features/patroni_api.feature:90 2451s May 02 14:32:40 Given I issue a POST request to http://127.0.0.1:8008/switchover with {"leader": "postgres-0", "candidate": "postgres-1"} # features/steps/patroni_api.py:73 2453s May 02 14:32:42 Then I receive a response code 200 # features/steps/patroni_api.py:100 2453s May 02 14:32:42 And postgres-1 is a leader after 5 seconds # features/steps/patroni_api.py:31 2453s May 02 14:32:42 And postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2454s May 02 14:32:43 And postgres-0 role is the secondary after 10 seconds # features/steps/basic_replication.py:117 2460s May 02 14:32:49 And replication works from postgres-1 to postgres-0 after 20 seconds # features/steps/basic_replication.py:124 2460s May 02 14:32:49 And "members/postgres-0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 2461s May 02 14:32:50 When I issue a GET request to http://127.0.0.1:8008/primary # features/steps/patroni_api.py:63 2461s May 02 14:32:50 Then I receive a response code 503 # features/steps/patroni_api.py:100 2461s May 02 14:32:50 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:63 2461s May 02 14:32:50 Then I receive a response code 200 # features/steps/patroni_api.py:100 2461s May 02 14:32:50 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 2461s May 02 14:32:50 Then I receive a response code 200 # features/steps/patroni_api.py:100 2461s May 02 14:32:50 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 2461s May 02 14:32:50 Then I receive a response code 503 # features/steps/patroni_api.py:100 2461s May 02 14:32:50 2461s May 02 14:32:50 Scenario: check the scheduled switchover # features/patroni_api.feature:107 2461s May 02 14:32:50 Given I issue a scheduled switchover from postgres-1 to postgres-0 in 10 seconds # features/steps/patroni_api.py:119 2462s May 02 14:32:51 Then I receive a response returncode 1 # features/steps/patroni_api.py:100 2462s May 02 14:32:51 And I receive a response output "Can't schedule switchover in the paused state" # features/steps/patroni_api.py:100 2462s May 02 14:32:51 When I run patronictl.py resume batman # features/steps/patroni_api.py:88 2463s May 02 14:32:52 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2463s May 02 14:32:52 Given I issue a scheduled switchover from postgres-1 to postgres-0 in 10 seconds # features/steps/patroni_api.py:119 2464s May 02 14:32:53 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2464s May 02 14:32:53 And postgres-0 is a leader after 20 seconds # features/steps/patroni_api.py:31 2475s May 02 14:33:04 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2475s May 02 14:33:04 And postgres-1 role is the secondary after 10 seconds # features/steps/basic_replication.py:117 2478s May 02 14:33:07 And replication works from postgres-0 to postgres-1 after 25 seconds # features/steps/basic_replication.py:124 2478s May 02 14:33:07 And "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 2478s May 02 14:33:07 When I issue a GET request to http://127.0.0.1:8008/primary # features/steps/patroni_api.py:63 2478s May 02 14:33:07 Then I receive a response code 200 # features/steps/patroni_api.py:100 2478s May 02 14:33:07 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:63 2478s May 02 14:33:07 Then I receive a response code 503 # features/steps/patroni_api.py:100 2478s May 02 14:33:07 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 2479s May 02 14:33:07 Then I receive a response code 503 # features/steps/patroni_api.py:100 2479s May 02 14:33:08 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 2479s May 02 14:33:08 Then I receive a response code 200 # features/steps/patroni_api.py:100 2483s May 02 14:33:12 2483s May 02 14:33:12 Feature: permanent slots # features/permanent_slots.feature:1 2483s May 02 14:33:12 2483s May 02 14:33:12 Scenario: check that physical permanent slots are created # features/permanent_slots.feature:2 2483s May 02 14:33:12 Given I start postgres-0 # features/steps/basic_replication.py:20 2488s May 02 14:33:17 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 2488s May 02 14:33:17 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 2488s May 02 14:33:17 When I issue a PATCH request to http://127.0.0.1:8008/config with {"slots":{"test_physical":0,"postgres_3":0},"postgresql":{"parameters":{"wal_level":"logical"}}} # features/steps/patroni_api.py:73 2488s May 02 14:33:17 Then I receive a response code 200 # features/steps/patroni_api.py:100 2488s May 02 14:33:17 And Response on GET http://127.0.0.1:8008/config contains slots after 10 seconds # features/steps/patroni_api.py:158 2488s May 02 14:33:17 When I start postgres-1 # features/steps/basic_replication.py:20 2493s May 02 14:33:22 And I configure and start postgres-2 with a tag nofailover true # features/steps/cascading_replication.py:7 2498s May 02 14:33:27 And I configure and start postgres-3 with a tag replicatefrom postgres-2 # features/steps/cascading_replication.py:7 2503s May 02 14:33:32 Then postgres-0 has a physical replication slot named test_physical after 10 seconds # features/steps/slots.py:82 2503s May 02 14:33:32 And postgres-0 has a physical replication slot named postgres_1 after 10 seconds # features/steps/slots.py:82 2503s May 02 14:33:32 And postgres-0 has a physical replication slot named postgres_2 after 10 seconds # features/steps/slots.py:82 2503s May 02 14:33:32 And postgres-2 has a physical replication slot named postgres_3 after 10 seconds # features/steps/slots.py:82 2503s May 02 14:33:32 And postgres-2 does not have a replication slot named test_physical # features/steps/slots.py:41 2503s May 02 14:33:32 2503s May 02 14:33:32 @slot-advance 2503s May 02 14:33:32 Scenario: check that logical permanent slots are created # features/permanent_slots.feature:19 2503s May 02 14:33:32 Given I run patronictl.py restart batman postgres-0 --force # features/steps/patroni_api.py:88 2505s May 02 14:33:34 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:73 2505s May 02 14:33:34 Then postgres-0 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:20 2506s May 02 14:33:35 2506s May 02 14:33:35 @slot-advance 2506s May 02 14:33:35 Scenario: check that permanent slots are created on replicas # features/permanent_slots.feature:25 2506s May 02 14:33:35 Given postgres-1 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:20 2511s May 02 14:33:40 Then Logical slot test_logical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 2511s May 02 14:33:40 And Logical slot test_logical is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 2512s May 02 14:33:41 And postgres-1 has a physical replication slot named test_physical after 2 seconds # features/steps/slots.py:82 2512s May 02 14:33:41 And postgres-2 does not have a replication slot named test_logical # features/steps/slots.py:41 2512s May 02 14:33:41 And postgres-3 has a physical replication slot named test_physical after 2 seconds # features/steps/slots.py:82 2512s May 02 14:33:41 2512s May 02 14:33:41 @slot-advance 2512s May 02 14:33:41 Scenario: check permanent physical slots that match with member names # features/permanent_slots.feature:34 2512s May 02 14:33:41 Given postgres-0 has a physical replication slot named postgres_3 after 2 seconds # features/steps/slots.py:82 2512s May 02 14:33:41 And postgres-1 has a physical replication slot named postgres_0 after 2 seconds # features/steps/slots.py:82 2512s May 02 14:33:41 And postgres-1 has a physical replication slot named postgres_2 after 2 seconds # features/steps/slots.py:82 2512s May 02 14:33:41 And postgres-1 has a physical replication slot named postgres_3 after 2 seconds # features/steps/slots.py:82 2512s May 02 14:33:41 And postgres-2 does not have a replication slot named postgres_0 # features/steps/slots.py:41 2512s May 02 14:33:41 And postgres-2 does not have a replication slot named postgres_1 # features/steps/slots.py:41 2512s May 02 14:33:41 And postgres-2 has a physical replication slot named postgres_3 after 2 seconds # features/steps/slots.py:82 2512s May 02 14:33:41 And postgres-3 has a physical replication slot named postgres_0 after 2 seconds # features/steps/slots.py:82 2512s May 02 14:33:41 And postgres-3 has a physical replication slot named postgres_1 after 2 seconds # features/steps/slots.py:82 2512s May 02 14:33:41 And postgres-3 has a physical replication slot named postgres_2 after 2 seconds # features/steps/slots.py:82 2512s May 02 14:33:41 2512s May 02 14:33:41 @slot-advance 2512s May 02 14:33:41 Scenario: check that permanent slots are advanced on replicas # features/permanent_slots.feature:47 2512s May 02 14:33:41 Given I add the table replicate_me to postgres-0 # features/steps/basic_replication.py:66 2512s May 02 14:33:41 When I get all changes from logical slot test_logical on postgres-0 # features/steps/slots.py:72 2512s May 02 14:33:41 And I get all changes from physical slot test_physical on postgres-0 # features/steps/slots.py:77 2512s May 02 14:33:41 Then Logical slot test_logical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 2515s May 02 14:33:44 And Physical slot test_physical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 2515s May 02 14:33:44 And Logical slot test_logical is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 2515s May 02 14:33:44 And Physical slot test_physical is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 2515s May 02 14:33:44 And Physical slot postgres_1 is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 2515s May 02 14:33:44 And Physical slot postgres_3 is in sync between postgres-2 and postgres-0 after 20 seconds # features/steps/slots.py:52 2515s May 02 14:33:44 And Physical slot postgres_3 is in sync between postgres-2 and postgres-1 after 10 seconds # features/steps/slots.py:52 2515s May 02 14:33:44 2515s May 02 14:33:44 @slot-advance 2515s May 02 14:33:44 Scenario: check that permanent slots and member slots are written to the /status key # features/permanent_slots.feature:60 2515s May 02 14:33:44 Given "status" key in DCS has test_physical in slots # features/steps/slots.py:118 2515s May 02 14:33:44 And "status" key in DCS has postgres_0 in slots # features/steps/slots.py:118 2515s May 02 14:33:44 And "status" key in DCS has postgres_1 in slots # features/steps/slots.py:118 2515s May 02 14:33:44 And "status" key in DCS has postgres_2 in slots # features/steps/slots.py:118 2515s May 02 14:33:44 And "status" key in DCS has postgres_3 in slots # features/steps/slots.py:118 2515s May 02 14:33:44 2515s May 02 14:33:44 @slot-advance 2515s May 02 14:33:44 Scenario: check that only non-permanent member slots are written to the retain_slots in /status key # features/permanent_slots.feature:68 2515s May 02 14:33:44 Given "status" key in DCS has postgres_0 in retain_slots # features/steps/slots.py:118 2515s May 02 14:33:44 And "status" key in DCS has postgres_1 in retain_slots # features/steps/slots.py:118 2515s May 02 14:33:44 And "status" key in DCS has postgres_2 in retain_slots # features/steps/slots.py:118 2515s May 02 14:33:44 And "status" key in DCS does not have postgres_3 in retain_slots # features/steps/slots.py:124 2515s May 02 14:33:44 2515s May 02 14:33:44 Scenario: check permanent physical replication slot after failover # features/permanent_slots.feature:74 2515s May 02 14:33:44 Given I shut down postgres-3 # features/steps/basic_replication.py:41 2516s May 02 14:33:45 And I shut down postgres-2 # features/steps/basic_replication.py:41 2517s May 02 14:33:46 And I shut down postgres-0 # features/steps/basic_replication.py:41 2519s May 02 14:33:48 Then postgres-1 has a physical replication slot named test_physical after 10 seconds # features/steps/slots.py:82 2519s May 02 14:33:48 And postgres-1 has a physical replication slot named postgres_0 after 10 seconds # features/steps/slots.py:82 2519s May 02 14:33:48 And postgres-1 has a physical replication slot named postgres_3 after 10 seconds # features/steps/slots.py:82 2519s May 02 14:33:48 When I start postgres-0 # features/steps/basic_replication.py:20 2522s May 02 14:33:51 Then postgres-0 role is the replica after 20 seconds # features/steps/basic_replication.py:117 2522s May 02 14:33:51 And physical replication slot named postgres_1 on postgres-0 has no xmin value after 10 seconds # features/steps/slots.py:98 2522s May 02 14:33:51 And postgres-0 has a physical replication slot named postgres_2 after 10 seconds # features/steps/slots.py:82 2522s May 02 14:33:51 And postgres-0 has a physical replication slot named postgres_3 after 10 seconds # features/steps/slots.py:82 2526s May 02 14:33:54 2526s May 02 14:33:54 Feature: priority replication # features/priority_failover.feature:1 2526s May 02 14:33:54 We should check that we can give nodes priority during failover 2526s May 02 14:33:54 Scenario: check failover priority 0 prevents leaderships # features/priority_failover.feature:4 2526s May 02 14:33:54 Given I configure and start postgres-0 with a tag failover_priority 1 # features/steps/cascading_replication.py:7 2530s May 02 14:33:59 And I configure and start postgres-1 with a tag failover_priority 0 # features/steps/cascading_replication.py:7 2535s May 02 14:34:04 Then replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 2536s May 02 14:34:05 When I shut down postgres-0 # features/steps/basic_replication.py:41 2538s May 02 14:34:07 And there is one of ["following a different leader because I am not allowed to promote"] INFO in the postgres-1 patroni log after 5 seconds # features/steps/basic_replication.py:133 2540s May 02 14:34:09 Then postgres-1 role is the secondary after 10 seconds # features/steps/basic_replication.py:117 2540s May 02 14:34:09 When I start postgres-0 # features/steps/basic_replication.py:20 2542s May 02 14:34:11 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2544s May 02 14:34:13 2544s May 02 14:34:13 Scenario: check higher failover priority is respected # features/priority_failover.feature:14 2544s May 02 14:34:13 Given I configure and start postgres-2 with a tag failover_priority 1 # features/steps/cascading_replication.py:7 2549s May 02 14:34:18 And I configure and start postgres-3 with a tag failover_priority 2 # features/steps/cascading_replication.py:7 2553s May 02 14:34:22 Then replication works from postgres-0 to postgres-2 after 20 seconds # features/steps/basic_replication.py:124 2554s May 02 14:34:23 And replication works from postgres-0 to postgres-3 after 20 seconds # features/steps/basic_replication.py:124 2555s May 02 14:34:24 When I shut down postgres-0 # features/steps/basic_replication.py:41 2557s May 02 14:34:26 Then postgres-3 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2558s May 02 14:34:27 And there is one of ["postgres-3 has equally tolerable WAL position and priority 2, while this node has priority 1","Wal position of postgres-3 is ahead of my wal position"] INFO in the postgres-2 patroni log after 5 seconds # features/steps/basic_replication.py:133 2558s May 02 14:34:27 2558s May 02 14:34:27 Scenario: check conflicting configuration handling # features/priority_failover.feature:23 2558s May 02 14:34:27 When I set nofailover tag in postgres-2 config # features/steps/patroni_api.py:133 2558s May 02 14:34:27 And I issue an empty POST request to http://127.0.0.1:8010/reload # features/steps/patroni_api.py:68 2558s May 02 14:34:27 Then I receive a response code 202 # features/steps/patroni_api.py:100 2558s May 02 14:34:27 And there is one of ["Conflicting configuration between nofailover: True and failover_priority: 1. Defaulting to nofailover: True"] WARNING in the postgres-2 patroni log after 5 seconds # features/steps/basic_replication.py:133 2559s May 02 14:34:28 And "members/postgres-2" key in DCS has tags={'failover_priority': '1', 'nofailover': True} after 10 seconds # features/steps/cascading_replication.py:23 2560s May 02 14:34:29 When I issue a POST request to http://127.0.0.1:8010/failover with {"candidate": "postgres-2"} # features/steps/patroni_api.py:73 2560s May 02 14:34:29 Then I receive a response code 412 # features/steps/patroni_api.py:100 2560s May 02 14:34:29 And I receive a response text "failover is not possible: no good candidates have been found" # features/steps/patroni_api.py:100 2560s May 02 14:34:29 When I reset nofailover tag in postgres-1 config # features/steps/patroni_api.py:133 2560s May 02 14:34:29 And I issue an empty POST request to http://127.0.0.1:8009/reload # features/steps/patroni_api.py:68 2560s May 02 14:34:29 Then I receive a response code 202 # features/steps/patroni_api.py:100 2560s May 02 14:34:29 And there is one of ["Conflicting configuration between nofailover: False and failover_priority: 0. Defaulting to nofailover: False"] WARNING in the postgres-1 patroni log after 5 seconds # features/steps/basic_replication.py:133 2561s May 02 14:34:30 And "members/postgres-1" key in DCS has tags={'failover_priority': '0', 'nofailover': False} after 10 seconds # features/steps/cascading_replication.py:23 2562s May 02 14:34:31 And I issue a POST request to http://127.0.0.1:8009/failover with {"candidate": "postgres-1"} # features/steps/patroni_api.py:73 2565s May 02 14:34:34 Then I receive a response code 200 # features/steps/patroni_api.py:100 2565s May 02 14:34:34 And postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2570s May 02 14:34:39 2570s May 02 14:34:39 Feature: quorum commit # features/quorum_commit.feature:1 2570s May 02 14:34:39 Check basic workfrlows when quorum commit is enabled 2570s May 02 14:34:39 Scenario: check enable quorum commit and that the only leader promotes after restart # features/quorum_commit.feature:4 2570s May 02 14:34:39 Given I start postgres-0 # features/steps/basic_replication.py:20 2575s May 02 14:34:44 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 2575s May 02 14:34:44 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 2575s May 02 14:34:44 When I issue a PATCH request to http://127.0.0.1:8008/config with {"ttl": 20, "synchronous_mode": "quorum"} # features/steps/patroni_api.py:73 2575s May 02 14:34:44 Then I receive a response code 200 # features/steps/patroni_api.py:100 2575s May 02 14:34:44 And sync key in DCS has leader=postgres-0 after 20 seconds # features/steps/quorum_commit.py:8 2576s May 02 14:34:45 And sync key in DCS has quorum=0 after 2 seconds # features/steps/quorum_commit.py:8 2576s May 02 14:34:45 And synchronous_standby_names on postgres-0 is set to '_empty_str_' after 2 seconds # features/steps/quorum_commit.py:39 2576s May 02 14:34:45 When I shut down postgres-0 # features/steps/basic_replication.py:41 2578s May 02 14:34:47 And sync key in DCS has leader=postgres-0 after 2 seconds # features/steps/quorum_commit.py:8 2578s May 02 14:34:47 When I start postgres-0 # features/steps/basic_replication.py:20 2580s May 02 14:34:49 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2582s May 02 14:34:51 When I issue a PATCH request to http://127.0.0.1:8008/config with {"synchronous_mode_strict": true} # features/steps/patroni_api.py:73 2582s May 02 14:34:51 Then synchronous_standby_names on postgres-0 is set to 'ANY 1 (*)' after 10 seconds # features/steps/quorum_commit.py:39 2583s May 02 14:34:52 2583s May 02 14:34:52 Scenario: check failover with one quorum standby # features/quorum_commit.feature:20 2583s May 02 14:34:52 Given I start postgres-1 # features/steps/basic_replication.py:20 2587s May 02 14:34:56 Then sync key in DCS has sync_standby=postgres-1 after 10 seconds # features/steps/quorum_commit.py:8 2590s May 02 14:34:59 And synchronous_standby_names on postgres-0 is set to 'ANY 1 ("postgres-1")' after 2 seconds # features/steps/quorum_commit.py:39 2590s May 02 14:34:59 When I shut down postgres-0 # features/steps/basic_replication.py:41 2592s May 02 14:35:01 Then postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2593s May 02 14:35:02 And sync key in DCS has quorum=0 after 10 seconds # features/steps/quorum_commit.py:8 2593s May 02 14:35:02 Then synchronous_standby_names on postgres-1 is set to 'ANY 1 (*)' after 10 seconds # features/steps/quorum_commit.py:39 2596s May 02 14:35:05 When I start postgres-0 # features/steps/basic_replication.py:20 2599s May 02 14:35:08 Then sync key in DCS has leader=postgres-1 after 10 seconds # features/steps/quorum_commit.py:8 2599s May 02 14:35:08 Then sync key in DCS has sync_standby=postgres-0 after 10 seconds # features/steps/quorum_commit.py:8 2601s May 02 14:35:10 And synchronous_standby_names on postgres-1 is set to 'ANY 1 ("postgres-0")' after 2 seconds # features/steps/quorum_commit.py:39 2601s May 02 14:35:10 2601s May 02 14:35:10 Scenario: check behavior with three nodes and different replication factor # features/quorum_commit.feature:33 2601s May 02 14:35:10 Given I start postgres-2 # features/steps/basic_replication.py:20 2606s May 02 14:35:15 Then sync key in DCS has sync_standby=postgres-0,postgres-2 after 10 seconds # features/steps/quorum_commit.py:8 2607s May 02 14:35:16 And sync key in DCS has quorum=1 after 2 seconds # features/steps/quorum_commit.py:8 2607s May 02 14:35:16 And synchronous_standby_names on postgres-1 is set to 'ANY 1 ("postgres-0","postgres-2")' after 2 seconds # features/steps/quorum_commit.py:39 2607s May 02 14:35:16 When I issue a PATCH request to http://127.0.0.1:8009/config with {"synchronous_node_count": 2} # features/steps/patroni_api.py:73 2607s May 02 14:35:16 Then sync key in DCS has quorum=0 after 10 seconds # features/steps/quorum_commit.py:8 2608s May 02 14:35:17 And synchronous_standby_names on postgres-1 is set to 'ANY 2 ("postgres-0","postgres-2")' after 2 seconds # features/steps/quorum_commit.py:39 2608s May 02 14:35:17 2608s May 02 14:35:17 Scenario: switch from quorum replication to good old multisync and back # features/quorum_commit.feature:42 2608s May 02 14:35:17 Given I issue a PATCH request to http://127.0.0.1:8009/config with {"synchronous_mode": true, "synchronous_node_count": 1} # features/steps/patroni_api.py:73 2608s May 02 14:35:17 And I shut down postgres-0 # features/steps/basic_replication.py:41 2609s May 02 14:35:18 Then synchronous_standby_names on postgres-1 is set to '"postgres-2"' after 10 seconds # features/steps/quorum_commit.py:39 2611s May 02 14:35:20 And sync key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/quorum_commit.py:8 2613s May 02 14:35:22 Then sync key in DCS has quorum=0 after 2 seconds # features/steps/quorum_commit.py:8 2613s May 02 14:35:22 When I issue a PATCH request to http://127.0.0.1:8009/config with {"synchronous_mode": "quorum"} # features/steps/patroni_api.py:73 2613s May 02 14:35:22 And I start postgres-0 # features/steps/basic_replication.py:20 2616s May 02 14:35:25 Then synchronous_standby_names on postgres-1 is set to 'ANY 1 ("postgres-0","postgres-2")' after 10 seconds # features/steps/quorum_commit.py:39 2618s May 02 14:35:27 And sync key in DCS has sync_standby=postgres-0,postgres-2 after 10 seconds # features/steps/quorum_commit.py:8 2618s May 02 14:35:27 Then sync key in DCS has quorum=1 after 2 seconds # features/steps/quorum_commit.py:8 2618s May 02 14:35:27 2618s May 02 14:35:27 Scenario: REST API and patronictl # features/quorum_commit.feature:54 2618s May 02 14:35:27 Given I run patronictl.py list batman # features/steps/patroni_api.py:88 2619s May 02 14:35:28 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2619s May 02 14:35:28 And I receive a response output "Quorum Standby" # features/steps/patroni_api.py:100 2619s May 02 14:35:28 And Status code on GET http://127.0.0.1:8008/quorum is 200 after 3 seconds # features/steps/patroni_api.py:144 2619s May 02 14:35:28 And Status code on GET http://127.0.0.1:8010/quorum is 200 after 3 seconds # features/steps/patroni_api.py:144 2620s May 02 14:35:29 2620s May 02 14:35:29 Scenario: nosync node is removed from voters and synchronous_standby_names # features/quorum_commit.feature:61 2620s May 02 14:35:29 Given I add tag nosync true to postgres-2 config # features/steps/patroni_api.py:139 2620s May 02 14:35:29 When I issue an empty POST request to http://127.0.0.1:8010/reload # features/steps/patroni_api.py:68 2620s May 02 14:35:29 Then I receive a response code 202 # features/steps/patroni_api.py:100 2620s May 02 14:35:29 And sync key in DCS has quorum=0 after 10 seconds # features/steps/quorum_commit.py:8 2623s May 02 14:35:32 And sync key in DCS has sync_standby=postgres-0 after 10 seconds # features/steps/quorum_commit.py:8 2623s May 02 14:35:32 And synchronous_standby_names on postgres-1 is set to 'ANY 1 ("postgres-0")' after 2 seconds # features/steps/quorum_commit.py:39 2623s May 02 14:35:32 And Status code on GET http://127.0.0.1:8010/quorum is 503 after 10 seconds # features/steps/patroni_api.py:144 2630s May 02 14:35:39 2630s May 02 14:35:39 Feature: recovery # features/recovery.feature:1 2630s May 02 14:35:39 We want to check that crashed postgres is started back 2630s May 02 14:35:39 Scenario: check that timeline is not incremented when primary is started after crash # features/recovery.feature:4 2630s May 02 14:35:39 Given I start postgres-0 # features/steps/basic_replication.py:20 2635s May 02 14:35:44 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 2635s May 02 14:35:44 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 2635s May 02 14:35:44 When I start postgres-1 # features/steps/basic_replication.py:20 2640s May 02 14:35:49 And I add the table foo to postgres-0 # features/steps/basic_replication.py:66 2640s May 02 14:35:49 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 2641s May 02 14:35:50 When I kill postmaster on postgres-0 # features/steps/basic_replication.py:56 2641s May 02 14:35:50 waiting for server to shut down.... done 2641s May 02 14:35:50 server stopped 2641s May 02 14:35:50 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2644s May 02 14:35:53 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:63 2644s May 02 14:35:53 Then I receive a response code 200 # features/steps/patroni_api.py:100 2644s May 02 14:35:53 And I receive a response role primary # features/steps/patroni_api.py:100 2644s May 02 14:35:53 And I receive a response timeline 1 # features/steps/patroni_api.py:100 2644s May 02 14:35:53 And "members/postgres-0" key in DCS has state=running after 12 seconds # features/steps/cascading_replication.py:23 2645s May 02 14:35:54 And replication works from postgres-0 to postgres-1 after 15 seconds # features/steps/basic_replication.py:124 2647s May 02 14:35:56 2647s May 02 14:35:56 Scenario: check immediate failover when master_start_timeout=0 # features/recovery.feature:20 2647s May 02 14:35:56 Given I issue a PATCH request to http://127.0.0.1:8008/config with {"master_start_timeout": 0} # features/steps/patroni_api.py:73 2647s May 02 14:35:56 Then I receive a response code 200 # features/steps/patroni_api.py:100 2647s May 02 14:35:56 And Response on GET http://127.0.0.1:8008/config contains master_start_timeout after 10 seconds # features/steps/patroni_api.py:158 2649s May 02 14:35:58 When I kill postmaster on postgres-0 # features/steps/basic_replication.py:56 2649s May 02 14:35:58 waiting for server to shut down.... done 2649s May 02 14:35:58 server stopped 2649s May 02 14:35:58 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 2650s May 02 14:35:59 And postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2651s May 02 14:36:00 2651s May 02 14:36:00 Scenario: check crashed primary demotes after failed attempt to start # features/recovery.feature:28 2651s May 02 14:36:00 Given I issue a PATCH request to http://127.0.0.1:8009/config with {"master_start_timeout": null} # features/steps/patroni_api.py:73 2651s May 02 14:36:00 Then I receive a response code 200 # features/steps/patroni_api.py:100 2651s May 02 14:36:00 And postgres-0 role is the replica after 10 seconds # features/steps/basic_replication.py:117 2653s May 02 14:36:02 When I ensure postgres-1 fails to start after a failure # features/steps/recovery.py:6 2653s May 02 14:36:02 When I kill postmaster on postgres-1 # features/steps/basic_replication.py:56 2653s May 02 14:36:02 waiting for server to shut down.... done 2653s May 02 14:36:02 server stopped 2653s May 02 14:36:02 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 2654s May 02 14:36:03 And there is a postgres-1_cb.log with "on_role_change demoted batman" in postgres-1 data directory # features/steps/cascading_replication.py:12 2657s May 02 14:36:06 2657s May 02 14:36:06 Feature: standby cluster # features/standby_cluster.feature:1 2657s May 02 14:36:06 2657s May 02 14:36:06 Scenario: prepare the cluster with logical slots # features/standby_cluster.feature:2 2657s May 02 14:36:06 Given I start postgres-1 # features/steps/basic_replication.py:20 2662s May 02 14:36:11 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 2662s May 02 14:36:11 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 2662s May 02 14:36:11 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:73 2662s May 02 14:36:11 Then I receive a response code 200 # features/steps/patroni_api.py:100 2662s May 02 14:36:11 And Response on GET http://127.0.0.1:8009/config contains slots after 10 seconds # features/steps/patroni_api.py:158 2662s May 02 14:36:11 And I sleep for 3 seconds # features/steps/patroni_api.py:41 2665s May 02 14:36:14 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:73 2665s May 02 14:36:14 Then I receive a response code 200 # features/steps/patroni_api.py:100 2665s May 02 14:36:14 And I do a backup of postgres-1 # features/steps/custom_bootstrap.py:25 2667s May 02 14:36:16 When I start postgres-0 # features/steps/basic_replication.py:20 2673s May 02 14:36:22 Then "members/postgres-0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 2674s May 02 14:36:23 And replication works from postgres-1 to postgres-0 after 15 seconds # features/steps/basic_replication.py:124 2676s May 02 14:36:25 When I issue a GET request to http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:63 2676s May 02 14:36:25 Then I receive a response code 200 # features/steps/patroni_api.py:100 2676s May 02 14:36:25 And I receive a response replication_state streaming # features/steps/patroni_api.py:100 2676s May 02 14:36:25 And "members/postgres-0" key in DCS has replication_state=streaming after 10 seconds # features/steps/cascading_replication.py:23 2676s May 02 14:36:25 2676s May 02 14:36:25 @slot-advance 2676s May 02 14:36:25 Scenario: check permanent logical slots are synced to the replica # features/standby_cluster.feature:22 2676s May 02 14:36:25 Given I run patronictl.py restart batman postgres-1 --force # features/steps/patroni_api.py:88 2678s May 02 14:36:27 Then Logical slot test_logical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 2684s May 02 14:36:33 2684s May 02 14:36:33 Scenario: Detach exiting node from the cluster # features/standby_cluster.feature:26 2684s May 02 14:36:33 When I shut down postgres-1 # features/steps/basic_replication.py:41 2686s May 02 14:36:35 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 2686s May 02 14:36:35 And "members/postgres-0" key in DCS has role=primary after 5 seconds # features/steps/cascading_replication.py:23 2687s May 02 14:36:36 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:63 2687s May 02 14:36:36 Then I receive a response code 200 # features/steps/patroni_api.py:100 2687s May 02 14:36:36 2687s May 02 14:36:36 Scenario: check replication of a single table in a standby cluster # features/standby_cluster.feature:33 2687s May 02 14:36:36 Given I start postgres-1 in a standby cluster batman1 as a clone of postgres-0 # features/steps/standby_cluster.py:23 2690s May 02 14:36:39 Then postgres-1 is a leader of batman1 after 10 seconds # features/steps/custom_bootstrap.py:16 2690s May 02 14:36:39 When I add the table foo to postgres-0 # features/steps/basic_replication.py:66 2690s May 02 14:36:39 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 2690s May 02 14:36:39 When I issue a GET request to http://127.0.0.1:8009/patroni # features/steps/patroni_api.py:63 2690s May 02 14:36:39 Then I receive a response code 200 # features/steps/patroni_api.py:100 2690s May 02 14:36:39 And I receive a response replication_state streaming # features/steps/patroni_api.py:100 2690s May 02 14:36:39 And I sleep for 3 seconds # features/steps/patroni_api.py:41 2693s May 02 14:36:42 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 2693s May 02 14:36:42 Then I receive a response code 503 # features/steps/patroni_api.py:100 2693s May 02 14:36:42 When I issue a GET request to http://127.0.0.1:8009/standby_leader # features/steps/patroni_api.py:63 2693s May 02 14:36:42 Then I receive a response code 200 # features/steps/patroni_api.py:100 2693s May 02 14:36:42 And I receive a response role standby_leader # features/steps/patroni_api.py:100 2693s May 02 14:36:42 And there is a postgres-1_cb.log with "on_role_change standby_leader batman1" in postgres-1 data directory # features/steps/cascading_replication.py:12 2693s May 02 14:36:42 When I start postgres-2 in a cluster batman1 # features/steps/standby_cluster.py:12 2698s May 02 14:36:47 Then postgres-2 role is the replica after 24 seconds # features/steps/basic_replication.py:117 2698s May 02 14:36:47 And postgres-2 is replicating from postgres-1 after 10 seconds # features/steps/standby_cluster.py:52 2699s May 02 14:36:48 And table foo is present on postgres-2 after 20 seconds # features/steps/basic_replication.py:105 2699s May 02 14:36:48 When I issue a GET request to http://127.0.0.1:8010/patroni # features/steps/patroni_api.py:63 2699s May 02 14:36:48 Then I receive a response code 200 # features/steps/patroni_api.py:100 2699s May 02 14:36:48 And I receive a response replication_state streaming # features/steps/patroni_api.py:100 2699s May 02 14:36:48 And postgres-1 does not have a replication slot named test_logical # features/steps/slots.py:41 2699s May 02 14:36:48 2699s May 02 14:36:48 Scenario: check switchover # features/standby_cluster.feature:57 2699s May 02 14:36:48 Given I run patronictl.py switchover batman1 --force # features/steps/patroni_api.py:88 2703s May 02 14:36:52 Then Status code on GET http://127.0.0.1:8010/standby_leader is 200 after 10 seconds # features/steps/patroni_api.py:144 2703s May 02 14:36:52 And postgres-1 is replicating from postgres-2 after 32 seconds # features/steps/standby_cluster.py:52 2706s May 02 14:36:55 And there is a postgres-2_cb.log with "on_start replica batman1\non_role_change standby_leader batman1" in postgres-2 data directory # features/steps/cascading_replication.py:12 2706s May 02 14:36:55 2706s May 02 14:36:55 Scenario: check failover # features/standby_cluster.feature:63 2706s May 02 14:36:55 When I kill postgres-2 # features/steps/basic_replication.py:46 2707s May 02 14:36:56 And I kill postmaster on postgres-2 # features/steps/basic_replication.py:56 2707s May 02 14:36:56 waiting for server to shut down.... done 2707s May 02 14:36:56 server stopped 2707s May 02 14:36:56 Then postgres-1 is replicating from postgres-0 after 32 seconds # features/steps/standby_cluster.py:52 2728s May 02 14:37:17 And Status code on GET http://127.0.0.1:8009/standby_leader is 200 after 10 seconds # features/steps/patroni_api.py:144 2728s May 02 14:37:17 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 2728s May 02 14:37:17 Then I receive a response code 503 # features/steps/patroni_api.py:100 2728s May 02 14:37:17 And I receive a response role standby_leader # features/steps/patroni_api.py:100 2728s May 02 14:37:17 And replication works from postgres-0 to postgres-1 after 15 seconds # features/steps/basic_replication.py:124 2729s May 02 14:37:18 And there is a postgres-1_cb.log with "on_role_change replica batman1\non_role_change standby_leader batman1" in postgres-1 data directory # features/steps/cascading_replication.py:12 2733s May 02 14:37:22 2733s May 02 14:37:22 Feature: watchdog # features/watchdog.feature:1 2733s May 02 14:37:22 Verify that watchdog gets pinged and triggered under appropriate circumstances. 2733s May 02 14:37:22 Scenario: watchdog is opened and pinged # features/watchdog.feature:4 2733s May 02 14:37:22 Given I start postgres-0 with watchdog # features/steps/watchdog.py:17 2736s May 02 14:37:25 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 2736s May 02 14:37:25 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2736s May 02 14:37:25 And postgres-0 watchdog has been pinged after 10 seconds # features/steps/watchdog.py:22 2737s May 02 14:37:26 And postgres-0 watchdog has a 15 second timeout # features/steps/watchdog.py:35 2737s May 02 14:37:26 2737s May 02 14:37:26 Scenario: watchdog is reconfigured after global ttl changed # features/watchdog.feature:11 2737s May 02 14:37:26 Given I run patronictl.py edit-config batman -s ttl=30 --force # features/steps/patroni_api.py:88 2738s May 02 14:37:27 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2738s May 02 14:37:27 And I receive a response output "+ttl: 30" # features/steps/patroni_api.py:100 2738s May 02 14:37:27 When I sleep for 4 seconds # features/steps/patroni_api.py:41 2742s May 02 14:37:31 Then postgres-0 watchdog has a 25 second timeout # features/steps/watchdog.py:35 2742s May 02 14:37:31 2742s May 02 14:37:31 Scenario: watchdog is disabled during pause # features/watchdog.feature:18 2742s May 02 14:37:31 Given I run patronictl.py pause batman # features/steps/patroni_api.py:88 2744s May 02 14:37:33 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2744s May 02 14:37:33 When I sleep for 2 seconds # features/steps/patroni_api.py:41 2746s May 02 14:37:35 Then postgres-0 watchdog has been closed # features/steps/watchdog.py:30 2746s May 02 14:37:35 2746s May 02 14:37:35 Scenario: watchdog is opened and pinged after resume # features/watchdog.feature:24 2746s May 02 14:37:35 Given I reset postgres-0 watchdog state # features/steps/watchdog.py:40 2746s May 02 14:37:35 And I run patronictl.py resume batman # features/steps/patroni_api.py:88 2747s May 02 14:37:36 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2747s May 02 14:37:36 And postgres-0 watchdog has been pinged after 10 seconds # features/steps/watchdog.py:22 2747s May 02 14:37:36 2747s May 02 14:37:36 Scenario: watchdog is disabled when shutting down # features/watchdog.feature:30 2747s May 02 14:37:36 Given I shut down postgres-0 # features/steps/basic_replication.py:41 2749s May 02 14:37:38 Then postgres-0 watchdog has been closed # features/steps/watchdog.py:30 2749s May 02 14:37:38 2749s May 02 14:37:38 Scenario: watchdog is triggered if patroni stops responding # features/watchdog.feature:34 2749s May 02 14:37:38 Given I reset postgres-0 watchdog state # features/steps/watchdog.py:40 2749s May 02 14:37:38 And I start postgres-0 with watchdog # features/steps/watchdog.py:17 2752s May 02 14:37:41 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2753s May 02 14:37:42 When postgres-0 hangs for 30 seconds # features/steps/watchdog.py:53 2753s May 02 14:37:42 Then postgres-0 watchdog is triggered after 30 seconds # features/steps/watchdog.py:45 2780s May 02 14:38:09 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.5401.XCqYJwdx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.5466.XnbUYWHx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.5515.XUjmaTDx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.5578.XjveYQpx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.5627.XWYyzOox 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.5703.XVKLRBtx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.5755.XIrcVerx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.5760.XBzcPKXx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.5846.XikxBHbx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.5949.XJZEmHEx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.5964.XzVwlIKx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.6009.XdKKcNSx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.6060.XodkApgx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.6184.XyKwhbLx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.6231.XUvmXqtx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.6288.XsuxzjLx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.6391.XKvxaTjx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.6448.XKYyNoVx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.6512.XBZTWyFx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.6608.XQhqjOhx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.6713.XFJHgLJx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.6758.XnyDgqRx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.6825.XtrQUAfx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.6861.XRnkQvqx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.7029.XBmkNUwx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.7080.XmOvbAbx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.7101.XKOvRfrx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.7142.XRwXrWFx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.7196.XaXCkrxx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.7203.XgkIODax 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.7242.XjxYhvrx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.7289.XmdYWBCx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.7460.XRVFKPqx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.7464.Xosrdnjx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.7472.XuTQdcWx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.7617.XAAgLpNx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.7665.Xxqcecmx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.7715.XxPYsJlx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.7762.XQWCiFUx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.7809.XvrjoMMx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.7957.XclahMkx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.8027.XkuPMxWx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.8067.XFlpmcYx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.8150.XoCFeWPx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.8230.XetRvAJx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.8292.XcKjqqEx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.8605.XZtnEjPx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.8663.XdPNpAnx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.8728.XpwLQHix 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.8829.XjKmaTIx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.8880.XrzREoOx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.8940.XRmDmIEx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.8985.XHbpXcRx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.9028.XgyuswPx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.9073.XAgrKZtx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.9318.XrfAhgfx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.9384.XqZCirtx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.9440.XPdWnmkx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.9548.XectYRpx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.9679.XCUrXAcx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.9826.XhVJpDox 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.9874.XiBkjnLx 2781s May 02 14:38:10 Skipping duplicate data .coverage.autopkgtest-lxd-fjbsnd.9881.XYRmzryx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.9886.XCrliefx 2781s May 02 14:38:10 Combined data file .coverage.autopkgtest-lxd-fjbsnd.9902.XIomuFFx 2785s May 02 14:38:14 Name Stmts Miss Cover 2785s May 02 14:38:14 -------------------------------------------------------------------------------------------------------- 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/_distutils_hack/__init__.py 101 96 5% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/dateutil/__init__.py 13 4 69% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/dateutil/_common.py 25 15 40% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/dateutil/_version.py 13 3 77% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/dateutil/parser/__init__.py 33 4 88% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/dateutil/parser/_parser.py 810 436 46% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/dateutil/parser/isoparser.py 183 150 18% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/dateutil/relativedelta.py 240 206 14% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/dateutil/tz/__init__.py 4 0 100% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/dateutil/tz/_common.py 151 114 25% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/dateutil/tz/_factories.py 49 21 57% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/dateutil/tz/tz.py 794 626 21% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/dateutil/tz/win.py 152 149 2% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/kazoo/__init__.py 1 0 100% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/kazoo/client.py 629 266 58% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/kazoo/exceptions.py 110 1 99% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/kazoo/handlers/__init__.py 0 0 100% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/kazoo/handlers/threading.py 94 15 84% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/kazoo/handlers/utils.py 222 75 66% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/kazoo/hosts.py 18 4 78% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/kazoo/loggingsupport.py 1 0 100% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/kazoo/protocol/__init__.py 0 0 100% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/kazoo/protocol/connection.py 485 175 64% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/kazoo/protocol/paths.py 33 8 76% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/kazoo/protocol/serialization.py 316 111 65% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/kazoo/protocol/states.py 49 9 82% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/kazoo/python2atexit.py 32 19 41% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/kazoo/recipe/__init__.py 0 0 100% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/kazoo/recipe/barrier.py 97 80 18% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/kazoo/recipe/counter.py 49 36 27% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/kazoo/recipe/election.py 16 10 38% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/kazoo/recipe/lease.py 54 36 33% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/kazoo/recipe/lock.py 295 242 18% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/kazoo/recipe/partitioner.py 155 120 23% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/kazoo/recipe/party.py 62 43 31% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/kazoo/recipe/queue.py 157 126 20% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/kazoo/recipe/watchers.py 172 138 20% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/kazoo/retry.py 60 4 93% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/kazoo/security.py 58 35 40% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/kazoo/version.py 1 0 100% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/__init__.py 13 2 85% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/__main__.py 201 64 68% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/api.py 788 296 62% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/async_executor.py 96 15 84% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/collections.py 56 5 91% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/config.py 357 81 77% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/config_generator.py 212 159 25% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/daemon.py 76 3 96% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/dcs/__init__.py 710 108 85% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/dcs/zookeeper.py 289 67 77% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/dynamic_loader.py 35 7 80% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/exceptions.py 16 0 100% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/file_perm.py 47 10 79% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/global_config.py 87 0 100% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/ha.py 1359 386 72% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/log.py 235 79 66% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/postgresql/__init__.py 825 169 80% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/postgresql/available_parameters/__init__.py 24 3 88% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/postgresql/bootstrap.py 254 60 76% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/postgresql/callback_executor.py 55 8 85% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/postgresql/cancellable.py 104 41 61% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/postgresql/config.py 839 215 74% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/postgresql/connection.py 75 1 99% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/postgresql/misc.py 43 8 81% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/postgresql/mpp/__init__.py 89 11 88% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/postgresql/postmaster.py 170 83 51% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/postgresql/rewind.py 416 128 69% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/postgresql/slots.py 349 41 88% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/postgresql/sync.py 154 10 94% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/postgresql/validator.py 157 24 85% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/psycopg.py 46 19 59% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/quorum.py 182 48 74% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/request.py 58 7 88% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/tags.py 38 0 100% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/utils.py 371 122 67% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/validator.py 309 215 30% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/version.py 1 0 100% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/watchdog/__init__.py 2 0 100% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/watchdog/base.py 203 46 77% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/patroni/watchdog/linux.py 135 35 74% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/psutil/__init__.py 950 629 34% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/psutil/_common.py 422 212 50% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/psutil/_compat.py 301 263 13% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/psutil/_pslinux.py 1250 924 26% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/psutil/_psposix.py 95 38 60% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/psycopg2/__init__.py 19 3 84% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/psycopg2/_json.py 64 27 58% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/psycopg2/_range.py 269 172 36% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/psycopg2/errors.py 3 2 33% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/psycopg2/extensions.py 91 25 73% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/puresasl/__init__.py 21 2 90% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/puresasl/client.py 71 47 34% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/puresasl/mechanisms.py 363 263 28% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/six.py 505 259 49% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/urllib3/__init__.py 49 15 69% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/urllib3/_base_connection.py 63 45 29% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/urllib3/_collections.py 231 125 46% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/urllib3/_request_methods.py 54 24 56% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/urllib3/_version.py 13 3 77% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/urllib3/connection.py 389 149 62% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/urllib3/connectionpool.py 344 130 62% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/urllib3/exceptions.py 121 39 68% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/urllib3/fields.py 92 73 21% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/urllib3/filepost.py 37 24 35% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/urllib3/http2/__init__.py 28 21 25% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/urllib3/http2/probe.py 49 31 37% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/urllib3/poolmanager.py 233 88 62% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/urllib3/response.py 634 393 38% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/urllib3/util/__init__.py 10 0 100% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/urllib3/util/connection.py 66 9 86% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/urllib3/util/proxy.py 13 6 54% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/urllib3/util/request.py 104 52 50% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/urllib3/util/response.py 32 17 47% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/urllib3/util/retry.py 174 53 70% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/urllib3/util/ssl_.py 172 73 58% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/urllib3/util/ssl_match_hostname.py 66 54 18% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/urllib3/util/ssltransport.py 152 106 30% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/urllib3/util/timeout.py 71 19 73% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/urllib3/util/url.py 203 76 63% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/urllib3/util/util.py 26 18 31% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/urllib3/util/wait.py 49 38 22% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/yaml/__init__.py 165 109 34% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/yaml/composer.py 92 17 82% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/yaml/constructor.py 479 276 42% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/yaml/cyaml.py 46 24 48% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/yaml/dumper.py 23 12 48% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/yaml/emitter.py 838 769 8% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/yaml/error.py 58 42 28% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/yaml/events.py 61 6 90% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/yaml/loader.py 47 24 49% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/yaml/nodes.py 29 7 76% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/yaml/parser.py 352 180 49% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/yaml/reader.py 122 30 75% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/yaml/representer.py 248 176 29% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/yaml/resolver.py 135 76 44% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/yaml/scanner.py 758 415 45% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/yaml/serializer.py 85 70 18% 2785s May 02 14:38:14 /usr/lib/python3/dist-packages/yaml/tokens.py 76 17 78% 2785s May 02 14:38:14 patroni/__init__.py 13 2 85% 2785s May 02 14:38:14 patroni/__main__.py 201 201 0% 2785s May 02 14:38:14 patroni/api.py 788 788 0% 2785s May 02 14:38:14 patroni/async_executor.py 96 69 28% 2785s May 02 14:38:14 patroni/collections.py 56 15 73% 2785s May 02 14:38:14 patroni/config.py 357 184 48% 2785s May 02 14:38:14 patroni/config_generator.py 212 212 0% 2785s May 02 14:38:14 patroni/ctl.py 936 395 58% 2785s May 02 14:38:14 patroni/daemon.py 76 76 0% 2785s May 02 14:38:14 patroni/dcs/__init__.py 710 317 55% 2785s May 02 14:38:14 patroni/dcs/consul.py 482 482 0% 2785s May 02 14:38:14 patroni/dcs/etcd3.py 679 679 0% 2785s May 02 14:38:14 patroni/dcs/etcd.py 603 603 0% 2785s May 02 14:38:14 patroni/dcs/exhibitor.py 62 62 0% 2785s May 02 14:38:14 patroni/dcs/kubernetes.py 943 943 0% 2785s May 02 14:38:14 patroni/dcs/raft.py 319 319 0% 2785s May 02 14:38:14 patroni/dcs/zookeeper.py 289 150 48% 2785s May 02 14:38:14 patroni/dynamic_loader.py 35 7 80% 2785s May 02 14:38:14 patroni/exceptions.py 16 1 94% 2785s May 02 14:38:14 patroni/file_perm.py 47 17 64% 2785s May 02 14:38:14 patroni/global_config.py 87 19 78% 2785s May 02 14:38:14 patroni/ha.py 1359 1359 0% 2785s May 02 14:38:14 patroni/log.py 235 183 22% 2785s May 02 14:38:14 patroni/postgresql/__init__.py 825 653 21% 2785s May 02 14:38:14 patroni/postgresql/available_parameters/__init__.py 24 6 75% 2785s May 02 14:38:14 patroni/postgresql/bootstrap.py 254 224 12% 2785s May 02 14:38:14 patroni/postgresql/callback_executor.py 55 34 38% 2785s May 02 14:38:14 patroni/postgresql/cancellable.py 104 84 19% 2785s May 02 14:38:14 patroni/postgresql/config.py 839 719 14% 2785s May 02 14:38:14 patroni/postgresql/connection.py 75 50 33% 2785s May 02 14:38:14 patroni/postgresql/misc.py 43 30 30% 2785s May 02 14:38:14 patroni/postgresql/mpp/__init__.py 89 21 76% 2785s May 02 14:38:14 patroni/postgresql/mpp/citus.py 366 366 0% 2785s May 02 14:38:14 patroni/postgresql/postmaster.py 170 139 18% 2785s May 02 14:38:14 patroni/postgresql/rewind.py 416 416 0% 2785s May 02 14:38:14 patroni/postgresql/slots.py 349 300 14% 2785s May 02 14:38:14 patroni/postgresql/sync.py 154 114 26% 2785s May 02 14:38:14 patroni/postgresql/validator.py 157 52 67% 2785s May 02 14:38:14 patroni/psycopg.py 46 32 30% 2785s May 02 14:38:14 patroni/quorum.py 182 182 0% 2785s May 02 14:38:14 patroni/raft_controller.py 22 22 0% 2785s May 02 14:38:14 patroni/request.py 58 6 90% 2785s May 02 14:38:14 patroni/scripts/__init__.py 0 0 100% 2785s May 02 14:38:14 patroni/scripts/aws.py 59 59 0% 2785s May 02 14:38:14 patroni/scripts/barman/__init__.py 0 0 100% 2785s May 02 14:38:14 patroni/scripts/barman/cli.py 50 50 0% 2785s May 02 14:38:14 patroni/scripts/barman/config_switch.py 50 50 0% 2785s May 02 14:38:14 patroni/scripts/barman/recover.py 36 36 0% 2785s May 02 14:38:14 patroni/scripts/barman/utils.py 93 93 0% 2785s May 02 14:38:14 patroni/scripts/wale_restore.py 207 207 0% 2785s May 02 14:38:14 patroni/tags.py 38 11 71% 2785s May 02 14:38:14 patroni/utils.py 371 244 34% 2785s May 02 14:38:14 patroni/validator.py 309 222 28% 2785s May 02 14:38:14 patroni/version.py 1 0 100% 2785s May 02 14:38:14 patroni/watchdog/__init__.py 2 2 0% 2785s May 02 14:38:14 patroni/watchdog/base.py 203 203 0% 2785s May 02 14:38:14 patroni/watchdog/linux.py 135 135 0% 2785s May 02 14:38:14 -------------------------------------------------------------------------------------------------------- 2785s May 02 14:38:14 TOTAL 41106 24595 40% 2785s May 02 14:38:14 12 features passed, 0 failed, 1 skipped 2785s May 02 14:38:14 53 scenarios passed, 0 failed, 5 skipped 2785s May 02 14:38:14 517 steps passed, 0 failed, 68 skipped, 0 undefined 2785s May 02 14:38:14 Took 8m49.391s 2785s + echo '### End 17 acceptance-zookeeper -e dcs_failsafe_mode ###' 2785s + rm -f '/tmp/pgpass?' 2785s ### End 17 acceptance-zookeeper -e dcs_failsafe_mode ### 2785s ++ id -u 2785s + '[' 0 -eq 0 ']' 2785s + '[' -x /etc/init.d/zookeeper ']' 2785s + /etc/init.d/zookeeper stop 2786s Stopping zookeeper (via systemctl): zookeeper.service. 2786s autopkgtest [14:38:15]: test acceptance-zookeeper: -----------------------] 2791s autopkgtest [14:38:20]: test acceptance-zookeeper: - - - - - - - - - - results - - - - - - - - - - 2791s acceptance-zookeeper PASS 2795s autopkgtest [14:38:24]: test acceptance-raft: preparing testbed 2817s autopkgtest [14:38:46]: testbed dpkg architecture: armhf 2819s autopkgtest [14:38:48]: testbed apt version: 3.0.0 2823s autopkgtest [14:38:52]: @@@@@@@@@@@@@@@@@@@@ test bed setup 2825s autopkgtest [14:38:54]: testbed release detected to be: questing 2832s autopkgtest [14:39:01]: updating testbed package index (apt update) 2834s Get:1 http://ftpmaster.internal/ubuntu questing-proposed InRelease [110 kB] 2834s Get:2 http://ftpmaster.internal/ubuntu questing InRelease [110 kB] 2834s Get:3 http://ftpmaster.internal/ubuntu questing-updates InRelease [110 kB] 2835s Get:4 http://ftpmaster.internal/ubuntu questing-security InRelease [110 kB] 2835s Get:5 http://ftpmaster.internal/ubuntu questing-proposed/universe Sources [2029 kB] 2835s Get:6 http://ftpmaster.internal/ubuntu questing-proposed/multiverse Sources [44.4 kB] 2835s Get:7 http://ftpmaster.internal/ubuntu questing-proposed/main Sources [171 kB] 2835s Get:8 http://ftpmaster.internal/ubuntu questing-proposed/main armhf Packages [197 kB] 2835s Get:9 http://ftpmaster.internal/ubuntu questing-proposed/universe armhf Packages [1391 kB] 2835s Get:10 http://ftpmaster.internal/ubuntu questing-proposed/multiverse armhf Packages [13.7 kB] 2835s Get:11 http://ftpmaster.internal/ubuntu questing/universe Sources [21.1 MB] 2836s Get:12 http://ftpmaster.internal/ubuntu questing/main Sources [1385 kB] 2836s Get:13 http://ftpmaster.internal/ubuntu questing/multiverse Sources [299 kB] 2836s Get:14 http://ftpmaster.internal/ubuntu questing/main armhf Packages [1358 kB] 2836s Get:15 http://ftpmaster.internal/ubuntu questing/universe armhf Packages [15.3 MB] 2836s Get:16 http://ftpmaster.internal/ubuntu questing/multiverse armhf Packages [173 kB] 2840s Fetched 43.9 MB in 6s (7636 kB/s) 2841s Reading package lists... 2846s autopkgtest [14:39:15]: upgrading testbed (apt dist-upgrade and autopurge) 2848s Reading package lists... 2849s Building dependency tree... 2849s Reading state information... 2849s Calculating upgrade...Starting pkgProblemResolver with broken count: 0 2849s Starting 2 pkgProblemResolver with broken count: 0 2849s Done 2850s Entering ResolveByKeep 2851s 2851s Calculating upgrade... 2851s The following packages will be upgraded: 2851s base-files distro-info-data dpkg dpkg-dev htop libdpkg-perl libnpth0t64 2851s motd-news-config nano ubuntu-pro-client ubuntu-pro-client-l10n usb.ids 2851s 12 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 2851s Need to get 3645 kB of archives. 2851s After this operation, 57.3 kB of additional disk space will be used. 2851s Get:1 http://ftpmaster.internal/ubuntu questing/main armhf motd-news-config all 13.7ubuntu1 [5260 B] 2852s Get:2 http://ftpmaster.internal/ubuntu questing/main armhf base-files armhf 13.7ubuntu1 [75.4 kB] 2852s Get:3 http://ftpmaster.internal/ubuntu questing/main armhf dpkg armhf 1.22.18ubuntu3 [1254 kB] 2852s Get:4 http://ftpmaster.internal/ubuntu questing/main armhf libnpth0t64 armhf 1.8-3 [7716 B] 2852s Get:5 http://ftpmaster.internal/ubuntu questing/main armhf distro-info-data all 0.64 [6664 B] 2852s Get:6 http://ftpmaster.internal/ubuntu questing/main armhf ubuntu-pro-client-l10n armhf 35.1ubuntu0 [19.7 kB] 2852s Get:7 http://ftpmaster.internal/ubuntu questing/main armhf ubuntu-pro-client armhf 35.1ubuntu0 [258 kB] 2852s Get:8 http://ftpmaster.internal/ubuntu questing/main armhf nano armhf 8.4-1 [278 kB] 2852s Get:9 http://ftpmaster.internal/ubuntu questing/main armhf usb.ids all 2025.04.01-1 [223 kB] 2852s Get:10 http://ftpmaster.internal/ubuntu questing/main armhf dpkg-dev all 1.22.18ubuntu3 [1089 kB] 2852s Get:11 http://ftpmaster.internal/ubuntu questing/main armhf libdpkg-perl all 1.22.18ubuntu3 [281 kB] 2852s Get:12 http://ftpmaster.internal/ubuntu questing/main armhf htop armhf 3.4.1-4 [147 kB] 2853s Fetched 3645 kB in 1s (3061 kB/s) 2853s (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 ... 63953 files and directories currently installed.) 2853s Preparing to unpack .../motd-news-config_13.7ubuntu1_all.deb ... 2853s Unpacking motd-news-config (13.7ubuntu1) over (13.6ubuntu2) ... 2853s Preparing to unpack .../base-files_13.7ubuntu1_armhf.deb ... 2853s Unpacking base-files (13.7ubuntu1) over (13.6ubuntu2) ... 2853s Setting up base-files (13.7ubuntu1) ... 2853s Installing new version of config file /etc/issue ... 2853s Installing new version of config file /etc/issue.net ... 2853s Installing new version of config file /etc/lsb-release ... 2854s motd-news.service is a disabled or a static unit not running, not starting it. 2854s (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 ... 63953 files and directories currently installed.) 2854s Preparing to unpack .../dpkg_1.22.18ubuntu3_armhf.deb ... 2854s Unpacking dpkg (1.22.18ubuntu3) over (1.22.18ubuntu2) ... 2854s Setting up dpkg (1.22.18ubuntu3) ... 2855s (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 ... 63953 files and directories currently installed.) 2855s Preparing to unpack .../libnpth0t64_1.8-3_armhf.deb ... 2855s Unpacking libnpth0t64:armhf (1.8-3) over (1.8-2) ... 2855s Setting up libnpth0t64:armhf (1.8-3) ... 2855s (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 ... 63953 files and directories currently installed.) 2855s Preparing to unpack .../0-distro-info-data_0.64_all.deb ... 2855s Unpacking distro-info-data (0.64) over (0.63) ... 2855s Preparing to unpack .../1-ubuntu-pro-client-l10n_35.1ubuntu0_armhf.deb ... 2855s Unpacking ubuntu-pro-client-l10n (35.1ubuntu0) over (35) ... 2855s Preparing to unpack .../2-ubuntu-pro-client_35.1ubuntu0_armhf.deb ... 2855s Unpacking ubuntu-pro-client (35.1ubuntu0) over (35) ... 2855s Preparing to unpack .../3-nano_8.4-1_armhf.deb ... 2855s Unpacking nano (8.4-1) over (8.3-1) ... 2855s Preparing to unpack .../4-usb.ids_2025.04.01-1_all.deb ... 2855s Unpacking usb.ids (2025.04.01-1) over (2025.01.14-1) ... 2855s Preparing to unpack .../5-dpkg-dev_1.22.18ubuntu3_all.deb ... 2855s Unpacking dpkg-dev (1.22.18ubuntu3) over (1.22.18ubuntu2) ... 2856s Preparing to unpack .../6-libdpkg-perl_1.22.18ubuntu3_all.deb ... 2856s Unpacking libdpkg-perl (1.22.18ubuntu3) over (1.22.18ubuntu2) ... 2856s Preparing to unpack .../7-htop_3.4.1-4_armhf.deb ... 2856s Unpacking htop (3.4.1-4) over (3.4.0-2) ... 2856s Setting up motd-news-config (13.7ubuntu1) ... 2856s Setting up distro-info-data (0.64) ... 2856s Setting up htop (3.4.1-4) ... 2856s Setting up usb.ids (2025.04.01-1) ... 2856s Setting up libdpkg-perl (1.22.18ubuntu3) ... 2856s Setting up nano (8.4-1) ... 2856s Installing new version of config file /etc/nanorc ... 2856s Setting up ubuntu-pro-client (35.1ubuntu0) ... 2856s apparmor_parser: Unable to replace "ubuntu_pro_apt_news". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 2856s 2856s apparmor_parser: Unable to replace "apt_methods". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 2856s 2856s apparmor_parser: Unable to replace "ubuntu_pro_esm_cache". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 2856s 2858s Setting up ubuntu-pro-client-l10n (35.1ubuntu0) ... 2858s Setting up dpkg-dev (1.22.18ubuntu3) ... 2858s Processing triggers for install-info (7.1.1-1) ... 2858s Processing triggers for libc-bin (2.41-6ubuntu1) ... 2858s Processing triggers for man-db (2.13.0-1) ... 2860s Processing triggers for plymouth-theme-ubuntu-text (24.004.60-2ubuntu7) ... 2860s Processing triggers for initramfs-tools (0.147ubuntu1) ... 2862s Reading package lists... 2862s Building dependency tree... 2862s Reading state information... 2863s Starting pkgProblemResolver with broken count: 0 2863s Starting 2 pkgProblemResolver with broken count: 0 2863s Done 2864s Solving dependencies... 2864s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 2866s autopkgtest [14:39:35]: rebooting testbed after setup commands that affected boot 2930s Reading package lists... 2930s Building dependency tree... 2930s Reading state information... 2931s Starting pkgProblemResolver with broken count: 0 2931s Starting 2 pkgProblemResolver with broken count: 0 2931s Done 2932s The following NEW packages will be installed: 2932s fonts-font-awesome fonts-lato libio-pty-perl libipc-run-perl libjs-jquery 2932s libjs-sphinxdoc libjs-underscore libjson-perl libllvm20 libpq5 2932s libtime-duration-perl libtimedate-perl libxslt1.1 moreutils patroni 2932s patroni-doc postgresql postgresql-17 postgresql-client-17 2932s postgresql-client-common postgresql-common postgresql-common-dev 2932s python3-behave python3-click python3-coverage python3-parse 2932s python3-parse-type python3-prettytable python3-psutil python3-psycopg2 2932s python3-pysyncobj python3-wcwidth python3-ydiff sphinx-rtd-theme-common 2932s ssl-cert 2932s 0 upgraded, 35 newly installed, 0 to remove and 0 not upgraded. 2932s Need to get 53.0 MB of archives. 2932s After this operation, 212 MB of additional disk space will be used. 2932s Get:1 http://ftpmaster.internal/ubuntu questing/main armhf fonts-lato all 2.015-1 [2781 kB] 2933s Get:2 http://ftpmaster.internal/ubuntu questing/main armhf libjson-perl all 4.10000-1 [81.9 kB] 2933s Get:3 http://ftpmaster.internal/ubuntu questing-proposed/main armhf postgresql-client-common all 277 [48.0 kB] 2933s Get:4 http://ftpmaster.internal/ubuntu questing/main armhf libio-pty-perl armhf 1:1.20-1build3 [31.0 kB] 2933s Get:5 http://ftpmaster.internal/ubuntu questing/main armhf libipc-run-perl all 20231003.0-2 [91.5 kB] 2933s Get:6 http://ftpmaster.internal/ubuntu questing-proposed/main armhf postgresql-common-dev all 277 [73.4 kB] 2933s Get:7 http://ftpmaster.internal/ubuntu questing/main armhf ssl-cert all 1.1.3ubuntu1 [18.7 kB] 2933s Get:8 http://ftpmaster.internal/ubuntu questing-proposed/main armhf postgresql-common all 277 [101 kB] 2933s Get:9 http://ftpmaster.internal/ubuntu questing/main armhf fonts-font-awesome all 5.0.10+really4.7.0~dfsg-4.1 [516 kB] 2933s Get:10 http://ftpmaster.internal/ubuntu questing/main armhf libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 2933s Get:11 http://ftpmaster.internal/ubuntu questing/main armhf libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [118 kB] 2933s Get:12 http://ftpmaster.internal/ubuntu questing/main armhf libjs-sphinxdoc all 8.1.3-5 [31.0 kB] 2933s Get:13 http://ftpmaster.internal/ubuntu questing/main armhf libllvm20 armhf 1:20.1.2-0ubuntu1 [29.6 MB] 2935s Get:14 http://ftpmaster.internal/ubuntu questing/main armhf libpq5 armhf 17.4-1 [125 kB] 2935s Get:15 http://ftpmaster.internal/ubuntu questing/main armhf libtime-duration-perl all 1.21-2 [12.3 kB] 2935s Get:16 http://ftpmaster.internal/ubuntu questing/main armhf libtimedate-perl all 2.3300-2 [34.0 kB] 2935s Get:17 http://ftpmaster.internal/ubuntu questing/main armhf libxslt1.1 armhf 1.1.39-0exp1ubuntu4 [151 kB] 2935s Get:18 http://ftpmaster.internal/ubuntu questing/universe armhf moreutils armhf 0.69-1 [53.5 kB] 2935s Get:19 http://ftpmaster.internal/ubuntu questing/main armhf python3-click all 8.2.0+0.really.8.1.8-1 [80.0 kB] 2935s Get:20 http://ftpmaster.internal/ubuntu questing/main armhf python3-wcwidth all 0.2.13+dfsg1-1 [26.3 kB] 2935s Get:21 http://ftpmaster.internal/ubuntu questing/main armhf python3-prettytable all 3.12.0-1 [36.5 kB] 2935s Get:22 http://ftpmaster.internal/ubuntu questing/main armhf python3-psutil armhf 5.9.8-2build3 [194 kB] 2935s Get:23 http://ftpmaster.internal/ubuntu questing/universe armhf python3-ydiff all 1.4.2-1 [19.0 kB] 2935s Get:24 http://ftpmaster.internal/ubuntu questing/main armhf python3-psycopg2 armhf 2.9.10-1build1 [125 kB] 2935s Get:25 http://ftpmaster.internal/ubuntu questing/universe armhf python3-pysyncobj all 0.3.14-2 [61.9 kB] 2935s Get:26 http://ftpmaster.internal/ubuntu questing/universe armhf patroni all 4.0.4-7 [281 kB] 2935s Get:27 http://ftpmaster.internal/ubuntu questing/main armhf sphinx-rtd-theme-common all 3.0.2+dfsg-2 [1014 kB] 2935s Get:28 http://ftpmaster.internal/ubuntu questing/universe armhf patroni-doc all 4.0.4-7 [526 kB] 2935s Get:29 http://ftpmaster.internal/ubuntu questing/main armhf postgresql-client-17 armhf 17.4-1 [1285 kB] 2935s Get:30 http://ftpmaster.internal/ubuntu questing/main armhf postgresql-17 armhf 17.4-1 [14.8 MB] 2936s Get:31 http://ftpmaster.internal/ubuntu questing-proposed/main armhf postgresql all 17+277 [16.5 kB] 2936s Get:32 http://ftpmaster.internal/ubuntu questing/universe armhf python3-parse all 1.20.2-1 [27.0 kB] 2936s Get:33 http://ftpmaster.internal/ubuntu questing/universe armhf python3-parse-type all 0.6.4-2 [23.5 kB] 2936s Get:34 http://ftpmaster.internal/ubuntu questing/universe armhf python3-behave all 1.2.6-6 [98.6 kB] 2936s Get:35 http://ftpmaster.internal/ubuntu questing/universe armhf python3-coverage armhf 7.6.0+dfsg1-2build1 [152 kB] 2936s Preconfiguring packages ... 2936s /var/cache/debconf/tmp.ci/postgresql.config.6RChfU: 12: pg_lsclusters: not found 2936s Fetched 53.0 MB in 4s (13.5 MB/s) 2936s Selecting previously unselected package fonts-lato. 2936s (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 ... 63953 files and directories currently installed.) 2936s Preparing to unpack .../00-fonts-lato_2.015-1_all.deb ... 2936s Unpacking fonts-lato (2.015-1) ... 2936s Selecting previously unselected package libjson-perl. 2937s Preparing to unpack .../01-libjson-perl_4.10000-1_all.deb ... 2937s Unpacking libjson-perl (4.10000-1) ... 2937s Selecting previously unselected package postgresql-client-common. 2937s Preparing to unpack .../02-postgresql-client-common_277_all.deb ... 2937s Unpacking postgresql-client-common (277) ... 2937s Selecting previously unselected package libio-pty-perl. 2937s Preparing to unpack .../03-libio-pty-perl_1%3a1.20-1build3_armhf.deb ... 2937s Unpacking libio-pty-perl (1:1.20-1build3) ... 2937s Selecting previously unselected package libipc-run-perl. 2937s Preparing to unpack .../04-libipc-run-perl_20231003.0-2_all.deb ... 2937s Unpacking libipc-run-perl (20231003.0-2) ... 2937s Selecting previously unselected package postgresql-common-dev. 2937s Preparing to unpack .../05-postgresql-common-dev_277_all.deb ... 2937s Unpacking postgresql-common-dev (277) ... 2937s Selecting previously unselected package ssl-cert. 2937s Preparing to unpack .../06-ssl-cert_1.1.3ubuntu1_all.deb ... 2937s Unpacking ssl-cert (1.1.3ubuntu1) ... 2937s Selecting previously unselected package postgresql-common. 2937s Preparing to unpack .../07-postgresql-common_277_all.deb ... 2937s Adding 'diversion of /usr/bin/pg_config to /usr/bin/pg_config.libpq-dev by postgresql-common' 2937s Unpacking postgresql-common (277) ... 2937s Selecting previously unselected package fonts-font-awesome. 2937s Preparing to unpack .../08-fonts-font-awesome_5.0.10+really4.7.0~dfsg-4.1_all.deb ... 2937s Unpacking fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 2937s Selecting previously unselected package libjs-jquery. 2937s Preparing to unpack .../09-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 2937s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 2937s Selecting previously unselected package libjs-underscore. 2937s Preparing to unpack .../10-libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ... 2937s Unpacking libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 2937s Selecting previously unselected package libjs-sphinxdoc. 2937s Preparing to unpack .../11-libjs-sphinxdoc_8.1.3-5_all.deb ... 2937s Unpacking libjs-sphinxdoc (8.1.3-5) ... 2937s Selecting previously unselected package libllvm20:armhf. 2937s Preparing to unpack .../12-libllvm20_1%3a20.1.2-0ubuntu1_armhf.deb ... 2937s Unpacking libllvm20:armhf (1:20.1.2-0ubuntu1) ... 2938s Selecting previously unselected package libpq5:armhf. 2938s Preparing to unpack .../13-libpq5_17.4-1_armhf.deb ... 2938s Unpacking libpq5:armhf (17.4-1) ... 2938s Selecting previously unselected package libtime-duration-perl. 2938s Preparing to unpack .../14-libtime-duration-perl_1.21-2_all.deb ... 2938s Unpacking libtime-duration-perl (1.21-2) ... 2938s Selecting previously unselected package libtimedate-perl. 2938s Preparing to unpack .../15-libtimedate-perl_2.3300-2_all.deb ... 2938s Unpacking libtimedate-perl (2.3300-2) ... 2938s Selecting previously unselected package libxslt1.1:armhf. 2938s Preparing to unpack .../16-libxslt1.1_1.1.39-0exp1ubuntu4_armhf.deb ... 2938s Unpacking libxslt1.1:armhf (1.1.39-0exp1ubuntu4) ... 2938s Selecting previously unselected package moreutils. 2938s Preparing to unpack .../17-moreutils_0.69-1_armhf.deb ... 2938s Unpacking moreutils (0.69-1) ... 2938s Selecting previously unselected package python3-click. 2938s Preparing to unpack .../18-python3-click_8.2.0+0.really.8.1.8-1_all.deb ... 2938s Unpacking python3-click (8.2.0+0.really.8.1.8-1) ... 2938s Selecting previously unselected package python3-wcwidth. 2938s Preparing to unpack .../19-python3-wcwidth_0.2.13+dfsg1-1_all.deb ... 2938s Unpacking python3-wcwidth (0.2.13+dfsg1-1) ... 2938s Selecting previously unselected package python3-prettytable. 2938s Preparing to unpack .../20-python3-prettytable_3.12.0-1_all.deb ... 2938s Unpacking python3-prettytable (3.12.0-1) ... 2938s Selecting previously unselected package python3-psutil. 2938s Preparing to unpack .../21-python3-psutil_5.9.8-2build3_armhf.deb ... 2938s Unpacking python3-psutil (5.9.8-2build3) ... 2938s Selecting previously unselected package python3-ydiff. 2938s Preparing to unpack .../22-python3-ydiff_1.4.2-1_all.deb ... 2938s Unpacking python3-ydiff (1.4.2-1) ... 2938s Selecting previously unselected package python3-psycopg2. 2938s Preparing to unpack .../23-python3-psycopg2_2.9.10-1build1_armhf.deb ... 2938s Unpacking python3-psycopg2 (2.9.10-1build1) ... 2939s Selecting previously unselected package python3-pysyncobj. 2939s Preparing to unpack .../24-python3-pysyncobj_0.3.14-2_all.deb ... 2939s Unpacking python3-pysyncobj (0.3.14-2) ... 2939s Selecting previously unselected package patroni. 2939s Preparing to unpack .../25-patroni_4.0.4-7_all.deb ... 2939s Unpacking patroni (4.0.4-7) ... 2939s Selecting previously unselected package sphinx-rtd-theme-common. 2939s Preparing to unpack .../26-sphinx-rtd-theme-common_3.0.2+dfsg-2_all.deb ... 2939s Unpacking sphinx-rtd-theme-common (3.0.2+dfsg-2) ... 2939s Selecting previously unselected package patroni-doc. 2939s Preparing to unpack .../27-patroni-doc_4.0.4-7_all.deb ... 2939s Unpacking patroni-doc (4.0.4-7) ... 2939s Selecting previously unselected package postgresql-client-17. 2939s Preparing to unpack .../28-postgresql-client-17_17.4-1_armhf.deb ... 2939s Unpacking postgresql-client-17 (17.4-1) ... 2939s Selecting previously unselected package postgresql-17. 2939s Preparing to unpack .../29-postgresql-17_17.4-1_armhf.deb ... 2939s Unpacking postgresql-17 (17.4-1) ... 2939s Selecting previously unselected package postgresql. 2939s Preparing to unpack .../30-postgresql_17+277_all.deb ... 2939s Unpacking postgresql (17+277) ... 2939s Selecting previously unselected package python3-parse. 2939s Preparing to unpack .../31-python3-parse_1.20.2-1_all.deb ... 2939s Unpacking python3-parse (1.20.2-1) ... 2939s Selecting previously unselected package python3-parse-type. 2939s Preparing to unpack .../32-python3-parse-type_0.6.4-2_all.deb ... 2939s Unpacking python3-parse-type (0.6.4-2) ... 2939s Selecting previously unselected package python3-behave. 2939s Preparing to unpack .../33-python3-behave_1.2.6-6_all.deb ... 2939s Unpacking python3-behave (1.2.6-6) ... 2940s Selecting previously unselected package python3-coverage. 2940s Preparing to unpack .../34-python3-coverage_7.6.0+dfsg1-2build1_armhf.deb ... 2940s Unpacking python3-coverage (7.6.0+dfsg1-2build1) ... 2940s Setting up postgresql-client-common (277) ... 2940s Setting up fonts-lato (2.015-1) ... 2940s Setting up libio-pty-perl (1:1.20-1build3) ... 2940s Setting up python3-pysyncobj (0.3.14-2) ... 2940s Setting up python3-ydiff (1.4.2-1) ... 2940s Setting up libpq5:armhf (17.4-1) ... 2940s Setting up python3-coverage (7.6.0+dfsg1-2build1) ... 2940s Setting up python3-click (8.2.0+0.really.8.1.8-1) ... 2940s Setting up python3-psutil (5.9.8-2build3) ... 2941s Setting up python3-wcwidth (0.2.13+dfsg1-1) ... 2941s Setting up ssl-cert (1.1.3ubuntu1) ... 2942s Created symlink '/etc/systemd/system/multi-user.target.wants/ssl-cert.service' → '/usr/lib/systemd/system/ssl-cert.service'. 2942s Setting up libllvm20:armhf (1:20.1.2-0ubuntu1) ... 2942s Setting up python3-psycopg2 (2.9.10-1build1) ... 2942s Setting up libipc-run-perl (20231003.0-2) ... 2942s Setting up libtime-duration-perl (1.21-2) ... 2942s Setting up libtimedate-perl (2.3300-2) ... 2942s Setting up python3-parse (1.20.2-1) ... 2942s Setting up libjson-perl (4.10000-1) ... 2942s Setting up libxslt1.1:armhf (1.1.39-0exp1ubuntu4) ... 2942s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 2942s Setting up python3-prettytable (3.12.0-1) ... 2942s Setting up fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 2942s Setting up sphinx-rtd-theme-common (3.0.2+dfsg-2) ... 2942s Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 2942s Setting up postgresql-common-dev (277) ... 2942s Setting up moreutils (0.69-1) ... 2942s Setting up postgresql-client-17 (17.4-1) ... 2943s update-alternatives: using /usr/share/postgresql/17/man/man1/psql.1.gz to provide /usr/share/man/man1/psql.1.gz (psql.1.gz) in auto mode 2943s Setting up python3-parse-type (0.6.4-2) ... 2943s Setting up postgresql-common (277) ... 2944s Creating config file /etc/postgresql-common/createcluster.conf with new version 2944s Building PostgreSQL dictionaries from installed myspell/hunspell packages... 2944s Removing obsolete dictionary files: 2945s Created symlink '/etc/systemd/system/multi-user.target.wants/postgresql.service' → '/usr/lib/systemd/system/postgresql.service'. 2945s Setting up libjs-sphinxdoc (8.1.3-5) ... 2945s Setting up python3-behave (1.2.6-6) ... 2945s /usr/lib/python3/dist-packages/behave/formatter/ansi_escapes.py:57: SyntaxWarning: invalid escape sequence '\[' 2945s _ANSI_ESCAPE_PATTERN = re.compile(u"\x1b\[\d+[mA]", re.UNICODE) 2945s /usr/lib/python3/dist-packages/behave/matchers.py:284: SyntaxWarning: invalid escape sequence '\d' 2945s @parse.with_pattern(r"\d+") 2945s Setting up patroni (4.0.4-7) ... 2945s Created symlink '/etc/systemd/system/multi-user.target.wants/patroni.service' → '/usr/lib/systemd/system/patroni.service'. 2946s Setting up postgresql-17 (17.4-1) ... 2947s Creating new PostgreSQL cluster 17/main ... 2947s /usr/lib/postgresql/17/bin/initdb -D /var/lib/postgresql/17/main --auth-local peer --auth-host scram-sha-256 --no-instructions 2947s The files belonging to this database system will be owned by user "postgres". 2947s This user must also own the server process. 2947s 2947s The database cluster will be initialized with locale "C.UTF-8". 2947s The default database encoding has accordingly been set to "UTF8". 2947s The default text search configuration will be set to "english". 2947s 2947s Data page checksums are disabled. 2947s 2947s fixing permissions on existing directory /var/lib/postgresql/17/main ... ok 2947s creating subdirectories ... ok 2947s selecting dynamic shared memory implementation ... posix 2947s selecting default "max_connections" ... 100 2947s selecting default "shared_buffers" ... 128MB 2947s selecting default time zone ... Etc/UTC 2947s creating configuration files ... ok 2948s running bootstrap script ... ok 2948s performing post-bootstrap initialization ... ok 2948s syncing data to disk ... ok 2951s Setting up patroni-doc (4.0.4-7) ... 2951s Setting up postgresql (17+277) ... 2951s Processing triggers for man-db (2.13.0-1) ... 2952s Processing triggers for libc-bin (2.41-6ubuntu1) ... 2971s autopkgtest [14:41:20]: test acceptance-raft: debian/tests/acceptance raft 2971s autopkgtest [14:41:20]: test acceptance-raft: [----------------------- 2973s dpkg-architecture: warning: cannot determine CC system type, falling back to default (native compilation) 2973s ++ ls -1r /usr/lib/postgresql/ 2973s + for PG_VERSION in $(ls -1r /usr/lib/postgresql/) 2973s + '[' 17 == 10 -o 17 == 11 ']' 2973s + echo '### PostgreSQL 17 acceptance-raft ###' 2973s + bash -c 'set -o pipefail; ETCD_UNSUPPORTED_ARCH=arm DCS=raft PATH=/usr/lib/postgresql/17/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin behave | ts' 2973s ### PostgreSQL 17 acceptance-raft ### 2979s May 02 14:41:28 Feature: basic replication # features/basic_replication.feature:1 2979s May 02 14:41:28 We should check that the basic bootstrapping, replication and failover works. 2979s May 02 14:41:28 Scenario: check replication of a single table # features/basic_replication.feature:4 2979s May 02 14:41:28 Given I start postgres-0 # features/steps/basic_replication.py:20 2985s May 02 14:41:33 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 2985s May 02 14:41:33 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 2985s May 02 14:41:33 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:73 2985s May 02 14:41:34 Then I receive a response code 200 # features/steps/patroni_api.py:100 2985s May 02 14:41:34 When I start postgres-1 # features/steps/basic_replication.py:20 2990s May 02 14:41:39 And I configure and start postgres-2 with a tag replicatefrom postgres-0 # features/steps/cascading_replication.py:7 2995s May 02 14:41:44 And "sync" key in DCS has leader=postgres-0 after 20 seconds # features/steps/cascading_replication.py:23 2995s May 02 14:41:44 And I add the table foo to postgres-0 # features/steps/basic_replication.py:66 2995s May 02 14:41:44 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 2996s May 02 14:41:45 Then table foo is present on postgres-2 after 20 seconds # features/steps/basic_replication.py:105 2996s May 02 14:41:45 2996s May 02 14:41:45 Scenario: check restart of sync replica # features/basic_replication.feature:17 2996s May 02 14:41:45 Given I shut down postgres-2 # features/steps/basic_replication.py:41 2997s May 02 14:41:46 Then "sync" key in DCS has sync_standby=postgres-1 after 5 seconds # features/steps/cascading_replication.py:23 2997s May 02 14:41:46 When I start postgres-2 # features/steps/basic_replication.py:20 3000s May 02 14:41:49 And I shut down postgres-1 # features/steps/basic_replication.py:41 3003s May 02 14:41:52 Then "sync" key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 3004s May 02 14:41:53 When I start postgres-1 # features/steps/basic_replication.py:20 3007s May 02 14:41:56 Then "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 3007s May 02 14:41:56 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 3007s May 02 14:41:56 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:144 3007s May 02 14:41:56 3007s May 02 14:41:56 Scenario: check stuck sync replica # features/basic_replication.feature:28 3007s May 02 14:41:56 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:73 3007s May 02 14:41:56 Then I receive a response code 200 # features/steps/patroni_api.py:100 3007s May 02 14:41:56 And I create table on postgres-0 # features/steps/basic_replication.py:85 3007s May 02 14:41:56 And table mytest is present on postgres-1 after 2 seconds # features/steps/basic_replication.py:105 3008s May 02 14:41:57 And table mytest is present on postgres-2 after 2 seconds # features/steps/basic_replication.py:105 3008s May 02 14:41:57 When I pause wal replay on postgres-2 # features/steps/basic_replication.py:76 3008s May 02 14:41:57 And I load data on postgres-0 # features/steps/basic_replication.py:96 3009s May 02 14:41:58 Then "sync" key in DCS has sync_standby=postgres-1 after 15 seconds # features/steps/cascading_replication.py:23 3012s May 02 14:42:01 And I resume wal replay on postgres-2 # features/steps/basic_replication.py:76 3012s May 02 14:42:01 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 3012s May 02 14:42:01 And Status code on GET http://127.0.0.1:8010/async is 200 after 3 seconds # features/steps/patroni_api.py:144 3012s May 02 14:42:01 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:73 3012s May 02 14:42:01 Then I receive a response code 200 # features/steps/patroni_api.py:100 3012s May 02 14:42:01 And I drop table on postgres-0 # features/steps/basic_replication.py:85 3012s May 02 14:42:01 3012s May 02 14:42:01 Scenario: check multi sync replication # features/basic_replication.feature:44 3012s May 02 14:42:01 Given I issue a PATCH request to http://127.0.0.1:8008/config with {"synchronous_node_count": 2} # features/steps/patroni_api.py:73 3012s May 02 14:42:01 Then I receive a response code 200 # features/steps/patroni_api.py:100 3012s May 02 14:42:01 Then "sync" key in DCS has sync_standby=postgres-1,postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 3016s May 02 14:42:05 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 3016s May 02 14:42:05 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 3016s May 02 14:42:05 When I issue a PATCH request to http://127.0.0.1:8008/config with {"synchronous_node_count": 1} # features/steps/patroni_api.py:73 3016s May 02 14:42:05 Then I receive a response code 200 # features/steps/patroni_api.py:100 3016s May 02 14:42:05 And I shut down postgres-1 # features/steps/basic_replication.py:41 3019s May 02 14:42:08 Then "sync" key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 3020s May 02 14:42:09 When I start postgres-1 # features/steps/basic_replication.py:20 3024s May 02 14:42:13 Then "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 3024s May 02 14:42:13 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 3024s May 02 14:42:13 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:144 3024s May 02 14:42:13 3024s May 02 14:42:13 Scenario: check the basic failover in synchronous mode # features/basic_replication.feature:59 3024s May 02 14:42:13 Given I run patronictl.py pause batman # features/steps/patroni_api.py:88 3026s May 02 14:42:15 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 3026s May 02 14:42:15 When I sleep for 2 seconds # features/steps/patroni_api.py:41 3028s May 02 14:42:17 And I shut down postgres-0 # features/steps/basic_replication.py:41 3029s May 02 14:42:18 And I run patronictl.py resume batman # features/steps/patroni_api.py:88 3030s May 02 14:42:19 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 3030s May 02 14:42:19 And postgres-2 role is the primary after 24 seconds # features/steps/basic_replication.py:117 3049s May 02 14:42:38 And Response on GET http://127.0.0.1:8010/history contains recovery after 10 seconds # features/steps/patroni_api.py:158 3052s May 02 14:42:41 And there is a postgres-2_cb.log with "on_role_change primary batman" in postgres-2 data directory # features/steps/cascading_replication.py:12 3052s May 02 14:42:41 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:73 3052s May 02 14:42:41 Then I receive a response code 200 # features/steps/patroni_api.py:100 3052s May 02 14:42:41 When I add the table bar to postgres-2 # features/steps/basic_replication.py:66 3052s May 02 14:42:41 Then table bar is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 3052s May 02 14:42:41 And Response on GET http://127.0.0.1:8010/config contains master_start_timeout after 10 seconds # features/steps/patroni_api.py:158 3052s May 02 14:42:41 3052s May 02 14:42:41 Scenario: check rejoin of the former primary with pg_rewind # features/basic_replication.feature:75 3052s May 02 14:42:41 Given I add the table splitbrain to postgres-0 # features/steps/basic_replication.py:66 3052s May 02 14:42:41 And I start postgres-0 # features/steps/basic_replication.py:20 3052s May 02 14:42:41 Then postgres-0 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 3057s May 02 14:42:45 When I add the table buz to postgres-2 # features/steps/basic_replication.py:66 3057s May 02 14:42:46 Then table buz is present on postgres-0 after 20 seconds # features/steps/basic_replication.py:105 3062s SKIP Scenario check graceful rejection when two nodes have the same name: Flaky test with Raft 3077s May 02 14:43:06 3077s May 02 14:43:06 @reject-duplicate-name 3077s May 02 14:43:06 Scenario: check graceful rejection when two nodes have the same name # features/basic_replication.feature:83 3077s May 02 14:43:06 Given I start duplicate postgres-0 on port 8011 # None 3077s May 02 14:43:06 Then there is one of ["Can't start; there is already a node named 'postgres-0' running"] CRITICAL in the dup-postgres-0 patroni log after 5 seconds # None 3077s May 02 14:43:06 3077s May 02 14:43:06 Feature: cascading replication # features/cascading_replication.feature:1 3077s May 02 14:43:06 We should check that patroni can do base backup and streaming from the replica 3077s May 02 14:43:06 Scenario: check a base backup and streaming replication from a replica # features/cascading_replication.feature:4 3077s May 02 14:43:06 Given I start postgres-0 # features/steps/basic_replication.py:20 3082s May 02 14:43:11 And postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 3082s May 02 14:43:11 And I configure and start postgres-1 with a tag clonefrom true # features/steps/cascading_replication.py:7 3087s May 02 14:43:16 And replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 3088s May 02 14:43:17 And I create label with "postgres-0" in postgres-0 data directory # features/steps/cascading_replication.py:18 3088s May 02 14:43:17 And I create label with "postgres-1" in postgres-1 data directory # features/steps/cascading_replication.py:18 3088s May 02 14:43:17 And "members/postgres-1" key in DCS has state=running after 12 seconds # features/steps/cascading_replication.py:23 3088s May 02 14:43:17 And I configure and start postgres-2 with a tag replicatefrom postgres-1 # features/steps/cascading_replication.py:7 3094s May 02 14:43:23 Then replication works from postgres-0 to postgres-2 after 30 seconds # features/steps/basic_replication.py:124 3096s May 02 14:43:24 And there is a label with "postgres-1" in postgres-2 data directory # features/steps/cascading_replication.py:12 3111s May 02 14:43:40 3111s SKIP FEATURE citus: Citus extension isn't available 3111s SKIP Scenario check that worker cluster is registered in the coordinator: Citus extension isn't available 3111s SKIP Scenario coordinator failover updates pg_dist_node: Citus extension isn't available 3111s SKIP Scenario worker switchover doesn't break client queries on the coordinator: Citus extension isn't available 3111s SKIP Scenario worker primary restart doesn't break client queries on the coordinator: Citus extension isn't available 3111s SKIP Scenario check that in-flight transaction is rolled back after timeout when other workers need to change pg_dist_node: Citus extension isn't available 3111s May 02 14:43:40 Feature: citus # features/citus.feature:1 3111s May 02 14:43:40 We should check that coordinator discovers and registers workers and clients don't have errors when worker cluster switches over 3111s May 02 14:43:40 Scenario: check that worker cluster is registered in the coordinator # features/citus.feature:4 3111s May 02 14:43:40 Given I start postgres-0 in citus group 0 # None 3111s May 02 14:43:40 And I start postgres-2 in citus group 1 # None 3111s May 02 14:43:40 Then postgres-0 is a leader in a group 0 after 10 seconds # None 3111s May 02 14:43:40 And postgres-2 is a leader in a group 1 after 10 seconds # None 3111s May 02 14:43:40 When I start postgres-1 in citus group 0 # None 3111s May 02 14:43:40 And I start postgres-3 in citus group 1 # None 3111s May 02 14:43:40 Then replication works from postgres-0 to postgres-1 after 15 seconds # None 3111s May 02 14:43:40 Then replication works from postgres-2 to postgres-3 after 15 seconds # None 3111s May 02 14:43:40 And postgres-0 is registered in the postgres-0 as the primary in group 0 after 5 seconds # None 3111s May 02 14:43:40 And postgres-1 is registered in the postgres-0 as the secondary in group 0 after 5 seconds # None 3111s May 02 14:43:40 And postgres-2 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 3111s May 02 14:43:40 And postgres-3 is registered in the postgres-0 as the secondary in group 1 after 5 seconds # None 3111s May 02 14:43:40 3111s May 02 14:43:40 Scenario: coordinator failover updates pg_dist_node # features/citus.feature:18 3111s May 02 14:43:40 Given I run patronictl.py failover batman --group 0 --candidate postgres-1 --force # None 3111s May 02 14:43:40 Then postgres-1 role is the primary after 10 seconds # None 3111s May 02 14:43:40 And "members/postgres-0" key in a group 0 in DCS has state=running after 15 seconds # None 3111s May 02 14:43:40 And replication works from postgres-1 to postgres-0 after 15 seconds # None 3111s May 02 14:43:40 And postgres-1 is registered in the postgres-2 as the primary in group 0 after 5 seconds # None 3111s May 02 14:43:40 And postgres-0 is registered in the postgres-2 as the secondary in group 0 after 15 seconds # None 3111s May 02 14:43:40 And "sync" key in a group 0 in DCS has sync_standby=postgres-0 after 15 seconds # None 3111s May 02 14:43:40 When I run patronictl.py switchover batman --group 0 --candidate postgres-0 --force # None 3111s May 02 14:43:40 Then postgres-0 role is the primary after 10 seconds # None 3111s May 02 14:43:40 And replication works from postgres-0 to postgres-1 after 15 seconds # None 3111s May 02 14:43:40 And postgres-0 is registered in the postgres-2 as the primary in group 0 after 5 seconds # None 3111s May 02 14:43:40 And postgres-1 is registered in the postgres-2 as the secondary in group 0 after 15 seconds # None 3111s May 02 14:43:40 And "sync" key in a group 0 in DCS has sync_standby=postgres-1 after 15 seconds # None 3111s May 02 14:43:40 3111s May 02 14:43:40 Scenario: worker switchover doesn't break client queries on the coordinator # features/citus.feature:33 3111s May 02 14:43:40 Given I create a distributed table on postgres-0 # None 3111s May 02 14:43:40 And I start a thread inserting data on postgres-0 # None 3111s May 02 14:43:40 When I run patronictl.py switchover batman --group 1 --force # None 3111s May 02 14:43:40 Then I receive a response returncode 0 # None 3111s May 02 14:43:40 And postgres-3 role is the primary after 10 seconds # None 3111s May 02 14:43:40 And "members/postgres-2" key in a group 1 in DCS has state=running after 15 seconds # None 3111s May 02 14:43:40 And replication works from postgres-3 to postgres-2 after 15 seconds # None 3111s May 02 14:43:40 And postgres-3 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 3111s May 02 14:43:40 And postgres-2 is registered in the postgres-0 as the secondary in group 1 after 15 seconds # None 3111s May 02 14:43:40 And "sync" key in a group 1 in DCS has sync_standby=postgres-2 after 15 seconds # None 3111s May 02 14:43:40 And a thread is still alive # None 3111s May 02 14:43:40 When I run patronictl.py switchover batman --group 1 --force # None 3111s May 02 14:43:40 Then I receive a response returncode 0 # None 3111s May 02 14:43:40 And postgres-2 role is the primary after 10 seconds # None 3111s May 02 14:43:40 And replication works from postgres-2 to postgres-3 after 15 seconds # None 3111s May 02 14:43:40 And postgres-2 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 3111s May 02 14:43:40 And postgres-3 is registered in the postgres-0 as the secondary in group 1 after 15 seconds # None 3111s May 02 14:43:40 And "sync" key in a group 1 in DCS has sync_standby=postgres-3 after 15 seconds # None 3111s May 02 14:43:40 And a thread is still alive # None 3111s May 02 14:43:40 When I stop a thread # None 3111s May 02 14:43:40 Then a distributed table on postgres-0 has expected rows # None 3111s May 02 14:43:40 3111s May 02 14:43:40 Scenario: worker primary restart doesn't break client queries on the coordinator # features/citus.feature:56 3111s May 02 14:43:40 Given I cleanup a distributed table on postgres-0 # None 3111s May 02 14:43:40 And I start a thread inserting data on postgres-0 # None 3111s May 02 14:43:40 When I run patronictl.py restart batman postgres-2 --group 1 --force # None 3111s May 02 14:43:40 Then I receive a response returncode 0 # None 3111s May 02 14:43:40 And postgres-2 role is the primary after 10 seconds # None 3111s May 02 14:43:40 And replication works from postgres-2 to postgres-3 after 15 seconds # None 3111s May 02 14:43:40 And postgres-2 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 3111s May 02 14:43:40 And postgres-3 is registered in the postgres-0 as the secondary in group 1 after 15 seconds # None 3111s May 02 14:43:40 And a thread is still alive # None 3111s May 02 14:43:40 When I stop a thread # None 3111s May 02 14:43:40 Then a distributed table on postgres-0 has expected rows # None 3118s May 02 14:43:46 3118s May 02 14:43:46 Scenario: check that in-flight transaction is rolled back after timeout when other workers need to change pg_dist_node # features/citus.feature:69 3118s May 02 14:43:46 Given I start postgres-4 in citus group 2 # None 3118s May 02 14:43:46 Then postgres-4 is a leader in a group 2 after 10 seconds # None 3118s May 02 14:43:46 And "members/postgres-4" key in a group 2 in DCS has role=primary after 3 seconds # None 3118s May 02 14:43:46 When I run patronictl.py edit-config batman --group 2 -s ttl=20 --force # None 3118s May 02 14:43:46 Then I receive a response returncode 0 # None 3118s May 02 14:43:46 And I receive a response output "+ttl: 20" # None 3118s May 02 14:43:46 Then postgres-4 is registered in the postgres-2 as the primary in group 2 after 5 seconds # None 3118s May 02 14:43:46 When I shut down postgres-4 # None 3118s May 02 14:43:46 Then there is a transaction in progress on postgres-0 changing pg_dist_node after 5 seconds # None 3118s May 02 14:43:46 When I run patronictl.py restart batman postgres-2 --group 1 --force # None 3118s May 02 14:43:46 Then a transaction finishes in 20 seconds # None 3118s May 02 14:43:46 3118s May 02 14:43:46 Feature: custom bootstrap # features/custom_bootstrap.feature:1 3118s May 02 14:43:46 We should check that patroni can bootstrap a new cluster from a backup 3118s May 02 14:43:46 Scenario: clone existing cluster using pg_basebackup # features/custom_bootstrap.feature:4 3118s May 02 14:43:46 Given I start postgres-0 # features/steps/basic_replication.py:20 3123s May 02 14:43:52 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 3123s May 02 14:43:52 When I add the table foo to postgres-0 # features/steps/basic_replication.py:66 3123s May 02 14:43:52 And I start postgres-1 in a cluster batman1 as a clone of postgres-0 # features/steps/custom_bootstrap.py:6 3128s May 02 14:43:57 Then postgres-1 is a leader of batman1 after 10 seconds # features/steps/custom_bootstrap.py:16 3129s May 02 14:43:58 Then table foo is present on postgres-1 after 10 seconds # features/steps/basic_replication.py:105 3129s May 02 14:43:58 3129s May 02 14:43:58 Scenario: make a backup and do a restore into a new cluster # features/custom_bootstrap.feature:12 3129s May 02 14:43:58 Given I add the table bar to postgres-1 # features/steps/basic_replication.py:66 3129s May 02 14:43:58 And I do a backup of postgres-1 # features/steps/custom_bootstrap.py:25 3131s May 02 14:44:00 When I start postgres-2 in a cluster batman2 from backup # features/steps/custom_bootstrap.py:11 3137s May 02 14:44:06 Then postgres-2 is a leader of batman2 after 30 seconds # features/steps/custom_bootstrap.py:16 3137s May 02 14:44:06 And table bar is present on postgres-2 after 10 seconds # features/steps/basic_replication.py:105 3154s May 02 14:44:23 3154s May 02 14:44:23 Feature: dcs failsafe mode # features/dcs_failsafe_mode.feature:1 3154s May 02 14:44:23 We should check the basic dcs failsafe mode functioning 3154s May 02 14:44:23 Scenario: check failsafe mode can be successfully enabled # features/dcs_failsafe_mode.feature:4 3154s May 02 14:44:23 Given I start postgres-0 # features/steps/basic_replication.py:20 3160s May 02 14:44:28 And postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 3160s May 02 14:44:28 Then "config" key in DCS has ttl=30 after 10 seconds # features/steps/cascading_replication.py:23 3160s May 02 14:44:28 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:73 3160s May 02 14:44:28 Then I receive a response code 200 # features/steps/patroni_api.py:100 3160s May 02 14:44:28 And Response on GET http://127.0.0.1:8008/failsafe contains postgres-0 after 10 seconds # features/steps/patroni_api.py:158 3160s May 02 14:44:28 When I issue a GET request to http://127.0.0.1:8008/failsafe # features/steps/patroni_api.py:63 3160s May 02 14:44:28 Then I receive a response code 200 # features/steps/patroni_api.py:100 3160s May 02 14:44:28 And I receive a response postgres-0 http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:100 3160s May 02 14:44:28 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,"postgres_0":null}} # features/steps/patroni_api.py:73 3160s May 02 14:44:29 Then I receive a response code 200 # features/steps/patroni_api.py:100 3160s May 02 14:44:29 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:73 3160s May 02 14:44:29 Then I receive a response code 200 # features/steps/patroni_api.py:100 3160s May 02 14:44:29 3160s May 02 14:44:29 @dcs-failsafe 3160s May 02 14:44:29 Scenario: check one-node cluster is functioning while DCS is down # features/dcs_failsafe_mode.feature:20 3160s May 02 14:44:29 Given DCS is down # features/steps/dcs_failsafe_mode.py:4 3160s May 02 14:44:29 Then Response on GET http://127.0.0.1:8008/primary contains failsafe_mode_is_active after 12 seconds # features/steps/patroni_api.py:158 3164s May 02 14:44:33 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 3164s May 02 14:44:33 3164s May 02 14:44:33 @dcs-failsafe 3164s May 02 14:44:33 Scenario: check new replica isn't promoted when leader is down and DCS is up # features/dcs_failsafe_mode.feature:26 3164s May 02 14:44:33 Given DCS is up # features/steps/dcs_failsafe_mode.py:9 3164s May 02 14:44:33 When I do a backup of postgres-0 # features/steps/custom_bootstrap.py:25 3166s May 02 14:44:35 And I shut down postgres-0 # features/steps/basic_replication.py:41 3168s May 02 14:44:37 When I start postgres-1 in a cluster batman from backup with no_leader # features/steps/dcs_failsafe_mode.py:14 3174s May 02 14:44:43 Then postgres-1 role is the replica after 12 seconds # features/steps/basic_replication.py:117 3174s May 02 14:44:43 3174s May 02 14:44:43 Scenario: check leader and replica are both in /failsafe key after leader is back # features/dcs_failsafe_mode.feature:33 3174s May 02 14:44:43 Given I start postgres-0 # features/steps/basic_replication.py:20 3177s May 02 14:44:46 And I start postgres-1 # features/steps/basic_replication.py:20 3177s May 02 14:44:46 Then "members/postgres-0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 3178s May 02 14:44:47 And "members/postgres-1" key in DCS has state=running after 2 seconds # features/steps/cascading_replication.py:23 3178s May 02 14:44:47 And Response on GET http://127.0.0.1:8009/failsafe contains postgres-1 after 10 seconds # features/steps/patroni_api.py:158 3184s May 02 14:44:53 When I issue a GET request to http://127.0.0.1:8009/failsafe # features/steps/patroni_api.py:63 3184s May 02 14:44:53 Then I receive a response code 200 # features/steps/patroni_api.py:100 3184s May 02 14:44:53 And I receive a response postgres-0 http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:100 3184s May 02 14:44:53 And I receive a response postgres-1 http://127.0.0.1:8009/patroni # features/steps/patroni_api.py:100 3184s May 02 14:44:53 3184s May 02 14:44:53 @dcs-failsafe @slot-advance 3184s May 02 14:44:53 Scenario: check leader and replica are functioning while DCS is down # features/dcs_failsafe_mode.feature:46 3184s May 02 14:44:53 Given I get all changes from physical slot dcs_slot_1 on postgres-0 # features/steps/slots.py:77 3184s May 02 14:44:53 Then physical slot dcs_slot_1 is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 3187s May 02 14:44:56 And logical slot dcs_slot_0 is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 3187s May 02 14:44:56 And DCS is down # features/steps/dcs_failsafe_mode.py:4 3187s May 02 14:44:56 Then Response on GET http://127.0.0.1:8008/primary contains failsafe_mode_is_active after 12 seconds # features/steps/patroni_api.py:158 3192s May 02 14:45:01 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 3192s May 02 14:45:01 And postgres-1 role is the replica after 2 seconds # features/steps/basic_replication.py:117 3192s May 02 14:45:01 And replication works from postgres-0 to postgres-1 after 10 seconds # features/steps/basic_replication.py:124 3192s May 02 14:45:01 When I get all changes from logical slot dcs_slot_0 on postgres-0 # features/steps/slots.py:72 3192s May 02 14:45:01 And I get all changes from physical slot dcs_slot_1 on postgres-0 # features/steps/slots.py:77 3192s May 02 14:45:01 Then logical slot dcs_slot_0 is in sync between postgres-0 and postgres-1 after 20 seconds # features/steps/slots.py:52 3199s May 02 14:45:08 And physical slot dcs_slot_1 is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 3199s May 02 14:45:08 3199s May 02 14:45:08 @dcs-failsafe 3199s May 02 14:45:08 Scenario: check primary is demoted when one replica is shut down and DCS is down # features/dcs_failsafe_mode.feature:61 3199s May 02 14:45:08 Given DCS is down # features/steps/dcs_failsafe_mode.py:4 3199s May 02 14:45:08 And I kill postgres-1 # features/steps/basic_replication.py:46 3200s May 02 14:45:09 And I kill postmaster on postgres-1 # features/steps/basic_replication.py:56 3200s May 02 14:45:09 waiting for server to shut down.... done 3200s May 02 14:45:09 server stopped 3200s May 02 14:45:09 Then postgres-0 role is the replica after 12 seconds # features/steps/basic_replication.py:117 3202s May 02 14:45:11 3202s May 02 14:45:11 @dcs-failsafe 3202s May 02 14:45:11 Scenario: check known replica is promoted when leader is down and DCS is up # features/dcs_failsafe_mode.feature:68 3202s May 02 14:45:11 Given I kill postgres-0 # features/steps/basic_replication.py:46 3203s May 02 14:45:12 And I shut down postmaster on postgres-0 # features/steps/basic_replication.py:51 3204s May 02 14:45:12 waiting for server to shut down.... done 3204s May 02 14:45:12 server stopped 3204s May 02 14:45:12 And DCS is up # features/steps/dcs_failsafe_mode.py:9 3204s May 02 14:45:12 When I start postgres-1 # features/steps/basic_replication.py:20 3207s May 02 14:45:16 Then "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 3208s May 02 14:45:17 And postgres-1 role is the primary after 25 seconds # features/steps/basic_replication.py:117 3208s May 02 14:45:17 3208s May 02 14:45:17 @dcs-failsafe 3208s May 02 14:45:17 Scenario: scale to three-node cluster # features/dcs_failsafe_mode.feature:77 3208s May 02 14:45:17 Given I start postgres-0 # features/steps/basic_replication.py:20 3213s May 02 14:45:22 And I configure and start postgres-2 with a tag replicatefrom postgres-0 # features/steps/cascading_replication.py:7 3218s May 02 14:45:27 Then "members/postgres-2" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 3219s May 02 14:45:28 And "members/postgres-0" key in DCS has state=running after 20 seconds # features/steps/cascading_replication.py:23 3219s May 02 14:45:28 And Response on GET http://127.0.0.1:8008/failsafe contains postgres-2 after 10 seconds # features/steps/patroni_api.py:158 3219s May 02 14:45:28 And replication works from postgres-1 to postgres-0 after 10 seconds # features/steps/basic_replication.py:124 3220s May 02 14:45:29 And replication works from postgres-1 to postgres-2 after 10 seconds # features/steps/basic_replication.py:124 3221s May 02 14:45:30 3221s May 02 14:45:30 @dcs-failsafe @slot-advance 3221s May 02 14:45:30 Scenario: make sure permanent slots exist on replicas # features/dcs_failsafe_mode.feature:88 3221s May 02 14:45:30 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:73 3221s May 02 14:45:30 Then logical slot dcs_slot_2 is in sync between postgres-1 and postgres-0 after 20 seconds # features/steps/slots.py:52 3225s May 02 14:45:34 And logical slot dcs_slot_2 is in sync between postgres-1 and postgres-2 after 20 seconds # features/steps/slots.py:52 3226s May 02 14:45:35 When I get all changes from physical slot dcs_slot_1 on postgres-1 # features/steps/slots.py:77 3226s May 02 14:45:35 Then physical slot dcs_slot_1 is in sync between postgres-1 and postgres-0 after 10 seconds # features/steps/slots.py:52 3228s May 02 14:45:37 And physical slot dcs_slot_1 is in sync between postgres-1 and postgres-2 after 10 seconds # features/steps/slots.py:52 3228s May 02 14:45:37 And physical slot postgres_0 is in sync between postgres-1 and postgres-2 after 10 seconds # features/steps/slots.py:52 3228s May 02 14:45:37 And physical slot postgres_2 is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 3228s May 02 14:45:37 3228s May 02 14:45:37 @dcs-failsafe 3228s May 02 14:45:37 Scenario: check three-node cluster is functioning while DCS is down # features/dcs_failsafe_mode.feature:99 3228s May 02 14:45:37 Given DCS is down # features/steps/dcs_failsafe_mode.py:4 3228s May 02 14:45:37 Then Response on GET http://127.0.0.1:8009/primary contains failsafe_mode_is_active after 12 seconds # features/steps/patroni_api.py:158 3232s May 02 14:45:41 Then postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 3232s May 02 14:45:41 And postgres-0 role is the replica after 2 seconds # features/steps/basic_replication.py:117 3232s May 02 14:45:41 And postgres-2 role is the replica after 2 seconds # features/steps/basic_replication.py:117 3232s May 02 14:45:41 3232s May 02 14:45:41 @dcs-failsafe @slot-advance 3232s May 02 14:45:41 Scenario: check that permanent slots are in sync between nodes while DCS is down # features/dcs_failsafe_mode.feature:108 3232s May 02 14:45:41 Given replication works from postgres-1 to postgres-0 after 10 seconds # features/steps/basic_replication.py:124 3232s May 02 14:45:41 And replication works from postgres-1 to postgres-2 after 10 seconds # features/steps/basic_replication.py:124 3233s May 02 14:45:42 When I get all changes from logical slot dcs_slot_2 on postgres-1 # features/steps/slots.py:72 3234s May 02 14:45:42 And I get all changes from physical slot dcs_slot_1 on postgres-1 # features/steps/slots.py:77 3234s May 02 14:45:42 Then logical slot dcs_slot_2 is in sync between postgres-1 and postgres-0 after 20 seconds # features/steps/slots.py:52 3240s May 02 14:45:48 And logical slot dcs_slot_2 is in sync between postgres-1 and postgres-2 after 20 seconds # features/steps/slots.py:52 3240s May 02 14:45:48 And physical slot dcs_slot_1 is in sync between postgres-1 and postgres-0 after 10 seconds # features/steps/slots.py:52 3240s May 02 14:45:48 And physical slot dcs_slot_1 is in sync between postgres-1 and postgres-2 after 10 seconds # features/steps/slots.py:52 3240s May 02 14:45:48 And physical slot postgres_0 is in sync between postgres-1 and postgres-2 after 10 seconds # features/steps/slots.py:52 3240s May 02 14:45:48 And physical slot postgres_2 is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 3252s May 02 14:46:01 3252s May 02 14:46:01 Feature: ignored slots # features/ignored_slots.feature:1 3252s May 02 14:46:01 3252s May 02 14:46:01 Scenario: check ignored slots aren't removed on failover/switchover # features/ignored_slots.feature:2 3252s May 02 14:46:01 Given I start postgres-1 # features/steps/basic_replication.py:20 3257s May 02 14:46:06 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 3257s May 02 14:46:06 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 3257s May 02 14:46:06 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:73 3257s May 02 14:46:06 Then I receive a response code 200 # features/steps/patroni_api.py:100 3257s May 02 14:46:06 And Response on GET http://127.0.0.1:8009/config contains ignore_slots after 10 seconds # features/steps/patroni_api.py:158 3257s May 02 14:46:06 When I shut down postgres-1 # features/steps/basic_replication.py:41 3259s May 02 14:46:08 And I start postgres-1 # features/steps/basic_replication.py:20 3262s May 02 14:46:11 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 3264s May 02 14:46:13 And "members/postgres-1" key in DCS has role=primary after 10 seconds # features/steps/cascading_replication.py:23 3265s May 02 14:46:14 And postgres-1 role is the primary after 20 seconds # features/steps/basic_replication.py:117 3265s May 02 14:46:14 When I create a logical replication slot unmanaged_slot_0 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 3265s May 02 14:46:14 And I create a logical replication slot unmanaged_slot_1 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 3265s May 02 14:46:14 And I create a logical replication slot unmanaged_slot_2 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 3265s May 02 14:46:14 And I create a logical replication slot unmanaged_slot_3 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 3265s May 02 14:46:14 And I create a logical replication slot dummy_slot on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 3265s May 02 14:46:14 Then postgres-1 has a logical replication slot named unmanaged_slot_0 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 3265s May 02 14:46:14 And postgres-1 has a logical replication slot named unmanaged_slot_1 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 3265s May 02 14:46:14 And postgres-1 has a logical replication slot named unmanaged_slot_2 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 3265s May 02 14:46:14 And postgres-1 has a logical replication slot named unmanaged_slot_3 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 3265s May 02 14:46:14 When I start postgres-0 # features/steps/basic_replication.py:20 3269s May 02 14:46:18 Then "members/postgres-0" key in DCS has role=replica after 10 seconds # features/steps/cascading_replication.py:23 3269s May 02 14:46:18 And postgres-0 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 3269s May 02 14:46:18 And replication works from postgres-1 to postgres-0 after 20 seconds # features/steps/basic_replication.py:124 3271s May 02 14:46:20 When I shut down postgres-1 # features/steps/basic_replication.py:41 3273s May 02 14:46:22 Then "members/postgres-0" key in DCS has role=primary after 10 seconds # features/steps/cascading_replication.py:23 3274s May 02 14:46:23 When I start postgres-1 # features/steps/basic_replication.py:20 3278s May 02 14:46:27 Then postgres-1 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 3278s May 02 14:46:27 And "members/postgres-1" key in DCS has role=replica after 10 seconds # features/steps/cascading_replication.py:23 3278s May 02 14:46:27 And I sleep for 2 seconds # features/steps/patroni_api.py:41 3280s May 02 14:46:29 And postgres-1 has a logical replication slot named unmanaged_slot_0 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 3280s May 02 14:46:29 And postgres-1 has a logical replication slot named unmanaged_slot_1 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 3280s May 02 14:46:29 And postgres-1 has a logical replication slot named unmanaged_slot_2 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 3280s May 02 14:46:29 And postgres-1 has a logical replication slot named unmanaged_slot_3 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 3280s May 02 14:46:29 And postgres-1 does not have a replication slot named dummy_slot # features/steps/slots.py:41 3280s May 02 14:46:29 When I shut down postgres-0 # features/steps/basic_replication.py:41 3282s May 02 14:46:31 Then "members/postgres-1" key in DCS has role=primary after 10 seconds # features/steps/cascading_replication.py:23 3283s May 02 14:46:32 And postgres-1 has a logical replication slot named unmanaged_slot_0 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 3283s May 02 14:46:32 And postgres-1 has a logical replication slot named unmanaged_slot_1 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 3283s May 02 14:46:32 And postgres-1 has a logical replication slot named unmanaged_slot_2 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 3283s May 02 14:46:32 And postgres-1 has a logical replication slot named unmanaged_slot_3 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 3291s May 02 14:46:40 3291s May 02 14:46:40 Feature: nostream node # features/nostream_node.feature:1 3291s May 02 14:46:40 3291s May 02 14:46:40 Scenario: check nostream node is recovering from archive # features/nostream_node.feature:3 3291s May 02 14:46:40 When I start postgres-0 # features/steps/basic_replication.py:20 3296s May 02 14:46:45 And I configure and start postgres-1 with a tag nostream true # features/steps/cascading_replication.py:7 3301s May 02 14:46:50 Then "members/postgres-1" key in DCS has replication_state=in archive recovery after 10 seconds # features/steps/cascading_replication.py:23 3302s May 02 14:46:51 And replication works from postgres-0 to postgres-1 after 30 seconds # features/steps/basic_replication.py:124 3307s May 02 14:46:56 3307s May 02 14:46:56 @slot-advance 3307s May 02 14:46:56 Scenario: check permanent logical replication slots are not copied # features/nostream_node.feature:10 3307s May 02 14:46:56 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:73 3307s May 02 14:46:56 Then I receive a response code 200 # features/steps/patroni_api.py:100 3307s May 02 14:46:56 When I run patronictl.py restart batman postgres-0 --force # features/steps/patroni_api.py:88 3309s May 02 14:46:58 Then postgres-0 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:20 3310s May 02 14:46:59 When I configure and start postgres-2 with a tag replicatefrom postgres-1 # features/steps/cascading_replication.py:7 3315s May 02 14:47:04 Then "members/postgres-2" key in DCS has replication_state=streaming after 10 seconds # features/steps/cascading_replication.py:23 3316s May 02 14:47:04 And postgres-1 does not have a replication slot named test_logical # features/steps/slots.py:41 3316s May 02 14:47:04 And postgres-2 does not have a replication slot named test_logical # features/steps/slots.py:41 3316s May 02 14:47:04 3316s May 02 14:47:04 @slot-advance 3316s May 02 14:47:04 Scenario: check that slots are written to the /status key # features/nostream_node.feature:21 3316s May 02 14:47:04 Given "status" key in DCS has postgres_0 in slots # features/steps/slots.py:118 3316s May 02 14:47:04 And "status" key in DCS has postgres_2 in slots # features/steps/slots.py:118 3316s May 02 14:47:04 And "status" key in DCS has test_logical in slots # features/steps/slots.py:118 3316s May 02 14:47:04 And "status" key in DCS has test_logical in slots # features/steps/slots.py:118 3316s May 02 14:47:04 And "status" key in DCS does not have postgres_1 in slots # features/steps/slots.py:124 3331s May 02 14:47:20 3331s May 02 14:47:20 Feature: patroni api # features/patroni_api.feature:1 3331s May 02 14:47:20 We should check that patroni correctly responds to valid and not-valid API requests. 3331s May 02 14:47:20 Scenario: check API requests on a stand-alone server # features/patroni_api.feature:4 3331s May 02 14:47:20 Given I start postgres-0 # features/steps/basic_replication.py:20 3336s May 02 14:47:25 And postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 3336s May 02 14:47:25 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:63 3336s May 02 14:47:25 Then I receive a response code 200 # features/steps/patroni_api.py:100 3336s May 02 14:47:25 And I receive a response state running # features/steps/patroni_api.py:100 3336s May 02 14:47:25 And I receive a response role primary # features/steps/patroni_api.py:100 3336s May 02 14:47:25 When I issue a GET request to http://127.0.0.1:8008/standby_leader # features/steps/patroni_api.py:63 3336s May 02 14:47:25 Then I receive a response code 503 # features/steps/patroni_api.py:100 3336s May 02 14:47:25 When I issue a GET request to http://127.0.0.1:8008/health # features/steps/patroni_api.py:63 3336s May 02 14:47:25 Then I receive a response code 200 # features/steps/patroni_api.py:100 3336s May 02 14:47:25 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:63 3336s May 02 14:47:25 Then I receive a response code 503 # features/steps/patroni_api.py:100 3336s May 02 14:47:25 When I issue a POST request to http://127.0.0.1:8008/reinitialize with {"force": true} # features/steps/patroni_api.py:73 3336s May 02 14:47:25 Then I receive a response code 503 # features/steps/patroni_api.py:100 3336s May 02 14:47:25 And I receive a response text I am the leader, can not reinitialize # features/steps/patroni_api.py:100 3336s May 02 14:47:25 When I run patronictl.py switchover batman --primary postgres-0 --force # features/steps/patroni_api.py:88 3338s May 02 14:47:27 Then I receive a response returncode 1 # features/steps/patroni_api.py:100 3338s May 02 14:47:27 And I receive a response output "Error: No candidates found to switchover to" # features/steps/patroni_api.py:100 3338s May 02 14:47:27 When I issue a POST request to http://127.0.0.1:8008/switchover with {"leader": "postgres-0"} # features/steps/patroni_api.py:73 3338s May 02 14:47:27 Then I receive a response code 412 # features/steps/patroni_api.py:100 3338s May 02 14:47:27 And I receive a response text switchover is not possible: cluster does not have members except leader # features/steps/patroni_api.py:100 3338s May 02 14:47:27 When I issue an empty POST request to http://127.0.0.1:8008/failover # features/steps/patroni_api.py:68 3338s May 02 14:47:27 Then I receive a response code 400 # features/steps/patroni_api.py:100 3338s May 02 14:47:27 When I issue a POST request to http://127.0.0.1:8008/failover with {"foo": "bar"} # features/steps/patroni_api.py:73 3338s May 02 14:47:27 Then I receive a response code 400 # features/steps/patroni_api.py:100 3338s May 02 14:47:27 And I receive a response text "Failover could be performed only to a specific candidate" # features/steps/patroni_api.py:100 3338s May 02 14:47:27 3338s May 02 14:47:27 Scenario: check local configuration reload # features/patroni_api.feature:32 3338s May 02 14:47:27 Given I add tag new_tag new_value to postgres-0 config # features/steps/patroni_api.py:139 3338s May 02 14:47:27 And I issue an empty POST request to http://127.0.0.1:8008/reload # features/steps/patroni_api.py:68 3338s May 02 14:47:27 Then I receive a response code 202 # features/steps/patroni_api.py:100 3338s May 02 14:47:27 3338s May 02 14:47:27 Scenario: check dynamic configuration change via DCS # features/patroni_api.feature:37 3338s May 02 14:47:27 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:73 3338s May 02 14:47:27 Then I receive a response code 200 # features/steps/patroni_api.py:100 3338s May 02 14:47:27 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 11 seconds # features/steps/patroni_api.py:158 3340s May 02 14:47:29 When I issue a GET request to http://127.0.0.1:8008/config # features/steps/patroni_api.py:63 3340s May 02 14:47:29 Then I receive a response code 200 # features/steps/patroni_api.py:100 3340s May 02 14:47:29 And I receive a response ttl 20 # features/steps/patroni_api.py:100 3340s May 02 14:47:29 When I issue a GET request to http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:63 3340s May 02 14:47:29 Then I receive a response code 200 # features/steps/patroni_api.py:100 3340s May 02 14:47:29 And I receive a response tags {'new_tag': 'new_value'} # features/steps/patroni_api.py:100 3340s May 02 14:47:29 And I sleep for 4 seconds # features/steps/patroni_api.py:41 3344s May 02 14:47:33 3344s May 02 14:47:33 Scenario: check the scheduled restart # features/patroni_api.feature:49 3344s May 02 14:47:33 Given I run patronictl.py edit-config -p 'superuser_reserved_connections=6' --force batman # features/steps/patroni_api.py:88 3346s May 02 14:47:35 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 3346s May 02 14:47:35 And I receive a response output "+ superuser_reserved_connections: 6" # features/steps/patroni_api.py:100 3346s May 02 14:47:35 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 5 seconds # features/steps/patroni_api.py:158 3346s May 02 14:47:35 Given I issue a scheduled restart at http://127.0.0.1:8008 in 5 seconds with {"role": "replica"} # features/steps/patroni_api.py:126 3346s May 02 14:47:35 Then I receive a response code 202 # features/steps/patroni_api.py:100 3346s May 02 14:47:35 And I sleep for 8 seconds # features/steps/patroni_api.py:41 3354s May 02 14:47:43 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 10 seconds # features/steps/patroni_api.py:158 3354s May 02 14:47:43 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:126 3354s May 02 14:47:43 Then I receive a response code 202 # features/steps/patroni_api.py:100 3354s May 02 14:47:43 And Response on GET http://127.0.0.1:8008/patroni does not contain pending_restart after 10 seconds # features/steps/patroni_api.py:173 3360s May 02 14:47:49 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 3361s May 02 14:47:50 3361s May 02 14:47:50 Scenario: check API requests for the primary-replica pair in the pause mode # features/patroni_api.feature:63 3361s May 02 14:47:50 Given I start postgres-1 # features/steps/basic_replication.py:20 3373s May 02 14:48:02 Then replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 3374s May 02 14:48:02 When I run patronictl.py pause batman # features/steps/patroni_api.py:88 3376s May 02 14:48:04 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 3376s May 02 14:48:04 When I kill postmaster on postgres-1 # features/steps/basic_replication.py:56 3376s May 02 14:48:04 waiting for server to shut down.... done 3376s May 02 14:48:04 server stopped 3376s May 02 14:48:04 And I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 3376s May 02 14:48:04 Then I receive a response code 503 # features/steps/patroni_api.py:100 3376s May 02 14:48:04 And "members/postgres-1" key in DCS has state=stopped after 10 seconds # features/steps/cascading_replication.py:23 3376s May 02 14:48:05 When I run patronictl.py restart batman postgres-1 --force # features/steps/patroni_api.py:88 3379s May 02 14:48:08 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 3380s May 02 14:48:08 Then replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 3380s May 02 14:48:09 And I sleep for 2 seconds # features/steps/patroni_api.py:41 3382s May 02 14:48:11 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 3383s May 02 14:48:11 Then I receive a response code 200 # features/steps/patroni_api.py:100 3383s May 02 14:48:11 And I receive a response state running # features/steps/patroni_api.py:100 3383s May 02 14:48:11 And I receive a response role replica # features/steps/patroni_api.py:100 3383s May 02 14:48:11 When I run patronictl.py reinit batman postgres-1 --force --wait # features/steps/patroni_api.py:88 3388s May 02 14:48:17 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 3388s May 02 14:48:17 And I receive a response output "Success: reinitialize for member postgres-1" # features/steps/patroni_api.py:100 3388s May 02 14:48:17 And postgres-1 role is the secondary after 30 seconds # features/steps/basic_replication.py:117 3389s May 02 14:48:18 And replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 3390s May 02 14:48:19 When I run patronictl.py restart batman postgres-0 --force # features/steps/patroni_api.py:88 3392s May 02 14:48:21 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 3392s May 02 14:48:21 And I receive a response output "Success: restart on member postgres-0" # features/steps/patroni_api.py:100 3392s May 02 14:48:21 And postgres-0 role is the primary after 5 seconds # features/steps/basic_replication.py:117 3393s May 02 14:48:22 3393s May 02 14:48:22 Scenario: check the switchover via the API in the pause mode # features/patroni_api.feature:90 3393s May 02 14:48:22 Given I issue a POST request to http://127.0.0.1:8008/switchover with {"leader": "postgres-0", "candidate": "postgres-1"} # features/steps/patroni_api.py:73 3395s May 02 14:48:24 Then I receive a response code 200 # features/steps/patroni_api.py:100 3395s May 02 14:48:24 And postgres-1 is a leader after 5 seconds # features/steps/patroni_api.py:31 3395s May 02 14:48:24 And postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 3396s May 02 14:48:25 And postgres-0 role is the secondary after 10 seconds # features/steps/basic_replication.py:117 3401s May 02 14:48:30 And replication works from postgres-1 to postgres-0 after 20 seconds # features/steps/basic_replication.py:124 3401s May 02 14:48:30 And "members/postgres-0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 3402s May 02 14:48:31 When I issue a GET request to http://127.0.0.1:8008/primary # features/steps/patroni_api.py:63 3402s May 02 14:48:31 Then I receive a response code 503 # features/steps/patroni_api.py:100 3402s May 02 14:48:31 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:63 3402s May 02 14:48:31 Then I receive a response code 200 # features/steps/patroni_api.py:100 3402s May 02 14:48:31 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 3403s May 02 14:48:31 Then I receive a response code 200 # features/steps/patroni_api.py:100 3403s May 02 14:48:31 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 3403s May 02 14:48:32 Then I receive a response code 503 # features/steps/patroni_api.py:100 3403s May 02 14:48:32 3403s May 02 14:48:32 Scenario: check the scheduled switchover # features/patroni_api.feature:107 3403s May 02 14:48:32 Given I issue a scheduled switchover from postgres-1 to postgres-0 in 10 seconds # features/steps/patroni_api.py:119 3404s May 02 14:48:33 Then I receive a response returncode 1 # features/steps/patroni_api.py:100 3404s May 02 14:48:33 And I receive a response output "Can't schedule switchover in the paused state" # features/steps/patroni_api.py:100 3404s May 02 14:48:33 When I run patronictl.py resume batman # features/steps/patroni_api.py:88 3405s May 02 14:48:34 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 3405s May 02 14:48:34 Given I issue a scheduled switchover from postgres-1 to postgres-0 in 10 seconds # features/steps/patroni_api.py:119 3407s May 02 14:48:36 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 3407s May 02 14:48:36 And postgres-0 is a leader after 20 seconds # features/steps/patroni_api.py:31 3417s May 02 14:48:46 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 3418s May 02 14:48:47 And postgres-1 role is the secondary after 10 seconds # features/steps/basic_replication.py:117 3421s May 02 14:48:50 And replication works from postgres-0 to postgres-1 after 25 seconds # features/steps/basic_replication.py:124 3421s May 02 14:48:50 And "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 3422s May 02 14:48:51 When I issue a GET request to http://127.0.0.1:8008/primary # features/steps/patroni_api.py:63 3422s May 02 14:48:51 Then I receive a response code 200 # features/steps/patroni_api.py:100 3422s May 02 14:48:51 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:63 3422s May 02 14:48:51 Then I receive a response code 503 # features/steps/patroni_api.py:100 3422s May 02 14:48:51 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 3422s May 02 14:48:51 Then I receive a response code 503 # features/steps/patroni_api.py:100 3422s May 02 14:48:51 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 3422s May 02 14:48:51 Then I receive a response code 200 # features/steps/patroni_api.py:100 3433s May 02 14:49:02 3433s May 02 14:49:02 Feature: permanent slots # features/permanent_slots.feature:1 3433s May 02 14:49:02 3433s May 02 14:49:02 Scenario: check that physical permanent slots are created # features/permanent_slots.feature:2 3433s May 02 14:49:02 Given I start postgres-0 # features/steps/basic_replication.py:20 3443s May 02 14:49:12 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 3443s May 02 14:49:12 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 3443s May 02 14:49:12 When I issue a PATCH request to http://127.0.0.1:8008/config with {"slots":{"test_physical":0,"postgres_3":0},"postgresql":{"parameters":{"wal_level":"logical"}}} # features/steps/patroni_api.py:73 3443s May 02 14:49:12 Then I receive a response code 200 # features/steps/patroni_api.py:100 3443s May 02 14:49:12 And Response on GET http://127.0.0.1:8008/config contains slots after 10 seconds # features/steps/patroni_api.py:158 3443s May 02 14:49:12 When I start postgres-1 # features/steps/basic_replication.py:20 3448s May 02 14:49:17 And I configure and start postgres-2 with a tag nofailover true # features/steps/cascading_replication.py:7 3453s May 02 14:49:22 And I configure and start postgres-3 with a tag replicatefrom postgres-2 # features/steps/cascading_replication.py:7 3458s May 02 14:49:27 Then postgres-0 has a physical replication slot named test_physical after 10 seconds # features/steps/slots.py:82 3458s May 02 14:49:27 And postgres-0 has a physical replication slot named postgres_1 after 10 seconds # features/steps/slots.py:82 3458s May 02 14:49:27 And postgres-0 has a physical replication slot named postgres_2 after 10 seconds # features/steps/slots.py:82 3458s May 02 14:49:27 And postgres-2 has a physical replication slot named postgres_3 after 10 seconds # features/steps/slots.py:82 3458s May 02 14:49:27 And postgres-2 does not have a replication slot named test_physical # features/steps/slots.py:41 3458s May 02 14:49:27 3458s May 02 14:49:27 @slot-advance 3458s May 02 14:49:27 Scenario: check that logical permanent slots are created # features/permanent_slots.feature:19 3458s May 02 14:49:27 Given I run patronictl.py restart batman postgres-0 --force # features/steps/patroni_api.py:88 3460s May 02 14:49:29 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:73 3460s May 02 14:49:29 Then postgres-0 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:20 3461s May 02 14:49:30 3461s May 02 14:49:30 @slot-advance 3461s May 02 14:49:30 Scenario: check that permanent slots are created on replicas # features/permanent_slots.feature:25 3461s May 02 14:49:30 Given postgres-1 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:20 3464s May 02 14:49:33 Then Logical slot test_logical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 3464s May 02 14:49:33 And Logical slot test_logical is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 3465s May 02 14:49:34 And postgres-1 has a physical replication slot named test_physical after 2 seconds # features/steps/slots.py:82 3465s May 02 14:49:34 And postgres-2 does not have a replication slot named test_logical # features/steps/slots.py:41 3465s May 02 14:49:34 And postgres-3 has a physical replication slot named test_physical after 2 seconds # features/steps/slots.py:82 3465s May 02 14:49:34 3465s May 02 14:49:34 @slot-advance 3465s May 02 14:49:34 Scenario: check permanent physical slots that match with member names # features/permanent_slots.feature:34 3465s May 02 14:49:34 Given postgres-0 has a physical replication slot named postgres_3 after 2 seconds # features/steps/slots.py:82 3465s May 02 14:49:34 And postgres-1 has a physical replication slot named postgres_0 after 2 seconds # features/steps/slots.py:82 3465s May 02 14:49:34 And postgres-1 has a physical replication slot named postgres_2 after 2 seconds # features/steps/slots.py:82 3465s May 02 14:49:34 And postgres-1 has a physical replication slot named postgres_3 after 2 seconds # features/steps/slots.py:82 3465s May 02 14:49:34 And postgres-2 does not have a replication slot named postgres_0 # features/steps/slots.py:41 3465s May 02 14:49:34 And postgres-2 does not have a replication slot named postgres_1 # features/steps/slots.py:41 3465s May 02 14:49:34 And postgres-2 has a physical replication slot named postgres_3 after 2 seconds # features/steps/slots.py:82 3465s May 02 14:49:34 And postgres-3 has a physical replication slot named postgres_0 after 2 seconds # features/steps/slots.py:82 3465s May 02 14:49:34 And postgres-3 has a physical replication slot named postgres_1 after 2 seconds # features/steps/slots.py:82 3465s May 02 14:49:34 And postgres-3 has a physical replication slot named postgres_2 after 2 seconds # features/steps/slots.py:82 3465s May 02 14:49:34 3465s May 02 14:49:34 @slot-advance 3465s May 02 14:49:34 Scenario: check that permanent slots are advanced on replicas # features/permanent_slots.feature:47 3465s May 02 14:49:34 Given I add the table replicate_me to postgres-0 # features/steps/basic_replication.py:66 3465s May 02 14:49:34 When I get all changes from logical slot test_logical on postgres-0 # features/steps/slots.py:72 3465s May 02 14:49:34 And I get all changes from physical slot test_physical on postgres-0 # features/steps/slots.py:77 3465s May 02 14:49:34 Then Logical slot test_logical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 3466s May 02 14:49:35 And Physical slot test_physical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 3466s May 02 14:49:35 And Logical slot test_logical is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 3466s May 02 14:49:35 And Physical slot test_physical is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 3466s May 02 14:49:35 And Physical slot postgres_1 is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 3466s May 02 14:49:35 And Physical slot postgres_3 is in sync between postgres-2 and postgres-0 after 20 seconds # features/steps/slots.py:52 3468s May 02 14:49:37 And Physical slot postgres_3 is in sync between postgres-2 and postgres-1 after 10 seconds # features/steps/slots.py:52 3468s May 02 14:49:37 3468s May 02 14:49:37 @slot-advance 3468s May 02 14:49:37 Scenario: check that permanent slots and member slots are written to the /status key # features/permanent_slots.feature:60 3468s May 02 14:49:37 Given "status" key in DCS has test_physical in slots # features/steps/slots.py:118 3468s May 02 14:49:37 And "status" key in DCS has postgres_0 in slots # features/steps/slots.py:118 3468s May 02 14:49:37 And "status" key in DCS has postgres_1 in slots # features/steps/slots.py:118 3468s May 02 14:49:37 And "status" key in DCS has postgres_2 in slots # features/steps/slots.py:118 3468s May 02 14:49:37 And "status" key in DCS has postgres_3 in slots # features/steps/slots.py:118 3468s May 02 14:49:37 3468s May 02 14:49:37 @slot-advance 3468s May 02 14:49:37 Scenario: check that only non-permanent member slots are written to the retain_slots in /status key # features/permanent_slots.feature:68 3468s May 02 14:49:37 Given "status" key in DCS has postgres_0 in retain_slots # features/steps/slots.py:118 3468s May 02 14:49:37 And "status" key in DCS has postgres_1 in retain_slots # features/steps/slots.py:118 3468s May 02 14:49:37 And "status" key in DCS has postgres_2 in retain_slots # features/steps/slots.py:118 3468s May 02 14:49:37 And "status" key in DCS does not have postgres_3 in retain_slots # features/steps/slots.py:124 3468s May 02 14:49:37 3468s May 02 14:49:37 Scenario: check permanent physical replication slot after failover # features/permanent_slots.feature:74 3468s May 02 14:49:37 Given I shut down postgres-3 # features/steps/basic_replication.py:41 3469s May 02 14:49:38 And I shut down postgres-2 # features/steps/basic_replication.py:41 3470s May 02 14:49:39 And I shut down postgres-0 # features/steps/basic_replication.py:41 3472s May 02 14:49:41 Then postgres-1 has a physical replication slot named test_physical after 10 seconds # features/steps/slots.py:82 3472s May 02 14:49:41 And postgres-1 has a physical replication slot named postgres_0 after 10 seconds # features/steps/slots.py:82 3472s May 02 14:49:41 And postgres-1 has a physical replication slot named postgres_3 after 10 seconds # features/steps/slots.py:82 3472s May 02 14:49:41 When I start postgres-0 # features/steps/basic_replication.py:20 3475s May 02 14:49:44 Then postgres-0 role is the replica after 20 seconds # features/steps/basic_replication.py:117 3475s May 02 14:49:44 And physical replication slot named postgres_1 on postgres-0 has no xmin value after 10 seconds # features/steps/slots.py:98 3476s May 02 14:49:45 And postgres-0 has a physical replication slot named postgres_2 after 10 seconds # features/steps/slots.py:82 3476s May 02 14:49:45 And postgres-0 has a physical replication slot named postgres_3 after 10 seconds # features/steps/slots.py:82 3491s May 02 14:50:00 3491s May 02 14:50:00 Feature: priority replication # features/priority_failover.feature:1 3491s May 02 14:50:00 We should check that we can give nodes priority during failover 3491s May 02 14:50:00 Scenario: check failover priority 0 prevents leaderships # features/priority_failover.feature:4 3491s May 02 14:50:00 Given I configure and start postgres-0 with a tag failover_priority 1 # features/steps/cascading_replication.py:7 3496s May 02 14:50:05 And I configure and start postgres-1 with a tag failover_priority 0 # features/steps/cascading_replication.py:7 3501s May 02 14:50:10 Then replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 3502s May 02 14:50:11 When I shut down postgres-0 # features/steps/basic_replication.py:41 3504s May 02 14:50:13 And there is one of ["following a different leader because I am not allowed to promote"] INFO in the postgres-1 patroni log after 5 seconds # features/steps/basic_replication.py:133 3506s May 02 14:50:15 Then postgres-1 role is the secondary after 10 seconds # features/steps/basic_replication.py:117 3506s May 02 14:50:15 When I start postgres-0 # features/steps/basic_replication.py:20 3509s May 02 14:50:18 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 3512s May 02 14:50:21 3512s May 02 14:50:21 Scenario: check higher failover priority is respected # features/priority_failover.feature:14 3512s May 02 14:50:21 Given I configure and start postgres-2 with a tag failover_priority 1 # features/steps/cascading_replication.py:7 3517s May 02 14:50:26 And I configure and start postgres-3 with a tag failover_priority 2 # features/steps/cascading_replication.py:7 3522s May 02 14:50:31 Then replication works from postgres-0 to postgres-2 after 20 seconds # features/steps/basic_replication.py:124 3523s May 02 14:50:32 And replication works from postgres-0 to postgres-3 after 20 seconds # features/steps/basic_replication.py:124 3524s May 02 14:50:33 When I shut down postgres-0 # features/steps/basic_replication.py:41 3526s May 02 14:50:35 Then postgres-3 role is the primary after 10 seconds # features/steps/basic_replication.py:117 3527s May 02 14:50:36 And there is one of ["postgres-3 has equally tolerable WAL position and priority 2, while this node has priority 1","Wal position of postgres-3 is ahead of my wal position"] INFO in the postgres-2 patroni log after 5 seconds # features/steps/basic_replication.py:133 3527s May 02 14:50:36 3527s May 02 14:50:36 Scenario: check conflicting configuration handling # features/priority_failover.feature:23 3527s May 02 14:50:36 When I set nofailover tag in postgres-2 config # features/steps/patroni_api.py:133 3527s May 02 14:50:36 And I issue an empty POST request to http://127.0.0.1:8010/reload # features/steps/patroni_api.py:68 3527s May 02 14:50:36 Then I receive a response code 202 # features/steps/patroni_api.py:100 3527s May 02 14:50:36 And there is one of ["Conflicting configuration between nofailover: True and failover_priority: 1. Defaulting to nofailover: True"] WARNING in the postgres-2 patroni log after 5 seconds # features/steps/basic_replication.py:133 3529s May 02 14:50:38 And "members/postgres-2" key in DCS has tags={'failover_priority': '1', 'nofailover': True} after 10 seconds # features/steps/cascading_replication.py:23 3530s May 02 14:50:39 When I issue a POST request to http://127.0.0.1:8010/failover with {"candidate": "postgres-2"} # features/steps/patroni_api.py:73 3531s May 02 14:50:39 Then I receive a response code 412 # features/steps/patroni_api.py:100 3531s May 02 14:50:39 And I receive a response text "failover is not possible: no good candidates have been found" # features/steps/patroni_api.py:100 3531s May 02 14:50:39 When I reset nofailover tag in postgres-1 config # features/steps/patroni_api.py:133 3531s May 02 14:50:40 And I issue an empty POST request to http://127.0.0.1:8009/reload # features/steps/patroni_api.py:68 3531s May 02 14:50:40 Then I receive a response code 202 # features/steps/patroni_api.py:100 3531s May 02 14:50:40 And there is one of ["Conflicting configuration between nofailover: False and failover_priority: 0. Defaulting to nofailover: False"] WARNING in the postgres-1 patroni log after 5 seconds # features/steps/basic_replication.py:133 3532s May 02 14:50:41 And "members/postgres-1" key in DCS has tags={'failover_priority': '0', 'nofailover': False} after 10 seconds # features/steps/cascading_replication.py:23 3533s May 02 14:50:42 And I issue a POST request to http://127.0.0.1:8009/failover with {"candidate": "postgres-1"} # features/steps/patroni_api.py:73 3535s May 02 14:50:44 Then I receive a response code 200 # features/steps/patroni_api.py:100 3535s May 02 14:50:44 And postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 3548s May 02 14:50:57 3548s May 02 14:50:57 Feature: quorum commit # features/quorum_commit.feature:1 3548s May 02 14:50:57 Check basic workfrlows when quorum commit is enabled 3548s May 02 14:50:57 Scenario: check enable quorum commit and that the only leader promotes after restart # features/quorum_commit.feature:4 3548s May 02 14:50:57 Given I start postgres-0 # features/steps/basic_replication.py:20 3559s May 02 14:51:08 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 3559s May 02 14:51:08 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 3559s May 02 14:51:08 When I issue a PATCH request to http://127.0.0.1:8008/config with {"ttl": 20, "synchronous_mode": "quorum"} # features/steps/patroni_api.py:73 3559s May 02 14:51:08 Then I receive a response code 200 # features/steps/patroni_api.py:100 3559s May 02 14:51:08 And sync key in DCS has leader=postgres-0 after 20 seconds # features/steps/quorum_commit.py:8 3559s May 02 14:51:08 And sync key in DCS has quorum=0 after 2 seconds # features/steps/quorum_commit.py:8 3559s May 02 14:51:08 And synchronous_standby_names on postgres-0 is set to '_empty_str_' after 2 seconds # features/steps/quorum_commit.py:39 3559s May 02 14:51:08 When I shut down postgres-0 # features/steps/basic_replication.py:41 3561s May 02 14:51:10 And sync key in DCS has leader=postgres-0 after 2 seconds # features/steps/quorum_commit.py:8 3561s May 02 14:51:10 When I start postgres-0 # features/steps/basic_replication.py:20 3565s May 02 14:51:13 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 3567s May 02 14:51:15 When I issue a PATCH request to http://127.0.0.1:8008/config with {"synchronous_mode_strict": true} # features/steps/patroni_api.py:73 3567s May 02 14:51:16 Then synchronous_standby_names on postgres-0 is set to 'ANY 1 (*)' after 10 seconds # features/steps/quorum_commit.py:39 3568s May 02 14:51:17 3568s May 02 14:51:17 Scenario: check failover with one quorum standby # features/quorum_commit.feature:20 3568s May 02 14:51:17 Given I start postgres-1 # features/steps/basic_replication.py:20 3573s May 02 14:51:22 Then sync key in DCS has sync_standby=postgres-1 after 10 seconds # features/steps/quorum_commit.py:8 3574s May 02 14:51:23 And synchronous_standby_names on postgres-0 is set to 'ANY 1 ("postgres-1")' after 2 seconds # features/steps/quorum_commit.py:39 3574s May 02 14:51:23 When I shut down postgres-0 # features/steps/basic_replication.py:41 3576s May 02 14:51:25 Then postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 3577s May 02 14:51:26 And sync key in DCS has quorum=0 after 10 seconds # features/steps/quorum_commit.py:8 3577s May 02 14:51:26 Then synchronous_standby_names on postgres-1 is set to 'ANY 1 (*)' after 10 seconds # features/steps/quorum_commit.py:39 3579s May 02 14:51:28 When I start postgres-0 # features/steps/basic_replication.py:20 3582s May 02 14:51:31 Then sync key in DCS has leader=postgres-1 after 10 seconds # features/steps/quorum_commit.py:8 3582s May 02 14:51:31 Then sync key in DCS has sync_standby=postgres-0 after 10 seconds # features/steps/quorum_commit.py:8 3584s May 02 14:51:33 And synchronous_standby_names on postgres-1 is set to 'ANY 1 ("postgres-0")' after 2 seconds # features/steps/quorum_commit.py:39 3584s May 02 14:51:33 3584s May 02 14:51:33 Scenario: check behavior with three nodes and different replication factor # features/quorum_commit.feature:33 3584s May 02 14:51:33 Given I start postgres-2 # features/steps/basic_replication.py:20 3590s May 02 14:51:39 Then sync key in DCS has sync_standby=postgres-0,postgres-2 after 10 seconds # features/steps/quorum_commit.py:8 3591s May 02 14:51:40 And sync key in DCS has quorum=1 after 2 seconds # features/steps/quorum_commit.py:8 3591s May 02 14:51:40 And synchronous_standby_names on postgres-1 is set to 'ANY 1 ("postgres-0","postgres-2")' after 2 seconds # features/steps/quorum_commit.py:39 3591s May 02 14:51:40 When I issue a PATCH request to http://127.0.0.1:8009/config with {"synchronous_node_count": 2} # features/steps/patroni_api.py:73 3591s May 02 14:51:40 Then sync key in DCS has quorum=0 after 10 seconds # features/steps/quorum_commit.py:8 3592s May 02 14:51:41 And synchronous_standby_names on postgres-1 is set to 'ANY 2 ("postgres-0","postgres-2")' after 2 seconds # features/steps/quorum_commit.py:39 3592s May 02 14:51:41 3592s May 02 14:51:41 Scenario: switch from quorum replication to good old multisync and back # features/quorum_commit.feature:42 3592s May 02 14:51:41 Given I issue a PATCH request to http://127.0.0.1:8009/config with {"synchronous_mode": true, "synchronous_node_count": 1} # features/steps/patroni_api.py:73 3592s May 02 14:51:41 And I shut down postgres-0 # features/steps/basic_replication.py:41 3593s May 02 14:51:42 Then synchronous_standby_names on postgres-1 is set to '"postgres-2"' after 10 seconds # features/steps/quorum_commit.py:39 3595s May 02 14:51:44 And sync key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/quorum_commit.py:8 3597s May 02 14:51:46 Then sync key in DCS has quorum=0 after 2 seconds # features/steps/quorum_commit.py:8 3597s May 02 14:51:46 When I issue a PATCH request to http://127.0.0.1:8009/config with {"synchronous_mode": "quorum"} # features/steps/patroni_api.py:73 3597s May 02 14:51:46 And I start postgres-0 # features/steps/basic_replication.py:20 3600s May 02 14:51:49 Then synchronous_standby_names on postgres-1 is set to 'ANY 1 ("postgres-0","postgres-2")' after 10 seconds # features/steps/quorum_commit.py:39 3600s May 02 14:51:49 And sync key in DCS has sync_standby=postgres-0,postgres-2 after 10 seconds # features/steps/quorum_commit.py:8 3600s May 02 14:51:49 Then sync key in DCS has quorum=1 after 2 seconds # features/steps/quorum_commit.py:8 3600s May 02 14:51:49 3600s May 02 14:51:49 Scenario: REST API and patronictl # features/quorum_commit.feature:54 3600s May 02 14:51:49 Given I run patronictl.py list batman # features/steps/patroni_api.py:88 3601s May 02 14:51:50 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 3601s May 02 14:51:50 And I receive a response output "Quorum Standby" # features/steps/patroni_api.py:100 3601s May 02 14:51:50 And Status code on GET http://127.0.0.1:8008/quorum is 200 after 3 seconds # features/steps/patroni_api.py:144 3601s May 02 14:51:50 And Status code on GET http://127.0.0.1:8010/quorum is 200 after 3 seconds # features/steps/patroni_api.py:144 3601s May 02 14:51:50 3601s May 02 14:51:50 Scenario: nosync node is removed from voters and synchronous_standby_names # features/quorum_commit.feature:61 3601s May 02 14:51:50 Given I add tag nosync true to postgres-2 config # features/steps/patroni_api.py:139 3601s May 02 14:51:50 When I issue an empty POST request to http://127.0.0.1:8010/reload # features/steps/patroni_api.py:68 3601s May 02 14:51:50 Then I receive a response code 202 # features/steps/patroni_api.py:100 3601s May 02 14:51:50 And sync key in DCS has quorum=0 after 10 seconds # features/steps/quorum_commit.py:8 3604s May 02 14:51:53 And sync key in DCS has sync_standby=postgres-0 after 10 seconds # features/steps/quorum_commit.py:8 3604s May 02 14:51:53 And synchronous_standby_names on postgres-1 is set to 'ANY 1 ("postgres-0")' after 2 seconds # features/steps/quorum_commit.py:39 3604s May 02 14:51:53 And Status code on GET http://127.0.0.1:8010/quorum is 503 after 10 seconds # features/steps/patroni_api.py:144 3619s May 02 14:52:08 3619s May 02 14:52:08 Feature: recovery # features/recovery.feature:1 3619s May 02 14:52:08 We want to check that crashed postgres is started back 3619s May 02 14:52:08 Scenario: check that timeline is not incremented when primary is started after crash # features/recovery.feature:4 3619s May 02 14:52:08 Given I start postgres-0 # features/steps/basic_replication.py:20 3624s May 02 14:52:13 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 3624s May 02 14:52:13 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 3624s May 02 14:52:13 When I start postgres-1 # features/steps/basic_replication.py:20 3628s May 02 14:52:17 And I add the table foo to postgres-0 # features/steps/basic_replication.py:66 3628s May 02 14:52:17 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 3629s May 02 14:52:18 When I kill postmaster on postgres-0 # features/steps/basic_replication.py:56 3629s May 02 14:52:18 waiting for server to shut down.... done 3629s May 02 14:52:18 server stopped 3629s May 02 14:52:18 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 3631s May 02 14:52:20 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:63 3631s May 02 14:52:20 Then I receive a response code 200 # features/steps/patroni_api.py:100 3631s May 02 14:52:20 And I receive a response role primary # features/steps/patroni_api.py:100 3631s May 02 14:52:20 And I receive a response timeline 1 # features/steps/patroni_api.py:100 3631s May 02 14:52:20 And "members/postgres-0" key in DCS has state=running after 12 seconds # features/steps/cascading_replication.py:23 3631s May 02 14:52:20 And replication works from postgres-0 to postgres-1 after 15 seconds # features/steps/basic_replication.py:124 3635s May 02 14:52:24 3635s May 02 14:52:24 Scenario: check immediate failover when master_start_timeout=0 # features/recovery.feature:20 3635s May 02 14:52:24 Given I issue a PATCH request to http://127.0.0.1:8008/config with {"master_start_timeout": 0} # features/steps/patroni_api.py:73 3636s May 02 14:52:24 Then I receive a response code 200 # features/steps/patroni_api.py:100 3636s May 02 14:52:24 And Response on GET http://127.0.0.1:8008/config contains master_start_timeout after 10 seconds # features/steps/patroni_api.py:158 3636s May 02 14:52:25 When I kill postmaster on postgres-0 # features/steps/basic_replication.py:56 3636s May 02 14:52:25 waiting for server to shut down.... done 3636s May 02 14:52:25 server stopped 3636s May 02 14:52:25 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 3638s May 02 14:52:27 And postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 3639s May 02 14:52:28 3639s May 02 14:52:28 Scenario: check crashed primary demotes after failed attempt to start # features/recovery.feature:28 3639s May 02 14:52:28 Given I issue a PATCH request to http://127.0.0.1:8009/config with {"master_start_timeout": null} # features/steps/patroni_api.py:73 3639s May 02 14:52:28 Then I receive a response code 200 # features/steps/patroni_api.py:100 3639s May 02 14:52:28 And postgres-0 role is the replica after 10 seconds # features/steps/basic_replication.py:117 3641s May 02 14:52:30 When I ensure postgres-1 fails to start after a failure # features/steps/recovery.py:6 3641s May 02 14:52:30 When I kill postmaster on postgres-1 # features/steps/basic_replication.py:56 3641s May 02 14:52:30 waiting for server to shut down.... done 3641s May 02 14:52:30 server stopped 3641s May 02 14:52:30 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 3642s May 02 14:52:31 And there is a postgres-1_cb.log with "on_role_change demoted batman" in postgres-1 data directory # features/steps/cascading_replication.py:12 3651s May 02 14:52:40 3651s May 02 14:52:40 Feature: standby cluster # features/standby_cluster.feature:1 3651s May 02 14:52:40 3651s May 02 14:52:40 Scenario: prepare the cluster with logical slots # features/standby_cluster.feature:2 3651s May 02 14:52:40 Given I start postgres-1 # features/steps/basic_replication.py:20 3656s May 02 14:52:45 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 3656s May 02 14:52:45 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 3656s May 02 14:52:45 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:73 3656s May 02 14:52:45 Then I receive a response code 200 # features/steps/patroni_api.py:100 3656s May 02 14:52:45 And Response on GET http://127.0.0.1:8009/config contains slots after 10 seconds # features/steps/patroni_api.py:158 3656s May 02 14:52:45 And I sleep for 3 seconds # features/steps/patroni_api.py:41 3659s May 02 14:52:48 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:73 3660s May 02 14:52:48 Then I receive a response code 200 # features/steps/patroni_api.py:100 3660s May 02 14:52:48 And I do a backup of postgres-1 # features/steps/custom_bootstrap.py:25 3662s May 02 14:52:51 When I start postgres-0 # features/steps/basic_replication.py:20 3667s May 02 14:52:56 Then "members/postgres-0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 3667s May 02 14:52:56 And replication works from postgres-1 to postgres-0 after 15 seconds # features/steps/basic_replication.py:124 3668s May 02 14:52:57 When I issue a GET request to http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:63 3668s May 02 14:52:57 Then I receive a response code 200 # features/steps/patroni_api.py:100 3668s May 02 14:52:57 And I receive a response replication_state streaming # features/steps/patroni_api.py:100 3668s May 02 14:52:57 And "members/postgres-0" key in DCS has replication_state=streaming after 10 seconds # features/steps/cascading_replication.py:23 3668s May 02 14:52:57 3668s May 02 14:52:57 @slot-advance 3668s May 02 14:52:57 Scenario: check permanent logical slots are synced to the replica # features/standby_cluster.feature:22 3668s May 02 14:52:57 Given I run patronictl.py restart batman postgres-1 --force # features/steps/patroni_api.py:88 3670s May 02 14:52:59 Then Logical slot test_logical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 3676s May 02 14:53:05 3676s May 02 14:53:05 Scenario: Detach exiting node from the cluster # features/standby_cluster.feature:26 3676s May 02 14:53:05 When I shut down postgres-1 # features/steps/basic_replication.py:41 3678s May 02 14:53:07 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 3678s May 02 14:53:07 And "members/postgres-0" key in DCS has role=primary after 5 seconds # features/steps/cascading_replication.py:23 3679s May 02 14:53:08 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:63 3679s May 02 14:53:08 Then I receive a response code 200 # features/steps/patroni_api.py:100 3679s May 02 14:53:08 3679s May 02 14:53:08 Scenario: check replication of a single table in a standby cluster # features/standby_cluster.feature:33 3679s May 02 14:53:08 Given I start postgres-1 in a standby cluster batman1 as a clone of postgres-0 # features/steps/standby_cluster.py:23 3682s May 02 14:53:11 Then postgres-1 is a leader of batman1 after 10 seconds # features/steps/custom_bootstrap.py:16 3685s May 02 14:53:14 When I add the table foo to postgres-0 # features/steps/basic_replication.py:66 3685s May 02 14:53:14 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 3685s May 02 14:53:14 When I issue a GET request to http://127.0.0.1:8009/patroni # features/steps/patroni_api.py:63 3685s May 02 14:53:14 Then I receive a response code 200 # features/steps/patroni_api.py:100 3685s May 02 14:53:14 And I receive a response replication_state streaming # features/steps/patroni_api.py:100 3685s May 02 14:53:14 And I sleep for 3 seconds # features/steps/patroni_api.py:41 3688s May 02 14:53:17 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 3688s May 02 14:53:17 Then I receive a response code 503 # features/steps/patroni_api.py:100 3688s May 02 14:53:17 When I issue a GET request to http://127.0.0.1:8009/standby_leader # features/steps/patroni_api.py:63 3688s May 02 14:53:17 Then I receive a response code 200 # features/steps/patroni_api.py:100 3688s May 02 14:53:17 And I receive a response role standby_leader # features/steps/patroni_api.py:100 3688s May 02 14:53:17 And there is a postgres-1_cb.log with "on_role_change standby_leader batman1" in postgres-1 data directory # features/steps/cascading_replication.py:12 3688s May 02 14:53:17 When I start postgres-2 in a cluster batman1 # features/steps/standby_cluster.py:12 3693s May 02 14:53:22 Then postgres-2 role is the replica after 24 seconds # features/steps/basic_replication.py:117 3693s May 02 14:53:22 And postgres-2 is replicating from postgres-1 after 10 seconds # features/steps/standby_cluster.py:52 3693s May 02 14:53:22 And table foo is present on postgres-2 after 20 seconds # features/steps/basic_replication.py:105 3693s May 02 14:53:22 When I issue a GET request to http://127.0.0.1:8010/patroni # features/steps/patroni_api.py:63 3693s May 02 14:53:22 Then I receive a response code 200 # features/steps/patroni_api.py:100 3693s May 02 14:53:22 And I receive a response replication_state streaming # features/steps/patroni_api.py:100 3693s May 02 14:53:22 And postgres-1 does not have a replication slot named test_logical # features/steps/slots.py:41 3693s May 02 14:53:22 3693s May 02 14:53:22 Scenario: check switchover # features/standby_cluster.feature:57 3693s May 02 14:53:22 Given I run patronictl.py switchover batman1 --force # features/steps/patroni_api.py:88 3697s May 02 14:53:26 Then Status code on GET http://127.0.0.1:8010/standby_leader is 200 after 10 seconds # features/steps/patroni_api.py:144 3697s May 02 14:53:26 And postgres-1 is replicating from postgres-2 after 32 seconds # features/steps/standby_cluster.py:52 3700s May 02 14:53:29 And there is a postgres-2_cb.log with "on_start replica batman1\non_role_change standby_leader batman1" in postgres-2 data directory # features/steps/cascading_replication.py:12 3700s May 02 14:53:29 3700s May 02 14:53:29 Scenario: check failover # features/standby_cluster.feature:63 3700s May 02 14:53:29 When I kill postgres-2 # features/steps/basic_replication.py:46 3701s May 02 14:53:30 And I kill postmaster on postgres-2 # features/steps/basic_replication.py:56 3701s May 02 14:53:30 waiting for server to shut down.... done 3701s May 02 14:53:30 server stopped 3701s May 02 14:53:30 Then postgres-1 is replicating from postgres-0 after 32 seconds # features/steps/standby_cluster.py:52 3719s May 02 14:53:48 And Status code on GET http://127.0.0.1:8009/standby_leader is 200 after 10 seconds # features/steps/patroni_api.py:144 3719s May 02 14:53:48 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 3719s May 02 14:53:48 Then I receive a response code 503 # features/steps/patroni_api.py:100 3719s May 02 14:53:48 And I receive a response role standby_leader # features/steps/patroni_api.py:100 3719s May 02 14:53:48 And replication works from postgres-0 to postgres-1 after 15 seconds # features/steps/basic_replication.py:124 3720s May 02 14:53:49 And there is a postgres-1_cb.log with "on_role_change replica batman1\non_role_change standby_leader batman1" in postgres-1 data directory # features/steps/cascading_replication.py:12 3736s May 02 14:54:05 3736s May 02 14:54:05 Feature: watchdog # features/watchdog.feature:1 3736s May 02 14:54:05 Verify that watchdog gets pinged and triggered under appropriate circumstances. 3736s May 02 14:54:05 Scenario: watchdog is opened and pinged # features/watchdog.feature:4 3736s May 02 14:54:05 Given I start postgres-0 with watchdog # features/steps/watchdog.py:17 3741s May 02 14:54:10 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 3741s May 02 14:54:10 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 3741s May 02 14:54:10 And postgres-0 watchdog has been pinged after 10 seconds # features/steps/watchdog.py:22 3741s May 02 14:54:10 And postgres-0 watchdog has a 15 second timeout # features/steps/watchdog.py:35 3741s May 02 14:54:10 3741s May 02 14:54:10 Scenario: watchdog is reconfigured after global ttl changed # features/watchdog.feature:11 3741s May 02 14:54:10 Given I run patronictl.py edit-config batman -s ttl=30 --force # features/steps/patroni_api.py:88 3742s May 02 14:54:11 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 3742s May 02 14:54:11 And I receive a response output "+ttl: 30" # features/steps/patroni_api.py:100 3742s May 02 14:54:11 When I sleep for 4 seconds # features/steps/patroni_api.py:41 3746s May 02 14:54:15 Then postgres-0 watchdog has a 25 second timeout # features/steps/watchdog.py:35 3746s May 02 14:54:15 3746s May 02 14:54:15 Scenario: watchdog is disabled during pause # features/watchdog.feature:18 3746s May 02 14:54:15 Given I run patronictl.py pause batman # features/steps/patroni_api.py:88 3748s May 02 14:54:17 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 3748s May 02 14:54:17 When I sleep for 2 seconds # features/steps/patroni_api.py:41 3750s May 02 14:54:19 Then postgres-0 watchdog has been closed # features/steps/watchdog.py:30 3750s May 02 14:54:19 3750s May 02 14:54:19 Scenario: watchdog is opened and pinged after resume # features/watchdog.feature:24 3750s May 02 14:54:19 Given I reset postgres-0 watchdog state # features/steps/watchdog.py:40 3750s May 02 14:54:19 And I run patronictl.py resume batman # features/steps/patroni_api.py:88 3751s May 02 14:54:20 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 3751s May 02 14:54:20 And postgres-0 watchdog has been pinged after 10 seconds # features/steps/watchdog.py:22 3752s May 02 14:54:21 3752s May 02 14:54:21 Scenario: watchdog is disabled when shutting down # features/watchdog.feature:30 3752s May 02 14:54:21 Given I shut down postgres-0 # features/steps/basic_replication.py:41 3754s May 02 14:54:23 Then postgres-0 watchdog has been closed # features/steps/watchdog.py:30 3754s May 02 14:54:23 3754s May 02 14:54:23 Scenario: watchdog is triggered if patroni stops responding # features/watchdog.feature:34 3754s May 02 14:54:23 Given I reset postgres-0 watchdog state # features/steps/watchdog.py:40 3754s May 02 14:54:23 And I start postgres-0 with watchdog # features/steps/watchdog.py:17 3757s May 02 14:54:26 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 3760s May 02 14:54:29 When postgres-0 hangs for 30 seconds # features/steps/watchdog.py:53 3760s May 02 14:54:29 Then postgres-0 watchdog is triggered after 30 seconds # features/steps/watchdog.py:45 3798s May 02 14:55:07 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.3183.XudHtwdx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.3186.XVkEHcmx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.3231.XMFlWLzx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.3280.XUtOuJhx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.3328.XPrmibsx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.3375.XORjNyIx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.3448.XhLBIAJx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.3500.Xntbnrpx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.3504.XptSXJCx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.3585.XFVvrXUx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.3700.XbDezpax 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.3703.XzWWgaTx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.3747.XmSFNsex 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.3797.XtFnlujx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.3906.XvqBuzMx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.3910.XnrkHdGx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.3913.XkFMZnVx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.3959.XIVhzuMx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.4013.XWbEnUhx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.4106.XDLamhPx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.4109.XVhEVDcx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.4440.XUVyCqKx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.4510.XTMSEhSx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.4576.XdwzMUyx 3800s May 02 14:55:09 Skipping duplicate data .coverage.autopkgtest-lxd-cgcevb.4845.XvnpDgIx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.4849.XzrMouUx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.4902.XDRbaqqx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.4965.XJragznx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.5056.Xaahefkx 3800s May 02 14:55:09 Skipping duplicate data .coverage.autopkgtest-lxd-cgcevb.5155.XUZcaPYx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.5158.XAPtKiVx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.5202.XEaiQokx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.5270.XVkzBhrx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.5303.XuragTvx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.5459.XeQILvmx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.5463.XCeKPcPx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.5513.XsEcVOAx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.5529.XWszGzsx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.5569.Xajtomvx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.5620.XrXRYoyx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.5626.XDrdCdDx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.5662.XxgbYmVx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.5709.XWCgFmEx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.5879.XZhLjrAx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.5882.XmEiXBMx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.5889.XGUePgRx 3800s May 02 14:55:09 Skipping duplicate data .coverage.autopkgtest-lxd-cgcevb.6026.XdisxWDx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.6030.XHMEOaWx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.6077.XBDgDzKx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.6126.XYFWkiKx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.6172.XhxYzXSx 3800s May 02 14:55:09 Skipping duplicate data .coverage.autopkgtest-lxd-cgcevb.6218.XgmrvXAx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.6352.XeNNJPGx 3800s May 02 14:55:09 Skipping duplicate data .coverage.autopkgtest-lxd-cgcevb.6437.XjmTRccx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.6441.XCLqNOTx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.6487.XFMeLKZx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.6563.XpVskQkx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.6652.XqgRJQtx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.6711.XzmWsVvx 3800s May 02 14:55:09 Skipping duplicate data .coverage.autopkgtest-lxd-cgcevb.7042.XsvSbqSx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.7045.XrkFVKjx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.7097.XpEJjUDx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.7161.XBeMgHYx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.7252.XSAEUNix 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.7300.XOKBPChx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.7356.XbxbTHGx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.7400.XtPZKWwx 3800s May 02 14:55:09 Skipping duplicate data .coverage.autopkgtest-lxd-cgcevb.7440.XpihTJLx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.7443.XoLAdeQx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.7487.XLgDHiUx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.7721.XMZKUgNx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.7724.XoFaIWux 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.7789.XNzJnxlx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.7844.XLaBNQtx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.7949.XUYwJQNx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.8067.XiShcLyx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.8201.XBznKIXx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.8206.XkwUgYxx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.8250.XJAlfEbx 3800s May 02 14:55:09 Skipping duplicate data .coverage.autopkgtest-lxd-cgcevb.8253.XvPZPOnx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.8257.XBGBWqUx 3800s May 02 14:55:09 Combined data file .coverage.autopkgtest-lxd-cgcevb.8269.XarqzvXx 3800s May 02 14:55:09 Skipping duplicate data .coverage.autopkgtest-lxd-cgcevb.8342.XZpKKZhx 3803s May 02 14:55:12 Name Stmts Miss Cover 3803s May 02 14:55:12 ---------------------------------------------------------------------------------------------------------- 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/_distutils_hack/__init__.py 101 96 5% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/cryptography/__about__.py 5 0 100% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/cryptography/__init__.py 3 0 100% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/cryptography/exceptions.py 26 5 81% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/cryptography/fernet.py 137 54 61% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/cryptography/hazmat/__init__.py 2 0 100% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/cryptography/hazmat/_oid.py 135 0 100% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/cryptography/hazmat/backends/__init__.py 5 0 100% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/__init__.py 3 0 100% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/backend.py 135 67 50% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/__init__.py 0 0 100% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/__init__.py 0 0 100% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/_conditional.py 38 17 55% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/binding.py 51 4 92% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/cryptography/hazmat/decrepit/__init__.py 1 0 100% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/cryptography/hazmat/decrepit/ciphers/__init__.py 1 0 100% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/cryptography/hazmat/decrepit/ciphers/algorithms.py 68 18 74% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/__init__.py 0 0 100% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_asymmetric.py 6 0 100% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_cipheralgorithm.py 23 1 96% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_serialization.py 79 35 56% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/__init__.py 0 0 100% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ec.py 172 22 87% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/padding.py 55 23 58% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/rsa.py 93 40 57% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/utils.py 14 5 64% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/__init__.py 4 0 100% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/algorithms.py 72 13 82% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/base.py 54 3 94% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/modes.py 140 50 64% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/constant_time.py 6 3 50% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/hashes.py 127 20 84% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/hmac.py 6 0 100% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/kdf/__init__.py 7 0 100% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/kdf/pbkdf2.py 27 5 81% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/padding.py 104 37 64% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/cryptography/utils.py 76 25 67% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/dateutil/__init__.py 13 4 69% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/dateutil/_common.py 25 15 40% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/dateutil/_version.py 13 3 77% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/dateutil/parser/__init__.py 33 4 88% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/dateutil/parser/_parser.py 810 436 46% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/dateutil/parser/isoparser.py 183 150 18% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/dateutil/relativedelta.py 240 206 14% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/dateutil/tz/__init__.py 4 0 100% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/dateutil/tz/_common.py 151 114 25% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/dateutil/tz/_factories.py 49 21 57% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/dateutil/tz/tz.py 794 626 21% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/dateutil/tz/win.py 152 149 2% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/__init__.py 13 2 85% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/__main__.py 201 66 67% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/api.py 788 292 63% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/async_executor.py 96 15 84% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/collections.py 56 5 91% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/config.py 357 88 75% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/config_generator.py 212 159 25% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/daemon.py 76 3 96% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/dcs/__init__.py 710 98 86% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/dcs/raft.py 319 42 87% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/dynamic_loader.py 35 7 80% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/exceptions.py 16 0 100% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/file_perm.py 47 10 79% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/global_config.py 87 0 100% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/ha.py 1359 309 77% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/log.py 235 79 66% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/postgresql/__init__.py 825 169 80% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/postgresql/available_parameters/__init__.py 24 3 88% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/postgresql/bootstrap.py 254 60 76% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/postgresql/callback_executor.py 55 8 85% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/postgresql/cancellable.py 104 41 61% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/postgresql/config.py 839 215 74% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/postgresql/connection.py 75 1 99% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/postgresql/misc.py 43 8 81% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/postgresql/mpp/__init__.py 89 11 88% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/postgresql/postmaster.py 170 83 51% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/postgresql/rewind.py 416 127 69% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/postgresql/slots.py 349 37 89% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/postgresql/sync.py 154 10 94% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/postgresql/validator.py 157 24 85% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/psycopg.py 46 19 59% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/quorum.py 182 48 74% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/request.py 58 6 90% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/tags.py 38 0 100% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/utils.py 371 122 67% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/validator.py 309 215 30% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/version.py 1 0 100% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/watchdog/__init__.py 2 0 100% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/watchdog/base.py 203 42 79% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/patroni/watchdog/linux.py 135 35 74% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/psutil/__init__.py 950 629 34% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/psutil/_common.py 422 212 50% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/psutil/_compat.py 301 263 13% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/psutil/_pslinux.py 1250 924 26% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/psutil/_psposix.py 95 38 60% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/psycopg2/__init__.py 19 3 84% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/psycopg2/_json.py 64 27 58% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/psycopg2/_range.py 269 172 36% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/psycopg2/errors.py 3 2 33% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/psycopg2/extensions.py 91 25 73% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/pysyncobj/__init__.py 2 0 100% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/pysyncobj/atomic_replace.py 4 0 100% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/pysyncobj/config.py 80 1 99% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/pysyncobj/dns_resolver.py 52 10 81% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/pysyncobj/encryptor.py 17 2 88% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/pysyncobj/fast_queue.py 21 1 95% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/pysyncobj/journal.py 193 37 81% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/pysyncobj/monotonic.py 76 70 8% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/pysyncobj/node.py 49 10 80% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/pysyncobj/pickle.py 52 32 38% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/pysyncobj/pipe_notifier.py 24 2 92% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/pysyncobj/poller.py 87 41 53% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/pysyncobj/serializer.py 167 133 20% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/pysyncobj/syncobj.py 1057 500 53% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/pysyncobj/tcp_connection.py 250 35 86% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/pysyncobj/tcp_server.py 56 12 79% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/pysyncobj/transport.py 266 57 79% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/pysyncobj/utility.py 59 7 88% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/pysyncobj/version.py 1 0 100% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/pysyncobj/win_inet_pton.py 44 31 30% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/urllib3/__init__.py 49 15 69% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/urllib3/_base_connection.py 63 45 29% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/urllib3/_collections.py 231 104 55% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/urllib3/_request_methods.py 54 16 70% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/urllib3/_version.py 13 3 77% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/urllib3/connection.py 389 143 63% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/urllib3/connectionpool.py 344 130 62% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/urllib3/exceptions.py 121 39 68% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/urllib3/fields.py 92 73 21% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/urllib3/filepost.py 37 24 35% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/urllib3/http2/__init__.py 28 21 25% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/urllib3/http2/probe.py 49 31 37% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/urllib3/poolmanager.py 233 88 62% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/urllib3/response.py 634 395 38% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/urllib3/util/__init__.py 10 0 100% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/urllib3/util/connection.py 66 9 86% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/urllib3/util/proxy.py 13 6 54% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/urllib3/util/request.py 104 49 53% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/urllib3/util/response.py 32 17 47% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/urllib3/util/retry.py 174 50 71% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/urllib3/util/ssl_.py 172 73 58% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/urllib3/util/ssl_match_hostname.py 66 54 18% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/urllib3/util/ssltransport.py 152 106 30% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/urllib3/util/timeout.py 71 19 73% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/urllib3/util/url.py 203 76 63% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/urllib3/util/util.py 26 9 65% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/urllib3/util/wait.py 49 38 22% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/yaml/__init__.py 165 109 34% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/yaml/composer.py 92 17 82% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/yaml/constructor.py 479 276 42% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/yaml/cyaml.py 46 24 48% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/yaml/dumper.py 23 12 48% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/yaml/emitter.py 838 769 8% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/yaml/error.py 58 42 28% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/yaml/events.py 61 6 90% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/yaml/loader.py 47 24 49% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/yaml/nodes.py 29 7 76% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/yaml/parser.py 352 180 49% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/yaml/reader.py 122 30 75% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/yaml/representer.py 248 176 29% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/yaml/resolver.py 135 76 44% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/yaml/scanner.py 758 415 45% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/yaml/serializer.py 85 70 18% 3803s May 02 14:55:12 /usr/lib/python3/dist-packages/yaml/tokens.py 76 17 78% 3803s May 02 14:55:12 patroni/__init__.py 13 2 85% 3803s May 02 14:55:12 patroni/__main__.py 201 201 0% 3803s May 02 14:55:12 patroni/api.py 788 788 0% 3803s May 02 14:55:12 patroni/async_executor.py 96 69 28% 3803s May 02 14:55:12 patroni/collections.py 56 15 73% 3803s May 02 14:55:12 patroni/config.py 357 179 50% 3803s May 02 14:55:12 patroni/config_generator.py 212 212 0% 3803s May 02 14:55:12 patroni/ctl.py 936 395 58% 3803s May 02 14:55:12 patroni/daemon.py 76 6 92% 3803s May 02 14:55:12 patroni/dcs/__init__.py 710 316 55% 3803s May 02 14:55:12 patroni/dcs/consul.py 482 482 0% 3803s May 02 14:55:12 patroni/dcs/etcd3.py 679 679 0% 3803s May 02 14:55:12 patroni/dcs/etcd.py 603 603 0% 3803s May 02 14:55:12 patroni/dcs/exhibitor.py 62 62 0% 3803s May 02 14:55:12 patroni/dcs/kubernetes.py 943 943 0% 3803s May 02 14:55:12 patroni/dcs/raft.py 319 73 77% 3803s May 02 14:55:12 patroni/dcs/zookeeper.py 289 289 0% 3803s May 02 14:55:12 patroni/dynamic_loader.py 35 7 80% 3803s May 02 14:55:12 patroni/exceptions.py 16 1 94% 3803s May 02 14:55:12 patroni/file_perm.py 47 17 64% 3803s May 02 14:55:12 patroni/global_config.py 87 19 78% 3803s May 02 14:55:12 patroni/ha.py 1359 1359 0% 3803s May 02 14:55:12 patroni/log.py 235 103 56% 3803s May 02 14:55:12 patroni/postgresql/__init__.py 825 653 21% 3803s May 02 14:55:12 patroni/postgresql/available_parameters/__init__.py 24 3 88% 3803s May 02 14:55:12 patroni/postgresql/bootstrap.py 254 224 12% 3803s May 02 14:55:12 patroni/postgresql/callback_executor.py 55 34 38% 3803s May 02 14:55:12 patroni/postgresql/cancellable.py 104 84 19% 3803s May 02 14:55:12 patroni/postgresql/config.py 839 719 14% 3803s May 02 14:55:12 patroni/postgresql/connection.py 75 50 33% 3803s May 02 14:55:12 patroni/postgresql/misc.py 43 30 30% 3803s May 02 14:55:12 patroni/postgresql/mpp/__init__.py 89 21 76% 3803s May 02 14:55:12 patroni/postgresql/mpp/citus.py 366 366 0% 3803s May 02 14:55:12 patroni/postgresql/postmaster.py 170 139 18% 3803s May 02 14:55:12 patroni/postgresql/rewind.py 416 416 0% 3803s May 02 14:55:12 patroni/postgresql/slots.py 349 300 14% 3803s May 02 14:55:12 patroni/postgresql/sync.py 154 114 26% 3803s May 02 14:55:12 patroni/postgresql/validator.py 157 52 67% 3803s May 02 14:55:12 patroni/psycopg.py 46 32 30% 3803s May 02 14:55:12 patroni/quorum.py 182 182 0% 3803s May 02 14:55:12 patroni/raft_controller.py 22 1 95% 3803s May 02 14:55:12 patroni/request.py 58 6 90% 3803s May 02 14:55:12 patroni/scripts/__init__.py 0 0 100% 3803s May 02 14:55:12 patroni/scripts/aws.py 59 59 0% 3803s May 02 14:55:12 patroni/scripts/barman/__init__.py 0 0 100% 3803s May 02 14:55:12 patroni/scripts/barman/cli.py 50 50 0% 3803s May 02 14:55:12 patroni/scripts/barman/config_switch.py 50 50 0% 3803s May 02 14:55:12 patroni/scripts/barman/recover.py 36 36 0% 3803s May 02 14:55:12 patroni/scripts/barman/utils.py 93 93 0% 3803s May 02 14:55:12 patroni/scripts/wale_restore.py 207 207 0% 3803s May 02 14:55:12 patroni/tags.py 38 11 71% 3803s May 02 14:55:12 patroni/utils.py 371 231 38% 3803s May 02 14:55:12 patroni/validator.py 309 222 28% 3804s May 02 14:55:12 patroni/version.py 1 0 100% 3804s May 02 14:55:12 patroni/watchdog/__init__.py 2 2 0% 3804s May 02 14:55:12 patroni/watchdog/base.py 203 203 0% 3804s May 02 14:55:12 patroni/watchdog/linux.py 135 135 0% 3804s May 02 14:55:12 ---------------------------------------------------------------------------------------------------------- 3804s May 02 14:55:12 TOTAL 41242 23434 43% 3804s May 02 14:55:12 13 features passed, 0 failed, 1 skipped 3804s May 02 14:55:12 63 scenarios passed, 0 failed, 6 skipped 3804s May 02 14:55:12 597 steps passed, 0 failed, 70 skipped, 0 undefined 3804s May 02 14:55:12 Took 10m36.274s 3804s ### End 17 acceptance-raft ### 3804s + echo '### End 17 acceptance-raft ###' 3804s + rm -f '/tmp/pgpass?' 3804s ++ id -u 3804s + '[' 1000 -eq 0 ']' 3804s autopkgtest [14:55:13]: test acceptance-raft: -----------------------] 3808s acceptance-raft PASS 3808s autopkgtest [14:55:17]: test acceptance-raft: - - - - - - - - - - results - - - - - - - - - - 3812s autopkgtest [14:55:21]: @@@@@@@@@@@@@@@@@@@@ summary 3812s test PASS 3812s acceptance-etcd3 PASS 3812s acceptance-etcd-basic PASS 3812s acceptance-etcd PASS 3812s acceptance-zookeeper PASS 3812s acceptance-raft PASS