0s autopkgtest [21:27:07]: starting date and time: 2025-05-02 21:27:07+0000 0s autopkgtest [21:27:07]: git checkout: 9986aa8c Merge branch 'skia/fix_network_interface' into 'ubuntu/production' 0s autopkgtest [21:27:07]: host juju-7f2275-prod-proposed-migration-environment-9; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.yka8fmvv/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:python-psutil --apt-upgrade patroni --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=python-psutil/7.0.0-2 -- lxd -r lxd-armhf-10.145.243.230 lxd-armhf-10.145.243.230:autopkgtest/ubuntu/questing/armhf 20s autopkgtest [21:27:27]: testbed dpkg architecture: armhf 22s autopkgtest [21:27:29]: testbed apt version: 3.0.0 26s autopkgtest [21:27:33]: @@@@@@@@@@@@@@@@@@@@ test bed setup 28s autopkgtest [21:27:35]: testbed release detected to be: None 35s autopkgtest [21:27:42]: updating testbed package index (apt update) 37s Get:1 http://ftpmaster.internal/ubuntu questing-proposed InRelease [110 kB] 38s Get:2 http://ftpmaster.internal/ubuntu questing InRelease [110 kB] 38s Get:3 http://ftpmaster.internal/ubuntu questing-updates InRelease [110 kB] 38s Get:4 http://ftpmaster.internal/ubuntu questing-security InRelease [110 kB] 38s Get:5 http://ftpmaster.internal/ubuntu questing-proposed/multiverse Sources [43.1 kB] 38s Get:6 http://ftpmaster.internal/ubuntu questing-proposed/universe Sources [1968 kB] 38s Get:7 http://ftpmaster.internal/ubuntu questing-proposed/main Sources [167 kB] 38s Get:8 http://ftpmaster.internal/ubuntu questing-proposed/main armhf Packages [201 kB] 38s Get:9 http://ftpmaster.internal/ubuntu questing-proposed/universe armhf Packages [1375 kB] 38s Get:10 http://ftpmaster.internal/ubuntu questing-proposed/multiverse armhf Packages [12.9 kB] 38s Get:11 http://ftpmaster.internal/ubuntu questing/universe Sources [21.1 MB] 39s Get:12 http://ftpmaster.internal/ubuntu questing/multiverse Sources [299 kB] 39s Get:13 http://ftpmaster.internal/ubuntu questing/main Sources [1386 kB] 39s Get:14 http://ftpmaster.internal/ubuntu questing/main armhf Packages [1358 kB] 39s Get:15 http://ftpmaster.internal/ubuntu questing/universe armhf Packages [15.2 MB] 39s Get:16 http://ftpmaster.internal/ubuntu questing/multiverse armhf Packages [173 kB] 43s Fetched 43.7 MB in 5s (8111 kB/s) 44s Reading package lists... 49s autopkgtest [21:27:56]: upgrading testbed (apt dist-upgrade and autopurge) 51s Reading package lists... 51s Building dependency tree... 51s Reading state information... 52s Calculating upgrade...Starting pkgProblemResolver with broken count: 0 52s Starting 2 pkgProblemResolver with broken count: 0 52s Done 53s Entering ResolveByKeep 53s 54s Calculating upgrade... 54s The following packages will be upgraded: 54s base-files distro-info-data dpkg dpkg-dev fwupd htop libdpkg-perl libftdi1-2 54s libfwupd3 libnpth0t64 libsensors-config libsensors5 liburcu8t64 54s motd-news-config nano ubuntu-pro-client ubuntu-pro-client-l10n usb.ids 54s 18 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 54s Need to get 5303 kB of archives. 54s After this operation, 3722 kB disk space will be freed. 54s Get:1 http://ftpmaster.internal/ubuntu questing/main armhf motd-news-config all 13.7ubuntu1 [5260 B] 54s Get:2 http://ftpmaster.internal/ubuntu questing/main armhf base-files armhf 13.7ubuntu1 [75.4 kB] 55s Get:3 http://ftpmaster.internal/ubuntu questing/main armhf dpkg armhf 1.22.18ubuntu3 [1254 kB] 55s Get:4 http://ftpmaster.internal/ubuntu questing/main armhf libnpth0t64 armhf 1.8-3 [7716 B] 55s Get:5 http://ftpmaster.internal/ubuntu questing/main armhf distro-info-data all 0.64 [6664 B] 55s Get:6 http://ftpmaster.internal/ubuntu questing/main armhf ubuntu-pro-client-l10n armhf 35.1ubuntu0 [19.7 kB] 55s Get:7 http://ftpmaster.internal/ubuntu questing/main armhf ubuntu-pro-client armhf 35.1ubuntu0 [258 kB] 55s Get:8 http://ftpmaster.internal/ubuntu questing/main armhf libsensors-config all 1:3.6.2-2 [6756 B] 55s Get:9 http://ftpmaster.internal/ubuntu questing/main armhf libsensors5 armhf 1:3.6.2-2 [26.8 kB] 55s Get:10 http://ftpmaster.internal/ubuntu questing/main armhf liburcu8t64 armhf 0.15.2-2 [57.3 kB] 55s Get:11 http://ftpmaster.internal/ubuntu questing/main armhf nano armhf 8.4-1 [278 kB] 55s Get:12 http://ftpmaster.internal/ubuntu questing/main armhf usb.ids all 2025.04.01-1 [223 kB] 55s Get:13 http://ftpmaster.internal/ubuntu questing/main armhf dpkg-dev all 1.22.18ubuntu3 [1089 kB] 55s Get:14 http://ftpmaster.internal/ubuntu questing/main armhf libdpkg-perl all 1.22.18ubuntu3 [281 kB] 55s Get:15 http://ftpmaster.internal/ubuntu questing/main armhf fwupd armhf 2.0.8-3 [1414 kB] 55s Get:16 http://ftpmaster.internal/ubuntu questing/main armhf libfwupd3 armhf 2.0.8-3 [126 kB] 55s Get:17 http://ftpmaster.internal/ubuntu questing/main armhf htop armhf 3.4.1-4 [147 kB] 55s Get:18 http://ftpmaster.internal/ubuntu questing/main armhf libftdi1-2 armhf 1.5-10 [27.8 kB] 55s Fetched 5303 kB in 1s (6819 kB/s) 56s (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.) 56s Preparing to unpack .../motd-news-config_13.7ubuntu1_all.deb ... 56s Unpacking motd-news-config (13.7ubuntu1) over (13.6ubuntu2) ... 56s Preparing to unpack .../base-files_13.7ubuntu1_armhf.deb ... 56s Unpacking base-files (13.7ubuntu1) over (13.6ubuntu2) ... 56s Setting up base-files (13.7ubuntu1) ... 56s Installing new version of config file /etc/issue ... 56s Installing new version of config file /etc/issue.net ... 56s Installing new version of config file /etc/lsb-release ... 56s motd-news.service is a disabled or a static unit not running, not starting it. 57s (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.) 57s Preparing to unpack .../dpkg_1.22.18ubuntu3_armhf.deb ... 57s Unpacking dpkg (1.22.18ubuntu3) over (1.22.18ubuntu2) ... 57s Setting up dpkg (1.22.18ubuntu3) ... 57s (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.) 57s Preparing to unpack .../libnpth0t64_1.8-3_armhf.deb ... 57s Unpacking libnpth0t64:armhf (1.8-3) over (1.8-2) ... 57s Setting up libnpth0t64:armhf (1.8-3) ... 57s (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.) 57s Preparing to unpack .../00-distro-info-data_0.64_all.deb ... 57s Unpacking distro-info-data (0.64) over (0.63) ... 57s Preparing to unpack .../01-ubuntu-pro-client-l10n_35.1ubuntu0_armhf.deb ... 57s Unpacking ubuntu-pro-client-l10n (35.1ubuntu0) over (35) ... 57s Preparing to unpack .../02-ubuntu-pro-client_35.1ubuntu0_armhf.deb ... 57s Unpacking ubuntu-pro-client (35.1ubuntu0) over (35) ... 58s Preparing to unpack .../03-libsensors-config_1%3a3.6.2-2_all.deb ... 58s Unpacking libsensors-config (1:3.6.2-2) over (1:3.6.0-10) ... 58s Preparing to unpack .../04-libsensors5_1%3a3.6.2-2_armhf.deb ... 58s Unpacking libsensors5:armhf (1:3.6.2-2) over (1:3.6.0-10) ... 58s Preparing to unpack .../05-liburcu8t64_0.15.2-2_armhf.deb ... 58s Unpacking liburcu8t64:armhf (0.15.2-2) over (0.15.1-1) ... 58s Preparing to unpack .../06-nano_8.4-1_armhf.deb ... 58s Unpacking nano (8.4-1) over (8.3-1) ... 58s Preparing to unpack .../07-usb.ids_2025.04.01-1_all.deb ... 58s Unpacking usb.ids (2025.04.01-1) over (2025.01.14-1) ... 58s Preparing to unpack .../08-dpkg-dev_1.22.18ubuntu3_all.deb ... 58s Unpacking dpkg-dev (1.22.18ubuntu3) over (1.22.18ubuntu2) ... 58s Preparing to unpack .../09-libdpkg-perl_1.22.18ubuntu3_all.deb ... 58s Unpacking libdpkg-perl (1.22.18ubuntu3) over (1.22.18ubuntu2) ... 58s Preparing to unpack .../10-fwupd_2.0.8-3_armhf.deb ... 58s Unpacking fwupd (2.0.8-3) over (2.0.7-1) ... 58s dpkg: warning: unable to delete old directory '/etc/grub.d': Directory not empty 58s Preparing to unpack .../11-libfwupd3_2.0.8-3_armhf.deb ... 58s Unpacking libfwupd3:armhf (2.0.8-3) over (2.0.7-1) ... 58s Preparing to unpack .../12-htop_3.4.1-4_armhf.deb ... 58s Unpacking htop (3.4.1-4) over (3.4.0-2) ... 58s Preparing to unpack .../13-libftdi1-2_1.5-10_armhf.deb ... 58s Unpacking libftdi1-2:armhf (1.5-10) over (1.5-8build1) ... 58s Setting up motd-news-config (13.7ubuntu1) ... 58s Setting up liburcu8t64:armhf (0.15.2-2) ... 58s Setting up distro-info-data (0.64) ... 58s Setting up htop (3.4.1-4) ... 58s Setting up libsensors-config (1:3.6.2-2) ... 58s Installing new version of config file /etc/sensors3.conf ... 58s Setting up libfwupd3:armhf (2.0.8-3) ... 58s Setting up libftdi1-2:armhf (1.5-10) ... 58s Setting up usb.ids (2025.04.01-1) ... 58s Setting up libsensors5:armhf (1:3.6.2-2) ... 58s Setting up libdpkg-perl (1.22.18ubuntu3) ... 58s Setting up nano (8.4-1) ... 58s Installing new version of config file /etc/nanorc ... 58s Setting up ubuntu-pro-client (35.1ubuntu0) ... 59s apparmor_parser: Unable to replace "ubuntu_pro_apt_news". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s apparmor_parser: Unable to replace "apt_methods". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s apparmor_parser: Unable to replace "ubuntu_pro_esm_cache". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 60s Setting up fwupd (2.0.8-3) ... 61s fwupd-refresh.service is a disabled or a static unit not running, not starting it. 61s fwupd.service is a disabled or a static unit not running, not starting it. 61s Setting up ubuntu-pro-client-l10n (35.1ubuntu0) ... 61s Setting up dpkg-dev (1.22.18ubuntu3) ... 61s Processing triggers for dbus (1.16.2-2ubuntu1) ... 61s Processing triggers for install-info (7.1.1-1) ... 61s Processing triggers for libc-bin (2.41-6ubuntu1) ... 61s Processing triggers for man-db (2.13.0-1) ... 63s Processing triggers for plymouth-theme-ubuntu-text (24.004.60-2ubuntu7) ... 63s Processing triggers for initramfs-tools (0.147ubuntu1) ... 65s Reading package lists... 65s Building dependency tree... 65s Reading state information... 66s Starting pkgProblemResolver with broken count: 0 66s Starting 2 pkgProblemResolver with broken count: 0 66s Done 66s Solving dependencies... 67s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 69s autopkgtest [21:28:16]: rebooting testbed after setup commands that affected boot 108s autopkgtest [21:28:55]: 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 132s autopkgtest [21:29:19]: @@@@@@@@@@@@@@@@@@@@ apt-source patroni 147s Get:1 http://ftpmaster.internal/ubuntu questing/universe patroni 4.0.4-7 (dsc) [2850 B] 147s Get:2 http://ftpmaster.internal/ubuntu questing/universe patroni 4.0.4-7 (tar) [1205 kB] 147s Get:3 http://ftpmaster.internal/ubuntu questing/universe patroni 4.0.4-7 (diff) [26.8 kB] 147s gpgv: Signature made Wed Feb 12 17:39:45 2025 UTC 147s gpgv: using RSA key 9CA877749FAB2E4FA96862ECDC686A27B43481B0 147s gpgv: Can't check signature: No public key 147s dpkg-source: warning: cannot verify inline signature for ./patroni_4.0.4-7.dsc: no acceptable signature found 147s autopkgtest [21:29:34]: testing package patroni version 4.0.4-7 149s autopkgtest [21:29:36]: build not needed 152s autopkgtest [21:29:39]: test test: preparing testbed 154s Reading package lists... 154s Building dependency tree... 154s Reading state information... 154s Starting pkgProblemResolver with broken count: 0 154s Starting 2 pkgProblemResolver with broken count: 0 154s Done 156s The following NEW packages will be installed: 156s fonts-font-awesome fonts-lato libcares2 libev4t64 libjs-jquery 156s libjs-jquery-hotkeys libjs-jquery-isonscreen libjs-jquery-metadata 156s libjs-jquery-tablesorter libjs-jquery-throttle-debounce libjs-sphinxdoc 156s libjs-underscore libpq5 patroni patroni-doc python3-aiohappyeyeballs 156s python3-aiohttp python3-aiosignal python3-async-timeout python3-cachetools 156s python3-click python3-consul python3-coverage python3-dnspython python3-etcd 156s python3-eventlet python3-flake8 python3-frozenlist python3-gevent 156s python3-google-auth python3-greenlet python3-iniconfig python3-kazoo 156s python3-kerberos python3-kubernetes python3-mccabe python3-mock 156s python3-multidict python3-pluggy python3-prettytable python3-psutil 156s python3-psycopg2 python3-pure-sasl python3-pyasn1 python3-pyasn1-modules 156s python3-pycodestyle python3-pyflakes python3-pysyncobj python3-pytest 156s python3-pytest-cov python3-pyu2f python3-requests-oauthlib python3-responses 156s python3-rsa python3-wcwidth python3-websocket python3-yarl python3-ydiff 156s python3-zope.event python3-zope.interface sphinx-rtd-theme-common 157s 0 upgraded, 61 newly installed, 0 to remove and 0 not upgraded. 157s Need to get 10.3 MB of archives. 157s After this operation, 61.2 MB of additional disk space will be used. 157s Get:1 http://ftpmaster.internal/ubuntu questing/main armhf fonts-lato all 2.015-1 [2781 kB] 157s Get:2 http://ftpmaster.internal/ubuntu questing/main armhf fonts-font-awesome all 5.0.10+really4.7.0~dfsg-4.1 [516 kB] 157s Get:3 http://ftpmaster.internal/ubuntu questing/main armhf libcares2 armhf 1.34.4-2.1 [85.0 kB] 157s Get:4 http://ftpmaster.internal/ubuntu questing/universe armhf libev4t64 armhf 1:4.33-2.1build1 [26.3 kB] 157s Get:5 http://ftpmaster.internal/ubuntu questing/main armhf libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 157s Get:6 http://ftpmaster.internal/ubuntu questing/universe armhf libjs-jquery-metadata all 12-4 [6582 B] 157s Get:7 http://ftpmaster.internal/ubuntu questing/universe armhf libjs-jquery-tablesorter all 1:2.31.3+dfsg1-4 [192 kB] 157s Get:8 http://ftpmaster.internal/ubuntu questing/universe armhf libjs-jquery-throttle-debounce all 1.1+dfsg.1-2 [12.5 kB] 157s Get:9 http://ftpmaster.internal/ubuntu questing/main armhf libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [118 kB] 157s Get:10 http://ftpmaster.internal/ubuntu questing/main armhf libjs-sphinxdoc all 8.1.3-5 [31.0 kB] 157s Get:11 http://ftpmaster.internal/ubuntu questing/main armhf libpq5 armhf 17.4-1 [125 kB] 157s Get:12 http://ftpmaster.internal/ubuntu questing/main armhf python3-click all 8.2.0+0.really.8.1.8-1 [80.0 kB] 157s Get:13 http://ftpmaster.internal/ubuntu questing/main armhf python3-wcwidth all 0.2.13+dfsg1-1 [26.3 kB] 157s Get:14 http://ftpmaster.internal/ubuntu questing/main armhf python3-prettytable all 3.12.0-1 [36.5 kB] 157s Get:15 http://ftpmaster.internal/ubuntu questing-proposed/main armhf python3-psutil armhf 7.0.0-2 [187 kB] 157s Get:16 http://ftpmaster.internal/ubuntu questing/universe armhf python3-ydiff all 1.4.2-1 [19.0 kB] 157s Get:17 http://ftpmaster.internal/ubuntu questing/main armhf python3-psycopg2 armhf 2.9.10-1build1 [125 kB] 157s Get:18 http://ftpmaster.internal/ubuntu questing/main armhf python3-dnspython all 2.7.0-1ubuntu1 [167 kB] 157s Get:19 http://ftpmaster.internal/ubuntu questing/universe armhf python3-etcd all 0.4.5-6 [32.1 kB] 157s Get:20 http://ftpmaster.internal/ubuntu questing/universe armhf python3-consul all 1.5.1+dfsg-1 [21.7 kB] 157s Get:21 http://ftpmaster.internal/ubuntu questing/main armhf python3-greenlet armhf 3.1.0-1build1 [161 kB] 157s Get:22 http://ftpmaster.internal/ubuntu questing/main armhf python3-eventlet all 0.39.0-0ubuntu1 [277 kB] 157s Get:23 http://ftpmaster.internal/ubuntu questing/universe armhf python3-zope.event all 5.0-0.1 [7512 B] 157s Get:24 http://ftpmaster.internal/ubuntu questing/main armhf python3-zope.interface armhf 7.2-1build1 [139 kB] 158s Get:25 http://ftpmaster.internal/ubuntu questing/universe armhf python3-gevent armhf 24.11.1-1build1 [822 kB] 158s Get:26 http://ftpmaster.internal/ubuntu questing/universe armhf python3-kerberos armhf 1.1.14-3.1build11 [19.9 kB] 158s Get:27 http://ftpmaster.internal/ubuntu questing/universe armhf python3-pure-sasl all 0.5.1+dfsg1-5 [11.4 kB] 158s Get:28 http://ftpmaster.internal/ubuntu questing/universe armhf python3-kazoo all 2.9.0-2 [103 kB] 158s Get:29 http://ftpmaster.internal/ubuntu questing/universe armhf python3-multidict armhf 6.2.0-2 [32.8 kB] 158s Get:30 http://ftpmaster.internal/ubuntu questing/universe armhf python3-yarl armhf 1.13.1-1build2 [91.4 kB] 158s Get:31 http://ftpmaster.internal/ubuntu questing/universe armhf python3-async-timeout all 5.0.1-1 [6830 B] 158s Get:32 http://ftpmaster.internal/ubuntu questing/universe armhf python3-aiohappyeyeballs all 2.6.1-1 [11.1 kB] 158s Get:33 http://ftpmaster.internal/ubuntu questing/universe armhf python3-frozenlist armhf 1.5.0-1build2 [47.0 kB] 158s Get:34 http://ftpmaster.internal/ubuntu questing/universe armhf python3-aiosignal all 1.3.2-1 [5182 B] 158s Get:35 http://ftpmaster.internal/ubuntu questing/universe armhf python3-aiohttp armhf 3.10.11-1build1 [289 kB] 158s Get:36 http://ftpmaster.internal/ubuntu questing/main armhf python3-cachetools all 5.3.3-1 [10.3 kB] 158s Get:37 http://ftpmaster.internal/ubuntu questing/main armhf python3-pyasn1 all 0.6.1-1 [56.4 kB] 158s Get:38 http://ftpmaster.internal/ubuntu questing/main armhf python3-pyasn1-modules all 0.4.1-2 [80.3 kB] 158s Get:39 http://ftpmaster.internal/ubuntu questing/universe armhf python3-pyu2f all 0.1.5-4 [22.9 kB] 158s Get:40 http://ftpmaster.internal/ubuntu questing/universe armhf python3-responses all 0.25.6-1 [40.5 kB] 158s Get:41 http://ftpmaster.internal/ubuntu questing/universe armhf python3-rsa all 4.9-2 [28.2 kB] 158s Get:42 http://ftpmaster.internal/ubuntu questing/universe armhf python3-google-auth all 2.28.2-3 [91.0 kB] 158s Get:43 http://ftpmaster.internal/ubuntu questing/universe armhf python3-requests-oauthlib all 1.3.1-1 [18.8 kB] 158s Get:44 http://ftpmaster.internal/ubuntu questing/universe armhf python3-websocket all 1.8.0-2 [38.5 kB] 158s Get:45 http://ftpmaster.internal/ubuntu questing/universe armhf python3-kubernetes all 30.1.0-2 [385 kB] 158s Get:46 http://ftpmaster.internal/ubuntu questing/universe armhf python3-pysyncobj all 0.3.14-2 [61.9 kB] 158s Get:47 http://ftpmaster.internal/ubuntu questing/universe armhf patroni all 4.0.4-7 [281 kB] 158s Get:48 http://ftpmaster.internal/ubuntu questing/main armhf sphinx-rtd-theme-common all 3.0.2+dfsg-2 [1014 kB] 158s Get:49 http://ftpmaster.internal/ubuntu questing/universe armhf patroni-doc all 4.0.4-7 [526 kB] 158s Get:50 http://ftpmaster.internal/ubuntu questing/universe armhf python3-coverage armhf 7.6.0+dfsg1-2build1 [152 kB] 158s Get:51 http://ftpmaster.internal/ubuntu questing/universe armhf python3-mccabe all 0.7.0-1 [8678 B] 158s Get:52 http://ftpmaster.internal/ubuntu questing/universe armhf python3-pycodestyle all 2.12.1-2 [30.2 kB] 158s Get:53 http://ftpmaster.internal/ubuntu questing/universe armhf python3-pyflakes all 3.2.0-3 [53.0 kB] 158s Get:54 http://ftpmaster.internal/ubuntu questing/universe armhf python3-flake8 all 7.1.1-3 [44.0 kB] 158s Get:55 http://ftpmaster.internal/ubuntu questing/universe armhf python3-iniconfig all 1.1.1-2 [6024 B] 158s Get:56 http://ftpmaster.internal/ubuntu questing/universe armhf python3-pluggy all 1.5.0-1 [21.0 kB] 158s Get:57 http://ftpmaster.internal/ubuntu questing/universe armhf python3-pytest all 8.3.5-1 [252 kB] 158s Get:58 http://ftpmaster.internal/ubuntu questing/universe armhf libjs-jquery-hotkeys all 0.2.0-1 [13.3 kB] 158s Get:59 http://ftpmaster.internal/ubuntu questing/universe armhf libjs-jquery-isonscreen all 1.2.0-1.1 [3244 B] 158s Get:60 http://ftpmaster.internal/ubuntu questing/universe armhf python3-pytest-cov all 5.0.0-1 [21.3 kB] 158s Get:61 http://ftpmaster.internal/ubuntu questing/universe armhf python3-mock all 5.1.0-1 [64.1 kB] 159s Fetched 10.3 MB in 2s (6087 kB/s) 159s Selecting previously unselected package fonts-lato. 159s (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 ... 63951 files and directories currently installed.) 159s Preparing to unpack .../00-fonts-lato_2.015-1_all.deb ... 159s Unpacking fonts-lato (2.015-1) ... 159s Selecting previously unselected package fonts-font-awesome. 159s Preparing to unpack .../01-fonts-font-awesome_5.0.10+really4.7.0~dfsg-4.1_all.deb ... 159s Unpacking fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 159s Selecting previously unselected package libcares2:armhf. 159s Preparing to unpack .../02-libcares2_1.34.4-2.1_armhf.deb ... 159s Unpacking libcares2:armhf (1.34.4-2.1) ... 159s Selecting previously unselected package libev4t64:armhf. 159s Preparing to unpack .../03-libev4t64_1%3a4.33-2.1build1_armhf.deb ... 159s Unpacking libev4t64:armhf (1:4.33-2.1build1) ... 159s Selecting previously unselected package libjs-jquery. 159s Preparing to unpack .../04-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 159s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 159s Selecting previously unselected package libjs-jquery-metadata. 159s Preparing to unpack .../05-libjs-jquery-metadata_12-4_all.deb ... 159s Unpacking libjs-jquery-metadata (12-4) ... 159s Selecting previously unselected package libjs-jquery-tablesorter. 159s Preparing to unpack .../06-libjs-jquery-tablesorter_1%3a2.31.3+dfsg1-4_all.deb ... 159s Unpacking libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... 159s Selecting previously unselected package libjs-jquery-throttle-debounce. 159s Preparing to unpack .../07-libjs-jquery-throttle-debounce_1.1+dfsg.1-2_all.deb ... 159s Unpacking libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... 159s Selecting previously unselected package libjs-underscore. 159s Preparing to unpack .../08-libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ... 159s Unpacking libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 159s Selecting previously unselected package libjs-sphinxdoc. 159s Preparing to unpack .../09-libjs-sphinxdoc_8.1.3-5_all.deb ... 159s Unpacking libjs-sphinxdoc (8.1.3-5) ... 159s Selecting previously unselected package libpq5:armhf. 159s Preparing to unpack .../10-libpq5_17.4-1_armhf.deb ... 159s Unpacking libpq5:armhf (17.4-1) ... 159s Selecting previously unselected package python3-click. 159s Preparing to unpack .../11-python3-click_8.2.0+0.really.8.1.8-1_all.deb ... 159s Unpacking python3-click (8.2.0+0.really.8.1.8-1) ... 159s Selecting previously unselected package python3-wcwidth. 159s Preparing to unpack .../12-python3-wcwidth_0.2.13+dfsg1-1_all.deb ... 159s Unpacking python3-wcwidth (0.2.13+dfsg1-1) ... 159s Selecting previously unselected package python3-prettytable. 159s Preparing to unpack .../13-python3-prettytable_3.12.0-1_all.deb ... 159s Unpacking python3-prettytable (3.12.0-1) ... 159s Selecting previously unselected package python3-psutil. 160s Preparing to unpack .../14-python3-psutil_7.0.0-2_armhf.deb ... 160s Unpacking python3-psutil (7.0.0-2) ... 160s Selecting previously unselected package python3-ydiff. 160s Preparing to unpack .../15-python3-ydiff_1.4.2-1_all.deb ... 160s Unpacking python3-ydiff (1.4.2-1) ... 160s Selecting previously unselected package python3-psycopg2. 160s Preparing to unpack .../16-python3-psycopg2_2.9.10-1build1_armhf.deb ... 160s Unpacking python3-psycopg2 (2.9.10-1build1) ... 160s Selecting previously unselected package python3-dnspython. 160s Preparing to unpack .../17-python3-dnspython_2.7.0-1ubuntu1_all.deb ... 160s Unpacking python3-dnspython (2.7.0-1ubuntu1) ... 160s Selecting previously unselected package python3-etcd. 160s Preparing to unpack .../18-python3-etcd_0.4.5-6_all.deb ... 160s Unpacking python3-etcd (0.4.5-6) ... 160s Selecting previously unselected package python3-consul. 160s Preparing to unpack .../19-python3-consul_1.5.1+dfsg-1_all.deb ... 160s Unpacking python3-consul (1.5.1+dfsg-1) ... 160s Selecting previously unselected package python3-greenlet. 160s Preparing to unpack .../20-python3-greenlet_3.1.0-1build1_armhf.deb ... 160s Unpacking python3-greenlet (3.1.0-1build1) ... 160s Selecting previously unselected package python3-eventlet. 160s Preparing to unpack .../21-python3-eventlet_0.39.0-0ubuntu1_all.deb ... 160s Unpacking python3-eventlet (0.39.0-0ubuntu1) ... 160s Selecting previously unselected package python3-zope.event. 160s Preparing to unpack .../22-python3-zope.event_5.0-0.1_all.deb ... 160s Unpacking python3-zope.event (5.0-0.1) ... 160s Selecting previously unselected package python3-zope.interface. 160s Preparing to unpack .../23-python3-zope.interface_7.2-1build1_armhf.deb ... 160s Unpacking python3-zope.interface (7.2-1build1) ... 160s Selecting previously unselected package python3-gevent. 160s Preparing to unpack .../24-python3-gevent_24.11.1-1build1_armhf.deb ... 160s Unpacking python3-gevent (24.11.1-1build1) ... 160s Selecting previously unselected package python3-kerberos. 160s Preparing to unpack .../25-python3-kerberos_1.1.14-3.1build11_armhf.deb ... 160s Unpacking python3-kerberos (1.1.14-3.1build11) ... 160s Selecting previously unselected package python3-pure-sasl. 160s Preparing to unpack .../26-python3-pure-sasl_0.5.1+dfsg1-5_all.deb ... 160s Unpacking python3-pure-sasl (0.5.1+dfsg1-5) ... 160s Selecting previously unselected package python3-kazoo. 160s Preparing to unpack .../27-python3-kazoo_2.9.0-2_all.deb ... 160s Unpacking python3-kazoo (2.9.0-2) ... 160s Selecting previously unselected package python3-multidict. 160s Preparing to unpack .../28-python3-multidict_6.2.0-2_armhf.deb ... 160s Unpacking python3-multidict (6.2.0-2) ... 160s Selecting previously unselected package python3-yarl. 160s Preparing to unpack .../29-python3-yarl_1.13.1-1build2_armhf.deb ... 160s Unpacking python3-yarl (1.13.1-1build2) ... 160s Selecting previously unselected package python3-async-timeout. 160s Preparing to unpack .../30-python3-async-timeout_5.0.1-1_all.deb ... 160s Unpacking python3-async-timeout (5.0.1-1) ... 160s Selecting previously unselected package python3-aiohappyeyeballs. 160s Preparing to unpack .../31-python3-aiohappyeyeballs_2.6.1-1_all.deb ... 160s Unpacking python3-aiohappyeyeballs (2.6.1-1) ... 160s Selecting previously unselected package python3-frozenlist. 160s Preparing to unpack .../32-python3-frozenlist_1.5.0-1build2_armhf.deb ... 160s Unpacking python3-frozenlist (1.5.0-1build2) ... 160s Selecting previously unselected package python3-aiosignal. 160s Preparing to unpack .../33-python3-aiosignal_1.3.2-1_all.deb ... 160s Unpacking python3-aiosignal (1.3.2-1) ... 160s Selecting previously unselected package python3-aiohttp. 160s Preparing to unpack .../34-python3-aiohttp_3.10.11-1build1_armhf.deb ... 160s Unpacking python3-aiohttp (3.10.11-1build1) ... 160s Selecting previously unselected package python3-cachetools. 160s Preparing to unpack .../35-python3-cachetools_5.3.3-1_all.deb ... 160s Unpacking python3-cachetools (5.3.3-1) ... 160s Selecting previously unselected package python3-pyasn1. 160s Preparing to unpack .../36-python3-pyasn1_0.6.1-1_all.deb ... 160s Unpacking python3-pyasn1 (0.6.1-1) ... 160s Selecting previously unselected package python3-pyasn1-modules. 160s Preparing to unpack .../37-python3-pyasn1-modules_0.4.1-2_all.deb ... 160s Unpacking python3-pyasn1-modules (0.4.1-2) ... 160s Selecting previously unselected package python3-pyu2f. 160s Preparing to unpack .../38-python3-pyu2f_0.1.5-4_all.deb ... 160s Unpacking python3-pyu2f (0.1.5-4) ... 160s Selecting previously unselected package python3-responses. 160s Preparing to unpack .../39-python3-responses_0.25.6-1_all.deb ... 160s Unpacking python3-responses (0.25.6-1) ... 161s Selecting previously unselected package python3-rsa. 161s Preparing to unpack .../40-python3-rsa_4.9-2_all.deb ... 161s Unpacking python3-rsa (4.9-2) ... 161s Selecting previously unselected package python3-google-auth. 161s Preparing to unpack .../41-python3-google-auth_2.28.2-3_all.deb ... 161s Unpacking python3-google-auth (2.28.2-3) ... 161s Selecting previously unselected package python3-requests-oauthlib. 161s Preparing to unpack .../42-python3-requests-oauthlib_1.3.1-1_all.deb ... 161s Unpacking python3-requests-oauthlib (1.3.1-1) ... 161s Selecting previously unselected package python3-websocket. 161s Preparing to unpack .../43-python3-websocket_1.8.0-2_all.deb ... 161s Unpacking python3-websocket (1.8.0-2) ... 161s Selecting previously unselected package python3-kubernetes. 161s Preparing to unpack .../44-python3-kubernetes_30.1.0-2_all.deb ... 161s Unpacking python3-kubernetes (30.1.0-2) ... 161s Selecting previously unselected package python3-pysyncobj. 161s Preparing to unpack .../45-python3-pysyncobj_0.3.14-2_all.deb ... 161s Unpacking python3-pysyncobj (0.3.14-2) ... 161s Selecting previously unselected package patroni. 161s Preparing to unpack .../46-patroni_4.0.4-7_all.deb ... 161s Unpacking patroni (4.0.4-7) ... 161s Selecting previously unselected package sphinx-rtd-theme-common. 161s Preparing to unpack .../47-sphinx-rtd-theme-common_3.0.2+dfsg-2_all.deb ... 161s Unpacking sphinx-rtd-theme-common (3.0.2+dfsg-2) ... 161s Selecting previously unselected package patroni-doc. 161s Preparing to unpack .../48-patroni-doc_4.0.4-7_all.deb ... 161s Unpacking patroni-doc (4.0.4-7) ... 161s Selecting previously unselected package python3-coverage. 161s Preparing to unpack .../49-python3-coverage_7.6.0+dfsg1-2build1_armhf.deb ... 161s Unpacking python3-coverage (7.6.0+dfsg1-2build1) ... 161s Selecting previously unselected package python3-mccabe. 161s Preparing to unpack .../50-python3-mccabe_0.7.0-1_all.deb ... 161s Unpacking python3-mccabe (0.7.0-1) ... 161s Selecting previously unselected package python3-pycodestyle. 161s Preparing to unpack .../51-python3-pycodestyle_2.12.1-2_all.deb ... 161s Unpacking python3-pycodestyle (2.12.1-2) ... 161s Selecting previously unselected package python3-pyflakes. 161s Preparing to unpack .../52-python3-pyflakes_3.2.0-3_all.deb ... 161s Unpacking python3-pyflakes (3.2.0-3) ... 161s Selecting previously unselected package python3-flake8. 161s Preparing to unpack .../53-python3-flake8_7.1.1-3_all.deb ... 161s Unpacking python3-flake8 (7.1.1-3) ... 161s Selecting previously unselected package python3-iniconfig. 161s Preparing to unpack .../54-python3-iniconfig_1.1.1-2_all.deb ... 161s Unpacking python3-iniconfig (1.1.1-2) ... 161s Selecting previously unselected package python3-pluggy. 161s Preparing to unpack .../55-python3-pluggy_1.5.0-1_all.deb ... 161s Unpacking python3-pluggy (1.5.0-1) ... 161s Selecting previously unselected package python3-pytest. 161s Preparing to unpack .../56-python3-pytest_8.3.5-1_all.deb ... 161s Unpacking python3-pytest (8.3.5-1) ... 161s Selecting previously unselected package libjs-jquery-hotkeys. 161s Preparing to unpack .../57-libjs-jquery-hotkeys_0.2.0-1_all.deb ... 161s Unpacking libjs-jquery-hotkeys (0.2.0-1) ... 161s Selecting previously unselected package libjs-jquery-isonscreen. 161s Preparing to unpack .../58-libjs-jquery-isonscreen_1.2.0-1.1_all.deb ... 161s Unpacking libjs-jquery-isonscreen (1.2.0-1.1) ... 161s Selecting previously unselected package python3-pytest-cov. 161s Preparing to unpack .../59-python3-pytest-cov_5.0.0-1_all.deb ... 161s Unpacking python3-pytest-cov (5.0.0-1) ... 161s Selecting previously unselected package python3-mock. 161s Preparing to unpack .../60-python3-mock_5.1.0-1_all.deb ... 161s Unpacking python3-mock (5.1.0-1) ... 162s Setting up python3-iniconfig (1.1.1-2) ... 162s Setting up libev4t64:armhf (1:4.33-2.1build1) ... 162s Setting up fonts-lato (2.015-1) ... 162s Setting up python3-pysyncobj (0.3.14-2) ... 162s Setting up python3-cachetools (5.3.3-1) ... 162s Setting up python3-zope.event (5.0-0.1) ... 162s Setting up python3-zope.interface (7.2-1build1) ... 162s Setting up python3-pyflakes (3.2.0-3) ... 163s Setting up python3-ydiff (1.4.2-1) ... 163s Setting up libpq5:armhf (17.4-1) ... 163s Setting up python3-kerberos (1.1.14-3.1build11) ... 163s Setting up python3-coverage (7.6.0+dfsg1-2build1) ... 163s Setting up libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... 163s Setting up python3-click (8.2.0+0.really.8.1.8-1) ... 163s Setting up python3-psutil (7.0.0-2) ... 164s Setting up python3-multidict (6.2.0-2) ... 164s Setting up python3-frozenlist (1.5.0-1build2) ... 164s Setting up python3-aiosignal (1.3.2-1) ... 164s Setting up python3-mock (5.1.0-1) ... 164s Setting up python3-async-timeout (5.0.1-1) ... 164s Setting up python3-responses (0.25.6-1) ... 164s Setting up python3-pycodestyle (2.12.1-2) ... 165s Setting up python3-wcwidth (0.2.13+dfsg1-1) ... 165s Setting up python3-pyu2f (0.1.5-4) ... 165s Setting up python3-greenlet (3.1.0-1build1) ... 165s Setting up libcares2:armhf (1.34.4-2.1) ... 165s Setting up python3-psycopg2 (2.9.10-1build1) ... 165s Setting up python3-aiohappyeyeballs (2.6.1-1) ... 165s Setting up python3-pluggy (1.5.0-1) ... 166s Setting up python3-dnspython (2.7.0-1ubuntu1) ... 166s Setting up python3-pyasn1 (0.6.1-1) ... 166s Setting up python3-mccabe (0.7.0-1) ... 167s Setting up python3-consul (1.5.1+dfsg-1) ... 167s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 167s Setting up libjs-jquery-hotkeys (0.2.0-1) ... 167s Setting up python3-prettytable (3.12.0-1) ... 167s Setting up python3-yarl (1.13.1-1build2) ... 168s Setting up fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 168s Setting up sphinx-rtd-theme-common (3.0.2+dfsg-2) ... 168s Setting up python3-websocket (1.8.0-2) ... 168s Setting up python3-requests-oauthlib (1.3.1-1) ... 168s Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 168s Setting up python3-pure-sasl (0.5.1+dfsg1-5) ... 168s Setting up python3-etcd (0.4.5-6) ... 169s Setting up python3-pytest (8.3.5-1) ... 169s Setting up python3-aiohttp (3.10.11-1build1) ... 170s Setting up python3-gevent (24.11.1-1build1) ... 170s Setting up python3-flake8 (7.1.1-3) ... 170s Setting up python3-eventlet (0.39.0-0ubuntu1) ... 171s Setting up python3-kazoo (2.9.0-2) ... 171s Setting up python3-pyasn1-modules (0.4.1-2) ... 171s Setting up libjs-jquery-metadata (12-4) ... 171s Setting up libjs-jquery-isonscreen (1.2.0-1.1) ... 171s Setting up libjs-sphinxdoc (8.1.3-5) ... 171s Setting up libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... 171s Setting up python3-rsa (4.9-2) ... 171s Setting up patroni (4.0.4-7) ... 172s Created symlink '/etc/systemd/system/multi-user.target.wants/patroni.service' → '/usr/lib/systemd/system/patroni.service'. 172s Setting up patroni-doc (4.0.4-7) ... 172s Setting up python3-pytest-cov (5.0.0-1) ... 173s Setting up python3-google-auth (2.28.2-3) ... 173s 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) ... 185s autopkgtest [21:30:12]: test test: [----------------------- 189s ============================= test session starts ============================== 189s platform linux -- Python 3.13.3, pytest-8.3.5, pluggy-1.5.0 189s rootdir: /tmp/autopkgtest.1mZRKn/build.ijT/src 189s plugins: typeguard-4.4.2, cov-5.0.0 189s collected 651 items 189s 190s tests/test_api.py ................................... [ 5%] 190s tests/test_async_executor.py .... [ 5%] 190s tests/test_aws.py .... [ 6%] 190s tests/test_barman.py ................ [ 9%] 190s tests/test_bootstrap.py .......... [ 10%] 190s tests/test_callback_executor.py . [ 10%] 190s tests/test_cancellable.py ... [ 11%] 190s tests/test_citus.py sssssssssssss................ [ 15%] 190s tests/test_config.py .......... [ 17%] 190s tests/test_config_generator.py ...... [ 18%] 190s tests/test_consul.py ....................... [ 21%] 191s tests/test_ctl.py ...................................... [ 27%] 192s tests/test_etcd.py ............................. [ 31%] 192s tests/test_etcd3.py ................................. [ 37%] 192s tests/test_exhibitor.py ... [ 37%] 192s tests/test_file_perm.py ... [ 37%] 193s tests/test_ha.py ....................................................... [ 46%] 194s ................................................................ [ 56%] 195s tests/test_kubernetes.py ........................................ [ 62%] 195s tests/test_log.py .......... [ 63%] 195s tests/test_mpp.py .. [ 64%] 195s tests/test_patroni.py .................... [ 67%] 196s tests/test_postgresql.py ............................................... [ 74%] 196s ............. [ 76%] 196s tests/test_postmaster.py ......... [ 77%] 196s tests/test_quorum.py ............... [ 80%] 206s tests/test_raft.py ........... [ 81%] 206s tests/test_raft_controller.py ... [ 82%] 207s tests/test_rewind.py .............. [ 84%] 207s tests/test_slots.py ............... [ 86%] 207s tests/test_sync.py .... [ 87%] 207s tests/test_utils.py ............... [ 89%] 207s tests/test_validator.py .................. [ 92%] 208s tests/test_wale_restore.py ...... [ 93%] 208s tests/test_watchdog.py ................ [ 95%] 208s tests/test_zookeeper.py ........................... [100%] 208s 208s ======================= 638 passed, 13 skipped in 19.94s ======================= 208s autopkgtest [21:30:35]: test test: -----------------------] 212s test PASS 212s autopkgtest [21:30:39]: test test: - - - - - - - - - - results - - - - - - - - - - 216s autopkgtest [21:30:43]: test acceptance-etcd3: preparing testbed 238s autopkgtest [21:31:05]: testbed dpkg architecture: armhf 240s autopkgtest [21:31:07]: testbed apt version: 3.0.0 243s autopkgtest [21:31:10]: @@@@@@@@@@@@@@@@@@@@ test bed setup 245s autopkgtest [21:31:12]: testbed release detected to be: questing 252s autopkgtest [21:31:19]: updating testbed package index (apt update) 254s 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/universe Sources [1968 kB] 255s Get:6 http://ftpmaster.internal/ubuntu questing-proposed/main Sources [167 kB] 255s Get:7 http://ftpmaster.internal/ubuntu questing-proposed/multiverse Sources [43.1 kB] 255s Get:8 http://ftpmaster.internal/ubuntu questing-proposed/main armhf Packages [201 kB] 255s Get:9 http://ftpmaster.internal/ubuntu questing-proposed/universe armhf Packages [1375 kB] 256s Get:10 http://ftpmaster.internal/ubuntu questing-proposed/multiverse armhf Packages [12.9 kB] 256s Get:11 http://ftpmaster.internal/ubuntu questing/main Sources [1386 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] 258s Get:14 http://ftpmaster.internal/ubuntu questing/main armhf Packages [1358 kB] 258s Get:15 http://ftpmaster.internal/ubuntu questing/universe armhf Packages [15.2 MB] 258s Get:16 http://ftpmaster.internal/ubuntu questing/multiverse armhf Packages [173 kB] 261s Fetched 43.7 MB in 7s (6073 kB/s) 263s Reading package lists... 268s autopkgtest [21:31:35]: upgrading testbed (apt dist-upgrade and autopurge) 270s Reading package lists... 270s Building dependency tree... 270s Reading state information... 271s Calculating upgrade...Starting pkgProblemResolver with broken count: 0 271s Starting 2 pkgProblemResolver with broken count: 0 271s Done 272s Entering ResolveByKeep 272s 272s Calculating upgrade... 273s The following packages will be upgraded: 273s base-files distro-info-data dpkg dpkg-dev fwupd htop libdpkg-perl libftdi1-2 273s libfwupd3 libnpth0t64 libsensors-config libsensors5 liburcu8t64 273s motd-news-config nano ubuntu-pro-client ubuntu-pro-client-l10n usb.ids 273s 18 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 273s Need to get 5303 kB of archives. 273s After this operation, 3722 kB disk space will be freed. 273s Get:1 http://ftpmaster.internal/ubuntu questing/main armhf motd-news-config all 13.7ubuntu1 [5260 B] 273s Get:2 http://ftpmaster.internal/ubuntu questing/main armhf base-files armhf 13.7ubuntu1 [75.4 kB] 273s Get:3 http://ftpmaster.internal/ubuntu questing/main armhf dpkg armhf 1.22.18ubuntu3 [1254 kB] 274s Get:4 http://ftpmaster.internal/ubuntu questing/main armhf libnpth0t64 armhf 1.8-3 [7716 B] 274s Get:5 http://ftpmaster.internal/ubuntu questing/main armhf distro-info-data all 0.64 [6664 B] 274s Get:6 http://ftpmaster.internal/ubuntu questing/main armhf ubuntu-pro-client-l10n armhf 35.1ubuntu0 [19.7 kB] 274s Get:7 http://ftpmaster.internal/ubuntu questing/main armhf ubuntu-pro-client armhf 35.1ubuntu0 [258 kB] 274s Get:8 http://ftpmaster.internal/ubuntu questing/main armhf libsensors-config all 1:3.6.2-2 [6756 B] 274s Get:9 http://ftpmaster.internal/ubuntu questing/main armhf libsensors5 armhf 1:3.6.2-2 [26.8 kB] 274s Get:10 http://ftpmaster.internal/ubuntu questing/main armhf liburcu8t64 armhf 0.15.2-2 [57.3 kB] 274s Get:11 http://ftpmaster.internal/ubuntu questing/main armhf nano armhf 8.4-1 [278 kB] 274s Get:12 http://ftpmaster.internal/ubuntu questing/main armhf usb.ids all 2025.04.01-1 [223 kB] 274s Get:13 http://ftpmaster.internal/ubuntu questing/main armhf dpkg-dev all 1.22.18ubuntu3 [1089 kB] 274s Get:14 http://ftpmaster.internal/ubuntu questing/main armhf libdpkg-perl all 1.22.18ubuntu3 [281 kB] 274s Get:15 http://ftpmaster.internal/ubuntu questing/main armhf fwupd armhf 2.0.8-3 [1414 kB] 274s Get:16 http://ftpmaster.internal/ubuntu questing/main armhf libfwupd3 armhf 2.0.8-3 [126 kB] 274s Get:17 http://ftpmaster.internal/ubuntu questing/main armhf htop armhf 3.4.1-4 [147 kB] 274s Get:18 http://ftpmaster.internal/ubuntu questing/main armhf libftdi1-2 armhf 1.5-10 [27.8 kB] 275s Fetched 5303 kB in 1s (3795 kB/s) 275s (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.) 275s Preparing to unpack .../motd-news-config_13.7ubuntu1_all.deb ... 275s Unpacking motd-news-config (13.7ubuntu1) over (13.6ubuntu2) ... 275s Preparing to unpack .../base-files_13.7ubuntu1_armhf.deb ... 275s Unpacking base-files (13.7ubuntu1) over (13.6ubuntu2) ... 275s Setting up base-files (13.7ubuntu1) ... 275s Installing new version of config file /etc/issue ... 275s Installing new version of config file /etc/issue.net ... 275s Installing new version of config file /etc/lsb-release ... 276s motd-news.service is a disabled or a static unit not running, not starting it. 276s (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.) 276s Preparing to unpack .../dpkg_1.22.18ubuntu3_armhf.deb ... 276s Unpacking dpkg (1.22.18ubuntu3) over (1.22.18ubuntu2) ... 276s Setting up dpkg (1.22.18ubuntu3) ... 276s (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.) 276s Preparing to unpack .../libnpth0t64_1.8-3_armhf.deb ... 276s Unpacking libnpth0t64:armhf (1.8-3) over (1.8-2) ... 276s Setting up libnpth0t64:armhf (1.8-3) ... 277s (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.) 277s Preparing to unpack .../00-distro-info-data_0.64_all.deb ... 277s Unpacking distro-info-data (0.64) over (0.63) ... 277s Preparing to unpack .../01-ubuntu-pro-client-l10n_35.1ubuntu0_armhf.deb ... 277s Unpacking ubuntu-pro-client-l10n (35.1ubuntu0) over (35) ... 277s Preparing to unpack .../02-ubuntu-pro-client_35.1ubuntu0_armhf.deb ... 277s Unpacking ubuntu-pro-client (35.1ubuntu0) over (35) ... 277s Preparing to unpack .../03-libsensors-config_1%3a3.6.2-2_all.deb ... 277s Unpacking libsensors-config (1:3.6.2-2) over (1:3.6.0-10) ... 277s Preparing to unpack .../04-libsensors5_1%3a3.6.2-2_armhf.deb ... 277s Unpacking libsensors5:armhf (1:3.6.2-2) over (1:3.6.0-10) ... 277s Preparing to unpack .../05-liburcu8t64_0.15.2-2_armhf.deb ... 277s Unpacking liburcu8t64:armhf (0.15.2-2) over (0.15.1-1) ... 277s Preparing to unpack .../06-nano_8.4-1_armhf.deb ... 277s Unpacking nano (8.4-1) over (8.3-1) ... 277s Preparing to unpack .../07-usb.ids_2025.04.01-1_all.deb ... 277s Unpacking usb.ids (2025.04.01-1) over (2025.01.14-1) ... 277s Preparing to unpack .../08-dpkg-dev_1.22.18ubuntu3_all.deb ... 277s Unpacking dpkg-dev (1.22.18ubuntu3) over (1.22.18ubuntu2) ... 277s Preparing to unpack .../09-libdpkg-perl_1.22.18ubuntu3_all.deb ... 277s Unpacking libdpkg-perl (1.22.18ubuntu3) over (1.22.18ubuntu2) ... 277s Preparing to unpack .../10-fwupd_2.0.8-3_armhf.deb ... 277s Unpacking fwupd (2.0.8-3) over (2.0.7-1) ... 278s dpkg: warning: unable to delete old directory '/etc/grub.d': Directory not empty 278s Preparing to unpack .../11-libfwupd3_2.0.8-3_armhf.deb ... 278s Unpacking libfwupd3:armhf (2.0.8-3) over (2.0.7-1) ... 278s Preparing to unpack .../12-htop_3.4.1-4_armhf.deb ... 278s Unpacking htop (3.4.1-4) over (3.4.0-2) ... 278s Preparing to unpack .../13-libftdi1-2_1.5-10_armhf.deb ... 278s Unpacking libftdi1-2:armhf (1.5-10) over (1.5-8build1) ... 278s Setting up motd-news-config (13.7ubuntu1) ... 278s Setting up liburcu8t64:armhf (0.15.2-2) ... 278s Setting up distro-info-data (0.64) ... 278s Setting up htop (3.4.1-4) ... 278s Setting up libsensors-config (1:3.6.2-2) ... 278s Installing new version of config file /etc/sensors3.conf ... 278s Setting up libfwupd3:armhf (2.0.8-3) ... 278s Setting up libftdi1-2:armhf (1.5-10) ... 278s Setting up usb.ids (2025.04.01-1) ... 278s Setting up libsensors5:armhf (1:3.6.2-2) ... 278s Setting up libdpkg-perl (1.22.18ubuntu3) ... 278s Setting up nano (8.4-1) ... 278s Installing new version of config file /etc/nanorc ... 278s Setting up ubuntu-pro-client (35.1ubuntu0) ... 278s apparmor_parser: Unable to replace "ubuntu_pro_apt_news". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 278s 278s apparmor_parser: Unable to replace "apt_methods". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 278s 278s apparmor_parser: Unable to replace "ubuntu_pro_esm_cache". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 278s 280s Setting up fwupd (2.0.8-3) ... 280s fwupd-refresh.service is a disabled or a static unit not running, not starting it. 280s fwupd.service is a disabled or a static unit not running, not starting it. 280s Setting up ubuntu-pro-client-l10n (35.1ubuntu0) ... 280s Setting up dpkg-dev (1.22.18ubuntu3) ... 280s Processing triggers for dbus (1.16.2-2ubuntu1) ... 280s Processing triggers for install-info (7.1.1-1) ... 280s Processing triggers for libc-bin (2.41-6ubuntu1) ... 281s Processing triggers for man-db (2.13.0-1) ... 282s Processing triggers for plymouth-theme-ubuntu-text (24.004.60-2ubuntu7) ... 282s Processing triggers for initramfs-tools (0.147ubuntu1) ... 284s Reading package lists... 284s Building dependency tree... 285s Reading state information... 285s Starting pkgProblemResolver with broken count: 0 285s Starting 2 pkgProblemResolver with broken count: 0 285s Done 286s Solving dependencies... 286s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 288s autopkgtest [21:31:55]: 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/main armhf postgresql-client-common all 274 [47.6 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/main armhf postgresql-common-dev all 274 [73.0 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/main armhf postgresql-common all 274 [101 kB] 354s Get:9 http://ftpmaster.internal/ubuntu questing/universe armhf etcd-server armhf 3.5.16-4 [11.3 MB] 356s Get:10 http://ftpmaster.internal/ubuntu questing/main armhf fonts-font-awesome all 5.0.10+really4.7.0~dfsg-4.1 [516 kB] 356s Get:11 http://ftpmaster.internal/ubuntu questing/main armhf libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 356s Get:12 http://ftpmaster.internal/ubuntu questing/main armhf libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [118 kB] 356s Get:13 http://ftpmaster.internal/ubuntu questing/main armhf libjs-sphinxdoc all 8.1.3-5 [31.0 kB] 356s Get:14 http://ftpmaster.internal/ubuntu questing/main armhf libllvm20 armhf 1:20.1.2-0ubuntu1 [29.6 MB] 357s Get:15 http://ftpmaster.internal/ubuntu questing/main armhf libpq5 armhf 17.4-1 [125 kB] 357s Get:16 http://ftpmaster.internal/ubuntu questing/main armhf libtime-duration-perl all 1.21-2 [12.3 kB] 357s Get:17 http://ftpmaster.internal/ubuntu questing/main armhf libtimedate-perl all 2.3300-2 [34.0 kB] 357s Get:18 http://ftpmaster.internal/ubuntu questing/main armhf libxslt1.1 armhf 1.1.39-0exp1ubuntu4 [151 kB] 357s Get:19 http://ftpmaster.internal/ubuntu questing/universe armhf moreutils armhf 0.69-1 [53.5 kB] 357s Get:20 http://ftpmaster.internal/ubuntu questing/main armhf python3-click all 8.2.0+0.really.8.1.8-1 [80.0 kB] 357s Get:21 http://ftpmaster.internal/ubuntu questing/main armhf python3-wcwidth all 0.2.13+dfsg1-1 [26.3 kB] 357s Get:22 http://ftpmaster.internal/ubuntu questing/main armhf python3-prettytable all 3.12.0-1 [36.5 kB] 357s Get:23 http://ftpmaster.internal/ubuntu questing-proposed/main armhf python3-psutil armhf 7.0.0-2 [187 kB] 357s Get:24 http://ftpmaster.internal/ubuntu questing/universe armhf python3-ydiff all 1.4.2-1 [19.0 kB] 357s Get:25 http://ftpmaster.internal/ubuntu questing/main armhf python3-psycopg2 armhf 2.9.10-1build1 [125 kB] 357s Get:26 http://ftpmaster.internal/ubuntu questing/main armhf python3-dnspython all 2.7.0-1ubuntu1 [167 kB] 357s Get:27 http://ftpmaster.internal/ubuntu questing/universe armhf python3-etcd all 0.4.5-6 [32.1 kB] 357s Get:28 http://ftpmaster.internal/ubuntu questing/universe armhf patroni all 4.0.4-7 [281 kB] 357s Get:29 http://ftpmaster.internal/ubuntu questing/main armhf sphinx-rtd-theme-common all 3.0.2+dfsg-2 [1014 kB] 358s Get:30 http://ftpmaster.internal/ubuntu questing/universe armhf patroni-doc all 4.0.4-7 [526 kB] 358s Get:31 http://ftpmaster.internal/ubuntu questing/main armhf postgresql-client-17 armhf 17.4-1 [1285 kB] 358s Get:32 http://ftpmaster.internal/ubuntu questing/main armhf postgresql-17 armhf 17.4-1 [14.8 MB] 358s Get:33 http://ftpmaster.internal/ubuntu questing/main armhf postgresql all 17+274 [14.4 kB] 358s Get:34 http://ftpmaster.internal/ubuntu questing/universe armhf python3-parse all 1.20.2-1 [27.0 kB] 358s Get:35 http://ftpmaster.internal/ubuntu questing/universe armhf python3-parse-type all 0.6.4-2 [23.5 kB] 358s Get:36 http://ftpmaster.internal/ubuntu questing/universe armhf python3-behave all 1.2.6-6 [98.6 kB] 358s Get:37 http://ftpmaster.internal/ubuntu questing/universe armhf python3-coverage armhf 7.6.0+dfsg1-2build1 [152 kB] 359s Preconfiguring packages ... 359s /var/cache/debconf/tmp.ci/postgresql.config.O3C3kK: 12: pg_lsclusters: not found 359s Fetched 64.4 MB in 6s (11.3 MB/s) 359s Selecting previously unselected package fonts-lato. 359s (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 ... 63951 files and directories currently installed.) 359s Preparing to unpack .../00-fonts-lato_2.015-1_all.deb ... 359s Unpacking fonts-lato (2.015-1) ... 359s Selecting previously unselected package libjson-perl. 359s Preparing to unpack .../01-libjson-perl_4.10000-1_all.deb ... 359s Unpacking libjson-perl (4.10000-1) ... 359s Selecting previously unselected package postgresql-client-common. 359s Preparing to unpack .../02-postgresql-client-common_274_all.deb ... 359s Unpacking postgresql-client-common (274) ... 359s Selecting previously unselected package libio-pty-perl. 360s Preparing to unpack .../03-libio-pty-perl_1%3a1.20-1build3_armhf.deb ... 360s Unpacking libio-pty-perl (1:1.20-1build3) ... 360s Selecting previously unselected package libipc-run-perl. 360s Preparing to unpack .../04-libipc-run-perl_20231003.0-2_all.deb ... 360s Unpacking libipc-run-perl (20231003.0-2) ... 360s Selecting previously unselected package postgresql-common-dev. 360s Preparing to unpack .../05-postgresql-common-dev_274_all.deb ... 360s Unpacking postgresql-common-dev (274) ... 360s Selecting previously unselected package ssl-cert. 360s Preparing to unpack .../06-ssl-cert_1.1.3ubuntu1_all.deb ... 360s Unpacking ssl-cert (1.1.3ubuntu1) ... 360s Selecting previously unselected package postgresql-common. 360s Preparing to unpack .../07-postgresql-common_274_all.deb ... 360s Adding 'diversion of /usr/bin/pg_config to /usr/bin/pg_config.libpq-dev by postgresql-common' 360s Unpacking postgresql-common (274) ... 360s Selecting previously unselected package etcd-server. 360s Preparing to unpack .../08-etcd-server_3.5.16-4_armhf.deb ... 360s Unpacking etcd-server (3.5.16-4) ... 360s Selecting previously unselected package fonts-font-awesome. 360s Preparing to unpack .../09-fonts-font-awesome_5.0.10+really4.7.0~dfsg-4.1_all.deb ... 360s Unpacking fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 360s Selecting previously unselected package libjs-jquery. 360s Preparing to unpack .../10-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 360s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 360s Selecting previously unselected package libjs-underscore. 360s Preparing to unpack .../11-libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ... 360s Unpacking libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 360s Selecting previously unselected package libjs-sphinxdoc. 360s Preparing to unpack .../12-libjs-sphinxdoc_8.1.3-5_all.deb ... 360s Unpacking libjs-sphinxdoc (8.1.3-5) ... 360s Selecting previously unselected package libllvm20:armhf. 360s Preparing to unpack .../13-libllvm20_1%3a20.1.2-0ubuntu1_armhf.deb ... 360s Unpacking libllvm20:armhf (1:20.1.2-0ubuntu1) ... 361s Selecting previously unselected package libpq5:armhf. 361s Preparing to unpack .../14-libpq5_17.4-1_armhf.deb ... 361s Unpacking libpq5:armhf (17.4-1) ... 361s Selecting previously unselected package libtime-duration-perl. 361s Preparing to unpack .../15-libtime-duration-perl_1.21-2_all.deb ... 361s Unpacking libtime-duration-perl (1.21-2) ... 361s Selecting previously unselected package libtimedate-perl. 361s Preparing to unpack .../16-libtimedate-perl_2.3300-2_all.deb ... 361s Unpacking libtimedate-perl (2.3300-2) ... 361s Selecting previously unselected package libxslt1.1:armhf. 361s Preparing to unpack .../17-libxslt1.1_1.1.39-0exp1ubuntu4_armhf.deb ... 361s Unpacking libxslt1.1:armhf (1.1.39-0exp1ubuntu4) ... 361s Selecting previously unselected package moreutils. 361s Preparing to unpack .../18-moreutils_0.69-1_armhf.deb ... 361s Unpacking moreutils (0.69-1) ... 361s Selecting previously unselected package python3-click. 361s Preparing to unpack .../19-python3-click_8.2.0+0.really.8.1.8-1_all.deb ... 361s Unpacking python3-click (8.2.0+0.really.8.1.8-1) ... 362s Selecting previously unselected package python3-wcwidth. 362s Preparing to unpack .../20-python3-wcwidth_0.2.13+dfsg1-1_all.deb ... 362s Unpacking python3-wcwidth (0.2.13+dfsg1-1) ... 362s Selecting previously unselected package python3-prettytable. 362s Preparing to unpack .../21-python3-prettytable_3.12.0-1_all.deb ... 362s Unpacking python3-prettytable (3.12.0-1) ... 362s Selecting previously unselected package python3-psutil. 362s Preparing to unpack .../22-python3-psutil_7.0.0-2_armhf.deb ... 362s Unpacking python3-psutil (7.0.0-2) ... 362s Selecting previously unselected package python3-ydiff. 362s Preparing to unpack .../23-python3-ydiff_1.4.2-1_all.deb ... 362s Unpacking python3-ydiff (1.4.2-1) ... 362s Selecting previously unselected package python3-psycopg2. 362s Preparing to unpack .../24-python3-psycopg2_2.9.10-1build1_armhf.deb ... 362s Unpacking python3-psycopg2 (2.9.10-1build1) ... 362s Selecting previously unselected package python3-dnspython. 362s Preparing to unpack .../25-python3-dnspython_2.7.0-1ubuntu1_all.deb ... 362s Unpacking python3-dnspython (2.7.0-1ubuntu1) ... 362s Selecting previously unselected package python3-etcd. 362s Preparing to unpack .../26-python3-etcd_0.4.5-6_all.deb ... 362s Unpacking python3-etcd (0.4.5-6) ... 362s Selecting previously unselected package patroni. 362s Preparing to unpack .../27-patroni_4.0.4-7_all.deb ... 362s Unpacking patroni (4.0.4-7) ... 362s Selecting previously unselected package sphinx-rtd-theme-common. 362s Preparing to unpack .../28-sphinx-rtd-theme-common_3.0.2+dfsg-2_all.deb ... 362s Unpacking sphinx-rtd-theme-common (3.0.2+dfsg-2) ... 362s Selecting previously unselected package patroni-doc. 362s Preparing to unpack .../29-patroni-doc_4.0.4-7_all.deb ... 362s Unpacking patroni-doc (4.0.4-7) ... 362s Selecting previously unselected package postgresql-client-17. 362s Preparing to unpack .../30-postgresql-client-17_17.4-1_armhf.deb ... 362s Unpacking postgresql-client-17 (17.4-1) ... 362s Selecting previously unselected package postgresql-17. 362s Preparing to unpack .../31-postgresql-17_17.4-1_armhf.deb ... 362s Unpacking postgresql-17 (17.4-1) ... 363s Selecting previously unselected package postgresql. 363s Preparing to unpack .../32-postgresql_17+274_all.deb ... 363s Unpacking postgresql (17+274) ... 363s Selecting previously unselected package python3-parse. 363s Preparing to unpack .../33-python3-parse_1.20.2-1_all.deb ... 363s Unpacking python3-parse (1.20.2-1) ... 363s Selecting previously unselected package python3-parse-type. 363s Preparing to unpack .../34-python3-parse-type_0.6.4-2_all.deb ... 363s Unpacking python3-parse-type (0.6.4-2) ... 363s Selecting previously unselected package python3-behave. 363s Preparing to unpack .../35-python3-behave_1.2.6-6_all.deb ... 363s Unpacking python3-behave (1.2.6-6) ... 363s Selecting previously unselected package python3-coverage. 363s Preparing to unpack .../36-python3-coverage_7.6.0+dfsg1-2build1_armhf.deb ... 363s Unpacking python3-coverage (7.6.0+dfsg1-2build1) ... 363s Setting up postgresql-client-common (274) ... 363s Setting up fonts-lato (2.015-1) ... 363s Setting up libio-pty-perl (1:1.20-1build3) ... 363s Setting up python3-ydiff (1.4.2-1) ... 363s Setting up libpq5:armhf (17.4-1) ... 363s Setting up python3-coverage (7.6.0+dfsg1-2build1) ... 363s Setting up python3-click (8.2.0+0.really.8.1.8-1) ... 364s Setting up python3-psutil (7.0.0-2) ... 364s Setting up python3-wcwidth (0.2.13+dfsg1-1) ... 364s Setting up ssl-cert (1.1.3ubuntu1) ... 365s Created symlink '/etc/systemd/system/multi-user.target.wants/ssl-cert.service' → '/usr/lib/systemd/system/ssl-cert.service'. 365s Setting up libllvm20:armhf (1:20.1.2-0ubuntu1) ... 365s Setting up python3-psycopg2 (2.9.10-1build1) ... 365s Setting up libipc-run-perl (20231003.0-2) ... 365s Setting up libtime-duration-perl (1.21-2) ... 365s Setting up libtimedate-perl (2.3300-2) ... 365s Setting up python3-dnspython (2.7.0-1ubuntu1) ... 366s Setting up python3-parse (1.20.2-1) ... 366s Setting up libjson-perl (4.10000-1) ... 366s Setting up libxslt1.1:armhf (1.1.39-0exp1ubuntu4) ... 366s Setting up etcd-server (3.5.16-4) ... 366s info: Selecting UID from range 100 to 999 ... 366s 366s info: Selecting GID from range 100 to 999 ... 366s info: Adding system user `etcd' (UID 106) ... 366s info: Adding new group `etcd' (GID 110) ... 366s info: Adding new user `etcd' (UID 106) with group `etcd' ... 366s info: Creating home directory `/var/lib/etcd/' ... 367s Created symlink '/etc/systemd/system/etcd2.service' → '/usr/lib/systemd/system/etcd.service'. 367s Created symlink '/etc/systemd/system/multi-user.target.wants/etcd.service' → '/usr/lib/systemd/system/etcd.service'. 368s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 368s Setting up python3-prettytable (3.12.0-1) ... 368s Setting up fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 368s Setting up sphinx-rtd-theme-common (3.0.2+dfsg-2) ... 368s Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 368s Setting up postgresql-common-dev (274) ... 368s Setting up moreutils (0.69-1) ... 368s Setting up postgresql-client-17 (17.4-1) ... 368s 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 368s Setting up python3-etcd (0.4.5-6) ... 369s Setting up python3-parse-type (0.6.4-2) ... 369s Setting up postgresql-common (274) ... 369s Creating config file /etc/postgresql-common/createcluster.conf with new version 369s Building PostgreSQL dictionaries from installed myspell/hunspell packages... 369s Removing obsolete dictionary files: 370s Created symlink '/etc/systemd/system/multi-user.target.wants/postgresql.service' → '/usr/lib/systemd/system/postgresql.service'. 370s Setting up libjs-sphinxdoc (8.1.3-5) ... 370s Setting up python3-behave (1.2.6-6) ... 371s /usr/lib/python3/dist-packages/behave/formatter/ansi_escapes.py:57: SyntaxWarning: invalid escape sequence '\[' 371s _ANSI_ESCAPE_PATTERN = re.compile(u"\x1b\[\d+[mA]", re.UNICODE) 371s /usr/lib/python3/dist-packages/behave/matchers.py:284: SyntaxWarning: invalid escape sequence '\d' 371s @parse.with_pattern(r"\d+") 371s Setting up patroni (4.0.4-7) ... 371s Created symlink '/etc/systemd/system/multi-user.target.wants/patroni.service' → '/usr/lib/systemd/system/patroni.service'. 371s Setting up postgresql-17 (17.4-1) ... 373s Creating new PostgreSQL cluster 17/main ... 373s /usr/lib/postgresql/17/bin/initdb -D /var/lib/postgresql/17/main --auth-local peer --auth-host scram-sha-256 --no-instructions 373s The files belonging to this database system will be owned by user "postgres". 373s This user must also own the server process. 373s 373s The database cluster will be initialized with locale "C.UTF-8". 373s The default database encoding has accordingly been set to "UTF8". 373s The default text search configuration will be set to "english". 373s 373s Data page checksums are disabled. 373s 373s fixing permissions on existing directory /var/lib/postgresql/17/main ... ok 373s creating subdirectories ... ok 373s selecting dynamic shared memory implementation ... posix 373s selecting default "max_connections" ... 100 373s selecting default "shared_buffers" ... 128MB 373s selecting default time zone ... Etc/UTC 373s creating configuration files ... ok 373s running bootstrap script ... ok 374s performing post-bootstrap initialization ... ok 374s syncing data to disk ... ok 377s Setting up patroni-doc (4.0.4-7) ... 377s Setting up postgresql (17+274) ... 377s Processing triggers for man-db (2.13.0-1) ... 378s Processing triggers for libc-bin (2.41-6ubuntu1) ... 393s autopkgtest [21:33:40]: test acceptance-etcd3: debian/tests/acceptance etcd3 393s autopkgtest [21:33:40]: test acceptance-etcd3: [----------------------- 395s dpkg-architecture: warning: cannot determine CC system type, falling back to default (native compilation) 395s ++ ls -1r /usr/lib/postgresql/ 395s + for PG_VERSION in $(ls -1r /usr/lib/postgresql/) 395s + '[' 17 == 10 -o 17 == 11 ']' 395s + echo '### PostgreSQL 17 acceptance-etcd3 ###' 395s ### PostgreSQL 17 acceptance-etcd3 ### 395s + 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 May 02 21:33:43 Feature: basic replication # features/basic_replication.feature:1 396s May 02 21:33:43 We should check that the basic bootstrapping, replication and failover works. 396s May 02 21:33:43 Scenario: check replication of a single table # features/basic_replication.feature:4 396s May 02 21:33:43 Given I start postgres-0 # features/steps/basic_replication.py:20 400s May 02 21:33:47 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 401s May 02 21:33:48 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 401s May 02 21:33:48 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 401s May 02 21:33:48 Then I receive a response code 200 # features/steps/patroni_api.py:100 401s May 02 21:33:48 When I start postgres-1 # features/steps/basic_replication.py:20 406s May 02 21:33:53 And I configure and start postgres-2 with a tag replicatefrom postgres-0 # features/steps/cascading_replication.py:7 411s May 02 21:33:58 And "sync" key in DCS has leader=postgres-0 after 20 seconds # features/steps/cascading_replication.py:23 411s May 02 21:33:58 And I add the table foo to postgres-0 # features/steps/basic_replication.py:66 411s May 02 21:33:58 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 412s May 02 21:33:59 Then table foo is present on postgres-2 after 20 seconds # features/steps/basic_replication.py:105 412s May 02 21:33:59 412s May 02 21:33:59 Scenario: check restart of sync replica # features/basic_replication.feature:17 412s May 02 21:33:59 Given I shut down postgres-2 # features/steps/basic_replication.py:41 413s May 02 21:34:00 Then "sync" key in DCS has sync_standby=postgres-1 after 5 seconds # features/steps/cascading_replication.py:23 413s May 02 21:34:00 When I start postgres-2 # features/steps/basic_replication.py:20 416s May 02 21:34:03 And I shut down postgres-1 # features/steps/basic_replication.py:41 419s May 02 21:34:06 Then "sync" key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 419s May 02 21:34:06 When I start postgres-1 # features/steps/basic_replication.py:20 422s May 02 21:34:09 Then "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 422s May 02 21:34:09 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 422s May 02 21:34:09 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:144 422s May 02 21:34:09 422s May 02 21:34:09 Scenario: check stuck sync replica # features/basic_replication.feature:28 422s May 02 21:34:09 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 422s May 02 21:34:09 Then I receive a response code 200 # features/steps/patroni_api.py:100 422s May 02 21:34:09 And I create table on postgres-0 # features/steps/basic_replication.py:85 422s May 02 21:34:09 And table mytest is present on postgres-1 after 2 seconds # features/steps/basic_replication.py:105 423s May 02 21:34:10 And table mytest is present on postgres-2 after 2 seconds # features/steps/basic_replication.py:105 423s May 02 21:34:10 When I pause wal replay on postgres-2 # features/steps/basic_replication.py:76 423s May 02 21:34:10 And I load data on postgres-0 # features/steps/basic_replication.py:96 424s May 02 21:34:11 Then "sync" key in DCS has sync_standby=postgres-1 after 15 seconds # features/steps/cascading_replication.py:23 427s May 02 21:34:14 And I resume wal replay on postgres-2 # features/steps/basic_replication.py:76 427s May 02 21:34:14 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 427s May 02 21:34:14 And Status code on GET http://127.0.0.1:8010/async is 200 after 3 seconds # features/steps/patroni_api.py:144 427s May 02 21:34:14 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 427s May 02 21:34:14 Then I receive a response code 200 # features/steps/patroni_api.py:100 427s May 02 21:34:14 And I drop table on postgres-0 # features/steps/basic_replication.py:85 427s May 02 21:34:14 427s May 02 21:34:14 Scenario: check multi sync replication # features/basic_replication.feature:44 427s May 02 21:34:14 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 427s May 02 21:34:14 Then I receive a response code 200 # features/steps/patroni_api.py:100 427s May 02 21:34:14 Then "sync" key in DCS has sync_standby=postgres-1,postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 431s May 02 21:34:18 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 431s May 02 21:34:18 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 431s May 02 21:34:18 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 432s May 02 21:34:19 Then I receive a response code 200 # features/steps/patroni_api.py:100 432s May 02 21:34:19 And I shut down postgres-1 # features/steps/basic_replication.py:41 435s May 02 21:34:22 Then "sync" key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 436s May 02 21:34:23 When I start postgres-1 # features/steps/basic_replication.py:20 439s May 02 21:34:26 Then "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 439s May 02 21:34:26 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 439s May 02 21:34:26 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:144 439s May 02 21:34:26 439s May 02 21:34:26 Scenario: check the basic failover in synchronous mode # features/basic_replication.feature:59 439s May 02 21:34:26 Given I run patronictl.py pause batman # features/steps/patroni_api.py:88 440s May 02 21:34:27 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 440s May 02 21:34:27 When I sleep for 2 seconds # features/steps/patroni_api.py:41 442s May 02 21:34:29 And I shut down postgres-0 # features/steps/basic_replication.py:41 443s May 02 21:34:30 And I run patronictl.py resume batman # features/steps/patroni_api.py:88 444s May 02 21:34:31 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 444s May 02 21:34:31 And postgres-2 role is the primary after 24 seconds # features/steps/basic_replication.py:117 463s May 02 21:34:50 And Response on GET http://127.0.0.1:8010/history contains recovery after 10 seconds # features/steps/patroni_api.py:158 467s May 02 21:34:54 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 467s May 02 21:34:54 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 468s May 02 21:34:55 Then I receive a response code 200 # features/steps/patroni_api.py:100 468s May 02 21:34:55 When I add the table bar to postgres-2 # features/steps/basic_replication.py:66 468s May 02 21:34:55 Then table bar is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 468s May 02 21:34:55 And Response on GET http://127.0.0.1:8010/config contains master_start_timeout after 10 seconds # features/steps/patroni_api.py:158 468s May 02 21:34:55 468s May 02 21:34:55 Scenario: check rejoin of the former primary with pg_rewind # features/basic_replication.feature:75 468s May 02 21:34:55 Given I add the table splitbrain to postgres-0 # features/steps/basic_replication.py:66 468s May 02 21:34:55 And I start postgres-0 # features/steps/basic_replication.py:20 468s May 02 21:34:55 Then postgres-0 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 472s May 02 21:34:59 When I add the table buz to postgres-2 # features/steps/basic_replication.py:66 472s May 02 21:34:59 Then table buz is present on postgres-0 after 20 seconds # features/steps/basic_replication.py:105 476s May 02 21:35:03 476s May 02 21:35:03 @reject-duplicate-name 476s May 02 21:35:03 Scenario: check graceful rejection when two nodes have the same name # features/basic_replication.feature:83 476s May 02 21:35:03 Given I start duplicate postgres-0 on port 8011 # features/steps/basic_replication.py:25 478s May 02 21:35:05 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 482s May 02 21:35:09 482s May 02 21:35:09 Feature: cascading replication # features/cascading_replication.feature:1 482s May 02 21:35:09 We should check that patroni can do base backup and streaming from the replica 482s May 02 21:35:09 Scenario: check a base backup and streaming replication from a replica # features/cascading_replication.feature:4 482s May 02 21:35:09 Given I start postgres-0 # features/steps/basic_replication.py:20 486s May 02 21:35:13 And postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 487s May 02 21:35:14 And I configure and start postgres-1 with a tag clonefrom true # features/steps/cascading_replication.py:7 491s May 02 21:35:18 And replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 492s May 02 21:35:19 And I create label with "postgres-0" in postgres-0 data directory # features/steps/cascading_replication.py:18 492s May 02 21:35:19 And I create label with "postgres-1" in postgres-1 data directory # features/steps/cascading_replication.py:18 492s May 02 21:35:19 And "members/postgres-1" key in DCS has state=running after 12 seconds # features/steps/cascading_replication.py:23 492s May 02 21:35:19 And I configure and start postgres-2 with a tag replicatefrom postgres-1 # features/steps/cascading_replication.py:7 496s May 02 21:35:23 Then replication works from postgres-0 to postgres-2 after 30 seconds # features/steps/basic_replication.py:124 497s May 02 21:35:24 And there is a label with "postgres-1" in postgres-2 data directory # features/steps/cascading_replication.py:12 503s May 02 21:35:30 503s May 02 21:35:30 Feature: citus # features/citus.feature:1 503s May 02 21:35:30 We should check that coordinator discovers and registers workers and clients don't have errors when worker cluster switches over 503s May 02 21:35:30 Scenario: check that worker cluster is registered in the coordinator # features/citus.feature:4 503s May 02 21:35:30 Given I start postgres-0 in citus group 0 # None 503s May 02 21:35:30 And I start postgres-2 in citus group 1 # None 503s May 02 21:35:30 Then postgres-0 is a leader in a group 0 after 10 seconds # None 503s May 02 21:35:30 And postgres-2 is a leader in a group 1 after 10 seconds # None 503s May 02 21:35:30 When I start postgres-1 in citus group 0 # None 503s May 02 21:35:30 And I start postgres-3 in citus group 1 # None 503s May 02 21:35:30 Then replication works from postgres-0 to postgres-1 after 15 seconds # None 503s May 02 21:35:30 Then replication works from postgres-2 to postgres-3 after 15 seconds # None 503s May 02 21:35:30 And postgres-0 is registered in the postgres-0 as the primary in group 0 after 5 seconds # None 503s May 02 21:35:30 And postgres-1 is registered in the postgres-0 as the secondary in group 0 after 5 seconds # None 503s May 02 21:35:30 And postgres-2 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 503s May 02 21:35:30 And postgres-3 is registered in the postgres-0 as the secondary in group 1 after 5 seconds # None 503s May 02 21:35:30 503s May 02 21:35:30 Scenario: coordinator failover updates pg_dist_node # features/citus.feature:18 503s May 02 21:35:30 Given I run patronictl.py failover batman --group 0 --candidate postgres-1 --force # None 503s May 02 21:35:30 Then postgres-1 role is the primary after 10 seconds # None 503s May 02 21:35:30 And "members/postgres-0" key in a group 0 in DCS has state=running after 15 seconds # None 503s May 02 21:35:30 And replication works from postgres-1 to postgres-0 after 15 seconds # None 503s May 02 21:35:30 And postgres-1 is registered in the postgres-2 as the primary in group 0 after 5 seconds # None 503s May 02 21:35:30 And postgres-0 is registered in the postgres-2 as the secondary in group 0 after 15 seconds # None 503s May 02 21:35:30 And "sync" key in a group 0 in DCS has sync_standby=postgres-0 after 15 seconds # None 503s May 02 21:35:30 When I run patronictl.py switchover batman --group 0 --candidate postgres-0 --force # None 503s May 02 21:35:30 Then postgres-0 role is the primary after 10 seconds # None 503s May 02 21:35:30 And replication works from postgres-0 to postgres-1 after 15 seconds # None 503s May 02 21:35:30 And postgres-0 is registered in the postgres-2 as the primary in group 0 after 5 seconds # None 503s May 02 21:35:30 And postgres-1 is registered in the postgres-2 as the secondary in group 0 after 15 seconds # None 503s May 02 21:35:30 And "sync" key in a group 0 in DCS has sync_standby=postgres-1 after 15 seconds # None 503s May 02 21:35:30 503s May 02 21:35:30 Scenario: worker switchover doesn't break client queries on the coordinator # features/citus.feature:33 503s May 02 21:35:30 Given I create a distributed table on postgres-0 # None 503s May 02 21:35:30 And I start a thread inserting data on postgres-0 # None 503s May 02 21:35:30 When I run patronictl.py switchover batman --group 1 --force # None 503s May 02 21:35:30 Then I receive a response returncode 0 # None 503s May 02 21:35:30 And postgres-3 role is the primary after 10 seconds # None 503s May 02 21:35:30 And "members/postgres-2" key in a group 1 in DCS has state=running after 15 seconds # None 503s May 02 21:35:30 And replication works from postgres-3 to postgres-2 after 15 seconds # None 503s May 02 21:35:30 And postgres-3 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 503s May 02 21:35:30 And postgres-2 is registered in the postgres-0 as the secondary in group 1 after 15 seconds # None 503s May 02 21:35:30 And "sync" key in a group 1 in DCS has sync_standby=postgres-2 after 15 seconds # None 503s May 02 21:35:30 And a thread is still alive # None 503s May 02 21:35:30 When I run patronictl.py switchover batman --group 1 --force # None 503s May 02 21:35:30 Then I receive a response returncode 0 # None 503s May 02 21:35:30 And postgres-2 role is the primary after 10 seconds # None 503s May 02 21:35:30 And replication works from postgres-2 to postgres-3 after 15 seconds # None 503s May 02 21:35:30 And postgres-2 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 503s May 02 21:35:30 And postgres-3 is registered in the postgres-0 as the secondary in group 1 after 15 seconds # None 503s May 02 21:35:30 And "sync" key in a group 1 in DCS has sync_standby=postgres-3 after 15 seconds # None 503s May 02 21:35:30 And a thread is still alive # None 503s May 02 21:35:30 When I stop a thread # None 503s May 02 21:35:30 Then a distributed table on postgres-0 has expected rows # None 503s May 02 21:35:30 503s May 02 21:35:30 Scenario: worker primary restart doesn't break client queries on the coordinator # features/citus.feature:56 503s May 02 21:35:30 Given I cleanup a distributed table on postgres-0 # None 503s May 02 21:35:30 And I start a thread inserting data on postgres-0 # None 503s May 02 21:35:30 When I run patronictl.py restart batman postgres-2 --group 1 --force # None 503s May 02 21:35:30 Then I receive a response returncode 0 # None 503s May 02 21:35:30 And postgres-2 role is the primary after 10 seconds # None 503s May 02 21:35:30 And replication works from postgres-2 to postgres-3 after 15 seconds # None 503s May 02 21:35:30 And postgres-2 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 503s May 02 21:35:30 And postgres-3 is registered in the postgres-0 as the secondary in group 1 after 15 seconds # None 503s May 02 21:35:30 And a thread is still alive # None 503s May 02 21:35:30 When I stop a thread # None 503s May 02 21:35:30 Then a distributed table on postgres-0 has expected rows # None 503s SKIP FEATURE citus: Citus extension isn't available 503s SKIP Scenario check that worker cluster is registered in the coordinator: Citus extension isn't available 503s SKIP Scenario coordinator failover updates pg_dist_node: Citus extension isn't available 503s SKIP Scenario worker switchover doesn't break client queries on the coordinator: Citus extension isn't available 503s SKIP Scenario worker primary restart doesn't break client queries on the coordinator: Citus extension isn't available 503s 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 504s May 02 21:35:30 504s May 02 21:35:30 Scenario: check that in-flight transaction is rolled back after timeout when other workers need to change pg_dist_node # features/citus.feature:69 504s May 02 21:35:30 Given I start postgres-4 in citus group 2 # None 504s May 02 21:35:30 Then postgres-4 is a leader in a group 2 after 10 seconds # None 504s May 02 21:35:30 And "members/postgres-4" key in a group 2 in DCS has role=primary after 3 seconds # None 504s May 02 21:35:30 When I run patronictl.py edit-config batman --group 2 -s ttl=20 --force # None 504s May 02 21:35:30 Then I receive a response returncode 0 # None 504s May 02 21:35:30 And I receive a response output "+ttl: 20" # None 504s May 02 21:35:30 Then postgres-4 is registered in the postgres-2 as the primary in group 2 after 5 seconds # None 504s May 02 21:35:30 When I shut down postgres-4 # None 504s May 02 21:35:30 Then there is a transaction in progress on postgres-0 changing pg_dist_node after 5 seconds # None 504s May 02 21:35:30 When I run patronictl.py restart batman postgres-2 --group 1 --force # None 504s May 02 21:35:30 Then a transaction finishes in 20 seconds # None 504s May 02 21:35:30 504s May 02 21:35:30 Feature: custom bootstrap # features/custom_bootstrap.feature:1 504s May 02 21:35:30 We should check that patroni can bootstrap a new cluster from a backup 504s May 02 21:35:30 Scenario: clone existing cluster using pg_basebackup # features/custom_bootstrap.feature:4 504s May 02 21:35:30 Given I start postgres-0 # features/steps/basic_replication.py:20 508s May 02 21:35:34 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 509s May 02 21:35:35 When I add the table foo to postgres-0 # features/steps/basic_replication.py:66 509s May 02 21:35:36 And I start postgres-1 in a cluster batman1 as a clone of postgres-0 # features/steps/custom_bootstrap.py:6 514s May 02 21:35:41 Then postgres-1 is a leader of batman1 after 10 seconds # features/steps/custom_bootstrap.py:16 515s May 02 21:35:42 Then table foo is present on postgres-1 after 10 seconds # features/steps/basic_replication.py:105 515s May 02 21:35:42 515s May 02 21:35:42 Scenario: make a backup and do a restore into a new cluster # features/custom_bootstrap.feature:12 515s May 02 21:35:42 Given I add the table bar to postgres-1 # features/steps/basic_replication.py:66 515s May 02 21:35:42 And I do a backup of postgres-1 # features/steps/custom_bootstrap.py:25 516s May 02 21:35:43 When I start postgres-2 in a cluster batman2 from backup # features/steps/custom_bootstrap.py:11 522s May 02 21:35:49 Then postgres-2 is a leader of batman2 after 30 seconds # features/steps/custom_bootstrap.py:16 522s May 02 21:35:49 And table bar is present on postgres-2 after 10 seconds # features/steps/basic_replication.py:105 529s May 02 21:35:56 529s May 02 21:35:56 Feature: dcs failsafe mode # features/dcs_failsafe_mode.feature:1 529s May 02 21:35:56 We should check the basic dcs failsafe mode functioning 529s May 02 21:35:56 Scenario: check failsafe mode can be successfully enabled # features/dcs_failsafe_mode.feature:4 529s May 02 21:35:56 Given I start postgres-0 # features/steps/basic_replication.py:20 533s May 02 21:36:00 And postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 534s May 02 21:36:01 Then "config" key in DCS has ttl=30 after 10 seconds # features/steps/cascading_replication.py:23 534s May 02 21:36: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 534s May 02 21:36:01 Then I receive a response code 200 # features/steps/patroni_api.py:100 534s May 02 21:36:01 And Response on GET http://127.0.0.1:8008/failsafe contains postgres-0 after 10 seconds # features/steps/patroni_api.py:158 535s May 02 21:36:02 When I issue a GET request to http://127.0.0.1:8008/failsafe # features/steps/patroni_api.py:63 535s May 02 21:36:02 Then I receive a response code 200 # features/steps/patroni_api.py:100 535s May 02 21:36:02 And I receive a response postgres-0 http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:100 535s May 02 21:36:02 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 535s May 02 21:36:02 Then I receive a response code 200 # features/steps/patroni_api.py:100 535s May 02 21:36:02 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 535s SKIP Scenario check one-node cluster is functioning while DCS is down: it is not possible to control state of etcd3 from tests 535s 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 535s May 02 21:36:02 Then I receive a response code 200 # features/steps/patroni_api.py:100 535s May 02 21:36:02 535s May 02 21:36:02 @dcs-failsafe 535s May 02 21:36:02 Scenario: check one-node cluster is functioning while DCS is down # features/dcs_failsafe_mode.feature:20 535s May 02 21:36:02 Given DCS is down # None 535s May 02 21:36:02 Then Response on GET http://127.0.0.1:8008/primary contains failsafe_mode_is_active after 12 seconds # None 535s May 02 21:36:02 And postgres-0 role is the primary after 10 seconds # None 535s May 02 21:36:02 535s May 02 21:36:02 @dcs-failsafe 535s May 02 21:36:02 Scenario: check new replica isn't promoted when leader is down and DCS is up # features/dcs_failsafe_mode.feature:26 535s May 02 21:36:02 Given DCS is up # None 535s May 02 21:36:02 When I do a backup of postgres-0 # None 535s May 02 21:36:02 And I shut down postgres-0 # None 535s May 02 21:36:02 When I start postgres-1 in a cluster batman from backup with no_leader # None 535s May 02 21:36:02 Then postgres-1 role is the replica after 12 seconds # None 535s May 02 21:36:02 535s May 02 21:36:02 Scenario: check leader and replica are both in /failsafe key after leader is back # features/dcs_failsafe_mode.feature:33 535s May 02 21:36:02 Given I start postgres-0 # features/steps/basic_replication.py:20 535s May 02 21:36:02 And I start postgres-1 # features/steps/basic_replication.py:20 539s May 02 21:36:06 Then "members/postgres-0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 539s May 02 21:36:06 And "members/postgres-1" key in DCS has state=running after 2 seconds # features/steps/cascading_replication.py:23 540s May 02 21:36:07 And Response on GET http://127.0.0.1:8009/failsafe contains postgres-1 after 10 seconds # features/steps/patroni_api.py:158 540s May 02 21:36:07 When I issue a GET request to http://127.0.0.1:8009/failsafe # features/steps/patroni_api.py:63 540s SKIP Scenario check leader and replica are functioning while DCS is down: it is not possible to control state of etcd3 from tests 540s 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 540s 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 540s SKIP Scenario scale to three-node cluster: it is not possible to control state of etcd3 from tests 540s SKIP Scenario make sure permanent slots exist on replicas: it is not possible to control state of etcd3 from tests 540s SKIP Scenario check three-node cluster is functioning while DCS is down: it is not possible to control state of etcd3 from tests 540s 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 540s May 02 21:36:07 Then I receive a response code 200 # features/steps/patroni_api.py:100 540s May 02 21:36:07 And I receive a response postgres-0 http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:100 540s May 02 21:36:07 And I receive a response postgres-1 http://127.0.0.1:8009/patroni # features/steps/patroni_api.py:100 540s May 02 21:36:07 540s May 02 21:36:07 @dcs-failsafe @slot-advance 540s May 02 21:36:07 Scenario: check leader and replica are functioning while DCS is down # features/dcs_failsafe_mode.feature:46 540s May 02 21:36:07 Given I get all changes from physical slot dcs_slot_1 on postgres-0 # None 540s May 02 21:36:07 Then physical slot dcs_slot_1 is in sync between postgres-0 and postgres-1 after 10 seconds # None 540s May 02 21:36:07 And logical slot dcs_slot_0 is in sync between postgres-0 and postgres-1 after 10 seconds # None 540s May 02 21:36:07 And DCS is down # None 540s May 02 21:36:07 Then Response on GET http://127.0.0.1:8008/primary contains failsafe_mode_is_active after 12 seconds # None 540s May 02 21:36:07 Then postgres-0 role is the primary after 10 seconds # None 540s May 02 21:36:07 And postgres-1 role is the replica after 2 seconds # None 540s May 02 21:36:07 And replication works from postgres-0 to postgres-1 after 10 seconds # None 540s May 02 21:36:07 When I get all changes from logical slot dcs_slot_0 on postgres-0 # None 540s May 02 21:36:07 And I get all changes from physical slot dcs_slot_1 on postgres-0 # None 540s May 02 21:36:07 Then logical slot dcs_slot_0 is in sync between postgres-0 and postgres-1 after 20 seconds # None 540s May 02 21:36:07 And physical slot dcs_slot_1 is in sync between postgres-0 and postgres-1 after 10 seconds # None 540s May 02 21:36:07 540s May 02 21:36:07 @dcs-failsafe 540s May 02 21:36:07 Scenario: check primary is demoted when one replica is shut down and DCS is down # features/dcs_failsafe_mode.feature:61 540s May 02 21:36:07 Given DCS is down # None 540s May 02 21:36:07 And I kill postgres-1 # None 540s May 02 21:36:07 And I kill postmaster on postgres-1 # None 540s May 02 21:36:07 Then postgres-0 role is the replica after 12 seconds # None 540s May 02 21:36:07 540s May 02 21:36:07 @dcs-failsafe 540s May 02 21:36:07 Scenario: check known replica is promoted when leader is down and DCS is up # features/dcs_failsafe_mode.feature:68 540s May 02 21:36:07 Given I kill postgres-0 # None 540s May 02 21:36:07 And I shut down postmaster on postgres-0 # None 540s May 02 21:36:07 And DCS is up # None 540s May 02 21:36:07 When I start postgres-1 # None 540s May 02 21:36:07 Then "members/postgres-1" key in DCS has state=running after 10 seconds # None 540s May 02 21:36:07 And postgres-1 role is the primary after 25 seconds # None 540s May 02 21:36:07 540s May 02 21:36:07 @dcs-failsafe 540s May 02 21:36:07 Scenario: scale to three-node cluster # features/dcs_failsafe_mode.feature:77 540s May 02 21:36:07 Given I start postgres-0 # None 540s May 02 21:36:07 And I configure and start postgres-2 with a tag replicatefrom postgres-0 # None 540s May 02 21:36:07 Then "members/postgres-2" key in DCS has state=running after 10 seconds # None 540s May 02 21:36:07 And "members/postgres-0" key in DCS has state=running after 20 seconds # None 540s May 02 21:36:07 And Response on GET http://127.0.0.1:8008/failsafe contains postgres-2 after 10 seconds # None 540s May 02 21:36:07 And replication works from postgres-1 to postgres-0 after 10 seconds # None 540s May 02 21:36:07 And replication works from postgres-1 to postgres-2 after 10 seconds # None 540s May 02 21:36:07 540s May 02 21:36:07 @dcs-failsafe @slot-advance 540s May 02 21:36:07 Scenario: make sure permanent slots exist on replicas # features/dcs_failsafe_mode.feature:88 540s May 02 21:36:07 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 540s May 02 21:36:07 Then logical slot dcs_slot_2 is in sync between postgres-1 and postgres-0 after 20 seconds # None 540s May 02 21:36:07 And logical slot dcs_slot_2 is in sync between postgres-1 and postgres-2 after 20 seconds # None 540s May 02 21:36:07 When I get all changes from physical slot dcs_slot_1 on postgres-1 # None 540s May 02 21:36:07 Then physical slot dcs_slot_1 is in sync between postgres-1 and postgres-0 after 10 seconds # None 540s May 02 21:36:07 And physical slot dcs_slot_1 is in sync between postgres-1 and postgres-2 after 10 seconds # None 540s May 02 21:36:07 And physical slot postgres_0 is in sync between postgres-1 and postgres-2 after 10 seconds # None 540s May 02 21:36:07 And physical slot postgres_2 is in sync between postgres-0 and postgres-1 after 10 seconds # None 540s May 02 21:36:07 540s May 02 21:36:07 @dcs-failsafe 540s May 02 21:36:07 Scenario: check three-node cluster is functioning while DCS is down # features/dcs_failsafe_mode.feature:99 540s May 02 21:36:07 Given DCS is down # None 540s May 02 21:36:07 Then Response on GET http://127.0.0.1:8009/primary contains failsafe_mode_is_active after 12 seconds # None 540s May 02 21:36:07 Then postgres-1 role is the primary after 10 seconds # None 540s May 02 21:36:07 And postgres-0 role is the replica after 2 seconds # None 540s May 02 21:36:07 And postgres-2 role is the replica after 2 seconds # None 544s May 02 21:36:11 544s May 02 21:36:11 @dcs-failsafe @slot-advance 544s May 02 21:36:11 Scenario: check that permanent slots are in sync between nodes while DCS is down # features/dcs_failsafe_mode.feature:108 544s May 02 21:36:11 Given replication works from postgres-1 to postgres-0 after 10 seconds # None 544s May 02 21:36:11 And replication works from postgres-1 to postgres-2 after 10 seconds # None 544s May 02 21:36:11 When I get all changes from logical slot dcs_slot_2 on postgres-1 # None 544s May 02 21:36:11 And I get all changes from physical slot dcs_slot_1 on postgres-1 # None 544s May 02 21:36:11 Then logical slot dcs_slot_2 is in sync between postgres-1 and postgres-0 after 20 seconds # None 544s May 02 21:36:11 And logical slot dcs_slot_2 is in sync between postgres-1 and postgres-2 after 20 seconds # None 544s May 02 21:36:11 And physical slot dcs_slot_1 is in sync between postgres-1 and postgres-0 after 10 seconds # None 544s May 02 21:36:11 And physical slot dcs_slot_1 is in sync between postgres-1 and postgres-2 after 10 seconds # None 544s May 02 21:36:11 And physical slot postgres_0 is in sync between postgres-1 and postgres-2 after 10 seconds # None 544s May 02 21:36:11 And physical slot postgres_2 is in sync between postgres-0 and postgres-1 after 10 seconds # None 544s May 02 21:36:11 544s May 02 21:36:11 Feature: ignored slots # features/ignored_slots.feature:1 544s May 02 21:36:11 544s May 02 21:36:11 Scenario: check ignored slots aren't removed on failover/switchover # features/ignored_slots.feature:2 544s May 02 21:36:11 Given I start postgres-1 # features/steps/basic_replication.py:20 549s May 02 21:36:16 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 549s May 02 21:36:16 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 549s May 02 21:36:16 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 549s May 02 21:36:16 Then I receive a response code 200 # features/steps/patroni_api.py:100 549s May 02 21:36:16 And Response on GET http://127.0.0.1:8009/config contains ignore_slots after 10 seconds # features/steps/patroni_api.py:158 550s May 02 21:36:16 When I shut down postgres-1 # features/steps/basic_replication.py:41 551s May 02 21:36:18 And I start postgres-1 # features/steps/basic_replication.py:20 555s May 02 21:36:22 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 555s May 02 21:36:22 And "members/postgres-1" key in DCS has role=primary after 10 seconds # features/steps/cascading_replication.py:23 557s May 02 21:36:24 And postgres-1 role is the primary after 20 seconds # features/steps/basic_replication.py:117 557s May 02 21:36:24 When I create a logical replication slot unmanaged_slot_0 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 557s May 02 21:36:24 And I create a logical replication slot unmanaged_slot_1 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 557s May 02 21:36:24 And I create a logical replication slot unmanaged_slot_2 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 557s May 02 21:36:24 And I create a logical replication slot unmanaged_slot_3 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 557s May 02 21:36:24 And I create a logical replication slot dummy_slot on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 557s May 02 21:36:24 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 557s May 02 21:36:24 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 557s May 02 21:36:24 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 557s May 02 21:36:24 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 557s May 02 21:36:24 When I start postgres-0 # features/steps/basic_replication.py:20 561s May 02 21:36:28 Then "members/postgres-0" key in DCS has role=replica after 10 seconds # features/steps/cascading_replication.py:23 562s May 02 21:36:29 And postgres-0 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 562s May 02 21:36:29 And replication works from postgres-1 to postgres-0 after 20 seconds # features/steps/basic_replication.py:124 563s May 02 21:36:30 When I shut down postgres-1 # features/steps/basic_replication.py:41 566s May 02 21:36:33 Then "members/postgres-0" key in DCS has role=primary after 10 seconds # features/steps/cascading_replication.py:23 567s May 02 21:36:34 When I start postgres-1 # features/steps/basic_replication.py:20 570s May 02 21:36:37 Then postgres-1 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 570s May 02 21:36:37 And "members/postgres-1" key in DCS has role=replica after 10 seconds # features/steps/cascading_replication.py:23 570s May 02 21:36:37 And I sleep for 2 seconds # features/steps/patroni_api.py:41 572s May 02 21:36:39 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 572s May 02 21:36:39 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 572s May 02 21:36:39 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 572s May 02 21:36:39 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 572s May 02 21:36:39 And postgres-1 does not have a replication slot named dummy_slot # features/steps/slots.py:41 572s May 02 21:36:39 When I shut down postgres-0 # features/steps/basic_replication.py:41 574s May 02 21:36:41 Then "members/postgres-1" key in DCS has role=primary after 10 seconds # features/steps/cascading_replication.py:23 575s May 02 21:36:42 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 575s May 02 21:36:42 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 575s May 02 21:36:42 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 575s May 02 21:36:42 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 577s May 02 21:36:44 577s May 02 21:36:44 Feature: nostream node # features/nostream_node.feature:1 577s May 02 21:36:44 577s May 02 21:36:44 Scenario: check nostream node is recovering from archive # features/nostream_node.feature:3 577s May 02 21:36:44 When I start postgres-0 # features/steps/basic_replication.py:20 581s May 02 21:36:48 And I configure and start postgres-1 with a tag nostream true # features/steps/cascading_replication.py:7 585s May 02 21:36:52 Then "members/postgres-1" key in DCS has replication_state=in archive recovery after 10 seconds # features/steps/cascading_replication.py:23 586s May 02 21:36:53 And replication works from postgres-0 to postgres-1 after 30 seconds # features/steps/basic_replication.py:124 592s May 02 21:36:58 592s May 02 21:36:58 @slot-advance 592s May 02 21:36:58 Scenario: check permanent logical replication slots are not copied # features/nostream_node.feature:10 592s May 02 21:36:58 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 592s May 02 21:36:58 Then I receive a response code 200 # features/steps/patroni_api.py:100 592s May 02 21:36:58 When I run patronictl.py restart batman postgres-0 --force # features/steps/patroni_api.py:88 593s May 02 21:37:00 Then postgres-0 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:20 594s May 02 21:37:01 When I configure and start postgres-2 with a tag replicatefrom postgres-1 # features/steps/cascading_replication.py:7 598s May 02 21:37:05 Then "members/postgres-2" key in DCS has replication_state=streaming after 10 seconds # features/steps/cascading_replication.py:23 599s May 02 21:37:06 And postgres-1 does not have a replication slot named test_logical # features/steps/slots.py:41 599s May 02 21:37:06 And postgres-2 does not have a replication slot named test_logical # features/steps/slots.py:41 599s May 02 21:37:06 599s May 02 21:37:06 @slot-advance 599s May 02 21:37:06 Scenario: check that slots are written to the /status key # features/nostream_node.feature:21 599s May 02 21:37:06 Given "status" key in DCS has postgres_0 in slots # features/steps/slots.py:118 599s May 02 21:37:06 And "status" key in DCS has postgres_2 in slots # features/steps/slots.py:118 599s May 02 21:37:06 And "status" key in DCS has test_logical in slots # features/steps/slots.py:118 599s May 02 21:37:06 And "status" key in DCS has test_logical in slots # features/steps/slots.py:118 599s May 02 21:37:06 And "status" key in DCS does not have postgres_1 in slots # features/steps/slots.py:124 604s May 02 21:37:11 604s May 02 21:37:11 Feature: patroni api # features/patroni_api.feature:1 604s May 02 21:37:11 We should check that patroni correctly responds to valid and not-valid API requests. 604s May 02 21:37:11 Scenario: check API requests on a stand-alone server # features/patroni_api.feature:4 604s May 02 21:37:11 Given I start postgres-0 # features/steps/basic_replication.py:20 609s May 02 21:37:16 And postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 609s May 02 21:37:16 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:63 609s May 02 21:37:16 Then I receive a response code 200 # features/steps/patroni_api.py:100 609s May 02 21:37:16 And I receive a response state running # features/steps/patroni_api.py:100 609s May 02 21:37:16 And I receive a response role primary # features/steps/patroni_api.py:100 609s May 02 21:37:16 When I issue a GET request to http://127.0.0.1:8008/standby_leader # features/steps/patroni_api.py:63 609s May 02 21:37:16 Then I receive a response code 503 # features/steps/patroni_api.py:100 609s May 02 21:37:16 When I issue a GET request to http://127.0.0.1:8008/health # features/steps/patroni_api.py:63 610s May 02 21:37:17 Then I receive a response code 200 # features/steps/patroni_api.py:100 610s May 02 21:37:17 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:63 610s May 02 21:37:17 Then I receive a response code 503 # features/steps/patroni_api.py:100 610s May 02 21:37:17 When I issue a POST request to http://127.0.0.1:8008/reinitialize with {"force": true} # features/steps/patroni_api.py:73 610s May 02 21:37:17 Then I receive a response code 503 # features/steps/patroni_api.py:100 610s May 02 21:37:17 And I receive a response text I am the leader, can not reinitialize # features/steps/patroni_api.py:100 610s May 02 21:37:17 When I run patronictl.py switchover batman --primary postgres-0 --force # features/steps/patroni_api.py:88 611s May 02 21:37:18 Then I receive a response returncode 1 # features/steps/patroni_api.py:100 611s May 02 21:37:18 And I receive a response output "Error: No candidates found to switchover to" # features/steps/patroni_api.py:100 611s May 02 21:37:18 When I issue a POST request to http://127.0.0.1:8008/switchover with {"leader": "postgres-0"} # features/steps/patroni_api.py:73 611s May 02 21:37:18 Then I receive a response code 412 # features/steps/patroni_api.py:100 611s May 02 21:37:18 And I receive a response text switchover is not possible: cluster does not have members except leader # features/steps/patroni_api.py:100 611s May 02 21:37:18 When I issue an empty POST request to http://127.0.0.1:8008/failover # features/steps/patroni_api.py:68 611s May 02 21:37:18 Then I receive a response code 400 # features/steps/patroni_api.py:100 611s May 02 21:37:18 When I issue a POST request to http://127.0.0.1:8008/failover with {"foo": "bar"} # features/steps/patroni_api.py:73 611s May 02 21:37:18 Then I receive a response code 400 # features/steps/patroni_api.py:100 611s May 02 21:37:18 And I receive a response text "Failover could be performed only to a specific candidate" # features/steps/patroni_api.py:100 611s May 02 21:37:18 611s May 02 21:37:18 Scenario: check local configuration reload # features/patroni_api.feature:32 611s May 02 21:37:18 Given I add tag new_tag new_value to postgres-0 config # features/steps/patroni_api.py:139 611s May 02 21:37:18 And I issue an empty POST request to http://127.0.0.1:8008/reload # features/steps/patroni_api.py:68 611s May 02 21:37:18 Then I receive a response code 202 # features/steps/patroni_api.py:100 611s May 02 21:37:18 611s May 02 21:37:18 Scenario: check dynamic configuration change via DCS # features/patroni_api.feature:37 611s May 02 21:37:18 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 611s May 02 21:37:18 Then I receive a response code 200 # features/steps/patroni_api.py:100 611s May 02 21:37:18 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 11 seconds # features/steps/patroni_api.py:158 614s May 02 21:37:21 When I issue a GET request to http://127.0.0.1:8008/config # features/steps/patroni_api.py:63 614s May 02 21:37:21 Then I receive a response code 200 # features/steps/patroni_api.py:100 614s May 02 21:37:21 And I receive a response ttl 20 # features/steps/patroni_api.py:100 614s May 02 21:37:21 When I issue a GET request to http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:63 614s May 02 21:37:21 Then I receive a response code 200 # features/steps/patroni_api.py:100 614s May 02 21:37:21 And I receive a response tags {'new_tag': 'new_value'} # features/steps/patroni_api.py:100 614s May 02 21:37:21 And I sleep for 4 seconds # features/steps/patroni_api.py:41 618s May 02 21:37:25 618s May 02 21:37:25 Scenario: check the scheduled restart # features/patroni_api.feature:49 618s May 02 21:37:25 Given I run patronictl.py edit-config -p 'superuser_reserved_connections=6' --force batman # features/steps/patroni_api.py:88 620s May 02 21:37:27 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 620s May 02 21:37:27 And I receive a response output "+ superuser_reserved_connections: 6" # features/steps/patroni_api.py:100 620s May 02 21:37:27 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 5 seconds # features/steps/patroni_api.py:158 620s May 02 21:37:27 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 620s May 02 21:37:27 Then I receive a response code 202 # features/steps/patroni_api.py:100 620s May 02 21:37:27 And I sleep for 8 seconds # features/steps/patroni_api.py:41 628s May 02 21:37:35 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 10 seconds # features/steps/patroni_api.py:158 628s May 02 21:37:35 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 628s May 02 21:37:35 Then I receive a response code 202 # features/steps/patroni_api.py:100 628s May 02 21:37:35 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 634s May 02 21:37:41 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 635s May 02 21:37:42 635s May 02 21:37:42 Scenario: check API requests for the primary-replica pair in the pause mode # features/patroni_api.feature:63 635s May 02 21:37:42 Given I start postgres-1 # features/steps/basic_replication.py:20 639s May 02 21:37:46 Then replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 640s May 02 21:37:47 When I run patronictl.py pause batman # features/steps/patroni_api.py:88 641s May 02 21:37:48 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 641s May 02 21:37:48 When I kill postmaster on postgres-1 # features/steps/basic_replication.py:56 642s May 02 21:37:49 waiting for server to shut down.... done 642s May 02 21:37:49 server stopped 642s May 02 21:37:49 And I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 642s May 02 21:37:49 Then I receive a response code 503 # features/steps/patroni_api.py:100 642s May 02 21:37:49 And "members/postgres-1" key in DCS has state=stopped after 10 seconds # features/steps/cascading_replication.py:23 644s May 02 21:37:51 When I run patronictl.py restart batman postgres-1 --force # features/steps/patroni_api.py:88 647s May 02 21:37:54 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 647s May 02 21:37:54 Then replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 648s May 02 21:37:55 And I sleep for 2 seconds # features/steps/patroni_api.py:41 650s May 02 21:37:57 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 650s May 02 21:37:57 Then I receive a response code 200 # features/steps/patroni_api.py:100 650s May 02 21:37:57 And I receive a response state running # features/steps/patroni_api.py:100 650s May 02 21:37:57 And I receive a response role replica # features/steps/patroni_api.py:100 650s May 02 21:37:57 When I run patronictl.py reinit batman postgres-1 --force --wait # features/steps/patroni_api.py:88 655s May 02 21:38:02 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 655s May 02 21:38:02 And I receive a response output "Success: reinitialize for member postgres-1" # features/steps/patroni_api.py:100 655s May 02 21:38:02 And postgres-1 role is the secondary after 30 seconds # features/steps/basic_replication.py:117 656s May 02 21:38:03 And replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 656s May 02 21:38:03 When I run patronictl.py restart batman postgres-0 --force # features/steps/patroni_api.py:88 658s May 02 21:38:05 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 658s May 02 21:38:05 And I receive a response output "Success: restart on member postgres-0" # features/steps/patroni_api.py:100 658s May 02 21:38:05 And postgres-0 role is the primary after 5 seconds # features/steps/basic_replication.py:117 659s May 02 21:38:06 659s May 02 21:38:06 Scenario: check the switchover via the API in the pause mode # features/patroni_api.feature:90 659s May 02 21:38:06 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 661s May 02 21:38:08 Then I receive a response code 200 # features/steps/patroni_api.py:100 661s May 02 21:38:08 And postgres-1 is a leader after 5 seconds # features/steps/patroni_api.py:31 661s May 02 21:38:08 And postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 662s May 02 21:38:09 And postgres-0 role is the secondary after 10 seconds # features/steps/basic_replication.py:117 668s May 02 21:38:15 And replication works from postgres-1 to postgres-0 after 20 seconds # features/steps/basic_replication.py:124 668s May 02 21:38:15 And "members/postgres-0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 668s May 02 21:38:15 When I issue a GET request to http://127.0.0.1:8008/primary # features/steps/patroni_api.py:63 668s May 02 21:38:15 Then I receive a response code 503 # features/steps/patroni_api.py:100 668s May 02 21:38:15 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:63 668s May 02 21:38:15 Then I receive a response code 200 # features/steps/patroni_api.py:100 668s May 02 21:38:15 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 668s May 02 21:38:15 Then I receive a response code 200 # features/steps/patroni_api.py:100 668s May 02 21:38:15 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 668s May 02 21:38:15 Then I receive a response code 503 # features/steps/patroni_api.py:100 668s May 02 21:38:15 668s May 02 21:38:15 Scenario: check the scheduled switchover # features/patroni_api.feature:107 668s May 02 21:38:15 Given I issue a scheduled switchover from postgres-1 to postgres-0 in 10 seconds # features/steps/patroni_api.py:119 669s May 02 21:38:16 Then I receive a response returncode 1 # features/steps/patroni_api.py:100 669s May 02 21:38:16 And I receive a response output "Can't schedule switchover in the paused state" # features/steps/patroni_api.py:100 669s May 02 21:38:16 When I run patronictl.py resume batman # features/steps/patroni_api.py:88 671s May 02 21:38:18 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 671s May 02 21:38:18 Given I issue a scheduled switchover from postgres-1 to postgres-0 in 10 seconds # features/steps/patroni_api.py:119 672s May 02 21:38:19 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 672s May 02 21:38:19 And postgres-0 is a leader after 20 seconds # features/steps/patroni_api.py:31 683s May 02 21:38:30 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 683s May 02 21:38:30 And postgres-1 role is the secondary after 10 seconds # features/steps/basic_replication.py:117 686s May 02 21:38:33 And replication works from postgres-0 to postgres-1 after 25 seconds # features/steps/basic_replication.py:124 686s May 02 21:38:33 And "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 687s May 02 21:38:34 When I issue a GET request to http://127.0.0.1:8008/primary # features/steps/patroni_api.py:63 687s May 02 21:38:34 Then I receive a response code 200 # features/steps/patroni_api.py:100 687s May 02 21:38:34 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:63 687s May 02 21:38:34 Then I receive a response code 503 # features/steps/patroni_api.py:100 687s May 02 21:38:34 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 687s May 02 21:38:34 Then I receive a response code 503 # features/steps/patroni_api.py:100 687s May 02 21:38:34 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 687s May 02 21:38:34 Then I receive a response code 200 # features/steps/patroni_api.py:100 692s May 02 21:38:38 692s May 02 21:38:38 Feature: permanent slots # features/permanent_slots.feature:1 692s May 02 21:38:38 692s May 02 21:38:38 Scenario: check that physical permanent slots are created # features/permanent_slots.feature:2 692s May 02 21:38:38 Given I start postgres-0 # features/steps/basic_replication.py:20 697s May 02 21:38:43 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 697s May 02 21:38:43 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 697s May 02 21:38:43 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 697s May 02 21:38:44 Then I receive a response code 200 # features/steps/patroni_api.py:100 697s May 02 21:38:44 And Response on GET http://127.0.0.1:8008/config contains slots after 10 seconds # features/steps/patroni_api.py:158 697s May 02 21:38:44 When I start postgres-1 # features/steps/basic_replication.py:20 702s May 02 21:38:49 And I configure and start postgres-2 with a tag nofailover true # features/steps/cascading_replication.py:7 707s May 02 21:38:54 And I configure and start postgres-3 with a tag replicatefrom postgres-2 # features/steps/cascading_replication.py:7 712s May 02 21:38:59 Then postgres-0 has a physical replication slot named test_physical after 10 seconds # features/steps/slots.py:82 712s May 02 21:38:59 And postgres-0 has a physical replication slot named postgres_1 after 10 seconds # features/steps/slots.py:82 712s May 02 21:38:59 And postgres-0 has a physical replication slot named postgres_2 after 10 seconds # features/steps/slots.py:82 712s May 02 21:38:59 And postgres-2 has a physical replication slot named postgres_3 after 10 seconds # features/steps/slots.py:82 712s May 02 21:38:59 And postgres-2 does not have a replication slot named test_physical # features/steps/slots.py:41 712s May 02 21:38:59 712s May 02 21:38:59 @slot-advance 712s May 02 21:38:59 Scenario: check that logical permanent slots are created # features/permanent_slots.feature:19 712s May 02 21:38:59 Given I run patronictl.py restart batman postgres-0 --force # features/steps/patroni_api.py:88 714s May 02 21:39:01 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 714s May 02 21:39:01 Then postgres-0 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:20 715s May 02 21:39:02 715s May 02 21:39:02 @slot-advance 715s May 02 21:39:02 Scenario: check that permanent slots are created on replicas # features/permanent_slots.feature:25 715s May 02 21:39:02 Given postgres-1 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:20 718s May 02 21:39:05 Then Logical slot test_logical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 718s May 02 21:39:05 And Logical slot test_logical is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 719s May 02 21:39:06 And postgres-1 has a physical replication slot named test_physical after 2 seconds # features/steps/slots.py:82 719s May 02 21:39:06 And postgres-2 does not have a replication slot named test_logical # features/steps/slots.py:41 719s May 02 21:39:06 And postgres-3 has a physical replication slot named test_physical after 2 seconds # features/steps/slots.py:82 719s May 02 21:39:06 719s May 02 21:39:06 @slot-advance 719s May 02 21:39:06 Scenario: check permanent physical slots that match with member names # features/permanent_slots.feature:34 719s May 02 21:39:06 Given postgres-0 has a physical replication slot named postgres_3 after 2 seconds # features/steps/slots.py:82 719s May 02 21:39:06 And postgres-1 has a physical replication slot named postgres_0 after 2 seconds # features/steps/slots.py:82 719s May 02 21:39:06 And postgres-1 has a physical replication slot named postgres_2 after 2 seconds # features/steps/slots.py:82 719s May 02 21:39:06 And postgres-1 has a physical replication slot named postgres_3 after 2 seconds # features/steps/slots.py:82 719s May 02 21:39:06 And postgres-2 does not have a replication slot named postgres_0 # features/steps/slots.py:41 719s May 02 21:39:06 And postgres-2 does not have a replication slot named postgres_1 # features/steps/slots.py:41 719s May 02 21:39:06 And postgres-2 has a physical replication slot named postgres_3 after 2 seconds # features/steps/slots.py:82 719s May 02 21:39:06 And postgres-3 has a physical replication slot named postgres_0 after 2 seconds # features/steps/slots.py:82 719s May 02 21:39:06 And postgres-3 has a physical replication slot named postgres_1 after 2 seconds # features/steps/slots.py:82 719s May 02 21:39:06 And postgres-3 has a physical replication slot named postgres_2 after 2 seconds # features/steps/slots.py:82 719s May 02 21:39:06 719s May 02 21:39:06 @slot-advance 719s May 02 21:39:06 Scenario: check that permanent slots are advanced on replicas # features/permanent_slots.feature:47 719s May 02 21:39:06 Given I add the table replicate_me to postgres-0 # features/steps/basic_replication.py:66 719s May 02 21:39:06 When I get all changes from logical slot test_logical on postgres-0 # features/steps/slots.py:72 719s May 02 21:39:06 And I get all changes from physical slot test_physical on postgres-0 # features/steps/slots.py:77 719s May 02 21:39:06 Then Logical slot test_logical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 721s May 02 21:39:08 And Physical slot test_physical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 721s May 02 21:39:08 And Logical slot test_logical is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 721s May 02 21:39:08 And Physical slot test_physical is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 721s May 02 21:39:08 And Physical slot postgres_1 is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 721s May 02 21:39:08 And Physical slot postgres_3 is in sync between postgres-2 and postgres-0 after 20 seconds # features/steps/slots.py:52 723s May 02 21:39:10 And Physical slot postgres_3 is in sync between postgres-2 and postgres-1 after 10 seconds # features/steps/slots.py:52 723s May 02 21:39:10 723s May 02 21:39:10 @slot-advance 723s May 02 21:39:10 Scenario: check that permanent slots and member slots are written to the /status key # features/permanent_slots.feature:60 723s May 02 21:39:10 Given "status" key in DCS has test_physical in slots # features/steps/slots.py:118 723s May 02 21:39:10 And "status" key in DCS has postgres_0 in slots # features/steps/slots.py:118 723s May 02 21:39:10 And "status" key in DCS has postgres_1 in slots # features/steps/slots.py:118 723s May 02 21:39:10 And "status" key in DCS has postgres_2 in slots # features/steps/slots.py:118 723s May 02 21:39:10 And "status" key in DCS has postgres_3 in slots # features/steps/slots.py:118 723s May 02 21:39:10 723s May 02 21:39:10 @slot-advance 723s May 02 21:39:10 Scenario: check that only non-permanent member slots are written to the retain_slots in /status key # features/permanent_slots.feature:68 723s May 02 21:39:10 Given "status" key in DCS has postgres_0 in retain_slots # features/steps/slots.py:118 723s May 02 21:39:10 And "status" key in DCS has postgres_1 in retain_slots # features/steps/slots.py:118 723s May 02 21:39:10 And "status" key in DCS has postgres_2 in retain_slots # features/steps/slots.py:118 723s May 02 21:39:10 And "status" key in DCS does not have postgres_3 in retain_slots # features/steps/slots.py:124 723s May 02 21:39:10 723s May 02 21:39:10 Scenario: check permanent physical replication slot after failover # features/permanent_slots.feature:74 723s May 02 21:39:10 Given I shut down postgres-3 # features/steps/basic_replication.py:41 724s May 02 21:39:11 And I shut down postgres-2 # features/steps/basic_replication.py:41 725s May 02 21:39:12 And I shut down postgres-0 # features/steps/basic_replication.py:41 727s May 02 21:39:14 Then postgres-1 has a physical replication slot named test_physical after 10 seconds # features/steps/slots.py:82 727s May 02 21:39:14 And postgres-1 has a physical replication slot named postgres_0 after 10 seconds # features/steps/slots.py:82 727s May 02 21:39:14 And postgres-1 has a physical replication slot named postgres_3 after 10 seconds # features/steps/slots.py:82 727s May 02 21:39:14 When I start postgres-0 # features/steps/basic_replication.py:20 730s May 02 21:39:17 Then postgres-0 role is the replica after 20 seconds # features/steps/basic_replication.py:117 730s May 02 21:39:17 And physical replication slot named postgres_1 on postgres-0 has no xmin value after 10 seconds # features/steps/slots.py:98 730s May 02 21:39:17 And postgres-0 has a physical replication slot named postgres_2 after 10 seconds # features/steps/slots.py:82 730s May 02 21:39:17 And postgres-0 has a physical replication slot named postgres_3 after 10 seconds # features/steps/slots.py:82 733s May 02 21:39:20 733s May 02 21:39:20 Feature: priority replication # features/priority_failover.feature:1 733s May 02 21:39:20 We should check that we can give nodes priority during failover 733s May 02 21:39:20 Scenario: check failover priority 0 prevents leaderships # features/priority_failover.feature:4 733s May 02 21:39:20 Given I configure and start postgres-0 with a tag failover_priority 1 # features/steps/cascading_replication.py:7 737s May 02 21:39:24 And I configure and start postgres-1 with a tag failover_priority 0 # features/steps/cascading_replication.py:7 741s May 02 21:39:28 Then replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 743s May 02 21:39:30 When I shut down postgres-0 # features/steps/basic_replication.py:41 745s May 02 21:39:32 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 747s May 02 21:39:34 Then postgres-1 role is the secondary after 10 seconds # features/steps/basic_replication.py:117 747s May 02 21:39:34 When I start postgres-0 # features/steps/basic_replication.py:20 750s May 02 21:39:37 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 752s May 02 21:39:39 752s May 02 21:39:39 Scenario: check higher failover priority is respected # features/priority_failover.feature:14 752s May 02 21:39:39 Given I configure and start postgres-2 with a tag failover_priority 1 # features/steps/cascading_replication.py:7 757s May 02 21:39:44 And I configure and start postgres-3 with a tag failover_priority 2 # features/steps/cascading_replication.py:7 763s May 02 21:39:50 Then replication works from postgres-0 to postgres-2 after 20 seconds # features/steps/basic_replication.py:124 764s May 02 21:39:51 And replication works from postgres-0 to postgres-3 after 20 seconds # features/steps/basic_replication.py:124 765s May 02 21:39:52 When I shut down postgres-0 # features/steps/basic_replication.py:41 767s May 02 21:39:54 Then postgres-3 role is the primary after 10 seconds # features/steps/basic_replication.py:117 768s May 02 21:39:55 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 768s May 02 21:39:55 768s May 02 21:39:55 Scenario: check conflicting configuration handling # features/priority_failover.feature:23 768s May 02 21:39:55 When I set nofailover tag in postgres-2 config # features/steps/patroni_api.py:133 768s May 02 21:39:55 And I issue an empty POST request to http://127.0.0.1:8010/reload # features/steps/patroni_api.py:68 768s May 02 21:39:55 Then I receive a response code 202 # features/steps/patroni_api.py:100 768s May 02 21:39:55 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 769s May 02 21:39:56 And "members/postgres-2" key in DCS has tags={'failover_priority': '1', 'nofailover': True} after 10 seconds # features/steps/cascading_replication.py:23 770s May 02 21:39:57 When I issue a POST request to http://127.0.0.1:8010/failover with {"candidate": "postgres-2"} # features/steps/patroni_api.py:73 770s May 02 21:39:57 Then I receive a response code 412 # features/steps/patroni_api.py:100 770s May 02 21:39:57 And I receive a response text "failover is not possible: no good candidates have been found" # features/steps/patroni_api.py:100 770s May 02 21:39:57 When I reset nofailover tag in postgres-1 config # features/steps/patroni_api.py:133 770s May 02 21:39:57 And I issue an empty POST request to http://127.0.0.1:8009/reload # features/steps/patroni_api.py:68 770s May 02 21:39:57 Then I receive a response code 202 # features/steps/patroni_api.py:100 770s May 02 21:39:57 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 773s May 02 21:40:00 And "members/postgres-1" key in DCS has tags={'failover_priority': '0', 'nofailover': False} after 10 seconds # features/steps/cascading_replication.py:23 774s May 02 21:40:01 And I issue a POST request to http://127.0.0.1:8009/failover with {"candidate": "postgres-1"} # features/steps/patroni_api.py:73 777s May 02 21:40:04 Then I receive a response code 200 # features/steps/patroni_api.py:100 777s May 02 21:40:04 And postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 783s May 02 21:40:10 783s May 02 21:40:10 Feature: quorum commit # features/quorum_commit.feature:1 783s May 02 21:40:10 Check basic workfrlows when quorum commit is enabled 783s May 02 21:40:10 Scenario: check enable quorum commit and that the only leader promotes after restart # features/quorum_commit.feature:4 783s May 02 21:40:10 Given I start postgres-0 # features/steps/basic_replication.py:20 788s May 02 21:40:15 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 788s May 02 21:40:15 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 788s May 02 21:40:15 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 788s May 02 21:40:15 Then I receive a response code 200 # features/steps/patroni_api.py:100 788s May 02 21:40:15 And sync key in DCS has leader=postgres-0 after 20 seconds # features/steps/quorum_commit.py:8 789s May 02 21:40:16 And sync key in DCS has quorum=0 after 2 seconds # features/steps/quorum_commit.py:8 789s May 02 21:40:16 And synchronous_standby_names on postgres-0 is set to '_empty_str_' after 2 seconds # features/steps/quorum_commit.py:39 789s May 02 21:40:16 When I shut down postgres-0 # features/steps/basic_replication.py:41 791s May 02 21:40:18 And sync key in DCS has leader=postgres-0 after 2 seconds # features/steps/quorum_commit.py:8 791s May 02 21:40:18 When I start postgres-0 # features/steps/basic_replication.py:20 794s May 02 21:40:21 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 796s May 02 21:40:23 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 796s May 02 21:40:23 Then synchronous_standby_names on postgres-0 is set to 'ANY 1 (*)' after 10 seconds # features/steps/quorum_commit.py:39 797s May 02 21:40:24 797s May 02 21:40:24 Scenario: check failover with one quorum standby # features/quorum_commit.feature:20 797s May 02 21:40:24 Given I start postgres-1 # features/steps/basic_replication.py:20 803s May 02 21:40:30 Then sync key in DCS has sync_standby=postgres-1 after 10 seconds # features/steps/quorum_commit.py:8 805s May 02 21:40:32 And synchronous_standby_names on postgres-0 is set to 'ANY 1 ("postgres-1")' after 2 seconds # features/steps/quorum_commit.py:39 805s May 02 21:40:32 When I shut down postgres-0 # features/steps/basic_replication.py:41 807s May 02 21:40:34 Then postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 808s May 02 21:40:35 And sync key in DCS has quorum=0 after 10 seconds # features/steps/quorum_commit.py:8 808s May 02 21:40:35 Then synchronous_standby_names on postgres-1 is set to 'ANY 1 (*)' after 10 seconds # features/steps/quorum_commit.py:39 811s May 02 21:40:38 When I start postgres-0 # features/steps/basic_replication.py:20 815s May 02 21:40:42 Then sync key in DCS has leader=postgres-1 after 10 seconds # features/steps/quorum_commit.py:8 815s May 02 21:40:42 Then sync key in DCS has sync_standby=postgres-0 after 10 seconds # features/steps/quorum_commit.py:8 817s May 02 21:40:44 And synchronous_standby_names on postgres-1 is set to 'ANY 1 ("postgres-0")' after 2 seconds # features/steps/quorum_commit.py:39 817s May 02 21:40:44 817s May 02 21:40:44 Scenario: check behavior with three nodes and different replication factor # features/quorum_commit.feature:33 817s May 02 21:40:44 Given I start postgres-2 # features/steps/basic_replication.py:20 823s May 02 21:40:50 Then sync key in DCS has sync_standby=postgres-0,postgres-2 after 10 seconds # features/steps/quorum_commit.py:8 824s May 02 21:40:51 And sync key in DCS has quorum=1 after 2 seconds # features/steps/quorum_commit.py:8 824s May 02 21:40:51 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 824s May 02 21:40:51 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 824s May 02 21:40:51 Then sync key in DCS has quorum=0 after 10 seconds # features/steps/quorum_commit.py:8 825s May 02 21:40:52 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 825s May 02 21:40:52 825s May 02 21:40:52 Scenario: switch from quorum replication to good old multisync and back # features/quorum_commit.feature:42 825s May 02 21:40:52 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 825s May 02 21:40:52 And I shut down postgres-0 # features/steps/basic_replication.py:41 826s May 02 21:40:53 Then synchronous_standby_names on postgres-1 is set to '"postgres-2"' after 10 seconds # features/steps/quorum_commit.py:39 828s May 02 21:40:55 And sync key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/quorum_commit.py:8 830s May 02 21:40:57 Then sync key in DCS has quorum=0 after 2 seconds # features/steps/quorum_commit.py:8 830s May 02 21:40:57 When I issue a PATCH request to http://127.0.0.1:8009/config with {"synchronous_mode": "quorum"} # features/steps/patroni_api.py:73 830s May 02 21:40:57 And I start postgres-0 # features/steps/basic_replication.py:20 833s May 02 21:41:00 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 835s May 02 21:41:02 And sync key in DCS has sync_standby=postgres-0,postgres-2 after 10 seconds # features/steps/quorum_commit.py:8 835s May 02 21:41:02 Then sync key in DCS has quorum=1 after 2 seconds # features/steps/quorum_commit.py:8 835s May 02 21:41:02 835s May 02 21:41:02 Scenario: REST API and patronictl # features/quorum_commit.feature:54 835s May 02 21:41:02 Given I run patronictl.py list batman # features/steps/patroni_api.py:88 837s May 02 21:41:04 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 837s May 02 21:41:04 And I receive a response output "Quorum Standby" # features/steps/patroni_api.py:100 837s May 02 21:41:04 And Status code on GET http://127.0.0.1:8008/quorum is 200 after 3 seconds # features/steps/patroni_api.py:144 837s May 02 21:41:04 And Status code on GET http://127.0.0.1:8010/quorum is 200 after 3 seconds # features/steps/patroni_api.py:144 837s May 02 21:41:04 837s May 02 21:41:04 Scenario: nosync node is removed from voters and synchronous_standby_names # features/quorum_commit.feature:61 837s May 02 21:41:04 Given I add tag nosync true to postgres-2 config # features/steps/patroni_api.py:139 837s May 02 21:41:04 When I issue an empty POST request to http://127.0.0.1:8010/reload # features/steps/patroni_api.py:68 837s May 02 21:41:04 Then I receive a response code 202 # features/steps/patroni_api.py:100 837s May 02 21:41:04 And sync key in DCS has quorum=0 after 10 seconds # features/steps/quorum_commit.py:8 839s May 02 21:41:06 And sync key in DCS has sync_standby=postgres-0 after 10 seconds # features/steps/quorum_commit.py:8 839s May 02 21:41:06 And synchronous_standby_names on postgres-1 is set to 'ANY 1 ("postgres-0")' after 2 seconds # features/steps/quorum_commit.py:39 839s May 02 21:41:06 And Status code on GET http://127.0.0.1:8010/quorum is 503 after 10 seconds # features/steps/patroni_api.py:144 847s May 02 21:41:14 847s May 02 21:41:14 Feature: recovery # features/recovery.feature:1 847s May 02 21:41:14 We want to check that crashed postgres is started back 847s May 02 21:41:14 Scenario: check that timeline is not incremented when primary is started after crash # features/recovery.feature:4 847s May 02 21:41:14 Given I start postgres-0 # features/steps/basic_replication.py:20 853s May 02 21:41:20 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 853s May 02 21:41:20 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 853s May 02 21:41:20 When I start postgres-1 # features/steps/basic_replication.py:20 858s May 02 21:41:25 And I add the table foo to postgres-0 # features/steps/basic_replication.py:66 858s May 02 21:41:25 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 858s May 02 21:41:25 When I kill postmaster on postgres-0 # features/steps/basic_replication.py:56 858s May 02 21:41:25 waiting for server to shut down.... done 858s May 02 21:41:25 server stopped 858s May 02 21:41:25 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 862s May 02 21:41:29 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:63 862s May 02 21:41:29 Then I receive a response code 200 # features/steps/patroni_api.py:100 862s May 02 21:41:29 And I receive a response role primary # features/steps/patroni_api.py:100 862s May 02 21:41:29 And I receive a response timeline 1 # features/steps/patroni_api.py:100 862s May 02 21:41:29 And "members/postgres-0" key in DCS has state=running after 12 seconds # features/steps/cascading_replication.py:23 862s May 02 21:41:29 And replication works from postgres-0 to postgres-1 after 15 seconds # features/steps/basic_replication.py:124 863s May 02 21:41:30 863s May 02 21:41:30 Scenario: check immediate failover when master_start_timeout=0 # features/recovery.feature:20 863s May 02 21:41:30 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 863s May 02 21:41:30 Then I receive a response code 200 # features/steps/patroni_api.py:100 863s May 02 21:41:30 And Response on GET http://127.0.0.1:8008/config contains master_start_timeout after 10 seconds # features/steps/patroni_api.py:158 863s May 02 21:41:30 When I kill postmaster on postgres-0 # features/steps/basic_replication.py:56 864s May 02 21:41:31 waiting for server to shut down.... done 864s May 02 21:41:31 server stopped 864s May 02 21:41:31 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 869s May 02 21:41:36 And postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 870s May 02 21:41:37 870s May 02 21:41:37 Scenario: check crashed primary demotes after failed attempt to start # features/recovery.feature:28 870s May 02 21:41:37 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 870s May 02 21:41:37 Then I receive a response code 200 # features/steps/patroni_api.py:100 870s May 02 21:41:37 And postgres-0 role is the replica after 10 seconds # features/steps/basic_replication.py:117 872s May 02 21:41:39 When I ensure postgres-1 fails to start after a failure # features/steps/recovery.py:6 872s May 02 21:41:39 When I kill postmaster on postgres-1 # features/steps/basic_replication.py:56 872s May 02 21:41:39 waiting for server to shut down.... done 872s May 02 21:41:39 server stopped 872s May 02 21:41:39 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 873s May 02 21:41:40 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 876s May 02 21:41:43 876s May 02 21:41:43 Feature: standby cluster # features/standby_cluster.feature:1 876s May 02 21:41:43 876s May 02 21:41:43 Scenario: prepare the cluster with logical slots # features/standby_cluster.feature:2 876s May 02 21:41:43 Given I start postgres-1 # features/steps/basic_replication.py:20 881s May 02 21:41:48 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 882s May 02 21:41:49 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 882s May 02 21:41:49 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 882s May 02 21:41:49 Then I receive a response code 200 # features/steps/patroni_api.py:100 882s May 02 21:41:49 And Response on GET http://127.0.0.1:8009/config contains slots after 10 seconds # features/steps/patroni_api.py:158 882s May 02 21:41:49 And I sleep for 3 seconds # features/steps/patroni_api.py:41 885s May 02 21:41:52 When I issue a PATCH request to http://127.0.0.1:8009/config with {"slots": {"test_logical": {"type": "logical", "database": "postgres", "plugin": "test_decoding"}}} # features/steps/patroni_api.py:73 885s May 02 21:41:52 Then I receive a response code 200 # features/steps/patroni_api.py:100 885s May 02 21:41:52 And I do a backup of postgres-1 # features/steps/custom_bootstrap.py:25 887s May 02 21:41:54 When I start postgres-0 # features/steps/basic_replication.py:20 892s May 02 21:41:59 Then "members/postgres-0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 893s May 02 21:42:00 And replication works from postgres-1 to postgres-0 after 15 seconds # features/steps/basic_replication.py:124 894s May 02 21:42:01 When I issue a GET request to http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:63 894s May 02 21:42:01 Then I receive a response code 200 # features/steps/patroni_api.py:100 894s May 02 21:42:01 And I receive a response replication_state streaming # features/steps/patroni_api.py:100 894s May 02 21:42:01 And "members/postgres-0" key in DCS has replication_state=streaming after 10 seconds # features/steps/cascading_replication.py:23 894s May 02 21:42:01 894s May 02 21:42:01 @slot-advance 894s May 02 21:42:01 Scenario: check permanent logical slots are synced to the replica # features/standby_cluster.feature:22 894s May 02 21:42:01 Given I run patronictl.py restart batman postgres-1 --force # features/steps/patroni_api.py:88 896s May 02 21:42:03 Then Logical slot test_logical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 902s May 02 21:42:09 902s May 02 21:42:09 Scenario: Detach exiting node from the cluster # features/standby_cluster.feature:26 902s May 02 21:42:09 When I shut down postgres-1 # features/steps/basic_replication.py:41 904s May 02 21:42:11 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 904s May 02 21:42:11 And "members/postgres-0" key in DCS has role=primary after 5 seconds # features/steps/cascading_replication.py:23 908s May 02 21:42:15 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:63 908s May 02 21:42:15 Then I receive a response code 200 # features/steps/patroni_api.py:100 908s May 02 21:42:15 908s May 02 21:42:15 Scenario: check replication of a single table in a standby cluster # features/standby_cluster.feature:33 908s May 02 21:42:15 Given I start postgres-1 in a standby cluster batman1 as a clone of postgres-0 # features/steps/standby_cluster.py:23 912s May 02 21:42:19 Then postgres-1 is a leader of batman1 after 10 seconds # features/steps/custom_bootstrap.py:16 912s May 02 21:42:19 When I add the table foo to postgres-0 # features/steps/basic_replication.py:66 912s May 02 21:42:19 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 912s May 02 21:42:19 When I issue a GET request to http://127.0.0.1:8009/patroni # features/steps/patroni_api.py:63 912s May 02 21:42:19 Then I receive a response code 200 # features/steps/patroni_api.py:100 912s May 02 21:42:19 And I receive a response replication_state streaming # features/steps/patroni_api.py:100 912s May 02 21:42:19 And I sleep for 3 seconds # features/steps/patroni_api.py:41 915s May 02 21:42:22 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 916s May 02 21:42:22 Then I receive a response code 503 # features/steps/patroni_api.py:100 916s May 02 21:42:22 When I issue a GET request to http://127.0.0.1:8009/standby_leader # features/steps/patroni_api.py:63 916s May 02 21:42:23 Then I receive a response code 200 # features/steps/patroni_api.py:100 916s May 02 21:42:23 And I receive a response role standby_leader # features/steps/patroni_api.py:100 916s May 02 21:42:23 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 916s May 02 21:42:23 When I start postgres-2 in a cluster batman1 # features/steps/standby_cluster.py:12 921s May 02 21:42:28 Then postgres-2 role is the replica after 24 seconds # features/steps/basic_replication.py:117 921s May 02 21:42:28 And postgres-2 is replicating from postgres-1 after 10 seconds # features/steps/standby_cluster.py:52 922s May 02 21:42:29 And table foo is present on postgres-2 after 20 seconds # features/steps/basic_replication.py:105 922s May 02 21:42:29 When I issue a GET request to http://127.0.0.1:8010/patroni # features/steps/patroni_api.py:63 922s May 02 21:42:29 Then I receive a response code 200 # features/steps/patroni_api.py:100 922s May 02 21:42:29 And I receive a response replication_state streaming # features/steps/patroni_api.py:100 922s May 02 21:42:29 And postgres-1 does not have a replication slot named test_logical # features/steps/slots.py:41 922s May 02 21:42:29 922s May 02 21:42:29 Scenario: check switchover # features/standby_cluster.feature:57 922s May 02 21:42:29 Given I run patronictl.py switchover batman1 --force # features/steps/patroni_api.py:88 925s May 02 21:42:32 Then Status code on GET http://127.0.0.1:8010/standby_leader is 200 after 10 seconds # features/steps/patroni_api.py:144 925s May 02 21:42:32 And postgres-1 is replicating from postgres-2 after 32 seconds # features/steps/standby_cluster.py:52 928s May 02 21:42:35 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 928s May 02 21:42:35 928s May 02 21:42:35 Scenario: check failover # features/standby_cluster.feature:63 928s May 02 21:42:35 When I kill postgres-2 # features/steps/basic_replication.py:46 929s May 02 21:42:36 And I kill postmaster on postgres-2 # features/steps/basic_replication.py:56 930s May 02 21:42:37 waiting for server to shut down.... done 930s May 02 21:42:37 server stopped 930s May 02 21:42:37 Then postgres-1 is replicating from postgres-0 after 32 seconds # features/steps/standby_cluster.py:52 949s May 02 21:42:56 And Status code on GET http://127.0.0.1:8009/standby_leader is 200 after 10 seconds # features/steps/patroni_api.py:144 949s May 02 21:42:56 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 949s May 02 21:42:56 Then I receive a response code 503 # features/steps/patroni_api.py:100 949s May 02 21:42:56 And I receive a response role standby_leader # features/steps/patroni_api.py:100 949s May 02 21:42:56 And replication works from postgres-0 to postgres-1 after 15 seconds # features/steps/basic_replication.py:124 950s May 02 21:42:57 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 954s May 02 21:43:01 954s May 02 21:43:01 Feature: watchdog # features/watchdog.feature:1 954s May 02 21:43:01 Verify that watchdog gets pinged and triggered under appropriate circumstances. 954s May 02 21:43:01 Scenario: watchdog is opened and pinged # features/watchdog.feature:4 954s May 02 21:43:01 Given I start postgres-0 with watchdog # features/steps/watchdog.py:17 959s May 02 21:43:06 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 959s May 02 21:43:06 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 959s May 02 21:43:06 And postgres-0 watchdog has been pinged after 10 seconds # features/steps/watchdog.py:22 960s May 02 21:43:07 And postgres-0 watchdog has a 15 second timeout # features/steps/watchdog.py:35 960s May 02 21:43:07 960s May 02 21:43:07 Scenario: watchdog is reconfigured after global ttl changed # features/watchdog.feature:11 960s May 02 21:43:07 Given I run patronictl.py edit-config batman -s ttl=30 --force # features/steps/patroni_api.py:88 962s May 02 21:43:09 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 962s May 02 21:43:09 And I receive a response output "+ttl: 30" # features/steps/patroni_api.py:100 962s May 02 21:43:09 When I sleep for 4 seconds # features/steps/patroni_api.py:41 966s May 02 21:43:13 Then postgres-0 watchdog has a 25 second timeout # features/steps/watchdog.py:35 966s May 02 21:43:13 966s May 02 21:43:13 Scenario: watchdog is disabled during pause # features/watchdog.feature:18 966s May 02 21:43:13 Given I run patronictl.py pause batman # features/steps/patroni_api.py:88 967s May 02 21:43:14 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 967s May 02 21:43:14 When I sleep for 2 seconds # features/steps/patroni_api.py:41 969s May 02 21:43:16 Then postgres-0 watchdog has been closed # features/steps/watchdog.py:30 969s May 02 21:43:16 969s May 02 21:43:16 Scenario: watchdog is opened and pinged after resume # features/watchdog.feature:24 969s May 02 21:43:16 Given I reset postgres-0 watchdog state # features/steps/watchdog.py:40 969s May 02 21:43:16 And I run patronictl.py resume batman # features/steps/patroni_api.py:88 971s May 02 21:43:18 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 971s May 02 21:43:18 And postgres-0 watchdog has been pinged after 10 seconds # features/steps/watchdog.py:22 972s May 02 21:43:19 972s May 02 21:43:19 Scenario: watchdog is disabled when shutting down # features/watchdog.feature:30 972s May 02 21:43:19 Given I shut down postgres-0 # features/steps/basic_replication.py:41 974s May 02 21:43:21 Then postgres-0 watchdog has been closed # features/steps/watchdog.py:30 974s May 02 21:43:21 974s May 02 21:43:21 Scenario: watchdog is triggered if patroni stops responding # features/watchdog.feature:34 974s May 02 21:43:21 Given I reset postgres-0 watchdog state # features/steps/watchdog.py:40 974s May 02 21:43:21 And I start postgres-0 with watchdog # features/steps/watchdog.py:17 977s May 02 21:43:24 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 979s May 02 21:43:26 When postgres-0 hangs for 30 seconds # features/steps/watchdog.py:53 979s May 02 21:43:26 Then postgres-0 watchdog is triggered after 30 seconds # features/steps/watchdog.py:45 1006s May 02 21:43:53 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.3330.XeVPWaXx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.3376.XkBRImNx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.3424.XtdCvqdx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.3473.XWkqPZmx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.3520.XrplOPJx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.3596.XMAoganx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.3647.XIBXAFwx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.3650.XDUmtxIx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.3729.XLItEGzx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.3838.XJNIMBux 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.3852.XbqDSVDx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.3896.XrgOVnNx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.3944.XygDRYax 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.4095.XuqywfFx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.4141.XqEVqaXx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.4197.XUOAuWSx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.4291.XUUVobdx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.4342.XroWDuZx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.4438.XLJmySpx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.4490.XepxNNtx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.4555.XizskMdx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.4645.XtZEuoSx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.4743.XdxLgrbx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.4787.XMMKoLyx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.4849.XyLwCcmx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.4885.XWRCYSox 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.4996.XKSJoscx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.5046.XskWZbXx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.5067.XChFgvAx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.5106.XUpaTofx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.5155.XFZBmshx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.5160.XiIBjzdx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.5198.XkhJPEnx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.5243.XFeLOJCx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.5412.XbjqJskx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.5414.XxhFHllx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.5420.XLOXSYfx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.5554.XzdExSQx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.5600.XBOzTuEx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.5641.XwNFbDmx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.5720.XZXmMrWx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.5766.XgGQHjlx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.5906.XECHEHQx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.5974.XyMLsLcx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.6015.XgWXVjsx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.6091.XQDLUXhx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.6174.XknkaSSx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.6225.XDIPXuRx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.6566.XgVwFsJx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.6617.XhLwqfpx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.6682.XjOnlqmx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.6773.XxSDkeYx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.6823.XsDrTrax 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.6879.XtjeyPix 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.6923.XMBXFeOx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.6962.XBrXNahx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.7007.XZvsPrWx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.7242.XYOTWjGx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.7307.XiIQxbFx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.7361.XgiHOLXx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.7465.XnIegWux 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.7592.Xubaczsx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.7725.XUPzCUwx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.7770.XAjupIJx 1007s May 02 21:43:54 Skipping duplicate data .coverage.autopkgtest-lxd-drkmvr.7772.XxCmfJGx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.7775.XnVmcpcx 1007s May 02 21:43:54 Combined data file .coverage.autopkgtest-lxd-drkmvr.7786.XYqtlpSx 1012s May 02 21:43:59 Name Stmts Miss Cover 1012s May 02 21:43:59 ------------------------------------------------------------------------------------------------------------- 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/OpenSSL/SSL.py 1159 642 45% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/OpenSSL/__init__.py 3 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/OpenSSL/_util.py 44 15 66% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/OpenSSL/crypto.py 869 663 24% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/OpenSSL/version.py 9 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/_distutils_hack/__init__.py 101 96 5% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/bcrypt/__init__.py 3 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/__about__.py 5 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/__init__.py 3 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/exceptions.py 26 5 81% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/hazmat/__init__.py 2 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/hazmat/_oid.py 135 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/__init__.py 0 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/__init__.py 0 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/_conditional.py 38 17 55% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/binding.py 51 4 92% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/hazmat/decrepit/__init__.py 1 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/hazmat/decrepit/ciphers/__init__.py 1 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/hazmat/decrepit/ciphers/algorithms.py 68 18 74% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/__init__.py 0 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_asymmetric.py 6 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_cipheralgorithm.py 23 4 83% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_serialization.py 79 35 56% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/__init__.py 0 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/dh.py 47 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/dsa.py 55 5 91% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ec.py 172 22 87% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ed448.py 45 12 73% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ed25519.py 43 12 72% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/padding.py 55 23 58% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/rsa.py 93 40 57% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/types.py 19 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/utils.py 14 5 64% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/x448.py 43 12 72% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/x25519.py 41 12 71% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/__init__.py 4 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/algorithms.py 72 15 79% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/base.py 54 12 78% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/modes.py 140 59 58% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/constant_time.py 6 3 50% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/hashes.py 127 20 84% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/__init__.py 5 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/base.py 7 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/ssh.py 775 614 21% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/utils.py 76 28 63% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/x509/__init__.py 70 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/x509/base.py 488 227 53% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/x509/certificate_transparency.py 42 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/x509/extensions.py 1024 552 46% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/x509/general_name.py 166 94 43% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/x509/name.py 236 144 39% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/x509/oid.py 3 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/cryptography/x509/verification.py 12 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dateutil/__init__.py 13 4 69% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dateutil/_common.py 25 15 40% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dateutil/_version.py 13 3 77% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dateutil/parser/__init__.py 33 4 88% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dateutil/parser/_parser.py 810 436 46% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dateutil/parser/isoparser.py 183 150 18% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dateutil/relativedelta.py 240 206 14% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dateutil/tz/__init__.py 4 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dateutil/tz/_common.py 151 114 25% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dateutil/tz/_factories.py 49 21 57% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dateutil/tz/tz.py 794 626 21% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dateutil/tz/win.py 152 149 2% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/__init__.py 2 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/_asyncbackend.py 14 6 57% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/_ddr.py 105 86 18% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/_features.py 46 8 83% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/_immutable_ctx.py 40 5 88% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/asyncbackend.py 44 32 27% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/asyncquery.py 322 283 12% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/edns.py 307 185 40% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/entropy.py 80 49 39% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/enum.py 72 46 36% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/exception.py 59 33 44% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/flags.py 40 14 65% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/grange.py 33 30 9% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/immutable.py 41 30 27% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/inet.py 79 65 18% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/ipv4.py 26 20 23% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/ipv6.py 114 100 12% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/message.py 829 676 18% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/name.py 617 425 31% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/nameserver.py 102 55 46% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/node.py 117 71 39% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/opcode.py 30 7 77% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/query.py 562 477 15% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/quic/__init__.py 28 23 18% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/rcode.py 68 13 81% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/rdata.py 386 277 28% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/rdataclass.py 43 9 79% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/rdataset.py 192 133 31% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/rdatatype.py 215 23 89% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/OPT.py 34 19 44% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/SOA.py 41 26 37% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/TSIG.py 58 42 28% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/ZONEMD.py 43 27 37% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/__init__.py 1 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/rdtypes/__init__.py 1 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/rdtypes/svcbbase.py 415 268 35% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/rdtypes/util.py 191 154 19% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/renderer.py 151 118 22% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/resolver.py 873 696 20% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/reversename.py 32 24 25% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/rrset.py 77 56 27% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/serial.py 92 79 14% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/set.py 148 107 28% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/tokenizer.py 334 279 16% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/transaction.py 269 201 25% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/tsig.py 176 122 31% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/ttl.py 44 38 14% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/version.py 6 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/wire.py 64 42 34% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/xfr.py 148 126 15% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/zone.py 507 383 24% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/zonefile.py 427 379 11% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/dns/zonetypes.py 14 2 86% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/etcd/__init__.py 125 63 50% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/etcd/client.py 380 256 33% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/etcd/lock.py 125 103 18% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/idna/__init__.py 4 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/idna/core.py 292 257 12% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/idna/idnadata.py 4 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/idna/intranges.py 30 24 20% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/idna/package_data.py 1 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/__init__.py 13 2 85% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/__main__.py 201 63 69% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/api.py 788 292 63% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/async_executor.py 96 15 84% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/collections.py 56 5 91% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/config.py 357 84 76% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/config_generator.py 212 159 25% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/daemon.py 76 3 96% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/dcs/__init__.py 710 96 86% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/dcs/etcd3.py 679 128 81% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/dcs/etcd.py 603 259 57% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/dynamic_loader.py 35 7 80% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/exceptions.py 16 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/file_perm.py 47 10 79% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/global_config.py 87 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/ha.py 1359 371 73% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/log.py 235 79 66% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/postgresql/__init__.py 825 158 81% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/postgresql/available_parameters/__init__.py 24 3 88% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/postgresql/bootstrap.py 254 60 76% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/postgresql/callback_executor.py 55 8 85% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/postgresql/cancellable.py 104 41 61% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/postgresql/config.py 839 215 74% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/postgresql/connection.py 75 1 99% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/postgresql/misc.py 43 8 81% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/postgresql/mpp/__init__.py 89 11 88% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/postgresql/postmaster.py 170 83 51% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/postgresql/rewind.py 416 128 69% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/postgresql/slots.py 349 35 90% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/postgresql/sync.py 154 10 94% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/postgresql/validator.py 157 24 85% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/psycopg.py 46 19 59% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/quorum.py 182 48 74% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/request.py 58 7 88% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/tags.py 38 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/utils.py 371 102 73% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/validator.py 309 215 30% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/version.py 1 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/watchdog/__init__.py 2 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/watchdog/base.py 203 42 79% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/patroni/watchdog/linux.py 135 35 74% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/psutil/__init__.py 945 622 34% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/psutil/_common.py 408 208 49% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/psutil/_pslinux.py 1225 907 26% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/psutil/_psposix.py 84 37 56% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/psycopg2/__init__.py 19 3 84% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/psycopg2/_json.py 64 27 58% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/psycopg2/_range.py 269 172 36% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/psycopg2/errors.py 3 2 33% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/psycopg2/extensions.py 91 25 73% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/urllib3/__init__.py 49 15 69% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/urllib3/_base_connection.py 63 45 29% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/urllib3/_collections.py 231 124 46% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/urllib3/_request_methods.py 54 24 56% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/urllib3/_version.py 13 3 77% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/urllib3/connection.py 389 137 65% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/urllib3/connectionpool.py 344 129 62% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/urllib3/contrib/__init__.py 0 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/urllib3/contrib/pyopenssl.py 263 101 62% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/urllib3/exceptions.py 121 39 68% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/urllib3/fields.py 92 73 21% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/urllib3/filepost.py 37 24 35% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/urllib3/http2/__init__.py 28 21 25% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/urllib3/http2/probe.py 49 31 37% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/urllib3/poolmanager.py 233 86 63% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/urllib3/response.py 634 330 48% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/urllib3/util/__init__.py 10 0 100% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/urllib3/util/connection.py 66 42 36% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/urllib3/util/proxy.py 13 6 54% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/urllib3/util/request.py 104 49 53% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/urllib3/util/response.py 32 15 53% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/urllib3/util/retry.py 174 51 71% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/urllib3/util/ssl_.py 172 74 57% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/urllib3/util/ssl_match_hostname.py 66 54 18% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/urllib3/util/ssltransport.py 152 106 30% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/urllib3/util/timeout.py 71 14 80% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/urllib3/util/url.py 203 73 64% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/urllib3/util/util.py 26 10 62% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/urllib3/util/wait.py 49 18 63% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/yaml/__init__.py 165 109 34% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/yaml/composer.py 92 17 82% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/yaml/constructor.py 479 276 42% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/yaml/cyaml.py 46 24 48% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/yaml/dumper.py 23 12 48% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/yaml/emitter.py 838 769 8% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/yaml/error.py 58 42 28% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/yaml/events.py 61 6 90% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/yaml/loader.py 47 24 49% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/yaml/nodes.py 29 7 76% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/yaml/parser.py 352 198 44% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/yaml/reader.py 122 34 72% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/yaml/representer.py 248 176 29% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/yaml/resolver.py 135 76 44% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/yaml/scanner.py 758 437 42% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/yaml/serializer.py 85 70 18% 1012s May 02 21:43:59 /usr/lib/python3/dist-packages/yaml/tokens.py 76 17 78% 1012s May 02 21:43:59 patroni/__init__.py 13 2 85% 1012s May 02 21:43:59 patroni/__main__.py 201 201 0% 1012s May 02 21:43:59 patroni/api.py 788 788 0% 1012s May 02 21:43:59 patroni/async_executor.py 96 69 28% 1012s May 02 21:43:59 patroni/collections.py 56 15 73% 1012s May 02 21:43:59 patroni/config.py 357 186 48% 1012s May 02 21:43:59 patroni/config_generator.py 212 212 0% 1012s May 02 21:43:59 patroni/ctl.py 936 395 58% 1012s May 02 21:43:59 patroni/daemon.py 76 76 0% 1012s May 02 21:43:59 patroni/dcs/__init__.py 710 315 56% 1012s May 02 21:43:59 patroni/dcs/consul.py 482 482 0% 1012s May 02 21:43:59 patroni/dcs/etcd3.py 679 346 49% 1012s May 02 21:43:59 patroni/dcs/etcd.py 603 280 54% 1012s May 02 21:43:59 patroni/dcs/exhibitor.py 62 62 0% 1012s May 02 21:43:59 patroni/dcs/kubernetes.py 943 943 0% 1012s May 02 21:43:59 patroni/dcs/raft.py 319 319 0% 1012s May 02 21:43:59 patroni/dcs/zookeeper.py 289 289 0% 1012s May 02 21:43:59 patroni/dynamic_loader.py 35 7 80% 1012s May 02 21:43:59 patroni/exceptions.py 16 1 94% 1012s May 02 21:43:59 patroni/file_perm.py 47 17 64% 1012s May 02 21:43:59 patroni/global_config.py 87 19 78% 1012s May 02 21:43:59 patroni/ha.py 1359 1359 0% 1012s May 02 21:43:59 patroni/log.py 235 183 22% 1012s May 02 21:43:59 patroni/postgresql/__init__.py 825 653 21% 1012s May 02 21:43:59 patroni/postgresql/available_parameters/__init__.py 24 3 88% 1012s May 02 21:43:59 patroni/postgresql/bootstrap.py 254 224 12% 1012s May 02 21:43:59 patroni/postgresql/callback_executor.py 55 34 38% 1012s May 02 21:43:59 patroni/postgresql/cancellable.py 104 84 19% 1012s May 02 21:43:59 patroni/postgresql/config.py 839 719 14% 1012s May 02 21:43:59 patroni/postgresql/connection.py 75 50 33% 1012s May 02 21:43:59 patroni/postgresql/misc.py 43 30 30% 1012s May 02 21:43:59 patroni/postgresql/mpp/__init__.py 89 21 76% 1012s May 02 21:43:59 patroni/postgresql/mpp/citus.py 366 366 0% 1012s May 02 21:43:59 patroni/postgresql/postmaster.py 170 139 18% 1012s May 02 21:43:59 patroni/postgresql/rewind.py 416 416 0% 1012s May 02 21:43:59 patroni/postgresql/slots.py 349 300 14% 1012s May 02 21:43:59 patroni/postgresql/sync.py 154 114 26% 1012s May 02 21:43:59 patroni/postgresql/validator.py 157 52 67% 1012s May 02 21:43:59 patroni/psycopg.py 46 32 30% 1012s May 02 21:43:59 patroni/quorum.py 182 182 0% 1012s May 02 21:43:59 patroni/raft_controller.py 22 22 0% 1012s May 02 21:43:59 patroni/request.py 58 6 90% 1012s May 02 21:43:59 patroni/scripts/__init__.py 0 0 100% 1012s May 02 21:43:59 patroni/scripts/aws.py 59 59 0% 1012s May 02 21:43:59 patroni/scripts/barman/__init__.py 0 0 100% 1012s May 02 21:43:59 patroni/scripts/barman/cli.py 50 50 0% 1012s May 02 21:43:59 patroni/scripts/barman/config_switch.py 50 50 0% 1012s May 02 21:43:59 patroni/scripts/barman/recover.py 36 36 0% 1012s May 02 21:43:59 patroni/scripts/barman/utils.py 93 93 0% 1012s May 02 21:43:59 patroni/scripts/wale_restore.py 207 207 0% 1012s May 02 21:43:59 patroni/tags.py 38 11 71% 1012s May 02 21:43:59 patroni/utils.py 371 186 50% 1012s May 02 21:43:59 patroni/validator.py 309 222 28% 1012s May 02 21:43:59 patroni/version.py 1 0 100% 1012s May 02 21:43:59 patroni/watchdog/__init__.py 2 2 0% 1012s May 02 21:43:59 patroni/watchdog/base.py 203 203 0% 1012s May 02 21:43:59 patroni/watchdog/linux.py 135 135 0% 1012s May 02 21:43:59 ------------------------------------------------------------------------------------------------------------- 1012s May 02 21:43:59 TOTAL 54059 32294 40% 1012s May 02 21:43:59 13 features passed, 0 failed, 1 skipped 1012s May 02 21:43:59 55 scenarios passed, 0 failed, 14 skipped 1012s May 02 21:43:59 539 steps passed, 0 failed, 128 skipped, 0 undefined 1012s May 02 21:43:59 Took 9m14.104s 1012s ### End 17 acceptance-etcd3 ### 1012s + echo '### End 17 acceptance-etcd3 ###' 1012s + rm -f '/tmp/pgpass?' 1012s ++ id -u 1012s + '[' 1000 -eq 0 ']' 1012s autopkgtest [21:43:59]: test acceptance-etcd3: -----------------------] 1016s acceptance-etcd3 PASS 1016s autopkgtest [21:44:03]: test acceptance-etcd3: - - - - - - - - - - results - - - - - - - - - - 1020s autopkgtest [21:44:07]: test acceptance-etcd-basic: preparing testbed 1042s autopkgtest [21:44:29]: testbed dpkg architecture: armhf 1043s autopkgtest [21:44:30]: testbed apt version: 3.0.0 1047s autopkgtest [21:44:34]: @@@@@@@@@@@@@@@@@@@@ test bed setup 1049s autopkgtest [21:44:36]: testbed release detected to be: questing 1056s autopkgtest [21:44:43]: updating testbed package index (apt update) 1058s Get:1 http://ftpmaster.internal/ubuntu questing-proposed InRelease [110 kB] 1059s Get:2 http://ftpmaster.internal/ubuntu questing InRelease [110 kB] 1059s Get:3 http://ftpmaster.internal/ubuntu questing-updates InRelease [110 kB] 1059s Get:4 http://ftpmaster.internal/ubuntu questing-security InRelease [110 kB] 1059s Get:5 http://ftpmaster.internal/ubuntu questing-proposed/main Sources [167 kB] 1059s Get:6 http://ftpmaster.internal/ubuntu questing-proposed/universe Sources [1968 kB] 1059s Get:7 http://ftpmaster.internal/ubuntu questing-proposed/multiverse Sources [43.1 kB] 1059s Get:8 http://ftpmaster.internal/ubuntu questing-proposed/main armhf Packages [201 kB] 1059s Get:9 http://ftpmaster.internal/ubuntu questing-proposed/universe armhf Packages [1375 kB] 1059s Get:10 http://ftpmaster.internal/ubuntu questing-proposed/multiverse armhf Packages [12.9 kB] 1059s Get:11 http://ftpmaster.internal/ubuntu questing/main Sources [1386 kB] 1059s Get:12 http://ftpmaster.internal/ubuntu questing/multiverse Sources [299 kB] 1059s Get:13 http://ftpmaster.internal/ubuntu questing/universe Sources [21.1 MB] 1060s Get:14 http://ftpmaster.internal/ubuntu questing/main armhf Packages [1358 kB] 1060s Get:15 http://ftpmaster.internal/ubuntu questing/universe armhf Packages [15.2 MB] 1060s Get:16 http://ftpmaster.internal/ubuntu questing/multiverse armhf Packages [173 kB] 1064s Fetched 43.7 MB in 5s (8334 kB/s) 1065s Reading package lists... 1070s autopkgtest [21:44:57]: upgrading testbed (apt dist-upgrade and autopurge) 1072s Reading package lists... 1073s Building dependency tree... 1073s Reading state information... 1073s Calculating upgrade...Starting pkgProblemResolver with broken count: 0 1073s Starting 2 pkgProblemResolver with broken count: 0 1073s Done 1074s Entering ResolveByKeep 1075s 1075s Calculating upgrade... 1076s The following packages will be upgraded: 1076s base-files distro-info-data dpkg dpkg-dev fwupd htop libdpkg-perl libftdi1-2 1076s libfwupd3 libnpth0t64 libsensors-config libsensors5 liburcu8t64 1076s motd-news-config nano ubuntu-pro-client ubuntu-pro-client-l10n usb.ids 1076s 18 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 1076s Need to get 5303 kB of archives. 1076s After this operation, 3722 kB disk space will be freed. 1076s Get:1 http://ftpmaster.internal/ubuntu questing/main armhf motd-news-config all 13.7ubuntu1 [5260 B] 1076s Get:2 http://ftpmaster.internal/ubuntu questing/main armhf base-files armhf 13.7ubuntu1 [75.4 kB] 1076s Get:3 http://ftpmaster.internal/ubuntu questing/main armhf dpkg armhf 1.22.18ubuntu3 [1254 kB] 1076s Get:4 http://ftpmaster.internal/ubuntu questing/main armhf libnpth0t64 armhf 1.8-3 [7716 B] 1076s Get:5 http://ftpmaster.internal/ubuntu questing/main armhf distro-info-data all 0.64 [6664 B] 1076s Get:6 http://ftpmaster.internal/ubuntu questing/main armhf ubuntu-pro-client-l10n armhf 35.1ubuntu0 [19.7 kB] 1076s Get:7 http://ftpmaster.internal/ubuntu questing/main armhf ubuntu-pro-client armhf 35.1ubuntu0 [258 kB] 1076s Get:8 http://ftpmaster.internal/ubuntu questing/main armhf libsensors-config all 1:3.6.2-2 [6756 B] 1076s Get:9 http://ftpmaster.internal/ubuntu questing/main armhf libsensors5 armhf 1:3.6.2-2 [26.8 kB] 1076s Get:10 http://ftpmaster.internal/ubuntu questing/main armhf liburcu8t64 armhf 0.15.2-2 [57.3 kB] 1076s Get:11 http://ftpmaster.internal/ubuntu questing/main armhf nano armhf 8.4-1 [278 kB] 1076s Get:12 http://ftpmaster.internal/ubuntu questing/main armhf usb.ids all 2025.04.01-1 [223 kB] 1076s Get:13 http://ftpmaster.internal/ubuntu questing/main armhf dpkg-dev all 1.22.18ubuntu3 [1089 kB] 1076s Get:14 http://ftpmaster.internal/ubuntu questing/main armhf libdpkg-perl all 1.22.18ubuntu3 [281 kB] 1076s Get:15 http://ftpmaster.internal/ubuntu questing/main armhf fwupd armhf 2.0.8-3 [1414 kB] 1076s Get:16 http://ftpmaster.internal/ubuntu questing/main armhf libfwupd3 armhf 2.0.8-3 [126 kB] 1076s Get:17 http://ftpmaster.internal/ubuntu questing/main armhf htop armhf 3.4.1-4 [147 kB] 1076s Get:18 http://ftpmaster.internal/ubuntu questing/main armhf libftdi1-2 armhf 1.5-10 [27.8 kB] 1077s Fetched 5303 kB in 1s (6912 kB/s) 1077s (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.) 1077s Preparing to unpack .../motd-news-config_13.7ubuntu1_all.deb ... 1077s Unpacking motd-news-config (13.7ubuntu1) over (13.6ubuntu2) ... 1077s Preparing to unpack .../base-files_13.7ubuntu1_armhf.deb ... 1077s Unpacking base-files (13.7ubuntu1) over (13.6ubuntu2) ... 1077s Setting up base-files (13.7ubuntu1) ... 1077s Installing new version of config file /etc/issue ... 1077s Installing new version of config file /etc/issue.net ... 1077s Installing new version of config file /etc/lsb-release ... 1079s motd-news.service is a disabled or a static unit not running, not starting it. 1079s (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.) 1079s Preparing to unpack .../dpkg_1.22.18ubuntu3_armhf.deb ... 1079s Unpacking dpkg (1.22.18ubuntu3) over (1.22.18ubuntu2) ... 1079s Setting up dpkg (1.22.18ubuntu3) ... 1080s (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.) 1080s Preparing to unpack .../libnpth0t64_1.8-3_armhf.deb ... 1080s Unpacking libnpth0t64:armhf (1.8-3) over (1.8-2) ... 1080s Setting up libnpth0t64:armhf (1.8-3) ... 1080s (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.) 1080s Preparing to unpack .../00-distro-info-data_0.64_all.deb ... 1080s Unpacking distro-info-data (0.64) over (0.63) ... 1080s Preparing to unpack .../01-ubuntu-pro-client-l10n_35.1ubuntu0_armhf.deb ... 1080s Unpacking ubuntu-pro-client-l10n (35.1ubuntu0) over (35) ... 1080s Preparing to unpack .../02-ubuntu-pro-client_35.1ubuntu0_armhf.deb ... 1080s Unpacking ubuntu-pro-client (35.1ubuntu0) over (35) ... 1080s Preparing to unpack .../03-libsensors-config_1%3a3.6.2-2_all.deb ... 1080s Unpacking libsensors-config (1:3.6.2-2) over (1:3.6.0-10) ... 1080s Preparing to unpack .../04-libsensors5_1%3a3.6.2-2_armhf.deb ... 1080s Unpacking libsensors5:armhf (1:3.6.2-2) over (1:3.6.0-10) ... 1080s Preparing to unpack .../05-liburcu8t64_0.15.2-2_armhf.deb ... 1080s Unpacking liburcu8t64:armhf (0.15.2-2) over (0.15.1-1) ... 1080s Preparing to unpack .../06-nano_8.4-1_armhf.deb ... 1080s Unpacking nano (8.4-1) over (8.3-1) ... 1081s Preparing to unpack .../07-usb.ids_2025.04.01-1_all.deb ... 1081s Unpacking usb.ids (2025.04.01-1) over (2025.01.14-1) ... 1081s Preparing to unpack .../08-dpkg-dev_1.22.18ubuntu3_all.deb ... 1081s Unpacking dpkg-dev (1.22.18ubuntu3) over (1.22.18ubuntu2) ... 1081s Preparing to unpack .../09-libdpkg-perl_1.22.18ubuntu3_all.deb ... 1081s Unpacking libdpkg-perl (1.22.18ubuntu3) over (1.22.18ubuntu2) ... 1081s Preparing to unpack .../10-fwupd_2.0.8-3_armhf.deb ... 1081s Unpacking fwupd (2.0.8-3) over (2.0.7-1) ... 1081s dpkg: warning: unable to delete old directory '/etc/grub.d': Directory not empty 1082s Preparing to unpack .../11-libfwupd3_2.0.8-3_armhf.deb ... 1082s Unpacking libfwupd3:armhf (2.0.8-3) over (2.0.7-1) ... 1082s Preparing to unpack .../12-htop_3.4.1-4_armhf.deb ... 1082s Unpacking htop (3.4.1-4) over (3.4.0-2) ... 1082s Preparing to unpack .../13-libftdi1-2_1.5-10_armhf.deb ... 1082s Unpacking libftdi1-2:armhf (1.5-10) over (1.5-8build1) ... 1082s Setting up motd-news-config (13.7ubuntu1) ... 1082s Setting up liburcu8t64:armhf (0.15.2-2) ... 1082s Setting up distro-info-data (0.64) ... 1082s Setting up htop (3.4.1-4) ... 1082s Setting up libsensors-config (1:3.6.2-2) ... 1082s Installing new version of config file /etc/sensors3.conf ... 1082s Setting up libfwupd3:armhf (2.0.8-3) ... 1082s Setting up libftdi1-2:armhf (1.5-10) ... 1082s Setting up usb.ids (2025.04.01-1) ... 1082s Setting up libsensors5:armhf (1:3.6.2-2) ... 1082s Setting up libdpkg-perl (1.22.18ubuntu3) ... 1082s Setting up nano (8.4-1) ... 1082s Installing new version of config file /etc/nanorc ... 1082s Setting up ubuntu-pro-client (35.1ubuntu0) ... 1082s apparmor_parser: Unable to replace "ubuntu_pro_apt_news". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 1082s 1082s apparmor_parser: Unable to replace "apt_methods". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 1082s 1082s apparmor_parser: Unable to replace "ubuntu_pro_esm_cache". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 1082s 1084s Setting up fwupd (2.0.8-3) ... 1085s fwupd-refresh.service is a disabled or a static unit not running, not starting it. 1085s fwupd.service is a disabled or a static unit not running, not starting it. 1085s Setting up ubuntu-pro-client-l10n (35.1ubuntu0) ... 1085s Setting up dpkg-dev (1.22.18ubuntu3) ... 1085s Processing triggers for dbus (1.16.2-2ubuntu1) ... 1085s Processing triggers for install-info (7.1.1-1) ... 1085s Processing triggers for libc-bin (2.41-6ubuntu1) ... 1085s Processing triggers for man-db (2.13.0-1) ... 1087s Processing triggers for plymouth-theme-ubuntu-text (24.004.60-2ubuntu7) ... 1087s Processing triggers for initramfs-tools (0.147ubuntu1) ... 1089s Reading package lists... 1089s Building dependency tree... 1089s Reading state information... 1090s Starting pkgProblemResolver with broken count: 0 1090s Starting 2 pkgProblemResolver with broken count: 0 1090s Done 1090s Solving dependencies... 1091s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 1093s autopkgtest [21:45:20]: rebooting testbed after setup commands that affected boot 1154s Reading package lists... 1154s Building dependency tree... 1154s Reading state information... 1155s Starting pkgProblemResolver with broken count: 0 1155s Starting 2 pkgProblemResolver with broken count: 0 1155s Done 1156s The following NEW packages will be installed: 1156s etcd-server fonts-font-awesome fonts-lato libio-pty-perl libipc-run-perl 1156s libjs-jquery libjs-sphinxdoc libjs-underscore libjson-perl libllvm20 libpq5 1156s libtime-duration-perl libtimedate-perl libxslt1.1 moreutils patroni 1156s patroni-doc postgresql postgresql-17 postgresql-client-17 1156s postgresql-client-common postgresql-common postgresql-common-dev 1156s python3-behave python3-click python3-coverage python3-dnspython python3-etcd 1156s python3-parse python3-parse-type python3-prettytable python3-psutil 1156s python3-psycopg2 python3-wcwidth python3-ydiff sphinx-rtd-theme-common 1156s ssl-cert 1156s 0 upgraded, 37 newly installed, 0 to remove and 0 not upgraded. 1156s Need to get 64.4 MB of archives. 1156s After this operation, 253 MB of additional disk space will be used. 1156s Get:1 http://ftpmaster.internal/ubuntu questing/main armhf fonts-lato all 2.015-1 [2781 kB] 1157s Get:2 http://ftpmaster.internal/ubuntu questing/main armhf libjson-perl all 4.10000-1 [81.9 kB] 1157s Get:3 http://ftpmaster.internal/ubuntu questing/main armhf postgresql-client-common all 274 [47.6 kB] 1157s Get:4 http://ftpmaster.internal/ubuntu questing/main armhf libio-pty-perl armhf 1:1.20-1build3 [31.0 kB] 1157s Get:5 http://ftpmaster.internal/ubuntu questing/main armhf libipc-run-perl all 20231003.0-2 [91.5 kB] 1157s Get:6 http://ftpmaster.internal/ubuntu questing/main armhf postgresql-common-dev all 274 [73.0 kB] 1157s Get:7 http://ftpmaster.internal/ubuntu questing/main armhf ssl-cert all 1.1.3ubuntu1 [18.7 kB] 1157s Get:8 http://ftpmaster.internal/ubuntu questing/main armhf postgresql-common all 274 [101 kB] 1157s Get:9 http://ftpmaster.internal/ubuntu questing/universe armhf etcd-server armhf 3.5.16-4 [11.3 MB] 1157s Get:10 http://ftpmaster.internal/ubuntu questing/main armhf fonts-font-awesome all 5.0.10+really4.7.0~dfsg-4.1 [516 kB] 1157s Get:11 http://ftpmaster.internal/ubuntu questing/main armhf libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 1157s Get:12 http://ftpmaster.internal/ubuntu questing/main armhf libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [118 kB] 1157s Get:13 http://ftpmaster.internal/ubuntu questing/main armhf libjs-sphinxdoc all 8.1.3-5 [31.0 kB] 1157s Get:14 http://ftpmaster.internal/ubuntu questing/main armhf libllvm20 armhf 1:20.1.2-0ubuntu1 [29.6 MB] 1158s Get:15 http://ftpmaster.internal/ubuntu questing/main armhf libpq5 armhf 17.4-1 [125 kB] 1158s Get:16 http://ftpmaster.internal/ubuntu questing/main armhf libtime-duration-perl all 1.21-2 [12.3 kB] 1158s Get:17 http://ftpmaster.internal/ubuntu questing/main armhf libtimedate-perl all 2.3300-2 [34.0 kB] 1158s Get:18 http://ftpmaster.internal/ubuntu questing/main armhf libxslt1.1 armhf 1.1.39-0exp1ubuntu4 [151 kB] 1158s Get:19 http://ftpmaster.internal/ubuntu questing/universe armhf moreutils armhf 0.69-1 [53.5 kB] 1158s Get:20 http://ftpmaster.internal/ubuntu questing/main armhf python3-click all 8.2.0+0.really.8.1.8-1 [80.0 kB] 1158s Get:21 http://ftpmaster.internal/ubuntu questing/main armhf python3-wcwidth all 0.2.13+dfsg1-1 [26.3 kB] 1158s Get:22 http://ftpmaster.internal/ubuntu questing/main armhf python3-prettytable all 3.12.0-1 [36.5 kB] 1158s Get:23 http://ftpmaster.internal/ubuntu questing-proposed/main armhf python3-psutil armhf 7.0.0-2 [187 kB] 1158s Get:24 http://ftpmaster.internal/ubuntu questing/universe armhf python3-ydiff all 1.4.2-1 [19.0 kB] 1158s Get:25 http://ftpmaster.internal/ubuntu questing/main armhf python3-psycopg2 armhf 2.9.10-1build1 [125 kB] 1158s Get:26 http://ftpmaster.internal/ubuntu questing/main armhf python3-dnspython all 2.7.0-1ubuntu1 [167 kB] 1158s Get:27 http://ftpmaster.internal/ubuntu questing/universe armhf python3-etcd all 0.4.5-6 [32.1 kB] 1158s Get:28 http://ftpmaster.internal/ubuntu questing/universe armhf patroni all 4.0.4-7 [281 kB] 1158s Get:29 http://ftpmaster.internal/ubuntu questing/main armhf sphinx-rtd-theme-common all 3.0.2+dfsg-2 [1014 kB] 1158s Get:30 http://ftpmaster.internal/ubuntu questing/universe armhf patroni-doc all 4.0.4-7 [526 kB] 1158s Get:31 http://ftpmaster.internal/ubuntu questing/main armhf postgresql-client-17 armhf 17.4-1 [1285 kB] 1158s Get:32 http://ftpmaster.internal/ubuntu questing/main armhf postgresql-17 armhf 17.4-1 [14.8 MB] 1159s Get:33 http://ftpmaster.internal/ubuntu questing/main armhf postgresql all 17+274 [14.4 kB] 1159s Get:34 http://ftpmaster.internal/ubuntu questing/universe armhf python3-parse all 1.20.2-1 [27.0 kB] 1159s Get:35 http://ftpmaster.internal/ubuntu questing/universe armhf python3-parse-type all 0.6.4-2 [23.5 kB] 1159s Get:36 http://ftpmaster.internal/ubuntu questing/universe armhf python3-behave all 1.2.6-6 [98.6 kB] 1159s Get:37 http://ftpmaster.internal/ubuntu questing/universe armhf python3-coverage armhf 7.6.0+dfsg1-2build1 [152 kB] 1159s Preconfiguring packages ... 1159s /var/cache/debconf/tmp.ci/postgresql.config.Jz2Z1Y: 12: pg_lsclusters: not found 1159s Fetched 64.4 MB in 3s (24.4 MB/s) 1159s Selecting previously unselected package fonts-lato. 1159s (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 ... 63951 files and directories currently installed.) 1159s Preparing to unpack .../00-fonts-lato_2.015-1_all.deb ... 1159s Unpacking fonts-lato (2.015-1) ... 1160s Selecting previously unselected package libjson-perl. 1160s Preparing to unpack .../01-libjson-perl_4.10000-1_all.deb ... 1160s Unpacking libjson-perl (4.10000-1) ... 1160s Selecting previously unselected package postgresql-client-common. 1160s Preparing to unpack .../02-postgresql-client-common_274_all.deb ... 1160s Unpacking postgresql-client-common (274) ... 1160s Selecting previously unselected package libio-pty-perl. 1160s Preparing to unpack .../03-libio-pty-perl_1%3a1.20-1build3_armhf.deb ... 1160s Unpacking libio-pty-perl (1:1.20-1build3) ... 1160s Selecting previously unselected package libipc-run-perl. 1160s Preparing to unpack .../04-libipc-run-perl_20231003.0-2_all.deb ... 1160s Unpacking libipc-run-perl (20231003.0-2) ... 1160s Selecting previously unselected package postgresql-common-dev. 1160s Preparing to unpack .../05-postgresql-common-dev_274_all.deb ... 1160s Unpacking postgresql-common-dev (274) ... 1160s Selecting previously unselected package ssl-cert. 1160s Preparing to unpack .../06-ssl-cert_1.1.3ubuntu1_all.deb ... 1160s Unpacking ssl-cert (1.1.3ubuntu1) ... 1160s Selecting previously unselected package postgresql-common. 1160s Preparing to unpack .../07-postgresql-common_274_all.deb ... 1160s Adding 'diversion of /usr/bin/pg_config to /usr/bin/pg_config.libpq-dev by postgresql-common' 1160s Unpacking postgresql-common (274) ... 1160s Selecting previously unselected package etcd-server. 1160s Preparing to unpack .../08-etcd-server_3.5.16-4_armhf.deb ... 1160s Unpacking etcd-server (3.5.16-4) ... 1160s Selecting previously unselected package fonts-font-awesome. 1160s Preparing to unpack .../09-fonts-font-awesome_5.0.10+really4.7.0~dfsg-4.1_all.deb ... 1160s Unpacking fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 1161s Selecting previously unselected package libjs-jquery. 1161s Preparing to unpack .../10-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 1161s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 1161s Selecting previously unselected package libjs-underscore. 1161s Preparing to unpack .../11-libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ... 1161s Unpacking libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 1161s Selecting previously unselected package libjs-sphinxdoc. 1161s Preparing to unpack .../12-libjs-sphinxdoc_8.1.3-5_all.deb ... 1161s Unpacking libjs-sphinxdoc (8.1.3-5) ... 1161s Selecting previously unselected package libllvm20:armhf. 1161s Preparing to unpack .../13-libllvm20_1%3a20.1.2-0ubuntu1_armhf.deb ... 1161s Unpacking libllvm20:armhf (1:20.1.2-0ubuntu1) ... 1162s Selecting previously unselected package libpq5:armhf. 1162s Preparing to unpack .../14-libpq5_17.4-1_armhf.deb ... 1162s Unpacking libpq5:armhf (17.4-1) ... 1162s Selecting previously unselected package libtime-duration-perl. 1162s Preparing to unpack .../15-libtime-duration-perl_1.21-2_all.deb ... 1162s Unpacking libtime-duration-perl (1.21-2) ... 1162s Selecting previously unselected package libtimedate-perl. 1162s Preparing to unpack .../16-libtimedate-perl_2.3300-2_all.deb ... 1162s Unpacking libtimedate-perl (2.3300-2) ... 1162s Selecting previously unselected package libxslt1.1:armhf. 1162s Preparing to unpack .../17-libxslt1.1_1.1.39-0exp1ubuntu4_armhf.deb ... 1162s Unpacking libxslt1.1:armhf (1.1.39-0exp1ubuntu4) ... 1162s Selecting previously unselected package moreutils. 1162s Preparing to unpack .../18-moreutils_0.69-1_armhf.deb ... 1162s Unpacking moreutils (0.69-1) ... 1162s Selecting previously unselected package python3-click. 1162s Preparing to unpack .../19-python3-click_8.2.0+0.really.8.1.8-1_all.deb ... 1162s Unpacking python3-click (8.2.0+0.really.8.1.8-1) ... 1162s Selecting previously unselected package python3-wcwidth. 1162s Preparing to unpack .../20-python3-wcwidth_0.2.13+dfsg1-1_all.deb ... 1162s Unpacking python3-wcwidth (0.2.13+dfsg1-1) ... 1162s Selecting previously unselected package python3-prettytable. 1162s Preparing to unpack .../21-python3-prettytable_3.12.0-1_all.deb ... 1162s Unpacking python3-prettytable (3.12.0-1) ... 1162s Selecting previously unselected package python3-psutil. 1162s Preparing to unpack .../22-python3-psutil_7.0.0-2_armhf.deb ... 1162s Unpacking python3-psutil (7.0.0-2) ... 1162s Selecting previously unselected package python3-ydiff. 1162s Preparing to unpack .../23-python3-ydiff_1.4.2-1_all.deb ... 1162s Unpacking python3-ydiff (1.4.2-1) ... 1162s Selecting previously unselected package python3-psycopg2. 1162s Preparing to unpack .../24-python3-psycopg2_2.9.10-1build1_armhf.deb ... 1162s Unpacking python3-psycopg2 (2.9.10-1build1) ... 1162s Selecting previously unselected package python3-dnspython. 1162s Preparing to unpack .../25-python3-dnspython_2.7.0-1ubuntu1_all.deb ... 1162s Unpacking python3-dnspython (2.7.0-1ubuntu1) ... 1162s Selecting previously unselected package python3-etcd. 1162s Preparing to unpack .../26-python3-etcd_0.4.5-6_all.deb ... 1162s Unpacking python3-etcd (0.4.5-6) ... 1162s Selecting previously unselected package patroni. 1162s Preparing to unpack .../27-patroni_4.0.4-7_all.deb ... 1162s Unpacking patroni (4.0.4-7) ... 1162s Selecting previously unselected package sphinx-rtd-theme-common. 1162s Preparing to unpack .../28-sphinx-rtd-theme-common_3.0.2+dfsg-2_all.deb ... 1162s Unpacking sphinx-rtd-theme-common (3.0.2+dfsg-2) ... 1162s Selecting previously unselected package patroni-doc. 1162s Preparing to unpack .../29-patroni-doc_4.0.4-7_all.deb ... 1162s Unpacking patroni-doc (4.0.4-7) ... 1162s Selecting previously unselected package postgresql-client-17. 1162s Preparing to unpack .../30-postgresql-client-17_17.4-1_armhf.deb ... 1162s Unpacking postgresql-client-17 (17.4-1) ... 1162s Selecting previously unselected package postgresql-17. 1162s Preparing to unpack .../31-postgresql-17_17.4-1_armhf.deb ... 1162s Unpacking postgresql-17 (17.4-1) ... 1163s Selecting previously unselected package postgresql. 1163s Preparing to unpack .../32-postgresql_17+274_all.deb ... 1163s Unpacking postgresql (17+274) ... 1163s Selecting previously unselected package python3-parse. 1163s Preparing to unpack .../33-python3-parse_1.20.2-1_all.deb ... 1163s Unpacking python3-parse (1.20.2-1) ... 1163s Selecting previously unselected package python3-parse-type. 1163s Preparing to unpack .../34-python3-parse-type_0.6.4-2_all.deb ... 1163s Unpacking python3-parse-type (0.6.4-2) ... 1163s Selecting previously unselected package python3-behave. 1163s Preparing to unpack .../35-python3-behave_1.2.6-6_all.deb ... 1163s Unpacking python3-behave (1.2.6-6) ... 1163s Selecting previously unselected package python3-coverage. 1163s Preparing to unpack .../36-python3-coverage_7.6.0+dfsg1-2build1_armhf.deb ... 1163s Unpacking python3-coverage (7.6.0+dfsg1-2build1) ... 1163s Setting up postgresql-client-common (274) ... 1163s Setting up fonts-lato (2.015-1) ... 1163s Setting up libio-pty-perl (1:1.20-1build3) ... 1163s Setting up python3-ydiff (1.4.2-1) ... 1163s Setting up libpq5:armhf (17.4-1) ... 1163s Setting up python3-coverage (7.6.0+dfsg1-2build1) ... 1164s Setting up python3-click (8.2.0+0.really.8.1.8-1) ... 1164s Setting up python3-psutil (7.0.0-2) ... 1164s Setting up python3-wcwidth (0.2.13+dfsg1-1) ... 1164s Setting up ssl-cert (1.1.3ubuntu1) ... 1165s Created symlink '/etc/systemd/system/multi-user.target.wants/ssl-cert.service' → '/usr/lib/systemd/system/ssl-cert.service'. 1165s Setting up libllvm20:armhf (1:20.1.2-0ubuntu1) ... 1165s Setting up python3-psycopg2 (2.9.10-1build1) ... 1165s Setting up libipc-run-perl (20231003.0-2) ... 1165s Setting up libtime-duration-perl (1.21-2) ... 1165s Setting up libtimedate-perl (2.3300-2) ... 1165s Setting up python3-dnspython (2.7.0-1ubuntu1) ... 1166s Setting up python3-parse (1.20.2-1) ... 1166s Setting up libjson-perl (4.10000-1) ... 1166s Setting up libxslt1.1:armhf (1.1.39-0exp1ubuntu4) ... 1166s Setting up etcd-server (3.5.16-4) ... 1166s info: Selecting UID from range 100 to 999 ... 1166s 1166s info: Selecting GID from range 100 to 999 ... 1166s info: Adding system user `etcd' (UID 106) ... 1166s info: Adding new group `etcd' (GID 110) ... 1166s info: Adding new user `etcd' (UID 106) with group `etcd' ... 1166s info: Creating home directory `/var/lib/etcd/' ... 1166s Created symlink '/etc/systemd/system/etcd2.service' → '/usr/lib/systemd/system/etcd.service'. 1166s Created symlink '/etc/systemd/system/multi-user.target.wants/etcd.service' → '/usr/lib/systemd/system/etcd.service'. 1167s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 1167s Setting up python3-prettytable (3.12.0-1) ... 1167s Setting up fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 1168s Setting up sphinx-rtd-theme-common (3.0.2+dfsg-2) ... 1168s Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 1168s Setting up postgresql-common-dev (274) ... 1168s Setting up moreutils (0.69-1) ... 1168s Setting up postgresql-client-17 (17.4-1) ... 1168s 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 1168s Setting up python3-etcd (0.4.5-6) ... 1168s Setting up python3-parse-type (0.6.4-2) ... 1168s Setting up postgresql-common (274) ... 1169s Creating config file /etc/postgresql-common/createcluster.conf with new version 1169s Building PostgreSQL dictionaries from installed myspell/hunspell packages... 1169s Removing obsolete dictionary files: 1170s Created symlink '/etc/systemd/system/multi-user.target.wants/postgresql.service' → '/usr/lib/systemd/system/postgresql.service'. 1170s Setting up libjs-sphinxdoc (8.1.3-5) ... 1170s Setting up python3-behave (1.2.6-6) ... 1171s /usr/lib/python3/dist-packages/behave/formatter/ansi_escapes.py:57: SyntaxWarning: invalid escape sequence '\[' 1171s _ANSI_ESCAPE_PATTERN = re.compile(u"\x1b\[\d+[mA]", re.UNICODE) 1171s /usr/lib/python3/dist-packages/behave/matchers.py:284: SyntaxWarning: invalid escape sequence '\d' 1171s @parse.with_pattern(r"\d+") 1171s Setting up patroni (4.0.4-7) ... 1171s Created symlink '/etc/systemd/system/multi-user.target.wants/patroni.service' → '/usr/lib/systemd/system/patroni.service'. 1172s Setting up postgresql-17 (17.4-1) ... 1173s Creating new PostgreSQL cluster 17/main ... 1173s /usr/lib/postgresql/17/bin/initdb -D /var/lib/postgresql/17/main --auth-local peer --auth-host scram-sha-256 --no-instructions 1173s The files belonging to this database system will be owned by user "postgres". 1173s This user must also own the server process. 1173s 1173s The database cluster will be initialized with locale "C.UTF-8". 1173s The default database encoding has accordingly been set to "UTF8". 1173s The default text search configuration will be set to "english". 1173s 1173s Data page checksums are disabled. 1173s 1173s fixing permissions on existing directory /var/lib/postgresql/17/main ... ok 1173s creating subdirectories ... ok 1173s selecting dynamic shared memory implementation ... posix 1173s selecting default "max_connections" ... 100 1173s selecting default "shared_buffers" ... 128MB 1173s selecting default time zone ... Etc/UTC 1173s creating configuration files ... ok 1173s running bootstrap script ... ok 1173s performing post-bootstrap initialization ... ok 1173s syncing data to disk ... ok 1176s Setting up patroni-doc (4.0.4-7) ... 1176s Setting up postgresql (17+274) ... 1177s Processing triggers for man-db (2.13.0-1) ... 1177s Processing triggers for libc-bin (2.41-6ubuntu1) ... 1192s autopkgtest [21:46:59]: test acceptance-etcd-basic: debian/tests/acceptance etcd features/basic_replication.feature 1192s autopkgtest [21:46:59]: 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 21:47:02 UTC; 23ms ago 1195s Duration: 27.539s 1195s Invocation: 015bc701165e4b46b2ff0ad729912e3c 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 21:47:02 autopkgtest-lxd-fxtzgz etcd[1173]: {"level":"info","ts":"2025-05-02T21:47:02.343084Z","caller":"embed/etcd.go:378","msg":"closing etcd server","name":"autopkgtest-lxd-fxtzgz","data-dir":"/var/lib/etcd/default","advertise-peer-urls":["http://localhost:2380"],"advertise-client-urls":["http://localhost:2379"]} 1195s May 02 21:47:02 autopkgtest-lxd-fxtzgz etcd[1173]: {"level":"warn","ts":"2025-05-02T21:47:02.343189Z","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 21:47:02 autopkgtest-lxd-fxtzgz etcd[1173]: {"level":"warn","ts":"2025-05-02T21:47:02.343460Z","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 21:47:02 autopkgtest-lxd-fxtzgz etcd[1173]: {"level":"info","ts":"2025-05-02T21:47:02.343507Z","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 21:47:02 autopkgtest-lxd-fxtzgz systemd[1]: Stopping etcd.service - etcd - highly-available key value store... 1195s May 02 21:47:02 autopkgtest-lxd-fxtzgz etcd[1173]: {"level":"info","ts":"2025-05-02T21:47:02.349307Z","caller":"embed/etcd.go:582","msg":"stopping serving peer traffic","address":"127.0.0.1:2380"} 1195s May 02 21:47:02 autopkgtest-lxd-fxtzgz etcd[1173]: {"level":"info","ts":"2025-05-02T21:47:02.349636Z","caller":"embed/etcd.go:587","msg":"stopped serving peer traffic","address":"127.0.0.1:2380"} 1195s May 02 21:47:02 autopkgtest-lxd-fxtzgz etcd[1173]: {"level":"info","ts":"2025-05-02T21:47:02.349663Z","caller":"embed/etcd.go:380","msg":"closed etcd server","name":"autopkgtest-lxd-fxtzgz","data-dir":"/var/lib/etcd/default","advertise-peer-urls":["http://localhost:2380"],"advertise-client-urls":["http://localhost:2379"]} 1195s May 02 21:47:02 autopkgtest-lxd-fxtzgz systemd[1]: etcd.service: Deactivated successfully. 1195s May 02 21:47:02 autopkgtest-lxd-fxtzgz systemd[1]: Stopped etcd.service - etcd - highly-available key value store. 1195s ++ ls -1r /usr/lib/postgresql/ 1195s ### PostgreSQL 17 acceptance-etcd features/basic_replication.feature ### 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' 1197s May 02 21:47:04 Feature: basic replication # features/basic_replication.feature:1 1197s May 02 21:47:04 We should check that the basic bootstrapping, replication and failover works. 1197s May 02 21:47:04 Scenario: check replication of a single table # features/basic_replication.feature:4 1197s May 02 21:47:04 Given I start postgres-0 # features/steps/basic_replication.py:20 1201s May 02 21:47:08 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1201s May 02 21:47:08 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 1201s May 02 21:47:08 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 1201s May 02 21:47:08 Then I receive a response code 200 # features/steps/patroni_api.py:100 1201s May 02 21:47:08 When I start postgres-1 # features/steps/basic_replication.py:20 1206s May 02 21:47:13 And I configure and start postgres-2 with a tag replicatefrom postgres-0 # features/steps/cascading_replication.py:7 1210s May 02 21:47:17 And "sync" key in DCS has leader=postgres-0 after 20 seconds # features/steps/cascading_replication.py:23 1210s May 02 21:47:17 And I add the table foo to postgres-0 # features/steps/basic_replication.py:66 1210s May 02 21:47:17 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 1211s May 02 21:47:18 Then table foo is present on postgres-2 after 20 seconds # features/steps/basic_replication.py:105 1211s May 02 21:47:18 1211s May 02 21:47:18 Scenario: check restart of sync replica # features/basic_replication.feature:17 1211s May 02 21:47:18 Given I shut down postgres-2 # features/steps/basic_replication.py:41 1212s May 02 21:47:19 Then "sync" key in DCS has sync_standby=postgres-1 after 5 seconds # features/steps/cascading_replication.py:23 1212s May 02 21:47:19 When I start postgres-2 # features/steps/basic_replication.py:20 1215s May 02 21:47:22 And I shut down postgres-1 # features/steps/basic_replication.py:41 1218s May 02 21:47:25 Then "sync" key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 1219s May 02 21:47:26 When I start postgres-1 # features/steps/basic_replication.py:20 1222s May 02 21:47:29 Then "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1222s May 02 21:47:29 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 1222s May 02 21:47:29 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:144 1223s May 02 21:47:30 1223s May 02 21:47:30 Scenario: check stuck sync replica # features/basic_replication.feature:28 1223s May 02 21:47:30 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 1223s May 02 21:47:30 Then I receive a response code 200 # features/steps/patroni_api.py:100 1223s May 02 21:47:30 And I create table on postgres-0 # features/steps/basic_replication.py:85 1223s May 02 21:47:30 And table mytest is present on postgres-1 after 2 seconds # features/steps/basic_replication.py:105 1224s May 02 21:47:31 And table mytest is present on postgres-2 after 2 seconds # features/steps/basic_replication.py:105 1224s May 02 21:47:31 When I pause wal replay on postgres-2 # features/steps/basic_replication.py:76 1224s May 02 21:47:31 And I load data on postgres-0 # features/steps/basic_replication.py:96 1224s May 02 21:47:31 Then "sync" key in DCS has sync_standby=postgres-1 after 15 seconds # features/steps/cascading_replication.py:23 1227s May 02 21:47:34 And I resume wal replay on postgres-2 # features/steps/basic_replication.py:76 1227s May 02 21:47:34 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 1227s May 02 21:47:34 And Status code on GET http://127.0.0.1:8010/async is 200 after 3 seconds # features/steps/patroni_api.py:144 1227s May 02 21:47:34 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 1227s May 02 21:47:34 Then I receive a response code 200 # features/steps/patroni_api.py:100 1227s May 02 21:47:34 And I drop table on postgres-0 # features/steps/basic_replication.py:85 1227s May 02 21:47:34 1227s May 02 21:47:34 Scenario: check multi sync replication # features/basic_replication.feature:44 1227s May 02 21:47:34 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 1227s May 02 21:47:34 Then I receive a response code 200 # features/steps/patroni_api.py:100 1227s May 02 21:47:34 Then "sync" key in DCS has sync_standby=postgres-1,postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 1231s May 02 21:47:38 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 1232s May 02 21:47:39 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 1232s May 02 21:47:39 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 1232s May 02 21:47:39 Then I receive a response code 200 # features/steps/patroni_api.py:100 1232s May 02 21:47:39 And I shut down postgres-1 # features/steps/basic_replication.py:41 1235s May 02 21:47:42 Then "sync" key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 1236s May 02 21:47:43 When I start postgres-1 # features/steps/basic_replication.py:20 1239s May 02 21:47:46 Then "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1239s May 02 21:47:46 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 1239s May 02 21:47:46 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:144 1239s May 02 21:47:46 1239s May 02 21:47:46 Scenario: check the basic failover in synchronous mode # features/basic_replication.feature:59 1239s May 02 21:47:46 Given I run patronictl.py pause batman # features/steps/patroni_api.py:88 1240s May 02 21:47:47 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1240s May 02 21:47:47 When I sleep for 2 seconds # features/steps/patroni_api.py:41 1242s May 02 21:47:49 And I shut down postgres-0 # features/steps/basic_replication.py:41 1243s May 02 21:47:50 And I run patronictl.py resume batman # features/steps/patroni_api.py:88 1244s May 02 21:47:51 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1244s May 02 21:47:51 And postgres-2 role is the primary after 24 seconds # features/steps/basic_replication.py:117 1263s May 02 21:48:10 And Response on GET http://127.0.0.1:8010/history contains recovery after 10 seconds # features/steps/patroni_api.py:158 1266s May 02 21:48:13 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 1266s May 02 21:48:13 When I issue a PATCH request to http://127.0.0.1:8010/config with {"synchronous_mode": null, "master_start_timeout": 0} # features/steps/patroni_api.py:73 1266s May 02 21:48:13 Then I receive a response code 200 # features/steps/patroni_api.py:100 1266s May 02 21:48:13 When I add the table bar to postgres-2 # features/steps/basic_replication.py:66 1266s May 02 21:48:13 Then table bar is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 1266s May 02 21:48:13 And Response on GET http://127.0.0.1:8010/config contains master_start_timeout after 10 seconds # features/steps/patroni_api.py:158 1268s May 02 21:48:15 1268s May 02 21:48:15 Scenario: check rejoin of the former primary with pg_rewind # features/basic_replication.feature:75 1268s May 02 21:48:15 Given I add the table splitbrain to postgres-0 # features/steps/basic_replication.py:66 1268s May 02 21:48:15 And I start postgres-0 # features/steps/basic_replication.py:20 1268s May 02 21:48:15 Then postgres-0 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 1276s May 02 21:48:23 When I add the table buz to postgres-2 # features/steps/basic_replication.py:66 1276s May 02 21:48:23 Then table buz is present on postgres-0 after 20 seconds # features/steps/basic_replication.py:105 1276s May 02 21:48:23 1276s May 02 21:48:23 @reject-duplicate-name 1276s May 02 21:48:23 Scenario: check graceful rejection when two nodes have the same name # features/basic_replication.feature:83 1276s May 02 21:48:23 Given I start duplicate postgres-0 on port 8011 # features/steps/basic_replication.py:25 1278s May 02 21:48:25 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 1282s May 02 21:48:29 1283s 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'))") 1283s May 02 21:48:30 Combined data file .coverage.autopkgtest-lxd-fxtzgz.3360.XmeQPmnx 1283s May 02 21:48:30 Combined data file .coverage.autopkgtest-lxd-fxtzgz.3404.XxIOsXPx 1283s May 02 21:48:30 Combined data file .coverage.autopkgtest-lxd-fxtzgz.3452.XqByltMx 1283s May 02 21:48:30 Combined data file .coverage.autopkgtest-lxd-fxtzgz.3499.XtSYySwx 1283s May 02 21:48:30 Combined data file .coverage.autopkgtest-lxd-fxtzgz.3546.XNtbOVHx 1283s May 02 21:48:30 Combined data file .coverage.autopkgtest-lxd-fxtzgz.3619.XdJdqFvx 1283s May 02 21:48:30 Combined data file .coverage.autopkgtest-lxd-fxtzgz.3668.XfNcesWx 1283s May 02 21:48:30 Combined data file .coverage.autopkgtest-lxd-fxtzgz.3671.XAuonZKx 1283s May 02 21:48:30 Combined data file .coverage.autopkgtest-lxd-fxtzgz.3756.XDSUaHPx 1283s May 02 21:48:30 Combined data file .coverage.autopkgtest-lxd-fxtzgz.3858.XaRDvKEx 1288s May 02 21:48:35 Name Stmts Miss Cover 1288s May 02 21:48:35 ------------------------------------------------------------------------------------------------------------- 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/OpenSSL/SSL.py 1159 647 44% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/OpenSSL/__init__.py 3 0 100% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/OpenSSL/_util.py 44 15 66% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/OpenSSL/crypto.py 869 663 24% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/OpenSSL/version.py 9 0 100% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/_distutils_hack/__init__.py 101 96 5% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/bcrypt/__init__.py 3 0 100% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/__about__.py 5 0 100% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/__init__.py 3 0 100% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/exceptions.py 26 5 81% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/hazmat/__init__.py 2 0 100% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/hazmat/_oid.py 135 0 100% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/__init__.py 0 0 100% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/__init__.py 0 0 100% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/_conditional.py 38 17 55% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/binding.py 51 4 92% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/hazmat/decrepit/__init__.py 1 0 100% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/hazmat/decrepit/ciphers/__init__.py 1 0 100% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/hazmat/decrepit/ciphers/algorithms.py 68 18 74% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/__init__.py 0 0 100% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_asymmetric.py 6 0 100% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_cipheralgorithm.py 23 4 83% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_serialization.py 79 35 56% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/__init__.py 0 0 100% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/dh.py 47 0 100% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/dsa.py 55 5 91% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ec.py 172 22 87% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ed448.py 45 12 73% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ed25519.py 43 12 72% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/padding.py 55 23 58% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/rsa.py 93 40 57% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/types.py 19 0 100% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/utils.py 14 5 64% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/x448.py 43 12 72% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/x25519.py 41 12 71% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/__init__.py 4 0 100% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/algorithms.py 72 15 79% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/base.py 54 12 78% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/modes.py 140 59 58% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/constant_time.py 6 3 50% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/hashes.py 127 20 84% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/__init__.py 5 0 100% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/base.py 7 0 100% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/ssh.py 775 614 21% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/utils.py 76 28 63% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/x509/__init__.py 70 0 100% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/x509/base.py 488 227 53% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/x509/certificate_transparency.py 42 0 100% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/x509/extensions.py 1024 552 46% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/x509/general_name.py 166 94 43% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/x509/name.py 236 144 39% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/x509/oid.py 3 0 100% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/cryptography/x509/verification.py 12 0 100% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dateutil/__init__.py 13 4 69% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dateutil/_common.py 25 15 40% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dateutil/_version.py 13 3 77% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dateutil/parser/__init__.py 33 4 88% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dateutil/parser/_parser.py 810 688 15% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dateutil/parser/isoparser.py 183 150 18% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dateutil/relativedelta.py 240 206 14% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dateutil/tz/__init__.py 4 0 100% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dateutil/tz/_common.py 151 117 23% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dateutil/tz/_factories.py 49 21 57% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dateutil/tz/tz.py 794 629 21% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dateutil/tz/win.py 152 149 2% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/__init__.py 2 0 100% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/_asyncbackend.py 14 6 57% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/_ddr.py 105 86 18% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/_features.py 46 8 83% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/_immutable_ctx.py 40 5 88% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/asyncbackend.py 44 32 27% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/asyncquery.py 322 283 12% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/edns.py 307 185 40% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/entropy.py 80 49 39% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/enum.py 72 46 36% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/exception.py 59 33 44% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/flags.py 40 14 65% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/grange.py 33 30 9% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/immutable.py 41 30 27% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/inet.py 79 65 18% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/ipv4.py 26 20 23% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/ipv6.py 114 100 12% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/message.py 829 676 18% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/name.py 617 425 31% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/nameserver.py 102 55 46% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/node.py 117 71 39% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/opcode.py 30 7 77% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/query.py 562 477 15% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/quic/__init__.py 28 23 18% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/rcode.py 68 13 81% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/rdata.py 386 277 28% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/rdataclass.py 43 9 79% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/rdataset.py 192 133 31% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/rdatatype.py 215 23 89% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/OPT.py 34 19 44% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/SOA.py 41 26 37% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/TSIG.py 58 42 28% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/ZONEMD.py 43 27 37% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/__init__.py 1 0 100% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/rdtypes/__init__.py 1 0 100% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/rdtypes/svcbbase.py 415 268 35% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/rdtypes/util.py 191 154 19% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/renderer.py 151 118 22% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/resolver.py 873 696 20% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/reversename.py 32 24 25% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/rrset.py 77 56 27% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/serial.py 92 79 14% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/set.py 148 107 28% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/tokenizer.py 334 279 16% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/transaction.py 269 201 25% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/tsig.py 176 122 31% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/ttl.py 44 38 14% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/version.py 6 0 100% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/wire.py 64 42 34% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/xfr.py 148 126 15% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/zone.py 507 383 24% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/zonefile.py 427 379 11% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/dns/zonetypes.py 14 2 86% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/etcd/__init__.py 125 27 78% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/etcd/client.py 380 195 49% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/etcd/lock.py 125 103 18% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/idna/__init__.py 4 0 100% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/idna/core.py 292 257 12% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/idna/idnadata.py 4 0 100% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/idna/intranges.py 30 24 20% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/idna/package_data.py 1 0 100% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/__init__.py 13 2 85% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/__main__.py 201 68 66% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/api.py 788 439 44% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/async_executor.py 96 19 80% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/collections.py 56 7 88% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/config.py 357 100 72% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/config_generator.py 212 159 25% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/daemon.py 76 6 92% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/dcs/__init__.py 710 166 77% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/dcs/etcd.py 603 183 70% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/dynamic_loader.py 35 7 80% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/exceptions.py 16 0 100% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/file_perm.py 47 11 77% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/global_config.py 87 4 95% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/ha.py 1359 683 50% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/log.py 235 81 66% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/postgresql/__init__.py 825 240 71% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/postgresql/available_parameters/__init__.py 24 3 88% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/postgresql/bootstrap.py 254 89 65% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/postgresql/callback_executor.py 55 8 85% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/postgresql/cancellable.py 104 41 61% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/postgresql/config.py 839 266 68% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/postgresql/connection.py 75 7 91% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/postgresql/misc.py 43 13 70% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/postgresql/mpp/__init__.py 89 12 87% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/postgresql/postmaster.py 170 92 46% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/postgresql/rewind.py 416 200 52% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/postgresql/slots.py 349 177 49% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/postgresql/sync.py 154 23 85% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/postgresql/validator.py 157 24 85% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/psycopg.py 46 19 59% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/quorum.py 182 160 12% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/request.py 58 7 88% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/tags.py 38 5 87% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/utils.py 371 140 62% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/validator.py 309 218 29% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/version.py 1 0 100% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/watchdog/__init__.py 2 0 100% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/watchdog/base.py 203 49 76% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/patroni/watchdog/linux.py 135 50 63% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/psutil/__init__.py 945 629 33% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/psutil/_common.py 408 208 49% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/psutil/_pslinux.py 1225 920 25% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/psutil/_psposix.py 84 40 52% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/psycopg2/__init__.py 19 3 84% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/psycopg2/_json.py 64 27 58% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/psycopg2/_range.py 269 172 36% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/psycopg2/errors.py 3 2 33% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/psycopg2/extensions.py 91 25 73% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/urllib3/__init__.py 49 15 69% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/urllib3/_base_connection.py 63 45 29% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/urllib3/_collections.py 231 101 56% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/urllib3/_request_methods.py 54 12 78% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/urllib3/_version.py 13 3 77% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/urllib3/connection.py 389 138 65% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/urllib3/connectionpool.py 344 135 61% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/urllib3/contrib/__init__.py 0 0 100% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/urllib3/contrib/pyopenssl.py 263 103 61% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/urllib3/exceptions.py 121 39 68% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/urllib3/fields.py 92 73 21% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/urllib3/filepost.py 37 24 35% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/urllib3/http2/__init__.py 28 21 25% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/urllib3/http2/probe.py 49 31 37% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/urllib3/poolmanager.py 233 86 63% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/urllib3/response.py 634 377 41% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/urllib3/util/__init__.py 10 0 100% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/urllib3/util/connection.py 66 42 36% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/urllib3/util/proxy.py 13 6 54% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/urllib3/util/request.py 104 49 53% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/urllib3/util/response.py 32 17 47% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/urllib3/util/retry.py 174 57 67% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/urllib3/util/ssl_.py 172 74 57% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/urllib3/util/ssl_match_hostname.py 66 54 18% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/urllib3/util/ssltransport.py 152 106 30% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/urllib3/util/timeout.py 71 14 80% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/urllib3/util/url.py 203 69 66% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/urllib3/util/util.py 26 10 62% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/urllib3/util/wait.py 49 18 63% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/yaml/__init__.py 165 109 34% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/yaml/composer.py 92 17 82% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/yaml/constructor.py 479 276 42% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/yaml/cyaml.py 46 24 48% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/yaml/dumper.py 23 12 48% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/yaml/emitter.py 838 769 8% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/yaml/error.py 58 42 28% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/yaml/events.py 61 6 90% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/yaml/loader.py 47 24 49% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/yaml/nodes.py 29 7 76% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/yaml/parser.py 352 198 44% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/yaml/reader.py 122 34 72% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/yaml/representer.py 248 176 29% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/yaml/resolver.py 135 76 44% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/yaml/scanner.py 758 437 42% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/yaml/serializer.py 85 70 18% 1288s May 02 21:48:35 /usr/lib/python3/dist-packages/yaml/tokens.py 76 17 78% 1288s May 02 21:48:35 patroni/__init__.py 13 2 85% 1288s May 02 21:48:35 patroni/__main__.py 201 201 0% 1288s May 02 21:48:35 patroni/api.py 788 788 0% 1288s May 02 21:48:35 patroni/async_executor.py 96 69 28% 1288s May 02 21:48:35 patroni/collections.py 56 15 73% 1288s May 02 21:48:35 patroni/config.py 357 186 48% 1288s May 02 21:48:35 patroni/config_generator.py 212 212 0% 1288s May 02 21:48:35 patroni/ctl.py 936 661 29% 1288s May 02 21:48:35 patroni/daemon.py 76 76 0% 1288s May 02 21:48:35 patroni/dcs/__init__.py 710 358 50% 1288s May 02 21:48:35 patroni/dcs/consul.py 482 482 0% 1288s May 02 21:48:35 patroni/dcs/etcd3.py 679 679 0% 1288s May 02 21:48:35 patroni/dcs/etcd.py 603 235 61% 1288s May 02 21:48:35 patroni/dcs/exhibitor.py 62 62 0% 1288s May 02 21:48:35 patroni/dcs/kubernetes.py 943 943 0% 1288s May 02 21:48:35 patroni/dcs/raft.py 319 319 0% 1288s May 02 21:48:35 patroni/dcs/zookeeper.py 289 289 0% 1288s May 02 21:48:35 patroni/dynamic_loader.py 35 7 80% 1288s May 02 21:48:35 patroni/exceptions.py 16 1 94% 1288s May 02 21:48:35 patroni/file_perm.py 47 17 64% 1288s May 02 21:48:35 patroni/global_config.py 87 25 71% 1288s May 02 21:48:35 patroni/ha.py 1359 1359 0% 1288s May 02 21:48:35 patroni/log.py 235 183 22% 1288s May 02 21:48:35 patroni/postgresql/__init__.py 825 653 21% 1288s May 02 21:48:35 patroni/postgresql/available_parameters/__init__.py 24 6 75% 1288s May 02 21:48:35 patroni/postgresql/bootstrap.py 254 224 12% 1288s May 02 21:48:35 patroni/postgresql/callback_executor.py 55 34 38% 1288s May 02 21:48:35 patroni/postgresql/cancellable.py 104 84 19% 1288s May 02 21:48:35 patroni/postgresql/config.py 839 719 14% 1288s May 02 21:48:35 patroni/postgresql/connection.py 75 50 33% 1288s May 02 21:48:35 patroni/postgresql/misc.py 43 30 30% 1288s May 02 21:48:35 patroni/postgresql/mpp/__init__.py 89 21 76% 1288s May 02 21:48:35 patroni/postgresql/mpp/citus.py 366 366 0% 1288s May 02 21:48:35 patroni/postgresql/postmaster.py 170 139 18% 1288s May 02 21:48:35 patroni/postgresql/rewind.py 416 416 0% 1288s May 02 21:48:35 patroni/postgresql/slots.py 349 300 14% 1288s May 02 21:48:35 patroni/postgresql/sync.py 154 114 26% 1288s May 02 21:48:35 patroni/postgresql/validator.py 157 52 67% 1288s May 02 21:48:35 patroni/psycopg.py 46 32 30% 1288s May 02 21:48:35 patroni/quorum.py 182 182 0% 1288s May 02 21:48:35 patroni/raft_controller.py 22 22 0% 1288s May 02 21:48:35 patroni/request.py 58 6 90% 1288s May 02 21:48:35 patroni/scripts/__init__.py 0 0 100% 1288s May 02 21:48:35 patroni/scripts/aws.py 59 59 0% 1288s May 02 21:48:35 patroni/scripts/barman/__init__.py 0 0 100% 1288s May 02 21:48:35 patroni/scripts/barman/cli.py 50 50 0% 1288s May 02 21:48:35 patroni/scripts/barman/config_switch.py 50 50 0% 1288s May 02 21:48:35 patroni/scripts/barman/recover.py 36 36 0% 1288s May 02 21:48:35 patroni/scripts/barman/utils.py 93 93 0% 1288s May 02 21:48:35 patroni/scripts/wale_restore.py 207 207 0% 1288s May 02 21:48:35 patroni/tags.py 38 15 61% 1288s May 02 21:48:35 patroni/utils.py 371 266 28% 1288s May 02 21:48:35 patroni/validator.py 309 222 28% 1288s May 02 21:48:35 patroni/version.py 1 0 100% 1288s May 02 21:48:35 patroni/watchdog/__init__.py 2 2 0% 1288s May 02 21:48:35 patroni/watchdog/base.py 203 203 0% 1288s May 02 21:48:35 patroni/watchdog/linux.py 135 135 0% 1288s May 02 21:48:35 ------------------------------------------------------------------------------------------------------------- 1288s May 02 21:48:35 TOTAL 53380 34150 36% 1288s May 02 21:48:35 1 feature passed, 0 failed, 0 skipped 1288s May 02 21:48:35 7 scenarios passed, 0 failed, 0 skipped 1288s May 02 21:48:35 68 steps passed, 0 failed, 0 skipped, 0 undefined 1288s May 02 21:48:35 Took 1m20.882s 1288s ### End 17 acceptance-etcd features/basic_replication.feature ### 1288s + echo '### End 17 acceptance-etcd features/basic_replication.feature ###' 1288s + rm -f '/tmp/pgpass?' 1288s ++ id -u 1288s + '[' 0 -eq 0 ']' 1288s + '[' -x /etc/init.d/zookeeper ']' 1288s autopkgtest [21:48:35]: test acceptance-etcd-basic: -----------------------] 1292s autopkgtest [21:48:39]: test acceptance-etcd-basic: - - - - - - - - - - results - - - - - - - - - - 1292s acceptance-etcd-basic PASS 1296s autopkgtest [21:48:43]: test acceptance-etcd: preparing testbed 1297s Reading package lists... 1298s Building dependency tree... 1298s Reading state information... 1298s Starting pkgProblemResolver with broken count: 0 1298s Starting 2 pkgProblemResolver with broken count: 0 1298s Done 1299s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 1308s autopkgtest [21:48:55]: test acceptance-etcd: debian/tests/acceptance etcd 1308s autopkgtest [21:48:55]: test acceptance-etcd: [----------------------- 1310s dpkg-architecture: warning: cannot determine CC system type, falling back to default (native compilation) 1311s ○ etcd.service - etcd - highly-available key value store 1311s Loaded: loaded (/usr/lib/systemd/system/etcd.service; enabled; preset: enabled) 1311s Active: inactive (dead) since Fri 2025-05-02 21:47:02 UTC; 1min 55s ago 1311s Duration: 27.539s 1311s Invocation: 015bc701165e4b46b2ff0ad729912e3c 1311s Docs: https://etcd.io/docs 1311s man:etcd 1311s Process: 1173 ExecStart=/usr/bin/etcd $DAEMON_ARGS (code=killed, signal=TERM) 1311s Main PID: 1173 (code=killed, signal=TERM) 1311s 1311s May 02 21:47:02 autopkgtest-lxd-fxtzgz etcd[1173]: {"level":"info","ts":"2025-05-02T21:47:02.343084Z","caller":"embed/etcd.go:378","msg":"closing etcd server","name":"autopkgtest-lxd-fxtzgz","data-dir":"/var/lib/etcd/default","advertise-peer-urls":["http://localhost:2380"],"advertise-client-urls":["http://localhost:2379"]} 1311s May 02 21:47:02 autopkgtest-lxd-fxtzgz etcd[1173]: {"level":"warn","ts":"2025-05-02T21:47:02.343189Z","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"} 1311s May 02 21:47:02 autopkgtest-lxd-fxtzgz etcd[1173]: {"level":"warn","ts":"2025-05-02T21:47:02.343460Z","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"} 1311s May 02 21:47:02 autopkgtest-lxd-fxtzgz etcd[1173]: {"level":"info","ts":"2025-05-02T21:47:02.343507Z","caller":"etcdserver/server.go:1543","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"8e9e05c52164694d","current-leader-member-id":"8e9e05c52164694d"} 1311s May 02 21:47:02 autopkgtest-lxd-fxtzgz systemd[1]: Stopping etcd.service - etcd - highly-available key value store... 1311s May 02 21:47:02 autopkgtest-lxd-fxtzgz etcd[1173]: {"level":"info","ts":"2025-05-02T21:47:02.349307Z","caller":"embed/etcd.go:582","msg":"stopping serving peer traffic","address":"127.0.0.1:2380"} 1311s May 02 21:47:02 autopkgtest-lxd-fxtzgz etcd[1173]: {"level":"info","ts":"2025-05-02T21:47:02.349636Z","caller":"embed/etcd.go:587","msg":"stopped serving peer traffic","address":"127.0.0.1:2380"} 1311s May 02 21:47:02 autopkgtest-lxd-fxtzgz etcd[1173]: {"level":"info","ts":"2025-05-02T21:47:02.349663Z","caller":"embed/etcd.go:380","msg":"closed etcd server","name":"autopkgtest-lxd-fxtzgz","data-dir":"/var/lib/etcd/default","advertise-peer-urls":["http://localhost:2380"],"advertise-client-urls":["http://localhost:2379"]} 1311s May 02 21:47:02 autopkgtest-lxd-fxtzgz systemd[1]: etcd.service: Deactivated successfully. 1311s May 02 21:47:02 autopkgtest-lxd-fxtzgz systemd[1]: Stopped etcd.service - etcd - highly-available key value store. 1311s ++ ls -1r /usr/lib/postgresql/ 1311s + for PG_VERSION in $(ls -1r /usr/lib/postgresql/) 1311s + '[' 17 == 10 -o 17 == 11 ']' 1311s + echo '### PostgreSQL 17 acceptance-etcd ###' 1311s + 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' 1311s ### PostgreSQL 17 acceptance-etcd ### 1313s May 02 21:49:00 Feature: basic replication # features/basic_replication.feature:1 1313s May 02 21:49:00 We should check that the basic bootstrapping, replication and failover works. 1313s May 02 21:49:00 Scenario: check replication of a single table # features/basic_replication.feature:4 1313s May 02 21:49:00 Given I start postgres-0 # features/steps/basic_replication.py:20 1317s May 02 21:49:04 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1317s May 02 21:49:04 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 1317s May 02 21:49:04 When I issue a PATCH request to http://127.0.0.1:8008/config with {"ttl": 20, "synchronous_mode": true} # features/steps/patroni_api.py:73 1317s May 02 21:49:04 Then I receive a response code 200 # features/steps/patroni_api.py:100 1317s May 02 21:49:04 When I start postgres-1 # features/steps/basic_replication.py:20 1321s May 02 21:49:08 And I configure and start postgres-2 with a tag replicatefrom postgres-0 # features/steps/cascading_replication.py:7 1326s May 02 21:49:13 And "sync" key in DCS has leader=postgres-0 after 20 seconds # features/steps/cascading_replication.py:23 1326s May 02 21:49:13 And I add the table foo to postgres-0 # features/steps/basic_replication.py:66 1326s May 02 21:49:13 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 1327s May 02 21:49:14 Then table foo is present on postgres-2 after 20 seconds # features/steps/basic_replication.py:105 1327s May 02 21:49:14 1327s May 02 21:49:14 Scenario: check restart of sync replica # features/basic_replication.feature:17 1327s May 02 21:49:14 Given I shut down postgres-2 # features/steps/basic_replication.py:41 1328s May 02 21:49:15 Then "sync" key in DCS has sync_standby=postgres-1 after 5 seconds # features/steps/cascading_replication.py:23 1328s May 02 21:49:15 When I start postgres-2 # features/steps/basic_replication.py:20 1331s May 02 21:49:18 And I shut down postgres-1 # features/steps/basic_replication.py:41 1334s May 02 21:49:21 Then "sync" key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 1335s May 02 21:49:22 When I start postgres-1 # features/steps/basic_replication.py:20 1338s May 02 21:49:25 Then "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1338s May 02 21:49:25 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 21:49:26 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 21:49:26 1339s May 02 21:49:26 Scenario: check stuck sync replica # features/basic_replication.feature:28 1339s May 02 21:49:26 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 21:49:26 Then I receive a response code 200 # features/steps/patroni_api.py:100 1339s May 02 21:49:26 And I create table on postgres-0 # features/steps/basic_replication.py:85 1339s May 02 21:49:26 And table mytest is present on postgres-1 after 2 seconds # features/steps/basic_replication.py:105 1340s May 02 21:49:27 And table mytest is present on postgres-2 after 2 seconds # features/steps/basic_replication.py:105 1340s May 02 21:49:27 When I pause wal replay on postgres-2 # features/steps/basic_replication.py:76 1340s May 02 21:49:27 And I load data on postgres-0 # features/steps/basic_replication.py:96 1340s May 02 21:49:27 Then "sync" key in DCS has sync_standby=postgres-1 after 15 seconds # features/steps/cascading_replication.py:23 1343s May 02 21:49:30 And I resume wal replay on postgres-2 # features/steps/basic_replication.py:76 1343s May 02 21:49:30 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 21:49:30 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 21:49:30 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 1343s May 02 21:49:30 Then I receive a response code 200 # features/steps/patroni_api.py:100 1343s May 02 21:49:30 And I drop table on postgres-0 # features/steps/basic_replication.py:85 1343s May 02 21:49:30 1343s May 02 21:49:30 Scenario: check multi sync replication # features/basic_replication.feature:44 1343s May 02 21:49:30 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 21:49:30 Then I receive a response code 200 # features/steps/patroni_api.py:100 1344s May 02 21:49:30 Then "sync" key in DCS has sync_standby=postgres-1,postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 1348s May 02 21:49:34 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 21:49:35 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 21:49:35 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 21:49:35 Then I receive a response code 200 # features/steps/patroni_api.py:100 1348s May 02 21:49:35 And I shut down postgres-1 # features/steps/basic_replication.py:41 1351s May 02 21:49:38 Then "sync" key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 1352s May 02 21:49:39 When I start postgres-1 # features/steps/basic_replication.py:20 1355s May 02 21:49:42 Then "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1355s May 02 21:49:42 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 21:49:42 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 21:49:42 1355s May 02 21:49:42 Scenario: check the basic failover in synchronous mode # features/basic_replication.feature:59 1355s May 02 21:49:42 Given I run patronictl.py pause batman # features/steps/patroni_api.py:88 1356s May 02 21:49:43 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1356s May 02 21:49:43 When I sleep for 2 seconds # features/steps/patroni_api.py:41 1358s May 02 21:49:45 And I shut down postgres-0 # features/steps/basic_replication.py:41 1359s May 02 21:49:46 And I run patronictl.py resume batman # features/steps/patroni_api.py:88 1360s May 02 21:49:47 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1360s May 02 21:49:47 And postgres-2 role is the primary after 24 seconds # features/steps/basic_replication.py:117 1380s May 02 21:50:06 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 21:50:10 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 21:50:10 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 21:50:10 Then I receive a response code 200 # features/steps/patroni_api.py:100 1383s May 02 21:50:10 When I add the table bar to postgres-2 # features/steps/basic_replication.py:66 1383s May 02 21:50:10 Then table bar is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 1383s May 02 21:50:10 And Response on GET http://127.0.0.1:8010/config contains master_start_timeout after 10 seconds # features/steps/patroni_api.py:158 1383s May 02 21:50:10 1383s May 02 21:50:10 Scenario: check rejoin of the former primary with pg_rewind # features/basic_replication.feature:75 1383s May 02 21:50:10 Given I add the table splitbrain to postgres-0 # features/steps/basic_replication.py:66 1383s May 02 21:50:10 And I start postgres-0 # features/steps/basic_replication.py:20 1383s May 02 21:50:10 Then postgres-0 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 1391s May 02 21:50:18 When I add the table buz to postgres-2 # features/steps/basic_replication.py:66 1391s May 02 21:50:18 Then table buz is present on postgres-0 after 20 seconds # features/steps/basic_replication.py:105 1391s May 02 21:50:18 1391s May 02 21:50:18 @reject-duplicate-name 1391s May 02 21:50:18 Scenario: check graceful rejection when two nodes have the same name # features/basic_replication.feature:83 1391s May 02 21:50:18 Given I start duplicate postgres-0 on port 8011 # features/steps/basic_replication.py:25 1393s May 02 21:50:20 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 1397s May 02 21:50:24 1397s May 02 21:50:24 Feature: cascading replication # features/cascading_replication.feature:1 1397s May 02 21:50:24 We should check that patroni can do base backup and streaming from the replica 1397s May 02 21:50:24 Scenario: check a base backup and streaming replication from a replica # features/cascading_replication.feature:4 1397s May 02 21:50:24 Given I start postgres-0 # features/steps/basic_replication.py:20 1401s May 02 21:50:28 And postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1402s May 02 21:50:29 And I configure and start postgres-1 with a tag clonefrom true # features/steps/cascading_replication.py:7 1407s May 02 21:50:34 And replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 1408s May 02 21:50:35 And I create label with "postgres-0" in postgres-0 data directory # features/steps/cascading_replication.py:18 1408s May 02 21:50:35 And I create label with "postgres-1" in postgres-1 data directory # features/steps/cascading_replication.py:18 1408s May 02 21:50:35 And "members/postgres-1" key in DCS has state=running after 12 seconds # features/steps/cascading_replication.py:23 1408s May 02 21:50:35 And I configure and start postgres-2 with a tag replicatefrom postgres-1 # features/steps/cascading_replication.py:7 1412s May 02 21:50:39 Then replication works from postgres-0 to postgres-2 after 30 seconds # features/steps/basic_replication.py:124 1414s May 02 21:50:40 And there is a label with "postgres-1" in postgres-2 data directory # features/steps/cascading_replication.py:12 1419s May 02 21:50:46 1419s SKIP FEATURE citus: Citus extension isn't available 1419s SKIP Scenario check that worker cluster is registered in the coordinator: Citus extension isn't available 1419s SKIP Scenario coordinator failover updates pg_dist_node: Citus extension isn't available 1419s SKIP Scenario worker switchover doesn't break client queries on the coordinator: Citus extension isn't available 1419s SKIP Scenario worker primary restart doesn't break client queries on the coordinator: Citus extension isn't available 1419s 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 1419s May 02 21:50:46 Feature: citus # features/citus.feature:1 1419s May 02 21:50:46 We should check that coordinator discovers and registers workers and clients don't have errors when worker cluster switches over 1419s May 02 21:50:46 Scenario: check that worker cluster is registered in the coordinator # features/citus.feature:4 1419s May 02 21:50:46 Given I start postgres-0 in citus group 0 # None 1419s May 02 21:50:46 And I start postgres-2 in citus group 1 # None 1419s May 02 21:50:46 Then postgres-0 is a leader in a group 0 after 10 seconds # None 1419s May 02 21:50:46 And postgres-2 is a leader in a group 1 after 10 seconds # None 1419s May 02 21:50:46 When I start postgres-1 in citus group 0 # None 1419s May 02 21:50:46 And I start postgres-3 in citus group 1 # None 1419s May 02 21:50:46 Then replication works from postgres-0 to postgres-1 after 15 seconds # None 1419s May 02 21:50:46 Then replication works from postgres-2 to postgres-3 after 15 seconds # None 1419s May 02 21:50:46 And postgres-0 is registered in the postgres-0 as the primary in group 0 after 5 seconds # None 1419s May 02 21:50:46 And postgres-1 is registered in the postgres-0 as the secondary in group 0 after 5 seconds # None 1419s May 02 21:50:46 And postgres-2 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 1419s May 02 21:50:46 And postgres-3 is registered in the postgres-0 as the secondary in group 1 after 5 seconds # None 1419s May 02 21:50:46 1419s May 02 21:50:46 Scenario: coordinator failover updates pg_dist_node # features/citus.feature:18 1419s May 02 21:50:46 Given I run patronictl.py failover batman --group 0 --candidate postgres-1 --force # None 1419s May 02 21:50:46 Then postgres-1 role is the primary after 10 seconds # None 1419s May 02 21:50:46 And "members/postgres-0" key in a group 0 in DCS has state=running after 15 seconds # None 1419s May 02 21:50:46 And replication works from postgres-1 to postgres-0 after 15 seconds # None 1419s May 02 21:50:46 And postgres-1 is registered in the postgres-2 as the primary in group 0 after 5 seconds # None 1419s May 02 21:50:46 And postgres-0 is registered in the postgres-2 as the secondary in group 0 after 15 seconds # None 1419s May 02 21:50:46 And "sync" key in a group 0 in DCS has sync_standby=postgres-0 after 15 seconds # None 1419s May 02 21:50:46 When I run patronictl.py switchover batman --group 0 --candidate postgres-0 --force # None 1419s May 02 21:50:46 Then postgres-0 role is the primary after 10 seconds # None 1419s May 02 21:50:46 And replication works from postgres-0 to postgres-1 after 15 seconds # None 1419s May 02 21:50:46 And postgres-0 is registered in the postgres-2 as the primary in group 0 after 5 seconds # None 1419s May 02 21:50:46 And postgres-1 is registered in the postgres-2 as the secondary in group 0 after 15 seconds # None 1419s May 02 21:50:46 And "sync" key in a group 0 in DCS has sync_standby=postgres-1 after 15 seconds # None 1419s May 02 21:50:46 1419s May 02 21:50:46 Scenario: worker switchover doesn't break client queries on the coordinator # features/citus.feature:33 1419s May 02 21:50:46 Given I create a distributed table on postgres-0 # None 1419s May 02 21:50:46 And I start a thread inserting data on postgres-0 # None 1419s May 02 21:50:46 When I run patronictl.py switchover batman --group 1 --force # None 1419s May 02 21:50:46 Then I receive a response returncode 0 # None 1419s May 02 21:50:46 And postgres-3 role is the primary after 10 seconds # None 1419s May 02 21:50:46 And "members/postgres-2" key in a group 1 in DCS has state=running after 15 seconds # None 1419s May 02 21:50:46 And replication works from postgres-3 to postgres-2 after 15 seconds # None 1419s May 02 21:50:46 And postgres-3 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 1419s May 02 21:50:46 And postgres-2 is registered in the postgres-0 as the secondary in group 1 after 15 seconds # None 1419s May 02 21:50:46 And "sync" key in a group 1 in DCS has sync_standby=postgres-2 after 15 seconds # None 1419s May 02 21:50:46 And a thread is still alive # None 1419s May 02 21:50:46 When I run patronictl.py switchover batman --group 1 --force # None 1419s May 02 21:50:46 Then I receive a response returncode 0 # None 1419s May 02 21:50:46 And postgres-2 role is the primary after 10 seconds # None 1419s May 02 21:50:46 And replication works from postgres-2 to postgres-3 after 15 seconds # None 1419s May 02 21:50:46 And postgres-2 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 1419s May 02 21:50:46 And postgres-3 is registered in the postgres-0 as the secondary in group 1 after 15 seconds # None 1419s May 02 21:50:46 And "sync" key in a group 1 in DCS has sync_standby=postgres-3 after 15 seconds # None 1419s May 02 21:50:46 And a thread is still alive # None 1419s May 02 21:50:46 When I stop a thread # None 1419s May 02 21:50:46 Then a distributed table on postgres-0 has expected rows # None 1419s May 02 21:50:46 1419s May 02 21:50:46 Scenario: worker primary restart doesn't break client queries on the coordinator # features/citus.feature:56 1419s May 02 21:50:46 Given I cleanup a distributed table on postgres-0 # None 1419s May 02 21:50:46 And I start a thread inserting data on postgres-0 # None 1419s May 02 21:50:46 When I run patronictl.py restart batman postgres-2 --group 1 --force # None 1419s May 02 21:50:46 Then I receive a response returncode 0 # None 1419s May 02 21:50:46 And postgres-2 role is the primary after 10 seconds # None 1419s May 02 21:50:46 And replication works from postgres-2 to postgres-3 after 15 seconds # None 1419s May 02 21:50:46 And postgres-2 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 1419s May 02 21:50:46 And postgres-3 is registered in the postgres-0 as the secondary in group 1 after 15 seconds # None 1419s May 02 21:50:46 And a thread is still alive # None 1419s May 02 21:50:46 When I stop a thread # None 1419s May 02 21:50:46 Then a distributed table on postgres-0 has expected rows # None 1419s May 02 21:50:46 1419s May 02 21:50: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 1419s May 02 21:50:46 Given I start postgres-4 in citus group 2 # None 1419s May 02 21:50:46 Then postgres-4 is a leader in a group 2 after 10 seconds # None 1419s May 02 21:50:46 And "members/postgres-4" key in a group 2 in DCS has role=primary after 3 seconds # None 1419s May 02 21:50:46 When I run patronictl.py edit-config batman --group 2 -s ttl=20 --force # None 1419s May 02 21:50:46 Then I receive a response returncode 0 # None 1419s May 02 21:50:46 And I receive a response output "+ttl: 20" # None 1419s May 02 21:50:46 Then postgres-4 is registered in the postgres-2 as the primary in group 2 after 5 seconds # None 1419s May 02 21:50:46 When I shut down postgres-4 # None 1419s May 02 21:50:46 Then there is a transaction in progress on postgres-0 changing pg_dist_node after 5 seconds # None 1419s May 02 21:50:46 When I run patronictl.py restart batman postgres-2 --group 1 --force # None 1419s May 02 21:50:46 Then a transaction finishes in 20 seconds # None 1419s May 02 21:50:46 1419s May 02 21:50:46 Feature: custom bootstrap # features/custom_bootstrap.feature:1 1419s May 02 21:50:46 We should check that patroni can bootstrap a new cluster from a backup 1419s May 02 21:50:46 Scenario: clone existing cluster using pg_basebackup # features/custom_bootstrap.feature:4 1419s May 02 21:50:46 Given I start postgres-0 # features/steps/basic_replication.py:20 1424s May 02 21:50:51 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1425s May 02 21:50:52 When I add the table foo to postgres-0 # features/steps/basic_replication.py:66 1425s May 02 21:50:52 And I start postgres-1 in a cluster batman1 as a clone of postgres-0 # features/steps/custom_bootstrap.py:6 1430s May 02 21:50:57 Then postgres-1 is a leader of batman1 after 10 seconds # features/steps/custom_bootstrap.py:16 1431s May 02 21:50:58 Then table foo is present on postgres-1 after 10 seconds # features/steps/basic_replication.py:105 1431s May 02 21:50:58 1431s May 02 21:50:58 Scenario: make a backup and do a restore into a new cluster # features/custom_bootstrap.feature:12 1431s May 02 21:50:58 Given I add the table bar to postgres-1 # features/steps/basic_replication.py:66 1431s May 02 21:50:58 And I do a backup of postgres-1 # features/steps/custom_bootstrap.py:25 1433s May 02 21:51:00 When I start postgres-2 in a cluster batman2 from backup # features/steps/custom_bootstrap.py:11 1439s May 02 21:51:06 Then postgres-2 is a leader of batman2 after 30 seconds # features/steps/custom_bootstrap.py:16 1439s May 02 21:51:06 And table bar is present on postgres-2 after 10 seconds # features/steps/basic_replication.py:105 1445s May 02 21:51:12 1445s May 02 21:51:12 Feature: dcs failsafe mode # features/dcs_failsafe_mode.feature:1 1445s May 02 21:51:12 We should check the basic dcs failsafe mode functioning 1445s May 02 21:51:12 Scenario: check failsafe mode can be successfully enabled # features/dcs_failsafe_mode.feature:4 1445s May 02 21:51:12 Given I start postgres-0 # features/steps/basic_replication.py:20 1450s May 02 21:51:17 And postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1450s May 02 21:51:17 Then "config" key in DCS has ttl=30 after 10 seconds # features/steps/cascading_replication.py:23 1450s May 02 21:51:17 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 1450s May 02 21:51:17 Then I receive a response code 200 # features/steps/patroni_api.py:100 1450s May 02 21:51:17 And Response on GET http://127.0.0.1:8008/failsafe contains postgres-0 after 10 seconds # features/steps/patroni_api.py:158 1450s May 02 21:51:17 When I issue a GET request to http://127.0.0.1:8008/failsafe # features/steps/patroni_api.py:63 1450s May 02 21:51:17 Then I receive a response code 200 # features/steps/patroni_api.py:100 1450s May 02 21:51:17 And I receive a response postgres-0 http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:100 1450s May 02 21:51:17 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 1450s May 02 21:51:17 Then I receive a response code 200 # features/steps/patroni_api.py:100 1450s May 02 21:51:17 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 1450s May 02 21:51:17 Then I receive a response code 200 # features/steps/patroni_api.py:100 1450s May 02 21:51:17 1450s May 02 21:51:17 @dcs-failsafe 1450s May 02 21:51:17 Scenario: check one-node cluster is functioning while DCS is down # features/dcs_failsafe_mode.feature:20 1450s May 02 21:51:17 Given DCS is down # features/steps/dcs_failsafe_mode.py:4 1450s May 02 21:51:17 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 1458s May 02 21:51:25 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1458s May 02 21:51:25 1458s May 02 21:51:25 @dcs-failsafe 1458s May 02 21:51:25 Scenario: check new replica isn't promoted when leader is down and DCS is up # features/dcs_failsafe_mode.feature:26 1458s May 02 21:51:25 Given DCS is up # features/steps/dcs_failsafe_mode.py:9 1458s May 02 21:51:25 When I do a backup of postgres-0 # features/steps/custom_bootstrap.py:25 1460s May 02 21:51:27 And I shut down postgres-0 # features/steps/basic_replication.py:41 1462s May 02 21:51:29 When I start postgres-1 in a cluster batman from backup with no_leader # features/steps/dcs_failsafe_mode.py:14 1466s May 02 21:51:33 Then postgres-1 role is the replica after 12 seconds # features/steps/basic_replication.py:117 1466s May 02 21:51:33 1466s May 02 21:51:33 Scenario: check leader and replica are both in /failsafe key after leader is back # features/dcs_failsafe_mode.feature:33 1466s May 02 21:51:33 Given I start postgres-0 # features/steps/basic_replication.py:20 1469s May 02 21:51:36 And I start postgres-1 # features/steps/basic_replication.py:20 1469s May 02 21:51:36 Then "members/postgres-0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1469s May 02 21:51:36 And "members/postgres-1" key in DCS has state=running after 2 seconds # features/steps/cascading_replication.py:23 1469s May 02 21:51:36 And Response on GET http://127.0.0.1:8009/failsafe contains postgres-1 after 10 seconds # features/steps/patroni_api.py:158 1470s May 02 21:51:37 When I issue a GET request to http://127.0.0.1:8009/failsafe # features/steps/patroni_api.py:63 1470s May 02 21:51:37 Then I receive a response code 200 # features/steps/patroni_api.py:100 1470s May 02 21:51:37 And I receive a response postgres-0 http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:100 1470s May 02 21:51:37 And I receive a response postgres-1 http://127.0.0.1:8009/patroni # features/steps/patroni_api.py:100 1470s May 02 21:51:37 1470s May 02 21:51:37 @dcs-failsafe @slot-advance 1470s May 02 21:51:37 Scenario: check leader and replica are functioning while DCS is down # features/dcs_failsafe_mode.feature:46 1470s May 02 21:51:37 Given I get all changes from physical slot dcs_slot_1 on postgres-0 # features/steps/slots.py:77 1470s May 02 21:51:37 Then physical slot dcs_slot_1 is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 1472s May 02 21:51:39 And logical slot dcs_slot_0 is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 1475s May 02 21:51:42 And DCS is down # features/steps/dcs_failsafe_mode.py:4 1475s May 02 21:51:42 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 1482s May 02 21:51:49 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1482s May 02 21:51:49 And postgres-1 role is the replica after 2 seconds # features/steps/basic_replication.py:117 1482s May 02 21:51:49 And replication works from postgres-0 to postgres-1 after 10 seconds # features/steps/basic_replication.py:124 1482s May 02 21:51:49 When I get all changes from logical slot dcs_slot_0 on postgres-0 # features/steps/slots.py:72 1482s May 02 21:51:49 And I get all changes from physical slot dcs_slot_1 on postgres-0 # features/steps/slots.py:77 1482s May 02 21:51:49 Then logical slot dcs_slot_0 is in sync between postgres-0 and postgres-1 after 20 seconds # features/steps/slots.py:52 1488s May 02 21:51:55 And physical slot dcs_slot_1 is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 1488s May 02 21:51:55 1488s May 02 21:51:55 @dcs-failsafe 1488s May 02 21:51:55 Scenario: check primary is demoted when one replica is shut down and DCS is down # features/dcs_failsafe_mode.feature:61 1488s May 02 21:51:55 Given DCS is down # features/steps/dcs_failsafe_mode.py:4 1488s May 02 21:51:55 And I kill postgres-1 # features/steps/basic_replication.py:46 1489s May 02 21:51:56 And I kill postmaster on postgres-1 # features/steps/basic_replication.py:56 1489s May 02 21:51:56 waiting for server to shut down.... done 1489s May 02 21:51:56 server stopped 1489s May 02 21:51:56 Then postgres-0 role is the replica after 12 seconds # features/steps/basic_replication.py:117 1492s May 02 21:51:59 1492s May 02 21:51:59 @dcs-failsafe 1492s May 02 21:51:59 Scenario: check known replica is promoted when leader is down and DCS is up # features/dcs_failsafe_mode.feature:68 1492s May 02 21:51:59 Given I kill postgres-0 # features/steps/basic_replication.py:46 1493s May 02 21:52:00 And I shut down postmaster on postgres-0 # features/steps/basic_replication.py:51 1494s May 02 21:52:01 waiting for server to shut down.... done 1494s May 02 21:52:01 server stopped 1494s May 02 21:52:01 And DCS is up # features/steps/dcs_failsafe_mode.py:9 1494s May 02 21:52:01 When I start postgres-1 # features/steps/basic_replication.py:20 1497s May 02 21:52:04 Then "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1497s May 02 21:52:04 And postgres-1 role is the primary after 25 seconds # features/steps/basic_replication.py:117 1498s May 02 21:52:05 1498s May 02 21:52:05 @dcs-failsafe 1498s May 02 21:52:05 Scenario: scale to three-node cluster # features/dcs_failsafe_mode.feature:77 1498s May 02 21:52:05 Given I start postgres-0 # features/steps/basic_replication.py:20 1502s May 02 21:52:09 And I configure and start postgres-2 with a tag replicatefrom postgres-0 # features/steps/cascading_replication.py:7 1508s May 02 21:52:15 Then "members/postgres-2" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1508s May 02 21:52:15 And "members/postgres-0" key in DCS has state=running after 20 seconds # features/steps/cascading_replication.py:23 1508s May 02 21:52:15 And Response on GET http://127.0.0.1:8008/failsafe contains postgres-2 after 10 seconds # features/steps/patroni_api.py:158 1508s May 02 21:52:15 And replication works from postgres-1 to postgres-0 after 10 seconds # features/steps/basic_replication.py:124 1509s May 02 21:52:16 And replication works from postgres-1 to postgres-2 after 10 seconds # features/steps/basic_replication.py:124 1510s May 02 21:52:17 1510s May 02 21:52:17 @dcs-failsafe @slot-advance 1510s May 02 21:52:17 Scenario: make sure permanent slots exist on replicas # features/dcs_failsafe_mode.feature:88 1510s May 02 21:52:17 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 1510s May 02 21:52:17 Then logical slot dcs_slot_2 is in sync between postgres-1 and postgres-0 after 20 seconds # features/steps/slots.py:52 1516s May 02 21:52:23 And logical slot dcs_slot_2 is in sync between postgres-1 and postgres-2 after 20 seconds # features/steps/slots.py:52 1517s May 02 21:52:24 When I get all changes from physical slot dcs_slot_1 on postgres-1 # features/steps/slots.py:77 1517s May 02 21:52:24 Then physical slot dcs_slot_1 is in sync between postgres-1 and postgres-0 after 10 seconds # features/steps/slots.py:52 1518s May 02 21:52:25 And physical slot dcs_slot_1 is in sync between postgres-1 and postgres-2 after 10 seconds # features/steps/slots.py:52 1518s May 02 21:52:25 And physical slot postgres_0 is in sync between postgres-1 and postgres-2 after 10 seconds # features/steps/slots.py:52 1518s May 02 21:52:25 And physical slot postgres_2 is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 1518s May 02 21:52:25 1518s May 02 21:52:25 @dcs-failsafe 1518s May 02 21:52:25 Scenario: check three-node cluster is functioning while DCS is down # features/dcs_failsafe_mode.feature:99 1518s May 02 21:52:25 Given DCS is down # features/steps/dcs_failsafe_mode.py:4 1518s May 02 21:52:25 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 1527s May 02 21:52:34 Then postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1527s May 02 21:52:34 And postgres-0 role is the replica after 2 seconds # features/steps/basic_replication.py:117 1527s May 02 21:52:34 And postgres-2 role is the replica after 2 seconds # features/steps/basic_replication.py:117 1527s May 02 21:52:34 1527s May 02 21:52:34 @dcs-failsafe @slot-advance 1527s May 02 21:52:34 Scenario: check that permanent slots are in sync between nodes while DCS is down # features/dcs_failsafe_mode.feature:108 1527s May 02 21:52:34 Given replication works from postgres-1 to postgres-0 after 10 seconds # features/steps/basic_replication.py:124 1527s May 02 21:52:34 And replication works from postgres-1 to postgres-2 after 10 seconds # features/steps/basic_replication.py:124 1528s May 02 21:52:35 When I get all changes from logical slot dcs_slot_2 on postgres-1 # features/steps/slots.py:72 1528s May 02 21:52:35 And I get all changes from physical slot dcs_slot_1 on postgres-1 # features/steps/slots.py:77 1528s May 02 21:52:35 Then logical slot dcs_slot_2 is in sync between postgres-1 and postgres-0 after 20 seconds # features/steps/slots.py:52 1530s May 02 21:52:37 And logical slot dcs_slot_2 is in sync between postgres-1 and postgres-2 after 20 seconds # features/steps/slots.py:52 1530s May 02 21:52:37 And physical slot dcs_slot_1 is in sync between postgres-1 and postgres-0 after 10 seconds # features/steps/slots.py:52 1530s May 02 21:52:37 And physical slot dcs_slot_1 is in sync between postgres-1 and postgres-2 after 10 seconds # features/steps/slots.py:52 1530s May 02 21:52:37 And physical slot postgres_0 is in sync between postgres-1 and postgres-2 after 10 seconds # features/steps/slots.py:52 1530s May 02 21:52:37 And physical slot postgres_2 is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 1537s May 02 21:52:44 1537s May 02 21:52:44 Feature: ignored slots # features/ignored_slots.feature:1 1537s May 02 21:52:44 1537s May 02 21:52:44 Scenario: check ignored slots aren't removed on failover/switchover # features/ignored_slots.feature:2 1537s May 02 21:52:44 Given I start postgres-1 # features/steps/basic_replication.py:20 1542s May 02 21:52:49 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 1542s May 02 21:52:49 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 1542s May 02 21:52:49 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 1542s May 02 21:52:49 Then I receive a response code 200 # features/steps/patroni_api.py:100 1542s May 02 21:52:49 And Response on GET http://127.0.0.1:8009/config contains ignore_slots after 10 seconds # features/steps/patroni_api.py:158 1542s May 02 21:52:49 When I shut down postgres-1 # features/steps/basic_replication.py:41 1544s May 02 21:52:51 And I start postgres-1 # features/steps/basic_replication.py:20 1547s May 02 21:52:54 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 1547s May 02 21:52:54 And "members/postgres-1" key in DCS has role=primary after 10 seconds # features/steps/cascading_replication.py:23 1548s May 02 21:52:55 And postgres-1 role is the primary after 20 seconds # features/steps/basic_replication.py:117 1548s May 02 21:52:55 When I create a logical replication slot unmanaged_slot_0 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 1548s May 02 21:52:55 And I create a logical replication slot unmanaged_slot_1 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 1548s May 02 21:52:55 And I create a logical replication slot unmanaged_slot_2 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 1548s May 02 21:52:55 And I create a logical replication slot unmanaged_slot_3 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 1548s May 02 21:52:55 And I create a logical replication slot dummy_slot on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 1548s May 02 21:52:55 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 1548s May 02 21:52:55 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 1548s May 02 21:52:55 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 1548s May 02 21:52:55 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 1548s May 02 21:52:55 When I start postgres-0 # features/steps/basic_replication.py:20 1552s May 02 21:52:59 Then "members/postgres-0" key in DCS has role=replica after 10 seconds # features/steps/cascading_replication.py:23 1552s May 02 21:52:59 And postgres-0 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 1552s May 02 21:52:59 And replication works from postgres-1 to postgres-0 after 20 seconds # features/steps/basic_replication.py:124 1553s May 02 21:53:00 When I shut down postgres-1 # features/steps/basic_replication.py:41 1555s May 02 21:53:02 Then "members/postgres-0" key in DCS has role=primary after 10 seconds # features/steps/cascading_replication.py:23 1556s May 02 21:53:03 When I start postgres-1 # features/steps/basic_replication.py:20 1559s May 02 21:53:06 Then postgres-1 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 1559s May 02 21:53:06 And "members/postgres-1" key in DCS has role=replica after 10 seconds # features/steps/cascading_replication.py:23 1559s May 02 21:53:06 And I sleep for 2 seconds # features/steps/patroni_api.py:41 1561s May 02 21:53:08 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 1561s May 02 21:53:08 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 1561s May 02 21:53:08 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 1561s May 02 21:53:08 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 1561s May 02 21:53:08 And postgres-1 does not have a replication slot named dummy_slot # features/steps/slots.py:41 1561s May 02 21:53:08 When I shut down postgres-0 # features/steps/basic_replication.py:41 1563s May 02 21:53:10 Then "members/postgres-1" key in DCS has role=primary after 10 seconds # features/steps/cascading_replication.py:23 1564s May 02 21:53: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 1564s May 02 21:53: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 1564s May 02 21:53: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 1564s May 02 21:53: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 1567s May 02 21:53:14 1567s May 02 21:53:14 Feature: nostream node # features/nostream_node.feature:1 1567s May 02 21:53:14 1567s May 02 21:53:14 Scenario: check nostream node is recovering from archive # features/nostream_node.feature:3 1567s May 02 21:53:14 When I start postgres-0 # features/steps/basic_replication.py:20 1571s May 02 21:53:18 And I configure and start postgres-1 with a tag nostream true # features/steps/cascading_replication.py:7 1575s May 02 21:53:22 Then "members/postgres-1" key in DCS has replication_state=in archive recovery after 10 seconds # features/steps/cascading_replication.py:23 1576s May 02 21:53:23 And replication works from postgres-0 to postgres-1 after 30 seconds # features/steps/basic_replication.py:124 1581s May 02 21:53:28 1581s May 02 21:53:28 @slot-advance 1581s May 02 21:53:28 Scenario: check permanent logical replication slots are not copied # features/nostream_node.feature:10 1581s May 02 21:53:28 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 1581s May 02 21:53:28 Then I receive a response code 200 # features/steps/patroni_api.py:100 1581s May 02 21:53:28 When I run patronictl.py restart batman postgres-0 --force # features/steps/patroni_api.py:88 1583s May 02 21:53:30 Then postgres-0 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:20 1584s May 02 21:53:31 When I configure and start postgres-2 with a tag replicatefrom postgres-1 # features/steps/cascading_replication.py:7 1588s May 02 21:53:35 Then "members/postgres-2" key in DCS has replication_state=streaming after 10 seconds # features/steps/cascading_replication.py:23 1589s May 02 21:53:36 And postgres-1 does not have a replication slot named test_logical # features/steps/slots.py:41 1589s May 02 21:53:36 And postgres-2 does not have a replication slot named test_logical # features/steps/slots.py:41 1589s May 02 21:53:36 1589s May 02 21:53:36 @slot-advance 1589s May 02 21:53:36 Scenario: check that slots are written to the /status key # features/nostream_node.feature:21 1589s May 02 21:53:36 Given "status" key in DCS has postgres_0 in slots # features/steps/slots.py:118 1589s May 02 21:53:36 And "status" key in DCS has postgres_2 in slots # features/steps/slots.py:118 1589s May 02 21:53:36 And "status" key in DCS has test_logical in slots # features/steps/slots.py:118 1589s May 02 21:53:36 And "status" key in DCS has test_logical in slots # features/steps/slots.py:118 1589s May 02 21:53:36 And "status" key in DCS does not have postgres_1 in slots # features/steps/slots.py:124 1595s May 02 21:53:42 1595s May 02 21:53:42 Feature: patroni api # features/patroni_api.feature:1 1595s May 02 21:53:42 We should check that patroni correctly responds to valid and not-valid API requests. 1595s May 02 21:53:42 Scenario: check API requests on a stand-alone server # features/patroni_api.feature:4 1595s May 02 21:53:42 Given I start postgres-0 # features/steps/basic_replication.py:20 1599s May 02 21:53:46 And postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1599s May 02 21:53:46 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:63 1599s May 02 21:53:46 Then I receive a response code 200 # features/steps/patroni_api.py:100 1599s May 02 21:53:46 And I receive a response state running # features/steps/patroni_api.py:100 1599s May 02 21:53:46 And I receive a response role primary # features/steps/patroni_api.py:100 1599s May 02 21:53:46 When I issue a GET request to http://127.0.0.1:8008/standby_leader # features/steps/patroni_api.py:63 1599s May 02 21:53:46 Then I receive a response code 503 # features/steps/patroni_api.py:100 1599s May 02 21:53:46 When I issue a GET request to http://127.0.0.1:8008/health # features/steps/patroni_api.py:63 1599s May 02 21:53:46 Then I receive a response code 200 # features/steps/patroni_api.py:100 1599s May 02 21:53:46 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:63 1599s May 02 21:53:46 Then I receive a response code 503 # features/steps/patroni_api.py:100 1599s May 02 21:53:46 When I issue a POST request to http://127.0.0.1:8008/reinitialize with {"force": true} # features/steps/patroni_api.py:73 1599s May 02 21:53:46 Then I receive a response code 503 # features/steps/patroni_api.py:100 1599s May 02 21:53:46 And I receive a response text I am the leader, can not reinitialize # features/steps/patroni_api.py:100 1599s May 02 21:53:46 When I run patronictl.py switchover batman --primary postgres-0 --force # features/steps/patroni_api.py:88 1601s May 02 21:53:47 Then I receive a response returncode 1 # features/steps/patroni_api.py:100 1601s May 02 21:53:47 And I receive a response output "Error: No candidates found to switchover to" # features/steps/patroni_api.py:100 1601s May 02 21:53:47 When I issue a POST request to http://127.0.0.1:8008/switchover with {"leader": "postgres-0"} # features/steps/patroni_api.py:73 1601s May 02 21:53:48 Then I receive a response code 412 # features/steps/patroni_api.py:100 1601s May 02 21:53:48 And I receive a response text switchover is not possible: cluster does not have members except leader # features/steps/patroni_api.py:100 1601s May 02 21:53:48 When I issue an empty POST request to http://127.0.0.1:8008/failover # features/steps/patroni_api.py:68 1601s May 02 21:53:48 Then I receive a response code 400 # features/steps/patroni_api.py:100 1601s May 02 21:53:48 When I issue a POST request to http://127.0.0.1:8008/failover with {"foo": "bar"} # features/steps/patroni_api.py:73 1601s May 02 21:53:48 Then I receive a response code 400 # features/steps/patroni_api.py:100 1601s May 02 21:53:48 And I receive a response text "Failover could be performed only to a specific candidate" # features/steps/patroni_api.py:100 1601s May 02 21:53:48 1601s May 02 21:53:48 Scenario: check local configuration reload # features/patroni_api.feature:32 1601s May 02 21:53:48 Given I add tag new_tag new_value to postgres-0 config # features/steps/patroni_api.py:139 1601s May 02 21:53:48 And I issue an empty POST request to http://127.0.0.1:8008/reload # features/steps/patroni_api.py:68 1601s May 02 21:53:48 Then I receive a response code 202 # features/steps/patroni_api.py:100 1601s May 02 21:53:48 1601s May 02 21:53:48 Scenario: check dynamic configuration change via DCS # features/patroni_api.feature:37 1601s May 02 21:53:48 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 1601s May 02 21:53:48 Then I receive a response code 200 # features/steps/patroni_api.py:100 1601s May 02 21:53:48 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 11 seconds # features/steps/patroni_api.py:158 1603s May 02 21:53:50 When I issue a GET request to http://127.0.0.1:8008/config # features/steps/patroni_api.py:63 1603s May 02 21:53:50 Then I receive a response code 200 # features/steps/patroni_api.py:100 1603s May 02 21:53:50 And I receive a response ttl 20 # features/steps/patroni_api.py:100 1603s May 02 21:53:50 When I issue a GET request to http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:63 1603s May 02 21:53:50 Then I receive a response code 200 # features/steps/patroni_api.py:100 1603s May 02 21:53:50 And I receive a response tags {'new_tag': 'new_value'} # features/steps/patroni_api.py:100 1603s May 02 21:53:50 And I sleep for 4 seconds # features/steps/patroni_api.py:41 1607s May 02 21:53:54 1607s May 02 21:53:54 Scenario: check the scheduled restart # features/patroni_api.feature:49 1607s May 02 21:53:54 Given I run patronictl.py edit-config -p 'superuser_reserved_connections=6' --force batman # features/steps/patroni_api.py:88 1608s May 02 21:53:55 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1608s May 02 21:53:55 And I receive a response output "+ superuser_reserved_connections: 6" # features/steps/patroni_api.py:100 1608s May 02 21:53:55 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 5 seconds # features/steps/patroni_api.py:158 1608s May 02 21:53:55 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 1608s May 02 21:53:55 Then I receive a response code 202 # features/steps/patroni_api.py:100 1608s May 02 21:53:55 And I sleep for 8 seconds # features/steps/patroni_api.py:41 1616s May 02 21:54:03 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 10 seconds # features/steps/patroni_api.py:158 1616s May 02 21:54:03 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 1617s May 02 21:54:03 Then I receive a response code 202 # features/steps/patroni_api.py:100 1617s May 02 21:54:03 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 1623s May 02 21:54:10 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1624s May 02 21:54:11 1624s May 02 21:54:11 Scenario: check API requests for the primary-replica pair in the pause mode # features/patroni_api.feature:63 1624s May 02 21:54:11 Given I start postgres-1 # features/steps/basic_replication.py:20 1628s May 02 21:54:15 Then replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 1629s May 02 21:54:16 When I run patronictl.py pause batman # features/steps/patroni_api.py:88 1631s May 02 21:54:18 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1631s May 02 21:54:18 When I kill postmaster on postgres-1 # features/steps/basic_replication.py:56 1631s May 02 21:54:18 waiting for server to shut down.... done 1631s May 02 21:54:18 server stopped 1631s May 02 21:54:18 And I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 1631s May 02 21:54:18 Then I receive a response code 503 # features/steps/patroni_api.py:100 1631s May 02 21:54:18 And "members/postgres-1" key in DCS has state=stopped after 10 seconds # features/steps/cascading_replication.py:23 1632s May 02 21:54:19 When I run patronictl.py restart batman postgres-1 --force # features/steps/patroni_api.py:88 1635s May 02 21:54:22 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1635s May 02 21:54:22 Then replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 1636s May 02 21:54:23 And I sleep for 2 seconds # features/steps/patroni_api.py:41 1638s May 02 21:54:25 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 1638s May 02 21:54:25 Then I receive a response code 200 # features/steps/patroni_api.py:100 1638s May 02 21:54:25 And I receive a response state running # features/steps/patroni_api.py:100 1638s May 02 21:54:25 And I receive a response role replica # features/steps/patroni_api.py:100 1638s May 02 21:54:25 When I run patronictl.py reinit batman postgres-1 --force --wait # features/steps/patroni_api.py:88 1642s May 02 21:54:29 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1642s May 02 21:54:29 And I receive a response output "Success: reinitialize for member postgres-1" # features/steps/patroni_api.py:100 1642s May 02 21:54:29 And postgres-1 role is the secondary after 30 seconds # features/steps/basic_replication.py:117 1643s May 02 21:54:30 And replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 1645s May 02 21:54:31 When I run patronictl.py restart batman postgres-0 --force # features/steps/patroni_api.py:88 1647s May 02 21:54:33 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1647s May 02 21:54:33 And I receive a response output "Success: restart on member postgres-0" # features/steps/patroni_api.py:100 1647s May 02 21:54:33 And postgres-0 role is the primary after 5 seconds # features/steps/basic_replication.py:117 1648s May 02 21:54:34 1648s May 02 21:54:34 Scenario: check the switchover via the API in the pause mode # features/patroni_api.feature:90 1648s May 02 21:54:34 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 1650s May 02 21:54:37 Then I receive a response code 200 # features/steps/patroni_api.py:100 1650s May 02 21:54:37 And postgres-1 is a leader after 5 seconds # features/steps/patroni_api.py:31 1650s May 02 21:54:37 And postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1651s May 02 21:54:38 And postgres-0 role is the secondary after 10 seconds # features/steps/basic_replication.py:117 1656s May 02 21:54:43 And replication works from postgres-1 to postgres-0 after 20 seconds # features/steps/basic_replication.py:124 1656s May 02 21:54:43 And "members/postgres-0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1656s May 02 21:54:43 When I issue a GET request to http://127.0.0.1:8008/primary # features/steps/patroni_api.py:63 1656s May 02 21:54:43 Then I receive a response code 503 # features/steps/patroni_api.py:100 1656s May 02 21:54:43 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:63 1656s May 02 21:54:43 Then I receive a response code 200 # features/steps/patroni_api.py:100 1656s May 02 21:54:43 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 1656s May 02 21:54:43 Then I receive a response code 200 # features/steps/patroni_api.py:100 1656s May 02 21:54:43 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 1656s May 02 21:54:43 Then I receive a response code 503 # features/steps/patroni_api.py:100 1656s May 02 21:54:43 1656s May 02 21:54:43 Scenario: check the scheduled switchover # features/patroni_api.feature:107 1656s May 02 21:54:43 Given I issue a scheduled switchover from postgres-1 to postgres-0 in 10 seconds # features/steps/patroni_api.py:119 1657s May 02 21:54:44 Then I receive a response returncode 1 # features/steps/patroni_api.py:100 1657s May 02 21:54:44 And I receive a response output "Can't schedule switchover in the paused state" # features/steps/patroni_api.py:100 1657s May 02 21:54:44 When I run patronictl.py resume batman # features/steps/patroni_api.py:88 1659s May 02 21:54:46 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1659s May 02 21:54:46 Given I issue a scheduled switchover from postgres-1 to postgres-0 in 10 seconds # features/steps/patroni_api.py:119 1660s May 02 21:54:47 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1660s May 02 21:54:47 And postgres-0 is a leader after 20 seconds # features/steps/patroni_api.py:31 1671s May 02 21:54:58 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1672s May 02 21:54:59 And postgres-1 role is the secondary after 10 seconds # features/steps/basic_replication.py:117 1673s May 02 21:55:00 And replication works from postgres-0 to postgres-1 after 25 seconds # features/steps/basic_replication.py:124 1673s May 02 21:55:00 And "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1674s May 02 21:55:01 When I issue a GET request to http://127.0.0.1:8008/primary # features/steps/patroni_api.py:63 1674s May 02 21:55:01 Then I receive a response code 200 # features/steps/patroni_api.py:100 1674s May 02 21:55:01 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:63 1674s May 02 21:55:01 Then I receive a response code 503 # features/steps/patroni_api.py:100 1674s May 02 21:55:01 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 1674s May 02 21:55:01 Then I receive a response code 503 # features/steps/patroni_api.py:100 1674s May 02 21:55:01 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 1674s May 02 21:55:01 Then I receive a response code 200 # features/steps/patroni_api.py:100 1678s May 02 21:55:05 1678s May 02 21:55:05 Feature: permanent slots # features/permanent_slots.feature:1 1678s May 02 21:55:05 1678s May 02 21:55:05 Scenario: check that physical permanent slots are created # features/permanent_slots.feature:2 1678s May 02 21:55:05 Given I start postgres-0 # features/steps/basic_replication.py:20 1683s May 02 21:55:10 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1684s May 02 21:55:11 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 1684s May 02 21:55:11 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 1685s May 02 21:55:11 Then I receive a response code 200 # features/steps/patroni_api.py:100 1685s May 02 21:55:11 And Response on GET http://127.0.0.1:8008/config contains slots after 10 seconds # features/steps/patroni_api.py:158 1685s May 02 21:55:12 When I start postgres-1 # features/steps/basic_replication.py:20 1690s May 02 21:55:17 And I configure and start postgres-2 with a tag nofailover true # features/steps/cascading_replication.py:7 1695s May 02 21:55:22 And I configure and start postgres-3 with a tag replicatefrom postgres-2 # features/steps/cascading_replication.py:7 1700s May 02 21:55:27 Then postgres-0 has a physical replication slot named test_physical after 10 seconds # features/steps/slots.py:82 1700s May 02 21:55:27 And postgres-0 has a physical replication slot named postgres_1 after 10 seconds # features/steps/slots.py:82 1700s May 02 21:55:27 And postgres-0 has a physical replication slot named postgres_2 after 10 seconds # features/steps/slots.py:82 1700s May 02 21:55:27 And postgres-2 has a physical replication slot named postgres_3 after 10 seconds # features/steps/slots.py:82 1700s May 02 21:55:27 And postgres-2 does not have a replication slot named test_physical # features/steps/slots.py:41 1700s May 02 21:55:27 1700s May 02 21:55:27 @slot-advance 1700s May 02 21:55:27 Scenario: check that logical permanent slots are created # features/permanent_slots.feature:19 1700s May 02 21:55:27 Given I run patronictl.py restart batman postgres-0 --force # features/steps/patroni_api.py:88 1702s May 02 21:55: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 1702s May 02 21:55: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 1703s May 02 21:55:30 1703s May 02 21:55:30 @slot-advance 1703s May 02 21:55:30 Scenario: check that permanent slots are created on replicas # features/permanent_slots.feature:25 1703s May 02 21:55: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 1708s May 02 21:55:35 Then Logical slot test_logical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 1708s May 02 21:55:35 And Logical slot test_logical is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 1709s May 02 21:55:36 And postgres-1 has a physical replication slot named test_physical after 2 seconds # features/steps/slots.py:82 1709s May 02 21:55:36 And postgres-2 does not have a replication slot named test_logical # features/steps/slots.py:41 1709s May 02 21:55:36 And postgres-3 has a physical replication slot named test_physical after 2 seconds # features/steps/slots.py:82 1709s May 02 21:55:36 1709s May 02 21:55:36 @slot-advance 1709s May 02 21:55:36 Scenario: check permanent physical slots that match with member names # features/permanent_slots.feature:34 1709s May 02 21:55:36 Given postgres-0 has a physical replication slot named postgres_3 after 2 seconds # features/steps/slots.py:82 1709s May 02 21:55:36 And postgres-1 has a physical replication slot named postgres_0 after 2 seconds # features/steps/slots.py:82 1709s May 02 21:55:36 And postgres-1 has a physical replication slot named postgres_2 after 2 seconds # features/steps/slots.py:82 1709s May 02 21:55:36 And postgres-1 has a physical replication slot named postgres_3 after 2 seconds # features/steps/slots.py:82 1709s May 02 21:55:36 And postgres-2 does not have a replication slot named postgres_0 # features/steps/slots.py:41 1709s May 02 21:55:36 And postgres-2 does not have a replication slot named postgres_1 # features/steps/slots.py:41 1709s May 02 21:55:36 And postgres-2 has a physical replication slot named postgres_3 after 2 seconds # features/steps/slots.py:82 1709s May 02 21:55:36 And postgres-3 has a physical replication slot named postgres_0 after 2 seconds # features/steps/slots.py:82 1709s May 02 21:55:36 And postgres-3 has a physical replication slot named postgres_1 after 2 seconds # features/steps/slots.py:82 1709s May 02 21:55:36 And postgres-3 has a physical replication slot named postgres_2 after 2 seconds # features/steps/slots.py:82 1709s May 02 21:55:36 1709s May 02 21:55:36 @slot-advance 1709s May 02 21:55:36 Scenario: check that permanent slots are advanced on replicas # features/permanent_slots.feature:47 1709s May 02 21:55:36 Given I add the table replicate_me to postgres-0 # features/steps/basic_replication.py:66 1709s May 02 21:55:36 When I get all changes from logical slot test_logical on postgres-0 # features/steps/slots.py:72 1709s May 02 21:55:36 And I get all changes from physical slot test_physical on postgres-0 # features/steps/slots.py:77 1709s May 02 21:55:36 Then Logical slot test_logical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 1710s May 02 21:55:37 And Physical slot test_physical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 1710s May 02 21:55:37 And Logical slot test_logical is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 1710s May 02 21:55:37 And Physical slot test_physical is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 1710s May 02 21:55:37 And Physical slot postgres_1 is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 1710s May 02 21:55:37 And Physical slot postgres_3 is in sync between postgres-2 and postgres-0 after 20 seconds # features/steps/slots.py:52 1712s May 02 21:55:39 And Physical slot postgres_3 is in sync between postgres-2 and postgres-1 after 10 seconds # features/steps/slots.py:52 1712s May 02 21:55:39 1712s May 02 21:55:39 @slot-advance 1712s May 02 21:55:39 Scenario: check that permanent slots and member slots are written to the /status key # features/permanent_slots.feature:60 1712s May 02 21:55:39 Given "status" key in DCS has test_physical in slots # features/steps/slots.py:118 1712s May 02 21:55:39 And "status" key in DCS has postgres_0 in slots # features/steps/slots.py:118 1712s May 02 21:55:39 And "status" key in DCS has postgres_1 in slots # features/steps/slots.py:118 1712s May 02 21:55:39 And "status" key in DCS has postgres_2 in slots # features/steps/slots.py:118 1712s May 02 21:55:39 And "status" key in DCS has postgres_3 in slots # features/steps/slots.py:118 1712s May 02 21:55:39 1712s May 02 21:55:39 @slot-advance 1712s May 02 21:55:39 Scenario: check that only non-permanent member slots are written to the retain_slots in /status key # features/permanent_slots.feature:68 1712s May 02 21:55:39 Given "status" key in DCS has postgres_0 in retain_slots # features/steps/slots.py:118 1712s May 02 21:55:39 And "status" key in DCS has postgres_1 in retain_slots # features/steps/slots.py:118 1712s May 02 21:55:39 And "status" key in DCS has postgres_2 in retain_slots # features/steps/slots.py:118 1712s May 02 21:55:39 And "status" key in DCS does not have postgres_3 in retain_slots # features/steps/slots.py:124 1712s May 02 21:55:39 1712s May 02 21:55:39 Scenario: check permanent physical replication slot after failover # features/permanent_slots.feature:74 1712s May 02 21:55:39 Given I shut down postgres-3 # features/steps/basic_replication.py:41 1713s May 02 21:55:40 And I shut down postgres-2 # features/steps/basic_replication.py:41 1714s May 02 21:55:41 And I shut down postgres-0 # features/steps/basic_replication.py:41 1716s May 02 21:55:43 Then postgres-1 has a physical replication slot named test_physical after 10 seconds # features/steps/slots.py:82 1716s May 02 21:55:43 And postgres-1 has a physical replication slot named postgres_0 after 10 seconds # features/steps/slots.py:82 1716s May 02 21:55:43 And postgres-1 has a physical replication slot named postgres_3 after 10 seconds # features/steps/slots.py:82 1716s May 02 21:55:43 When I start postgres-0 # features/steps/basic_replication.py:20 1719s May 02 21:55:46 Then postgres-0 role is the replica after 20 seconds # features/steps/basic_replication.py:117 1719s May 02 21:55:46 And physical replication slot named postgres_1 on postgres-0 has no xmin value after 10 seconds # features/steps/slots.py:98 1719s May 02 21:55:46 And postgres-0 has a physical replication slot named postgres_2 after 10 seconds # features/steps/slots.py:82 1719s May 02 21:55:46 And postgres-0 has a physical replication slot named postgres_3 after 10 seconds # features/steps/slots.py:82 1722s May 02 21:55:49 1722s May 02 21:55:49 Feature: priority replication # features/priority_failover.feature:1 1722s May 02 21:55:49 We should check that we can give nodes priority during failover 1722s May 02 21:55:49 Scenario: check failover priority 0 prevents leaderships # features/priority_failover.feature:4 1722s May 02 21:55:49 Given I configure and start postgres-0 with a tag failover_priority 1 # features/steps/cascading_replication.py:7 1726s May 02 21:55:53 And I configure and start postgres-1 with a tag failover_priority 0 # features/steps/cascading_replication.py:7 1731s May 02 21:55:58 Then replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 1733s May 02 21:56:00 When I shut down postgres-0 # features/steps/basic_replication.py:41 1735s May 02 21:56:02 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 1737s May 02 21:56:04 Then postgres-1 role is the secondary after 10 seconds # features/steps/basic_replication.py:117 1737s May 02 21:56:04 When I start postgres-0 # features/steps/basic_replication.py:20 1740s May 02 21:56:07 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1741s May 02 21:56:08 1741s May 02 21:56:08 Scenario: check higher failover priority is respected # features/priority_failover.feature:14 1741s May 02 21:56:08 Given I configure and start postgres-2 with a tag failover_priority 1 # features/steps/cascading_replication.py:7 1745s May 02 21:56:12 And I configure and start postgres-3 with a tag failover_priority 2 # features/steps/cascading_replication.py:7 1750s May 02 21:56:17 Then replication works from postgres-0 to postgres-2 after 20 seconds # features/steps/basic_replication.py:124 1751s May 02 21:56:18 And replication works from postgres-0 to postgres-3 after 20 seconds # features/steps/basic_replication.py:124 1752s May 02 21:56:19 When I shut down postgres-0 # features/steps/basic_replication.py:41 1754s May 02 21:56:21 Then postgres-3 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1755s May 02 21:56:22 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 1755s May 02 21:56:22 1755s May 02 21:56:22 Scenario: check conflicting configuration handling # features/priority_failover.feature:23 1755s May 02 21:56:22 When I set nofailover tag in postgres-2 config # features/steps/patroni_api.py:133 1755s May 02 21:56:22 And I issue an empty POST request to http://127.0.0.1:8010/reload # features/steps/patroni_api.py:68 1755s May 02 21:56:22 Then I receive a response code 202 # features/steps/patroni_api.py:100 1755s May 02 21:56:22 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 1757s May 02 21:56:24 And "members/postgres-2" key in DCS has tags={'failover_priority': '1', 'nofailover': True} after 10 seconds # features/steps/cascading_replication.py:23 1758s May 02 21:56:25 When I issue a POST request to http://127.0.0.1:8010/failover with {"candidate": "postgres-2"} # features/steps/patroni_api.py:73 1758s May 02 21:56:25 Then I receive a response code 412 # features/steps/patroni_api.py:100 1758s May 02 21:56:25 And I receive a response text "failover is not possible: no good candidates have been found" # features/steps/patroni_api.py:100 1758s May 02 21:56:25 When I reset nofailover tag in postgres-1 config # features/steps/patroni_api.py:133 1758s May 02 21:56:25 And I issue an empty POST request to http://127.0.0.1:8009/reload # features/steps/patroni_api.py:68 1758s May 02 21:56:25 Then I receive a response code 202 # features/steps/patroni_api.py:100 1758s May 02 21:56:25 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 1759s May 02 21:56:26 And "members/postgres-1" key in DCS has tags={'failover_priority': '0', 'nofailover': False} after 10 seconds # features/steps/cascading_replication.py:23 1760s May 02 21:56:27 And I issue a POST request to http://127.0.0.1:8009/failover with {"candidate": "postgres-1"} # features/steps/patroni_api.py:73 1762s May 02 21:56:29 Then I receive a response code 200 # features/steps/patroni_api.py:100 1762s May 02 21:56:29 And postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1768s May 02 21:56:34 1768s May 02 21:56:34 Feature: quorum commit # features/quorum_commit.feature:1 1768s May 02 21:56:34 Check basic workfrlows when quorum commit is enabled 1768s May 02 21:56:34 Scenario: check enable quorum commit and that the only leader promotes after restart # features/quorum_commit.feature:4 1768s May 02 21:56:34 Given I start postgres-0 # features/steps/basic_replication.py:20 1772s May 02 21:56:39 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1772s May 02 21:56:39 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 1772s May 02 21:56:39 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 1772s May 02 21:56:39 Then I receive a response code 200 # features/steps/patroni_api.py:100 1772s May 02 21:56:39 And sync key in DCS has leader=postgres-0 after 20 seconds # features/steps/quorum_commit.py:8 1772s May 02 21:56:39 And sync key in DCS has quorum=0 after 2 seconds # features/steps/quorum_commit.py:8 1772s May 02 21:56:39 And synchronous_standby_names on postgres-0 is set to '_empty_str_' after 2 seconds # features/steps/quorum_commit.py:39 1772s May 02 21:56:39 When I shut down postgres-0 # features/steps/basic_replication.py:41 1774s May 02 21:56:41 And sync key in DCS has leader=postgres-0 after 2 seconds # features/steps/quorum_commit.py:8 1774s May 02 21:56:41 When I start postgres-0 # features/steps/basic_replication.py:20 1777s May 02 21:56:44 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1778s May 02 21:56:45 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 1778s May 02 21:56:45 Then synchronous_standby_names on postgres-0 is set to 'ANY 1 (*)' after 10 seconds # features/steps/quorum_commit.py:39 1779s May 02 21:56:46 1779s May 02 21:56:46 Scenario: check failover with one quorum standby # features/quorum_commit.feature:20 1779s May 02 21:56:46 Given I start postgres-1 # features/steps/basic_replication.py:20 1783s May 02 21:56:50 Then sync key in DCS has sync_standby=postgres-1 after 10 seconds # features/steps/quorum_commit.py:8 1785s May 02 21:56:52 And synchronous_standby_names on postgres-0 is set to 'ANY 1 ("postgres-1")' after 2 seconds # features/steps/quorum_commit.py:39 1785s May 02 21:56:52 When I shut down postgres-0 # features/steps/basic_replication.py:41 1787s May 02 21:56:54 Then postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1788s May 02 21:56:55 And sync key in DCS has quorum=0 after 10 seconds # features/steps/quorum_commit.py:8 1788s May 02 21:56:55 Then synchronous_standby_names on postgres-1 is set to 'ANY 1 (*)' after 10 seconds # features/steps/quorum_commit.py:39 1792s May 02 21:56:59 When I start postgres-0 # features/steps/basic_replication.py:20 1795s May 02 21:57:02 Then sync key in DCS has leader=postgres-1 after 10 seconds # features/steps/quorum_commit.py:8 1795s May 02 21:57:02 Then sync key in DCS has sync_standby=postgres-0 after 10 seconds # features/steps/quorum_commit.py:8 1797s May 02 21:57:04 And synchronous_standby_names on postgres-1 is set to 'ANY 1 ("postgres-0")' after 2 seconds # features/steps/quorum_commit.py:39 1797s May 02 21:57:04 1797s May 02 21:57:04 Scenario: check behavior with three nodes and different replication factor # features/quorum_commit.feature:33 1797s May 02 21:57:04 Given I start postgres-2 # features/steps/basic_replication.py:20 1801s May 02 21:57:08 Then sync key in DCS has sync_standby=postgres-0,postgres-2 after 10 seconds # features/steps/quorum_commit.py:8 1803s May 02 21:57:10 And sync key in DCS has quorum=1 after 2 seconds # features/steps/quorum_commit.py:8 1803s May 02 21:57:10 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 1803s May 02 21:57:10 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 1803s May 02 21:57:10 Then sync key in DCS has quorum=0 after 10 seconds # features/steps/quorum_commit.py:8 1804s May 02 21:57:11 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 1804s May 02 21:57:11 1804s May 02 21:57:11 Scenario: switch from quorum replication to good old multisync and back # features/quorum_commit.feature:42 1804s May 02 21:57:11 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 1804s May 02 21:57:11 And I shut down postgres-0 # features/steps/basic_replication.py:41 1805s May 02 21:57:12 Then synchronous_standby_names on postgres-1 is set to '"postgres-2"' after 10 seconds # features/steps/quorum_commit.py:39 1807s May 02 21:57:14 And sync key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/quorum_commit.py:8 1809s May 02 21:57:16 Then sync key in DCS has quorum=0 after 2 seconds # features/steps/quorum_commit.py:8 1809s May 02 21:57:16 When I issue a PATCH request to http://127.0.0.1:8009/config with {"synchronous_mode": "quorum"} # features/steps/patroni_api.py:73 1809s May 02 21:57:16 And I start postgres-0 # features/steps/basic_replication.py:20 1812s May 02 21:57:19 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 1812s May 02 21:57:19 And sync key in DCS has sync_standby=postgres-0,postgres-2 after 10 seconds # features/steps/quorum_commit.py:8 1812s May 02 21:57:19 Then sync key in DCS has quorum=1 after 2 seconds # features/steps/quorum_commit.py:8 1812s May 02 21:57:19 1812s May 02 21:57:19 Scenario: REST API and patronictl # features/quorum_commit.feature:54 1812s May 02 21:57:19 Given I run patronictl.py list batman # features/steps/patroni_api.py:88 1813s May 02 21:57:20 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1813s May 02 21:57:20 And I receive a response output "Quorum Standby" # features/steps/patroni_api.py:100 1813s May 02 21:57:20 And Status code on GET http://127.0.0.1:8008/quorum is 200 after 3 seconds # features/steps/patroni_api.py:144 1813s May 02 21:57:20 And Status code on GET http://127.0.0.1:8010/quorum is 200 after 3 seconds # features/steps/patroni_api.py:144 1813s May 02 21:57:20 1813s May 02 21:57:20 Scenario: nosync node is removed from voters and synchronous_standby_names # features/quorum_commit.feature:61 1813s May 02 21:57:20 Given I add tag nosync true to postgres-2 config # features/steps/patroni_api.py:139 1813s May 02 21:57:20 When I issue an empty POST request to http://127.0.0.1:8010/reload # features/steps/patroni_api.py:68 1814s May 02 21:57:20 Then I receive a response code 202 # features/steps/patroni_api.py:100 1814s May 02 21:57:20 And sync key in DCS has quorum=0 after 10 seconds # features/steps/quorum_commit.py:8 1817s May 02 21:57:23 And sync key in DCS has sync_standby=postgres-0 after 10 seconds # features/steps/quorum_commit.py:8 1817s May 02 21:57:23 And synchronous_standby_names on postgres-1 is set to 'ANY 1 ("postgres-0")' after 2 seconds # features/steps/quorum_commit.py:39 1817s May 02 21:57:23 And Status code on GET http://127.0.0.1:8010/quorum is 503 after 10 seconds # features/steps/patroni_api.py:144 1824s May 02 21:57:31 1824s May 02 21:57:31 Feature: recovery # features/recovery.feature:1 1824s May 02 21:57:31 We want to check that crashed postgres is started back 1824s May 02 21:57:31 Scenario: check that timeline is not incremented when primary is started after crash # features/recovery.feature:4 1824s May 02 21:57:31 Given I start postgres-0 # features/steps/basic_replication.py:20 1828s May 02 21:57:35 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1828s May 02 21:57:35 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 1828s May 02 21:57:35 When I start postgres-1 # features/steps/basic_replication.py:20 1832s May 02 21:57:39 And I add the table foo to postgres-0 # features/steps/basic_replication.py:66 1832s May 02 21:57:39 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 1833s May 02 21:57:40 When I kill postmaster on postgres-0 # features/steps/basic_replication.py:56 1833s May 02 21:57:40 waiting for server to shut down.... done 1833s May 02 21:57:40 server stopped 1833s May 02 21:57:40 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1835s May 02 21:57:42 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:63 1835s May 02 21:57:42 Then I receive a response code 200 # features/steps/patroni_api.py:100 1835s May 02 21:57:42 And I receive a response role primary # features/steps/patroni_api.py:100 1835s May 02 21:57:42 And I receive a response timeline 1 # features/steps/patroni_api.py:100 1835s May 02 21:57:42 And "members/postgres-0" key in DCS has state=running after 12 seconds # features/steps/cascading_replication.py:23 1835s May 02 21:57:42 And replication works from postgres-0 to postgres-1 after 15 seconds # features/steps/basic_replication.py:124 1839s May 02 21:57:46 1839s May 02 21:57:46 Scenario: check immediate failover when master_start_timeout=0 # features/recovery.feature:20 1839s May 02 21:57:46 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 1839s May 02 21:57:46 Then I receive a response code 200 # features/steps/patroni_api.py:100 1839s May 02 21:57:46 And Response on GET http://127.0.0.1:8008/config contains master_start_timeout after 10 seconds # features/steps/patroni_api.py:158 1839s May 02 21:57:46 When I kill postmaster on postgres-0 # features/steps/basic_replication.py:56 1839s May 02 21:57:46 waiting for server to shut down.... done 1839s May 02 21:57:46 server stopped 1839s May 02 21:57:46 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 1841s May 02 21:57:48 And postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1842s May 02 21:57:49 1842s May 02 21:57:49 Scenario: check crashed primary demotes after failed attempt to start # features/recovery.feature:28 1842s May 02 21:57:49 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 1842s May 02 21:57:49 Then I receive a response code 200 # features/steps/patroni_api.py:100 1842s May 02 21:57:49 And postgres-0 role is the replica after 10 seconds # features/steps/basic_replication.py:117 1845s May 02 21:57:51 When I ensure postgres-1 fails to start after a failure # features/steps/recovery.py:6 1845s May 02 21:57:51 When I kill postmaster on postgres-1 # features/steps/basic_replication.py:56 1845s May 02 21:57:52 waiting for server to shut down.... done 1845s May 02 21:57:52 server stopped 1845s May 02 21:57:52 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1846s May 02 21:57:53 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 1849s May 02 21:57:56 1849s May 02 21:57:56 Feature: standby cluster # features/standby_cluster.feature:1 1849s May 02 21:57:56 1849s May 02 21:57:56 Scenario: prepare the cluster with logical slots # features/standby_cluster.feature:2 1849s May 02 21:57:56 Given I start postgres-1 # features/steps/basic_replication.py:20 1853s May 02 21:58:00 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 1853s May 02 21:58:00 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 1853s May 02 21:58:00 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 1853s May 02 21:58:00 Then I receive a response code 200 # features/steps/patroni_api.py:100 1853s May 02 21:58:00 And Response on GET http://127.0.0.1:8009/config contains slots after 10 seconds # features/steps/patroni_api.py:158 1853s May 02 21:58:00 And I sleep for 3 seconds # features/steps/patroni_api.py:41 1856s May 02 21:58:03 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 1856s May 02 21:58:03 Then I receive a response code 200 # features/steps/patroni_api.py:100 1856s May 02 21:58:03 And I do a backup of postgres-1 # features/steps/custom_bootstrap.py:25 1858s May 02 21:58:04 When I start postgres-0 # features/steps/basic_replication.py:20 1862s May 02 21:58:09 Then "members/postgres-0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1863s May 02 21:58:10 And replication works from postgres-1 to postgres-0 after 15 seconds # features/steps/basic_replication.py:124 1864s May 02 21:58:11 When I issue a GET request to http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:63 1864s May 02 21:58:11 Then I receive a response code 200 # features/steps/patroni_api.py:100 1864s May 02 21:58:11 And I receive a response replication_state streaming # features/steps/patroni_api.py:100 1864s May 02 21:58:11 And "members/postgres-0" key in DCS has replication_state=streaming after 10 seconds # features/steps/cascading_replication.py:23 1864s May 02 21:58:11 1864s May 02 21:58:11 @slot-advance 1864s May 02 21:58:11 Scenario: check permanent logical slots are synced to the replica # features/standby_cluster.feature:22 1864s May 02 21:58:11 Given I run patronictl.py restart batman postgres-1 --force # features/steps/patroni_api.py:88 1866s May 02 21:58:13 Then Logical slot test_logical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 1871s May 02 21:58:18 1871s May 02 21:58:18 Scenario: Detach exiting node from the cluster # features/standby_cluster.feature:26 1871s May 02 21:58:18 When I shut down postgres-1 # features/steps/basic_replication.py:41 1873s May 02 21:58:20 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1873s May 02 21:58:20 And "members/postgres-0" key in DCS has role=primary after 5 seconds # features/steps/cascading_replication.py:23 1874s May 02 21:58:21 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:63 1874s May 02 21:58:21 Then I receive a response code 200 # features/steps/patroni_api.py:100 1874s May 02 21:58:21 1874s May 02 21:58:21 Scenario: check replication of a single table in a standby cluster # features/standby_cluster.feature:33 1874s May 02 21:58:21 Given I start postgres-1 in a standby cluster batman1 as a clone of postgres-0 # features/steps/standby_cluster.py:23 1877s May 02 21:58:24 Then postgres-1 is a leader of batman1 after 10 seconds # features/steps/custom_bootstrap.py:16 1877s May 02 21:58:24 When I add the table foo to postgres-0 # features/steps/basic_replication.py:66 1877s May 02 21:58:24 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 1877s May 02 21:58:24 When I issue a GET request to http://127.0.0.1:8009/patroni # features/steps/patroni_api.py:63 1877s May 02 21:58:24 Then I receive a response code 200 # features/steps/patroni_api.py:100 1877s May 02 21:58:24 And I receive a response replication_state streaming # features/steps/patroni_api.py:100 1877s May 02 21:58:24 And I sleep for 3 seconds # features/steps/patroni_api.py:41 1880s May 02 21:58:27 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 1880s May 02 21:58:27 Then I receive a response code 503 # features/steps/patroni_api.py:100 1880s May 02 21:58:27 When I issue a GET request to http://127.0.0.1:8009/standby_leader # features/steps/patroni_api.py:63 1880s May 02 21:58:27 Then I receive a response code 200 # features/steps/patroni_api.py:100 1880s May 02 21:58:27 And I receive a response role standby_leader # features/steps/patroni_api.py:100 1880s May 02 21:58:27 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 1880s May 02 21:58:27 When I start postgres-2 in a cluster batman1 # features/steps/standby_cluster.py:12 1884s May 02 21:58:31 Then postgres-2 role is the replica after 24 seconds # features/steps/basic_replication.py:117 1884s May 02 21:58:31 And postgres-2 is replicating from postgres-1 after 10 seconds # features/steps/standby_cluster.py:52 1885s May 02 21:58:32 And table foo is present on postgres-2 after 20 seconds # features/steps/basic_replication.py:105 1885s May 02 21:58:32 When I issue a GET request to http://127.0.0.1:8010/patroni # features/steps/patroni_api.py:63 1885s May 02 21:58:32 Then I receive a response code 200 # features/steps/patroni_api.py:100 1885s May 02 21:58:32 And I receive a response replication_state streaming # features/steps/patroni_api.py:100 1885s May 02 21:58:32 And postgres-1 does not have a replication slot named test_logical # features/steps/slots.py:41 1885s May 02 21:58:32 1885s May 02 21:58:32 Scenario: check switchover # features/standby_cluster.feature:57 1885s May 02 21:58:32 Given I run patronictl.py switchover batman1 --force # features/steps/patroni_api.py:88 1888s May 02 21:58:35 Then Status code on GET http://127.0.0.1:8010/standby_leader is 200 after 10 seconds # features/steps/patroni_api.py:144 1888s May 02 21:58:35 And postgres-1 is replicating from postgres-2 after 32 seconds # features/steps/standby_cluster.py:52 1890s May 02 21:58:37 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 1890s May 02 21:58:37 1890s May 02 21:58:37 Scenario: check failover # features/standby_cluster.feature:63 1890s May 02 21:58:37 When I kill postgres-2 # features/steps/basic_replication.py:46 1891s May 02 21:58:38 And I kill postmaster on postgres-2 # features/steps/basic_replication.py:56 1891s May 02 21:58:38 waiting for server to shut down.... done 1891s May 02 21:58:38 server stopped 1891s May 02 21:58:38 Then postgres-1 is replicating from postgres-0 after 32 seconds # features/steps/standby_cluster.py:52 1910s May 02 21:58:57 And Status code on GET http://127.0.0.1:8009/standby_leader is 200 after 10 seconds # features/steps/patroni_api.py:144 1911s May 02 21:58:58 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 1911s May 02 21:58:58 Then I receive a response code 503 # features/steps/patroni_api.py:100 1911s May 02 21:58:58 And I receive a response role standby_leader # features/steps/patroni_api.py:100 1911s May 02 21:58:58 And replication works from postgres-0 to postgres-1 after 15 seconds # features/steps/basic_replication.py:124 1912s May 02 21:58:59 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 1916s May 02 21:59:03 1916s May 02 21:59:03 Feature: watchdog # features/watchdog.feature:1 1916s May 02 21:59:03 Verify that watchdog gets pinged and triggered under appropriate circumstances. 1916s May 02 21:59:03 Scenario: watchdog is opened and pinged # features/watchdog.feature:4 1916s May 02 21:59:03 Given I start postgres-0 with watchdog # features/steps/watchdog.py:17 1920s May 02 21:59:07 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1920s May 02 21:59:07 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1920s May 02 21:59:07 And postgres-0 watchdog has been pinged after 10 seconds # features/steps/watchdog.py:22 1921s May 02 21:59:08 And postgres-0 watchdog has a 15 second timeout # features/steps/watchdog.py:35 1921s May 02 21:59:08 1921s May 02 21:59:08 Scenario: watchdog is reconfigured after global ttl changed # features/watchdog.feature:11 1921s May 02 21:59:08 Given I run patronictl.py edit-config batman -s ttl=30 --force # features/steps/patroni_api.py:88 1923s May 02 21:59:10 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1923s May 02 21:59:10 And I receive a response output "+ttl: 30" # features/steps/patroni_api.py:100 1923s May 02 21:59:10 When I sleep for 4 seconds # features/steps/patroni_api.py:41 1927s May 02 21:59:14 Then postgres-0 watchdog has a 25 second timeout # features/steps/watchdog.py:35 1927s May 02 21:59:14 1927s May 02 21:59:14 Scenario: watchdog is disabled during pause # features/watchdog.feature:18 1927s May 02 21:59:14 Given I run patronictl.py pause batman # features/steps/patroni_api.py:88 1928s May 02 21:59:15 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1928s May 02 21:59:15 When I sleep for 2 seconds # features/steps/patroni_api.py:41 1930s May 02 21:59:17 Then postgres-0 watchdog has been closed # features/steps/watchdog.py:30 1930s May 02 21:59:17 1930s May 02 21:59:17 Scenario: watchdog is opened and pinged after resume # features/watchdog.feature:24 1930s May 02 21:59:17 Given I reset postgres-0 watchdog state # features/steps/watchdog.py:40 1930s May 02 21:59:17 And I run patronictl.py resume batman # features/steps/patroni_api.py:88 1931s May 02 21:59:18 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1931s May 02 21:59:18 And postgres-0 watchdog has been pinged after 10 seconds # features/steps/watchdog.py:22 1932s May 02 21:59:19 1932s May 02 21:59:19 Scenario: watchdog is disabled when shutting down # features/watchdog.feature:30 1932s May 02 21:59:19 Given I shut down postgres-0 # features/steps/basic_replication.py:41 1934s May 02 21:59:21 Then postgres-0 watchdog has been closed # features/steps/watchdog.py:30 1934s May 02 21:59:21 1934s May 02 21:59:21 Scenario: watchdog is triggered if patroni stops responding # features/watchdog.feature:34 1934s May 02 21:59:21 Given I reset postgres-0 watchdog state # features/steps/watchdog.py:40 1934s May 02 21:59:21 And I start postgres-0 with watchdog # features/steps/watchdog.py:17 1936s May 02 21:59:23 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1938s May 02 21:59:25 When postgres-0 hangs for 30 seconds # features/steps/watchdog.py:53 1938s May 02 21:59:25 Then postgres-0 watchdog is triggered after 30 seconds # features/steps/watchdog.py:45 1966s May 02 21:59:52 1966s 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'))") 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.4109.XEdTqugx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.4153.XcQBvRRx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.4201.XkcZbhAx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.4250.XSGSizIx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.4297.XKxUchEx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.4369.XxowqGpx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.4420.XiHWWjnx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.4423.XSKTmunx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.4497.XPunMbXx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.4598.Xqmpjmfx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.4609.XyvCmgrx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.4652.XdNxYQLx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.4703.XsgzRiWx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.4811.XlYXRXIx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.4859.XlQmyDix 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.4914.XlVaXKOx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.5007.XAtPRgkx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.5334.XLUfKbhx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.5402.XrYvZjUx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.5457.XuZCqXUx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.5710.XBOfvnXx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.5787.XZzdsRzx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.5850.XKEVKbAx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.5939.XwdtjaVx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.6036.XKkxtuwx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.6079.XZGWgJax 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.6142.XFVpYjQx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.6176.XukksHTx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.6315.XuzsJPgx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.6364.XouvmdKx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.6379.XSUSESlx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.6418.XToiECix 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.6465.XMyIjMtx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.6470.XrOOADGx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.6508.XgfxdNIx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.6552.XmBQWJCx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.6720.XCPSsgHx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.6722.XuPilXmx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.6727.XIdTfcQx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.6863.XHHnhZKx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.6910.XwUNdCjx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.6951.XOIgNIXx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.7002.XhfmoQux 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.7047.XfxYmDzx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.7193.XmTDllMx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.7258.XPrkXDRx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.7294.XJkoeLlx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.7373.XQkajxtx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.7459.XHqDFpxx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.7506.XTxyjOdx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.7829.XhpuFAQx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.7879.XxwzjhHx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.7944.XgQYhJAx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.8033.XNrragUx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.8082.XPiRXrqx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.8137.XJSDHaQx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.8181.XFkUtpJx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.8219.XDFvJRQx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.8262.XXtyNgux 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.8488.XVOiZiHx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.8551.XGYQOQGx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.8604.XGBOparx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.8707.XEiISslx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.8826.XpEBqeKx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.8955.XfXHdNWx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.8999.XbabLUlx 1967s May 02 21:59:54 Skipping duplicate data .coverage.autopkgtest-lxd-fxtzgz.9001.XXLweSYx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.9004.XCiuvpBx 1967s May 02 21:59:54 Combined data file .coverage.autopkgtest-lxd-fxtzgz.9015.XCTwiOOx 1971s May 02 21:59:58 Name Stmts Miss Cover 1971s May 02 21:59:58 ------------------------------------------------------------------------------------------------------------- 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/OpenSSL/SSL.py 1159 642 45% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/OpenSSL/__init__.py 3 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/OpenSSL/_util.py 44 15 66% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/OpenSSL/crypto.py 869 663 24% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/OpenSSL/version.py 9 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/_distutils_hack/__init__.py 101 96 5% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/bcrypt/__init__.py 3 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/__about__.py 5 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/__init__.py 3 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/exceptions.py 26 5 81% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/hazmat/__init__.py 2 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/hazmat/_oid.py 135 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/__init__.py 0 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/__init__.py 0 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/_conditional.py 38 17 55% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/binding.py 51 4 92% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/hazmat/decrepit/__init__.py 1 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/hazmat/decrepit/ciphers/__init__.py 1 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/hazmat/decrepit/ciphers/algorithms.py 68 18 74% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/__init__.py 0 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_asymmetric.py 6 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_cipheralgorithm.py 23 4 83% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_serialization.py 79 35 56% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/__init__.py 0 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/dh.py 47 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/dsa.py 55 5 91% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ec.py 172 22 87% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ed448.py 45 12 73% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ed25519.py 43 12 72% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/padding.py 55 23 58% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/rsa.py 93 40 57% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/types.py 19 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/utils.py 14 5 64% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/x448.py 43 12 72% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/x25519.py 41 12 71% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/__init__.py 4 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/algorithms.py 72 15 79% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/base.py 54 12 78% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/modes.py 140 59 58% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/constant_time.py 6 3 50% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/hashes.py 127 20 84% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/__init__.py 5 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/base.py 7 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/ssh.py 775 614 21% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/utils.py 76 28 63% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/x509/__init__.py 70 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/x509/base.py 488 227 53% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/x509/certificate_transparency.py 42 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/x509/extensions.py 1024 552 46% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/x509/general_name.py 166 94 43% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/x509/name.py 236 144 39% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/x509/oid.py 3 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/cryptography/x509/verification.py 12 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dateutil/__init__.py 13 4 69% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dateutil/_common.py 25 15 40% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dateutil/_version.py 13 3 77% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dateutil/parser/__init__.py 33 4 88% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dateutil/parser/_parser.py 810 436 46% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dateutil/parser/isoparser.py 183 150 18% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dateutil/relativedelta.py 240 206 14% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dateutil/tz/__init__.py 4 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dateutil/tz/_common.py 151 114 25% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dateutil/tz/_factories.py 49 21 57% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dateutil/tz/tz.py 794 626 21% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dateutil/tz/win.py 152 149 2% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/__init__.py 2 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/_asyncbackend.py 14 6 57% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/_ddr.py 105 86 18% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/_features.py 46 8 83% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/_immutable_ctx.py 40 5 88% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/asyncbackend.py 44 32 27% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/asyncquery.py 322 283 12% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/edns.py 307 185 40% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/entropy.py 80 49 39% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/enum.py 72 46 36% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/exception.py 59 33 44% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/flags.py 40 14 65% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/grange.py 33 30 9% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/immutable.py 41 30 27% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/inet.py 79 65 18% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/ipv4.py 26 20 23% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/ipv6.py 114 100 12% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/message.py 829 676 18% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/name.py 617 425 31% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/nameserver.py 102 55 46% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/node.py 117 71 39% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/opcode.py 30 7 77% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/query.py 562 477 15% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/quic/__init__.py 28 23 18% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/rcode.py 68 13 81% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/rdata.py 386 277 28% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/rdataclass.py 43 9 79% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/rdataset.py 192 133 31% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/rdatatype.py 215 23 89% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/OPT.py 34 19 44% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/SOA.py 41 26 37% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/TSIG.py 58 42 28% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/ZONEMD.py 43 27 37% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/__init__.py 1 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/rdtypes/__init__.py 1 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/rdtypes/svcbbase.py 415 268 35% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/rdtypes/util.py 191 154 19% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/renderer.py 151 118 22% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/resolver.py 873 696 20% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/reversename.py 32 24 25% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/rrset.py 77 56 27% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/serial.py 92 79 14% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/set.py 148 107 28% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/tokenizer.py 334 279 16% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/transaction.py 269 201 25% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/tsig.py 176 122 31% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/ttl.py 44 38 14% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/version.py 6 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/wire.py 64 42 34% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/xfr.py 148 126 15% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/zone.py 507 383 24% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/zonefile.py 427 379 11% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/dns/zonetypes.py 14 2 86% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/etcd/__init__.py 125 24 81% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/etcd/client.py 380 192 49% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/etcd/lock.py 125 103 18% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/idna/__init__.py 4 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/idna/core.py 292 257 12% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/idna/idnadata.py 4 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/idna/intranges.py 30 24 20% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/idna/package_data.py 1 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/__init__.py 13 2 85% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/__main__.py 201 64 68% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/api.py 788 284 64% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/async_executor.py 96 15 84% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/collections.py 56 5 91% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/config.py 357 84 76% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/config_generator.py 212 159 25% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/daemon.py 76 3 96% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/dcs/__init__.py 710 93 87% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/dcs/etcd.py 603 119 80% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/dynamic_loader.py 35 7 80% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/exceptions.py 16 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/file_perm.py 47 10 79% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/global_config.py 87 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/ha.py 1359 317 77% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/log.py 235 79 66% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/postgresql/__init__.py 825 170 79% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/postgresql/available_parameters/__init__.py 24 3 88% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/postgresql/bootstrap.py 254 60 76% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/postgresql/callback_executor.py 55 8 85% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/postgresql/cancellable.py 104 41 61% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/postgresql/config.py 839 214 74% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/postgresql/connection.py 75 1 99% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/postgresql/misc.py 43 8 81% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/postgresql/mpp/__init__.py 89 11 88% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/postgresql/postmaster.py 170 83 51% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/postgresql/rewind.py 416 128 69% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/postgresql/slots.py 349 38 89% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/postgresql/sync.py 154 10 94% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/postgresql/validator.py 157 24 85% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/psycopg.py 46 19 59% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/quorum.py 182 48 74% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/request.py 58 6 90% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/tags.py 38 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/utils.py 371 120 68% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/validator.py 309 215 30% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/version.py 1 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/watchdog/__init__.py 2 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/watchdog/base.py 203 42 79% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/patroni/watchdog/linux.py 135 35 74% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/psutil/__init__.py 945 622 34% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/psutil/_common.py 408 208 49% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/psutil/_pslinux.py 1225 907 26% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/psutil/_psposix.py 84 37 56% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/psycopg2/__init__.py 19 3 84% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/psycopg2/_json.py 64 27 58% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/psycopg2/_range.py 269 172 36% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/psycopg2/errors.py 3 2 33% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/psycopg2/extensions.py 91 25 73% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/urllib3/__init__.py 49 15 69% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/urllib3/_base_connection.py 63 45 29% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/urllib3/_collections.py 231 97 58% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/urllib3/_request_methods.py 54 10 81% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/urllib3/_version.py 13 3 77% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/urllib3/connection.py 389 137 65% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/urllib3/connectionpool.py 344 119 65% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/urllib3/contrib/__init__.py 0 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/urllib3/contrib/pyopenssl.py 263 101 62% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/urllib3/exceptions.py 121 39 68% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/urllib3/fields.py 92 73 21% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/urllib3/filepost.py 37 24 35% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/urllib3/http2/__init__.py 28 21 25% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/urllib3/http2/probe.py 49 31 37% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/urllib3/poolmanager.py 233 85 64% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/urllib3/response.py 634 368 42% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/urllib3/util/__init__.py 10 0 100% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/urllib3/util/connection.py 66 42 36% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/urllib3/util/proxy.py 13 6 54% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/urllib3/util/request.py 104 49 53% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/urllib3/util/response.py 32 17 47% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/urllib3/util/retry.py 174 48 72% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/urllib3/util/ssl_.py 172 74 57% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/urllib3/util/ssl_match_hostname.py 66 54 18% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/urllib3/util/ssltransport.py 152 106 30% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/urllib3/util/timeout.py 71 14 80% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/urllib3/util/url.py 203 69 66% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/urllib3/util/util.py 26 10 62% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/urllib3/util/wait.py 49 18 63% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/yaml/__init__.py 165 109 34% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/yaml/composer.py 92 17 82% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/yaml/constructor.py 479 276 42% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/yaml/cyaml.py 46 24 48% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/yaml/dumper.py 23 12 48% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/yaml/emitter.py 838 769 8% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/yaml/error.py 58 42 28% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/yaml/events.py 61 6 90% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/yaml/loader.py 47 24 49% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/yaml/nodes.py 29 7 76% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/yaml/parser.py 352 198 44% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/yaml/reader.py 122 34 72% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/yaml/representer.py 248 176 29% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/yaml/resolver.py 135 76 44% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/yaml/scanner.py 758 437 42% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/yaml/serializer.py 85 70 18% 1971s May 02 21:59:58 /usr/lib/python3/dist-packages/yaml/tokens.py 76 17 78% 1971s May 02 21:59:58 patroni/__init__.py 13 2 85% 1971s May 02 21:59:58 patroni/__main__.py 201 201 0% 1971s May 02 21:59:58 patroni/api.py 788 788 0% 1971s May 02 21:59:58 patroni/async_executor.py 96 69 28% 1971s May 02 21:59:58 patroni/collections.py 56 15 73% 1971s May 02 21:59:58 patroni/config.py 357 186 48% 1971s May 02 21:59:58 patroni/config_generator.py 212 212 0% 1971s May 02 21:59:58 patroni/ctl.py 936 395 58% 1971s May 02 21:59:58 patroni/daemon.py 76 76 0% 1971s May 02 21:59:58 patroni/dcs/__init__.py 710 316 55% 1971s May 02 21:59:58 patroni/dcs/consul.py 482 482 0% 1971s May 02 21:59:58 patroni/dcs/etcd3.py 679 679 0% 1971s May 02 21:59:58 patroni/dcs/etcd.py 603 227 62% 1971s May 02 21:59:58 patroni/dcs/exhibitor.py 62 62 0% 1971s May 02 21:59:58 patroni/dcs/kubernetes.py 943 943 0% 1971s May 02 21:59:58 patroni/dcs/raft.py 319 319 0% 1971s May 02 21:59:58 patroni/dcs/zookeeper.py 289 289 0% 1971s May 02 21:59:58 patroni/dynamic_loader.py 35 7 80% 1971s May 02 21:59:58 patroni/exceptions.py 16 1 94% 1971s May 02 21:59:58 patroni/file_perm.py 47 17 64% 1971s May 02 21:59:58 patroni/global_config.py 87 19 78% 1971s May 02 21:59:58 patroni/ha.py 1359 1359 0% 1971s May 02 21:59:58 patroni/log.py 235 183 22% 1971s May 02 21:59:58 patroni/postgresql/__init__.py 825 653 21% 1971s May 02 21:59:58 patroni/postgresql/available_parameters/__init__.py 24 6 75% 1971s May 02 21:59:58 patroni/postgresql/bootstrap.py 254 224 12% 1971s May 02 21:59:58 patroni/postgresql/callback_executor.py 55 34 38% 1971s May 02 21:59:58 patroni/postgresql/cancellable.py 104 84 19% 1971s May 02 21:59:58 patroni/postgresql/config.py 839 719 14% 1971s May 02 21:59:58 patroni/postgresql/connection.py 75 50 33% 1971s May 02 21:59:58 patroni/postgresql/misc.py 43 30 30% 1971s May 02 21:59:58 patroni/postgresql/mpp/__init__.py 89 21 76% 1971s May 02 21:59:58 patroni/postgresql/mpp/citus.py 366 366 0% 1971s May 02 21:59:58 patroni/postgresql/postmaster.py 170 139 18% 1971s May 02 21:59:58 patroni/postgresql/rewind.py 416 416 0% 1971s May 02 21:59:58 patroni/postgresql/slots.py 349 300 14% 1971s May 02 21:59:58 patroni/postgresql/sync.py 154 114 26% 1971s May 02 21:59:58 patroni/postgresql/validator.py 157 52 67% 1971s May 02 21:59:58 patroni/psycopg.py 46 32 30% 1971s May 02 21:59:58 patroni/quorum.py 182 182 0% 1971s May 02 21:59:58 patroni/raft_controller.py 22 22 0% 1971s May 02 21:59:58 patroni/request.py 58 6 90% 1971s May 02 21:59:58 patroni/scripts/__init__.py 0 0 100% 1971s May 02 21:59:58 patroni/scripts/aws.py 59 59 0% 1971s May 02 21:59:58 patroni/scripts/barman/__init__.py 0 0 100% 1971s May 02 21:59:58 patroni/scripts/barman/cli.py 50 50 0% 1971s May 02 21:59:58 patroni/scripts/barman/config_switch.py 50 50 0% 1971s May 02 21:59:58 patroni/scripts/barman/recover.py 36 36 0% 1971s May 02 21:59:58 patroni/scripts/barman/utils.py 93 93 0% 1971s May 02 21:59:58 patroni/scripts/wale_restore.py 207 207 0% 1971s May 02 21:59:58 patroni/tags.py 38 11 71% 1971s May 02 21:59:58 patroni/utils.py 371 213 43% 1971s May 02 21:59:58 patroni/validator.py 309 222 28% 1971s May 02 21:59:58 patroni/version.py 1 0 100% 1971s May 02 21:59:58 patroni/watchdog/__init__.py 2 2 0% 1971s May 02 21:59:58 patroni/watchdog/base.py 203 203 0% 1971s May 02 21:59:58 patroni/watchdog/linux.py 135 135 0% 1971s May 02 21:59:58 ------------------------------------------------------------------------------------------------------------- 1971s May 02 21:59:58 TOTAL 53380 32182 40% 1971s May 02 21:59:58 13 features passed, 0 failed, 1 skipped 1971s May 02 21:59:58 64 scenarios passed, 0 failed, 5 skipped 1971s May 02 21:59:58 599 steps passed, 0 failed, 68 skipped, 0 undefined 1971s May 02 21:59:58 Took 9m56.331s 1971s ### End 17 acceptance-etcd ### 1971s + echo '### End 17 acceptance-etcd ###' 1971s + rm -f '/tmp/pgpass?' 1971s ++ id -u 1971s + '[' 0 -eq 0 ']' 1971s + '[' -x /etc/init.d/zookeeper ']' 1971s autopkgtest [21:59:58]: test acceptance-etcd: -----------------------] 1976s acceptance-etcd PASS 1976s autopkgtest [22:00:03]: test acceptance-etcd: - - - - - - - - - - results - - - - - - - - - - 1980s autopkgtest [22:00:07]: test acceptance-zookeeper: preparing testbed 2002s autopkgtest [22:00:29]: testbed dpkg architecture: armhf 2004s autopkgtest [22:00:31]: testbed apt version: 3.0.0 2008s autopkgtest [22:00:35]: @@@@@@@@@@@@@@@@@@@@ test bed setup 2010s autopkgtest [22:00:37]: testbed release detected to be: questing 2017s autopkgtest [22:00:44]: updating testbed package index (apt update) 2019s Get:1 http://ftpmaster.internal/ubuntu questing-proposed InRelease [110 kB] 2019s Get:2 http://ftpmaster.internal/ubuntu questing InRelease [110 kB] 2019s Get:3 http://ftpmaster.internal/ubuntu questing-updates InRelease [110 kB] 2019s Get:4 http://ftpmaster.internal/ubuntu questing-security InRelease [110 kB] 2019s Get:5 http://ftpmaster.internal/ubuntu questing-proposed/universe Sources [1968 kB] 2020s Get:6 http://ftpmaster.internal/ubuntu questing-proposed/multiverse Sources [43.1 kB] 2020s Get:7 http://ftpmaster.internal/ubuntu questing-proposed/main Sources [167 kB] 2020s Get:8 http://ftpmaster.internal/ubuntu questing-proposed/main armhf Packages [201 kB] 2020s Get:9 http://ftpmaster.internal/ubuntu questing-proposed/universe armhf Packages [1375 kB] 2020s Get:10 http://ftpmaster.internal/ubuntu questing-proposed/multiverse armhf Packages [12.9 kB] 2020s Get:11 http://ftpmaster.internal/ubuntu questing/multiverse Sources [299 kB] 2020s Get:12 http://ftpmaster.internal/ubuntu questing/universe Sources [21.1 MB] 2020s Get:13 http://ftpmaster.internal/ubuntu questing/main Sources [1386 kB] 2020s Get:14 http://ftpmaster.internal/ubuntu questing/main armhf Packages [1358 kB] 2020s Get:15 http://ftpmaster.internal/ubuntu questing/universe armhf Packages [15.2 MB] 2021s Get:16 http://ftpmaster.internal/ubuntu questing/multiverse armhf Packages [173 kB] 2024s Fetched 43.7 MB in 5s (8361 kB/s) 2025s Reading package lists... 2031s autopkgtest [22:00:58]: upgrading testbed (apt dist-upgrade and autopurge) 2033s Reading package lists... 2033s Building dependency tree... 2033s Reading state information... 2033s Calculating upgrade...Starting pkgProblemResolver with broken count: 0 2034s Starting 2 pkgProblemResolver with broken count: 0 2034s Done 2034s Entering ResolveByKeep 2035s 2035s Calculating upgrade... 2035s The following packages will be upgraded: 2035s base-files distro-info-data dpkg dpkg-dev fwupd htop libdpkg-perl libftdi1-2 2035s libfwupd3 libnpth0t64 libsensors-config libsensors5 liburcu8t64 2035s motd-news-config nano ubuntu-pro-client ubuntu-pro-client-l10n usb.ids 2036s 18 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 2036s Need to get 5303 kB of archives. 2036s After this operation, 3722 kB disk space will be freed. 2036s Get:1 http://ftpmaster.internal/ubuntu questing/main armhf motd-news-config all 13.7ubuntu1 [5260 B] 2036s Get:2 http://ftpmaster.internal/ubuntu questing/main armhf base-files armhf 13.7ubuntu1 [75.4 kB] 2036s Get:3 http://ftpmaster.internal/ubuntu questing/main armhf dpkg armhf 1.22.18ubuntu3 [1254 kB] 2036s Get:4 http://ftpmaster.internal/ubuntu questing/main armhf libnpth0t64 armhf 1.8-3 [7716 B] 2036s Get:5 http://ftpmaster.internal/ubuntu questing/main armhf distro-info-data all 0.64 [6664 B] 2036s Get:6 http://ftpmaster.internal/ubuntu questing/main armhf ubuntu-pro-client-l10n armhf 35.1ubuntu0 [19.7 kB] 2036s Get:7 http://ftpmaster.internal/ubuntu questing/main armhf ubuntu-pro-client armhf 35.1ubuntu0 [258 kB] 2036s Get:8 http://ftpmaster.internal/ubuntu questing/main armhf libsensors-config all 1:3.6.2-2 [6756 B] 2036s Get:9 http://ftpmaster.internal/ubuntu questing/main armhf libsensors5 armhf 1:3.6.2-2 [26.8 kB] 2036s Get:10 http://ftpmaster.internal/ubuntu questing/main armhf liburcu8t64 armhf 0.15.2-2 [57.3 kB] 2036s Get:11 http://ftpmaster.internal/ubuntu questing/main armhf nano armhf 8.4-1 [278 kB] 2036s Get:12 http://ftpmaster.internal/ubuntu questing/main armhf usb.ids all 2025.04.01-1 [223 kB] 2036s Get:13 http://ftpmaster.internal/ubuntu questing/main armhf dpkg-dev all 1.22.18ubuntu3 [1089 kB] 2036s Get:14 http://ftpmaster.internal/ubuntu questing/main armhf libdpkg-perl all 1.22.18ubuntu3 [281 kB] 2036s Get:15 http://ftpmaster.internal/ubuntu questing/main armhf fwupd armhf 2.0.8-3 [1414 kB] 2036s Get:16 http://ftpmaster.internal/ubuntu questing/main armhf libfwupd3 armhf 2.0.8-3 [126 kB] 2036s Get:17 http://ftpmaster.internal/ubuntu questing/main armhf htop armhf 3.4.1-4 [147 kB] 2036s Get:18 http://ftpmaster.internal/ubuntu questing/main armhf libftdi1-2 armhf 1.5-10 [27.8 kB] 2037s Fetched 5303 kB in 1s (6535 kB/s) 2037s (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.) 2037s Preparing to unpack .../motd-news-config_13.7ubuntu1_all.deb ... 2037s Unpacking motd-news-config (13.7ubuntu1) over (13.6ubuntu2) ... 2037s Preparing to unpack .../base-files_13.7ubuntu1_armhf.deb ... 2037s Unpacking base-files (13.7ubuntu1) over (13.6ubuntu2) ... 2037s Setting up base-files (13.7ubuntu1) ... 2037s Installing new version of config file /etc/issue ... 2037s Installing new version of config file /etc/issue.net ... 2037s Installing new version of config file /etc/lsb-release ... 2038s motd-news.service is a disabled or a static unit not running, not starting it. 2038s (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.) 2038s Preparing to unpack .../dpkg_1.22.18ubuntu3_armhf.deb ... 2038s Unpacking dpkg (1.22.18ubuntu3) over (1.22.18ubuntu2) ... 2038s Setting up dpkg (1.22.18ubuntu3) ... 2038s (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.) 2038s Preparing to unpack .../libnpth0t64_1.8-3_armhf.deb ... 2038s Unpacking libnpth0t64:armhf (1.8-3) over (1.8-2) ... 2038s Setting up libnpth0t64:armhf (1.8-3) ... 2038s (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.) 2038s Preparing to unpack .../00-distro-info-data_0.64_all.deb ... 2038s Unpacking distro-info-data (0.64) over (0.63) ... 2039s Preparing to unpack .../01-ubuntu-pro-client-l10n_35.1ubuntu0_armhf.deb ... 2039s Unpacking ubuntu-pro-client-l10n (35.1ubuntu0) over (35) ... 2039s Preparing to unpack .../02-ubuntu-pro-client_35.1ubuntu0_armhf.deb ... 2039s Unpacking ubuntu-pro-client (35.1ubuntu0) over (35) ... 2039s Preparing to unpack .../03-libsensors-config_1%3a3.6.2-2_all.deb ... 2039s Unpacking libsensors-config (1:3.6.2-2) over (1:3.6.0-10) ... 2039s Preparing to unpack .../04-libsensors5_1%3a3.6.2-2_armhf.deb ... 2039s Unpacking libsensors5:armhf (1:3.6.2-2) over (1:3.6.0-10) ... 2039s Preparing to unpack .../05-liburcu8t64_0.15.2-2_armhf.deb ... 2039s Unpacking liburcu8t64:armhf (0.15.2-2) over (0.15.1-1) ... 2039s Preparing to unpack .../06-nano_8.4-1_armhf.deb ... 2039s Unpacking nano (8.4-1) over (8.3-1) ... 2039s Preparing to unpack .../07-usb.ids_2025.04.01-1_all.deb ... 2039s Unpacking usb.ids (2025.04.01-1) over (2025.01.14-1) ... 2039s Preparing to unpack .../08-dpkg-dev_1.22.18ubuntu3_all.deb ... 2039s Unpacking dpkg-dev (1.22.18ubuntu3) over (1.22.18ubuntu2) ... 2039s Preparing to unpack .../09-libdpkg-perl_1.22.18ubuntu3_all.deb ... 2039s Unpacking libdpkg-perl (1.22.18ubuntu3) over (1.22.18ubuntu2) ... 2039s Preparing to unpack .../10-fwupd_2.0.8-3_armhf.deb ... 2039s Unpacking fwupd (2.0.8-3) over (2.0.7-1) ... 2040s dpkg: warning: unable to delete old directory '/etc/grub.d': Directory not empty 2040s Preparing to unpack .../11-libfwupd3_2.0.8-3_armhf.deb ... 2040s Unpacking libfwupd3:armhf (2.0.8-3) over (2.0.7-1) ... 2040s Preparing to unpack .../12-htop_3.4.1-4_armhf.deb ... 2040s Unpacking htop (3.4.1-4) over (3.4.0-2) ... 2040s Preparing to unpack .../13-libftdi1-2_1.5-10_armhf.deb ... 2040s Unpacking libftdi1-2:armhf (1.5-10) over (1.5-8build1) ... 2040s Setting up motd-news-config (13.7ubuntu1) ... 2040s Setting up liburcu8t64:armhf (0.15.2-2) ... 2040s Setting up distro-info-data (0.64) ... 2040s Setting up htop (3.4.1-4) ... 2040s Setting up libsensors-config (1:3.6.2-2) ... 2040s Installing new version of config file /etc/sensors3.conf ... 2040s Setting up libfwupd3:armhf (2.0.8-3) ... 2040s Setting up libftdi1-2:armhf (1.5-10) ... 2040s Setting up usb.ids (2025.04.01-1) ... 2040s Setting up libsensors5:armhf (1:3.6.2-2) ... 2040s Setting up libdpkg-perl (1.22.18ubuntu3) ... 2040s Setting up nano (8.4-1) ... 2040s Installing new version of config file /etc/nanorc ... 2040s Setting up ubuntu-pro-client (35.1ubuntu0) ... 2040s apparmor_parser: Unable to replace "ubuntu_pro_apt_news". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 2040s 2040s apparmor_parser: Unable to replace "apt_methods". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 2040s 2040s apparmor_parser: Unable to replace "ubuntu_pro_esm_cache". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 2040s 2042s Setting up fwupd (2.0.8-3) ... 2042s fwupd-refresh.service is a disabled or a static unit not running, not starting it. 2042s fwupd.service is a disabled or a static unit not running, not starting it. 2042s Setting up ubuntu-pro-client-l10n (35.1ubuntu0) ... 2042s Setting up dpkg-dev (1.22.18ubuntu3) ... 2042s Processing triggers for dbus (1.16.2-2ubuntu1) ... 2042s Processing triggers for install-info (7.1.1-1) ... 2042s Processing triggers for libc-bin (2.41-6ubuntu1) ... 2043s Processing triggers for man-db (2.13.0-1) ... 2044s Processing triggers for plymouth-theme-ubuntu-text (24.004.60-2ubuntu7) ... 2044s Processing triggers for initramfs-tools (0.147ubuntu1) ... 2046s Reading package lists... 2047s Building dependency tree... 2047s Reading state information... 2047s Starting pkgProblemResolver with broken count: 0 2047s Starting 2 pkgProblemResolver with broken count: 0 2047s Done 2048s Solving dependencies... 2048s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 2050s autopkgtest [22:01:17]: rebooting testbed after setup commands that affected boot 2114s Reading package lists... 2115s Building dependency tree... 2115s Reading state information... 2115s Starting pkgProblemResolver with broken count: 0 2115s Starting 2 pkgProblemResolver with broken count: 0 2115s Done 2116s The following NEW packages will be installed: 2116s adwaita-icon-theme at-spi2-common ca-certificates-java 2116s dconf-gsettings-backend dconf-service default-jre default-jre-headless 2116s fontconfig fontconfig-config fonts-dejavu-core fonts-dejavu-mono 2116s fonts-font-awesome fonts-lato gtk-update-icon-cache hicolor-icon-theme 2116s java-common junit4 libactivation-java libapache-pom-java libapr1t64 2116s libasm-java libasound2-data libasound2t64 libatinject-jsr330-api-java 2116s libatk-bridge2.0-0t64 libatk1.0-0t64 libatspi2.0-0t64 libavahi-client3 2116s libavahi-common-data libavahi-common3 libcairo-gobject2 libcairo2 libcares2 2116s libcolord2 libcommons-cli-java libcommons-io-java libcommons-logging-java 2116s libcommons-parent-java libcups2t64 libdatrie1 libdconf1 libdeflate0 2116s libdropwizard-metrics-java libeclipse-jdt-core-compiler-batch-java 2116s libeclipse-jdt-core-java libel-api-java libepoxy0 liberror-prone-java 2116s libev4t64 libfindbugs-annotations-java libfontconfig1 libfreetype6 libgbm1 2116s libgdk-pixbuf-2.0-0 libgdk-pixbuf2.0-common libgif7 libgl1 libgl1-mesa-dri 2116s libglvnd0 libglx-mesa0 libglx0 libgraphite2-3 libgtk-3-0t64 libgtk-3-common 2116s libguava-java libhamcrest-java libharfbuzz0b libio-pty-perl libipc-run-perl 2116s libjackson2-annotations-java libjackson2-core-java libjackson2-databind-java 2116s libjavaparser-java libjaxb-api-java libjbig0 libjctools-java 2116s libjetty9-extra-java libjetty9-java libjffi-java libjffi-jni 2116s libjnr-constants-java libjnr-enxio-java libjnr-ffi-java libjnr-posix-java 2116s libjnr-unixsocket-java libjnr-x86asm-java libjpeg-turbo8 libjpeg8 2116s libjs-jquery libjs-sphinxdoc libjs-underscore libjson-perl libjsp-api-java 2116s libjsr305-java liblcms2-2 liblerc4 libllvm19 libllvm20 liblog4j1.2-java 2116s libmail-java libnetty-java libnetty-tcnative-java libnetty-tcnative-jni 2116s libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpcsclite1 2116s libpixman-1-0 libpq5 libservlet-api-java libsharpyuv0 libslf4j-java 2116s libsnappy-java libsnappy-jni libsnappy1v5 libspring-beans-java 2116s libspring-core-java libtaglibs-standard-impl-java 2116s libtaglibs-standard-spec-java libthai-data libthai0 libtiff6 2116s libtime-duration-perl libtimedate-perl libtomcat9-java libvulkan1 2116s libwayland-client0 libwayland-cursor0 libwayland-egl1 libwayland-server0 2116s libwebp7 libwebsocket-api-java libx11-xcb1 libxcb-dri3-0 libxcb-glx0 2116s libxcb-present0 libxcb-randr0 libxcb-render0 libxcb-shm0 libxcb-sync1 2116s libxcb-xfixes0 libxcomposite1 libxcursor1 libxdamage1 libxfixes3 libxi6 2116s libxinerama1 libxrandr2 libxrender1 libxshmfence1 libxslt1.1 libxtst6 2116s libxxf86vm1 libzookeeper-java mesa-libgallium moreutils openjdk-21-jre 2116s openjdk-21-jre-headless patroni patroni-doc postgresql postgresql-17 2116s postgresql-client-17 postgresql-client-common postgresql-common 2116s postgresql-common-dev python3-behave python3-click python3-coverage 2116s python3-dnspython python3-eventlet python3-gevent python3-greenlet 2116s python3-kazoo python3-kerberos python3-parse python3-parse-type 2116s python3-prettytable python3-psutil python3-psycopg2 python3-pure-sasl 2116s python3-wcwidth python3-ydiff python3-zope.event python3-zope.interface 2116s sphinx-rtd-theme-common ssl-cert x11-common zookeeper zookeeperd 2116s 0 upgraded, 190 newly installed, 0 to remove and 0 not upgraded. 2116s Need to get 180 MB of archives. 2116s After this operation, 630 MB of additional disk space will be used. 2116s Get:1 http://ftpmaster.internal/ubuntu questing/main armhf fonts-lato all 2.015-1 [2781 kB] 2117s Get:2 http://ftpmaster.internal/ubuntu questing/main armhf libjson-perl all 4.10000-1 [81.9 kB] 2117s Get:3 http://ftpmaster.internal/ubuntu questing/main armhf postgresql-client-common all 274 [47.6 kB] 2117s Get:4 http://ftpmaster.internal/ubuntu questing/main armhf libio-pty-perl armhf 1:1.20-1build3 [31.0 kB] 2117s Get:5 http://ftpmaster.internal/ubuntu questing/main armhf libipc-run-perl all 20231003.0-2 [91.5 kB] 2117s Get:6 http://ftpmaster.internal/ubuntu questing/main armhf postgresql-common-dev all 274 [73.0 kB] 2117s Get:7 http://ftpmaster.internal/ubuntu questing/main armhf ssl-cert all 1.1.3ubuntu1 [18.7 kB] 2117s Get:8 http://ftpmaster.internal/ubuntu questing/main armhf postgresql-common all 274 [101 kB] 2117s Get:9 http://ftpmaster.internal/ubuntu questing/main armhf ca-certificates-java all 20240118 [11.6 kB] 2117s Get:10 http://ftpmaster.internal/ubuntu questing/main armhf java-common all 0.76 [6852 B] 2117s Get:11 http://ftpmaster.internal/ubuntu questing/main armhf liblcms2-2 armhf 2.16-2 [137 kB] 2117s Get:12 http://ftpmaster.internal/ubuntu questing/main armhf libjpeg-turbo8 armhf 2.1.5-3ubuntu2 [127 kB] 2117s Get:13 http://ftpmaster.internal/ubuntu questing/main armhf libjpeg8 armhf 8c-2ubuntu11 [2148 B] 2117s Get:14 http://ftpmaster.internal/ubuntu questing/main armhf libpcsclite1 armhf 2.3.1-1 [24.9 kB] 2117s Get:15 http://ftpmaster.internal/ubuntu questing/main armhf openjdk-21-jre-headless armhf 21.0.7~8ea-1 [39.8 MB] 2118s Get:16 http://ftpmaster.internal/ubuntu questing/main armhf default-jre-headless armhf 2:1.21-76 [3182 B] 2118s Get:17 http://ftpmaster.internal/ubuntu questing/main armhf libgdk-pixbuf2.0-common all 2.42.12+dfsg-2 [8004 B] 2118s Get:18 http://ftpmaster.internal/ubuntu questing/main armhf libdeflate0 armhf 1.23-1 [38.5 kB] 2118s Get:19 http://ftpmaster.internal/ubuntu questing/main armhf libjbig0 armhf 2.1-6.1ubuntu2 [24.9 kB] 2118s Get:20 http://ftpmaster.internal/ubuntu questing/main armhf liblerc4 armhf 4.0.0+ds-5ubuntu1 [160 kB] 2118s Get:21 http://ftpmaster.internal/ubuntu questing/main armhf libsharpyuv0 armhf 1.5.0-0.1 [16.4 kB] 2118s Get:22 http://ftpmaster.internal/ubuntu questing/main armhf libwebp7 armhf 1.5.0-0.1 [188 kB] 2118s Get:23 http://ftpmaster.internal/ubuntu questing/main armhf libtiff6 armhf 4.7.0-3ubuntu1 [184 kB] 2118s Get:24 http://ftpmaster.internal/ubuntu questing/main armhf libgdk-pixbuf-2.0-0 armhf 2.42.12+dfsg-2 [136 kB] 2119s Get:25 http://ftpmaster.internal/ubuntu questing/main armhf gtk-update-icon-cache armhf 4.18.4+ds-1 [51.8 kB] 2119s Get:26 http://ftpmaster.internal/ubuntu questing/main armhf hicolor-icon-theme all 0.18-2 [13.3 kB] 2119s Get:27 http://ftpmaster.internal/ubuntu questing/main armhf adwaita-icon-theme all 48.0-1 [578 kB] 2119s Get:28 http://ftpmaster.internal/ubuntu questing/main armhf at-spi2-common all 2.56.1-1 [9142 B] 2119s Get:29 http://ftpmaster.internal/ubuntu questing/main armhf libatk1.0-0t64 armhf 2.56.1-1 [48.5 kB] 2119s Get:30 http://ftpmaster.internal/ubuntu questing/main armhf libxi6 armhf 2:1.8.2-1 [26.5 kB] 2119s Get:31 http://ftpmaster.internal/ubuntu questing/main armhf libatspi2.0-0t64 armhf 2.56.1-1 [74.8 kB] 2119s Get:32 http://ftpmaster.internal/ubuntu questing/main armhf libatk-bridge2.0-0t64 armhf 2.56.1-1 [59.8 kB] 2119s Get:33 http://ftpmaster.internal/ubuntu questing/main armhf libfreetype6 armhf 2.13.3+dfsg-1 [330 kB] 2119s Get:34 http://ftpmaster.internal/ubuntu questing/main armhf fonts-dejavu-mono all 2.37-8 [502 kB] 2119s Get:35 http://ftpmaster.internal/ubuntu questing/main armhf fonts-dejavu-core all 2.37-8 [835 kB] 2119s Get:36 http://ftpmaster.internal/ubuntu questing/main armhf fontconfig-config armhf 2.15.0-2.2ubuntu1 [37.9 kB] 2119s Get:37 http://ftpmaster.internal/ubuntu questing/main armhf libfontconfig1 armhf 2.15.0-2.2ubuntu1 [114 kB] 2119s Get:38 http://ftpmaster.internal/ubuntu questing/main armhf libpixman-1-0 armhf 0.44.0-3 [183 kB] 2119s Get:39 http://ftpmaster.internal/ubuntu questing/main armhf libxcb-render0 armhf 1.17.0-2 [15.3 kB] 2119s Get:40 http://ftpmaster.internal/ubuntu questing/main armhf libxcb-shm0 armhf 1.17.0-2 [5774 B] 2119s Get:41 http://ftpmaster.internal/ubuntu questing/main armhf libxrender1 armhf 1:0.9.10-1.1build1 [16.0 kB] 2119s Get:42 http://ftpmaster.internal/ubuntu questing/main armhf libcairo2 armhf 1.18.4-1 [483 kB] 2119s Get:43 http://ftpmaster.internal/ubuntu questing/main armhf libcairo-gobject2 armhf 1.18.4-1 [126 kB] 2119s Get:44 http://ftpmaster.internal/ubuntu questing/main armhf libcolord2 armhf 1.4.7-3 [132 kB] 2119s Get:45 http://ftpmaster.internal/ubuntu questing/main armhf libavahi-common-data armhf 0.8-16ubuntu2 [31.0 kB] 2119s Get:46 http://ftpmaster.internal/ubuntu questing/main armhf libavahi-common3 armhf 0.8-16ubuntu2 [20.2 kB] 2119s Get:47 http://ftpmaster.internal/ubuntu questing/main armhf libavahi-client3 armhf 0.8-16ubuntu2 [24.5 kB] 2119s Get:48 http://ftpmaster.internal/ubuntu questing/main armhf libcups2t64 armhf 2.4.12-0ubuntu1 [240 kB] 2119s Get:49 http://ftpmaster.internal/ubuntu questing/main armhf libepoxy0 armhf 1.5.10-2 [192 kB] 2119s Get:50 http://ftpmaster.internal/ubuntu questing/main armhf libgraphite2-3 armhf 1.3.14-2ubuntu1 [64.8 kB] 2119s Get:51 http://ftpmaster.internal/ubuntu questing/main armhf libharfbuzz0b armhf 10.2.0-1 [464 kB] 2119s Get:52 http://ftpmaster.internal/ubuntu questing/main armhf fontconfig armhf 2.15.0-2.2ubuntu1 [190 kB] 2119s Get:53 http://ftpmaster.internal/ubuntu questing/main armhf libthai-data all 0.1.29-2build1 [158 kB] 2119s Get:54 http://ftpmaster.internal/ubuntu questing/main armhf libdatrie1 armhf 0.2.13-3build1 [15.7 kB] 2119s Get:55 http://ftpmaster.internal/ubuntu questing/main armhf libthai0 armhf 0.1.29-2build1 [15.2 kB] 2119s Get:56 http://ftpmaster.internal/ubuntu questing/main armhf libpango-1.0-0 armhf 1.56.3-1 [216 kB] 2119s Get:57 http://ftpmaster.internal/ubuntu questing/main armhf libpangoft2-1.0-0 armhf 1.56.3-1 [44.1 kB] 2119s Get:58 http://ftpmaster.internal/ubuntu questing/main armhf libpangocairo-1.0-0 armhf 1.56.3-1 [25.0 kB] 2119s Get:59 http://ftpmaster.internal/ubuntu questing/main armhf libwayland-client0 armhf 1.23.1-3 [23.3 kB] 2119s Get:60 http://ftpmaster.internal/ubuntu questing/main armhf libwayland-cursor0 armhf 1.23.1-3 [9648 B] 2119s Get:61 http://ftpmaster.internal/ubuntu questing/main armhf libwayland-egl1 armhf 1.23.1-3 [5874 B] 2119s Get:62 http://ftpmaster.internal/ubuntu questing/main armhf libxcomposite1 armhf 1:0.4.6-1 [6060 B] 2119s Get:63 http://ftpmaster.internal/ubuntu questing/main armhf libxfixes3 armhf 1:6.0.0-2build1 [9038 B] 2119s Get:64 http://ftpmaster.internal/ubuntu questing/main armhf libxcursor1 armhf 1:1.2.3-1 [18.0 kB] 2119s Get:65 http://ftpmaster.internal/ubuntu questing/main armhf libxdamage1 armhf 1:1.1.6-1build1 [5462 B] 2119s Get:66 http://ftpmaster.internal/ubuntu questing/main armhf libxinerama1 armhf 2:1.1.4-3build1 [5866 B] 2119s Get:67 http://ftpmaster.internal/ubuntu questing/main armhf libxrandr2 armhf 2:1.5.4-1 [15.8 kB] 2119s Get:68 http://ftpmaster.internal/ubuntu questing/main armhf libdconf1 armhf 0.40.0-5 [38.4 kB] 2119s Get:69 http://ftpmaster.internal/ubuntu questing/main armhf dconf-service armhf 0.40.0-5 [27.6 kB] 2119s Get:70 http://ftpmaster.internal/ubuntu questing/main armhf dconf-gsettings-backend armhf 0.40.0-5 [23.8 kB] 2119s Get:71 http://ftpmaster.internal/ubuntu questing/main armhf libgtk-3-common all 3.24.49-2ubuntu1 [1424 kB] 2119s Get:72 http://ftpmaster.internal/ubuntu questing/main armhf libgtk-3-0t64 armhf 3.24.49-2ubuntu1 [2623 kB] 2119s Get:73 http://ftpmaster.internal/ubuntu questing/main armhf libglvnd0 armhf 1.7.0-1build1 [83.7 kB] 2119s Get:74 http://ftpmaster.internal/ubuntu questing/main armhf libx11-xcb1 armhf 2:1.8.10-2 [7902 B] 2119s Get:75 http://ftpmaster.internal/ubuntu questing/main armhf libxcb-dri3-0 armhf 1.17.0-2 [7120 B] 2119s Get:76 http://ftpmaster.internal/ubuntu questing/main armhf libxcb-glx0 armhf 1.17.0-2 [22.6 kB] 2119s Get:77 http://ftpmaster.internal/ubuntu questing/main armhf libxcb-present0 armhf 1.17.0-2 [5940 B] 2119s Get:78 http://ftpmaster.internal/ubuntu questing/main armhf libxcb-xfixes0 armhf 1.17.0-2 [10.0 kB] 2119s Get:79 http://ftpmaster.internal/ubuntu questing/main armhf libxxf86vm1 armhf 1:1.1.4-1build4 [8068 B] 2119s Get:80 http://ftpmaster.internal/ubuntu questing/main armhf libllvm19 armhf 1:19.1.7-3ubuntu1 [27.8 MB] 2120s Get:81 http://ftpmaster.internal/ubuntu questing/main armhf libxcb-randr0 armhf 1.17.0-2 [17.0 kB] 2120s Get:82 http://ftpmaster.internal/ubuntu questing/main armhf libxcb-sync1 armhf 1.17.0-2 [8732 B] 2120s Get:83 http://ftpmaster.internal/ubuntu questing/main armhf libxshmfence1 armhf 1.3-1build5 [4464 B] 2120s Get:84 http://ftpmaster.internal/ubuntu questing/main armhf mesa-libgallium armhf 25.0.3-1ubuntu2 [8260 kB] 2121s Get:85 http://ftpmaster.internal/ubuntu questing/main armhf libwayland-server0 armhf 1.23.1-3 [30.3 kB] 2121s Get:86 http://ftpmaster.internal/ubuntu questing/main armhf libgbm1 armhf 25.0.3-1ubuntu2 [29.0 kB] 2121s Get:87 http://ftpmaster.internal/ubuntu questing/main armhf libvulkan1 armhf 1.4.304.0-1 [127 kB] 2121s Get:88 http://ftpmaster.internal/ubuntu questing/main armhf libgl1-mesa-dri armhf 25.0.3-1ubuntu2 [32.0 kB] 2121s Get:89 http://ftpmaster.internal/ubuntu questing/main armhf libglx-mesa0 armhf 25.0.3-1ubuntu2 [120 kB] 2121s Get:90 http://ftpmaster.internal/ubuntu questing/main armhf libglx0 armhf 1.7.0-1build1 [39.3 kB] 2121s Get:91 http://ftpmaster.internal/ubuntu questing/main armhf libgl1 armhf 1.7.0-1build1 [105 kB] 2121s Get:92 http://ftpmaster.internal/ubuntu questing/main armhf libasound2-data all 1.2.13-1build1 [21.1 kB] 2121s Get:93 http://ftpmaster.internal/ubuntu questing/main armhf libasound2t64 armhf 1.2.13-1build1 [347 kB] 2121s Get:94 http://ftpmaster.internal/ubuntu questing/main armhf libgif7 armhf 5.2.2-1ubuntu2 [32.5 kB] 2121s Get:95 http://ftpmaster.internal/ubuntu questing/main armhf x11-common all 1:7.7+23ubuntu4 [21.8 kB] 2121s Get:96 http://ftpmaster.internal/ubuntu questing/main armhf libxtst6 armhf 2:1.2.5-1 [11.0 kB] 2121s Get:97 http://ftpmaster.internal/ubuntu questing/main armhf openjdk-21-jre armhf 21.0.7~8ea-1 [198 kB] 2121s Get:98 http://ftpmaster.internal/ubuntu questing/main armhf default-jre armhf 2:1.21-76 [918 B] 2121s Get:99 http://ftpmaster.internal/ubuntu questing/universe armhf libhamcrest-java all 2.2-2 [117 kB] 2121s Get:100 http://ftpmaster.internal/ubuntu questing/universe armhf junit4 all 4.13.2-5 [348 kB] 2121s Get:101 http://ftpmaster.internal/ubuntu questing/universe armhf libcommons-cli-java all 1.6.0-1 [59.9 kB] 2121s Get:102 http://ftpmaster.internal/ubuntu questing/universe armhf libapache-pom-java all 33-2 [5874 B] 2121s Get:103 http://ftpmaster.internal/ubuntu questing/universe armhf libcommons-parent-java all 56-1 [10.7 kB] 2121s Get:104 http://ftpmaster.internal/ubuntu questing/universe armhf libcommons-io-java all 2.18.0-1 [477 kB] 2121s Get:105 http://ftpmaster.internal/ubuntu questing/universe armhf libdropwizard-metrics-java all 3.2.6-1 [240 kB] 2121s Get:106 http://ftpmaster.internal/ubuntu questing/universe armhf libfindbugs-annotations-java all 3.1.0~preview2-4 [48.9 kB] 2121s Get:107 http://ftpmaster.internal/ubuntu questing/universe armhf libatinject-jsr330-api-java all 1.0+ds1-6 [5076 B] 2121s Get:108 http://ftpmaster.internal/ubuntu questing/universe armhf liberror-prone-java all 2.18.0-1 [22.5 kB] 2121s Get:109 http://ftpmaster.internal/ubuntu questing/universe armhf libjsr305-java all 0.1~+svn49-12 [27.0 kB] 2121s Get:110 http://ftpmaster.internal/ubuntu questing/universe armhf libguava-java all 32.0.1-1 [2692 kB] 2121s Get:111 http://ftpmaster.internal/ubuntu questing/universe armhf libjackson2-annotations-java all 2.14.0-1 [64.7 kB] 2121s Get:112 http://ftpmaster.internal/ubuntu questing/universe armhf libjackson2-core-java all 2.14.1-1 [432 kB] 2121s Get:113 http://ftpmaster.internal/ubuntu questing/universe armhf libjackson2-databind-java all 2.14.0+ds-1 [1481 kB] 2121s Get:114 http://ftpmaster.internal/ubuntu questing/universe armhf libasm-java all 9.7.1-1 [388 kB] 2121s Get:115 http://ftpmaster.internal/ubuntu questing/universe armhf libel-api-java all 3.0.0-3 [64.9 kB] 2121s Get:116 http://ftpmaster.internal/ubuntu questing/universe armhf libjsp-api-java all 2.3.4-3 [53.7 kB] 2121s Get:117 http://ftpmaster.internal/ubuntu questing/universe armhf libservlet-api-java all 4.0.1-2 [81.0 kB] 2121s Get:118 http://ftpmaster.internal/ubuntu questing/universe armhf libwebsocket-api-java all 1.1-2 [40.1 kB] 2121s Get:119 http://ftpmaster.internal/ubuntu questing/universe armhf libjetty9-java all 9.4.57-1 [2791 kB] 2122s Get:120 http://ftpmaster.internal/ubuntu questing/universe armhf libjnr-constants-java all 0.10.4-2 [1397 kB] 2122s Get:121 http://ftpmaster.internal/ubuntu questing/universe armhf libjffi-jni armhf 1.3.13+ds-1 [24.9 kB] 2122s Get:122 http://ftpmaster.internal/ubuntu questing/universe armhf libjffi-java all 1.3.13+ds-1 [112 kB] 2122s Get:123 http://ftpmaster.internal/ubuntu questing/universe armhf libjnr-x86asm-java all 1.0.2-6 [216 kB] 2122s Get:124 http://ftpmaster.internal/ubuntu questing/universe armhf libjnr-ffi-java all 2.2.15-2 [627 kB] 2122s Get:125 http://ftpmaster.internal/ubuntu questing/universe armhf libjnr-enxio-java all 0.32.16-1 [33.7 kB] 2122s Get:126 http://ftpmaster.internal/ubuntu questing/universe armhf libjnr-posix-java all 3.1.18-1 [267 kB] 2122s Get:127 http://ftpmaster.internal/ubuntu questing/universe armhf libjnr-unixsocket-java all 0.38.21-2 [46.9 kB] 2122s Get:128 http://ftpmaster.internal/ubuntu questing/universe armhf libactivation-java all 1.2.0-2 [84.7 kB] 2122s Get:129 http://ftpmaster.internal/ubuntu questing/universe armhf libmail-java all 1.6.5-3 [681 kB] 2122s Get:130 http://ftpmaster.internal/ubuntu questing/universe armhf libcommons-logging-java all 1.3.0-1ubuntu1 [63.8 kB] 2122s Get:131 http://ftpmaster.internal/ubuntu questing/universe armhf libjaxb-api-java all 2.3.1-1 [119 kB] 2122s Get:132 http://ftpmaster.internal/ubuntu questing/universe armhf libspring-core-java all 4.3.30-2ubuntu1 [1015 kB] 2122s Get:133 http://ftpmaster.internal/ubuntu questing/universe armhf libspring-beans-java all 4.3.30-2ubuntu1 [677 kB] 2122s Get:134 http://ftpmaster.internal/ubuntu questing/universe armhf libtaglibs-standard-spec-java all 1.2.5-3 [35.2 kB] 2122s Get:135 http://ftpmaster.internal/ubuntu questing/universe armhf libtaglibs-standard-impl-java all 1.2.5-3 [182 kB] 2122s Get:136 http://ftpmaster.internal/ubuntu questing/universe armhf libeclipse-jdt-core-compiler-batch-java all 3.35.0+eclipse4.29-2 [2933 kB] 2122s Get:137 http://ftpmaster.internal/ubuntu questing/universe armhf libeclipse-jdt-core-java all 3.35.0+eclipse4.29-2 [3831 kB] 2122s Get:138 http://ftpmaster.internal/ubuntu questing/universe armhf libtomcat9-java all 9.0.70-2ubuntu1.1 [6161 kB] 2122s Get:139 http://ftpmaster.internal/ubuntu questing/universe armhf libjetty9-extra-java all 9.4.57-1 [1199 kB] 2122s Get:140 http://ftpmaster.internal/ubuntu questing/universe armhf libjavaparser-java all 3.26.1-1 [1326 kB] 2122s Get:141 http://ftpmaster.internal/ubuntu questing/universe armhf libjctools-java all 4.0.5+dfsg-1 [506 kB] 2122s Get:142 http://ftpmaster.internal/ubuntu questing/universe armhf libnetty-java all 1:4.1.48-10 [3628 kB] 2123s Get:143 http://ftpmaster.internal/ubuntu questing/universe armhf libslf4j-java all 1.7.32-1 [141 kB] 2123s Get:144 http://ftpmaster.internal/ubuntu questing/main armhf libsnappy1v5 armhf 1.2.1-1 [28.4 kB] 2123s Get:145 http://ftpmaster.internal/ubuntu questing/universe armhf libsnappy-jni armhf 1.1.10.7-1 [6228 B] 2123s Get:146 http://ftpmaster.internal/ubuntu questing/universe armhf libsnappy-java all 1.1.10.7-1 [83.6 kB] 2123s Get:147 http://ftpmaster.internal/ubuntu questing/main armhf libapr1t64 armhf 1.7.5-1 [88.2 kB] 2123s Get:148 http://ftpmaster.internal/ubuntu questing/universe armhf libnetty-tcnative-jni armhf 2.0.28-1build4 [28.9 kB] 2123s Get:149 http://ftpmaster.internal/ubuntu questing/universe armhf libnetty-tcnative-java all 2.0.28-1build4 [24.8 kB] 2123s Get:150 http://ftpmaster.internal/ubuntu questing/universe armhf liblog4j1.2-java all 1.2.17-11 [439 kB] 2123s Get:151 http://ftpmaster.internal/ubuntu questing/universe armhf libzookeeper-java all 3.9.3-1build1 [1890 kB] 2123s Get:152 http://ftpmaster.internal/ubuntu questing/universe armhf zookeeper all 3.9.3-1build1 [57.8 kB] 2123s Get:153 http://ftpmaster.internal/ubuntu questing/universe armhf zookeeperd all 3.9.3-1build1 [6016 B] 2123s Get:154 http://ftpmaster.internal/ubuntu questing/main armhf fonts-font-awesome all 5.0.10+really4.7.0~dfsg-4.1 [516 kB] 2123s Get:155 http://ftpmaster.internal/ubuntu questing/main armhf libcares2 armhf 1.34.4-2.1 [85.0 kB] 2123s Get:156 http://ftpmaster.internal/ubuntu questing/universe armhf libev4t64 armhf 1:4.33-2.1build1 [26.3 kB] 2123s Get:157 http://ftpmaster.internal/ubuntu questing/main armhf libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 2123s Get:158 http://ftpmaster.internal/ubuntu questing/main armhf libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [118 kB] 2123s Get:159 http://ftpmaster.internal/ubuntu questing/main armhf libjs-sphinxdoc all 8.1.3-5 [31.0 kB] 2123s Get:160 http://ftpmaster.internal/ubuntu questing/main armhf libllvm20 armhf 1:20.1.2-0ubuntu1 [29.6 MB] 2124s Get:161 http://ftpmaster.internal/ubuntu questing/main armhf libpq5 armhf 17.4-1 [125 kB] 2124s Get:162 http://ftpmaster.internal/ubuntu questing/main armhf libtime-duration-perl all 1.21-2 [12.3 kB] 2124s Get:163 http://ftpmaster.internal/ubuntu questing/main armhf libtimedate-perl all 2.3300-2 [34.0 kB] 2124s Get:164 http://ftpmaster.internal/ubuntu questing/main armhf libxslt1.1 armhf 1.1.39-0exp1ubuntu4 [151 kB] 2124s Get:165 http://ftpmaster.internal/ubuntu questing/universe armhf moreutils armhf 0.69-1 [53.5 kB] 2124s Get:166 http://ftpmaster.internal/ubuntu questing/main armhf python3-click all 8.2.0+0.really.8.1.8-1 [80.0 kB] 2124s Get:167 http://ftpmaster.internal/ubuntu questing/main armhf python3-wcwidth all 0.2.13+dfsg1-1 [26.3 kB] 2124s Get:168 http://ftpmaster.internal/ubuntu questing/main armhf python3-prettytable all 3.12.0-1 [36.5 kB] 2124s Get:169 http://ftpmaster.internal/ubuntu questing-proposed/main armhf python3-psutil armhf 7.0.0-2 [187 kB] 2124s Get:170 http://ftpmaster.internal/ubuntu questing/universe armhf python3-ydiff all 1.4.2-1 [19.0 kB] 2125s Get:171 http://ftpmaster.internal/ubuntu questing/main armhf python3-psycopg2 armhf 2.9.10-1build1 [125 kB] 2125s Get:172 http://ftpmaster.internal/ubuntu questing/main armhf python3-greenlet armhf 3.1.0-1build1 [161 kB] 2125s Get:173 http://ftpmaster.internal/ubuntu questing/main armhf python3-dnspython all 2.7.0-1ubuntu1 [167 kB] 2125s Get:174 http://ftpmaster.internal/ubuntu questing/main armhf python3-eventlet all 0.39.0-0ubuntu1 [277 kB] 2125s Get:175 http://ftpmaster.internal/ubuntu questing/universe armhf python3-zope.event all 5.0-0.1 [7512 B] 2125s Get:176 http://ftpmaster.internal/ubuntu questing/main armhf python3-zope.interface armhf 7.2-1build1 [139 kB] 2125s Get:177 http://ftpmaster.internal/ubuntu questing/universe armhf python3-gevent armhf 24.11.1-1build1 [822 kB] 2125s Get:178 http://ftpmaster.internal/ubuntu questing/universe armhf python3-kerberos armhf 1.1.14-3.1build11 [19.9 kB] 2125s Get:179 http://ftpmaster.internal/ubuntu questing/universe armhf python3-pure-sasl all 0.5.1+dfsg1-5 [11.4 kB] 2125s Get:180 http://ftpmaster.internal/ubuntu questing/universe armhf python3-kazoo all 2.9.0-2 [103 kB] 2125s Get:181 http://ftpmaster.internal/ubuntu questing/universe armhf patroni all 4.0.4-7 [281 kB] 2125s Get:182 http://ftpmaster.internal/ubuntu questing/main armhf sphinx-rtd-theme-common all 3.0.2+dfsg-2 [1014 kB] 2125s Get:183 http://ftpmaster.internal/ubuntu questing/universe armhf patroni-doc all 4.0.4-7 [526 kB] 2125s Get:184 http://ftpmaster.internal/ubuntu questing/main armhf postgresql-client-17 armhf 17.4-1 [1285 kB] 2125s Get:185 http://ftpmaster.internal/ubuntu questing/main armhf postgresql-17 armhf 17.4-1 [14.8 MB] 2126s Get:186 http://ftpmaster.internal/ubuntu questing/main armhf postgresql all 17+274 [14.4 kB] 2126s Get:187 http://ftpmaster.internal/ubuntu questing/universe armhf python3-parse all 1.20.2-1 [27.0 kB] 2126s Get:188 http://ftpmaster.internal/ubuntu questing/universe armhf python3-parse-type all 0.6.4-2 [23.5 kB] 2126s Get:189 http://ftpmaster.internal/ubuntu questing/universe armhf python3-behave all 1.2.6-6 [98.6 kB] 2126s Get:190 http://ftpmaster.internal/ubuntu questing/universe armhf python3-coverage armhf 7.6.0+dfsg1-2build1 [152 kB] 2126s Preconfiguring packages ... 2126s /var/cache/debconf/tmp.ci/postgresql.config.LexgSA: 12: pg_lsclusters: not found 2126s Fetched 180 MB in 9s (19.4 MB/s) 2126s Selecting previously unselected package fonts-lato. 2126s (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 ... 63951 files and directories currently installed.) 2126s Preparing to unpack .../000-fonts-lato_2.015-1_all.deb ... 2126s Unpacking fonts-lato (2.015-1) ... 2127s Selecting previously unselected package libjson-perl. 2127s Preparing to unpack .../001-libjson-perl_4.10000-1_all.deb ... 2127s Unpacking libjson-perl (4.10000-1) ... 2127s Selecting previously unselected package postgresql-client-common. 2127s Preparing to unpack .../002-postgresql-client-common_274_all.deb ... 2127s Unpacking postgresql-client-common (274) ... 2127s Selecting previously unselected package libio-pty-perl. 2127s Preparing to unpack .../003-libio-pty-perl_1%3a1.20-1build3_armhf.deb ... 2127s Unpacking libio-pty-perl (1:1.20-1build3) ... 2127s Selecting previously unselected package libipc-run-perl. 2127s Preparing to unpack .../004-libipc-run-perl_20231003.0-2_all.deb ... 2127s Unpacking libipc-run-perl (20231003.0-2) ... 2127s Selecting previously unselected package postgresql-common-dev. 2127s Preparing to unpack .../005-postgresql-common-dev_274_all.deb ... 2127s Unpacking postgresql-common-dev (274) ... 2127s Selecting previously unselected package ssl-cert. 2127s Preparing to unpack .../006-ssl-cert_1.1.3ubuntu1_all.deb ... 2127s Unpacking ssl-cert (1.1.3ubuntu1) ... 2127s Selecting previously unselected package postgresql-common. 2127s Preparing to unpack .../007-postgresql-common_274_all.deb ... 2127s Adding 'diversion of /usr/bin/pg_config to /usr/bin/pg_config.libpq-dev by postgresql-common' 2127s Unpacking postgresql-common (274) ... 2127s Selecting previously unselected package ca-certificates-java. 2127s Preparing to unpack .../008-ca-certificates-java_20240118_all.deb ... 2127s Unpacking ca-certificates-java (20240118) ... 2127s Selecting previously unselected package java-common. 2127s Preparing to unpack .../009-java-common_0.76_all.deb ... 2127s Unpacking java-common (0.76) ... 2127s Selecting previously unselected package liblcms2-2:armhf. 2127s Preparing to unpack .../010-liblcms2-2_2.16-2_armhf.deb ... 2127s Unpacking liblcms2-2:armhf (2.16-2) ... 2127s Selecting previously unselected package libjpeg-turbo8:armhf. 2127s Preparing to unpack .../011-libjpeg-turbo8_2.1.5-3ubuntu2_armhf.deb ... 2127s Unpacking libjpeg-turbo8:armhf (2.1.5-3ubuntu2) ... 2127s Selecting previously unselected package libjpeg8:armhf. 2127s Preparing to unpack .../012-libjpeg8_8c-2ubuntu11_armhf.deb ... 2127s Unpacking libjpeg8:armhf (8c-2ubuntu11) ... 2127s Selecting previously unselected package libpcsclite1:armhf. 2127s Preparing to unpack .../013-libpcsclite1_2.3.1-1_armhf.deb ... 2127s Unpacking libpcsclite1:armhf (2.3.1-1) ... 2127s Selecting previously unselected package openjdk-21-jre-headless:armhf. 2127s Preparing to unpack .../014-openjdk-21-jre-headless_21.0.7~8ea-1_armhf.deb ... 2127s Unpacking openjdk-21-jre-headless:armhf (21.0.7~8ea-1) ... 2128s Selecting previously unselected package default-jre-headless. 2128s Preparing to unpack .../015-default-jre-headless_2%3a1.21-76_armhf.deb ... 2128s Unpacking default-jre-headless (2:1.21-76) ... 2129s Selecting previously unselected package libgdk-pixbuf2.0-common. 2129s Preparing to unpack .../016-libgdk-pixbuf2.0-common_2.42.12+dfsg-2_all.deb ... 2129s Unpacking libgdk-pixbuf2.0-common (2.42.12+dfsg-2) ... 2129s Selecting previously unselected package libdeflate0:armhf. 2129s Preparing to unpack .../017-libdeflate0_1.23-1_armhf.deb ... 2129s Unpacking libdeflate0:armhf (1.23-1) ... 2129s Selecting previously unselected package libjbig0:armhf. 2129s Preparing to unpack .../018-libjbig0_2.1-6.1ubuntu2_armhf.deb ... 2129s Unpacking libjbig0:armhf (2.1-6.1ubuntu2) ... 2129s Selecting previously unselected package liblerc4:armhf. 2129s Preparing to unpack .../019-liblerc4_4.0.0+ds-5ubuntu1_armhf.deb ... 2129s Unpacking liblerc4:armhf (4.0.0+ds-5ubuntu1) ... 2129s Selecting previously unselected package libsharpyuv0:armhf. 2129s Preparing to unpack .../020-libsharpyuv0_1.5.0-0.1_armhf.deb ... 2129s Unpacking libsharpyuv0:armhf (1.5.0-0.1) ... 2129s Selecting previously unselected package libwebp7:armhf. 2129s Preparing to unpack .../021-libwebp7_1.5.0-0.1_armhf.deb ... 2129s Unpacking libwebp7:armhf (1.5.0-0.1) ... 2129s Selecting previously unselected package libtiff6:armhf. 2129s Preparing to unpack .../022-libtiff6_4.7.0-3ubuntu1_armhf.deb ... 2129s Unpacking libtiff6:armhf (4.7.0-3ubuntu1) ... 2129s Selecting previously unselected package libgdk-pixbuf-2.0-0:armhf. 2129s Preparing to unpack .../023-libgdk-pixbuf-2.0-0_2.42.12+dfsg-2_armhf.deb ... 2129s Unpacking libgdk-pixbuf-2.0-0:armhf (2.42.12+dfsg-2) ... 2129s Selecting previously unselected package gtk-update-icon-cache. 2129s Preparing to unpack .../024-gtk-update-icon-cache_4.18.4+ds-1_armhf.deb ... 2129s No diversion 'diversion of /usr/sbin/update-icon-caches to /usr/sbin/update-icon-caches.gtk2 by libgtk-3-bin', none removed. 2129s 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. 2129s Unpacking gtk-update-icon-cache (4.18.4+ds-1) ... 2129s Selecting previously unselected package hicolor-icon-theme. 2129s Preparing to unpack .../025-hicolor-icon-theme_0.18-2_all.deb ... 2129s Unpacking hicolor-icon-theme (0.18-2) ... 2129s Selecting previously unselected package adwaita-icon-theme. 2129s Preparing to unpack .../026-adwaita-icon-theme_48.0-1_all.deb ... 2129s Unpacking adwaita-icon-theme (48.0-1) ... 2129s Selecting previously unselected package at-spi2-common. 2129s Preparing to unpack .../027-at-spi2-common_2.56.1-1_all.deb ... 2129s Unpacking at-spi2-common (2.56.1-1) ... 2129s Selecting previously unselected package libatk1.0-0t64:armhf. 2129s Preparing to unpack .../028-libatk1.0-0t64_2.56.1-1_armhf.deb ... 2129s Unpacking libatk1.0-0t64:armhf (2.56.1-1) ... 2129s Selecting previously unselected package libxi6:armhf. 2129s Preparing to unpack .../029-libxi6_2%3a1.8.2-1_armhf.deb ... 2129s Unpacking libxi6:armhf (2:1.8.2-1) ... 2129s Selecting previously unselected package libatspi2.0-0t64:armhf. 2129s Preparing to unpack .../030-libatspi2.0-0t64_2.56.1-1_armhf.deb ... 2129s Unpacking libatspi2.0-0t64:armhf (2.56.1-1) ... 2129s Selecting previously unselected package libatk-bridge2.0-0t64:armhf. 2129s Preparing to unpack .../031-libatk-bridge2.0-0t64_2.56.1-1_armhf.deb ... 2129s Unpacking libatk-bridge2.0-0t64:armhf (2.56.1-1) ... 2129s Selecting previously unselected package libfreetype6:armhf. 2129s Preparing to unpack .../032-libfreetype6_2.13.3+dfsg-1_armhf.deb ... 2129s Unpacking libfreetype6:armhf (2.13.3+dfsg-1) ... 2129s Selecting previously unselected package fonts-dejavu-mono. 2129s Preparing to unpack .../033-fonts-dejavu-mono_2.37-8_all.deb ... 2129s Unpacking fonts-dejavu-mono (2.37-8) ... 2129s Selecting previously unselected package fonts-dejavu-core. 2129s Preparing to unpack .../034-fonts-dejavu-core_2.37-8_all.deb ... 2129s Unpacking fonts-dejavu-core (2.37-8) ... 2129s Selecting previously unselected package fontconfig-config. 2129s Preparing to unpack .../035-fontconfig-config_2.15.0-2.2ubuntu1_armhf.deb ... 2130s Unpacking fontconfig-config (2.15.0-2.2ubuntu1) ... 2130s Selecting previously unselected package libfontconfig1:armhf. 2130s Preparing to unpack .../036-libfontconfig1_2.15.0-2.2ubuntu1_armhf.deb ... 2130s Unpacking libfontconfig1:armhf (2.15.0-2.2ubuntu1) ... 2130s Selecting previously unselected package libpixman-1-0:armhf. 2130s Preparing to unpack .../037-libpixman-1-0_0.44.0-3_armhf.deb ... 2130s Unpacking libpixman-1-0:armhf (0.44.0-3) ... 2130s Selecting previously unselected package libxcb-render0:armhf. 2130s Preparing to unpack .../038-libxcb-render0_1.17.0-2_armhf.deb ... 2130s Unpacking libxcb-render0:armhf (1.17.0-2) ... 2130s Selecting previously unselected package libxcb-shm0:armhf. 2130s Preparing to unpack .../039-libxcb-shm0_1.17.0-2_armhf.deb ... 2130s Unpacking libxcb-shm0:armhf (1.17.0-2) ... 2130s Selecting previously unselected package libxrender1:armhf. 2130s Preparing to unpack .../040-libxrender1_1%3a0.9.10-1.1build1_armhf.deb ... 2130s Unpacking libxrender1:armhf (1:0.9.10-1.1build1) ... 2130s Selecting previously unselected package libcairo2:armhf. 2130s Preparing to unpack .../041-libcairo2_1.18.4-1_armhf.deb ... 2130s Unpacking libcairo2:armhf (1.18.4-1) ... 2130s Selecting previously unselected package libcairo-gobject2:armhf. 2130s Preparing to unpack .../042-libcairo-gobject2_1.18.4-1_armhf.deb ... 2130s Unpacking libcairo-gobject2:armhf (1.18.4-1) ... 2130s Selecting previously unselected package libcolord2:armhf. 2130s Preparing to unpack .../043-libcolord2_1.4.7-3_armhf.deb ... 2130s Unpacking libcolord2:armhf (1.4.7-3) ... 2130s Selecting previously unselected package libavahi-common-data:armhf. 2130s Preparing to unpack .../044-libavahi-common-data_0.8-16ubuntu2_armhf.deb ... 2130s Unpacking libavahi-common-data:armhf (0.8-16ubuntu2) ... 2130s Selecting previously unselected package libavahi-common3:armhf. 2130s Preparing to unpack .../045-libavahi-common3_0.8-16ubuntu2_armhf.deb ... 2130s Unpacking libavahi-common3:armhf (0.8-16ubuntu2) ... 2130s Selecting previously unselected package libavahi-client3:armhf. 2130s Preparing to unpack .../046-libavahi-client3_0.8-16ubuntu2_armhf.deb ... 2130s Unpacking libavahi-client3:armhf (0.8-16ubuntu2) ... 2130s Selecting previously unselected package libcups2t64:armhf. 2130s Preparing to unpack .../047-libcups2t64_2.4.12-0ubuntu1_armhf.deb ... 2130s Unpacking libcups2t64:armhf (2.4.12-0ubuntu1) ... 2130s Selecting previously unselected package libepoxy0:armhf. 2130s Preparing to unpack .../048-libepoxy0_1.5.10-2_armhf.deb ... 2130s Unpacking libepoxy0:armhf (1.5.10-2) ... 2130s Selecting previously unselected package libgraphite2-3:armhf. 2130s Preparing to unpack .../049-libgraphite2-3_1.3.14-2ubuntu1_armhf.deb ... 2130s Unpacking libgraphite2-3:armhf (1.3.14-2ubuntu1) ... 2130s Selecting previously unselected package libharfbuzz0b:armhf. 2130s Preparing to unpack .../050-libharfbuzz0b_10.2.0-1_armhf.deb ... 2130s Unpacking libharfbuzz0b:armhf (10.2.0-1) ... 2130s Selecting previously unselected package fontconfig. 2130s Preparing to unpack .../051-fontconfig_2.15.0-2.2ubuntu1_armhf.deb ... 2130s Unpacking fontconfig (2.15.0-2.2ubuntu1) ... 2130s Selecting previously unselected package libthai-data. 2130s Preparing to unpack .../052-libthai-data_0.1.29-2build1_all.deb ... 2130s Unpacking libthai-data (0.1.29-2build1) ... 2130s Selecting previously unselected package libdatrie1:armhf. 2130s Preparing to unpack .../053-libdatrie1_0.2.13-3build1_armhf.deb ... 2130s Unpacking libdatrie1:armhf (0.2.13-3build1) ... 2130s Selecting previously unselected package libthai0:armhf. 2130s Preparing to unpack .../054-libthai0_0.1.29-2build1_armhf.deb ... 2130s Unpacking libthai0:armhf (0.1.29-2build1) ... 2130s Selecting previously unselected package libpango-1.0-0:armhf. 2130s Preparing to unpack .../055-libpango-1.0-0_1.56.3-1_armhf.deb ... 2130s Unpacking libpango-1.0-0:armhf (1.56.3-1) ... 2130s Selecting previously unselected package libpangoft2-1.0-0:armhf. 2130s Preparing to unpack .../056-libpangoft2-1.0-0_1.56.3-1_armhf.deb ... 2130s Unpacking libpangoft2-1.0-0:armhf (1.56.3-1) ... 2130s Selecting previously unselected package libpangocairo-1.0-0:armhf. 2130s Preparing to unpack .../057-libpangocairo-1.0-0_1.56.3-1_armhf.deb ... 2130s Unpacking libpangocairo-1.0-0:armhf (1.56.3-1) ... 2130s Selecting previously unselected package libwayland-client0:armhf. 2130s Preparing to unpack .../058-libwayland-client0_1.23.1-3_armhf.deb ... 2130s Unpacking libwayland-client0:armhf (1.23.1-3) ... 2131s Selecting previously unselected package libwayland-cursor0:armhf. 2131s Preparing to unpack .../059-libwayland-cursor0_1.23.1-3_armhf.deb ... 2131s Unpacking libwayland-cursor0:armhf (1.23.1-3) ... 2131s Selecting previously unselected package libwayland-egl1:armhf. 2131s Preparing to unpack .../060-libwayland-egl1_1.23.1-3_armhf.deb ... 2131s Unpacking libwayland-egl1:armhf (1.23.1-3) ... 2131s Selecting previously unselected package libxcomposite1:armhf. 2131s Preparing to unpack .../061-libxcomposite1_1%3a0.4.6-1_armhf.deb ... 2131s Unpacking libxcomposite1:armhf (1:0.4.6-1) ... 2131s Selecting previously unselected package libxfixes3:armhf. 2131s Preparing to unpack .../062-libxfixes3_1%3a6.0.0-2build1_armhf.deb ... 2131s Unpacking libxfixes3:armhf (1:6.0.0-2build1) ... 2131s Selecting previously unselected package libxcursor1:armhf. 2131s Preparing to unpack .../063-libxcursor1_1%3a1.2.3-1_armhf.deb ... 2131s Unpacking libxcursor1:armhf (1:1.2.3-1) ... 2131s Selecting previously unselected package libxdamage1:armhf. 2131s Preparing to unpack .../064-libxdamage1_1%3a1.1.6-1build1_armhf.deb ... 2131s Unpacking libxdamage1:armhf (1:1.1.6-1build1) ... 2131s Selecting previously unselected package libxinerama1:armhf. 2131s Preparing to unpack .../065-libxinerama1_2%3a1.1.4-3build1_armhf.deb ... 2131s Unpacking libxinerama1:armhf (2:1.1.4-3build1) ... 2131s Selecting previously unselected package libxrandr2:armhf. 2131s Preparing to unpack .../066-libxrandr2_2%3a1.5.4-1_armhf.deb ... 2131s Unpacking libxrandr2:armhf (2:1.5.4-1) ... 2131s Selecting previously unselected package libdconf1:armhf. 2131s Preparing to unpack .../067-libdconf1_0.40.0-5_armhf.deb ... 2131s Unpacking libdconf1:armhf (0.40.0-5) ... 2131s Selecting previously unselected package dconf-service. 2131s Preparing to unpack .../068-dconf-service_0.40.0-5_armhf.deb ... 2131s Unpacking dconf-service (0.40.0-5) ... 2131s Selecting previously unselected package dconf-gsettings-backend:armhf. 2131s Preparing to unpack .../069-dconf-gsettings-backend_0.40.0-5_armhf.deb ... 2131s Unpacking dconf-gsettings-backend:armhf (0.40.0-5) ... 2131s Selecting previously unselected package libgtk-3-common. 2131s Preparing to unpack .../070-libgtk-3-common_3.24.49-2ubuntu1_all.deb ... 2131s Unpacking libgtk-3-common (3.24.49-2ubuntu1) ... 2131s Selecting previously unselected package libgtk-3-0t64:armhf. 2131s Preparing to unpack .../071-libgtk-3-0t64_3.24.49-2ubuntu1_armhf.deb ... 2131s Unpacking libgtk-3-0t64:armhf (3.24.49-2ubuntu1) ... 2131s Selecting previously unselected package libglvnd0:armhf. 2131s Preparing to unpack .../072-libglvnd0_1.7.0-1build1_armhf.deb ... 2131s Unpacking libglvnd0:armhf (1.7.0-1build1) ... 2131s Selecting previously unselected package libx11-xcb1:armhf. 2131s Preparing to unpack .../073-libx11-xcb1_2%3a1.8.10-2_armhf.deb ... 2131s Unpacking libx11-xcb1:armhf (2:1.8.10-2) ... 2131s Selecting previously unselected package libxcb-dri3-0:armhf. 2131s Preparing to unpack .../074-libxcb-dri3-0_1.17.0-2_armhf.deb ... 2131s Unpacking libxcb-dri3-0:armhf (1.17.0-2) ... 2131s Selecting previously unselected package libxcb-glx0:armhf. 2131s Preparing to unpack .../075-libxcb-glx0_1.17.0-2_armhf.deb ... 2131s Unpacking libxcb-glx0:armhf (1.17.0-2) ... 2131s Selecting previously unselected package libxcb-present0:armhf. 2131s Preparing to unpack .../076-libxcb-present0_1.17.0-2_armhf.deb ... 2131s Unpacking libxcb-present0:armhf (1.17.0-2) ... 2131s Selecting previously unselected package libxcb-xfixes0:armhf. 2131s Preparing to unpack .../077-libxcb-xfixes0_1.17.0-2_armhf.deb ... 2131s Unpacking libxcb-xfixes0:armhf (1.17.0-2) ... 2131s Selecting previously unselected package libxxf86vm1:armhf. 2131s Preparing to unpack .../078-libxxf86vm1_1%3a1.1.4-1build4_armhf.deb ... 2131s Unpacking libxxf86vm1:armhf (1:1.1.4-1build4) ... 2131s Selecting previously unselected package libllvm19:armhf. 2131s Preparing to unpack .../079-libllvm19_1%3a19.1.7-3ubuntu1_armhf.deb ... 2131s Unpacking libllvm19:armhf (1:19.1.7-3ubuntu1) ... 2132s Selecting previously unselected package libxcb-randr0:armhf. 2132s Preparing to unpack .../080-libxcb-randr0_1.17.0-2_armhf.deb ... 2132s Unpacking libxcb-randr0:armhf (1.17.0-2) ... 2132s Selecting previously unselected package libxcb-sync1:armhf. 2132s Preparing to unpack .../081-libxcb-sync1_1.17.0-2_armhf.deb ... 2132s Unpacking libxcb-sync1:armhf (1.17.0-2) ... 2132s Selecting previously unselected package libxshmfence1:armhf. 2132s Preparing to unpack .../082-libxshmfence1_1.3-1build5_armhf.deb ... 2132s Unpacking libxshmfence1:armhf (1.3-1build5) ... 2133s Selecting previously unselected package mesa-libgallium:armhf. 2133s Preparing to unpack .../083-mesa-libgallium_25.0.3-1ubuntu2_armhf.deb ... 2133s Unpacking mesa-libgallium:armhf (25.0.3-1ubuntu2) ... 2133s Selecting previously unselected package libwayland-server0:armhf. 2133s Preparing to unpack .../084-libwayland-server0_1.23.1-3_armhf.deb ... 2133s Unpacking libwayland-server0:armhf (1.23.1-3) ... 2133s Selecting previously unselected package libgbm1:armhf. 2133s Preparing to unpack .../085-libgbm1_25.0.3-1ubuntu2_armhf.deb ... 2133s Unpacking libgbm1:armhf (25.0.3-1ubuntu2) ... 2133s Selecting previously unselected package libvulkan1:armhf. 2133s Preparing to unpack .../086-libvulkan1_1.4.304.0-1_armhf.deb ... 2133s Unpacking libvulkan1:armhf (1.4.304.0-1) ... 2133s Selecting previously unselected package libgl1-mesa-dri:armhf. 2133s Preparing to unpack .../087-libgl1-mesa-dri_25.0.3-1ubuntu2_armhf.deb ... 2133s Unpacking libgl1-mesa-dri:armhf (25.0.3-1ubuntu2) ... 2133s Selecting previously unselected package libglx-mesa0:armhf. 2133s Preparing to unpack .../088-libglx-mesa0_25.0.3-1ubuntu2_armhf.deb ... 2133s Unpacking libglx-mesa0:armhf (25.0.3-1ubuntu2) ... 2133s Selecting previously unselected package libglx0:armhf. 2133s Preparing to unpack .../089-libglx0_1.7.0-1build1_armhf.deb ... 2133s Unpacking libglx0:armhf (1.7.0-1build1) ... 2133s Selecting previously unselected package libgl1:armhf. 2133s Preparing to unpack .../090-libgl1_1.7.0-1build1_armhf.deb ... 2133s Unpacking libgl1:armhf (1.7.0-1build1) ... 2133s Selecting previously unselected package libasound2-data. 2133s Preparing to unpack .../091-libasound2-data_1.2.13-1build1_all.deb ... 2133s Unpacking libasound2-data (1.2.13-1build1) ... 2133s Selecting previously unselected package libasound2t64:armhf. 2133s Preparing to unpack .../092-libasound2t64_1.2.13-1build1_armhf.deb ... 2133s Unpacking libasound2t64:armhf (1.2.13-1build1) ... 2133s Selecting previously unselected package libgif7:armhf. 2133s Preparing to unpack .../093-libgif7_5.2.2-1ubuntu2_armhf.deb ... 2133s Unpacking libgif7:armhf (5.2.2-1ubuntu2) ... 2133s Selecting previously unselected package x11-common. 2133s Preparing to unpack .../094-x11-common_1%3a7.7+23ubuntu4_all.deb ... 2133s Unpacking x11-common (1:7.7+23ubuntu4) ... 2133s Selecting previously unselected package libxtst6:armhf. 2133s Preparing to unpack .../095-libxtst6_2%3a1.2.5-1_armhf.deb ... 2133s Unpacking libxtst6:armhf (2:1.2.5-1) ... 2133s Selecting previously unselected package openjdk-21-jre:armhf. 2133s Preparing to unpack .../096-openjdk-21-jre_21.0.7~8ea-1_armhf.deb ... 2133s Unpacking openjdk-21-jre:armhf (21.0.7~8ea-1) ... 2133s Selecting previously unselected package default-jre. 2133s Preparing to unpack .../097-default-jre_2%3a1.21-76_armhf.deb ... 2133s Unpacking default-jre (2:1.21-76) ... 2133s Selecting previously unselected package libhamcrest-java. 2133s Preparing to unpack .../098-libhamcrest-java_2.2-2_all.deb ... 2133s Unpacking libhamcrest-java (2.2-2) ... 2133s Selecting previously unselected package junit4. 2133s Preparing to unpack .../099-junit4_4.13.2-5_all.deb ... 2133s Unpacking junit4 (4.13.2-5) ... 2133s Selecting previously unselected package libcommons-cli-java. 2133s Preparing to unpack .../100-libcommons-cli-java_1.6.0-1_all.deb ... 2133s Unpacking libcommons-cli-java (1.6.0-1) ... 2133s Selecting previously unselected package libapache-pom-java. 2133s Preparing to unpack .../101-libapache-pom-java_33-2_all.deb ... 2133s Unpacking libapache-pom-java (33-2) ... 2133s Selecting previously unselected package libcommons-parent-java. 2133s Preparing to unpack .../102-libcommons-parent-java_56-1_all.deb ... 2133s Unpacking libcommons-parent-java (56-1) ... 2134s Selecting previously unselected package libcommons-io-java. 2134s Preparing to unpack .../103-libcommons-io-java_2.18.0-1_all.deb ... 2134s Unpacking libcommons-io-java (2.18.0-1) ... 2134s Selecting previously unselected package libdropwizard-metrics-java. 2134s Preparing to unpack .../104-libdropwizard-metrics-java_3.2.6-1_all.deb ... 2134s Unpacking libdropwizard-metrics-java (3.2.6-1) ... 2134s Selecting previously unselected package libfindbugs-annotations-java. 2134s Preparing to unpack .../105-libfindbugs-annotations-java_3.1.0~preview2-4_all.deb ... 2134s Unpacking libfindbugs-annotations-java (3.1.0~preview2-4) ... 2134s Selecting previously unselected package libatinject-jsr330-api-java. 2134s Preparing to unpack .../106-libatinject-jsr330-api-java_1.0+ds1-6_all.deb ... 2134s Unpacking libatinject-jsr330-api-java (1.0+ds1-6) ... 2134s Selecting previously unselected package liberror-prone-java. 2134s Preparing to unpack .../107-liberror-prone-java_2.18.0-1_all.deb ... 2134s Unpacking liberror-prone-java (2.18.0-1) ... 2134s Selecting previously unselected package libjsr305-java. 2134s Preparing to unpack .../108-libjsr305-java_0.1~+svn49-12_all.deb ... 2134s Unpacking libjsr305-java (0.1~+svn49-12) ... 2134s Selecting previously unselected package libguava-java. 2134s Preparing to unpack .../109-libguava-java_32.0.1-1_all.deb ... 2134s Unpacking libguava-java (32.0.1-1) ... 2134s Selecting previously unselected package libjackson2-annotations-java. 2134s Preparing to unpack .../110-libjackson2-annotations-java_2.14.0-1_all.deb ... 2134s Unpacking libjackson2-annotations-java (2.14.0-1) ... 2134s Selecting previously unselected package libjackson2-core-java. 2134s Preparing to unpack .../111-libjackson2-core-java_2.14.1-1_all.deb ... 2134s Unpacking libjackson2-core-java (2.14.1-1) ... 2134s Selecting previously unselected package libjackson2-databind-java. 2134s Preparing to unpack .../112-libjackson2-databind-java_2.14.0+ds-1_all.deb ... 2134s Unpacking libjackson2-databind-java (2.14.0+ds-1) ... 2134s Selecting previously unselected package libasm-java. 2134s Preparing to unpack .../113-libasm-java_9.7.1-1_all.deb ... 2134s Unpacking libasm-java (9.7.1-1) ... 2134s Selecting previously unselected package libel-api-java. 2134s Preparing to unpack .../114-libel-api-java_3.0.0-3_all.deb ... 2134s Unpacking libel-api-java (3.0.0-3) ... 2134s Selecting previously unselected package libjsp-api-java. 2134s Preparing to unpack .../115-libjsp-api-java_2.3.4-3_all.deb ... 2134s Unpacking libjsp-api-java (2.3.4-3) ... 2134s Selecting previously unselected package libservlet-api-java. 2134s Preparing to unpack .../116-libservlet-api-java_4.0.1-2_all.deb ... 2134s Unpacking libservlet-api-java (4.0.1-2) ... 2134s Selecting previously unselected package libwebsocket-api-java. 2134s Preparing to unpack .../117-libwebsocket-api-java_1.1-2_all.deb ... 2134s Unpacking libwebsocket-api-java (1.1-2) ... 2134s Selecting previously unselected package libjetty9-java. 2134s Preparing to unpack .../118-libjetty9-java_9.4.57-1_all.deb ... 2134s Unpacking libjetty9-java (9.4.57-1) ... 2134s Selecting previously unselected package libjnr-constants-java. 2134s Preparing to unpack .../119-libjnr-constants-java_0.10.4-2_all.deb ... 2134s Unpacking libjnr-constants-java (0.10.4-2) ... 2134s Selecting previously unselected package libjffi-jni:armhf. 2134s Preparing to unpack .../120-libjffi-jni_1.3.13+ds-1_armhf.deb ... 2134s Unpacking libjffi-jni:armhf (1.3.13+ds-1) ... 2134s Selecting previously unselected package libjffi-java. 2134s Preparing to unpack .../121-libjffi-java_1.3.13+ds-1_all.deb ... 2134s Unpacking libjffi-java (1.3.13+ds-1) ... 2134s Selecting previously unselected package libjnr-x86asm-java. 2134s Preparing to unpack .../122-libjnr-x86asm-java_1.0.2-6_all.deb ... 2134s Unpacking libjnr-x86asm-java (1.0.2-6) ... 2134s Selecting previously unselected package libjnr-ffi-java. 2134s Preparing to unpack .../123-libjnr-ffi-java_2.2.15-2_all.deb ... 2134s Unpacking libjnr-ffi-java (2.2.15-2) ... 2134s Selecting previously unselected package libjnr-enxio-java. 2134s Preparing to unpack .../124-libjnr-enxio-java_0.32.16-1_all.deb ... 2134s Unpacking libjnr-enxio-java (0.32.16-1) ... 2134s Selecting previously unselected package libjnr-posix-java. 2135s Preparing to unpack .../125-libjnr-posix-java_3.1.18-1_all.deb ... 2135s Unpacking libjnr-posix-java (3.1.18-1) ... 2135s Selecting previously unselected package libjnr-unixsocket-java. 2135s Preparing to unpack .../126-libjnr-unixsocket-java_0.38.21-2_all.deb ... 2135s Unpacking libjnr-unixsocket-java (0.38.21-2) ... 2135s Selecting previously unselected package libactivation-java. 2135s Preparing to unpack .../127-libactivation-java_1.2.0-2_all.deb ... 2135s Unpacking libactivation-java (1.2.0-2) ... 2135s Selecting previously unselected package libmail-java. 2135s Preparing to unpack .../128-libmail-java_1.6.5-3_all.deb ... 2135s Unpacking libmail-java (1.6.5-3) ... 2135s Selecting previously unselected package libcommons-logging-java. 2135s Preparing to unpack .../129-libcommons-logging-java_1.3.0-1ubuntu1_all.deb ... 2135s Unpacking libcommons-logging-java (1.3.0-1ubuntu1) ... 2135s Selecting previously unselected package libjaxb-api-java. 2135s Preparing to unpack .../130-libjaxb-api-java_2.3.1-1_all.deb ... 2135s Unpacking libjaxb-api-java (2.3.1-1) ... 2135s Selecting previously unselected package libspring-core-java. 2135s Preparing to unpack .../131-libspring-core-java_4.3.30-2ubuntu1_all.deb ... 2135s Unpacking libspring-core-java (4.3.30-2ubuntu1) ... 2135s Selecting previously unselected package libspring-beans-java. 2135s Preparing to unpack .../132-libspring-beans-java_4.3.30-2ubuntu1_all.deb ... 2135s Unpacking libspring-beans-java (4.3.30-2ubuntu1) ... 2135s Selecting previously unselected package libtaglibs-standard-spec-java. 2135s Preparing to unpack .../133-libtaglibs-standard-spec-java_1.2.5-3_all.deb ... 2135s Unpacking libtaglibs-standard-spec-java (1.2.5-3) ... 2135s Selecting previously unselected package libtaglibs-standard-impl-java. 2135s Preparing to unpack .../134-libtaglibs-standard-impl-java_1.2.5-3_all.deb ... 2135s Unpacking libtaglibs-standard-impl-java (1.2.5-3) ... 2135s Selecting previously unselected package libeclipse-jdt-core-compiler-batch-java. 2135s Preparing to unpack .../135-libeclipse-jdt-core-compiler-batch-java_3.35.0+eclipse4.29-2_all.deb ... 2135s Unpacking libeclipse-jdt-core-compiler-batch-java (3.35.0+eclipse4.29-2) ... 2135s Selecting previously unselected package libeclipse-jdt-core-java. 2135s Preparing to unpack .../136-libeclipse-jdt-core-java_3.35.0+eclipse4.29-2_all.deb ... 2135s Unpacking libeclipse-jdt-core-java (3.35.0+eclipse4.29-2) ... 2135s Selecting previously unselected package libtomcat9-java. 2135s Preparing to unpack .../137-libtomcat9-java_9.0.70-2ubuntu1.1_all.deb ... 2135s Unpacking libtomcat9-java (9.0.70-2ubuntu1.1) ... 2135s Selecting previously unselected package libjetty9-extra-java. 2135s Preparing to unpack .../138-libjetty9-extra-java_9.4.57-1_all.deb ... 2135s Unpacking libjetty9-extra-java (9.4.57-1) ... 2135s Selecting previously unselected package libjavaparser-java. 2135s Preparing to unpack .../139-libjavaparser-java_3.26.1-1_all.deb ... 2135s Unpacking libjavaparser-java (3.26.1-1) ... 2135s Selecting previously unselected package libjctools-java. 2135s Preparing to unpack .../140-libjctools-java_4.0.5+dfsg-1_all.deb ... 2135s Unpacking libjctools-java (4.0.5+dfsg-1) ... 2135s Selecting previously unselected package libnetty-java. 2135s Preparing to unpack .../141-libnetty-java_1%3a4.1.48-10_all.deb ... 2135s Unpacking libnetty-java (1:4.1.48-10) ... 2135s Selecting previously unselected package libslf4j-java. 2135s Preparing to unpack .../142-libslf4j-java_1.7.32-1_all.deb ... 2135s Unpacking libslf4j-java (1.7.32-1) ... 2136s Selecting previously unselected package libsnappy1v5:armhf. 2136s Preparing to unpack .../143-libsnappy1v5_1.2.1-1_armhf.deb ... 2136s Unpacking libsnappy1v5:armhf (1.2.1-1) ... 2136s Selecting previously unselected package libsnappy-jni. 2136s Preparing to unpack .../144-libsnappy-jni_1.1.10.7-1_armhf.deb ... 2136s Unpacking libsnappy-jni (1.1.10.7-1) ... 2136s Selecting previously unselected package libsnappy-java. 2136s Preparing to unpack .../145-libsnappy-java_1.1.10.7-1_all.deb ... 2136s Unpacking libsnappy-java (1.1.10.7-1) ... 2136s Selecting previously unselected package libapr1t64:armhf. 2136s Preparing to unpack .../146-libapr1t64_1.7.5-1_armhf.deb ... 2136s Unpacking libapr1t64:armhf (1.7.5-1) ... 2136s Selecting previously unselected package libnetty-tcnative-jni. 2136s Preparing to unpack .../147-libnetty-tcnative-jni_2.0.28-1build4_armhf.deb ... 2136s Unpacking libnetty-tcnative-jni (2.0.28-1build4) ... 2136s Selecting previously unselected package libnetty-tcnative-java. 2136s Preparing to unpack .../148-libnetty-tcnative-java_2.0.28-1build4_all.deb ... 2136s Unpacking libnetty-tcnative-java (2.0.28-1build4) ... 2136s Selecting previously unselected package liblog4j1.2-java. 2136s Preparing to unpack .../149-liblog4j1.2-java_1.2.17-11_all.deb ... 2136s Unpacking liblog4j1.2-java (1.2.17-11) ... 2136s Selecting previously unselected package libzookeeper-java. 2136s Preparing to unpack .../150-libzookeeper-java_3.9.3-1build1_all.deb ... 2136s Unpacking libzookeeper-java (3.9.3-1build1) ... 2136s Selecting previously unselected package zookeeper. 2136s Preparing to unpack .../151-zookeeper_3.9.3-1build1_all.deb ... 2136s Unpacking zookeeper (3.9.3-1build1) ... 2136s Selecting previously unselected package zookeeperd. 2136s Preparing to unpack .../152-zookeeperd_3.9.3-1build1_all.deb ... 2136s Unpacking zookeeperd (3.9.3-1build1) ... 2136s Selecting previously unselected package fonts-font-awesome. 2136s Preparing to unpack .../153-fonts-font-awesome_5.0.10+really4.7.0~dfsg-4.1_all.deb ... 2136s Unpacking fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 2136s Selecting previously unselected package libcares2:armhf. 2136s Preparing to unpack .../154-libcares2_1.34.4-2.1_armhf.deb ... 2136s Unpacking libcares2:armhf (1.34.4-2.1) ... 2136s Selecting previously unselected package libev4t64:armhf. 2136s Preparing to unpack .../155-libev4t64_1%3a4.33-2.1build1_armhf.deb ... 2136s Unpacking libev4t64:armhf (1:4.33-2.1build1) ... 2136s Selecting previously unselected package libjs-jquery. 2136s Preparing to unpack .../156-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 2136s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 2136s Selecting previously unselected package libjs-underscore. 2136s Preparing to unpack .../157-libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ... 2136s Unpacking libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 2136s Selecting previously unselected package libjs-sphinxdoc. 2136s Preparing to unpack .../158-libjs-sphinxdoc_8.1.3-5_all.deb ... 2136s Unpacking libjs-sphinxdoc (8.1.3-5) ... 2136s Selecting previously unselected package libllvm20:armhf. 2136s Preparing to unpack .../159-libllvm20_1%3a20.1.2-0ubuntu1_armhf.deb ... 2136s Unpacking libllvm20:armhf (1:20.1.2-0ubuntu1) ... 2137s Selecting previously unselected package libpq5:armhf. 2137s Preparing to unpack .../160-libpq5_17.4-1_armhf.deb ... 2137s Unpacking libpq5:armhf (17.4-1) ... 2137s Selecting previously unselected package libtime-duration-perl. 2137s Preparing to unpack .../161-libtime-duration-perl_1.21-2_all.deb ... 2137s Unpacking libtime-duration-perl (1.21-2) ... 2137s Selecting previously unselected package libtimedate-perl. 2138s Preparing to unpack .../162-libtimedate-perl_2.3300-2_all.deb ... 2138s Unpacking libtimedate-perl (2.3300-2) ... 2138s Selecting previously unselected package libxslt1.1:armhf. 2138s Preparing to unpack .../163-libxslt1.1_1.1.39-0exp1ubuntu4_armhf.deb ... 2138s Unpacking libxslt1.1:armhf (1.1.39-0exp1ubuntu4) ... 2138s Selecting previously unselected package moreutils. 2138s Preparing to unpack .../164-moreutils_0.69-1_armhf.deb ... 2138s Unpacking moreutils (0.69-1) ... 2138s Selecting previously unselected package python3-click. 2138s Preparing to unpack .../165-python3-click_8.2.0+0.really.8.1.8-1_all.deb ... 2138s Unpacking python3-click (8.2.0+0.really.8.1.8-1) ... 2138s Selecting previously unselected package python3-wcwidth. 2138s Preparing to unpack .../166-python3-wcwidth_0.2.13+dfsg1-1_all.deb ... 2138s Unpacking python3-wcwidth (0.2.13+dfsg1-1) ... 2138s Selecting previously unselected package python3-prettytable. 2138s Preparing to unpack .../167-python3-prettytable_3.12.0-1_all.deb ... 2138s Unpacking python3-prettytable (3.12.0-1) ... 2138s Selecting previously unselected package python3-psutil. 2138s Preparing to unpack .../168-python3-psutil_7.0.0-2_armhf.deb ... 2138s Unpacking python3-psutil (7.0.0-2) ... 2138s Selecting previously unselected package python3-ydiff. 2138s Preparing to unpack .../169-python3-ydiff_1.4.2-1_all.deb ... 2138s Unpacking python3-ydiff (1.4.2-1) ... 2138s Selecting previously unselected package python3-psycopg2. 2138s Preparing to unpack .../170-python3-psycopg2_2.9.10-1build1_armhf.deb ... 2138s Unpacking python3-psycopg2 (2.9.10-1build1) ... 2138s Selecting previously unselected package python3-greenlet. 2138s Preparing to unpack .../171-python3-greenlet_3.1.0-1build1_armhf.deb ... 2138s Unpacking python3-greenlet (3.1.0-1build1) ... 2138s Selecting previously unselected package python3-dnspython. 2138s Preparing to unpack .../172-python3-dnspython_2.7.0-1ubuntu1_all.deb ... 2138s Unpacking python3-dnspython (2.7.0-1ubuntu1) ... 2138s Selecting previously unselected package python3-eventlet. 2138s Preparing to unpack .../173-python3-eventlet_0.39.0-0ubuntu1_all.deb ... 2138s Unpacking python3-eventlet (0.39.0-0ubuntu1) ... 2138s Selecting previously unselected package python3-zope.event. 2138s Preparing to unpack .../174-python3-zope.event_5.0-0.1_all.deb ... 2138s Unpacking python3-zope.event (5.0-0.1) ... 2138s Selecting previously unselected package python3-zope.interface. 2138s Preparing to unpack .../175-python3-zope.interface_7.2-1build1_armhf.deb ... 2138s Unpacking python3-zope.interface (7.2-1build1) ... 2138s Selecting previously unselected package python3-gevent. 2138s Preparing to unpack .../176-python3-gevent_24.11.1-1build1_armhf.deb ... 2138s Unpacking python3-gevent (24.11.1-1build1) ... 2138s Selecting previously unselected package python3-kerberos. 2138s Preparing to unpack .../177-python3-kerberos_1.1.14-3.1build11_armhf.deb ... 2138s Unpacking python3-kerberos (1.1.14-3.1build11) ... 2138s Selecting previously unselected package python3-pure-sasl. 2138s Preparing to unpack .../178-python3-pure-sasl_0.5.1+dfsg1-5_all.deb ... 2138s Unpacking python3-pure-sasl (0.5.1+dfsg1-5) ... 2138s Selecting previously unselected package python3-kazoo. 2138s Preparing to unpack .../179-python3-kazoo_2.9.0-2_all.deb ... 2138s Unpacking python3-kazoo (2.9.0-2) ... 2138s Selecting previously unselected package patroni. 2138s Preparing to unpack .../180-patroni_4.0.4-7_all.deb ... 2138s Unpacking patroni (4.0.4-7) ... 2138s Selecting previously unselected package sphinx-rtd-theme-common. 2138s Preparing to unpack .../181-sphinx-rtd-theme-common_3.0.2+dfsg-2_all.deb ... 2138s Unpacking sphinx-rtd-theme-common (3.0.2+dfsg-2) ... 2138s Selecting previously unselected package patroni-doc. 2138s Preparing to unpack .../182-patroni-doc_4.0.4-7_all.deb ... 2138s Unpacking patroni-doc (4.0.4-7) ... 2139s Selecting previously unselected package postgresql-client-17. 2139s Preparing to unpack .../183-postgresql-client-17_17.4-1_armhf.deb ... 2139s Unpacking postgresql-client-17 (17.4-1) ... 2139s Selecting previously unselected package postgresql-17. 2139s Preparing to unpack .../184-postgresql-17_17.4-1_armhf.deb ... 2139s Unpacking postgresql-17 (17.4-1) ... 2139s Selecting previously unselected package postgresql. 2139s Preparing to unpack .../185-postgresql_17+274_all.deb ... 2139s Unpacking postgresql (17+274) ... 2139s Selecting previously unselected package python3-parse. 2139s Preparing to unpack .../186-python3-parse_1.20.2-1_all.deb ... 2139s Unpacking python3-parse (1.20.2-1) ... 2139s Selecting previously unselected package python3-parse-type. 2139s Preparing to unpack .../187-python3-parse-type_0.6.4-2_all.deb ... 2139s Unpacking python3-parse-type (0.6.4-2) ... 2139s Selecting previously unselected package python3-behave. 2139s Preparing to unpack .../188-python3-behave_1.2.6-6_all.deb ... 2139s Unpacking python3-behave (1.2.6-6) ... 2139s Selecting previously unselected package python3-coverage. 2139s Preparing to unpack .../189-python3-coverage_7.6.0+dfsg1-2build1_armhf.deb ... 2139s Unpacking python3-coverage (7.6.0+dfsg1-2build1) ... 2139s Setting up postgresql-client-common (274) ... 2139s Setting up libgraphite2-3:armhf (1.3.14-2ubuntu1) ... 2139s Setting up libxcb-dri3-0:armhf (1.17.0-2) ... 2139s Setting up liblcms2-2:armhf (2.16-2) ... 2139s Setting up libtaglibs-standard-spec-java (1.2.5-3) ... 2139s Setting up libpixman-1-0:armhf (0.44.0-3) ... 2139s Setting up libev4t64:armhf (1:4.33-2.1build1) ... 2139s Setting up libjackson2-annotations-java (2.14.0-1) ... 2139s Setting up libllvm19:armhf (1:19.1.7-3ubuntu1) ... 2139s Setting up libsharpyuv0:armhf (1.5.0-0.1) ... 2139s Setting up libwayland-server0:armhf (1.23.1-3) ... 2139s Setting up libx11-xcb1:armhf (2:1.8.10-2) ... 2139s Setting up libslf4j-java (1.7.32-1) ... 2139s Setting up fonts-lato (2.015-1) ... 2139s Setting up libeclipse-jdt-core-compiler-batch-java (3.35.0+eclipse4.29-2) ... 2139s Setting up libxdamage1:armhf (1:1.1.6-1build1) ... 2139s Setting up libxcb-xfixes0:armhf (1.17.0-2) ... 2139s Setting up libjavaparser-java (3.26.1-1) ... 2140s Setting up liblerc4:armhf (4.0.0+ds-5ubuntu1) ... 2140s Setting up libjsr305-java (0.1~+svn49-12) ... 2140s Setting up hicolor-icon-theme (0.18-2) ... 2140s Setting up libxi6:armhf (2:1.8.2-1) ... 2140s Setting up java-common (0.76) ... 2140s Setting up libxrender1:armhf (1:0.9.10-1.1build1) ... 2140s Setting up libdatrie1:armhf (0.2.13-3build1) ... 2140s Setting up libcommons-cli-java (1.6.0-1) ... 2140s Setting up libio-pty-perl (1:1.20-1build3) ... 2140s Setting up libxcb-render0:armhf (1.17.0-2) ... 2140s Setting up python3-zope.event (5.0-0.1) ... 2140s Setting up python3-zope.interface (7.2-1build1) ... 2140s Setting up libglvnd0:armhf (1.7.0-1build1) ... 2140s Setting up libxcb-glx0:armhf (1.17.0-2) ... 2140s Setting up libgdk-pixbuf2.0-common (2.42.12+dfsg-2) ... 2140s Setting up python3-ydiff (1.4.2-1) ... 2140s Setting up libasm-java (9.7.1-1) ... 2140s Setting up x11-common (1:7.7+23ubuntu4) ... 2140s Setting up libpq5:armhf (17.4-1) ... 2141s Setting up libdeflate0:armhf (1.23-1) ... 2141s Setting up python3-kerberos (1.1.14-3.1build11) ... 2141s Setting up liblog4j1.2-java (1.2.17-11) ... 2141s Setting up libel-api-java (3.0.0-3) ... 2141s Setting up python3-coverage (7.6.0+dfsg1-2build1) ... 2141s Setting up libxcb-shm0:armhf (1.17.0-2) ... 2141s Setting up python3-click (8.2.0+0.really.8.1.8-1) ... 2141s Setting up libjnr-x86asm-java (1.0.2-6) ... 2141s Setting up libjbig0:armhf (2.1-6.1ubuntu2) ... 2141s Setting up libcolord2:armhf (1.4.7-3) ... 2141s Setting up python3-psutil (7.0.0-2) ... 2141s Setting up libeclipse-jdt-core-java (3.35.0+eclipse4.29-2) ... 2141s Setting up libxxf86vm1:armhf (1:1.1.4-1build4) ... 2141s Setting up libsnappy1v5:armhf (1.2.1-1) ... 2141s Setting up libxcb-present0:armhf (1.17.0-2) ... 2141s Setting up libtaglibs-standard-impl-java (1.2.5-3) ... 2141s Setting up libdconf1:armhf (0.40.0-5) ... 2141s Setting up libjctools-java (4.0.5+dfsg-1) ... 2141s Setting up libdropwizard-metrics-java (3.2.6-1) ... 2141s Setting up libasound2-data (1.2.13-1build1) ... 2141s Setting up libasound2t64:armhf (1.2.13-1build1) ... 2141s Setting up python3-wcwidth (0.2.13+dfsg1-1) ... 2141s Setting up libfreetype6:armhf (2.13.3+dfsg-1) ... 2141s Setting up libfindbugs-annotations-java (3.1.0~preview2-4) ... 2141s Setting up libepoxy0:armhf (1.5.10-2) ... 2141s Setting up ssl-cert (1.1.3ubuntu1) ... 2142s Created symlink '/etc/systemd/system/multi-user.target.wants/ssl-cert.service' → '/usr/lib/systemd/system/ssl-cert.service'. 2142s Setting up libxfixes3:armhf (1:6.0.0-2build1) ... 2142s Setting up libxcb-sync1:armhf (1.17.0-2) ... 2142s Setting up libapache-pom-java (33-2) ... 2142s Setting up libavahi-common-data:armhf (0.8-16ubuntu2) ... 2142s Setting up libatinject-jsr330-api-java (1.0+ds1-6) ... 2142s Setting up libatspi2.0-0t64:armhf (2.56.1-1) ... 2142s Setting up libwebsocket-api-java (1.1-2) ... 2142s Setting up python3-greenlet (3.1.0-1build1) ... 2142s Setting up libxinerama1:armhf (2:1.1.4-3build1) ... 2142s Setting up fonts-dejavu-mono (2.37-8) ... 2142s Setting up libcares2:armhf (1.34.4-2.1) ... 2142s Setting up libxrandr2:armhf (2:1.5.4-1) ... 2142s Setting up libllvm20:armhf (1:20.1.2-0ubuntu1) ... 2142s Setting up python3-psycopg2 (2.9.10-1build1) ... 2143s Setting up fonts-dejavu-core (2.37-8) ... 2143s Setting up libipc-run-perl (20231003.0-2) ... 2143s Setting up libpcsclite1:armhf (2.3.1-1) ... 2143s Setting up libjpeg-turbo8:armhf (2.1.5-3ubuntu2) ... 2143s Setting up libactivation-java (1.2.0-2) ... 2143s Setting up libtomcat9-java (9.0.70-2ubuntu1.1) ... 2143s Setting up libhamcrest-java (2.2-2) ... 2143s Setting up libjsp-api-java (2.3.4-3) ... 2143s Setting up libvulkan1:armhf (1.4.304.0-1) ... 2143s Setting up libtime-duration-perl (1.21-2) ... 2143s Setting up libwebp7:armhf (1.5.0-0.1) ... 2143s Setting up libtimedate-perl (2.3300-2) ... 2143s Setting up libgif7:armhf (5.2.2-1ubuntu2) ... 2143s Setting up libxshmfence1:armhf (1.3-1build5) ... 2143s Setting up libmail-java (1.6.5-3) ... 2143s Setting up at-spi2-common (2.56.1-1) ... 2143s Setting up python3-dnspython (2.7.0-1ubuntu1) ... 2143s Setting up libnetty-java (1:4.1.48-10) ... 2143s Setting up libxcb-randr0:armhf (1.17.0-2) ... 2143s Setting up python3-parse (1.20.2-1) ... 2143s Setting up libapr1t64:armhf (1.7.5-1) ... 2143s Setting up libjson-perl (4.10000-1) ... 2143s Setting up libxslt1.1:armhf (1.1.39-0exp1ubuntu4) ... 2143s Setting up libservlet-api-java (4.0.1-2) ... 2143s Setting up libjackson2-core-java (2.14.1-1) ... 2143s Setting up libharfbuzz0b:armhf (10.2.0-1) ... 2143s Setting up libthai-data (0.1.29-2build1) ... 2143s Setting up libjffi-jni:armhf (1.3.13+ds-1) ... 2143s Setting up libwayland-egl1:armhf (1.23.1-3) ... 2143s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 2143s Setting up ca-certificates-java (20240118) ... 2143s No JRE found. Skipping Java certificates setup. 2143s Setting up python3-prettytable (3.12.0-1) ... 2143s Setting up libsnappy-jni (1.1.10.7-1) ... 2143s Setting up libxcomposite1:armhf (1:0.4.6-1) ... 2143s Setting up fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 2143s Setting up sphinx-rtd-theme-common (3.0.2+dfsg-2) ... 2143s Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 2143s Setting up postgresql-common-dev (274) ... 2143s Setting up libjnr-constants-java (0.10.4-2) ... 2143s Setting up libwayland-client0:armhf (1.23.1-3) ... 2143s Setting up libjpeg8:armhf (8c-2ubuntu11) ... 2143s Setting up libjaxb-api-java (2.3.1-1) ... 2143s Setting up libjffi-java (1.3.13+ds-1) ... 2143s Setting up mesa-libgallium:armhf (25.0.3-1ubuntu2) ... 2143s Setting up libjetty9-java (9.4.57-1) ... 2143s Setting up moreutils (0.69-1) ... 2143s Setting up libatk1.0-0t64:armhf (2.56.1-1) ... 2143s Setting up openjdk-21-jre-headless:armhf (21.0.7~8ea-1) ... 2143s update-alternatives: using /usr/lib/jvm/java-21-openjdk-armhf/bin/java to provide /usr/bin/java (java) in auto mode 2143s update-alternatives: using /usr/lib/jvm/java-21-openjdk-armhf/bin/jpackage to provide /usr/bin/jpackage (jpackage) in auto mode 2143s update-alternatives: using /usr/lib/jvm/java-21-openjdk-armhf/bin/keytool to provide /usr/bin/keytool (keytool) in auto mode 2143s update-alternatives: using /usr/lib/jvm/java-21-openjdk-armhf/bin/rmiregistry to provide /usr/bin/rmiregistry (rmiregistry) in auto mode 2143s update-alternatives: using /usr/lib/jvm/java-21-openjdk-armhf/lib/jexec to provide /usr/bin/jexec (jexec) in auto mode 2143s Setting up python3-pure-sasl (0.5.1+dfsg1-5) ... 2144s Setting up libgbm1:armhf (25.0.3-1ubuntu2) ... 2144s Setting up postgresql-client-17 (17.4-1) ... 2144s 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 2145s Setting up fontconfig-config (2.15.0-2.2ubuntu1) ... 2145s Setting up libxtst6:armhf (2:1.2.5-1) ... 2145s Setting up libxcursor1:armhf (1:1.2.3-1) ... 2145s Setting up libgl1-mesa-dri:armhf (25.0.3-1ubuntu2) ... 2145s Setting up libcommons-parent-java (56-1) ... 2145s Setting up libavahi-common3:armhf (0.8-16ubuntu2) ... 2145s Setting up libcommons-logging-java (1.3.0-1ubuntu1) ... 2145s Setting up dconf-service (0.40.0-5) ... 2145s Setting up python3-gevent (24.11.1-1build1) ... 2145s Setting up libjackson2-databind-java (2.14.0+ds-1) ... 2145s Setting up libthai0:armhf (0.1.29-2build1) ... 2145s Setting up python3-parse-type (0.6.4-2) ... 2145s Setting up python3-eventlet (0.39.0-0ubuntu1) ... 2146s Setting up libnetty-tcnative-jni (2.0.28-1build4) ... 2146s Setting up python3-kazoo (2.9.0-2) ... 2146s Setting up postgresql-common (274) ... 2147s Creating config file /etc/postgresql-common/createcluster.conf with new version 2147s Building PostgreSQL dictionaries from installed myspell/hunspell packages... 2147s Removing obsolete dictionary files: 2148s Created symlink '/etc/systemd/system/multi-user.target.wants/postgresql.service' → '/usr/lib/systemd/system/postgresql.service'. 2148s Setting up libjs-sphinxdoc (8.1.3-5) ... 2148s Setting up libtiff6:armhf (4.7.0-3ubuntu1) ... 2148s Setting up libwayland-cursor0:armhf (1.23.1-3) ... 2148s Setting up libgdk-pixbuf-2.0-0:armhf (2.42.12+dfsg-2) ... 2148s Setting up python3-behave (1.2.6-6) ... 2148s /usr/lib/python3/dist-packages/behave/formatter/ansi_escapes.py:57: SyntaxWarning: invalid escape sequence '\[' 2148s _ANSI_ESCAPE_PATTERN = re.compile(u"\x1b\[\d+[mA]", re.UNICODE) 2148s /usr/lib/python3/dist-packages/behave/matchers.py:284: SyntaxWarning: invalid escape sequence '\d' 2148s @parse.with_pattern(r"\d+") 2148s Setting up libsnappy-java (1.1.10.7-1) ... 2148s Setting up libfontconfig1:armhf (2.15.0-2.2ubuntu1) ... 2148s Setting up patroni (4.0.4-7) ... 2148s Created symlink '/etc/systemd/system/multi-user.target.wants/patroni.service' → '/usr/lib/systemd/system/patroni.service'. 2149s Setting up libavahi-client3:armhf (0.8-16ubuntu2) ... 2149s Setting up libjnr-ffi-java (2.2.15-2) ... 2149s Setting up libatk-bridge2.0-0t64:armhf (2.56.1-1) ... 2149s Setting up gtk-update-icon-cache (4.18.4+ds-1) ... 2149s Setting up fontconfig (2.15.0-2.2ubuntu1) ... 2154s Regenerating fonts cache... done. 2154s Setting up postgresql-17 (17.4-1) ... 2154s Creating new PostgreSQL cluster 17/main ... 2154s /usr/lib/postgresql/17/bin/initdb -D /var/lib/postgresql/17/main --auth-local peer --auth-host scram-sha-256 --no-instructions 2154s The files belonging to this database system will be owned by user "postgres". 2154s This user must also own the server process. 2154s 2154s The database cluster will be initialized with locale "C.UTF-8". 2154s The default database encoding has accordingly been set to "UTF8". 2154s The default text search configuration will be set to "english". 2154s 2154s Data page checksums are disabled. 2154s 2154s fixing permissions on existing directory /var/lib/postgresql/17/main ... ok 2154s creating subdirectories ... ok 2154s selecting dynamic shared memory implementation ... posix 2154s selecting default "max_connections" ... 100 2154s selecting default "shared_buffers" ... 128MB 2154s selecting default time zone ... Etc/UTC 2154s creating configuration files ... ok 2154s running bootstrap script ... ok 2154s performing post-bootstrap initialization ... ok 2154s syncing data to disk ... ok 2156s Setting up libglx-mesa0:armhf (25.0.3-1ubuntu2) ... 2156s Setting up libglx0:armhf (1.7.0-1build1) ... 2156s Setting up libspring-core-java (4.3.30-2ubuntu1) ... 2156s Setting up dconf-gsettings-backend:armhf (0.40.0-5) ... 2156s Setting up libcommons-io-java (2.18.0-1) ... 2156s Setting up patroni-doc (4.0.4-7) ... 2156s Setting up libpango-1.0-0:armhf (1.56.3-1) ... 2156s Setting up libcairo2:armhf (1.18.4-1) ... 2156s Setting up libjnr-enxio-java (0.32.16-1) ... 2156s Setting up libgl1:armhf (1.7.0-1build1) ... 2156s Setting up adwaita-icon-theme (48.0-1) ... 2156s update-alternatives: using /usr/share/icons/Adwaita/cursor.theme to provide /usr/share/icons/default/index.theme (x-cursor-theme) in auto mode 2156s Setting up libcairo-gobject2:armhf (1.18.4-1) ... 2156s Setting up postgresql (17+274) ... 2157s Setting up libpangoft2-1.0-0:armhf (1.56.3-1) ... 2157s Setting up libcups2t64:armhf (2.4.12-0ubuntu1) ... 2157s Setting up libgtk-3-common (3.24.49-2ubuntu1) ... 2157s Setting up libjnr-posix-java (3.1.18-1) ... 2157s Setting up libpangocairo-1.0-0:armhf (1.56.3-1) ... 2157s Setting up libspring-beans-java (4.3.30-2ubuntu1) ... 2157s Setting up libjnr-unixsocket-java (0.38.21-2) ... 2157s Setting up libjetty9-extra-java (9.4.57-1) ... 2157s Setting up libguava-java (32.0.1-1) ... 2157s Setting up liberror-prone-java (2.18.0-1) ... 2157s Processing triggers for libc-bin (2.41-6ubuntu1) ... 2157s Processing triggers for man-db (2.13.0-1) ... 2157s Processing triggers for libglib2.0-0t64:armhf (2.84.1-1) ... 2157s Setting up libgtk-3-0t64:armhf (3.24.49-2ubuntu1) ... 2158s Processing triggers for ca-certificates-java (20240118) ... 2158s Adding debian:ACCVRAIZ1.pem 2158s Adding debian:AC_RAIZ_FNMT-RCM.pem 2158s Adding debian:AC_RAIZ_FNMT-RCM_SERVIDORES_SEGUROS.pem 2158s Adding debian:ANF_Secure_Server_Root_CA.pem 2158s Adding debian:Actalis_Authentication_Root_CA.pem 2158s Adding debian:AffirmTrust_Commercial.pem 2158s Adding debian:AffirmTrust_Networking.pem 2158s Adding debian:AffirmTrust_Premium.pem 2158s Adding debian:AffirmTrust_Premium_ECC.pem 2158s Adding debian:Amazon_Root_CA_1.pem 2158s Adding debian:Amazon_Root_CA_2.pem 2158s Adding debian:Amazon_Root_CA_3.pem 2158s Adding debian:Amazon_Root_CA_4.pem 2158s Adding debian:Atos_TrustedRoot_2011.pem 2158s Adding debian:Atos_TrustedRoot_Root_CA_ECC_TLS_2021.pem 2158s Adding debian:Atos_TrustedRoot_Root_CA_RSA_TLS_2021.pem 2158s Adding debian:Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.pem 2158s Adding debian:BJCA_Global_Root_CA1.pem 2158s Adding debian:BJCA_Global_Root_CA2.pem 2158s Adding debian:Baltimore_CyberTrust_Root.pem 2158s Adding debian:Buypass_Class_2_Root_CA.pem 2158s Adding debian:Buypass_Class_3_Root_CA.pem 2158s Adding debian:CA_Disig_Root_R2.pem 2158s Adding debian:CFCA_EV_ROOT.pem 2158s Adding debian:COMODO_Certification_Authority.pem 2158s Adding debian:COMODO_ECC_Certification_Authority.pem 2158s Adding debian:COMODO_RSA_Certification_Authority.pem 2158s Adding debian:Certainly_Root_E1.pem 2158s Adding debian:Certainly_Root_R1.pem 2158s Adding debian:Certigna.pem 2158s Adding debian:Certigna_Root_CA.pem 2158s Adding debian:Certum_EC-384_CA.pem 2158s Adding debian:Certum_Trusted_Network_CA.pem 2158s Adding debian:Certum_Trusted_Network_CA_2.pem 2158s Adding debian:Certum_Trusted_Root_CA.pem 2158s Adding debian:CommScope_Public_Trust_ECC_Root-01.pem 2158s Adding debian:CommScope_Public_Trust_ECC_Root-02.pem 2158s Adding debian:CommScope_Public_Trust_RSA_Root-01.pem 2158s Adding debian:CommScope_Public_Trust_RSA_Root-02.pem 2158s Adding debian:Comodo_AAA_Services_root.pem 2158s Adding debian:D-TRUST_BR_Root_CA_1_2020.pem 2158s Adding debian:D-TRUST_EV_Root_CA_1_2020.pem 2158s Adding debian:D-TRUST_Root_Class_3_CA_2_2009.pem 2158s Adding debian:D-TRUST_Root_Class_3_CA_2_EV_2009.pem 2158s Adding debian:DigiCert_Assured_ID_Root_CA.pem 2158s Adding debian:DigiCert_Assured_ID_Root_G2.pem 2158s Adding debian:DigiCert_Assured_ID_Root_G3.pem 2158s Adding debian:DigiCert_Global_Root_CA.pem 2158s Adding debian:DigiCert_Global_Root_G2.pem 2158s Adding debian:DigiCert_Global_Root_G3.pem 2158s Adding debian:DigiCert_High_Assurance_EV_Root_CA.pem 2158s Adding debian:DigiCert_TLS_ECC_P384_Root_G5.pem 2158s Adding debian:DigiCert_TLS_RSA4096_Root_G5.pem 2158s Adding debian:DigiCert_Trusted_Root_G4.pem 2158s Adding debian:Entrust.net_Premium_2048_Secure_Server_CA.pem 2158s Adding debian:Entrust_Root_Certification_Authority.pem 2158s Adding debian:Entrust_Root_Certification_Authority_-_EC1.pem 2158s Adding debian:Entrust_Root_Certification_Authority_-_G2.pem 2158s Adding debian:Entrust_Root_Certification_Authority_-_G4.pem 2158s Adding debian:FIRMAPROFESIONAL_CA_ROOT-A_WEB.pem 2158s Adding debian:GDCA_TrustAUTH_R5_ROOT.pem 2158s Adding debian:GLOBALTRUST_2020.pem 2158s Adding debian:GTS_Root_R1.pem 2158s Adding debian:GTS_Root_R2.pem 2158s Adding debian:GTS_Root_R3.pem 2158s Adding debian:GTS_Root_R4.pem 2158s Adding debian:GlobalSign_ECC_Root_CA_-_R4.pem 2158s Adding debian:GlobalSign_ECC_Root_CA_-_R5.pem 2158s Adding debian:GlobalSign_Root_CA.pem 2158s Adding debian:GlobalSign_Root_CA_-_R3.pem 2158s Adding debian:GlobalSign_Root_CA_-_R6.pem 2158s Adding debian:GlobalSign_Root_E46.pem 2158s Adding debian:GlobalSign_Root_R46.pem 2158s Adding debian:Go_Daddy_Class_2_CA.pem 2158s Adding debian:Go_Daddy_Root_Certificate_Authority_-_G2.pem 2158s Adding debian:HARICA_TLS_ECC_Root_CA_2021.pem 2158s Adding debian:HARICA_TLS_RSA_Root_CA_2021.pem 2158s Adding debian:Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.pem 2158s Adding debian:Hellenic_Academic_and_Research_Institutions_RootCA_2015.pem 2158s Adding debian:HiPKI_Root_CA_-_G1.pem 2158s Adding debian:Hongkong_Post_Root_CA_3.pem 2158s Adding debian:ISRG_Root_X1.pem 2158s Adding debian:ISRG_Root_X2.pem 2158s Adding debian:IdenTrust_Commercial_Root_CA_1.pem 2158s Adding debian:IdenTrust_Public_Sector_Root_CA_1.pem 2158s Adding debian:Izenpe.com.pem 2158s Adding debian:Microsec_e-Szigno_Root_CA_2009.pem 2158s Adding debian:Microsoft_ECC_Root_Certificate_Authority_2017.pem 2158s Adding debian:Microsoft_RSA_Root_Certificate_Authority_2017.pem 2158s Adding debian:NAVER_Global_Root_Certification_Authority.pem 2158s Adding debian:NetLock_Arany_=Class_Gold=_Főtanúsítvány.pem 2158s Adding debian:OISTE_WISeKey_Global_Root_GB_CA.pem 2158s Adding debian:OISTE_WISeKey_Global_Root_GC_CA.pem 2158s Adding debian:QuoVadis_Root_CA_1_G3.pem 2158s Adding debian:QuoVadis_Root_CA_2.pem 2158s Adding debian:QuoVadis_Root_CA_2_G3.pem 2158s Adding debian:QuoVadis_Root_CA_3.pem 2158s Adding debian:QuoVadis_Root_CA_3_G3.pem 2158s Adding debian:SSL.com_EV_Root_Certification_Authority_ECC.pem 2158s Adding debian:SSL.com_EV_Root_Certification_Authority_RSA_R2.pem 2158s Adding debian:SSL.com_Root_Certification_Authority_ECC.pem 2158s Adding debian:SSL.com_Root_Certification_Authority_RSA.pem 2158s Adding debian:SSL.com_TLS_ECC_Root_CA_2022.pem 2158s Adding debian:SSL.com_TLS_RSA_Root_CA_2022.pem 2158s Adding debian:SZAFIR_ROOT_CA2.pem 2158s Adding debian:Sectigo_Public_Server_Authentication_Root_E46.pem 2158s Adding debian:Sectigo_Public_Server_Authentication_Root_R46.pem 2158s Adding debian:SecureSign_RootCA11.pem 2158s Adding debian:SecureSign_Root_CA12.pem 2158s Adding debian:SecureSign_Root_CA14.pem 2158s Adding debian:SecureSign_Root_CA15.pem 2158s Adding debian:SecureTrust_CA.pem 2158s Adding debian:Secure_Global_CA.pem 2158s Adding debian:Security_Communication_ECC_RootCA1.pem 2158s Adding debian:Security_Communication_RootCA2.pem 2158s Adding debian:Security_Communication_RootCA3.pem 2158s Adding debian:Starfield_Class_2_CA.pem 2158s Adding debian:Starfield_Root_Certificate_Authority_-_G2.pem 2158s Adding debian:Starfield_Services_Root_Certificate_Authority_-_G2.pem 2158s Adding debian:SwissSign_Gold_CA_-_G2.pem 2158s Adding debian:SwissSign_Silver_CA_-_G2.pem 2158s Adding debian:T-TeleSec_GlobalRoot_Class_2.pem 2158s Adding debian:T-TeleSec_GlobalRoot_Class_3.pem 2158s Adding debian:TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.pem 2158s Adding debian:TWCA_CYBER_Root_CA.pem 2158s Adding debian:TWCA_Global_Root_CA.pem 2158s Adding debian:TWCA_Root_Certification_Authority.pem 2158s Adding debian:Telekom_Security_TLS_ECC_Root_2020.pem 2158s Adding debian:Telekom_Security_TLS_RSA_Root_2023.pem 2158s Adding debian:TeliaSonera_Root_CA_v1.pem 2158s Adding debian:Telia_Root_CA_v2.pem 2158s Adding debian:TrustAsia_Global_Root_CA_G3.pem 2158s Adding debian:TrustAsia_Global_Root_CA_G4.pem 2158s Adding debian:Trustwave_Global_Certification_Authority.pem 2158s Adding debian:Trustwave_Global_ECC_P256_Certification_Authority.pem 2158s Adding debian:Trustwave_Global_ECC_P384_Certification_Authority.pem 2158s Adding debian:TunTrust_Root_CA.pem 2158s Adding debian:UCA_Extended_Validation_Root.pem 2158s Adding debian:UCA_Global_G2_Root.pem 2158s Adding debian:USERTrust_ECC_Certification_Authority.pem 2158s Adding debian:USERTrust_RSA_Certification_Authority.pem 2158s Adding debian:XRamp_Global_CA_Root.pem 2158s Adding debian:certSIGN_ROOT_CA.pem 2158s Adding debian:certSIGN_Root_CA_G2.pem 2158s Adding debian:e-Szigno_Root_CA_2017.pem 2158s Adding debian:ePKI_Root_Certification_Authority.pem 2158s Adding debian:emSign_ECC_Root_CA_-_C3.pem 2158s Adding debian:emSign_ECC_Root_CA_-_G3.pem 2158s Adding debian:emSign_Root_CA_-_C1.pem 2158s Adding debian:emSign_Root_CA_-_G1.pem 2158s Adding debian:vTrus_ECC_Root_CA.pem 2158s Adding debian:vTrus_Root_CA.pem 2159s done. 2159s Setting up default-jre-headless (2:1.21-76) ... 2159s Setting up openjdk-21-jre:armhf (21.0.7~8ea-1) ... 2159s Setting up junit4 (4.13.2-5) ... 2159s Setting up default-jre (2:1.21-76) ... 2159s Setting up libnetty-tcnative-java (2.0.28-1build4) ... 2159s Setting up libzookeeper-java (3.9.3-1build1) ... 2159s Setting up zookeeper (3.9.3-1build1) ... 2159s warn: The home directory `/var/lib/zookeeper' already exists. Not touching this directory. 2159s warn: Warning: The home directory `/var/lib/zookeeper' does not belong to the user you are currently creating. 2159s update-alternatives: using /etc/zookeeper/conf_example to provide /etc/zookeeper/conf (zookeeper-conf) in auto mode 2159s Setting up zookeeperd (3.9.3-1build1) ... 2159s Processing triggers for libc-bin (2.41-6ubuntu1) ... 2174s autopkgtest [22:03:21]: test acceptance-zookeeper: debian/tests/acceptance zookeeper "-e dcs_failsafe_mode" 2174s autopkgtest [22:03:21]: test acceptance-zookeeper: [----------------------- 2181s dpkg-architecture: warning: cannot determine CC system type, falling back to default (native compilation) 2181s ++ ls -1r /usr/lib/postgresql/ 2181s ### PostgreSQL 17 acceptance-zookeeper -e dcs_failsafe_mode ### 2181s + for PG_VERSION in $(ls -1r /usr/lib/postgresql/) 2181s + '[' 17 == 10 -o 17 == 11 ']' 2181s + echo '### PostgreSQL 17 acceptance-zookeeper -e dcs_failsafe_mode ###' 2181s + 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' 2183s May 02 22:03:30 Feature: basic replication # features/basic_replication.feature:1 2183s May 02 22:03:30 We should check that the basic bootstrapping, replication and failover works. 2183s May 02 22:03:30 Scenario: check replication of a single table # features/basic_replication.feature:4 2183s May 02 22:03:30 Given I start postgres-0 # features/steps/basic_replication.py:20 2188s May 02 22:03:35 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 2188s May 02 22:03:35 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 2188s May 02 22:03:35 When I issue a PATCH request to http://127.0.0.1:8008/config with {"ttl": 20, "synchronous_mode": true} # features/steps/patroni_api.py:73 2188s May 02 22:03:35 Then I receive a response code 200 # features/steps/patroni_api.py:100 2188s May 02 22:03:35 When I start postgres-1 # features/steps/basic_replication.py:20 2193s May 02 22:03:40 And I configure and start postgres-2 with a tag replicatefrom postgres-0 # features/steps/cascading_replication.py:7 2199s May 02 22:03:45 And "sync" key in DCS has leader=postgres-0 after 20 seconds # features/steps/cascading_replication.py:23 2199s May 02 22:03:45 And I add the table foo to postgres-0 # features/steps/basic_replication.py:66 2199s May 02 22:03:46 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 2200s May 02 22:03:47 Then table foo is present on postgres-2 after 20 seconds # features/steps/basic_replication.py:105 2200s May 02 22:03:47 2200s May 02 22:03:47 Scenario: check restart of sync replica # features/basic_replication.feature:17 2200s May 02 22:03:47 Given I shut down postgres-2 # features/steps/basic_replication.py:41 2201s May 02 22:03:48 Then "sync" key in DCS has sync_standby=postgres-1 after 5 seconds # features/steps/cascading_replication.py:23 2201s May 02 22:03:48 When I start postgres-2 # features/steps/basic_replication.py:20 2204s May 02 22:03:51 And I shut down postgres-1 # features/steps/basic_replication.py:41 2207s May 02 22:03:54 Then "sync" key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 2208s May 02 22:03:55 When I start postgres-1 # features/steps/basic_replication.py:20 2211s May 02 22:03:58 Then "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 2211s May 02 22:03:58 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 2211s May 02 22:03:58 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:144 2211s May 02 22:03:58 2211s May 02 22:03:58 Scenario: check stuck sync replica # features/basic_replication.feature:28 2211s May 02 22:03:58 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 2211s May 02 22:03:58 Then I receive a response code 200 # features/steps/patroni_api.py:100 2211s May 02 22:03:58 And I create table on postgres-0 # features/steps/basic_replication.py:85 2211s May 02 22:03:58 And table mytest is present on postgres-1 after 2 seconds # features/steps/basic_replication.py:105 2212s May 02 22:03:59 And table mytest is present on postgres-2 after 2 seconds # features/steps/basic_replication.py:105 2212s May 02 22:03:59 When I pause wal replay on postgres-2 # features/steps/basic_replication.py:76 2212s May 02 22:03:59 And I load data on postgres-0 # features/steps/basic_replication.py:96 2213s May 02 22:03:59 Then "sync" key in DCS has sync_standby=postgres-1 after 15 seconds # features/steps/cascading_replication.py:23 2216s May 02 22:04:02 And I resume wal replay on postgres-2 # features/steps/basic_replication.py:76 2216s May 02 22:04:03 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 2217s May 02 22:04:04 And Status code on GET http://127.0.0.1:8010/async is 200 after 3 seconds # features/steps/patroni_api.py:144 2217s May 02 22:04:04 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 2217s May 02 22:04:04 Then I receive a response code 200 # features/steps/patroni_api.py:100 2217s May 02 22:04:04 And I drop table on postgres-0 # features/steps/basic_replication.py:85 2217s May 02 22:04:04 2217s May 02 22:04:04 Scenario: check multi sync replication # features/basic_replication.feature:44 2217s May 02 22:04:04 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 2217s May 02 22:04:04 Then I receive a response code 200 # features/steps/patroni_api.py:100 2217s May 02 22:04:04 Then "sync" key in DCS has sync_standby=postgres-1,postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 2221s May 02 22:04:08 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 2221s May 02 22:04:08 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 2221s May 02 22:04:08 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 2221s May 02 22:04:08 Then I receive a response code 200 # features/steps/patroni_api.py:100 2221s May 02 22:04:08 And I shut down postgres-1 # features/steps/basic_replication.py:41 2224s May 02 22:04:11 Then "sync" key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 2225s May 02 22:04:12 When I start postgres-1 # features/steps/basic_replication.py:20 2228s May 02 22:04:15 Then "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 2228s May 02 22:04:15 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 2228s May 02 22:04:15 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:144 2228s May 02 22:04:15 2228s May 02 22:04:15 Scenario: check the basic failover in synchronous mode # features/basic_replication.feature:59 2228s May 02 22:04:15 Given I run patronictl.py pause batman # features/steps/patroni_api.py:88 2229s May 02 22:04:16 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2229s May 02 22:04:16 When I sleep for 2 seconds # features/steps/patroni_api.py:41 2231s May 02 22:04:18 And I shut down postgres-0 # features/steps/basic_replication.py:41 2232s May 02 22:04:19 And I run patronictl.py resume batman # features/steps/patroni_api.py:88 2234s May 02 22:04:21 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2234s May 02 22:04:21 And postgres-2 role is the primary after 24 seconds # features/steps/basic_replication.py:117 2253s May 02 22:04:40 And Response on GET http://127.0.0.1:8010/history contains recovery after 10 seconds # features/steps/patroni_api.py:158 2255s May 02 22:04:42 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 2255s May 02 22:04:42 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 2255s May 02 22:04:42 Then I receive a response code 200 # features/steps/patroni_api.py:100 2255s May 02 22:04:42 When I add the table bar to postgres-2 # features/steps/basic_replication.py:66 2255s May 02 22:04:42 Then table bar is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 2255s May 02 22:04:42 And Response on GET http://127.0.0.1:8010/config contains master_start_timeout after 10 seconds # features/steps/patroni_api.py:158 2257s May 02 22:04:44 2257s May 02 22:04:44 Scenario: check rejoin of the former primary with pg_rewind # features/basic_replication.feature:75 2257s May 02 22:04:44 Given I add the table splitbrain to postgres-0 # features/steps/basic_replication.py:66 2257s May 02 22:04:44 And I start postgres-0 # features/steps/basic_replication.py:20 2257s May 02 22:04:44 Then postgres-0 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 2265s May 02 22:04:52 When I add the table buz to postgres-2 # features/steps/basic_replication.py:66 2265s May 02 22:04:52 Then table buz is present on postgres-0 after 20 seconds # features/steps/basic_replication.py:105 2265s May 02 22:04:52 2265s May 02 22:04:52 @reject-duplicate-name 2265s May 02 22:04:52 Scenario: check graceful rejection when two nodes have the same name # features/basic_replication.feature:83 2265s May 02 22:04:52 Given I start duplicate postgres-0 on port 8011 # features/steps/basic_replication.py:25 2267s May 02 22:04:54 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 2272s May 02 22:04:59 2272s May 02 22:04:59 Feature: cascading replication # features/cascading_replication.feature:1 2272s May 02 22:04:59 We should check that patroni can do base backup and streaming from the replica 2272s May 02 22:04:59 Scenario: check a base backup and streaming replication from a replica # features/cascading_replication.feature:4 2272s May 02 22:04:59 Given I start postgres-0 # features/steps/basic_replication.py:20 2276s May 02 22:05:03 And postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 2277s May 02 22:05:04 And I configure and start postgres-1 with a tag clonefrom true # features/steps/cascading_replication.py:7 2281s May 02 22:05:08 And replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 2282s May 02 22:05:09 And I create label with "postgres-0" in postgres-0 data directory # features/steps/cascading_replication.py:18 2282s May 02 22:05:09 And I create label with "postgres-1" in postgres-1 data directory # features/steps/cascading_replication.py:18 2282s May 02 22:05:09 And "members/postgres-1" key in DCS has state=running after 12 seconds # features/steps/cascading_replication.py:23 2282s May 02 22:05:09 And I configure and start postgres-2 with a tag replicatefrom postgres-1 # features/steps/cascading_replication.py:7 2287s May 02 22:05:14 Then replication works from postgres-0 to postgres-2 after 30 seconds # features/steps/basic_replication.py:124 2288s May 02 22:05:15 And there is a label with "postgres-1" in postgres-2 data directory # features/steps/cascading_replication.py:12 2293s May 02 22:05:20 2293s May 02 22:05:20 Feature: citus # features/citus.feature:1 2293s May 02 22:05:20 We should check that coordinator discovers and registers workers and clients don't have errors when worker cluster switches over 2293s May 02 22:05:20 Scenario: check that worker cluster is registered in the coordinator # features/citus.feature:4 2293s May 02 22:05:20 Given I start postgres-0 in citus group 0 # None 2293s May 02 22:05:20 And I start postgres-2 in citus group 1 # None 2293s May 02 22:05:20 Then postgres-0 is a leader in a group 0 after 10 seconds # None 2293s May 02 22:05:20 And postgres-2 is a leader in a group 1 after 10 seconds # None 2293s May 02 22:05:20 When I start postgres-1 in citus group 0 # None 2293s May 02 22:05:20 And I start postgres-3 in citus group 1 # None 2293s May 02 22:05:20 Then replication works from postgres-0 to postgres-1 after 15 seconds # None 2293s May 02 22:05:20 Then replication works from postgres-2 to postgres-3 after 15 seconds # None 2293s May 02 22:05:20 And postgres-0 is registered in the postgres-0 as the primary in group 0 after 5 seconds # None 2293s May 02 22:05:20 And postgres-1 is registered in the postgres-0 as the secondary in group 0 after 5 seconds # None 2293s May 02 22:05:20 And postgres-2 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 2293s May 02 22:05:20 And postgres-3 is registered in the postgres-0 as the secondary in group 1 after 5 seconds # None 2293s May 02 22:05:20 2293s May 02 22:05:20 Scenario: coordinator failover updates pg_dist_node # features/citus.feature:18 2293s May 02 22:05:20 Given I run patronictl.py failover batman --group 0 --candidate postgres-1 --force # None 2293s May 02 22:05:20 Then postgres-1 role is the primary after 10 seconds # None 2293s May 02 22:05:20 And "members/postgres-0" key in a group 0 in DCS has state=running after 15 seconds # None 2293s May 02 22:05:20 And replication works from postgres-1 to postgres-0 after 15 seconds # None 2293s May 02 22:05:20 And postgres-1 is registered in the postgres-2 as the primary in group 0 after 5 seconds # None 2293s May 02 22:05:20 And postgres-0 is registered in the postgres-2 as the secondary in group 0 after 15 seconds # None 2293s May 02 22:05:20 And "sync" key in a group 0 in DCS has sync_standby=postgres-0 after 15 seconds # None 2293s May 02 22:05:20 When I run patronictl.py switchover batman --group 0 --candidate postgres-0 --force # None 2293s May 02 22:05:20 Then postgres-0 role is the primary after 10 seconds # None 2293s May 02 22:05:20 And replication works from postgres-0 to postgres-1 after 15 seconds # None 2293s May 02 22:05:20 And postgres-0 is registered in the postgres-2 as the primary in group 0 after 5 seconds # None 2293s May 02 22:05:20 And postgres-1 is registered in the postgres-2 as the secondary in group 0 after 15 seconds # None 2293s May 02 22:05:20 And "sync" key in a group 0 in DCS has sync_standby=postgres-1 after 15 seconds # None 2293s May 02 22:05:20 2293s May 02 22:05:20 Scenario: worker switchover doesn't break client queries on the coordinator # features/citus.feature:33 2293s May 02 22:05:20 Given I create a distributed table on postgres-0 # None 2293s May 02 22:05:20 And I start a thread inserting data on postgres-0 # None 2293s May 02 22:05:20 When I run patronictl.py switchover batman --group 1 --force # None 2293s May 02 22:05:20 Then I receive a response returncode 0 # None 2293s May 02 22:05:20 And postgres-3 role is the primary after 10 seconds # None 2293s May 02 22:05:20 And "members/postgres-2" key in a group 1 in DCS has state=running after 15 seconds # None 2293s May 02 22:05:20 And replication works from postgres-3 to postgres-2 after 15 seconds # None 2293s May 02 22:05:20 And postgres-3 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 2293s May 02 22:05:20 And postgres-2 is registered in the postgres-0 as the secondary in group 1 after 15 seconds # None 2293s May 02 22:05:20 And "sync" key in a group 1 in DCS has sync_standby=postgres-2 after 15 seconds # None 2293s May 02 22:05:20 And a thread is still alive # None 2293s May 02 22:05:20 When I run patronictl.py switchover batman --group 1 --force # None 2293s May 02 22:05:20 Then I receive a response returncode 0 # None 2293s May 02 22:05:20 And postgres-2 role is the primary after 10 seconds # None 2293s May 02 22:05:20 And replication works from postgres-2 to postgres-3 after 15 seconds # None 2293s May 02 22:05:20 And postgres-2 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 2293s May 02 22:05:20 And postgres-3 is registered in the postgres-0 as the secondary in group 1 after 15 seconds # None 2293s May 02 22:05:20 And "sync" key in a group 1 in DCS has sync_standby=postgres-3 after 15 seconds # None 2293s May 02 22:05:20 And a thread is still alive # None 2293s May 02 22:05:20 When I stop a thread # None 2293s May 02 22:05:20 Then a distributed table on postgres-0 has expected rows # None 2293s May 02 22:05:20 2293s May 02 22:05:20 Scenario: worker primary restart doesn't break client queries on the coordinator # features/citus.feature:56 2293s May 02 22:05:20 Given I cleanup a distributed table on postgres-0 # None 2293s May 02 22:05:20 And I start a thread inserting data on postgres-0 # None 2293s May 02 22:05:20 When I run patronictl.py restart batman postgres-2 --group 1 --force # None 2293s May 02 22:05:20 Then I receive a response returncode 0 # None 2293s May 02 22:05:20 And postgres-2 role is the primary after 10 seconds # None 2293s May 02 22:05:20 And replication works from postgres-2 to postgres-3 after 15 seconds # None 2293s May 02 22:05:20 And postgres-2 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 2293s May 02 22:05:20 And postgres-3 is registered in the postgres-0 as the secondary in group 1 after 15 seconds # None 2293s May 02 22:05:20 And a thread is still alive # None 2293s May 02 22:05:20 When I stop a thread # None 2293s May 02 22:05:20 Then a distributed table on postgres-0 has expected rows # None 2293s SKIP FEATURE citus: Citus extension isn't available 2293s SKIP Scenario check that worker cluster is registered in the coordinator: Citus extension isn't available 2293s SKIP Scenario coordinator failover updates pg_dist_node: Citus extension isn't available 2293s SKIP Scenario worker switchover doesn't break client queries on the coordinator: Citus extension isn't available 2293s SKIP Scenario worker primary restart doesn't break client queries on the coordinator: Citus extension isn't available 2293s 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 2293s May 02 22:05:20 2293s May 02 22:05:20 Scenario: check that in-flight transaction is rolled back after timeout when other workers need to change pg_dist_node # features/citus.feature:69 2293s May 02 22:05:20 Given I start postgres-4 in citus group 2 # None 2293s May 02 22:05:20 Then postgres-4 is a leader in a group 2 after 10 seconds # None 2293s May 02 22:05:20 And "members/postgres-4" key in a group 2 in DCS has role=primary after 3 seconds # None 2293s May 02 22:05:20 When I run patronictl.py edit-config batman --group 2 -s ttl=20 --force # None 2293s May 02 22:05:20 Then I receive a response returncode 0 # None 2293s May 02 22:05:20 And I receive a response output "+ttl: 20" # None 2293s May 02 22:05:20 Then postgres-4 is registered in the postgres-2 as the primary in group 2 after 5 seconds # None 2293s May 02 22:05:20 When I shut down postgres-4 # None 2293s May 02 22:05:20 Then there is a transaction in progress on postgres-0 changing pg_dist_node after 5 seconds # None 2293s May 02 22:05:20 When I run patronictl.py restart batman postgres-2 --group 1 --force # None 2293s May 02 22:05:20 Then a transaction finishes in 20 seconds # None 2293s May 02 22:05:20 2293s May 02 22:05:20 Feature: custom bootstrap # features/custom_bootstrap.feature:1 2293s May 02 22:05:20 We should check that patroni can bootstrap a new cluster from a backup 2293s May 02 22:05:20 Scenario: clone existing cluster using pg_basebackup # features/custom_bootstrap.feature:4 2293s May 02 22:05:20 Given I start postgres-0 # features/steps/basic_replication.py:20 2298s May 02 22:05:25 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 2298s May 02 22:05:25 When I add the table foo to postgres-0 # features/steps/basic_replication.py:66 2298s May 02 22:05:25 And I start postgres-1 in a cluster batman1 as a clone of postgres-0 # features/steps/custom_bootstrap.py:6 2304s May 02 22:05:31 Then postgres-1 is a leader of batman1 after 10 seconds # features/steps/custom_bootstrap.py:16 2305s May 02 22:05:32 Then table foo is present on postgres-1 after 10 seconds # features/steps/basic_replication.py:105 2305s May 02 22:05:32 2305s May 02 22:05:32 Scenario: make a backup and do a restore into a new cluster # features/custom_bootstrap.feature:12 2305s May 02 22:05:32 Given I add the table bar to postgres-1 # features/steps/basic_replication.py:66 2305s May 02 22:05:32 And I do a backup of postgres-1 # features/steps/custom_bootstrap.py:25 2307s May 02 22:05:34 When I start postgres-2 in a cluster batman2 from backup # features/steps/custom_bootstrap.py:11 2313s May 02 22:05:40 Then postgres-2 is a leader of batman2 after 30 seconds # features/steps/custom_bootstrap.py:16 2313s May 02 22:05:40 And table bar is present on postgres-2 after 10 seconds # features/steps/basic_replication.py:105 2320s May 02 22:05:47 2320s May 02 22:05:47 Feature: ignored slots # features/ignored_slots.feature:1 2320s May 02 22:05:47 2320s May 02 22:05:47 Scenario: check ignored slots aren't removed on failover/switchover # features/ignored_slots.feature:2 2320s May 02 22:05:47 Given I start postgres-1 # features/steps/basic_replication.py:20 2325s May 02 22:05:52 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 2325s May 02 22:05:52 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 2325s May 02 22:05:52 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 2325s May 02 22:05:52 Then I receive a response code 200 # features/steps/patroni_api.py:100 2325s May 02 22:05:52 And Response on GET http://127.0.0.1:8009/config contains ignore_slots after 10 seconds # features/steps/patroni_api.py:158 2326s May 02 22:05:53 When I shut down postgres-1 # features/steps/basic_replication.py:41 2328s May 02 22:05:55 And I start postgres-1 # features/steps/basic_replication.py:20 2330s May 02 22:05:57 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 2331s May 02 22:05:58 And "members/postgres-1" key in DCS has role=primary after 10 seconds # features/steps/cascading_replication.py:23 2332s May 02 22:05:59 And postgres-1 role is the primary after 20 seconds # features/steps/basic_replication.py:117 2332s May 02 22:05:59 When I create a logical replication slot unmanaged_slot_0 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 2332s May 02 22:05:59 And I create a logical replication slot unmanaged_slot_1 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 2332s May 02 22:05:59 And I create a logical replication slot unmanaged_slot_2 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 2332s May 02 22:05:59 And I create a logical replication slot unmanaged_slot_3 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 2332s May 02 22:05:59 And I create a logical replication slot dummy_slot on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 2332s May 02 22:05:59 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 2332s May 02 22:05:59 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 2332s May 02 22:05:59 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 2332s May 02 22:05:59 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 2332s May 02 22:05:59 When I start postgres-0 # features/steps/basic_replication.py:20 2337s May 02 22:06:04 Then "members/postgres-0" key in DCS has role=replica after 10 seconds # features/steps/cascading_replication.py:23 2337s May 02 22:06:04 And postgres-0 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 2337s May 02 22:06:04 And replication works from postgres-1 to postgres-0 after 20 seconds # features/steps/basic_replication.py:124 2337s May 02 22:06:04 When I shut down postgres-1 # features/steps/basic_replication.py:41 2339s May 02 22:06:06 Then "members/postgres-0" key in DCS has role=primary after 10 seconds # features/steps/cascading_replication.py:23 2340s May 02 22:06:07 When I start postgres-1 # features/steps/basic_replication.py:20 2343s May 02 22:06:10 Then postgres-1 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 2343s May 02 22:06:10 And "members/postgres-1" key in DCS has role=replica after 10 seconds # features/steps/cascading_replication.py:23 2343s May 02 22:06:10 And I sleep for 2 seconds # features/steps/patroni_api.py:41 2345s May 02 22:06:12 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 2345s May 02 22:06:12 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 2345s May 02 22:06:12 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 2345s May 02 22:06:12 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 2345s May 02 22:06:12 And postgres-1 does not have a replication slot named dummy_slot # features/steps/slots.py:41 2345s May 02 22:06:12 When I shut down postgres-0 # features/steps/basic_replication.py:41 2347s May 02 22:06:14 Then "members/postgres-1" key in DCS has role=primary after 10 seconds # features/steps/cascading_replication.py:23 2348s May 02 22:06:15 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 2348s May 02 22:06:15 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 2348s May 02 22:06:15 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 2348s May 02 22:06:15 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 2350s May 02 22:06:17 2350s May 02 22:06:17 Feature: nostream node # features/nostream_node.feature:1 2350s May 02 22:06:17 2350s May 02 22:06:17 Scenario: check nostream node is recovering from archive # features/nostream_node.feature:3 2350s May 02 22:06:17 When I start postgres-0 # features/steps/basic_replication.py:20 2354s May 02 22:06:21 And I configure and start postgres-1 with a tag nostream true # features/steps/cascading_replication.py:7 2358s May 02 22:06:25 Then "members/postgres-1" key in DCS has replication_state=in archive recovery after 10 seconds # features/steps/cascading_replication.py:23 2359s May 02 22:06:26 And replication works from postgres-0 to postgres-1 after 30 seconds # features/steps/basic_replication.py:124 2364s May 02 22:06:31 2364s May 02 22:06:31 @slot-advance 2364s May 02 22:06:31 Scenario: check permanent logical replication slots are not copied # features/nostream_node.feature:10 2364s May 02 22:06:31 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 2365s May 02 22:06:32 Then I receive a response code 200 # features/steps/patroni_api.py:100 2365s May 02 22:06:32 When I run patronictl.py restart batman postgres-0 --force # features/steps/patroni_api.py:88 2366s May 02 22:06:33 Then postgres-0 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:20 2367s May 02 22:06:34 When I configure and start postgres-2 with a tag replicatefrom postgres-1 # features/steps/cascading_replication.py:7 2372s May 02 22:06:39 Then "members/postgres-2" key in DCS has replication_state=streaming after 10 seconds # features/steps/cascading_replication.py:23 2373s May 02 22:06:40 And postgres-1 does not have a replication slot named test_logical # features/steps/slots.py:41 2373s May 02 22:06:40 And postgres-2 does not have a replication slot named test_logical # features/steps/slots.py:41 2373s May 02 22:06:40 2373s May 02 22:06:40 @slot-advance 2373s May 02 22:06:40 Scenario: check that slots are written to the /status key # features/nostream_node.feature:21 2373s May 02 22:06:40 Given "status" key in DCS has postgres_0 in slots # features/steps/slots.py:118 2373s May 02 22:06:40 And "status" key in DCS has postgres_2 in slots # features/steps/slots.py:118 2373s May 02 22:06:40 And "status" key in DCS has test_logical in slots # features/steps/slots.py:118 2373s May 02 22:06:40 And "status" key in DCS has test_logical in slots # features/steps/slots.py:118 2373s May 02 22:06:40 And "status" key in DCS does not have postgres_1 in slots # features/steps/slots.py:124 2379s May 02 22:06:46 2379s May 02 22:06:46 Feature: patroni api # features/patroni_api.feature:1 2379s May 02 22:06:46 We should check that patroni correctly responds to valid and not-valid API requests. 2379s May 02 22:06:46 Scenario: check API requests on a stand-alone server # features/patroni_api.feature:4 2379s May 02 22:06:46 Given I start postgres-0 # features/steps/basic_replication.py:20 2384s May 02 22:06:51 And postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 2384s May 02 22:06:51 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:63 2384s May 02 22:06:51 Then I receive a response code 200 # features/steps/patroni_api.py:100 2384s May 02 22:06:51 And I receive a response state running # features/steps/patroni_api.py:100 2384s May 02 22:06:51 And I receive a response role primary # features/steps/patroni_api.py:100 2384s May 02 22:06:51 When I issue a GET request to http://127.0.0.1:8008/standby_leader # features/steps/patroni_api.py:63 2384s May 02 22:06:51 Then I receive a response code 503 # features/steps/patroni_api.py:100 2384s May 02 22:06:51 When I issue a GET request to http://127.0.0.1:8008/health # features/steps/patroni_api.py:63 2384s May 02 22:06:51 Then I receive a response code 200 # features/steps/patroni_api.py:100 2384s May 02 22:06:51 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:63 2384s May 02 22:06:51 Then I receive a response code 503 # features/steps/patroni_api.py:100 2384s May 02 22:06:51 When I issue a POST request to http://127.0.0.1:8008/reinitialize with {"force": true} # features/steps/patroni_api.py:73 2384s May 02 22:06:51 Then I receive a response code 503 # features/steps/patroni_api.py:100 2384s May 02 22:06:51 And I receive a response text I am the leader, can not reinitialize # features/steps/patroni_api.py:100 2384s May 02 22:06:51 When I run patronictl.py switchover batman --primary postgres-0 --force # features/steps/patroni_api.py:88 2385s May 02 22:06:52 Then I receive a response returncode 1 # features/steps/patroni_api.py:100 2385s May 02 22:06:52 And I receive a response output "Error: No candidates found to switchover to" # features/steps/patroni_api.py:100 2385s May 02 22:06: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 2385s May 02 22:06:52 Then I receive a response code 412 # features/steps/patroni_api.py:100 2385s May 02 22:06:52 And I receive a response text switchover is not possible: cluster does not have members except leader # features/steps/patroni_api.py:100 2385s May 02 22:06:52 When I issue an empty POST request to http://127.0.0.1:8008/failover # features/steps/patroni_api.py:68 2385s May 02 22:06:52 Then I receive a response code 400 # features/steps/patroni_api.py:100 2385s May 02 22:06:52 When I issue a POST request to http://127.0.0.1:8008/failover with {"foo": "bar"} # features/steps/patroni_api.py:73 2385s May 02 22:06:52 Then I receive a response code 400 # features/steps/patroni_api.py:100 2385s May 02 22:06:52 And I receive a response text "Failover could be performed only to a specific candidate" # features/steps/patroni_api.py:100 2385s May 02 22:06:52 2385s May 02 22:06:52 Scenario: check local configuration reload # features/patroni_api.feature:32 2385s May 02 22:06:52 Given I add tag new_tag new_value to postgres-0 config # features/steps/patroni_api.py:139 2385s May 02 22:06:52 And I issue an empty POST request to http://127.0.0.1:8008/reload # features/steps/patroni_api.py:68 2385s May 02 22:06:52 Then I receive a response code 202 # features/steps/patroni_api.py:100 2385s May 02 22:06:52 2385s May 02 22:06:52 Scenario: check dynamic configuration change via DCS # features/patroni_api.feature:37 2385s May 02 22:06:52 Given I issue a PATCH request to http://127.0.0.1:8008/config with {"ttl": 20, "postgresql": {"parameters": {"max_connections": "101"}}} # features/steps/patroni_api.py:73 2385s May 02 22:06:52 Then I receive a response code 200 # features/steps/patroni_api.py:100 2385s May 02 22:06:52 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 11 seconds # features/steps/patroni_api.py:158 2388s May 02 22:06:55 When I issue a GET request to http://127.0.0.1:8008/config # features/steps/patroni_api.py:63 2388s May 02 22:06:55 Then I receive a response code 200 # features/steps/patroni_api.py:100 2388s May 02 22:06:55 And I receive a response ttl 20 # features/steps/patroni_api.py:100 2388s May 02 22:06:55 When I issue a GET request to http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:63 2388s May 02 22:06:55 Then I receive a response code 200 # features/steps/patroni_api.py:100 2388s May 02 22:06:55 And I receive a response tags {'new_tag': 'new_value'} # features/steps/patroni_api.py:100 2388s May 02 22:06:55 And I sleep for 4 seconds # features/steps/patroni_api.py:41 2392s May 02 22:06:59 2392s May 02 22:06:59 Scenario: check the scheduled restart # features/patroni_api.feature:49 2392s May 02 22:06:59 Given I run patronictl.py edit-config -p 'superuser_reserved_connections=6' --force batman # features/steps/patroni_api.py:88 2393s May 02 22:07:00 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2393s May 02 22:07:00 And I receive a response output "+ superuser_reserved_connections: 6" # features/steps/patroni_api.py:100 2393s May 02 22:07:00 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 5 seconds # features/steps/patroni_api.py:158 2393s May 02 22:07: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 2393s May 02 22:07:00 Then I receive a response code 202 # features/steps/patroni_api.py:100 2393s May 02 22:07:00 And I sleep for 8 seconds # features/steps/patroni_api.py:41 2401s May 02 22:07:08 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 10 seconds # features/steps/patroni_api.py:158 2401s May 02 22:07: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 2401s May 02 22:07:08 Then I receive a response code 202 # features/steps/patroni_api.py:100 2401s May 02 22:07: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 2408s May 02 22:07:15 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2409s May 02 22:07:16 2409s May 02 22:07:16 Scenario: check API requests for the primary-replica pair in the pause mode # features/patroni_api.feature:63 2409s May 02 22:07:16 Given I start postgres-1 # features/steps/basic_replication.py:20 2413s May 02 22:07:20 Then replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 2414s May 02 22:07:21 When I run patronictl.py pause batman # features/steps/patroni_api.py:88 2415s May 02 22:07:22 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2415s May 02 22:07:22 When I kill postmaster on postgres-1 # features/steps/basic_replication.py:56 2415s May 02 22:07:22 waiting for server to shut down.... done 2415s May 02 22:07:22 server stopped 2415s May 02 22:07:22 And I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 2415s May 02 22:07:22 Then I receive a response code 503 # features/steps/patroni_api.py:100 2415s May 02 22:07:22 And "members/postgres-1" key in DCS has state=stopped after 10 seconds # features/steps/cascading_replication.py:23 2416s May 02 22:07:23 When I run patronictl.py restart batman postgres-1 --force # features/steps/patroni_api.py:88 2419s May 02 22:07:26 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2419s May 02 22:07:26 Then replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 2420s May 02 22:07:27 And I sleep for 2 seconds # features/steps/patroni_api.py:41 2422s May 02 22:07:29 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 2422s May 02 22:07:29 Then I receive a response code 200 # features/steps/patroni_api.py:100 2422s May 02 22:07:29 And I receive a response state running # features/steps/patroni_api.py:100 2422s May 02 22:07:29 And I receive a response role replica # features/steps/patroni_api.py:100 2422s May 02 22:07:29 When I run patronictl.py reinit batman postgres-1 --force --wait # features/steps/patroni_api.py:88 2426s May 02 22:07:33 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2426s May 02 22:07:33 And I receive a response output "Success: reinitialize for member postgres-1" # features/steps/patroni_api.py:100 2426s May 02 22:07:33 And postgres-1 role is the secondary after 30 seconds # features/steps/basic_replication.py:117 2427s May 02 22:07:34 And replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 2428s May 02 22:07:35 When I run patronictl.py restart batman postgres-0 --force # features/steps/patroni_api.py:88 2430s May 02 22:07:37 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2430s May 02 22:07:37 And I receive a response output "Success: restart on member postgres-0" # features/steps/patroni_api.py:100 2430s May 02 22:07:37 And postgres-0 role is the primary after 5 seconds # features/steps/basic_replication.py:117 2431s May 02 22:07:38 2431s May 02 22:07:38 Scenario: check the switchover via the API in the pause mode # features/patroni_api.feature:90 2431s May 02 22:07:38 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 2434s May 02 22:07:41 Then I receive a response code 200 # features/steps/patroni_api.py:100 2434s May 02 22:07:41 And postgres-1 is a leader after 5 seconds # features/steps/patroni_api.py:31 2434s May 02 22:07:41 And postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2435s May 02 22:07:42 And postgres-0 role is the secondary after 10 seconds # features/steps/basic_replication.py:117 2440s May 02 22:07:47 And replication works from postgres-1 to postgres-0 after 20 seconds # features/steps/basic_replication.py:124 2440s May 02 22:07:47 And "members/postgres-0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 2441s May 02 22:07:48 When I issue a GET request to http://127.0.0.1:8008/primary # features/steps/patroni_api.py:63 2441s May 02 22:07:48 Then I receive a response code 503 # features/steps/patroni_api.py:100 2441s May 02 22:07:48 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:63 2441s May 02 22:07:48 Then I receive a response code 200 # features/steps/patroni_api.py:100 2441s May 02 22:07:48 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 2441s May 02 22:07:48 Then I receive a response code 200 # features/steps/patroni_api.py:100 2441s May 02 22:07:48 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 2441s May 02 22:07:48 Then I receive a response code 503 # features/steps/patroni_api.py:100 2441s May 02 22:07:48 2441s May 02 22:07:48 Scenario: check the scheduled switchover # features/patroni_api.feature:107 2441s May 02 22:07:48 Given I issue a scheduled switchover from postgres-1 to postgres-0 in 10 seconds # features/steps/patroni_api.py:119 2442s May 02 22:07:49 Then I receive a response returncode 1 # features/steps/patroni_api.py:100 2442s May 02 22:07:49 And I receive a response output "Can't schedule switchover in the paused state" # features/steps/patroni_api.py:100 2442s May 02 22:07:49 When I run patronictl.py resume batman # features/steps/patroni_api.py:88 2443s May 02 22:07:50 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2443s May 02 22:07:50 Given I issue a scheduled switchover from postgres-1 to postgres-0 in 10 seconds # features/steps/patroni_api.py:119 2444s May 02 22:07:51 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2444s May 02 22:07:51 And postgres-0 is a leader after 20 seconds # features/steps/patroni_api.py:31 2454s May 02 22:08:01 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2455s May 02 22:08:02 And postgres-1 role is the secondary after 10 seconds # features/steps/basic_replication.py:117 2458s May 02 22:08:05 And replication works from postgres-0 to postgres-1 after 25 seconds # features/steps/basic_replication.py:124 2459s May 02 22:08:05 And "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 2459s May 02 22:08:05 When I issue a GET request to http://127.0.0.1:8008/primary # features/steps/patroni_api.py:63 2459s May 02 22:08:06 Then I receive a response code 200 # features/steps/patroni_api.py:100 2459s May 02 22:08:06 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:63 2459s May 02 22:08:06 Then I receive a response code 503 # features/steps/patroni_api.py:100 2459s May 02 22:08:06 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 2459s May 02 22:08:06 Then I receive a response code 503 # features/steps/patroni_api.py:100 2459s May 02 22:08:06 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 2459s May 02 22:08:06 Then I receive a response code 200 # features/steps/patroni_api.py:100 2463s May 02 22:08:10 2463s May 02 22:08:10 Feature: permanent slots # features/permanent_slots.feature:1 2463s May 02 22:08:10 2463s May 02 22:08:10 Scenario: check that physical permanent slots are created # features/permanent_slots.feature:2 2463s May 02 22:08:10 Given I start postgres-0 # features/steps/basic_replication.py:20 2467s May 02 22:08:14 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 2468s May 02 22:08:15 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 2468s May 02 22:08:15 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 2468s May 02 22:08:15 Then I receive a response code 200 # features/steps/patroni_api.py:100 2468s May 02 22:08:15 And Response on GET http://127.0.0.1:8008/config contains slots after 10 seconds # features/steps/patroni_api.py:158 2468s May 02 22:08:15 When I start postgres-1 # features/steps/basic_replication.py:20 2473s May 02 22:08:20 And I configure and start postgres-2 with a tag nofailover true # features/steps/cascading_replication.py:7 2477s May 02 22:08:24 And I configure and start postgres-3 with a tag replicatefrom postgres-2 # features/steps/cascading_replication.py:7 2482s May 02 22:08:29 Then postgres-0 has a physical replication slot named test_physical after 10 seconds # features/steps/slots.py:82 2482s May 02 22:08:29 And postgres-0 has a physical replication slot named postgres_1 after 10 seconds # features/steps/slots.py:82 2482s May 02 22:08:29 And postgres-0 has a physical replication slot named postgres_2 after 10 seconds # features/steps/slots.py:82 2482s May 02 22:08:29 And postgres-2 has a physical replication slot named postgres_3 after 10 seconds # features/steps/slots.py:82 2482s May 02 22:08:29 And postgres-2 does not have a replication slot named test_physical # features/steps/slots.py:41 2482s May 02 22:08:29 2482s May 02 22:08:29 @slot-advance 2482s May 02 22:08:29 Scenario: check that logical permanent slots are created # features/permanent_slots.feature:19 2482s May 02 22:08:29 Given I run patronictl.py restart batman postgres-0 --force # features/steps/patroni_api.py:88 2484s May 02 22:08:31 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 2484s May 02 22:08:31 Then postgres-0 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:20 2485s May 02 22:08:32 2485s May 02 22:08:32 @slot-advance 2485s May 02 22:08:32 Scenario: check that permanent slots are created on replicas # features/permanent_slots.feature:25 2485s May 02 22:08:32 Given postgres-1 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:20 2490s May 02 22:08:37 Then Logical slot test_logical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 2490s May 02 22:08:37 And Logical slot test_logical is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 2491s May 02 22:08:38 And postgres-1 has a physical replication slot named test_physical after 2 seconds # features/steps/slots.py:82 2491s May 02 22:08:38 And postgres-2 does not have a replication slot named test_logical # features/steps/slots.py:41 2491s May 02 22:08:38 And postgres-3 has a physical replication slot named test_physical after 2 seconds # features/steps/slots.py:82 2491s May 02 22:08:38 2491s May 02 22:08:38 @slot-advance 2491s May 02 22:08:38 Scenario: check permanent physical slots that match with member names # features/permanent_slots.feature:34 2491s May 02 22:08:38 Given postgres-0 has a physical replication slot named postgres_3 after 2 seconds # features/steps/slots.py:82 2491s May 02 22:08:38 And postgres-1 has a physical replication slot named postgres_0 after 2 seconds # features/steps/slots.py:82 2491s May 02 22:08:38 And postgres-1 has a physical replication slot named postgres_2 after 2 seconds # features/steps/slots.py:82 2491s May 02 22:08:38 And postgres-1 has a physical replication slot named postgres_3 after 2 seconds # features/steps/slots.py:82 2491s May 02 22:08:38 And postgres-2 does not have a replication slot named postgres_0 # features/steps/slots.py:41 2491s May 02 22:08:38 And postgres-2 does not have a replication slot named postgres_1 # features/steps/slots.py:41 2491s May 02 22:08:38 And postgres-2 has a physical replication slot named postgres_3 after 2 seconds # features/steps/slots.py:82 2491s May 02 22:08:38 And postgres-3 has a physical replication slot named postgres_0 after 2 seconds # features/steps/slots.py:82 2491s May 02 22:08:38 And postgres-3 has a physical replication slot named postgres_1 after 2 seconds # features/steps/slots.py:82 2491s May 02 22:08:38 And postgres-3 has a physical replication slot named postgres_2 after 2 seconds # features/steps/slots.py:82 2491s May 02 22:08:38 2491s May 02 22:08:38 @slot-advance 2491s May 02 22:08:38 Scenario: check that permanent slots are advanced on replicas # features/permanent_slots.feature:47 2491s May 02 22:08:38 Given I add the table replicate_me to postgres-0 # features/steps/basic_replication.py:66 2491s May 02 22:08:38 When I get all changes from logical slot test_logical on postgres-0 # features/steps/slots.py:72 2491s May 02 22:08:38 And I get all changes from physical slot test_physical on postgres-0 # features/steps/slots.py:77 2491s May 02 22:08:38 Then Logical slot test_logical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 2494s May 02 22:08:41 And Physical slot test_physical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 2494s May 02 22:08:41 And Logical slot test_logical is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 2494s May 02 22:08:41 And Physical slot test_physical is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 2494s May 02 22:08:41 And Physical slot postgres_1 is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 2494s May 02 22:08:41 And Physical slot postgres_3 is in sync between postgres-2 and postgres-0 after 20 seconds # features/steps/slots.py:52 2494s May 02 22:08:41 And Physical slot postgres_3 is in sync between postgres-2 and postgres-1 after 10 seconds # features/steps/slots.py:52 2494s May 02 22:08:41 2494s May 02 22:08:41 @slot-advance 2494s May 02 22:08:41 Scenario: check that permanent slots and member slots are written to the /status key # features/permanent_slots.feature:60 2494s May 02 22:08:41 Given "status" key in DCS has test_physical in slots # features/steps/slots.py:118 2494s May 02 22:08:41 And "status" key in DCS has postgres_0 in slots # features/steps/slots.py:118 2494s May 02 22:08:41 And "status" key in DCS has postgres_1 in slots # features/steps/slots.py:118 2494s May 02 22:08:41 And "status" key in DCS has postgres_2 in slots # features/steps/slots.py:118 2494s May 02 22:08:41 And "status" key in DCS has postgres_3 in slots # features/steps/slots.py:118 2494s May 02 22:08:41 2494s May 02 22:08:41 @slot-advance 2494s May 02 22:08:41 Scenario: check that only non-permanent member slots are written to the retain_slots in /status key # features/permanent_slots.feature:68 2494s May 02 22:08:41 Given "status" key in DCS has postgres_0 in retain_slots # features/steps/slots.py:118 2494s May 02 22:08:41 And "status" key in DCS has postgres_1 in retain_slots # features/steps/slots.py:118 2494s May 02 22:08:41 And "status" key in DCS has postgres_2 in retain_slots # features/steps/slots.py:118 2494s May 02 22:08:41 And "status" key in DCS does not have postgres_3 in retain_slots # features/steps/slots.py:124 2494s May 02 22:08:41 2494s May 02 22:08:41 Scenario: check permanent physical replication slot after failover # features/permanent_slots.feature:74 2494s May 02 22:08:41 Given I shut down postgres-3 # features/steps/basic_replication.py:41 2495s May 02 22:08:42 And I shut down postgres-2 # features/steps/basic_replication.py:41 2496s May 02 22:08:43 And I shut down postgres-0 # features/steps/basic_replication.py:41 2498s May 02 22:08:45 Then postgres-1 has a physical replication slot named test_physical after 10 seconds # features/steps/slots.py:82 2498s May 02 22:08:45 And postgres-1 has a physical replication slot named postgres_0 after 10 seconds # features/steps/slots.py:82 2498s May 02 22:08:45 And postgres-1 has a physical replication slot named postgres_3 after 10 seconds # features/steps/slots.py:82 2498s May 02 22:08:45 When I start postgres-0 # features/steps/basic_replication.py:20 2501s May 02 22:08:48 Then postgres-0 role is the replica after 20 seconds # features/steps/basic_replication.py:117 2501s May 02 22:08:48 And physical replication slot named postgres_1 on postgres-0 has no xmin value after 10 seconds # features/steps/slots.py:98 2501s May 02 22:08:48 And postgres-0 has a physical replication slot named postgres_2 after 10 seconds # features/steps/slots.py:82 2501s May 02 22:08:48 And postgres-0 has a physical replication slot named postgres_3 after 10 seconds # features/steps/slots.py:82 2505s May 02 22:08:52 2505s May 02 22:08:52 Feature: priority replication # features/priority_failover.feature:1 2505s May 02 22:08:52 We should check that we can give nodes priority during failover 2505s May 02 22:08:52 Scenario: check failover priority 0 prevents leaderships # features/priority_failover.feature:4 2505s May 02 22:08:52 Given I configure and start postgres-0 with a tag failover_priority 1 # features/steps/cascading_replication.py:7 2510s May 02 22:08:57 And I configure and start postgres-1 with a tag failover_priority 0 # features/steps/cascading_replication.py:7 2515s May 02 22:09:02 Then replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 2515s May 02 22:09:02 When I shut down postgres-0 # features/steps/basic_replication.py:41 2517s May 02 22:09:04 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 2519s May 02 22:09:06 Then postgres-1 role is the secondary after 10 seconds # features/steps/basic_replication.py:117 2519s May 02 22:09:06 When I start postgres-0 # features/steps/basic_replication.py:20 2522s May 02 22:09:09 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2523s May 02 22:09:10 2523s May 02 22:09:10 Scenario: check higher failover priority is respected # features/priority_failover.feature:14 2523s May 02 22:09:10 Given I configure and start postgres-2 with a tag failover_priority 1 # features/steps/cascading_replication.py:7 2528s May 02 22:09:15 And I configure and start postgres-3 with a tag failover_priority 2 # features/steps/cascading_replication.py:7 2533s May 02 22:09:20 Then replication works from postgres-0 to postgres-2 after 20 seconds # features/steps/basic_replication.py:124 2534s May 02 22:09:21 And replication works from postgres-0 to postgres-3 after 20 seconds # features/steps/basic_replication.py:124 2534s May 02 22:09:21 When I shut down postgres-0 # features/steps/basic_replication.py:41 2536s May 02 22:09:23 Then postgres-3 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2537s May 02 22:09:24 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 2537s May 02 22:09:24 2537s May 02 22:09:24 Scenario: check conflicting configuration handling # features/priority_failover.feature:23 2537s May 02 22:09:24 When I set nofailover tag in postgres-2 config # features/steps/patroni_api.py:133 2537s May 02 22:09:24 And I issue an empty POST request to http://127.0.0.1:8010/reload # features/steps/patroni_api.py:68 2537s May 02 22:09:24 Then I receive a response code 202 # features/steps/patroni_api.py:100 2537s May 02 22:09:24 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 2538s May 02 22:09:25 And "members/postgres-2" key in DCS has tags={'failover_priority': '1', 'nofailover': True} after 10 seconds # features/steps/cascading_replication.py:23 2539s May 02 22:09:26 When I issue a POST request to http://127.0.0.1:8010/failover with {"candidate": "postgres-2"} # features/steps/patroni_api.py:73 2539s May 02 22:09:26 Then I receive a response code 412 # features/steps/patroni_api.py:100 2539s May 02 22:09:26 And I receive a response text "failover is not possible: no good candidates have been found" # features/steps/patroni_api.py:100 2539s May 02 22:09:26 When I reset nofailover tag in postgres-1 config # features/steps/patroni_api.py:133 2539s May 02 22:09:26 And I issue an empty POST request to http://127.0.0.1:8009/reload # features/steps/patroni_api.py:68 2540s May 02 22:09:27 Then I receive a response code 202 # features/steps/patroni_api.py:100 2540s May 02 22:09:27 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 2541s May 02 22:09:28 And "members/postgres-1" key in DCS has tags={'failover_priority': '0', 'nofailover': False} after 10 seconds # features/steps/cascading_replication.py:23 2542s May 02 22:09:29 And I issue a POST request to http://127.0.0.1:8009/failover with {"candidate": "postgres-1"} # features/steps/patroni_api.py:73 2545s May 02 22:09:32 Then I receive a response code 200 # features/steps/patroni_api.py:100 2545s May 02 22:09:32 And postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2550s May 02 22:09:37 2550s May 02 22:09:37 Feature: quorum commit # features/quorum_commit.feature:1 2550s May 02 22:09:37 Check basic workfrlows when quorum commit is enabled 2550s May 02 22:09:37 Scenario: check enable quorum commit and that the only leader promotes after restart # features/quorum_commit.feature:4 2550s May 02 22:09:37 Given I start postgres-0 # features/steps/basic_replication.py:20 2555s May 02 22:09:42 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 2555s May 02 22:09:42 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 2555s May 02 22:09:42 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 2555s May 02 22:09:42 Then I receive a response code 200 # features/steps/patroni_api.py:100 2555s May 02 22:09:42 And sync key in DCS has leader=postgres-0 after 20 seconds # features/steps/quorum_commit.py:8 2556s May 02 22:09:43 And sync key in DCS has quorum=0 after 2 seconds # features/steps/quorum_commit.py:8 2556s May 02 22:09:43 And synchronous_standby_names on postgres-0 is set to '_empty_str_' after 2 seconds # features/steps/quorum_commit.py:39 2556s May 02 22:09:43 When I shut down postgres-0 # features/steps/basic_replication.py:41 2558s May 02 22:09:45 And sync key in DCS has leader=postgres-0 after 2 seconds # features/steps/quorum_commit.py:8 2558s May 02 22:09:45 When I start postgres-0 # features/steps/basic_replication.py:20 2561s May 02 22:09:48 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2562s May 02 22:09:49 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 2562s May 02 22:09:49 Then synchronous_standby_names on postgres-0 is set to 'ANY 1 (*)' after 10 seconds # features/steps/quorum_commit.py:39 2563s May 02 22:09:50 2563s May 02 22:09:50 Scenario: check failover with one quorum standby # features/quorum_commit.feature:20 2563s May 02 22:09:50 Given I start postgres-1 # features/steps/basic_replication.py:20 2567s May 02 22:09:54 Then sync key in DCS has sync_standby=postgres-1 after 10 seconds # features/steps/quorum_commit.py:8 2570s May 02 22:09:57 And synchronous_standby_names on postgres-0 is set to 'ANY 1 ("postgres-1")' after 2 seconds # features/steps/quorum_commit.py:39 2570s May 02 22:09:57 When I shut down postgres-0 # features/steps/basic_replication.py:41 2572s May 02 22:09:59 Then postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2573s May 02 22:10:00 And sync key in DCS has quorum=0 after 10 seconds # features/steps/quorum_commit.py:8 2573s May 02 22:10:00 Then synchronous_standby_names on postgres-1 is set to 'ANY 1 (*)' after 10 seconds # features/steps/quorum_commit.py:39 2576s May 02 22:10:03 When I start postgres-0 # features/steps/basic_replication.py:20 2579s May 02 22:10:06 Then sync key in DCS has leader=postgres-1 after 10 seconds # features/steps/quorum_commit.py:8 2579s May 02 22:10:06 Then sync key in DCS has sync_standby=postgres-0 after 10 seconds # features/steps/quorum_commit.py:8 2581s May 02 22:10:08 And synchronous_standby_names on postgres-1 is set to 'ANY 1 ("postgres-0")' after 2 seconds # features/steps/quorum_commit.py:39 2581s May 02 22:10:08 2581s May 02 22:10:08 Scenario: check behavior with three nodes and different replication factor # features/quorum_commit.feature:33 2581s May 02 22:10:08 Given I start postgres-2 # features/steps/basic_replication.py:20 2586s May 02 22:10:13 Then sync key in DCS has sync_standby=postgres-0,postgres-2 after 10 seconds # features/steps/quorum_commit.py:8 2587s May 02 22:10:14 And sync key in DCS has quorum=1 after 2 seconds # features/steps/quorum_commit.py:8 2588s May 02 22:10:14 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 2588s May 02 22:10:14 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 2588s May 02 22:10:15 Then sync key in DCS has quorum=0 after 10 seconds # features/steps/quorum_commit.py:8 2589s May 02 22:10:16 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 2589s May 02 22:10:16 2589s May 02 22:10:16 Scenario: switch from quorum replication to good old multisync and back # features/quorum_commit.feature:42 2589s May 02 22:10:16 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 2589s May 02 22:10:16 And I shut down postgres-0 # features/steps/basic_replication.py:41 2590s May 02 22:10:17 Then synchronous_standby_names on postgres-1 is set to '"postgres-2"' after 10 seconds # features/steps/quorum_commit.py:39 2592s May 02 22:10:19 And sync key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/quorum_commit.py:8 2594s May 02 22:10:21 Then sync key in DCS has quorum=0 after 2 seconds # features/steps/quorum_commit.py:8 2594s May 02 22:10:21 When I issue a PATCH request to http://127.0.0.1:8009/config with {"synchronous_mode": "quorum"} # features/steps/patroni_api.py:73 2594s May 02 22:10:21 And I start postgres-0 # features/steps/basic_replication.py:20 2597s May 02 22:10:24 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 2597s May 02 22:10:24 And sync key in DCS has sync_standby=postgres-0,postgres-2 after 10 seconds # features/steps/quorum_commit.py:8 2597s May 02 22:10:24 Then sync key in DCS has quorum=1 after 2 seconds # features/steps/quorum_commit.py:8 2597s May 02 22:10:24 2597s May 02 22:10:24 Scenario: REST API and patronictl # features/quorum_commit.feature:54 2597s May 02 22:10:24 Given I run patronictl.py list batman # features/steps/patroni_api.py:88 2598s May 02 22:10:25 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2598s May 02 22:10:25 And I receive a response output "Quorum Standby" # features/steps/patroni_api.py:100 2598s May 02 22:10:25 And Status code on GET http://127.0.0.1:8008/quorum is 200 after 3 seconds # features/steps/patroni_api.py:144 2598s May 02 22:10:25 And Status code on GET http://127.0.0.1:8010/quorum is 200 after 3 seconds # features/steps/patroni_api.py:144 2598s May 02 22:10:25 2598s May 02 22:10:25 Scenario: nosync node is removed from voters and synchronous_standby_names # features/quorum_commit.feature:61 2598s May 02 22:10:25 Given I add tag nosync true to postgres-2 config # features/steps/patroni_api.py:139 2598s May 02 22:10:25 When I issue an empty POST request to http://127.0.0.1:8010/reload # features/steps/patroni_api.py:68 2598s May 02 22:10:25 Then I receive a response code 202 # features/steps/patroni_api.py:100 2598s May 02 22:10:25 And sync key in DCS has quorum=0 after 10 seconds # features/steps/quorum_commit.py:8 2601s May 02 22:10:28 And sync key in DCS has sync_standby=postgres-0 after 10 seconds # features/steps/quorum_commit.py:8 2601s May 02 22:10:28 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 22:10:28 And Status code on GET http://127.0.0.1:8010/quorum is 503 after 10 seconds # features/steps/patroni_api.py:144 2608s May 02 22:10:35 2608s May 02 22:10:35 Feature: recovery # features/recovery.feature:1 2608s May 02 22:10:35 We want to check that crashed postgres is started back 2608s May 02 22:10:35 Scenario: check that timeline is not incremented when primary is started after crash # features/recovery.feature:4 2608s May 02 22:10:35 Given I start postgres-0 # features/steps/basic_replication.py:20 2612s May 02 22:10:39 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 2612s May 02 22:10:39 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 2612s May 02 22:10:39 When I start postgres-1 # features/steps/basic_replication.py:20 2617s May 02 22:10:44 And I add the table foo to postgres-0 # features/steps/basic_replication.py:66 2618s May 02 22:10:45 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 2619s May 02 22:10:46 When I kill postmaster on postgres-0 # features/steps/basic_replication.py:56 2619s May 02 22:10:46 waiting for server to shut down.... done 2619s May 02 22:10:46 server stopped 2619s May 02 22:10:46 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2622s May 02 22:10:49 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:63 2622s May 02 22:10:49 Then I receive a response code 200 # features/steps/patroni_api.py:100 2622s May 02 22:10:49 And I receive a response role primary # features/steps/patroni_api.py:100 2622s May 02 22:10:49 And I receive a response timeline 1 # features/steps/patroni_api.py:100 2622s May 02 22:10:49 And "members/postgres-0" key in DCS has state=running after 12 seconds # features/steps/cascading_replication.py:23 2623s May 02 22:10:50 And replication works from postgres-0 to postgres-1 after 15 seconds # features/steps/basic_replication.py:124 2625s May 02 22:10:52 2625s May 02 22:10:52 Scenario: check immediate failover when master_start_timeout=0 # features/recovery.feature:20 2625s May 02 22:10:52 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 2625s May 02 22:10:52 Then I receive a response code 200 # features/steps/patroni_api.py:100 2625s May 02 22:10:52 And Response on GET http://127.0.0.1:8008/config contains master_start_timeout after 10 seconds # features/steps/patroni_api.py:158 2625s May 02 22:10:52 When I kill postmaster on postgres-0 # features/steps/basic_replication.py:56 2625s May 02 22:10:52 waiting for server to shut down.... done 2625s May 02 22:10:52 server stopped 2625s May 02 22:10:52 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 2628s May 02 22:10:55 And postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2628s May 02 22:10:55 2628s May 02 22:10:55 Scenario: check crashed primary demotes after failed attempt to start # features/recovery.feature:28 2628s May 02 22:10:55 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 2628s May 02 22:10:55 Then I receive a response code 200 # features/steps/patroni_api.py:100 2628s May 02 22:10:55 And postgres-0 role is the replica after 10 seconds # features/steps/basic_replication.py:117 2630s May 02 22:10:57 When I ensure postgres-1 fails to start after a failure # features/steps/recovery.py:6 2630s May 02 22:10:57 When I kill postmaster on postgres-1 # features/steps/basic_replication.py:56 2630s May 02 22:10:57 waiting for server to shut down.... done 2630s May 02 22:10:57 server stopped 2630s May 02 22:10:57 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 2631s May 02 22:10:58 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 2635s May 02 22:11:02 2635s May 02 22:11:02 Feature: standby cluster # features/standby_cluster.feature:1 2635s May 02 22:11:02 2635s May 02 22:11:02 Scenario: prepare the cluster with logical slots # features/standby_cluster.feature:2 2635s May 02 22:11:02 Given I start postgres-1 # features/steps/basic_replication.py:20 2640s May 02 22:11:07 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 2640s May 02 22:11:07 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 2640s May 02 22:11:07 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 2640s May 02 22:11:07 Then I receive a response code 200 # features/steps/patroni_api.py:100 2640s May 02 22:11:07 And Response on GET http://127.0.0.1:8009/config contains slots after 10 seconds # features/steps/patroni_api.py:158 2641s May 02 22:11:07 And I sleep for 3 seconds # features/steps/patroni_api.py:41 2644s May 02 22:11:10 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 2644s May 02 22:11:11 Then I receive a response code 200 # features/steps/patroni_api.py:100 2644s May 02 22:11:11 And I do a backup of postgres-1 # features/steps/custom_bootstrap.py:25 2645s May 02 22:11:12 When I start postgres-0 # features/steps/basic_replication.py:20 2650s May 02 22:11:17 Then "members/postgres-0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 2650s May 02 22:11:17 And replication works from postgres-1 to postgres-0 after 15 seconds # features/steps/basic_replication.py:124 2651s May 02 22:11:18 When I issue a GET request to http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:63 2652s May 02 22:11:18 Then I receive a response code 200 # features/steps/patroni_api.py:100 2652s May 02 22:11:18 And I receive a response replication_state streaming # features/steps/patroni_api.py:100 2652s May 02 22:11:18 And "members/postgres-0" key in DCS has replication_state=streaming after 10 seconds # features/steps/cascading_replication.py:23 2652s May 02 22:11:18 2652s May 02 22:11:18 @slot-advance 2652s May 02 22:11:18 Scenario: check permanent logical slots are synced to the replica # features/standby_cluster.feature:22 2652s May 02 22:11:18 Given I run patronictl.py restart batman postgres-1 --force # features/steps/patroni_api.py:88 2654s May 02 22:11:21 Then Logical slot test_logical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 2660s May 02 22:11:27 2660s May 02 22:11:27 Scenario: Detach exiting node from the cluster # features/standby_cluster.feature:26 2660s May 02 22:11:27 When I shut down postgres-1 # features/steps/basic_replication.py:41 2662s May 02 22:11:29 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 2662s May 02 22:11:29 And "members/postgres-0" key in DCS has role=primary after 5 seconds # features/steps/cascading_replication.py:23 2663s May 02 22:11:30 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:63 2663s May 02 22:11:30 Then I receive a response code 200 # features/steps/patroni_api.py:100 2663s May 02 22:11:30 2663s May 02 22:11:30 Scenario: check replication of a single table in a standby cluster # features/standby_cluster.feature:33 2663s May 02 22:11:30 Given I start postgres-1 in a standby cluster batman1 as a clone of postgres-0 # features/steps/standby_cluster.py:23 2666s May 02 22:11:33 Then postgres-1 is a leader of batman1 after 10 seconds # features/steps/custom_bootstrap.py:16 2666s May 02 22:11:33 When I add the table foo to postgres-0 # features/steps/basic_replication.py:66 2666s May 02 22:11:33 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 2666s May 02 22:11:33 When I issue a GET request to http://127.0.0.1:8009/patroni # features/steps/patroni_api.py:63 2666s May 02 22:11:33 Then I receive a response code 200 # features/steps/patroni_api.py:100 2666s May 02 22:11:33 And I receive a response replication_state streaming # features/steps/patroni_api.py:100 2666s May 02 22:11:33 And I sleep for 3 seconds # features/steps/patroni_api.py:41 2669s May 02 22:11:36 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 2669s May 02 22:11:36 Then I receive a response code 503 # features/steps/patroni_api.py:100 2669s May 02 22:11:36 When I issue a GET request to http://127.0.0.1:8009/standby_leader # features/steps/patroni_api.py:63 2669s May 02 22:11:36 Then I receive a response code 200 # features/steps/patroni_api.py:100 2669s May 02 22:11:36 And I receive a response role standby_leader # features/steps/patroni_api.py:100 2669s May 02 22:11:36 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 2669s May 02 22:11:36 When I start postgres-2 in a cluster batman1 # features/steps/standby_cluster.py:12 2673s May 02 22:11:40 Then postgres-2 role is the replica after 24 seconds # features/steps/basic_replication.py:117 2673s May 02 22:11:40 And postgres-2 is replicating from postgres-1 after 10 seconds # features/steps/standby_cluster.py:52 2674s May 02 22:11:41 And table foo is present on postgres-2 after 20 seconds # features/steps/basic_replication.py:105 2674s May 02 22:11:41 When I issue a GET request to http://127.0.0.1:8010/patroni # features/steps/patroni_api.py:63 2674s May 02 22:11:41 Then I receive a response code 200 # features/steps/patroni_api.py:100 2674s May 02 22:11:41 And I receive a response replication_state streaming # features/steps/patroni_api.py:100 2674s May 02 22:11:41 And postgres-1 does not have a replication slot named test_logical # features/steps/slots.py:41 2674s May 02 22:11:41 2674s May 02 22:11:41 Scenario: check switchover # features/standby_cluster.feature:57 2674s May 02 22:11:41 Given I run patronictl.py switchover batman1 --force # features/steps/patroni_api.py:88 2677s May 02 22:11:44 Then Status code on GET http://127.0.0.1:8010/standby_leader is 200 after 10 seconds # features/steps/patroni_api.py:144 2677s May 02 22:11:44 And postgres-1 is replicating from postgres-2 after 32 seconds # features/steps/standby_cluster.py:52 2679s May 02 22:11:46 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 2679s May 02 22:11:46 2679s May 02 22:11:46 Scenario: check failover # features/standby_cluster.feature:63 2679s May 02 22:11:46 When I kill postgres-2 # features/steps/basic_replication.py:46 2680s May 02 22:11:47 And I kill postmaster on postgres-2 # features/steps/basic_replication.py:56 2681s May 02 22:11:47 waiting for server to shut down.... done 2681s May 02 22:11:47 server stopped 2681s May 02 22:11:47 Then postgres-1 is replicating from postgres-0 after 32 seconds # features/steps/standby_cluster.py:52 2701s May 02 22:12:08 And Status code on GET http://127.0.0.1:8009/standby_leader is 200 after 10 seconds # features/steps/patroni_api.py:144 2701s May 02 22:12:08 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 2701s May 02 22:12:08 Then I receive a response code 503 # features/steps/patroni_api.py:100 2701s May 02 22:12:08 And I receive a response role standby_leader # features/steps/patroni_api.py:100 2701s May 02 22:12:08 And replication works from postgres-0 to postgres-1 after 15 seconds # features/steps/basic_replication.py:124 2702s May 02 22:12:09 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 2706s May 02 22:12:13 2706s May 02 22:12:13 Feature: watchdog # features/watchdog.feature:1 2706s May 02 22:12:13 Verify that watchdog gets pinged and triggered under appropriate circumstances. 2706s May 02 22:12:13 Scenario: watchdog is opened and pinged # features/watchdog.feature:4 2706s May 02 22:12:13 Given I start postgres-0 with watchdog # features/steps/watchdog.py:17 2710s May 02 22:12:17 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 2710s May 02 22:12:17 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2710s May 02 22:12:17 And postgres-0 watchdog has been pinged after 10 seconds # features/steps/watchdog.py:22 2711s May 02 22:12:18 And postgres-0 watchdog has a 15 second timeout # features/steps/watchdog.py:35 2711s May 02 22:12:18 2711s May 02 22:12:18 Scenario: watchdog is reconfigured after global ttl changed # features/watchdog.feature:11 2711s May 02 22:12:18 Given I run patronictl.py edit-config batman -s ttl=30 --force # features/steps/patroni_api.py:88 2712s May 02 22:12:19 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2712s May 02 22:12:19 And I receive a response output "+ttl: 30" # features/steps/patroni_api.py:100 2712s May 02 22:12:19 When I sleep for 4 seconds # features/steps/patroni_api.py:41 2716s May 02 22:12:23 Then postgres-0 watchdog has a 25 second timeout # features/steps/watchdog.py:35 2716s May 02 22:12:23 2716s May 02 22:12:23 Scenario: watchdog is disabled during pause # features/watchdog.feature:18 2716s May 02 22:12:23 Given I run patronictl.py pause batman # features/steps/patroni_api.py:88 2717s May 02 22:12:24 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2717s May 02 22:12:24 When I sleep for 2 seconds # features/steps/patroni_api.py:41 2719s May 02 22:12:26 Then postgres-0 watchdog has been closed # features/steps/watchdog.py:30 2719s May 02 22:12:26 2719s May 02 22:12:26 Scenario: watchdog is opened and pinged after resume # features/watchdog.feature:24 2719s May 02 22:12:26 Given I reset postgres-0 watchdog state # features/steps/watchdog.py:40 2719s May 02 22:12:26 And I run patronictl.py resume batman # features/steps/patroni_api.py:88 2721s May 02 22:12:28 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2721s May 02 22:12:28 And postgres-0 watchdog has been pinged after 10 seconds # features/steps/watchdog.py:22 2721s May 02 22:12:28 2721s May 02 22:12:28 Scenario: watchdog is disabled when shutting down # features/watchdog.feature:30 2721s May 02 22:12:28 Given I shut down postgres-0 # features/steps/basic_replication.py:41 2723s May 02 22:12:30 Then postgres-0 watchdog has been closed # features/steps/watchdog.py:30 2723s May 02 22:12:30 2723s May 02 22:12:30 Scenario: watchdog is triggered if patroni stops responding # features/watchdog.feature:34 2723s May 02 22:12:30 Given I reset postgres-0 watchdog state # features/steps/watchdog.py:40 2723s May 02 22:12:30 And I start postgres-0 with watchdog # features/steps/watchdog.py:17 2725s May 02 22:12:32 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2727s May 02 22:12:34 When postgres-0 hangs for 30 seconds # features/steps/watchdog.py:53 2727s May 02 22:12:34 Then postgres-0 watchdog is triggered after 30 seconds # features/steps/watchdog.py:45 2754s May 02 22:13:01 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.5403.XhaNwMCx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.5468.XnjUgTXx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.5524.XoHoKUQx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.5581.XjhBmOsx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.5629.XPccvUTx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.5707.XmcAvOxx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.5759.Xovuklax 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.5764.XFQyNVUx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.5850.XgjKojGx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.5951.XlhEImAx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.5967.XqebAWrx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.6016.XtFtRmax 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.6065.XDvLBrzx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.6183.XZfbvsYx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.6230.XJjOkHxx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.6288.XNMverVx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.6392.XFdKEjix 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.6451.XvjiHmVx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.6515.XWXESkRx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.6611.XmaZqjzx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.6716.XdiLLxKx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.6757.XsvEviyx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.6825.XTEbqGAx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.6864.XGbmuWbx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.6981.XadCiCRx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.7032.XcVMijtx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.7052.XeNoEFYx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.7096.XpFEqlAx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.7148.XtoZwQSx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.7155.XJYGdZix 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.7195.XvQybMqx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.7241.XCBkVRax 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.7414.XooSlAYx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.7418.XMhOGZax 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.7426.XmNxrzox 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.7571.XFdjsXIx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.7618.XTHVTXjx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.7669.XnQJRRXx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.7707.XCmbPbTx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.7760.XFilDiXx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.7910.XQPnxoax 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.7980.XeBAAcJx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.8025.XIXXWyox 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.8103.XCIidgbx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.8184.XigrUDux 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.8246.XbYgCGox 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.8573.XXIHFRBx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.8631.XGELZDUx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.8697.XBoTQQtx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.8795.XGfONiXx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.8846.XYnaxEux 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.8911.XWtWbpYx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.8957.XjPvymvx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.9000.XfHchldx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.9045.XyNanZPx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.9273.XAlCfIvx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.9339.XHXucfYx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.9395.XzeaehXx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.9505.XeuOtSrx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.9635.XXqGCgRx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.9777.XQDgpuox 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.9826.XzYTGCIx 2754s May 02 22:13:01 Skipping duplicate data .coverage.autopkgtest-lxd-qyxdev.9833.XxsuFHgx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.9838.XXRKyRqx 2754s May 02 22:13:01 Combined data file .coverage.autopkgtest-lxd-qyxdev.9854.XZdiqTVx 2757s May 02 22:13:04 Name Stmts Miss Cover 2757s May 02 22:13:04 -------------------------------------------------------------------------------------------------------- 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/_distutils_hack/__init__.py 101 96 5% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/dateutil/__init__.py 13 4 69% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/dateutil/_common.py 25 15 40% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/dateutil/_version.py 13 3 77% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/dateutil/parser/__init__.py 33 4 88% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/dateutil/parser/_parser.py 810 436 46% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/dateutil/parser/isoparser.py 183 150 18% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/dateutil/relativedelta.py 240 206 14% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/dateutil/tz/__init__.py 4 0 100% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/dateutil/tz/_common.py 151 114 25% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/dateutil/tz/_factories.py 49 21 57% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/dateutil/tz/tz.py 794 626 21% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/dateutil/tz/win.py 152 149 2% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/kazoo/__init__.py 1 0 100% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/kazoo/client.py 629 266 58% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/kazoo/exceptions.py 110 1 99% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/kazoo/handlers/__init__.py 0 0 100% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/kazoo/handlers/threading.py 94 15 84% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/kazoo/handlers/utils.py 222 75 66% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/kazoo/hosts.py 18 4 78% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/kazoo/loggingsupport.py 1 0 100% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/kazoo/protocol/__init__.py 0 0 100% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/kazoo/protocol/connection.py 485 175 64% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/kazoo/protocol/paths.py 33 8 76% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/kazoo/protocol/serialization.py 316 111 65% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/kazoo/protocol/states.py 49 9 82% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/kazoo/python2atexit.py 32 19 41% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/kazoo/recipe/__init__.py 0 0 100% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/kazoo/recipe/barrier.py 97 80 18% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/kazoo/recipe/counter.py 49 36 27% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/kazoo/recipe/election.py 16 10 38% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/kazoo/recipe/lease.py 54 36 33% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/kazoo/recipe/lock.py 295 242 18% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/kazoo/recipe/partitioner.py 155 120 23% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/kazoo/recipe/party.py 62 43 31% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/kazoo/recipe/queue.py 157 126 20% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/kazoo/recipe/watchers.py 172 138 20% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/kazoo/retry.py 60 4 93% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/kazoo/security.py 58 35 40% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/kazoo/version.py 1 0 100% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/__init__.py 13 2 85% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/__main__.py 201 65 68% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/api.py 788 296 62% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/async_executor.py 96 15 84% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/collections.py 56 5 91% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/config.py 357 82 77% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/config_generator.py 212 159 25% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/daemon.py 76 3 96% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/dcs/__init__.py 710 108 85% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/dcs/zookeeper.py 289 67 77% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/dynamic_loader.py 35 7 80% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/exceptions.py 16 0 100% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/file_perm.py 47 10 79% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/global_config.py 87 0 100% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/ha.py 1359 386 72% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/log.py 235 79 66% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/postgresql/__init__.py 825 170 79% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/postgresql/available_parameters/__init__.py 24 3 88% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/postgresql/bootstrap.py 254 60 76% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/postgresql/callback_executor.py 55 8 85% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/postgresql/cancellable.py 104 41 61% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/postgresql/config.py 839 217 74% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/postgresql/connection.py 75 1 99% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/postgresql/misc.py 43 8 81% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/postgresql/mpp/__init__.py 89 11 88% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/postgresql/postmaster.py 170 83 51% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/postgresql/rewind.py 416 128 69% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/postgresql/slots.py 349 38 89% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/postgresql/sync.py 154 10 94% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/postgresql/validator.py 157 24 85% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/psycopg.py 46 19 59% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/quorum.py 182 48 74% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/request.py 58 7 88% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/tags.py 38 0 100% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/utils.py 371 122 67% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/validator.py 309 215 30% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/version.py 1 0 100% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/watchdog/__init__.py 2 0 100% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/watchdog/base.py 203 46 77% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/patroni/watchdog/linux.py 135 35 74% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/psutil/__init__.py 945 622 34% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/psutil/_common.py 408 208 49% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/psutil/_pslinux.py 1225 907 26% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/psutil/_psposix.py 84 37 56% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/psycopg2/__init__.py 19 3 84% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/psycopg2/_json.py 64 27 58% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/psycopg2/_range.py 269 172 36% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/psycopg2/errors.py 3 2 33% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/psycopg2/extensions.py 91 25 73% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/puresasl/__init__.py 21 2 90% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/puresasl/client.py 71 47 34% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/puresasl/mechanisms.py 363 263 28% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/six.py 505 259 49% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/urllib3/__init__.py 49 15 69% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/urllib3/_base_connection.py 63 45 29% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/urllib3/_collections.py 231 125 46% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/urllib3/_request_methods.py 54 24 56% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/urllib3/_version.py 13 3 77% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/urllib3/connection.py 389 149 62% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/urllib3/connectionpool.py 344 130 62% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/urllib3/exceptions.py 121 39 68% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/urllib3/fields.py 92 73 21% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/urllib3/filepost.py 37 24 35% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/urllib3/http2/__init__.py 28 21 25% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/urllib3/http2/probe.py 49 31 37% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/urllib3/poolmanager.py 233 88 62% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/urllib3/response.py 634 393 38% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/urllib3/util/__init__.py 10 0 100% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/urllib3/util/connection.py 66 9 86% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/urllib3/util/proxy.py 13 6 54% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/urllib3/util/request.py 104 52 50% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/urllib3/util/response.py 32 17 47% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/urllib3/util/retry.py 174 53 70% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/urllib3/util/ssl_.py 172 73 58% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/urllib3/util/ssl_match_hostname.py 66 54 18% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/urllib3/util/ssltransport.py 152 106 30% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/urllib3/util/timeout.py 71 19 73% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/urllib3/util/url.py 203 76 63% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/urllib3/util/util.py 26 18 31% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/urllib3/util/wait.py 49 38 22% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/yaml/__init__.py 165 109 34% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/yaml/composer.py 92 17 82% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/yaml/constructor.py 479 276 42% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/yaml/cyaml.py 46 24 48% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/yaml/dumper.py 23 12 48% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/yaml/emitter.py 838 769 8% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/yaml/error.py 58 42 28% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/yaml/events.py 61 6 90% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/yaml/loader.py 47 24 49% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/yaml/nodes.py 29 7 76% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/yaml/parser.py 352 180 49% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/yaml/reader.py 122 30 75% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/yaml/representer.py 248 176 29% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/yaml/resolver.py 135 76 44% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/yaml/scanner.py 758 415 45% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/yaml/serializer.py 85 70 18% 2757s May 02 22:13:04 /usr/lib/python3/dist-packages/yaml/tokens.py 76 17 78% 2757s May 02 22:13:04 patroni/__init__.py 13 2 85% 2757s May 02 22:13:04 patroni/__main__.py 201 201 0% 2757s May 02 22:13:04 patroni/api.py 788 788 0% 2757s May 02 22:13:04 patroni/async_executor.py 96 69 28% 2757s May 02 22:13:04 patroni/collections.py 56 15 73% 2757s May 02 22:13:04 patroni/config.py 357 184 48% 2757s May 02 22:13:04 patroni/config_generator.py 212 212 0% 2757s May 02 22:13:04 patroni/ctl.py 936 395 58% 2757s May 02 22:13:04 patroni/daemon.py 76 76 0% 2757s May 02 22:13:04 patroni/dcs/__init__.py 710 317 55% 2757s May 02 22:13:04 patroni/dcs/consul.py 482 482 0% 2757s May 02 22:13:04 patroni/dcs/etcd3.py 679 679 0% 2757s May 02 22:13:04 patroni/dcs/etcd.py 603 603 0% 2757s May 02 22:13:04 patroni/dcs/exhibitor.py 62 62 0% 2757s May 02 22:13:04 patroni/dcs/kubernetes.py 943 943 0% 2757s May 02 22:13:04 patroni/dcs/raft.py 319 319 0% 2757s May 02 22:13:04 patroni/dcs/zookeeper.py 289 150 48% 2757s May 02 22:13:04 patroni/dynamic_loader.py 35 7 80% 2757s May 02 22:13:04 patroni/exceptions.py 16 1 94% 2757s May 02 22:13:04 patroni/file_perm.py 47 17 64% 2757s May 02 22:13:04 patroni/global_config.py 87 19 78% 2757s May 02 22:13:04 patroni/ha.py 1359 1359 0% 2757s May 02 22:13:04 patroni/log.py 235 183 22% 2757s May 02 22:13:04 patroni/postgresql/__init__.py 825 653 21% 2757s May 02 22:13:04 patroni/postgresql/available_parameters/__init__.py 24 6 75% 2757s May 02 22:13:04 patroni/postgresql/bootstrap.py 254 224 12% 2757s May 02 22:13:04 patroni/postgresql/callback_executor.py 55 34 38% 2757s May 02 22:13:04 patroni/postgresql/cancellable.py 104 84 19% 2757s May 02 22:13:04 patroni/postgresql/config.py 839 719 14% 2757s May 02 22:13:04 patroni/postgresql/connection.py 75 50 33% 2757s May 02 22:13:04 patroni/postgresql/misc.py 43 30 30% 2757s May 02 22:13:04 patroni/postgresql/mpp/__init__.py 89 21 76% 2757s May 02 22:13:04 patroni/postgresql/mpp/citus.py 366 366 0% 2757s May 02 22:13:04 patroni/postgresql/postmaster.py 170 139 18% 2757s May 02 22:13:04 patroni/postgresql/rewind.py 416 416 0% 2757s May 02 22:13:04 patroni/postgresql/slots.py 349 300 14% 2757s May 02 22:13:04 patroni/postgresql/sync.py 154 114 26% 2757s May 02 22:13:04 patroni/postgresql/validator.py 157 52 67% 2757s May 02 22:13:04 patroni/psycopg.py 46 32 30% 2757s May 02 22:13:04 patroni/quorum.py 182 182 0% 2757s May 02 22:13:04 patroni/raft_controller.py 22 22 0% 2757s May 02 22:13:04 patroni/request.py 58 6 90% 2757s May 02 22:13:04 patroni/scripts/__init__.py 0 0 100% 2757s May 02 22:13:04 patroni/scripts/aws.py 59 59 0% 2757s May 02 22:13:04 patroni/scripts/barman/__init__.py 0 0 100% 2757s May 02 22:13:04 patroni/scripts/barman/cli.py 50 50 0% 2757s May 02 22:13:04 patroni/scripts/barman/config_switch.py 50 50 0% 2757s May 02 22:13:04 patroni/scripts/barman/recover.py 36 36 0% 2757s May 02 22:13:04 patroni/scripts/barman/utils.py 93 93 0% 2757s May 02 22:13:04 patroni/scripts/wale_restore.py 207 207 0% 2757s May 02 22:13:04 patroni/tags.py 38 11 71% 2757s May 02 22:13:04 patroni/utils.py 371 245 34% 2757s May 02 22:13:04 patroni/validator.py 309 222 28% 2757s May 02 22:13:04 patroni/version.py 1 0 100% 2757s May 02 22:13:04 patroni/watchdog/__init__.py 2 2 0% 2757s May 02 22:13:04 patroni/watchdog/base.py 203 203 0% 2757s May 02 22:13:04 patroni/watchdog/linux.py 135 135 0% 2757s May 02 22:13:04 -------------------------------------------------------------------------------------------------------- 2757s May 02 22:13:04 TOTAL 40750 24306 40% 2757s May 02 22:13:04 12 features passed, 0 failed, 1 skipped 2757s May 02 22:13:04 53 scenarios passed, 0 failed, 5 skipped 2757s May 02 22:13:04 517 steps passed, 0 failed, 68 skipped, 0 undefined 2757s May 02 22:13:04 Took 8m38.218s 2758s ### End 17 acceptance-zookeeper -e dcs_failsafe_mode ### 2758s + echo '### End 17 acceptance-zookeeper -e dcs_failsafe_mode ###' 2758s + rm -f '/tmp/pgpass?' 2758s ++ id -u 2758s + '[' 0 -eq 0 ']' 2758s + '[' -x /etc/init.d/zookeeper ']' 2758s + /etc/init.d/zookeeper stop 2758s Stopping zookeeper (via systemctl): zookeeper.service. 2758s autopkgtest [22:13:05]: test acceptance-zookeeper: -----------------------] 2762s acceptance-zookeeper PASS 2762s autopkgtest [22:13:09]: test acceptance-zookeeper: - - - - - - - - - - results - - - - - - - - - - 2766s autopkgtest [22:13:13]: test acceptance-raft: preparing testbed 2789s autopkgtest [22:13:36]: testbed dpkg architecture: armhf 2791s autopkgtest [22:13:38]: testbed apt version: 3.0.0 2794s autopkgtest [22:13:41]: @@@@@@@@@@@@@@@@@@@@ test bed setup 2796s autopkgtest [22:13:43]: testbed release detected to be: questing 2804s autopkgtest [22:13:51]: updating testbed package index (apt update) 2806s Get:1 http://ftpmaster.internal/ubuntu questing-proposed InRelease [110 kB] 2806s Get:2 http://ftpmaster.internal/ubuntu questing InRelease [110 kB] 2806s Get:3 http://ftpmaster.internal/ubuntu questing-updates InRelease [110 kB] 2806s Get:4 http://ftpmaster.internal/ubuntu questing-security InRelease [110 kB] 2806s Get:5 http://ftpmaster.internal/ubuntu questing-proposed/main Sources [167 kB] 2806s Get:6 http://ftpmaster.internal/ubuntu questing-proposed/universe Sources [1968 kB] 2806s Get:7 http://ftpmaster.internal/ubuntu questing-proposed/multiverse Sources [43.1 kB] 2806s Get:8 http://ftpmaster.internal/ubuntu questing-proposed/main armhf Packages [201 kB] 2806s Get:9 http://ftpmaster.internal/ubuntu questing-proposed/universe armhf Packages [1375 kB] 2806s Get:10 http://ftpmaster.internal/ubuntu questing-proposed/multiverse armhf Packages [12.9 kB] 2806s Get:11 http://ftpmaster.internal/ubuntu questing/main Sources [1386 kB] 2806s Get:12 http://ftpmaster.internal/ubuntu questing/universe Sources [21.1 MB] 2807s Get:13 http://ftpmaster.internal/ubuntu questing/multiverse Sources [299 kB] 2807s Get:14 http://ftpmaster.internal/ubuntu questing/main armhf Packages [1358 kB] 2807s Get:15 http://ftpmaster.internal/ubuntu questing/universe armhf Packages [15.2 MB] 2808s Get:16 http://ftpmaster.internal/ubuntu questing/multiverse armhf Packages [173 kB] 2811s Fetched 43.7 MB in 5s (8185 kB/s) 2812s Reading package lists... 2818s autopkgtest [22:14:05]: upgrading testbed (apt dist-upgrade and autopurge) 2820s Reading package lists... 2820s Building dependency tree... 2820s Reading state information... 2821s Calculating upgrade...Starting pkgProblemResolver with broken count: 0 2821s Starting 2 pkgProblemResolver with broken count: 0 2821s Done 2822s Entering ResolveByKeep 2822s 2822s Calculating upgrade... 2823s The following packages will be upgraded: 2823s base-files distro-info-data dpkg dpkg-dev fwupd htop libdpkg-perl libftdi1-2 2823s libfwupd3 libnpth0t64 libsensors-config libsensors5 liburcu8t64 2823s motd-news-config nano ubuntu-pro-client ubuntu-pro-client-l10n usb.ids 2823s 18 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 2823s Need to get 5303 kB of archives. 2823s After this operation, 3722 kB disk space will be freed. 2823s Get:1 http://ftpmaster.internal/ubuntu questing/main armhf motd-news-config all 13.7ubuntu1 [5260 B] 2823s Get:2 http://ftpmaster.internal/ubuntu questing/main armhf base-files armhf 13.7ubuntu1 [75.4 kB] 2824s Get:3 http://ftpmaster.internal/ubuntu questing/main armhf dpkg armhf 1.22.18ubuntu3 [1254 kB] 2824s Get:4 http://ftpmaster.internal/ubuntu questing/main armhf libnpth0t64 armhf 1.8-3 [7716 B] 2824s Get:5 http://ftpmaster.internal/ubuntu questing/main armhf distro-info-data all 0.64 [6664 B] 2824s Get:6 http://ftpmaster.internal/ubuntu questing/main armhf ubuntu-pro-client-l10n armhf 35.1ubuntu0 [19.7 kB] 2824s Get:7 http://ftpmaster.internal/ubuntu questing/main armhf ubuntu-pro-client armhf 35.1ubuntu0 [258 kB] 2824s Get:8 http://ftpmaster.internal/ubuntu questing/main armhf libsensors-config all 1:3.6.2-2 [6756 B] 2824s Get:9 http://ftpmaster.internal/ubuntu questing/main armhf libsensors5 armhf 1:3.6.2-2 [26.8 kB] 2824s Get:10 http://ftpmaster.internal/ubuntu questing/main armhf liburcu8t64 armhf 0.15.2-2 [57.3 kB] 2824s Get:11 http://ftpmaster.internal/ubuntu questing/main armhf nano armhf 8.4-1 [278 kB] 2824s Get:12 http://ftpmaster.internal/ubuntu questing/main armhf usb.ids all 2025.04.01-1 [223 kB] 2824s Get:13 http://ftpmaster.internal/ubuntu questing/main armhf dpkg-dev all 1.22.18ubuntu3 [1089 kB] 2824s Get:14 http://ftpmaster.internal/ubuntu questing/main armhf libdpkg-perl all 1.22.18ubuntu3 [281 kB] 2824s Get:15 http://ftpmaster.internal/ubuntu questing/main armhf fwupd armhf 2.0.8-3 [1414 kB] 2824s Get:16 http://ftpmaster.internal/ubuntu questing/main armhf libfwupd3 armhf 2.0.8-3 [126 kB] 2824s Get:17 http://ftpmaster.internal/ubuntu questing/main armhf htop armhf 3.4.1-4 [147 kB] 2824s Get:18 http://ftpmaster.internal/ubuntu questing/main armhf libftdi1-2 armhf 1.5-10 [27.8 kB] 2824s Fetched 5303 kB in 1s (6915 kB/s) 2825s (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.) 2825s Preparing to unpack .../motd-news-config_13.7ubuntu1_all.deb ... 2825s Unpacking motd-news-config (13.7ubuntu1) over (13.6ubuntu2) ... 2825s Preparing to unpack .../base-files_13.7ubuntu1_armhf.deb ... 2825s Unpacking base-files (13.7ubuntu1) over (13.6ubuntu2) ... 2825s Setting up base-files (13.7ubuntu1) ... 2825s Installing new version of config file /etc/issue ... 2825s Installing new version of config file /etc/issue.net ... 2825s Installing new version of config file /etc/lsb-release ... 2826s motd-news.service is a disabled or a static unit not running, not starting it. 2826s (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.) 2826s Preparing to unpack .../dpkg_1.22.18ubuntu3_armhf.deb ... 2826s Unpacking dpkg (1.22.18ubuntu3) over (1.22.18ubuntu2) ... 2826s Setting up dpkg (1.22.18ubuntu3) ... 2826s (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.) 2826s Preparing to unpack .../libnpth0t64_1.8-3_armhf.deb ... 2826s Unpacking libnpth0t64:armhf (1.8-3) over (1.8-2) ... 2826s Setting up libnpth0t64:armhf (1.8-3) ... 2826s (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.) 2826s Preparing to unpack .../00-distro-info-data_0.64_all.deb ... 2826s Unpacking distro-info-data (0.64) over (0.63) ... 2826s Preparing to unpack .../01-ubuntu-pro-client-l10n_35.1ubuntu0_armhf.deb ... 2826s Unpacking ubuntu-pro-client-l10n (35.1ubuntu0) over (35) ... 2827s Preparing to unpack .../02-ubuntu-pro-client_35.1ubuntu0_armhf.deb ... 2827s Unpacking ubuntu-pro-client (35.1ubuntu0) over (35) ... 2827s Preparing to unpack .../03-libsensors-config_1%3a3.6.2-2_all.deb ... 2827s Unpacking libsensors-config (1:3.6.2-2) over (1:3.6.0-10) ... 2827s Preparing to unpack .../04-libsensors5_1%3a3.6.2-2_armhf.deb ... 2827s Unpacking libsensors5:armhf (1:3.6.2-2) over (1:3.6.0-10) ... 2827s Preparing to unpack .../05-liburcu8t64_0.15.2-2_armhf.deb ... 2827s Unpacking liburcu8t64:armhf (0.15.2-2) over (0.15.1-1) ... 2827s Preparing to unpack .../06-nano_8.4-1_armhf.deb ... 2827s Unpacking nano (8.4-1) over (8.3-1) ... 2827s Preparing to unpack .../07-usb.ids_2025.04.01-1_all.deb ... 2827s Unpacking usb.ids (2025.04.01-1) over (2025.01.14-1) ... 2827s Preparing to unpack .../08-dpkg-dev_1.22.18ubuntu3_all.deb ... 2827s Unpacking dpkg-dev (1.22.18ubuntu3) over (1.22.18ubuntu2) ... 2827s Preparing to unpack .../09-libdpkg-perl_1.22.18ubuntu3_all.deb ... 2827s Unpacking libdpkg-perl (1.22.18ubuntu3) over (1.22.18ubuntu2) ... 2828s Preparing to unpack .../10-fwupd_2.0.8-3_armhf.deb ... 2828s Unpacking fwupd (2.0.8-3) over (2.0.7-1) ... 2828s dpkg: warning: unable to delete old directory '/etc/grub.d': Directory not empty 2828s Preparing to unpack .../11-libfwupd3_2.0.8-3_armhf.deb ... 2828s Unpacking libfwupd3:armhf (2.0.8-3) over (2.0.7-1) ... 2828s Preparing to unpack .../12-htop_3.4.1-4_armhf.deb ... 2828s Unpacking htop (3.4.1-4) over (3.4.0-2) ... 2828s Preparing to unpack .../13-libftdi1-2_1.5-10_armhf.deb ... 2828s Unpacking libftdi1-2:armhf (1.5-10) over (1.5-8build1) ... 2828s Setting up motd-news-config (13.7ubuntu1) ... 2828s Setting up liburcu8t64:armhf (0.15.2-2) ... 2828s Setting up distro-info-data (0.64) ... 2828s Setting up htop (3.4.1-4) ... 2828s Setting up libsensors-config (1:3.6.2-2) ... 2828s Installing new version of config file /etc/sensors3.conf ... 2828s Setting up libfwupd3:armhf (2.0.8-3) ... 2828s Setting up libftdi1-2:armhf (1.5-10) ... 2828s Setting up usb.ids (2025.04.01-1) ... 2828s Setting up libsensors5:armhf (1:3.6.2-2) ... 2828s Setting up libdpkg-perl (1.22.18ubuntu3) ... 2828s Setting up nano (8.4-1) ... 2828s Installing new version of config file /etc/nanorc ... 2828s Setting up ubuntu-pro-client (35.1ubuntu0) ... 2828s apparmor_parser: Unable to replace "ubuntu_pro_apt_news". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 2828s 2829s apparmor_parser: Unable to replace "apt_methods". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 2829s 2829s apparmor_parser: Unable to replace "ubuntu_pro_esm_cache". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 2829s 2830s Setting up fwupd (2.0.8-3) ... 2831s fwupd-refresh.service is a disabled or a static unit not running, not starting it. 2831s fwupd.service is a disabled or a static unit not running, not starting it. 2831s Setting up ubuntu-pro-client-l10n (35.1ubuntu0) ... 2831s Setting up dpkg-dev (1.22.18ubuntu3) ... 2831s Processing triggers for dbus (1.16.2-2ubuntu1) ... 2831s Processing triggers for install-info (7.1.1-1) ... 2831s Processing triggers for libc-bin (2.41-6ubuntu1) ... 2831s Processing triggers for man-db (2.13.0-1) ... 2833s Processing triggers for plymouth-theme-ubuntu-text (24.004.60-2ubuntu7) ... 2833s Processing triggers for initramfs-tools (0.147ubuntu1) ... 2835s Reading package lists... 2835s Building dependency tree... 2835s Reading state information... 2836s Starting pkgProblemResolver with broken count: 0 2836s Starting 2 pkgProblemResolver with broken count: 0 2836s Done 2836s Solving dependencies... 2837s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 2839s autopkgtest [22:14:26]: rebooting testbed after setup commands that affected boot 2902s Reading package lists... 2903s Building dependency tree... 2903s Reading state information... 2903s Starting pkgProblemResolver with broken count: 0 2903s Starting 2 pkgProblemResolver with broken count: 0 2903s Done 2905s The following NEW packages will be installed: 2905s fonts-font-awesome fonts-lato libio-pty-perl libipc-run-perl libjs-jquery 2905s libjs-sphinxdoc libjs-underscore libjson-perl libllvm20 libpq5 2905s libtime-duration-perl libtimedate-perl libxslt1.1 moreutils patroni 2905s patroni-doc postgresql postgresql-17 postgresql-client-17 2905s postgresql-client-common postgresql-common postgresql-common-dev 2905s python3-behave python3-click python3-coverage python3-parse 2905s python3-parse-type python3-prettytable python3-psutil python3-psycopg2 2905s python3-pysyncobj python3-wcwidth python3-ydiff sphinx-rtd-theme-common 2905s ssl-cert 2905s 0 upgraded, 35 newly installed, 0 to remove and 0 not upgraded. 2905s Need to get 53.0 MB of archives. 2905s After this operation, 212 MB of additional disk space will be used. 2905s Get:1 http://ftpmaster.internal/ubuntu questing/main armhf fonts-lato all 2.015-1 [2781 kB] 2905s Get:2 http://ftpmaster.internal/ubuntu questing/main armhf libjson-perl all 4.10000-1 [81.9 kB] 2905s Get:3 http://ftpmaster.internal/ubuntu questing/main armhf postgresql-client-common all 274 [47.6 kB] 2905s Get:4 http://ftpmaster.internal/ubuntu questing/main armhf libio-pty-perl armhf 1:1.20-1build3 [31.0 kB] 2905s Get:5 http://ftpmaster.internal/ubuntu questing/main armhf libipc-run-perl all 20231003.0-2 [91.5 kB] 2905s Get:6 http://ftpmaster.internal/ubuntu questing/main armhf postgresql-common-dev all 274 [73.0 kB] 2905s Get:7 http://ftpmaster.internal/ubuntu questing/main armhf ssl-cert all 1.1.3ubuntu1 [18.7 kB] 2905s Get:8 http://ftpmaster.internal/ubuntu questing/main armhf postgresql-common all 274 [101 kB] 2905s Get:9 http://ftpmaster.internal/ubuntu questing/main armhf fonts-font-awesome all 5.0.10+really4.7.0~dfsg-4.1 [516 kB] 2905s Get:10 http://ftpmaster.internal/ubuntu questing/main armhf libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 2905s Get:11 http://ftpmaster.internal/ubuntu questing/main armhf libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [118 kB] 2905s Get:12 http://ftpmaster.internal/ubuntu questing/main armhf libjs-sphinxdoc all 8.1.3-5 [31.0 kB] 2905s Get:13 http://ftpmaster.internal/ubuntu questing/main armhf libllvm20 armhf 1:20.1.2-0ubuntu1 [29.6 MB] 2906s Get:14 http://ftpmaster.internal/ubuntu questing/main armhf libpq5 armhf 17.4-1 [125 kB] 2906s Get:15 http://ftpmaster.internal/ubuntu questing/main armhf libtime-duration-perl all 1.21-2 [12.3 kB] 2906s Get:16 http://ftpmaster.internal/ubuntu questing/main armhf libtimedate-perl all 2.3300-2 [34.0 kB] 2906s Get:17 http://ftpmaster.internal/ubuntu questing/main armhf libxslt1.1 armhf 1.1.39-0exp1ubuntu4 [151 kB] 2906s Get:18 http://ftpmaster.internal/ubuntu questing/universe armhf moreutils armhf 0.69-1 [53.5 kB] 2906s Get:19 http://ftpmaster.internal/ubuntu questing/main armhf python3-click all 8.2.0+0.really.8.1.8-1 [80.0 kB] 2906s Get:20 http://ftpmaster.internal/ubuntu questing/main armhf python3-wcwidth all 0.2.13+dfsg1-1 [26.3 kB] 2906s Get:21 http://ftpmaster.internal/ubuntu questing/main armhf python3-prettytable all 3.12.0-1 [36.5 kB] 2906s Get:22 http://ftpmaster.internal/ubuntu questing-proposed/main armhf python3-psutil armhf 7.0.0-2 [187 kB] 2906s Get:23 http://ftpmaster.internal/ubuntu questing/universe armhf python3-ydiff all 1.4.2-1 [19.0 kB] 2906s Get:24 http://ftpmaster.internal/ubuntu questing/main armhf python3-psycopg2 armhf 2.9.10-1build1 [125 kB] 2906s Get:25 http://ftpmaster.internal/ubuntu questing/universe armhf python3-pysyncobj all 0.3.14-2 [61.9 kB] 2906s Get:26 http://ftpmaster.internal/ubuntu questing/universe armhf patroni all 4.0.4-7 [281 kB] 2906s Get:27 http://ftpmaster.internal/ubuntu questing/main armhf sphinx-rtd-theme-common all 3.0.2+dfsg-2 [1014 kB] 2906s Get:28 http://ftpmaster.internal/ubuntu questing/universe armhf patroni-doc all 4.0.4-7 [526 kB] 2907s Get:29 http://ftpmaster.internal/ubuntu questing/main armhf postgresql-client-17 armhf 17.4-1 [1285 kB] 2907s Get:30 http://ftpmaster.internal/ubuntu questing/main armhf postgresql-17 armhf 17.4-1 [14.8 MB] 2907s Get:31 http://ftpmaster.internal/ubuntu questing/main armhf postgresql all 17+274 [14.4 kB] 2907s Get:32 http://ftpmaster.internal/ubuntu questing/universe armhf python3-parse all 1.20.2-1 [27.0 kB] 2907s Get:33 http://ftpmaster.internal/ubuntu questing/universe armhf python3-parse-type all 0.6.4-2 [23.5 kB] 2907s Get:34 http://ftpmaster.internal/ubuntu questing/universe armhf python3-behave all 1.2.6-6 [98.6 kB] 2907s Get:35 http://ftpmaster.internal/ubuntu questing/universe armhf python3-coverage armhf 7.6.0+dfsg1-2build1 [152 kB] 2907s Preconfiguring packages ... 2908s /var/cache/debconf/tmp.ci/postgresql.config.PF3jb8: 12: pg_lsclusters: not found 2908s Fetched 53.0 MB in 3s (21.2 MB/s) 2908s Selecting previously unselected package fonts-lato. 2908s (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 ... 63951 files and directories currently installed.) 2908s Preparing to unpack .../00-fonts-lato_2.015-1_all.deb ... 2908s Unpacking fonts-lato (2.015-1) ... 2908s Selecting previously unselected package libjson-perl. 2908s Preparing to unpack .../01-libjson-perl_4.10000-1_all.deb ... 2908s Unpacking libjson-perl (4.10000-1) ... 2908s Selecting previously unselected package postgresql-client-common. 2908s Preparing to unpack .../02-postgresql-client-common_274_all.deb ... 2908s Unpacking postgresql-client-common (274) ... 2908s Selecting previously unselected package libio-pty-perl. 2908s Preparing to unpack .../03-libio-pty-perl_1%3a1.20-1build3_armhf.deb ... 2908s Unpacking libio-pty-perl (1:1.20-1build3) ... 2908s Selecting previously unselected package libipc-run-perl. 2908s Preparing to unpack .../04-libipc-run-perl_20231003.0-2_all.deb ... 2908s Unpacking libipc-run-perl (20231003.0-2) ... 2908s Selecting previously unselected package postgresql-common-dev. 2908s Preparing to unpack .../05-postgresql-common-dev_274_all.deb ... 2908s Unpacking postgresql-common-dev (274) ... 2908s Selecting previously unselected package ssl-cert. 2908s Preparing to unpack .../06-ssl-cert_1.1.3ubuntu1_all.deb ... 2908s Unpacking ssl-cert (1.1.3ubuntu1) ... 2908s Selecting previously unselected package postgresql-common. 2908s Preparing to unpack .../07-postgresql-common_274_all.deb ... 2908s Adding 'diversion of /usr/bin/pg_config to /usr/bin/pg_config.libpq-dev by postgresql-common' 2908s Unpacking postgresql-common (274) ... 2908s Selecting previously unselected package fonts-font-awesome. 2908s Preparing to unpack .../08-fonts-font-awesome_5.0.10+really4.7.0~dfsg-4.1_all.deb ... 2908s Unpacking fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 2908s Selecting previously unselected package libjs-jquery. 2908s Preparing to unpack .../09-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 2908s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 2908s Selecting previously unselected package libjs-underscore. 2908s Preparing to unpack .../10-libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ... 2908s Unpacking libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 2908s Selecting previously unselected package libjs-sphinxdoc. 2908s Preparing to unpack .../11-libjs-sphinxdoc_8.1.3-5_all.deb ... 2908s Unpacking libjs-sphinxdoc (8.1.3-5) ... 2908s Selecting previously unselected package libllvm20:armhf. 2908s Preparing to unpack .../12-libllvm20_1%3a20.1.2-0ubuntu1_armhf.deb ... 2908s Unpacking libllvm20:armhf (1:20.1.2-0ubuntu1) ... 2909s Selecting previously unselected package libpq5:armhf. 2909s Preparing to unpack .../13-libpq5_17.4-1_armhf.deb ... 2909s Unpacking libpq5:armhf (17.4-1) ... 2910s Selecting previously unselected package libtime-duration-perl. 2910s Preparing to unpack .../14-libtime-duration-perl_1.21-2_all.deb ... 2910s Unpacking libtime-duration-perl (1.21-2) ... 2910s Selecting previously unselected package libtimedate-perl. 2910s Preparing to unpack .../15-libtimedate-perl_2.3300-2_all.deb ... 2910s Unpacking libtimedate-perl (2.3300-2) ... 2910s Selecting previously unselected package libxslt1.1:armhf. 2910s Preparing to unpack .../16-libxslt1.1_1.1.39-0exp1ubuntu4_armhf.deb ... 2910s Unpacking libxslt1.1:armhf (1.1.39-0exp1ubuntu4) ... 2910s Selecting previously unselected package moreutils. 2910s Preparing to unpack .../17-moreutils_0.69-1_armhf.deb ... 2910s Unpacking moreutils (0.69-1) ... 2910s Selecting previously unselected package python3-click. 2910s Preparing to unpack .../18-python3-click_8.2.0+0.really.8.1.8-1_all.deb ... 2910s Unpacking python3-click (8.2.0+0.really.8.1.8-1) ... 2910s Selecting previously unselected package python3-wcwidth. 2910s Preparing to unpack .../19-python3-wcwidth_0.2.13+dfsg1-1_all.deb ... 2910s Unpacking python3-wcwidth (0.2.13+dfsg1-1) ... 2910s Selecting previously unselected package python3-prettytable. 2910s Preparing to unpack .../20-python3-prettytable_3.12.0-1_all.deb ... 2910s Unpacking python3-prettytable (3.12.0-1) ... 2910s Selecting previously unselected package python3-psutil. 2910s Preparing to unpack .../21-python3-psutil_7.0.0-2_armhf.deb ... 2910s Unpacking python3-psutil (7.0.0-2) ... 2910s Selecting previously unselected package python3-ydiff. 2910s Preparing to unpack .../22-python3-ydiff_1.4.2-1_all.deb ... 2910s Unpacking python3-ydiff (1.4.2-1) ... 2910s Selecting previously unselected package python3-psycopg2. 2910s Preparing to unpack .../23-python3-psycopg2_2.9.10-1build1_armhf.deb ... 2910s Unpacking python3-psycopg2 (2.9.10-1build1) ... 2910s Selecting previously unselected package python3-pysyncobj. 2910s Preparing to unpack .../24-python3-pysyncobj_0.3.14-2_all.deb ... 2910s Unpacking python3-pysyncobj (0.3.14-2) ... 2910s Selecting previously unselected package patroni. 2910s Preparing to unpack .../25-patroni_4.0.4-7_all.deb ... 2910s Unpacking patroni (4.0.4-7) ... 2910s Selecting previously unselected package sphinx-rtd-theme-common. 2910s Preparing to unpack .../26-sphinx-rtd-theme-common_3.0.2+dfsg-2_all.deb ... 2910s Unpacking sphinx-rtd-theme-common (3.0.2+dfsg-2) ... 2910s Selecting previously unselected package patroni-doc. 2910s Preparing to unpack .../27-patroni-doc_4.0.4-7_all.deb ... 2910s Unpacking patroni-doc (4.0.4-7) ... 2910s Selecting previously unselected package postgresql-client-17. 2910s Preparing to unpack .../28-postgresql-client-17_17.4-1_armhf.deb ... 2910s Unpacking postgresql-client-17 (17.4-1) ... 2910s Selecting previously unselected package postgresql-17. 2910s Preparing to unpack .../29-postgresql-17_17.4-1_armhf.deb ... 2910s Unpacking postgresql-17 (17.4-1) ... 2911s Selecting previously unselected package postgresql. 2911s Preparing to unpack .../30-postgresql_17+274_all.deb ... 2911s Unpacking postgresql (17+274) ... 2911s Selecting previously unselected package python3-parse. 2911s Preparing to unpack .../31-python3-parse_1.20.2-1_all.deb ... 2911s Unpacking python3-parse (1.20.2-1) ... 2911s Selecting previously unselected package python3-parse-type. 2911s Preparing to unpack .../32-python3-parse-type_0.6.4-2_all.deb ... 2911s Unpacking python3-parse-type (0.6.4-2) ... 2911s Selecting previously unselected package python3-behave. 2911s Preparing to unpack .../33-python3-behave_1.2.6-6_all.deb ... 2911s Unpacking python3-behave (1.2.6-6) ... 2911s Selecting previously unselected package python3-coverage. 2911s Preparing to unpack .../34-python3-coverage_7.6.0+dfsg1-2build1_armhf.deb ... 2911s Unpacking python3-coverage (7.6.0+dfsg1-2build1) ... 2911s Setting up postgresql-client-common (274) ... 2911s Setting up fonts-lato (2.015-1) ... 2911s Setting up libio-pty-perl (1:1.20-1build3) ... 2911s Setting up python3-pysyncobj (0.3.14-2) ... 2911s Setting up python3-ydiff (1.4.2-1) ... 2911s Setting up libpq5:armhf (17.4-1) ... 2911s Setting up python3-coverage (7.6.0+dfsg1-2build1) ... 2912s Setting up python3-click (8.2.0+0.really.8.1.8-1) ... 2912s Setting up python3-psutil (7.0.0-2) ... 2912s Setting up python3-wcwidth (0.2.13+dfsg1-1) ... 2912s Setting up ssl-cert (1.1.3ubuntu1) ... 2913s Created symlink '/etc/systemd/system/multi-user.target.wants/ssl-cert.service' → '/usr/lib/systemd/system/ssl-cert.service'. 2914s Setting up libllvm20:armhf (1:20.1.2-0ubuntu1) ... 2914s Setting up python3-psycopg2 (2.9.10-1build1) ... 2914s Setting up libipc-run-perl (20231003.0-2) ... 2914s Setting up libtime-duration-perl (1.21-2) ... 2914s Setting up libtimedate-perl (2.3300-2) ... 2914s Setting up python3-parse (1.20.2-1) ... 2914s Setting up libjson-perl (4.10000-1) ... 2914s Setting up libxslt1.1:armhf (1.1.39-0exp1ubuntu4) ... 2914s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 2914s Setting up python3-prettytable (3.12.0-1) ... 2914s Setting up fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 2914s Setting up sphinx-rtd-theme-common (3.0.2+dfsg-2) ... 2914s Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 2914s Setting up postgresql-common-dev (274) ... 2914s Setting up moreutils (0.69-1) ... 2914s Setting up postgresql-client-17 (17.4-1) ... 2915s 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 2915s Setting up python3-parse-type (0.6.4-2) ... 2915s Setting up postgresql-common (274) ... 2915s Creating config file /etc/postgresql-common/createcluster.conf with new version 2916s Building PostgreSQL dictionaries from installed myspell/hunspell packages... 2916s Removing obsolete dictionary files: 2916s Created symlink '/etc/systemd/system/multi-user.target.wants/postgresql.service' → '/usr/lib/systemd/system/postgresql.service'. 2917s Setting up libjs-sphinxdoc (8.1.3-5) ... 2917s Setting up python3-behave (1.2.6-6) ... 2917s /usr/lib/python3/dist-packages/behave/formatter/ansi_escapes.py:57: SyntaxWarning: invalid escape sequence '\[' 2917s _ANSI_ESCAPE_PATTERN = re.compile(u"\x1b\[\d+[mA]", re.UNICODE) 2917s /usr/lib/python3/dist-packages/behave/matchers.py:284: SyntaxWarning: invalid escape sequence '\d' 2917s @parse.with_pattern(r"\d+") 2917s Setting up patroni (4.0.4-7) ... 2917s Created symlink '/etc/systemd/system/multi-user.target.wants/patroni.service' → '/usr/lib/systemd/system/patroni.service'. 2918s Setting up postgresql-17 (17.4-1) ... 2919s Creating new PostgreSQL cluster 17/main ... 2919s /usr/lib/postgresql/17/bin/initdb -D /var/lib/postgresql/17/main --auth-local peer --auth-host scram-sha-256 --no-instructions 2919s The files belonging to this database system will be owned by user "postgres". 2919s This user must also own the server process. 2919s 2919s The database cluster will be initialized with locale "C.UTF-8". 2919s The default database encoding has accordingly been set to "UTF8". 2919s The default text search configuration will be set to "english". 2919s 2919s Data page checksums are disabled. 2919s 2919s fixing permissions on existing directory /var/lib/postgresql/17/main ... ok 2919s creating subdirectories ... ok 2919s selecting dynamic shared memory implementation ... posix 2919s selecting default "max_connections" ... 100 2919s selecting default "shared_buffers" ... 128MB 2919s selecting default time zone ... Etc/UTC 2919s creating configuration files ... ok 2919s running bootstrap script ... ok 2920s performing post-bootstrap initialization ... ok 2920s syncing data to disk ... ok 2922s Setting up patroni-doc (4.0.4-7) ... 2922s Setting up postgresql (17+274) ... 2923s Processing triggers for man-db (2.13.0-1) ... 2923s Processing triggers for libc-bin (2.41-6ubuntu1) ... 2939s autopkgtest [22:16:06]: test acceptance-raft: debian/tests/acceptance raft 2939s autopkgtest [22:16:06]: test acceptance-raft: [----------------------- 2941s dpkg-architecture: warning: cannot determine CC system type, falling back to default (native compilation) 2941s ++ ls -1r /usr/lib/postgresql/ 2941s + for PG_VERSION in $(ls -1r /usr/lib/postgresql/) 2941s + '[' 17 == 10 -o 17 == 11 ']' 2941s + echo '### PostgreSQL 17 acceptance-raft ###' 2941s + 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' 2941s ### PostgreSQL 17 acceptance-raft ### 2947s May 02 22:16:14 Feature: basic replication # features/basic_replication.feature:1 2947s May 02 22:16:14 We should check that the basic bootstrapping, replication and failover works. 2947s May 02 22:16:14 Scenario: check replication of a single table # features/basic_replication.feature:4 2947s May 02 22:16:14 Given I start postgres-0 # features/steps/basic_replication.py:20 2952s May 02 22:16:19 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 2952s May 02 22:16:19 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 2952s May 02 22:16:19 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 2952s May 02 22:16:19 Then I receive a response code 200 # features/steps/patroni_api.py:100 2952s May 02 22:16:19 When I start postgres-1 # features/steps/basic_replication.py:20 2957s May 02 22:16:24 And I configure and start postgres-2 with a tag replicatefrom postgres-0 # features/steps/cascading_replication.py:7 2962s May 02 22:16:29 And "sync" key in DCS has leader=postgres-0 after 20 seconds # features/steps/cascading_replication.py:23 2962s May 02 22:16:29 And I add the table foo to postgres-0 # features/steps/basic_replication.py:66 2962s May 02 22:16:29 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 2963s May 02 22:16:30 Then table foo is present on postgres-2 after 20 seconds # features/steps/basic_replication.py:105 2963s May 02 22:16:30 2963s May 02 22:16:30 Scenario: check restart of sync replica # features/basic_replication.feature:17 2963s May 02 22:16:30 Given I shut down postgres-2 # features/steps/basic_replication.py:41 2964s May 02 22:16:31 Then "sync" key in DCS has sync_standby=postgres-1 after 5 seconds # features/steps/cascading_replication.py:23 2964s May 02 22:16:31 When I start postgres-2 # features/steps/basic_replication.py:20 2967s May 02 22:16:34 And I shut down postgres-1 # features/steps/basic_replication.py:41 2970s May 02 22:16:37 Then "sync" key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 2971s May 02 22:16:38 When I start postgres-1 # features/steps/basic_replication.py:20 2975s May 02 22:16:41 Then "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 2976s May 02 22:16:42 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 2976s May 02 22:16:43 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:144 2976s May 02 22:16:43 2976s May 02 22:16:43 Scenario: check stuck sync replica # features/basic_replication.feature:28 2976s May 02 22:16:43 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 2976s May 02 22:16:43 Then I receive a response code 200 # features/steps/patroni_api.py:100 2976s May 02 22:16:43 And I create table on postgres-0 # features/steps/basic_replication.py:85 2976s May 02 22:16:43 And table mytest is present on postgres-1 after 2 seconds # features/steps/basic_replication.py:105 2977s May 02 22:16:44 And table mytest is present on postgres-2 after 2 seconds # features/steps/basic_replication.py:105 2977s May 02 22:16:44 When I pause wal replay on postgres-2 # features/steps/basic_replication.py:76 2977s May 02 22:16:44 And I load data on postgres-0 # features/steps/basic_replication.py:96 2977s May 02 22:16:44 Then "sync" key in DCS has sync_standby=postgres-1 after 15 seconds # features/steps/cascading_replication.py:23 2980s May 02 22:16:47 And I resume wal replay on postgres-2 # features/steps/basic_replication.py:76 2980s May 02 22:16:47 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 2980s May 02 22:16:47 And Status code on GET http://127.0.0.1:8010/async is 200 after 3 seconds # features/steps/patroni_api.py:144 2980s May 02 22:16:47 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 2981s May 02 22:16:47 Then I receive a response code 200 # features/steps/patroni_api.py:100 2981s May 02 22:16:47 And I drop table on postgres-0 # features/steps/basic_replication.py:85 2981s May 02 22:16:48 2981s May 02 22:16:48 Scenario: check multi sync replication # features/basic_replication.feature:44 2981s May 02 22:16:48 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 2981s May 02 22:16:48 Then I receive a response code 200 # features/steps/patroni_api.py:100 2981s May 02 22:16:48 Then "sync" key in DCS has sync_standby=postgres-1,postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 2985s May 02 22:16:52 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 2985s May 02 22:16:52 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 2985s May 02 22:16:52 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 2985s May 02 22:16:52 Then I receive a response code 200 # features/steps/patroni_api.py:100 2985s May 02 22:16:52 And I shut down postgres-1 # features/steps/basic_replication.py:41 2988s May 02 22:16:55 Then "sync" key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 2989s May 02 22:16:56 When I start postgres-1 # features/steps/basic_replication.py:20 2992s May 02 22:16:59 Then "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 2992s May 02 22:16:59 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 2992s May 02 22:16:59 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:144 2992s May 02 22:16:59 2992s May 02 22:16:59 Scenario: check the basic failover in synchronous mode # features/basic_replication.feature:59 2992s May 02 22:16:59 Given I run patronictl.py pause batman # features/steps/patroni_api.py:88 2993s May 02 22:17:00 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2993s May 02 22:17:00 When I sleep for 2 seconds # features/steps/patroni_api.py:41 2995s May 02 22:17:02 And I shut down postgres-0 # features/steps/basic_replication.py:41 2996s May 02 22:17:03 And I run patronictl.py resume batman # features/steps/patroni_api.py:88 2998s May 02 22:17:05 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2998s May 02 22:17:05 And postgres-2 role is the primary after 24 seconds # features/steps/basic_replication.py:117 3017s May 02 22:17:24 And Response on GET http://127.0.0.1:8010/history contains recovery after 10 seconds # features/steps/patroni_api.py:158 3020s May 02 22:17:27 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 3020s May 02 22:17:27 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 3020s May 02 22:17:27 Then I receive a response code 200 # features/steps/patroni_api.py:100 3020s May 02 22:17:27 When I add the table bar to postgres-2 # features/steps/basic_replication.py:66 3020s May 02 22:17:27 Then table bar is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 3020s May 02 22:17:27 And Response on GET http://127.0.0.1:8010/config contains master_start_timeout after 10 seconds # features/steps/patroni_api.py:158 3020s May 02 22:17:27 3020s May 02 22:17:27 Scenario: check rejoin of the former primary with pg_rewind # features/basic_replication.feature:75 3020s May 02 22:17:27 Given I add the table splitbrain to postgres-0 # features/steps/basic_replication.py:66 3020s May 02 22:17:27 And I start postgres-0 # features/steps/basic_replication.py:20 3020s May 02 22:17:27 Then postgres-0 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 3028s May 02 22:17:35 When I add the table buz to postgres-2 # features/steps/basic_replication.py:66 3028s May 02 22:17:35 Then table buz is present on postgres-0 after 20 seconds # features/steps/basic_replication.py:105 3028s SKIP Scenario check graceful rejection when two nodes have the same name: Flaky test with Raft 3045s May 02 22:17:52 3045s May 02 22:17:52 @reject-duplicate-name 3045s May 02 22:17:52 Scenario: check graceful rejection when two nodes have the same name # features/basic_replication.feature:83 3045s May 02 22:17:52 Given I start duplicate postgres-0 on port 8011 # None 3045s May 02 22:17:52 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 3045s May 02 22:17:52 3045s May 02 22:17:52 Feature: cascading replication # features/cascading_replication.feature:1 3045s May 02 22:17:52 We should check that patroni can do base backup and streaming from the replica 3045s May 02 22:17:52 Scenario: check a base backup and streaming replication from a replica # features/cascading_replication.feature:4 3045s May 02 22:17:52 Given I start postgres-0 # features/steps/basic_replication.py:20 3056s May 02 22:18:03 And postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 3057s May 02 22:18:04 And I configure and start postgres-1 with a tag clonefrom true # features/steps/cascading_replication.py:7 3062s May 02 22:18:09 And replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 3063s May 02 22:18:10 And I create label with "postgres-0" in postgres-0 data directory # features/steps/cascading_replication.py:18 3063s May 02 22:18:10 And I create label with "postgres-1" in postgres-1 data directory # features/steps/cascading_replication.py:18 3063s May 02 22:18:10 And "members/postgres-1" key in DCS has state=running after 12 seconds # features/steps/cascading_replication.py:23 3063s May 02 22:18:10 And I configure and start postgres-2 with a tag replicatefrom postgres-1 # features/steps/cascading_replication.py:7 3067s May 02 22:18:14 Then replication works from postgres-0 to postgres-2 after 30 seconds # features/steps/basic_replication.py:124 3068s May 02 22:18:15 And there is a label with "postgres-1" in postgres-2 data directory # features/steps/cascading_replication.py:12 3084s May 02 22:18:31 3084s SKIP FEATURE citus: Citus extension isn't available 3084s SKIP Scenario check that worker cluster is registered in the coordinator: Citus extension isn't available 3084s SKIP Scenario coordinator failover updates pg_dist_node: Citus extension isn't available 3084s SKIP Scenario worker switchover doesn't break client queries on the coordinator: Citus extension isn't available 3084s SKIP Scenario worker primary restart doesn't break client queries on the coordinator: Citus extension isn't available 3084s 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 3084s May 02 22:18:31 Feature: citus # features/citus.feature:1 3084s May 02 22:18:31 We should check that coordinator discovers and registers workers and clients don't have errors when worker cluster switches over 3084s May 02 22:18:31 Scenario: check that worker cluster is registered in the coordinator # features/citus.feature:4 3084s May 02 22:18:31 Given I start postgres-0 in citus group 0 # None 3084s May 02 22:18:31 And I start postgres-2 in citus group 1 # None 3084s May 02 22:18:31 Then postgres-0 is a leader in a group 0 after 10 seconds # None 3084s May 02 22:18:31 And postgres-2 is a leader in a group 1 after 10 seconds # None 3084s May 02 22:18:31 When I start postgres-1 in citus group 0 # None 3084s May 02 22:18:31 And I start postgres-3 in citus group 1 # None 3084s May 02 22:18:31 Then replication works from postgres-0 to postgres-1 after 15 seconds # None 3084s May 02 22:18:31 Then replication works from postgres-2 to postgres-3 after 15 seconds # None 3084s May 02 22:18:31 And postgres-0 is registered in the postgres-0 as the primary in group 0 after 5 seconds # None 3084s May 02 22:18:31 And postgres-1 is registered in the postgres-0 as the secondary in group 0 after 5 seconds # None 3084s May 02 22:18:31 And postgres-2 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 3084s May 02 22:18:31 And postgres-3 is registered in the postgres-0 as the secondary in group 1 after 5 seconds # None 3084s May 02 22:18:31 3084s May 02 22:18:31 Scenario: coordinator failover updates pg_dist_node # features/citus.feature:18 3084s May 02 22:18:31 Given I run patronictl.py failover batman --group 0 --candidate postgres-1 --force # None 3084s May 02 22:18:31 Then postgres-1 role is the primary after 10 seconds # None 3084s May 02 22:18:31 And "members/postgres-0" key in a group 0 in DCS has state=running after 15 seconds # None 3084s May 02 22:18:31 And replication works from postgres-1 to postgres-0 after 15 seconds # None 3084s May 02 22:18:31 And postgres-1 is registered in the postgres-2 as the primary in group 0 after 5 seconds # None 3084s May 02 22:18:31 And postgres-0 is registered in the postgres-2 as the secondary in group 0 after 15 seconds # None 3084s May 02 22:18:31 And "sync" key in a group 0 in DCS has sync_standby=postgres-0 after 15 seconds # None 3084s May 02 22:18:31 When I run patronictl.py switchover batman --group 0 --candidate postgres-0 --force # None 3084s May 02 22:18:31 Then postgres-0 role is the primary after 10 seconds # None 3084s May 02 22:18:31 And replication works from postgres-0 to postgres-1 after 15 seconds # None 3084s May 02 22:18:31 And postgres-0 is registered in the postgres-2 as the primary in group 0 after 5 seconds # None 3084s May 02 22:18:31 And postgres-1 is registered in the postgres-2 as the secondary in group 0 after 15 seconds # None 3084s May 02 22:18:31 And "sync" key in a group 0 in DCS has sync_standby=postgres-1 after 15 seconds # None 3084s May 02 22:18:31 3084s May 02 22:18:31 Scenario: worker switchover doesn't break client queries on the coordinator # features/citus.feature:33 3084s May 02 22:18:31 Given I create a distributed table on postgres-0 # None 3084s May 02 22:18:31 And I start a thread inserting data on postgres-0 # None 3084s May 02 22:18:31 When I run patronictl.py switchover batman --group 1 --force # None 3084s May 02 22:18:31 Then I receive a response returncode 0 # None 3084s May 02 22:18:31 And postgres-3 role is the primary after 10 seconds # None 3084s May 02 22:18:31 And "members/postgres-2" key in a group 1 in DCS has state=running after 15 seconds # None 3084s May 02 22:18:31 And replication works from postgres-3 to postgres-2 after 15 seconds # None 3084s May 02 22:18:31 And postgres-3 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 3084s May 02 22:18:31 And postgres-2 is registered in the postgres-0 as the secondary in group 1 after 15 seconds # None 3084s May 02 22:18:31 And "sync" key in a group 1 in DCS has sync_standby=postgres-2 after 15 seconds # None 3084s May 02 22:18:31 And a thread is still alive # None 3084s May 02 22:18:31 When I run patronictl.py switchover batman --group 1 --force # None 3084s May 02 22:18:31 Then I receive a response returncode 0 # None 3084s May 02 22:18:31 And postgres-2 role is the primary after 10 seconds # None 3084s May 02 22:18:31 And replication works from postgres-2 to postgres-3 after 15 seconds # None 3084s May 02 22:18:31 And postgres-2 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 3084s May 02 22:18:31 And postgres-3 is registered in the postgres-0 as the secondary in group 1 after 15 seconds # None 3084s May 02 22:18:31 And "sync" key in a group 1 in DCS has sync_standby=postgres-3 after 15 seconds # None 3084s May 02 22:18:31 And a thread is still alive # None 3084s May 02 22:18:31 When I stop a thread # None 3084s May 02 22:18:31 Then a distributed table on postgres-0 has expected rows # None 3084s May 02 22:18:31 3084s May 02 22:18:31 Scenario: worker primary restart doesn't break client queries on the coordinator # features/citus.feature:56 3084s May 02 22:18:31 Given I cleanup a distributed table on postgres-0 # None 3084s May 02 22:18:31 And I start a thread inserting data on postgres-0 # None 3084s May 02 22:18:31 When I run patronictl.py restart batman postgres-2 --group 1 --force # None 3084s May 02 22:18:31 Then I receive a response returncode 0 # None 3084s May 02 22:18:31 And postgres-2 role is the primary after 10 seconds # None 3084s May 02 22:18:31 And replication works from postgres-2 to postgres-3 after 15 seconds # None 3084s May 02 22:18:31 And postgres-2 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 3084s May 02 22:18:31 And postgres-3 is registered in the postgres-0 as the secondary in group 1 after 15 seconds # None 3084s May 02 22:18:31 And a thread is still alive # None 3084s May 02 22:18:31 When I stop a thread # None 3084s May 02 22:18:31 Then a distributed table on postgres-0 has expected rows # None 3090s May 02 22:18:37 3090s May 02 22:18:37 Scenario: check that in-flight transaction is rolled back after timeout when other workers need to change pg_dist_node # features/citus.feature:69 3090s May 02 22:18:37 Given I start postgres-4 in citus group 2 # None 3090s May 02 22:18:37 Then postgres-4 is a leader in a group 2 after 10 seconds # None 3090s May 02 22:18:37 And "members/postgres-4" key in a group 2 in DCS has role=primary after 3 seconds # None 3090s May 02 22:18:37 When I run patronictl.py edit-config batman --group 2 -s ttl=20 --force # None 3090s May 02 22:18:37 Then I receive a response returncode 0 # None 3090s May 02 22:18:37 And I receive a response output "+ttl: 20" # None 3090s May 02 22:18:37 Then postgres-4 is registered in the postgres-2 as the primary in group 2 after 5 seconds # None 3090s May 02 22:18:37 When I shut down postgres-4 # None 3090s May 02 22:18:37 Then there is a transaction in progress on postgres-0 changing pg_dist_node after 5 seconds # None 3090s May 02 22:18:37 When I run patronictl.py restart batman postgres-2 --group 1 --force # None 3090s May 02 22:18:37 Then a transaction finishes in 20 seconds # None 3090s May 02 22:18:37 3090s May 02 22:18:37 Feature: custom bootstrap # features/custom_bootstrap.feature:1 3090s May 02 22:18:37 We should check that patroni can bootstrap a new cluster from a backup 3090s May 02 22:18:37 Scenario: clone existing cluster using pg_basebackup # features/custom_bootstrap.feature:4 3090s May 02 22:18:37 Given I start postgres-0 # features/steps/basic_replication.py:20 3095s May 02 22:18:42 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 3095s May 02 22:18:42 When I add the table foo to postgres-0 # features/steps/basic_replication.py:66 3095s May 02 22:18:42 And I start postgres-1 in a cluster batman1 as a clone of postgres-0 # features/steps/custom_bootstrap.py:6 3100s May 02 22:18:47 Then postgres-1 is a leader of batman1 after 10 seconds # features/steps/custom_bootstrap.py:16 3101s May 02 22:18:48 Then table foo is present on postgres-1 after 10 seconds # features/steps/basic_replication.py:105 3101s May 02 22:18:48 3101s May 02 22:18:48 Scenario: make a backup and do a restore into a new cluster # features/custom_bootstrap.feature:12 3101s May 02 22:18:48 Given I add the table bar to postgres-1 # features/steps/basic_replication.py:66 3101s May 02 22:18:48 And I do a backup of postgres-1 # features/steps/custom_bootstrap.py:25 3103s May 02 22:18:50 When I start postgres-2 in a cluster batman2 from backup # features/steps/custom_bootstrap.py:11 3109s May 02 22:18:56 Then postgres-2 is a leader of batman2 after 30 seconds # features/steps/custom_bootstrap.py:16 3110s May 02 22:18:57 And table bar is present on postgres-2 after 10 seconds # features/steps/basic_replication.py:105 3128s May 02 22:19:14 3128s May 02 22:19:14 Feature: dcs failsafe mode # features/dcs_failsafe_mode.feature:1 3128s May 02 22:19:14 We should check the basic dcs failsafe mode functioning 3128s May 02 22:19:14 Scenario: check failsafe mode can be successfully enabled # features/dcs_failsafe_mode.feature:4 3128s May 02 22:19:14 Given I start postgres-0 # features/steps/basic_replication.py:20 3132s May 02 22:19:19 And postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 3132s May 02 22:19:19 Then "config" key in DCS has ttl=30 after 10 seconds # features/steps/cascading_replication.py:23 3132s May 02 22:19:19 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 3132s May 02 22:19:19 Then I receive a response code 200 # features/steps/patroni_api.py:100 3132s May 02 22:19:19 And Response on GET http://127.0.0.1:8008/failsafe contains postgres-0 after 10 seconds # features/steps/patroni_api.py:158 3132s May 02 22:19:19 When I issue a GET request to http://127.0.0.1:8008/failsafe # features/steps/patroni_api.py:63 3132s May 02 22:19:19 Then I receive a response code 200 # features/steps/patroni_api.py:100 3132s May 02 22:19:19 And I receive a response postgres-0 http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:100 3132s May 02 22:19:19 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 3132s May 02 22:19:19 Then I receive a response code 200 # features/steps/patroni_api.py:100 3132s May 02 22:19:19 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 3132s May 02 22:19:19 Then I receive a response code 200 # features/steps/patroni_api.py:100 3132s May 02 22:19:19 3132s May 02 22:19:19 @dcs-failsafe 3132s May 02 22:19:19 Scenario: check one-node cluster is functioning while DCS is down # features/dcs_failsafe_mode.feature:20 3132s May 02 22:19:19 Given DCS is down # features/steps/dcs_failsafe_mode.py:4 3132s May 02 22:19:19 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 3136s May 02 22:19:23 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 3136s May 02 22:19:23 3136s May 02 22:19:23 @dcs-failsafe 3136s May 02 22:19:23 Scenario: check new replica isn't promoted when leader is down and DCS is up # features/dcs_failsafe_mode.feature:26 3136s May 02 22:19:23 Given DCS is up # features/steps/dcs_failsafe_mode.py:9 3136s May 02 22:19:23 When I do a backup of postgres-0 # features/steps/custom_bootstrap.py:25 3138s May 02 22:19:25 And I shut down postgres-0 # features/steps/basic_replication.py:41 3140s May 02 22:19:27 When I start postgres-1 in a cluster batman from backup with no_leader # features/steps/dcs_failsafe_mode.py:14 3144s May 02 22:19:31 Then postgres-1 role is the replica after 12 seconds # features/steps/basic_replication.py:117 3144s May 02 22:19:31 3144s May 02 22:19:31 Scenario: check leader and replica are both in /failsafe key after leader is back # features/dcs_failsafe_mode.feature:33 3144s May 02 22:19:31 Given I start postgres-0 # features/steps/basic_replication.py:20 3147s May 02 22:19:34 And I start postgres-1 # features/steps/basic_replication.py:20 3147s May 02 22:19:34 Then "members/postgres-0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 3147s May 02 22:19:34 And "members/postgres-1" key in DCS has state=running after 2 seconds # features/steps/cascading_replication.py:23 3147s May 02 22:19:34 And Response on GET http://127.0.0.1:8009/failsafe contains postgres-1 after 10 seconds # features/steps/patroni_api.py:158 3152s May 02 22:19:39 When I issue a GET request to http://127.0.0.1:8009/failsafe # features/steps/patroni_api.py:63 3152s May 02 22:19:39 Then I receive a response code 200 # features/steps/patroni_api.py:100 3152s May 02 22:19:39 And I receive a response postgres-0 http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:100 3152s May 02 22:19:39 And I receive a response postgres-1 http://127.0.0.1:8009/patroni # features/steps/patroni_api.py:100 3152s May 02 22:19:39 3152s May 02 22:19:39 @dcs-failsafe @slot-advance 3152s May 02 22:19:39 Scenario: check leader and replica are functioning while DCS is down # features/dcs_failsafe_mode.feature:46 3152s May 02 22:19:39 Given I get all changes from physical slot dcs_slot_1 on postgres-0 # features/steps/slots.py:77 3152s May 02 22:19:39 Then physical slot dcs_slot_1 is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 3155s May 02 22:19:42 And logical slot dcs_slot_0 is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 3155s May 02 22:19:42 And DCS is down # features/steps/dcs_failsafe_mode.py:4 3155s May 02 22:19:42 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 3160s May 02 22:19:47 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 3160s May 02 22:19:47 And postgres-1 role is the replica after 2 seconds # features/steps/basic_replication.py:117 3160s May 02 22:19:47 And replication works from postgres-0 to postgres-1 after 10 seconds # features/steps/basic_replication.py:124 3160s May 02 22:19:47 When I get all changes from logical slot dcs_slot_0 on postgres-0 # features/steps/slots.py:72 3160s May 02 22:19:47 And I get all changes from physical slot dcs_slot_1 on postgres-0 # features/steps/slots.py:77 3160s May 02 22:19:47 Then logical slot dcs_slot_0 is in sync between postgres-0 and postgres-1 after 20 seconds # features/steps/slots.py:52 3167s May 02 22:19:54 And physical slot dcs_slot_1 is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 3167s May 02 22:19:54 3167s May 02 22:19:54 @dcs-failsafe 3167s May 02 22:19:54 Scenario: check primary is demoted when one replica is shut down and DCS is down # features/dcs_failsafe_mode.feature:61 3167s May 02 22:19:54 Given DCS is down # features/steps/dcs_failsafe_mode.py:4 3167s May 02 22:19:54 And I kill postgres-1 # features/steps/basic_replication.py:46 3168s May 02 22:19:55 And I kill postmaster on postgres-1 # features/steps/basic_replication.py:56 3168s May 02 22:19:55 waiting for server to shut down.... done 3168s May 02 22:19:55 server stopped 3168s May 02 22:19:55 Then postgres-0 role is the replica after 12 seconds # features/steps/basic_replication.py:117 3170s May 02 22:19:57 3170s May 02 22:19:57 @dcs-failsafe 3170s May 02 22:19:57 Scenario: check known replica is promoted when leader is down and DCS is up # features/dcs_failsafe_mode.feature:68 3170s May 02 22:19:57 Given I kill postgres-0 # features/steps/basic_replication.py:46 3171s May 02 22:19:58 And I shut down postmaster on postgres-0 # features/steps/basic_replication.py:51 3171s May 02 22:19:58 waiting for server to shut down.... done 3171s May 02 22:19:58 server stopped 3171s May 02 22:19:58 And DCS is up # features/steps/dcs_failsafe_mode.py:9 3171s May 02 22:19:58 When I start postgres-1 # features/steps/basic_replication.py:20 3174s May 02 22:20:01 Then "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 3175s May 02 22:20:02 And postgres-1 role is the primary after 25 seconds # features/steps/basic_replication.py:117 3177s May 02 22:20:04 3177s May 02 22:20:04 @dcs-failsafe 3177s May 02 22:20:04 Scenario: scale to three-node cluster # features/dcs_failsafe_mode.feature:77 3177s May 02 22:20:04 Given I start postgres-0 # features/steps/basic_replication.py:20 3183s May 02 22:20:10 And I configure and start postgres-2 with a tag replicatefrom postgres-0 # features/steps/cascading_replication.py:7 3188s May 02 22:20:15 Then "members/postgres-2" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 3189s May 02 22:20:16 And "members/postgres-0" key in DCS has state=running after 20 seconds # features/steps/cascading_replication.py:23 3189s May 02 22:20:16 And Response on GET http://127.0.0.1:8008/failsafe contains postgres-2 after 10 seconds # features/steps/patroni_api.py:158 3189s May 02 22:20:16 And replication works from postgres-1 to postgres-0 after 10 seconds # features/steps/basic_replication.py:124 3189s May 02 22:20:16 And replication works from postgres-1 to postgres-2 after 10 seconds # features/steps/basic_replication.py:124 3190s May 02 22:20:17 3190s May 02 22:20:17 @dcs-failsafe @slot-advance 3190s May 02 22:20:17 Scenario: make sure permanent slots exist on replicas # features/dcs_failsafe_mode.feature:88 3190s May 02 22:20:17 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 3190s May 02 22:20:17 Then logical slot dcs_slot_2 is in sync between postgres-1 and postgres-0 after 20 seconds # features/steps/slots.py:52 3194s May 02 22:20:21 And logical slot dcs_slot_2 is in sync between postgres-1 and postgres-2 after 20 seconds # features/steps/slots.py:52 3195s May 02 22:20:22 When I get all changes from physical slot dcs_slot_1 on postgres-1 # features/steps/slots.py:77 3195s May 02 22:20:22 Then physical slot dcs_slot_1 is in sync between postgres-1 and postgres-0 after 10 seconds # features/steps/slots.py:52 3197s May 02 22:20:24 And physical slot dcs_slot_1 is in sync between postgres-1 and postgres-2 after 10 seconds # features/steps/slots.py:52 3197s May 02 22:20:24 And physical slot postgres_0 is in sync between postgres-1 and postgres-2 after 10 seconds # features/steps/slots.py:52 3197s May 02 22:20:24 And physical slot postgres_2 is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 3197s May 02 22:20:24 3197s May 02 22:20:24 @dcs-failsafe 3197s May 02 22:20:24 Scenario: check three-node cluster is functioning while DCS is down # features/dcs_failsafe_mode.feature:99 3197s May 02 22:20:24 Given DCS is down # features/steps/dcs_failsafe_mode.py:4 3197s May 02 22:20:24 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 3202s May 02 22:20:29 Then postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 3202s May 02 22:20:29 And postgres-0 role is the replica after 2 seconds # features/steps/basic_replication.py:117 3202s May 02 22:20:29 And postgres-2 role is the replica after 2 seconds # features/steps/basic_replication.py:117 3202s May 02 22:20:29 3202s May 02 22:20:29 @dcs-failsafe @slot-advance 3202s May 02 22:20:29 Scenario: check that permanent slots are in sync between nodes while DCS is down # features/dcs_failsafe_mode.feature:108 3202s May 02 22:20:29 Given replication works from postgres-1 to postgres-0 after 10 seconds # features/steps/basic_replication.py:124 3202s May 02 22:20:29 And replication works from postgres-1 to postgres-2 after 10 seconds # features/steps/basic_replication.py:124 3203s May 02 22:20:30 When I get all changes from logical slot dcs_slot_2 on postgres-1 # features/steps/slots.py:72 3203s May 02 22:20:30 And I get all changes from physical slot dcs_slot_1 on postgres-1 # features/steps/slots.py:77 3203s May 02 22:20:30 Then logical slot dcs_slot_2 is in sync between postgres-1 and postgres-0 after 20 seconds # features/steps/slots.py:52 3209s May 02 22:20:36 And logical slot dcs_slot_2 is in sync between postgres-1 and postgres-2 after 20 seconds # features/steps/slots.py:52 3209s May 02 22:20:36 And physical slot dcs_slot_1 is in sync between postgres-1 and postgres-0 after 10 seconds # features/steps/slots.py:52 3209s May 02 22:20:36 And physical slot dcs_slot_1 is in sync between postgres-1 and postgres-2 after 10 seconds # features/steps/slots.py:52 3209s May 02 22:20:36 And physical slot postgres_0 is in sync between postgres-1 and postgres-2 after 10 seconds # features/steps/slots.py:52 3209s May 02 22:20:36 And physical slot postgres_2 is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 3222s May 02 22:20:48 3222s May 02 22:20:48 Feature: ignored slots # features/ignored_slots.feature:1 3222s May 02 22:20:48 3222s May 02 22:20:48 Scenario: check ignored slots aren't removed on failover/switchover # features/ignored_slots.feature:2 3222s May 02 22:20:48 Given I start postgres-1 # features/steps/basic_replication.py:20 3232s May 02 22:20:59 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 3233s May 02 22:21:00 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 3233s May 02 22:21:00 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 3233s May 02 22:21:00 Then I receive a response code 200 # features/steps/patroni_api.py:100 3233s May 02 22:21:00 And Response on GET http://127.0.0.1:8009/config contains ignore_slots after 10 seconds # features/steps/patroni_api.py:158 3233s May 02 22:21:00 When I shut down postgres-1 # features/steps/basic_replication.py:41 3235s May 02 22:21:02 And I start postgres-1 # features/steps/basic_replication.py:20 3238s May 02 22:21:05 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 3240s May 02 22:21:07 And "members/postgres-1" key in DCS has role=primary after 10 seconds # features/steps/cascading_replication.py:23 3244s May 02 22:21:11 And postgres-1 role is the primary after 20 seconds # features/steps/basic_replication.py:117 3244s May 02 22:21:11 When I create a logical replication slot unmanaged_slot_0 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 3244s May 02 22:21:11 And I create a logical replication slot unmanaged_slot_1 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 3244s May 02 22:21:11 And I create a logical replication slot unmanaged_slot_2 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 3244s May 02 22:21:11 And I create a logical replication slot unmanaged_slot_3 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 3244s May 02 22:21:11 And I create a logical replication slot dummy_slot on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 3244s May 02 22:21: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 3244s May 02 22:21: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 3244s May 02 22:21: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 3244s May 02 22:21: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 3244s May 02 22:21:11 When I start postgres-0 # features/steps/basic_replication.py:20 3249s May 02 22:21:16 Then "members/postgres-0" key in DCS has role=replica after 10 seconds # features/steps/cascading_replication.py:23 3249s May 02 22:21:16 And postgres-0 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 3249s May 02 22:21:16 And replication works from postgres-1 to postgres-0 after 20 seconds # features/steps/basic_replication.py:124 3250s May 02 22:21:17 When I shut down postgres-1 # features/steps/basic_replication.py:41 3252s May 02 22:21:19 Then "members/postgres-0" key in DCS has role=primary after 10 seconds # features/steps/cascading_replication.py:23 3253s May 02 22:21:20 When I start postgres-1 # features/steps/basic_replication.py:20 3256s May 02 22:21:23 Then postgres-1 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 3256s May 02 22:21:23 And "members/postgres-1" key in DCS has role=replica after 10 seconds # features/steps/cascading_replication.py:23 3256s May 02 22:21:23 And I sleep for 2 seconds # features/steps/patroni_api.py:41 3258s May 02 22:21:25 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 3258s May 02 22:21:25 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 3258s May 02 22:21:25 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 3258s May 02 22:21:25 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 3258s May 02 22:21:25 And postgres-1 does not have a replication slot named dummy_slot # features/steps/slots.py:41 3258s May 02 22:21:25 When I shut down postgres-0 # features/steps/basic_replication.py:41 3260s May 02 22:21:27 Then "members/postgres-1" key in DCS has role=primary after 10 seconds # features/steps/cascading_replication.py:23 3261s May 02 22:21:28 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 3261s May 02 22:21:28 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 3261s May 02 22:21:28 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 3261s May 02 22:21:28 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 3269s May 02 22:21:36 3269s May 02 22:21:36 Feature: nostream node # features/nostream_node.feature:1 3269s May 02 22:21:36 3269s May 02 22:21:36 Scenario: check nostream node is recovering from archive # features/nostream_node.feature:3 3269s May 02 22:21:36 When I start postgres-0 # features/steps/basic_replication.py:20 3274s May 02 22:21:40 And I configure and start postgres-1 with a tag nostream true # features/steps/cascading_replication.py:7 3279s May 02 22:21:46 Then "members/postgres-1" key in DCS has replication_state=in archive recovery after 10 seconds # features/steps/cascading_replication.py:23 3279s May 02 22:21:46 And replication works from postgres-0 to postgres-1 after 30 seconds # features/steps/basic_replication.py:124 3284s May 02 22:21:51 3284s May 02 22:21:51 @slot-advance 3284s May 02 22:21:51 Scenario: check permanent logical replication slots are not copied # features/nostream_node.feature:10 3284s May 02 22:21:51 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 3284s May 02 22:21:51 Then I receive a response code 200 # features/steps/patroni_api.py:100 3284s May 02 22:21:51 When I run patronictl.py restart batman postgres-0 --force # features/steps/patroni_api.py:88 3286s May 02 22:21: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 3287s May 02 22:21:54 When I configure and start postgres-2 with a tag replicatefrom postgres-1 # features/steps/cascading_replication.py:7 3292s May 02 22:21:59 Then "members/postgres-2" key in DCS has replication_state=streaming after 10 seconds # features/steps/cascading_replication.py:23 3292s May 02 22:21:59 And postgres-1 does not have a replication slot named test_logical # features/steps/slots.py:41 3292s May 02 22:21:59 And postgres-2 does not have a replication slot named test_logical # features/steps/slots.py:41 3292s May 02 22:21:59 3292s May 02 22:21:59 @slot-advance 3292s May 02 22:21:59 Scenario: check that slots are written to the /status key # features/nostream_node.feature:21 3292s May 02 22:21:59 Given "status" key in DCS has postgres_0 in slots # features/steps/slots.py:118 3292s May 02 22:21:59 And "status" key in DCS has postgres_2 in slots # features/steps/slots.py:118 3292s May 02 22:21:59 And "status" key in DCS has test_logical in slots # features/steps/slots.py:118 3292s May 02 22:21:59 And "status" key in DCS has test_logical in slots # features/steps/slots.py:118 3292s May 02 22:21:59 And "status" key in DCS does not have postgres_1 in slots # features/steps/slots.py:124 3308s May 02 22:22:15 3308s May 02 22:22:15 Feature: patroni api # features/patroni_api.feature:1 3308s May 02 22:22:15 We should check that patroni correctly responds to valid and not-valid API requests. 3308s May 02 22:22:15 Scenario: check API requests on a stand-alone server # features/patroni_api.feature:4 3308s May 02 22:22:15 Given I start postgres-0 # features/steps/basic_replication.py:20 3313s May 02 22:22:20 And postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 3313s May 02 22:22:20 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:63 3313s May 02 22:22:20 Then I receive a response code 200 # features/steps/patroni_api.py:100 3313s May 02 22:22:20 And I receive a response state running # features/steps/patroni_api.py:100 3313s May 02 22:22:20 And I receive a response role primary # features/steps/patroni_api.py:100 3313s May 02 22:22:20 When I issue a GET request to http://127.0.0.1:8008/standby_leader # features/steps/patroni_api.py:63 3313s May 02 22:22:20 Then I receive a response code 503 # features/steps/patroni_api.py:100 3313s May 02 22:22:20 When I issue a GET request to http://127.0.0.1:8008/health # features/steps/patroni_api.py:63 3313s May 02 22:22:20 Then I receive a response code 200 # features/steps/patroni_api.py:100 3313s May 02 22:22:20 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:63 3313s May 02 22:22:20 Then I receive a response code 503 # features/steps/patroni_api.py:100 3313s May 02 22:22:20 When I issue a POST request to http://127.0.0.1:8008/reinitialize with {"force": true} # features/steps/patroni_api.py:73 3313s May 02 22:22:20 Then I receive a response code 503 # features/steps/patroni_api.py:100 3313s May 02 22:22:20 And I receive a response text I am the leader, can not reinitialize # features/steps/patroni_api.py:100 3313s May 02 22:22:20 When I run patronictl.py switchover batman --primary postgres-0 --force # features/steps/patroni_api.py:88 3315s May 02 22:22:22 Then I receive a response returncode 1 # features/steps/patroni_api.py:100 3315s May 02 22:22:22 And I receive a response output "Error: No candidates found to switchover to" # features/steps/patroni_api.py:100 3315s May 02 22:22:22 When I issue a POST request to http://127.0.0.1:8008/switchover with {"leader": "postgres-0"} # features/steps/patroni_api.py:73 3315s May 02 22:22:22 Then I receive a response code 412 # features/steps/patroni_api.py:100 3315s May 02 22:22:22 And I receive a response text switchover is not possible: cluster does not have members except leader # features/steps/patroni_api.py:100 3315s May 02 22:22:22 When I issue an empty POST request to http://127.0.0.1:8008/failover # features/steps/patroni_api.py:68 3315s May 02 22:22:22 Then I receive a response code 400 # features/steps/patroni_api.py:100 3315s May 02 22:22:22 When I issue a POST request to http://127.0.0.1:8008/failover with {"foo": "bar"} # features/steps/patroni_api.py:73 3315s May 02 22:22:22 Then I receive a response code 400 # features/steps/patroni_api.py:100 3315s May 02 22:22:22 And I receive a response text "Failover could be performed only to a specific candidate" # features/steps/patroni_api.py:100 3315s May 02 22:22:22 3315s May 02 22:22:22 Scenario: check local configuration reload # features/patroni_api.feature:32 3315s May 02 22:22:22 Given I add tag new_tag new_value to postgres-0 config # features/steps/patroni_api.py:139 3315s May 02 22:22:22 And I issue an empty POST request to http://127.0.0.1:8008/reload # features/steps/patroni_api.py:68 3315s May 02 22:22:22 Then I receive a response code 202 # features/steps/patroni_api.py:100 3315s May 02 22:22:22 3315s May 02 22:22:22 Scenario: check dynamic configuration change via DCS # features/patroni_api.feature:37 3315s May 02 22:22:22 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 3315s May 02 22:22:22 Then I receive a response code 200 # features/steps/patroni_api.py:100 3315s May 02 22:22:22 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 11 seconds # features/steps/patroni_api.py:158 3317s May 02 22:22:24 When I issue a GET request to http://127.0.0.1:8008/config # features/steps/patroni_api.py:63 3317s May 02 22:22:24 Then I receive a response code 200 # features/steps/patroni_api.py:100 3317s May 02 22:22:24 And I receive a response ttl 20 # features/steps/patroni_api.py:100 3317s May 02 22:22:24 When I issue a GET request to http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:63 3317s May 02 22:22:24 Then I receive a response code 200 # features/steps/patroni_api.py:100 3317s May 02 22:22:24 And I receive a response tags {'new_tag': 'new_value'} # features/steps/patroni_api.py:100 3317s May 02 22:22:24 And I sleep for 4 seconds # features/steps/patroni_api.py:41 3321s May 02 22:22:28 3321s May 02 22:22:28 Scenario: check the scheduled restart # features/patroni_api.feature:49 3321s May 02 22:22:28 Given I run patronictl.py edit-config -p 'superuser_reserved_connections=6' --force batman # features/steps/patroni_api.py:88 3323s May 02 22:22:30 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 3323s May 02 22:22:30 And I receive a response output "+ superuser_reserved_connections: 6" # features/steps/patroni_api.py:100 3323s May 02 22:22:30 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 5 seconds # features/steps/patroni_api.py:158 3323s May 02 22:22:30 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 3323s May 02 22:22:30 Then I receive a response code 202 # features/steps/patroni_api.py:100 3323s May 02 22:22:30 And I sleep for 8 seconds # features/steps/patroni_api.py:41 3331s May 02 22:22:38 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 10 seconds # features/steps/patroni_api.py:158 3331s May 02 22:22:38 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 3331s May 02 22:22:38 Then I receive a response code 202 # features/steps/patroni_api.py:100 3331s May 02 22:22:38 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 3338s May 02 22:22:45 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 3339s May 02 22:22:46 3339s May 02 22:22:46 Scenario: check API requests for the primary-replica pair in the pause mode # features/patroni_api.feature:63 3339s May 02 22:22:46 Given I start postgres-1 # features/steps/basic_replication.py:20 3343s May 02 22:22:50 Then replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 3344s May 02 22:22:51 When I run patronictl.py pause batman # features/steps/patroni_api.py:88 3345s May 02 22:22:52 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 3345s May 02 22:22:52 When I kill postmaster on postgres-1 # features/steps/basic_replication.py:56 3345s May 02 22:22:52 waiting for server to shut down.... done 3345s May 02 22:22:52 server stopped 3345s May 02 22:22:52 And I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 3345s May 02 22:22:52 Then I receive a response code 503 # features/steps/patroni_api.py:100 3345s May 02 22:22:52 And "members/postgres-1" key in DCS has state=stopped after 10 seconds # features/steps/cascading_replication.py:23 3346s May 02 22:22:53 When I run patronictl.py restart batman postgres-1 --force # features/steps/patroni_api.py:88 3349s May 02 22:22:56 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 3349s May 02 22:22:56 Then replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 3350s May 02 22:22:57 And I sleep for 2 seconds # features/steps/patroni_api.py:41 3352s May 02 22:22:59 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 3352s May 02 22:22:59 Then I receive a response code 200 # features/steps/patroni_api.py:100 3352s May 02 22:22:59 And I receive a response state running # features/steps/patroni_api.py:100 3352s May 02 22:22:59 And I receive a response role replica # features/steps/patroni_api.py:100 3352s May 02 22:22:59 When I run patronictl.py reinit batman postgres-1 --force --wait # features/steps/patroni_api.py:88 3357s May 02 22:23:04 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 3357s May 02 22:23:04 And I receive a response output "Success: reinitialize for member postgres-1" # features/steps/patroni_api.py:100 3357s May 02 22:23:04 And postgres-1 role is the secondary after 30 seconds # features/steps/basic_replication.py:117 3358s May 02 22:23:05 And replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 3359s May 02 22:23:06 When I run patronictl.py restart batman postgres-0 --force # features/steps/patroni_api.py:88 3361s May 02 22:23:08 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 3361s May 02 22:23:08 And I receive a response output "Success: restart on member postgres-0" # features/steps/patroni_api.py:100 3361s May 02 22:23:08 And postgres-0 role is the primary after 5 seconds # features/steps/basic_replication.py:117 3362s May 02 22:23:09 3362s May 02 22:23:09 Scenario: check the switchover via the API in the pause mode # features/patroni_api.feature:90 3362s May 02 22:23:09 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 3364s May 02 22:23:11 Then I receive a response code 200 # features/steps/patroni_api.py:100 3364s May 02 22:23:11 And postgres-1 is a leader after 5 seconds # features/steps/patroni_api.py:31 3364s May 02 22:23:11 And postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 3364s May 02 22:23:11 And postgres-0 role is the secondary after 10 seconds # features/steps/basic_replication.py:117 3370s May 02 22:23:17 And replication works from postgres-1 to postgres-0 after 20 seconds # features/steps/basic_replication.py:124 3370s May 02 22:23:17 And "members/postgres-0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 3371s May 02 22:23:18 When I issue a GET request to http://127.0.0.1:8008/primary # features/steps/patroni_api.py:63 3372s May 02 22:23:19 Then I receive a response code 503 # features/steps/patroni_api.py:100 3372s May 02 22:23:19 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:63 3372s May 02 22:23:19 Then I receive a response code 200 # features/steps/patroni_api.py:100 3372s May 02 22:23:19 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 3372s May 02 22:23:19 Then I receive a response code 200 # features/steps/patroni_api.py:100 3372s May 02 22:23:19 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 3372s May 02 22:23:19 Then I receive a response code 503 # features/steps/patroni_api.py:100 3372s May 02 22:23:19 3372s May 02 22:23:19 Scenario: check the scheduled switchover # features/patroni_api.feature:107 3372s May 02 22:23:19 Given I issue a scheduled switchover from postgres-1 to postgres-0 in 10 seconds # features/steps/patroni_api.py:119 3373s May 02 22:23:20 Then I receive a response returncode 1 # features/steps/patroni_api.py:100 3373s May 02 22:23:20 And I receive a response output "Can't schedule switchover in the paused state" # features/steps/patroni_api.py:100 3373s May 02 22:23:20 When I run patronictl.py resume batman # features/steps/patroni_api.py:88 3374s May 02 22:23:21 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 3374s May 02 22:23:21 Given I issue a scheduled switchover from postgres-1 to postgres-0 in 10 seconds # features/steps/patroni_api.py:119 3376s May 02 22:23:23 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 3376s May 02 22:23:23 And postgres-0 is a leader after 20 seconds # features/steps/patroni_api.py:31 3386s May 02 22:23:33 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 3387s May 02 22:23:34 And postgres-1 role is the secondary after 10 seconds # features/steps/basic_replication.py:117 3389s May 02 22:23:36 And replication works from postgres-0 to postgres-1 after 25 seconds # features/steps/basic_replication.py:124 3389s May 02 22:23:36 And "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 3390s May 02 22:23:37 When I issue a GET request to http://127.0.0.1:8008/primary # features/steps/patroni_api.py:63 3390s May 02 22:23:37 Then I receive a response code 200 # features/steps/patroni_api.py:100 3390s May 02 22:23:37 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:63 3390s May 02 22:23:37 Then I receive a response code 503 # features/steps/patroni_api.py:100 3390s May 02 22:23:37 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 3390s May 02 22:23:37 Then I receive a response code 503 # features/steps/patroni_api.py:100 3390s May 02 22:23:37 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 3390s May 02 22:23:37 Then I receive a response code 200 # features/steps/patroni_api.py:100 3400s May 02 22:23:47 3400s May 02 22:23:47 Feature: permanent slots # features/permanent_slots.feature:1 3400s May 02 22:23:47 3400s May 02 22:23:47 Scenario: check that physical permanent slots are created # features/permanent_slots.feature:2 3400s May 02 22:23:47 Given I start postgres-0 # features/steps/basic_replication.py:20 3404s May 02 22:23:51 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 3405s May 02 22:23:52 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 3405s May 02 22:23:52 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 3406s May 02 22:23:52 Then I receive a response code 200 # features/steps/patroni_api.py:100 3406s May 02 22:23:52 And Response on GET http://127.0.0.1:8008/config contains slots after 10 seconds # features/steps/patroni_api.py:158 3406s May 02 22:23:53 When I start postgres-1 # features/steps/basic_replication.py:20 3410s May 02 22:23:57 And I configure and start postgres-2 with a tag nofailover true # features/steps/cascading_replication.py:7 3414s May 02 22:24:01 And I configure and start postgres-3 with a tag replicatefrom postgres-2 # features/steps/cascading_replication.py:7 3418s May 02 22:24:05 Then postgres-0 has a physical replication slot named test_physical after 10 seconds # features/steps/slots.py:82 3418s May 02 22:24:05 And postgres-0 has a physical replication slot named postgres_1 after 10 seconds # features/steps/slots.py:82 3418s May 02 22:24:05 And postgres-0 has a physical replication slot named postgres_2 after 10 seconds # features/steps/slots.py:82 3418s May 02 22:24:05 And postgres-2 has a physical replication slot named postgres_3 after 10 seconds # features/steps/slots.py:82 3418s May 02 22:24:05 And postgres-2 does not have a replication slot named test_physical # features/steps/slots.py:41 3418s May 02 22:24:05 3418s May 02 22:24:05 @slot-advance 3418s May 02 22:24:05 Scenario: check that logical permanent slots are created # features/permanent_slots.feature:19 3418s May 02 22:24:05 Given I run patronictl.py restart batman postgres-0 --force # features/steps/patroni_api.py:88 3420s May 02 22:24:07 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 3420s May 02 22:24:07 Then postgres-0 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:20 3421s May 02 22:24:08 3421s May 02 22:24:08 @slot-advance 3421s May 02 22:24:08 Scenario: check that permanent slots are created on replicas # features/permanent_slots.feature:25 3421s May 02 22:24:08 Given postgres-1 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:20 3426s May 02 22:24:13 Then Logical slot test_logical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 3426s May 02 22:24:13 And Logical slot test_logical is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 3427s May 02 22:24:14 And postgres-1 has a physical replication slot named test_physical after 2 seconds # features/steps/slots.py:82 3427s May 02 22:24:14 And postgres-2 does not have a replication slot named test_logical # features/steps/slots.py:41 3427s May 02 22:24:14 And postgres-3 has a physical replication slot named test_physical after 2 seconds # features/steps/slots.py:82 3427s May 02 22:24:14 3427s May 02 22:24:14 @slot-advance 3427s May 02 22:24:14 Scenario: check permanent physical slots that match with member names # features/permanent_slots.feature:34 3427s May 02 22:24:14 Given postgres-0 has a physical replication slot named postgres_3 after 2 seconds # features/steps/slots.py:82 3427s May 02 22:24:14 And postgres-1 has a physical replication slot named postgres_0 after 2 seconds # features/steps/slots.py:82 3427s May 02 22:24:14 And postgres-1 has a physical replication slot named postgres_2 after 2 seconds # features/steps/slots.py:82 3427s May 02 22:24:14 And postgres-1 has a physical replication slot named postgres_3 after 2 seconds # features/steps/slots.py:82 3427s May 02 22:24:14 And postgres-2 does not have a replication slot named postgres_0 # features/steps/slots.py:41 3427s May 02 22:24:14 And postgres-2 does not have a replication slot named postgres_1 # features/steps/slots.py:41 3427s May 02 22:24:14 And postgres-2 has a physical replication slot named postgres_3 after 2 seconds # features/steps/slots.py:82 3427s May 02 22:24:14 And postgres-3 has a physical replication slot named postgres_0 after 2 seconds # features/steps/slots.py:82 3427s May 02 22:24:14 And postgres-3 has a physical replication slot named postgres_1 after 2 seconds # features/steps/slots.py:82 3427s May 02 22:24:14 And postgres-3 has a physical replication slot named postgres_2 after 2 seconds # features/steps/slots.py:82 3427s May 02 22:24:14 3427s May 02 22:24:14 @slot-advance 3427s May 02 22:24:14 Scenario: check that permanent slots are advanced on replicas # features/permanent_slots.feature:47 3427s May 02 22:24:14 Given I add the table replicate_me to postgres-0 # features/steps/basic_replication.py:66 3427s May 02 22:24:14 When I get all changes from logical slot test_logical on postgres-0 # features/steps/slots.py:72 3427s May 02 22:24:14 And I get all changes from physical slot test_physical on postgres-0 # features/steps/slots.py:77 3427s May 02 22:24:14 Then Logical slot test_logical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 3428s May 02 22:24:15 And Physical slot test_physical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 3428s May 02 22:24:15 And Logical slot test_logical is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 3428s May 02 22:24:15 And Physical slot test_physical is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 3428s May 02 22:24:15 And Physical slot postgres_1 is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 3428s May 02 22:24:15 And Physical slot postgres_3 is in sync between postgres-2 and postgres-0 after 20 seconds # features/steps/slots.py:52 3430s May 02 22:24:17 And Physical slot postgres_3 is in sync between postgres-2 and postgres-1 after 10 seconds # features/steps/slots.py:52 3430s May 02 22:24:17 3430s May 02 22:24:17 @slot-advance 3430s May 02 22:24:17 Scenario: check that permanent slots and member slots are written to the /status key # features/permanent_slots.feature:60 3430s May 02 22:24:17 Given "status" key in DCS has test_physical in slots # features/steps/slots.py:118 3430s May 02 22:24:17 And "status" key in DCS has postgres_0 in slots # features/steps/slots.py:118 3430s May 02 22:24:17 And "status" key in DCS has postgres_1 in slots # features/steps/slots.py:118 3430s May 02 22:24:17 And "status" key in DCS has postgres_2 in slots # features/steps/slots.py:118 3430s May 02 22:24:17 And "status" key in DCS has postgres_3 in slots # features/steps/slots.py:118 3430s May 02 22:24:17 3430s May 02 22:24:17 @slot-advance 3430s May 02 22:24:17 Scenario: check that only non-permanent member slots are written to the retain_slots in /status key # features/permanent_slots.feature:68 3430s May 02 22:24:17 Given "status" key in DCS has postgres_0 in retain_slots # features/steps/slots.py:118 3430s May 02 22:24:17 And "status" key in DCS has postgres_1 in retain_slots # features/steps/slots.py:118 3430s May 02 22:24:17 And "status" key in DCS has postgres_2 in retain_slots # features/steps/slots.py:118 3430s May 02 22:24:17 And "status" key in DCS does not have postgres_3 in retain_slots # features/steps/slots.py:124 3430s May 02 22:24:17 3430s May 02 22:24:17 Scenario: check permanent physical replication slot after failover # features/permanent_slots.feature:74 3430s May 02 22:24:17 Given I shut down postgres-3 # features/steps/basic_replication.py:41 3431s May 02 22:24:18 And I shut down postgres-2 # features/steps/basic_replication.py:41 3432s May 02 22:24:19 And I shut down postgres-0 # features/steps/basic_replication.py:41 3434s May 02 22:24:21 Then postgres-1 has a physical replication slot named test_physical after 10 seconds # features/steps/slots.py:82 3434s May 02 22:24:21 And postgres-1 has a physical replication slot named postgres_0 after 10 seconds # features/steps/slots.py:82 3434s May 02 22:24:21 And postgres-1 has a physical replication slot named postgres_3 after 10 seconds # features/steps/slots.py:82 3434s May 02 22:24:21 When I start postgres-0 # features/steps/basic_replication.py:20 3437s May 02 22:24:24 Then postgres-0 role is the replica after 20 seconds # features/steps/basic_replication.py:117 3437s May 02 22:24:24 And physical replication slot named postgres_1 on postgres-0 has no xmin value after 10 seconds # features/steps/slots.py:98 3437s May 02 22:24:24 And postgres-0 has a physical replication slot named postgres_2 after 10 seconds # features/steps/slots.py:82 3437s May 02 22:24:24 And postgres-0 has a physical replication slot named postgres_3 after 10 seconds # features/steps/slots.py:82 3450s May 02 22:24:37 3450s May 02 22:24:37 Feature: priority replication # features/priority_failover.feature:1 3450s May 02 22:24:37 We should check that we can give nodes priority during failover 3450s May 02 22:24:37 Scenario: check failover priority 0 prevents leaderships # features/priority_failover.feature:4 3450s May 02 22:24:37 Given I configure and start postgres-0 with a tag failover_priority 1 # features/steps/cascading_replication.py:7 3454s May 02 22:24:41 And I configure and start postgres-1 with a tag failover_priority 0 # features/steps/cascading_replication.py:7 3461s May 02 22:24:48 Then replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 3462s May 02 22:24:49 When I shut down postgres-0 # features/steps/basic_replication.py:41 3464s May 02 22:24:51 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 3466s May 02 22:24:53 Then postgres-1 role is the secondary after 10 seconds # features/steps/basic_replication.py:117 3466s May 02 22:24:53 When I start postgres-0 # features/steps/basic_replication.py:20 3469s May 02 22:24:56 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 3472s May 02 22:24:59 3472s May 02 22:24:59 Scenario: check higher failover priority is respected # features/priority_failover.feature:14 3472s May 02 22:24:59 Given I configure and start postgres-2 with a tag failover_priority 1 # features/steps/cascading_replication.py:7 3477s May 02 22:25:04 And I configure and start postgres-3 with a tag failover_priority 2 # features/steps/cascading_replication.py:7 3488s May 02 22:25:15 Then replication works from postgres-0 to postgres-2 after 20 seconds # features/steps/basic_replication.py:124 3488s May 02 22:25:15 And replication works from postgres-0 to postgres-3 after 20 seconds # features/steps/basic_replication.py:124 3488s May 02 22:25:15 When I shut down postgres-0 # features/steps/basic_replication.py:41 3490s May 02 22:25:17 Then postgres-3 role is the primary after 10 seconds # features/steps/basic_replication.py:117 3490s May 02 22:25:17 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 3490s May 02 22:25:17 3490s May 02 22:25:17 Scenario: check conflicting configuration handling # features/priority_failover.feature:23 3490s May 02 22:25:17 When I set nofailover tag in postgres-2 config # features/steps/patroni_api.py:133 3490s May 02 22:25:17 And I issue an empty POST request to http://127.0.0.1:8010/reload # features/steps/patroni_api.py:68 3490s May 02 22:25:17 Then I receive a response code 202 # features/steps/patroni_api.py:100 3490s May 02 22:25:17 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 3491s May 02 22:25:18 And "members/postgres-2" key in DCS has tags={'failover_priority': '1', 'nofailover': True} after 10 seconds # features/steps/cascading_replication.py:23 3492s May 02 22:25:19 When I issue a POST request to http://127.0.0.1:8010/failover with {"candidate": "postgres-2"} # features/steps/patroni_api.py:73 3492s May 02 22:25:19 Then I receive a response code 412 # features/steps/patroni_api.py:100 3492s May 02 22:25:19 And I receive a response text "failover is not possible: no good candidates have been found" # features/steps/patroni_api.py:100 3492s May 02 22:25:19 When I reset nofailover tag in postgres-1 config # features/steps/patroni_api.py:133 3492s May 02 22:25:19 And I issue an empty POST request to http://127.0.0.1:8009/reload # features/steps/patroni_api.py:68 3492s May 02 22:25:19 Then I receive a response code 202 # features/steps/patroni_api.py:100 3492s May 02 22:25:19 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 3493s May 02 22:25:20 And "members/postgres-1" key in DCS has tags={'failover_priority': '0', 'nofailover': False} after 10 seconds # features/steps/cascading_replication.py:23 3494s May 02 22:25:21 And I issue a POST request to http://127.0.0.1:8009/failover with {"candidate": "postgres-1"} # features/steps/patroni_api.py:73 3498s May 02 22:25:25 Then I receive a response code 200 # features/steps/patroni_api.py:100 3498s May 02 22:25:25 And postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 3511s May 02 22:25:38 3511s May 02 22:25:38 Feature: quorum commit # features/quorum_commit.feature:1 3511s May 02 22:25:38 Check basic workfrlows when quorum commit is enabled 3511s May 02 22:25:38 Scenario: check enable quorum commit and that the only leader promotes after restart # features/quorum_commit.feature:4 3511s May 02 22:25:38 Given I start postgres-0 # features/steps/basic_replication.py:20 3515s May 02 22:25:42 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 3516s May 02 22:25:43 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 3516s May 02 22:25:43 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 3516s May 02 22:25:43 Then I receive a response code 200 # features/steps/patroni_api.py:100 3516s May 02 22:25:43 And sync key in DCS has leader=postgres-0 after 20 seconds # features/steps/quorum_commit.py:8 3516s May 02 22:25:43 And sync key in DCS has quorum=0 after 2 seconds # features/steps/quorum_commit.py:8 3516s May 02 22:25:43 And synchronous_standby_names on postgres-0 is set to '_empty_str_' after 2 seconds # features/steps/quorum_commit.py:39 3516s May 02 22:25:43 When I shut down postgres-0 # features/steps/basic_replication.py:41 3518s May 02 22:25:45 And sync key in DCS has leader=postgres-0 after 2 seconds # features/steps/quorum_commit.py:8 3518s May 02 22:25:45 When I start postgres-0 # features/steps/basic_replication.py:20 3521s May 02 22:25:48 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 3523s May 02 22:25:50 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 3523s May 02 22:25:50 Then synchronous_standby_names on postgres-0 is set to 'ANY 1 (*)' after 10 seconds # features/steps/quorum_commit.py:39 3524s May 02 22:25:51 3524s May 02 22:25:51 Scenario: check failover with one quorum standby # features/quorum_commit.feature:20 3524s May 02 22:25:51 Given I start postgres-1 # features/steps/basic_replication.py:20 3529s May 02 22:25:56 Then sync key in DCS has sync_standby=postgres-1 after 10 seconds # features/steps/quorum_commit.py:8 3530s May 02 22:25:57 And synchronous_standby_names on postgres-0 is set to 'ANY 1 ("postgres-1")' after 2 seconds # features/steps/quorum_commit.py:39 3530s May 02 22:25:57 When I shut down postgres-0 # features/steps/basic_replication.py:41 3532s May 02 22:25:59 Then postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 3533s May 02 22:26:00 And sync key in DCS has quorum=0 after 10 seconds # features/steps/quorum_commit.py:8 3533s May 02 22:26:00 Then synchronous_standby_names on postgres-1 is set to 'ANY 1 (*)' after 10 seconds # features/steps/quorum_commit.py:39 3535s May 02 22:26:02 When I start postgres-0 # features/steps/basic_replication.py:20 3538s May 02 22:26:05 Then sync key in DCS has leader=postgres-1 after 10 seconds # features/steps/quorum_commit.py:8 3538s May 02 22:26:05 Then sync key in DCS has sync_standby=postgres-0 after 10 seconds # features/steps/quorum_commit.py:8 3540s May 02 22:26:07 And synchronous_standby_names on postgres-1 is set to 'ANY 1 ("postgres-0")' after 2 seconds # features/steps/quorum_commit.py:39 3540s May 02 22:26:07 3540s May 02 22:26:07 Scenario: check behavior with three nodes and different replication factor # features/quorum_commit.feature:33 3540s May 02 22:26:07 Given I start postgres-2 # features/steps/basic_replication.py:20 3545s May 02 22:26:12 Then sync key in DCS has sync_standby=postgres-0,postgres-2 after 10 seconds # features/steps/quorum_commit.py:8 3546s May 02 22:26:13 And sync key in DCS has quorum=1 after 2 seconds # features/steps/quorum_commit.py:8 3546s May 02 22:26:13 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 3546s May 02 22:26:13 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 3546s May 02 22:26:13 Then sync key in DCS has quorum=0 after 10 seconds # features/steps/quorum_commit.py:8 3547s May 02 22:26:14 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 3547s May 02 22:26:14 3547s May 02 22:26:14 Scenario: switch from quorum replication to good old multisync and back # features/quorum_commit.feature:42 3547s May 02 22:26:14 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 3547s May 02 22:26:14 And I shut down postgres-0 # features/steps/basic_replication.py:41 3548s May 02 22:26:15 Then synchronous_standby_names on postgres-1 is set to '"postgres-2"' after 10 seconds # features/steps/quorum_commit.py:39 3550s May 02 22:26:17 And sync key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/quorum_commit.py:8 3552s May 02 22:26:19 Then sync key in DCS has quorum=0 after 2 seconds # features/steps/quorum_commit.py:8 3552s May 02 22:26:19 When I issue a PATCH request to http://127.0.0.1:8009/config with {"synchronous_mode": "quorum"} # features/steps/patroni_api.py:73 3553s May 02 22:26:20 And I start postgres-0 # features/steps/basic_replication.py:20 3556s May 02 22:26:23 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 3556s May 02 22:26:23 And sync key in DCS has sync_standby=postgres-0,postgres-2 after 10 seconds # features/steps/quorum_commit.py:8 3556s May 02 22:26:23 Then sync key in DCS has quorum=1 after 2 seconds # features/steps/quorum_commit.py:8 3556s May 02 22:26:23 3556s May 02 22:26:23 Scenario: REST API and patronictl # features/quorum_commit.feature:54 3556s May 02 22:26:23 Given I run patronictl.py list batman # features/steps/patroni_api.py:88 3557s May 02 22:26:24 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 3557s May 02 22:26:24 And I receive a response output "Quorum Standby" # features/steps/patroni_api.py:100 3557s May 02 22:26:24 And Status code on GET http://127.0.0.1:8008/quorum is 200 after 3 seconds # features/steps/patroni_api.py:144 3557s May 02 22:26:24 And Status code on GET http://127.0.0.1:8010/quorum is 200 after 3 seconds # features/steps/patroni_api.py:144 3557s May 02 22:26:24 3557s May 02 22:26:24 Scenario: nosync node is removed from voters and synchronous_standby_names # features/quorum_commit.feature:61 3557s May 02 22:26:24 Given I add tag nosync true to postgres-2 config # features/steps/patroni_api.py:139 3557s May 02 22:26:24 When I issue an empty POST request to http://127.0.0.1:8010/reload # features/steps/patroni_api.py:68 3557s May 02 22:26:24 Then I receive a response code 202 # features/steps/patroni_api.py:100 3557s May 02 22:26:24 And sync key in DCS has quorum=0 after 10 seconds # features/steps/quorum_commit.py:8 3560s May 02 22:26:27 And sync key in DCS has sync_standby=postgres-0 after 10 seconds # features/steps/quorum_commit.py:8 3560s May 02 22:26:27 And synchronous_standby_names on postgres-1 is set to 'ANY 1 ("postgres-0")' after 2 seconds # features/steps/quorum_commit.py:39 3560s May 02 22:26:27 And Status code on GET http://127.0.0.1:8010/quorum is 503 after 10 seconds # features/steps/patroni_api.py:144 3575s May 02 22:26:42 3575s May 02 22:26:42 Feature: recovery # features/recovery.feature:1 3575s May 02 22:26:42 We want to check that crashed postgres is started back 3575s May 02 22:26:42 Scenario: check that timeline is not incremented when primary is started after crash # features/recovery.feature:4 3575s May 02 22:26:42 Given I start postgres-0 # features/steps/basic_replication.py:20 3585s May 02 22:26:52 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 3585s May 02 22:26:52 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 3585s May 02 22:26:52 When I start postgres-1 # features/steps/basic_replication.py:20 3589s May 02 22:26:56 And I add the table foo to postgres-0 # features/steps/basic_replication.py:66 3589s May 02 22:26:56 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 3590s May 02 22:26:57 When I kill postmaster on postgres-0 # features/steps/basic_replication.py:56 3590s May 02 22:26:57 waiting for server to shut down.... done 3590s May 02 22:26:57 server stopped 3590s May 02 22:26:57 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 3593s May 02 22:27:00 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:63 3593s May 02 22:27:00 Then I receive a response code 200 # features/steps/patroni_api.py:100 3593s May 02 22:27:00 And I receive a response role primary # features/steps/patroni_api.py:100 3593s May 02 22:27:00 And I receive a response timeline 1 # features/steps/patroni_api.py:100 3593s May 02 22:27:00 And "members/postgres-0" key in DCS has state=running after 12 seconds # features/steps/cascading_replication.py:23 3593s May 02 22:27:00 And replication works from postgres-0 to postgres-1 after 15 seconds # features/steps/basic_replication.py:124 3596s May 02 22:27:03 3596s May 02 22:27:03 Scenario: check immediate failover when master_start_timeout=0 # features/recovery.feature:20 3596s May 02 22:27:03 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 3596s May 02 22:27:03 Then I receive a response code 200 # features/steps/patroni_api.py:100 3596s May 02 22:27:03 And Response on GET http://127.0.0.1:8008/config contains master_start_timeout after 10 seconds # features/steps/patroni_api.py:158 3596s May 02 22:27:03 When I kill postmaster on postgres-0 # features/steps/basic_replication.py:56 3596s May 02 22:27:03 waiting for server to shut down.... done 3596s May 02 22:27:03 server stopped 3596s May 02 22:27:03 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 3599s May 02 22:27:06 And postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 3599s May 02 22:27:06 3599s May 02 22:27:06 Scenario: check crashed primary demotes after failed attempt to start # features/recovery.feature:28 3599s May 02 22:27:06 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 3599s May 02 22:27:06 Then I receive a response code 200 # features/steps/patroni_api.py:100 3599s May 02 22:27:06 And postgres-0 role is the replica after 10 seconds # features/steps/basic_replication.py:117 3601s May 02 22:27:08 When I ensure postgres-1 fails to start after a failure # features/steps/recovery.py:6 3601s May 02 22:27:08 When I kill postmaster on postgres-1 # features/steps/basic_replication.py:56 3601s May 02 22:27:08 waiting for server to shut down.... done 3601s May 02 22:27:08 server stopped 3601s May 02 22:27:08 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 3602s May 02 22:27:09 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 3612s May 02 22:27:19 3612s May 02 22:27:19 Feature: standby cluster # features/standby_cluster.feature:1 3612s May 02 22:27:19 3612s May 02 22:27:19 Scenario: prepare the cluster with logical slots # features/standby_cluster.feature:2 3612s May 02 22:27:19 Given I start postgres-1 # features/steps/basic_replication.py:20 3617s May 02 22:27:24 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 3617s May 02 22:27:24 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 3617s May 02 22:27:24 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 3617s May 02 22:27:24 Then I receive a response code 200 # features/steps/patroni_api.py:100 3617s May 02 22:27:24 And Response on GET http://127.0.0.1:8009/config contains slots after 10 seconds # features/steps/patroni_api.py:158 3617s May 02 22:27:24 And I sleep for 3 seconds # features/steps/patroni_api.py:41 3620s May 02 22:27:27 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 3620s May 02 22:27:27 Then I receive a response code 200 # features/steps/patroni_api.py:100 3620s May 02 22:27:27 And I do a backup of postgres-1 # features/steps/custom_bootstrap.py:25 3622s May 02 22:27:29 When I start postgres-0 # features/steps/basic_replication.py:20 3626s May 02 22:27:33 Then "members/postgres-0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 3627s May 02 22:27:34 And replication works from postgres-1 to postgres-0 after 15 seconds # features/steps/basic_replication.py:124 3628s May 02 22:27:35 When I issue a GET request to http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:63 3628s May 02 22:27:35 Then I receive a response code 200 # features/steps/patroni_api.py:100 3628s May 02 22:27:35 And I receive a response replication_state streaming # features/steps/patroni_api.py:100 3628s May 02 22:27:35 And "members/postgres-0" key in DCS has replication_state=streaming after 10 seconds # features/steps/cascading_replication.py:23 3628s May 02 22:27:35 3628s May 02 22:27:35 @slot-advance 3628s May 02 22:27:35 Scenario: check permanent logical slots are synced to the replica # features/standby_cluster.feature:22 3628s May 02 22:27:35 Given I run patronictl.py restart batman postgres-1 --force # features/steps/patroni_api.py:88 3630s May 02 22:27:37 Then Logical slot test_logical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 3636s May 02 22:27:43 3636s May 02 22:27:43 Scenario: Detach exiting node from the cluster # features/standby_cluster.feature:26 3636s May 02 22:27:43 When I shut down postgres-1 # features/steps/basic_replication.py:41 3638s May 02 22:27:45 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 3638s May 02 22:27:45 And "members/postgres-0" key in DCS has role=primary after 5 seconds # features/steps/cascading_replication.py:23 3639s May 02 22:27:46 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:63 3639s May 02 22:27:46 Then I receive a response code 200 # features/steps/patroni_api.py:100 3639s May 02 22:27:46 3639s May 02 22:27:46 Scenario: check replication of a single table in a standby cluster # features/standby_cluster.feature:33 3639s May 02 22:27:46 Given I start postgres-1 in a standby cluster batman1 as a clone of postgres-0 # features/steps/standby_cluster.py:23 3642s May 02 22:27:49 Then postgres-1 is a leader of batman1 after 10 seconds # features/steps/custom_bootstrap.py:16 3644s May 02 22:27:51 When I add the table foo to postgres-0 # features/steps/basic_replication.py:66 3644s May 02 22:27:51 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 3644s May 02 22:27:51 When I issue a GET request to http://127.0.0.1:8009/patroni # features/steps/patroni_api.py:63 3644s May 02 22:27:51 Then I receive a response code 200 # features/steps/patroni_api.py:100 3644s May 02 22:27:51 And I receive a response replication_state streaming # features/steps/patroni_api.py:100 3644s May 02 22:27:51 And I sleep for 3 seconds # features/steps/patroni_api.py:41 3647s May 02 22:27:54 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 3647s May 02 22:27:54 Then I receive a response code 503 # features/steps/patroni_api.py:100 3647s May 02 22:27:54 When I issue a GET request to http://127.0.0.1:8009/standby_leader # features/steps/patroni_api.py:63 3647s May 02 22:27:54 Then I receive a response code 200 # features/steps/patroni_api.py:100 3647s May 02 22:27:54 And I receive a response role standby_leader # features/steps/patroni_api.py:100 3647s May 02 22:27:54 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 3647s May 02 22:27:54 When I start postgres-2 in a cluster batman1 # features/steps/standby_cluster.py:12 3652s May 02 22:27:59 Then postgres-2 role is the replica after 24 seconds # features/steps/basic_replication.py:117 3652s May 02 22:27:59 And postgres-2 is replicating from postgres-1 after 10 seconds # features/steps/standby_cluster.py:52 3653s May 02 22:28:00 And table foo is present on postgres-2 after 20 seconds # features/steps/basic_replication.py:105 3653s May 02 22:28:00 When I issue a GET request to http://127.0.0.1:8010/patroni # features/steps/patroni_api.py:63 3653s May 02 22:28:00 Then I receive a response code 200 # features/steps/patroni_api.py:100 3653s May 02 22:28:00 And I receive a response replication_state streaming # features/steps/patroni_api.py:100 3653s May 02 22:28:00 And postgres-1 does not have a replication slot named test_logical # features/steps/slots.py:41 3653s May 02 22:28:00 3653s May 02 22:28:00 Scenario: check switchover # features/standby_cluster.feature:57 3653s May 02 22:28:00 Given I run patronictl.py switchover batman1 --force # features/steps/patroni_api.py:88 3657s May 02 22:28:04 Then Status code on GET http://127.0.0.1:8010/standby_leader is 200 after 10 seconds # features/steps/patroni_api.py:144 3657s May 02 22:28:04 And postgres-1 is replicating from postgres-2 after 32 seconds # features/steps/standby_cluster.py:52 3659s May 02 22:28:06 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 3659s May 02 22:28:06 3659s May 02 22:28:06 Scenario: check failover # features/standby_cluster.feature:63 3659s May 02 22:28:06 When I kill postgres-2 # features/steps/basic_replication.py:46 3660s May 02 22:28:07 And I kill postmaster on postgres-2 # features/steps/basic_replication.py:56 3660s May 02 22:28:07 waiting for server to shut down.... done 3660s May 02 22:28:07 server stopped 3660s May 02 22:28:07 Then postgres-1 is replicating from postgres-0 after 32 seconds # features/steps/standby_cluster.py:52 3679s May 02 22:28:26 And Status code on GET http://127.0.0.1:8009/standby_leader is 200 after 10 seconds # features/steps/patroni_api.py:144 3679s May 02 22:28:26 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 3679s May 02 22:28:26 Then I receive a response code 503 # features/steps/patroni_api.py:100 3679s May 02 22:28:26 And I receive a response role standby_leader # features/steps/patroni_api.py:100 3679s May 02 22:28:26 And replication works from postgres-0 to postgres-1 after 15 seconds # features/steps/basic_replication.py:124 3680s May 02 22:28:27 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 3694s May 02 22:28:41 3694s May 02 22:28:41 Feature: watchdog # features/watchdog.feature:1 3694s May 02 22:28:41 Verify that watchdog gets pinged and triggered under appropriate circumstances. 3694s May 02 22:28:41 Scenario: watchdog is opened and pinged # features/watchdog.feature:4 3694s May 02 22:28:41 Given I start postgres-0 with watchdog # features/steps/watchdog.py:17 3699s May 02 22:28:46 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 3699s May 02 22:28:46 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 3699s May 02 22:28:46 And postgres-0 watchdog has been pinged after 10 seconds # features/steps/watchdog.py:22 3699s May 02 22:28:46 And postgres-0 watchdog has a 15 second timeout # features/steps/watchdog.py:35 3699s May 02 22:28:46 3699s May 02 22:28:46 Scenario: watchdog is reconfigured after global ttl changed # features/watchdog.feature:11 3699s May 02 22:28:46 Given I run patronictl.py edit-config batman -s ttl=30 --force # features/steps/patroni_api.py:88 3700s May 02 22:28:47 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 3700s May 02 22:28:47 And I receive a response output "+ttl: 30" # features/steps/patroni_api.py:100 3700s May 02 22:28:47 When I sleep for 4 seconds # features/steps/patroni_api.py:41 3704s May 02 22:28:51 Then postgres-0 watchdog has a 25 second timeout # features/steps/watchdog.py:35 3704s May 02 22:28:51 3704s May 02 22:28:51 Scenario: watchdog is disabled during pause # features/watchdog.feature:18 3704s May 02 22:28:51 Given I run patronictl.py pause batman # features/steps/patroni_api.py:88 3705s May 02 22:28:52 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 3705s May 02 22:28:52 When I sleep for 2 seconds # features/steps/patroni_api.py:41 3707s May 02 22:28:54 Then postgres-0 watchdog has been closed # features/steps/watchdog.py:30 3707s May 02 22:28:54 3707s May 02 22:28:54 Scenario: watchdog is opened and pinged after resume # features/watchdog.feature:24 3707s May 02 22:28:54 Given I reset postgres-0 watchdog state # features/steps/watchdog.py:40 3707s May 02 22:28:54 And I run patronictl.py resume batman # features/steps/patroni_api.py:88 3709s May 02 22:28:56 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 3709s May 02 22:28:56 And postgres-0 watchdog has been pinged after 10 seconds # features/steps/watchdog.py:22 3710s May 02 22:28:57 3710s May 02 22:28:57 Scenario: watchdog is disabled when shutting down # features/watchdog.feature:30 3710s May 02 22:28:57 Given I shut down postgres-0 # features/steps/basic_replication.py:41 3712s May 02 22:28:59 Then postgres-0 watchdog has been closed # features/steps/watchdog.py:30 3712s May 02 22:28:59 3712s May 02 22:28:59 Scenario: watchdog is triggered if patroni stops responding # features/watchdog.feature:34 3712s May 02 22:28:59 Given I reset postgres-0 watchdog state # features/steps/watchdog.py:40 3712s May 02 22:28:59 And I start postgres-0 with watchdog # features/steps/watchdog.py:17 3715s May 02 22:29:02 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 3717s May 02 22:29:04 When postgres-0 hangs for 30 seconds # features/steps/watchdog.py:53 3717s May 02 22:29:04 Then postgres-0 watchdog is triggered after 30 seconds # features/steps/watchdog.py:45 3754s May 02 22:29:41 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.3207.XvgnMpyx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.3210.XKmYczYx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.3255.XeMUyWOx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.3304.XAiZpeYx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.3354.XmNjioFx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.3400.XmcdZONx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.3473.XuCLbQWx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.3522.XhCKbiGx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.3529.XXGupDWx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.3611.XoDHmeFx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.3715.XVWVilyx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.3719.XdPkFVux 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.3765.XnuepfVx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.3815.XrMECqHx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.3912.XxSzhJIx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.3916.XULWnQBx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.3919.XVKIZQxx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.3965.XGRYysrx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.4022.XPqocVux 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.4118.XRVvVGTx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.4121.XKuxNMRx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.4451.XfunldUx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.4525.XqmPfnkx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.4617.XCvXhrpx 3756s May 02 22:29:43 Skipping duplicate data .coverage.autopkgtest-lxd-rqaosp.4863.XuGmzJTx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.4867.XiNUHPTx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.4920.XLLAPPBx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.4983.XaRVTZrx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.5074.XhnnCVwx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.5172.XHgSwqFx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.5175.XhHyvblx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.5217.XabEWeTx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.5284.XUGDsfzx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.5320.XYPVQRjx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.5431.XNYEoDjx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.5434.XGbEgkDx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.5484.XVHTUxgx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.5500.XRiBgyUx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.5541.XTPUkNCx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.5590.XpDZCHtx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.5596.XKukTCnx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.5635.XCKdfHLx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.5680.XRMbwygx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.5849.XphwMgjx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.5852.XlkzSkVx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.5859.Xfehjuxx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.5993.XWmhLxfx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.5996.XtRPSuQx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.6044.XoeBKtVx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.6086.XtKYpsPx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.6129.XzsNIkIx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.6174.XUUHciex 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.6314.XkfEslDx 3756s May 02 22:29:43 Skipping duplicate data .coverage.autopkgtest-lxd-rqaosp.6397.XolDaXCx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.6400.XWRhDnSx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.6445.XebXduAx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.6518.XJKHFOnx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.6611.XCcddqYx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.6669.XNpjthnx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.7004.XfVRpaKx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.7007.XXqEMqcx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.7058.XihxgMtx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.7123.XuXTqaux 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.7214.XehzqQlx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.7263.XZgOUkyx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.7319.XxNbgqKx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.7363.XXIkfKgx 3756s May 02 22:29:43 Skipping duplicate data .coverage.autopkgtest-lxd-rqaosp.7402.XZGqesmx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.7405.XRFrmdWx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.7450.XJhuDxsx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.7683.XYDozoax 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.7686.XihHEPfx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.7751.XlVRFffx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.7803.XEFmayIx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.7907.XRsyuHMx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.8031.XAVIXKCx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.8160.XxAbtyCx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.8165.Xrmfgyax 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.8209.XZqKQaox 3756s May 02 22:29:43 Skipping duplicate data .coverage.autopkgtest-lxd-rqaosp.8213.XZlBpOWx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.8217.XpgmCOfx 3756s May 02 22:29:43 Combined data file .coverage.autopkgtest-lxd-rqaosp.8229.XlIEPjzx 3756s May 02 22:29:43 Skipping duplicate data .coverage.autopkgtest-lxd-rqaosp.8296.XSyYhsTx 3759s May 02 22:29:46 Name Stmts Miss Cover 3759s May 02 22:29:46 ---------------------------------------------------------------------------------------------------------- 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/_distutils_hack/__init__.py 101 96 5% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/cryptography/__about__.py 5 0 100% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/cryptography/__init__.py 3 0 100% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/cryptography/exceptions.py 26 5 81% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/cryptography/fernet.py 137 54 61% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/cryptography/hazmat/__init__.py 2 0 100% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/cryptography/hazmat/_oid.py 135 0 100% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/cryptography/hazmat/backends/__init__.py 5 0 100% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/__init__.py 3 0 100% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/backend.py 135 67 50% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/__init__.py 0 0 100% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/__init__.py 0 0 100% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/_conditional.py 38 17 55% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/binding.py 51 4 92% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/cryptography/hazmat/decrepit/__init__.py 1 0 100% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/cryptography/hazmat/decrepit/ciphers/__init__.py 1 0 100% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/cryptography/hazmat/decrepit/ciphers/algorithms.py 68 18 74% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/__init__.py 0 0 100% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_asymmetric.py 6 0 100% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_cipheralgorithm.py 23 1 96% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_serialization.py 79 35 56% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/__init__.py 0 0 100% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ec.py 172 22 87% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/padding.py 55 23 58% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/rsa.py 93 40 57% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/utils.py 14 5 64% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/__init__.py 4 0 100% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/algorithms.py 72 13 82% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/base.py 54 3 94% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/modes.py 140 50 64% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/constant_time.py 6 3 50% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/hashes.py 127 20 84% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/hmac.py 6 0 100% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/kdf/__init__.py 7 0 100% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/kdf/pbkdf2.py 27 5 81% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/padding.py 104 37 64% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/cryptography/utils.py 76 25 67% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/dateutil/__init__.py 13 4 69% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/dateutil/_common.py 25 15 40% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/dateutil/_version.py 13 3 77% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/dateutil/parser/__init__.py 33 4 88% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/dateutil/parser/_parser.py 810 436 46% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/dateutil/parser/isoparser.py 183 150 18% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/dateutil/relativedelta.py 240 206 14% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/dateutil/tz/__init__.py 4 0 100% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/dateutil/tz/_common.py 151 114 25% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/dateutil/tz/_factories.py 49 21 57% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/dateutil/tz/tz.py 794 626 21% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/dateutil/tz/win.py 152 149 2% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/__init__.py 13 2 85% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/__main__.py 201 66 67% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/api.py 788 292 63% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/async_executor.py 96 15 84% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/collections.py 56 5 91% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/config.py 357 88 75% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/config_generator.py 212 159 25% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/daemon.py 76 3 96% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/dcs/__init__.py 710 99 86% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/dcs/raft.py 319 39 88% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/dynamic_loader.py 35 7 80% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/exceptions.py 16 0 100% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/file_perm.py 47 10 79% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/global_config.py 87 0 100% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/ha.py 1359 310 77% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/log.py 235 79 66% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/postgresql/__init__.py 825 170 79% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/postgresql/available_parameters/__init__.py 24 3 88% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/postgresql/bootstrap.py 254 60 76% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/postgresql/callback_executor.py 55 8 85% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/postgresql/cancellable.py 104 41 61% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/postgresql/config.py 839 217 74% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/postgresql/connection.py 75 1 99% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/postgresql/misc.py 43 8 81% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/postgresql/mpp/__init__.py 89 11 88% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/postgresql/postmaster.py 170 83 51% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/postgresql/rewind.py 416 127 69% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/postgresql/slots.py 349 35 90% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/postgresql/sync.py 154 10 94% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/postgresql/validator.py 157 24 85% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/psycopg.py 46 19 59% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/quorum.py 182 48 74% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/request.py 58 6 90% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/tags.py 38 0 100% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/utils.py 371 122 67% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/validator.py 309 215 30% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/version.py 1 0 100% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/watchdog/__init__.py 2 0 100% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/watchdog/base.py 203 42 79% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/patroni/watchdog/linux.py 135 35 74% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/psutil/__init__.py 945 622 34% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/psutil/_common.py 408 208 49% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/psutil/_pslinux.py 1225 907 26% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/psutil/_psposix.py 84 37 56% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/psycopg2/__init__.py 19 3 84% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/psycopg2/_json.py 64 27 58% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/psycopg2/_range.py 269 172 36% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/psycopg2/errors.py 3 2 33% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/psycopg2/extensions.py 91 25 73% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/pysyncobj/__init__.py 2 0 100% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/pysyncobj/atomic_replace.py 4 0 100% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/pysyncobj/config.py 80 1 99% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/pysyncobj/dns_resolver.py 52 10 81% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/pysyncobj/encryptor.py 17 2 88% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/pysyncobj/fast_queue.py 21 1 95% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/pysyncobj/journal.py 193 37 81% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/pysyncobj/monotonic.py 76 70 8% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/pysyncobj/node.py 49 10 80% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/pysyncobj/pickle.py 52 32 38% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/pysyncobj/pipe_notifier.py 24 2 92% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/pysyncobj/poller.py 87 41 53% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/pysyncobj/serializer.py 167 133 20% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/pysyncobj/syncobj.py 1057 396 63% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/pysyncobj/tcp_connection.py 250 40 84% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/pysyncobj/tcp_server.py 56 12 79% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/pysyncobj/transport.py 266 57 79% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/pysyncobj/utility.py 59 7 88% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/pysyncobj/version.py 1 0 100% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/pysyncobj/win_inet_pton.py 44 31 30% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/urllib3/__init__.py 49 15 69% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/urllib3/_base_connection.py 63 45 29% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/urllib3/_collections.py 231 104 55% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/urllib3/_request_methods.py 54 16 70% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/urllib3/_version.py 13 3 77% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/urllib3/connection.py 389 143 63% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/urllib3/connectionpool.py 344 130 62% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/urllib3/exceptions.py 121 39 68% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/urllib3/fields.py 92 73 21% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/urllib3/filepost.py 37 24 35% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/urllib3/http2/__init__.py 28 21 25% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/urllib3/http2/probe.py 49 31 37% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/urllib3/poolmanager.py 233 88 62% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/urllib3/response.py 634 395 38% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/urllib3/util/__init__.py 10 0 100% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/urllib3/util/connection.py 66 9 86% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/urllib3/util/proxy.py 13 6 54% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/urllib3/util/request.py 104 49 53% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/urllib3/util/response.py 32 17 47% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/urllib3/util/retry.py 174 50 71% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/urllib3/util/ssl_.py 172 73 58% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/urllib3/util/ssl_match_hostname.py 66 54 18% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/urllib3/util/ssltransport.py 152 106 30% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/urllib3/util/timeout.py 71 19 73% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/urllib3/util/url.py 203 76 63% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/urllib3/util/util.py 26 9 65% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/urllib3/util/wait.py 49 38 22% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/yaml/__init__.py 165 109 34% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/yaml/composer.py 92 17 82% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/yaml/constructor.py 479 276 42% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/yaml/cyaml.py 46 24 48% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/yaml/dumper.py 23 12 48% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/yaml/emitter.py 838 769 8% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/yaml/error.py 58 42 28% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/yaml/events.py 61 6 90% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/yaml/loader.py 47 24 49% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/yaml/nodes.py 29 7 76% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/yaml/parser.py 352 180 49% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/yaml/reader.py 122 30 75% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/yaml/representer.py 248 176 29% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/yaml/resolver.py 135 76 44% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/yaml/scanner.py 758 415 45% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/yaml/serializer.py 85 70 18% 3759s May 02 22:29:46 /usr/lib/python3/dist-packages/yaml/tokens.py 76 17 78% 3759s May 02 22:29:46 patroni/__init__.py 13 2 85% 3759s May 02 22:29:46 patroni/__main__.py 201 201 0% 3759s May 02 22:29:46 patroni/api.py 788 788 0% 3759s May 02 22:29:46 patroni/async_executor.py 96 69 28% 3759s May 02 22:29:46 patroni/collections.py 56 15 73% 3759s May 02 22:29:46 patroni/config.py 357 179 50% 3759s May 02 22:29:46 patroni/config_generator.py 212 212 0% 3759s May 02 22:29:46 patroni/ctl.py 936 395 58% 3759s May 02 22:29:46 patroni/daemon.py 76 6 92% 3759s May 02 22:29:46 patroni/dcs/__init__.py 710 316 55% 3759s May 02 22:29:46 patroni/dcs/consul.py 482 482 0% 3759s May 02 22:29:46 patroni/dcs/etcd3.py 679 679 0% 3759s May 02 22:29:46 patroni/dcs/etcd.py 603 603 0% 3759s May 02 22:29:46 patroni/dcs/exhibitor.py 62 62 0% 3759s May 02 22:29:46 patroni/dcs/kubernetes.py 943 943 0% 3759s May 02 22:29:46 patroni/dcs/raft.py 319 72 77% 3759s May 02 22:29:46 patroni/dcs/zookeeper.py 289 289 0% 3759s May 02 22:29:46 patroni/dynamic_loader.py 35 7 80% 3759s May 02 22:29:46 patroni/exceptions.py 16 1 94% 3759s May 02 22:29:46 patroni/file_perm.py 47 17 64% 3759s May 02 22:29:46 patroni/global_config.py 87 19 78% 3759s May 02 22:29:46 patroni/ha.py 1359 1359 0% 3759s May 02 22:29:46 patroni/log.py 235 103 56% 3759s May 02 22:29:46 patroni/postgresql/__init__.py 825 653 21% 3759s May 02 22:29:46 patroni/postgresql/available_parameters/__init__.py 24 3 88% 3759s May 02 22:29:46 patroni/postgresql/bootstrap.py 254 224 12% 3759s May 02 22:29:46 patroni/postgresql/callback_executor.py 55 34 38% 3759s May 02 22:29:46 patroni/postgresql/cancellable.py 104 84 19% 3759s May 02 22:29:46 patroni/postgresql/config.py 839 719 14% 3759s May 02 22:29:46 patroni/postgresql/connection.py 75 50 33% 3759s May 02 22:29:46 patroni/postgresql/misc.py 43 30 30% 3759s May 02 22:29:46 patroni/postgresql/mpp/__init__.py 89 21 76% 3759s May 02 22:29:46 patroni/postgresql/mpp/citus.py 366 366 0% 3759s May 02 22:29:46 patroni/postgresql/postmaster.py 170 139 18% 3759s May 02 22:29:46 patroni/postgresql/rewind.py 416 416 0% 3759s May 02 22:29:46 patroni/postgresql/slots.py 349 300 14% 3759s May 02 22:29:46 patroni/postgresql/sync.py 154 114 26% 3759s May 02 22:29:46 patroni/postgresql/validator.py 157 52 67% 3759s May 02 22:29:46 patroni/psycopg.py 46 32 30% 3759s May 02 22:29:46 patroni/quorum.py 182 182 0% 3759s May 02 22:29:46 patroni/raft_controller.py 22 1 95% 3759s May 02 22:29:46 patroni/request.py 58 6 90% 3759s May 02 22:29:46 patroni/scripts/__init__.py 0 0 100% 3759s May 02 22:29:46 patroni/scripts/aws.py 59 59 0% 3759s May 02 22:29:46 patroni/scripts/barman/__init__.py 0 0 100% 3759s May 02 22:29:46 patroni/scripts/barman/cli.py 50 50 0% 3759s May 02 22:29:46 patroni/scripts/barman/config_switch.py 50 50 0% 3759s May 02 22:29:46 patroni/scripts/barman/recover.py 36 36 0% 3759s May 02 22:29:46 patroni/scripts/barman/utils.py 93 93 0% 3759s May 02 22:29:46 patroni/scripts/wale_restore.py 207 207 0% 3759s May 02 22:29:46 patroni/tags.py 38 11 71% 3759s May 02 22:29:46 patroni/utils.py 371 231 38% 3759s May 02 22:29:46 patroni/validator.py 309 222 28% 3759s May 02 22:29:46 patroni/version.py 1 0 100% 3759s May 02 22:29:46 patroni/watchdog/__init__.py 2 2 0% 3759s May 02 22:29:46 patroni/watchdog/base.py 203 203 0% 3759s May 02 22:29:46 patroni/watchdog/linux.py 135 135 0% 3759s May 02 22:29:46 ---------------------------------------------------------------------------------------------------------- 3759s May 02 22:29:46 TOTAL 40886 23042 44% 3759s May 02 22:29:46 13 features passed, 0 failed, 1 skipped 3759s May 02 22:29:46 63 scenarios passed, 0 failed, 6 skipped 3759s May 02 22:29:46 597 steps passed, 0 failed, 70 skipped, 0 undefined 3759s May 02 22:29:46 Took 10m27.976s 3759s ### End 17 acceptance-raft ### 3759s + echo '### End 17 acceptance-raft ###' 3759s + rm -f '/tmp/pgpass?' 3759s ++ id -u 3759s + '[' 1000 -eq 0 ']' 3759s autopkgtest [22:29:46]: test acceptance-raft: -----------------------] 3763s autopkgtest [22:29:50]: test acceptance-raft: - - - - - - - - - - results - - - - - - - - - - 3763s acceptance-raft PASS 3767s autopkgtest [22:29:54]: @@@@@@@@@@@@@@@@@@@@ summary 3767s test PASS 3767s acceptance-etcd3 PASS 3767s acceptance-etcd-basic PASS 3767s acceptance-etcd PASS 3767s acceptance-zookeeper PASS 3767s acceptance-raft PASS