0s autopkgtest [00:25:58]: starting date and time: 2025-05-03 00:25:58+0000 0s autopkgtest [00:25:58]: git checkout: 9986aa8c Merge branch 'skia/fix_network_interface' into 'ubuntu/production' 0s autopkgtest [00:25:58]: host juju-7f2275-prod-proposed-migration-environment-23; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.164o68w5/out --timeout-copy=6000 -a i386 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --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 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor builder-cpu2-ram4-disk20 --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-23@bos03-13.secgroup --name adt-questing-i386-patroni-20250502-234337-juju-7f2275-prod-proposed-migration-environment-23-985920ce-8779-47e4-9f4b-c7b0ede3e2b3 --image adt/ubuntu-questing-amd64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-23 --net-id=net_prod-proposed-migration-amd64 -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 55s autopkgtest [00:26:53]: testbed dpkg architecture: amd64 55s autopkgtest [00:26:53]: testbed apt version: 3.0.0 55s autopkgtest [00:26:53]: @@@@@@@@@@@@@@@@@@@@ test bed setup 56s autopkgtest [00:26:54]: testbed release detected to be: None 56s autopkgtest [00:26:54]: updating testbed package index (apt update) 57s Get:1 http://ftpmaster.internal/ubuntu questing-proposed InRelease [110 kB] 57s Hit:2 http://ftpmaster.internal/ubuntu questing InRelease 57s Hit:3 http://ftpmaster.internal/ubuntu questing-updates InRelease 57s Hit:4 http://ftpmaster.internal/ubuntu questing-security InRelease 57s Get:5 http://ftpmaster.internal/ubuntu questing-proposed/main Sources [168 kB] 57s Get:6 http://ftpmaster.internal/ubuntu questing-proposed/multiverse Sources [43.1 kB] 57s Get:7 http://ftpmaster.internal/ubuntu questing-proposed/universe Sources [1947 kB] 58s Get:8 http://ftpmaster.internal/ubuntu questing-proposed/main i386 Packages [178 kB] 58s Get:9 http://ftpmaster.internal/ubuntu questing-proposed/main amd64 Packages [233 kB] 58s Get:10 http://ftpmaster.internal/ubuntu questing-proposed/universe i386 Packages [671 kB] 58s Get:11 http://ftpmaster.internal/ubuntu questing-proposed/universe amd64 Packages [1515 kB] 58s Get:12 http://ftpmaster.internal/ubuntu questing-proposed/multiverse amd64 Packages [15.1 kB] 58s Get:13 http://ftpmaster.internal/ubuntu questing-proposed/multiverse i386 Packages [13.9 kB] 58s Fetched 4894 kB in 2s (2919 kB/s) 59s Reading package lists... 60s autopkgtest [00:26:58]: upgrading testbed (apt dist-upgrade and autopurge) 60s Reading package lists... 60s Building dependency tree... 60s Reading state information... 60s Calculating upgrade...Starting pkgProblemResolver with broken count: 0 60s Starting 2 pkgProblemResolver with broken count: 0 60s Done 61s Entering ResolveByKeep 61s 61s Calculating upgrade... 61s The following packages will be upgraded: 61s ed fwupd htop libftdi1-2 libfwupd3 libnpth0t64 libsensors-config libsensors5 61s liburcu8t64 mokutil nano usb.ids 61s 12 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 61s Need to get 6445 kB of archives. 61s After this operation, 193 kB disk space will be freed. 61s Get:1 http://ftpmaster.internal/ubuntu questing/main amd64 libnpth0t64 amd64 1.8-3 [9294 B] 61s Get:2 http://ftpmaster.internal/ubuntu questing/main amd64 ed amd64 1.21.1-1 [57.2 kB] 62s Get:3 http://ftpmaster.internal/ubuntu questing/main amd64 libsensors-config all 1:3.6.2-2 [6756 B] 62s Get:4 http://ftpmaster.internal/ubuntu questing/main amd64 libsensors5 amd64 1:3.6.2-2 [28.7 kB] 62s Get:5 http://ftpmaster.internal/ubuntu questing/main amd64 liburcu8t64 amd64 0.15.2-2 [63.9 kB] 62s Get:6 http://ftpmaster.internal/ubuntu questing/main amd64 nano amd64 8.4-1 [290 kB] 62s Get:7 http://ftpmaster.internal/ubuntu questing/main amd64 usb.ids all 2025.04.01-1 [223 kB] 62s Get:8 http://ftpmaster.internal/ubuntu questing/main amd64 fwupd amd64 2.0.8-3 [5396 kB] 64s Get:9 http://ftpmaster.internal/ubuntu questing/main amd64 libfwupd3 amd64 2.0.8-3 [136 kB] 64s Get:10 http://ftpmaster.internal/ubuntu questing/main amd64 htop amd64 3.4.1-4 [175 kB] 64s Get:11 http://ftpmaster.internal/ubuntu questing/main amd64 libftdi1-2 amd64 1.5-10 [30.7 kB] 64s Get:12 http://ftpmaster.internal/ubuntu questing/main amd64 mokutil amd64 0.7.2-1 [27.9 kB] 64s Fetched 6445 kB in 2s (2787 kB/s) 64s (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 ... 80514 files and directories currently installed.) 64s Preparing to unpack .../libnpth0t64_1.8-3_amd64.deb ... 64s Unpacking libnpth0t64:amd64 (1.8-3) over (1.8-2) ... 64s Setting up libnpth0t64:amd64 (1.8-3) ... 64s (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 ... 80514 files and directories currently installed.) 64s Preparing to unpack .../00-ed_1.21.1-1_amd64.deb ... 64s Unpacking ed (1.21.1-1) over (1.21-1) ... 64s Preparing to unpack .../01-libsensors-config_1%3a3.6.2-2_all.deb ... 64s Unpacking libsensors-config (1:3.6.2-2) over (1:3.6.0-10) ... 64s Preparing to unpack .../02-libsensors5_1%3a3.6.2-2_amd64.deb ... 64s Unpacking libsensors5:amd64 (1:3.6.2-2) over (1:3.6.0-10) ... 64s Preparing to unpack .../03-liburcu8t64_0.15.2-2_amd64.deb ... 64s Unpacking liburcu8t64:amd64 (0.15.2-2) over (0.15.1-1) ... 64s Preparing to unpack .../04-nano_8.4-1_amd64.deb ... 64s Unpacking nano (8.4-1) over (8.3-1) ... 64s Preparing to unpack .../05-usb.ids_2025.04.01-1_all.deb ... 64s Unpacking usb.ids (2025.04.01-1) over (2025.01.14-1) ... 64s Preparing to unpack .../06-fwupd_2.0.8-3_amd64.deb ... 65s Unpacking fwupd (2.0.8-3) over (2.0.7-1) ... 65s Preparing to unpack .../07-libfwupd3_2.0.8-3_amd64.deb ... 65s Unpacking libfwupd3:amd64 (2.0.8-3) over (2.0.7-1) ... 65s Preparing to unpack .../08-htop_3.4.1-4_amd64.deb ... 65s Unpacking htop (3.4.1-4) over (3.4.0-2) ... 65s Preparing to unpack .../09-libftdi1-2_1.5-10_amd64.deb ... 65s Unpacking libftdi1-2:amd64 (1.5-10) over (1.5-8build1) ... 65s Preparing to unpack .../10-mokutil_0.7.2-1_amd64.deb ... 65s Unpacking mokutil (0.7.2-1) over (0.6.0-2build3) ... 65s Setting up liburcu8t64:amd64 (0.15.2-2) ... 65s Setting up mokutil (0.7.2-1) ... 65s Setting up htop (3.4.1-4) ... 65s Setting up libsensors-config (1:3.6.2-2) ... 65s Installing new version of config file /etc/sensors3.conf ... 65s Setting up libfwupd3:amd64 (2.0.8-3) ... 65s Setting up libftdi1-2:amd64 (1.5-10) ... 65s Setting up ed (1.21.1-1) ... 65s Setting up usb.ids (2025.04.01-1) ... 65s Setting up libsensors5:amd64 (1:3.6.2-2) ... 65s Setting up nano (8.4-1) ... 65s Installing new version of config file /etc/nanorc ... 65s Setting up fwupd (2.0.8-3) ... 66s fwupd-refresh.service is a disabled or a static unit not running, not starting it. 66s fwupd.service is a disabled or a static unit not running, not starting it. 66s Processing triggers for man-db (2.13.0-1) ... 67s Processing triggers for dbus (1.16.2-2ubuntu1) ... 67s Processing triggers for install-info (7.1.1-1) ... 67s Processing triggers for libc-bin (2.41-6ubuntu1) ... 67s Reading package lists... 67s Building dependency tree... 67s Reading state information... 68s Starting pkgProblemResolver with broken count: 0 68s Starting 2 pkgProblemResolver with broken count: 0 68s Done 68s Solving dependencies... 68s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 68s autopkgtest [00:27:06]: rebooting testbed after setup commands that affected boot 91s autopkgtest [00:27:29]: testbed running kernel: Linux 6.14.0-15-generic #15-Ubuntu SMP PREEMPT_DYNAMIC Sun Apr 6 15:05:05 UTC 2025 94s autopkgtest [00:27:32]: @@@@@@@@@@@@@@@@@@@@ apt-source patroni 96s Get:1 http://ftpmaster.internal/ubuntu questing/universe patroni 4.0.4-7 (dsc) [2850 B] 96s Get:2 http://ftpmaster.internal/ubuntu questing/universe patroni 4.0.4-7 (tar) [1205 kB] 96s Get:3 http://ftpmaster.internal/ubuntu questing/universe patroni 4.0.4-7 (diff) [26.8 kB] 97s gpgv: Signature made Wed Feb 12 17:39:45 2025 UTC 97s gpgv: using RSA key 9CA877749FAB2E4FA96862ECDC686A27B43481B0 97s gpgv: Can't check signature: No public key 97s dpkg-source: warning: cannot verify inline signature for ./patroni_4.0.4-7.dsc: no acceptable signature found 97s autopkgtest [00:27:35]: testing package patroni version 4.0.4-7 97s autopkgtest [00:27:35]: build not needed 98s autopkgtest [00:27:36]: test test: preparing testbed 98s Reading package lists... 98s Building dependency tree... 98s Reading state information... 98s Starting pkgProblemResolver with broken count: 0 98s Starting 2 pkgProblemResolver with broken count: 0 98s Done 99s The following NEW packages will be installed: 99s fonts-font-awesome fonts-lato libcares2 libev4t64 libjs-jquery 99s libjs-jquery-hotkeys libjs-jquery-isonscreen libjs-jquery-metadata 99s libjs-jquery-tablesorter libjs-jquery-throttle-debounce libjs-sphinxdoc 99s libjs-underscore libpq5 patroni patroni-doc python3-aiohappyeyeballs 99s python3-aiohttp python3-aiosignal python3-async-timeout python3-cachetools 99s python3-click python3-consul python3-coverage python3-dnspython python3-etcd 99s python3-eventlet python3-flake8 python3-frozenlist python3-gevent 99s python3-google-auth python3-greenlet python3-iniconfig python3-kazoo 99s python3-kerberos python3-kubernetes python3-mccabe python3-mock 99s python3-multidict python3-pluggy python3-prettytable python3-psutil 99s python3-psycopg2 python3-pure-sasl python3-pyasn1 python3-pyasn1-modules 99s python3-pycodestyle python3-pyflakes python3-pysyncobj python3-pytest 99s python3-pytest-cov python3-pyu2f python3-requests-oauthlib python3-responses 99s python3-rsa python3-wcwidth python3-websocket python3-yarl python3-ydiff 99s python3-zope.event python3-zope.interface sphinx-rtd-theme-common 99s 0 upgraded, 61 newly installed, 0 to remove and 0 not upgraded. 99s Need to get 10.5 MB of archives. 99s After this operation, 62.1 MB of additional disk space will be used. 99s Get:1 http://ftpmaster.internal/ubuntu questing/main amd64 fonts-lato all 2.015-1 [2781 kB] 100s Get:2 http://ftpmaster.internal/ubuntu questing/main amd64 fonts-font-awesome all 5.0.10+really4.7.0~dfsg-4.1 [516 kB] 100s Get:3 http://ftpmaster.internal/ubuntu questing/main amd64 libcares2 amd64 1.34.4-2.1 [109 kB] 100s Get:4 http://ftpmaster.internal/ubuntu questing/universe amd64 libev4t64 amd64 1:4.33-2.1build1 [31.0 kB] 100s Get:5 http://ftpmaster.internal/ubuntu questing/main amd64 libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 100s Get:6 http://ftpmaster.internal/ubuntu questing/universe amd64 libjs-jquery-metadata all 12-4 [6582 B] 100s Get:7 http://ftpmaster.internal/ubuntu questing/universe amd64 libjs-jquery-tablesorter all 1:2.31.3+dfsg1-4 [192 kB] 100s Get:8 http://ftpmaster.internal/ubuntu questing/universe amd64 libjs-jquery-throttle-debounce all 1.1+dfsg.1-2 [12.5 kB] 100s Get:9 http://ftpmaster.internal/ubuntu questing/main amd64 libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [118 kB] 100s Get:10 http://ftpmaster.internal/ubuntu questing/main amd64 libjs-sphinxdoc all 8.1.3-5 [31.0 kB] 100s Get:11 http://ftpmaster.internal/ubuntu questing/main amd64 libpq5 amd64 17.4-1 [155 kB] 100s Get:12 http://ftpmaster.internal/ubuntu questing/main amd64 python3-click all 8.2.0+0.really.8.1.8-1 [80.0 kB] 100s Get:13 http://ftpmaster.internal/ubuntu questing/main amd64 python3-wcwidth all 0.2.13+dfsg1-1 [26.3 kB] 100s Get:14 http://ftpmaster.internal/ubuntu questing/main amd64 python3-prettytable all 3.12.0-1 [36.5 kB] 100s Get:15 http://ftpmaster.internal/ubuntu questing-proposed/main amd64 python3-psutil amd64 7.0.0-2 [188 kB] 100s Get:16 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-ydiff all 1.4.2-1 [19.0 kB] 100s Get:17 http://ftpmaster.internal/ubuntu questing/main amd64 python3-psycopg2 amd64 2.9.10-1build1 [142 kB] 100s Get:18 http://ftpmaster.internal/ubuntu questing/main amd64 python3-dnspython all 2.7.0-1ubuntu1 [167 kB] 100s Get:19 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-etcd all 0.4.5-6 [32.1 kB] 100s Get:20 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-consul all 1.5.1+dfsg-1 [21.7 kB] 100s Get:21 http://ftpmaster.internal/ubuntu questing/main amd64 python3-greenlet amd64 3.1.0-1build1 [166 kB] 100s Get:22 http://ftpmaster.internal/ubuntu questing/main amd64 python3-eventlet all 0.39.0-0ubuntu1 [277 kB] 100s Get:23 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-zope.event all 5.0-0.1 [7512 B] 100s Get:24 http://ftpmaster.internal/ubuntu questing/main amd64 python3-zope.interface amd64 7.2-1build1 [142 kB] 100s Get:25 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-gevent amd64 24.11.1-1build1 [905 kB] 100s Get:26 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-kerberos amd64 1.1.14-3.1build11 [21.4 kB] 100s Get:27 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-pure-sasl all 0.5.1+dfsg1-5 [11.4 kB] 100s Get:28 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-kazoo all 2.9.0-2 [103 kB] 100s Get:29 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-multidict amd64 6.2.0-2 [35.6 kB] 100s Get:30 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-yarl amd64 1.13.1-1build2 [99.7 kB] 100s Get:31 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-async-timeout all 5.0.1-1 [6830 B] 100s Get:32 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-aiohappyeyeballs all 2.6.1-1 [11.1 kB] 100s Get:33 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-frozenlist amd64 1.5.0-1build2 [51.6 kB] 100s Get:34 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-aiosignal all 1.3.2-1 [5182 B] 100s Get:35 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-aiohttp amd64 3.10.11-1build1 [316 kB] 100s Get:36 http://ftpmaster.internal/ubuntu questing/main amd64 python3-cachetools all 5.3.3-1 [10.3 kB] 100s Get:37 http://ftpmaster.internal/ubuntu questing/main amd64 python3-pyasn1 all 0.6.1-1 [56.4 kB] 100s Get:38 http://ftpmaster.internal/ubuntu questing/main amd64 python3-pyasn1-modules all 0.4.1-2 [80.3 kB] 100s Get:39 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-pyu2f all 0.1.5-4 [22.9 kB] 100s Get:40 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-responses all 0.25.6-1 [40.5 kB] 100s Get:41 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-rsa all 4.9-2 [28.2 kB] 100s Get:42 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-google-auth all 2.28.2-3 [91.0 kB] 100s Get:43 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-requests-oauthlib all 1.3.1-1 [18.8 kB] 100s Get:44 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-websocket all 1.8.0-2 [38.5 kB] 101s Get:45 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-kubernetes all 30.1.0-2 [385 kB] 101s Get:46 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-pysyncobj all 0.3.14-2 [61.9 kB] 101s Get:47 http://ftpmaster.internal/ubuntu questing/universe amd64 patroni all 4.0.4-7 [281 kB] 101s Get:48 http://ftpmaster.internal/ubuntu questing/main amd64 sphinx-rtd-theme-common all 3.0.2+dfsg-2 [1014 kB] 101s Get:49 http://ftpmaster.internal/ubuntu questing/universe amd64 patroni-doc all 4.0.4-7 [526 kB] 101s Get:50 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-coverage amd64 7.6.0+dfsg1-2build1 [153 kB] 101s Get:51 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-mccabe all 0.7.0-1 [8678 B] 101s Get:52 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-pycodestyle all 2.12.1-2 [30.2 kB] 101s Get:53 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-pyflakes all 3.2.0-3 [53.0 kB] 101s Get:54 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-flake8 all 7.1.1-3 [44.0 kB] 101s Get:55 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-iniconfig all 1.1.1-2 [6024 B] 101s Get:56 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-pluggy all 1.5.0-1 [21.0 kB] 101s Get:57 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-pytest all 8.3.5-1 [252 kB] 101s Get:58 http://ftpmaster.internal/ubuntu questing/universe amd64 libjs-jquery-hotkeys all 0.2.0-1 [13.3 kB] 101s Get:59 http://ftpmaster.internal/ubuntu questing/universe amd64 libjs-jquery-isonscreen all 1.2.0-1.1 [3244 B] 101s Get:60 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-pytest-cov all 5.0.0-1 [21.3 kB] 101s Get:61 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-mock all 5.1.0-1 [64.1 kB] 101s Fetched 10.5 MB in 2s (5137 kB/s) 101s Selecting previously unselected package fonts-lato. 102s (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 ... 80514 files and directories currently installed.) 102s Preparing to unpack .../00-fonts-lato_2.015-1_all.deb ... 102s Unpacking fonts-lato (2.015-1) ... 102s Selecting previously unselected package fonts-font-awesome. 102s Preparing to unpack .../01-fonts-font-awesome_5.0.10+really4.7.0~dfsg-4.1_all.deb ... 102s Unpacking fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 102s Selecting previously unselected package libcares2:amd64. 102s Preparing to unpack .../02-libcares2_1.34.4-2.1_amd64.deb ... 102s Unpacking libcares2:amd64 (1.34.4-2.1) ... 102s Selecting previously unselected package libev4t64:amd64. 102s Preparing to unpack .../03-libev4t64_1%3a4.33-2.1build1_amd64.deb ... 102s Unpacking libev4t64:amd64 (1:4.33-2.1build1) ... 102s Selecting previously unselected package libjs-jquery. 102s Preparing to unpack .../04-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 102s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 102s Selecting previously unselected package libjs-jquery-metadata. 102s Preparing to unpack .../05-libjs-jquery-metadata_12-4_all.deb ... 102s Unpacking libjs-jquery-metadata (12-4) ... 102s Selecting previously unselected package libjs-jquery-tablesorter. 102s Preparing to unpack .../06-libjs-jquery-tablesorter_1%3a2.31.3+dfsg1-4_all.deb ... 102s Unpacking libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... 102s Selecting previously unselected package libjs-jquery-throttle-debounce. 102s Preparing to unpack .../07-libjs-jquery-throttle-debounce_1.1+dfsg.1-2_all.deb ... 102s Unpacking libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... 102s Selecting previously unselected package libjs-underscore. 102s Preparing to unpack .../08-libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ... 102s Unpacking libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 102s Selecting previously unselected package libjs-sphinxdoc. 102s Preparing to unpack .../09-libjs-sphinxdoc_8.1.3-5_all.deb ... 102s Unpacking libjs-sphinxdoc (8.1.3-5) ... 102s Selecting previously unselected package libpq5:amd64. 102s Preparing to unpack .../10-libpq5_17.4-1_amd64.deb ... 102s Unpacking libpq5:amd64 (17.4-1) ... 102s Selecting previously unselected package python3-click. 102s Preparing to unpack .../11-python3-click_8.2.0+0.really.8.1.8-1_all.deb ... 102s Unpacking python3-click (8.2.0+0.really.8.1.8-1) ... 102s Selecting previously unselected package python3-wcwidth. 102s Preparing to unpack .../12-python3-wcwidth_0.2.13+dfsg1-1_all.deb ... 102s Unpacking python3-wcwidth (0.2.13+dfsg1-1) ... 102s Selecting previously unselected package python3-prettytable. 102s Preparing to unpack .../13-python3-prettytable_3.12.0-1_all.deb ... 102s Unpacking python3-prettytable (3.12.0-1) ... 102s Selecting previously unselected package python3-psutil. 102s Preparing to unpack .../14-python3-psutil_7.0.0-2_amd64.deb ... 102s Unpacking python3-psutil (7.0.0-2) ... 102s Selecting previously unselected package python3-ydiff. 102s Preparing to unpack .../15-python3-ydiff_1.4.2-1_all.deb ... 102s Unpacking python3-ydiff (1.4.2-1) ... 102s Selecting previously unselected package python3-psycopg2. 102s Preparing to unpack .../16-python3-psycopg2_2.9.10-1build1_amd64.deb ... 102s Unpacking python3-psycopg2 (2.9.10-1build1) ... 102s Selecting previously unselected package python3-dnspython. 102s Preparing to unpack .../17-python3-dnspython_2.7.0-1ubuntu1_all.deb ... 102s Unpacking python3-dnspython (2.7.0-1ubuntu1) ... 102s Selecting previously unselected package python3-etcd. 102s Preparing to unpack .../18-python3-etcd_0.4.5-6_all.deb ... 102s Unpacking python3-etcd (0.4.5-6) ... 102s Selecting previously unselected package python3-consul. 102s Preparing to unpack .../19-python3-consul_1.5.1+dfsg-1_all.deb ... 102s Unpacking python3-consul (1.5.1+dfsg-1) ... 102s Selecting previously unselected package python3-greenlet. 102s Preparing to unpack .../20-python3-greenlet_3.1.0-1build1_amd64.deb ... 102s Unpacking python3-greenlet (3.1.0-1build1) ... 102s Selecting previously unselected package python3-eventlet. 102s Preparing to unpack .../21-python3-eventlet_0.39.0-0ubuntu1_all.deb ... 102s Unpacking python3-eventlet (0.39.0-0ubuntu1) ... 102s Selecting previously unselected package python3-zope.event. 102s Preparing to unpack .../22-python3-zope.event_5.0-0.1_all.deb ... 102s Unpacking python3-zope.event (5.0-0.1) ... 102s Selecting previously unselected package python3-zope.interface. 102s Preparing to unpack .../23-python3-zope.interface_7.2-1build1_amd64.deb ... 102s Unpacking python3-zope.interface (7.2-1build1) ... 102s Selecting previously unselected package python3-gevent. 102s Preparing to unpack .../24-python3-gevent_24.11.1-1build1_amd64.deb ... 102s Unpacking python3-gevent (24.11.1-1build1) ... 102s Selecting previously unselected package python3-kerberos. 102s Preparing to unpack .../25-python3-kerberos_1.1.14-3.1build11_amd64.deb ... 102s Unpacking python3-kerberos (1.1.14-3.1build11) ... 102s Selecting previously unselected package python3-pure-sasl. 103s Preparing to unpack .../26-python3-pure-sasl_0.5.1+dfsg1-5_all.deb ... 103s Unpacking python3-pure-sasl (0.5.1+dfsg1-5) ... 103s Selecting previously unselected package python3-kazoo. 103s Preparing to unpack .../27-python3-kazoo_2.9.0-2_all.deb ... 103s Unpacking python3-kazoo (2.9.0-2) ... 103s Selecting previously unselected package python3-multidict. 103s Preparing to unpack .../28-python3-multidict_6.2.0-2_amd64.deb ... 103s Unpacking python3-multidict (6.2.0-2) ... 103s Selecting previously unselected package python3-yarl. 103s Preparing to unpack .../29-python3-yarl_1.13.1-1build2_amd64.deb ... 103s Unpacking python3-yarl (1.13.1-1build2) ... 103s Selecting previously unselected package python3-async-timeout. 103s Preparing to unpack .../30-python3-async-timeout_5.0.1-1_all.deb ... 103s Unpacking python3-async-timeout (5.0.1-1) ... 103s Selecting previously unselected package python3-aiohappyeyeballs. 103s Preparing to unpack .../31-python3-aiohappyeyeballs_2.6.1-1_all.deb ... 103s Unpacking python3-aiohappyeyeballs (2.6.1-1) ... 103s Selecting previously unselected package python3-frozenlist. 103s Preparing to unpack .../32-python3-frozenlist_1.5.0-1build2_amd64.deb ... 103s Unpacking python3-frozenlist (1.5.0-1build2) ... 103s Selecting previously unselected package python3-aiosignal. 103s Preparing to unpack .../33-python3-aiosignal_1.3.2-1_all.deb ... 103s Unpacking python3-aiosignal (1.3.2-1) ... 103s Selecting previously unselected package python3-aiohttp. 103s Preparing to unpack .../34-python3-aiohttp_3.10.11-1build1_amd64.deb ... 103s Unpacking python3-aiohttp (3.10.11-1build1) ... 103s Selecting previously unselected package python3-cachetools. 103s Preparing to unpack .../35-python3-cachetools_5.3.3-1_all.deb ... 103s Unpacking python3-cachetools (5.3.3-1) ... 103s Selecting previously unselected package python3-pyasn1. 103s Preparing to unpack .../36-python3-pyasn1_0.6.1-1_all.deb ... 103s Unpacking python3-pyasn1 (0.6.1-1) ... 103s Selecting previously unselected package python3-pyasn1-modules. 103s Preparing to unpack .../37-python3-pyasn1-modules_0.4.1-2_all.deb ... 103s Unpacking python3-pyasn1-modules (0.4.1-2) ... 103s Selecting previously unselected package python3-pyu2f. 103s Preparing to unpack .../38-python3-pyu2f_0.1.5-4_all.deb ... 103s Unpacking python3-pyu2f (0.1.5-4) ... 103s Selecting previously unselected package python3-responses. 103s Preparing to unpack .../39-python3-responses_0.25.6-1_all.deb ... 103s Unpacking python3-responses (0.25.6-1) ... 103s Selecting previously unselected package python3-rsa. 103s Preparing to unpack .../40-python3-rsa_4.9-2_all.deb ... 103s Unpacking python3-rsa (4.9-2) ... 103s Selecting previously unselected package python3-google-auth. 103s Preparing to unpack .../41-python3-google-auth_2.28.2-3_all.deb ... 103s Unpacking python3-google-auth (2.28.2-3) ... 103s Selecting previously unselected package python3-requests-oauthlib. 103s Preparing to unpack .../42-python3-requests-oauthlib_1.3.1-1_all.deb ... 103s Unpacking python3-requests-oauthlib (1.3.1-1) ... 103s Selecting previously unselected package python3-websocket. 103s Preparing to unpack .../43-python3-websocket_1.8.0-2_all.deb ... 103s Unpacking python3-websocket (1.8.0-2) ... 103s Selecting previously unselected package python3-kubernetes. 103s Preparing to unpack .../44-python3-kubernetes_30.1.0-2_all.deb ... 103s Unpacking python3-kubernetes (30.1.0-2) ... 103s Selecting previously unselected package python3-pysyncobj. 103s Preparing to unpack .../45-python3-pysyncobj_0.3.14-2_all.deb ... 103s Unpacking python3-pysyncobj (0.3.14-2) ... 103s Selecting previously unselected package patroni. 103s Preparing to unpack .../46-patroni_4.0.4-7_all.deb ... 103s Unpacking patroni (4.0.4-7) ... 103s Selecting previously unselected package sphinx-rtd-theme-common. 103s Preparing to unpack .../47-sphinx-rtd-theme-common_3.0.2+dfsg-2_all.deb ... 103s Unpacking sphinx-rtd-theme-common (3.0.2+dfsg-2) ... 103s Selecting previously unselected package patroni-doc. 103s Preparing to unpack .../48-patroni-doc_4.0.4-7_all.deb ... 103s Unpacking patroni-doc (4.0.4-7) ... 103s Selecting previously unselected package python3-coverage. 103s Preparing to unpack .../49-python3-coverage_7.6.0+dfsg1-2build1_amd64.deb ... 103s Unpacking python3-coverage (7.6.0+dfsg1-2build1) ... 103s Selecting previously unselected package python3-mccabe. 103s Preparing to unpack .../50-python3-mccabe_0.7.0-1_all.deb ... 103s Unpacking python3-mccabe (0.7.0-1) ... 103s Selecting previously unselected package python3-pycodestyle. 103s Preparing to unpack .../51-python3-pycodestyle_2.12.1-2_all.deb ... 103s Unpacking python3-pycodestyle (2.12.1-2) ... 104s Selecting previously unselected package python3-pyflakes. 104s Preparing to unpack .../52-python3-pyflakes_3.2.0-3_all.deb ... 104s Unpacking python3-pyflakes (3.2.0-3) ... 104s Selecting previously unselected package python3-flake8. 104s Preparing to unpack .../53-python3-flake8_7.1.1-3_all.deb ... 104s Unpacking python3-flake8 (7.1.1-3) ... 104s Selecting previously unselected package python3-iniconfig. 104s Preparing to unpack .../54-python3-iniconfig_1.1.1-2_all.deb ... 104s Unpacking python3-iniconfig (1.1.1-2) ... 104s Selecting previously unselected package python3-pluggy. 104s Preparing to unpack .../55-python3-pluggy_1.5.0-1_all.deb ... 104s Unpacking python3-pluggy (1.5.0-1) ... 104s Selecting previously unselected package python3-pytest. 104s Preparing to unpack .../56-python3-pytest_8.3.5-1_all.deb ... 104s Unpacking python3-pytest (8.3.5-1) ... 104s Selecting previously unselected package libjs-jquery-hotkeys. 104s Preparing to unpack .../57-libjs-jquery-hotkeys_0.2.0-1_all.deb ... 104s Unpacking libjs-jquery-hotkeys (0.2.0-1) ... 104s Selecting previously unselected package libjs-jquery-isonscreen. 104s Preparing to unpack .../58-libjs-jquery-isonscreen_1.2.0-1.1_all.deb ... 104s Unpacking libjs-jquery-isonscreen (1.2.0-1.1) ... 104s Selecting previously unselected package python3-pytest-cov. 104s Preparing to unpack .../59-python3-pytest-cov_5.0.0-1_all.deb ... 104s Unpacking python3-pytest-cov (5.0.0-1) ... 104s Selecting previously unselected package python3-mock. 104s Preparing to unpack .../60-python3-mock_5.1.0-1_all.deb ... 104s Unpacking python3-mock (5.1.0-1) ... 104s Setting up python3-iniconfig (1.1.1-2) ... 104s Setting up libev4t64:amd64 (1:4.33-2.1build1) ... 104s Setting up fonts-lato (2.015-1) ... 104s Setting up python3-pysyncobj (0.3.14-2) ... 104s Setting up python3-cachetools (5.3.3-1) ... 104s Setting up python3-zope.event (5.0-0.1) ... 104s Setting up python3-zope.interface (7.2-1build1) ... 104s Setting up python3-pyflakes (3.2.0-3) ... 105s Setting up python3-ydiff (1.4.2-1) ... 105s Setting up libpq5:amd64 (17.4-1) ... 105s Setting up python3-kerberos (1.1.14-3.1build11) ... 105s Setting up python3-coverage (7.6.0+dfsg1-2build1) ... 105s Setting up libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... 105s Setting up python3-click (8.2.0+0.really.8.1.8-1) ... 105s Setting up python3-psutil (7.0.0-2) ... 105s Setting up python3-multidict (6.2.0-2) ... 105s Setting up python3-frozenlist (1.5.0-1build2) ... 105s Setting up python3-aiosignal (1.3.2-1) ... 105s Setting up python3-mock (5.1.0-1) ... 106s Setting up python3-async-timeout (5.0.1-1) ... 106s Setting up python3-responses (0.25.6-1) ... 106s Setting up python3-pycodestyle (2.12.1-2) ... 106s Setting up python3-wcwidth (0.2.13+dfsg1-1) ... 106s Setting up python3-pyu2f (0.1.5-4) ... 106s Setting up python3-greenlet (3.1.0-1build1) ... 106s Setting up libcares2:amd64 (1.34.4-2.1) ... 106s Setting up python3-psycopg2 (2.9.10-1build1) ... 106s Setting up python3-aiohappyeyeballs (2.6.1-1) ... 107s Setting up python3-pluggy (1.5.0-1) ... 107s Setting up python3-dnspython (2.7.0-1ubuntu1) ... 107s Setting up python3-pyasn1 (0.6.1-1) ... 107s Setting up python3-mccabe (0.7.0-1) ... 107s Setting up python3-consul (1.5.1+dfsg-1) ... 107s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 107s Setting up libjs-jquery-hotkeys (0.2.0-1) ... 107s Setting up python3-prettytable (3.12.0-1) ... 107s Setting up python3-yarl (1.13.1-1build2) ... 108s Setting up fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 108s Setting up sphinx-rtd-theme-common (3.0.2+dfsg-2) ... 108s Setting up python3-websocket (1.8.0-2) ... 108s Setting up python3-requests-oauthlib (1.3.1-1) ... 108s Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 108s Setting up python3-pure-sasl (0.5.1+dfsg1-5) ... 108s Setting up python3-etcd (0.4.5-6) ... 108s Setting up python3-pytest (8.3.5-1) ... 108s Setting up python3-aiohttp (3.10.11-1build1) ... 109s Setting up python3-gevent (24.11.1-1build1) ... 109s Setting up python3-flake8 (7.1.1-3) ... 109s Setting up python3-eventlet (0.39.0-0ubuntu1) ... 109s Setting up python3-kazoo (2.9.0-2) ... 109s Setting up python3-pyasn1-modules (0.4.1-2) ... 110s Setting up libjs-jquery-metadata (12-4) ... 110s Setting up libjs-jquery-isonscreen (1.2.0-1.1) ... 110s Setting up libjs-sphinxdoc (8.1.3-5) ... 110s Setting up libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... 110s Setting up python3-rsa (4.9-2) ... 110s Setting up patroni (4.0.4-7) ... 110s Created symlink '/etc/systemd/system/multi-user.target.wants/patroni.service' → '/usr/lib/systemd/system/patroni.service'. 110s Setting up patroni-doc (4.0.4-7) ... 110s Setting up python3-pytest-cov (5.0.0-1) ... 110s Setting up python3-google-auth (2.28.2-3) ... 111s Setting up python3-kubernetes (30.1.0-2) ... 112s Processing triggers for man-db (2.13.0-1) ... 112s Processing triggers for libc-bin (2.41-6ubuntu1) ... 114s autopkgtest [00:27:52]: testbed environment configured for cross-architecture building 114s autopkgtest [00:27:52]: test test: [----------------------- 115s ============================= test session starts ============================== 115s platform linux -- Python 3.13.3, pytest-8.3.5, pluggy-1.5.0 115s rootdir: /tmp/autopkgtest.d8x1Lu/build.H99/src 115s plugins: typeguard-4.4.2, cov-5.0.0 115s collected 651 items 115s 115s tests/test_api.py ................................... [ 5%] 115s tests/test_async_executor.py .... [ 5%] 116s tests/test_aws.py .... [ 6%] 116s tests/test_barman.py ................ [ 9%] 116s tests/test_bootstrap.py .......... [ 10%] 116s tests/test_callback_executor.py . [ 10%] 116s tests/test_cancellable.py ... [ 11%] 116s tests/test_citus.py sssssssssssss................ [ 15%] 116s tests/test_config.py .......... [ 17%] 116s tests/test_config_generator.py ...... [ 18%] 116s tests/test_consul.py ....................... [ 21%] 116s tests/test_ctl.py ...................................... [ 27%] 118s tests/test_etcd.py ............................. [ 31%] 118s tests/test_etcd3.py ................................. [ 37%] 118s tests/test_exhibitor.py ... [ 37%] 118s tests/test_file_perm.py ... [ 37%] 119s tests/test_ha.py ....................................................... [ 46%] 119s ................................................................ [ 56%] 121s tests/test_kubernetes.py ........................................ [ 62%] 121s tests/test_log.py .......... [ 63%] 121s tests/test_mpp.py .. [ 64%] 121s tests/test_patroni.py .................... [ 67%] 121s tests/test_postgresql.py ............................................... [ 74%] 122s ............. [ 76%] 122s tests/test_postmaster.py ......... [ 77%] 122s tests/test_quorum.py ............... [ 80%] 131s tests/test_raft.py ........... [ 81%] 131s tests/test_raft_controller.py ... [ 82%] 131s tests/test_rewind.py .............. [ 84%] 131s tests/test_slots.py ............... [ 86%] 132s tests/test_sync.py .... [ 87%] 132s tests/test_utils.py ............... [ 89%] 132s tests/test_validator.py .................. [ 92%] 132s tests/test_wale_restore.py ...... [ 93%] 132s tests/test_watchdog.py ................ [ 95%] 132s tests/test_zookeeper.py ........................... [100%] 132s 132s ======================= 638 passed, 13 skipped in 18.05s ======================= 133s autopkgtest [00:28:11]: test test: -----------------------] 133s autopkgtest [00:28:11]: test test: - - - - - - - - - - results - - - - - - - - - - 133s test PASS 133s autopkgtest [00:28:11]: test acceptance-etcd3: preparing testbed 201s autopkgtest [00:29:19]: testbed dpkg architecture: amd64 201s autopkgtest [00:29:19]: testbed apt version: 3.0.0 202s autopkgtest [00:29:20]: @@@@@@@@@@@@@@@@@@@@ test bed setup 202s autopkgtest [00:29:20]: testbed release detected to be: questing 203s autopkgtest [00:29:21]: updating testbed package index (apt update) 203s Get:1 http://ftpmaster.internal/ubuntu questing-proposed InRelease [110 kB] 204s Hit:2 http://ftpmaster.internal/ubuntu questing InRelease 204s Hit:3 http://ftpmaster.internal/ubuntu questing-updates InRelease 204s Hit:4 http://ftpmaster.internal/ubuntu questing-security InRelease 204s Get:5 http://ftpmaster.internal/ubuntu questing-proposed/multiverse Sources [43.1 kB] 204s Get:6 http://ftpmaster.internal/ubuntu questing-proposed/universe Sources [1947 kB] 204s Get:7 http://ftpmaster.internal/ubuntu questing-proposed/main Sources [168 kB] 204s Get:8 http://ftpmaster.internal/ubuntu questing-proposed/main amd64 Packages [233 kB] 204s Get:9 http://ftpmaster.internal/ubuntu questing-proposed/main i386 Packages [178 kB] 204s Get:10 http://ftpmaster.internal/ubuntu questing-proposed/universe amd64 Packages [1515 kB] 204s Get:11 http://ftpmaster.internal/ubuntu questing-proposed/universe i386 Packages [671 kB] 204s Get:12 http://ftpmaster.internal/ubuntu questing-proposed/multiverse i386 Packages [13.9 kB] 204s Get:13 http://ftpmaster.internal/ubuntu questing-proposed/multiverse amd64 Packages [15.1 kB] 204s Fetched 4894 kB in 1s (4071 kB/s) 205s Reading package lists... 206s autopkgtest [00:29:24]: upgrading testbed (apt dist-upgrade and autopurge) 206s Reading package lists... 206s Building dependency tree... 206s Reading state information... 207s Calculating upgrade...Starting pkgProblemResolver with broken count: 0 207s Starting 2 pkgProblemResolver with broken count: 0 207s Done 207s Entering ResolveByKeep 207s 207s Calculating upgrade... 207s The following packages will be upgraded: 207s ed fwupd htop libftdi1-2 libfwupd3 libnpth0t64 libsensors-config libsensors5 207s liburcu8t64 mokutil nano usb.ids 208s 12 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 208s Need to get 6445 kB of archives. 208s After this operation, 193 kB disk space will be freed. 208s Get:1 http://ftpmaster.internal/ubuntu questing/main amd64 libnpth0t64 amd64 1.8-3 [9294 B] 208s Get:2 http://ftpmaster.internal/ubuntu questing/main amd64 ed amd64 1.21.1-1 [57.2 kB] 208s Get:3 http://ftpmaster.internal/ubuntu questing/main amd64 libsensors-config all 1:3.6.2-2 [6756 B] 208s Get:4 http://ftpmaster.internal/ubuntu questing/main amd64 libsensors5 amd64 1:3.6.2-2 [28.7 kB] 208s Get:5 http://ftpmaster.internal/ubuntu questing/main amd64 liburcu8t64 amd64 0.15.2-2 [63.9 kB] 208s Get:6 http://ftpmaster.internal/ubuntu questing/main amd64 nano amd64 8.4-1 [290 kB] 208s Get:7 http://ftpmaster.internal/ubuntu questing/main amd64 usb.ids all 2025.04.01-1 [223 kB] 208s Get:8 http://ftpmaster.internal/ubuntu questing/main amd64 fwupd amd64 2.0.8-3 [5396 kB] 208s Get:9 http://ftpmaster.internal/ubuntu questing/main amd64 libfwupd3 amd64 2.0.8-3 [136 kB] 208s Get:10 http://ftpmaster.internal/ubuntu questing/main amd64 htop amd64 3.4.1-4 [175 kB] 208s Get:11 http://ftpmaster.internal/ubuntu questing/main amd64 libftdi1-2 amd64 1.5-10 [30.7 kB] 208s Get:12 http://ftpmaster.internal/ubuntu questing/main amd64 mokutil amd64 0.7.2-1 [27.9 kB] 209s Fetched 6445 kB in 1s (8516 kB/s) 209s (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 ... 80514 files and directories currently installed.) 209s Preparing to unpack .../libnpth0t64_1.8-3_amd64.deb ... 209s Unpacking libnpth0t64:amd64 (1.8-3) over (1.8-2) ... 209s Setting up libnpth0t64:amd64 (1.8-3) ... 209s (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 ... 80514 files and directories currently installed.) 209s Preparing to unpack .../00-ed_1.21.1-1_amd64.deb ... 209s Unpacking ed (1.21.1-1) over (1.21-1) ... 209s Preparing to unpack .../01-libsensors-config_1%3a3.6.2-2_all.deb ... 209s Unpacking libsensors-config (1:3.6.2-2) over (1:3.6.0-10) ... 209s Preparing to unpack .../02-libsensors5_1%3a3.6.2-2_amd64.deb ... 209s Unpacking libsensors5:amd64 (1:3.6.2-2) over (1:3.6.0-10) ... 209s Preparing to unpack .../03-liburcu8t64_0.15.2-2_amd64.deb ... 209s Unpacking liburcu8t64:amd64 (0.15.2-2) over (0.15.1-1) ... 209s Preparing to unpack .../04-nano_8.4-1_amd64.deb ... 209s Unpacking nano (8.4-1) over (8.3-1) ... 209s Preparing to unpack .../05-usb.ids_2025.04.01-1_all.deb ... 209s Unpacking usb.ids (2025.04.01-1) over (2025.01.14-1) ... 209s Preparing to unpack .../06-fwupd_2.0.8-3_amd64.deb ... 209s Unpacking fwupd (2.0.8-3) over (2.0.7-1) ... 210s Preparing to unpack .../07-libfwupd3_2.0.8-3_amd64.deb ... 210s Unpacking libfwupd3:amd64 (2.0.8-3) over (2.0.7-1) ... 210s Preparing to unpack .../08-htop_3.4.1-4_amd64.deb ... 210s Unpacking htop (3.4.1-4) over (3.4.0-2) ... 210s Preparing to unpack .../09-libftdi1-2_1.5-10_amd64.deb ... 210s Unpacking libftdi1-2:amd64 (1.5-10) over (1.5-8build1) ... 210s Preparing to unpack .../10-mokutil_0.7.2-1_amd64.deb ... 210s Unpacking mokutil (0.7.2-1) over (0.6.0-2build3) ... 210s Setting up liburcu8t64:amd64 (0.15.2-2) ... 210s Setting up mokutil (0.7.2-1) ... 210s Setting up htop (3.4.1-4) ... 210s Setting up libsensors-config (1:3.6.2-2) ... 210s Installing new version of config file /etc/sensors3.conf ... 210s Setting up libfwupd3:amd64 (2.0.8-3) ... 210s Setting up libftdi1-2:amd64 (1.5-10) ... 210s Setting up ed (1.21.1-1) ... 210s Setting up usb.ids (2025.04.01-1) ... 210s Setting up libsensors5:amd64 (1:3.6.2-2) ... 210s Setting up nano (8.4-1) ... 210s Installing new version of config file /etc/nanorc ... 210s Setting up fwupd (2.0.8-3) ... 210s fwupd-refresh.service is a disabled or a static unit not running, not starting it. 210s fwupd.service is a disabled or a static unit not running, not starting it. 210s Processing triggers for man-db (2.13.0-1) ... 212s Processing triggers for dbus (1.16.2-2ubuntu1) ... 212s Processing triggers for install-info (7.1.1-1) ... 212s Processing triggers for libc-bin (2.41-6ubuntu1) ... 212s Reading package lists... 212s Building dependency tree... 212s Reading state information... 213s Starting pkgProblemResolver with broken count: 0 213s Starting 2 pkgProblemResolver with broken count: 0 213s Done 213s Solving dependencies... 213s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 213s autopkgtest [00:29:31]: rebooting testbed after setup commands that affected boot 239s Reading package lists... 239s Building dependency tree... 239s Reading state information... 240s Starting pkgProblemResolver with broken count: 0 240s Starting 2 pkgProblemResolver with broken count: 0 240s Done 240s The following NEW packages will be installed: 240s etcd-server fonts-font-awesome fonts-lato libio-pty-perl libipc-run-perl 240s libjs-jquery libjs-sphinxdoc libjs-underscore libjson-perl libllvm20 libpq5 240s libtime-duration-perl libtimedate-perl libxslt1.1 moreutils patroni 240s patroni-doc postgresql postgresql-17 postgresql-client-17 240s postgresql-client-common postgresql-common postgresql-common-dev 240s python3-behave python3-click python3-coverage python3-dnspython python3-etcd 240s python3-parse python3-parse-type python3-prettytable python3-psutil 240s python3-psycopg2 python3-wcwidth python3-ydiff sphinx-rtd-theme-common 240s ssl-cert 240s 0 upgraded, 37 newly installed, 0 to remove and 0 not upgraded. 240s Need to get 68.3 MB of archives. 240s After this operation, 273 MB of additional disk space will be used. 240s Get:1 http://ftpmaster.internal/ubuntu questing/main amd64 fonts-lato all 2.015-1 [2781 kB] 241s Get:2 http://ftpmaster.internal/ubuntu questing/main amd64 libjson-perl all 4.10000-1 [81.9 kB] 241s Get:3 http://ftpmaster.internal/ubuntu questing/main amd64 postgresql-client-common all 274 [47.6 kB] 241s Get:4 http://ftpmaster.internal/ubuntu questing/main amd64 libio-pty-perl amd64 1:1.20-1build3 [31.4 kB] 241s Get:5 http://ftpmaster.internal/ubuntu questing/main amd64 libipc-run-perl all 20231003.0-2 [91.5 kB] 241s Get:6 http://ftpmaster.internal/ubuntu questing/main amd64 postgresql-common-dev all 274 [73.0 kB] 241s Get:7 http://ftpmaster.internal/ubuntu questing/main amd64 ssl-cert all 1.1.3ubuntu1 [18.7 kB] 241s Get:8 http://ftpmaster.internal/ubuntu questing/main amd64 postgresql-common all 274 [101 kB] 241s Get:9 http://ftpmaster.internal/ubuntu questing/universe amd64 etcd-server amd64 3.5.16-4 [12.4 MB] 241s Get:10 http://ftpmaster.internal/ubuntu questing/main amd64 fonts-font-awesome all 5.0.10+really4.7.0~dfsg-4.1 [516 kB] 241s Get:11 http://ftpmaster.internal/ubuntu questing/main amd64 libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 241s Get:12 http://ftpmaster.internal/ubuntu questing/main amd64 libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [118 kB] 241s Get:13 http://ftpmaster.internal/ubuntu questing/main amd64 libjs-sphinxdoc all 8.1.3-5 [31.0 kB] 241s Get:14 http://ftpmaster.internal/ubuntu questing/main amd64 libllvm20 amd64 1:20.1.2-0ubuntu1 [30.5 MB] 242s Get:15 http://ftpmaster.internal/ubuntu questing/main amd64 libpq5 amd64 17.4-1 [155 kB] 242s Get:16 http://ftpmaster.internal/ubuntu questing/main amd64 libtime-duration-perl all 1.21-2 [12.3 kB] 242s Get:17 http://ftpmaster.internal/ubuntu questing/main amd64 libtimedate-perl all 2.3300-2 [34.0 kB] 242s Get:18 http://ftpmaster.internal/ubuntu questing/main amd64 libxslt1.1 amd64 1.1.39-0exp1ubuntu4 [176 kB] 242s Get:19 http://ftpmaster.internal/ubuntu questing/universe amd64 moreutils amd64 0.69-1 [56.4 kB] 242s Get:20 http://ftpmaster.internal/ubuntu questing/main amd64 python3-click all 8.2.0+0.really.8.1.8-1 [80.0 kB] 242s Get:21 http://ftpmaster.internal/ubuntu questing/main amd64 python3-wcwidth all 0.2.13+dfsg1-1 [26.3 kB] 242s Get:22 http://ftpmaster.internal/ubuntu questing/main amd64 python3-prettytable all 3.12.0-1 [36.5 kB] 242s Get:23 http://ftpmaster.internal/ubuntu questing-proposed/main amd64 python3-psutil amd64 7.0.0-2 [188 kB] 242s Get:24 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-ydiff all 1.4.2-1 [19.0 kB] 242s Get:25 http://ftpmaster.internal/ubuntu questing/main amd64 python3-psycopg2 amd64 2.9.10-1build1 [142 kB] 242s Get:26 http://ftpmaster.internal/ubuntu questing/main amd64 python3-dnspython all 2.7.0-1ubuntu1 [167 kB] 242s Get:27 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-etcd all 0.4.5-6 [32.1 kB] 242s Get:28 http://ftpmaster.internal/ubuntu questing/universe amd64 patroni all 4.0.4-7 [281 kB] 242s Get:29 http://ftpmaster.internal/ubuntu questing/main amd64 sphinx-rtd-theme-common all 3.0.2+dfsg-2 [1014 kB] 242s Get:30 http://ftpmaster.internal/ubuntu questing/universe amd64 patroni-doc all 4.0.4-7 [526 kB] 242s Get:31 http://ftpmaster.internal/ubuntu questing/main amd64 postgresql-client-17 amd64 17.4-1 [1425 kB] 242s Get:32 http://ftpmaster.internal/ubuntu questing/main amd64 postgresql-17 amd64 17.4-1 [16.6 MB] 243s Get:33 http://ftpmaster.internal/ubuntu questing/main amd64 postgresql all 17+274 [14.4 kB] 243s Get:34 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-parse all 1.20.2-1 [27.0 kB] 243s Get:35 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-parse-type all 0.6.4-2 [23.5 kB] 243s Get:36 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-behave all 1.2.6-6 [98.6 kB] 243s Get:37 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-coverage amd64 7.6.0+dfsg1-2build1 [153 kB] 243s Preconfiguring packages ... 243s /var/cache/debconf/tmp.ci/postgresql.config.4unvs6: 12: pg_lsclusters: not found 243s Fetched 68.3 MB in 2s (29.7 MB/s) 243s Selecting previously unselected package fonts-lato. 243s (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 ... 80514 files and directories currently installed.) 243s Preparing to unpack .../00-fonts-lato_2.015-1_all.deb ... 243s Unpacking fonts-lato (2.015-1) ... 244s Selecting previously unselected package libjson-perl. 244s Preparing to unpack .../01-libjson-perl_4.10000-1_all.deb ... 244s Unpacking libjson-perl (4.10000-1) ... 244s Selecting previously unselected package postgresql-client-common. 244s Preparing to unpack .../02-postgresql-client-common_274_all.deb ... 244s Unpacking postgresql-client-common (274) ... 244s Selecting previously unselected package libio-pty-perl. 244s Preparing to unpack .../03-libio-pty-perl_1%3a1.20-1build3_amd64.deb ... 244s Unpacking libio-pty-perl (1:1.20-1build3) ... 244s Selecting previously unselected package libipc-run-perl. 244s Preparing to unpack .../04-libipc-run-perl_20231003.0-2_all.deb ... 244s Unpacking libipc-run-perl (20231003.0-2) ... 244s Selecting previously unselected package postgresql-common-dev. 244s Preparing to unpack .../05-postgresql-common-dev_274_all.deb ... 244s Unpacking postgresql-common-dev (274) ... 244s Selecting previously unselected package ssl-cert. 244s Preparing to unpack .../06-ssl-cert_1.1.3ubuntu1_all.deb ... 244s Unpacking ssl-cert (1.1.3ubuntu1) ... 244s Selecting previously unselected package postgresql-common. 244s Preparing to unpack .../07-postgresql-common_274_all.deb ... 244s Adding 'diversion of /usr/bin/pg_config to /usr/bin/pg_config.libpq-dev by postgresql-common' 244s Unpacking postgresql-common (274) ... 244s Selecting previously unselected package etcd-server. 244s Preparing to unpack .../08-etcd-server_3.5.16-4_amd64.deb ... 244s Unpacking etcd-server (3.5.16-4) ... 244s Selecting previously unselected package fonts-font-awesome. 244s Preparing to unpack .../09-fonts-font-awesome_5.0.10+really4.7.0~dfsg-4.1_all.deb ... 244s Unpacking fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 244s Selecting previously unselected package libjs-jquery. 244s Preparing to unpack .../10-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 244s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 244s Selecting previously unselected package libjs-underscore. 244s Preparing to unpack .../11-libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ... 244s Unpacking libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 244s Selecting previously unselected package libjs-sphinxdoc. 244s Preparing to unpack .../12-libjs-sphinxdoc_8.1.3-5_all.deb ... 244s Unpacking libjs-sphinxdoc (8.1.3-5) ... 244s Selecting previously unselected package libllvm20:amd64. 244s Preparing to unpack .../13-libllvm20_1%3a20.1.2-0ubuntu1_amd64.deb ... 244s Unpacking libllvm20:amd64 (1:20.1.2-0ubuntu1) ... 245s Selecting previously unselected package libpq5:amd64. 245s Preparing to unpack .../14-libpq5_17.4-1_amd64.deb ... 245s Unpacking libpq5:amd64 (17.4-1) ... 245s Selecting previously unselected package libtime-duration-perl. 245s Preparing to unpack .../15-libtime-duration-perl_1.21-2_all.deb ... 245s Unpacking libtime-duration-perl (1.21-2) ... 245s Selecting previously unselected package libtimedate-perl. 245s Preparing to unpack .../16-libtimedate-perl_2.3300-2_all.deb ... 245s Unpacking libtimedate-perl (2.3300-2) ... 245s Selecting previously unselected package libxslt1.1:amd64. 245s Preparing to unpack .../17-libxslt1.1_1.1.39-0exp1ubuntu4_amd64.deb ... 245s Unpacking libxslt1.1:amd64 (1.1.39-0exp1ubuntu4) ... 245s Selecting previously unselected package moreutils. 245s Preparing to unpack .../18-moreutils_0.69-1_amd64.deb ... 245s Unpacking moreutils (0.69-1) ... 245s Selecting previously unselected package python3-click. 245s Preparing to unpack .../19-python3-click_8.2.0+0.really.8.1.8-1_all.deb ... 245s Unpacking python3-click (8.2.0+0.really.8.1.8-1) ... 245s Selecting previously unselected package python3-wcwidth. 245s Preparing to unpack .../20-python3-wcwidth_0.2.13+dfsg1-1_all.deb ... 245s Unpacking python3-wcwidth (0.2.13+dfsg1-1) ... 245s Selecting previously unselected package python3-prettytable. 245s Preparing to unpack .../21-python3-prettytable_3.12.0-1_all.deb ... 245s Unpacking python3-prettytable (3.12.0-1) ... 245s Selecting previously unselected package python3-psutil. 245s Preparing to unpack .../22-python3-psutil_7.0.0-2_amd64.deb ... 245s Unpacking python3-psutil (7.0.0-2) ... 245s Selecting previously unselected package python3-ydiff. 245s Preparing to unpack .../23-python3-ydiff_1.4.2-1_all.deb ... 245s Unpacking python3-ydiff (1.4.2-1) ... 245s Selecting previously unselected package python3-psycopg2. 245s Preparing to unpack .../24-python3-psycopg2_2.9.10-1build1_amd64.deb ... 245s Unpacking python3-psycopg2 (2.9.10-1build1) ... 245s Selecting previously unselected package python3-dnspython. 245s Preparing to unpack .../25-python3-dnspython_2.7.0-1ubuntu1_all.deb ... 245s Unpacking python3-dnspython (2.7.0-1ubuntu1) ... 245s Selecting previously unselected package python3-etcd. 245s Preparing to unpack .../26-python3-etcd_0.4.5-6_all.deb ... 245s Unpacking python3-etcd (0.4.5-6) ... 245s Selecting previously unselected package patroni. 245s Preparing to unpack .../27-patroni_4.0.4-7_all.deb ... 245s Unpacking patroni (4.0.4-7) ... 245s Selecting previously unselected package sphinx-rtd-theme-common. 245s Preparing to unpack .../28-sphinx-rtd-theme-common_3.0.2+dfsg-2_all.deb ... 245s Unpacking sphinx-rtd-theme-common (3.0.2+dfsg-2) ... 245s Selecting previously unselected package patroni-doc. 245s Preparing to unpack .../29-patroni-doc_4.0.4-7_all.deb ... 245s Unpacking patroni-doc (4.0.4-7) ... 245s Selecting previously unselected package postgresql-client-17. 245s Preparing to unpack .../30-postgresql-client-17_17.4-1_amd64.deb ... 245s Unpacking postgresql-client-17 (17.4-1) ... 245s Selecting previously unselected package postgresql-17. 245s Preparing to unpack .../31-postgresql-17_17.4-1_amd64.deb ... 245s Unpacking postgresql-17 (17.4-1) ... 246s Selecting previously unselected package postgresql. 246s Preparing to unpack .../32-postgresql_17+274_all.deb ... 246s Unpacking postgresql (17+274) ... 246s Selecting previously unselected package python3-parse. 246s Preparing to unpack .../33-python3-parse_1.20.2-1_all.deb ... 246s Unpacking python3-parse (1.20.2-1) ... 246s Selecting previously unselected package python3-parse-type. 246s Preparing to unpack .../34-python3-parse-type_0.6.4-2_all.deb ... 246s Unpacking python3-parse-type (0.6.4-2) ... 246s Selecting previously unselected package python3-behave. 246s Preparing to unpack .../35-python3-behave_1.2.6-6_all.deb ... 246s Unpacking python3-behave (1.2.6-6) ... 246s Selecting previously unselected package python3-coverage. 246s Preparing to unpack .../36-python3-coverage_7.6.0+dfsg1-2build1_amd64.deb ... 246s Unpacking python3-coverage (7.6.0+dfsg1-2build1) ... 246s Setting up postgresql-client-common (274) ... 246s Setting up fonts-lato (2.015-1) ... 246s Setting up libio-pty-perl (1:1.20-1build3) ... 246s Setting up python3-ydiff (1.4.2-1) ... 246s Setting up libpq5:amd64 (17.4-1) ... 246s Setting up python3-coverage (7.6.0+dfsg1-2build1) ... 246s Setting up python3-click (8.2.0+0.really.8.1.8-1) ... 246s Setting up python3-psutil (7.0.0-2) ... 247s Setting up python3-wcwidth (0.2.13+dfsg1-1) ... 247s Setting up ssl-cert (1.1.3ubuntu1) ... 247s Created symlink '/etc/systemd/system/multi-user.target.wants/ssl-cert.service' → '/usr/lib/systemd/system/ssl-cert.service'. 248s Setting up libllvm20:amd64 (1:20.1.2-0ubuntu1) ... 248s Setting up python3-psycopg2 (2.9.10-1build1) ... 248s Setting up libipc-run-perl (20231003.0-2) ... 248s Setting up libtime-duration-perl (1.21-2) ... 248s Setting up libtimedate-perl (2.3300-2) ... 248s Setting up python3-dnspython (2.7.0-1ubuntu1) ... 248s Setting up python3-parse (1.20.2-1) ... 248s Setting up libjson-perl (4.10000-1) ... 248s Setting up libxslt1.1:amd64 (1.1.39-0exp1ubuntu4) ... 248s Setting up etcd-server (3.5.16-4) ... 248s info: Selecting UID from range 100 to 999 ... 248s 248s info: Selecting GID from range 100 to 999 ... 248s info: Adding system user `etcd' (UID 107) ... 248s info: Adding new group `etcd' (GID 111) ... 248s info: Adding new user `etcd' (UID 107) with group `etcd' ... 248s info: Creating home directory `/var/lib/etcd/' ... 249s Created symlink '/etc/systemd/system/etcd2.service' → '/usr/lib/systemd/system/etcd.service'. 249s Created symlink '/etc/systemd/system/multi-user.target.wants/etcd.service' → '/usr/lib/systemd/system/etcd.service'. 249s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 249s Setting up python3-prettytable (3.12.0-1) ... 249s Setting up fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 249s Setting up sphinx-rtd-theme-common (3.0.2+dfsg-2) ... 249s Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 249s Setting up postgresql-common-dev (274) ... 249s Setting up moreutils (0.69-1) ... 249s Setting up postgresql-client-17 (17.4-1) ... 250s 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 250s Setting up python3-etcd (0.4.5-6) ... 250s Setting up python3-parse-type (0.6.4-2) ... 250s Setting up postgresql-common (274) ... 250s Creating config file /etc/postgresql-common/createcluster.conf with new version 250s Building PostgreSQL dictionaries from installed myspell/hunspell packages... 250s Removing obsolete dictionary files: 251s Created symlink '/etc/systemd/system/multi-user.target.wants/postgresql.service' → '/usr/lib/systemd/system/postgresql.service'. 251s Setting up libjs-sphinxdoc (8.1.3-5) ... 251s Setting up python3-behave (1.2.6-6) ... 252s /usr/lib/python3/dist-packages/behave/formatter/ansi_escapes.py:57: SyntaxWarning: invalid escape sequence '\[' 252s _ANSI_ESCAPE_PATTERN = re.compile(u"\x1b\[\d+[mA]", re.UNICODE) 252s /usr/lib/python3/dist-packages/behave/matchers.py:284: SyntaxWarning: invalid escape sequence '\d' 252s @parse.with_pattern(r"\d+") 252s Setting up patroni (4.0.4-7) ... 252s Created symlink '/etc/systemd/system/multi-user.target.wants/patroni.service' → '/usr/lib/systemd/system/patroni.service'. 252s Setting up postgresql-17 (17.4-1) ... 253s Creating new PostgreSQL cluster 17/main ... 253s /usr/lib/postgresql/17/bin/initdb -D /var/lib/postgresql/17/main --auth-local peer --auth-host scram-sha-256 --no-instructions 253s The files belonging to this database system will be owned by user "postgres". 253s This user must also own the server process. 253s 253s The database cluster will be initialized with locale "C.UTF-8". 253s The default database encoding has accordingly been set to "UTF8". 253s The default text search configuration will be set to "english". 253s 253s Data page checksums are disabled. 253s 253s fixing permissions on existing directory /var/lib/postgresql/17/main ... ok 253s creating subdirectories ... ok 253s selecting dynamic shared memory implementation ... posix 253s selecting default "max_connections" ... 100 253s selecting default "shared_buffers" ... 128MB 253s selecting default time zone ... Etc/UTC 253s creating configuration files ... ok 253s running bootstrap script ... ok 254s performing post-bootstrap initialization ... ok 254s syncing data to disk ... ok 257s Setting up patroni-doc (4.0.4-7) ... 257s Setting up postgresql (17+274) ... 257s Processing triggers for man-db (2.13.0-1) ... 259s Processing triggers for libc-bin (2.41-6ubuntu1) ... 261s autopkgtest [00:30:19]: testbed environment configured for cross-architecture building 261s autopkgtest [00:30:19]: test acceptance-etcd3: debian/tests/acceptance etcd3 261s autopkgtest [00:30:19]: test acceptance-etcd3: [----------------------- 262s ++ ls -1r /usr/lib/postgresql/ 262s ### PostgreSQL 17 acceptance-etcd3 ### 262s + for PG_VERSION in $(ls -1r /usr/lib/postgresql/) 262s + '[' 17 == 10 -o 17 == 11 ']' 262s + echo '### PostgreSQL 17 acceptance-etcd3 ###' 262s + bash -c 'set -o pipefail; ETCD_UNSUPPORTED_ARCH=386 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' 262s May 03 00:30:20 Feature: basic replication # features/basic_replication.feature:1 262s May 03 00:30:20 We should check that the basic bootstrapping, replication and failover works. 262s May 03 00:30:20 Scenario: check replication of a single table # features/basic_replication.feature:4 262s May 03 00:30:20 Given I start postgres-0 # features/steps/basic_replication.py:20 266s May 03 00:30:23 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 267s May 03 00:30:24 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 267s May 03 00:30:24 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 267s May 03 00:30:25 Then I receive a response code 200 # features/steps/patroni_api.py:100 267s May 03 00:30:25 When I start postgres-1 # features/steps/basic_replication.py:20 270s May 03 00:30:28 And I configure and start postgres-2 with a tag replicatefrom postgres-0 # features/steps/cascading_replication.py:7 273s May 03 00:30:31 And "sync" key in DCS has leader=postgres-0 after 20 seconds # features/steps/cascading_replication.py:23 273s May 03 00:30:31 And I add the table foo to postgres-0 # features/steps/basic_replication.py:66 273s May 03 00:30:31 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 274s May 03 00:30:32 Then table foo is present on postgres-2 after 20 seconds # features/steps/basic_replication.py:105 274s May 03 00:30:32 274s May 03 00:30:32 Scenario: check restart of sync replica # features/basic_replication.feature:17 274s May 03 00:30:32 Given I shut down postgres-2 # features/steps/basic_replication.py:41 275s May 03 00:30:33 Then "sync" key in DCS has sync_standby=postgres-1 after 5 seconds # features/steps/cascading_replication.py:23 275s May 03 00:30:33 When I start postgres-2 # features/steps/basic_replication.py:20 277s May 03 00:30:35 And I shut down postgres-1 # features/steps/basic_replication.py:41 280s May 03 00:30:38 Then "sync" key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 281s May 03 00:30:39 When I start postgres-1 # features/steps/basic_replication.py:20 284s May 03 00:30:42 Then "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 284s May 03 00:30:42 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 284s May 03 00:30:42 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:144 284s May 03 00:30:42 284s May 03 00:30:42 Scenario: check stuck sync replica # features/basic_replication.feature:28 284s May 03 00:30:42 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 284s May 03 00:30:42 Then I receive a response code 200 # features/steps/patroni_api.py:100 284s May 03 00:30:42 And I create table on postgres-0 # features/steps/basic_replication.py:85 284s May 03 00:30:42 And table mytest is present on postgres-1 after 2 seconds # features/steps/basic_replication.py:105 285s May 03 00:30:43 And table mytest is present on postgres-2 after 2 seconds # features/steps/basic_replication.py:105 285s May 03 00:30:43 When I pause wal replay on postgres-2 # features/steps/basic_replication.py:76 285s May 03 00:30:43 And I load data on postgres-0 # features/steps/basic_replication.py:96 285s May 03 00:30:43 Then "sync" key in DCS has sync_standby=postgres-1 after 15 seconds # features/steps/cascading_replication.py:23 288s May 03 00:30:46 And I resume wal replay on postgres-2 # features/steps/basic_replication.py:76 288s May 03 00:30:46 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 290s May 03 00:30:47 And Status code on GET http://127.0.0.1:8010/async is 200 after 3 seconds # features/steps/patroni_api.py:144 290s May 03 00:30:48 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 290s May 03 00:30:48 Then I receive a response code 200 # features/steps/patroni_api.py:100 290s May 03 00:30:48 And I drop table on postgres-0 # features/steps/basic_replication.py:85 290s May 03 00:30:48 290s May 03 00:30:48 Scenario: check multi sync replication # features/basic_replication.feature:44 290s May 03 00:30: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 290s May 03 00:30:48 Then I receive a response code 200 # features/steps/patroni_api.py:100 290s May 03 00:30:48 Then "sync" key in DCS has sync_standby=postgres-1,postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 294s May 03 00:30:52 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 294s May 03 00:30:52 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 294s May 03 00:30: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 294s May 03 00:30:52 Then I receive a response code 200 # features/steps/patroni_api.py:100 294s May 03 00:30:52 And I shut down postgres-1 # features/steps/basic_replication.py:41 297s May 03 00:30:55 Then "sync" key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 298s May 03 00:30:56 When I start postgres-1 # features/steps/basic_replication.py:20 301s May 03 00:30:59 Then "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 301s May 03 00:30:59 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 301s May 03 00:30:59 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:144 301s May 03 00:30:59 301s May 03 00:30:59 Scenario: check the basic failover in synchronous mode # features/basic_replication.feature:59 301s May 03 00:30:59 Given I run patronictl.py pause batman # features/steps/patroni_api.py:88 302s May 03 00:31:00 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 302s May 03 00:31:00 When I sleep for 2 seconds # features/steps/patroni_api.py:41 304s May 03 00:31:02 And I shut down postgres-0 # features/steps/basic_replication.py:41 305s May 03 00:31:03 And I run patronictl.py resume batman # features/steps/patroni_api.py:88 306s May 03 00:31:04 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 306s May 03 00:31:04 And postgres-2 role is the primary after 24 seconds # features/steps/basic_replication.py:117 325s May 03 00:31:23 And Response on GET http://127.0.0.1:8010/history contains recovery after 10 seconds # features/steps/patroni_api.py:158 328s May 03 00:31:26 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 328s May 03 00:31:26 When I issue a PATCH request to http://127.0.0.1:8010/config with {"synchronous_mode": null, "master_start_timeout": 0} # features/steps/patroni_api.py:73 328s May 03 00:31:26 Then I receive a response code 200 # features/steps/patroni_api.py:100 328s May 03 00:31:26 When I add the table bar to postgres-2 # features/steps/basic_replication.py:66 328s May 03 00:31:26 Then table bar is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 328s May 03 00:31:26 And Response on GET http://127.0.0.1:8010/config contains master_start_timeout after 10 seconds # features/steps/patroni_api.py:158 328s May 03 00:31:26 328s May 03 00:31:26 Scenario: check rejoin of the former primary with pg_rewind # features/basic_replication.feature:75 328s May 03 00:31:26 Given I add the table splitbrain to postgres-0 # features/steps/basic_replication.py:66 328s May 03 00:31:26 And I start postgres-0 # features/steps/basic_replication.py:20 328s May 03 00:31:26 Then postgres-0 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 335s May 03 00:31:33 When I add the table buz to postgres-2 # features/steps/basic_replication.py:66 335s May 03 00:31:33 Then table buz is present on postgres-0 after 20 seconds # features/steps/basic_replication.py:105 335s May 03 00:31:33 335s May 03 00:31:33 @reject-duplicate-name 335s May 03 00:31:33 Scenario: check graceful rejection when two nodes have the same name # features/basic_replication.feature:83 335s May 03 00:31:33 Given I start duplicate postgres-0 on port 8011 # features/steps/basic_replication.py:25 337s May 03 00:31:35 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 342s May 03 00:31:40 342s May 03 00:31:40 Feature: cascading replication # features/cascading_replication.feature:1 342s May 03 00:31:40 We should check that patroni can do base backup and streaming from the replica 342s May 03 00:31:40 Scenario: check a base backup and streaming replication from a replica # features/cascading_replication.feature:4 342s May 03 00:31:40 Given I start postgres-0 # features/steps/basic_replication.py:20 345s May 03 00:31:43 And postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 346s May 03 00:31:44 And I configure and start postgres-1 with a tag clonefrom true # features/steps/cascading_replication.py:7 349s May 03 00:31:47 And replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 350s May 03 00:31:48 And I create label with "postgres-0" in postgres-0 data directory # features/steps/cascading_replication.py:18 350s May 03 00:31:48 And I create label with "postgres-1" in postgres-1 data directory # features/steps/cascading_replication.py:18 350s May 03 00:31:48 And "members/postgres-1" key in DCS has state=running after 12 seconds # features/steps/cascading_replication.py:23 350s May 03 00:31:48 And I configure and start postgres-2 with a tag replicatefrom postgres-1 # features/steps/cascading_replication.py:7 353s May 03 00:31:51 Then replication works from postgres-0 to postgres-2 after 30 seconds # features/steps/basic_replication.py:124 354s May 03 00:31:52 And there is a label with "postgres-1" in postgres-2 data directory # features/steps/cascading_replication.py:12 360s May 03 00:31:58 360s SKIP FEATURE citus: Citus extension isn't available 360s SKIP Scenario check that worker cluster is registered in the coordinator: Citus extension isn't available 360s SKIP Scenario coordinator failover updates pg_dist_node: Citus extension isn't available 360s SKIP Scenario worker switchover doesn't break client queries on the coordinator: Citus extension isn't available 360s SKIP Scenario worker primary restart doesn't break client queries on the coordinator: Citus extension isn't available 360s 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 360s May 03 00:31:58 Feature: citus # features/citus.feature:1 360s May 03 00:31:58 We should check that coordinator discovers and registers workers and clients don't have errors when worker cluster switches over 360s May 03 00:31:58 Scenario: check that worker cluster is registered in the coordinator # features/citus.feature:4 360s May 03 00:31:58 Given I start postgres-0 in citus group 0 # None 360s May 03 00:31:58 And I start postgres-2 in citus group 1 # None 360s May 03 00:31:58 Then postgres-0 is a leader in a group 0 after 10 seconds # None 360s May 03 00:31:58 And postgres-2 is a leader in a group 1 after 10 seconds # None 360s May 03 00:31:58 When I start postgres-1 in citus group 0 # None 360s May 03 00:31:58 And I start postgres-3 in citus group 1 # None 360s May 03 00:31:58 Then replication works from postgres-0 to postgres-1 after 15 seconds # None 360s May 03 00:31:58 Then replication works from postgres-2 to postgres-3 after 15 seconds # None 360s May 03 00:31:58 And postgres-0 is registered in the postgres-0 as the primary in group 0 after 5 seconds # None 360s May 03 00:31:58 And postgres-1 is registered in the postgres-0 as the secondary in group 0 after 5 seconds # None 360s May 03 00:31:58 And postgres-2 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 360s May 03 00:31:58 And postgres-3 is registered in the postgres-0 as the secondary in group 1 after 5 seconds # None 360s May 03 00:31:58 360s May 03 00:31:58 Scenario: coordinator failover updates pg_dist_node # features/citus.feature:18 360s May 03 00:31:58 Given I run patronictl.py failover batman --group 0 --candidate postgres-1 --force # None 360s May 03 00:31:58 Then postgres-1 role is the primary after 10 seconds # None 360s May 03 00:31:58 And "members/postgres-0" key in a group 0 in DCS has state=running after 15 seconds # None 360s May 03 00:31:58 And replication works from postgres-1 to postgres-0 after 15 seconds # None 360s May 03 00:31:58 And postgres-1 is registered in the postgres-2 as the primary in group 0 after 5 seconds # None 360s May 03 00:31:58 And postgres-0 is registered in the postgres-2 as the secondary in group 0 after 15 seconds # None 360s May 03 00:31:58 And "sync" key in a group 0 in DCS has sync_standby=postgres-0 after 15 seconds # None 360s May 03 00:31:58 When I run patronictl.py switchover batman --group 0 --candidate postgres-0 --force # None 360s May 03 00:31:58 Then postgres-0 role is the primary after 10 seconds # None 360s May 03 00:31:58 And replication works from postgres-0 to postgres-1 after 15 seconds # None 360s May 03 00:31:58 And postgres-0 is registered in the postgres-2 as the primary in group 0 after 5 seconds # None 360s May 03 00:31:58 And postgres-1 is registered in the postgres-2 as the secondary in group 0 after 15 seconds # None 360s May 03 00:31:58 And "sync" key in a group 0 in DCS has sync_standby=postgres-1 after 15 seconds # None 360s May 03 00:31:58 360s May 03 00:31:58 Scenario: worker switchover doesn't break client queries on the coordinator # features/citus.feature:33 360s May 03 00:31:58 Given I create a distributed table on postgres-0 # None 360s May 03 00:31:58 And I start a thread inserting data on postgres-0 # None 360s May 03 00:31:58 When I run patronictl.py switchover batman --group 1 --force # None 360s May 03 00:31:58 Then I receive a response returncode 0 # None 360s May 03 00:31:58 And postgres-3 role is the primary after 10 seconds # None 360s May 03 00:31:58 And "members/postgres-2" key in a group 1 in DCS has state=running after 15 seconds # None 360s May 03 00:31:58 And replication works from postgres-3 to postgres-2 after 15 seconds # None 360s May 03 00:31:58 And postgres-3 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 360s May 03 00:31:58 And postgres-2 is registered in the postgres-0 as the secondary in group 1 after 15 seconds # None 360s May 03 00:31:58 And "sync" key in a group 1 in DCS has sync_standby=postgres-2 after 15 seconds # None 360s May 03 00:31:58 And a thread is still alive # None 360s May 03 00:31:58 When I run patronictl.py switchover batman --group 1 --force # None 360s May 03 00:31:58 Then I receive a response returncode 0 # None 360s May 03 00:31:58 And postgres-2 role is the primary after 10 seconds # None 360s May 03 00:31:58 And replication works from postgres-2 to postgres-3 after 15 seconds # None 360s May 03 00:31:58 And postgres-2 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 360s May 03 00:31:58 And postgres-3 is registered in the postgres-0 as the secondary in group 1 after 15 seconds # None 360s May 03 00:31:58 And "sync" key in a group 1 in DCS has sync_standby=postgres-3 after 15 seconds # None 360s May 03 00:31:58 And a thread is still alive # None 360s May 03 00:31:58 When I stop a thread # None 360s May 03 00:31:58 Then a distributed table on postgres-0 has expected rows # None 360s May 03 00:31:58 360s May 03 00:31:58 Scenario: worker primary restart doesn't break client queries on the coordinator # features/citus.feature:56 360s May 03 00:31:58 Given I cleanup a distributed table on postgres-0 # None 360s May 03 00:31:58 And I start a thread inserting data on postgres-0 # None 360s May 03 00:31:58 When I run patronictl.py restart batman postgres-2 --group 1 --force # None 360s May 03 00:31:58 Then I receive a response returncode 0 # None 360s May 03 00:31:58 And postgres-2 role is the primary after 10 seconds # None 360s May 03 00:31:58 And replication works from postgres-2 to postgres-3 after 15 seconds # None 360s May 03 00:31:58 And postgres-2 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 360s May 03 00:31:58 And postgres-3 is registered in the postgres-0 as the secondary in group 1 after 15 seconds # None 360s May 03 00:31:58 And a thread is still alive # None 360s May 03 00:31:58 When I stop a thread # None 360s May 03 00:31:58 Then a distributed table on postgres-0 has expected rows # None 360s May 03 00:31:58 360s May 03 00:31:58 Scenario: check that in-flight transaction is rolled back after timeout when other workers need to change pg_dist_node # features/citus.feature:69 360s May 03 00:31:58 Given I start postgres-4 in citus group 2 # None 360s May 03 00:31:58 Then postgres-4 is a leader in a group 2 after 10 seconds # None 360s May 03 00:31:58 And "members/postgres-4" key in a group 2 in DCS has role=primary after 3 seconds # None 360s May 03 00:31:58 When I run patronictl.py edit-config batman --group 2 -s ttl=20 --force # None 360s May 03 00:31:58 Then I receive a response returncode 0 # None 360s May 03 00:31:58 And I receive a response output "+ttl: 20" # None 360s May 03 00:31:58 Then postgres-4 is registered in the postgres-2 as the primary in group 2 after 5 seconds # None 360s May 03 00:31:58 When I shut down postgres-4 # None 360s May 03 00:31:58 Then there is a transaction in progress on postgres-0 changing pg_dist_node after 5 seconds # None 360s May 03 00:31:58 When I run patronictl.py restart batman postgres-2 --group 1 --force # None 360s May 03 00:31:58 Then a transaction finishes in 20 seconds # None 360s May 03 00:31:58 360s May 03 00:31:58 Feature: custom bootstrap # features/custom_bootstrap.feature:1 360s May 03 00:31:58 We should check that patroni can bootstrap a new cluster from a backup 360s May 03 00:31:58 Scenario: clone existing cluster using pg_basebackup # features/custom_bootstrap.feature:4 360s May 03 00:31:58 Given I start postgres-0 # features/steps/basic_replication.py:20 363s May 03 00:32:01 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 364s May 03 00:32:02 When I add the table foo to postgres-0 # features/steps/basic_replication.py:66 364s May 03 00:32:02 And I start postgres-1 in a cluster batman1 as a clone of postgres-0 # features/steps/custom_bootstrap.py:6 368s May 03 00:32:06 Then postgres-1 is a leader of batman1 after 10 seconds # features/steps/custom_bootstrap.py:16 369s May 03 00:32:07 Then table foo is present on postgres-1 after 10 seconds # features/steps/basic_replication.py:105 369s May 03 00:32:07 369s May 03 00:32:07 Scenario: make a backup and do a restore into a new cluster # features/custom_bootstrap.feature:12 369s May 03 00:32:07 Given I add the table bar to postgres-1 # features/steps/basic_replication.py:66 369s May 03 00:32:07 And I do a backup of postgres-1 # features/steps/custom_bootstrap.py:25 370s May 03 00:32:08 When I start postgres-2 in a cluster batman2 from backup # features/steps/custom_bootstrap.py:11 374s May 03 00:32:12 Then postgres-2 is a leader of batman2 after 30 seconds # features/steps/custom_bootstrap.py:16 375s May 03 00:32:13 And table bar is present on postgres-2 after 10 seconds # features/steps/basic_replication.py:105 381s May 03 00:32:19 381s May 03 00:32:19 Feature: dcs failsafe mode # features/dcs_failsafe_mode.feature:1 381s May 03 00:32:19 We should check the basic dcs failsafe mode functioning 381s May 03 00:32:19 Scenario: check failsafe mode can be successfully enabled # features/dcs_failsafe_mode.feature:4 381s May 03 00:32:19 Given I start postgres-0 # features/steps/basic_replication.py:20 384s May 03 00:32:22 And postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 385s May 03 00:32:23 Then "config" key in DCS has ttl=30 after 10 seconds # features/steps/cascading_replication.py:23 385s May 03 00:32:23 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 385s May 03 00:32:23 Then I receive a response code 200 # features/steps/patroni_api.py:100 385s May 03 00:32:23 And Response on GET http://127.0.0.1:8008/failsafe contains postgres-0 after 10 seconds # features/steps/patroni_api.py:158 386s May 03 00:32:24 When I issue a GET request to http://127.0.0.1:8008/failsafe # features/steps/patroni_api.py:63 386s May 03 00:32:24 Then I receive a response code 200 # features/steps/patroni_api.py:100 386s May 03 00:32:24 And I receive a response postgres-0 http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:100 386s May 03 00:32:24 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 386s May 03 00:32:24 Then I receive a response code 200 # features/steps/patroni_api.py:100 386s May 03 00:32:24 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 386s May 03 00:32:24 Then I receive a response code 200 # features/steps/patroni_api.py:100 386s SKIP Scenario check one-node cluster is functioning while DCS is down: it is not possible to control state of etcd3 from tests 386s May 03 00:32:24 386s May 03 00:32:24 @dcs-failsafe 386s May 03 00:32:24 Scenario: check one-node cluster is functioning while DCS is down # features/dcs_failsafe_mode.feature:20 386s May 03 00:32:24 Given DCS is down # None 386s May 03 00:32:24 Then Response on GET http://127.0.0.1:8008/primary contains failsafe_mode_is_active after 12 seconds # None 386s May 03 00:32:24 And postgres-0 role is the primary after 10 seconds # None 386s 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 386s May 03 00:32:24 386s May 03 00:32:24 @dcs-failsafe 386s May 03 00:32:24 Scenario: check new replica isn't promoted when leader is down and DCS is up # features/dcs_failsafe_mode.feature:26 386s May 03 00:32:24 Given DCS is up # None 386s May 03 00:32:24 When I do a backup of postgres-0 # None 386s May 03 00:32:24 And I shut down postgres-0 # None 386s May 03 00:32:24 When I start postgres-1 in a cluster batman from backup with no_leader # None 386s May 03 00:32:24 Then postgres-1 role is the replica after 12 seconds # None 386s May 03 00:32:24 386s May 03 00:32:24 Scenario: check leader and replica are both in /failsafe key after leader is back # features/dcs_failsafe_mode.feature:33 386s May 03 00:32:24 Given I start postgres-0 # features/steps/basic_replication.py:20 386s May 03 00:32:24 And I start postgres-1 # features/steps/basic_replication.py:20 389s May 03 00:32:27 Then "members/postgres-0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 389s May 03 00:32:27 And "members/postgres-1" key in DCS has state=running after 2 seconds # features/steps/cascading_replication.py:23 390s May 03 00:32:28 And Response on GET http://127.0.0.1:8009/failsafe contains postgres-1 after 10 seconds # features/steps/patroni_api.py:158 390s May 03 00:32:28 When I issue a GET request to http://127.0.0.1:8009/failsafe # features/steps/patroni_api.py:63 390s May 03 00:32:28 Then I receive a response code 200 # features/steps/patroni_api.py:100 390s May 03 00:32:28 And I receive a response postgres-0 http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:100 390s May 03 00:32:28 And I receive a response postgres-1 http://127.0.0.1:8009/patroni # features/steps/patroni_api.py:100 390s SKIP Scenario check leader and replica are functioning while DCS is down: it is not possible to control state of etcd3 from tests 390s 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 390s 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 390s May 03 00:32:28 390s May 03 00:32:28 @dcs-failsafe @slot-advance 390s May 03 00:32:28 Scenario: check leader and replica are functioning while DCS is down # features/dcs_failsafe_mode.feature:46 390s May 03 00:32:28 Given I get all changes from physical slot dcs_slot_1 on postgres-0 # None 390s May 03 00:32:28 Then physical slot dcs_slot_1 is in sync between postgres-0 and postgres-1 after 10 seconds # None 390s May 03 00:32:28 And logical slot dcs_slot_0 is in sync between postgres-0 and postgres-1 after 10 seconds # None 390s May 03 00:32:28 And DCS is down # None 390s May 03 00:32:28 Then Response on GET http://127.0.0.1:8008/primary contains failsafe_mode_is_active after 12 seconds # None 390s May 03 00:32:28 Then postgres-0 role is the primary after 10 seconds # None 390s May 03 00:32:28 And postgres-1 role is the replica after 2 seconds # None 390s May 03 00:32:28 And replication works from postgres-0 to postgres-1 after 10 seconds # None 390s May 03 00:32:28 When I get all changes from logical slot dcs_slot_0 on postgres-0 # None 390s May 03 00:32:28 And I get all changes from physical slot dcs_slot_1 on postgres-0 # None 390s May 03 00:32:28 Then logical slot dcs_slot_0 is in sync between postgres-0 and postgres-1 after 20 seconds # None 390s May 03 00:32:28 And physical slot dcs_slot_1 is in sync between postgres-0 and postgres-1 after 10 seconds # None 390s May 03 00:32:28 390s May 03 00:32:28 @dcs-failsafe 390s May 03 00:32:28 Scenario: check primary is demoted when one replica is shut down and DCS is down # features/dcs_failsafe_mode.feature:61 390s May 03 00:32:28 Given DCS is down # None 390s May 03 00:32:28 And I kill postgres-1 # None 390s May 03 00:32:28 And I kill postmaster on postgres-1 # None 390s May 03 00:32:28 Then postgres-0 role is the replica after 12 seconds # None 390s SKIP Scenario scale to three-node cluster: it is not possible to control state of etcd3 from tests 390s May 03 00:32:28 390s May 03 00:32:28 @dcs-failsafe 390s May 03 00:32:28 Scenario: check known replica is promoted when leader is down and DCS is up # features/dcs_failsafe_mode.feature:68 390s May 03 00:32:28 Given I kill postgres-0 # None 390s May 03 00:32:28 And I shut down postmaster on postgres-0 # None 390s May 03 00:32:28 And DCS is up # None 390s May 03 00:32:28 When I start postgres-1 # None 390s May 03 00:32:28 Then "members/postgres-1" key in DCS has state=running after 10 seconds # None 390s May 03 00:32:28 And postgres-1 role is the primary after 25 seconds # None 390s May 03 00:32:28 390s May 03 00:32:28 @dcs-failsafe 390s May 03 00:32:28 Scenario: scale to three-node cluster # features/dcs_failsafe_mode.feature:77 390s May 03 00:32:28 Given I start postgres-0 # None 390s May 03 00:32:28 And I configure and start postgres-2 with a tag replicatefrom postgres-0 # None 390s May 03 00:32:28 Then "members/postgres-2" key in DCS has state=running after 10 seconds # None 390s May 03 00:32:28 And "members/postgres-0" key in DCS has state=running after 20 seconds # None 390s May 03 00:32:28 And Response on GET http://127.0.0.1:8008/failsafe contains postgres-2 after 10 seconds # None 390s May 03 00:32:28 And replication works from postgres-1 to postgres-0 after 10 seconds # None 390s May 03 00:32:28 And replication works from postgres-1 to postgres-2 after 10 seconds # None 390s May 03 00:32:28 390s May 03 00:32:28 @dcs-failsafe @slot-advance 390s May 03 00:32:28 Scenario: make sure permanent slots exist on replicas # features/dcs_failsafe_mode.feature:88 390s May 03 00:32:28 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 390s May 03 00:32:28 Then logical slot dcs_slot_2 is in sync between postgres-1 and postgres-0 after 20 seconds # None 390s May 03 00:32:28 And logical slot dcs_slot_2 is in sync between postgres-1 and postgres-2 after 20 seconds # None 390s May 03 00:32:28 When I get all changes from physical slot dcs_slot_1 on postgres-1 # None 390s May 03 00:32:28 Then physical slot dcs_slot_1 is in sync between postgres-1 and postgres-0 after 10 seconds # None 390s May 03 00:32:28 And physical slot dcs_slot_1 is in sync between postgres-1 and postgres-2 after 10 seconds # None 390s May 03 00:32:28 And physical slot postgres_0 is in sync between postgres-1 and postgres-2 after 10 seconds # None 390s May 03 00:32:28 And physical slot postgres_2 is in sync between postgres-0 and postgres-1 after 10 seconds # None 390s May 03 00:32:28 390s May 03 00:32:28 @dcs-failsafe 390s May 03 00:32:28 Scenario: check three-node cluster is functioning while DCS is down # features/dcs_failsafe_mode.feature:99 390s May 03 00:32:28 Given DCS is down # None 390s May 03 00:32:28 Then Response on GET http://127.0.0.1:8009/primary contains failsafe_mode_is_active after 12 seconds # None 390s May 03 00:32:28 Then postgres-1 role is the primary after 10 seconds # None 390s May 03 00:32:28 And postgres-0 role is the replica after 2 seconds # None 390s May 03 00:32:28 And postgres-2 role is the replica after 2 seconds # None 390s SKIP Scenario make sure permanent slots exist on replicas: it is not possible to control state of etcd3 from tests 390s SKIP Scenario check three-node cluster is functioning while DCS is down: it is not possible to control state of etcd3 from tests 390s 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 395s May 03 00:32:33 395s May 03 00:32:33 @dcs-failsafe @slot-advance 395s May 03 00:32:33 Scenario: check that permanent slots are in sync between nodes while DCS is down # features/dcs_failsafe_mode.feature:108 395s May 03 00:32:33 Given replication works from postgres-1 to postgres-0 after 10 seconds # None 395s May 03 00:32:33 And replication works from postgres-1 to postgres-2 after 10 seconds # None 395s May 03 00:32:33 When I get all changes from logical slot dcs_slot_2 on postgres-1 # None 395s May 03 00:32:33 And I get all changes from physical slot dcs_slot_1 on postgres-1 # None 395s May 03 00:32:33 Then logical slot dcs_slot_2 is in sync between postgres-1 and postgres-0 after 20 seconds # None 395s May 03 00:32:33 And logical slot dcs_slot_2 is in sync between postgres-1 and postgres-2 after 20 seconds # None 395s May 03 00:32:33 And physical slot dcs_slot_1 is in sync between postgres-1 and postgres-0 after 10 seconds # None 395s May 03 00:32:33 And physical slot dcs_slot_1 is in sync between postgres-1 and postgres-2 after 10 seconds # None 395s May 03 00:32:33 And physical slot postgres_0 is in sync between postgres-1 and postgres-2 after 10 seconds # None 395s May 03 00:32:33 And physical slot postgres_2 is in sync between postgres-0 and postgres-1 after 10 seconds # None 395s May 03 00:32:33 395s May 03 00:32:33 Feature: ignored slots # features/ignored_slots.feature:1 395s May 03 00:32:33 395s May 03 00:32:33 Scenario: check ignored slots aren't removed on failover/switchover # features/ignored_slots.feature:2 395s May 03 00:32:33 Given I start postgres-1 # features/steps/basic_replication.py:20 398s May 03 00:32:36 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 399s May 03 00:32:37 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 399s May 03 00:32:37 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 399s May 03 00:32:37 Then I receive a response code 200 # features/steps/patroni_api.py:100 399s May 03 00:32:37 And Response on GET http://127.0.0.1:8009/config contains ignore_slots after 10 seconds # features/steps/patroni_api.py:158 399s May 03 00:32:37 When I shut down postgres-1 # features/steps/basic_replication.py:41 401s May 03 00:32:39 And I start postgres-1 # features/steps/basic_replication.py:20 403s May 03 00:32:41 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 404s May 03 00:32:42 And "members/postgres-1" key in DCS has role=primary after 10 seconds # features/steps/cascading_replication.py:23 405s May 03 00:32:43 And postgres-1 role is the primary after 20 seconds # features/steps/basic_replication.py:117 405s May 03 00:32:43 When I create a logical replication slot unmanaged_slot_0 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 405s May 03 00:32:43 And I create a logical replication slot unmanaged_slot_1 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 405s May 03 00:32:43 And I create a logical replication slot unmanaged_slot_2 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 405s May 03 00:32:43 And I create a logical replication slot unmanaged_slot_3 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 405s May 03 00:32:43 And I create a logical replication slot dummy_slot on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 405s May 03 00:32:43 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 405s May 03 00:32:43 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 405s May 03 00:32:43 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 405s May 03 00:32:43 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 405s May 03 00:32:43 When I start postgres-0 # features/steps/basic_replication.py:20 408s May 03 00:32:46 Then "members/postgres-0" key in DCS has role=replica after 10 seconds # features/steps/cascading_replication.py:23 408s May 03 00:32:46 And postgres-0 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 408s May 03 00:32:46 And replication works from postgres-1 to postgres-0 after 20 seconds # features/steps/basic_replication.py:124 409s May 03 00:32:47 When I shut down postgres-1 # features/steps/basic_replication.py:41 411s May 03 00:32:49 Then "members/postgres-0" key in DCS has role=primary after 10 seconds # features/steps/cascading_replication.py:23 412s May 03 00:32:50 When I start postgres-1 # features/steps/basic_replication.py:20 414s May 03 00:32:52 Then postgres-1 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 414s May 03 00:32:52 And "members/postgres-1" key in DCS has role=replica after 10 seconds # features/steps/cascading_replication.py:23 415s May 03 00:32:53 And I sleep for 2 seconds # features/steps/patroni_api.py:41 417s May 03 00:32:55 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 417s May 03 00:32: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 417s May 03 00:32: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 417s May 03 00:32: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 417s May 03 00:32:55 And postgres-1 does not have a replication slot named dummy_slot # features/steps/slots.py:41 417s May 03 00:32:55 When I shut down postgres-0 # features/steps/basic_replication.py:41 419s May 03 00:32:57 Then "members/postgres-1" key in DCS has role=primary after 10 seconds # features/steps/cascading_replication.py:23 420s May 03 00:32:58 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 420s May 03 00:32:58 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 420s May 03 00:32:58 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 420s May 03 00:32:58 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 422s May 03 00:33:00 422s May 03 00:33:00 Feature: nostream node # features/nostream_node.feature:1 422s May 03 00:33:00 422s May 03 00:33:00 Scenario: check nostream node is recovering from archive # features/nostream_node.feature:3 422s May 03 00:33:00 When I start postgres-0 # features/steps/basic_replication.py:20 425s May 03 00:33:03 And I configure and start postgres-1 with a tag nostream true # features/steps/cascading_replication.py:7 428s May 03 00:33:06 Then "members/postgres-1" key in DCS has replication_state=in archive recovery after 10 seconds # features/steps/cascading_replication.py:23 428s May 03 00:33:06 And replication works from postgres-0 to postgres-1 after 30 seconds # features/steps/basic_replication.py:124 433s May 03 00:33:11 433s May 03 00:33:11 @slot-advance 433s May 03 00:33:11 Scenario: check permanent logical replication slots are not copied # features/nostream_node.feature:10 433s May 03 00:33:11 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 433s May 03 00:33:11 Then I receive a response code 200 # features/steps/patroni_api.py:100 433s May 03 00:33:11 When I run patronictl.py restart batman postgres-0 --force # features/steps/patroni_api.py:88 435s May 03 00:33:13 Then postgres-0 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:20 436s May 03 00:33:14 When I configure and start postgres-2 with a tag replicatefrom postgres-1 # features/steps/cascading_replication.py:7 439s May 03 00:33:17 Then "members/postgres-2" key in DCS has replication_state=streaming after 10 seconds # features/steps/cascading_replication.py:23 444s May 03 00:33:22 And postgres-1 does not have a replication slot named test_logical # features/steps/slots.py:41 444s May 03 00:33:22 And postgres-2 does not have a replication slot named test_logical # features/steps/slots.py:41 444s May 03 00:33:22 444s May 03 00:33:22 @slot-advance 444s May 03 00:33:22 Scenario: check that slots are written to the /status key # features/nostream_node.feature:21 444s May 03 00:33:22 Given "status" key in DCS has postgres_0 in slots # features/steps/slots.py:118 444s May 03 00:33:22 And "status" key in DCS has postgres_2 in slots # features/steps/slots.py:118 444s May 03 00:33:22 And "status" key in DCS has test_logical in slots # features/steps/slots.py:118 444s May 03 00:33:22 And "status" key in DCS has test_logical in slots # features/steps/slots.py:118 444s May 03 00:33:22 And "status" key in DCS does not have postgres_1 in slots # features/steps/slots.py:124 449s May 03 00:33:27 449s May 03 00:33:27 Feature: patroni api # features/patroni_api.feature:1 449s May 03 00:33:27 We should check that patroni correctly responds to valid and not-valid API requests. 449s May 03 00:33:27 Scenario: check API requests on a stand-alone server # features/patroni_api.feature:4 449s May 03 00:33:27 Given I start postgres-0 # features/steps/basic_replication.py:20 452s May 03 00:33:30 And postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 452s May 03 00:33:30 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:63 452s May 03 00:33:30 Then I receive a response code 200 # features/steps/patroni_api.py:100 452s May 03 00:33:30 And I receive a response state running # features/steps/patroni_api.py:100 452s May 03 00:33:30 And I receive a response role primary # features/steps/patroni_api.py:100 452s May 03 00:33:30 When I issue a GET request to http://127.0.0.1:8008/standby_leader # features/steps/patroni_api.py:63 452s May 03 00:33:30 Then I receive a response code 503 # features/steps/patroni_api.py:100 452s May 03 00:33:30 When I issue a GET request to http://127.0.0.1:8008/health # features/steps/patroni_api.py:63 452s May 03 00:33:30 Then I receive a response code 200 # features/steps/patroni_api.py:100 452s May 03 00:33:30 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:63 452s May 03 00:33:30 Then I receive a response code 503 # features/steps/patroni_api.py:100 452s May 03 00:33:30 When I issue a POST request to http://127.0.0.1:8008/reinitialize with {"force": true} # features/steps/patroni_api.py:73 452s May 03 00:33:30 Then I receive a response code 503 # features/steps/patroni_api.py:100 452s May 03 00:33:30 And I receive a response text I am the leader, can not reinitialize # features/steps/patroni_api.py:100 452s May 03 00:33:30 When I run patronictl.py switchover batman --primary postgres-0 --force # features/steps/patroni_api.py:88 453s May 03 00:33:31 Then I receive a response returncode 1 # features/steps/patroni_api.py:100 453s May 03 00:33:31 And I receive a response output "Error: No candidates found to switchover to" # features/steps/patroni_api.py:100 453s May 03 00:33:31 When I issue a POST request to http://127.0.0.1:8008/switchover with {"leader": "postgres-0"} # features/steps/patroni_api.py:73 453s May 03 00:33:31 Then I receive a response code 412 # features/steps/patroni_api.py:100 453s May 03 00:33:31 And I receive a response text switchover is not possible: cluster does not have members except leader # features/steps/patroni_api.py:100 453s May 03 00:33:31 When I issue an empty POST request to http://127.0.0.1:8008/failover # features/steps/patroni_api.py:68 453s May 03 00:33:31 Then I receive a response code 400 # features/steps/patroni_api.py:100 453s May 03 00:33:31 When I issue a POST request to http://127.0.0.1:8008/failover with {"foo": "bar"} # features/steps/patroni_api.py:73 453s May 03 00:33:31 Then I receive a response code 400 # features/steps/patroni_api.py:100 453s May 03 00:33:31 And I receive a response text "Failover could be performed only to a specific candidate" # features/steps/patroni_api.py:100 453s May 03 00:33:31 453s May 03 00:33:31 Scenario: check local configuration reload # features/patroni_api.feature:32 453s May 03 00:33:31 Given I add tag new_tag new_value to postgres-0 config # features/steps/patroni_api.py:139 453s May 03 00:33:31 And I issue an empty POST request to http://127.0.0.1:8008/reload # features/steps/patroni_api.py:68 454s May 03 00:33:32 Then I receive a response code 202 # features/steps/patroni_api.py:100 454s May 03 00:33:32 454s May 03 00:33:32 Scenario: check dynamic configuration change via DCS # features/patroni_api.feature:37 454s May 03 00:33:32 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 454s May 03 00:33:32 Then I receive a response code 200 # features/steps/patroni_api.py:100 454s May 03 00:33:32 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 11 seconds # features/steps/patroni_api.py:158 457s May 03 00:33:35 When I issue a GET request to http://127.0.0.1:8008/config # features/steps/patroni_api.py:63 457s May 03 00:33:35 Then I receive a response code 200 # features/steps/patroni_api.py:100 457s May 03 00:33:35 And I receive a response ttl 20 # features/steps/patroni_api.py:100 457s May 03 00:33:35 When I issue a GET request to http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:63 457s May 03 00:33:35 Then I receive a response code 200 # features/steps/patroni_api.py:100 457s May 03 00:33:35 And I receive a response tags {'new_tag': 'new_value'} # features/steps/patroni_api.py:100 457s May 03 00:33:35 And I sleep for 4 seconds # features/steps/patroni_api.py:41 461s May 03 00:33:39 461s May 03 00:33:39 Scenario: check the scheduled restart # features/patroni_api.feature:49 461s May 03 00:33:39 Given I run patronictl.py edit-config -p 'superuser_reserved_connections=6' --force batman # features/steps/patroni_api.py:88 462s May 03 00:33:40 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 462s May 03 00:33:40 And I receive a response output "+ superuser_reserved_connections: 6" # features/steps/patroni_api.py:100 462s May 03 00:33:40 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 5 seconds # features/steps/patroni_api.py:158 462s May 03 00:33:40 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 462s May 03 00:33:40 Then I receive a response code 202 # features/steps/patroni_api.py:100 462s May 03 00:33:40 And I sleep for 8 seconds # features/steps/patroni_api.py:41 470s May 03 00:33:48 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 10 seconds # features/steps/patroni_api.py:158 470s May 03 00:33:48 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 470s May 03 00:33:48 Then I receive a response code 202 # features/steps/patroni_api.py:100 470s May 03 00:33:48 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 477s May 03 00:33:55 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 478s May 03 00:33:56 478s May 03 00:33:56 Scenario: check API requests for the primary-replica pair in the pause mode # features/patroni_api.feature:63 478s May 03 00:33:56 Given I start postgres-1 # features/steps/basic_replication.py:20 481s May 03 00:33:59 Then replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 482s May 03 00:34:00 When I run patronictl.py pause batman # features/steps/patroni_api.py:88 483s May 03 00:34:01 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 483s May 03 00:34:01 When I kill postmaster on postgres-1 # features/steps/basic_replication.py:56 483s May 03 00:34:01 waiting for server to shut down.... done 483s May 03 00:34:01 server stopped 483s May 03 00:34:01 And I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 483s May 03 00:34:01 Then I receive a response code 503 # features/steps/patroni_api.py:100 483s May 03 00:34:01 And "members/postgres-1" key in DCS has state=stopped after 10 seconds # features/steps/cascading_replication.py:23 487s May 03 00:34:05 When I run patronictl.py restart batman postgres-1 --force # features/steps/patroni_api.py:88 489s May 03 00:34:07 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 489s May 03 00:34:07 Then replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 490s May 03 00:34:08 And I sleep for 2 seconds # features/steps/patroni_api.py:41 492s May 03 00:34:10 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 493s May 03 00:34:10 Then I receive a response code 200 # features/steps/patroni_api.py:100 493s May 03 00:34:10 And I receive a response state running # features/steps/patroni_api.py:100 493s May 03 00:34:10 And I receive a response role replica # features/steps/patroni_api.py:100 493s May 03 00:34:10 When I run patronictl.py reinit batman postgres-1 --force --wait # features/steps/patroni_api.py:88 496s May 03 00:34:14 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 496s May 03 00:34:14 And I receive a response output "Success: reinitialize for member postgres-1" # features/steps/patroni_api.py:100 496s May 03 00:34:14 And postgres-1 role is the secondary after 30 seconds # features/steps/basic_replication.py:117 497s May 03 00:34:15 And replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 498s May 03 00:34:16 When I run patronictl.py restart batman postgres-0 --force # features/steps/patroni_api.py:88 499s May 03 00:34:17 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 499s May 03 00:34:17 And I receive a response output "Success: restart on member postgres-0" # features/steps/patroni_api.py:100 499s May 03 00:34:17 And postgres-0 role is the primary after 5 seconds # features/steps/basic_replication.py:117 500s May 03 00:34:18 500s May 03 00:34:18 Scenario: check the switchover via the API in the pause mode # features/patroni_api.feature:90 500s May 03 00:34:18 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 502s May 03 00:34:20 Then I receive a response code 200 # features/steps/patroni_api.py:100 502s May 03 00:34:20 And postgres-1 is a leader after 5 seconds # features/steps/patroni_api.py:31 502s May 03 00:34:20 And postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 503s May 03 00:34:21 And postgres-0 role is the secondary after 10 seconds # features/steps/basic_replication.py:117 508s May 03 00:34:26 And replication works from postgres-1 to postgres-0 after 20 seconds # features/steps/basic_replication.py:124 509s May 03 00:34:26 And "members/postgres-0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 509s May 03 00:34:26 When I issue a GET request to http://127.0.0.1:8008/primary # features/steps/patroni_api.py:63 509s May 03 00:34:27 Then I receive a response code 503 # features/steps/patroni_api.py:100 509s May 03 00:34:27 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:63 509s May 03 00:34:27 Then I receive a response code 200 # features/steps/patroni_api.py:100 509s May 03 00:34:27 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 509s May 03 00:34:27 Then I receive a response code 200 # features/steps/patroni_api.py:100 509s May 03 00:34:27 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 509s May 03 00:34:27 Then I receive a response code 503 # features/steps/patroni_api.py:100 509s May 03 00:34:27 509s May 03 00:34:27 Scenario: check the scheduled switchover # features/patroni_api.feature:107 509s May 03 00:34:27 Given I issue a scheduled switchover from postgres-1 to postgres-0 in 10 seconds # features/steps/patroni_api.py:119 510s May 03 00:34:28 Then I receive a response returncode 1 # features/steps/patroni_api.py:100 510s May 03 00:34:28 And I receive a response output "Can't schedule switchover in the paused state" # features/steps/patroni_api.py:100 510s May 03 00:34:28 When I run patronictl.py resume batman # features/steps/patroni_api.py:88 511s May 03 00:34:29 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 511s May 03 00:34:29 Given I issue a scheduled switchover from postgres-1 to postgres-0 in 10 seconds # features/steps/patroni_api.py:119 512s May 03 00:34:30 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 512s May 03 00:34:30 And postgres-0 is a leader after 20 seconds # features/steps/patroni_api.py:31 523s May 03 00:34:41 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 523s May 03 00:34:41 And postgres-1 role is the secondary after 10 seconds # features/steps/basic_replication.py:117 526s May 03 00:34:44 And replication works from postgres-0 to postgres-1 after 25 seconds # features/steps/basic_replication.py:124 526s May 03 00:34:44 And "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 527s May 03 00:34:45 When I issue a GET request to http://127.0.0.1:8008/primary # features/steps/patroni_api.py:63 527s May 03 00:34:45 Then I receive a response code 200 # features/steps/patroni_api.py:100 527s May 03 00:34:45 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:63 527s May 03 00:34:45 Then I receive a response code 503 # features/steps/patroni_api.py:100 527s May 03 00:34:45 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 527s May 03 00:34:45 Then I receive a response code 503 # features/steps/patroni_api.py:100 527s May 03 00:34:45 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 527s May 03 00:34:45 Then I receive a response code 200 # features/steps/patroni_api.py:100 531s May 03 00:34:49 531s May 03 00:34:49 Feature: permanent slots # features/permanent_slots.feature:1 531s May 03 00:34:49 531s May 03 00:34:49 Scenario: check that physical permanent slots are created # features/permanent_slots.feature:2 531s May 03 00:34:49 Given I start postgres-0 # features/steps/basic_replication.py:20 534s May 03 00:34:52 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 535s May 03 00:34:53 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 535s May 03 00:34:53 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 535s May 03 00:34:53 Then I receive a response code 200 # features/steps/patroni_api.py:100 535s May 03 00:34:53 And Response on GET http://127.0.0.1:8008/config contains slots after 10 seconds # features/steps/patroni_api.py:158 535s May 03 00:34:53 When I start postgres-1 # features/steps/basic_replication.py:20 538s May 03 00:34:56 And I configure and start postgres-2 with a tag nofailover true # features/steps/cascading_replication.py:7 542s May 03 00:34:59 And I configure and start postgres-3 with a tag replicatefrom postgres-2 # features/steps/cascading_replication.py:7 545s May 03 00:35:03 Then postgres-0 has a physical replication slot named test_physical after 10 seconds # features/steps/slots.py:82 545s May 03 00:35:03 And postgres-0 has a physical replication slot named postgres_1 after 10 seconds # features/steps/slots.py:82 545s May 03 00:35:03 And postgres-0 has a physical replication slot named postgres_2 after 10 seconds # features/steps/slots.py:82 545s May 03 00:35:03 And postgres-2 has a physical replication slot named postgres_3 after 10 seconds # features/steps/slots.py:82 545s May 03 00:35:03 And postgres-2 does not have a replication slot named test_physical # features/steps/slots.py:41 545s May 03 00:35:03 545s May 03 00:35:03 @slot-advance 545s May 03 00:35:03 Scenario: check that logical permanent slots are created # features/permanent_slots.feature:19 545s May 03 00:35:03 Given I run patronictl.py restart batman postgres-0 --force # features/steps/patroni_api.py:88 547s May 03 00:35:05 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 547s May 03 00:35:05 Then postgres-0 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:20 548s May 03 00:35:06 548s May 03 00:35:06 @slot-advance 548s May 03 00:35:06 Scenario: check that permanent slots are created on replicas # features/permanent_slots.feature:25 548s May 03 00:35:06 Given postgres-1 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:20 553s May 03 00:35:11 Then Logical slot test_logical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 553s May 03 00:35:11 And Logical slot test_logical is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 554s May 03 00:35:12 And postgres-1 has a physical replication slot named test_physical after 2 seconds # features/steps/slots.py:82 554s May 03 00:35:12 And postgres-2 does not have a replication slot named test_logical # features/steps/slots.py:41 554s May 03 00:35:12 And postgres-3 has a physical replication slot named test_physical after 2 seconds # features/steps/slots.py:82 554s May 03 00:35:12 554s May 03 00:35:12 @slot-advance 554s May 03 00:35:12 Scenario: check permanent physical slots that match with member names # features/permanent_slots.feature:34 554s May 03 00:35:12 Given postgres-0 has a physical replication slot named postgres_3 after 2 seconds # features/steps/slots.py:82 554s May 03 00:35:12 And postgres-1 has a physical replication slot named postgres_0 after 2 seconds # features/steps/slots.py:82 554s May 03 00:35:12 And postgres-1 has a physical replication slot named postgres_2 after 2 seconds # features/steps/slots.py:82 554s May 03 00:35:12 And postgres-1 has a physical replication slot named postgres_3 after 2 seconds # features/steps/slots.py:82 554s May 03 00:35:12 And postgres-2 does not have a replication slot named postgres_0 # features/steps/slots.py:41 554s May 03 00:35:12 And postgres-2 does not have a replication slot named postgres_1 # features/steps/slots.py:41 554s May 03 00:35:12 And postgres-2 has a physical replication slot named postgres_3 after 2 seconds # features/steps/slots.py:82 554s May 03 00:35:12 And postgres-3 has a physical replication slot named postgres_0 after 2 seconds # features/steps/slots.py:82 554s May 03 00:35:12 And postgres-3 has a physical replication slot named postgres_1 after 2 seconds # features/steps/slots.py:82 554s May 03 00:35:12 And postgres-3 has a physical replication slot named postgres_2 after 2 seconds # features/steps/slots.py:82 554s May 03 00:35:12 554s May 03 00:35:12 @slot-advance 554s May 03 00:35:12 Scenario: check that permanent slots are advanced on replicas # features/permanent_slots.feature:47 554s May 03 00:35:12 Given I add the table replicate_me to postgres-0 # features/steps/basic_replication.py:66 554s May 03 00:35:12 When I get all changes from logical slot test_logical on postgres-0 # features/steps/slots.py:72 554s May 03 00:35:12 And I get all changes from physical slot test_physical on postgres-0 # features/steps/slots.py:77 554s May 03 00:35:12 Then Logical slot test_logical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 555s May 03 00:35:13 And Physical slot test_physical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 555s May 03 00:35:13 And Logical slot test_logical is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 555s May 03 00:35:13 And Physical slot test_physical is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 555s May 03 00:35:13 And Physical slot postgres_1 is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 555s May 03 00:35:13 And Physical slot postgres_3 is in sync between postgres-2 and postgres-0 after 20 seconds # features/steps/slots.py:52 557s May 03 00:35:15 And Physical slot postgres_3 is in sync between postgres-2 and postgres-1 after 10 seconds # features/steps/slots.py:52 558s May 03 00:35:16 558s May 03 00:35:16 @slot-advance 558s May 03 00:35:16 Scenario: check that permanent slots and member slots are written to the /status key # features/permanent_slots.feature:60 558s May 03 00:35:16 Given "status" key in DCS has test_physical in slots # features/steps/slots.py:118 558s May 03 00:35:16 And "status" key in DCS has postgres_0 in slots # features/steps/slots.py:118 558s May 03 00:35:16 And "status" key in DCS has postgres_1 in slots # features/steps/slots.py:118 558s May 03 00:35:16 And "status" key in DCS has postgres_2 in slots # features/steps/slots.py:118 558s May 03 00:35:16 And "status" key in DCS has postgres_3 in slots # features/steps/slots.py:118 559s May 03 00:35:16 559s May 03 00:35:16 @slot-advance 559s May 03 00:35:16 Scenario: check that only non-permanent member slots are written to the retain_slots in /status key # features/permanent_slots.feature:68 559s May 03 00:35:16 Given "status" key in DCS has postgres_0 in retain_slots # features/steps/slots.py:118 559s May 03 00:35:16 And "status" key in DCS has postgres_1 in retain_slots # features/steps/slots.py:118 559s May 03 00:35:16 And "status" key in DCS has postgres_2 in retain_slots # features/steps/slots.py:118 559s May 03 00:35:16 And "status" key in DCS does not have postgres_3 in retain_slots # features/steps/slots.py:124 559s May 03 00:35:16 559s May 03 00:35:16 Scenario: check permanent physical replication slot after failover # features/permanent_slots.feature:74 559s May 03 00:35:16 Given I shut down postgres-3 # features/steps/basic_replication.py:41 559s May 03 00:35:17 And I shut down postgres-2 # features/steps/basic_replication.py:41 560s May 03 00:35:18 And I shut down postgres-0 # features/steps/basic_replication.py:41 562s May 03 00:35:20 Then postgres-1 has a physical replication slot named test_physical after 10 seconds # features/steps/slots.py:82 562s May 03 00:35:20 And postgres-1 has a physical replication slot named postgres_0 after 10 seconds # features/steps/slots.py:82 562s May 03 00:35:20 And postgres-1 has a physical replication slot named postgres_3 after 10 seconds # features/steps/slots.py:82 562s May 03 00:35:20 When I start postgres-0 # features/steps/basic_replication.py:20 565s May 03 00:35:23 Then postgres-0 role is the replica after 20 seconds # features/steps/basic_replication.py:117 565s May 03 00:35:23 And physical replication slot named postgres_1 on postgres-0 has no xmin value after 10 seconds # features/steps/slots.py:98 565s May 03 00:35:23 And postgres-0 has a physical replication slot named postgres_2 after 10 seconds # features/steps/slots.py:82 565s May 03 00:35:23 And postgres-0 has a physical replication slot named postgres_3 after 10 seconds # features/steps/slots.py:82 569s May 03 00:35:27 569s May 03 00:35:27 Feature: priority replication # features/priority_failover.feature:1 569s May 03 00:35:27 We should check that we can give nodes priority during failover 569s May 03 00:35:27 Scenario: check failover priority 0 prevents leaderships # features/priority_failover.feature:4 569s May 03 00:35:27 Given I configure and start postgres-0 with a tag failover_priority 1 # features/steps/cascading_replication.py:7 572s May 03 00:35:30 And I configure and start postgres-1 with a tag failover_priority 0 # features/steps/cascading_replication.py:7 575s May 03 00:35:33 Then replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 576s May 03 00:35:34 When I shut down postgres-0 # features/steps/basic_replication.py:41 578s May 03 00:35:36 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 580s May 03 00:35:38 Then postgres-1 role is the secondary after 10 seconds # features/steps/basic_replication.py:117 580s May 03 00:35:38 When I start postgres-0 # features/steps/basic_replication.py:20 582s May 03 00:35:40 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 584s May 03 00:35:42 584s May 03 00:35:42 Scenario: check higher failover priority is respected # features/priority_failover.feature:14 584s May 03 00:35:42 Given I configure and start postgres-2 with a tag failover_priority 1 # features/steps/cascading_replication.py:7 587s May 03 00:35:45 And I configure and start postgres-3 with a tag failover_priority 2 # features/steps/cascading_replication.py:7 590s May 03 00:35:48 Then replication works from postgres-0 to postgres-2 after 20 seconds # features/steps/basic_replication.py:124 591s May 03 00:35:49 And replication works from postgres-0 to postgres-3 after 20 seconds # features/steps/basic_replication.py:124 592s May 03 00:35:50 When I shut down postgres-0 # features/steps/basic_replication.py:41 594s May 03 00:35:52 Then postgres-3 role is the primary after 10 seconds # features/steps/basic_replication.py:117 595s May 03 00:35:53 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 595s May 03 00:35:53 595s May 03 00:35:53 Scenario: check conflicting configuration handling # features/priority_failover.feature:23 595s May 03 00:35:53 When I set nofailover tag in postgres-2 config # features/steps/patroni_api.py:133 595s May 03 00:35:53 And I issue an empty POST request to http://127.0.0.1:8010/reload # features/steps/patroni_api.py:68 595s May 03 00:35:53 Then I receive a response code 202 # features/steps/patroni_api.py:100 595s May 03 00:35:53 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 597s May 03 00:35:55 And "members/postgres-2" key in DCS has tags={'failover_priority': '1', 'nofailover': True} after 10 seconds # features/steps/cascading_replication.py:23 598s May 03 00:35:56 When I issue a POST request to http://127.0.0.1:8010/failover with {"candidate": "postgres-2"} # features/steps/patroni_api.py:73 598s May 03 00:35:56 Then I receive a response code 412 # features/steps/patroni_api.py:100 598s May 03 00:35:56 And I receive a response text "failover is not possible: no good candidates have been found" # features/steps/patroni_api.py:100 598s May 03 00:35:56 When I reset nofailover tag in postgres-1 config # features/steps/patroni_api.py:133 598s May 03 00:35:56 And I issue an empty POST request to http://127.0.0.1:8009/reload # features/steps/patroni_api.py:68 598s May 03 00:35:56 Then I receive a response code 202 # features/steps/patroni_api.py:100 598s May 03 00:35:56 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 600s May 03 00:35:58 And "members/postgres-1" key in DCS has tags={'failover_priority': '0', 'nofailover': False} after 10 seconds # features/steps/cascading_replication.py:23 601s May 03 00:35:59 And I issue a POST request to http://127.0.0.1:8009/failover with {"candidate": "postgres-1"} # features/steps/patroni_api.py:73 605s May 03 00:36:03 Then I receive a response code 200 # features/steps/patroni_api.py:100 605s May 03 00:36:03 And postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 610s May 03 00:36:08 610s May 03 00:36:08 Feature: quorum commit # features/quorum_commit.feature:1 610s May 03 00:36:08 Check basic workfrlows when quorum commit is enabled 610s May 03 00:36:08 Scenario: check enable quorum commit and that the only leader promotes after restart # features/quorum_commit.feature:4 610s May 03 00:36:08 Given I start postgres-0 # features/steps/basic_replication.py:20 613s May 03 00:36:11 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 613s May 03 00:36:11 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 613s May 03 00:36:11 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 613s May 03 00:36:11 Then I receive a response code 200 # features/steps/patroni_api.py:100 613s May 03 00:36:11 And sync key in DCS has leader=postgres-0 after 20 seconds # features/steps/quorum_commit.py:8 614s May 03 00:36:12 And sync key in DCS has quorum=0 after 2 seconds # features/steps/quorum_commit.py:8 614s May 03 00:36:12 And synchronous_standby_names on postgres-0 is set to '_empty_str_' after 2 seconds # features/steps/quorum_commit.py:39 614s May 03 00:36:12 When I shut down postgres-0 # features/steps/basic_replication.py:41 616s May 03 00:36:14 And sync key in DCS has leader=postgres-0 after 2 seconds # features/steps/quorum_commit.py:8 616s May 03 00:36:14 When I start postgres-0 # features/steps/basic_replication.py:20 618s May 03 00:36:16 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 620s May 03 00:36:18 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 620s May 03 00:36:18 Then synchronous_standby_names on postgres-0 is set to 'ANY 1 (*)' after 10 seconds # features/steps/quorum_commit.py:39 621s May 03 00:36:19 621s May 03 00:36:19 Scenario: check failover with one quorum standby # features/quorum_commit.feature:20 621s May 03 00:36:19 Given I start postgres-1 # features/steps/basic_replication.py:20 624s May 03 00:36:22 Then sync key in DCS has sync_standby=postgres-1 after 10 seconds # features/steps/quorum_commit.py:8 626s May 03 00:36:24 And synchronous_standby_names on postgres-0 is set to 'ANY 1 ("postgres-1")' after 2 seconds # features/steps/quorum_commit.py:39 626s May 03 00:36:24 When I shut down postgres-0 # features/steps/basic_replication.py:41 628s May 03 00:36:26 Then postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 629s May 03 00:36:27 And sync key in DCS has quorum=0 after 10 seconds # features/steps/quorum_commit.py:8 629s May 03 00:36:27 Then synchronous_standby_names on postgres-1 is set to 'ANY 1 (*)' after 10 seconds # features/steps/quorum_commit.py:39 632s May 03 00:36:30 When I start postgres-0 # features/steps/basic_replication.py:20 635s May 03 00:36:33 Then sync key in DCS has leader=postgres-1 after 10 seconds # features/steps/quorum_commit.py:8 635s May 03 00:36:33 Then sync key in DCS has sync_standby=postgres-0 after 10 seconds # features/steps/quorum_commit.py:8 636s May 03 00:36:34 And synchronous_standby_names on postgres-1 is set to 'ANY 1 ("postgres-0")' after 2 seconds # features/steps/quorum_commit.py:39 636s May 03 00:36:34 636s May 03 00:36:34 Scenario: check behavior with three nodes and different replication factor # features/quorum_commit.feature:33 636s May 03 00:36:34 Given I start postgres-2 # features/steps/basic_replication.py:20 639s May 03 00:36:37 Then sync key in DCS has sync_standby=postgres-0,postgres-2 after 10 seconds # features/steps/quorum_commit.py:8 640s May 03 00:36:38 And sync key in DCS has quorum=1 after 2 seconds # features/steps/quorum_commit.py:8 640s May 03 00:36:38 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 640s May 03 00:36:38 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 640s May 03 00:36:38 Then sync key in DCS has quorum=0 after 10 seconds # features/steps/quorum_commit.py:8 641s May 03 00:36:39 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 641s May 03 00:36:39 641s May 03 00:36:39 Scenario: switch from quorum replication to good old multisync and back # features/quorum_commit.feature:42 641s May 03 00:36:39 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 641s May 03 00:36:39 And I shut down postgres-0 # features/steps/basic_replication.py:41 642s May 03 00:36:40 Then synchronous_standby_names on postgres-1 is set to '"postgres-2"' after 10 seconds # features/steps/quorum_commit.py:39 644s May 03 00:36:42 And sync key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/quorum_commit.py:8 646s May 03 00:36:44 Then sync key in DCS has quorum=0 after 2 seconds # features/steps/quorum_commit.py:8 646s May 03 00:36:44 When I issue a PATCH request to http://127.0.0.1:8009/config with {"synchronous_mode": "quorum"} # features/steps/patroni_api.py:73 646s May 03 00:36:44 And I start postgres-0 # features/steps/basic_replication.py:20 648s May 03 00:36:46 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 650s May 03 00:36:48 And sync key in DCS has sync_standby=postgres-0,postgres-2 after 10 seconds # features/steps/quorum_commit.py:8 650s May 03 00:36:48 Then sync key in DCS has quorum=1 after 2 seconds # features/steps/quorum_commit.py:8 650s May 03 00:36:48 650s May 03 00:36:48 Scenario: REST API and patronictl # features/quorum_commit.feature:54 650s May 03 00:36:48 Given I run patronictl.py list batman # features/steps/patroni_api.py:88 651s May 03 00:36:49 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 651s May 03 00:36:49 And I receive a response output "Quorum Standby" # features/steps/patroni_api.py:100 651s May 03 00:36:49 And Status code on GET http://127.0.0.1:8008/quorum is 200 after 3 seconds # features/steps/patroni_api.py:144 651s May 03 00:36:49 And Status code on GET http://127.0.0.1:8010/quorum is 200 after 3 seconds # features/steps/patroni_api.py:144 651s May 03 00:36:49 651s May 03 00:36:49 Scenario: nosync node is removed from voters and synchronous_standby_names # features/quorum_commit.feature:61 651s May 03 00:36:49 Given I add tag nosync true to postgres-2 config # features/steps/patroni_api.py:139 651s May 03 00:36:49 When I issue an empty POST request to http://127.0.0.1:8010/reload # features/steps/patroni_api.py:68 651s May 03 00:36:49 Then I receive a response code 202 # features/steps/patroni_api.py:100 651s May 03 00:36:49 And sync key in DCS has quorum=0 after 10 seconds # features/steps/quorum_commit.py:8 654s May 03 00:36:52 And sync key in DCS has sync_standby=postgres-0 after 10 seconds # features/steps/quorum_commit.py:8 654s May 03 00:36:52 And synchronous_standby_names on postgres-1 is set to 'ANY 1 ("postgres-0")' after 2 seconds # features/steps/quorum_commit.py:39 654s May 03 00:36:52 And Status code on GET http://127.0.0.1:8010/quorum is 503 after 10 seconds # features/steps/patroni_api.py:144 662s May 03 00:37:00 662s May 03 00:37:00 Feature: recovery # features/recovery.feature:1 662s May 03 00:37:00 We want to check that crashed postgres is started back 662s May 03 00:37:00 Scenario: check that timeline is not incremented when primary is started after crash # features/recovery.feature:4 662s May 03 00:37:00 Given I start postgres-0 # features/steps/basic_replication.py:20 665s May 03 00:37:03 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 666s May 03 00:37:04 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 666s May 03 00:37:04 When I start postgres-1 # features/steps/basic_replication.py:20 669s May 03 00:37:07 And I add the table foo to postgres-0 # features/steps/basic_replication.py:66 669s May 03 00:37:07 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 670s May 03 00:37:08 When I kill postmaster on postgres-0 # features/steps/basic_replication.py:56 670s May 03 00:37:08 waiting for server to shut down.... done 670s May 03 00:37:08 server stopped 670s May 03 00:37:08 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 673s May 03 00:37:11 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:63 673s May 03 00:37:11 Then I receive a response code 200 # features/steps/patroni_api.py:100 673s May 03 00:37:11 And I receive a response role primary # features/steps/patroni_api.py:100 673s May 03 00:37:11 And I receive a response timeline 1 # features/steps/patroni_api.py:100 673s May 03 00:37:11 And "members/postgres-0" key in DCS has state=running after 12 seconds # features/steps/cascading_replication.py:23 674s May 03 00:37:12 And replication works from postgres-0 to postgres-1 after 15 seconds # features/steps/basic_replication.py:124 676s May 03 00:37:14 676s May 03 00:37:14 Scenario: check immediate failover when master_start_timeout=0 # features/recovery.feature:20 676s May 03 00:37:14 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 676s May 03 00:37:14 Then I receive a response code 200 # features/steps/patroni_api.py:100 676s May 03 00:37:14 And Response on GET http://127.0.0.1:8008/config contains master_start_timeout after 10 seconds # features/steps/patroni_api.py:158 676s May 03 00:37:14 When I kill postmaster on postgres-0 # features/steps/basic_replication.py:56 676s May 03 00:37:14 waiting for server to shut down.... done 676s May 03 00:37:14 server stopped 676s May 03 00:37:14 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 680s May 03 00:37:18 And postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 681s May 03 00:37:19 681s May 03 00:37:19 Scenario: check crashed primary demotes after failed attempt to start # features/recovery.feature:28 681s May 03 00:37:19 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 681s May 03 00:37:19 Then I receive a response code 200 # features/steps/patroni_api.py:100 681s May 03 00:37:19 And postgres-0 role is the replica after 10 seconds # features/steps/basic_replication.py:117 683s May 03 00:37:21 When I ensure postgres-1 fails to start after a failure # features/steps/recovery.py:6 683s May 03 00:37:21 When I kill postmaster on postgres-1 # features/steps/basic_replication.py:56 684s May 03 00:37:21 waiting for server to shut down.... done 684s May 03 00:37:21 server stopped 684s May 03 00:37:21 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 685s May 03 00:37:22 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 688s May 03 00:37:26 688s May 03 00:37:26 Feature: standby cluster # features/standby_cluster.feature:1 688s May 03 00:37:26 688s May 03 00:37:26 Scenario: prepare the cluster with logical slots # features/standby_cluster.feature:2 688s May 03 00:37:26 Given I start postgres-1 # features/steps/basic_replication.py:20 691s May 03 00:37:29 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 691s May 03 00:37:29 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 691s May 03 00:37:29 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 691s May 03 00:37:29 Then I receive a response code 200 # features/steps/patroni_api.py:100 691s May 03 00:37:29 And Response on GET http://127.0.0.1:8009/config contains slots after 10 seconds # features/steps/patroni_api.py:158 691s May 03 00:37:29 And I sleep for 3 seconds # features/steps/patroni_api.py:41 694s May 03 00:37:32 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 694s May 03 00:37:32 Then I receive a response code 200 # features/steps/patroni_api.py:100 694s May 03 00:37:32 And I do a backup of postgres-1 # features/steps/custom_bootstrap.py:25 694s May 03 00:37:32 When I start postgres-0 # features/steps/basic_replication.py:20 697s May 03 00:37:35 Then "members/postgres-0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 698s May 03 00:37:36 And replication works from postgres-1 to postgres-0 after 15 seconds # features/steps/basic_replication.py:124 699s May 03 00:37:37 When I issue a GET request to http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:63 700s May 03 00:37:37 Then I receive a response code 200 # features/steps/patroni_api.py:100 700s May 03 00:37:37 And I receive a response replication_state streaming # features/steps/patroni_api.py:100 700s May 03 00:37:37 And "members/postgres-0" key in DCS has replication_state=streaming after 10 seconds # features/steps/cascading_replication.py:23 700s May 03 00:37:37 700s May 03 00:37:37 @slot-advance 700s May 03 00:37:37 Scenario: check permanent logical slots are synced to the replica # features/standby_cluster.feature:22 700s May 03 00:37:37 Given I run patronictl.py restart batman postgres-1 --force # features/steps/patroni_api.py:88 702s May 03 00:37:40 Then Logical slot test_logical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 708s May 03 00:37:46 708s May 03 00:37:46 Scenario: Detach exiting node from the cluster # features/standby_cluster.feature:26 708s May 03 00:37:46 When I shut down postgres-1 # features/steps/basic_replication.py:41 710s May 03 00:37:48 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 710s May 03 00:37:48 And "members/postgres-0" key in DCS has role=primary after 5 seconds # features/steps/cascading_replication.py:23 711s May 03 00:37:49 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:63 711s May 03 00:37:49 Then I receive a response code 200 # features/steps/patroni_api.py:100 711s May 03 00:37:49 711s May 03 00:37:49 Scenario: check replication of a single table in a standby cluster # features/standby_cluster.feature:33 711s May 03 00:37:49 Given I start postgres-1 in a standby cluster batman1 as a clone of postgres-0 # features/steps/standby_cluster.py:23 714s May 03 00:37:52 Then postgres-1 is a leader of batman1 after 10 seconds # features/steps/custom_bootstrap.py:16 714s May 03 00:37:52 When I add the table foo to postgres-0 # features/steps/basic_replication.py:66 714s May 03 00:37:52 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 714s May 03 00:37:52 When I issue a GET request to http://127.0.0.1:8009/patroni # features/steps/patroni_api.py:63 714s May 03 00:37:52 Then I receive a response code 200 # features/steps/patroni_api.py:100 714s May 03 00:37:52 And I receive a response replication_state streaming # features/steps/patroni_api.py:100 714s May 03 00:37:52 And I sleep for 3 seconds # features/steps/patroni_api.py:41 717s May 03 00:37:55 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 718s May 03 00:37:56 Then I receive a response code 503 # features/steps/patroni_api.py:100 718s May 03 00:37:56 When I issue a GET request to http://127.0.0.1:8009/standby_leader # features/steps/patroni_api.py:63 718s May 03 00:37:56 Then I receive a response code 200 # features/steps/patroni_api.py:100 718s May 03 00:37:56 And I receive a response role standby_leader # features/steps/patroni_api.py:100 718s May 03 00:37:56 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 718s May 03 00:37:56 When I start postgres-2 in a cluster batman1 # features/steps/standby_cluster.py:12 721s May 03 00:37:59 Then postgres-2 role is the replica after 24 seconds # features/steps/basic_replication.py:117 721s May 03 00:37:59 And postgres-2 is replicating from postgres-1 after 10 seconds # features/steps/standby_cluster.py:52 721s May 03 00:37:59 And table foo is present on postgres-2 after 20 seconds # features/steps/basic_replication.py:105 721s May 03 00:37:59 When I issue a GET request to http://127.0.0.1:8010/patroni # features/steps/patroni_api.py:63 721s May 03 00:37:59 Then I receive a response code 200 # features/steps/patroni_api.py:100 721s May 03 00:37:59 And I receive a response replication_state streaming # features/steps/patroni_api.py:100 721s May 03 00:37:59 And postgres-1 does not have a replication slot named test_logical # features/steps/slots.py:41 721s May 03 00:37:59 721s May 03 00:37:59 Scenario: check switchover # features/standby_cluster.feature:57 721s May 03 00:37:59 Given I run patronictl.py switchover batman1 --force # features/steps/patroni_api.py:88 724s May 03 00:38:02 Then Status code on GET http://127.0.0.1:8010/standby_leader is 200 after 10 seconds # features/steps/patroni_api.py:144 724s May 03 00:38:02 And postgres-1 is replicating from postgres-2 after 32 seconds # features/steps/standby_cluster.py:52 726s May 03 00:38:04 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 726s May 03 00:38:04 726s May 03 00:38:04 Scenario: check failover # features/standby_cluster.feature:63 726s May 03 00:38:04 When I kill postgres-2 # features/steps/basic_replication.py:46 727s May 03 00:38:05 And I kill postmaster on postgres-2 # features/steps/basic_replication.py:56 727s May 03 00:38:05 waiting for server to shut down.... done 727s May 03 00:38:05 server stopped 727s May 03 00:38:05 Then postgres-1 is replicating from postgres-0 after 32 seconds # features/steps/standby_cluster.py:52 746s May 03 00:38:24 And Status code on GET http://127.0.0.1:8009/standby_leader is 200 after 10 seconds # features/steps/patroni_api.py:144 746s May 03 00:38:24 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 746s May 03 00:38:24 Then I receive a response code 503 # features/steps/patroni_api.py:100 746s May 03 00:38:24 And I receive a response role standby_leader # features/steps/patroni_api.py:100 746s May 03 00:38:24 And replication works from postgres-0 to postgres-1 after 15 seconds # features/steps/basic_replication.py:124 747s May 03 00:38:25 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 751s May 03 00:38:29 751s May 03 00:38:29 Feature: watchdog # features/watchdog.feature:1 751s May 03 00:38:29 Verify that watchdog gets pinged and triggered under appropriate circumstances. 751s May 03 00:38:29 Scenario: watchdog is opened and pinged # features/watchdog.feature:4 751s May 03 00:38:29 Given I start postgres-0 with watchdog # features/steps/watchdog.py:17 754s May 03 00:38:32 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 754s May 03 00:38:32 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 754s May 03 00:38:32 And postgres-0 watchdog has been pinged after 10 seconds # features/steps/watchdog.py:22 755s May 03 00:38:33 And postgres-0 watchdog has a 15 second timeout # features/steps/watchdog.py:35 755s May 03 00:38:33 755s May 03 00:38:33 Scenario: watchdog is reconfigured after global ttl changed # features/watchdog.feature:11 755s May 03 00:38:33 Given I run patronictl.py edit-config batman -s ttl=30 --force # features/steps/patroni_api.py:88 756s May 03 00:38:34 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 756s May 03 00:38:34 And I receive a response output "+ttl: 30" # features/steps/patroni_api.py:100 756s May 03 00:38:34 When I sleep for 4 seconds # features/steps/patroni_api.py:41 760s May 03 00:38:38 Then postgres-0 watchdog has a 25 second timeout # features/steps/watchdog.py:35 760s May 03 00:38:38 760s May 03 00:38:38 Scenario: watchdog is disabled during pause # features/watchdog.feature:18 760s May 03 00:38:38 Given I run patronictl.py pause batman # features/steps/patroni_api.py:88 761s May 03 00:38:39 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 761s May 03 00:38:39 When I sleep for 2 seconds # features/steps/patroni_api.py:41 763s May 03 00:38:41 Then postgres-0 watchdog has been closed # features/steps/watchdog.py:30 763s May 03 00:38:41 763s May 03 00:38:41 Scenario: watchdog is opened and pinged after resume # features/watchdog.feature:24 763s May 03 00:38:41 Given I reset postgres-0 watchdog state # features/steps/watchdog.py:40 763s May 03 00:38:41 And I run patronictl.py resume batman # features/steps/patroni_api.py:88 764s May 03 00:38:42 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 764s May 03 00:38:42 And postgres-0 watchdog has been pinged after 10 seconds # features/steps/watchdog.py:22 765s May 03 00:38:43 765s May 03 00:38:43 Scenario: watchdog is disabled when shutting down # features/watchdog.feature:30 765s May 03 00:38:43 Given I shut down postgres-0 # features/steps/basic_replication.py:41 767s May 03 00:38:45 Then postgres-0 watchdog has been closed # features/steps/watchdog.py:30 767s May 03 00:38:45 767s May 03 00:38:45 Scenario: watchdog is triggered if patroni stops responding # features/watchdog.feature:34 767s May 03 00:38:45 Given I reset postgres-0 watchdog state # features/steps/watchdog.py:40 767s May 03 00:38:45 And I start postgres-0 with watchdog # features/steps/watchdog.py:17 769s May 03 00:38:47 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 771s May 03 00:38:49 When postgres-0 hangs for 30 seconds # features/steps/watchdog.py:53 771s May 03 00:38:49 Then postgres-0 watchdog is triggered after 30 seconds # features/steps/watchdog.py:45 798s May 03 00:39:16 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.3883.XVfGWATx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.3929.XCyavMsx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.3967.XwEGBjex 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.4024.XaTFQUQx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.4070.XHyDwgbx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.4147.XsXYEpmx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.4197.XUOnXlox 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.4200.XallmWVx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.4280.XfFGewgx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.4388.XHXccoAx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.4396.XvFnwKAx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.4441.XZMNXorx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.4490.XqwZTyWx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.4641.XYZpAARx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.4689.XbjHJaZx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.4746.XQlMFYJx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.4840.XjrePYdx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.4893.XootLeix 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.4996.XbfOEdBx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.5050.XcwfSQHx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.5113.XDocfREx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.5204.XewaBarx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.5301.XHuUloHx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.5345.XfGaSoqx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.5409.XMgCPxdx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.5444.XHJuPRvx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.5568.XRoKibvx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.5618.XoWaARzx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.5634.XOnOKaDx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.5673.XCIzcrzx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.5721.XNngPdHx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.5726.XzELGFyx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.5763.XIMBGupx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.5808.XVmZLksx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.5977.XuCHZzIx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.5979.XYeYDKex 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.5985.XcrjoSKx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.6121.XnFXwNzx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.6168.XwaFXQqx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.6216.XcvUuiDx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.6272.XCqGKiUx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.6329.XiKIhZax 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.6481.XaDidVEx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.6549.XTSSMOox 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.6587.XyJBGZYx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.6673.XNHCvWax 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.6755.XdPbrufx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.6807.XcsOPDLx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.7148.XrXpoDhx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.7200.XwrtrcKx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.7264.XawvoODx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.7355.XexGkSsx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.7405.XdOLWsBx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.7459.XDlAHQDx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.7503.XvikCAvx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.7542.XfbsUXix 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.7587.XCxYBEEx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.7832.XkUQQNtx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.7896.XmAmDXfx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.7951.XGQXrtGx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.8061.XwizmIYx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.8179.XyYhMjyx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.8314.XydahIFx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.8358.XRKjVqrx 799s May 03 00:39:17 Skipping duplicate data .coverage.autopkgtest.8360.XfIVjhqx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.8363.XKWyQaRx 799s May 03 00:39:17 Combined data file .coverage.autopkgtest.8374.XSNHnFLx 802s May 03 00:39:20 Name Stmts Miss Cover 802s May 03 00:39:20 ------------------------------------------------------------------------------------------------------------- 802s May 03 00:39:20 /usr/lib/python3/dist-packages/OpenSSL/SSL.py 1159 642 45% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/OpenSSL/__init__.py 3 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/OpenSSL/_util.py 44 15 66% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/OpenSSL/crypto.py 869 663 24% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/OpenSSL/version.py 9 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/_distutils_hack/__init__.py 101 96 5% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/bcrypt/__init__.py 3 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/__about__.py 5 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/__init__.py 3 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/exceptions.py 26 5 81% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/hazmat/__init__.py 2 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/hazmat/_oid.py 135 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/__init__.py 0 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/__init__.py 0 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/_conditional.py 38 17 55% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/binding.py 51 4 92% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/hazmat/decrepit/__init__.py 1 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/hazmat/decrepit/ciphers/__init__.py 1 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/hazmat/decrepit/ciphers/algorithms.py 68 18 74% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/__init__.py 0 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_asymmetric.py 6 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_cipheralgorithm.py 23 4 83% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_serialization.py 79 35 56% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/__init__.py 0 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/dh.py 47 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/dsa.py 55 5 91% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ec.py 172 22 87% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ed448.py 45 12 73% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ed25519.py 43 12 72% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/padding.py 55 23 58% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/rsa.py 93 40 57% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/types.py 19 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/utils.py 14 5 64% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/x448.py 43 12 72% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/x25519.py 41 12 71% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/__init__.py 4 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/algorithms.py 72 15 79% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/base.py 54 12 78% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/modes.py 140 59 58% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/constant_time.py 6 3 50% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/hashes.py 127 20 84% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/__init__.py 5 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/base.py 7 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/ssh.py 775 614 21% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/utils.py 76 28 63% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/x509/__init__.py 70 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/x509/base.py 488 227 53% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/x509/certificate_transparency.py 42 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/x509/extensions.py 1024 552 46% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/x509/general_name.py 166 94 43% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/x509/name.py 236 144 39% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/x509/oid.py 3 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/cryptography/x509/verification.py 12 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dateutil/__init__.py 13 4 69% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dateutil/_common.py 25 15 40% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dateutil/_version.py 13 3 77% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dateutil/parser/__init__.py 33 4 88% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dateutil/parser/_parser.py 810 436 46% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dateutil/parser/isoparser.py 183 150 18% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dateutil/relativedelta.py 240 206 14% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dateutil/tz/__init__.py 4 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dateutil/tz/_common.py 151 114 25% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dateutil/tz/_factories.py 49 21 57% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dateutil/tz/tz.py 794 626 21% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dateutil/tz/win.py 152 149 2% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/__init__.py 2 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/_asyncbackend.py 14 6 57% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/_ddr.py 105 86 18% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/_features.py 46 8 83% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/_immutable_ctx.py 40 5 88% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/asyncbackend.py 44 32 27% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/asyncquery.py 322 283 12% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/edns.py 307 185 40% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/entropy.py 80 49 39% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/enum.py 72 46 36% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/exception.py 59 33 44% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/flags.py 40 14 65% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/grange.py 33 30 9% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/immutable.py 41 30 27% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/inet.py 79 65 18% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/ipv4.py 26 20 23% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/ipv6.py 114 100 12% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/message.py 829 676 18% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/name.py 617 425 31% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/nameserver.py 102 55 46% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/node.py 117 71 39% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/opcode.py 30 7 77% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/query.py 562 477 15% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/quic/__init__.py 28 23 18% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/rcode.py 68 13 81% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/rdata.py 386 277 28% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/rdataclass.py 43 9 79% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/rdataset.py 192 133 31% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/rdatatype.py 215 23 89% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/OPT.py 34 19 44% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/SOA.py 41 26 37% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/TSIG.py 58 42 28% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/ZONEMD.py 43 27 37% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/__init__.py 1 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/rdtypes/__init__.py 1 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/rdtypes/svcbbase.py 415 268 35% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/rdtypes/util.py 191 154 19% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/renderer.py 151 118 22% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/resolver.py 873 696 20% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/reversename.py 32 24 25% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/rrset.py 77 56 27% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/serial.py 92 79 14% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/set.py 148 107 28% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/tokenizer.py 334 279 16% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/transaction.py 269 201 25% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/tsig.py 176 122 31% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/ttl.py 44 38 14% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/version.py 6 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/wire.py 64 42 34% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/xfr.py 148 126 15% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/zone.py 507 383 24% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/zonefile.py 427 379 11% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/dns/zonetypes.py 14 2 86% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/etcd/__init__.py 125 63 50% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/etcd/client.py 380 256 33% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/etcd/lock.py 125 103 18% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/idna/__init__.py 4 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/idna/core.py 292 257 12% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/idna/idnadata.py 4 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/idna/intranges.py 30 24 20% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/idna/package_data.py 1 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/__init__.py 13 2 85% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/__main__.py 201 63 69% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/api.py 788 295 63% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/async_executor.py 96 15 84% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/collections.py 56 5 91% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/config.py 357 84 76% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/config_generator.py 212 159 25% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/daemon.py 76 3 96% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/dcs/__init__.py 710 94 87% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/dcs/etcd3.py 679 124 82% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/dcs/etcd.py 603 256 58% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/dynamic_loader.py 35 7 80% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/exceptions.py 16 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/file_perm.py 47 10 79% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/global_config.py 87 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/ha.py 1359 376 72% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/log.py 235 79 66% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/postgresql/__init__.py 825 165 80% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/postgresql/available_parameters/__init__.py 24 3 88% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/postgresql/bootstrap.py 254 60 76% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/postgresql/callback_executor.py 55 8 85% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/postgresql/cancellable.py 104 41 61% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/postgresql/config.py 839 214 74% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/postgresql/connection.py 75 1 99% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/postgresql/misc.py 43 8 81% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/postgresql/mpp/__init__.py 89 11 88% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/postgresql/postmaster.py 170 83 51% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/postgresql/rewind.py 416 127 69% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/postgresql/slots.py 349 38 89% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/postgresql/sync.py 154 10 94% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/postgresql/validator.py 157 24 85% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/psycopg.py 46 19 59% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/quorum.py 182 48 74% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/request.py 58 7 88% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/tags.py 38 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/utils.py 371 103 72% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/validator.py 309 215 30% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/version.py 1 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/watchdog/__init__.py 2 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/watchdog/base.py 203 42 79% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/patroni/watchdog/linux.py 135 35 74% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/psutil/__init__.py 945 622 34% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/psutil/_common.py 408 208 49% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/psutil/_pslinux.py 1225 907 26% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/psutil/_psposix.py 84 37 56% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/psycopg2/__init__.py 19 3 84% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/psycopg2/_json.py 64 27 58% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/psycopg2/_range.py 269 172 36% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/psycopg2/errors.py 3 2 33% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/psycopg2/extensions.py 91 25 73% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/urllib3/__init__.py 49 15 69% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/urllib3/_base_connection.py 63 45 29% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/urllib3/_collections.py 231 120 48% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/urllib3/_request_methods.py 54 24 56% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/urllib3/_version.py 13 3 77% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/urllib3/connection.py 389 137 65% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/urllib3/connectionpool.py 344 122 65% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/urllib3/contrib/__init__.py 0 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/urllib3/contrib/pyopenssl.py 263 101 62% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/urllib3/exceptions.py 121 39 68% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/urllib3/fields.py 92 73 21% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/urllib3/filepost.py 37 24 35% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/urllib3/http2/__init__.py 28 21 25% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/urllib3/http2/probe.py 49 31 37% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/urllib3/poolmanager.py 233 85 64% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/urllib3/response.py 634 336 47% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/urllib3/util/__init__.py 10 0 100% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/urllib3/util/connection.py 66 42 36% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/urllib3/util/proxy.py 13 6 54% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/urllib3/util/request.py 104 49 53% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/urllib3/util/response.py 32 15 53% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/urllib3/util/retry.py 174 50 71% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/urllib3/util/ssl_.py 172 74 57% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/urllib3/util/ssl_match_hostname.py 66 54 18% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/urllib3/util/ssltransport.py 152 106 30% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/urllib3/util/timeout.py 71 14 80% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/urllib3/util/url.py 203 70 66% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/urllib3/util/util.py 26 10 62% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/urllib3/util/wait.py 49 18 63% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/yaml/__init__.py 165 109 34% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/yaml/composer.py 92 17 82% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/yaml/constructor.py 479 276 42% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/yaml/cyaml.py 46 24 48% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/yaml/dumper.py 23 12 48% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/yaml/emitter.py 838 769 8% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/yaml/error.py 58 42 28% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/yaml/events.py 61 6 90% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/yaml/loader.py 47 24 49% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/yaml/nodes.py 29 7 76% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/yaml/parser.py 352 198 44% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/yaml/reader.py 122 34 72% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/yaml/representer.py 248 176 29% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/yaml/resolver.py 135 76 44% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/yaml/scanner.py 758 437 42% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/yaml/serializer.py 85 70 18% 802s May 03 00:39:20 /usr/lib/python3/dist-packages/yaml/tokens.py 76 17 78% 802s May 03 00:39:20 patroni/__init__.py 13 2 85% 802s May 03 00:39:20 patroni/__main__.py 201 201 0% 802s May 03 00:39:20 patroni/api.py 788 788 0% 802s May 03 00:39:20 patroni/async_executor.py 96 69 28% 802s May 03 00:39:20 patroni/collections.py 56 15 73% 802s May 03 00:39:20 patroni/config.py 357 186 48% 802s May 03 00:39:20 patroni/config_generator.py 212 212 0% 802s May 03 00:39:20 patroni/ctl.py 936 395 58% 802s May 03 00:39:20 patroni/daemon.py 76 76 0% 802s May 03 00:39:20 patroni/dcs/__init__.py 710 315 56% 802s May 03 00:39:20 patroni/dcs/consul.py 482 482 0% 802s May 03 00:39:20 patroni/dcs/etcd3.py 679 346 49% 802s May 03 00:39:20 patroni/dcs/etcd.py 603 277 54% 802s May 03 00:39:20 patroni/dcs/exhibitor.py 62 62 0% 802s May 03 00:39:20 patroni/dcs/kubernetes.py 943 943 0% 802s May 03 00:39:20 patroni/dcs/raft.py 319 319 0% 802s May 03 00:39:20 patroni/dcs/zookeeper.py 289 289 0% 802s May 03 00:39:20 patroni/dynamic_loader.py 35 7 80% 802s May 03 00:39:20 patroni/exceptions.py 16 1 94% 802s May 03 00:39:20 patroni/file_perm.py 47 17 64% 802s May 03 00:39:20 patroni/global_config.py 87 19 78% 802s May 03 00:39:20 patroni/ha.py 1359 1359 0% 802s May 03 00:39:20 patroni/log.py 235 183 22% 802s May 03 00:39:20 patroni/postgresql/__init__.py 825 653 21% 802s May 03 00:39:20 patroni/postgresql/available_parameters/__init__.py 24 3 88% 802s May 03 00:39:20 patroni/postgresql/bootstrap.py 254 224 12% 802s May 03 00:39:20 patroni/postgresql/callback_executor.py 55 34 38% 802s May 03 00:39:20 patroni/postgresql/cancellable.py 104 84 19% 802s May 03 00:39:20 patroni/postgresql/config.py 839 719 14% 802s May 03 00:39:20 patroni/postgresql/connection.py 75 50 33% 802s May 03 00:39:20 patroni/postgresql/misc.py 43 30 30% 802s May 03 00:39:20 patroni/postgresql/mpp/__init__.py 89 21 76% 802s May 03 00:39:20 patroni/postgresql/mpp/citus.py 366 366 0% 802s May 03 00:39:20 patroni/postgresql/postmaster.py 170 139 18% 802s May 03 00:39:20 patroni/postgresql/rewind.py 416 416 0% 802s May 03 00:39:20 patroni/postgresql/slots.py 349 300 14% 802s May 03 00:39:20 patroni/postgresql/sync.py 154 114 26% 802s May 03 00:39:20 patroni/postgresql/validator.py 157 52 67% 802s May 03 00:39:20 patroni/psycopg.py 46 32 30% 802s May 03 00:39:20 patroni/quorum.py 182 182 0% 802s May 03 00:39:20 patroni/raft_controller.py 22 22 0% 802s May 03 00:39:20 patroni/request.py 58 6 90% 802s May 03 00:39:20 patroni/scripts/__init__.py 0 0 100% 802s May 03 00:39:20 patroni/scripts/aws.py 59 59 0% 802s May 03 00:39:20 patroni/scripts/barman/__init__.py 0 0 100% 802s May 03 00:39:20 patroni/scripts/barman/cli.py 50 50 0% 802s May 03 00:39:20 patroni/scripts/barman/config_switch.py 50 50 0% 802s May 03 00:39:20 patroni/scripts/barman/recover.py 36 36 0% 802s May 03 00:39:20 patroni/scripts/barman/utils.py 93 93 0% 802s May 03 00:39:20 patroni/scripts/wale_restore.py 207 207 0% 802s May 03 00:39:20 patroni/tags.py 38 11 71% 802s May 03 00:39:20 patroni/utils.py 371 185 50% 802s May 03 00:39:20 patroni/validator.py 309 222 28% 802s May 03 00:39:20 patroni/version.py 1 0 100% 802s May 03 00:39:20 patroni/watchdog/__init__.py 2 2 0% 802s May 03 00:39:20 patroni/watchdog/base.py 203 203 0% 802s May 03 00:39:20 patroni/watchdog/linux.py 135 135 0% 802s May 03 00:39:20 ------------------------------------------------------------------------------------------------------------- 802s May 03 00:39:20 TOTAL 54059 32288 40% 802s May 03 00:39:20 13 features passed, 0 failed, 1 skipped 802s May 03 00:39:20 55 scenarios passed, 0 failed, 14 skipped 802s May 03 00:39:20 539 steps passed, 0 failed, 128 skipped, 0 undefined 802s May 03 00:39:20 Took 7m59.986s 802s + echo '### End 17 acceptance-etcd3 ###' 802s + rm -f '/tmp/pgpass?' 802s ### End 17 acceptance-etcd3 ### 803s ++ id -u 803s + '[' 1000 -eq 0 ']' 803s autopkgtest [00:39:21]: test acceptance-etcd3: -----------------------] 803s autopkgtest [00:39:21]: test acceptance-etcd3: - - - - - - - - - - results - - - - - - - - - - 803s acceptance-etcd3 PASS 804s autopkgtest [00:39:22]: test acceptance-etcd-basic: preparing testbed 895s autopkgtest [00:40:53]: testbed dpkg architecture: amd64 895s autopkgtest [00:40:53]: testbed apt version: 3.0.0 895s autopkgtest [00:40:53]: @@@@@@@@@@@@@@@@@@@@ test bed setup 896s autopkgtest [00:40:54]: testbed release detected to be: questing 896s autopkgtest [00:40:54]: updating testbed package index (apt update) 897s Get:1 http://ftpmaster.internal/ubuntu questing-proposed InRelease [110 kB] 897s Hit:2 http://ftpmaster.internal/ubuntu questing InRelease 897s Hit:3 http://ftpmaster.internal/ubuntu questing-updates InRelease 897s Hit:4 http://ftpmaster.internal/ubuntu questing-security InRelease 897s Get:5 http://ftpmaster.internal/ubuntu questing-proposed/main Sources [168 kB] 897s Get:6 http://ftpmaster.internal/ubuntu questing-proposed/multiverse Sources [43.1 kB] 897s Get:7 http://ftpmaster.internal/ubuntu questing-proposed/universe Sources [1947 kB] 897s Get:8 http://ftpmaster.internal/ubuntu questing-proposed/main amd64 Packages [233 kB] 897s Get:9 http://ftpmaster.internal/ubuntu questing-proposed/main i386 Packages [178 kB] 897s Get:10 http://ftpmaster.internal/ubuntu questing-proposed/universe amd64 Packages [1515 kB] 897s Get:11 http://ftpmaster.internal/ubuntu questing-proposed/universe i386 Packages [671 kB] 897s Get:12 http://ftpmaster.internal/ubuntu questing-proposed/multiverse amd64 Packages [15.1 kB] 897s Get:13 http://ftpmaster.internal/ubuntu questing-proposed/multiverse i386 Packages [13.9 kB] 898s Fetched 4894 kB in 1s (4033 kB/s) 898s Reading package lists... 899s autopkgtest [00:40:57]: upgrading testbed (apt dist-upgrade and autopurge) 899s Reading package lists... 899s Building dependency tree... 899s Reading state information... 900s Calculating upgrade...Starting pkgProblemResolver with broken count: 0 900s Starting 2 pkgProblemResolver with broken count: 0 900s Done 900s Entering ResolveByKeep 900s 900s Calculating upgrade... 901s The following packages will be upgraded: 901s ed fwupd htop libftdi1-2 libfwupd3 libnpth0t64 libsensors-config libsensors5 901s liburcu8t64 mokutil nano usb.ids 901s 12 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 901s Need to get 6445 kB of archives. 901s After this operation, 193 kB disk space will be freed. 901s Get:1 http://ftpmaster.internal/ubuntu questing/main amd64 libnpth0t64 amd64 1.8-3 [9294 B] 901s Get:2 http://ftpmaster.internal/ubuntu questing/main amd64 ed amd64 1.21.1-1 [57.2 kB] 901s Get:3 http://ftpmaster.internal/ubuntu questing/main amd64 libsensors-config all 1:3.6.2-2 [6756 B] 901s Get:4 http://ftpmaster.internal/ubuntu questing/main amd64 libsensors5 amd64 1:3.6.2-2 [28.7 kB] 901s Get:5 http://ftpmaster.internal/ubuntu questing/main amd64 liburcu8t64 amd64 0.15.2-2 [63.9 kB] 901s Get:6 http://ftpmaster.internal/ubuntu questing/main amd64 nano amd64 8.4-1 [290 kB] 901s Get:7 http://ftpmaster.internal/ubuntu questing/main amd64 usb.ids all 2025.04.01-1 [223 kB] 901s Get:8 http://ftpmaster.internal/ubuntu questing/main amd64 fwupd amd64 2.0.8-3 [5396 kB] 903s Get:9 http://ftpmaster.internal/ubuntu questing/main amd64 libfwupd3 amd64 2.0.8-3 [136 kB] 903s Get:10 http://ftpmaster.internal/ubuntu questing/main amd64 htop amd64 3.4.1-4 [175 kB] 903s Get:11 http://ftpmaster.internal/ubuntu questing/main amd64 libftdi1-2 amd64 1.5-10 [30.7 kB] 903s Get:12 http://ftpmaster.internal/ubuntu questing/main amd64 mokutil amd64 0.7.2-1 [27.9 kB] 904s Fetched 6445 kB in 3s (2253 kB/s) 904s (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 ... 80514 files and directories currently installed.) 904s Preparing to unpack .../libnpth0t64_1.8-3_amd64.deb ... 904s Unpacking libnpth0t64:amd64 (1.8-3) over (1.8-2) ... 904s Setting up libnpth0t64:amd64 (1.8-3) ... 904s (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 ... 80514 files and directories currently installed.) 904s Preparing to unpack .../00-ed_1.21.1-1_amd64.deb ... 904s Unpacking ed (1.21.1-1) over (1.21-1) ... 904s Preparing to unpack .../01-libsensors-config_1%3a3.6.2-2_all.deb ... 904s Unpacking libsensors-config (1:3.6.2-2) over (1:3.6.0-10) ... 904s Preparing to unpack .../02-libsensors5_1%3a3.6.2-2_amd64.deb ... 904s Unpacking libsensors5:amd64 (1:3.6.2-2) over (1:3.6.0-10) ... 904s Preparing to unpack .../03-liburcu8t64_0.15.2-2_amd64.deb ... 904s Unpacking liburcu8t64:amd64 (0.15.2-2) over (0.15.1-1) ... 904s Preparing to unpack .../04-nano_8.4-1_amd64.deb ... 904s Unpacking nano (8.4-1) over (8.3-1) ... 904s Preparing to unpack .../05-usb.ids_2025.04.01-1_all.deb ... 904s Unpacking usb.ids (2025.04.01-1) over (2025.01.14-1) ... 904s Preparing to unpack .../06-fwupd_2.0.8-3_amd64.deb ... 905s Unpacking fwupd (2.0.8-3) over (2.0.7-1) ... 905s Preparing to unpack .../07-libfwupd3_2.0.8-3_amd64.deb ... 905s Unpacking libfwupd3:amd64 (2.0.8-3) over (2.0.7-1) ... 905s Preparing to unpack .../08-htop_3.4.1-4_amd64.deb ... 905s Unpacking htop (3.4.1-4) over (3.4.0-2) ... 905s Preparing to unpack .../09-libftdi1-2_1.5-10_amd64.deb ... 905s Unpacking libftdi1-2:amd64 (1.5-10) over (1.5-8build1) ... 905s Preparing to unpack .../10-mokutil_0.7.2-1_amd64.deb ... 905s Unpacking mokutil (0.7.2-1) over (0.6.0-2build3) ... 905s Setting up liburcu8t64:amd64 (0.15.2-2) ... 905s Setting up mokutil (0.7.2-1) ... 905s Setting up htop (3.4.1-4) ... 905s Setting up libsensors-config (1:3.6.2-2) ... 905s Installing new version of config file /etc/sensors3.conf ... 905s Setting up libfwupd3:amd64 (2.0.8-3) ... 905s Setting up libftdi1-2:amd64 (1.5-10) ... 905s Setting up ed (1.21.1-1) ... 905s Setting up usb.ids (2025.04.01-1) ... 905s Setting up libsensors5:amd64 (1:3.6.2-2) ... 905s Setting up nano (8.4-1) ... 905s Installing new version of config file /etc/nanorc ... 905s Setting up fwupd (2.0.8-3) ... 905s fwupd-refresh.service is a disabled or a static unit not running, not starting it. 905s fwupd.service is a disabled or a static unit not running, not starting it. 905s Processing triggers for man-db (2.13.0-1) ... 906s Processing triggers for dbus (1.16.2-2ubuntu1) ... 906s Processing triggers for install-info (7.1.1-1) ... 907s Processing triggers for libc-bin (2.41-6ubuntu1) ... 907s Reading package lists... 907s Building dependency tree... 907s Reading state information... 907s Starting pkgProblemResolver with broken count: 0 907s Starting 2 pkgProblemResolver with broken count: 0 907s Done 908s Solving dependencies... 908s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 908s autopkgtest [00:41:06]: rebooting testbed after setup commands that affected boot 934s Reading package lists... 934s Building dependency tree... 934s Reading state information... 934s Starting pkgProblemResolver with broken count: 0 934s Starting 2 pkgProblemResolver with broken count: 0 934s Done 934s The following NEW packages will be installed: 934s etcd-server fonts-font-awesome fonts-lato libio-pty-perl libipc-run-perl 934s libjs-jquery libjs-sphinxdoc libjs-underscore libjson-perl libllvm20 libpq5 934s libtime-duration-perl libtimedate-perl libxslt1.1 moreutils patroni 934s patroni-doc postgresql postgresql-17 postgresql-client-17 934s postgresql-client-common postgresql-common postgresql-common-dev 934s python3-behave python3-click python3-coverage python3-dnspython python3-etcd 934s python3-parse python3-parse-type python3-prettytable python3-psutil 934s python3-psycopg2 python3-wcwidth python3-ydiff sphinx-rtd-theme-common 934s ssl-cert 935s 0 upgraded, 37 newly installed, 0 to remove and 0 not upgraded. 935s Need to get 68.3 MB of archives. 935s After this operation, 273 MB of additional disk space will be used. 935s Get:1 http://ftpmaster.internal/ubuntu questing/main amd64 fonts-lato all 2.015-1 [2781 kB] 936s Get:2 http://ftpmaster.internal/ubuntu questing/main amd64 libjson-perl all 4.10000-1 [81.9 kB] 936s Get:3 http://ftpmaster.internal/ubuntu questing/main amd64 postgresql-client-common all 274 [47.6 kB] 936s Get:4 http://ftpmaster.internal/ubuntu questing/main amd64 libio-pty-perl amd64 1:1.20-1build3 [31.4 kB] 936s Get:5 http://ftpmaster.internal/ubuntu questing/main amd64 libipc-run-perl all 20231003.0-2 [91.5 kB] 936s Get:6 http://ftpmaster.internal/ubuntu questing/main amd64 postgresql-common-dev all 274 [73.0 kB] 936s Get:7 http://ftpmaster.internal/ubuntu questing/main amd64 ssl-cert all 1.1.3ubuntu1 [18.7 kB] 936s Get:8 http://ftpmaster.internal/ubuntu questing/main amd64 postgresql-common all 274 [101 kB] 936s Get:9 http://ftpmaster.internal/ubuntu questing/universe amd64 etcd-server amd64 3.5.16-4 [12.4 MB] 937s Get:10 http://ftpmaster.internal/ubuntu questing/main amd64 fonts-font-awesome all 5.0.10+really4.7.0~dfsg-4.1 [516 kB] 937s Get:11 http://ftpmaster.internal/ubuntu questing/main amd64 libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 937s Get:12 http://ftpmaster.internal/ubuntu questing/main amd64 libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [118 kB] 937s Get:13 http://ftpmaster.internal/ubuntu questing/main amd64 libjs-sphinxdoc all 8.1.3-5 [31.0 kB] 937s Get:14 http://ftpmaster.internal/ubuntu questing/main amd64 libllvm20 amd64 1:20.1.2-0ubuntu1 [30.5 MB] 940s Get:15 http://ftpmaster.internal/ubuntu questing/main amd64 libpq5 amd64 17.4-1 [155 kB] 940s Get:16 http://ftpmaster.internal/ubuntu questing/main amd64 libtime-duration-perl all 1.21-2 [12.3 kB] 940s Get:17 http://ftpmaster.internal/ubuntu questing/main amd64 libtimedate-perl all 2.3300-2 [34.0 kB] 940s Get:18 http://ftpmaster.internal/ubuntu questing/main amd64 libxslt1.1 amd64 1.1.39-0exp1ubuntu4 [176 kB] 940s Get:19 http://ftpmaster.internal/ubuntu questing/universe amd64 moreutils amd64 0.69-1 [56.4 kB] 940s Get:20 http://ftpmaster.internal/ubuntu questing/main amd64 python3-click all 8.2.0+0.really.8.1.8-1 [80.0 kB] 940s Get:21 http://ftpmaster.internal/ubuntu questing/main amd64 python3-wcwidth all 0.2.13+dfsg1-1 [26.3 kB] 940s Get:22 http://ftpmaster.internal/ubuntu questing/main amd64 python3-prettytable all 3.12.0-1 [36.5 kB] 940s Get:23 http://ftpmaster.internal/ubuntu questing-proposed/main amd64 python3-psutil amd64 7.0.0-2 [188 kB] 940s Get:24 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-ydiff all 1.4.2-1 [19.0 kB] 940s Get:25 http://ftpmaster.internal/ubuntu questing/main amd64 python3-psycopg2 amd64 2.9.10-1build1 [142 kB] 940s Get:26 http://ftpmaster.internal/ubuntu questing/main amd64 python3-dnspython all 2.7.0-1ubuntu1 [167 kB] 940s Get:27 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-etcd all 0.4.5-6 [32.1 kB] 940s Get:28 http://ftpmaster.internal/ubuntu questing/universe amd64 patroni all 4.0.4-7 [281 kB] 940s Get:29 http://ftpmaster.internal/ubuntu questing/main amd64 sphinx-rtd-theme-common all 3.0.2+dfsg-2 [1014 kB] 940s Get:30 http://ftpmaster.internal/ubuntu questing/universe amd64 patroni-doc all 4.0.4-7 [526 kB] 940s Get:31 http://ftpmaster.internal/ubuntu questing/main amd64 postgresql-client-17 amd64 17.4-1 [1425 kB] 940s Get:32 http://ftpmaster.internal/ubuntu questing/main amd64 postgresql-17 amd64 17.4-1 [16.6 MB] 942s Get:33 http://ftpmaster.internal/ubuntu questing/main amd64 postgresql all 17+274 [14.4 kB] 942s Get:34 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-parse all 1.20.2-1 [27.0 kB] 942s Get:35 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-parse-type all 0.6.4-2 [23.5 kB] 942s Get:36 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-behave all 1.2.6-6 [98.6 kB] 942s Get:37 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-coverage amd64 7.6.0+dfsg1-2build1 [153 kB] 942s Preconfiguring packages ... 942s /var/cache/debconf/tmp.ci/postgresql.config.UO9yoq: 12: pg_lsclusters: not found 942s Fetched 68.3 MB in 7s (9312 kB/s) 942s Selecting previously unselected package fonts-lato. 942s (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 ... 80514 files and directories currently installed.) 942s Preparing to unpack .../00-fonts-lato_2.015-1_all.deb ... 942s Unpacking fonts-lato (2.015-1) ... 943s Selecting previously unselected package libjson-perl. 943s Preparing to unpack .../01-libjson-perl_4.10000-1_all.deb ... 943s Unpacking libjson-perl (4.10000-1) ... 943s Selecting previously unselected package postgresql-client-common. 943s Preparing to unpack .../02-postgresql-client-common_274_all.deb ... 943s Unpacking postgresql-client-common (274) ... 943s Selecting previously unselected package libio-pty-perl. 943s Preparing to unpack .../03-libio-pty-perl_1%3a1.20-1build3_amd64.deb ... 943s Unpacking libio-pty-perl (1:1.20-1build3) ... 943s Selecting previously unselected package libipc-run-perl. 943s Preparing to unpack .../04-libipc-run-perl_20231003.0-2_all.deb ... 943s Unpacking libipc-run-perl (20231003.0-2) ... 943s Selecting previously unselected package postgresql-common-dev. 943s Preparing to unpack .../05-postgresql-common-dev_274_all.deb ... 943s Unpacking postgresql-common-dev (274) ... 943s Selecting previously unselected package ssl-cert. 943s Preparing to unpack .../06-ssl-cert_1.1.3ubuntu1_all.deb ... 943s Unpacking ssl-cert (1.1.3ubuntu1) ... 943s Selecting previously unselected package postgresql-common. 943s Preparing to unpack .../07-postgresql-common_274_all.deb ... 943s Adding 'diversion of /usr/bin/pg_config to /usr/bin/pg_config.libpq-dev by postgresql-common' 943s Unpacking postgresql-common (274) ... 943s Selecting previously unselected package etcd-server. 943s Preparing to unpack .../08-etcd-server_3.5.16-4_amd64.deb ... 943s Unpacking etcd-server (3.5.16-4) ... 943s Selecting previously unselected package fonts-font-awesome. 943s Preparing to unpack .../09-fonts-font-awesome_5.0.10+really4.7.0~dfsg-4.1_all.deb ... 943s Unpacking fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 943s Selecting previously unselected package libjs-jquery. 943s Preparing to unpack .../10-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 943s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 943s Selecting previously unselected package libjs-underscore. 943s Preparing to unpack .../11-libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ... 943s Unpacking libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 943s Selecting previously unselected package libjs-sphinxdoc. 943s Preparing to unpack .../12-libjs-sphinxdoc_8.1.3-5_all.deb ... 943s Unpacking libjs-sphinxdoc (8.1.3-5) ... 943s Selecting previously unselected package libllvm20:amd64. 943s Preparing to unpack .../13-libllvm20_1%3a20.1.2-0ubuntu1_amd64.deb ... 943s Unpacking libllvm20:amd64 (1:20.1.2-0ubuntu1) ... 944s Selecting previously unselected package libpq5:amd64. 944s Preparing to unpack .../14-libpq5_17.4-1_amd64.deb ... 944s Unpacking libpq5:amd64 (17.4-1) ... 944s Selecting previously unselected package libtime-duration-perl. 944s Preparing to unpack .../15-libtime-duration-perl_1.21-2_all.deb ... 944s Unpacking libtime-duration-perl (1.21-2) ... 944s Selecting previously unselected package libtimedate-perl. 944s Preparing to unpack .../16-libtimedate-perl_2.3300-2_all.deb ... 944s Unpacking libtimedate-perl (2.3300-2) ... 944s Selecting previously unselected package libxslt1.1:amd64. 944s Preparing to unpack .../17-libxslt1.1_1.1.39-0exp1ubuntu4_amd64.deb ... 944s Unpacking libxslt1.1:amd64 (1.1.39-0exp1ubuntu4) ... 944s Selecting previously unselected package moreutils. 944s Preparing to unpack .../18-moreutils_0.69-1_amd64.deb ... 944s Unpacking moreutils (0.69-1) ... 944s Selecting previously unselected package python3-click. 944s Preparing to unpack .../19-python3-click_8.2.0+0.really.8.1.8-1_all.deb ... 944s Unpacking python3-click (8.2.0+0.really.8.1.8-1) ... 944s Selecting previously unselected package python3-wcwidth. 944s Preparing to unpack .../20-python3-wcwidth_0.2.13+dfsg1-1_all.deb ... 944s Unpacking python3-wcwidth (0.2.13+dfsg1-1) ... 944s Selecting previously unselected package python3-prettytable. 944s Preparing to unpack .../21-python3-prettytable_3.12.0-1_all.deb ... 944s Unpacking python3-prettytable (3.12.0-1) ... 944s Selecting previously unselected package python3-psutil. 944s Preparing to unpack .../22-python3-psutil_7.0.0-2_amd64.deb ... 944s Unpacking python3-psutil (7.0.0-2) ... 944s Selecting previously unselected package python3-ydiff. 944s Preparing to unpack .../23-python3-ydiff_1.4.2-1_all.deb ... 944s Unpacking python3-ydiff (1.4.2-1) ... 944s Selecting previously unselected package python3-psycopg2. 944s Preparing to unpack .../24-python3-psycopg2_2.9.10-1build1_amd64.deb ... 944s Unpacking python3-psycopg2 (2.9.10-1build1) ... 944s Selecting previously unselected package python3-dnspython. 944s Preparing to unpack .../25-python3-dnspython_2.7.0-1ubuntu1_all.deb ... 944s Unpacking python3-dnspython (2.7.0-1ubuntu1) ... 944s Selecting previously unselected package python3-etcd. 944s Preparing to unpack .../26-python3-etcd_0.4.5-6_all.deb ... 944s Unpacking python3-etcd (0.4.5-6) ... 944s Selecting previously unselected package patroni. 944s Preparing to unpack .../27-patroni_4.0.4-7_all.deb ... 944s Unpacking patroni (4.0.4-7) ... 944s Selecting previously unselected package sphinx-rtd-theme-common. 944s Preparing to unpack .../28-sphinx-rtd-theme-common_3.0.2+dfsg-2_all.deb ... 944s Unpacking sphinx-rtd-theme-common (3.0.2+dfsg-2) ... 944s Selecting previously unselected package patroni-doc. 944s Preparing to unpack .../29-patroni-doc_4.0.4-7_all.deb ... 944s Unpacking patroni-doc (4.0.4-7) ... 944s Selecting previously unselected package postgresql-client-17. 944s Preparing to unpack .../30-postgresql-client-17_17.4-1_amd64.deb ... 944s Unpacking postgresql-client-17 (17.4-1) ... 944s Selecting previously unselected package postgresql-17. 944s Preparing to unpack .../31-postgresql-17_17.4-1_amd64.deb ... 944s Unpacking postgresql-17 (17.4-1) ... 945s Selecting previously unselected package postgresql. 945s Preparing to unpack .../32-postgresql_17+274_all.deb ... 945s Unpacking postgresql (17+274) ... 945s Selecting previously unselected package python3-parse. 945s Preparing to unpack .../33-python3-parse_1.20.2-1_all.deb ... 945s Unpacking python3-parse (1.20.2-1) ... 945s Selecting previously unselected package python3-parse-type. 945s Preparing to unpack .../34-python3-parse-type_0.6.4-2_all.deb ... 945s Unpacking python3-parse-type (0.6.4-2) ... 945s Selecting previously unselected package python3-behave. 945s Preparing to unpack .../35-python3-behave_1.2.6-6_all.deb ... 945s Unpacking python3-behave (1.2.6-6) ... 945s Selecting previously unselected package python3-coverage. 945s Preparing to unpack .../36-python3-coverage_7.6.0+dfsg1-2build1_amd64.deb ... 945s Unpacking python3-coverage (7.6.0+dfsg1-2build1) ... 945s Setting up postgresql-client-common (274) ... 945s Setting up fonts-lato (2.015-1) ... 945s Setting up libio-pty-perl (1:1.20-1build3) ... 945s Setting up python3-ydiff (1.4.2-1) ... 945s Setting up libpq5:amd64 (17.4-1) ... 945s Setting up python3-coverage (7.6.0+dfsg1-2build1) ... 945s Setting up python3-click (8.2.0+0.really.8.1.8-1) ... 945s Setting up python3-psutil (7.0.0-2) ... 945s Setting up python3-wcwidth (0.2.13+dfsg1-1) ... 946s Setting up ssl-cert (1.1.3ubuntu1) ... 946s Created symlink '/etc/systemd/system/multi-user.target.wants/ssl-cert.service' → '/usr/lib/systemd/system/ssl-cert.service'. 946s Setting up libllvm20:amd64 (1:20.1.2-0ubuntu1) ... 946s Setting up python3-psycopg2 (2.9.10-1build1) ... 946s Setting up libipc-run-perl (20231003.0-2) ... 946s Setting up libtime-duration-perl (1.21-2) ... 946s Setting up libtimedate-perl (2.3300-2) ... 946s Setting up python3-dnspython (2.7.0-1ubuntu1) ... 947s Setting up python3-parse (1.20.2-1) ... 947s Setting up libjson-perl (4.10000-1) ... 947s Setting up libxslt1.1:amd64 (1.1.39-0exp1ubuntu4) ... 947s Setting up etcd-server (3.5.16-4) ... 947s info: Selecting UID from range 100 to 999 ... 947s 947s info: Selecting GID from range 100 to 999 ... 947s info: Adding system user `etcd' (UID 107) ... 947s info: Adding new group `etcd' (GID 111) ... 947s info: Adding new user `etcd' (UID 107) with group `etcd' ... 947s info: Creating home directory `/var/lib/etcd/' ... 947s Created symlink '/etc/systemd/system/etcd2.service' → '/usr/lib/systemd/system/etcd.service'. 947s Created symlink '/etc/systemd/system/multi-user.target.wants/etcd.service' → '/usr/lib/systemd/system/etcd.service'. 949s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 949s Setting up python3-prettytable (3.12.0-1) ... 949s Setting up fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 949s Setting up sphinx-rtd-theme-common (3.0.2+dfsg-2) ... 949s Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 949s Setting up postgresql-common-dev (274) ... 949s Setting up moreutils (0.69-1) ... 949s Setting up postgresql-client-17 (17.4-1) ... 949s 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 949s Setting up python3-etcd (0.4.5-6) ... 949s Setting up python3-parse-type (0.6.4-2) ... 950s Setting up postgresql-common (274) ... 950s Creating config file /etc/postgresql-common/createcluster.conf with new version 950s Building PostgreSQL dictionaries from installed myspell/hunspell packages... 950s Removing obsolete dictionary files: 951s Created symlink '/etc/systemd/system/multi-user.target.wants/postgresql.service' → '/usr/lib/systemd/system/postgresql.service'. 951s Setting up libjs-sphinxdoc (8.1.3-5) ... 951s Setting up python3-behave (1.2.6-6) ... 951s /usr/lib/python3/dist-packages/behave/formatter/ansi_escapes.py:57: SyntaxWarning: invalid escape sequence '\[' 951s _ANSI_ESCAPE_PATTERN = re.compile(u"\x1b\[\d+[mA]", re.UNICODE) 951s /usr/lib/python3/dist-packages/behave/matchers.py:284: SyntaxWarning: invalid escape sequence '\d' 951s @parse.with_pattern(r"\d+") 951s Setting up patroni (4.0.4-7) ... 951s Created symlink '/etc/systemd/system/multi-user.target.wants/patroni.service' → '/usr/lib/systemd/system/patroni.service'. 952s Setting up postgresql-17 (17.4-1) ... 953s Creating new PostgreSQL cluster 17/main ... 953s /usr/lib/postgresql/17/bin/initdb -D /var/lib/postgresql/17/main --auth-local peer --auth-host scram-sha-256 --no-instructions 953s The files belonging to this database system will be owned by user "postgres". 953s This user must also own the server process. 953s 953s The database cluster will be initialized with locale "C.UTF-8". 953s The default database encoding has accordingly been set to "UTF8". 953s The default text search configuration will be set to "english". 953s 953s Data page checksums are disabled. 953s 953s fixing permissions on existing directory /var/lib/postgresql/17/main ... ok 953s creating subdirectories ... ok 953s selecting dynamic shared memory implementation ... posix 953s selecting default "max_connections" ... 100 953s selecting default "shared_buffers" ... 128MB 953s selecting default time zone ... Etc/UTC 953s creating configuration files ... ok 953s running bootstrap script ... ok 953s performing post-bootstrap initialization ... ok 953s syncing data to disk ... ok 956s Setting up patroni-doc (4.0.4-7) ... 956s Setting up postgresql (17+274) ... 956s Processing triggers for man-db (2.13.0-1) ... 958s Processing triggers for libc-bin (2.41-6ubuntu1) ... 960s autopkgtest [00:41:58]: testbed environment configured for cross-architecture building 960s autopkgtest [00:41:58]: test acceptance-etcd-basic: debian/tests/acceptance etcd features/basic_replication.feature 960s autopkgtest [00:41:58]: test acceptance-etcd-basic: [----------------------- 961s ○ etcd.service - etcd - highly-available key value store 961s Loaded: loaded (/usr/lib/systemd/system/etcd.service; enabled; preset: enabled) 961s Active: inactive (dead) since Sat 2025-05-03 00:41:59 UTC; 13ms ago 961s Duration: 13.313s 961s Invocation: cdf528c638394e72aa890fe32e90c00d 961s Docs: https://etcd.io/docs 961s man:etcd 961s Process: 1771 ExecStart=/usr/bin/etcd $DAEMON_ARGS (code=killed, signal=TERM) 961s Main PID: 1771 (code=killed, signal=TERM) 961s Mem peak: 8.5M 961s CPU: 77ms 961s 961s May 03 00:41:59 autopkgtest etcd[1771]: {"level":"info","ts":"2025-05-03T00:41:59.661270Z","caller":"embed/etcd.go:378","msg":"closing etcd server","name":"autopkgtest","data-dir":"/var/lib/etcd/default","advertise-peer-urls":["http://localhost:2380"],"advertise-client-urls":["http://localhost:2379"]} 961s May 03 00:41:59 autopkgtest etcd[1771]: {"level":"warn","ts":"2025-05-03T00:41:59.661383Z","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"} 961s May 03 00:41:59 autopkgtest etcd[1771]: {"level":"warn","ts":"2025-05-03T00:41:59.661528Z","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"} 961s May 03 00:41:59 autopkgtest etcd[1771]: {"level":"info","ts":"2025-05-03T00:41:59.661552Z","caller":"etcdserver/server.go:1543","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"8e9e05c52164694d","current-leader-member-id":"8e9e05c52164694d"} 961s May 03 00:41:59 autopkgtest systemd[1]: Stopping etcd.service - etcd - highly-available key value store... 961s May 03 00:41:59 autopkgtest etcd[1771]: {"level":"info","ts":"2025-05-03T00:41:59.663650Z","caller":"embed/etcd.go:582","msg":"stopping serving peer traffic","address":"127.0.0.1:2380"} 961s May 03 00:41:59 autopkgtest etcd[1771]: {"level":"info","ts":"2025-05-03T00:41:59.663742Z","caller":"embed/etcd.go:587","msg":"stopped serving peer traffic","address":"127.0.0.1:2380"} 961s May 03 00:41:59 autopkgtest etcd[1771]: {"level":"info","ts":"2025-05-03T00:41:59.663753Z","caller":"embed/etcd.go:380","msg":"closed etcd server","name":"autopkgtest","data-dir":"/var/lib/etcd/default","advertise-peer-urls":["http://localhost:2380"],"advertise-client-urls":["http://localhost:2379"]} 961s May 03 00:41:59 autopkgtest systemd[1]: etcd.service: Deactivated successfully. 961s May 03 00:41:59 autopkgtest systemd[1]: Stopped etcd.service - etcd - highly-available key value store. 961s ++ ls -1r /usr/lib/postgresql/ 961s ### PostgreSQL 17 acceptance-etcd features/basic_replication.feature ### 961s + for PG_VERSION in $(ls -1r /usr/lib/postgresql/) 961s + '[' 17 == 10 -o 17 == 11 ']' 961s + echo '### PostgreSQL 17 acceptance-etcd features/basic_replication.feature ###' 961s + su postgres -p -c 'set -o pipefail; ETCD_UNSUPPORTED_ARCH=386 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' 963s May 03 00:42:01 Feature: basic replication # features/basic_replication.feature:1 963s May 03 00:42:01 We should check that the basic bootstrapping, replication and failover works. 963s May 03 00:42:01 Scenario: check replication of a single table # features/basic_replication.feature:4 963s May 03 00:42:01 Given I start postgres-0 # features/steps/basic_replication.py:20 966s May 03 00:42:04 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 967s May 03 00:42:05 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 967s May 03 00:42:05 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 967s May 03 00:42:05 Then I receive a response code 200 # features/steps/patroni_api.py:100 967s May 03 00:42:05 When I start postgres-1 # features/steps/basic_replication.py:20 970s May 03 00:42:08 And I configure and start postgres-2 with a tag replicatefrom postgres-0 # features/steps/cascading_replication.py:7 973s May 03 00:42:11 And "sync" key in DCS has leader=postgres-0 after 20 seconds # features/steps/cascading_replication.py:23 973s May 03 00:42:11 And I add the table foo to postgres-0 # features/steps/basic_replication.py:66 973s May 03 00:42:11 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 974s May 03 00:42:12 Then table foo is present on postgres-2 after 20 seconds # features/steps/basic_replication.py:105 974s May 03 00:42:12 974s May 03 00:42:12 Scenario: check restart of sync replica # features/basic_replication.feature:17 974s May 03 00:42:12 Given I shut down postgres-2 # features/steps/basic_replication.py:41 975s May 03 00:42:13 Then "sync" key in DCS has sync_standby=postgres-1 after 5 seconds # features/steps/cascading_replication.py:23 975s May 03 00:42:13 When I start postgres-2 # features/steps/basic_replication.py:20 977s May 03 00:42:15 And I shut down postgres-1 # features/steps/basic_replication.py:41 980s May 03 00:42:18 Then "sync" key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 981s May 03 00:42:19 When I start postgres-1 # features/steps/basic_replication.py:20 983s May 03 00:42:21 Then "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 984s May 03 00:42:22 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 984s May 03 00:42:22 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:144 984s May 03 00:42:22 984s May 03 00:42:22 Scenario: check stuck sync replica # features/basic_replication.feature:28 984s May 03 00:42:22 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 984s May 03 00:42:22 Then I receive a response code 200 # features/steps/patroni_api.py:100 984s May 03 00:42:22 And I create table on postgres-0 # features/steps/basic_replication.py:85 984s May 03 00:42:22 And table mytest is present on postgres-1 after 2 seconds # features/steps/basic_replication.py:105 985s May 03 00:42:23 And table mytest is present on postgres-2 after 2 seconds # features/steps/basic_replication.py:105 985s May 03 00:42:23 When I pause wal replay on postgres-2 # features/steps/basic_replication.py:76 985s May 03 00:42:23 And I load data on postgres-0 # features/steps/basic_replication.py:96 986s May 03 00:42:24 Then "sync" key in DCS has sync_standby=postgres-1 after 15 seconds # features/steps/cascading_replication.py:23 989s May 03 00:42:27 And I resume wal replay on postgres-2 # features/steps/basic_replication.py:76 989s May 03 00:42:27 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 989s May 03 00:42:27 And Status code on GET http://127.0.0.1:8010/async is 200 after 3 seconds # features/steps/patroni_api.py:144 989s May 03 00:42:27 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 989s May 03 00:42:27 Then I receive a response code 200 # features/steps/patroni_api.py:100 989s May 03 00:42:27 And I drop table on postgres-0 # features/steps/basic_replication.py:85 989s May 03 00:42:27 989s May 03 00:42:27 Scenario: check multi sync replication # features/basic_replication.feature:44 989s May 03 00:42:27 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 989s May 03 00:42:27 Then I receive a response code 200 # features/steps/patroni_api.py:100 989s May 03 00:42:27 Then "sync" key in DCS has sync_standby=postgres-1,postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 993s May 03 00:42:31 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 993s May 03 00:42:31 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 993s May 03 00:42:31 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 993s May 03 00:42:31 Then I receive a response code 200 # features/steps/patroni_api.py:100 993s May 03 00:42:31 And I shut down postgres-1 # features/steps/basic_replication.py:41 996s May 03 00:42:34 Then "sync" key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 997s May 03 00:42:35 When I start postgres-1 # features/steps/basic_replication.py:20 999s May 03 00:42:37 Then "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1000s May 03 00:42:38 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 1000s May 03 00:42:38 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:144 1000s May 03 00:42:38 1000s May 03 00:42:38 Scenario: check the basic failover in synchronous mode # features/basic_replication.feature:59 1000s May 03 00:42:38 Given I run patronictl.py pause batman # features/steps/patroni_api.py:88 1001s May 03 00:42:39 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1001s May 03 00:42:39 When I sleep for 2 seconds # features/steps/patroni_api.py:41 1003s May 03 00:42:41 And I shut down postgres-0 # features/steps/basic_replication.py:41 1004s May 03 00:42:42 And I run patronictl.py resume batman # features/steps/patroni_api.py:88 1005s May 03 00:42:43 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1005s May 03 00:42:43 And postgres-2 role is the primary after 24 seconds # features/steps/basic_replication.py:117 1024s May 03 00:43:02 And Response on GET http://127.0.0.1:8010/history contains recovery after 10 seconds # features/steps/patroni_api.py:158 1028s May 03 00:43:06 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 1028s May 03 00:43:06 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 1029s May 03 00:43:06 Then I receive a response code 200 # features/steps/patroni_api.py:100 1029s May 03 00:43:06 When I add the table bar to postgres-2 # features/steps/basic_replication.py:66 1029s May 03 00:43:06 Then table bar is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 1029s May 03 00:43:06 And Response on GET http://127.0.0.1:8010/config contains master_start_timeout after 10 seconds # features/steps/patroni_api.py:158 1029s May 03 00:43:07 1029s May 03 00:43:07 Scenario: check rejoin of the former primary with pg_rewind # features/basic_replication.feature:75 1029s May 03 00:43:07 Given I add the table splitbrain to postgres-0 # features/steps/basic_replication.py:66 1029s May 03 00:43:07 And I start postgres-0 # features/steps/basic_replication.py:20 1029s May 03 00:43:07 Then postgres-0 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 1035s May 03 00:43:13 When I add the table buz to postgres-2 # features/steps/basic_replication.py:66 1035s May 03 00:43:13 Then table buz is present on postgres-0 after 20 seconds # features/steps/basic_replication.py:105 1035s May 03 00:43:13 1035s May 03 00:43:13 @reject-duplicate-name 1035s May 03 00:43:13 Scenario: check graceful rejection when two nodes have the same name # features/basic_replication.feature:83 1035s May 03 00:43:13 Given I start duplicate postgres-0 on port 8011 # features/steps/basic_replication.py:25 1037s May 03 00:43:15 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 1041s May 03 00:43:19 1041s Failed to get list of machines from http://[::1]:2379/v2: MaxRetryError("HTTPConnectionPool(host='::1', port=2379): Max retries exceeded with url: /v2/machines (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))") 1042s Failed to get list of machines from http://[::1]:2379/v2: MaxRetryError("HTTPConnectionPool(host='::1', port=2379): Max retries exceeded with url: /v2/machines (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))") 1042s 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'))") 1042s May 03 00:43:20 Combined data file .coverage.autopkgtest.3931.XrUYygkx 1042s May 03 00:43:20 Combined data file .coverage.autopkgtest.3978.XLqepqRx 1042s May 03 00:43:20 Combined data file .coverage.autopkgtest.4026.XqpvJYFx 1042s May 03 00:43:20 Combined data file .coverage.autopkgtest.4075.XdkKDOMx 1042s May 03 00:43:20 Combined data file .coverage.autopkgtest.4121.XjAXBxqx 1042s May 03 00:43:20 Combined data file .coverage.autopkgtest.4194.XYRsdQLx 1042s May 03 00:43:20 Combined data file .coverage.autopkgtest.4241.XdEwimpx 1042s May 03 00:43:20 Combined data file .coverage.autopkgtest.4244.XEYLtxmx 1042s May 03 00:43:20 Combined data file .coverage.autopkgtest.4315.XsVzBVvx 1042s May 03 00:43:20 Combined data file .coverage.autopkgtest.4415.XrSPjrDx 1046s May 03 00:43:23 Name Stmts Miss Cover 1046s May 03 00:43:23 ------------------------------------------------------------------------------------------------------------- 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/OpenSSL/SSL.py 1159 647 44% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/OpenSSL/__init__.py 3 0 100% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/OpenSSL/_util.py 44 15 66% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/OpenSSL/crypto.py 869 663 24% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/OpenSSL/version.py 9 0 100% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/_distutils_hack/__init__.py 101 96 5% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/bcrypt/__init__.py 3 0 100% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/__about__.py 5 0 100% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/__init__.py 3 0 100% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/exceptions.py 26 5 81% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/hazmat/__init__.py 2 0 100% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/hazmat/_oid.py 135 0 100% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/__init__.py 0 0 100% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/__init__.py 0 0 100% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/_conditional.py 38 17 55% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/binding.py 51 4 92% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/hazmat/decrepit/__init__.py 1 0 100% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/hazmat/decrepit/ciphers/__init__.py 1 0 100% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/hazmat/decrepit/ciphers/algorithms.py 68 18 74% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/__init__.py 0 0 100% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_asymmetric.py 6 0 100% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_cipheralgorithm.py 23 4 83% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_serialization.py 79 35 56% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/__init__.py 0 0 100% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/dh.py 47 0 100% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/dsa.py 55 5 91% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ec.py 172 22 87% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ed448.py 45 12 73% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ed25519.py 43 12 72% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/padding.py 55 23 58% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/rsa.py 93 40 57% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/types.py 19 0 100% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/utils.py 14 5 64% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/x448.py 43 12 72% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/x25519.py 41 12 71% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/__init__.py 4 0 100% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/algorithms.py 72 15 79% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/base.py 54 12 78% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/modes.py 140 59 58% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/constant_time.py 6 3 50% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/hashes.py 127 20 84% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/__init__.py 5 0 100% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/base.py 7 0 100% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/ssh.py 775 614 21% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/utils.py 76 28 63% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/x509/__init__.py 70 0 100% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/x509/base.py 488 227 53% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/x509/certificate_transparency.py 42 0 100% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/x509/extensions.py 1024 552 46% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/x509/general_name.py 166 94 43% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/x509/name.py 236 144 39% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/x509/oid.py 3 0 100% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/cryptography/x509/verification.py 12 0 100% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dateutil/__init__.py 13 4 69% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dateutil/_common.py 25 15 40% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dateutil/_version.py 13 3 77% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dateutil/parser/__init__.py 33 4 88% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dateutil/parser/_parser.py 810 688 15% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dateutil/parser/isoparser.py 183 150 18% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dateutil/relativedelta.py 240 206 14% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dateutil/tz/__init__.py 4 0 100% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dateutil/tz/_common.py 151 117 23% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dateutil/tz/_factories.py 49 21 57% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dateutil/tz/tz.py 794 629 21% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dateutil/tz/win.py 152 149 2% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/__init__.py 2 0 100% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/_asyncbackend.py 14 6 57% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/_ddr.py 105 86 18% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/_features.py 46 8 83% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/_immutable_ctx.py 40 5 88% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/asyncbackend.py 44 32 27% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/asyncquery.py 322 283 12% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/edns.py 307 185 40% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/entropy.py 80 49 39% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/enum.py 72 46 36% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/exception.py 59 33 44% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/flags.py 40 14 65% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/grange.py 33 30 9% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/immutable.py 41 30 27% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/inet.py 79 65 18% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/ipv4.py 26 20 23% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/ipv6.py 114 100 12% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/message.py 829 676 18% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/name.py 617 425 31% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/nameserver.py 102 55 46% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/node.py 117 71 39% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/opcode.py 30 7 77% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/query.py 562 477 15% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/quic/__init__.py 28 23 18% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/rcode.py 68 13 81% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/rdata.py 386 277 28% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/rdataclass.py 43 9 79% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/rdataset.py 192 133 31% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/rdatatype.py 215 23 89% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/OPT.py 34 19 44% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/SOA.py 41 26 37% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/TSIG.py 58 42 28% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/ZONEMD.py 43 27 37% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/__init__.py 1 0 100% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/rdtypes/__init__.py 1 0 100% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/rdtypes/svcbbase.py 415 268 35% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/rdtypes/util.py 191 154 19% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/renderer.py 151 118 22% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/resolver.py 873 696 20% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/reversename.py 32 24 25% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/rrset.py 77 56 27% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/serial.py 92 79 14% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/set.py 148 107 28% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/tokenizer.py 334 279 16% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/transaction.py 269 201 25% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/tsig.py 176 122 31% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/ttl.py 44 38 14% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/version.py 6 0 100% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/wire.py 64 42 34% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/xfr.py 148 126 15% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/zone.py 507 383 24% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/zonefile.py 427 379 11% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/dns/zonetypes.py 14 2 86% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/etcd/__init__.py 125 27 78% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/etcd/client.py 380 195 49% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/etcd/lock.py 125 103 18% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/idna/__init__.py 4 0 100% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/idna/core.py 292 257 12% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/idna/idnadata.py 4 0 100% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/idna/intranges.py 30 24 20% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/idna/package_data.py 1 0 100% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/__init__.py 13 2 85% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/__main__.py 201 68 66% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/api.py 788 439 44% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/async_executor.py 96 19 80% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/collections.py 56 7 88% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/config.py 357 100 72% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/config_generator.py 212 159 25% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/daemon.py 76 6 92% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/dcs/__init__.py 710 166 77% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/dcs/etcd.py 603 180 70% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/dynamic_loader.py 35 7 80% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/exceptions.py 16 0 100% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/file_perm.py 47 11 77% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/global_config.py 87 4 95% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/ha.py 1359 688 49% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/log.py 235 81 66% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/postgresql/__init__.py 825 242 71% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/postgresql/available_parameters/__init__.py 24 3 88% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/postgresql/bootstrap.py 254 89 65% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/postgresql/callback_executor.py 55 8 85% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/postgresql/cancellable.py 104 41 61% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/postgresql/config.py 839 271 68% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/postgresql/connection.py 75 7 91% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/postgresql/misc.py 43 13 70% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/postgresql/mpp/__init__.py 89 12 87% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/postgresql/postmaster.py 170 92 46% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/postgresql/rewind.py 416 200 52% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/postgresql/slots.py 349 177 49% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/postgresql/sync.py 154 23 85% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/postgresql/validator.py 157 24 85% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/psycopg.py 46 19 59% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/quorum.py 182 160 12% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/request.py 58 7 88% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/tags.py 38 5 87% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/utils.py 371 139 63% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/validator.py 309 218 29% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/version.py 1 0 100% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/watchdog/__init__.py 2 0 100% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/watchdog/base.py 203 49 76% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/patroni/watchdog/linux.py 135 50 63% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/psutil/__init__.py 945 629 33% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/psutil/_common.py 408 208 49% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/psutil/_pslinux.py 1225 920 25% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/psutil/_psposix.py 84 40 52% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/psycopg2/__init__.py 19 3 84% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/psycopg2/_json.py 64 27 58% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/psycopg2/_range.py 269 172 36% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/psycopg2/errors.py 3 2 33% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/psycopg2/extensions.py 91 25 73% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/urllib3/__init__.py 49 15 69% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/urllib3/_base_connection.py 63 45 29% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/urllib3/_collections.py 231 97 58% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/urllib3/_request_methods.py 54 12 78% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/urllib3/_version.py 13 3 77% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/urllib3/connection.py 389 138 65% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/urllib3/connectionpool.py 344 128 63% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/urllib3/contrib/__init__.py 0 0 100% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/urllib3/contrib/pyopenssl.py 263 103 61% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/urllib3/exceptions.py 121 39 68% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/urllib3/fields.py 92 73 21% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/urllib3/filepost.py 37 24 35% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/urllib3/http2/__init__.py 28 21 25% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/urllib3/http2/probe.py 49 31 37% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/urllib3/poolmanager.py 233 85 64% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/urllib3/response.py 634 377 41% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/urllib3/util/__init__.py 10 0 100% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/urllib3/util/connection.py 66 42 36% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/urllib3/util/proxy.py 13 6 54% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/urllib3/util/request.py 104 49 53% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/urllib3/util/response.py 32 17 47% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/urllib3/util/retry.py 174 56 68% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/urllib3/util/ssl_.py 172 74 57% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/urllib3/util/ssl_match_hostname.py 66 54 18% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/urllib3/util/ssltransport.py 152 106 30% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/urllib3/util/timeout.py 71 14 80% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/urllib3/util/url.py 203 66 67% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/urllib3/util/util.py 26 10 62% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/urllib3/util/wait.py 49 18 63% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/yaml/__init__.py 165 109 34% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/yaml/composer.py 92 17 82% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/yaml/constructor.py 479 276 42% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/yaml/cyaml.py 46 24 48% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/yaml/dumper.py 23 12 48% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/yaml/emitter.py 838 769 8% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/yaml/error.py 58 42 28% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/yaml/events.py 61 6 90% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/yaml/loader.py 47 24 49% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/yaml/nodes.py 29 7 76% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/yaml/parser.py 352 198 44% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/yaml/reader.py 122 34 72% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/yaml/representer.py 248 176 29% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/yaml/resolver.py 135 76 44% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/yaml/scanner.py 758 437 42% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/yaml/serializer.py 85 70 18% 1046s May 03 00:43:23 /usr/lib/python3/dist-packages/yaml/tokens.py 76 17 78% 1046s May 03 00:43:23 patroni/__init__.py 13 2 85% 1046s May 03 00:43:23 patroni/__main__.py 201 201 0% 1046s May 03 00:43:23 patroni/api.py 788 788 0% 1046s May 03 00:43:23 patroni/async_executor.py 96 69 28% 1046s May 03 00:43:23 patroni/collections.py 56 15 73% 1046s May 03 00:43:23 patroni/config.py 357 186 48% 1046s May 03 00:43:23 patroni/config_generator.py 212 212 0% 1046s May 03 00:43:23 patroni/ctl.py 936 661 29% 1046s May 03 00:43:23 patroni/daemon.py 76 76 0% 1046s May 03 00:43:23 patroni/dcs/__init__.py 710 358 50% 1046s May 03 00:43:23 patroni/dcs/consul.py 482 482 0% 1046s May 03 00:43:23 patroni/dcs/etcd3.py 679 679 0% 1046s May 03 00:43:23 patroni/dcs/etcd.py 603 235 61% 1046s May 03 00:43:23 patroni/dcs/exhibitor.py 62 62 0% 1046s May 03 00:43:23 patroni/dcs/kubernetes.py 943 943 0% 1046s May 03 00:43:23 patroni/dcs/raft.py 319 319 0% 1046s May 03 00:43:23 patroni/dcs/zookeeper.py 289 289 0% 1046s May 03 00:43:23 patroni/dynamic_loader.py 35 7 80% 1046s May 03 00:43:23 patroni/exceptions.py 16 1 94% 1046s May 03 00:43:23 patroni/file_perm.py 47 17 64% 1046s May 03 00:43:23 patroni/global_config.py 87 25 71% 1046s May 03 00:43:23 patroni/ha.py 1359 1359 0% 1046s May 03 00:43:23 patroni/log.py 235 183 22% 1046s May 03 00:43:23 patroni/postgresql/__init__.py 825 653 21% 1046s May 03 00:43:23 patroni/postgresql/available_parameters/__init__.py 24 6 75% 1046s May 03 00:43:23 patroni/postgresql/bootstrap.py 254 224 12% 1046s May 03 00:43:23 patroni/postgresql/callback_executor.py 55 34 38% 1046s May 03 00:43:23 patroni/postgresql/cancellable.py 104 84 19% 1046s May 03 00:43:23 patroni/postgresql/config.py 839 719 14% 1046s May 03 00:43:23 patroni/postgresql/connection.py 75 50 33% 1046s May 03 00:43:23 patroni/postgresql/misc.py 43 30 30% 1046s May 03 00:43:23 patroni/postgresql/mpp/__init__.py 89 21 76% 1046s May 03 00:43:23 patroni/postgresql/mpp/citus.py 366 366 0% 1046s May 03 00:43:23 patroni/postgresql/postmaster.py 170 139 18% 1046s May 03 00:43:23 patroni/postgresql/rewind.py 416 416 0% 1046s May 03 00:43:23 patroni/postgresql/slots.py 349 300 14% 1046s May 03 00:43:23 patroni/postgresql/sync.py 154 114 26% 1046s May 03 00:43:23 patroni/postgresql/validator.py 157 52 67% 1046s May 03 00:43:23 patroni/psycopg.py 46 32 30% 1046s May 03 00:43:23 patroni/quorum.py 182 182 0% 1046s May 03 00:43:23 patroni/raft_controller.py 22 22 0% 1046s May 03 00:43:23 patroni/request.py 58 6 90% 1046s May 03 00:43:23 patroni/scripts/__init__.py 0 0 100% 1046s May 03 00:43:23 patroni/scripts/aws.py 59 59 0% 1046s May 03 00:43:23 patroni/scripts/barman/__init__.py 0 0 100% 1046s May 03 00:43:23 patroni/scripts/barman/cli.py 50 50 0% 1046s May 03 00:43:23 patroni/scripts/barman/config_switch.py 50 50 0% 1046s May 03 00:43:23 patroni/scripts/barman/recover.py 36 36 0% 1046s May 03 00:43:23 patroni/scripts/barman/utils.py 93 93 0% 1046s May 03 00:43:23 patroni/scripts/wale_restore.py 207 207 0% 1046s May 03 00:43:23 patroni/tags.py 38 15 61% 1046s May 03 00:43:23 patroni/utils.py 371 265 29% 1046s May 03 00:43:23 patroni/validator.py 309 222 28% 1046s May 03 00:43:23 patroni/version.py 1 0 100% 1046s May 03 00:43:23 patroni/watchdog/__init__.py 2 2 0% 1046s May 03 00:43:23 patroni/watchdog/base.py 203 203 0% 1046s May 03 00:43:23 patroni/watchdog/linux.py 135 135 0% 1046s May 03 00:43:23 ------------------------------------------------------------------------------------------------------------- 1046s May 03 00:43:23 TOTAL 53380 34141 36% 1046s May 03 00:43:24 1 feature passed, 0 failed, 0 skipped 1046s May 03 00:43:24 7 scenarios passed, 0 failed, 0 skipped 1046s May 03 00:43:24 68 steps passed, 0 failed, 0 skipped, 0 undefined 1046s May 03 00:43:24 Took 1m13.741s 1046s ### End 17 acceptance-etcd features/basic_replication.feature ### 1046s + echo '### End 17 acceptance-etcd features/basic_replication.feature ###' 1046s + rm -f '/tmp/pgpass?' 1046s ++ id -u 1046s + '[' 0 -eq 0 ']' 1046s + '[' -x /etc/init.d/zookeeper ']' 1046s autopkgtest [00:43:24]: test acceptance-etcd-basic: -----------------------] 1046s acceptance-etcd-basic PASS 1046s autopkgtest [00:43:24]: test acceptance-etcd-basic: - - - - - - - - - - results - - - - - - - - - - 1047s autopkgtest [00:43:25]: test acceptance-etcd: preparing testbed 1047s Reading package lists... 1047s Building dependency tree... 1047s Reading state information... 1048s Starting pkgProblemResolver with broken count: 0 1048s Starting 2 pkgProblemResolver with broken count: 0 1048s Done 1048s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 1049s autopkgtest [00:43:27]: testbed environment configured for cross-architecture building 1049s autopkgtest [00:43:27]: test acceptance-etcd: debian/tests/acceptance etcd 1049s autopkgtest [00:43:27]: test acceptance-etcd: [----------------------- 1050s ○ etcd.service - etcd - highly-available key value store 1050s Loaded: loaded (/usr/lib/systemd/system/etcd.service; enabled; preset: enabled) 1050s Active: inactive (dead) since Sat 2025-05-03 00:41:59 UTC; 1min 28s ago 1050s Duration: 13.313s 1050s Invocation: cdf528c638394e72aa890fe32e90c00d 1050s Docs: https://etcd.io/docs 1050s man:etcd 1050s Process: 1771 ExecStart=/usr/bin/etcd $DAEMON_ARGS (code=killed, signal=TERM) 1050s Main PID: 1771 (code=killed, signal=TERM) 1050s Mem peak: 8.5M 1050s CPU: 77ms 1050s 1050s May 03 00:41:59 autopkgtest etcd[1771]: {"level":"info","ts":"2025-05-03T00:41:59.661270Z","caller":"embed/etcd.go:378","msg":"closing etcd server","name":"autopkgtest","data-dir":"/var/lib/etcd/default","advertise-peer-urls":["http://localhost:2380"],"advertise-client-urls":["http://localhost:2379"]} 1050s May 03 00:41:59 autopkgtest etcd[1771]: {"level":"warn","ts":"2025-05-03T00:41:59.661383Z","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"} 1050s May 03 00:41:59 autopkgtest etcd[1771]: {"level":"warn","ts":"2025-05-03T00:41:59.661528Z","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"} 1050s May 03 00:41:59 autopkgtest etcd[1771]: {"level":"info","ts":"2025-05-03T00:41:59.661552Z","caller":"etcdserver/server.go:1543","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"8e9e05c52164694d","current-leader-member-id":"8e9e05c52164694d"} 1050s May 03 00:41:59 autopkgtest systemd[1]: Stopping etcd.service - etcd - highly-available key value store... 1050s May 03 00:41:59 autopkgtest etcd[1771]: {"level":"info","ts":"2025-05-03T00:41:59.663650Z","caller":"embed/etcd.go:582","msg":"stopping serving peer traffic","address":"127.0.0.1:2380"} 1050s May 03 00:41:59 autopkgtest etcd[1771]: {"level":"info","ts":"2025-05-03T00:41:59.663742Z","caller":"embed/etcd.go:587","msg":"stopped serving peer traffic","address":"127.0.0.1:2380"} 1050s May 03 00:41:59 autopkgtest etcd[1771]: {"level":"info","ts":"2025-05-03T00:41:59.663753Z","caller":"embed/etcd.go:380","msg":"closed etcd server","name":"autopkgtest","data-dir":"/var/lib/etcd/default","advertise-peer-urls":["http://localhost:2380"],"advertise-client-urls":["http://localhost:2379"]} 1050s May 03 00:41:59 autopkgtest systemd[1]: etcd.service: Deactivated successfully. 1050s May 03 00:41:59 autopkgtest systemd[1]: Stopped etcd.service - etcd - highly-available key value store. 1050s ++ ls -1r /usr/lib/postgresql/ 1050s + for PG_VERSION in $(ls -1r /usr/lib/postgresql/) 1050s + '[' 17 == 10 -o 17 == 11 ']' 1050s + echo '### PostgreSQL 17 acceptance-etcd ###' 1050s + su postgres -p -c 'set -o pipefail; ETCD_UNSUPPORTED_ARCH=386 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' 1050s ### PostgreSQL 17 acceptance-etcd ### 1052s May 03 00:43:30 Feature: basic replication # features/basic_replication.feature:1 1052s May 03 00:43:30 We should check that the basic bootstrapping, replication and failover works. 1052s May 03 00:43:30 Scenario: check replication of a single table # features/basic_replication.feature:4 1052s May 03 00:43:30 Given I start postgres-0 # features/steps/basic_replication.py:20 1055s May 03 00:43:33 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1056s May 03 00:43:34 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 1056s May 03 00:43:34 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 1056s May 03 00:43:34 Then I receive a response code 200 # features/steps/patroni_api.py:100 1056s May 03 00:43:34 When I start postgres-1 # features/steps/basic_replication.py:20 1059s May 03 00:43:37 And I configure and start postgres-2 with a tag replicatefrom postgres-0 # features/steps/cascading_replication.py:7 1062s May 03 00:43:40 And "sync" key in DCS has leader=postgres-0 after 20 seconds # features/steps/cascading_replication.py:23 1062s May 03 00:43:40 And I add the table foo to postgres-0 # features/steps/basic_replication.py:66 1062s May 03 00:43:40 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 1063s May 03 00:43:41 Then table foo is present on postgres-2 after 20 seconds # features/steps/basic_replication.py:105 1063s May 03 00:43:41 1063s May 03 00:43:41 Scenario: check restart of sync replica # features/basic_replication.feature:17 1063s May 03 00:43:41 Given I shut down postgres-2 # features/steps/basic_replication.py:41 1064s May 03 00:43:42 Then "sync" key in DCS has sync_standby=postgres-1 after 5 seconds # features/steps/cascading_replication.py:23 1064s May 03 00:43:42 When I start postgres-2 # features/steps/basic_replication.py:20 1066s May 03 00:43:44 And I shut down postgres-1 # features/steps/basic_replication.py:41 1069s May 03 00:43:47 Then "sync" key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 1070s May 03 00:43:48 When I start postgres-1 # features/steps/basic_replication.py:20 1072s May 03 00:43:50 Then "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1073s May 03 00:43:51 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 1073s May 03 00:43:51 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:144 1073s May 03 00:43:51 1073s May 03 00:43:51 Scenario: check stuck sync replica # features/basic_replication.feature:28 1073s May 03 00:43:51 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 1073s May 03 00:43:51 Then I receive a response code 200 # features/steps/patroni_api.py:100 1073s May 03 00:43:51 And I create table on postgres-0 # features/steps/basic_replication.py:85 1073s May 03 00:43:51 And table mytest is present on postgres-1 after 2 seconds # features/steps/basic_replication.py:105 1074s May 03 00:43:52 And table mytest is present on postgres-2 after 2 seconds # features/steps/basic_replication.py:105 1074s May 03 00:43:52 When I pause wal replay on postgres-2 # features/steps/basic_replication.py:76 1074s May 03 00:43:52 And I load data on postgres-0 # features/steps/basic_replication.py:96 1075s May 03 00:43:53 Then "sync" key in DCS has sync_standby=postgres-1 after 15 seconds # features/steps/cascading_replication.py:23 1078s May 03 00:43:56 And I resume wal replay on postgres-2 # features/steps/basic_replication.py:76 1078s May 03 00:43:56 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 1078s May 03 00:43:56 And Status code on GET http://127.0.0.1:8010/async is 200 after 3 seconds # features/steps/patroni_api.py:144 1078s May 03 00:43:56 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 1078s May 03 00:43:56 Then I receive a response code 200 # features/steps/patroni_api.py:100 1078s May 03 00:43:56 And I drop table on postgres-0 # features/steps/basic_replication.py:85 1078s May 03 00:43:56 1078s May 03 00:43:56 Scenario: check multi sync replication # features/basic_replication.feature:44 1078s May 03 00:43:56 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 1078s May 03 00:43:56 Then I receive a response code 200 # features/steps/patroni_api.py:100 1078s May 03 00:43:56 Then "sync" key in DCS has sync_standby=postgres-1,postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 1082s May 03 00:44:00 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 1082s May 03 00:44:00 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 1082s May 03 00:44:00 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 1082s May 03 00:44:00 Then I receive a response code 200 # features/steps/patroni_api.py:100 1082s May 03 00:44:00 And I shut down postgres-1 # features/steps/basic_replication.py:41 1085s May 03 00:44:03 Then "sync" key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 1086s May 03 00:44:04 When I start postgres-1 # features/steps/basic_replication.py:20 1089s May 03 00:44:07 Then "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1089s May 03 00:44:07 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 1089s May 03 00:44:07 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:144 1089s May 03 00:44:07 1089s May 03 00:44:07 Scenario: check the basic failover in synchronous mode # features/basic_replication.feature:59 1089s May 03 00:44:07 Given I run patronictl.py pause batman # features/steps/patroni_api.py:88 1090s May 03 00:44:08 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1090s May 03 00:44:08 When I sleep for 2 seconds # features/steps/patroni_api.py:41 1092s May 03 00:44:10 And I shut down postgres-0 # features/steps/basic_replication.py:41 1093s May 03 00:44:11 And I run patronictl.py resume batman # features/steps/patroni_api.py:88 1094s May 03 00:44:12 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1094s May 03 00:44:12 And postgres-2 role is the primary after 24 seconds # features/steps/basic_replication.py:117 1113s May 03 00:44:31 And Response on GET http://127.0.0.1:8010/history contains recovery after 10 seconds # features/steps/patroni_api.py:158 1117s May 03 00:44:35 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 1117s May 03 00:44:35 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 1118s May 03 00:44:35 Then I receive a response code 200 # features/steps/patroni_api.py:100 1118s May 03 00:44:35 When I add the table bar to postgres-2 # features/steps/basic_replication.py:66 1118s May 03 00:44:35 Then table bar is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 1118s May 03 00:44:35 And Response on GET http://127.0.0.1:8010/config contains master_start_timeout after 10 seconds # features/steps/patroni_api.py:158 1118s May 03 00:44:36 1118s May 03 00:44:36 Scenario: check rejoin of the former primary with pg_rewind # features/basic_replication.feature:75 1118s May 03 00:44:36 Given I add the table splitbrain to postgres-0 # features/steps/basic_replication.py:66 1118s May 03 00:44:36 And I start postgres-0 # features/steps/basic_replication.py:20 1118s May 03 00:44:36 Then postgres-0 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 1124s May 03 00:44:42 When I add the table buz to postgres-2 # features/steps/basic_replication.py:66 1124s May 03 00:44:42 Then table buz is present on postgres-0 after 20 seconds # features/steps/basic_replication.py:105 1124s May 03 00:44:42 1124s May 03 00:44:42 @reject-duplicate-name 1124s May 03 00:44:42 Scenario: check graceful rejection when two nodes have the same name # features/basic_replication.feature:83 1124s May 03 00:44:42 Given I start duplicate postgres-0 on port 8011 # features/steps/basic_replication.py:25 1126s May 03 00:44:44 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 1130s May 03 00:44:48 1130s May 03 00:44:48 Feature: cascading replication # features/cascading_replication.feature:1 1130s May 03 00:44:48 We should check that patroni can do base backup and streaming from the replica 1130s May 03 00:44:48 Scenario: check a base backup and streaming replication from a replica # features/cascading_replication.feature:4 1130s May 03 00:44:48 Given I start postgres-0 # features/steps/basic_replication.py:20 1133s May 03 00:44:51 And postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1134s May 03 00:44:52 And I configure and start postgres-1 with a tag clonefrom true # features/steps/cascading_replication.py:7 1137s May 03 00:44:55 And replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 1138s May 03 00:44:56 And I create label with "postgres-0" in postgres-0 data directory # features/steps/cascading_replication.py:18 1138s May 03 00:44:56 And I create label with "postgres-1" in postgres-1 data directory # features/steps/cascading_replication.py:18 1138s May 03 00:44:56 And "members/postgres-1" key in DCS has state=running after 12 seconds # features/steps/cascading_replication.py:23 1138s May 03 00:44:56 And I configure and start postgres-2 with a tag replicatefrom postgres-1 # features/steps/cascading_replication.py:7 1141s May 03 00:44:59 Then replication works from postgres-0 to postgres-2 after 30 seconds # features/steps/basic_replication.py:124 1142s May 03 00:45:00 And there is a label with "postgres-1" in postgres-2 data directory # features/steps/cascading_replication.py:12 1147s May 03 00:45:05 1147s SKIP FEATURE citus: Citus extension isn't available 1147s SKIP Scenario check that worker cluster is registered in the coordinator: Citus extension isn't available 1147s SKIP Scenario coordinator failover updates pg_dist_node: Citus extension isn't available 1147s SKIP Scenario worker switchover doesn't break client queries on the coordinator: Citus extension isn't available 1147s SKIP Scenario worker primary restart doesn't break client queries on the coordinator: Citus extension isn't available 1147s 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 1147s May 03 00:45:05 Feature: citus # features/citus.feature:1 1147s May 03 00:45:05 We should check that coordinator discovers and registers workers and clients don't have errors when worker cluster switches over 1147s May 03 00:45:05 Scenario: check that worker cluster is registered in the coordinator # features/citus.feature:4 1147s May 03 00:45:05 Given I start postgres-0 in citus group 0 # None 1147s May 03 00:45:05 And I start postgres-2 in citus group 1 # None 1147s May 03 00:45:05 Then postgres-0 is a leader in a group 0 after 10 seconds # None 1147s May 03 00:45:05 And postgres-2 is a leader in a group 1 after 10 seconds # None 1147s May 03 00:45:05 When I start postgres-1 in citus group 0 # None 1147s May 03 00:45:05 And I start postgres-3 in citus group 1 # None 1147s May 03 00:45:05 Then replication works from postgres-0 to postgres-1 after 15 seconds # None 1147s May 03 00:45:05 Then replication works from postgres-2 to postgres-3 after 15 seconds # None 1147s May 03 00:45:05 And postgres-0 is registered in the postgres-0 as the primary in group 0 after 5 seconds # None 1147s May 03 00:45:05 And postgres-1 is registered in the postgres-0 as the secondary in group 0 after 5 seconds # None 1147s May 03 00:45:05 And postgres-2 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 1147s May 03 00:45:05 And postgres-3 is registered in the postgres-0 as the secondary in group 1 after 5 seconds # None 1147s May 03 00:45:05 1147s May 03 00:45:05 Scenario: coordinator failover updates pg_dist_node # features/citus.feature:18 1147s May 03 00:45:05 Given I run patronictl.py failover batman --group 0 --candidate postgres-1 --force # None 1147s May 03 00:45:05 Then postgres-1 role is the primary after 10 seconds # None 1147s May 03 00:45:05 And "members/postgres-0" key in a group 0 in DCS has state=running after 15 seconds # None 1147s May 03 00:45:05 And replication works from postgres-1 to postgres-0 after 15 seconds # None 1147s May 03 00:45:05 And postgres-1 is registered in the postgres-2 as the primary in group 0 after 5 seconds # None 1147s May 03 00:45:05 And postgres-0 is registered in the postgres-2 as the secondary in group 0 after 15 seconds # None 1147s May 03 00:45:05 And "sync" key in a group 0 in DCS has sync_standby=postgres-0 after 15 seconds # None 1147s May 03 00:45:05 When I run patronictl.py switchover batman --group 0 --candidate postgres-0 --force # None 1147s May 03 00:45:05 Then postgres-0 role is the primary after 10 seconds # None 1147s May 03 00:45:05 And replication works from postgres-0 to postgres-1 after 15 seconds # None 1147s May 03 00:45:05 And postgres-0 is registered in the postgres-2 as the primary in group 0 after 5 seconds # None 1147s May 03 00:45:05 And postgres-1 is registered in the postgres-2 as the secondary in group 0 after 15 seconds # None 1147s May 03 00:45:05 And "sync" key in a group 0 in DCS has sync_standby=postgres-1 after 15 seconds # None 1147s May 03 00:45:05 1147s May 03 00:45:05 Scenario: worker switchover doesn't break client queries on the coordinator # features/citus.feature:33 1147s May 03 00:45:05 Given I create a distributed table on postgres-0 # None 1147s May 03 00:45:05 And I start a thread inserting data on postgres-0 # None 1147s May 03 00:45:05 When I run patronictl.py switchover batman --group 1 --force # None 1147s May 03 00:45:05 Then I receive a response returncode 0 # None 1147s May 03 00:45:05 And postgres-3 role is the primary after 10 seconds # None 1147s May 03 00:45:05 And "members/postgres-2" key in a group 1 in DCS has state=running after 15 seconds # None 1147s May 03 00:45:05 And replication works from postgres-3 to postgres-2 after 15 seconds # None 1147s May 03 00:45:05 And postgres-3 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 1147s May 03 00:45:05 And postgres-2 is registered in the postgres-0 as the secondary in group 1 after 15 seconds # None 1147s May 03 00:45:05 And "sync" key in a group 1 in DCS has sync_standby=postgres-2 after 15 seconds # None 1147s May 03 00:45:05 And a thread is still alive # None 1147s May 03 00:45:05 When I run patronictl.py switchover batman --group 1 --force # None 1147s May 03 00:45:05 Then I receive a response returncode 0 # None 1147s May 03 00:45:05 And postgres-2 role is the primary after 10 seconds # None 1147s May 03 00:45:05 And replication works from postgres-2 to postgres-3 after 15 seconds # None 1147s May 03 00:45:05 And postgres-2 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 1147s May 03 00:45:05 And postgres-3 is registered in the postgres-0 as the secondary in group 1 after 15 seconds # None 1147s May 03 00:45:05 And "sync" key in a group 1 in DCS has sync_standby=postgres-3 after 15 seconds # None 1147s May 03 00:45:05 And a thread is still alive # None 1147s May 03 00:45:05 When I stop a thread # None 1147s May 03 00:45:05 Then a distributed table on postgres-0 has expected rows # None 1147s May 03 00:45:05 1147s May 03 00:45:05 Scenario: worker primary restart doesn't break client queries on the coordinator # features/citus.feature:56 1147s May 03 00:45:05 Given I cleanup a distributed table on postgres-0 # None 1147s May 03 00:45:05 And I start a thread inserting data on postgres-0 # None 1147s May 03 00:45:05 When I run patronictl.py restart batman postgres-2 --group 1 --force # None 1147s May 03 00:45:05 Then I receive a response returncode 0 # None 1147s May 03 00:45:05 And postgres-2 role is the primary after 10 seconds # None 1147s May 03 00:45:05 And replication works from postgres-2 to postgres-3 after 15 seconds # None 1147s May 03 00:45:05 And postgres-2 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 1147s May 03 00:45:05 And postgres-3 is registered in the postgres-0 as the secondary in group 1 after 15 seconds # None 1147s May 03 00:45:05 And a thread is still alive # None 1147s May 03 00:45:05 When I stop a thread # None 1147s May 03 00:45:05 Then a distributed table on postgres-0 has expected rows # None 1147s May 03 00:45:05 1147s May 03 00:45:05 Scenario: check that in-flight transaction is rolled back after timeout when other workers need to change pg_dist_node # features/citus.feature:69 1147s May 03 00:45:05 Given I start postgres-4 in citus group 2 # None 1147s May 03 00:45:05 Then postgres-4 is a leader in a group 2 after 10 seconds # None 1147s May 03 00:45:05 And "members/postgres-4" key in a group 2 in DCS has role=primary after 3 seconds # None 1147s May 03 00:45:05 When I run patronictl.py edit-config batman --group 2 -s ttl=20 --force # None 1147s May 03 00:45:05 Then I receive a response returncode 0 # None 1147s May 03 00:45:05 And I receive a response output "+ttl: 20" # None 1147s May 03 00:45:05 Then postgres-4 is registered in the postgres-2 as the primary in group 2 after 5 seconds # None 1147s May 03 00:45:05 When I shut down postgres-4 # None 1147s May 03 00:45:05 Then there is a transaction in progress on postgres-0 changing pg_dist_node after 5 seconds # None 1147s May 03 00:45:05 When I run patronictl.py restart batman postgres-2 --group 1 --force # None 1147s May 03 00:45:05 Then a transaction finishes in 20 seconds # None 1147s May 03 00:45:05 1147s May 03 00:45:05 Feature: custom bootstrap # features/custom_bootstrap.feature:1 1147s May 03 00:45:05 We should check that patroni can bootstrap a new cluster from a backup 1147s May 03 00:45:05 Scenario: clone existing cluster using pg_basebackup # features/custom_bootstrap.feature:4 1147s May 03 00:45:05 Given I start postgres-0 # features/steps/basic_replication.py:20 1150s May 03 00:45:08 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1150s May 03 00:45:08 When I add the table foo to postgres-0 # features/steps/basic_replication.py:66 1150s May 03 00:45:08 And I start postgres-1 in a cluster batman1 as a clone of postgres-0 # features/steps/custom_bootstrap.py:6 1153s May 03 00:45:11 Then postgres-1 is a leader of batman1 after 10 seconds # features/steps/custom_bootstrap.py:16 1154s May 03 00:45:12 Then table foo is present on postgres-1 after 10 seconds # features/steps/basic_replication.py:105 1154s May 03 00:45:12 1154s May 03 00:45:12 Scenario: make a backup and do a restore into a new cluster # features/custom_bootstrap.feature:12 1154s May 03 00:45:12 Given I add the table bar to postgres-1 # features/steps/basic_replication.py:66 1154s May 03 00:45:12 And I do a backup of postgres-1 # features/steps/custom_bootstrap.py:25 1155s May 03 00:45:13 When I start postgres-2 in a cluster batman2 from backup # features/steps/custom_bootstrap.py:11 1159s May 03 00:45:17 Then postgres-2 is a leader of batman2 after 30 seconds # features/steps/custom_bootstrap.py:16 1159s May 03 00:45:17 And table bar is present on postgres-2 after 10 seconds # features/steps/basic_replication.py:105 1165s May 03 00:45:23 1165s May 03 00:45:23 Feature: dcs failsafe mode # features/dcs_failsafe_mode.feature:1 1165s May 03 00:45:23 We should check the basic dcs failsafe mode functioning 1165s May 03 00:45:23 Scenario: check failsafe mode can be successfully enabled # features/dcs_failsafe_mode.feature:4 1165s May 03 00:45:23 Given I start postgres-0 # features/steps/basic_replication.py:20 1168s May 03 00:45:26 And postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1169s May 03 00:45:27 Then "config" key in DCS has ttl=30 after 10 seconds # features/steps/cascading_replication.py:23 1169s May 03 00:45:27 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 1169s May 03 00:45:27 Then I receive a response code 200 # features/steps/patroni_api.py:100 1169s May 03 00:45:27 And Response on GET http://127.0.0.1:8008/failsafe contains postgres-0 after 10 seconds # features/steps/patroni_api.py:158 1169s May 03 00:45:27 When I issue a GET request to http://127.0.0.1:8008/failsafe # features/steps/patroni_api.py:63 1169s May 03 00:45:27 Then I receive a response code 200 # features/steps/patroni_api.py:100 1169s May 03 00:45:27 And I receive a response postgres-0 http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:100 1169s May 03 00:45:27 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 1169s May 03 00:45:27 Then I receive a response code 200 # features/steps/patroni_api.py:100 1169s May 03 00:45:27 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 1169s May 03 00:45:27 Then I receive a response code 200 # features/steps/patroni_api.py:100 1169s May 03 00:45:27 1169s May 03 00:45:27 @dcs-failsafe 1169s May 03 00:45:27 Scenario: check one-node cluster is functioning while DCS is down # features/dcs_failsafe_mode.feature:20 1169s May 03 00:45:27 Given DCS is down # features/steps/dcs_failsafe_mode.py:4 1169s May 03 00:45:27 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 1176s May 03 00:45:34 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1176s May 03 00:45:34 1176s May 03 00:45:34 @dcs-failsafe 1176s May 03 00:45:34 Scenario: check new replica isn't promoted when leader is down and DCS is up # features/dcs_failsafe_mode.feature:26 1176s May 03 00:45:34 Given DCS is up # features/steps/dcs_failsafe_mode.py:9 1176s May 03 00:45:34 When I do a backup of postgres-0 # features/steps/custom_bootstrap.py:25 1176s May 03 00:45:34 And I shut down postgres-0 # features/steps/basic_replication.py:41 1178s May 03 00:45:36 When I start postgres-1 in a cluster batman from backup with no_leader # features/steps/dcs_failsafe_mode.py:14 1180s May 03 00:45:38 Then postgres-1 role is the replica after 12 seconds # features/steps/basic_replication.py:117 1180s May 03 00:45:38 1180s May 03 00:45:38 Scenario: check leader and replica are both in /failsafe key after leader is back # features/dcs_failsafe_mode.feature:33 1180s May 03 00:45:38 Given I start postgres-0 # features/steps/basic_replication.py:20 1182s May 03 00:45:40 And I start postgres-1 # features/steps/basic_replication.py:20 1182s May 03 00:45:40 Then "members/postgres-0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1183s May 03 00:45:41 And "members/postgres-1" key in DCS has state=running after 2 seconds # features/steps/cascading_replication.py:23 1183s May 03 00:45:41 And Response on GET http://127.0.0.1:8009/failsafe contains postgres-1 after 10 seconds # features/steps/patroni_api.py:158 1184s May 03 00:45:42 When I issue a GET request to http://127.0.0.1:8009/failsafe # features/steps/patroni_api.py:63 1184s May 03 00:45:42 Then I receive a response code 200 # features/steps/patroni_api.py:100 1184s May 03 00:45:42 And I receive a response postgres-0 http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:100 1184s May 03 00:45:42 And I receive a response postgres-1 http://127.0.0.1:8009/patroni # features/steps/patroni_api.py:100 1184s May 03 00:45:42 1184s May 03 00:45:42 @dcs-failsafe @slot-advance 1184s May 03 00:45:42 Scenario: check leader and replica are functioning while DCS is down # features/dcs_failsafe_mode.feature:46 1184s May 03 00:45:42 Given I get all changes from physical slot dcs_slot_1 on postgres-0 # features/steps/slots.py:77 1184s May 03 00:45:42 Then physical slot dcs_slot_1 is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 1186s May 03 00:45:44 And logical slot dcs_slot_0 is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 1189s May 03 00:45:47 And DCS is down # features/steps/dcs_failsafe_mode.py:4 1189s May 03 00:45:47 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 1196s May 03 00:45:54 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1196s May 03 00:45:54 And postgres-1 role is the replica after 2 seconds # features/steps/basic_replication.py:117 1196s May 03 00:45:54 And replication works from postgres-0 to postgres-1 after 10 seconds # features/steps/basic_replication.py:124 1196s May 03 00:45:54 When I get all changes from logical slot dcs_slot_0 on postgres-0 # features/steps/slots.py:72 1196s May 03 00:45:54 And I get all changes from physical slot dcs_slot_1 on postgres-0 # features/steps/slots.py:77 1196s May 03 00:45:54 Then logical slot dcs_slot_0 is in sync between postgres-0 and postgres-1 after 20 seconds # features/steps/slots.py:52 1199s May 03 00:45:57 And physical slot dcs_slot_1 is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 1199s May 03 00:45:57 1199s May 03 00:45:57 @dcs-failsafe 1199s May 03 00:45:57 Scenario: check primary is demoted when one replica is shut down and DCS is down # features/dcs_failsafe_mode.feature:61 1199s May 03 00:45:57 Given DCS is down # features/steps/dcs_failsafe_mode.py:4 1199s May 03 00:45:57 And I kill postgres-1 # features/steps/basic_replication.py:46 1200s May 03 00:45:58 And I kill postmaster on postgres-1 # features/steps/basic_replication.py:56 1200s May 03 00:45:58 waiting for server to shut down.... done 1200s May 03 00:45:58 server stopped 1200s May 03 00:45:58 Then postgres-0 role is the replica after 12 seconds # features/steps/basic_replication.py:117 1201s May 03 00:45:59 1201s May 03 00:45:59 @dcs-failsafe 1201s May 03 00:45:59 Scenario: check known replica is promoted when leader is down and DCS is up # features/dcs_failsafe_mode.feature:68 1201s May 03 00:45:59 Given I kill postgres-0 # features/steps/basic_replication.py:46 1202s May 03 00:46:00 And I shut down postmaster on postgres-0 # features/steps/basic_replication.py:51 1202s May 03 00:46:00 waiting for server to shut down.... done 1202s May 03 00:46:00 server stopped 1202s May 03 00:46:00 And DCS is up # features/steps/dcs_failsafe_mode.py:9 1202s May 03 00:46:00 When I start postgres-1 # features/steps/basic_replication.py:20 1204s May 03 00:46:02 Then "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1205s May 03 00:46:03 And postgres-1 role is the primary after 25 seconds # features/steps/basic_replication.py:117 1209s May 03 00:46:07 1209s May 03 00:46:07 @dcs-failsafe 1209s May 03 00:46:07 Scenario: scale to three-node cluster # features/dcs_failsafe_mode.feature:77 1209s May 03 00:46:07 Given I start postgres-0 # features/steps/basic_replication.py:20 1211s May 03 00:46:09 And I configure and start postgres-2 with a tag replicatefrom postgres-0 # features/steps/cascading_replication.py:7 1215s May 03 00:46:13 Then "members/postgres-2" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1215s May 03 00:46:13 And "members/postgres-0" key in DCS has state=running after 20 seconds # features/steps/cascading_replication.py:23 1215s May 03 00:46:13 And Response on GET http://127.0.0.1:8008/failsafe contains postgres-2 after 10 seconds # features/steps/patroni_api.py:158 1215s May 03 00:46:13 And replication works from postgres-1 to postgres-0 after 10 seconds # features/steps/basic_replication.py:124 1216s May 03 00:46:14 And replication works from postgres-1 to postgres-2 after 10 seconds # features/steps/basic_replication.py:124 1217s May 03 00:46:15 1217s May 03 00:46:15 @dcs-failsafe @slot-advance 1217s May 03 00:46:15 Scenario: make sure permanent slots exist on replicas # features/dcs_failsafe_mode.feature:88 1217s May 03 00:46:15 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 1217s May 03 00:46:15 Then logical slot dcs_slot_2 is in sync between postgres-1 and postgres-0 after 20 seconds # features/steps/slots.py:52 1223s May 03 00:46:21 And logical slot dcs_slot_2 is in sync between postgres-1 and postgres-2 after 20 seconds # features/steps/slots.py:52 1224s May 03 00:46:22 When I get all changes from physical slot dcs_slot_1 on postgres-1 # features/steps/slots.py:77 1224s May 03 00:46:22 Then physical slot dcs_slot_1 is in sync between postgres-1 and postgres-0 after 10 seconds # features/steps/slots.py:52 1225s May 03 00:46:23 And physical slot dcs_slot_1 is in sync between postgres-1 and postgres-2 after 10 seconds # features/steps/slots.py:52 1225s May 03 00:46:23 And physical slot postgres_0 is in sync between postgres-1 and postgres-2 after 10 seconds # features/steps/slots.py:52 1225s May 03 00:46:23 And physical slot postgres_2 is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 1225s May 03 00:46:23 1225s May 03 00:46:23 @dcs-failsafe 1225s May 03 00:46:23 Scenario: check three-node cluster is functioning while DCS is down # features/dcs_failsafe_mode.feature:99 1225s May 03 00:46:23 Given DCS is down # features/steps/dcs_failsafe_mode.py:4 1225s May 03 00:46:23 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 1233s May 03 00:46:30 Then postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1233s May 03 00:46:30 And postgres-0 role is the replica after 2 seconds # features/steps/basic_replication.py:117 1233s May 03 00:46:30 And postgres-2 role is the replica after 2 seconds # features/steps/basic_replication.py:117 1233s May 03 00:46:30 1233s May 03 00:46:30 @dcs-failsafe @slot-advance 1233s May 03 00:46:30 Scenario: check that permanent slots are in sync between nodes while DCS is down # features/dcs_failsafe_mode.feature:108 1233s May 03 00:46:30 Given replication works from postgres-1 to postgres-0 after 10 seconds # features/steps/basic_replication.py:124 1233s May 03 00:46:30 And replication works from postgres-1 to postgres-2 after 10 seconds # features/steps/basic_replication.py:124 1234s May 03 00:46:32 When I get all changes from logical slot dcs_slot_2 on postgres-1 # features/steps/slots.py:72 1234s May 03 00:46:32 And I get all changes from physical slot dcs_slot_1 on postgres-1 # features/steps/slots.py:77 1234s May 03 00:46:32 Then logical slot dcs_slot_2 is in sync between postgres-1 and postgres-0 after 20 seconds # features/steps/slots.py:52 1236s May 03 00:46:34 And logical slot dcs_slot_2 is in sync between postgres-1 and postgres-2 after 20 seconds # features/steps/slots.py:52 1236s May 03 00:46:34 And physical slot dcs_slot_1 is in sync between postgres-1 and postgres-0 after 10 seconds # features/steps/slots.py:52 1236s May 03 00:46:34 And physical slot dcs_slot_1 is in sync between postgres-1 and postgres-2 after 10 seconds # features/steps/slots.py:52 1236s May 03 00:46:34 And physical slot postgres_0 is in sync between postgres-1 and postgres-2 after 10 seconds # features/steps/slots.py:52 1236s May 03 00:46:34 And physical slot postgres_2 is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 1241s May 03 00:46:39 1241s May 03 00:46:39 Feature: ignored slots # features/ignored_slots.feature:1 1241s May 03 00:46:39 1241s May 03 00:46:39 Scenario: check ignored slots aren't removed on failover/switchover # features/ignored_slots.feature:2 1241s May 03 00:46:39 Given I start postgres-1 # features/steps/basic_replication.py:20 1244s May 03 00:46:42 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 1244s May 03 00:46:42 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 1244s May 03 00:46:42 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 1244s May 03 00:46:42 Then I receive a response code 200 # features/steps/patroni_api.py:100 1244s May 03 00:46:42 And Response on GET http://127.0.0.1:8009/config contains ignore_slots after 10 seconds # features/steps/patroni_api.py:158 1244s May 03 00:46:42 When I shut down postgres-1 # features/steps/basic_replication.py:41 1246s May 03 00:46:44 And I start postgres-1 # features/steps/basic_replication.py:20 1248s May 03 00:46:46 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 1249s May 03 00:46:47 And "members/postgres-1" key in DCS has role=primary after 10 seconds # features/steps/cascading_replication.py:23 1250s May 03 00:46:48 And postgres-1 role is the primary after 20 seconds # features/steps/basic_replication.py:117 1250s May 03 00:46:48 When I create a logical replication slot unmanaged_slot_0 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 1250s May 03 00:46:48 And I create a logical replication slot unmanaged_slot_1 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 1250s May 03 00:46:48 And I create a logical replication slot unmanaged_slot_2 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 1250s May 03 00:46:48 And I create a logical replication slot unmanaged_slot_3 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 1250s May 03 00:46:48 And I create a logical replication slot dummy_slot on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 1250s May 03 00:46:48 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 1250s May 03 00:46:48 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 1250s May 03 00:46:48 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 1250s May 03 00:46:48 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 1250s May 03 00:46:48 When I start postgres-0 # features/steps/basic_replication.py:20 1253s May 03 00:46:51 Then "members/postgres-0" key in DCS has role=replica after 10 seconds # features/steps/cascading_replication.py:23 1253s May 03 00:46:51 And postgres-0 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 1253s May 03 00:46:51 And replication works from postgres-1 to postgres-0 after 20 seconds # features/steps/basic_replication.py:124 1254s May 03 00:46:52 When I shut down postgres-1 # features/steps/basic_replication.py:41 1256s May 03 00:46:54 Then "members/postgres-0" key in DCS has role=primary after 10 seconds # features/steps/cascading_replication.py:23 1257s May 03 00:46:55 When I start postgres-1 # features/steps/basic_replication.py:20 1259s May 03 00:46:57 Then postgres-1 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 1259s May 03 00:46:57 And "members/postgres-1" key in DCS has role=replica after 10 seconds # features/steps/cascading_replication.py:23 1260s May 03 00:46:58 And I sleep for 2 seconds # features/steps/patroni_api.py:41 1262s May 03 00:47:00 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 1262s May 03 00:47:00 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 1262s May 03 00:47:00 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 1262s May 03 00:47:00 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 1262s May 03 00:47:00 And postgres-1 does not have a replication slot named dummy_slot # features/steps/slots.py:41 1262s May 03 00:47:00 When I shut down postgres-0 # features/steps/basic_replication.py:41 1264s May 03 00:47:02 Then "members/postgres-1" key in DCS has role=primary after 10 seconds # features/steps/cascading_replication.py:23 1265s May 03 00:47:03 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 1265s May 03 00:47:03 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 1265s May 03 00:47:03 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 1265s May 03 00:47:03 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 1267s May 03 00:47:05 1267s May 03 00:47:05 Feature: nostream node # features/nostream_node.feature:1 1267s May 03 00:47:05 1267s May 03 00:47:05 Scenario: check nostream node is recovering from archive # features/nostream_node.feature:3 1267s May 03 00:47:05 When I start postgres-0 # features/steps/basic_replication.py:20 1270s May 03 00:47:08 And I configure and start postgres-1 with a tag nostream true # features/steps/cascading_replication.py:7 1273s May 03 00:47:11 Then "members/postgres-1" key in DCS has replication_state=in archive recovery after 10 seconds # features/steps/cascading_replication.py:23 1273s May 03 00:47:11 And replication works from postgres-0 to postgres-1 after 30 seconds # features/steps/basic_replication.py:124 1279s May 03 00:47:16 1279s May 03 00:47:16 @slot-advance 1279s May 03 00:47:16 Scenario: check permanent logical replication slots are not copied # features/nostream_node.feature:10 1279s May 03 00:47:16 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 1279s May 03 00:47:17 Then I receive a response code 200 # features/steps/patroni_api.py:100 1279s May 03 00:47:17 When I run patronictl.py restart batman postgres-0 --force # features/steps/patroni_api.py:88 1280s May 03 00:47:18 Then postgres-0 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:20 1281s May 03 00:47:19 When I configure and start postgres-2 with a tag replicatefrom postgres-1 # features/steps/cascading_replication.py:7 1284s May 03 00:47:22 Then "members/postgres-2" key in DCS has replication_state=streaming after 10 seconds # features/steps/cascading_replication.py:23 1290s May 03 00:47:28 And postgres-1 does not have a replication slot named test_logical # features/steps/slots.py:41 1290s May 03 00:47:28 And postgres-2 does not have a replication slot named test_logical # features/steps/slots.py:41 1290s May 03 00:47:28 1290s May 03 00:47:28 @slot-advance 1290s May 03 00:47:28 Scenario: check that slots are written to the /status key # features/nostream_node.feature:21 1290s May 03 00:47:28 Given "status" key in DCS has postgres_0 in slots # features/steps/slots.py:118 1290s May 03 00:47:28 And "status" key in DCS has postgres_2 in slots # features/steps/slots.py:118 1290s May 03 00:47:28 And "status" key in DCS has test_logical in slots # features/steps/slots.py:118 1290s May 03 00:47:28 And "status" key in DCS has test_logical in slots # features/steps/slots.py:118 1290s May 03 00:47:28 And "status" key in DCS does not have postgres_1 in slots # features/steps/slots.py:124 1296s May 03 00:47:34 1296s May 03 00:47:34 Feature: patroni api # features/patroni_api.feature:1 1296s May 03 00:47:34 We should check that patroni correctly responds to valid and not-valid API requests. 1296s May 03 00:47:34 Scenario: check API requests on a stand-alone server # features/patroni_api.feature:4 1296s May 03 00:47:34 Given I start postgres-0 # features/steps/basic_replication.py:20 1299s May 03 00:47:37 And postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1299s May 03 00:47:37 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:63 1299s May 03 00:47:37 Then I receive a response code 200 # features/steps/patroni_api.py:100 1299s May 03 00:47:37 And I receive a response state running # features/steps/patroni_api.py:100 1299s May 03 00:47:37 And I receive a response role primary # features/steps/patroni_api.py:100 1299s May 03 00:47:37 When I issue a GET request to http://127.0.0.1:8008/standby_leader # features/steps/patroni_api.py:63 1299s May 03 00:47:37 Then I receive a response code 503 # features/steps/patroni_api.py:100 1299s May 03 00:47:37 When I issue a GET request to http://127.0.0.1:8008/health # features/steps/patroni_api.py:63 1300s May 03 00:47:37 Then I receive a response code 200 # features/steps/patroni_api.py:100 1300s May 03 00:47:37 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:63 1300s May 03 00:47:38 Then I receive a response code 503 # features/steps/patroni_api.py:100 1300s May 03 00:47:38 When I issue a POST request to http://127.0.0.1:8008/reinitialize with {"force": true} # features/steps/patroni_api.py:73 1300s May 03 00:47:38 Then I receive a response code 503 # features/steps/patroni_api.py:100 1300s May 03 00:47:38 And I receive a response text I am the leader, can not reinitialize # features/steps/patroni_api.py:100 1300s May 03 00:47:38 When I run patronictl.py switchover batman --primary postgres-0 --force # features/steps/patroni_api.py:88 1301s May 03 00:47:38 Then I receive a response returncode 1 # features/steps/patroni_api.py:100 1301s May 03 00:47:38 And I receive a response output "Error: No candidates found to switchover to" # features/steps/patroni_api.py:100 1301s May 03 00:47:38 When I issue a POST request to http://127.0.0.1:8008/switchover with {"leader": "postgres-0"} # features/steps/patroni_api.py:73 1301s May 03 00:47:39 Then I receive a response code 412 # features/steps/patroni_api.py:100 1301s May 03 00:47:39 And I receive a response text switchover is not possible: cluster does not have members except leader # features/steps/patroni_api.py:100 1301s May 03 00:47:39 When I issue an empty POST request to http://127.0.0.1:8008/failover # features/steps/patroni_api.py:68 1301s May 03 00:47:39 Then I receive a response code 400 # features/steps/patroni_api.py:100 1301s May 03 00:47:39 When I issue a POST request to http://127.0.0.1:8008/failover with {"foo": "bar"} # features/steps/patroni_api.py:73 1301s May 03 00:47:39 Then I receive a response code 400 # features/steps/patroni_api.py:100 1301s May 03 00:47:39 And I receive a response text "Failover could be performed only to a specific candidate" # features/steps/patroni_api.py:100 1301s May 03 00:47:39 1301s May 03 00:47:39 Scenario: check local configuration reload # features/patroni_api.feature:32 1301s May 03 00:47:39 Given I add tag new_tag new_value to postgres-0 config # features/steps/patroni_api.py:139 1301s May 03 00:47:39 And I issue an empty POST request to http://127.0.0.1:8008/reload # features/steps/patroni_api.py:68 1301s May 03 00:47:39 Then I receive a response code 202 # features/steps/patroni_api.py:100 1301s May 03 00:47:39 1301s May 03 00:47:39 Scenario: check dynamic configuration change via DCS # features/patroni_api.feature:37 1301s May 03 00:47:39 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 1301s May 03 00:47:39 Then I receive a response code 200 # features/steps/patroni_api.py:100 1301s May 03 00:47:39 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 11 seconds # features/steps/patroni_api.py:158 1303s May 03 00:47:41 When I issue a GET request to http://127.0.0.1:8008/config # features/steps/patroni_api.py:63 1303s May 03 00:47:41 Then I receive a response code 200 # features/steps/patroni_api.py:100 1303s May 03 00:47:41 And I receive a response ttl 20 # features/steps/patroni_api.py:100 1303s May 03 00:47:41 When I issue a GET request to http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:63 1303s May 03 00:47:41 Then I receive a response code 200 # features/steps/patroni_api.py:100 1303s May 03 00:47:41 And I receive a response tags {'new_tag': 'new_value'} # features/steps/patroni_api.py:100 1303s May 03 00:47:41 And I sleep for 4 seconds # features/steps/patroni_api.py:41 1307s May 03 00:47:45 1307s May 03 00:47:45 Scenario: check the scheduled restart # features/patroni_api.feature:49 1307s May 03 00:47:45 Given I run patronictl.py edit-config -p 'superuser_reserved_connections=6' --force batman # features/steps/patroni_api.py:88 1308s May 03 00:47:46 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1308s May 03 00:47:46 And I receive a response output "+ superuser_reserved_connections: 6" # features/steps/patroni_api.py:100 1308s May 03 00:47:46 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 5 seconds # features/steps/patroni_api.py:158 1308s May 03 00:47:46 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 1308s May 03 00:47:46 Then I receive a response code 202 # features/steps/patroni_api.py:100 1308s May 03 00:47:46 And I sleep for 8 seconds # features/steps/patroni_api.py:41 1316s May 03 00:47:54 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 10 seconds # features/steps/patroni_api.py:158 1316s May 03 00:47:54 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 1316s May 03 00:47:54 Then I receive a response code 202 # features/steps/patroni_api.py:100 1316s May 03 00:47:54 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 1323s May 03 00:48:01 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1324s May 03 00:48:02 1324s May 03 00:48:02 Scenario: check API requests for the primary-replica pair in the pause mode # features/patroni_api.feature:63 1324s May 03 00:48:02 Given I start postgres-1 # features/steps/basic_replication.py:20 1327s May 03 00:48:05 Then replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 1328s May 03 00:48:06 When I run patronictl.py pause batman # features/steps/patroni_api.py:88 1329s May 03 00:48:07 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1329s May 03 00:48:07 When I kill postmaster on postgres-1 # features/steps/basic_replication.py:56 1329s May 03 00:48:07 waiting for server to shut down.... done 1329s May 03 00:48:07 server stopped 1329s May 03 00:48:07 And I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 1329s May 03 00:48:07 Then I receive a response code 503 # features/steps/patroni_api.py:100 1329s May 03 00:48:07 And "members/postgres-1" key in DCS has state=stopped after 10 seconds # features/steps/cascading_replication.py:23 1330s May 03 00:48:08 When I run patronictl.py restart batman postgres-1 --force # features/steps/patroni_api.py:88 1332s May 03 00:48:10 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1332s May 03 00:48:10 Then replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 1333s May 03 00:48:11 And I sleep for 2 seconds # features/steps/patroni_api.py:41 1335s May 03 00:48:13 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 1335s May 03 00:48:13 Then I receive a response code 200 # features/steps/patroni_api.py:100 1335s May 03 00:48:13 And I receive a response state running # features/steps/patroni_api.py:100 1335s May 03 00:48:13 And I receive a response role replica # features/steps/patroni_api.py:100 1335s May 03 00:48:13 When I run patronictl.py reinit batman postgres-1 --force --wait # features/steps/patroni_api.py:88 1338s May 03 00:48:16 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1338s May 03 00:48:16 And I receive a response output "Success: reinitialize for member postgres-1" # features/steps/patroni_api.py:100 1338s May 03 00:48:16 And postgres-1 role is the secondary after 30 seconds # features/steps/basic_replication.py:117 1339s May 03 00:48:17 And replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 1340s May 03 00:48:18 When I run patronictl.py restart batman postgres-0 --force # features/steps/patroni_api.py:88 1342s May 03 00:48:20 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1342s May 03 00:48:20 And I receive a response output "Success: restart on member postgres-0" # features/steps/patroni_api.py:100 1342s May 03 00:48:20 And postgres-0 role is the primary after 5 seconds # features/steps/basic_replication.py:117 1343s May 03 00:48:21 1343s May 03 00:48:21 Scenario: check the switchover via the API in the pause mode # features/patroni_api.feature:90 1343s May 03 00:48:21 Given I issue a POST request to http://127.0.0.1:8008/switchover with {"leader": "postgres-0", "candidate": "postgres-1"} # features/steps/patroni_api.py:73 1345s May 03 00:48:23 Then I receive a response code 200 # features/steps/patroni_api.py:100 1345s May 03 00:48:23 And postgres-1 is a leader after 5 seconds # features/steps/patroni_api.py:31 1345s May 03 00:48:23 And postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1346s May 03 00:48:24 And postgres-0 role is the secondary after 10 seconds # features/steps/basic_replication.py:117 1350s May 03 00:48:28 And replication works from postgres-1 to postgres-0 after 20 seconds # features/steps/basic_replication.py:124 1350s May 03 00:48:28 And "members/postgres-0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1351s May 03 00:48:29 When I issue a GET request to http://127.0.0.1:8008/primary # features/steps/patroni_api.py:63 1351s May 03 00:48:29 Then I receive a response code 503 # features/steps/patroni_api.py:100 1351s May 03 00:48:29 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:63 1351s May 03 00:48:29 Then I receive a response code 200 # features/steps/patroni_api.py:100 1351s May 03 00:48:29 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 1351s May 03 00:48:29 Then I receive a response code 200 # features/steps/patroni_api.py:100 1351s May 03 00:48:29 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 1352s May 03 00:48:29 Then I receive a response code 503 # features/steps/patroni_api.py:100 1352s May 03 00:48:29 1352s May 03 00:48:29 Scenario: check the scheduled switchover # features/patroni_api.feature:107 1352s May 03 00:48:29 Given I issue a scheduled switchover from postgres-1 to postgres-0 in 10 seconds # features/steps/patroni_api.py:119 1352s May 03 00:48:30 Then I receive a response returncode 1 # features/steps/patroni_api.py:100 1352s May 03 00:48:30 And I receive a response output "Can't schedule switchover in the paused state" # features/steps/patroni_api.py:100 1352s May 03 00:48:30 When I run patronictl.py resume batman # features/steps/patroni_api.py:88 1353s May 03 00:48:31 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1353s May 03 00:48:31 Given I issue a scheduled switchover from postgres-1 to postgres-0 in 10 seconds # features/steps/patroni_api.py:119 1354s May 03 00:48:32 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1354s May 03 00:48:32 And postgres-0 is a leader after 20 seconds # features/steps/patroni_api.py:31 1365s May 03 00:48:43 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1366s May 03 00:48:44 And postgres-1 role is the secondary after 10 seconds # features/steps/basic_replication.py:117 1367s May 03 00:48:45 And replication works from postgres-0 to postgres-1 after 25 seconds # features/steps/basic_replication.py:124 1367s May 03 00:48:45 And "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1368s May 03 00:48:46 When I issue a GET request to http://127.0.0.1:8008/primary # features/steps/patroni_api.py:63 1368s May 03 00:48:46 Then I receive a response code 200 # features/steps/patroni_api.py:100 1368s May 03 00:48:46 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:63 1369s May 03 00:48:46 Then I receive a response code 503 # features/steps/patroni_api.py:100 1369s May 03 00:48:46 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 1369s May 03 00:48:47 Then I receive a response code 503 # features/steps/patroni_api.py:100 1369s May 03 00:48:47 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 1369s May 03 00:48:47 Then I receive a response code 200 # features/steps/patroni_api.py:100 1373s May 03 00:48:51 1373s May 03 00:48:51 Feature: permanent slots # features/permanent_slots.feature:1 1373s May 03 00:48:51 1373s May 03 00:48:51 Scenario: check that physical permanent slots are created # features/permanent_slots.feature:2 1373s May 03 00:48:51 Given I start postgres-0 # features/steps/basic_replication.py:20 1376s May 03 00:48:54 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1376s May 03 00:48:54 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 1376s May 03 00:48:54 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 1376s May 03 00:48:54 Then I receive a response code 200 # features/steps/patroni_api.py:100 1376s May 03 00:48:54 And Response on GET http://127.0.0.1:8008/config contains slots after 10 seconds # features/steps/patroni_api.py:158 1376s May 03 00:48:54 When I start postgres-1 # features/steps/basic_replication.py:20 1379s May 03 00:48:57 And I configure and start postgres-2 with a tag nofailover true # features/steps/cascading_replication.py:7 1382s May 03 00:49:00 And I configure and start postgres-3 with a tag replicatefrom postgres-2 # features/steps/cascading_replication.py:7 1385s May 03 00:49:03 Then postgres-0 has a physical replication slot named test_physical after 10 seconds # features/steps/slots.py:82 1385s May 03 00:49:03 And postgres-0 has a physical replication slot named postgres_1 after 10 seconds # features/steps/slots.py:82 1385s May 03 00:49:03 And postgres-0 has a physical replication slot named postgres_2 after 10 seconds # features/steps/slots.py:82 1385s May 03 00:49:03 And postgres-2 has a physical replication slot named postgres_3 after 10 seconds # features/steps/slots.py:82 1385s May 03 00:49:03 And postgres-2 does not have a replication slot named test_physical # features/steps/slots.py:41 1385s May 03 00:49:03 1385s May 03 00:49:03 @slot-advance 1385s May 03 00:49:03 Scenario: check that logical permanent slots are created # features/permanent_slots.feature:19 1385s May 03 00:49:03 Given I run patronictl.py restart batman postgres-0 --force # features/steps/patroni_api.py:88 1388s May 03 00:49:06 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 1388s May 03 00:49:06 Then postgres-0 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:20 1389s May 03 00:49:07 1389s May 03 00:49:07 @slot-advance 1389s May 03 00:49:07 Scenario: check that permanent slots are created on replicas # features/permanent_slots.feature:25 1389s May 03 00:49:07 Given postgres-1 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:20 1394s May 03 00:49:12 Then Logical slot test_logical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 1394s May 03 00:49:12 And Logical slot test_logical is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 1395s May 03 00:49:13 And postgres-1 has a physical replication slot named test_physical after 2 seconds # features/steps/slots.py:82 1395s May 03 00:49:13 And postgres-2 does not have a replication slot named test_logical # features/steps/slots.py:41 1395s May 03 00:49:13 And postgres-3 has a physical replication slot named test_physical after 2 seconds # features/steps/slots.py:82 1395s May 03 00:49:13 1395s May 03 00:49:13 @slot-advance 1395s May 03 00:49:13 Scenario: check permanent physical slots that match with member names # features/permanent_slots.feature:34 1395s May 03 00:49:13 Given postgres-0 has a physical replication slot named postgres_3 after 2 seconds # features/steps/slots.py:82 1395s May 03 00:49:13 And postgres-1 has a physical replication slot named postgres_0 after 2 seconds # features/steps/slots.py:82 1395s May 03 00:49:13 And postgres-1 has a physical replication slot named postgres_2 after 2 seconds # features/steps/slots.py:82 1395s May 03 00:49:13 And postgres-1 has a physical replication slot named postgres_3 after 2 seconds # features/steps/slots.py:82 1395s May 03 00:49:13 And postgres-2 does not have a replication slot named postgres_0 # features/steps/slots.py:41 1395s May 03 00:49:13 And postgres-2 does not have a replication slot named postgres_1 # features/steps/slots.py:41 1395s May 03 00:49:13 And postgres-2 has a physical replication slot named postgres_3 after 2 seconds # features/steps/slots.py:82 1395s May 03 00:49:13 And postgres-3 has a physical replication slot named postgres_0 after 2 seconds # features/steps/slots.py:82 1395s May 03 00:49:13 And postgres-3 has a physical replication slot named postgres_1 after 2 seconds # features/steps/slots.py:82 1395s May 03 00:49:13 And postgres-3 has a physical replication slot named postgres_2 after 2 seconds # features/steps/slots.py:82 1395s May 03 00:49:13 1395s May 03 00:49:13 @slot-advance 1395s May 03 00:49:13 Scenario: check that permanent slots are advanced on replicas # features/permanent_slots.feature:47 1395s May 03 00:49:13 Given I add the table replicate_me to postgres-0 # features/steps/basic_replication.py:66 1395s May 03 00:49:13 When I get all changes from logical slot test_logical on postgres-0 # features/steps/slots.py:72 1395s May 03 00:49:13 And I get all changes from physical slot test_physical on postgres-0 # features/steps/slots.py:77 1395s May 03 00:49:13 Then Logical slot test_logical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 1396s May 03 00:49:14 And Physical slot test_physical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 1396s May 03 00:49:14 And Logical slot test_logical is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 1396s May 03 00:49:14 And Physical slot test_physical is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 1396s May 03 00:49:14 And Physical slot postgres_1 is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 1396s May 03 00:49:14 And Physical slot postgres_3 is in sync between postgres-2 and postgres-0 after 20 seconds # features/steps/slots.py:52 1398s May 03 00:49:16 And Physical slot postgres_3 is in sync between postgres-2 and postgres-1 after 10 seconds # features/steps/slots.py:52 1398s May 03 00:49:16 1398s May 03 00:49:16 @slot-advance 1398s May 03 00:49:16 Scenario: check that permanent slots and member slots are written to the /status key # features/permanent_slots.feature:60 1398s May 03 00:49:16 Given "status" key in DCS has test_physical in slots # features/steps/slots.py:118 1398s May 03 00:49:16 And "status" key in DCS has postgres_0 in slots # features/steps/slots.py:118 1398s May 03 00:49:16 And "status" key in DCS has postgres_1 in slots # features/steps/slots.py:118 1398s May 03 00:49:16 And "status" key in DCS has postgres_2 in slots # features/steps/slots.py:118 1398s May 03 00:49:16 And "status" key in DCS has postgres_3 in slots # features/steps/slots.py:118 1398s May 03 00:49:16 1398s May 03 00:49:16 @slot-advance 1398s May 03 00:49:16 Scenario: check that only non-permanent member slots are written to the retain_slots in /status key # features/permanent_slots.feature:68 1398s May 03 00:49:16 Given "status" key in DCS has postgres_0 in retain_slots # features/steps/slots.py:118 1398s May 03 00:49:16 And "status" key in DCS has postgres_1 in retain_slots # features/steps/slots.py:118 1398s May 03 00:49:16 And "status" key in DCS has postgres_2 in retain_slots # features/steps/slots.py:118 1398s May 03 00:49:16 And "status" key in DCS does not have postgres_3 in retain_slots # features/steps/slots.py:124 1398s May 03 00:49:16 1398s May 03 00:49:16 Scenario: check permanent physical replication slot after failover # features/permanent_slots.feature:74 1398s May 03 00:49:16 Given I shut down postgres-3 # features/steps/basic_replication.py:41 1399s May 03 00:49:17 And I shut down postgres-2 # features/steps/basic_replication.py:41 1400s May 03 00:49:18 And I shut down postgres-0 # features/steps/basic_replication.py:41 1402s May 03 00:49:20 Then postgres-1 has a physical replication slot named test_physical after 10 seconds # features/steps/slots.py:82 1402s May 03 00:49:20 And postgres-1 has a physical replication slot named postgres_0 after 10 seconds # features/steps/slots.py:82 1402s May 03 00:49:20 And postgres-1 has a physical replication slot named postgres_3 after 10 seconds # features/steps/slots.py:82 1402s May 03 00:49:20 When I start postgres-0 # features/steps/basic_replication.py:20 1404s May 03 00:49:22 Then postgres-0 role is the replica after 20 seconds # features/steps/basic_replication.py:117 1404s May 03 00:49:22 And physical replication slot named postgres_1 on postgres-0 has no xmin value after 10 seconds # features/steps/slots.py:98 1405s May 03 00:49:23 And postgres-0 has a physical replication slot named postgres_2 after 10 seconds # features/steps/slots.py:82 1405s May 03 00:49:23 And postgres-0 has a physical replication slot named postgres_3 after 10 seconds # features/steps/slots.py:82 1408s May 03 00:49:26 1408s May 03 00:49:26 Feature: priority replication # features/priority_failover.feature:1 1408s May 03 00:49:26 We should check that we can give nodes priority during failover 1408s May 03 00:49:26 Scenario: check failover priority 0 prevents leaderships # features/priority_failover.feature:4 1408s May 03 00:49:26 Given I configure and start postgres-0 with a tag failover_priority 1 # features/steps/cascading_replication.py:7 1411s May 03 00:49:29 And I configure and start postgres-1 with a tag failover_priority 0 # features/steps/cascading_replication.py:7 1414s May 03 00:49:32 Then replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 1415s May 03 00:49:33 When I shut down postgres-0 # features/steps/basic_replication.py:41 1417s May 03 00:49:35 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 1419s May 03 00:49:37 Then postgres-1 role is the secondary after 10 seconds # features/steps/basic_replication.py:117 1419s May 03 00:49:37 When I start postgres-0 # features/steps/basic_replication.py:20 1421s May 03 00:49:39 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1422s May 03 00:49:40 1422s May 03 00:49:40 Scenario: check higher failover priority is respected # features/priority_failover.feature:14 1422s May 03 00:49:40 Given I configure and start postgres-2 with a tag failover_priority 1 # features/steps/cascading_replication.py:7 1425s May 03 00:49:43 And I configure and start postgres-3 with a tag failover_priority 2 # features/steps/cascading_replication.py:7 1428s May 03 00:49:46 Then replication works from postgres-0 to postgres-2 after 20 seconds # features/steps/basic_replication.py:124 1429s May 03 00:49:47 And replication works from postgres-0 to postgres-3 after 20 seconds # features/steps/basic_replication.py:124 1430s May 03 00:49:48 When I shut down postgres-0 # features/steps/basic_replication.py:41 1432s May 03 00:49:50 Then postgres-3 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1432s May 03 00:49:50 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 1433s May 03 00:49:50 1433s May 03 00:49:50 Scenario: check conflicting configuration handling # features/priority_failover.feature:23 1433s May 03 00:49:50 When I set nofailover tag in postgres-2 config # features/steps/patroni_api.py:133 1433s May 03 00:49:50 And I issue an empty POST request to http://127.0.0.1:8010/reload # features/steps/patroni_api.py:68 1433s May 03 00:49:51 Then I receive a response code 202 # features/steps/patroni_api.py:100 1433s May 03 00:49:51 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 1435s May 03 00:49:53 And "members/postgres-2" key in DCS has tags={'failover_priority': '1', 'nofailover': True} after 10 seconds # features/steps/cascading_replication.py:23 1436s May 03 00:49:54 When I issue a POST request to http://127.0.0.1:8010/failover with {"candidate": "postgres-2"} # features/steps/patroni_api.py:73 1436s May 03 00:49:54 Then I receive a response code 412 # features/steps/patroni_api.py:100 1436s May 03 00:49:54 And I receive a response text "failover is not possible: no good candidates have been found" # features/steps/patroni_api.py:100 1436s May 03 00:49:54 When I reset nofailover tag in postgres-1 config # features/steps/patroni_api.py:133 1436s May 03 00:49:54 And I issue an empty POST request to http://127.0.0.1:8009/reload # features/steps/patroni_api.py:68 1436s May 03 00:49:54 Then I receive a response code 202 # features/steps/patroni_api.py:100 1436s May 03 00:49:54 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 1438s May 03 00:49:56 And "members/postgres-1" key in DCS has tags={'failover_priority': '0', 'nofailover': False} after 10 seconds # features/steps/cascading_replication.py:23 1439s May 03 00:49:57 And I issue a POST request to http://127.0.0.1:8009/failover with {"candidate": "postgres-1"} # features/steps/patroni_api.py:73 1441s May 03 00:49:59 Then I receive a response code 200 # features/steps/patroni_api.py:100 1441s May 03 00:49:59 And postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1445s May 03 00:50:03 1445s May 03 00:50:03 Feature: quorum commit # features/quorum_commit.feature:1 1445s May 03 00:50:03 Check basic workfrlows when quorum commit is enabled 1445s May 03 00:50:03 Scenario: check enable quorum commit and that the only leader promotes after restart # features/quorum_commit.feature:4 1445s May 03 00:50:03 Given I start postgres-0 # features/steps/basic_replication.py:20 1448s May 03 00:50:06 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1449s May 03 00:50:07 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 1449s May 03 00:50:07 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 1449s May 03 00:50:07 Then I receive a response code 200 # features/steps/patroni_api.py:100 1449s May 03 00:50:07 And sync key in DCS has leader=postgres-0 after 20 seconds # features/steps/quorum_commit.py:8 1449s May 03 00:50:07 And sync key in DCS has quorum=0 after 2 seconds # features/steps/quorum_commit.py:8 1449s May 03 00:50:07 And synchronous_standby_names on postgres-0 is set to '_empty_str_' after 2 seconds # features/steps/quorum_commit.py:39 1449s May 03 00:50:07 When I shut down postgres-0 # features/steps/basic_replication.py:41 1451s May 03 00:50:09 And sync key in DCS has leader=postgres-0 after 2 seconds # features/steps/quorum_commit.py:8 1451s May 03 00:50:09 When I start postgres-0 # features/steps/basic_replication.py:20 1453s May 03 00:50:11 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1454s May 03 00:50:12 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 1454s May 03 00:50:12 Then synchronous_standby_names on postgres-0 is set to 'ANY 1 (*)' after 10 seconds # features/steps/quorum_commit.py:39 1454s May 03 00:50:12 1454s May 03 00:50:12 Scenario: check failover with one quorum standby # features/quorum_commit.feature:20 1454s May 03 00:50:12 Given I start postgres-1 # features/steps/basic_replication.py:20 1457s May 03 00:50:15 Then sync key in DCS has sync_standby=postgres-1 after 10 seconds # features/steps/quorum_commit.py:8 1458s May 03 00:50:16 And synchronous_standby_names on postgres-0 is set to 'ANY 1 ("postgres-1")' after 2 seconds # features/steps/quorum_commit.py:39 1458s May 03 00:50:16 When I shut down postgres-0 # features/steps/basic_replication.py:41 1460s May 03 00:50:18 Then postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1461s May 03 00:50:19 And sync key in DCS has quorum=0 after 10 seconds # features/steps/quorum_commit.py:8 1461s May 03 00:50:19 Then synchronous_standby_names on postgres-1 is set to 'ANY 1 (*)' after 10 seconds # features/steps/quorum_commit.py:39 1464s May 03 00:50:22 When I start postgres-0 # features/steps/basic_replication.py:20 1466s May 03 00:50:24 Then sync key in DCS has leader=postgres-1 after 10 seconds # features/steps/quorum_commit.py:8 1466s May 03 00:50:24 Then sync key in DCS has sync_standby=postgres-0 after 10 seconds # features/steps/quorum_commit.py:8 1468s May 03 00:50:26 And synchronous_standby_names on postgres-1 is set to 'ANY 1 ("postgres-0")' after 2 seconds # features/steps/quorum_commit.py:39 1468s May 03 00:50:26 1468s May 03 00:50:26 Scenario: check behavior with three nodes and different replication factor # features/quorum_commit.feature:33 1468s May 03 00:50:26 Given I start postgres-2 # features/steps/basic_replication.py:20 1471s May 03 00:50:29 Then sync key in DCS has sync_standby=postgres-0,postgres-2 after 10 seconds # features/steps/quorum_commit.py:8 1472s May 03 00:50:30 And sync key in DCS has quorum=1 after 2 seconds # features/steps/quorum_commit.py:8 1472s May 03 00:50:30 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 1472s May 03 00:50:30 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 1472s May 03 00:50:30 Then sync key in DCS has quorum=0 after 10 seconds # features/steps/quorum_commit.py:8 1473s May 03 00:50:31 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 1473s May 03 00:50:31 1473s May 03 00:50:31 Scenario: switch from quorum replication to good old multisync and back # features/quorum_commit.feature:42 1473s May 03 00:50:31 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 1473s May 03 00:50:31 And I shut down postgres-0 # features/steps/basic_replication.py:41 1474s May 03 00:50:32 Then synchronous_standby_names on postgres-1 is set to '"postgres-2"' after 10 seconds # features/steps/quorum_commit.py:39 1476s May 03 00:50:34 And sync key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/quorum_commit.py:8 1478s May 03 00:50:36 Then sync key in DCS has quorum=0 after 2 seconds # features/steps/quorum_commit.py:8 1478s May 03 00:50:36 When I issue a PATCH request to http://127.0.0.1:8009/config with {"synchronous_mode": "quorum"} # features/steps/patroni_api.py:73 1479s May 03 00:50:36 And I start postgres-0 # features/steps/basic_replication.py:20 1481s May 03 00:50:38 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 1482s May 03 00:50:39 And sync key in DCS has sync_standby=postgres-0,postgres-2 after 10 seconds # features/steps/quorum_commit.py:8 1482s May 03 00:50:39 Then sync key in DCS has quorum=1 after 2 seconds # features/steps/quorum_commit.py:8 1482s May 03 00:50:39 1482s May 03 00:50:39 Scenario: REST API and patronictl # features/quorum_commit.feature:54 1482s May 03 00:50:39 Given I run patronictl.py list batman # features/steps/patroni_api.py:88 1482s May 03 00:50:40 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1482s May 03 00:50:40 And I receive a response output "Quorum Standby" # features/steps/patroni_api.py:100 1482s May 03 00:50:40 And Status code on GET http://127.0.0.1:8008/quorum is 200 after 3 seconds # features/steps/patroni_api.py:144 1483s May 03 00:50:40 And Status code on GET http://127.0.0.1:8010/quorum is 200 after 3 seconds # features/steps/patroni_api.py:144 1483s May 03 00:50:41 1483s May 03 00:50:41 Scenario: nosync node is removed from voters and synchronous_standby_names # features/quorum_commit.feature:61 1483s May 03 00:50:41 Given I add tag nosync true to postgres-2 config # features/steps/patroni_api.py:139 1483s May 03 00:50:41 When I issue an empty POST request to http://127.0.0.1:8010/reload # features/steps/patroni_api.py:68 1483s May 03 00:50:41 Then I receive a response code 202 # features/steps/patroni_api.py:100 1483s May 03 00:50:41 And sync key in DCS has quorum=0 after 10 seconds # features/steps/quorum_commit.py:8 1485s May 03 00:50:43 And sync key in DCS has sync_standby=postgres-0 after 10 seconds # features/steps/quorum_commit.py:8 1485s May 03 00:50:43 And synchronous_standby_names on postgres-1 is set to 'ANY 1 ("postgres-0")' after 2 seconds # features/steps/quorum_commit.py:39 1485s May 03 00:50:43 And Status code on GET http://127.0.0.1:8010/quorum is 503 after 10 seconds # features/steps/patroni_api.py:144 1492s May 03 00:50:50 1492s May 03 00:50:50 Feature: recovery # features/recovery.feature:1 1492s May 03 00:50:50 We want to check that crashed postgres is started back 1492s May 03 00:50:50 Scenario: check that timeline is not incremented when primary is started after crash # features/recovery.feature:4 1492s May 03 00:50:50 Given I start postgres-0 # features/steps/basic_replication.py:20 1495s May 03 00:50:53 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1495s May 03 00:50:53 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 1495s May 03 00:50:53 When I start postgres-1 # features/steps/basic_replication.py:20 1498s May 03 00:50:56 And I add the table foo to postgres-0 # features/steps/basic_replication.py:66 1498s May 03 00:50:56 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 1499s May 03 00:50:57 When I kill postmaster on postgres-0 # features/steps/basic_replication.py:56 1499s May 03 00:50:57 waiting for server to shut down.... done 1499s May 03 00:50:57 server stopped 1499s May 03 00:50:57 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1501s May 03 00:50:59 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:63 1501s May 03 00:50:59 Then I receive a response code 200 # features/steps/patroni_api.py:100 1501s May 03 00:50:59 And I receive a response role primary # features/steps/patroni_api.py:100 1501s May 03 00:50:59 And I receive a response timeline 1 # features/steps/patroni_api.py:100 1501s May 03 00:50:59 And "members/postgres-0" key in DCS has state=running after 12 seconds # features/steps/cascading_replication.py:23 1502s May 03 00:51:00 And replication works from postgres-0 to postgres-1 after 15 seconds # features/steps/basic_replication.py:124 1505s May 03 00:51:03 1505s May 03 00:51:03 Scenario: check immediate failover when master_start_timeout=0 # features/recovery.feature:20 1505s May 03 00:51: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 1505s May 03 00:51:03 Then I receive a response code 200 # features/steps/patroni_api.py:100 1505s May 03 00:51: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 1505s May 03 00:51:03 When I kill postmaster on postgres-0 # features/steps/basic_replication.py:56 1505s May 03 00:51:03 waiting for server to shut down.... done 1505s May 03 00:51:03 server stopped 1505s May 03 00:51:03 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 1507s May 03 00:51:05 And postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1508s May 03 00:51:06 1508s May 03 00:51:06 Scenario: check crashed primary demotes after failed attempt to start # features/recovery.feature:28 1508s May 03 00:51: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 1508s May 03 00:51:06 Then I receive a response code 200 # features/steps/patroni_api.py:100 1508s May 03 00:51:06 And postgres-0 role is the replica after 10 seconds # features/steps/basic_replication.py:117 1510s May 03 00:51:08 When I ensure postgres-1 fails to start after a failure # features/steps/recovery.py:6 1510s May 03 00:51:08 When I kill postmaster on postgres-1 # features/steps/basic_replication.py:56 1511s May 03 00:51:09 waiting for server to shut down.... done 1511s May 03 00:51:09 server stopped 1511s May 03 00:51:09 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1514s May 03 00:51:12 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 1517s May 03 00:51:15 1517s May 03 00:51:15 Feature: standby cluster # features/standby_cluster.feature:1 1517s May 03 00:51:15 1517s May 03 00:51:15 Scenario: prepare the cluster with logical slots # features/standby_cluster.feature:2 1517s May 03 00:51:15 Given I start postgres-1 # features/steps/basic_replication.py:20 1520s May 03 00:51:18 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 1520s May 03 00:51:18 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 1520s May 03 00:51:18 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 1520s May 03 00:51:18 Then I receive a response code 200 # features/steps/patroni_api.py:100 1520s May 03 00:51:18 And Response on GET http://127.0.0.1:8009/config contains slots after 10 seconds # features/steps/patroni_api.py:158 1520s May 03 00:51:18 And I sleep for 3 seconds # features/steps/patroni_api.py:41 1523s May 03 00:51:21 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 1523s May 03 00:51:21 Then I receive a response code 200 # features/steps/patroni_api.py:100 1523s May 03 00:51:21 And I do a backup of postgres-1 # features/steps/custom_bootstrap.py:25 1523s May 03 00:51:21 When I start postgres-0 # features/steps/basic_replication.py:20 1526s May 03 00:51:24 Then "members/postgres-0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1526s May 03 00:51:24 And replication works from postgres-1 to postgres-0 after 15 seconds # features/steps/basic_replication.py:124 1527s May 03 00:51:25 When I issue a GET request to http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:63 1527s May 03 00:51:25 Then I receive a response code 200 # features/steps/patroni_api.py:100 1527s May 03 00:51:25 And I receive a response replication_state streaming # features/steps/patroni_api.py:100 1527s May 03 00:51:25 And "members/postgres-0" key in DCS has replication_state=streaming after 10 seconds # features/steps/cascading_replication.py:23 1527s May 03 00:51:25 1527s May 03 00:51:25 @slot-advance 1527s May 03 00:51:25 Scenario: check permanent logical slots are synced to the replica # features/standby_cluster.feature:22 1527s May 03 00:51:25 Given I run patronictl.py restart batman postgres-1 --force # features/steps/patroni_api.py:88 1530s May 03 00:51:28 Then Logical slot test_logical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 1535s May 03 00:51:33 1535s May 03 00:51:33 Scenario: Detach exiting node from the cluster # features/standby_cluster.feature:26 1535s May 03 00:51:33 When I shut down postgres-1 # features/steps/basic_replication.py:41 1537s May 03 00:51:35 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1537s May 03 00:51:35 And "members/postgres-0" key in DCS has role=primary after 5 seconds # features/steps/cascading_replication.py:23 1538s May 03 00:51:36 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:63 1538s May 03 00:51:36 Then I receive a response code 200 # features/steps/patroni_api.py:100 1538s May 03 00:51:36 1538s May 03 00:51:36 Scenario: check replication of a single table in a standby cluster # features/standby_cluster.feature:33 1538s May 03 00:51:36 Given I start postgres-1 in a standby cluster batman1 as a clone of postgres-0 # features/steps/standby_cluster.py:23 1540s May 03 00:51:38 Then postgres-1 is a leader of batman1 after 10 seconds # features/steps/custom_bootstrap.py:16 1541s May 03 00:51:39 When I add the table foo to postgres-0 # features/steps/basic_replication.py:66 1541s May 03 00:51:39 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 1541s May 03 00:51:39 When I issue a GET request to http://127.0.0.1:8009/patroni # features/steps/patroni_api.py:63 1541s May 03 00:51:39 Then I receive a response code 200 # features/steps/patroni_api.py:100 1541s May 03 00:51:39 And I receive a response replication_state streaming # features/steps/patroni_api.py:100 1541s May 03 00:51:39 And I sleep for 3 seconds # features/steps/patroni_api.py:41 1544s May 03 00:51:42 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 1544s May 03 00:51:42 Then I receive a response code 503 # features/steps/patroni_api.py:100 1544s May 03 00:51:42 When I issue a GET request to http://127.0.0.1:8009/standby_leader # features/steps/patroni_api.py:63 1544s May 03 00:51:42 Then I receive a response code 200 # features/steps/patroni_api.py:100 1544s May 03 00:51:42 And I receive a response role standby_leader # features/steps/patroni_api.py:100 1544s May 03 00:51:42 And there is a postgres-1_cb.log with "on_role_change standby_leader batman1" in postgres-1 data directory # features/steps/cascading_replication.py:12 1544s May 03 00:51:42 When I start postgres-2 in a cluster batman1 # features/steps/standby_cluster.py:12 1547s May 03 00:51:45 Then postgres-2 role is the replica after 24 seconds # features/steps/basic_replication.py:117 1547s May 03 00:51:45 And postgres-2 is replicating from postgres-1 after 10 seconds # features/steps/standby_cluster.py:52 1547s May 03 00:51:45 And table foo is present on postgres-2 after 20 seconds # features/steps/basic_replication.py:105 1547s May 03 00:51:45 When I issue a GET request to http://127.0.0.1:8010/patroni # features/steps/patroni_api.py:63 1547s May 03 00:51:45 Then I receive a response code 200 # features/steps/patroni_api.py:100 1547s May 03 00:51:45 And I receive a response replication_state streaming # features/steps/patroni_api.py:100 1547s May 03 00:51:45 And postgres-1 does not have a replication slot named test_logical # features/steps/slots.py:41 1547s May 03 00:51:45 1547s May 03 00:51:45 Scenario: check switchover # features/standby_cluster.feature:57 1547s May 03 00:51:45 Given I run patronictl.py switchover batman1 --force # features/steps/patroni_api.py:88 1550s May 03 00:51:48 Then Status code on GET http://127.0.0.1:8010/standby_leader is 200 after 10 seconds # features/steps/patroni_api.py:144 1550s May 03 00:51:48 And postgres-1 is replicating from postgres-2 after 32 seconds # features/steps/standby_cluster.py:52 1552s May 03 00:51:50 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 1552s May 03 00:51:50 1552s May 03 00:51:50 Scenario: check failover # features/standby_cluster.feature:63 1552s May 03 00:51:50 When I kill postgres-2 # features/steps/basic_replication.py:46 1553s May 03 00:51:51 And I kill postmaster on postgres-2 # features/steps/basic_replication.py:56 1554s May 03 00:51:52 waiting for server to shut down.... done 1554s May 03 00:51:52 server stopped 1554s May 03 00:51:52 Then postgres-1 is replicating from postgres-0 after 32 seconds # features/steps/standby_cluster.py:52 1573s May 03 00:52:11 And Status code on GET http://127.0.0.1:8009/standby_leader is 200 after 10 seconds # features/steps/patroni_api.py:144 1573s May 03 00:52:11 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 1573s May 03 00:52:11 Then I receive a response code 503 # features/steps/patroni_api.py:100 1573s May 03 00:52:11 And I receive a response role standby_leader # features/steps/patroni_api.py:100 1573s May 03 00:52:11 And replication works from postgres-0 to postgres-1 after 15 seconds # features/steps/basic_replication.py:124 1574s May 03 00:52:12 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 1578s May 03 00:52:16 1578s May 03 00:52:16 Feature: watchdog # features/watchdog.feature:1 1578s May 03 00:52:16 Verify that watchdog gets pinged and triggered under appropriate circumstances. 1578s May 03 00:52:16 Scenario: watchdog is opened and pinged # features/watchdog.feature:4 1578s May 03 00:52:16 Given I start postgres-0 with watchdog # features/steps/watchdog.py:17 1581s May 03 00:52:19 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1581s May 03 00:52:19 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1581s May 03 00:52:19 And postgres-0 watchdog has been pinged after 10 seconds # features/steps/watchdog.py:22 1582s May 03 00:52:20 And postgres-0 watchdog has a 15 second timeout # features/steps/watchdog.py:35 1582s May 03 00:52:20 1582s May 03 00:52:20 Scenario: watchdog is reconfigured after global ttl changed # features/watchdog.feature:11 1582s May 03 00:52:20 Given I run patronictl.py edit-config batman -s ttl=30 --force # features/steps/patroni_api.py:88 1583s May 03 00:52:21 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1583s May 03 00:52:21 And I receive a response output "+ttl: 30" # features/steps/patroni_api.py:100 1583s May 03 00:52:21 When I sleep for 4 seconds # features/steps/patroni_api.py:41 1587s May 03 00:52:25 Then postgres-0 watchdog has a 25 second timeout # features/steps/watchdog.py:35 1587s May 03 00:52:25 1587s May 03 00:52:25 Scenario: watchdog is disabled during pause # features/watchdog.feature:18 1587s May 03 00:52:25 Given I run patronictl.py pause batman # features/steps/patroni_api.py:88 1588s May 03 00:52:26 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1588s May 03 00:52:26 When I sleep for 2 seconds # features/steps/patroni_api.py:41 1590s May 03 00:52:28 Then postgres-0 watchdog has been closed # features/steps/watchdog.py:30 1590s May 03 00:52:28 1590s May 03 00:52:28 Scenario: watchdog is opened and pinged after resume # features/watchdog.feature:24 1590s May 03 00:52:28 Given I reset postgres-0 watchdog state # features/steps/watchdog.py:40 1590s May 03 00:52:28 And I run patronictl.py resume batman # features/steps/patroni_api.py:88 1591s May 03 00:52:29 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1591s May 03 00:52:29 And postgres-0 watchdog has been pinged after 10 seconds # features/steps/watchdog.py:22 1592s May 03 00:52:30 1592s May 03 00:52:30 Scenario: watchdog is disabled when shutting down # features/watchdog.feature:30 1592s May 03 00:52:30 Given I shut down postgres-0 # features/steps/basic_replication.py:41 1594s May 03 00:52:32 Then postgres-0 watchdog has been closed # features/steps/watchdog.py:30 1594s May 03 00:52:32 1594s May 03 00:52:32 Scenario: watchdog is triggered if patroni stops responding # features/watchdog.feature:34 1594s May 03 00:52:32 Given I reset postgres-0 watchdog state # features/steps/watchdog.py:40 1594s May 03 00:52:32 And I start postgres-0 with watchdog # features/steps/watchdog.py:17 1596s May 03 00:52:34 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1597s May 03 00:52:35 When postgres-0 hangs for 30 seconds # features/steps/watchdog.py:53 1597s May 03 00:52:35 Then postgres-0 watchdog is triggered after 30 seconds # features/steps/watchdog.py:45 1621s May 03 00:52:59 1621s Failed to get list of machines from http://[::1]:2379/v2: MaxRetryError("HTTPConnectionPool(host='::1', port=2379): Max retries exceeded with url: /v2/machines (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))") 1622s Failed to get list of machines from http://[::1]:2379/v2: MaxRetryError("HTTPConnectionPool(host='::1', port=2379): Max retries exceeded with url: /v2/machines (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))") 1622s 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'))") 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.4632.XatwKukx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.4678.XYUjiMQx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.4726.XSNIBctx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.4775.XQMbgJBx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.4821.XrYrCmCx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.4893.XdyZrKAx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.4942.XoelzFPx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.4945.XQIhvEHx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.5013.XNariccx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.5113.XdmnpXwx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.5120.XJZjIxWx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.5164.XbTZgLhx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.5214.Xntwyaqx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.5333.XOizyYsx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.5378.XaElxGhx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.5433.XPaTjNxx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.5519.XwBxcPVx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.5838.XZOkviyx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.5914.Xuualvcx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.5956.XaKEVeax 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.6179.XzbdGvjx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.6231.XsWfhgDx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.6293.XpSOErjx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.6384.XHHhXsrx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.6480.XceZfoMx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.6523.XAXFVNex 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.6588.XAtOzvHx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.6625.XyMCmCFx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.6794.XyLSJzAx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.6843.XeDnrPRx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.6858.XsaScnGx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.6900.XRrLPRYx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.6949.XimUUcWx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.6954.XDbVYmcx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.6990.XneZBhNx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.7034.XJWnbaLx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.7200.XmLzKXvx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.7202.XQHvmthx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.7207.XnrZhXax 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.7340.XafXEOax 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.7387.XsDpHHbx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.7435.XkOpRdjx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.7488.XimOqGTx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.7541.XKjKUecx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.7701.XehYUuex 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.7757.XbSqbPYx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.7800.XWoaihzx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.7872.XiHXDmQx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.7935.XEVwDEkx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.8019.XmkBUSax 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.8344.XqmLRVxx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.8396.XsXgnnnx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.8458.XsuEHGGx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.8549.XElzqQMx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.8596.XUxDTShx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.8652.XPxJikvx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.8695.XCetUHWx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.8733.XWhZKjDx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.8777.XmvMadux 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.9003.XLuTJMyx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.9066.XsqXyHjx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.9120.XYwKzrWx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.9229.XOuXwJLx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.9343.XHevuQpx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.9525.XwgGALnx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.9569.XRuBKrhx 1623s May 03 00:53:01 Skipping duplicate data .coverage.autopkgtest.9571.XKTlBdcx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.9574.XoGhhgOx 1623s May 03 00:53:01 Combined data file .coverage.autopkgtest.9585.XsayFaYx 1626s May 03 00:53:04 Name Stmts Miss Cover 1626s May 03 00:53:04 ------------------------------------------------------------------------------------------------------------- 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/OpenSSL/SSL.py 1159 642 45% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/OpenSSL/__init__.py 3 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/OpenSSL/_util.py 44 15 66% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/OpenSSL/crypto.py 869 663 24% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/OpenSSL/version.py 9 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/_distutils_hack/__init__.py 101 96 5% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/bcrypt/__init__.py 3 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/__about__.py 5 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/__init__.py 3 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/exceptions.py 26 5 81% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/hazmat/__init__.py 2 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/hazmat/_oid.py 135 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/__init__.py 0 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/__init__.py 0 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/_conditional.py 38 17 55% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/binding.py 51 4 92% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/hazmat/decrepit/__init__.py 1 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/hazmat/decrepit/ciphers/__init__.py 1 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/hazmat/decrepit/ciphers/algorithms.py 68 18 74% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/__init__.py 0 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_asymmetric.py 6 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_cipheralgorithm.py 23 4 83% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_serialization.py 79 35 56% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/__init__.py 0 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/dh.py 47 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/dsa.py 55 5 91% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ec.py 172 22 87% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ed448.py 45 12 73% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ed25519.py 43 12 72% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/padding.py 55 23 58% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/rsa.py 93 40 57% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/types.py 19 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/utils.py 14 5 64% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/x448.py 43 12 72% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/x25519.py 41 12 71% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/__init__.py 4 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/algorithms.py 72 15 79% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/base.py 54 12 78% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/modes.py 140 59 58% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/constant_time.py 6 3 50% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/hashes.py 127 20 84% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/__init__.py 5 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/base.py 7 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/ssh.py 775 614 21% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/utils.py 76 28 63% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/x509/__init__.py 70 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/x509/base.py 488 227 53% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/x509/certificate_transparency.py 42 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/x509/extensions.py 1024 552 46% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/x509/general_name.py 166 94 43% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/x509/name.py 236 144 39% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/x509/oid.py 3 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/cryptography/x509/verification.py 12 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dateutil/__init__.py 13 4 69% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dateutil/_common.py 25 15 40% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dateutil/_version.py 13 3 77% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dateutil/parser/__init__.py 33 4 88% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dateutil/parser/_parser.py 810 436 46% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dateutil/parser/isoparser.py 183 150 18% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dateutil/relativedelta.py 240 206 14% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dateutil/tz/__init__.py 4 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dateutil/tz/_common.py 151 114 25% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dateutil/tz/_factories.py 49 21 57% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dateutil/tz/tz.py 794 626 21% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dateutil/tz/win.py 152 149 2% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/__init__.py 2 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/_asyncbackend.py 14 6 57% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/_ddr.py 105 86 18% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/_features.py 46 8 83% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/_immutable_ctx.py 40 5 88% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/asyncbackend.py 44 32 27% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/asyncquery.py 322 283 12% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/edns.py 307 185 40% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/entropy.py 80 49 39% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/enum.py 72 46 36% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/exception.py 59 33 44% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/flags.py 40 14 65% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/grange.py 33 30 9% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/immutable.py 41 30 27% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/inet.py 79 65 18% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/ipv4.py 26 20 23% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/ipv6.py 114 100 12% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/message.py 829 676 18% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/name.py 617 425 31% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/nameserver.py 102 55 46% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/node.py 117 71 39% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/opcode.py 30 7 77% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/query.py 562 477 15% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/quic/__init__.py 28 23 18% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/rcode.py 68 13 81% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/rdata.py 386 277 28% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/rdataclass.py 43 9 79% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/rdataset.py 192 133 31% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/rdatatype.py 215 23 89% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/OPT.py 34 19 44% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/SOA.py 41 26 37% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/TSIG.py 58 42 28% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/ZONEMD.py 43 27 37% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/rdtypes/ANY/__init__.py 1 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/rdtypes/__init__.py 1 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/rdtypes/svcbbase.py 415 268 35% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/rdtypes/util.py 191 154 19% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/renderer.py 151 118 22% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/resolver.py 873 696 20% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/reversename.py 32 24 25% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/rrset.py 77 56 27% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/serial.py 92 79 14% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/set.py 148 107 28% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/tokenizer.py 334 279 16% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/transaction.py 269 201 25% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/tsig.py 176 122 31% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/ttl.py 44 38 14% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/version.py 6 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/wire.py 64 42 34% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/xfr.py 148 126 15% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/zone.py 507 383 24% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/zonefile.py 427 379 11% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/dns/zonetypes.py 14 2 86% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/etcd/__init__.py 125 24 81% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/etcd/client.py 380 192 49% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/etcd/lock.py 125 103 18% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/idna/__init__.py 4 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/idna/core.py 292 257 12% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/idna/idnadata.py 4 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/idna/intranges.py 30 24 20% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/idna/package_data.py 1 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/__init__.py 13 2 85% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/__main__.py 201 64 68% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/api.py 788 284 64% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/async_executor.py 96 15 84% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/collections.py 56 5 91% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/config.py 357 84 76% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/config_generator.py 212 159 25% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/daemon.py 76 3 96% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/dcs/__init__.py 710 93 87% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/dcs/etcd.py 603 119 80% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/dynamic_loader.py 35 7 80% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/exceptions.py 16 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/file_perm.py 47 10 79% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/global_config.py 87 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/ha.py 1359 317 77% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/log.py 235 79 66% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/postgresql/__init__.py 825 165 80% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/postgresql/available_parameters/__init__.py 24 3 88% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/postgresql/bootstrap.py 254 60 76% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/postgresql/callback_executor.py 55 8 85% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/postgresql/cancellable.py 104 34 67% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/postgresql/config.py 839 211 75% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/postgresql/connection.py 75 1 99% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/postgresql/misc.py 43 8 81% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/postgresql/mpp/__init__.py 89 11 88% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/postgresql/postmaster.py 170 83 51% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/postgresql/rewind.py 416 128 69% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/postgresql/slots.py 349 38 89% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/postgresql/sync.py 154 10 94% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/postgresql/validator.py 157 24 85% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/psycopg.py 46 19 59% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/quorum.py 182 48 74% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/request.py 58 6 90% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/tags.py 38 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/utils.py 371 119 68% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/validator.py 309 215 30% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/version.py 1 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/watchdog/__init__.py 2 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/watchdog/base.py 203 42 79% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/patroni/watchdog/linux.py 135 35 74% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/psutil/__init__.py 945 608 36% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/psutil/_common.py 408 208 49% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/psutil/_pslinux.py 1225 907 26% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/psutil/_psposix.py 84 33 61% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/psycopg2/__init__.py 19 3 84% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/psycopg2/_json.py 64 27 58% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/psycopg2/_range.py 269 172 36% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/psycopg2/errors.py 3 2 33% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/psycopg2/extensions.py 91 25 73% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/urllib3/__init__.py 49 15 69% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/urllib3/_base_connection.py 63 45 29% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/urllib3/_collections.py 231 97 58% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/urllib3/_request_methods.py 54 10 81% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/urllib3/_version.py 13 3 77% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/urllib3/connection.py 389 137 65% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/urllib3/connectionpool.py 344 118 66% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/urllib3/contrib/__init__.py 0 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/urllib3/contrib/pyopenssl.py 263 101 62% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/urllib3/exceptions.py 121 39 68% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/urllib3/fields.py 92 73 21% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/urllib3/filepost.py 37 24 35% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/urllib3/http2/__init__.py 28 21 25% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/urllib3/http2/probe.py 49 31 37% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/urllib3/poolmanager.py 233 85 64% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/urllib3/response.py 634 368 42% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/urllib3/util/__init__.py 10 0 100% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/urllib3/util/connection.py 66 42 36% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/urllib3/util/proxy.py 13 6 54% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/urllib3/util/request.py 104 49 53% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/urllib3/util/response.py 32 17 47% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/urllib3/util/retry.py 174 48 72% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/urllib3/util/ssl_.py 172 74 57% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/urllib3/util/ssl_match_hostname.py 66 54 18% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/urllib3/util/ssltransport.py 152 106 30% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/urllib3/util/timeout.py 71 14 80% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/urllib3/util/url.py 203 66 67% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/urllib3/util/util.py 26 10 62% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/urllib3/util/wait.py 49 18 63% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/yaml/__init__.py 165 109 34% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/yaml/composer.py 92 17 82% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/yaml/constructor.py 479 276 42% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/yaml/cyaml.py 46 24 48% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/yaml/dumper.py 23 12 48% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/yaml/emitter.py 838 769 8% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/yaml/error.py 58 42 28% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/yaml/events.py 61 6 90% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/yaml/loader.py 47 24 49% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/yaml/nodes.py 29 7 76% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/yaml/parser.py 352 198 44% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/yaml/reader.py 122 34 72% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/yaml/representer.py 248 176 29% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/yaml/resolver.py 135 76 44% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/yaml/scanner.py 758 437 42% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/yaml/serializer.py 85 70 18% 1626s May 03 00:53:04 /usr/lib/python3/dist-packages/yaml/tokens.py 76 17 78% 1626s May 03 00:53:04 patroni/__init__.py 13 2 85% 1626s May 03 00:53:04 patroni/__main__.py 201 201 0% 1626s May 03 00:53:04 patroni/api.py 788 788 0% 1626s May 03 00:53:04 patroni/async_executor.py 96 69 28% 1626s May 03 00:53:04 patroni/collections.py 56 15 73% 1626s May 03 00:53:04 patroni/config.py 357 186 48% 1626s May 03 00:53:04 patroni/config_generator.py 212 212 0% 1626s May 03 00:53:04 patroni/ctl.py 936 395 58% 1626s May 03 00:53:04 patroni/daemon.py 76 76 0% 1626s May 03 00:53:04 patroni/dcs/__init__.py 710 316 55% 1626s May 03 00:53:04 patroni/dcs/consul.py 482 482 0% 1626s May 03 00:53:04 patroni/dcs/etcd3.py 679 679 0% 1626s May 03 00:53:04 patroni/dcs/etcd.py 603 224 63% 1626s May 03 00:53:04 patroni/dcs/exhibitor.py 62 62 0% 1626s May 03 00:53:04 patroni/dcs/kubernetes.py 943 943 0% 1626s May 03 00:53:04 patroni/dcs/raft.py 319 319 0% 1626s May 03 00:53:04 patroni/dcs/zookeeper.py 289 289 0% 1626s May 03 00:53:04 patroni/dynamic_loader.py 35 7 80% 1626s May 03 00:53:04 patroni/exceptions.py 16 1 94% 1626s May 03 00:53:04 patroni/file_perm.py 47 17 64% 1626s May 03 00:53:04 patroni/global_config.py 87 19 78% 1626s May 03 00:53:04 patroni/ha.py 1359 1359 0% 1626s May 03 00:53:04 patroni/log.py 235 183 22% 1626s May 03 00:53:04 patroni/postgresql/__init__.py 825 653 21% 1626s May 03 00:53:04 patroni/postgresql/available_parameters/__init__.py 24 6 75% 1626s May 03 00:53:04 patroni/postgresql/bootstrap.py 254 224 12% 1626s May 03 00:53:04 patroni/postgresql/callback_executor.py 55 34 38% 1626s May 03 00:53:04 patroni/postgresql/cancellable.py 104 84 19% 1626s May 03 00:53:04 patroni/postgresql/config.py 839 719 14% 1626s May 03 00:53:04 patroni/postgresql/connection.py 75 50 33% 1626s May 03 00:53:04 patroni/postgresql/misc.py 43 30 30% 1626s May 03 00:53:04 patroni/postgresql/mpp/__init__.py 89 21 76% 1626s May 03 00:53:04 patroni/postgresql/mpp/citus.py 366 366 0% 1626s May 03 00:53:04 patroni/postgresql/postmaster.py 170 139 18% 1626s May 03 00:53:04 patroni/postgresql/rewind.py 416 416 0% 1626s May 03 00:53:04 patroni/postgresql/slots.py 349 300 14% 1626s May 03 00:53:04 patroni/postgresql/sync.py 154 114 26% 1626s May 03 00:53:04 patroni/postgresql/validator.py 157 52 67% 1626s May 03 00:53:04 patroni/psycopg.py 46 32 30% 1626s May 03 00:53:04 patroni/quorum.py 182 182 0% 1626s May 03 00:53:04 patroni/raft_controller.py 22 22 0% 1626s May 03 00:53:04 patroni/request.py 58 6 90% 1626s May 03 00:53:04 patroni/scripts/__init__.py 0 0 100% 1626s May 03 00:53:04 patroni/scripts/aws.py 59 59 0% 1626s May 03 00:53:04 patroni/scripts/barman/__init__.py 0 0 100% 1626s May 03 00:53:04 patroni/scripts/barman/cli.py 50 50 0% 1626s May 03 00:53:04 patroni/scripts/barman/config_switch.py 50 50 0% 1626s May 03 00:53:04 patroni/scripts/barman/recover.py 36 36 0% 1626s May 03 00:53:04 patroni/scripts/barman/utils.py 93 93 0% 1626s May 03 00:53:04 patroni/scripts/wale_restore.py 207 207 0% 1626s May 03 00:53:04 patroni/tags.py 38 11 71% 1626s May 03 00:53:04 patroni/utils.py 371 212 43% 1626s May 03 00:53:04 patroni/validator.py 309 222 28% 1626s May 03 00:53:04 patroni/version.py 1 0 100% 1626s May 03 00:53:04 patroni/watchdog/__init__.py 2 2 0% 1626s May 03 00:53:04 patroni/watchdog/base.py 203 203 0% 1626s May 03 00:53:04 patroni/watchdog/linux.py 135 135 0% 1626s May 03 00:53:04 ------------------------------------------------------------------------------------------------------------- 1626s May 03 00:53:04 TOTAL 53380 32140 40% 1626s May 03 00:53:04 13 features passed, 0 failed, 1 skipped 1626s May 03 00:53:04 64 scenarios passed, 0 failed, 5 skipped 1626s May 03 00:53:04 599 steps passed, 0 failed, 68 skipped, 0 undefined 1626s May 03 00:53:04 Took 8m33.558s 1626s + echo '### End 17 acceptance-etcd ###' 1626s ### End 17 acceptance-etcd ### 1626s + rm -f '/tmp/pgpass?' 1626s ++ id -u 1626s + '[' 0 -eq 0 ']' 1626s + '[' -x /etc/init.d/zookeeper ']' 1626s autopkgtest [00:53:04]: test acceptance-etcd: -----------------------] 1627s acceptance-etcd PASS 1627s autopkgtest [00:53:05]: test acceptance-etcd: - - - - - - - - - - results - - - - - - - - - - 1627s autopkgtest [00:53:05]: test acceptance-zookeeper: preparing testbed 1692s autopkgtest [00:54:10]: testbed dpkg architecture: amd64 1692s autopkgtest [00:54:10]: testbed apt version: 3.0.0 1693s autopkgtest [00:54:11]: @@@@@@@@@@@@@@@@@@@@ test bed setup 1693s autopkgtest [00:54:11]: testbed release detected to be: questing 1694s autopkgtest [00:54:12]: updating testbed package index (apt update) 1694s Get:1 http://ftpmaster.internal/ubuntu questing-proposed InRelease [110 kB] 1694s Hit:2 http://ftpmaster.internal/ubuntu questing InRelease 1694s Hit:3 http://ftpmaster.internal/ubuntu questing-updates InRelease 1694s Hit:4 http://ftpmaster.internal/ubuntu questing-security InRelease 1694s Get:5 http://ftpmaster.internal/ubuntu questing-proposed/multiverse Sources [43.4 kB] 1694s Get:6 http://ftpmaster.internal/ubuntu questing-proposed/main Sources [169 kB] 1694s Get:7 http://ftpmaster.internal/ubuntu questing-proposed/universe Sources [1934 kB] 1695s Get:8 http://ftpmaster.internal/ubuntu questing-proposed/main i386 Packages [176 kB] 1695s Get:9 http://ftpmaster.internal/ubuntu questing-proposed/main amd64 Packages [232 kB] 1695s Get:10 http://ftpmaster.internal/ubuntu questing-proposed/universe amd64 Packages [1514 kB] 1695s Get:11 http://ftpmaster.internal/ubuntu questing-proposed/universe i386 Packages [664 kB] 1695s Get:12 http://ftpmaster.internal/ubuntu questing-proposed/multiverse amd64 Packages [14.8 kB] 1695s Get:13 http://ftpmaster.internal/ubuntu questing-proposed/multiverse i386 Packages [13.5 kB] 1695s Fetched 4872 kB in 1s (4176 kB/s) 1696s Reading package lists... 1696s autopkgtest [00:54:14]: upgrading testbed (apt dist-upgrade and autopurge) 1697s Reading package lists... 1697s Building dependency tree... 1697s Reading state information... 1697s Calculating upgrade...Starting pkgProblemResolver with broken count: 0 1697s Starting 2 pkgProblemResolver with broken count: 0 1697s Done 1698s Entering ResolveByKeep 1698s 1698s Calculating upgrade... 1699s The following packages will be upgraded: 1699s ed fwupd htop libftdi1-2 libfwupd3 libnpth0t64 libnvme1t64 libsensors-config 1699s libsensors5 liburcu8t64 mokutil nano usb.ids 1699s 13 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 1699s Need to get 6529 kB of archives. 1699s After this operation, 209 kB disk space will be freed. 1699s Get:1 http://ftpmaster.internal/ubuntu questing/main amd64 libnpth0t64 amd64 1.8-3 [9294 B] 1699s Get:2 http://ftpmaster.internal/ubuntu questing/main amd64 ed amd64 1.21.1-1 [57.2 kB] 1699s Get:3 http://ftpmaster.internal/ubuntu questing/main amd64 libsensors-config all 1:3.6.2-2 [6756 B] 1699s Get:4 http://ftpmaster.internal/ubuntu questing/main amd64 libsensors5 amd64 1:3.6.2-2 [28.7 kB] 1699s Get:5 http://ftpmaster.internal/ubuntu questing/main amd64 liburcu8t64 amd64 0.15.2-2 [63.9 kB] 1699s Get:6 http://ftpmaster.internal/ubuntu questing/main amd64 nano amd64 8.4-1 [290 kB] 1699s Get:7 http://ftpmaster.internal/ubuntu questing/main amd64 usb.ids all 2025.04.01-1 [223 kB] 1699s Get:8 http://ftpmaster.internal/ubuntu questing/main amd64 fwupd amd64 2.0.8-3 [5396 kB] 1699s Get:9 http://ftpmaster.internal/ubuntu questing/main amd64 libfwupd3 amd64 2.0.8-3 [136 kB] 1699s Get:10 http://ftpmaster.internal/ubuntu questing/main amd64 htop amd64 3.4.1-4 [175 kB] 1699s Get:11 http://ftpmaster.internal/ubuntu questing/main amd64 libftdi1-2 amd64 1.5-10 [30.7 kB] 1699s Get:12 http://ftpmaster.internal/ubuntu questing/main amd64 libnvme1t64 amd64 1.13-2 [84.2 kB] 1700s Get:13 http://ftpmaster.internal/ubuntu questing/main amd64 mokutil amd64 0.7.2-1 [27.9 kB] 1700s Fetched 6529 kB in 1s (6583 kB/s) 1700s (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 ... 80514 files and directories currently installed.) 1700s Preparing to unpack .../libnpth0t64_1.8-3_amd64.deb ... 1700s Unpacking libnpth0t64:amd64 (1.8-3) over (1.8-2) ... 1700s Setting up libnpth0t64:amd64 (1.8-3) ... 1700s (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 ... 80514 files and directories currently installed.) 1700s Preparing to unpack .../00-ed_1.21.1-1_amd64.deb ... 1700s Unpacking ed (1.21.1-1) over (1.21-1) ... 1700s Preparing to unpack .../01-libsensors-config_1%3a3.6.2-2_all.deb ... 1700s Unpacking libsensors-config (1:3.6.2-2) over (1:3.6.0-10) ... 1700s Preparing to unpack .../02-libsensors5_1%3a3.6.2-2_amd64.deb ... 1700s Unpacking libsensors5:amd64 (1:3.6.2-2) over (1:3.6.0-10) ... 1700s Preparing to unpack .../03-liburcu8t64_0.15.2-2_amd64.deb ... 1700s Unpacking liburcu8t64:amd64 (0.15.2-2) over (0.15.1-1) ... 1700s Preparing to unpack .../04-nano_8.4-1_amd64.deb ... 1700s Unpacking nano (8.4-1) over (8.3-1) ... 1700s Preparing to unpack .../05-usb.ids_2025.04.01-1_all.deb ... 1700s Unpacking usb.ids (2025.04.01-1) over (2025.01.14-1) ... 1700s Preparing to unpack .../06-fwupd_2.0.8-3_amd64.deb ... 1701s Unpacking fwupd (2.0.8-3) over (2.0.7-1) ... 1701s Preparing to unpack .../07-libfwupd3_2.0.8-3_amd64.deb ... 1701s Unpacking libfwupd3:amd64 (2.0.8-3) over (2.0.7-1) ... 1701s Preparing to unpack .../08-htop_3.4.1-4_amd64.deb ... 1701s Unpacking htop (3.4.1-4) over (3.4.0-2) ... 1701s Preparing to unpack .../09-libftdi1-2_1.5-10_amd64.deb ... 1701s Unpacking libftdi1-2:amd64 (1.5-10) over (1.5-8build1) ... 1701s Preparing to unpack .../10-libnvme1t64_1.13-2_amd64.deb ... 1701s Unpacking libnvme1t64 (1.13-2) over (1.11.1-2) ... 1701s Preparing to unpack .../11-mokutil_0.7.2-1_amd64.deb ... 1701s Unpacking mokutil (0.7.2-1) over (0.6.0-2build3) ... 1701s Setting up liburcu8t64:amd64 (0.15.2-2) ... 1701s Setting up mokutil (0.7.2-1) ... 1701s Setting up htop (3.4.1-4) ... 1701s Setting up libsensors-config (1:3.6.2-2) ... 1701s Installing new version of config file /etc/sensors3.conf ... 1701s Setting up libfwupd3:amd64 (2.0.8-3) ... 1701s Setting up libftdi1-2:amd64 (1.5-10) ... 1701s Setting up libnvme1t64 (1.13-2) ... 1701s Setting up ed (1.21.1-1) ... 1701s Setting up usb.ids (2025.04.01-1) ... 1701s Setting up libsensors5:amd64 (1:3.6.2-2) ... 1701s Setting up nano (8.4-1) ... 1701s Installing new version of config file /etc/nanorc ... 1701s Setting up fwupd (2.0.8-3) ... 1702s fwupd-refresh.service is a disabled or a static unit not running, not starting it. 1702s fwupd.service is a disabled or a static unit not running, not starting it. 1702s Processing triggers for man-db (2.13.0-1) ... 1703s Processing triggers for dbus (1.16.2-2ubuntu1) ... 1703s Processing triggers for install-info (7.1.1-1) ... 1703s Processing triggers for libc-bin (2.41-6ubuntu1) ... 1703s Reading package lists... 1704s Building dependency tree... 1704s Reading state information... 1704s Starting pkgProblemResolver with broken count: 0 1704s Starting 2 pkgProblemResolver with broken count: 0 1704s Done 1704s Solving dependencies... 1704s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 1705s autopkgtest [00:54:23]: rebooting testbed after setup commands that affected boot 1730s Reading package lists... 1731s Building dependency tree... 1731s Reading state information... 1731s Starting pkgProblemResolver with broken count: 0 1731s Starting 2 pkgProblemResolver with broken count: 0 1731s Done 1732s The following NEW packages will be installed: 1732s adwaita-icon-theme at-spi2-common ca-certificates-java 1732s dconf-gsettings-backend dconf-service default-jre default-jre-headless 1732s fontconfig fontconfig-config fonts-dejavu-core fonts-dejavu-mono 1732s fonts-font-awesome fonts-lato gtk-update-icon-cache hicolor-icon-theme 1732s java-common junit4 libactivation-java libapache-pom-java libapr1t64 1732s libasm-java libasound2-data libasound2t64 libatinject-jsr330-api-java 1732s libatk-bridge2.0-0t64 libatk1.0-0t64 libatspi2.0-0t64 libavahi-client3 1732s libavahi-common-data libavahi-common3 libcairo-gobject2 libcairo2 libcares2 1732s libcolord2 libcommons-cli-java libcommons-io-java libcommons-logging-java 1732s libcommons-parent-java libcups2t64 libdatrie1 libdconf1 libdeflate0 1732s libdrm-intel1 libdropwizard-metrics-java 1732s libeclipse-jdt-core-compiler-batch-java libeclipse-jdt-core-java 1732s libel-api-java libepoxy0 liberror-prone-java libev4t64 1732s libfindbugs-annotations-java libfontconfig1 libgbm1 libgdk-pixbuf-2.0-0 1732s libgdk-pixbuf2.0-common libgif7 libgl1 libgl1-mesa-dri libglvnd0 1732s libglx-mesa0 libglx0 libgraphite2-3 libgtk-3-0t64 libgtk-3-common 1732s libguava-java libhamcrest-java libharfbuzz0b libio-pty-perl libipc-run-perl 1732s libjackson2-annotations-java libjackson2-core-java libjackson2-databind-java 1732s libjavaparser-java libjaxb-api-java libjbig0 libjctools-java 1732s libjetty9-extra-java libjetty9-java libjffi-java libjffi-jni 1732s libjnr-constants-java libjnr-enxio-java libjnr-ffi-java libjnr-posix-java 1732s libjnr-unixsocket-java libjnr-x86asm-java libjpeg-turbo8 libjpeg8 1732s libjs-jquery libjs-sphinxdoc libjs-underscore libjson-perl libjsp-api-java 1732s libjsr305-java liblcms2-2 liblerc4 libllvm20 liblog4j1.2-java libmail-java 1732s libnetty-java libnetty-tcnative-java libnetty-tcnative-jni libpango-1.0-0 1732s libpangocairo-1.0-0 libpangoft2-1.0-0 libpciaccess0 libpcsclite1 1732s libpixman-1-0 libpq5 libservlet-api-java libsharpyuv0 libslf4j-java 1732s libsnappy-java libsnappy-jni libsnappy1v5 libspring-beans-java 1732s libspring-core-java libtaglibs-standard-impl-java 1732s libtaglibs-standard-spec-java libthai-data libthai0 libtiff6 1732s libtime-duration-perl libtimedate-perl libtomcat9-java libvulkan1 1732s libwayland-client0 libwayland-cursor0 libwayland-egl1 libwayland-server0 1732s libwebp7 libwebsocket-api-java libx11-xcb1 libxcb-dri3-0 libxcb-glx0 1732s libxcb-present0 libxcb-randr0 libxcb-render0 libxcb-shm0 libxcb-sync1 1732s libxcb-xfixes0 libxcomposite1 libxcursor1 libxdamage1 libxfixes3 libxi6 1732s libxinerama1 libxrandr2 libxrender1 libxshmfence1 libxslt1.1 libxtst6 1732s libxxf86vm1 libzookeeper-java mesa-libgallium moreutils openjdk-21-jre 1732s openjdk-21-jre-headless patroni patroni-doc postgresql postgresql-17 1732s postgresql-client-17 postgresql-client-common postgresql-common 1732s postgresql-common-dev python3-behave python3-click python3-coverage 1732s python3-dnspython python3-eventlet python3-gevent python3-greenlet 1732s python3-kazoo python3-kerberos python3-parse python3-parse-type 1732s python3-prettytable python3-psutil python3-psycopg2 python3-pure-sasl 1732s python3-wcwidth python3-ydiff python3-zope.event python3-zope.interface 1732s sphinx-rtd-theme-common ssl-cert x11-common zookeeper zookeeperd 1732s 0 upgraded, 190 newly installed, 0 to remove and 0 not upgraded. 1732s Need to get 167 MB of archives. 1732s After this operation, 597 MB of additional disk space will be used. 1732s Get:1 http://ftpmaster.internal/ubuntu questing/main amd64 fonts-lato all 2.015-1 [2781 kB] 1732s Get:2 http://ftpmaster.internal/ubuntu questing/main amd64 libjson-perl all 4.10000-1 [81.9 kB] 1732s Get:3 http://ftpmaster.internal/ubuntu questing/main amd64 postgresql-client-common all 274 [47.6 kB] 1732s Get:4 http://ftpmaster.internal/ubuntu questing/main amd64 libio-pty-perl amd64 1:1.20-1build3 [31.4 kB] 1732s Get:5 http://ftpmaster.internal/ubuntu questing/main amd64 libipc-run-perl all 20231003.0-2 [91.5 kB] 1732s Get:6 http://ftpmaster.internal/ubuntu questing/main amd64 postgresql-common-dev all 274 [73.0 kB] 1732s Get:7 http://ftpmaster.internal/ubuntu questing/main amd64 ssl-cert all 1.1.3ubuntu1 [18.7 kB] 1732s Get:8 http://ftpmaster.internal/ubuntu questing/main amd64 postgresql-common all 274 [101 kB] 1732s Get:9 http://ftpmaster.internal/ubuntu questing/main amd64 ca-certificates-java all 20240118 [11.6 kB] 1732s Get:10 http://ftpmaster.internal/ubuntu questing/main amd64 java-common all 0.76 [6852 B] 1732s Get:11 http://ftpmaster.internal/ubuntu questing/main amd64 liblcms2-2 amd64 2.16-2 [212 kB] 1732s Get:12 http://ftpmaster.internal/ubuntu questing/main amd64 libjpeg-turbo8 amd64 2.1.5-3ubuntu2 [179 kB] 1732s Get:13 http://ftpmaster.internal/ubuntu questing/main amd64 libjpeg8 amd64 8c-2ubuntu11 [2148 B] 1732s Get:14 http://ftpmaster.internal/ubuntu questing/main amd64 libpcsclite1 amd64 2.3.1-1 [26.6 kB] 1732s Get:15 http://ftpmaster.internal/ubuntu questing/main amd64 openjdk-21-jre-headless amd64 21.0.7~8ea-1 [46.4 MB] 1734s Get:16 http://ftpmaster.internal/ubuntu questing/main amd64 default-jre-headless amd64 2:1.21-76 [3178 B] 1734s Get:17 http://ftpmaster.internal/ubuntu questing/main amd64 libgdk-pixbuf2.0-common all 2.42.12+dfsg-2 [8004 B] 1734s Get:18 http://ftpmaster.internal/ubuntu questing/main amd64 libdeflate0 amd64 1.23-1 [64.1 kB] 1734s Get:19 http://ftpmaster.internal/ubuntu questing/main amd64 libjbig0 amd64 2.1-6.1ubuntu2 [29.7 kB] 1734s Get:20 http://ftpmaster.internal/ubuntu questing/main amd64 liblerc4 amd64 4.0.0+ds-5ubuntu1 [271 kB] 1734s Get:21 http://ftpmaster.internal/ubuntu questing/main amd64 libsharpyuv0 amd64 1.5.0-0.1 [25.9 kB] 1734s Get:22 http://ftpmaster.internal/ubuntu questing/main amd64 libwebp7 amd64 1.5.0-0.1 [378 kB] 1734s Get:23 http://ftpmaster.internal/ubuntu questing/main amd64 libtiff6 amd64 4.7.0-3ubuntu1 [204 kB] 1734s Get:24 http://ftpmaster.internal/ubuntu questing/main amd64 libgdk-pixbuf-2.0-0 amd64 2.42.12+dfsg-2 [161 kB] 1735s Get:25 http://ftpmaster.internal/ubuntu questing/main amd64 gtk-update-icon-cache amd64 4.18.4+ds-1 [54.1 kB] 1735s Get:26 http://ftpmaster.internal/ubuntu questing/main amd64 hicolor-icon-theme all 0.18-2 [13.3 kB] 1735s Get:27 http://ftpmaster.internal/ubuntu questing/main amd64 adwaita-icon-theme all 48.0-1 [578 kB] 1735s Get:28 http://ftpmaster.internal/ubuntu questing/main amd64 at-spi2-common all 2.56.1-1 [9142 B] 1735s Get:29 http://ftpmaster.internal/ubuntu questing/main amd64 libatk1.0-0t64 amd64 2.56.1-1 [55.4 kB] 1735s Get:30 http://ftpmaster.internal/ubuntu questing/main amd64 libxi6 amd64 2:1.8.2-1 [32.4 kB] 1735s Get:31 http://ftpmaster.internal/ubuntu questing/main amd64 libatspi2.0-0t64 amd64 2.56.1-1 [91.9 kB] 1735s Get:32 http://ftpmaster.internal/ubuntu questing/main amd64 libatk-bridge2.0-0t64 amd64 2.56.1-1 [69.0 kB] 1735s Get:33 http://ftpmaster.internal/ubuntu questing/main amd64 fonts-dejavu-mono all 2.37-8 [502 kB] 1735s Get:34 http://ftpmaster.internal/ubuntu questing/main amd64 fonts-dejavu-core all 2.37-8 [835 kB] 1735s Get:35 http://ftpmaster.internal/ubuntu questing/main amd64 fontconfig-config amd64 2.15.0-2.2ubuntu1 [37.8 kB] 1735s Get:36 http://ftpmaster.internal/ubuntu questing/main amd64 libfontconfig1 amd64 2.15.0-2.2ubuntu1 [164 kB] 1735s Get:37 http://ftpmaster.internal/ubuntu questing/main amd64 libpixman-1-0 amd64 0.44.0-3 [427 kB] 1735s Get:38 http://ftpmaster.internal/ubuntu questing/main amd64 libxcb-render0 amd64 1.17.0-2 [16.2 kB] 1735s Get:39 http://ftpmaster.internal/ubuntu questing/main amd64 libxcb-shm0 amd64 1.17.0-2 [5758 B] 1735s Get:40 http://ftpmaster.internal/ubuntu questing/main amd64 libxrender1 amd64 1:0.9.10-1.1build1 [19.0 kB] 1735s Get:41 http://ftpmaster.internal/ubuntu questing/main amd64 libcairo2 amd64 1.18.4-1 [662 kB] 1735s Get:42 http://ftpmaster.internal/ubuntu questing/main amd64 libcairo-gobject2 amd64 1.18.4-1 [127 kB] 1735s Get:43 http://ftpmaster.internal/ubuntu questing/main amd64 libcolord2 amd64 1.4.7-3 [155 kB] 1735s Get:44 http://ftpmaster.internal/ubuntu questing/main amd64 libavahi-common-data amd64 0.8-16ubuntu2 [31.0 kB] 1735s Get:45 http://ftpmaster.internal/ubuntu questing/main amd64 libavahi-common3 amd64 0.8-16ubuntu2 [23.6 kB] 1735s Get:46 http://ftpmaster.internal/ubuntu questing/main amd64 libavahi-client3 amd64 0.8-16ubuntu2 [27.5 kB] 1735s Get:47 http://ftpmaster.internal/ubuntu questing/main amd64 libcups2t64 amd64 2.4.12-0ubuntu1 [292 kB] 1735s Get:48 http://ftpmaster.internal/ubuntu questing/main amd64 libepoxy0 amd64 1.5.10-2 [218 kB] 1735s Get:49 http://ftpmaster.internal/ubuntu questing/main amd64 libgraphite2-3 amd64 1.3.14-2ubuntu1 [73.1 kB] 1735s Get:50 http://ftpmaster.internal/ubuntu questing/main amd64 libharfbuzz0b amd64 10.2.0-1 [543 kB] 1735s Get:51 http://ftpmaster.internal/ubuntu questing/main amd64 fontconfig amd64 2.15.0-2.2ubuntu1 [180 kB] 1735s Get:52 http://ftpmaster.internal/ubuntu questing/main amd64 libthai-data all 0.1.29-2build1 [158 kB] 1735s Get:53 http://ftpmaster.internal/ubuntu questing/main amd64 libdatrie1 amd64 0.2.13-3build1 [19.0 kB] 1735s Get:54 http://ftpmaster.internal/ubuntu questing/main amd64 libthai0 amd64 0.1.29-2build1 [18.9 kB] 1735s Get:55 http://ftpmaster.internal/ubuntu questing/main amd64 libpango-1.0-0 amd64 1.56.3-1 [256 kB] 1735s Get:56 http://ftpmaster.internal/ubuntu questing/main amd64 libpangoft2-1.0-0 amd64 1.56.3-1 [52.9 kB] 1735s Get:57 http://ftpmaster.internal/ubuntu questing/main amd64 libpangocairo-1.0-0 amd64 1.56.3-1 [29.1 kB] 1735s Get:58 http://ftpmaster.internal/ubuntu questing/main amd64 libwayland-client0 amd64 1.23.1-3 [29.7 kB] 1735s Get:59 http://ftpmaster.internal/ubuntu questing/main amd64 libwayland-cursor0 amd64 1.23.1-3 [10.9 kB] 1735s Get:60 http://ftpmaster.internal/ubuntu questing/main amd64 libwayland-egl1 amd64 1.23.1-3 [6168 B] 1735s Get:61 http://ftpmaster.internal/ubuntu questing/main amd64 libxcomposite1 amd64 1:0.4.6-1 [6642 B] 1735s Get:62 http://ftpmaster.internal/ubuntu questing/main amd64 libxfixes3 amd64 1:6.0.0-2build1 [10.8 kB] 1735s Get:63 http://ftpmaster.internal/ubuntu questing/main amd64 libxcursor1 amd64 1:1.2.3-1 [23.1 kB] 1735s Get:64 http://ftpmaster.internal/ubuntu questing/main amd64 libxdamage1 amd64 1:1.1.6-1build1 [6150 B] 1735s Get:65 http://ftpmaster.internal/ubuntu questing/main amd64 libxinerama1 amd64 2:1.1.4-3build1 [6396 B] 1735s Get:66 http://ftpmaster.internal/ubuntu questing/main amd64 libxrandr2 amd64 2:1.5.4-1 [19.6 kB] 1735s Get:67 http://ftpmaster.internal/ubuntu questing/main amd64 libdconf1 amd64 0.40.0-5 [39.8 kB] 1735s Get:68 http://ftpmaster.internal/ubuntu questing/main amd64 dconf-service amd64 0.40.0-5 [28.4 kB] 1735s Get:69 http://ftpmaster.internal/ubuntu questing/main amd64 dconf-gsettings-backend amd64 0.40.0-5 [22.7 kB] 1735s Get:70 http://ftpmaster.internal/ubuntu questing/main amd64 libgtk-3-common all 3.24.49-2ubuntu1 [1424 kB] 1735s Get:71 http://ftpmaster.internal/ubuntu questing/main amd64 libgtk-3-0t64 amd64 3.24.49-2ubuntu1 [3172 kB] 1735s Get:72 http://ftpmaster.internal/ubuntu questing/main amd64 libglvnd0 amd64 1.7.0-1build1 [69.6 kB] 1735s Get:73 http://ftpmaster.internal/ubuntu questing/main amd64 libx11-xcb1 amd64 2:1.8.10-2 [7944 B] 1735s Get:74 http://ftpmaster.internal/ubuntu questing/main amd64 libxcb-dri3-0 amd64 1.17.0-2 [7508 B] 1735s Get:75 http://ftpmaster.internal/ubuntu questing/main amd64 libxcb-glx0 amd64 1.17.0-2 [24.8 kB] 1735s Get:76 http://ftpmaster.internal/ubuntu questing/main amd64 libxcb-present0 amd64 1.17.0-2 [6064 B] 1735s Get:77 http://ftpmaster.internal/ubuntu questing/main amd64 libxcb-xfixes0 amd64 1.17.0-2 [10.2 kB] 1735s Get:78 http://ftpmaster.internal/ubuntu questing/main amd64 libxxf86vm1 amd64 1:1.1.4-1build4 [9282 B] 1735s Get:79 http://ftpmaster.internal/ubuntu questing/main amd64 libpciaccess0 amd64 0.17-3build1 [18.6 kB] 1735s Get:80 http://ftpmaster.internal/ubuntu questing/main amd64 libdrm-intel1 amd64 2.4.124-2 [68.9 kB] 1735s Get:81 http://ftpmaster.internal/ubuntu questing/main amd64 libxcb-randr0 amd64 1.17.0-2 [17.9 kB] 1735s Get:82 http://ftpmaster.internal/ubuntu questing/main amd64 libxcb-sync1 amd64 1.17.0-2 [9312 B] 1735s Get:83 http://ftpmaster.internal/ubuntu questing/main amd64 libxshmfence1 amd64 1.3.3-1 [5262 B] 1735s Get:84 http://ftpmaster.internal/ubuntu questing/main amd64 mesa-libgallium amd64 25.0.3-1ubuntu2 [12.1 MB] 1736s Get:85 http://ftpmaster.internal/ubuntu questing/main amd64 libwayland-server0 amd64 1.23.1-3 [37.2 kB] 1736s Get:86 http://ftpmaster.internal/ubuntu questing/main amd64 libgbm1 amd64 25.0.3-1ubuntu2 [33.4 kB] 1736s Get:87 http://ftpmaster.internal/ubuntu questing/main amd64 libvulkan1 amd64 1.4.304.0-1 [147 kB] 1736s Get:88 http://ftpmaster.internal/ubuntu questing/main amd64 libgl1-mesa-dri amd64 25.0.3-1ubuntu2 [35.7 kB] 1736s Get:89 http://ftpmaster.internal/ubuntu questing/main amd64 libglx-mesa0 amd64 25.0.3-1ubuntu2 [146 kB] 1736s Get:90 http://ftpmaster.internal/ubuntu questing/main amd64 libglx0 amd64 1.7.0-1build1 [38.6 kB] 1736s Get:91 http://ftpmaster.internal/ubuntu questing/main amd64 libgl1 amd64 1.7.0-1build1 [102 kB] 1736s Get:92 http://ftpmaster.internal/ubuntu questing/main amd64 libasound2-data all 1.2.13-1build1 [21.1 kB] 1736s Get:93 http://ftpmaster.internal/ubuntu questing/main amd64 libasound2t64 amd64 1.2.13-1build1 [437 kB] 1736s Get:94 http://ftpmaster.internal/ubuntu questing/main amd64 libgif7 amd64 5.2.2-1ubuntu2 [36.0 kB] 1736s Get:95 http://ftpmaster.internal/ubuntu questing/main amd64 x11-common all 1:7.7+23ubuntu4 [21.8 kB] 1736s Get:96 http://ftpmaster.internal/ubuntu questing/main amd64 libxtst6 amd64 2:1.2.5-1 [13.0 kB] 1736s Get:97 http://ftpmaster.internal/ubuntu questing/main amd64 openjdk-21-jre amd64 21.0.7~8ea-1 [220 kB] 1736s Get:98 http://ftpmaster.internal/ubuntu questing/main amd64 default-jre amd64 2:1.21-76 [918 B] 1736s Get:99 http://ftpmaster.internal/ubuntu questing/universe amd64 libhamcrest-java all 2.2-2 [117 kB] 1736s Get:100 http://ftpmaster.internal/ubuntu questing/universe amd64 junit4 all 4.13.2-5 [348 kB] 1736s Get:101 http://ftpmaster.internal/ubuntu questing/universe amd64 libcommons-cli-java all 1.6.0-1 [59.9 kB] 1736s Get:102 http://ftpmaster.internal/ubuntu questing/universe amd64 libapache-pom-java all 33-2 [5874 B] 1736s Get:103 http://ftpmaster.internal/ubuntu questing/universe amd64 libcommons-parent-java all 56-1 [10.7 kB] 1736s Get:104 http://ftpmaster.internal/ubuntu questing/universe amd64 libcommons-io-java all 2.18.0-1 [477 kB] 1736s Get:105 http://ftpmaster.internal/ubuntu questing/universe amd64 libdropwizard-metrics-java all 3.2.6-1 [240 kB] 1736s Get:106 http://ftpmaster.internal/ubuntu questing/universe amd64 libfindbugs-annotations-java all 3.1.0~preview2-4 [48.9 kB] 1736s Get:107 http://ftpmaster.internal/ubuntu questing/universe amd64 libatinject-jsr330-api-java all 1.0+ds1-6 [5076 B] 1736s Get:108 http://ftpmaster.internal/ubuntu questing/universe amd64 liberror-prone-java all 2.18.0-1 [22.5 kB] 1736s Get:109 http://ftpmaster.internal/ubuntu questing/universe amd64 libjsr305-java all 0.1~+svn49-12 [27.0 kB] 1736s Get:110 http://ftpmaster.internal/ubuntu questing/universe amd64 libguava-java all 32.0.1-1 [2692 kB] 1736s Get:111 http://ftpmaster.internal/ubuntu questing/universe amd64 libjackson2-annotations-java all 2.14.0-1 [64.7 kB] 1736s Get:112 http://ftpmaster.internal/ubuntu questing/universe amd64 libjackson2-core-java all 2.14.1-1 [432 kB] 1736s Get:113 http://ftpmaster.internal/ubuntu questing/universe amd64 libjackson2-databind-java all 2.14.0+ds-1 [1481 kB] 1737s Get:114 http://ftpmaster.internal/ubuntu questing/universe amd64 libasm-java all 9.7.1-1 [388 kB] 1737s Get:115 http://ftpmaster.internal/ubuntu questing/universe amd64 libel-api-java all 3.0.0-3 [64.9 kB] 1737s Get:116 http://ftpmaster.internal/ubuntu questing/universe amd64 libjsp-api-java all 2.3.4-3 [53.7 kB] 1737s Get:117 http://ftpmaster.internal/ubuntu questing/universe amd64 libservlet-api-java all 4.0.1-2 [81.0 kB] 1737s Get:118 http://ftpmaster.internal/ubuntu questing/universe amd64 libwebsocket-api-java all 1.1-2 [40.1 kB] 1737s Get:119 http://ftpmaster.internal/ubuntu questing/universe amd64 libjetty9-java all 9.4.57-1 [2791 kB] 1737s Get:120 http://ftpmaster.internal/ubuntu questing/universe amd64 libjnr-constants-java all 0.10.4-2 [1397 kB] 1737s Get:121 http://ftpmaster.internal/ubuntu questing/universe amd64 libjffi-jni amd64 1.3.13+ds-1 [27.3 kB] 1737s Get:122 http://ftpmaster.internal/ubuntu questing/universe amd64 libjffi-java all 1.3.13+ds-1 [112 kB] 1737s Get:123 http://ftpmaster.internal/ubuntu questing/universe amd64 libjnr-x86asm-java all 1.0.2-6 [216 kB] 1737s Get:124 http://ftpmaster.internal/ubuntu questing/universe amd64 libjnr-ffi-java all 2.2.15-2 [627 kB] 1737s Get:125 http://ftpmaster.internal/ubuntu questing/universe amd64 libjnr-enxio-java all 0.32.16-1 [33.7 kB] 1737s Get:126 http://ftpmaster.internal/ubuntu questing/universe amd64 libjnr-posix-java all 3.1.18-1 [267 kB] 1737s Get:127 http://ftpmaster.internal/ubuntu questing/universe amd64 libjnr-unixsocket-java all 0.38.21-2 [46.9 kB] 1737s Get:128 http://ftpmaster.internal/ubuntu questing/universe amd64 libactivation-java all 1.2.0-2 [84.7 kB] 1737s Get:129 http://ftpmaster.internal/ubuntu questing/universe amd64 libmail-java all 1.6.5-3 [681 kB] 1737s Get:130 http://ftpmaster.internal/ubuntu questing/universe amd64 libcommons-logging-java all 1.3.0-1ubuntu1 [63.8 kB] 1737s Get:131 http://ftpmaster.internal/ubuntu questing/universe amd64 libjaxb-api-java all 2.3.1-1 [119 kB] 1737s Get:132 http://ftpmaster.internal/ubuntu questing/universe amd64 libspring-core-java all 4.3.30-2ubuntu1 [1015 kB] 1737s Get:133 http://ftpmaster.internal/ubuntu questing/universe amd64 libspring-beans-java all 4.3.30-2ubuntu1 [677 kB] 1737s Get:134 http://ftpmaster.internal/ubuntu questing/universe amd64 libtaglibs-standard-spec-java all 1.2.5-3 [35.2 kB] 1737s Get:135 http://ftpmaster.internal/ubuntu questing/universe amd64 libtaglibs-standard-impl-java all 1.2.5-3 [182 kB] 1737s Get:136 http://ftpmaster.internal/ubuntu questing/universe amd64 libeclipse-jdt-core-compiler-batch-java all 3.35.0+eclipse4.29-2 [2933 kB] 1737s Get:137 http://ftpmaster.internal/ubuntu questing/universe amd64 libeclipse-jdt-core-java all 3.35.0+eclipse4.29-2 [3831 kB] 1737s Get:138 http://ftpmaster.internal/ubuntu questing/universe amd64 libtomcat9-java all 9.0.70-2ubuntu1.1 [6161 kB] 1737s Get:139 http://ftpmaster.internal/ubuntu questing/universe amd64 libjetty9-extra-java all 9.4.57-1 [1199 kB] 1737s Get:140 http://ftpmaster.internal/ubuntu questing/universe amd64 libjavaparser-java all 3.26.1-1 [1326 kB] 1737s Get:141 http://ftpmaster.internal/ubuntu questing/universe amd64 libjctools-java all 4.0.5+dfsg-1 [506 kB] 1737s Get:142 http://ftpmaster.internal/ubuntu questing/universe amd64 libnetty-java all 1:4.1.48-10 [3628 kB] 1738s Get:143 http://ftpmaster.internal/ubuntu questing/universe amd64 libslf4j-java all 1.7.32-1 [141 kB] 1738s Get:144 http://ftpmaster.internal/ubuntu questing/main amd64 libsnappy1v5 amd64 1.2.1-1 [30.4 kB] 1738s Get:145 http://ftpmaster.internal/ubuntu questing/universe amd64 libsnappy-jni amd64 1.1.10.7-1 [6786 B] 1738s Get:146 http://ftpmaster.internal/ubuntu questing/universe amd64 libsnappy-java all 1.1.10.7-1 [83.6 kB] 1738s Get:147 http://ftpmaster.internal/ubuntu questing/main amd64 libapr1t64 amd64 1.7.5-1 [116 kB] 1738s Get:148 http://ftpmaster.internal/ubuntu questing/universe amd64 libnetty-tcnative-jni amd64 2.0.28-1build4 [35.7 kB] 1738s Get:149 http://ftpmaster.internal/ubuntu questing/universe amd64 libnetty-tcnative-java all 2.0.28-1build4 [24.8 kB] 1738s Get:150 http://ftpmaster.internal/ubuntu questing/universe amd64 liblog4j1.2-java all 1.2.17-11 [439 kB] 1738s Get:151 http://ftpmaster.internal/ubuntu questing/universe amd64 libzookeeper-java all 3.9.3-1build1 [1890 kB] 1738s Get:152 http://ftpmaster.internal/ubuntu questing/universe amd64 zookeeper all 3.9.3-1build1 [57.8 kB] 1738s Get:153 http://ftpmaster.internal/ubuntu questing/universe amd64 zookeeperd all 3.9.3-1build1 [6016 B] 1738s Get:154 http://ftpmaster.internal/ubuntu questing/main amd64 fonts-font-awesome all 5.0.10+really4.7.0~dfsg-4.1 [516 kB] 1738s Get:155 http://ftpmaster.internal/ubuntu questing/main amd64 libcares2 amd64 1.34.4-2.1 [109 kB] 1738s Get:156 http://ftpmaster.internal/ubuntu questing/universe amd64 libev4t64 amd64 1:4.33-2.1build1 [31.0 kB] 1738s Get:157 http://ftpmaster.internal/ubuntu questing/main amd64 libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 1738s Get:158 http://ftpmaster.internal/ubuntu questing/main amd64 libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [118 kB] 1738s Get:159 http://ftpmaster.internal/ubuntu questing/main amd64 libjs-sphinxdoc all 8.1.3-5 [31.0 kB] 1738s Get:160 http://ftpmaster.internal/ubuntu questing/main amd64 libllvm20 amd64 1:20.1.2-0ubuntu1 [30.5 MB] 1739s Get:161 http://ftpmaster.internal/ubuntu questing/main amd64 libpq5 amd64 17.4-1 [155 kB] 1739s Get:162 http://ftpmaster.internal/ubuntu questing/main amd64 libtime-duration-perl all 1.21-2 [12.3 kB] 1739s Get:163 http://ftpmaster.internal/ubuntu questing/main amd64 libtimedate-perl all 2.3300-2 [34.0 kB] 1739s Get:164 http://ftpmaster.internal/ubuntu questing/main amd64 libxslt1.1 amd64 1.1.39-0exp1ubuntu4 [176 kB] 1739s Get:165 http://ftpmaster.internal/ubuntu questing/universe amd64 moreutils amd64 0.69-1 [56.4 kB] 1739s Get:166 http://ftpmaster.internal/ubuntu questing/main amd64 python3-click all 8.2.0+0.really.8.1.8-1 [80.0 kB] 1739s Get:167 http://ftpmaster.internal/ubuntu questing/main amd64 python3-wcwidth all 0.2.13+dfsg1-1 [26.3 kB] 1739s Get:168 http://ftpmaster.internal/ubuntu questing/main amd64 python3-prettytable all 3.12.0-1 [36.5 kB] 1739s Get:169 http://ftpmaster.internal/ubuntu questing-proposed/main amd64 python3-psutil amd64 7.0.0-2 [188 kB] 1739s Get:170 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-ydiff all 1.4.2-1 [19.0 kB] 1739s Get:171 http://ftpmaster.internal/ubuntu questing/main amd64 python3-psycopg2 amd64 2.9.10-1build1 [142 kB] 1739s Get:172 http://ftpmaster.internal/ubuntu questing/main amd64 python3-greenlet amd64 3.1.0-1build1 [166 kB] 1739s Get:173 http://ftpmaster.internal/ubuntu questing/main amd64 python3-dnspython all 2.7.0-1ubuntu1 [167 kB] 1739s Get:174 http://ftpmaster.internal/ubuntu questing/main amd64 python3-eventlet all 0.39.0-0ubuntu1 [277 kB] 1739s Get:175 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-zope.event all 5.0-0.1 [7512 B] 1739s Get:176 http://ftpmaster.internal/ubuntu questing/main amd64 python3-zope.interface amd64 7.2-1build1 [142 kB] 1739s Get:177 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-gevent amd64 24.11.1-1build1 [905 kB] 1739s Get:178 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-kerberos amd64 1.1.14-3.1build11 [21.4 kB] 1739s Get:179 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-pure-sasl all 0.5.1+dfsg1-5 [11.4 kB] 1739s Get:180 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-kazoo all 2.9.0-2 [103 kB] 1739s Get:181 http://ftpmaster.internal/ubuntu questing/universe amd64 patroni all 4.0.4-7 [281 kB] 1739s Get:182 http://ftpmaster.internal/ubuntu questing/main amd64 sphinx-rtd-theme-common all 3.0.2+dfsg-2 [1014 kB] 1739s Get:183 http://ftpmaster.internal/ubuntu questing/universe amd64 patroni-doc all 4.0.4-7 [526 kB] 1739s Get:184 http://ftpmaster.internal/ubuntu questing/main amd64 postgresql-client-17 amd64 17.4-1 [1425 kB] 1739s Get:185 http://ftpmaster.internal/ubuntu questing/main amd64 postgresql-17 amd64 17.4-1 [16.6 MB] 1740s Get:186 http://ftpmaster.internal/ubuntu questing/main amd64 postgresql all 17+274 [14.4 kB] 1740s Get:187 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-parse all 1.20.2-1 [27.0 kB] 1740s Get:188 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-parse-type all 0.6.4-2 [23.5 kB] 1740s Get:189 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-behave all 1.2.6-6 [98.6 kB] 1740s Get:190 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-coverage amd64 7.6.0+dfsg1-2build1 [153 kB] 1740s Preconfiguring packages ... 1740s /var/cache/debconf/tmp.ci/postgresql.config.dSjBPA: 12: pg_lsclusters: not found 1740s Fetched 167 MB in 8s (20.6 MB/s) 1740s Selecting previously unselected package fonts-lato. 1741s (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 ... 80514 files and directories currently installed.) 1741s Preparing to unpack .../000-fonts-lato_2.015-1_all.deb ... 1741s Unpacking fonts-lato (2.015-1) ... 1741s Selecting previously unselected package libjson-perl. 1741s Preparing to unpack .../001-libjson-perl_4.10000-1_all.deb ... 1741s Unpacking libjson-perl (4.10000-1) ... 1741s Selecting previously unselected package postgresql-client-common. 1741s Preparing to unpack .../002-postgresql-client-common_274_all.deb ... 1741s Unpacking postgresql-client-common (274) ... 1741s Selecting previously unselected package libio-pty-perl. 1741s Preparing to unpack .../003-libio-pty-perl_1%3a1.20-1build3_amd64.deb ... 1741s Unpacking libio-pty-perl (1:1.20-1build3) ... 1741s Selecting previously unselected package libipc-run-perl. 1741s Preparing to unpack .../004-libipc-run-perl_20231003.0-2_all.deb ... 1741s Unpacking libipc-run-perl (20231003.0-2) ... 1741s Selecting previously unselected package postgresql-common-dev. 1741s Preparing to unpack .../005-postgresql-common-dev_274_all.deb ... 1741s Unpacking postgresql-common-dev (274) ... 1741s Selecting previously unselected package ssl-cert. 1741s Preparing to unpack .../006-ssl-cert_1.1.3ubuntu1_all.deb ... 1741s Unpacking ssl-cert (1.1.3ubuntu1) ... 1741s Selecting previously unselected package postgresql-common. 1741s Preparing to unpack .../007-postgresql-common_274_all.deb ... 1741s Adding 'diversion of /usr/bin/pg_config to /usr/bin/pg_config.libpq-dev by postgresql-common' 1741s Unpacking postgresql-common (274) ... 1741s Selecting previously unselected package ca-certificates-java. 1741s Preparing to unpack .../008-ca-certificates-java_20240118_all.deb ... 1741s Unpacking ca-certificates-java (20240118) ... 1741s Selecting previously unselected package java-common. 1741s Preparing to unpack .../009-java-common_0.76_all.deb ... 1741s Unpacking java-common (0.76) ... 1741s Selecting previously unselected package liblcms2-2:amd64. 1741s Preparing to unpack .../010-liblcms2-2_2.16-2_amd64.deb ... 1741s Unpacking liblcms2-2:amd64 (2.16-2) ... 1741s Selecting previously unselected package libjpeg-turbo8:amd64. 1741s Preparing to unpack .../011-libjpeg-turbo8_2.1.5-3ubuntu2_amd64.deb ... 1741s Unpacking libjpeg-turbo8:amd64 (2.1.5-3ubuntu2) ... 1741s Selecting previously unselected package libjpeg8:amd64. 1741s Preparing to unpack .../012-libjpeg8_8c-2ubuntu11_amd64.deb ... 1741s Unpacking libjpeg8:amd64 (8c-2ubuntu11) ... 1741s Selecting previously unselected package libpcsclite1:amd64. 1741s Preparing to unpack .../013-libpcsclite1_2.3.1-1_amd64.deb ... 1741s Unpacking libpcsclite1:amd64 (2.3.1-1) ... 1741s Selecting previously unselected package openjdk-21-jre-headless:amd64. 1741s Preparing to unpack .../014-openjdk-21-jre-headless_21.0.7~8ea-1_amd64.deb ... 1741s Unpacking openjdk-21-jre-headless:amd64 (21.0.7~8ea-1) ... 1742s Selecting previously unselected package default-jre-headless. 1742s Preparing to unpack .../015-default-jre-headless_2%3a1.21-76_amd64.deb ... 1742s Unpacking default-jre-headless (2:1.21-76) ... 1742s Selecting previously unselected package libgdk-pixbuf2.0-common. 1742s Preparing to unpack .../016-libgdk-pixbuf2.0-common_2.42.12+dfsg-2_all.deb ... 1742s Unpacking libgdk-pixbuf2.0-common (2.42.12+dfsg-2) ... 1742s Selecting previously unselected package libdeflate0:amd64. 1742s Preparing to unpack .../017-libdeflate0_1.23-1_amd64.deb ... 1742s Unpacking libdeflate0:amd64 (1.23-1) ... 1742s Selecting previously unselected package libjbig0:amd64. 1742s Preparing to unpack .../018-libjbig0_2.1-6.1ubuntu2_amd64.deb ... 1742s Unpacking libjbig0:amd64 (2.1-6.1ubuntu2) ... 1742s Selecting previously unselected package liblerc4:amd64. 1742s Preparing to unpack .../019-liblerc4_4.0.0+ds-5ubuntu1_amd64.deb ... 1742s Unpacking liblerc4:amd64 (4.0.0+ds-5ubuntu1) ... 1742s Selecting previously unselected package libsharpyuv0:amd64. 1742s Preparing to unpack .../020-libsharpyuv0_1.5.0-0.1_amd64.deb ... 1742s Unpacking libsharpyuv0:amd64 (1.5.0-0.1) ... 1742s Selecting previously unselected package libwebp7:amd64. 1742s Preparing to unpack .../021-libwebp7_1.5.0-0.1_amd64.deb ... 1742s Unpacking libwebp7:amd64 (1.5.0-0.1) ... 1742s Selecting previously unselected package libtiff6:amd64. 1742s Preparing to unpack .../022-libtiff6_4.7.0-3ubuntu1_amd64.deb ... 1742s Unpacking libtiff6:amd64 (4.7.0-3ubuntu1) ... 1742s Selecting previously unselected package libgdk-pixbuf-2.0-0:amd64. 1742s Preparing to unpack .../023-libgdk-pixbuf-2.0-0_2.42.12+dfsg-2_amd64.deb ... 1742s Unpacking libgdk-pixbuf-2.0-0:amd64 (2.42.12+dfsg-2) ... 1742s Selecting previously unselected package gtk-update-icon-cache. 1742s Preparing to unpack .../024-gtk-update-icon-cache_4.18.4+ds-1_amd64.deb ... 1742s No diversion 'diversion of /usr/sbin/update-icon-caches to /usr/sbin/update-icon-caches.gtk2 by libgtk-3-bin', none removed. 1742s 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. 1742s Unpacking gtk-update-icon-cache (4.18.4+ds-1) ... 1742s Selecting previously unselected package hicolor-icon-theme. 1742s Preparing to unpack .../025-hicolor-icon-theme_0.18-2_all.deb ... 1742s Unpacking hicolor-icon-theme (0.18-2) ... 1743s Selecting previously unselected package adwaita-icon-theme. 1743s Preparing to unpack .../026-adwaita-icon-theme_48.0-1_all.deb ... 1743s Unpacking adwaita-icon-theme (48.0-1) ... 1743s Selecting previously unselected package at-spi2-common. 1743s Preparing to unpack .../027-at-spi2-common_2.56.1-1_all.deb ... 1743s Unpacking at-spi2-common (2.56.1-1) ... 1743s Selecting previously unselected package libatk1.0-0t64:amd64. 1743s Preparing to unpack .../028-libatk1.0-0t64_2.56.1-1_amd64.deb ... 1743s Unpacking libatk1.0-0t64:amd64 (2.56.1-1) ... 1743s Selecting previously unselected package libxi6:amd64. 1743s Preparing to unpack .../029-libxi6_2%3a1.8.2-1_amd64.deb ... 1743s Unpacking libxi6:amd64 (2:1.8.2-1) ... 1743s Selecting previously unselected package libatspi2.0-0t64:amd64. 1743s Preparing to unpack .../030-libatspi2.0-0t64_2.56.1-1_amd64.deb ... 1743s Unpacking libatspi2.0-0t64:amd64 (2.56.1-1) ... 1743s Selecting previously unselected package libatk-bridge2.0-0t64:amd64. 1743s Preparing to unpack .../031-libatk-bridge2.0-0t64_2.56.1-1_amd64.deb ... 1743s Unpacking libatk-bridge2.0-0t64:amd64 (2.56.1-1) ... 1743s Selecting previously unselected package fonts-dejavu-mono. 1743s Preparing to unpack .../032-fonts-dejavu-mono_2.37-8_all.deb ... 1743s Unpacking fonts-dejavu-mono (2.37-8) ... 1743s Selecting previously unselected package fonts-dejavu-core. 1743s Preparing to unpack .../033-fonts-dejavu-core_2.37-8_all.deb ... 1743s Unpacking fonts-dejavu-core (2.37-8) ... 1743s Selecting previously unselected package fontconfig-config. 1743s Preparing to unpack .../034-fontconfig-config_2.15.0-2.2ubuntu1_amd64.deb ... 1743s Unpacking fontconfig-config (2.15.0-2.2ubuntu1) ... 1743s Selecting previously unselected package libfontconfig1:amd64. 1743s Preparing to unpack .../035-libfontconfig1_2.15.0-2.2ubuntu1_amd64.deb ... 1743s Unpacking libfontconfig1:amd64 (2.15.0-2.2ubuntu1) ... 1743s Selecting previously unselected package libpixman-1-0:amd64. 1743s Preparing to unpack .../036-libpixman-1-0_0.44.0-3_amd64.deb ... 1743s Unpacking libpixman-1-0:amd64 (0.44.0-3) ... 1743s Selecting previously unselected package libxcb-render0:amd64. 1743s Preparing to unpack .../037-libxcb-render0_1.17.0-2_amd64.deb ... 1743s Unpacking libxcb-render0:amd64 (1.17.0-2) ... 1743s Selecting previously unselected package libxcb-shm0:amd64. 1743s Preparing to unpack .../038-libxcb-shm0_1.17.0-2_amd64.deb ... 1743s Unpacking libxcb-shm0:amd64 (1.17.0-2) ... 1743s Selecting previously unselected package libxrender1:amd64. 1743s Preparing to unpack .../039-libxrender1_1%3a0.9.10-1.1build1_amd64.deb ... 1743s Unpacking libxrender1:amd64 (1:0.9.10-1.1build1) ... 1743s Selecting previously unselected package libcairo2:amd64. 1743s Preparing to unpack .../040-libcairo2_1.18.4-1_amd64.deb ... 1743s Unpacking libcairo2:amd64 (1.18.4-1) ... 1743s Selecting previously unselected package libcairo-gobject2:amd64. 1743s Preparing to unpack .../041-libcairo-gobject2_1.18.4-1_amd64.deb ... 1743s Unpacking libcairo-gobject2:amd64 (1.18.4-1) ... 1743s Selecting previously unselected package libcolord2:amd64. 1743s Preparing to unpack .../042-libcolord2_1.4.7-3_amd64.deb ... 1743s Unpacking libcolord2:amd64 (1.4.7-3) ... 1743s Selecting previously unselected package libavahi-common-data:amd64. 1744s Preparing to unpack .../043-libavahi-common-data_0.8-16ubuntu2_amd64.deb ... 1744s Unpacking libavahi-common-data:amd64 (0.8-16ubuntu2) ... 1744s Selecting previously unselected package libavahi-common3:amd64. 1744s Preparing to unpack .../044-libavahi-common3_0.8-16ubuntu2_amd64.deb ... 1744s Unpacking libavahi-common3:amd64 (0.8-16ubuntu2) ... 1744s Selecting previously unselected package libavahi-client3:amd64. 1744s Preparing to unpack .../045-libavahi-client3_0.8-16ubuntu2_amd64.deb ... 1744s Unpacking libavahi-client3:amd64 (0.8-16ubuntu2) ... 1744s Selecting previously unselected package libcups2t64:amd64. 1744s Preparing to unpack .../046-libcups2t64_2.4.12-0ubuntu1_amd64.deb ... 1744s Unpacking libcups2t64:amd64 (2.4.12-0ubuntu1) ... 1744s Selecting previously unselected package libepoxy0:amd64. 1744s Preparing to unpack .../047-libepoxy0_1.5.10-2_amd64.deb ... 1744s Unpacking libepoxy0:amd64 (1.5.10-2) ... 1744s Selecting previously unselected package libgraphite2-3:amd64. 1744s Preparing to unpack .../048-libgraphite2-3_1.3.14-2ubuntu1_amd64.deb ... 1744s Unpacking libgraphite2-3:amd64 (1.3.14-2ubuntu1) ... 1744s Selecting previously unselected package libharfbuzz0b:amd64. 1744s Preparing to unpack .../049-libharfbuzz0b_10.2.0-1_amd64.deb ... 1744s Unpacking libharfbuzz0b:amd64 (10.2.0-1) ... 1744s Selecting previously unselected package fontconfig. 1744s Preparing to unpack .../050-fontconfig_2.15.0-2.2ubuntu1_amd64.deb ... 1744s Unpacking fontconfig (2.15.0-2.2ubuntu1) ... 1744s Selecting previously unselected package libthai-data. 1744s Preparing to unpack .../051-libthai-data_0.1.29-2build1_all.deb ... 1744s Unpacking libthai-data (0.1.29-2build1) ... 1744s Selecting previously unselected package libdatrie1:amd64. 1744s Preparing to unpack .../052-libdatrie1_0.2.13-3build1_amd64.deb ... 1744s Unpacking libdatrie1:amd64 (0.2.13-3build1) ... 1744s Selecting previously unselected package libthai0:amd64. 1744s Preparing to unpack .../053-libthai0_0.1.29-2build1_amd64.deb ... 1744s Unpacking libthai0:amd64 (0.1.29-2build1) ... 1744s Selecting previously unselected package libpango-1.0-0:amd64. 1744s Preparing to unpack .../054-libpango-1.0-0_1.56.3-1_amd64.deb ... 1744s Unpacking libpango-1.0-0:amd64 (1.56.3-1) ... 1744s Selecting previously unselected package libpangoft2-1.0-0:amd64. 1744s Preparing to unpack .../055-libpangoft2-1.0-0_1.56.3-1_amd64.deb ... 1744s Unpacking libpangoft2-1.0-0:amd64 (1.56.3-1) ... 1744s Selecting previously unselected package libpangocairo-1.0-0:amd64. 1744s Preparing to unpack .../056-libpangocairo-1.0-0_1.56.3-1_amd64.deb ... 1744s Unpacking libpangocairo-1.0-0:amd64 (1.56.3-1) ... 1744s Selecting previously unselected package libwayland-client0:amd64. 1744s Preparing to unpack .../057-libwayland-client0_1.23.1-3_amd64.deb ... 1744s Unpacking libwayland-client0:amd64 (1.23.1-3) ... 1744s Selecting previously unselected package libwayland-cursor0:amd64. 1744s Preparing to unpack .../058-libwayland-cursor0_1.23.1-3_amd64.deb ... 1744s Unpacking libwayland-cursor0:amd64 (1.23.1-3) ... 1744s Selecting previously unselected package libwayland-egl1:amd64. 1744s Preparing to unpack .../059-libwayland-egl1_1.23.1-3_amd64.deb ... 1744s Unpacking libwayland-egl1:amd64 (1.23.1-3) ... 1744s Selecting previously unselected package libxcomposite1:amd64. 1744s Preparing to unpack .../060-libxcomposite1_1%3a0.4.6-1_amd64.deb ... 1744s Unpacking libxcomposite1:amd64 (1:0.4.6-1) ... 1744s Selecting previously unselected package libxfixes3:amd64. 1744s Preparing to unpack .../061-libxfixes3_1%3a6.0.0-2build1_amd64.deb ... 1744s Unpacking libxfixes3:amd64 (1:6.0.0-2build1) ... 1744s Selecting previously unselected package libxcursor1:amd64. 1744s Preparing to unpack .../062-libxcursor1_1%3a1.2.3-1_amd64.deb ... 1744s Unpacking libxcursor1:amd64 (1:1.2.3-1) ... 1744s Selecting previously unselected package libxdamage1:amd64. 1744s Preparing to unpack .../063-libxdamage1_1%3a1.1.6-1build1_amd64.deb ... 1744s Unpacking libxdamage1:amd64 (1:1.1.6-1build1) ... 1744s Selecting previously unselected package libxinerama1:amd64. 1744s Preparing to unpack .../064-libxinerama1_2%3a1.1.4-3build1_amd64.deb ... 1744s Unpacking libxinerama1:amd64 (2:1.1.4-3build1) ... 1744s Selecting previously unselected package libxrandr2:amd64. 1744s Preparing to unpack .../065-libxrandr2_2%3a1.5.4-1_amd64.deb ... 1744s Unpacking libxrandr2:amd64 (2:1.5.4-1) ... 1744s Selecting previously unselected package libdconf1:amd64. 1744s Preparing to unpack .../066-libdconf1_0.40.0-5_amd64.deb ... 1744s Unpacking libdconf1:amd64 (0.40.0-5) ... 1744s Selecting previously unselected package dconf-service. 1744s Preparing to unpack .../067-dconf-service_0.40.0-5_amd64.deb ... 1744s Unpacking dconf-service (0.40.0-5) ... 1744s Selecting previously unselected package dconf-gsettings-backend:amd64. 1744s Preparing to unpack .../068-dconf-gsettings-backend_0.40.0-5_amd64.deb ... 1744s Unpacking dconf-gsettings-backend:amd64 (0.40.0-5) ... 1744s Selecting previously unselected package libgtk-3-common. 1744s Preparing to unpack .../069-libgtk-3-common_3.24.49-2ubuntu1_all.deb ... 1744s Unpacking libgtk-3-common (3.24.49-2ubuntu1) ... 1744s Selecting previously unselected package libgtk-3-0t64:amd64. 1744s Preparing to unpack .../070-libgtk-3-0t64_3.24.49-2ubuntu1_amd64.deb ... 1744s Unpacking libgtk-3-0t64:amd64 (3.24.49-2ubuntu1) ... 1744s Selecting previously unselected package libglvnd0:amd64. 1744s Preparing to unpack .../071-libglvnd0_1.7.0-1build1_amd64.deb ... 1744s Unpacking libglvnd0:amd64 (1.7.0-1build1) ... 1744s Selecting previously unselected package libx11-xcb1:amd64. 1744s Preparing to unpack .../072-libx11-xcb1_2%3a1.8.10-2_amd64.deb ... 1744s Unpacking libx11-xcb1:amd64 (2:1.8.10-2) ... 1744s Selecting previously unselected package libxcb-dri3-0:amd64. 1744s Preparing to unpack .../073-libxcb-dri3-0_1.17.0-2_amd64.deb ... 1744s Unpacking libxcb-dri3-0:amd64 (1.17.0-2) ... 1744s Selecting previously unselected package libxcb-glx0:amd64. 1744s Preparing to unpack .../074-libxcb-glx0_1.17.0-2_amd64.deb ... 1744s Unpacking libxcb-glx0:amd64 (1.17.0-2) ... 1744s Selecting previously unselected package libxcb-present0:amd64. 1744s Preparing to unpack .../075-libxcb-present0_1.17.0-2_amd64.deb ... 1744s Unpacking libxcb-present0:amd64 (1.17.0-2) ... 1744s Selecting previously unselected package libxcb-xfixes0:amd64. 1744s Preparing to unpack .../076-libxcb-xfixes0_1.17.0-2_amd64.deb ... 1744s Unpacking libxcb-xfixes0:amd64 (1.17.0-2) ... 1744s Selecting previously unselected package libxxf86vm1:amd64. 1744s Preparing to unpack .../077-libxxf86vm1_1%3a1.1.4-1build4_amd64.deb ... 1744s Unpacking libxxf86vm1:amd64 (1:1.1.4-1build4) ... 1744s Selecting previously unselected package libpciaccess0:amd64. 1744s Preparing to unpack .../078-libpciaccess0_0.17-3build1_amd64.deb ... 1744s Unpacking libpciaccess0:amd64 (0.17-3build1) ... 1744s Selecting previously unselected package libdrm-intel1:amd64. 1744s Preparing to unpack .../079-libdrm-intel1_2.4.124-2_amd64.deb ... 1744s Unpacking libdrm-intel1:amd64 (2.4.124-2) ... 1744s Selecting previously unselected package libxcb-randr0:amd64. 1745s Preparing to unpack .../080-libxcb-randr0_1.17.0-2_amd64.deb ... 1745s Unpacking libxcb-randr0:amd64 (1.17.0-2) ... 1745s Selecting previously unselected package libxcb-sync1:amd64. 1745s Preparing to unpack .../081-libxcb-sync1_1.17.0-2_amd64.deb ... 1745s Unpacking libxcb-sync1:amd64 (1.17.0-2) ... 1745s Selecting previously unselected package libxshmfence1:amd64. 1745s Preparing to unpack .../082-libxshmfence1_1.3.3-1_amd64.deb ... 1745s Unpacking libxshmfence1:amd64 (1.3.3-1) ... 1745s Selecting previously unselected package mesa-libgallium:amd64. 1745s Preparing to unpack .../083-mesa-libgallium_25.0.3-1ubuntu2_amd64.deb ... 1745s Unpacking mesa-libgallium:amd64 (25.0.3-1ubuntu2) ... 1745s Selecting previously unselected package libwayland-server0:amd64. 1745s Preparing to unpack .../084-libwayland-server0_1.23.1-3_amd64.deb ... 1745s Unpacking libwayland-server0:amd64 (1.23.1-3) ... 1745s Selecting previously unselected package libgbm1:amd64. 1745s Preparing to unpack .../085-libgbm1_25.0.3-1ubuntu2_amd64.deb ... 1745s Unpacking libgbm1:amd64 (25.0.3-1ubuntu2) ... 1745s Selecting previously unselected package libvulkan1:amd64. 1745s Preparing to unpack .../086-libvulkan1_1.4.304.0-1_amd64.deb ... 1745s Unpacking libvulkan1:amd64 (1.4.304.0-1) ... 1745s Selecting previously unselected package libgl1-mesa-dri:amd64. 1745s Preparing to unpack .../087-libgl1-mesa-dri_25.0.3-1ubuntu2_amd64.deb ... 1745s Unpacking libgl1-mesa-dri:amd64 (25.0.3-1ubuntu2) ... 1745s Selecting previously unselected package libglx-mesa0:amd64. 1745s Preparing to unpack .../088-libglx-mesa0_25.0.3-1ubuntu2_amd64.deb ... 1745s Unpacking libglx-mesa0:amd64 (25.0.3-1ubuntu2) ... 1745s Selecting previously unselected package libglx0:amd64. 1745s Preparing to unpack .../089-libglx0_1.7.0-1build1_amd64.deb ... 1745s Unpacking libglx0:amd64 (1.7.0-1build1) ... 1745s Selecting previously unselected package libgl1:amd64. 1745s Preparing to unpack .../090-libgl1_1.7.0-1build1_amd64.deb ... 1745s Unpacking libgl1:amd64 (1.7.0-1build1) ... 1745s Selecting previously unselected package libasound2-data. 1745s Preparing to unpack .../091-libasound2-data_1.2.13-1build1_all.deb ... 1745s Unpacking libasound2-data (1.2.13-1build1) ... 1745s Selecting previously unselected package libasound2t64:amd64. 1745s Preparing to unpack .../092-libasound2t64_1.2.13-1build1_amd64.deb ... 1745s Unpacking libasound2t64:amd64 (1.2.13-1build1) ... 1745s Selecting previously unselected package libgif7:amd64. 1745s Preparing to unpack .../093-libgif7_5.2.2-1ubuntu2_amd64.deb ... 1745s Unpacking libgif7:amd64 (5.2.2-1ubuntu2) ... 1745s Selecting previously unselected package x11-common. 1745s Preparing to unpack .../094-x11-common_1%3a7.7+23ubuntu4_all.deb ... 1745s Unpacking x11-common (1:7.7+23ubuntu4) ... 1745s Selecting previously unselected package libxtst6:amd64. 1745s Preparing to unpack .../095-libxtst6_2%3a1.2.5-1_amd64.deb ... 1745s Unpacking libxtst6:amd64 (2:1.2.5-1) ... 1745s Selecting previously unselected package openjdk-21-jre:amd64. 1745s Preparing to unpack .../096-openjdk-21-jre_21.0.7~8ea-1_amd64.deb ... 1745s Unpacking openjdk-21-jre:amd64 (21.0.7~8ea-1) ... 1745s Selecting previously unselected package default-jre. 1745s Preparing to unpack .../097-default-jre_2%3a1.21-76_amd64.deb ... 1745s Unpacking default-jre (2:1.21-76) ... 1745s Selecting previously unselected package libhamcrest-java. 1745s Preparing to unpack .../098-libhamcrest-java_2.2-2_all.deb ... 1745s Unpacking libhamcrest-java (2.2-2) ... 1745s Selecting previously unselected package junit4. 1745s Preparing to unpack .../099-junit4_4.13.2-5_all.deb ... 1745s Unpacking junit4 (4.13.2-5) ... 1745s Selecting previously unselected package libcommons-cli-java. 1745s Preparing to unpack .../100-libcommons-cli-java_1.6.0-1_all.deb ... 1745s Unpacking libcommons-cli-java (1.6.0-1) ... 1745s Selecting previously unselected package libapache-pom-java. 1745s Preparing to unpack .../101-libapache-pom-java_33-2_all.deb ... 1745s Unpacking libapache-pom-java (33-2) ... 1745s Selecting previously unselected package libcommons-parent-java. 1745s Preparing to unpack .../102-libcommons-parent-java_56-1_all.deb ... 1745s Unpacking libcommons-parent-java (56-1) ... 1745s Selecting previously unselected package libcommons-io-java. 1745s Preparing to unpack .../103-libcommons-io-java_2.18.0-1_all.deb ... 1745s Unpacking libcommons-io-java (2.18.0-1) ... 1745s Selecting previously unselected package libdropwizard-metrics-java. 1745s Preparing to unpack .../104-libdropwizard-metrics-java_3.2.6-1_all.deb ... 1745s Unpacking libdropwizard-metrics-java (3.2.6-1) ... 1745s Selecting previously unselected package libfindbugs-annotations-java. 1745s Preparing to unpack .../105-libfindbugs-annotations-java_3.1.0~preview2-4_all.deb ... 1745s Unpacking libfindbugs-annotations-java (3.1.0~preview2-4) ... 1745s Selecting previously unselected package libatinject-jsr330-api-java. 1745s Preparing to unpack .../106-libatinject-jsr330-api-java_1.0+ds1-6_all.deb ... 1745s Unpacking libatinject-jsr330-api-java (1.0+ds1-6) ... 1745s Selecting previously unselected package liberror-prone-java. 1745s Preparing to unpack .../107-liberror-prone-java_2.18.0-1_all.deb ... 1745s Unpacking liberror-prone-java (2.18.0-1) ... 1746s Selecting previously unselected package libjsr305-java. 1746s Preparing to unpack .../108-libjsr305-java_0.1~+svn49-12_all.deb ... 1746s Unpacking libjsr305-java (0.1~+svn49-12) ... 1746s Selecting previously unselected package libguava-java. 1746s Preparing to unpack .../109-libguava-java_32.0.1-1_all.deb ... 1746s Unpacking libguava-java (32.0.1-1) ... 1746s Selecting previously unselected package libjackson2-annotations-java. 1746s Preparing to unpack .../110-libjackson2-annotations-java_2.14.0-1_all.deb ... 1746s Unpacking libjackson2-annotations-java (2.14.0-1) ... 1746s Selecting previously unselected package libjackson2-core-java. 1746s Preparing to unpack .../111-libjackson2-core-java_2.14.1-1_all.deb ... 1746s Unpacking libjackson2-core-java (2.14.1-1) ... 1746s Selecting previously unselected package libjackson2-databind-java. 1746s Preparing to unpack .../112-libjackson2-databind-java_2.14.0+ds-1_all.deb ... 1746s Unpacking libjackson2-databind-java (2.14.0+ds-1) ... 1746s Selecting previously unselected package libasm-java. 1746s Preparing to unpack .../113-libasm-java_9.7.1-1_all.deb ... 1746s Unpacking libasm-java (9.7.1-1) ... 1746s Selecting previously unselected package libel-api-java. 1746s Preparing to unpack .../114-libel-api-java_3.0.0-3_all.deb ... 1746s Unpacking libel-api-java (3.0.0-3) ... 1746s Selecting previously unselected package libjsp-api-java. 1746s Preparing to unpack .../115-libjsp-api-java_2.3.4-3_all.deb ... 1746s Unpacking libjsp-api-java (2.3.4-3) ... 1746s Selecting previously unselected package libservlet-api-java. 1746s Preparing to unpack .../116-libservlet-api-java_4.0.1-2_all.deb ... 1746s Unpacking libservlet-api-java (4.0.1-2) ... 1746s Selecting previously unselected package libwebsocket-api-java. 1746s Preparing to unpack .../117-libwebsocket-api-java_1.1-2_all.deb ... 1746s Unpacking libwebsocket-api-java (1.1-2) ... 1746s Selecting previously unselected package libjetty9-java. 1746s Preparing to unpack .../118-libjetty9-java_9.4.57-1_all.deb ... 1746s Unpacking libjetty9-java (9.4.57-1) ... 1746s Selecting previously unselected package libjnr-constants-java. 1746s Preparing to unpack .../119-libjnr-constants-java_0.10.4-2_all.deb ... 1746s Unpacking libjnr-constants-java (0.10.4-2) ... 1746s Selecting previously unselected package libjffi-jni:amd64. 1746s Preparing to unpack .../120-libjffi-jni_1.3.13+ds-1_amd64.deb ... 1746s Unpacking libjffi-jni:amd64 (1.3.13+ds-1) ... 1746s Selecting previously unselected package libjffi-java. 1746s Preparing to unpack .../121-libjffi-java_1.3.13+ds-1_all.deb ... 1746s Unpacking libjffi-java (1.3.13+ds-1) ... 1746s Selecting previously unselected package libjnr-x86asm-java. 1746s Preparing to unpack .../122-libjnr-x86asm-java_1.0.2-6_all.deb ... 1746s Unpacking libjnr-x86asm-java (1.0.2-6) ... 1746s Selecting previously unselected package libjnr-ffi-java. 1746s Preparing to unpack .../123-libjnr-ffi-java_2.2.15-2_all.deb ... 1746s Unpacking libjnr-ffi-java (2.2.15-2) ... 1746s Selecting previously unselected package libjnr-enxio-java. 1746s Preparing to unpack .../124-libjnr-enxio-java_0.32.16-1_all.deb ... 1746s Unpacking libjnr-enxio-java (0.32.16-1) ... 1746s Selecting previously unselected package libjnr-posix-java. 1746s Preparing to unpack .../125-libjnr-posix-java_3.1.18-1_all.deb ... 1746s Unpacking libjnr-posix-java (3.1.18-1) ... 1746s Selecting previously unselected package libjnr-unixsocket-java. 1746s Preparing to unpack .../126-libjnr-unixsocket-java_0.38.21-2_all.deb ... 1746s Unpacking libjnr-unixsocket-java (0.38.21-2) ... 1746s Selecting previously unselected package libactivation-java. 1746s Preparing to unpack .../127-libactivation-java_1.2.0-2_all.deb ... 1746s Unpacking libactivation-java (1.2.0-2) ... 1746s Selecting previously unselected package libmail-java. 1746s Preparing to unpack .../128-libmail-java_1.6.5-3_all.deb ... 1746s Unpacking libmail-java (1.6.5-3) ... 1746s Selecting previously unselected package libcommons-logging-java. 1746s Preparing to unpack .../129-libcommons-logging-java_1.3.0-1ubuntu1_all.deb ... 1746s Unpacking libcommons-logging-java (1.3.0-1ubuntu1) ... 1746s Selecting previously unselected package libjaxb-api-java. 1746s Preparing to unpack .../130-libjaxb-api-java_2.3.1-1_all.deb ... 1746s Unpacking libjaxb-api-java (2.3.1-1) ... 1746s Selecting previously unselected package libspring-core-java. 1746s Preparing to unpack .../131-libspring-core-java_4.3.30-2ubuntu1_all.deb ... 1746s Unpacking libspring-core-java (4.3.30-2ubuntu1) ... 1746s Selecting previously unselected package libspring-beans-java. 1746s Preparing to unpack .../132-libspring-beans-java_4.3.30-2ubuntu1_all.deb ... 1746s Unpacking libspring-beans-java (4.3.30-2ubuntu1) ... 1746s Selecting previously unselected package libtaglibs-standard-spec-java. 1746s Preparing to unpack .../133-libtaglibs-standard-spec-java_1.2.5-3_all.deb ... 1746s Unpacking libtaglibs-standard-spec-java (1.2.5-3) ... 1746s Selecting previously unselected package libtaglibs-standard-impl-java. 1746s Preparing to unpack .../134-libtaglibs-standard-impl-java_1.2.5-3_all.deb ... 1746s Unpacking libtaglibs-standard-impl-java (1.2.5-3) ... 1746s Selecting previously unselected package libeclipse-jdt-core-compiler-batch-java. 1746s Preparing to unpack .../135-libeclipse-jdt-core-compiler-batch-java_3.35.0+eclipse4.29-2_all.deb ... 1746s Unpacking libeclipse-jdt-core-compiler-batch-java (3.35.0+eclipse4.29-2) ... 1746s Selecting previously unselected package libeclipse-jdt-core-java. 1746s Preparing to unpack .../136-libeclipse-jdt-core-java_3.35.0+eclipse4.29-2_all.deb ... 1746s Unpacking libeclipse-jdt-core-java (3.35.0+eclipse4.29-2) ... 1746s Selecting previously unselected package libtomcat9-java. 1746s Preparing to unpack .../137-libtomcat9-java_9.0.70-2ubuntu1.1_all.deb ... 1746s Unpacking libtomcat9-java (9.0.70-2ubuntu1.1) ... 1747s Selecting previously unselected package libjetty9-extra-java. 1747s Preparing to unpack .../138-libjetty9-extra-java_9.4.57-1_all.deb ... 1747s Unpacking libjetty9-extra-java (9.4.57-1) ... 1747s Selecting previously unselected package libjavaparser-java. 1747s Preparing to unpack .../139-libjavaparser-java_3.26.1-1_all.deb ... 1747s Unpacking libjavaparser-java (3.26.1-1) ... 1747s Selecting previously unselected package libjctools-java. 1747s Preparing to unpack .../140-libjctools-java_4.0.5+dfsg-1_all.deb ... 1747s Unpacking libjctools-java (4.0.5+dfsg-1) ... 1747s Selecting previously unselected package libnetty-java. 1747s Preparing to unpack .../141-libnetty-java_1%3a4.1.48-10_all.deb ... 1747s Unpacking libnetty-java (1:4.1.48-10) ... 1747s Selecting previously unselected package libslf4j-java. 1747s Preparing to unpack .../142-libslf4j-java_1.7.32-1_all.deb ... 1747s Unpacking libslf4j-java (1.7.32-1) ... 1747s Selecting previously unselected package libsnappy1v5:amd64. 1747s Preparing to unpack .../143-libsnappy1v5_1.2.1-1_amd64.deb ... 1747s Unpacking libsnappy1v5:amd64 (1.2.1-1) ... 1747s Selecting previously unselected package libsnappy-jni. 1747s Preparing to unpack .../144-libsnappy-jni_1.1.10.7-1_amd64.deb ... 1747s Unpacking libsnappy-jni (1.1.10.7-1) ... 1747s Selecting previously unselected package libsnappy-java. 1747s Preparing to unpack .../145-libsnappy-java_1.1.10.7-1_all.deb ... 1747s Unpacking libsnappy-java (1.1.10.7-1) ... 1747s Selecting previously unselected package libapr1t64:amd64. 1747s Preparing to unpack .../146-libapr1t64_1.7.5-1_amd64.deb ... 1747s Unpacking libapr1t64:amd64 (1.7.5-1) ... 1747s Selecting previously unselected package libnetty-tcnative-jni. 1747s Preparing to unpack .../147-libnetty-tcnative-jni_2.0.28-1build4_amd64.deb ... 1747s Unpacking libnetty-tcnative-jni (2.0.28-1build4) ... 1747s Selecting previously unselected package libnetty-tcnative-java. 1747s Preparing to unpack .../148-libnetty-tcnative-java_2.0.28-1build4_all.deb ... 1747s Unpacking libnetty-tcnative-java (2.0.28-1build4) ... 1747s Selecting previously unselected package liblog4j1.2-java. 1747s Preparing to unpack .../149-liblog4j1.2-java_1.2.17-11_all.deb ... 1747s Unpacking liblog4j1.2-java (1.2.17-11) ... 1747s Selecting previously unselected package libzookeeper-java. 1747s Preparing to unpack .../150-libzookeeper-java_3.9.3-1build1_all.deb ... 1747s Unpacking libzookeeper-java (3.9.3-1build1) ... 1747s Selecting previously unselected package zookeeper. 1747s Preparing to unpack .../151-zookeeper_3.9.3-1build1_all.deb ... 1747s Unpacking zookeeper (3.9.3-1build1) ... 1747s Selecting previously unselected package zookeeperd. 1747s Preparing to unpack .../152-zookeeperd_3.9.3-1build1_all.deb ... 1747s Unpacking zookeeperd (3.9.3-1build1) ... 1747s Selecting previously unselected package fonts-font-awesome. 1747s Preparing to unpack .../153-fonts-font-awesome_5.0.10+really4.7.0~dfsg-4.1_all.deb ... 1747s Unpacking fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 1747s Selecting previously unselected package libcares2:amd64. 1747s Preparing to unpack .../154-libcares2_1.34.4-2.1_amd64.deb ... 1747s Unpacking libcares2:amd64 (1.34.4-2.1) ... 1747s Selecting previously unselected package libev4t64:amd64. 1747s Preparing to unpack .../155-libev4t64_1%3a4.33-2.1build1_amd64.deb ... 1747s Unpacking libev4t64:amd64 (1:4.33-2.1build1) ... 1747s Selecting previously unselected package libjs-jquery. 1747s Preparing to unpack .../156-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 1747s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 1747s Selecting previously unselected package libjs-underscore. 1747s Preparing to unpack .../157-libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ... 1747s Unpacking libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 1747s Selecting previously unselected package libjs-sphinxdoc. 1747s Preparing to unpack .../158-libjs-sphinxdoc_8.1.3-5_all.deb ... 1747s Unpacking libjs-sphinxdoc (8.1.3-5) ... 1747s Selecting previously unselected package libllvm20:amd64. 1747s Preparing to unpack .../159-libllvm20_1%3a20.1.2-0ubuntu1_amd64.deb ... 1747s Unpacking libllvm20:amd64 (1:20.1.2-0ubuntu1) ... 1748s Selecting previously unselected package libpq5:amd64. 1748s Preparing to unpack .../160-libpq5_17.4-1_amd64.deb ... 1748s Unpacking libpq5:amd64 (17.4-1) ... 1748s Selecting previously unselected package libtime-duration-perl. 1748s Preparing to unpack .../161-libtime-duration-perl_1.21-2_all.deb ... 1748s Unpacking libtime-duration-perl (1.21-2) ... 1748s Selecting previously unselected package libtimedate-perl. 1748s Preparing to unpack .../162-libtimedate-perl_2.3300-2_all.deb ... 1748s Unpacking libtimedate-perl (2.3300-2) ... 1748s Selecting previously unselected package libxslt1.1:amd64. 1748s Preparing to unpack .../163-libxslt1.1_1.1.39-0exp1ubuntu4_amd64.deb ... 1748s Unpacking libxslt1.1:amd64 (1.1.39-0exp1ubuntu4) ... 1748s Selecting previously unselected package moreutils. 1748s Preparing to unpack .../164-moreutils_0.69-1_amd64.deb ... 1748s Unpacking moreutils (0.69-1) ... 1748s Selecting previously unselected package python3-click. 1748s Preparing to unpack .../165-python3-click_8.2.0+0.really.8.1.8-1_all.deb ... 1748s Unpacking python3-click (8.2.0+0.really.8.1.8-1) ... 1748s Selecting previously unselected package python3-wcwidth. 1748s Preparing to unpack .../166-python3-wcwidth_0.2.13+dfsg1-1_all.deb ... 1748s Unpacking python3-wcwidth (0.2.13+dfsg1-1) ... 1748s Selecting previously unselected package python3-prettytable. 1748s Preparing to unpack .../167-python3-prettytable_3.12.0-1_all.deb ... 1748s Unpacking python3-prettytable (3.12.0-1) ... 1748s Selecting previously unselected package python3-psutil. 1748s Preparing to unpack .../168-python3-psutil_7.0.0-2_amd64.deb ... 1748s Unpacking python3-psutil (7.0.0-2) ... 1748s Selecting previously unselected package python3-ydiff. 1748s Preparing to unpack .../169-python3-ydiff_1.4.2-1_all.deb ... 1748s Unpacking python3-ydiff (1.4.2-1) ... 1748s Selecting previously unselected package python3-psycopg2. 1748s Preparing to unpack .../170-python3-psycopg2_2.9.10-1build1_amd64.deb ... 1748s Unpacking python3-psycopg2 (2.9.10-1build1) ... 1748s Selecting previously unselected package python3-greenlet. 1748s Preparing to unpack .../171-python3-greenlet_3.1.0-1build1_amd64.deb ... 1748s Unpacking python3-greenlet (3.1.0-1build1) ... 1748s Selecting previously unselected package python3-dnspython. 1748s Preparing to unpack .../172-python3-dnspython_2.7.0-1ubuntu1_all.deb ... 1748s Unpacking python3-dnspython (2.7.0-1ubuntu1) ... 1748s Selecting previously unselected package python3-eventlet. 1748s Preparing to unpack .../173-python3-eventlet_0.39.0-0ubuntu1_all.deb ... 1748s Unpacking python3-eventlet (0.39.0-0ubuntu1) ... 1748s Selecting previously unselected package python3-zope.event. 1748s Preparing to unpack .../174-python3-zope.event_5.0-0.1_all.deb ... 1748s Unpacking python3-zope.event (5.0-0.1) ... 1748s Selecting previously unselected package python3-zope.interface. 1748s Preparing to unpack .../175-python3-zope.interface_7.2-1build1_amd64.deb ... 1748s Unpacking python3-zope.interface (7.2-1build1) ... 1748s Selecting previously unselected package python3-gevent. 1748s Preparing to unpack .../176-python3-gevent_24.11.1-1build1_amd64.deb ... 1748s Unpacking python3-gevent (24.11.1-1build1) ... 1748s Selecting previously unselected package python3-kerberos. 1748s Preparing to unpack .../177-python3-kerberos_1.1.14-3.1build11_amd64.deb ... 1748s Unpacking python3-kerberos (1.1.14-3.1build11) ... 1748s Selecting previously unselected package python3-pure-sasl. 1748s Preparing to unpack .../178-python3-pure-sasl_0.5.1+dfsg1-5_all.deb ... 1748s Unpacking python3-pure-sasl (0.5.1+dfsg1-5) ... 1748s Selecting previously unselected package python3-kazoo. 1748s Preparing to unpack .../179-python3-kazoo_2.9.0-2_all.deb ... 1748s Unpacking python3-kazoo (2.9.0-2) ... 1749s Selecting previously unselected package patroni. 1749s Preparing to unpack .../180-patroni_4.0.4-7_all.deb ... 1749s Unpacking patroni (4.0.4-7) ... 1749s Selecting previously unselected package sphinx-rtd-theme-common. 1749s Preparing to unpack .../181-sphinx-rtd-theme-common_3.0.2+dfsg-2_all.deb ... 1749s Unpacking sphinx-rtd-theme-common (3.0.2+dfsg-2) ... 1749s Selecting previously unselected package patroni-doc. 1749s Preparing to unpack .../182-patroni-doc_4.0.4-7_all.deb ... 1749s Unpacking patroni-doc (4.0.4-7) ... 1749s Selecting previously unselected package postgresql-client-17. 1749s Preparing to unpack .../183-postgresql-client-17_17.4-1_amd64.deb ... 1749s Unpacking postgresql-client-17 (17.4-1) ... 1749s Selecting previously unselected package postgresql-17. 1749s Preparing to unpack .../184-postgresql-17_17.4-1_amd64.deb ... 1749s Unpacking postgresql-17 (17.4-1) ... 1749s Selecting previously unselected package postgresql. 1749s Preparing to unpack .../185-postgresql_17+274_all.deb ... 1749s Unpacking postgresql (17+274) ... 1749s Selecting previously unselected package python3-parse. 1749s Preparing to unpack .../186-python3-parse_1.20.2-1_all.deb ... 1749s Unpacking python3-parse (1.20.2-1) ... 1749s Selecting previously unselected package python3-parse-type. 1749s Preparing to unpack .../187-python3-parse-type_0.6.4-2_all.deb ... 1749s Unpacking python3-parse-type (0.6.4-2) ... 1749s Selecting previously unselected package python3-behave. 1749s Preparing to unpack .../188-python3-behave_1.2.6-6_all.deb ... 1749s Unpacking python3-behave (1.2.6-6) ... 1749s Selecting previously unselected package python3-coverage. 1749s Preparing to unpack .../189-python3-coverage_7.6.0+dfsg1-2build1_amd64.deb ... 1749s Unpacking python3-coverage (7.6.0+dfsg1-2build1) ... 1749s Setting up postgresql-client-common (274) ... 1749s Setting up libgraphite2-3:amd64 (1.3.14-2ubuntu1) ... 1749s Setting up libxcb-dri3-0:amd64 (1.17.0-2) ... 1749s Setting up liblcms2-2:amd64 (2.16-2) ... 1749s Setting up libtaglibs-standard-spec-java (1.2.5-3) ... 1749s Setting up libpixman-1-0:amd64 (0.44.0-3) ... 1749s Setting up libev4t64:amd64 (1:4.33-2.1build1) ... 1749s Setting up libjackson2-annotations-java (2.14.0-1) ... 1749s Setting up libsharpyuv0:amd64 (1.5.0-0.1) ... 1749s Setting up libwayland-server0:amd64 (1.23.1-3) ... 1749s Setting up libx11-xcb1:amd64 (2:1.8.10-2) ... 1749s Setting up libpciaccess0:amd64 (0.17-3build1) ... 1749s Setting up libslf4j-java (1.7.32-1) ... 1749s Setting up fonts-lato (2.015-1) ... 1749s Setting up libeclipse-jdt-core-compiler-batch-java (3.35.0+eclipse4.29-2) ... 1749s Setting up libxdamage1:amd64 (1:1.1.6-1build1) ... 1749s Setting up libxcb-xfixes0:amd64 (1.17.0-2) ... 1749s Setting up libjavaparser-java (3.26.1-1) ... 1749s Setting up liblerc4:amd64 (4.0.0+ds-5ubuntu1) ... 1749s Setting up libjsr305-java (0.1~+svn49-12) ... 1749s Setting up hicolor-icon-theme (0.18-2) ... 1749s Setting up libxi6:amd64 (2:1.8.2-1) ... 1749s Setting up java-common (0.76) ... 1749s Setting up libxrender1:amd64 (1:0.9.10-1.1build1) ... 1749s Setting up libdatrie1:amd64 (0.2.13-3build1) ... 1749s Setting up libcommons-cli-java (1.6.0-1) ... 1749s Setting up libio-pty-perl (1:1.20-1build3) ... 1749s Setting up libxcb-render0:amd64 (1.17.0-2) ... 1749s Setting up python3-zope.event (5.0-0.1) ... 1749s Setting up python3-zope.interface (7.2-1build1) ... 1750s Setting up libglvnd0:amd64 (1.7.0-1build1) ... 1750s Setting up libxcb-glx0:amd64 (1.17.0-2) ... 1750s Setting up libdrm-intel1:amd64 (2.4.124-2) ... 1750s Setting up libgdk-pixbuf2.0-common (2.42.12+dfsg-2) ... 1750s Setting up python3-ydiff (1.4.2-1) ... 1750s Setting up libasm-java (9.7.1-1) ... 1750s Setting up x11-common (1:7.7+23ubuntu4) ... 1750s Setting up libpq5:amd64 (17.4-1) ... 1750s Setting up libdeflate0:amd64 (1.23-1) ... 1750s Setting up python3-kerberos (1.1.14-3.1build11) ... 1750s Setting up liblog4j1.2-java (1.2.17-11) ... 1750s Setting up libel-api-java (3.0.0-3) ... 1750s Setting up python3-coverage (7.6.0+dfsg1-2build1) ... 1750s Setting up libxcb-shm0:amd64 (1.17.0-2) ... 1750s Setting up python3-click (8.2.0+0.really.8.1.8-1) ... 1750s Setting up libjnr-x86asm-java (1.0.2-6) ... 1750s Setting up libjbig0:amd64 (2.1-6.1ubuntu2) ... 1750s Setting up libcolord2:amd64 (1.4.7-3) ... 1750s Setting up python3-psutil (7.0.0-2) ... 1751s Setting up libeclipse-jdt-core-java (3.35.0+eclipse4.29-2) ... 1751s Setting up libxxf86vm1:amd64 (1:1.1.4-1build4) ... 1751s Setting up libsnappy1v5:amd64 (1.2.1-1) ... 1751s Setting up libxcb-present0:amd64 (1.17.0-2) ... 1751s Setting up libtaglibs-standard-impl-java (1.2.5-3) ... 1751s Setting up libdconf1:amd64 (0.40.0-5) ... 1751s Setting up libjctools-java (4.0.5+dfsg-1) ... 1751s Setting up libdropwizard-metrics-java (3.2.6-1) ... 1751s Setting up libasound2-data (1.2.13-1build1) ... 1751s Setting up libasound2t64:amd64 (1.2.13-1build1) ... 1751s Setting up python3-wcwidth (0.2.13+dfsg1-1) ... 1751s Setting up libfindbugs-annotations-java (3.1.0~preview2-4) ... 1751s Setting up libepoxy0:amd64 (1.5.10-2) ... 1751s Setting up ssl-cert (1.1.3ubuntu1) ... 1751s Created symlink '/etc/systemd/system/multi-user.target.wants/ssl-cert.service' → '/usr/lib/systemd/system/ssl-cert.service'. 1751s Setting up libxfixes3:amd64 (1:6.0.0-2build1) ... 1751s Setting up libxcb-sync1:amd64 (1.17.0-2) ... 1751s Setting up libapache-pom-java (33-2) ... 1751s Setting up libavahi-common-data:amd64 (0.8-16ubuntu2) ... 1751s Setting up libatinject-jsr330-api-java (1.0+ds1-6) ... 1751s Setting up libatspi2.0-0t64:amd64 (2.56.1-1) ... 1752s Setting up libwebsocket-api-java (1.1-2) ... 1752s Setting up python3-greenlet (3.1.0-1build1) ... 1752s Setting up libxinerama1:amd64 (2:1.1.4-3build1) ... 1752s Setting up fonts-dejavu-mono (2.37-8) ... 1752s Setting up libcares2:amd64 (1.34.4-2.1) ... 1752s Setting up libxrandr2:amd64 (2:1.5.4-1) ... 1752s Setting up libllvm20:amd64 (1:20.1.2-0ubuntu1) ... 1752s Setting up python3-psycopg2 (2.9.10-1build1) ... 1752s Setting up fonts-dejavu-core (2.37-8) ... 1752s Setting up libipc-run-perl (20231003.0-2) ... 1752s Setting up libpcsclite1:amd64 (2.3.1-1) ... 1752s Setting up libjpeg-turbo8:amd64 (2.1.5-3ubuntu2) ... 1752s Setting up libactivation-java (1.2.0-2) ... 1752s Setting up libtomcat9-java (9.0.70-2ubuntu1.1) ... 1752s Setting up libhamcrest-java (2.2-2) ... 1752s Setting up libjsp-api-java (2.3.4-3) ... 1752s Setting up libvulkan1:amd64 (1.4.304.0-1) ... 1752s Setting up libtime-duration-perl (1.21-2) ... 1752s Setting up libwebp7:amd64 (1.5.0-0.1) ... 1752s Setting up libtimedate-perl (2.3300-2) ... 1752s Setting up libgif7:amd64 (5.2.2-1ubuntu2) ... 1752s Setting up libxshmfence1:amd64 (1.3.3-1) ... 1752s Setting up libmail-java (1.6.5-3) ... 1752s Setting up at-spi2-common (2.56.1-1) ... 1752s Setting up python3-dnspython (2.7.0-1ubuntu1) ... 1752s Setting up libnetty-java (1:4.1.48-10) ... 1752s Setting up libxcb-randr0:amd64 (1.17.0-2) ... 1752s Setting up python3-parse (1.20.2-1) ... 1752s Setting up libapr1t64:amd64 (1.7.5-1) ... 1752s Setting up libjson-perl (4.10000-1) ... 1752s Setting up libxslt1.1:amd64 (1.1.39-0exp1ubuntu4) ... 1752s Setting up libservlet-api-java (4.0.1-2) ... 1752s Setting up libjackson2-core-java (2.14.1-1) ... 1752s Setting up libharfbuzz0b:amd64 (10.2.0-1) ... 1752s Setting up libthai-data (0.1.29-2build1) ... 1752s Setting up libjffi-jni:amd64 (1.3.13+ds-1) ... 1752s Setting up libwayland-egl1:amd64 (1.23.1-3) ... 1752s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 1752s Setting up ca-certificates-java (20240118) ... 1752s No JRE found. Skipping Java certificates setup. 1752s Setting up python3-prettytable (3.12.0-1) ... 1752s Setting up libsnappy-jni (1.1.10.7-1) ... 1752s Setting up libxcomposite1:amd64 (1:0.4.6-1) ... 1752s Setting up fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 1752s Setting up sphinx-rtd-theme-common (3.0.2+dfsg-2) ... 1752s Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 1752s Setting up postgresql-common-dev (274) ... 1752s Setting up libjnr-constants-java (0.10.4-2) ... 1752s Setting up libwayland-client0:amd64 (1.23.1-3) ... 1752s Setting up libjpeg8:amd64 (8c-2ubuntu11) ... 1752s Setting up libjaxb-api-java (2.3.1-1) ... 1752s Setting up libjffi-java (1.3.13+ds-1) ... 1752s Setting up mesa-libgallium:amd64 (25.0.3-1ubuntu2) ... 1752s Setting up libjetty9-java (9.4.57-1) ... 1752s Setting up moreutils (0.69-1) ... 1752s Setting up libatk1.0-0t64:amd64 (2.56.1-1) ... 1752s Setting up openjdk-21-jre-headless:amd64 (21.0.7~8ea-1) ... 1752s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/java to provide /usr/bin/java (java) in auto mode 1752s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/jpackage to provide /usr/bin/jpackage (jpackage) in auto mode 1752s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/keytool to provide /usr/bin/keytool (keytool) in auto mode 1752s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/bin/rmiregistry to provide /usr/bin/rmiregistry (rmiregistry) in auto mode 1752s update-alternatives: using /usr/lib/jvm/java-21-openjdk-amd64/lib/jexec to provide /usr/bin/jexec (jexec) in auto mode 1752s Setting up python3-pure-sasl (0.5.1+dfsg1-5) ... 1752s Setting up libgbm1:amd64 (25.0.3-1ubuntu2) ... 1752s Setting up postgresql-client-17 (17.4-1) ... 1753s 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 1753s Setting up fontconfig-config (2.15.0-2.2ubuntu1) ... 1753s Setting up libxtst6:amd64 (2:1.2.5-1) ... 1753s Setting up libxcursor1:amd64 (1:1.2.3-1) ... 1753s Setting up libgl1-mesa-dri:amd64 (25.0.3-1ubuntu2) ... 1753s Setting up libcommons-parent-java (56-1) ... 1753s Setting up libavahi-common3:amd64 (0.8-16ubuntu2) ... 1753s Setting up libcommons-logging-java (1.3.0-1ubuntu1) ... 1753s Setting up dconf-service (0.40.0-5) ... 1753s Setting up python3-gevent (24.11.1-1build1) ... 1753s Setting up libjackson2-databind-java (2.14.0+ds-1) ... 1753s Setting up libthai0:amd64 (0.1.29-2build1) ... 1753s Setting up python3-parse-type (0.6.4-2) ... 1754s Setting up python3-eventlet (0.39.0-0ubuntu1) ... 1754s Setting up libnetty-tcnative-jni (2.0.28-1build4) ... 1754s Setting up python3-kazoo (2.9.0-2) ... 1754s Setting up postgresql-common (274) ... 1754s Creating config file /etc/postgresql-common/createcluster.conf with new version 1754s Building PostgreSQL dictionaries from installed myspell/hunspell packages... 1754s Removing obsolete dictionary files: 1755s Created symlink '/etc/systemd/system/multi-user.target.wants/postgresql.service' → '/usr/lib/systemd/system/postgresql.service'. 1755s Setting up libjs-sphinxdoc (8.1.3-5) ... 1755s Setting up libtiff6:amd64 (4.7.0-3ubuntu1) ... 1755s Setting up libwayland-cursor0:amd64 (1.23.1-3) ... 1755s Setting up libgdk-pixbuf-2.0-0:amd64 (2.42.12+dfsg-2) ... 1755s Setting up python3-behave (1.2.6-6) ... 1756s /usr/lib/python3/dist-packages/behave/formatter/ansi_escapes.py:57: SyntaxWarning: invalid escape sequence '\[' 1756s _ANSI_ESCAPE_PATTERN = re.compile(u"\x1b\[\d+[mA]", re.UNICODE) 1756s /usr/lib/python3/dist-packages/behave/matchers.py:284: SyntaxWarning: invalid escape sequence '\d' 1756s @parse.with_pattern(r"\d+") 1756s Setting up libsnappy-java (1.1.10.7-1) ... 1756s Setting up libfontconfig1:amd64 (2.15.0-2.2ubuntu1) ... 1756s Setting up patroni (4.0.4-7) ... 1756s Created symlink '/etc/systemd/system/multi-user.target.wants/patroni.service' → '/usr/lib/systemd/system/patroni.service'. 1756s Setting up libavahi-client3:amd64 (0.8-16ubuntu2) ... 1756s Setting up libjnr-ffi-java (2.2.15-2) ... 1756s Setting up libatk-bridge2.0-0t64:amd64 (2.56.1-1) ... 1756s Setting up gtk-update-icon-cache (4.18.4+ds-1) ... 1756s Setting up fontconfig (2.15.0-2.2ubuntu1) ... 1758s Regenerating fonts cache... done. 1758s Setting up postgresql-17 (17.4-1) ... 1759s Creating new PostgreSQL cluster 17/main ... 1759s /usr/lib/postgresql/17/bin/initdb -D /var/lib/postgresql/17/main --auth-local peer --auth-host scram-sha-256 --no-instructions 1759s The files belonging to this database system will be owned by user "postgres". 1759s This user must also own the server process. 1759s 1759s The database cluster will be initialized with locale "C.UTF-8". 1759s The default database encoding has accordingly been set to "UTF8". 1759s The default text search configuration will be set to "english". 1759s 1759s Data page checksums are disabled. 1759s 1759s fixing permissions on existing directory /var/lib/postgresql/17/main ... ok 1759s creating subdirectories ... ok 1759s selecting dynamic shared memory implementation ... posix 1759s selecting default "max_connections" ... 100 1759s selecting default "shared_buffers" ... 128MB 1759s selecting default time zone ... Etc/UTC 1759s creating configuration files ... ok 1759s running bootstrap script ... ok 1760s performing post-bootstrap initialization ... ok 1760s syncing data to disk ... ok 1762s Setting up libglx-mesa0:amd64 (25.0.3-1ubuntu2) ... 1762s Setting up libglx0:amd64 (1.7.0-1build1) ... 1762s Setting up libspring-core-java (4.3.30-2ubuntu1) ... 1762s Setting up dconf-gsettings-backend:amd64 (0.40.0-5) ... 1762s Setting up libcommons-io-java (2.18.0-1) ... 1762s Setting up patroni-doc (4.0.4-7) ... 1762s Setting up libpango-1.0-0:amd64 (1.56.3-1) ... 1762s Setting up libcairo2:amd64 (1.18.4-1) ... 1762s Setting up libjnr-enxio-java (0.32.16-1) ... 1762s Setting up libgl1:amd64 (1.7.0-1build1) ... 1762s Setting up adwaita-icon-theme (48.0-1) ... 1762s update-alternatives: using /usr/share/icons/Adwaita/cursor.theme to provide /usr/share/icons/default/index.theme (x-cursor-theme) in auto mode 1762s Setting up libcairo-gobject2:amd64 (1.18.4-1) ... 1762s Setting up postgresql (17+274) ... 1762s Setting up libpangoft2-1.0-0:amd64 (1.56.3-1) ... 1762s Setting up libcups2t64:amd64 (2.4.12-0ubuntu1) ... 1762s Setting up libgtk-3-common (3.24.49-2ubuntu1) ... 1762s Setting up libjnr-posix-java (3.1.18-1) ... 1762s Setting up libpangocairo-1.0-0:amd64 (1.56.3-1) ... 1763s Setting up libspring-beans-java (4.3.30-2ubuntu1) ... 1763s Setting up libjnr-unixsocket-java (0.38.21-2) ... 1763s Setting up libjetty9-extra-java (9.4.57-1) ... 1763s Setting up libguava-java (32.0.1-1) ... 1763s Setting up liberror-prone-java (2.18.0-1) ... 1763s Processing triggers for libc-bin (2.41-6ubuntu1) ... 1763s Processing triggers for man-db (2.13.0-1) ... 1764s Processing triggers for libglib2.0-0t64:amd64 (2.84.1-1) ... 1764s Setting up libgtk-3-0t64:amd64 (3.24.49-2ubuntu1) ... 1764s Processing triggers for ca-certificates-java (20240118) ... 1764s Adding debian:ACCVRAIZ1.pem 1764s Adding debian:AC_RAIZ_FNMT-RCM.pem 1764s Adding debian:AC_RAIZ_FNMT-RCM_SERVIDORES_SEGUROS.pem 1764s Adding debian:ANF_Secure_Server_Root_CA.pem 1764s Adding debian:Actalis_Authentication_Root_CA.pem 1764s Adding debian:AffirmTrust_Commercial.pem 1764s Adding debian:AffirmTrust_Networking.pem 1764s Adding debian:AffirmTrust_Premium.pem 1764s Adding debian:AffirmTrust_Premium_ECC.pem 1764s Adding debian:Amazon_Root_CA_1.pem 1764s Adding debian:Amazon_Root_CA_2.pem 1764s Adding debian:Amazon_Root_CA_3.pem 1764s Adding debian:Amazon_Root_CA_4.pem 1764s Adding debian:Atos_TrustedRoot_2011.pem 1764s Adding debian:Atos_TrustedRoot_Root_CA_ECC_TLS_2021.pem 1764s Adding debian:Atos_TrustedRoot_Root_CA_RSA_TLS_2021.pem 1764s Adding debian:Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.pem 1764s Adding debian:BJCA_Global_Root_CA1.pem 1764s Adding debian:BJCA_Global_Root_CA2.pem 1764s Adding debian:Baltimore_CyberTrust_Root.pem 1764s Adding debian:Buypass_Class_2_Root_CA.pem 1764s Adding debian:Buypass_Class_3_Root_CA.pem 1764s Adding debian:CA_Disig_Root_R2.pem 1764s Adding debian:CFCA_EV_ROOT.pem 1764s Adding debian:COMODO_Certification_Authority.pem 1764s Adding debian:COMODO_ECC_Certification_Authority.pem 1764s Adding debian:COMODO_RSA_Certification_Authority.pem 1764s Adding debian:Certainly_Root_E1.pem 1764s Adding debian:Certainly_Root_R1.pem 1764s Adding debian:Certigna.pem 1764s Adding debian:Certigna_Root_CA.pem 1764s Adding debian:Certum_EC-384_CA.pem 1764s Adding debian:Certum_Trusted_Network_CA.pem 1764s Adding debian:Certum_Trusted_Network_CA_2.pem 1764s Adding debian:Certum_Trusted_Root_CA.pem 1764s Adding debian:CommScope_Public_Trust_ECC_Root-01.pem 1764s Adding debian:CommScope_Public_Trust_ECC_Root-02.pem 1764s Adding debian:CommScope_Public_Trust_RSA_Root-01.pem 1764s Adding debian:CommScope_Public_Trust_RSA_Root-02.pem 1764s Adding debian:Comodo_AAA_Services_root.pem 1764s Adding debian:D-TRUST_BR_Root_CA_1_2020.pem 1764s Adding debian:D-TRUST_EV_Root_CA_1_2020.pem 1764s Adding debian:D-TRUST_Root_Class_3_CA_2_2009.pem 1764s Adding debian:D-TRUST_Root_Class_3_CA_2_EV_2009.pem 1764s Adding debian:DigiCert_Assured_ID_Root_CA.pem 1764s Adding debian:DigiCert_Assured_ID_Root_G2.pem 1764s Adding debian:DigiCert_Assured_ID_Root_G3.pem 1764s Adding debian:DigiCert_Global_Root_CA.pem 1764s Adding debian:DigiCert_Global_Root_G2.pem 1764s Adding debian:DigiCert_Global_Root_G3.pem 1764s Adding debian:DigiCert_High_Assurance_EV_Root_CA.pem 1764s Adding debian:DigiCert_TLS_ECC_P384_Root_G5.pem 1764s Adding debian:DigiCert_TLS_RSA4096_Root_G5.pem 1764s Adding debian:DigiCert_Trusted_Root_G4.pem 1764s Adding debian:Entrust.net_Premium_2048_Secure_Server_CA.pem 1764s Adding debian:Entrust_Root_Certification_Authority.pem 1764s Adding debian:Entrust_Root_Certification_Authority_-_EC1.pem 1764s Adding debian:Entrust_Root_Certification_Authority_-_G2.pem 1764s Adding debian:Entrust_Root_Certification_Authority_-_G4.pem 1764s Adding debian:FIRMAPROFESIONAL_CA_ROOT-A_WEB.pem 1764s Adding debian:GDCA_TrustAUTH_R5_ROOT.pem 1764s Adding debian:GLOBALTRUST_2020.pem 1764s Adding debian:GTS_Root_R1.pem 1764s Adding debian:GTS_Root_R2.pem 1764s Adding debian:GTS_Root_R3.pem 1764s Adding debian:GTS_Root_R4.pem 1764s Adding debian:GlobalSign_ECC_Root_CA_-_R4.pem 1764s Adding debian:GlobalSign_ECC_Root_CA_-_R5.pem 1764s Adding debian:GlobalSign_Root_CA.pem 1764s Adding debian:GlobalSign_Root_CA_-_R3.pem 1764s Adding debian:GlobalSign_Root_CA_-_R6.pem 1764s Adding debian:GlobalSign_Root_E46.pem 1764s Adding debian:GlobalSign_Root_R46.pem 1764s Adding debian:Go_Daddy_Class_2_CA.pem 1764s Adding debian:Go_Daddy_Root_Certificate_Authority_-_G2.pem 1764s Adding debian:HARICA_TLS_ECC_Root_CA_2021.pem 1764s Adding debian:HARICA_TLS_RSA_Root_CA_2021.pem 1764s Adding debian:Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.pem 1764s Adding debian:Hellenic_Academic_and_Research_Institutions_RootCA_2015.pem 1764s Adding debian:HiPKI_Root_CA_-_G1.pem 1764s Adding debian:Hongkong_Post_Root_CA_3.pem 1764s Adding debian:ISRG_Root_X1.pem 1764s Adding debian:ISRG_Root_X2.pem 1764s Adding debian:IdenTrust_Commercial_Root_CA_1.pem 1764s Adding debian:IdenTrust_Public_Sector_Root_CA_1.pem 1765s Adding debian:Izenpe.com.pem 1765s Adding debian:Microsec_e-Szigno_Root_CA_2009.pem 1765s Adding debian:Microsoft_ECC_Root_Certificate_Authority_2017.pem 1765s Adding debian:Microsoft_RSA_Root_Certificate_Authority_2017.pem 1765s Adding debian:NAVER_Global_Root_Certification_Authority.pem 1765s Adding debian:NetLock_Arany_=Class_Gold=_Főtanúsítvány.pem 1765s Adding debian:OISTE_WISeKey_Global_Root_GB_CA.pem 1765s Adding debian:OISTE_WISeKey_Global_Root_GC_CA.pem 1765s Adding debian:QuoVadis_Root_CA_1_G3.pem 1765s Adding debian:QuoVadis_Root_CA_2.pem 1765s Adding debian:QuoVadis_Root_CA_2_G3.pem 1765s Adding debian:QuoVadis_Root_CA_3.pem 1765s Adding debian:QuoVadis_Root_CA_3_G3.pem 1765s Adding debian:SSL.com_EV_Root_Certification_Authority_ECC.pem 1765s Adding debian:SSL.com_EV_Root_Certification_Authority_RSA_R2.pem 1765s Adding debian:SSL.com_Root_Certification_Authority_ECC.pem 1765s Adding debian:SSL.com_Root_Certification_Authority_RSA.pem 1765s Adding debian:SSL.com_TLS_ECC_Root_CA_2022.pem 1765s Adding debian:SSL.com_TLS_RSA_Root_CA_2022.pem 1765s Adding debian:SZAFIR_ROOT_CA2.pem 1765s Adding debian:Sectigo_Public_Server_Authentication_Root_E46.pem 1765s Adding debian:Sectigo_Public_Server_Authentication_Root_R46.pem 1765s Adding debian:SecureSign_RootCA11.pem 1765s Adding debian:SecureSign_Root_CA12.pem 1765s Adding debian:SecureSign_Root_CA14.pem 1765s Adding debian:SecureSign_Root_CA15.pem 1765s Adding debian:SecureTrust_CA.pem 1765s Adding debian:Secure_Global_CA.pem 1765s Adding debian:Security_Communication_ECC_RootCA1.pem 1765s Adding debian:Security_Communication_RootCA2.pem 1765s Adding debian:Security_Communication_RootCA3.pem 1765s Adding debian:Starfield_Class_2_CA.pem 1765s Adding debian:Starfield_Root_Certificate_Authority_-_G2.pem 1765s Adding debian:Starfield_Services_Root_Certificate_Authority_-_G2.pem 1765s Adding debian:SwissSign_Gold_CA_-_G2.pem 1765s Adding debian:SwissSign_Silver_CA_-_G2.pem 1765s Adding debian:T-TeleSec_GlobalRoot_Class_2.pem 1765s Adding debian:T-TeleSec_GlobalRoot_Class_3.pem 1765s Adding debian:TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.pem 1765s Adding debian:TWCA_CYBER_Root_CA.pem 1765s Adding debian:TWCA_Global_Root_CA.pem 1765s Adding debian:TWCA_Root_Certification_Authority.pem 1765s Adding debian:Telekom_Security_TLS_ECC_Root_2020.pem 1765s Adding debian:Telekom_Security_TLS_RSA_Root_2023.pem 1765s Adding debian:TeliaSonera_Root_CA_v1.pem 1765s Adding debian:Telia_Root_CA_v2.pem 1765s Adding debian:TrustAsia_Global_Root_CA_G3.pem 1765s Adding debian:TrustAsia_Global_Root_CA_G4.pem 1765s Adding debian:Trustwave_Global_Certification_Authority.pem 1765s Adding debian:Trustwave_Global_ECC_P256_Certification_Authority.pem 1765s Adding debian:Trustwave_Global_ECC_P384_Certification_Authority.pem 1765s Adding debian:TunTrust_Root_CA.pem 1765s Adding debian:UCA_Extended_Validation_Root.pem 1765s Adding debian:UCA_Global_G2_Root.pem 1765s Adding debian:USERTrust_ECC_Certification_Authority.pem 1765s Adding debian:USERTrust_RSA_Certification_Authority.pem 1765s Adding debian:XRamp_Global_CA_Root.pem 1765s Adding debian:certSIGN_ROOT_CA.pem 1765s Adding debian:certSIGN_Root_CA_G2.pem 1765s Adding debian:e-Szigno_Root_CA_2017.pem 1765s Adding debian:ePKI_Root_Certification_Authority.pem 1765s Adding debian:emSign_ECC_Root_CA_-_C3.pem 1765s Adding debian:emSign_ECC_Root_CA_-_G3.pem 1765s Adding debian:emSign_Root_CA_-_C1.pem 1765s Adding debian:emSign_Root_CA_-_G1.pem 1765s Adding debian:vTrus_ECC_Root_CA.pem 1765s Adding debian:vTrus_Root_CA.pem 1765s done. 1765s Setting up default-jre-headless (2:1.21-76) ... 1765s Setting up openjdk-21-jre:amd64 (21.0.7~8ea-1) ... 1765s Setting up junit4 (4.13.2-5) ... 1765s Setting up default-jre (2:1.21-76) ... 1765s Setting up libnetty-tcnative-java (2.0.28-1build4) ... 1765s Setting up libzookeeper-java (3.9.3-1build1) ... 1765s Setting up zookeeper (3.9.3-1build1) ... 1765s warn: The home directory `/var/lib/zookeeper' already exists. Not touching this directory. 1765s warn: Warning: The home directory `/var/lib/zookeeper' does not belong to the user you are currently creating. 1765s update-alternatives: using /etc/zookeeper/conf_example to provide /etc/zookeeper/conf (zookeeper-conf) in auto mode 1765s Setting up zookeeperd (3.9.3-1build1) ... 1765s Processing triggers for libc-bin (2.41-6ubuntu1) ... 1772s autopkgtest [00:55:30]: testbed environment configured for cross-architecture building 1772s autopkgtest [00:55:30]: test acceptance-zookeeper: debian/tests/acceptance zookeeper "-e dcs_failsafe_mode" 1772s autopkgtest [00:55:30]: test acceptance-zookeeper: [----------------------- 1777s ++ ls -1r /usr/lib/postgresql/ 1777s + for PG_VERSION in $(ls -1r /usr/lib/postgresql/) 1777s + '[' 17 == 10 -o 17 == 11 ']' 1777s + echo '### PostgreSQL 17 acceptance-zookeeper -e dcs_failsafe_mode ###' 1777s + su postgres -p -c 'set -o pipefail; ETCD_UNSUPPORTED_ARCH=386 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' 1777s ### PostgreSQL 17 acceptance-zookeeper -e dcs_failsafe_mode ### 1777s May 03 00:55:35 Feature: basic replication # features/basic_replication.feature:1 1777s May 03 00:55:35 We should check that the basic bootstrapping, replication and failover works. 1777s May 03 00:55:35 Scenario: check replication of a single table # features/basic_replication.feature:4 1777s May 03 00:55:35 Given I start postgres-0 # features/steps/basic_replication.py:20 1779s May 03 00:55:37 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1780s May 03 00:55:38 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 1780s May 03 00:55:38 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 1781s May 03 00:55:38 Then I receive a response code 200 # features/steps/patroni_api.py:100 1781s May 03 00:55:38 When I start postgres-1 # features/steps/basic_replication.py:20 1784s May 03 00:55:42 And I configure and start postgres-2 with a tag replicatefrom postgres-0 # features/steps/cascading_replication.py:7 1786s May 03 00:55:44 And "sync" key in DCS has leader=postgres-0 after 20 seconds # features/steps/cascading_replication.py:23 1786s May 03 00:55:44 And I add the table foo to postgres-0 # features/steps/basic_replication.py:66 1786s May 03 00:55:44 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 1787s May 03 00:55:45 Then table foo is present on postgres-2 after 20 seconds # features/steps/basic_replication.py:105 1787s May 03 00:55:45 1787s May 03 00:55:45 Scenario: check restart of sync replica # features/basic_replication.feature:17 1787s May 03 00:55:45 Given I shut down postgres-2 # features/steps/basic_replication.py:41 1788s May 03 00:55:46 Then "sync" key in DCS has sync_standby=postgres-1 after 5 seconds # features/steps/cascading_replication.py:23 1788s May 03 00:55:46 When I start postgres-2 # features/steps/basic_replication.py:20 1790s May 03 00:55:48 And I shut down postgres-1 # features/steps/basic_replication.py:41 1793s May 03 00:55:51 Then "sync" key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 1794s May 03 00:55:52 When I start postgres-1 # features/steps/basic_replication.py:20 1796s May 03 00:55:54 Then "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1797s May 03 00:55:55 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 1797s May 03 00:55:55 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:144 1797s May 03 00:55:55 1797s May 03 00:55:55 Scenario: check stuck sync replica # features/basic_replication.feature:28 1797s May 03 00:55:55 Given I issue a PATCH request to http://127.0.0.1:8008/config with {"pause": true, "maximum_lag_on_syncnode": 15000000, "postgresql": {"parameters": {"synchronous_commit": "remote_apply"}}} # features/steps/patroni_api.py:73 1797s May 03 00:55:55 Then I receive a response code 200 # features/steps/patroni_api.py:100 1797s May 03 00:55:55 And I create table on postgres-0 # features/steps/basic_replication.py:85 1797s May 03 00:55:55 And table mytest is present on postgres-1 after 2 seconds # features/steps/basic_replication.py:105 1798s May 03 00:55:56 And table mytest is present on postgres-2 after 2 seconds # features/steps/basic_replication.py:105 1798s May 03 00:55:56 When I pause wal replay on postgres-2 # features/steps/basic_replication.py:76 1798s May 03 00:55:56 And I load data on postgres-0 # features/steps/basic_replication.py:96 1798s May 03 00:55:56 Then "sync" key in DCS has sync_standby=postgres-1 after 15 seconds # features/steps/cascading_replication.py:23 1801s May 03 00:55:59 And I resume wal replay on postgres-2 # features/steps/basic_replication.py:76 1801s May 03 00:55:59 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 1802s May 03 00:56:00 And Status code on GET http://127.0.0.1:8010/async is 200 after 3 seconds # features/steps/patroni_api.py:144 1802s May 03 00:56:00 When I issue a PATCH request to http://127.0.0.1:8008/config with {"pause": null, "maximum_lag_on_syncnode": -1, "postgresql": {"parameters": {"synchronous_commit": "on"}}} # features/steps/patroni_api.py:73 1802s May 03 00:56:00 Then I receive a response code 200 # features/steps/patroni_api.py:100 1802s May 03 00:56:00 And I drop table on postgres-0 # features/steps/basic_replication.py:85 1802s May 03 00:56:00 1802s May 03 00:56:00 Scenario: check multi sync replication # features/basic_replication.feature:44 1802s May 03 00:56:00 Given I issue a PATCH request to http://127.0.0.1:8008/config with {"synchronous_node_count": 2} # features/steps/patroni_api.py:73 1803s May 03 00:56:01 Then I receive a response code 200 # features/steps/patroni_api.py:100 1803s May 03 00:56:01 Then "sync" key in DCS has sync_standby=postgres-1,postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 1807s May 03 00:56:05 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 1807s May 03 00:56:05 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 1807s May 03 00:56:05 When I issue a PATCH request to http://127.0.0.1:8008/config with {"synchronous_node_count": 1} # features/steps/patroni_api.py:73 1807s May 03 00:56:05 Then I receive a response code 200 # features/steps/patroni_api.py:100 1807s May 03 00:56:05 And I shut down postgres-1 # features/steps/basic_replication.py:41 1810s May 03 00:56:08 Then "sync" key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 1811s May 03 00:56:09 When I start postgres-1 # features/steps/basic_replication.py:20 1814s May 03 00:56:12 Then "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1814s May 03 00:56:12 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 1814s May 03 00:56:12 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:144 1814s May 03 00:56:12 1814s May 03 00:56:12 Scenario: check the basic failover in synchronous mode # features/basic_replication.feature:59 1814s May 03 00:56:12 Given I run patronictl.py pause batman # features/steps/patroni_api.py:88 1815s May 03 00:56:13 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1815s May 03 00:56:13 When I sleep for 2 seconds # features/steps/patroni_api.py:41 1817s May 03 00:56:15 And I shut down postgres-0 # features/steps/basic_replication.py:41 1818s May 03 00:56:16 And I run patronictl.py resume batman # features/steps/patroni_api.py:88 1819s May 03 00:56:17 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1819s May 03 00:56:17 And postgres-2 role is the primary after 24 seconds # features/steps/basic_replication.py:117 1839s May 03 00:56:37 And Response on GET http://127.0.0.1:8010/history contains recovery after 10 seconds # features/steps/patroni_api.py:158 1843s May 03 00:56:41 And there is a postgres-2_cb.log with "on_role_change primary batman" in postgres-2 data directory # features/steps/cascading_replication.py:12 1843s May 03 00:56:41 When I issue a PATCH request to http://127.0.0.1:8010/config with {"synchronous_mode": null, "master_start_timeout": 0} # features/steps/patroni_api.py:73 1843s May 03 00:56:41 Then I receive a response code 200 # features/steps/patroni_api.py:100 1843s May 03 00:56:41 When I add the table bar to postgres-2 # features/steps/basic_replication.py:66 1843s May 03 00:56:41 Then table bar is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 1843s May 03 00:56:41 And Response on GET http://127.0.0.1:8010/config contains master_start_timeout after 10 seconds # features/steps/patroni_api.py:158 1843s May 03 00:56:41 1843s May 03 00:56:41 Scenario: check rejoin of the former primary with pg_rewind # features/basic_replication.feature:75 1843s May 03 00:56:41 Given I add the table splitbrain to postgres-0 # features/steps/basic_replication.py:66 1843s May 03 00:56:41 And I start postgres-0 # features/steps/basic_replication.py:20 1843s May 03 00:56:41 Then postgres-0 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 1849s May 03 00:56:47 When I add the table buz to postgres-2 # features/steps/basic_replication.py:66 1849s May 03 00:56:47 Then table buz is present on postgres-0 after 20 seconds # features/steps/basic_replication.py:105 1849s May 03 00:56:47 1849s May 03 00:56:47 @reject-duplicate-name 1849s May 03 00:56:47 Scenario: check graceful rejection when two nodes have the same name # features/basic_replication.feature:83 1849s May 03 00:56:47 Given I start duplicate postgres-0 on port 8011 # features/steps/basic_replication.py:25 1850s May 03 00:56:48 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 1854s May 03 00:56:52 1854s May 03 00:56:52 Feature: cascading replication # features/cascading_replication.feature:1 1854s May 03 00:56:52 We should check that patroni can do base backup and streaming from the replica 1854s May 03 00:56:52 Scenario: check a base backup and streaming replication from a replica # features/cascading_replication.feature:4 1854s May 03 00:56:52 Given I start postgres-0 # features/steps/basic_replication.py:20 1856s May 03 00:56:54 And postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1857s May 03 00:56:55 And I configure and start postgres-1 with a tag clonefrom true # features/steps/cascading_replication.py:7 1859s May 03 00:56:57 And replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 1860s May 03 00:56:58 And I create label with "postgres-0" in postgres-0 data directory # features/steps/cascading_replication.py:18 1860s May 03 00:56:58 And I create label with "postgres-1" in postgres-1 data directory # features/steps/cascading_replication.py:18 1860s May 03 00:56:58 And "members/postgres-1" key in DCS has state=running after 12 seconds # features/steps/cascading_replication.py:23 1860s May 03 00:56:58 And I configure and start postgres-2 with a tag replicatefrom postgres-1 # features/steps/cascading_replication.py:7 1863s May 03 00:57:01 Then replication works from postgres-0 to postgres-2 after 30 seconds # features/steps/basic_replication.py:124 1864s May 03 00:57:02 And there is a label with "postgres-1" in postgres-2 data directory # features/steps/cascading_replication.py:12 1871s May 03 00:57:09 1871s SKIP FEATURE citus: Citus extension isn't available 1871s SKIP Scenario check that worker cluster is registered in the coordinator: Citus extension isn't available 1871s SKIP Scenario coordinator failover updates pg_dist_node: Citus extension isn't available 1871s SKIP Scenario worker switchover doesn't break client queries on the coordinator: Citus extension isn't available 1871s SKIP Scenario worker primary restart doesn't break client queries on the coordinator: Citus extension isn't available 1871s 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 1871s May 03 00:57:09 Feature: citus # features/citus.feature:1 1871s May 03 00:57:09 We should check that coordinator discovers and registers workers and clients don't have errors when worker cluster switches over 1871s May 03 00:57:09 Scenario: check that worker cluster is registered in the coordinator # features/citus.feature:4 1871s May 03 00:57:09 Given I start postgres-0 in citus group 0 # None 1871s May 03 00:57:09 And I start postgres-2 in citus group 1 # None 1871s May 03 00:57:09 Then postgres-0 is a leader in a group 0 after 10 seconds # None 1871s May 03 00:57:09 And postgres-2 is a leader in a group 1 after 10 seconds # None 1871s May 03 00:57:09 When I start postgres-1 in citus group 0 # None 1871s May 03 00:57:09 And I start postgres-3 in citus group 1 # None 1871s May 03 00:57:09 Then replication works from postgres-0 to postgres-1 after 15 seconds # None 1871s May 03 00:57:09 Then replication works from postgres-2 to postgres-3 after 15 seconds # None 1871s May 03 00:57:09 And postgres-0 is registered in the postgres-0 as the primary in group 0 after 5 seconds # None 1871s May 03 00:57:09 And postgres-1 is registered in the postgres-0 as the secondary in group 0 after 5 seconds # None 1871s May 03 00:57:09 And postgres-2 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 1871s May 03 00:57:09 And postgres-3 is registered in the postgres-0 as the secondary in group 1 after 5 seconds # None 1871s May 03 00:57:09 1871s May 03 00:57:09 Scenario: coordinator failover updates pg_dist_node # features/citus.feature:18 1871s May 03 00:57:09 Given I run patronictl.py failover batman --group 0 --candidate postgres-1 --force # None 1871s May 03 00:57:09 Then postgres-1 role is the primary after 10 seconds # None 1871s May 03 00:57:09 And "members/postgres-0" key in a group 0 in DCS has state=running after 15 seconds # None 1871s May 03 00:57:09 And replication works from postgres-1 to postgres-0 after 15 seconds # None 1871s May 03 00:57:09 And postgres-1 is registered in the postgres-2 as the primary in group 0 after 5 seconds # None 1871s May 03 00:57:09 And postgres-0 is registered in the postgres-2 as the secondary in group 0 after 15 seconds # None 1871s May 03 00:57:09 And "sync" key in a group 0 in DCS has sync_standby=postgres-0 after 15 seconds # None 1871s May 03 00:57:09 When I run patronictl.py switchover batman --group 0 --candidate postgres-0 --force # None 1871s May 03 00:57:09 Then postgres-0 role is the primary after 10 seconds # None 1871s May 03 00:57:09 And replication works from postgres-0 to postgres-1 after 15 seconds # None 1871s May 03 00:57:09 And postgres-0 is registered in the postgres-2 as the primary in group 0 after 5 seconds # None 1871s May 03 00:57:09 And postgres-1 is registered in the postgres-2 as the secondary in group 0 after 15 seconds # None 1871s May 03 00:57:09 And "sync" key in a group 0 in DCS has sync_standby=postgres-1 after 15 seconds # None 1871s May 03 00:57:09 1871s May 03 00:57:09 Scenario: worker switchover doesn't break client queries on the coordinator # features/citus.feature:33 1871s May 03 00:57:09 Given I create a distributed table on postgres-0 # None 1871s May 03 00:57:09 And I start a thread inserting data on postgres-0 # None 1871s May 03 00:57:09 When I run patronictl.py switchover batman --group 1 --force # None 1871s May 03 00:57:09 Then I receive a response returncode 0 # None 1871s May 03 00:57:09 And postgres-3 role is the primary after 10 seconds # None 1871s May 03 00:57:09 And "members/postgres-2" key in a group 1 in DCS has state=running after 15 seconds # None 1871s May 03 00:57:09 And replication works from postgres-3 to postgres-2 after 15 seconds # None 1871s May 03 00:57:09 And postgres-3 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 1871s May 03 00:57:09 And postgres-2 is registered in the postgres-0 as the secondary in group 1 after 15 seconds # None 1871s May 03 00:57:09 And "sync" key in a group 1 in DCS has sync_standby=postgres-2 after 15 seconds # None 1871s May 03 00:57:09 And a thread is still alive # None 1871s May 03 00:57:09 When I run patronictl.py switchover batman --group 1 --force # None 1871s May 03 00:57:09 Then I receive a response returncode 0 # None 1871s May 03 00:57:09 And postgres-2 role is the primary after 10 seconds # None 1871s May 03 00:57:09 And replication works from postgres-2 to postgres-3 after 15 seconds # None 1871s May 03 00:57:09 And postgres-2 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 1871s May 03 00:57:09 And postgres-3 is registered in the postgres-0 as the secondary in group 1 after 15 seconds # None 1871s May 03 00:57:09 And "sync" key in a group 1 in DCS has sync_standby=postgres-3 after 15 seconds # None 1871s May 03 00:57:09 And a thread is still alive # None 1871s May 03 00:57:09 When I stop a thread # None 1871s May 03 00:57:09 Then a distributed table on postgres-0 has expected rows # None 1871s May 03 00:57:09 1871s May 03 00:57:09 Scenario: worker primary restart doesn't break client queries on the coordinator # features/citus.feature:56 1871s May 03 00:57:09 Given I cleanup a distributed table on postgres-0 # None 1871s May 03 00:57:09 And I start a thread inserting data on postgres-0 # None 1871s May 03 00:57:09 When I run patronictl.py restart batman postgres-2 --group 1 --force # None 1871s May 03 00:57:09 Then I receive a response returncode 0 # None 1871s May 03 00:57:09 And postgres-2 role is the primary after 10 seconds # None 1871s May 03 00:57:09 And replication works from postgres-2 to postgres-3 after 15 seconds # None 1871s May 03 00:57:09 And postgres-2 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 1871s May 03 00:57:09 And postgres-3 is registered in the postgres-0 as the secondary in group 1 after 15 seconds # None 1871s May 03 00:57:09 And a thread is still alive # None 1871s May 03 00:57:09 When I stop a thread # None 1871s May 03 00:57:09 Then a distributed table on postgres-0 has expected rows # None 1871s May 03 00:57:09 1871s May 03 00:57:09 Scenario: check that in-flight transaction is rolled back after timeout when other workers need to change pg_dist_node # features/citus.feature:69 1871s May 03 00:57:09 Given I start postgres-4 in citus group 2 # None 1871s May 03 00:57:09 Then postgres-4 is a leader in a group 2 after 10 seconds # None 1871s May 03 00:57:09 And "members/postgres-4" key in a group 2 in DCS has role=primary after 3 seconds # None 1871s May 03 00:57:09 When I run patronictl.py edit-config batman --group 2 -s ttl=20 --force # None 1871s May 03 00:57:09 Then I receive a response returncode 0 # None 1871s May 03 00:57:09 And I receive a response output "+ttl: 20" # None 1871s May 03 00:57:09 Then postgres-4 is registered in the postgres-2 as the primary in group 2 after 5 seconds # None 1871s May 03 00:57:09 When I shut down postgres-4 # None 1871s May 03 00:57:09 Then there is a transaction in progress on postgres-0 changing pg_dist_node after 5 seconds # None 1871s May 03 00:57:09 When I run patronictl.py restart batman postgres-2 --group 1 --force # None 1871s May 03 00:57:09 Then a transaction finishes in 20 seconds # None 1871s May 03 00:57:09 1871s May 03 00:57:09 Feature: custom bootstrap # features/custom_bootstrap.feature:1 1871s May 03 00:57:09 We should check that patroni can bootstrap a new cluster from a backup 1871s May 03 00:57:09 Scenario: clone existing cluster using pg_basebackup # features/custom_bootstrap.feature:4 1871s May 03 00:57:09 Given I start postgres-0 # features/steps/basic_replication.py:20 1874s May 03 00:57:12 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1874s May 03 00:57:12 When I add the table foo to postgres-0 # features/steps/basic_replication.py:66 1874s May 03 00:57:12 And I start postgres-1 in a cluster batman1 as a clone of postgres-0 # features/steps/custom_bootstrap.py:6 1877s May 03 00:57:15 Then postgres-1 is a leader of batman1 after 10 seconds # features/steps/custom_bootstrap.py:16 1878s May 03 00:57:16 Then table foo is present on postgres-1 after 10 seconds # features/steps/basic_replication.py:105 1878s May 03 00:57:16 1878s May 03 00:57:16 Scenario: make a backup and do a restore into a new cluster # features/custom_bootstrap.feature:12 1878s May 03 00:57:16 Given I add the table bar to postgres-1 # features/steps/basic_replication.py:66 1878s May 03 00:57:16 And I do a backup of postgres-1 # features/steps/custom_bootstrap.py:25 1878s May 03 00:57:16 When I start postgres-2 in a cluster batman2 from backup # features/steps/custom_bootstrap.py:11 1881s May 03 00:57:19 Then postgres-2 is a leader of batman2 after 30 seconds # features/steps/custom_bootstrap.py:16 1882s May 03 00:57:20 And table bar is present on postgres-2 after 10 seconds # features/steps/basic_replication.py:105 1888s May 03 00:57:26 1888s May 03 00:57:26 Feature: ignored slots # features/ignored_slots.feature:1 1888s May 03 00:57:26 1888s May 03 00:57:26 Scenario: check ignored slots aren't removed on failover/switchover # features/ignored_slots.feature:2 1888s May 03 00:57:26 Given I start postgres-1 # features/steps/basic_replication.py:20 1890s May 03 00:57:28 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 1891s May 03 00:57:29 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 1891s May 03 00:57:29 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 1892s May 03 00:57:30 Then I receive a response code 200 # features/steps/patroni_api.py:100 1892s May 03 00:57:30 And Response on GET http://127.0.0.1:8009/config contains ignore_slots after 10 seconds # features/steps/patroni_api.py:158 1892s May 03 00:57:30 When I shut down postgres-1 # features/steps/basic_replication.py:41 1894s May 03 00:57:32 And I start postgres-1 # features/steps/basic_replication.py:20 1896s May 03 00:57:34 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 1897s May 03 00:57:35 And "members/postgres-1" key in DCS has role=primary after 10 seconds # features/steps/cascading_replication.py:23 1898s May 03 00:57:36 And postgres-1 role is the primary after 20 seconds # features/steps/basic_replication.py:117 1898s May 03 00:57:36 When I create a logical replication slot unmanaged_slot_0 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 1898s May 03 00:57:36 And I create a logical replication slot unmanaged_slot_1 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 1898s May 03 00:57:36 And I create a logical replication slot unmanaged_slot_2 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 1898s May 03 00:57:36 And I create a logical replication slot unmanaged_slot_3 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 1898s May 03 00:57:36 And I create a logical replication slot dummy_slot on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 1898s May 03 00:57:36 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 1898s May 03 00:57:36 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 1898s May 03 00:57:36 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 1898s May 03 00:57:36 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 1898s May 03 00:57:36 When I start postgres-0 # features/steps/basic_replication.py:20 1901s May 03 00:57:39 Then "members/postgres-0" key in DCS has role=replica after 10 seconds # features/steps/cascading_replication.py:23 1902s May 03 00:57:40 And postgres-0 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 1902s May 03 00:57:40 And replication works from postgres-1 to postgres-0 after 20 seconds # features/steps/basic_replication.py:124 1907s May 03 00:57:45 When I shut down postgres-1 # features/steps/basic_replication.py:41 1909s May 03 00:57:47 Then "members/postgres-0" key in DCS has role=primary after 10 seconds # features/steps/cascading_replication.py:23 1910s May 03 00:57:48 When I start postgres-1 # features/steps/basic_replication.py:20 1912s May 03 00:57:50 Then postgres-1 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 1912s May 03 00:57:50 And "members/postgres-1" key in DCS has role=replica after 10 seconds # features/steps/cascading_replication.py:23 1913s May 03 00:57:51 And I sleep for 2 seconds # features/steps/patroni_api.py:41 1915s May 03 00:57:53 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 1915s May 03 00:57:53 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 1915s May 03 00:57:53 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 1915s May 03 00:57:53 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 1915s May 03 00:57:53 And postgres-1 does not have a replication slot named dummy_slot # features/steps/slots.py:41 1915s May 03 00:57:53 When I shut down postgres-0 # features/steps/basic_replication.py:41 1917s May 03 00:57:55 Then "members/postgres-1" key in DCS has role=primary after 10 seconds # features/steps/cascading_replication.py:23 1918s May 03 00:57:56 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 1918s May 03 00:57:56 And postgres-1 has a logical replication slot named unmanaged_slot_1 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 1918s May 03 00:57:56 And postgres-1 has a logical replication slot named unmanaged_slot_2 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 1918s May 03 00:57:56 And postgres-1 has a logical replication slot named unmanaged_slot_3 with the test_decoding plugin after 2 seconds # features/steps/slots.py:20 1920s May 03 00:57:58 1920s May 03 00:57:58 Feature: nostream node # features/nostream_node.feature:1 1920s May 03 00:57:58 1920s May 03 00:57:58 Scenario: check nostream node is recovering from archive # features/nostream_node.feature:3 1920s May 03 00:57:58 When I start postgres-0 # features/steps/basic_replication.py:20 1922s May 03 00:58:00 And I configure and start postgres-1 with a tag nostream true # features/steps/cascading_replication.py:7 1925s May 03 00:58:03 Then "members/postgres-1" key in DCS has replication_state=in archive recovery after 10 seconds # features/steps/cascading_replication.py:23 1925s May 03 00:58:03 And replication works from postgres-0 to postgres-1 after 30 seconds # features/steps/basic_replication.py:124 1930s May 03 00:58:08 1930s May 03 00:58:08 @slot-advance 1930s May 03 00:58:08 Scenario: check permanent logical replication slots are not copied # features/nostream_node.feature:10 1930s May 03 00:58:08 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 1930s May 03 00:58:08 Then I receive a response code 200 # features/steps/patroni_api.py:100 1930s May 03 00:58:08 When I run patronictl.py restart batman postgres-0 --force # features/steps/patroni_api.py:88 1931s May 03 00:58:09 Then postgres-0 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:20 1932s May 03 00:58:10 When I configure and start postgres-2 with a tag replicatefrom postgres-1 # features/steps/cascading_replication.py:7 1934s May 03 00:58:12 Then "members/postgres-2" key in DCS has replication_state=streaming after 10 seconds # features/steps/cascading_replication.py:23 1941s May 03 00:58:19 And postgres-1 does not have a replication slot named test_logical # features/steps/slots.py:41 1941s May 03 00:58:19 And postgres-2 does not have a replication slot named test_logical # features/steps/slots.py:41 1941s May 03 00:58:19 1941s May 03 00:58:19 @slot-advance 1941s May 03 00:58:19 Scenario: check that slots are written to the /status key # features/nostream_node.feature:21 1941s May 03 00:58:19 Given "status" key in DCS has postgres_0 in slots # features/steps/slots.py:118 1941s May 03 00:58:19 And "status" key in DCS has postgres_2 in slots # features/steps/slots.py:118 1941s May 03 00:58:19 And "status" key in DCS has test_logical in slots # features/steps/slots.py:118 1941s May 03 00:58:19 And "status" key in DCS has test_logical in slots # features/steps/slots.py:118 1941s May 03 00:58:19 And "status" key in DCS does not have postgres_1 in slots # features/steps/slots.py:124 1947s May 03 00:58:24 1947s May 03 00:58:24 Feature: patroni api # features/patroni_api.feature:1 1947s May 03 00:58:24 We should check that patroni correctly responds to valid and not-valid API requests. 1947s May 03 00:58:24 Scenario: check API requests on a stand-alone server # features/patroni_api.feature:4 1947s May 03 00:58:24 Given I start postgres-0 # features/steps/basic_replication.py:20 1949s May 03 00:58:26 And postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 1949s May 03 00:58:26 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:63 1949s May 03 00:58:27 Then I receive a response code 200 # features/steps/patroni_api.py:100 1949s May 03 00:58:27 And I receive a response state running # features/steps/patroni_api.py:100 1949s May 03 00:58:27 And I receive a response role primary # features/steps/patroni_api.py:100 1949s May 03 00:58:27 When I issue a GET request to http://127.0.0.1:8008/standby_leader # features/steps/patroni_api.py:63 1949s May 03 00:58:27 Then I receive a response code 503 # features/steps/patroni_api.py:100 1949s May 03 00:58:27 When I issue a GET request to http://127.0.0.1:8008/health # features/steps/patroni_api.py:63 1949s May 03 00:58:27 Then I receive a response code 200 # features/steps/patroni_api.py:100 1949s May 03 00:58:27 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:63 1949s May 03 00:58:27 Then I receive a response code 503 # features/steps/patroni_api.py:100 1949s May 03 00:58:27 When I issue a POST request to http://127.0.0.1:8008/reinitialize with {"force": true} # features/steps/patroni_api.py:73 1949s May 03 00:58:27 Then I receive a response code 503 # features/steps/patroni_api.py:100 1949s May 03 00:58:27 And I receive a response text I am the leader, can not reinitialize # features/steps/patroni_api.py:100 1949s May 03 00:58:27 When I run patronictl.py switchover batman --primary postgres-0 --force # features/steps/patroni_api.py:88 1949s May 03 00:58:27 Then I receive a response returncode 1 # features/steps/patroni_api.py:100 1949s May 03 00:58:27 And I receive a response output "Error: No candidates found to switchover to" # features/steps/patroni_api.py:100 1949s May 03 00:58:27 When I issue a POST request to http://127.0.0.1:8008/switchover with {"leader": "postgres-0"} # features/steps/patroni_api.py:73 1950s May 03 00:58:28 Then I receive a response code 412 # features/steps/patroni_api.py:100 1950s May 03 00:58:28 And I receive a response text switchover is not possible: cluster does not have members except leader # features/steps/patroni_api.py:100 1950s May 03 00:58:28 When I issue an empty POST request to http://127.0.0.1:8008/failover # features/steps/patroni_api.py:68 1950s May 03 00:58:28 Then I receive a response code 400 # features/steps/patroni_api.py:100 1950s May 03 00:58:28 When I issue a POST request to http://127.0.0.1:8008/failover with {"foo": "bar"} # features/steps/patroni_api.py:73 1950s May 03 00:58:28 Then I receive a response code 400 # features/steps/patroni_api.py:100 1950s May 03 00:58:28 And I receive a response text "Failover could be performed only to a specific candidate" # features/steps/patroni_api.py:100 1950s May 03 00:58:28 1950s May 03 00:58:28 Scenario: check local configuration reload # features/patroni_api.feature:32 1950s May 03 00:58:28 Given I add tag new_tag new_value to postgres-0 config # features/steps/patroni_api.py:139 1950s May 03 00:58:28 And I issue an empty POST request to http://127.0.0.1:8008/reload # features/steps/patroni_api.py:68 1950s May 03 00:58:28 Then I receive a response code 202 # features/steps/patroni_api.py:100 1950s May 03 00:58:28 1950s May 03 00:58:28 Scenario: check dynamic configuration change via DCS # features/patroni_api.feature:37 1950s May 03 00:58:28 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 1950s May 03 00:58:28 Then I receive a response code 200 # features/steps/patroni_api.py:100 1950s May 03 00:58:28 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 11 seconds # features/steps/patroni_api.py:158 1952s May 03 00:58:30 When I issue a GET request to http://127.0.0.1:8008/config # features/steps/patroni_api.py:63 1952s May 03 00:58:30 Then I receive a response code 200 # features/steps/patroni_api.py:100 1952s May 03 00:58:30 And I receive a response ttl 20 # features/steps/patroni_api.py:100 1952s May 03 00:58:30 When I issue a GET request to http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:63 1952s May 03 00:58:30 Then I receive a response code 200 # features/steps/patroni_api.py:100 1952s May 03 00:58:30 And I receive a response tags {'new_tag': 'new_value'} # features/steps/patroni_api.py:100 1952s May 03 00:58:30 And I sleep for 4 seconds # features/steps/patroni_api.py:41 1956s May 03 00:58:34 1956s May 03 00:58:34 Scenario: check the scheduled restart # features/patroni_api.feature:49 1956s May 03 00:58:34 Given I run patronictl.py edit-config -p 'superuser_reserved_connections=6' --force batman # features/steps/patroni_api.py:88 1957s May 03 00:58:35 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1957s May 03 00:58:35 And I receive a response output "+ superuser_reserved_connections: 6" # features/steps/patroni_api.py:100 1957s May 03 00:58:35 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 5 seconds # features/steps/patroni_api.py:158 1957s May 03 00:58:35 Given I issue a scheduled restart at http://127.0.0.1:8008 in 5 seconds with {"role": "replica"} # features/steps/patroni_api.py:126 1957s May 03 00:58:35 Then I receive a response code 202 # features/steps/patroni_api.py:100 1957s May 03 00:58:35 And I sleep for 8 seconds # features/steps/patroni_api.py:41 1965s May 03 00:58:43 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 10 seconds # features/steps/patroni_api.py:158 1965s May 03 00:58:43 Given I issue a scheduled restart at http://127.0.0.1:8008 in 5 seconds with {"restart_pending": "True"} # features/steps/patroni_api.py:126 1965s May 03 00:58:43 Then I receive a response code 202 # features/steps/patroni_api.py:100 1965s May 03 00:58:43 And Response on GET http://127.0.0.1:8008/patroni does not contain pending_restart after 10 seconds # features/steps/patroni_api.py:173 1971s May 03 00:58:49 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1972s May 03 00:58:50 1972s May 03 00:58:50 Scenario: check API requests for the primary-replica pair in the pause mode # features/patroni_api.feature:63 1972s May 03 00:58:50 Given I start postgres-1 # features/steps/basic_replication.py:20 1974s May 03 00:58:52 Then replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 1976s May 03 00:58:53 When I run patronictl.py pause batman # features/steps/patroni_api.py:88 1976s May 03 00:58:54 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1976s May 03 00:58:54 When I kill postmaster on postgres-1 # features/steps/basic_replication.py:56 1976s May 03 00:58:54 waiting for server to shut down.... done 1976s May 03 00:58:54 server stopped 1976s May 03 00:58:54 And I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 1976s May 03 00:58:54 Then I receive a response code 503 # features/steps/patroni_api.py:100 1976s May 03 00:58:54 And "members/postgres-1" key in DCS has state=stopped after 10 seconds # features/steps/cascading_replication.py:23 1977s May 03 00:58:55 When I run patronictl.py restart batman postgres-1 --force # features/steps/patroni_api.py:88 1980s May 03 00:58:57 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1980s May 03 00:58:57 Then replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 1981s May 03 00:58:59 And I sleep for 2 seconds # features/steps/patroni_api.py:41 1983s May 03 00:59:01 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 1983s May 03 00:59:01 Then I receive a response code 200 # features/steps/patroni_api.py:100 1983s May 03 00:59:01 And I receive a response state running # features/steps/patroni_api.py:100 1983s May 03 00:59:01 And I receive a response role replica # features/steps/patroni_api.py:100 1983s May 03 00:59:01 When I run patronictl.py reinit batman postgres-1 --force --wait # features/steps/patroni_api.py:88 1986s May 03 00:59:04 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1986s May 03 00:59:04 And I receive a response output "Success: reinitialize for member postgres-1" # features/steps/patroni_api.py:100 1986s May 03 00:59:04 And postgres-1 role is the secondary after 30 seconds # features/steps/basic_replication.py:117 1987s May 03 00:59:05 And replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 1988s May 03 00:59:06 When I run patronictl.py restart batman postgres-0 --force # features/steps/patroni_api.py:88 1989s May 03 00:59:07 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 1989s May 03 00:59:07 And I receive a response output "Success: restart on member postgres-0" # features/steps/patroni_api.py:100 1989s May 03 00:59:07 And postgres-0 role is the primary after 5 seconds # features/steps/basic_replication.py:117 1990s May 03 00:59:08 1990s May 03 00:59:08 Scenario: check the switchover via the API in the pause mode # features/patroni_api.feature:90 1990s May 03 00:59:08 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 1992s May 03 00:59:10 Then I receive a response code 200 # features/steps/patroni_api.py:100 1992s May 03 00:59:10 And postgres-1 is a leader after 5 seconds # features/steps/patroni_api.py:31 1992s May 03 00:59:10 And postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 1992s May 03 00:59:10 And postgres-0 role is the secondary after 10 seconds # features/steps/basic_replication.py:117 1997s May 03 00:59:15 And replication works from postgres-1 to postgres-0 after 20 seconds # features/steps/basic_replication.py:124 1997s May 03 00:59:15 And "members/postgres-0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 1998s May 03 00:59:16 When I issue a GET request to http://127.0.0.1:8008/primary # features/steps/patroni_api.py:63 1998s May 03 00:59:16 Then I receive a response code 503 # features/steps/patroni_api.py:100 1998s May 03 00:59:16 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:63 1998s May 03 00:59:16 Then I receive a response code 200 # features/steps/patroni_api.py:100 1998s May 03 00:59:16 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 1998s May 03 00:59:16 Then I receive a response code 200 # features/steps/patroni_api.py:100 1998s May 03 00:59:16 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 1998s May 03 00:59:16 Then I receive a response code 503 # features/steps/patroni_api.py:100 1998s May 03 00:59:16 1998s May 03 00:59:16 Scenario: check the scheduled switchover # features/patroni_api.feature:107 1998s May 03 00:59:16 Given I issue a scheduled switchover from postgres-1 to postgres-0 in 10 seconds # features/steps/patroni_api.py:119 1999s May 03 00:59:17 Then I receive a response returncode 1 # features/steps/patroni_api.py:100 1999s May 03 00:59:17 And I receive a response output "Can't schedule switchover in the paused state" # features/steps/patroni_api.py:100 1999s May 03 00:59:17 When I run patronictl.py resume batman # features/steps/patroni_api.py:88 2000s May 03 00:59:18 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2000s May 03 00:59:18 Given I issue a scheduled switchover from postgres-1 to postgres-0 in 10 seconds # features/steps/patroni_api.py:119 2001s May 03 00:59:19 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2001s May 03 00:59:19 And postgres-0 is a leader after 20 seconds # features/steps/patroni_api.py:31 2012s May 03 00:59:30 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2012s May 03 00:59:30 And postgres-1 role is the secondary after 10 seconds # features/steps/basic_replication.py:117 2014s May 03 00:59:32 And replication works from postgres-0 to postgres-1 after 25 seconds # features/steps/basic_replication.py:124 2014s May 03 00:59:32 And "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 2016s May 03 00:59:34 When I issue a GET request to http://127.0.0.1:8008/primary # features/steps/patroni_api.py:63 2016s May 03 00:59:34 Then I receive a response code 200 # features/steps/patroni_api.py:100 2016s May 03 00:59:34 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:63 2016s May 03 00:59:34 Then I receive a response code 503 # features/steps/patroni_api.py:100 2016s May 03 00:59:34 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 2016s May 03 00:59:34 Then I receive a response code 503 # features/steps/patroni_api.py:100 2016s May 03 00:59:34 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 2016s May 03 00:59:34 Then I receive a response code 200 # features/steps/patroni_api.py:100 2020s May 03 00:59:38 2020s May 03 00:59:38 Feature: permanent slots # features/permanent_slots.feature:1 2020s May 03 00:59:38 2020s May 03 00:59:38 Scenario: check that physical permanent slots are created # features/permanent_slots.feature:2 2020s May 03 00:59:38 Given I start postgres-0 # features/steps/basic_replication.py:20 2022s May 03 00:59:40 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 2022s May 03 00:59:40 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 2022s May 03 00:59:40 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 2022s May 03 00:59:40 Then I receive a response code 200 # features/steps/patroni_api.py:100 2022s May 03 00:59:40 And Response on GET http://127.0.0.1:8008/config contains slots after 10 seconds # features/steps/patroni_api.py:158 2022s May 03 00:59:40 When I start postgres-1 # features/steps/basic_replication.py:20 2025s May 03 00:59:43 And I configure and start postgres-2 with a tag nofailover true # features/steps/cascading_replication.py:7 2028s May 03 00:59:46 And I configure and start postgres-3 with a tag replicatefrom postgres-2 # features/steps/cascading_replication.py:7 2031s May 03 00:59:49 Then postgres-0 has a physical replication slot named test_physical after 10 seconds # features/steps/slots.py:82 2031s May 03 00:59:49 And postgres-0 has a physical replication slot named postgres_1 after 10 seconds # features/steps/slots.py:82 2031s May 03 00:59:49 And postgres-0 has a physical replication slot named postgres_2 after 10 seconds # features/steps/slots.py:82 2031s May 03 00:59:49 And postgres-2 has a physical replication slot named postgres_3 after 10 seconds # features/steps/slots.py:82 2031s May 03 00:59:49 And postgres-2 does not have a replication slot named test_physical # features/steps/slots.py:41 2031s May 03 00:59:49 2031s May 03 00:59:49 @slot-advance 2031s May 03 00:59:49 Scenario: check that logical permanent slots are created # features/permanent_slots.feature:19 2031s May 03 00:59:49 Given I run patronictl.py restart batman postgres-0 --force # features/steps/patroni_api.py:88 2034s May 03 00:59:52 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 2034s May 03 00:59:52 Then postgres-0 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:20 2035s May 03 00:59:53 2035s May 03 00:59:53 @slot-advance 2035s May 03 00:59:53 Scenario: check that permanent slots are created on replicas # features/permanent_slots.feature:25 2035s May 03 00:59:53 Given postgres-1 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:20 2039s May 03 00:59:57 Then Logical slot test_logical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 2039s May 03 00:59:57 And Logical slot test_logical is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 2040s May 03 00:59:58 And postgres-1 has a physical replication slot named test_physical after 2 seconds # features/steps/slots.py:82 2040s May 03 00:59:58 And postgres-2 does not have a replication slot named test_logical # features/steps/slots.py:41 2040s May 03 00:59:58 And postgres-3 has a physical replication slot named test_physical after 2 seconds # features/steps/slots.py:82 2040s May 03 00:59:58 2040s May 03 00:59:58 @slot-advance 2040s May 03 00:59:58 Scenario: check permanent physical slots that match with member names # features/permanent_slots.feature:34 2040s May 03 00:59:58 Given postgres-0 has a physical replication slot named postgres_3 after 2 seconds # features/steps/slots.py:82 2040s May 03 00:59:58 And postgres-1 has a physical replication slot named postgres_0 after 2 seconds # features/steps/slots.py:82 2040s May 03 00:59:58 And postgres-1 has a physical replication slot named postgres_2 after 2 seconds # features/steps/slots.py:82 2040s May 03 00:59:58 And postgres-1 has a physical replication slot named postgres_3 after 2 seconds # features/steps/slots.py:82 2040s May 03 00:59:58 And postgres-2 does not have a replication slot named postgres_0 # features/steps/slots.py:41 2040s May 03 00:59:58 And postgres-2 does not have a replication slot named postgres_1 # features/steps/slots.py:41 2040s May 03 00:59:58 And postgres-2 has a physical replication slot named postgres_3 after 2 seconds # features/steps/slots.py:82 2040s May 03 00:59:58 And postgres-3 has a physical replication slot named postgres_0 after 2 seconds # features/steps/slots.py:82 2040s May 03 00:59:58 And postgres-3 has a physical replication slot named postgres_1 after 2 seconds # features/steps/slots.py:82 2040s May 03 00:59:58 And postgres-3 has a physical replication slot named postgres_2 after 2 seconds # features/steps/slots.py:82 2040s May 03 00:59:58 2040s May 03 00:59:58 @slot-advance 2040s May 03 00:59:58 Scenario: check that permanent slots are advanced on replicas # features/permanent_slots.feature:47 2040s May 03 00:59:58 Given I add the table replicate_me to postgres-0 # features/steps/basic_replication.py:66 2040s May 03 00:59:58 When I get all changes from logical slot test_logical on postgres-0 # features/steps/slots.py:72 2040s May 03 00:59:58 And I get all changes from physical slot test_physical on postgres-0 # features/steps/slots.py:77 2040s May 03 00:59:58 Then Logical slot test_logical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 2044s May 03 01:00:02 And Physical slot test_physical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 2044s May 03 01:00:02 And Logical slot test_logical is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 2044s May 03 01:00:02 And Physical slot test_physical is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 2044s May 03 01:00:02 And Physical slot postgres_1 is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 2044s May 03 01:00:02 And Physical slot postgres_3 is in sync between postgres-2 and postgres-0 after 20 seconds # features/steps/slots.py:52 2044s May 03 01:00:02 And Physical slot postgres_3 is in sync between postgres-2 and postgres-1 after 10 seconds # features/steps/slots.py:52 2044s May 03 01:00:02 2044s May 03 01:00:02 @slot-advance 2044s May 03 01:00:02 Scenario: check that permanent slots and member slots are written to the /status key # features/permanent_slots.feature:60 2044s May 03 01:00:02 Given "status" key in DCS has test_physical in slots # features/steps/slots.py:118 2044s May 03 01:00:02 And "status" key in DCS has postgres_0 in slots # features/steps/slots.py:118 2044s May 03 01:00:02 And "status" key in DCS has postgres_1 in slots # features/steps/slots.py:118 2044s May 03 01:00:02 And "status" key in DCS has postgres_2 in slots # features/steps/slots.py:118 2044s May 03 01:00:02 And "status" key in DCS has postgres_3 in slots # features/steps/slots.py:118 2044s May 03 01:00:02 2044s May 03 01:00:02 @slot-advance 2044s May 03 01:00:02 Scenario: check that only non-permanent member slots are written to the retain_slots in /status key # features/permanent_slots.feature:68 2044s May 03 01:00:02 Given "status" key in DCS has postgres_0 in retain_slots # features/steps/slots.py:118 2044s May 03 01:00:02 And "status" key in DCS has postgres_1 in retain_slots # features/steps/slots.py:118 2044s May 03 01:00:02 And "status" key in DCS has postgres_2 in retain_slots # features/steps/slots.py:118 2044s May 03 01:00:02 And "status" key in DCS does not have postgres_3 in retain_slots # features/steps/slots.py:124 2044s May 03 01:00:02 2044s May 03 01:00:02 Scenario: check permanent physical replication slot after failover # features/permanent_slots.feature:74 2044s May 03 01:00:02 Given I shut down postgres-3 # features/steps/basic_replication.py:41 2045s May 03 01:00:03 And I shut down postgres-2 # features/steps/basic_replication.py:41 2046s May 03 01:00:04 And I shut down postgres-0 # features/steps/basic_replication.py:41 2048s May 03 01:00:06 Then postgres-1 has a physical replication slot named test_physical after 10 seconds # features/steps/slots.py:82 2048s May 03 01:00:06 And postgres-1 has a physical replication slot named postgres_0 after 10 seconds # features/steps/slots.py:82 2048s May 03 01:00:06 And postgres-1 has a physical replication slot named postgres_3 after 10 seconds # features/steps/slots.py:82 2048s May 03 01:00:06 When I start postgres-0 # features/steps/basic_replication.py:20 2050s May 03 01:00:08 Then postgres-0 role is the replica after 20 seconds # features/steps/basic_replication.py:117 2050s May 03 01:00:08 And physical replication slot named postgres_1 on postgres-0 has no xmin value after 10 seconds # features/steps/slots.py:98 2051s May 03 01:00:09 And postgres-0 has a physical replication slot named postgres_2 after 10 seconds # features/steps/slots.py:82 2051s May 03 01:00:09 And postgres-0 has a physical replication slot named postgres_3 after 10 seconds # features/steps/slots.py:82 2054s May 03 01:00:12 2054s May 03 01:00:12 Feature: priority replication # features/priority_failover.feature:1 2054s May 03 01:00:12 We should check that we can give nodes priority during failover 2054s May 03 01:00:12 Scenario: check failover priority 0 prevents leaderships # features/priority_failover.feature:4 2054s May 03 01:00:12 Given I configure and start postgres-0 with a tag failover_priority 1 # features/steps/cascading_replication.py:7 2056s May 03 01:00:14 And I configure and start postgres-1 with a tag failover_priority 0 # features/steps/cascading_replication.py:7 2058s May 03 01:00:16 Then replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 2060s May 03 01:00:17 When I shut down postgres-0 # features/steps/basic_replication.py:41 2062s May 03 01:00:19 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 2064s May 03 01:00:21 Then postgres-1 role is the secondary after 10 seconds # features/steps/basic_replication.py:117 2064s May 03 01:00:21 When I start postgres-0 # features/steps/basic_replication.py:20 2066s May 03 01:00:24 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2067s May 03 01:00:25 2067s May 03 01:00:25 Scenario: check higher failover priority is respected # features/priority_failover.feature:14 2067s May 03 01:00:25 Given I configure and start postgres-2 with a tag failover_priority 1 # features/steps/cascading_replication.py:7 2070s May 03 01:00:28 And I configure and start postgres-3 with a tag failover_priority 2 # features/steps/cascading_replication.py:7 2072s May 03 01:00:30 Then replication works from postgres-0 to postgres-2 after 20 seconds # features/steps/basic_replication.py:124 2073s May 03 01:00:31 And replication works from postgres-0 to postgres-3 after 20 seconds # features/steps/basic_replication.py:124 2074s May 03 01:00:32 When I shut down postgres-0 # features/steps/basic_replication.py:41 2076s May 03 01:00:34 Then postgres-3 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2076s May 03 01:00:34 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 2076s May 03 01:00:34 2076s May 03 01:00:34 Scenario: check conflicting configuration handling # features/priority_failover.feature:23 2076s May 03 01:00:34 When I set nofailover tag in postgres-2 config # features/steps/patroni_api.py:133 2076s May 03 01:00:34 And I issue an empty POST request to http://127.0.0.1:8010/reload # features/steps/patroni_api.py:68 2076s May 03 01:00:34 Then I receive a response code 202 # features/steps/patroni_api.py:100 2076s May 03 01:00:34 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 2077s May 03 01:00:35 And "members/postgres-2" key in DCS has tags={'failover_priority': '1', 'nofailover': True} after 10 seconds # features/steps/cascading_replication.py:23 2079s May 03 01:00:37 When I issue a POST request to http://127.0.0.1:8010/failover with {"candidate": "postgres-2"} # features/steps/patroni_api.py:73 2079s May 03 01:00:37 Then I receive a response code 412 # features/steps/patroni_api.py:100 2079s May 03 01:00:37 And I receive a response text "failover is not possible: no good candidates have been found" # features/steps/patroni_api.py:100 2079s May 03 01:00:37 When I reset nofailover tag in postgres-1 config # features/steps/patroni_api.py:133 2079s May 03 01:00:37 And I issue an empty POST request to http://127.0.0.1:8009/reload # features/steps/patroni_api.py:68 2079s May 03 01:00:37 Then I receive a response code 202 # features/steps/patroni_api.py:100 2079s May 03 01:00:37 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 2081s May 03 01:00:39 And "members/postgres-1" key in DCS has tags={'failover_priority': '0', 'nofailover': False} after 10 seconds # features/steps/cascading_replication.py:23 2082s May 03 01:00:40 And I issue a POST request to http://127.0.0.1:8009/failover with {"candidate": "postgres-1"} # features/steps/patroni_api.py:73 2085s May 03 01:00:43 Then I receive a response code 200 # features/steps/patroni_api.py:100 2085s May 03 01:00:43 And postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2090s May 03 01:00:48 2090s May 03 01:00:48 Feature: quorum commit # features/quorum_commit.feature:1 2090s May 03 01:00:48 Check basic workfrlows when quorum commit is enabled 2090s May 03 01:00:48 Scenario: check enable quorum commit and that the only leader promotes after restart # features/quorum_commit.feature:4 2090s May 03 01:00:48 Given I start postgres-0 # features/steps/basic_replication.py:20 2093s May 03 01:00:51 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 2093s May 03 01:00:51 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 2093s May 03 01:00:51 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 2093s May 03 01:00:51 Then I receive a response code 200 # features/steps/patroni_api.py:100 2093s May 03 01:00:51 And sync key in DCS has leader=postgres-0 after 20 seconds # features/steps/quorum_commit.py:8 2093s May 03 01:00:51 And sync key in DCS has quorum=0 after 2 seconds # features/steps/quorum_commit.py:8 2093s May 03 01:00:51 And synchronous_standby_names on postgres-0 is set to '_empty_str_' after 2 seconds # features/steps/quorum_commit.py:39 2093s May 03 01:00:51 When I shut down postgres-0 # features/steps/basic_replication.py:41 2095s May 03 01:00:53 And sync key in DCS has leader=postgres-0 after 2 seconds # features/steps/quorum_commit.py:8 2095s May 03 01:00:53 When I start postgres-0 # features/steps/basic_replication.py:20 2097s May 03 01:00:55 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2098s May 03 01:00:56 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 2099s May 03 01:00:56 Then synchronous_standby_names on postgres-0 is set to 'ANY 1 (*)' after 10 seconds # features/steps/quorum_commit.py:39 2099s May 03 01:00:56 2099s May 03 01:00:56 Scenario: check failover with one quorum standby # features/quorum_commit.feature:20 2099s May 03 01:00:56 Given I start postgres-1 # features/steps/basic_replication.py:20 2103s May 03 01:01:01 Then sync key in DCS has sync_standby=postgres-1 after 10 seconds # features/steps/quorum_commit.py:8 2105s May 03 01:01:03 And synchronous_standby_names on postgres-0 is set to 'ANY 1 ("postgres-1")' after 2 seconds # features/steps/quorum_commit.py:39 2105s May 03 01:01:03 When I shut down postgres-0 # features/steps/basic_replication.py:41 2107s May 03 01:01:05 Then postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2107s May 03 01:01:05 And sync key in DCS has quorum=0 after 10 seconds # features/steps/quorum_commit.py:8 2107s May 03 01:01:05 Then synchronous_standby_names on postgres-1 is set to 'ANY 1 (*)' after 10 seconds # features/steps/quorum_commit.py:39 2111s May 03 01:01:09 When I start postgres-0 # features/steps/basic_replication.py:20 2113s May 03 01:01:11 Then sync key in DCS has leader=postgres-1 after 10 seconds # features/steps/quorum_commit.py:8 2113s May 03 01:01:11 Then sync key in DCS has sync_standby=postgres-0 after 10 seconds # features/steps/quorum_commit.py:8 2116s May 03 01:01:14 And synchronous_standby_names on postgres-1 is set to 'ANY 1 ("postgres-0")' after 2 seconds # features/steps/quorum_commit.py:39 2116s May 03 01:01:14 2116s May 03 01:01:14 Scenario: check behavior with three nodes and different replication factor # features/quorum_commit.feature:33 2116s May 03 01:01:14 Given I start postgres-2 # features/steps/basic_replication.py:20 2119s May 03 01:01:17 Then sync key in DCS has sync_standby=postgres-0,postgres-2 after 10 seconds # features/steps/quorum_commit.py:8 2120s May 03 01:01:18 And sync key in DCS has quorum=1 after 2 seconds # features/steps/quorum_commit.py:8 2120s May 03 01:01:18 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 2120s May 03 01:01:18 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 2120s May 03 01:01:18 Then sync key in DCS has quorum=0 after 10 seconds # features/steps/quorum_commit.py:8 2121s May 03 01:01:19 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 2121s May 03 01:01:19 2121s May 03 01:01:19 Scenario: switch from quorum replication to good old multisync and back # features/quorum_commit.feature:42 2121s May 03 01:01:19 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 2121s May 03 01:01:19 And I shut down postgres-0 # features/steps/basic_replication.py:41 2122s May 03 01:01:20 Then synchronous_standby_names on postgres-1 is set to '"postgres-2"' after 10 seconds # features/steps/quorum_commit.py:39 2124s May 03 01:01:22 And sync key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/quorum_commit.py:8 2126s May 03 01:01:24 Then sync key in DCS has quorum=0 after 2 seconds # features/steps/quorum_commit.py:8 2126s May 03 01:01:24 When I issue a PATCH request to http://127.0.0.1:8009/config with {"synchronous_mode": "quorum"} # features/steps/patroni_api.py:73 2126s May 03 01:01:24 And I start postgres-0 # features/steps/basic_replication.py:20 2128s May 03 01:01:26 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 2130s May 03 01:01:28 And sync key in DCS has sync_standby=postgres-0,postgres-2 after 10 seconds # features/steps/quorum_commit.py:8 2130s May 03 01:01:28 Then sync key in DCS has quorum=1 after 2 seconds # features/steps/quorum_commit.py:8 2130s May 03 01:01:28 2130s May 03 01:01:28 Scenario: REST API and patronictl # features/quorum_commit.feature:54 2130s May 03 01:01:28 Given I run patronictl.py list batman # features/steps/patroni_api.py:88 2131s May 03 01:01:29 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2131s May 03 01:01:29 And I receive a response output "Quorum Standby" # features/steps/patroni_api.py:100 2131s May 03 01:01:29 And Status code on GET http://127.0.0.1:8008/quorum is 200 after 3 seconds # features/steps/patroni_api.py:144 2131s May 03 01:01:29 And Status code on GET http://127.0.0.1:8010/quorum is 200 after 3 seconds # features/steps/patroni_api.py:144 2131s May 03 01:01:29 2131s May 03 01:01:29 Scenario: nosync node is removed from voters and synchronous_standby_names # features/quorum_commit.feature:61 2131s May 03 01:01:29 Given I add tag nosync true to postgres-2 config # features/steps/patroni_api.py:139 2131s May 03 01:01:29 When I issue an empty POST request to http://127.0.0.1:8010/reload # features/steps/patroni_api.py:68 2131s May 03 01:01:29 Then I receive a response code 202 # features/steps/patroni_api.py:100 2131s May 03 01:01:29 And sync key in DCS has quorum=0 after 10 seconds # features/steps/quorum_commit.py:8 2134s May 03 01:01:32 And sync key in DCS has sync_standby=postgres-0 after 10 seconds # features/steps/quorum_commit.py:8 2134s May 03 01:01:32 And synchronous_standby_names on postgres-1 is set to 'ANY 1 ("postgres-0")' after 2 seconds # features/steps/quorum_commit.py:39 2134s May 03 01:01:32 And Status code on GET http://127.0.0.1:8010/quorum is 503 after 10 seconds # features/steps/patroni_api.py:144 2141s May 03 01:01:39 2141s May 03 01:01:39 Feature: recovery # features/recovery.feature:1 2141s May 03 01:01:39 We want to check that crashed postgres is started back 2141s May 03 01:01:39 Scenario: check that timeline is not incremented when primary is started after crash # features/recovery.feature:4 2141s May 03 01:01:39 Given I start postgres-0 # features/steps/basic_replication.py:20 2143s May 03 01:01:41 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 2144s May 03 01:01:42 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 2144s May 03 01:01:42 When I start postgres-1 # features/steps/basic_replication.py:20 2146s May 03 01:01:44 And I add the table foo to postgres-0 # features/steps/basic_replication.py:66 2146s May 03 01:01:44 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 2147s May 03 01:01:45 When I kill postmaster on postgres-0 # features/steps/basic_replication.py:56 2147s May 03 01:01:45 waiting for server to shut down.... done 2147s May 03 01:01:45 server stopped 2147s May 03 01:01:45 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2149s May 03 01:01:47 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:63 2150s May 03 01:01:48 Then I receive a response code 200 # features/steps/patroni_api.py:100 2150s May 03 01:01:48 And I receive a response role primary # features/steps/patroni_api.py:100 2150s May 03 01:01:48 And I receive a response timeline 1 # features/steps/patroni_api.py:100 2150s May 03 01:01:48 And "members/postgres-0" key in DCS has state=running after 12 seconds # features/steps/cascading_replication.py:23 2151s May 03 01:01:49 And replication works from postgres-0 to postgres-1 after 15 seconds # features/steps/basic_replication.py:124 2154s May 03 01:01:52 2154s May 03 01:01:52 Scenario: check immediate failover when master_start_timeout=0 # features/recovery.feature:20 2154s May 03 01:01: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 2154s May 03 01:01:52 Then I receive a response code 200 # features/steps/patroni_api.py:100 2154s May 03 01:01: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 2154s May 03 01:01:52 When I kill postmaster on postgres-0 # features/steps/basic_replication.py:56 2154s May 03 01:01:52 waiting for server to shut down.... done 2154s May 03 01:01:52 server stopped 2154s May 03 01:01:52 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 2156s May 03 01:01:54 And postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2157s May 03 01:01:55 2157s May 03 01:01:55 Scenario: check crashed primary demotes after failed attempt to start # features/recovery.feature:28 2157s May 03 01:01: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 2157s May 03 01:01:55 Then I receive a response code 200 # features/steps/patroni_api.py:100 2157s May 03 01:01:55 And postgres-0 role is the replica after 10 seconds # features/steps/basic_replication.py:117 2159s May 03 01:01:57 When I ensure postgres-1 fails to start after a failure # features/steps/recovery.py:6 2159s May 03 01:01:57 When I kill postmaster on postgres-1 # features/steps/basic_replication.py:56 2159s May 03 01:01:57 waiting for server to shut down.... done 2159s May 03 01:01:57 server stopped 2159s May 03 01:01:57 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 2162s May 03 01:02:00 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 2165s May 03 01:02:03 2165s May 03 01:02:03 Feature: standby cluster # features/standby_cluster.feature:1 2165s May 03 01:02:03 2165s May 03 01:02:03 Scenario: prepare the cluster with logical slots # features/standby_cluster.feature:2 2165s May 03 01:02:03 Given I start postgres-1 # features/steps/basic_replication.py:20 2168s May 03 01:02:06 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 2169s May 03 01:02:07 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 2169s May 03 01:02: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 2169s May 03 01:02:07 Then I receive a response code 200 # features/steps/patroni_api.py:100 2169s May 03 01:02:07 And Response on GET http://127.0.0.1:8009/config contains slots after 10 seconds # features/steps/patroni_api.py:158 2169s May 03 01:02:07 And I sleep for 3 seconds # features/steps/patroni_api.py:41 2172s May 03 01:02: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 2172s May 03 01:02:10 Then I receive a response code 200 # features/steps/patroni_api.py:100 2172s May 03 01:02:10 And I do a backup of postgres-1 # features/steps/custom_bootstrap.py:25 2173s May 03 01:02:11 When I start postgres-0 # features/steps/basic_replication.py:20 2175s May 03 01:02:13 Then "members/postgres-0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 2176s May 03 01:02:14 And replication works from postgres-1 to postgres-0 after 15 seconds # features/steps/basic_replication.py:124 2177s May 03 01:02:15 When I issue a GET request to http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:63 2177s May 03 01:02:15 Then I receive a response code 200 # features/steps/patroni_api.py:100 2177s May 03 01:02:15 And I receive a response replication_state streaming # features/steps/patroni_api.py:100 2177s May 03 01:02:15 And "members/postgres-0" key in DCS has replication_state=streaming after 10 seconds # features/steps/cascading_replication.py:23 2178s May 03 01:02:16 2178s May 03 01:02:16 @slot-advance 2178s May 03 01:02:16 Scenario: check permanent logical slots are synced to the replica # features/standby_cluster.feature:22 2178s May 03 01:02:16 Given I run patronictl.py restart batman postgres-1 --force # features/steps/patroni_api.py:88 2180s May 03 01:02:18 Then Logical slot test_logical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 2187s May 03 01:02:25 2187s May 03 01:02:25 Scenario: Detach exiting node from the cluster # features/standby_cluster.feature:26 2187s May 03 01:02:25 When I shut down postgres-1 # features/steps/basic_replication.py:41 2189s May 03 01:02:27 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 2189s May 03 01:02:27 And "members/postgres-0" key in DCS has role=primary after 5 seconds # features/steps/cascading_replication.py:23 2190s May 03 01:02:28 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:63 2190s May 03 01:02:28 Then I receive a response code 200 # features/steps/patroni_api.py:100 2190s May 03 01:02:28 2190s May 03 01:02:28 Scenario: check replication of a single table in a standby cluster # features/standby_cluster.feature:33 2190s May 03 01:02:28 Given I start postgres-1 in a standby cluster batman1 as a clone of postgres-0 # features/steps/standby_cluster.py:23 2192s May 03 01:02:30 Then postgres-1 is a leader of batman1 after 10 seconds # features/steps/custom_bootstrap.py:16 2193s May 03 01:02:31 When I add the table foo to postgres-0 # features/steps/basic_replication.py:66 2193s May 03 01:02:31 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 2193s May 03 01:02:31 When I issue a GET request to http://127.0.0.1:8009/patroni # features/steps/patroni_api.py:63 2193s May 03 01:02:31 Then I receive a response code 200 # features/steps/patroni_api.py:100 2193s May 03 01:02:31 And I receive a response replication_state streaming # features/steps/patroni_api.py:100 2193s May 03 01:02:31 And I sleep for 3 seconds # features/steps/patroni_api.py:41 2196s May 03 01:02:34 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 2196s May 03 01:02:34 Then I receive a response code 503 # features/steps/patroni_api.py:100 2196s May 03 01:02:34 When I issue a GET request to http://127.0.0.1:8009/standby_leader # features/steps/patroni_api.py:63 2197s May 03 01:02:34 Then I receive a response code 200 # features/steps/patroni_api.py:100 2197s May 03 01:02:34 And I receive a response role standby_leader # features/steps/patroni_api.py:100 2197s May 03 01:02:34 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 2197s May 03 01:02:34 When I start postgres-2 in a cluster batman1 # features/steps/standby_cluster.py:12 2200s May 03 01:02:38 Then postgres-2 role is the replica after 24 seconds # features/steps/basic_replication.py:117 2200s May 03 01:02:38 And postgres-2 is replicating from postgres-1 after 10 seconds # features/steps/standby_cluster.py:52 2200s May 03 01:02:38 And table foo is present on postgres-2 after 20 seconds # features/steps/basic_replication.py:105 2200s May 03 01:02:38 When I issue a GET request to http://127.0.0.1:8010/patroni # features/steps/patroni_api.py:63 2200s May 03 01:02:38 Then I receive a response code 200 # features/steps/patroni_api.py:100 2200s May 03 01:02:38 And I receive a response replication_state streaming # features/steps/patroni_api.py:100 2200s May 03 01:02:38 And postgres-1 does not have a replication slot named test_logical # features/steps/slots.py:41 2200s May 03 01:02:38 2200s May 03 01:02:38 Scenario: check switchover # features/standby_cluster.feature:57 2200s May 03 01:02:38 Given I run patronictl.py switchover batman1 --force # features/steps/patroni_api.py:88 2202s May 03 01:02:40 Then Status code on GET http://127.0.0.1:8010/standby_leader is 200 after 10 seconds # features/steps/patroni_api.py:144 2202s May 03 01:02:40 And postgres-1 is replicating from postgres-2 after 32 seconds # features/steps/standby_cluster.py:52 2204s May 03 01:02:42 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 2204s May 03 01:02:42 2204s May 03 01:02:42 Scenario: check failover # features/standby_cluster.feature:63 2204s May 03 01:02:42 When I kill postgres-2 # features/steps/basic_replication.py:46 2205s May 03 01:02:43 And I kill postmaster on postgres-2 # features/steps/basic_replication.py:56 2206s May 03 01:02:44 waiting for server to shut down.... done 2206s May 03 01:02:44 server stopped 2206s May 03 01:02:44 Then postgres-1 is replicating from postgres-0 after 32 seconds # features/steps/standby_cluster.py:52 2227s May 03 01:03:05 And Status code on GET http://127.0.0.1:8009/standby_leader is 200 after 10 seconds # features/steps/patroni_api.py:144 2227s May 03 01:03:05 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 2227s May 03 01:03:05 Then I receive a response code 503 # features/steps/patroni_api.py:100 2227s May 03 01:03:05 And I receive a response role standby_leader # features/steps/patroni_api.py:100 2227s May 03 01:03:05 And replication works from postgres-0 to postgres-1 after 15 seconds # features/steps/basic_replication.py:124 2228s May 03 01:03:06 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 2232s May 03 01:03:10 2232s May 03 01:03:10 Feature: watchdog # features/watchdog.feature:1 2232s May 03 01:03:10 Verify that watchdog gets pinged and triggered under appropriate circumstances. 2232s May 03 01:03:10 Scenario: watchdog is opened and pinged # features/watchdog.feature:4 2232s May 03 01:03:10 Given I start postgres-0 with watchdog # features/steps/watchdog.py:17 2234s May 03 01:03:12 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 2235s May 03 01:03:13 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2235s May 03 01:03:13 And postgres-0 watchdog has been pinged after 10 seconds # features/steps/watchdog.py:22 2236s May 03 01:03:14 And postgres-0 watchdog has a 15 second timeout # features/steps/watchdog.py:35 2236s May 03 01:03:14 2236s May 03 01:03:14 Scenario: watchdog is reconfigured after global ttl changed # features/watchdog.feature:11 2236s May 03 01:03:14 Given I run patronictl.py edit-config batman -s ttl=30 --force # features/steps/patroni_api.py:88 2237s May 03 01:03:15 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2237s May 03 01:03:15 And I receive a response output "+ttl: 30" # features/steps/patroni_api.py:100 2237s May 03 01:03:15 When I sleep for 4 seconds # features/steps/patroni_api.py:41 2241s May 03 01:03:19 Then postgres-0 watchdog has a 25 second timeout # features/steps/watchdog.py:35 2241s May 03 01:03:19 2241s May 03 01:03:19 Scenario: watchdog is disabled during pause # features/watchdog.feature:18 2241s May 03 01:03:19 Given I run patronictl.py pause batman # features/steps/patroni_api.py:88 2242s May 03 01:03:20 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2242s May 03 01:03:20 When I sleep for 2 seconds # features/steps/patroni_api.py:41 2244s May 03 01:03:22 Then postgres-0 watchdog has been closed # features/steps/watchdog.py:30 2244s May 03 01:03:22 2244s May 03 01:03:22 Scenario: watchdog is opened and pinged after resume # features/watchdog.feature:24 2244s May 03 01:03:22 Given I reset postgres-0 watchdog state # features/steps/watchdog.py:40 2244s May 03 01:03:22 And I run patronictl.py resume batman # features/steps/patroni_api.py:88 2244s May 03 01:03:22 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2244s May 03 01:03:22 And postgres-0 watchdog has been pinged after 10 seconds # features/steps/watchdog.py:22 2244s May 03 01:03:22 2244s May 03 01:03:22 Scenario: watchdog is disabled when shutting down # features/watchdog.feature:30 2244s May 03 01:03:22 Given I shut down postgres-0 # features/steps/basic_replication.py:41 2246s May 03 01:03:24 Then postgres-0 watchdog has been closed # features/steps/watchdog.py:30 2246s May 03 01:03:24 2246s May 03 01:03:24 Scenario: watchdog is triggered if patroni stops responding # features/watchdog.feature:34 2246s May 03 01:03:24 Given I reset postgres-0 watchdog state # features/steps/watchdog.py:40 2246s May 03 01:03:24 And I start postgres-0 with watchdog # features/steps/watchdog.py:17 2248s May 03 01:03:26 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2249s May 03 01:03:27 When postgres-0 hangs for 30 seconds # features/steps/watchdog.py:53 2249s May 03 01:03:27 Then postgres-0 watchdog is triggered after 30 seconds # features/steps/watchdog.py:45 2273s May 03 01:03:51 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.10029.XAIGHQMx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.10138.XdSPmaAx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.10262.XwvHWhux 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.10465.XHxkCvax 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.10513.XdNpmfAx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.10521.XZeIeObx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.10526.XWTzKQrx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.10542.XHyYYAKx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.5955.XFEZvnKx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.6006.XwddIcnx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.6063.XsvExRox 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.6125.XMJkGbsx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.6172.XjpgdxRx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.6247.XmhiRZXx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.6297.XdFGhwBx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.6302.XsOVomRx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.6392.XwenfOKx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.6491.XPWBqnCx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.6503.XXkzgNqx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.6549.XMgZmVyx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.6598.XaurSCXx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.6760.XryBojKx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.6807.XRthWIMx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.6864.XnoSkOYx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.6962.XBbIllvx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.7021.XUOIzNRx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.7085.XruAwaDx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.7190.XRkvjnLx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.7294.XkqZbhCx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.7333.XNUFTDqx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.7410.XLTGjOkx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.7442.XlnSGWYx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.7573.XPQUVCLx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.7624.XLkpVrtx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.7644.XGLeKewx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.7685.XuLPfllx 2274s May 03 01:03:52 Skipping duplicate data .coverage.autopkgtest.7737.XoSwOQpx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.7744.XUYUlzgx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.7784.XculkUQx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.7830.XNixwBBx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.8000.XHVOWTCx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.8004.XiYiWOkx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.8012.XogovSTx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.8158.XuoKefkx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.8206.XIqvnOox 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.8264.XlOIsYxx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.8311.XCPfivCx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.8363.XoTwJvtx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.8527.XvshxpVx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.8587.XDzXEhUx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.8632.XvkyGoPx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.8708.XfqIfcvx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.8773.XtlSBVqx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.8847.XqcFUaex 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.9191.XwACqsix 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.9246.XwtTIFrx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.9308.Xhrpxnex 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.9406.XbsQzgYx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.9456.XnjmAPFx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.9518.XPikiFhx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.9562.XGXQCDkx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.9606.XkIXufax 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.9653.XpFmsKfx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.9895.XlrPXQTx 2274s May 03 01:03:52 Combined data file .coverage.autopkgtest.9961.XdKnskQx 2276s May 03 01:03:54 Name Stmts Miss Cover 2276s May 03 01:03:54 -------------------------------------------------------------------------------------------------------- 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/_distutils_hack/__init__.py 101 96 5% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/dateutil/__init__.py 13 4 69% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/dateutil/_common.py 25 15 40% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/dateutil/_version.py 13 3 77% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/dateutil/parser/__init__.py 33 4 88% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/dateutil/parser/_parser.py 810 436 46% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/dateutil/parser/isoparser.py 183 150 18% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/dateutil/relativedelta.py 240 206 14% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/dateutil/tz/__init__.py 4 0 100% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/dateutil/tz/_common.py 151 114 25% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/dateutil/tz/_factories.py 49 21 57% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/dateutil/tz/tz.py 794 626 21% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/dateutil/tz/win.py 152 149 2% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/kazoo/__init__.py 1 0 100% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/kazoo/client.py 629 261 59% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/kazoo/exceptions.py 110 1 99% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/kazoo/handlers/__init__.py 0 0 100% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/kazoo/handlers/threading.py 94 15 84% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/kazoo/handlers/utils.py 222 73 67% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/kazoo/hosts.py 18 4 78% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/kazoo/loggingsupport.py 1 0 100% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/kazoo/protocol/__init__.py 0 0 100% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/kazoo/protocol/connection.py 485 174 64% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/kazoo/protocol/paths.py 33 8 76% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/kazoo/protocol/serialization.py 316 111 65% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/kazoo/protocol/states.py 49 9 82% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/kazoo/python2atexit.py 32 19 41% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/kazoo/recipe/__init__.py 0 0 100% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/kazoo/recipe/barrier.py 97 80 18% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/kazoo/recipe/counter.py 49 36 27% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/kazoo/recipe/election.py 16 10 38% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/kazoo/recipe/lease.py 54 36 33% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/kazoo/recipe/lock.py 295 242 18% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/kazoo/recipe/partitioner.py 155 120 23% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/kazoo/recipe/party.py 62 43 31% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/kazoo/recipe/queue.py 157 126 20% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/kazoo/recipe/watchers.py 172 138 20% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/kazoo/retry.py 60 9 85% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/kazoo/security.py 58 35 40% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/kazoo/version.py 1 0 100% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/__init__.py 13 2 85% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/__main__.py 201 64 68% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/api.py 788 296 62% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/async_executor.py 96 15 84% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/collections.py 56 5 91% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/config.py 357 82 77% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/config_generator.py 212 159 25% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/daemon.py 76 3 96% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/dcs/__init__.py 710 108 85% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/dcs/zookeeper.py 289 58 80% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/dynamic_loader.py 35 7 80% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/exceptions.py 16 0 100% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/file_perm.py 47 10 79% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/global_config.py 87 0 100% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/ha.py 1359 382 72% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/log.py 235 79 66% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/postgresql/__init__.py 825 167 80% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/postgresql/available_parameters/__init__.py 24 3 88% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/postgresql/bootstrap.py 254 60 76% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/postgresql/callback_executor.py 55 8 85% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/postgresql/cancellable.py 104 41 61% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/postgresql/config.py 839 215 74% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/postgresql/connection.py 75 1 99% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/postgresql/misc.py 43 8 81% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/postgresql/mpp/__init__.py 89 11 88% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/postgresql/postmaster.py 170 83 51% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/postgresql/rewind.py 416 127 69% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/postgresql/slots.py 349 38 89% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/postgresql/sync.py 154 10 94% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/postgresql/validator.py 157 24 85% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/psycopg.py 46 19 59% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/quorum.py 182 48 74% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/request.py 58 7 88% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/tags.py 38 0 100% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/utils.py 371 122 67% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/validator.py 309 215 30% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/version.py 1 0 100% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/watchdog/__init__.py 2 0 100% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/watchdog/base.py 203 46 77% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/patroni/watchdog/linux.py 135 35 74% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/psutil/__init__.py 945 622 34% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/psutil/_common.py 408 208 49% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/psutil/_pslinux.py 1225 907 26% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/psutil/_psposix.py 84 37 56% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/psycopg2/__init__.py 19 3 84% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/psycopg2/_json.py 64 27 58% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/psycopg2/_range.py 269 172 36% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/psycopg2/errors.py 3 2 33% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/psycopg2/extensions.py 91 25 73% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/puresasl/__init__.py 21 2 90% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/puresasl/client.py 71 47 34% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/puresasl/mechanisms.py 363 263 28% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/six.py 505 259 49% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/urllib3/__init__.py 49 15 69% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/urllib3/_base_connection.py 63 45 29% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/urllib3/_collections.py 231 125 46% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/urllib3/_request_methods.py 54 24 56% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/urllib3/_version.py 13 3 77% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/urllib3/connection.py 389 149 62% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/urllib3/connectionpool.py 344 130 62% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/urllib3/exceptions.py 121 39 68% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/urllib3/fields.py 92 73 21% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/urllib3/filepost.py 37 24 35% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/urllib3/http2/__init__.py 28 21 25% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/urllib3/http2/probe.py 49 31 37% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/urllib3/poolmanager.py 233 88 62% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/urllib3/response.py 634 393 38% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/urllib3/util/__init__.py 10 0 100% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/urllib3/util/connection.py 66 9 86% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/urllib3/util/proxy.py 13 6 54% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/urllib3/util/request.py 104 52 50% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/urllib3/util/response.py 32 17 47% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/urllib3/util/retry.py 174 53 70% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/urllib3/util/ssl_.py 172 73 58% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/urllib3/util/ssl_match_hostname.py 66 54 18% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/urllib3/util/ssltransport.py 152 106 30% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/urllib3/util/timeout.py 71 19 73% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/urllib3/util/url.py 203 76 63% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/urllib3/util/util.py 26 18 31% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/urllib3/util/wait.py 49 38 22% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/yaml/__init__.py 165 109 34% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/yaml/composer.py 92 17 82% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/yaml/constructor.py 479 276 42% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/yaml/cyaml.py 46 24 48% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/yaml/dumper.py 23 12 48% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/yaml/emitter.py 838 769 8% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/yaml/error.py 58 42 28% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/yaml/events.py 61 6 90% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/yaml/loader.py 47 24 49% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/yaml/nodes.py 29 7 76% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/yaml/parser.py 352 180 49% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/yaml/reader.py 122 30 75% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/yaml/representer.py 248 176 29% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/yaml/resolver.py 135 76 44% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/yaml/scanner.py 758 415 45% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/yaml/serializer.py 85 70 18% 2276s May 03 01:03:54 /usr/lib/python3/dist-packages/yaml/tokens.py 76 17 78% 2276s May 03 01:03:54 patroni/__init__.py 13 2 85% 2276s May 03 01:03:54 patroni/__main__.py 201 201 0% 2276s May 03 01:03:54 patroni/api.py 788 788 0% 2276s May 03 01:03:54 patroni/async_executor.py 96 69 28% 2276s May 03 01:03:54 patroni/collections.py 56 15 73% 2276s May 03 01:03:54 patroni/config.py 357 184 48% 2276s May 03 01:03:54 patroni/config_generator.py 212 212 0% 2276s May 03 01:03:54 patroni/ctl.py 936 395 58% 2276s May 03 01:03:54 patroni/daemon.py 76 76 0% 2276s May 03 01:03:54 patroni/dcs/__init__.py 710 317 55% 2276s May 03 01:03:54 patroni/dcs/consul.py 482 482 0% 2276s May 03 01:03:54 patroni/dcs/etcd3.py 679 679 0% 2276s May 03 01:03:54 patroni/dcs/etcd.py 603 603 0% 2276s May 03 01:03:54 patroni/dcs/exhibitor.py 62 62 0% 2276s May 03 01:03:54 patroni/dcs/kubernetes.py 943 943 0% 2276s May 03 01:03:54 patroni/dcs/raft.py 319 319 0% 2276s May 03 01:03:54 patroni/dcs/zookeeper.py 289 150 48% 2276s May 03 01:03:54 patroni/dynamic_loader.py 35 7 80% 2276s May 03 01:03:54 patroni/exceptions.py 16 1 94% 2276s May 03 01:03:54 patroni/file_perm.py 47 17 64% 2276s May 03 01:03:54 patroni/global_config.py 87 19 78% 2276s May 03 01:03:54 patroni/ha.py 1359 1359 0% 2276s May 03 01:03:54 patroni/log.py 235 183 22% 2276s May 03 01:03:54 patroni/postgresql/__init__.py 825 653 21% 2276s May 03 01:03:54 patroni/postgresql/available_parameters/__init__.py 24 6 75% 2276s May 03 01:03:54 patroni/postgresql/bootstrap.py 254 224 12% 2276s May 03 01:03:54 patroni/postgresql/callback_executor.py 55 34 38% 2276s May 03 01:03:54 patroni/postgresql/cancellable.py 104 84 19% 2276s May 03 01:03:54 patroni/postgresql/config.py 839 719 14% 2276s May 03 01:03:54 patroni/postgresql/connection.py 75 50 33% 2276s May 03 01:03:54 patroni/postgresql/misc.py 43 30 30% 2276s May 03 01:03:54 patroni/postgresql/mpp/__init__.py 89 21 76% 2276s May 03 01:03:54 patroni/postgresql/mpp/citus.py 366 366 0% 2276s May 03 01:03:54 patroni/postgresql/postmaster.py 170 139 18% 2276s May 03 01:03:54 patroni/postgresql/rewind.py 416 416 0% 2276s May 03 01:03:54 patroni/postgresql/slots.py 349 300 14% 2276s May 03 01:03:54 patroni/postgresql/sync.py 154 114 26% 2276s May 03 01:03:54 patroni/postgresql/validator.py 157 52 67% 2276s May 03 01:03:54 patroni/psycopg.py 46 32 30% 2276s May 03 01:03:54 patroni/quorum.py 182 182 0% 2276s May 03 01:03:54 patroni/raft_controller.py 22 22 0% 2276s May 03 01:03:54 patroni/request.py 58 6 90% 2276s May 03 01:03:54 patroni/scripts/__init__.py 0 0 100% 2276s May 03 01:03:54 patroni/scripts/aws.py 59 59 0% 2276s May 03 01:03:54 patroni/scripts/barman/__init__.py 0 0 100% 2276s May 03 01:03:54 patroni/scripts/barman/cli.py 50 50 0% 2276s May 03 01:03:54 patroni/scripts/barman/config_switch.py 50 50 0% 2276s May 03 01:03:54 patroni/scripts/barman/recover.py 36 36 0% 2276s May 03 01:03:54 patroni/scripts/barman/utils.py 93 93 0% 2276s May 03 01:03:54 patroni/scripts/wale_restore.py 207 207 0% 2276s May 03 01:03:54 patroni/tags.py 38 11 71% 2276s May 03 01:03:54 patroni/utils.py 371 245 34% 2276s May 03 01:03:54 patroni/validator.py 309 222 28% 2276s May 03 01:03:54 patroni/version.py 1 0 100% 2276s May 03 01:03:54 patroni/watchdog/__init__.py 2 2 0% 2276s May 03 01:03:54 patroni/watchdog/base.py 203 203 0% 2276s May 03 01:03:54 patroni/watchdog/linux.py 135 135 0% 2276s May 03 01:03:54 -------------------------------------------------------------------------------------------------------- 2276s May 03 01:03:54 TOTAL 40750 24283 40% 2276s May 03 01:03:54 12 features passed, 0 failed, 1 skipped 2276s May 03 01:03:54 53 scenarios passed, 0 failed, 5 skipped 2276s May 03 01:03:54 517 steps passed, 0 failed, 68 skipped, 0 undefined 2276s May 03 01:03:54 Took 7m24.475s 2276s ### End 17 acceptance-zookeeper -e dcs_failsafe_mode ### 2276s + echo '### End 17 acceptance-zookeeper -e dcs_failsafe_mode ###' 2276s + rm -f '/tmp/pgpass?' 2276s ++ id -u 2276s + '[' 0 -eq 0 ']' 2276s + '[' -x /etc/init.d/zookeeper ']' 2276s + /etc/init.d/zookeeper stop 2276s Stopping zookeeper (via systemctl): zookeeper.service. 2277s autopkgtest [01:03:55]: test acceptance-zookeeper: -----------------------] 2277s autopkgtest [01:03:55]: test acceptance-zookeeper: - - - - - - - - - - results - - - - - - - - - - 2277s acceptance-zookeeper PASS 2278s autopkgtest [01:03:56]: test acceptance-raft: preparing testbed 2350s autopkgtest [01:05:08]: testbed dpkg architecture: amd64 2350s autopkgtest [01:05:08]: testbed apt version: 3.0.0 2350s autopkgtest [01:05:08]: @@@@@@@@@@@@@@@@@@@@ test bed setup 2350s autopkgtest [01:05:08]: testbed release detected to be: questing 2351s autopkgtest [01:05:09]: updating testbed package index (apt update) 2352s Get:1 http://ftpmaster.internal/ubuntu questing-proposed InRelease [110 kB] 2352s Hit:2 http://ftpmaster.internal/ubuntu questing InRelease 2352s Hit:3 http://ftpmaster.internal/ubuntu questing-updates InRelease 2352s Hit:4 http://ftpmaster.internal/ubuntu questing-security InRelease 2352s Get:5 http://ftpmaster.internal/ubuntu questing-proposed/universe Sources [1934 kB] 2352s Get:6 http://ftpmaster.internal/ubuntu questing-proposed/multiverse Sources [43.4 kB] 2352s Get:7 http://ftpmaster.internal/ubuntu questing-proposed/main Sources [169 kB] 2352s Get:8 http://ftpmaster.internal/ubuntu questing-proposed/main i386 Packages [176 kB] 2352s Get:9 http://ftpmaster.internal/ubuntu questing-proposed/main amd64 Packages [232 kB] 2352s Get:10 http://ftpmaster.internal/ubuntu questing-proposed/universe amd64 Packages [1514 kB] 2352s Get:11 http://ftpmaster.internal/ubuntu questing-proposed/universe i386 Packages [664 kB] 2352s Get:12 http://ftpmaster.internal/ubuntu questing-proposed/multiverse amd64 Packages [14.8 kB] 2352s Get:13 http://ftpmaster.internal/ubuntu questing-proposed/multiverse i386 Packages [13.5 kB] 2353s Fetched 4872 kB in 1s (3928 kB/s) 2354s Reading package lists... 2354s autopkgtest [01:05:12]: upgrading testbed (apt dist-upgrade and autopurge) 2354s Reading package lists... 2355s Building dependency tree... 2355s Reading state information... 2355s Calculating upgrade...Starting pkgProblemResolver with broken count: 0 2355s Starting 2 pkgProblemResolver with broken count: 0 2355s Done 2356s Entering ResolveByKeep 2356s 2356s Calculating upgrade... 2356s The following packages will be upgraded: 2356s ed fwupd htop libftdi1-2 libfwupd3 libnpth0t64 libnvme1t64 libsensors-config 2356s libsensors5 liburcu8t64 mokutil nano usb.ids 2357s 13 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 2357s Need to get 6529 kB of archives. 2357s After this operation, 209 kB disk space will be freed. 2357s Get:1 http://ftpmaster.internal/ubuntu questing/main amd64 libnpth0t64 amd64 1.8-3 [9294 B] 2357s Get:2 http://ftpmaster.internal/ubuntu questing/main amd64 ed amd64 1.21.1-1 [57.2 kB] 2357s Get:3 http://ftpmaster.internal/ubuntu questing/main amd64 libsensors-config all 1:3.6.2-2 [6756 B] 2357s Get:4 http://ftpmaster.internal/ubuntu questing/main amd64 libsensors5 amd64 1:3.6.2-2 [28.7 kB] 2357s Get:5 http://ftpmaster.internal/ubuntu questing/main amd64 liburcu8t64 amd64 0.15.2-2 [63.9 kB] 2357s Get:6 http://ftpmaster.internal/ubuntu questing/main amd64 nano amd64 8.4-1 [290 kB] 2357s Get:7 http://ftpmaster.internal/ubuntu questing/main amd64 usb.ids all 2025.04.01-1 [223 kB] 2357s Get:8 http://ftpmaster.internal/ubuntu questing/main amd64 fwupd amd64 2.0.8-3 [5396 kB] 2357s Get:9 http://ftpmaster.internal/ubuntu questing/main amd64 libfwupd3 amd64 2.0.8-3 [136 kB] 2357s Get:10 http://ftpmaster.internal/ubuntu questing/main amd64 htop amd64 3.4.1-4 [175 kB] 2357s Get:11 http://ftpmaster.internal/ubuntu questing/main amd64 libftdi1-2 amd64 1.5-10 [30.7 kB] 2357s Get:12 http://ftpmaster.internal/ubuntu questing/main amd64 libnvme1t64 amd64 1.13-2 [84.2 kB] 2357s Get:13 http://ftpmaster.internal/ubuntu questing/main amd64 mokutil amd64 0.7.2-1 [27.9 kB] 2358s Fetched 6529 kB in 1s (8166 kB/s) 2358s (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 ... 80514 files and directories currently installed.) 2358s Preparing to unpack .../libnpth0t64_1.8-3_amd64.deb ... 2358s Unpacking libnpth0t64:amd64 (1.8-3) over (1.8-2) ... 2358s Setting up libnpth0t64:amd64 (1.8-3) ... 2358s (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 ... 80514 files and directories currently installed.) 2358s Preparing to unpack .../00-ed_1.21.1-1_amd64.deb ... 2358s Unpacking ed (1.21.1-1) over (1.21-1) ... 2358s Preparing to unpack .../01-libsensors-config_1%3a3.6.2-2_all.deb ... 2358s Unpacking libsensors-config (1:3.6.2-2) over (1:3.6.0-10) ... 2358s Preparing to unpack .../02-libsensors5_1%3a3.6.2-2_amd64.deb ... 2358s Unpacking libsensors5:amd64 (1:3.6.2-2) over (1:3.6.0-10) ... 2358s Preparing to unpack .../03-liburcu8t64_0.15.2-2_amd64.deb ... 2358s Unpacking liburcu8t64:amd64 (0.15.2-2) over (0.15.1-1) ... 2358s Preparing to unpack .../04-nano_8.4-1_amd64.deb ... 2358s Unpacking nano (8.4-1) over (8.3-1) ... 2358s Preparing to unpack .../05-usb.ids_2025.04.01-1_all.deb ... 2358s Unpacking usb.ids (2025.04.01-1) over (2025.01.14-1) ... 2358s Preparing to unpack .../06-fwupd_2.0.8-3_amd64.deb ... 2358s Unpacking fwupd (2.0.8-3) over (2.0.7-1) ... 2358s Preparing to unpack .../07-libfwupd3_2.0.8-3_amd64.deb ... 2358s Unpacking libfwupd3:amd64 (2.0.8-3) over (2.0.7-1) ... 2358s Preparing to unpack .../08-htop_3.4.1-4_amd64.deb ... 2358s Unpacking htop (3.4.1-4) over (3.4.0-2) ... 2359s Preparing to unpack .../09-libftdi1-2_1.5-10_amd64.deb ... 2359s Unpacking libftdi1-2:amd64 (1.5-10) over (1.5-8build1) ... 2359s Preparing to unpack .../10-libnvme1t64_1.13-2_amd64.deb ... 2359s Unpacking libnvme1t64 (1.13-2) over (1.11.1-2) ... 2359s Preparing to unpack .../11-mokutil_0.7.2-1_amd64.deb ... 2359s Unpacking mokutil (0.7.2-1) over (0.6.0-2build3) ... 2359s Setting up liburcu8t64:amd64 (0.15.2-2) ... 2359s Setting up mokutil (0.7.2-1) ... 2359s Setting up htop (3.4.1-4) ... 2359s Setting up libsensors-config (1:3.6.2-2) ... 2359s Installing new version of config file /etc/sensors3.conf ... 2359s Setting up libfwupd3:amd64 (2.0.8-3) ... 2359s Setting up libftdi1-2:amd64 (1.5-10) ... 2359s Setting up libnvme1t64 (1.13-2) ... 2359s Setting up ed (1.21.1-1) ... 2359s Setting up usb.ids (2025.04.01-1) ... 2359s Setting up libsensors5:amd64 (1:3.6.2-2) ... 2359s Setting up nano (8.4-1) ... 2359s Installing new version of config file /etc/nanorc ... 2359s Setting up fwupd (2.0.8-3) ... 2359s fwupd-refresh.service is a disabled or a static unit not running, not starting it. 2359s fwupd.service is a disabled or a static unit not running, not starting it. 2359s Processing triggers for man-db (2.13.0-1) ... 2360s Processing triggers for dbus (1.16.2-2ubuntu1) ... 2360s Processing triggers for install-info (7.1.1-1) ... 2361s Processing triggers for libc-bin (2.41-6ubuntu1) ... 2361s Reading package lists... 2361s Building dependency tree... 2361s Reading state information... 2361s Starting pkgProblemResolver with broken count: 0 2362s Starting 2 pkgProblemResolver with broken count: 0 2362s Done 2362s Solving dependencies... 2362s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 2362s autopkgtest [01:05:20]: rebooting testbed after setup commands that affected boot 2388s Reading package lists... 2388s Building dependency tree... 2388s Reading state information... 2388s Starting pkgProblemResolver with broken count: 0 2388s Starting 2 pkgProblemResolver with broken count: 0 2389s Done 2389s The following NEW packages will be installed: 2389s fonts-font-awesome fonts-lato libio-pty-perl libipc-run-perl libjs-jquery 2389s libjs-sphinxdoc libjs-underscore libjson-perl libllvm20 libpq5 2389s libtime-duration-perl libtimedate-perl libxslt1.1 moreutils patroni 2389s patroni-doc postgresql postgresql-17 postgresql-client-17 2389s postgresql-client-common postgresql-common postgresql-common-dev 2389s python3-behave python3-click python3-coverage python3-parse 2389s python3-parse-type python3-prettytable python3-psutil python3-psycopg2 2389s python3-pysyncobj python3-wcwidth python3-ydiff sphinx-rtd-theme-common 2389s ssl-cert 2389s 0 upgraded, 35 newly installed, 0 to remove and 0 not upgraded. 2389s Need to get 55.8 MB of archives. 2389s After this operation, 230 MB of additional disk space will be used. 2389s Get:1 http://ftpmaster.internal/ubuntu questing/main amd64 fonts-lato all 2.015-1 [2781 kB] 2390s Get:2 http://ftpmaster.internal/ubuntu questing/main amd64 libjson-perl all 4.10000-1 [81.9 kB] 2390s Get:3 http://ftpmaster.internal/ubuntu questing/main amd64 postgresql-client-common all 274 [47.6 kB] 2390s Get:4 http://ftpmaster.internal/ubuntu questing/main amd64 libio-pty-perl amd64 1:1.20-1build3 [31.4 kB] 2390s Get:5 http://ftpmaster.internal/ubuntu questing/main amd64 libipc-run-perl all 20231003.0-2 [91.5 kB] 2390s Get:6 http://ftpmaster.internal/ubuntu questing/main amd64 postgresql-common-dev all 274 [73.0 kB] 2390s Get:7 http://ftpmaster.internal/ubuntu questing/main amd64 ssl-cert all 1.1.3ubuntu1 [18.7 kB] 2390s Get:8 http://ftpmaster.internal/ubuntu questing/main amd64 postgresql-common all 274 [101 kB] 2390s Get:9 http://ftpmaster.internal/ubuntu questing/main amd64 fonts-font-awesome all 5.0.10+really4.7.0~dfsg-4.1 [516 kB] 2390s Get:10 http://ftpmaster.internal/ubuntu questing/main amd64 libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 2390s Get:11 http://ftpmaster.internal/ubuntu questing/main amd64 libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [118 kB] 2390s Get:12 http://ftpmaster.internal/ubuntu questing/main amd64 libjs-sphinxdoc all 8.1.3-5 [31.0 kB] 2390s Get:13 http://ftpmaster.internal/ubuntu questing/main amd64 libllvm20 amd64 1:20.1.2-0ubuntu1 [30.5 MB] 2391s Get:14 http://ftpmaster.internal/ubuntu questing/main amd64 libpq5 amd64 17.4-1 [155 kB] 2391s Get:15 http://ftpmaster.internal/ubuntu questing/main amd64 libtime-duration-perl all 1.21-2 [12.3 kB] 2391s Get:16 http://ftpmaster.internal/ubuntu questing/main amd64 libtimedate-perl all 2.3300-2 [34.0 kB] 2391s Get:17 http://ftpmaster.internal/ubuntu questing/main amd64 libxslt1.1 amd64 1.1.39-0exp1ubuntu4 [176 kB] 2391s Get:18 http://ftpmaster.internal/ubuntu questing/universe amd64 moreutils amd64 0.69-1 [56.4 kB] 2391s Get:19 http://ftpmaster.internal/ubuntu questing/main amd64 python3-click all 8.2.0+0.really.8.1.8-1 [80.0 kB] 2391s Get:20 http://ftpmaster.internal/ubuntu questing/main amd64 python3-wcwidth all 0.2.13+dfsg1-1 [26.3 kB] 2391s Get:21 http://ftpmaster.internal/ubuntu questing/main amd64 python3-prettytable all 3.12.0-1 [36.5 kB] 2391s Get:22 http://ftpmaster.internal/ubuntu questing-proposed/main amd64 python3-psutil amd64 7.0.0-2 [188 kB] 2391s Get:23 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-ydiff all 1.4.2-1 [19.0 kB] 2391s Get:24 http://ftpmaster.internal/ubuntu questing/main amd64 python3-psycopg2 amd64 2.9.10-1build1 [142 kB] 2391s Get:25 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-pysyncobj all 0.3.14-2 [61.9 kB] 2391s Get:26 http://ftpmaster.internal/ubuntu questing/universe amd64 patroni all 4.0.4-7 [281 kB] 2391s Get:27 http://ftpmaster.internal/ubuntu questing/main amd64 sphinx-rtd-theme-common all 3.0.2+dfsg-2 [1014 kB] 2391s Get:28 http://ftpmaster.internal/ubuntu questing/universe amd64 patroni-doc all 4.0.4-7 [526 kB] 2391s Get:29 http://ftpmaster.internal/ubuntu questing/main amd64 postgresql-client-17 amd64 17.4-1 [1425 kB] 2391s Get:30 http://ftpmaster.internal/ubuntu questing/main amd64 postgresql-17 amd64 17.4-1 [16.6 MB] 2392s Get:31 http://ftpmaster.internal/ubuntu questing/main amd64 postgresql all 17+274 [14.4 kB] 2392s Get:32 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-parse all 1.20.2-1 [27.0 kB] 2392s Get:33 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-parse-type all 0.6.4-2 [23.5 kB] 2392s Get:34 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-behave all 1.2.6-6 [98.6 kB] 2392s Get:35 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-coverage amd64 7.6.0+dfsg1-2build1 [153 kB] 2392s Preconfiguring packages ... 2392s /var/cache/debconf/tmp.ci/postgresql.config.NxJBGM: 12: pg_lsclusters: not found 2392s Fetched 55.8 MB in 3s (20.0 MB/s) 2392s Selecting previously unselected package fonts-lato. 2392s (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 ... 80514 files and directories currently installed.) 2392s Preparing to unpack .../00-fonts-lato_2.015-1_all.deb ... 2392s Unpacking fonts-lato (2.015-1) ... 2393s Selecting previously unselected package libjson-perl. 2393s Preparing to unpack .../01-libjson-perl_4.10000-1_all.deb ... 2393s Unpacking libjson-perl (4.10000-1) ... 2393s Selecting previously unselected package postgresql-client-common. 2393s Preparing to unpack .../02-postgresql-client-common_274_all.deb ... 2393s Unpacking postgresql-client-common (274) ... 2393s Selecting previously unselected package libio-pty-perl. 2393s Preparing to unpack .../03-libio-pty-perl_1%3a1.20-1build3_amd64.deb ... 2393s Unpacking libio-pty-perl (1:1.20-1build3) ... 2393s Selecting previously unselected package libipc-run-perl. 2393s Preparing to unpack .../04-libipc-run-perl_20231003.0-2_all.deb ... 2393s Unpacking libipc-run-perl (20231003.0-2) ... 2393s Selecting previously unselected package postgresql-common-dev. 2393s Preparing to unpack .../05-postgresql-common-dev_274_all.deb ... 2393s Unpacking postgresql-common-dev (274) ... 2393s Selecting previously unselected package ssl-cert. 2393s Preparing to unpack .../06-ssl-cert_1.1.3ubuntu1_all.deb ... 2393s Unpacking ssl-cert (1.1.3ubuntu1) ... 2393s Selecting previously unselected package postgresql-common. 2393s Preparing to unpack .../07-postgresql-common_274_all.deb ... 2393s Adding 'diversion of /usr/bin/pg_config to /usr/bin/pg_config.libpq-dev by postgresql-common' 2393s Unpacking postgresql-common (274) ... 2393s Selecting previously unselected package fonts-font-awesome. 2393s Preparing to unpack .../08-fonts-font-awesome_5.0.10+really4.7.0~dfsg-4.1_all.deb ... 2393s Unpacking fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 2393s Selecting previously unselected package libjs-jquery. 2393s Preparing to unpack .../09-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 2393s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 2393s Selecting previously unselected package libjs-underscore. 2393s Preparing to unpack .../10-libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ... 2393s Unpacking libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 2393s Selecting previously unselected package libjs-sphinxdoc. 2393s Preparing to unpack .../11-libjs-sphinxdoc_8.1.3-5_all.deb ... 2393s Unpacking libjs-sphinxdoc (8.1.3-5) ... 2393s Selecting previously unselected package libllvm20:amd64. 2393s Preparing to unpack .../12-libllvm20_1%3a20.1.2-0ubuntu1_amd64.deb ... 2393s Unpacking libllvm20:amd64 (1:20.1.2-0ubuntu1) ... 2394s Selecting previously unselected package libpq5:amd64. 2394s Preparing to unpack .../13-libpq5_17.4-1_amd64.deb ... 2394s Unpacking libpq5:amd64 (17.4-1) ... 2394s Selecting previously unselected package libtime-duration-perl. 2394s Preparing to unpack .../14-libtime-duration-perl_1.21-2_all.deb ... 2394s Unpacking libtime-duration-perl (1.21-2) ... 2394s Selecting previously unselected package libtimedate-perl. 2394s Preparing to unpack .../15-libtimedate-perl_2.3300-2_all.deb ... 2394s Unpacking libtimedate-perl (2.3300-2) ... 2394s Selecting previously unselected package libxslt1.1:amd64. 2394s Preparing to unpack .../16-libxslt1.1_1.1.39-0exp1ubuntu4_amd64.deb ... 2394s Unpacking libxslt1.1:amd64 (1.1.39-0exp1ubuntu4) ... 2394s Selecting previously unselected package moreutils. 2394s Preparing to unpack .../17-moreutils_0.69-1_amd64.deb ... 2394s Unpacking moreutils (0.69-1) ... 2394s Selecting previously unselected package python3-click. 2394s Preparing to unpack .../18-python3-click_8.2.0+0.really.8.1.8-1_all.deb ... 2394s Unpacking python3-click (8.2.0+0.really.8.1.8-1) ... 2394s Selecting previously unselected package python3-wcwidth. 2394s Preparing to unpack .../19-python3-wcwidth_0.2.13+dfsg1-1_all.deb ... 2394s Unpacking python3-wcwidth (0.2.13+dfsg1-1) ... 2394s Selecting previously unselected package python3-prettytable. 2394s Preparing to unpack .../20-python3-prettytable_3.12.0-1_all.deb ... 2394s Unpacking python3-prettytable (3.12.0-1) ... 2394s Selecting previously unselected package python3-psutil. 2394s Preparing to unpack .../21-python3-psutil_7.0.0-2_amd64.deb ... 2394s Unpacking python3-psutil (7.0.0-2) ... 2394s Selecting previously unselected package python3-ydiff. 2394s Preparing to unpack .../22-python3-ydiff_1.4.2-1_all.deb ... 2394s Unpacking python3-ydiff (1.4.2-1) ... 2394s Selecting previously unselected package python3-psycopg2. 2394s Preparing to unpack .../23-python3-psycopg2_2.9.10-1build1_amd64.deb ... 2394s Unpacking python3-psycopg2 (2.9.10-1build1) ... 2394s Selecting previously unselected package python3-pysyncobj. 2394s Preparing to unpack .../24-python3-pysyncobj_0.3.14-2_all.deb ... 2394s Unpacking python3-pysyncobj (0.3.14-2) ... 2394s Selecting previously unselected package patroni. 2394s Preparing to unpack .../25-patroni_4.0.4-7_all.deb ... 2394s Unpacking patroni (4.0.4-7) ... 2394s Selecting previously unselected package sphinx-rtd-theme-common. 2394s Preparing to unpack .../26-sphinx-rtd-theme-common_3.0.2+dfsg-2_all.deb ... 2394s Unpacking sphinx-rtd-theme-common (3.0.2+dfsg-2) ... 2394s Selecting previously unselected package patroni-doc. 2394s Preparing to unpack .../27-patroni-doc_4.0.4-7_all.deb ... 2394s Unpacking patroni-doc (4.0.4-7) ... 2394s Selecting previously unselected package postgresql-client-17. 2394s Preparing to unpack .../28-postgresql-client-17_17.4-1_amd64.deb ... 2394s Unpacking postgresql-client-17 (17.4-1) ... 2394s Selecting previously unselected package postgresql-17. 2394s Preparing to unpack .../29-postgresql-17_17.4-1_amd64.deb ... 2394s Unpacking postgresql-17 (17.4-1) ... 2395s Selecting previously unselected package postgresql. 2395s Preparing to unpack .../30-postgresql_17+274_all.deb ... 2395s Unpacking postgresql (17+274) ... 2395s Selecting previously unselected package python3-parse. 2395s Preparing to unpack .../31-python3-parse_1.20.2-1_all.deb ... 2395s Unpacking python3-parse (1.20.2-1) ... 2395s Selecting previously unselected package python3-parse-type. 2395s Preparing to unpack .../32-python3-parse-type_0.6.4-2_all.deb ... 2395s Unpacking python3-parse-type (0.6.4-2) ... 2395s Selecting previously unselected package python3-behave. 2395s Preparing to unpack .../33-python3-behave_1.2.6-6_all.deb ... 2395s Unpacking python3-behave (1.2.6-6) ... 2395s Selecting previously unselected package python3-coverage. 2395s Preparing to unpack .../34-python3-coverage_7.6.0+dfsg1-2build1_amd64.deb ... 2395s Unpacking python3-coverage (7.6.0+dfsg1-2build1) ... 2395s Setting up postgresql-client-common (274) ... 2395s Setting up fonts-lato (2.015-1) ... 2395s Setting up libio-pty-perl (1:1.20-1build3) ... 2395s Setting up python3-pysyncobj (0.3.14-2) ... 2395s Setting up python3-ydiff (1.4.2-1) ... 2395s Setting up libpq5:amd64 (17.4-1) ... 2395s Setting up python3-coverage (7.6.0+dfsg1-2build1) ... 2395s Setting up python3-click (8.2.0+0.really.8.1.8-1) ... 2395s Setting up python3-psutil (7.0.0-2) ... 2396s Setting up python3-wcwidth (0.2.13+dfsg1-1) ... 2396s Setting up ssl-cert (1.1.3ubuntu1) ... 2396s Created symlink '/etc/systemd/system/multi-user.target.wants/ssl-cert.service' → '/usr/lib/systemd/system/ssl-cert.service'. 2396s Setting up libllvm20:amd64 (1:20.1.2-0ubuntu1) ... 2396s Setting up python3-psycopg2 (2.9.10-1build1) ... 2397s Setting up libipc-run-perl (20231003.0-2) ... 2397s Setting up libtime-duration-perl (1.21-2) ... 2397s Setting up libtimedate-perl (2.3300-2) ... 2397s Setting up python3-parse (1.20.2-1) ... 2397s Setting up libjson-perl (4.10000-1) ... 2397s Setting up libxslt1.1:amd64 (1.1.39-0exp1ubuntu4) ... 2397s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 2397s Setting up python3-prettytable (3.12.0-1) ... 2397s Setting up fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 2397s Setting up sphinx-rtd-theme-common (3.0.2+dfsg-2) ... 2397s Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 2397s Setting up postgresql-common-dev (274) ... 2397s Setting up moreutils (0.69-1) ... 2397s Setting up postgresql-client-17 (17.4-1) ... 2397s 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 2397s Setting up python3-parse-type (0.6.4-2) ... 2397s Setting up postgresql-common (274) ... 2398s Creating config file /etc/postgresql-common/createcluster.conf with new version 2398s Building PostgreSQL dictionaries from installed myspell/hunspell packages... 2398s Removing obsolete dictionary files: 2399s Created symlink '/etc/systemd/system/multi-user.target.wants/postgresql.service' → '/usr/lib/systemd/system/postgresql.service'. 2399s Setting up libjs-sphinxdoc (8.1.3-5) ... 2399s Setting up python3-behave (1.2.6-6) ... 2399s /usr/lib/python3/dist-packages/behave/formatter/ansi_escapes.py:57: SyntaxWarning: invalid escape sequence '\[' 2399s _ANSI_ESCAPE_PATTERN = re.compile(u"\x1b\[\d+[mA]", re.UNICODE) 2399s /usr/lib/python3/dist-packages/behave/matchers.py:284: SyntaxWarning: invalid escape sequence '\d' 2399s @parse.with_pattern(r"\d+") 2399s Setting up patroni (4.0.4-7) ... 2399s Created symlink '/etc/systemd/system/multi-user.target.wants/patroni.service' → '/usr/lib/systemd/system/patroni.service'. 2400s Setting up postgresql-17 (17.4-1) ... 2401s Creating new PostgreSQL cluster 17/main ... 2401s /usr/lib/postgresql/17/bin/initdb -D /var/lib/postgresql/17/main --auth-local peer --auth-host scram-sha-256 --no-instructions 2401s The files belonging to this database system will be owned by user "postgres". 2401s This user must also own the server process. 2401s 2401s The database cluster will be initialized with locale "C.UTF-8". 2401s The default database encoding has accordingly been set to "UTF8". 2401s The default text search configuration will be set to "english". 2401s 2401s Data page checksums are disabled. 2401s 2401s fixing permissions on existing directory /var/lib/postgresql/17/main ... ok 2401s creating subdirectories ... ok 2401s selecting dynamic shared memory implementation ... posix 2401s selecting default "max_connections" ... 100 2401s selecting default "shared_buffers" ... 128MB 2401s selecting default time zone ... Etc/UTC 2401s creating configuration files ... ok 2401s running bootstrap script ... ok 2401s performing post-bootstrap initialization ... ok 2401s syncing data to disk ... ok 2404s Setting up patroni-doc (4.0.4-7) ... 2404s Setting up postgresql (17+274) ... 2405s Processing triggers for man-db (2.13.0-1) ... 2406s Processing triggers for libc-bin (2.41-6ubuntu1) ... 2409s autopkgtest [01:06:07]: testbed environment configured for cross-architecture building 2409s autopkgtest [01:06:07]: test acceptance-raft: debian/tests/acceptance raft 2409s autopkgtest [01:06:07]: test acceptance-raft: [----------------------- 2409s ++ ls -1r /usr/lib/postgresql/ 2409s ### PostgreSQL 17 acceptance-raft ### 2409s + for PG_VERSION in $(ls -1r /usr/lib/postgresql/) 2409s + '[' 17 == 10 -o 17 == 11 ']' 2409s + echo '### PostgreSQL 17 acceptance-raft ###' 2409s + bash -c 'set -o pipefail; ETCD_UNSUPPORTED_ARCH=386 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' 2415s May 03 01:06:13 Feature: basic replication # features/basic_replication.feature:1 2415s May 03 01:06:13 We should check that the basic bootstrapping, replication and failover works. 2415s May 03 01:06:13 Scenario: check replication of a single table # features/basic_replication.feature:4 2415s May 03 01:06:13 Given I start postgres-0 # features/steps/basic_replication.py:20 2424s May 03 01:06:22 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 2425s May 03 01:06:23 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 2425s May 03 01:06:23 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 2425s May 03 01:06:23 Then I receive a response code 200 # features/steps/patroni_api.py:100 2425s May 03 01:06:23 When I start postgres-1 # features/steps/basic_replication.py:20 2428s May 03 01:06:26 And I configure and start postgres-2 with a tag replicatefrom postgres-0 # features/steps/cascading_replication.py:7 2431s May 03 01:06:29 And "sync" key in DCS has leader=postgres-0 after 20 seconds # features/steps/cascading_replication.py:23 2431s May 03 01:06:29 And I add the table foo to postgres-0 # features/steps/basic_replication.py:66 2431s May 03 01:06:29 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 2432s May 03 01:06:30 Then table foo is present on postgres-2 after 20 seconds # features/steps/basic_replication.py:105 2432s May 03 01:06:30 2432s May 03 01:06:30 Scenario: check restart of sync replica # features/basic_replication.feature:17 2432s May 03 01:06:30 Given I shut down postgres-2 # features/steps/basic_replication.py:41 2433s May 03 01:06:31 Then "sync" key in DCS has sync_standby=postgres-1 after 5 seconds # features/steps/cascading_replication.py:23 2433s May 03 01:06:31 When I start postgres-2 # features/steps/basic_replication.py:20 2436s May 03 01:06:34 And I shut down postgres-1 # features/steps/basic_replication.py:41 2439s May 03 01:06:37 Then "sync" key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 2440s May 03 01:06:38 When I start postgres-1 # features/steps/basic_replication.py:20 2442s May 03 01:06:40 Then "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 2443s May 03 01:06:41 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 2443s May 03 01:06:41 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:144 2443s May 03 01:06:41 2443s May 03 01:06:41 Scenario: check stuck sync replica # features/basic_replication.feature:28 2443s May 03 01:06:41 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 2443s May 03 01:06:41 Then I receive a response code 200 # features/steps/patroni_api.py:100 2443s May 03 01:06:41 And I create table on postgres-0 # features/steps/basic_replication.py:85 2443s May 03 01:06:41 And table mytest is present on postgres-1 after 2 seconds # features/steps/basic_replication.py:105 2445s May 03 01:06:42 And table mytest is present on postgres-2 after 2 seconds # features/steps/basic_replication.py:105 2445s May 03 01:06:42 When I pause wal replay on postgres-2 # features/steps/basic_replication.py:76 2445s May 03 01:06:42 And I load data on postgres-0 # features/steps/basic_replication.py:96 2445s May 03 01:06:43 Then "sync" key in DCS has sync_standby=postgres-1 after 15 seconds # features/steps/cascading_replication.py:23 2448s May 03 01:06:46 And I resume wal replay on postgres-2 # features/steps/basic_replication.py:76 2448s May 03 01:06:46 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 2448s May 03 01:06:46 And Status code on GET http://127.0.0.1:8010/async is 200 after 3 seconds # features/steps/patroni_api.py:144 2448s May 03 01:06:46 When I issue a PATCH request to http://127.0.0.1:8008/config with {"pause": null, "maximum_lag_on_syncnode": -1, "postgresql": {"parameters": {"synchronous_commit": "on"}}} # features/steps/patroni_api.py:73 2448s May 03 01:06:46 Then I receive a response code 200 # features/steps/patroni_api.py:100 2448s May 03 01:06:46 And I drop table on postgres-0 # features/steps/basic_replication.py:85 2448s May 03 01:06:46 2448s May 03 01:06:46 Scenario: check multi sync replication # features/basic_replication.feature:44 2448s May 03 01:06:46 Given I issue a PATCH request to http://127.0.0.1:8008/config with {"synchronous_node_count": 2} # features/steps/patroni_api.py:73 2448s May 03 01:06:46 Then I receive a response code 200 # features/steps/patroni_api.py:100 2448s May 03 01:06:46 Then "sync" key in DCS has sync_standby=postgres-1,postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 2452s May 03 01:06:50 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 2452s May 03 01:06:50 And Status code on GET http://127.0.0.1:8009/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 2452s May 03 01:06:50 When I issue a PATCH request to http://127.0.0.1:8008/config with {"synchronous_node_count": 1} # features/steps/patroni_api.py:73 2452s May 03 01:06:50 Then I receive a response code 200 # features/steps/patroni_api.py:100 2452s May 03 01:06:50 And I shut down postgres-1 # features/steps/basic_replication.py:41 2455s May 03 01:06:53 Then "sync" key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/cascading_replication.py:23 2456s May 03 01:06:54 When I start postgres-1 # features/steps/basic_replication.py:20 2459s May 03 01:06:57 Then "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 2459s May 03 01:06:57 And Status code on GET http://127.0.0.1:8010/sync is 200 after 3 seconds # features/steps/patroni_api.py:144 2459s May 03 01:06:57 And Status code on GET http://127.0.0.1:8009/async is 200 after 3 seconds # features/steps/patroni_api.py:144 2459s May 03 01:06:57 2459s May 03 01:06:57 Scenario: check the basic failover in synchronous mode # features/basic_replication.feature:59 2459s May 03 01:06:57 Given I run patronictl.py pause batman # features/steps/patroni_api.py:88 2461s May 03 01:06:59 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2461s May 03 01:06:59 When I sleep for 2 seconds # features/steps/patroni_api.py:41 2463s May 03 01:07:01 And I shut down postgres-0 # features/steps/basic_replication.py:41 2464s May 03 01:07:02 And I run patronictl.py resume batman # features/steps/patroni_api.py:88 2465s May 03 01:07:03 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2465s May 03 01:07:03 And postgres-2 role is the primary after 24 seconds # features/steps/basic_replication.py:117 2484s May 03 01:07:22 And Response on GET http://127.0.0.1:8010/history contains recovery after 10 seconds # features/steps/patroni_api.py:158 2487s May 03 01:07:25 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 2487s May 03 01:07:25 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 2487s May 03 01:07:25 Then I receive a response code 200 # features/steps/patroni_api.py:100 2487s May 03 01:07:25 When I add the table bar to postgres-2 # features/steps/basic_replication.py:66 2487s May 03 01:07:25 Then table bar is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 2487s May 03 01:07:25 And Response on GET http://127.0.0.1:8010/config contains master_start_timeout after 10 seconds # features/steps/patroni_api.py:158 2487s May 03 01:07:25 2487s May 03 01:07:25 Scenario: check rejoin of the former primary with pg_rewind # features/basic_replication.feature:75 2487s May 03 01:07:25 Given I add the table splitbrain to postgres-0 # features/steps/basic_replication.py:66 2487s May 03 01:07:25 And I start postgres-0 # features/steps/basic_replication.py:20 2487s May 03 01:07:25 Then postgres-0 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 2493s May 03 01:07:31 When I add the table buz to postgres-2 # features/steps/basic_replication.py:66 2493s May 03 01:07:31 Then table buz is present on postgres-0 after 20 seconds # features/steps/basic_replication.py:105 2493s SKIP Scenario check graceful rejection when two nodes have the same name: Flaky test with Raft 2510s May 03 01:07:48 2510s May 03 01:07:48 @reject-duplicate-name 2510s May 03 01:07:48 Scenario: check graceful rejection when two nodes have the same name # features/basic_replication.feature:83 2510s May 03 01:07:48 Given I start duplicate postgres-0 on port 8011 # None 2510s May 03 01:07:48 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 2510s May 03 01:07:48 2510s May 03 01:07:48 Feature: cascading replication # features/cascading_replication.feature:1 2510s May 03 01:07:48 We should check that patroni can do base backup and streaming from the replica 2510s May 03 01:07:48 Scenario: check a base backup and streaming replication from a replica # features/cascading_replication.feature:4 2510s May 03 01:07:48 Given I start postgres-0 # features/steps/basic_replication.py:20 2513s May 03 01:07:51 And postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 2514s May 03 01:07:52 And I configure and start postgres-1 with a tag clonefrom true # features/steps/cascading_replication.py:7 2517s May 03 01:07:55 And replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 2518s May 03 01:07:56 And I create label with "postgres-0" in postgres-0 data directory # features/steps/cascading_replication.py:18 2518s May 03 01:07:56 And I create label with "postgres-1" in postgres-1 data directory # features/steps/cascading_replication.py:18 2518s May 03 01:07:56 And "members/postgres-1" key in DCS has state=running after 12 seconds # features/steps/cascading_replication.py:23 2518s May 03 01:07:56 And I configure and start postgres-2 with a tag replicatefrom postgres-1 # features/steps/cascading_replication.py:7 2521s May 03 01:07:59 Then replication works from postgres-0 to postgres-2 after 30 seconds # features/steps/basic_replication.py:124 2526s May 03 01:08:04 And there is a label with "postgres-1" in postgres-2 data directory # features/steps/cascading_replication.py:12 2541s May 03 01:08:19 2541s SKIP FEATURE citus: Citus extension isn't available 2541s SKIP Scenario check that worker cluster is registered in the coordinator: Citus extension isn't available 2541s SKIP Scenario coordinator failover updates pg_dist_node: Citus extension isn't available 2541s SKIP Scenario worker switchover doesn't break client queries on the coordinator: Citus extension isn't available 2541s May 03 01:08:19 Feature: citus # features/citus.feature:1 2541s May 03 01:08:19 We should check that coordinator discovers and registers workers and clients don't have errors when worker cluster switches over 2541s May 03 01:08:19 Scenario: check that worker cluster is registered in the coordinator # features/citus.feature:4 2541s May 03 01:08:19 Given I start postgres-0 in citus group 0 # None 2541s May 03 01:08:19 And I start postgres-2 in citus group 1 # None 2541s May 03 01:08:19 Then postgres-0 is a leader in a group 0 after 10 seconds # None 2541s May 03 01:08:19 And postgres-2 is a leader in a group 1 after 10 seconds # None 2541s May 03 01:08:19 When I start postgres-1 in citus group 0 # None 2541s May 03 01:08:19 And I start postgres-3 in citus group 1 # None 2541s May 03 01:08:19 Then replication works from postgres-0 to postgres-1 after 15 seconds # None 2541s May 03 01:08:19 Then replication works from postgres-2 to postgres-3 after 15 seconds # None 2541s May 03 01:08:19 And postgres-0 is registered in the postgres-0 as the primary in group 0 after 5 seconds # None 2541s May 03 01:08:19 And postgres-1 is registered in the postgres-0 as the secondary in group 0 after 5 seconds # None 2541s May 03 01:08:19 And postgres-2 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 2541s May 03 01:08:19 And postgres-3 is registered in the postgres-0 as the secondary in group 1 after 5 seconds # None 2541s May 03 01:08:19 2541s May 03 01:08:19 Scenario: coordinator failover updates pg_dist_node # features/citus.feature:18 2541s May 03 01:08:19 Given I run patronictl.py failover batman --group 0 --candidate postgres-1 --force # None 2541s May 03 01:08:19 Then postgres-1 role is the primary after 10 seconds # None 2541s May 03 01:08:19 And "members/postgres-0" key in a group 0 in DCS has state=running after 15 seconds # None 2541s May 03 01:08:19 And replication works from postgres-1 to postgres-0 after 15 seconds # None 2541s May 03 01:08:19 And postgres-1 is registered in the postgres-2 as the primary in group 0 after 5 seconds # None 2541s May 03 01:08:19 And postgres-0 is registered in the postgres-2 as the secondary in group 0 after 15 seconds # None 2541s May 03 01:08:19 And "sync" key in a group 0 in DCS has sync_standby=postgres-0 after 15 seconds # None 2541s May 03 01:08:19 When I run patronictl.py switchover batman --group 0 --candidate postgres-0 --force # None 2541s May 03 01:08:19 Then postgres-0 role is the primary after 10 seconds # None 2541s May 03 01:08:19 And replication works from postgres-0 to postgres-1 after 15 seconds # None 2541s May 03 01:08:19 And postgres-0 is registered in the postgres-2 as the primary in group 0 after 5 seconds # None 2541s May 03 01:08:19 And postgres-1 is registered in the postgres-2 as the secondary in group 0 after 15 seconds # None 2541s May 03 01:08:19 And "sync" key in a group 0 in DCS has sync_standby=postgres-1 after 15 seconds # None 2541s SKIP Scenario worker primary restart doesn't break client queries on the coordinator: Citus extension isn't available 2541s 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 2541s May 03 01:08:19 2541s May 03 01:08:19 Scenario: worker switchover doesn't break client queries on the coordinator # features/citus.feature:33 2541s May 03 01:08:19 Given I create a distributed table on postgres-0 # None 2541s May 03 01:08:19 And I start a thread inserting data on postgres-0 # None 2541s May 03 01:08:19 When I run patronictl.py switchover batman --group 1 --force # None 2541s May 03 01:08:19 Then I receive a response returncode 0 # None 2541s May 03 01:08:19 And postgres-3 role is the primary after 10 seconds # None 2541s May 03 01:08:19 And "members/postgres-2" key in a group 1 in DCS has state=running after 15 seconds # None 2541s May 03 01:08:19 And replication works from postgres-3 to postgres-2 after 15 seconds # None 2541s May 03 01:08:19 And postgres-3 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 2541s May 03 01:08:19 And postgres-2 is registered in the postgres-0 as the secondary in group 1 after 15 seconds # None 2541s May 03 01:08:19 And "sync" key in a group 1 in DCS has sync_standby=postgres-2 after 15 seconds # None 2541s May 03 01:08:19 And a thread is still alive # None 2541s May 03 01:08:19 When I run patronictl.py switchover batman --group 1 --force # None 2541s May 03 01:08:19 Then I receive a response returncode 0 # None 2541s May 03 01:08:19 And postgres-2 role is the primary after 10 seconds # None 2541s May 03 01:08:19 And replication works from postgres-2 to postgres-3 after 15 seconds # None 2541s May 03 01:08:19 And postgres-2 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 2541s May 03 01:08:19 And postgres-3 is registered in the postgres-0 as the secondary in group 1 after 15 seconds # None 2541s May 03 01:08:19 And "sync" key in a group 1 in DCS has sync_standby=postgres-3 after 15 seconds # None 2541s May 03 01:08:19 And a thread is still alive # None 2541s May 03 01:08:19 When I stop a thread # None 2541s May 03 01:08:19 Then a distributed table on postgres-0 has expected rows # None 2541s May 03 01:08:19 2541s May 03 01:08:19 Scenario: worker primary restart doesn't break client queries on the coordinator # features/citus.feature:56 2541s May 03 01:08:19 Given I cleanup a distributed table on postgres-0 # None 2541s May 03 01:08:19 And I start a thread inserting data on postgres-0 # None 2541s May 03 01:08:19 When I run patronictl.py restart batman postgres-2 --group 1 --force # None 2541s May 03 01:08:19 Then I receive a response returncode 0 # None 2541s May 03 01:08:19 And postgres-2 role is the primary after 10 seconds # None 2541s May 03 01:08:19 And replication works from postgres-2 to postgres-3 after 15 seconds # None 2541s May 03 01:08:19 And postgres-2 is registered in the postgres-0 as the primary in group 1 after 5 seconds # None 2541s May 03 01:08:19 And postgres-3 is registered in the postgres-0 as the secondary in group 1 after 15 seconds # None 2541s May 03 01:08:19 And a thread is still alive # None 2541s May 03 01:08:19 When I stop a thread # None 2541s May 03 01:08:19 Then a distributed table on postgres-0 has expected rows # None 2548s May 03 01:08:26 2548s May 03 01:08:26 Scenario: check that in-flight transaction is rolled back after timeout when other workers need to change pg_dist_node # features/citus.feature:69 2548s May 03 01:08:26 Given I start postgres-4 in citus group 2 # None 2548s May 03 01:08:26 Then postgres-4 is a leader in a group 2 after 10 seconds # None 2548s May 03 01:08:26 And "members/postgres-4" key in a group 2 in DCS has role=primary after 3 seconds # None 2548s May 03 01:08:26 When I run patronictl.py edit-config batman --group 2 -s ttl=20 --force # None 2548s May 03 01:08:26 Then I receive a response returncode 0 # None 2548s May 03 01:08:26 And I receive a response output "+ttl: 20" # None 2548s May 03 01:08:26 Then postgres-4 is registered in the postgres-2 as the primary in group 2 after 5 seconds # None 2548s May 03 01:08:26 When I shut down postgres-4 # None 2548s May 03 01:08:26 Then there is a transaction in progress on postgres-0 changing pg_dist_node after 5 seconds # None 2548s May 03 01:08:26 When I run patronictl.py restart batman postgres-2 --group 1 --force # None 2548s May 03 01:08:26 Then a transaction finishes in 20 seconds # None 2548s May 03 01:08:26 2548s May 03 01:08:26 Feature: custom bootstrap # features/custom_bootstrap.feature:1 2548s May 03 01:08:26 We should check that patroni can bootstrap a new cluster from a backup 2548s May 03 01:08:26 Scenario: clone existing cluster using pg_basebackup # features/custom_bootstrap.feature:4 2548s May 03 01:08:26 Given I start postgres-0 # features/steps/basic_replication.py:20 2558s May 03 01:08:36 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 2559s May 03 01:08:37 When I add the table foo to postgres-0 # features/steps/basic_replication.py:66 2559s May 03 01:08:37 And I start postgres-1 in a cluster batman1 as a clone of postgres-0 # features/steps/custom_bootstrap.py:6 2563s May 03 01:08:41 Then postgres-1 is a leader of batman1 after 10 seconds # features/steps/custom_bootstrap.py:16 2564s May 03 01:08:42 Then table foo is present on postgres-1 after 10 seconds # features/steps/basic_replication.py:105 2564s May 03 01:08:42 2564s May 03 01:08:42 Scenario: make a backup and do a restore into a new cluster # features/custom_bootstrap.feature:12 2564s May 03 01:08:42 Given I add the table bar to postgres-1 # features/steps/basic_replication.py:66 2564s May 03 01:08:42 And I do a backup of postgres-1 # features/steps/custom_bootstrap.py:25 2564s May 03 01:08:42 When I start postgres-2 in a cluster batman2 from backup # features/steps/custom_bootstrap.py:11 2567s May 03 01:08:45 Then postgres-2 is a leader of batman2 after 30 seconds # features/steps/custom_bootstrap.py:16 2569s May 03 01:08:47 And table bar is present on postgres-2 after 10 seconds # features/steps/basic_replication.py:105 2585s May 03 01:09:03 2585s May 03 01:09:03 Feature: dcs failsafe mode # features/dcs_failsafe_mode.feature:1 2585s May 03 01:09:03 We should check the basic dcs failsafe mode functioning 2585s May 03 01:09:03 Scenario: check failsafe mode can be successfully enabled # features/dcs_failsafe_mode.feature:4 2585s May 03 01:09:03 Given I start postgres-0 # features/steps/basic_replication.py:20 2588s May 03 01:09:06 And postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 2589s May 03 01:09:07 Then "config" key in DCS has ttl=30 after 10 seconds # features/steps/cascading_replication.py:23 2589s May 03 01:09:07 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 2589s May 03 01:09:07 Then I receive a response code 200 # features/steps/patroni_api.py:100 2589s May 03 01:09:07 And Response on GET http://127.0.0.1:8008/failsafe contains postgres-0 after 10 seconds # features/steps/patroni_api.py:158 2589s May 03 01:09:07 When I issue a GET request to http://127.0.0.1:8008/failsafe # features/steps/patroni_api.py:63 2589s May 03 01:09:07 Then I receive a response code 200 # features/steps/patroni_api.py:100 2589s May 03 01:09:07 And I receive a response postgres-0 http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:100 2589s May 03 01:09:07 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 2589s May 03 01:09:07 Then I receive a response code 200 # features/steps/patroni_api.py:100 2589s May 03 01:09:07 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 2589s May 03 01:09:07 Then I receive a response code 200 # features/steps/patroni_api.py:100 2589s May 03 01:09:07 2589s May 03 01:09:07 @dcs-failsafe 2589s May 03 01:09:07 Scenario: check one-node cluster is functioning while DCS is down # features/dcs_failsafe_mode.feature:20 2589s May 03 01:09:07 Given DCS is down # features/steps/dcs_failsafe_mode.py:4 2589s May 03 01:09:07 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 2593s May 03 01:09:11 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2593s May 03 01:09:11 2593s May 03 01:09:11 @dcs-failsafe 2593s May 03 01:09:11 Scenario: check new replica isn't promoted when leader is down and DCS is up # features/dcs_failsafe_mode.feature:26 2593s May 03 01:09:11 Given DCS is up # features/steps/dcs_failsafe_mode.py:9 2593s May 03 01:09:11 When I do a backup of postgres-0 # features/steps/custom_bootstrap.py:25 2594s May 03 01:09:12 And I shut down postgres-0 # features/steps/basic_replication.py:41 2596s May 03 01:09:14 When I start postgres-1 in a cluster batman from backup with no_leader # features/steps/dcs_failsafe_mode.py:14 2599s May 03 01:09:17 Then postgres-1 role is the replica after 12 seconds # features/steps/basic_replication.py:117 2599s May 03 01:09:17 2599s May 03 01:09:17 Scenario: check leader and replica are both in /failsafe key after leader is back # features/dcs_failsafe_mode.feature:33 2599s May 03 01:09:17 Given I start postgres-0 # features/steps/basic_replication.py:20 2601s May 03 01:09:19 And I start postgres-1 # features/steps/basic_replication.py:20 2601s May 03 01:09:19 Then "members/postgres-0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 2602s May 03 01:09:20 And "members/postgres-1" key in DCS has state=running after 2 seconds # features/steps/cascading_replication.py:23 2602s May 03 01:09:20 And Response on GET http://127.0.0.1:8009/failsafe contains postgres-1 after 10 seconds # features/steps/patroni_api.py:158 2607s May 03 01:09:25 When I issue a GET request to http://127.0.0.1:8009/failsafe # features/steps/patroni_api.py:63 2607s May 03 01:09:25 Then I receive a response code 200 # features/steps/patroni_api.py:100 2607s May 03 01:09:25 And I receive a response postgres-0 http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:100 2607s May 03 01:09:25 And I receive a response postgres-1 http://127.0.0.1:8009/patroni # features/steps/patroni_api.py:100 2607s May 03 01:09:25 2607s May 03 01:09:25 @dcs-failsafe @slot-advance 2607s May 03 01:09:25 Scenario: check leader and replica are functioning while DCS is down # features/dcs_failsafe_mode.feature:46 2607s May 03 01:09:25 Given I get all changes from physical slot dcs_slot_1 on postgres-0 # features/steps/slots.py:77 2607s May 03 01:09:25 Then physical slot dcs_slot_1 is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 2610s May 03 01:09:28 And logical slot dcs_slot_0 is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 2610s May 03 01:09:28 And DCS is down # features/steps/dcs_failsafe_mode.py:4 2610s May 03 01:09:28 Then Response on GET http://127.0.0.1:8008/primary contains failsafe_mode_is_active after 12 seconds # features/steps/patroni_api.py:158 2614s May 03 01:09:32 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2614s May 03 01:09:32 And postgres-1 role is the replica after 2 seconds # features/steps/basic_replication.py:117 2614s May 03 01:09:32 And replication works from postgres-0 to postgres-1 after 10 seconds # features/steps/basic_replication.py:124 2614s May 03 01:09:32 When I get all changes from logical slot dcs_slot_0 on postgres-0 # features/steps/slots.py:72 2614s May 03 01:09:32 And I get all changes from physical slot dcs_slot_1 on postgres-0 # features/steps/slots.py:77 2614s May 03 01:09:32 Then logical slot dcs_slot_0 is in sync between postgres-0 and postgres-1 after 20 seconds # features/steps/slots.py:52 2620s May 03 01:09:38 And physical slot dcs_slot_1 is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 2620s May 03 01:09:38 2620s May 03 01:09:38 @dcs-failsafe 2620s May 03 01:09:38 Scenario: check primary is demoted when one replica is shut down and DCS is down # features/dcs_failsafe_mode.feature:61 2620s May 03 01:09:38 Given DCS is down # features/steps/dcs_failsafe_mode.py:4 2620s May 03 01:09:38 And I kill postgres-1 # features/steps/basic_replication.py:46 2621s May 03 01:09:39 And I kill postmaster on postgres-1 # features/steps/basic_replication.py:56 2621s May 03 01:09:39 waiting for server to shut down.... done 2621s May 03 01:09:39 server stopped 2621s May 03 01:09:39 Then postgres-0 role is the replica after 12 seconds # features/steps/basic_replication.py:117 2623s May 03 01:09:41 2623s May 03 01:09:41 @dcs-failsafe 2623s May 03 01:09:41 Scenario: check known replica is promoted when leader is down and DCS is up # features/dcs_failsafe_mode.feature:68 2623s May 03 01:09:41 Given I kill postgres-0 # features/steps/basic_replication.py:46 2624s May 03 01:09:42 And I shut down postmaster on postgres-0 # features/steps/basic_replication.py:51 2625s May 03 01:09:43 waiting for server to shut down.... done 2625s May 03 01:09:43 server stopped 2625s May 03 01:09:43 And DCS is up # features/steps/dcs_failsafe_mode.py:9 2625s May 03 01:09:43 When I start postgres-1 # features/steps/basic_replication.py:20 2628s May 03 01:09:46 Then "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 2628s May 03 01:09:46 And postgres-1 role is the primary after 25 seconds # features/steps/basic_replication.py:117 2630s May 03 01:09:48 2630s May 03 01:09:48 @dcs-failsafe 2630s May 03 01:09:48 Scenario: scale to three-node cluster # features/dcs_failsafe_mode.feature:77 2630s May 03 01:09:48 Given I start postgres-0 # features/steps/basic_replication.py:20 2633s May 03 01:09:51 And I configure and start postgres-2 with a tag replicatefrom postgres-0 # features/steps/cascading_replication.py:7 2636s May 03 01:09:54 Then "members/postgres-2" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 2637s May 03 01:09:55 And "members/postgres-0" key in DCS has state=running after 20 seconds # features/steps/cascading_replication.py:23 2637s May 03 01:09:55 And Response on GET http://127.0.0.1:8008/failsafe contains postgres-2 after 10 seconds # features/steps/patroni_api.py:158 2638s May 03 01:09:56 And replication works from postgres-1 to postgres-0 after 10 seconds # features/steps/basic_replication.py:124 2639s May 03 01:09:57 And replication works from postgres-1 to postgres-2 after 10 seconds # features/steps/basic_replication.py:124 2640s May 03 01:09:58 2640s May 03 01:09:58 @dcs-failsafe @slot-advance 2640s May 03 01:09:58 Scenario: make sure permanent slots exist on replicas # features/dcs_failsafe_mode.feature:88 2640s May 03 01:09:58 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 2640s May 03 01:09:58 Then logical slot dcs_slot_2 is in sync between postgres-1 and postgres-0 after 20 seconds # features/steps/slots.py:52 2644s May 03 01:10:02 And logical slot dcs_slot_2 is in sync between postgres-1 and postgres-2 after 20 seconds # features/steps/slots.py:52 2645s May 03 01:10:03 When I get all changes from physical slot dcs_slot_1 on postgres-1 # features/steps/slots.py:77 2645s May 03 01:10:03 Then physical slot dcs_slot_1 is in sync between postgres-1 and postgres-0 after 10 seconds # features/steps/slots.py:52 2647s May 03 01:10:05 And physical slot dcs_slot_1 is in sync between postgres-1 and postgres-2 after 10 seconds # features/steps/slots.py:52 2647s May 03 01:10:05 And physical slot postgres_0 is in sync between postgres-1 and postgres-2 after 10 seconds # features/steps/slots.py:52 2647s May 03 01:10:05 And physical slot postgres_2 is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 2647s May 03 01:10:05 2647s May 03 01:10:05 @dcs-failsafe 2647s May 03 01:10:05 Scenario: check three-node cluster is functioning while DCS is down # features/dcs_failsafe_mode.feature:99 2647s May 03 01:10:05 Given DCS is down # features/steps/dcs_failsafe_mode.py:4 2647s May 03 01:10:05 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 2651s May 03 01:10:09 Then postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2651s May 03 01:10:09 And postgres-0 role is the replica after 2 seconds # features/steps/basic_replication.py:117 2651s May 03 01:10:09 And postgres-2 role is the replica after 2 seconds # features/steps/basic_replication.py:117 2651s May 03 01:10:09 2651s May 03 01:10:09 @dcs-failsafe @slot-advance 2651s May 03 01:10:09 Scenario: check that permanent slots are in sync between nodes while DCS is down # features/dcs_failsafe_mode.feature:108 2651s May 03 01:10:09 Given replication works from postgres-1 to postgres-0 after 10 seconds # features/steps/basic_replication.py:124 2651s May 03 01:10:09 And replication works from postgres-1 to postgres-2 after 10 seconds # features/steps/basic_replication.py:124 2652s May 03 01:10:10 When I get all changes from logical slot dcs_slot_2 on postgres-1 # features/steps/slots.py:72 2652s May 03 01:10:10 And I get all changes from physical slot dcs_slot_1 on postgres-1 # features/steps/slots.py:77 2652s May 03 01:10:10 Then logical slot dcs_slot_2 is in sync between postgres-1 and postgres-0 after 20 seconds # features/steps/slots.py:52 2658s May 03 01:10:16 And logical slot dcs_slot_2 is in sync between postgres-1 and postgres-2 after 20 seconds # features/steps/slots.py:52 2658s May 03 01:10:16 And physical slot dcs_slot_1 is in sync between postgres-1 and postgres-0 after 10 seconds # features/steps/slots.py:52 2658s May 03 01:10:16 And physical slot dcs_slot_1 is in sync between postgres-1 and postgres-2 after 10 seconds # features/steps/slots.py:52 2658s May 03 01:10:16 And physical slot postgres_0 is in sync between postgres-1 and postgres-2 after 10 seconds # features/steps/slots.py:52 2658s May 03 01:10:16 And physical slot postgres_2 is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 2670s May 03 01:10:28 2670s May 03 01:10:28 Feature: ignored slots # features/ignored_slots.feature:1 2670s May 03 01:10:28 2670s May 03 01:10:28 Scenario: check ignored slots aren't removed on failover/switchover # features/ignored_slots.feature:2 2670s May 03 01:10:28 Given I start postgres-1 # features/steps/basic_replication.py:20 2673s May 03 01:10:31 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 2673s May 03 01:10:31 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 2673s May 03 01:10:31 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 2673s May 03 01:10:31 Then I receive a response code 200 # features/steps/patroni_api.py:100 2673s May 03 01:10:31 And Response on GET http://127.0.0.1:8009/config contains ignore_slots after 10 seconds # features/steps/patroni_api.py:158 2673s May 03 01:10:31 When I shut down postgres-1 # features/steps/basic_replication.py:41 2675s May 03 01:10:33 And I start postgres-1 # features/steps/basic_replication.py:20 2677s May 03 01:10:35 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 2680s May 03 01:10:38 And "members/postgres-1" key in DCS has role=primary after 10 seconds # features/steps/cascading_replication.py:23 2681s May 03 01:10:39 And postgres-1 role is the primary after 20 seconds # features/steps/basic_replication.py:117 2681s May 03 01:10:39 When I create a logical replication slot unmanaged_slot_0 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 2681s May 03 01:10:39 And I create a logical replication slot unmanaged_slot_1 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 2681s May 03 01:10:39 And I create a logical replication slot unmanaged_slot_2 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 2681s May 03 01:10:39 And I create a logical replication slot unmanaged_slot_3 on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 2681s May 03 01:10:39 And I create a logical replication slot dummy_slot on postgres-1 with the test_decoding plugin # features/steps/slots.py:9 2681s May 03 01:10:39 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 2681s May 03 01:10: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 2681s May 03 01:10: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 2681s May 03 01:10: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 2681s May 03 01:10:39 When I start postgres-0 # features/steps/basic_replication.py:20 2690s May 03 01:10:48 Then "members/postgres-0" key in DCS has role=replica after 10 seconds # features/steps/cascading_replication.py:23 2691s May 03 01:10:49 And postgres-0 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 2691s May 03 01:10:49 And replication works from postgres-1 to postgres-0 after 20 seconds # features/steps/basic_replication.py:124 2692s May 03 01:10:50 When I shut down postgres-1 # features/steps/basic_replication.py:41 2694s May 03 01:10:52 Then "members/postgres-0" key in DCS has role=primary after 10 seconds # features/steps/cascading_replication.py:23 2695s May 03 01:10:53 When I start postgres-1 # features/steps/basic_replication.py:20 2698s May 03 01:10:56 Then postgres-1 role is the secondary after 20 seconds # features/steps/basic_replication.py:117 2698s May 03 01:10:56 And "members/postgres-1" key in DCS has role=replica after 10 seconds # features/steps/cascading_replication.py:23 2698s May 03 01:10:56 And I sleep for 2 seconds # features/steps/patroni_api.py:41 2700s May 03 01:10:58 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 2700s May 03 01:10:58 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 2700s May 03 01:10:58 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 2700s May 03 01:10:58 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 2700s May 03 01:10:58 And postgres-1 does not have a replication slot named dummy_slot # features/steps/slots.py:41 2700s May 03 01:10:58 When I shut down postgres-0 # features/steps/basic_replication.py:41 2702s May 03 01:11:00 Then "members/postgres-1" key in DCS has role=primary after 10 seconds # features/steps/cascading_replication.py:23 2703s May 03 01:11:01 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 2703s May 03 01:11:01 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 2703s May 03 01:11:01 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 2703s May 03 01:11:01 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 2712s May 03 01:11:10 2712s May 03 01:11:10 Feature: nostream node # features/nostream_node.feature:1 2712s May 03 01:11:10 2712s May 03 01:11:10 Scenario: check nostream node is recovering from archive # features/nostream_node.feature:3 2712s May 03 01:11:10 When I start postgres-0 # features/steps/basic_replication.py:20 2715s May 03 01:11:13 And I configure and start postgres-1 with a tag nostream true # features/steps/cascading_replication.py:7 2724s May 03 01:11:22 Then "members/postgres-1" key in DCS has replication_state=in archive recovery after 10 seconds # features/steps/cascading_replication.py:23 2724s May 03 01:11:22 And replication works from postgres-0 to postgres-1 after 30 seconds # features/steps/basic_replication.py:124 2729s May 03 01:11:27 2729s May 03 01:11:27 @slot-advance 2729s May 03 01:11:27 Scenario: check permanent logical replication slots are not copied # features/nostream_node.feature:10 2729s May 03 01:11:27 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 2729s May 03 01:11:27 Then I receive a response code 200 # features/steps/patroni_api.py:100 2729s May 03 01:11:27 When I run patronictl.py restart batman postgres-0 --force # features/steps/patroni_api.py:88 2731s May 03 01:11: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 2732s May 03 01:11:30 When I configure and start postgres-2 with a tag replicatefrom postgres-1 # features/steps/cascading_replication.py:7 2735s May 03 01:11:33 Then "members/postgres-2" key in DCS has replication_state=streaming after 10 seconds # features/steps/cascading_replication.py:23 2741s May 03 01:11:39 And postgres-1 does not have a replication slot named test_logical # features/steps/slots.py:41 2741s May 03 01:11:39 And postgres-2 does not have a replication slot named test_logical # features/steps/slots.py:41 2741s May 03 01:11:39 2741s May 03 01:11:39 @slot-advance 2741s May 03 01:11:39 Scenario: check that slots are written to the /status key # features/nostream_node.feature:21 2741s May 03 01:11:39 Given "status" key in DCS has postgres_0 in slots # features/steps/slots.py:118 2741s May 03 01:11:39 And "status" key in DCS has postgres_2 in slots # features/steps/slots.py:118 2741s May 03 01:11:39 And "status" key in DCS has test_logical in slots # features/steps/slots.py:118 2741s May 03 01:11:39 And "status" key in DCS has test_logical in slots # features/steps/slots.py:118 2741s May 03 01:11:39 And "status" key in DCS does not have postgres_1 in slots # features/steps/slots.py:124 2758s May 03 01:11:56 2758s May 03 01:11:56 Feature: patroni api # features/patroni_api.feature:1 2758s May 03 01:11:56 We should check that patroni correctly responds to valid and not-valid API requests. 2758s May 03 01:11:56 Scenario: check API requests on a stand-alone server # features/patroni_api.feature:4 2758s May 03 01:11:56 Given I start postgres-0 # features/steps/basic_replication.py:20 2761s May 03 01:11:59 And postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 2761s May 03 01:11:59 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:63 2761s May 03 01:11:59 Then I receive a response code 200 # features/steps/patroni_api.py:100 2761s May 03 01:11:59 And I receive a response state running # features/steps/patroni_api.py:100 2761s May 03 01:11:59 And I receive a response role primary # features/steps/patroni_api.py:100 2761s May 03 01:11:59 When I issue a GET request to http://127.0.0.1:8008/standby_leader # features/steps/patroni_api.py:63 2761s May 03 01:11:59 Then I receive a response code 503 # features/steps/patroni_api.py:100 2761s May 03 01:11:59 When I issue a GET request to http://127.0.0.1:8008/health # features/steps/patroni_api.py:63 2761s May 03 01:11:59 Then I receive a response code 200 # features/steps/patroni_api.py:100 2761s May 03 01:11:59 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:63 2761s May 03 01:11:59 Then I receive a response code 503 # features/steps/patroni_api.py:100 2761s May 03 01:11:59 When I issue a POST request to http://127.0.0.1:8008/reinitialize with {"force": true} # features/steps/patroni_api.py:73 2761s May 03 01:11:59 Then I receive a response code 503 # features/steps/patroni_api.py:100 2761s May 03 01:11:59 And I receive a response text I am the leader, can not reinitialize # features/steps/patroni_api.py:100 2761s May 03 01:11:59 When I run patronictl.py switchover batman --primary postgres-0 --force # features/steps/patroni_api.py:88 2762s May 03 01:12:00 Then I receive a response returncode 1 # features/steps/patroni_api.py:100 2762s May 03 01:12:00 And I receive a response output "Error: No candidates found to switchover to" # features/steps/patroni_api.py:100 2762s May 03 01:12:00 When I issue a POST request to http://127.0.0.1:8008/switchover with {"leader": "postgres-0"} # features/steps/patroni_api.py:73 2762s May 03 01:12:00 Then I receive a response code 412 # features/steps/patroni_api.py:100 2762s May 03 01:12:00 And I receive a response text switchover is not possible: cluster does not have members except leader # features/steps/patroni_api.py:100 2762s May 03 01:12:00 When I issue an empty POST request to http://127.0.0.1:8008/failover # features/steps/patroni_api.py:68 2762s May 03 01:12:00 Then I receive a response code 400 # features/steps/patroni_api.py:100 2762s May 03 01:12:00 When I issue a POST request to http://127.0.0.1:8008/failover with {"foo": "bar"} # features/steps/patroni_api.py:73 2763s May 03 01:12:01 Then I receive a response code 400 # features/steps/patroni_api.py:100 2763s May 03 01:12:01 And I receive a response text "Failover could be performed only to a specific candidate" # features/steps/patroni_api.py:100 2763s May 03 01:12:01 2763s May 03 01:12:01 Scenario: check local configuration reload # features/patroni_api.feature:32 2763s May 03 01:12:01 Given I add tag new_tag new_value to postgres-0 config # features/steps/patroni_api.py:139 2763s May 03 01:12:01 And I issue an empty POST request to http://127.0.0.1:8008/reload # features/steps/patroni_api.py:68 2763s May 03 01:12:01 Then I receive a response code 202 # features/steps/patroni_api.py:100 2763s May 03 01:12:01 2763s May 03 01:12:01 Scenario: check dynamic configuration change via DCS # features/patroni_api.feature:37 2763s May 03 01:12:01 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 2763s May 03 01:12:01 Then I receive a response code 200 # features/steps/patroni_api.py:100 2763s May 03 01:12:01 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 11 seconds # features/steps/patroni_api.py:158 2765s May 03 01:12:03 When I issue a GET request to http://127.0.0.1:8008/config # features/steps/patroni_api.py:63 2765s May 03 01:12:03 Then I receive a response code 200 # features/steps/patroni_api.py:100 2765s May 03 01:12:03 And I receive a response ttl 20 # features/steps/patroni_api.py:100 2765s May 03 01:12:03 When I issue a GET request to http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:63 2765s May 03 01:12:03 Then I receive a response code 200 # features/steps/patroni_api.py:100 2765s May 03 01:12:03 And I receive a response tags {'new_tag': 'new_value'} # features/steps/patroni_api.py:100 2765s May 03 01:12:03 And I sleep for 4 seconds # features/steps/patroni_api.py:41 2769s May 03 01:12:07 2769s May 03 01:12:07 Scenario: check the scheduled restart # features/patroni_api.feature:49 2769s May 03 01:12:07 Given I run patronictl.py edit-config -p 'superuser_reserved_connections=6' --force batman # features/steps/patroni_api.py:88 2770s May 03 01:12:08 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2770s May 03 01:12:08 And I receive a response output "+ superuser_reserved_connections: 6" # features/steps/patroni_api.py:100 2770s May 03 01:12:08 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 5 seconds # features/steps/patroni_api.py:158 2770s May 03 01:12:08 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 2770s May 03 01:12:08 Then I receive a response code 202 # features/steps/patroni_api.py:100 2770s May 03 01:12:08 And I sleep for 8 seconds # features/steps/patroni_api.py:41 2778s May 03 01:12:16 And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 10 seconds # features/steps/patroni_api.py:158 2778s May 03 01:12:16 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 2778s May 03 01:12:16 Then I receive a response code 202 # features/steps/patroni_api.py:100 2778s May 03 01:12:16 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 2784s May 03 01:12:22 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2785s May 03 01:12:23 2785s May 03 01:12:23 Scenario: check API requests for the primary-replica pair in the pause mode # features/patroni_api.feature:63 2785s May 03 01:12:23 Given I start postgres-1 # features/steps/basic_replication.py:20 2788s May 03 01:12:26 Then replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 2790s May 03 01:12:28 When I run patronictl.py pause batman # features/steps/patroni_api.py:88 2791s May 03 01:12:29 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2791s May 03 01:12:29 When I kill postmaster on postgres-1 # features/steps/basic_replication.py:56 2791s May 03 01:12:29 waiting for server to shut down.... done 2791s May 03 01:12:29 server stopped 2791s May 03 01:12:29 And I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 2791s May 03 01:12:29 Then I receive a response code 503 # features/steps/patroni_api.py:100 2791s May 03 01:12:29 And "members/postgres-1" key in DCS has state=stopped after 10 seconds # features/steps/cascading_replication.py:23 2792s May 03 01:12:30 When I run patronictl.py restart batman postgres-1 --force # features/steps/patroni_api.py:88 2795s May 03 01:12:33 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2795s May 03 01:12:33 Then replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 2796s May 03 01:12:34 And I sleep for 2 seconds # features/steps/patroni_api.py:41 2798s May 03 01:12:36 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 2798s May 03 01:12:36 Then I receive a response code 200 # features/steps/patroni_api.py:100 2798s May 03 01:12:36 And I receive a response state running # features/steps/patroni_api.py:100 2798s May 03 01:12:36 And I receive a response role replica # features/steps/patroni_api.py:100 2798s May 03 01:12:36 When I run patronictl.py reinit batman postgres-1 --force --wait # features/steps/patroni_api.py:88 2801s May 03 01:12:39 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2801s May 03 01:12:39 And I receive a response output "Success: reinitialize for member postgres-1" # features/steps/patroni_api.py:100 2801s May 03 01:12:39 And postgres-1 role is the secondary after 30 seconds # features/steps/basic_replication.py:117 2802s May 03 01:12:40 And replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 2803s May 03 01:12:41 When I run patronictl.py restart batman postgres-0 --force # features/steps/patroni_api.py:88 2804s May 03 01:12:42 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2804s May 03 01:12:42 And I receive a response output "Success: restart on member postgres-0" # features/steps/patroni_api.py:100 2804s May 03 01:12:42 And postgres-0 role is the primary after 5 seconds # features/steps/basic_replication.py:117 2805s May 03 01:12:43 2805s May 03 01:12:43 Scenario: check the switchover via the API in the pause mode # features/patroni_api.feature:90 2805s May 03 01:12:43 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 2807s May 03 01:12:45 Then I receive a response code 200 # features/steps/patroni_api.py:100 2807s May 03 01:12:45 And postgres-1 is a leader after 5 seconds # features/steps/patroni_api.py:31 2807s May 03 01:12:45 And postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2807s May 03 01:12:45 And postgres-0 role is the secondary after 10 seconds # features/steps/basic_replication.py:117 2813s May 03 01:12:51 And replication works from postgres-1 to postgres-0 after 20 seconds # features/steps/basic_replication.py:124 2813s May 03 01:12:51 And "members/postgres-0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 2814s May 03 01:12:52 When I issue a GET request to http://127.0.0.1:8008/primary # features/steps/patroni_api.py:63 2814s May 03 01:12:52 Then I receive a response code 503 # features/steps/patroni_api.py:100 2814s May 03 01:12:52 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:63 2814s May 03 01:12:52 Then I receive a response code 200 # features/steps/patroni_api.py:100 2814s May 03 01:12:52 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 2814s May 03 01:12:52 Then I receive a response code 200 # features/steps/patroni_api.py:100 2814s May 03 01:12:52 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 2814s May 03 01:12:52 Then I receive a response code 503 # features/steps/patroni_api.py:100 2814s May 03 01:12:52 2814s May 03 01:12:52 Scenario: check the scheduled switchover # features/patroni_api.feature:107 2814s May 03 01:12:52 Given I issue a scheduled switchover from postgres-1 to postgres-0 in 10 seconds # features/steps/patroni_api.py:119 2815s May 03 01:12:53 Then I receive a response returncode 1 # features/steps/patroni_api.py:100 2815s May 03 01:12:53 And I receive a response output "Can't schedule switchover in the paused state" # features/steps/patroni_api.py:100 2815s May 03 01:12:53 When I run patronictl.py resume batman # features/steps/patroni_api.py:88 2816s May 03 01:12:54 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2816s May 03 01:12:54 Given I issue a scheduled switchover from postgres-1 to postgres-0 in 10 seconds # features/steps/patroni_api.py:119 2817s May 03 01:12:55 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 2817s May 03 01:12:55 And postgres-0 is a leader after 20 seconds # features/steps/patroni_api.py:31 2828s May 03 01:13:06 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2828s May 03 01:13:06 And postgres-1 role is the secondary after 10 seconds # features/steps/basic_replication.py:117 2831s May 03 01:13:09 And replication works from postgres-0 to postgres-1 after 25 seconds # features/steps/basic_replication.py:124 2831s May 03 01:13:09 And "members/postgres-1" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 2832s May 03 01:13:10 When I issue a GET request to http://127.0.0.1:8008/primary # features/steps/patroni_api.py:63 2832s May 03 01:13:10 Then I receive a response code 200 # features/steps/patroni_api.py:100 2832s May 03 01:13:10 When I issue a GET request to http://127.0.0.1:8008/replica # features/steps/patroni_api.py:63 2832s May 03 01:13:10 Then I receive a response code 503 # features/steps/patroni_api.py:100 2832s May 03 01:13:10 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 2832s May 03 01:13:10 Then I receive a response code 503 # features/steps/patroni_api.py:100 2832s May 03 01:13:10 When I issue a GET request to http://127.0.0.1:8009/replica # features/steps/patroni_api.py:63 2832s May 03 01:13:10 Then I receive a response code 200 # features/steps/patroni_api.py:100 2843s May 03 01:13:21 2843s May 03 01:13:21 Feature: permanent slots # features/permanent_slots.feature:1 2843s May 03 01:13:21 2843s May 03 01:13:21 Scenario: check that physical permanent slots are created # features/permanent_slots.feature:2 2843s May 03 01:13:21 Given I start postgres-0 # features/steps/basic_replication.py:20 2852s May 03 01:13:30 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 2853s May 03 01:13:31 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 2853s May 03 01:13:31 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 2853s May 03 01:13:31 Then I receive a response code 200 # features/steps/patroni_api.py:100 2853s May 03 01:13:31 And Response on GET http://127.0.0.1:8008/config contains slots after 10 seconds # features/steps/patroni_api.py:158 2853s May 03 01:13:31 When I start postgres-1 # features/steps/basic_replication.py:20 2856s May 03 01:13:34 And I configure and start postgres-2 with a tag nofailover true # features/steps/cascading_replication.py:7 2865s May 03 01:13:43 And I configure and start postgres-3 with a tag replicatefrom postgres-2 # features/steps/cascading_replication.py:7 2874s May 03 01:13:52 Then postgres-0 has a physical replication slot named test_physical after 10 seconds # features/steps/slots.py:82 2874s May 03 01:13:52 And postgres-0 has a physical replication slot named postgres_1 after 10 seconds # features/steps/slots.py:82 2874s May 03 01:13:52 And postgres-0 has a physical replication slot named postgres_2 after 10 seconds # features/steps/slots.py:82 2874s May 03 01:13:52 And postgres-2 has a physical replication slot named postgres_3 after 10 seconds # features/steps/slots.py:82 2874s May 03 01:13:52 And postgres-2 does not have a replication slot named test_physical # features/steps/slots.py:41 2874s May 03 01:13:52 2874s May 03 01:13:52 @slot-advance 2874s May 03 01:13:52 Scenario: check that logical permanent slots are created # features/permanent_slots.feature:19 2874s May 03 01:13:52 Given I run patronictl.py restart batman postgres-0 --force # features/steps/patroni_api.py:88 2877s May 03 01:13:55 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 2877s May 03 01:13:55 Then postgres-0 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:20 2878s May 03 01:13:56 2878s May 03 01:13:56 @slot-advance 2878s May 03 01:13:56 Scenario: check that permanent slots are created on replicas # features/permanent_slots.feature:25 2878s May 03 01:13:56 Given postgres-1 has a logical replication slot named test_logical with the test_decoding plugin after 10 seconds # features/steps/slots.py:20 2881s May 03 01:13:59 Then Logical slot test_logical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 2881s May 03 01:13:59 And Logical slot test_logical is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 2882s May 03 01:14:00 And postgres-1 has a physical replication slot named test_physical after 2 seconds # features/steps/slots.py:82 2882s May 03 01:14:00 And postgres-2 does not have a replication slot named test_logical # features/steps/slots.py:41 2882s May 03 01:14:00 And postgres-3 has a physical replication slot named test_physical after 2 seconds # features/steps/slots.py:82 2882s May 03 01:14:00 2882s May 03 01:14:00 @slot-advance 2882s May 03 01:14:00 Scenario: check permanent physical slots that match with member names # features/permanent_slots.feature:34 2882s May 03 01:14:00 Given postgres-0 has a physical replication slot named postgres_3 after 2 seconds # features/steps/slots.py:82 2882s May 03 01:14:00 And postgres-1 has a physical replication slot named postgres_0 after 2 seconds # features/steps/slots.py:82 2882s May 03 01:14:00 And postgres-1 has a physical replication slot named postgres_2 after 2 seconds # features/steps/slots.py:82 2882s May 03 01:14:00 And postgres-1 has a physical replication slot named postgres_3 after 2 seconds # features/steps/slots.py:82 2882s May 03 01:14:00 And postgres-2 does not have a replication slot named postgres_0 # features/steps/slots.py:41 2882s May 03 01:14:00 And postgres-2 does not have a replication slot named postgres_1 # features/steps/slots.py:41 2882s May 03 01:14:00 And postgres-2 has a physical replication slot named postgres_3 after 2 seconds # features/steps/slots.py:82 2882s May 03 01:14:00 And postgres-3 has a physical replication slot named postgres_0 after 2 seconds # features/steps/slots.py:82 2882s May 03 01:14:00 And postgres-3 has a physical replication slot named postgres_1 after 2 seconds # features/steps/slots.py:82 2882s May 03 01:14:00 And postgres-3 has a physical replication slot named postgres_2 after 2 seconds # features/steps/slots.py:82 2882s May 03 01:14:00 2882s May 03 01:14:00 @slot-advance 2882s May 03 01:14:00 Scenario: check that permanent slots are advanced on replicas # features/permanent_slots.feature:47 2882s May 03 01:14:00 Given I add the table replicate_me to postgres-0 # features/steps/basic_replication.py:66 2882s May 03 01:14:00 When I get all changes from logical slot test_logical on postgres-0 # features/steps/slots.py:72 2882s May 03 01:14:00 And I get all changes from physical slot test_physical on postgres-0 # features/steps/slots.py:77 2882s May 03 01:14:00 Then Logical slot test_logical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 2884s May 03 01:14:02 And Physical slot test_physical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 2884s May 03 01:14:02 And Logical slot test_logical is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 2884s May 03 01:14:02 And Physical slot test_physical is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 2884s May 03 01:14:02 And Physical slot postgres_1 is in sync between postgres-0 and postgres-3 after 10 seconds # features/steps/slots.py:52 2884s May 03 01:14:02 And Physical slot postgres_3 is in sync between postgres-2 and postgres-0 after 20 seconds # features/steps/slots.py:52 2886s May 03 01:14:04 And Physical slot postgres_3 is in sync between postgres-2 and postgres-1 after 10 seconds # features/steps/slots.py:52 2886s May 03 01:14:04 2886s May 03 01:14:04 @slot-advance 2886s May 03 01:14:04 Scenario: check that permanent slots and member slots are written to the /status key # features/permanent_slots.feature:60 2886s May 03 01:14:04 Given "status" key in DCS has test_physical in slots # features/steps/slots.py:118 2886s May 03 01:14:04 And "status" key in DCS has postgres_0 in slots # features/steps/slots.py:118 2886s May 03 01:14:04 And "status" key in DCS has postgres_1 in slots # features/steps/slots.py:118 2886s May 03 01:14:04 And "status" key in DCS has postgres_2 in slots # features/steps/slots.py:118 2886s May 03 01:14:04 And "status" key in DCS has postgres_3 in slots # features/steps/slots.py:118 2886s May 03 01:14:04 2886s May 03 01:14:04 @slot-advance 2886s May 03 01:14:04 Scenario: check that only non-permanent member slots are written to the retain_slots in /status key # features/permanent_slots.feature:68 2886s May 03 01:14:04 Given "status" key in DCS has postgres_0 in retain_slots # features/steps/slots.py:118 2886s May 03 01:14:04 And "status" key in DCS has postgres_1 in retain_slots # features/steps/slots.py:118 2886s May 03 01:14:04 And "status" key in DCS has postgres_2 in retain_slots # features/steps/slots.py:118 2886s May 03 01:14:04 And "status" key in DCS does not have postgres_3 in retain_slots # features/steps/slots.py:124 2886s May 03 01:14:04 2886s May 03 01:14:04 Scenario: check permanent physical replication slot after failover # features/permanent_slots.feature:74 2886s May 03 01:14:04 Given I shut down postgres-3 # features/steps/basic_replication.py:41 2887s May 03 01:14:05 And I shut down postgres-2 # features/steps/basic_replication.py:41 2888s May 03 01:14:06 And I shut down postgres-0 # features/steps/basic_replication.py:41 2890s May 03 01:14:08 Then postgres-1 has a physical replication slot named test_physical after 10 seconds # features/steps/slots.py:82 2890s May 03 01:14:08 And postgres-1 has a physical replication slot named postgres_0 after 10 seconds # features/steps/slots.py:82 2890s May 03 01:14:08 And postgres-1 has a physical replication slot named postgres_3 after 10 seconds # features/steps/slots.py:82 2890s May 03 01:14:08 When I start postgres-0 # features/steps/basic_replication.py:20 2892s May 03 01:14:10 Then postgres-0 role is the replica after 20 seconds # features/steps/basic_replication.py:117 2892s May 03 01:14:10 And physical replication slot named postgres_1 on postgres-0 has no xmin value after 10 seconds # features/steps/slots.py:98 2893s May 03 01:14:11 And postgres-0 has a physical replication slot named postgres_2 after 10 seconds # features/steps/slots.py:82 2893s May 03 01:14:11 And postgres-0 has a physical replication slot named postgres_3 after 10 seconds # features/steps/slots.py:82 2905s May 03 01:14:23 2905s May 03 01:14:23 Feature: priority replication # features/priority_failover.feature:1 2905s May 03 01:14:23 We should check that we can give nodes priority during failover 2905s May 03 01:14:23 Scenario: check failover priority 0 prevents leaderships # features/priority_failover.feature:4 2905s May 03 01:14:23 Given I configure and start postgres-0 with a tag failover_priority 1 # features/steps/cascading_replication.py:7 2908s May 03 01:14:26 And I configure and start postgres-1 with a tag failover_priority 0 # features/steps/cascading_replication.py:7 2912s May 03 01:14:30 Then replication works from postgres-0 to postgres-1 after 20 seconds # features/steps/basic_replication.py:124 2913s May 03 01:14:31 When I shut down postgres-0 # features/steps/basic_replication.py:41 2915s May 03 01:14:33 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 2917s May 03 01:14:35 Then postgres-1 role is the secondary after 10 seconds # features/steps/basic_replication.py:117 2917s May 03 01:14:35 When I start postgres-0 # features/steps/basic_replication.py:20 2919s May 03 01:14:37 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2922s May 03 01:14:40 2922s May 03 01:14:40 Scenario: check higher failover priority is respected # features/priority_failover.feature:14 2922s May 03 01:14:40 Given I configure and start postgres-2 with a tag failover_priority 1 # features/steps/cascading_replication.py:7 2925s May 03 01:14:43 And I configure and start postgres-3 with a tag failover_priority 2 # features/steps/cascading_replication.py:7 2928s May 03 01:14:46 Then replication works from postgres-0 to postgres-2 after 20 seconds # features/steps/basic_replication.py:124 2929s May 03 01:14:47 And replication works from postgres-0 to postgres-3 after 20 seconds # features/steps/basic_replication.py:124 2930s May 03 01:14:48 When I shut down postgres-0 # features/steps/basic_replication.py:41 2932s May 03 01:14:50 Then postgres-3 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2932s May 03 01:14:50 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 2932s May 03 01:14:50 2932s May 03 01:14:50 Scenario: check conflicting configuration handling # features/priority_failover.feature:23 2932s May 03 01:14:50 When I set nofailover tag in postgres-2 config # features/steps/patroni_api.py:133 2932s May 03 01:14:50 And I issue an empty POST request to http://127.0.0.1:8010/reload # features/steps/patroni_api.py:68 2932s May 03 01:14:50 Then I receive a response code 202 # features/steps/patroni_api.py:100 2932s May 03 01:14:50 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 2933s May 03 01:14:51 And "members/postgres-2" key in DCS has tags={'failover_priority': '1', 'nofailover': True} after 10 seconds # features/steps/cascading_replication.py:23 2934s May 03 01:14:52 When I issue a POST request to http://127.0.0.1:8010/failover with {"candidate": "postgres-2"} # features/steps/patroni_api.py:73 2934s May 03 01:14:52 Then I receive a response code 412 # features/steps/patroni_api.py:100 2934s May 03 01:14:52 And I receive a response text "failover is not possible: no good candidates have been found" # features/steps/patroni_api.py:100 2934s May 03 01:14:52 When I reset nofailover tag in postgres-1 config # features/steps/patroni_api.py:133 2934s May 03 01:14:52 And I issue an empty POST request to http://127.0.0.1:8009/reload # features/steps/patroni_api.py:68 2934s May 03 01:14:52 Then I receive a response code 202 # features/steps/patroni_api.py:100 2934s May 03 01:14:52 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 2935s May 03 01:14:53 And "members/postgres-1" key in DCS has tags={'failover_priority': '0', 'nofailover': False} after 10 seconds # features/steps/cascading_replication.py:23 2936s May 03 01:14:54 And I issue a POST request to http://127.0.0.1:8009/failover with {"candidate": "postgres-1"} # features/steps/patroni_api.py:73 2938s May 03 01:14:56 Then I receive a response code 200 # features/steps/patroni_api.py:100 2938s May 03 01:14:56 And postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2951s May 03 01:15:09 2951s May 03 01:15:09 Feature: quorum commit # features/quorum_commit.feature:1 2951s May 03 01:15:09 Check basic workfrlows when quorum commit is enabled 2951s May 03 01:15:09 Scenario: check enable quorum commit and that the only leader promotes after restart # features/quorum_commit.feature:4 2951s May 03 01:15:09 Given I start postgres-0 # features/steps/basic_replication.py:20 2960s May 03 01:15:18 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 2960s May 03 01:15:18 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 2960s May 03 01:15:18 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 2960s May 03 01:15:18 Then I receive a response code 200 # features/steps/patroni_api.py:100 2960s May 03 01:15:18 And sync key in DCS has leader=postgres-0 after 20 seconds # features/steps/quorum_commit.py:8 2960s May 03 01:15:18 And sync key in DCS has quorum=0 after 2 seconds # features/steps/quorum_commit.py:8 2960s May 03 01:15:18 And synchronous_standby_names on postgres-0 is set to '_empty_str_' after 2 seconds # features/steps/quorum_commit.py:39 2960s May 03 01:15:18 When I shut down postgres-0 # features/steps/basic_replication.py:41 2962s May 03 01:15:20 And sync key in DCS has leader=postgres-0 after 2 seconds # features/steps/quorum_commit.py:8 2962s May 03 01:15:20 When I start postgres-0 # features/steps/basic_replication.py:20 2964s May 03 01:15:22 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2967s May 03 01:15:25 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 2967s May 03 01:15:25 Then synchronous_standby_names on postgres-0 is set to 'ANY 1 (*)' after 10 seconds # features/steps/quorum_commit.py:39 2967s May 03 01:15:25 2967s May 03 01:15:25 Scenario: check failover with one quorum standby # features/quorum_commit.feature:20 2967s May 03 01:15:25 Given I start postgres-1 # features/steps/basic_replication.py:20 2970s May 03 01:15:28 Then sync key in DCS has sync_standby=postgres-1 after 10 seconds # features/steps/quorum_commit.py:8 2971s May 03 01:15:29 And synchronous_standby_names on postgres-0 is set to 'ANY 1 ("postgres-1")' after 2 seconds # features/steps/quorum_commit.py:39 2971s May 03 01:15:29 When I shut down postgres-0 # features/steps/basic_replication.py:41 2973s May 03 01:15:31 Then postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 2973s May 03 01:15:31 And sync key in DCS has quorum=0 after 10 seconds # features/steps/quorum_commit.py:8 2973s May 03 01:15:31 Then synchronous_standby_names on postgres-1 is set to 'ANY 1 (*)' after 10 seconds # features/steps/quorum_commit.py:39 2976s May 03 01:15:34 When I start postgres-0 # features/steps/basic_replication.py:20 2979s May 03 01:15:37 Then sync key in DCS has leader=postgres-1 after 10 seconds # features/steps/quorum_commit.py:8 2979s May 03 01:15:37 Then sync key in DCS has sync_standby=postgres-0 after 10 seconds # features/steps/quorum_commit.py:8 2981s May 03 01:15:39 And synchronous_standby_names on postgres-1 is set to 'ANY 1 ("postgres-0")' after 2 seconds # features/steps/quorum_commit.py:39 2981s May 03 01:15:39 2981s May 03 01:15:39 Scenario: check behavior with three nodes and different replication factor # features/quorum_commit.feature:33 2981s May 03 01:15:39 Given I start postgres-2 # features/steps/basic_replication.py:20 2990s May 03 01:15:48 Then sync key in DCS has sync_standby=postgres-0,postgres-2 after 10 seconds # features/steps/quorum_commit.py:8 2991s May 03 01:15:49 And sync key in DCS has quorum=1 after 2 seconds # features/steps/quorum_commit.py:8 2991s May 03 01:15:49 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 2991s May 03 01:15:49 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 2991s May 03 01:15:49 Then sync key in DCS has quorum=0 after 10 seconds # features/steps/quorum_commit.py:8 2992s May 03 01:15:50 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 2992s May 03 01:15:50 2992s May 03 01:15:50 Scenario: switch from quorum replication to good old multisync and back # features/quorum_commit.feature:42 2992s May 03 01:15:50 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 2992s May 03 01:15:50 And I shut down postgres-0 # features/steps/basic_replication.py:41 2993s May 03 01:15:51 Then synchronous_standby_names on postgres-1 is set to '"postgres-2"' after 10 seconds # features/steps/quorum_commit.py:39 2995s May 03 01:15:53 And sync key in DCS has sync_standby=postgres-2 after 10 seconds # features/steps/quorum_commit.py:8 2997s May 03 01:15:55 Then sync key in DCS has quorum=0 after 2 seconds # features/steps/quorum_commit.py:8 2997s May 03 01:15:55 When I issue a PATCH request to http://127.0.0.1:8009/config with {"synchronous_mode": "quorum"} # features/steps/patroni_api.py:73 2997s May 03 01:15:55 And I start postgres-0 # features/steps/basic_replication.py:20 3000s May 03 01:15:58 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 3000s May 03 01:15:58 And sync key in DCS has sync_standby=postgres-0,postgres-2 after 10 seconds # features/steps/quorum_commit.py:8 3000s May 03 01:15:58 Then sync key in DCS has quorum=1 after 2 seconds # features/steps/quorum_commit.py:8 3000s May 03 01:15:58 3000s May 03 01:15:58 Scenario: REST API and patronictl # features/quorum_commit.feature:54 3000s May 03 01:15:58 Given I run patronictl.py list batman # features/steps/patroni_api.py:88 3001s May 03 01:15:59 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 3001s May 03 01:15:59 And I receive a response output "Quorum Standby" # features/steps/patroni_api.py:100 3001s May 03 01:15:59 And Status code on GET http://127.0.0.1:8008/quorum is 200 after 3 seconds # features/steps/patroni_api.py:144 3001s May 03 01:15:59 And Status code on GET http://127.0.0.1:8010/quorum is 200 after 3 seconds # features/steps/patroni_api.py:144 3001s May 03 01:15:59 3001s May 03 01:15:59 Scenario: nosync node is removed from voters and synchronous_standby_names # features/quorum_commit.feature:61 3001s May 03 01:15:59 Given I add tag nosync true to postgres-2 config # features/steps/patroni_api.py:139 3001s May 03 01:15:59 When I issue an empty POST request to http://127.0.0.1:8010/reload # features/steps/patroni_api.py:68 3001s May 03 01:15:59 Then I receive a response code 202 # features/steps/patroni_api.py:100 3001s May 03 01:15:59 And sync key in DCS has quorum=0 after 10 seconds # features/steps/quorum_commit.py:8 3004s May 03 01:16:02 And sync key in DCS has sync_standby=postgres-0 after 10 seconds # features/steps/quorum_commit.py:8 3004s May 03 01:16:02 And synchronous_standby_names on postgres-1 is set to 'ANY 1 ("postgres-0")' after 2 seconds # features/steps/quorum_commit.py:39 3004s May 03 01:16:02 And Status code on GET http://127.0.0.1:8010/quorum is 503 after 10 seconds # features/steps/patroni_api.py:144 3019s May 03 01:16:17 3019s May 03 01:16:17 Feature: recovery # features/recovery.feature:1 3019s May 03 01:16:17 We want to check that crashed postgres is started back 3019s May 03 01:16:17 Scenario: check that timeline is not incremented when primary is started after crash # features/recovery.feature:4 3019s May 03 01:16:17 Given I start postgres-0 # features/steps/basic_replication.py:20 3028s May 03 01:16:26 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 3029s May 03 01:16:27 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 3029s May 03 01:16:27 When I start postgres-1 # features/steps/basic_replication.py:20 3038s May 03 01:16:36 And I add the table foo to postgres-0 # features/steps/basic_replication.py:66 3038s May 03 01:16:36 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 3039s May 03 01:16:37 When I kill postmaster on postgres-0 # features/steps/basic_replication.py:56 3039s May 03 01:16:37 waiting for server to shut down.... done 3039s May 03 01:16:37 server stopped 3039s May 03 01:16:37 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 3041s May 03 01:16:39 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:63 3041s May 03 01:16:39 Then I receive a response code 200 # features/steps/patroni_api.py:100 3041s May 03 01:16:39 And I receive a response role primary # features/steps/patroni_api.py:100 3041s May 03 01:16:39 And I receive a response timeline 1 # features/steps/patroni_api.py:100 3041s May 03 01:16:39 And "members/postgres-0" key in DCS has state=running after 12 seconds # features/steps/cascading_replication.py:23 3042s May 03 01:16:40 And replication works from postgres-0 to postgres-1 after 15 seconds # features/steps/basic_replication.py:124 3045s May 03 01:16:43 3045s May 03 01:16:43 Scenario: check immediate failover when master_start_timeout=0 # features/recovery.feature:20 3045s May 03 01:16:43 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 3045s May 03 01:16:43 Then I receive a response code 200 # features/steps/patroni_api.py:100 3045s May 03 01:16:43 And Response on GET http://127.0.0.1:8008/config contains master_start_timeout after 10 seconds # features/steps/patroni_api.py:158 3045s May 03 01:16:43 When I kill postmaster on postgres-0 # features/steps/basic_replication.py:56 3045s May 03 01:16:43 waiting for server to shut down.... done 3045s May 03 01:16:43 server stopped 3045s May 03 01:16:43 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 3047s May 03 01:16:45 And postgres-1 role is the primary after 10 seconds # features/steps/basic_replication.py:117 3048s May 03 01:16:46 3048s May 03 01:16:46 Scenario: check crashed primary demotes after failed attempt to start # features/recovery.feature:28 3048s May 03 01:16:46 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 3049s May 03 01:16:47 Then I receive a response code 200 # features/steps/patroni_api.py:100 3049s May 03 01:16:47 And postgres-0 role is the replica after 10 seconds # features/steps/basic_replication.py:117 3051s May 03 01:16:49 When I ensure postgres-1 fails to start after a failure # features/steps/recovery.py:6 3051s May 03 01:16:49 When I kill postmaster on postgres-1 # features/steps/basic_replication.py:56 3051s May 03 01:16:49 waiting for server to shut down.... done 3051s May 03 01:16:49 server stopped 3051s May 03 01:16:49 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 3054s May 03 01:16:52 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 3063s May 03 01:17:01 3063s May 03 01:17:01 Feature: standby cluster # features/standby_cluster.feature:1 3063s May 03 01:17:01 3063s May 03 01:17:01 Scenario: prepare the cluster with logical slots # features/standby_cluster.feature:2 3063s May 03 01:17:01 Given I start postgres-1 # features/steps/basic_replication.py:20 3066s May 03 01:17:04 Then postgres-1 is a leader after 10 seconds # features/steps/patroni_api.py:31 3067s May 03 01:17:05 And there is a non empty initialize key in DCS after 15 seconds # features/steps/cascading_replication.py:41 3067s May 03 01:17:05 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 3067s May 03 01:17:05 Then I receive a response code 200 # features/steps/patroni_api.py:100 3067s May 03 01:17:05 And Response on GET http://127.0.0.1:8009/config contains slots after 10 seconds # features/steps/patroni_api.py:158 3067s May 03 01:17:05 And I sleep for 3 seconds # features/steps/patroni_api.py:41 3070s May 03 01:17:08 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 3070s May 03 01:17:08 Then I receive a response code 200 # features/steps/patroni_api.py:100 3070s May 03 01:17:08 And I do a backup of postgres-1 # features/steps/custom_bootstrap.py:25 3071s May 03 01:17:09 When I start postgres-0 # features/steps/basic_replication.py:20 3080s May 03 01:17:18 Then "members/postgres-0" key in DCS has state=running after 10 seconds # features/steps/cascading_replication.py:23 3080s May 03 01:17:18 And replication works from postgres-1 to postgres-0 after 15 seconds # features/steps/basic_replication.py:124 3081s May 03 01:17:19 When I issue a GET request to http://127.0.0.1:8008/patroni # features/steps/patroni_api.py:63 3081s May 03 01:17:19 Then I receive a response code 200 # features/steps/patroni_api.py:100 3081s May 03 01:17:19 And I receive a response replication_state streaming # features/steps/patroni_api.py:100 3081s May 03 01:17:19 And "members/postgres-0" key in DCS has replication_state=streaming after 10 seconds # features/steps/cascading_replication.py:23 3081s May 03 01:17:19 3081s May 03 01:17:19 @slot-advance 3081s May 03 01:17:19 Scenario: check permanent logical slots are synced to the replica # features/standby_cluster.feature:22 3081s May 03 01:17:19 Given I run patronictl.py restart batman postgres-1 --force # features/steps/patroni_api.py:88 3082s May 03 01:17:20 Then Logical slot test_logical is in sync between postgres-0 and postgres-1 after 10 seconds # features/steps/slots.py:52 3088s May 03 01:17:26 3088s May 03 01:17:26 Scenario: Detach exiting node from the cluster # features/standby_cluster.feature:26 3088s May 03 01:17:26 When I shut down postgres-1 # features/steps/basic_replication.py:41 3090s May 03 01:17:28 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 3090s May 03 01:17:28 And "members/postgres-0" key in DCS has role=primary after 5 seconds # features/steps/cascading_replication.py:23 3091s May 03 01:17:29 When I issue a GET request to http://127.0.0.1:8008/ # features/steps/patroni_api.py:63 3091s May 03 01:17:29 Then I receive a response code 200 # features/steps/patroni_api.py:100 3091s May 03 01:17:29 3091s May 03 01:17:29 Scenario: check replication of a single table in a standby cluster # features/standby_cluster.feature:33 3091s May 03 01:17:29 Given I start postgres-1 in a standby cluster batman1 as a clone of postgres-0 # features/steps/standby_cluster.py:23 3093s May 03 01:17:31 Then postgres-1 is a leader of batman1 after 10 seconds # features/steps/custom_bootstrap.py:16 3096s May 03 01:17:34 When I add the table foo to postgres-0 # features/steps/basic_replication.py:66 3096s May 03 01:17:34 Then table foo is present on postgres-1 after 20 seconds # features/steps/basic_replication.py:105 3096s May 03 01:17:34 When I issue a GET request to http://127.0.0.1:8009/patroni # features/steps/patroni_api.py:63 3096s May 03 01:17:34 Then I receive a response code 200 # features/steps/patroni_api.py:100 3096s May 03 01:17:34 And I receive a response replication_state streaming # features/steps/patroni_api.py:100 3096s May 03 01:17:34 And I sleep for 3 seconds # features/steps/patroni_api.py:41 3099s May 03 01:17:37 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 3099s May 03 01:17:37 Then I receive a response code 503 # features/steps/patroni_api.py:100 3099s May 03 01:17:37 When I issue a GET request to http://127.0.0.1:8009/standby_leader # features/steps/patroni_api.py:63 3099s May 03 01:17:37 Then I receive a response code 200 # features/steps/patroni_api.py:100 3099s May 03 01:17:37 And I receive a response role standby_leader # features/steps/patroni_api.py:100 3099s May 03 01:17:37 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 3099s May 03 01:17:37 When I start postgres-2 in a cluster batman1 # features/steps/standby_cluster.py:12 3102s May 03 01:17:40 Then postgres-2 role is the replica after 24 seconds # features/steps/basic_replication.py:117 3102s May 03 01:17:40 And postgres-2 is replicating from postgres-1 after 10 seconds # features/steps/standby_cluster.py:52 3102s May 03 01:17:40 And table foo is present on postgres-2 after 20 seconds # features/steps/basic_replication.py:105 3102s May 03 01:17:40 When I issue a GET request to http://127.0.0.1:8010/patroni # features/steps/patroni_api.py:63 3102s May 03 01:17:40 Then I receive a response code 200 # features/steps/patroni_api.py:100 3102s May 03 01:17:40 And I receive a response replication_state streaming # features/steps/patroni_api.py:100 3102s May 03 01:17:40 And postgres-1 does not have a replication slot named test_logical # features/steps/slots.py:41 3102s May 03 01:17:40 3102s May 03 01:17:40 Scenario: check switchover # features/standby_cluster.feature:57 3102s May 03 01:17:40 Given I run patronictl.py switchover batman1 --force # features/steps/patroni_api.py:88 3105s May 03 01:17:43 Then Status code on GET http://127.0.0.1:8010/standby_leader is 200 after 10 seconds # features/steps/patroni_api.py:144 3105s May 03 01:17:43 And postgres-1 is replicating from postgres-2 after 32 seconds # features/steps/standby_cluster.py:52 3107s May 03 01:17:45 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 3107s May 03 01:17:45 3107s May 03 01:17:45 Scenario: check failover # features/standby_cluster.feature:63 3107s May 03 01:17:45 When I kill postgres-2 # features/steps/basic_replication.py:46 3108s May 03 01:17:46 And I kill postmaster on postgres-2 # features/steps/basic_replication.py:56 3108s May 03 01:17:46 waiting for server to shut down.... done 3108s May 03 01:17:46 server stopped 3108s May 03 01:17:46 Then postgres-1 is replicating from postgres-0 after 32 seconds # features/steps/standby_cluster.py:52 3127s May 03 01:18:05 And Status code on GET http://127.0.0.1:8009/standby_leader is 200 after 10 seconds # features/steps/patroni_api.py:144 3127s May 03 01:18:05 When I issue a GET request to http://127.0.0.1:8009/primary # features/steps/patroni_api.py:63 3127s May 03 01:18:05 Then I receive a response code 503 # features/steps/patroni_api.py:100 3127s May 03 01:18:05 And I receive a response role standby_leader # features/steps/patroni_api.py:100 3127s May 03 01:18:05 And replication works from postgres-0 to postgres-1 after 15 seconds # features/steps/basic_replication.py:124 3128s May 03 01:18:06 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 3144s May 03 01:18:22 3144s May 03 01:18:22 Feature: watchdog # features/watchdog.feature:1 3144s May 03 01:18:22 Verify that watchdog gets pinged and triggered under appropriate circumstances. 3144s May 03 01:18:22 Scenario: watchdog is opened and pinged # features/watchdog.feature:4 3144s May 03 01:18:22 Given I start postgres-0 with watchdog # features/steps/watchdog.py:17 3147s May 03 01:18:25 Then postgres-0 is a leader after 10 seconds # features/steps/patroni_api.py:31 3147s May 03 01:18:25 And postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 3147s May 03 01:18:25 And postgres-0 watchdog has been pinged after 10 seconds # features/steps/watchdog.py:22 3147s May 03 01:18:25 And postgres-0 watchdog has a 15 second timeout # features/steps/watchdog.py:35 3147s May 03 01:18:25 3147s May 03 01:18:25 Scenario: watchdog is reconfigured after global ttl changed # features/watchdog.feature:11 3147s May 03 01:18:25 Given I run patronictl.py edit-config batman -s ttl=30 --force # features/steps/patroni_api.py:88 3148s May 03 01:18:26 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 3148s May 03 01:18:26 And I receive a response output "+ttl: 30" # features/steps/patroni_api.py:100 3148s May 03 01:18:26 When I sleep for 4 seconds # features/steps/patroni_api.py:41 3152s May 03 01:18:30 Then postgres-0 watchdog has a 25 second timeout # features/steps/watchdog.py:35 3152s May 03 01:18:30 3152s May 03 01:18:30 Scenario: watchdog is disabled during pause # features/watchdog.feature:18 3152s May 03 01:18:30 Given I run patronictl.py pause batman # features/steps/patroni_api.py:88 3153s May 03 01:18:31 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 3153s May 03 01:18:31 When I sleep for 2 seconds # features/steps/patroni_api.py:41 3155s May 03 01:18:33 Then postgres-0 watchdog has been closed # features/steps/watchdog.py:30 3155s May 03 01:18:33 3155s May 03 01:18:33 Scenario: watchdog is opened and pinged after resume # features/watchdog.feature:24 3155s May 03 01:18:33 Given I reset postgres-0 watchdog state # features/steps/watchdog.py:40 3155s May 03 01:18:33 And I run patronictl.py resume batman # features/steps/patroni_api.py:88 3156s May 03 01:18:34 Then I receive a response returncode 0 # features/steps/patroni_api.py:100 3156s May 03 01:18:34 And postgres-0 watchdog has been pinged after 10 seconds # features/steps/watchdog.py:22 3156s May 03 01:18:34 3156s May 03 01:18:34 Scenario: watchdog is disabled when shutting down # features/watchdog.feature:30 3156s May 03 01:18:34 Given I shut down postgres-0 # features/steps/basic_replication.py:41 3158s May 03 01:18:36 Then postgres-0 watchdog has been closed # features/steps/watchdog.py:30 3158s May 03 01:18:36 3158s May 03 01:18:36 Scenario: watchdog is triggered if patroni stops responding # features/watchdog.feature:34 3158s May 03 01:18:36 Given I reset postgres-0 watchdog state # features/steps/watchdog.py:40 3158s May 03 01:18:36 And I start postgres-0 with watchdog # features/steps/watchdog.py:17 3160s May 03 01:18:38 Then postgres-0 role is the primary after 10 seconds # features/steps/basic_replication.py:117 3162s May 03 01:18:40 When postgres-0 hangs for 30 seconds # features/steps/watchdog.py:53 3162s May 03 01:18:40 Then postgres-0 watchdog is triggered after 30 seconds # features/steps/watchdog.py:45 3193s May 03 01:19:11 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.3716.XbUxetex 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.3719.XWulDQPx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.3766.XBXlmGLx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.3814.XVKBRACx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.3861.XuaLkOAx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.3908.XqbAzVxx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.3982.XppLNSgx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.4031.XbcJwwbx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.4036.XVskTCJx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.4120.XRURpIfx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.4231.XnJVuAwx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.4234.XnsNeNax 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.4280.XCATodwx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.4330.XFNrSlDx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.4475.XYacemXx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.4479.XXWotbIx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.4482.XvqymdIx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.4530.XReAXaVx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.4587.XCcrMIcx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.4674.XZiXuFnx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.4678.XtArDeRx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.4999.XOiTGgtx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.5076.XmalAXTx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.5132.XcxtDpfx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.5408.XawIwpyx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.5411.XpERhZHx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.5466.XpnGkJdx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.5528.XJumRQzx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.5621.XwymsRix 3194s May 03 01:19:12 Skipping duplicate data .coverage.autopkgtest.5719.XHMLDnox 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.5722.XXXFZlKx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.5760.XyXAkIox 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.5837.XuwOTIox 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.5868.XvzTjHjx 3194s May 03 01:19:12 Skipping duplicate data .coverage.autopkgtest.5991.XRjbdGDx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.5994.XmSxmDzx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.6044.XLWPfHSx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.6061.XhgZDLmx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.6101.XWmxniXx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.6151.XTwRbyox 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.6157.XPHmlOFx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.6195.XlqkXFrx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.6239.XXuVmtMx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.6407.XHhEqpzx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.6410.XnPMVlPx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.6417.XWvdswsx 3194s May 03 01:19:12 Skipping duplicate data .coverage.autopkgtest.6554.XopyfKTx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.6557.XPTISYNx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.6605.XImCLXax 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.6662.XGlOaQxx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.6711.XNUdaRdx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.6756.XEIjDlex 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.6901.XIxdFISx 3194s May 03 01:19:12 Skipping duplicate data .coverage.autopkgtest.6983.XDpQocgx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.6986.XWrniXVx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.7030.XrFvohtx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.7103.XyMonsix 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.7173.XEESPrrx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.7242.XwGhkCRx 3194s May 03 01:19:12 Skipping duplicate data .coverage.autopkgtest.7555.XcXsrJqx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.7558.XcDylQEx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.7609.XtiBIXSx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.7672.XJkjAbvx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.7764.XhAcheNx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.7812.XgPVYjPx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.7868.XxfhOMZx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.7912.XEAuvvUx 3194s May 03 01:19:12 Skipping duplicate data .coverage.autopkgtest.7954.XJKLtNux 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.7957.XwuVflox 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.8003.XzZdyecx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.8239.XFeSSrXx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.8246.XyWuWROx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.8311.XPVKBtOx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.8375.XyUnUeGx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.8477.XflZOrXx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.8593.XkrLcuex 3194s May 03 01:19:12 Skipping duplicate data .coverage.autopkgtest.8780.XUwAAeXx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.8784.XQOhFHrx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.8828.XpgvODpx 3194s May 03 01:19:12 Skipping duplicate data .coverage.autopkgtest.8831.XpFRjqqx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.8835.XAvRTInx 3194s May 03 01:19:12 Combined data file .coverage.autopkgtest.8847.XzPxtbAx 3194s May 03 01:19:12 Skipping duplicate data .coverage.autopkgtest.8914.XLBMVXex 3196s May 03 01:19:14 Name Stmts Miss Cover 3196s May 03 01:19:14 ---------------------------------------------------------------------------------------------------------- 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/_distutils_hack/__init__.py 101 96 5% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/cryptography/__about__.py 5 0 100% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/cryptography/__init__.py 3 0 100% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/cryptography/exceptions.py 26 5 81% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/cryptography/fernet.py 137 54 61% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/cryptography/hazmat/__init__.py 2 0 100% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/cryptography/hazmat/_oid.py 135 0 100% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/cryptography/hazmat/backends/__init__.py 5 0 100% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/__init__.py 3 0 100% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/backend.py 135 67 50% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/__init__.py 0 0 100% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/__init__.py 0 0 100% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/_conditional.py 38 17 55% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/binding.py 51 4 92% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/cryptography/hazmat/decrepit/__init__.py 1 0 100% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/cryptography/hazmat/decrepit/ciphers/__init__.py 1 0 100% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/cryptography/hazmat/decrepit/ciphers/algorithms.py 68 18 74% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/__init__.py 0 0 100% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_asymmetric.py 6 0 100% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_cipheralgorithm.py 23 1 96% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_serialization.py 79 35 56% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/__init__.py 0 0 100% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ec.py 172 22 87% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/padding.py 55 23 58% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/rsa.py 93 40 57% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/utils.py 14 5 64% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/__init__.py 4 0 100% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/algorithms.py 72 13 82% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/base.py 54 3 94% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/modes.py 140 50 64% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/constant_time.py 6 3 50% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/hashes.py 127 20 84% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/hmac.py 6 0 100% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/kdf/__init__.py 7 0 100% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/kdf/pbkdf2.py 27 5 81% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/padding.py 104 37 64% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/cryptography/utils.py 76 25 67% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/dateutil/__init__.py 13 4 69% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/dateutil/_common.py 25 15 40% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/dateutil/_version.py 13 3 77% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/dateutil/parser/__init__.py 33 4 88% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/dateutil/parser/_parser.py 810 436 46% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/dateutil/parser/isoparser.py 183 150 18% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/dateutil/relativedelta.py 240 206 14% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/dateutil/tz/__init__.py 4 0 100% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/dateutil/tz/_common.py 151 114 25% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/dateutil/tz/_factories.py 49 21 57% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/dateutil/tz/tz.py 794 626 21% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/dateutil/tz/win.py 152 149 2% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/__init__.py 13 2 85% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/__main__.py 201 66 67% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/api.py 788 292 63% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/async_executor.py 96 15 84% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/collections.py 56 5 91% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/config.py 357 88 75% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/config_generator.py 212 159 25% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/daemon.py 76 3 96% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/dcs/__init__.py 710 99 86% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/dcs/raft.py 319 40 87% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/dynamic_loader.py 35 7 80% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/exceptions.py 16 0 100% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/file_perm.py 47 10 79% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/global_config.py 87 0 100% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/ha.py 1359 303 78% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/log.py 235 79 66% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/postgresql/__init__.py 825 162 80% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/postgresql/available_parameters/__init__.py 24 3 88% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/postgresql/bootstrap.py 254 60 76% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/postgresql/callback_executor.py 55 8 85% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/postgresql/cancellable.py 104 41 61% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/postgresql/config.py 839 215 74% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/postgresql/connection.py 75 1 99% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/postgresql/misc.py 43 8 81% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/postgresql/mpp/__init__.py 89 11 88% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/postgresql/postmaster.py 170 83 51% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/postgresql/rewind.py 416 127 69% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/postgresql/slots.py 349 38 89% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/postgresql/sync.py 154 10 94% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/postgresql/validator.py 157 24 85% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/psycopg.py 46 19 59% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/quorum.py 182 48 74% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/request.py 58 6 90% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/tags.py 38 0 100% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/utils.py 371 122 67% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/validator.py 309 215 30% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/version.py 1 0 100% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/watchdog/__init__.py 2 0 100% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/watchdog/base.py 203 42 79% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/patroni/watchdog/linux.py 135 35 74% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/psutil/__init__.py 945 622 34% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/psutil/_common.py 408 208 49% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/psutil/_pslinux.py 1225 907 26% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/psutil/_psposix.py 84 37 56% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/psycopg2/__init__.py 19 3 84% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/psycopg2/_json.py 64 27 58% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/psycopg2/_range.py 269 172 36% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/psycopg2/errors.py 3 2 33% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/psycopg2/extensions.py 91 25 73% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/pysyncobj/__init__.py 2 0 100% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/pysyncobj/atomic_replace.py 4 0 100% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/pysyncobj/config.py 80 1 99% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/pysyncobj/dns_resolver.py 52 10 81% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/pysyncobj/encryptor.py 17 2 88% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/pysyncobj/fast_queue.py 21 1 95% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/pysyncobj/journal.py 193 37 81% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/pysyncobj/monotonic.py 76 70 8% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/pysyncobj/node.py 49 10 80% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/pysyncobj/pickle.py 52 32 38% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/pysyncobj/pipe_notifier.py 24 2 92% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/pysyncobj/poller.py 87 41 53% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/pysyncobj/serializer.py 167 133 20% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/pysyncobj/syncobj.py 1057 402 62% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/pysyncobj/tcp_connection.py 250 35 86% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/pysyncobj/tcp_server.py 56 12 79% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/pysyncobj/transport.py 266 57 79% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/pysyncobj/utility.py 59 7 88% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/pysyncobj/version.py 1 0 100% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/pysyncobj/win_inet_pton.py 44 31 30% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/urllib3/__init__.py 49 15 69% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/urllib3/_base_connection.py 63 45 29% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/urllib3/_collections.py 231 104 55% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/urllib3/_request_methods.py 54 16 70% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/urllib3/_version.py 13 3 77% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/urllib3/connection.py 389 143 63% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/urllib3/connectionpool.py 344 130 62% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/urllib3/exceptions.py 121 39 68% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/urllib3/fields.py 92 73 21% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/urllib3/filepost.py 37 24 35% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/urllib3/http2/__init__.py 28 21 25% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/urllib3/http2/probe.py 49 31 37% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/urllib3/poolmanager.py 233 88 62% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/urllib3/response.py 634 395 38% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/urllib3/util/__init__.py 10 0 100% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/urllib3/util/connection.py 66 9 86% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/urllib3/util/proxy.py 13 6 54% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/urllib3/util/request.py 104 49 53% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/urllib3/util/response.py 32 17 47% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/urllib3/util/retry.py 174 50 71% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/urllib3/util/ssl_.py 172 73 58% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/urllib3/util/ssl_match_hostname.py 66 54 18% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/urllib3/util/ssltransport.py 152 106 30% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/urllib3/util/timeout.py 71 19 73% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/urllib3/util/url.py 203 76 63% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/urllib3/util/util.py 26 9 65% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/urllib3/util/wait.py 49 38 22% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/yaml/__init__.py 165 109 34% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/yaml/composer.py 92 17 82% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/yaml/constructor.py 479 276 42% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/yaml/cyaml.py 46 24 48% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/yaml/dumper.py 23 12 48% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/yaml/emitter.py 838 769 8% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/yaml/error.py 58 42 28% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/yaml/events.py 61 6 90% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/yaml/loader.py 47 24 49% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/yaml/nodes.py 29 7 76% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/yaml/parser.py 352 180 49% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/yaml/reader.py 122 30 75% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/yaml/representer.py 248 176 29% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/yaml/resolver.py 135 76 44% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/yaml/scanner.py 758 415 45% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/yaml/serializer.py 85 70 18% 3196s May 03 01:19:14 /usr/lib/python3/dist-packages/yaml/tokens.py 76 17 78% 3196s May 03 01:19:14 patroni/__init__.py 13 2 85% 3196s May 03 01:19:14 patroni/__main__.py 201 201 0% 3196s May 03 01:19:14 patroni/api.py 788 788 0% 3196s May 03 01:19:14 patroni/async_executor.py 96 69 28% 3196s May 03 01:19:14 patroni/collections.py 56 15 73% 3196s May 03 01:19:14 patroni/config.py 357 179 50% 3196s May 03 01:19:14 patroni/config_generator.py 212 212 0% 3196s May 03 01:19:14 patroni/ctl.py 936 395 58% 3196s May 03 01:19:14 patroni/daemon.py 76 6 92% 3196s May 03 01:19:14 patroni/dcs/__init__.py 710 316 55% 3196s May 03 01:19:14 patroni/dcs/consul.py 482 482 0% 3196s May 03 01:19:14 patroni/dcs/etcd3.py 679 679 0% 3196s May 03 01:19:14 patroni/dcs/etcd.py 603 603 0% 3196s May 03 01:19:14 patroni/dcs/exhibitor.py 62 62 0% 3196s May 03 01:19:14 patroni/dcs/kubernetes.py 943 943 0% 3196s May 03 01:19:14 patroni/dcs/raft.py 319 74 77% 3196s May 03 01:19:14 patroni/dcs/zookeeper.py 289 289 0% 3196s May 03 01:19:14 patroni/dynamic_loader.py 35 7 80% 3196s May 03 01:19:14 patroni/exceptions.py 16 1 94% 3196s May 03 01:19:14 patroni/file_perm.py 47 17 64% 3196s May 03 01:19:14 patroni/global_config.py 87 19 78% 3196s May 03 01:19:14 patroni/ha.py 1359 1359 0% 3196s May 03 01:19:14 patroni/log.py 235 103 56% 3196s May 03 01:19:14 patroni/postgresql/__init__.py 825 653 21% 3196s May 03 01:19:14 patroni/postgresql/available_parameters/__init__.py 24 3 88% 3196s May 03 01:19:14 patroni/postgresql/bootstrap.py 254 224 12% 3196s May 03 01:19:14 patroni/postgresql/callback_executor.py 55 34 38% 3196s May 03 01:19:14 patroni/postgresql/cancellable.py 104 84 19% 3196s May 03 01:19:14 patroni/postgresql/config.py 839 719 14% 3196s May 03 01:19:14 patroni/postgresql/connection.py 75 50 33% 3196s May 03 01:19:14 patroni/postgresql/misc.py 43 30 30% 3196s May 03 01:19:14 patroni/postgresql/mpp/__init__.py 89 21 76% 3196s May 03 01:19:14 patroni/postgresql/mpp/citus.py 366 366 0% 3196s May 03 01:19:14 patroni/postgresql/postmaster.py 170 139 18% 3196s May 03 01:19:14 patroni/postgresql/rewind.py 416 416 0% 3196s May 03 01:19:14 patroni/postgresql/slots.py 349 300 14% 3196s May 03 01:19:14 patroni/postgresql/sync.py 154 114 26% 3196s May 03 01:19:14 patroni/postgresql/validator.py 157 52 67% 3196s May 03 01:19:14 patroni/psycopg.py 46 32 30% 3196s May 03 01:19:14 patroni/quorum.py 182 182 0% 3196s May 03 01:19:14 patroni/raft_controller.py 22 1 95% 3196s May 03 01:19:14 patroni/request.py 58 6 90% 3196s May 03 01:19:14 patroni/scripts/__init__.py 0 0 100% 3196s May 03 01:19:14 patroni/scripts/aws.py 59 59 0% 3196s May 03 01:19:14 patroni/scripts/barman/__init__.py 0 0 100% 3196s May 03 01:19:14 patroni/scripts/barman/cli.py 50 50 0% 3196s May 03 01:19:14 patroni/scripts/barman/config_switch.py 50 50 0% 3196s May 03 01:19:14 patroni/scripts/barman/recover.py 36 36 0% 3196s May 03 01:19:14 patroni/scripts/barman/utils.py 93 93 0% 3196s May 03 01:19:14 patroni/scripts/wale_restore.py 207 207 0% 3196s May 03 01:19:14 patroni/tags.py 38 11 71% 3196s May 03 01:19:14 patroni/utils.py 371 232 37% 3196s May 03 01:19:14 patroni/validator.py 309 222 28% 3196s May 03 01:19:14 patroni/version.py 1 0 100% 3196s May 03 01:19:14 patroni/watchdog/__init__.py 2 2 0% 3196s May 03 01:19:14 patroni/watchdog/base.py 203 203 0% 3196s May 03 01:19:14 patroni/watchdog/linux.py 135 135 0% 3196s May 03 01:19:14 ---------------------------------------------------------------------------------------------------------- 3196s May 03 01:19:14 TOTAL 40886 23033 44% 3196s May 03 01:19:14 13 features passed, 0 failed, 1 skipped 3196s May 03 01:19:14 63 scenarios passed, 0 failed, 6 skipped 3196s May 03 01:19:14 597 steps passed, 0 failed, 70 skipped, 0 undefined 3196s May 03 01:19:14 Took 10m1.328s 3196s ### End 17 acceptance-raft ### 3196s + echo '### End 17 acceptance-raft ###' 3196s + rm -f '/tmp/pgpass?' 3196s ++ id -u 3196s + '[' 1000 -eq 0 ']' 3197s autopkgtest [01:19:15]: test acceptance-raft: -----------------------] 3197s acceptance-raft PASS 3197s autopkgtest [01:19:15]: test acceptance-raft: - - - - - - - - - - results - - - - - - - - - - 3197s autopkgtest [01:19:15]: @@@@@@@@@@@@@@@@@@@@ summary 3197s test PASS 3197s acceptance-etcd3 PASS 3197s acceptance-etcd-basic PASS 3197s acceptance-etcd PASS 3197s acceptance-zookeeper PASS 3197s acceptance-raft PASS 3215s nova [W] Skipping flock for amd64 3215s Creating nova instance adt-questing-i386-patroni-20250502-234337-juju-7f2275-prod-proposed-migration-environment-23-985920ce-8779-47e4-9f4b-c7b0ede3e2b3 from image adt/ubuntu-questing-amd64-server-20250502.img (UUID 9956ea44-e870-4bd8-8ad1-dc5f8a09f1f9)... 3215s nova [W] Timed out waiting for 776d7cbe-b5cc-47a6-847e-0ad046dc5051 to get deleted. 3215s nova [W] Skipping flock for amd64 3215s Creating nova instance adt-questing-i386-patroni-20250502-234337-juju-7f2275-prod-proposed-migration-environment-23-985920ce-8779-47e4-9f4b-c7b0ede3e2b3 from image adt/ubuntu-questing-amd64-server-20250502.img (UUID 9956ea44-e870-4bd8-8ad1-dc5f8a09f1f9)... 3215s nova [W] Timed out waiting for 3fa32c99-af6b-46b6-b7f2-0a8cd7268a27 to get deleted. 3215s nova [W] Skipping flock for amd64 3215s Creating nova instance adt-questing-i386-patroni-20250502-234337-juju-7f2275-prod-proposed-migration-environment-23-985920ce-8779-47e4-9f4b-c7b0ede3e2b3 from image adt/ubuntu-questing-amd64-server-20250502.img (UUID 9956ea44-e870-4bd8-8ad1-dc5f8a09f1f9)... 3215s nova [W] Timed out waiting for 9857cb78-628c-465a-b7b7-e50625d62a8a to get deleted. 3215s nova [W] Skipping flock for amd64 3215s Creating nova instance adt-questing-i386-patroni-20250502-234337-juju-7f2275-prod-proposed-migration-environment-23-985920ce-8779-47e4-9f4b-c7b0ede3e2b3 from image adt/ubuntu-questing-amd64-server-20250502.img (UUID 9956ea44-e870-4bd8-8ad1-dc5f8a09f1f9)... 3215s nova [W] Timed out waiting for fd8d7997-1b2f-4950-8940-856272b41105 to get deleted. 3215s nova [W] Skipping flock for amd64 3215s Creating nova instance adt-questing-i386-patroni-20250502-234337-juju-7f2275-prod-proposed-migration-environment-23-985920ce-8779-47e4-9f4b-c7b0ede3e2b3 from image adt/ubuntu-questing-amd64-server-20250502.img (UUID 9956ea44-e870-4bd8-8ad1-dc5f8a09f1f9)... 3215s nova [W] Timed out waiting for 2116a6da-3ee3-4e8d-a686-665b3c84e566 to get deleted.