0s autopkgtest [11:12:59]: starting date and time: 2026-01-23 11:12:59+0000 0s autopkgtest [11:12:59]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [11:12:59]: host juju-7f2275-prod-proposed-migration-environment-2; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.eiis36an/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:python3-defaults --apt-upgrade ostree-push --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=python3-defaults/3.14.2-1 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest-cpu2-ram4-disk20-s390x --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-2@sto01-s390x-18.secgroup --name adt-resolute-s390x-ostree-push-20260123-111259-juju-7f2275-prod-proposed-migration-environment-2-b1242e06-0df7-4a9f-9ede-c6ccce631efd --image adt/ubuntu-resolute-s390x-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-2 --net-id=net_prod-autopkgtest-workers-s390x -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 8s Creating nova instance adt-resolute-s390x-ostree-push-20260123-111259-juju-7f2275-prod-proposed-migration-environment-2-b1242e06-0df7-4a9f-9ede-c6ccce631efd from image adt/ubuntu-resolute-s390x-server-20260123.img (UUID 5f2e306c-5dfc-4ef6-8be2-414f657c7562)... 131s autopkgtest [11:15:10]: testbed dpkg architecture: s390x 132s autopkgtest [11:15:11]: testbed apt version: 3.1.13 132s autopkgtest [11:15:11]: @@@@@@@@@@@@@@@@@@@@ test bed setup 133s autopkgtest [11:15:12]: testbed release detected to be: None 134s autopkgtest [11:15:13]: updating testbed package index (apt update) 135s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 135s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 135s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 135s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 136s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [23.6 kB] 136s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [95.6 kB] 136s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [1059 kB] 136s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [2820 B] 136s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x Packages [113 kB] 136s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/universe s390x Packages [862 kB] 136s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse s390x Packages [9152 B] 137s Fetched 2290 kB in 2s (976 kB/s) 143s Reading package lists... 144s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 144s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 144s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 144s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 149s Reading package lists... 150s Reading package lists... 151s Building dependency tree... 151s Reading state information... 152s Calculating upgrade... 153s The following packages were automatically installed and are no longer required: 153s python3.13 python3.13-minimal 153s Use 'sudo apt autoremove' to remove them. 154s The following NEW packages will be installed: 154s libpython3.14-minimal libpython3.14-stdlib python3.14 python3.14-minimal 154s The following packages will be upgraded: 154s libpython3-stdlib python3 python3-gdbm python3-minimal 154s 4 upgraded, 4 newly installed, 0 to remove and 0 not upgraded. 154s Need to get 6689 kB of archives. 154s After this operation, 24.3 MB of additional disk space will be used. 154s Get:1 http://ftpmaster.internal/ubuntu resolute/main s390x libpython3.14-minimal s390x 3.14.2-1 [917 kB] 154s Get:2 http://ftpmaster.internal/ubuntu resolute/main s390x python3.14-minimal s390x 3.14.2-1 [2510 kB] 154s Get:3 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x python3-minimal s390x 3.14.2-1 [28.2 kB] 154s Get:4 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x python3 s390x 3.14.2-1 [22.9 kB] 154s Get:5 http://ftpmaster.internal/ubuntu resolute/main s390x libpython3.14-stdlib s390x 3.14.2-1 [2373 kB] 155s Get:6 http://ftpmaster.internal/ubuntu resolute/main s390x python3.14 s390x 3.14.2-1 [816 kB] 155s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x libpython3-stdlib s390x 3.14.2-1 [10.9 kB] 155s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x python3-gdbm s390x 3.14.2-1 [11.1 kB] 158s dpkg-preconfigure: unable to re-open stdin: No such file or directory 159s Fetched 6689 kB in 1s (7036 kB/s) 159s Selecting previously unselected package libpython3.14-minimal:s390x. 164s (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 ... 87685 files and directories currently installed.) 164s Preparing to unpack .../libpython3.14-minimal_3.14.2-1_s390x.deb ... 165s Unpacking libpython3.14-minimal:s390x (3.14.2-1) ... 168s Selecting previously unselected package python3.14-minimal. 168s Preparing to unpack .../python3.14-minimal_3.14.2-1_s390x.deb ... 168s Unpacking python3.14-minimal (3.14.2-1) ... 170s Setting up libpython3.14-minimal:s390x (3.14.2-1) ... 170s Setting up python3.14-minimal (3.14.2-1) ... 178s (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 ... 88027 files and directories currently installed.) 178s Preparing to unpack .../python3-minimal_3.14.2-1_s390x.deb ... 178s Unpacking python3-minimal (3.14.2-1) over (3.13.9-3) ... 178s Setting up python3-minimal (3.14.2-1) ... 179s (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 ... 88027 files and directories currently installed.) 179s Preparing to unpack .../python3_3.14.2-1_s390x.deb ... 180s running python pre-rtupdate hooks for python3.14... 180s Unpacking python3 (3.14.2-1) over (3.13.9-3) ... 181s Selecting previously unselected package libpython3.14-stdlib:s390x. 181s Preparing to unpack .../libpython3.14-stdlib_3.14.2-1_s390x.deb ... 181s Unpacking libpython3.14-stdlib:s390x (3.14.2-1) ... 183s Selecting previously unselected package python3.14. 183s Preparing to unpack .../python3.14_3.14.2-1_s390x.deb ... 183s Unpacking python3.14 (3.14.2-1) ... 183s Preparing to unpack .../libpython3-stdlib_3.14.2-1_s390x.deb ... 183s Unpacking libpython3-stdlib:s390x (3.14.2-1) over (3.13.9-3) ... 184s Preparing to unpack .../python3-gdbm_3.14.2-1_s390x.deb ... 185s Unpacking python3-gdbm (3.14.2-1) over (3.13.9-3) ... 185s Setting up libpython3.14-stdlib:s390x (3.14.2-1) ... 186s Setting up python3.14 (3.14.2-1) ... 192s Setting up libpython3-stdlib:s390x (3.14.2-1) ... 193s Setting up python3-gdbm (3.14.2-1) ... 194s Setting up python3 (3.14.2-1) ... 195s running python rtupdate hooks for python3.14... 195s running python post-rtupdate hooks for python3.14... 195s Processing triggers for man-db (2.13.1-1) ... 206s Processing triggers for systemd (259-1ubuntu2) ... 208s autopkgtest [11:16:27]: upgrading testbed (apt dist-upgrade and autopurge) 209s Reading package lists... 210s Building dependency tree... 210s Reading state information... 210s Calculating upgrade... 211s The following packages were automatically installed and are no longer required: 211s python3.13 python3.13-minimal 211s Use 'sudo apt autoremove' to remove them. 212s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 212s Reading package lists... 213s Building dependency tree... 213s Reading state information... 213s Solving dependencies... 213s The following packages will be REMOVED: 213s python3.13* python3.13-minimal* 214s 0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded. 214s After this operation, 8012 kB disk space will be freed. 215s (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 ... 88457 files and directories currently installed.) 215s Removing python3.13 (3.13.11-1) ... 216s Removing python3.13-minimal (3.13.11-1) ... 228s Processing triggers for man-db (2.13.1-1) ... 230s Processing triggers for systemd (259-1ubuntu2) ... 230s (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 ... 88430 files and directories currently installed.) 230s Purging configuration files for python3.13-minimal (3.13.11-1) ... 235s autopkgtest [11:16:54]: testbed running kernel: Linux 6.18.0-9-generic #9-Ubuntu SMP Mon Jan 12 15:39:23 UTC 2026 236s autopkgtest [11:16:55]: @@@@@@@@@@@@@@@@@@@@ apt-source ostree-push 239s Get:1 http://ftpmaster.internal/ubuntu resolute/universe ostree-push 1.2.0-1 (dsc) [1743 B] 239s Get:2 http://ftpmaster.internal/ubuntu resolute/universe ostree-push 1.2.0-1 (tar) [61.3 kB] 239s Get:3 http://ftpmaster.internal/ubuntu resolute/universe ostree-push 1.2.0-1 (diff) [7372 B] 240s gpgv: Signature made Sat Mar 29 17:34:18 2025 UTC 240s gpgv: using EDDSA key 83DCD17F44B22CC83656EDA1E8446B4AC8C77261 240s gpgv: Can't check signature: No public key 240s dpkg-source: warning: cannot verify inline signature for ./ostree-push_1.2.0-1.dsc: no acceptable signature found 241s autopkgtest [11:17:00]: testing package ostree-push version 1.2.0-1 241s autopkgtest [11:17:00]: build not needed 241s autopkgtest [11:17:00]: test pybuild-autopkgtest: preparing testbed 242s Reading package lists... 243s Building dependency tree... 243s Reading state information... 243s Solving dependencies... 243s The following NEW packages will be installed: 243s autoconf automake autopoint autotools-dev bubblewrap build-essential cpp 243s cpp-15 cpp-15-s390x-linux-gnu cpp-s390x-linux-gnu debhelper debugedit 243s dh-autoreconf dh-python dh-strip-nondeterminism dwz flatpak g++ g++-15 243s g++-15-s390x-linux-gnu g++-s390x-linux-gnu gcc gcc-15 gcc-15-s390x-linux-gnu 243s gcc-s390x-linux-gnu gettext gir1.2-ostree-1.0 intltool-debian libappstream5 243s libarchive-zip-perl libasan8 libavahi-client3 libavahi-common-data 243s libavahi-common3 libavahi-glib1 libcc1-0 libdconf1 libdebhelper-perl 243s libdeflate0 libfile-stripnondeterminism-perl libgcc-15-dev 243s libgdk-pixbuf-2.0-0 libgdk-pixbuf2.0-common libgomp1 libisl23 libitm1 243s libjbig0 libjpeg-turbo8 libjpeg8 libmalcontent-0-0 libmpc3 libostree-1-1 243s libsharpyuv0 libstdc++-15-dev libstemmer0d libtiff6 libtool libubsan1 243s libwayland-client0 libwebp7 m4 ostree ostree-push po-debconf 243s pybuild-plugin-autopkgtest pybuild-plugin-pyproject python3-all 243s python3-build python3-iniconfig python3-installer python3-pluggy 243s python3-pyproject-hooks python3-pytest python3-wheel python3.13 243s python3.13-minimal xdg-dbus-proxy 244s 0 upgraded, 77 newly installed, 0 to remove and 0 not upgraded. 244s Need to get 63.2 MB of archives. 244s After this operation, 200 MB of additional disk space will be used. 244s Get:1 http://ftpmaster.internal/ubuntu resolute/main s390x python3.13-minimal s390x 3.13.11-1 [2405 kB] 245s Get:2 http://ftpmaster.internal/ubuntu resolute/main s390x python3.13 s390x 3.13.11-1 [758 kB] 245s Get:3 http://ftpmaster.internal/ubuntu resolute/main s390x m4 s390x 1.4.20-2 [223 kB] 245s Get:4 http://ftpmaster.internal/ubuntu resolute/main s390x autoconf all 2.72-3.1ubuntu1 [384 kB] 245s Get:5 http://ftpmaster.internal/ubuntu resolute/main s390x autotools-dev all 20240727.1 [43.4 kB] 245s Get:6 http://ftpmaster.internal/ubuntu resolute/main s390x automake all 1:1.18.1-3build1 [582 kB] 245s Get:7 http://ftpmaster.internal/ubuntu resolute/main s390x autopoint all 0.23.2-1 [620 kB] 245s Get:8 http://ftpmaster.internal/ubuntu resolute/main s390x bubblewrap s390x 0.11.0-2build1 [53.9 kB] 245s Get:9 http://ftpmaster.internal/ubuntu resolute/main s390x libisl23 s390x 0.27-1build1 [702 kB] 245s Get:10 http://ftpmaster.internal/ubuntu resolute/main s390x libmpc3 s390x 1.3.1-2 [57.4 kB] 245s Get:11 http://ftpmaster.internal/ubuntu resolute/main s390x cpp-15-s390x-linux-gnu s390x 15.2.0-11ubuntu1 [10.2 MB] 246s Get:12 http://ftpmaster.internal/ubuntu resolute/main s390x cpp-15 s390x 15.2.0-11ubuntu1 [1028 B] 246s Get:13 http://ftpmaster.internal/ubuntu resolute/main s390x cpp-s390x-linux-gnu s390x 4:15.2.0-4ubuntu1 [5746 B] 246s Get:14 http://ftpmaster.internal/ubuntu resolute/main s390x cpp s390x 4:15.2.0-4ubuntu1 [22.4 kB] 246s Get:15 http://ftpmaster.internal/ubuntu resolute/main s390x libcc1-0 s390x 15.2.0-11ubuntu1 [50.0 kB] 246s Get:16 http://ftpmaster.internal/ubuntu resolute/main s390x libgomp1 s390x 15.2.0-11ubuntu1 [154 kB] 246s Get:17 http://ftpmaster.internal/ubuntu resolute/main s390x libitm1 s390x 15.2.0-11ubuntu1 [30.9 kB] 246s Get:18 http://ftpmaster.internal/ubuntu resolute/main s390x libasan8 s390x 15.2.0-11ubuntu1 [2968 kB] 246s Get:19 http://ftpmaster.internal/ubuntu resolute/main s390x libubsan1 s390x 15.2.0-11ubuntu1 [1211 kB] 247s Get:20 http://ftpmaster.internal/ubuntu resolute/main s390x libgcc-15-dev s390x 15.2.0-11ubuntu1 [1045 kB] 247s Get:21 http://ftpmaster.internal/ubuntu resolute/main s390x gcc-15-s390x-linux-gnu s390x 15.2.0-11ubuntu1 [19.9 MB] 249s Get:22 http://ftpmaster.internal/ubuntu resolute/main s390x gcc-15 s390x 15.2.0-11ubuntu1 [517 kB] 249s Get:23 http://ftpmaster.internal/ubuntu resolute/main s390x gcc-s390x-linux-gnu s390x 4:15.2.0-4ubuntu1 [1208 B] 249s Get:24 http://ftpmaster.internal/ubuntu resolute/main s390x gcc s390x 4:15.2.0-4ubuntu1 [5018 B] 249s Get:25 http://ftpmaster.internal/ubuntu resolute/main s390x libstdc++-15-dev s390x 15.2.0-11ubuntu1 [2660 kB] 249s Get:26 http://ftpmaster.internal/ubuntu resolute/main s390x g++-15-s390x-linux-gnu s390x 15.2.0-11ubuntu1 [11.7 MB] 250s Get:27 http://ftpmaster.internal/ubuntu resolute/main s390x g++-15 s390x 15.2.0-11ubuntu1 [24.6 kB] 250s Get:28 http://ftpmaster.internal/ubuntu resolute/main s390x g++-s390x-linux-gnu s390x 4:15.2.0-4ubuntu1 [956 B] 250s Get:29 http://ftpmaster.internal/ubuntu resolute/main s390x g++ s390x 4:15.2.0-4ubuntu1 [1078 B] 250s Get:30 http://ftpmaster.internal/ubuntu resolute/main s390x build-essential s390x 12.12ubuntu2 [5258 B] 250s Get:31 http://ftpmaster.internal/ubuntu resolute/main s390x libdebhelper-perl all 13.28ubuntu1 [97.4 kB] 250s Get:32 http://ftpmaster.internal/ubuntu resolute/main s390x libtool all 2.5.4-9 [169 kB] 250s Get:33 http://ftpmaster.internal/ubuntu resolute/main s390x dh-autoreconf all 21 [12.5 kB] 250s Get:34 http://ftpmaster.internal/ubuntu resolute/main s390x libarchive-zip-perl all 1.68-1 [90.2 kB] 250s Get:35 http://ftpmaster.internal/ubuntu resolute/main s390x libfile-stripnondeterminism-perl all 1.15.0-1build1 [20.6 kB] 250s Get:36 http://ftpmaster.internal/ubuntu resolute/main s390x dh-strip-nondeterminism all 1.15.0-1build1 [5110 B] 250s Get:37 http://ftpmaster.internal/ubuntu resolute/main s390x debugedit s390x 1:5.2-3 [52.8 kB] 250s Get:38 http://ftpmaster.internal/ubuntu resolute/main s390x dwz s390x 0.16-2 [121 kB] 250s Get:39 http://ftpmaster.internal/ubuntu resolute/main s390x gettext s390x 0.23.2-1 [1062 kB] 250s Get:40 http://ftpmaster.internal/ubuntu resolute/main s390x intltool-debian all 0.35.0+20060710.6build1 [24.1 kB] 250s Get:41 http://ftpmaster.internal/ubuntu resolute/main s390x po-debconf all 1.0.22 [215 kB] 250s Get:42 http://ftpmaster.internal/ubuntu resolute/main s390x debhelper all 13.28ubuntu1 [916 kB] 250s Get:43 http://ftpmaster.internal/ubuntu resolute/universe s390x dh-python all 7.20251231 [122 kB] 250s Get:44 http://ftpmaster.internal/ubuntu resolute/main s390x xdg-dbus-proxy s390x 0.1.6-2 [26.3 kB] 250s Get:45 http://ftpmaster.internal/ubuntu resolute/main s390x libstemmer0d s390x 3.0.1-1 [183 kB] 250s Get:46 http://ftpmaster.internal/ubuntu resolute/main s390x libappstream5 s390x 1.0.6-2 [237 kB] 250s Get:47 http://ftpmaster.internal/ubuntu resolute/main s390x libdconf1 s390x 0.49.0-4 [40.7 kB] 250s Get:48 http://ftpmaster.internal/ubuntu resolute/main s390x libgdk-pixbuf2.0-common all 2.44.4+dfsg-1 [8584 B] 250s Get:49 http://ftpmaster.internal/ubuntu resolute/main s390x libjpeg-turbo8 s390x 2.1.5-4ubuntu2 [147 kB] 250s Get:50 http://ftpmaster.internal/ubuntu resolute/main s390x libjpeg8 s390x 8c-2ubuntu11 [2146 B] 250s Get:51 http://ftpmaster.internal/ubuntu resolute/main s390x libdeflate0 s390x 1.23-2 [46.0 kB] 250s Get:52 http://ftpmaster.internal/ubuntu resolute/main s390x libjbig0 s390x 2.1-6.1ubuntu3 [32.8 kB] 250s Get:53 http://ftpmaster.internal/ubuntu resolute/main s390x libsharpyuv0 s390x 1.5.0-0.1build1 [16.6 kB] 250s Get:54 http://ftpmaster.internal/ubuntu resolute/main s390x libwebp7 s390x 1.5.0-0.1build1 [227 kB] 250s Get:55 http://ftpmaster.internal/ubuntu resolute/main s390x libtiff6 s390x 4.7.0-3ubuntu3 [222 kB] 250s Get:56 http://ftpmaster.internal/ubuntu resolute/main s390x libgdk-pixbuf-2.0-0 s390x 2.44.4+dfsg-1 [156 kB] 250s Get:57 http://ftpmaster.internal/ubuntu resolute/main s390x libmalcontent-0-0 s390x 0.13.1-2ubuntu2 [22.4 kB] 250s Get:58 http://ftpmaster.internal/ubuntu resolute/main s390x libavahi-common-data s390x 0.8-17ubuntu1 [31.3 kB] 250s Get:59 http://ftpmaster.internal/ubuntu resolute/main s390x libavahi-common3 s390x 0.8-17ubuntu1 [23.3 kB] 250s Get:60 http://ftpmaster.internal/ubuntu resolute/main s390x libavahi-client3 s390x 0.8-17ubuntu1 [26.2 kB] 250s Get:61 http://ftpmaster.internal/ubuntu resolute/main s390x libavahi-glib1 s390x 0.8-17ubuntu1 [7972 B] 250s Get:62 http://ftpmaster.internal/ubuntu resolute/universe s390x libostree-1-1 s390x 2025.7-1 [357 kB] 250s Get:63 http://ftpmaster.internal/ubuntu resolute/main s390x libwayland-client0 s390x 1.24.0-2 [29.0 kB] 251s Get:64 http://ftpmaster.internal/ubuntu resolute/universe s390x flatpak s390x 1.16.2-1 [1480 kB] 251s Get:65 http://ftpmaster.internal/ubuntu resolute/universe s390x gir1.2-ostree-1.0 s390x 2025.7-1 [24.7 kB] 251s Get:66 http://ftpmaster.internal/ubuntu resolute/universe s390x ostree s390x 2025.7-1 [187 kB] 251s Get:67 http://ftpmaster.internal/ubuntu resolute/universe s390x ostree-push all 1.2.0-1 [26.7 kB] 251s Get:68 http://ftpmaster.internal/ubuntu resolute/universe s390x pybuild-plugin-autopkgtest all 7.20251231 [1748 B] 251s Get:69 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-pyproject-hooks all 1.2.0-1 [10.2 kB] 251s Get:70 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-wheel all 0.46.1-2 [22.1 kB] 251s Get:71 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-build all 1.2.2-5 [30.9 kB] 251s Get:72 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-installer all 0.7.0+dfsg1-3 [17.4 kB] 251s Get:73 http://ftpmaster.internal/ubuntu resolute/universe s390x pybuild-plugin-pyproject all 7.20251231 [1714 B] 251s Get:74 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x python3-all s390x 3.14.2-1 [890 B] 251s Get:75 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-iniconfig all 2.1.0-2 [6962 B] 251s Get:76 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-pluggy all 1.6.0-2 [21.1 kB] 251s Get:77 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-pytest all 9.0.2-2 [277 kB] 253s Fetched 63.2 MB in 8s (8018 kB/s) 253s Selecting previously unselected package python3.13-minimal. 253s (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 ... 88432 files and directories currently installed.) 253s Preparing to unpack .../00-python3.13-minimal_3.13.11-1_s390x.deb ... 253s Unpacking python3.13-minimal (3.13.11-1) ... 253s Selecting previously unselected package python3.13. 253s Preparing to unpack .../01-python3.13_3.13.11-1_s390x.deb ... 253s Unpacking python3.13 (3.13.11-1) ... 253s Selecting previously unselected package m4. 253s Preparing to unpack .../02-m4_1.4.20-2_s390x.deb ... 253s Unpacking m4 (1.4.20-2) ... 253s Selecting previously unselected package autoconf. 253s Preparing to unpack .../03-autoconf_2.72-3.1ubuntu1_all.deb ... 253s Unpacking autoconf (2.72-3.1ubuntu1) ... 253s Selecting previously unselected package autotools-dev. 253s Preparing to unpack .../04-autotools-dev_20240727.1_all.deb ... 253s Unpacking autotools-dev (20240727.1) ... 254s Selecting previously unselected package automake. 254s Preparing to unpack .../05-automake_1%3a1.18.1-3build1_all.deb ... 254s Unpacking automake (1:1.18.1-3build1) ... 254s Selecting previously unselected package autopoint. 254s Preparing to unpack .../06-autopoint_0.23.2-1_all.deb ... 254s Unpacking autopoint (0.23.2-1) ... 254s Selecting previously unselected package bubblewrap. 254s Preparing to unpack .../07-bubblewrap_0.11.0-2build1_s390x.deb ... 254s Unpacking bubblewrap (0.11.0-2build1) ... 254s Selecting previously unselected package libisl23:s390x. 254s Preparing to unpack .../08-libisl23_0.27-1build1_s390x.deb ... 254s Unpacking libisl23:s390x (0.27-1build1) ... 254s Selecting previously unselected package libmpc3:s390x. 254s Preparing to unpack .../09-libmpc3_1.3.1-2_s390x.deb ... 254s Unpacking libmpc3:s390x (1.3.1-2) ... 254s Selecting previously unselected package cpp-15-s390x-linux-gnu. 254s Preparing to unpack .../10-cpp-15-s390x-linux-gnu_15.2.0-11ubuntu1_s390x.deb ... 254s Unpacking cpp-15-s390x-linux-gnu (15.2.0-11ubuntu1) ... 257s Selecting previously unselected package cpp-15. 257s Preparing to unpack .../11-cpp-15_15.2.0-11ubuntu1_s390x.deb ... 257s Unpacking cpp-15 (15.2.0-11ubuntu1) ... 257s Selecting previously unselected package cpp-s390x-linux-gnu. 257s Preparing to unpack .../12-cpp-s390x-linux-gnu_4%3a15.2.0-4ubuntu1_s390x.deb ... 257s Unpacking cpp-s390x-linux-gnu (4:15.2.0-4ubuntu1) ... 257s Selecting previously unselected package cpp. 257s Preparing to unpack .../13-cpp_4%3a15.2.0-4ubuntu1_s390x.deb ... 257s Unpacking cpp (4:15.2.0-4ubuntu1) ... 257s Selecting previously unselected package libcc1-0:s390x. 257s Preparing to unpack .../14-libcc1-0_15.2.0-11ubuntu1_s390x.deb ... 257s Unpacking libcc1-0:s390x (15.2.0-11ubuntu1) ... 257s Selecting previously unselected package libgomp1:s390x. 257s Preparing to unpack .../15-libgomp1_15.2.0-11ubuntu1_s390x.deb ... 257s Unpacking libgomp1:s390x (15.2.0-11ubuntu1) ... 257s Selecting previously unselected package libitm1:s390x. 257s Preparing to unpack .../16-libitm1_15.2.0-11ubuntu1_s390x.deb ... 257s Unpacking libitm1:s390x (15.2.0-11ubuntu1) ... 257s Selecting previously unselected package libasan8:s390x. 257s Preparing to unpack .../17-libasan8_15.2.0-11ubuntu1_s390x.deb ... 257s Unpacking libasan8:s390x (15.2.0-11ubuntu1) ... 258s Selecting previously unselected package libubsan1:s390x. 258s Preparing to unpack .../18-libubsan1_15.2.0-11ubuntu1_s390x.deb ... 258s Unpacking libubsan1:s390x (15.2.0-11ubuntu1) ... 258s Selecting previously unselected package libgcc-15-dev:s390x. 258s Preparing to unpack .../19-libgcc-15-dev_15.2.0-11ubuntu1_s390x.deb ... 258s Unpacking libgcc-15-dev:s390x (15.2.0-11ubuntu1) ... 258s Selecting previously unselected package gcc-15-s390x-linux-gnu. 258s Preparing to unpack .../20-gcc-15-s390x-linux-gnu_15.2.0-11ubuntu1_s390x.deb ... 258s Unpacking gcc-15-s390x-linux-gnu (15.2.0-11ubuntu1) ... 260s Selecting previously unselected package gcc-15. 260s Preparing to unpack .../21-gcc-15_15.2.0-11ubuntu1_s390x.deb ... 260s Unpacking gcc-15 (15.2.0-11ubuntu1) ... 260s Selecting previously unselected package gcc-s390x-linux-gnu. 260s Preparing to unpack .../22-gcc-s390x-linux-gnu_4%3a15.2.0-4ubuntu1_s390x.deb ... 260s Unpacking gcc-s390x-linux-gnu (4:15.2.0-4ubuntu1) ... 260s Selecting previously unselected package gcc. 260s Preparing to unpack .../23-gcc_4%3a15.2.0-4ubuntu1_s390x.deb ... 260s Unpacking gcc (4:15.2.0-4ubuntu1) ... 260s Selecting previously unselected package libstdc++-15-dev:s390x. 260s Preparing to unpack .../24-libstdc++-15-dev_15.2.0-11ubuntu1_s390x.deb ... 260s Unpacking libstdc++-15-dev:s390x (15.2.0-11ubuntu1) ... 261s Selecting previously unselected package g++-15-s390x-linux-gnu. 261s Preparing to unpack .../25-g++-15-s390x-linux-gnu_15.2.0-11ubuntu1_s390x.deb ... 261s Unpacking g++-15-s390x-linux-gnu (15.2.0-11ubuntu1) ... 262s Selecting previously unselected package g++-15. 262s Preparing to unpack .../26-g++-15_15.2.0-11ubuntu1_s390x.deb ... 262s Unpacking g++-15 (15.2.0-11ubuntu1) ... 262s Selecting previously unselected package g++-s390x-linux-gnu. 262s Preparing to unpack .../27-g++-s390x-linux-gnu_4%3a15.2.0-4ubuntu1_s390x.deb ... 262s Unpacking g++-s390x-linux-gnu (4:15.2.0-4ubuntu1) ... 262s Selecting previously unselected package g++. 262s Preparing to unpack .../28-g++_4%3a15.2.0-4ubuntu1_s390x.deb ... 262s Unpacking g++ (4:15.2.0-4ubuntu1) ... 262s Selecting previously unselected package build-essential. 262s Preparing to unpack .../29-build-essential_12.12ubuntu2_s390x.deb ... 262s Unpacking build-essential (12.12ubuntu2) ... 262s Selecting previously unselected package libdebhelper-perl. 262s Preparing to unpack .../30-libdebhelper-perl_13.28ubuntu1_all.deb ... 262s Unpacking libdebhelper-perl (13.28ubuntu1) ... 262s Selecting previously unselected package libtool. 262s Preparing to unpack .../31-libtool_2.5.4-9_all.deb ... 262s Unpacking libtool (2.5.4-9) ... 262s Selecting previously unselected package dh-autoreconf. 262s Preparing to unpack .../32-dh-autoreconf_21_all.deb ... 262s Unpacking dh-autoreconf (21) ... 262s Selecting previously unselected package libarchive-zip-perl. 262s Preparing to unpack .../33-libarchive-zip-perl_1.68-1_all.deb ... 262s Unpacking libarchive-zip-perl (1.68-1) ... 262s Selecting previously unselected package libfile-stripnondeterminism-perl. 262s Preparing to unpack .../34-libfile-stripnondeterminism-perl_1.15.0-1build1_all.deb ... 262s Unpacking libfile-stripnondeterminism-perl (1.15.0-1build1) ... 262s Selecting previously unselected package dh-strip-nondeterminism. 262s Preparing to unpack .../35-dh-strip-nondeterminism_1.15.0-1build1_all.deb ... 262s Unpacking dh-strip-nondeterminism (1.15.0-1build1) ... 262s Selecting previously unselected package debugedit. 262s Preparing to unpack .../36-debugedit_1%3a5.2-3_s390x.deb ... 262s Unpacking debugedit (1:5.2-3) ... 263s Selecting previously unselected package dwz. 263s Preparing to unpack .../37-dwz_0.16-2_s390x.deb ... 263s Unpacking dwz (0.16-2) ... 263s Selecting previously unselected package gettext. 263s Preparing to unpack .../38-gettext_0.23.2-1_s390x.deb ... 263s Unpacking gettext (0.23.2-1) ... 263s Selecting previously unselected package intltool-debian. 263s Preparing to unpack .../39-intltool-debian_0.35.0+20060710.6build1_all.deb ... 263s Unpacking intltool-debian (0.35.0+20060710.6build1) ... 263s Selecting previously unselected package po-debconf. 263s Preparing to unpack .../40-po-debconf_1.0.22_all.deb ... 263s Unpacking po-debconf (1.0.22) ... 264s Selecting previously unselected package debhelper. 264s Preparing to unpack .../41-debhelper_13.28ubuntu1_all.deb ... 264s Unpacking debhelper (13.28ubuntu1) ... 264s Selecting previously unselected package dh-python. 264s Preparing to unpack .../42-dh-python_7.20251231_all.deb ... 264s Unpacking dh-python (7.20251231) ... 264s Selecting previously unselected package xdg-dbus-proxy. 264s Preparing to unpack .../43-xdg-dbus-proxy_0.1.6-2_s390x.deb ... 264s Unpacking xdg-dbus-proxy (0.1.6-2) ... 264s Selecting previously unselected package libstemmer0d:s390x. 264s Preparing to unpack .../44-libstemmer0d_3.0.1-1_s390x.deb ... 264s Unpacking libstemmer0d:s390x (3.0.1-1) ... 264s Selecting previously unselected package libappstream5:s390x. 264s Preparing to unpack .../45-libappstream5_1.0.6-2_s390x.deb ... 264s Unpacking libappstream5:s390x (1.0.6-2) ... 264s Selecting previously unselected package libdconf1:s390x. 264s Preparing to unpack .../46-libdconf1_0.49.0-4_s390x.deb ... 264s Unpacking libdconf1:s390x (0.49.0-4) ... 264s Selecting previously unselected package libgdk-pixbuf2.0-common. 264s Preparing to unpack .../47-libgdk-pixbuf2.0-common_2.44.4+dfsg-1_all.deb ... 264s Unpacking libgdk-pixbuf2.0-common (2.44.4+dfsg-1) ... 264s Selecting previously unselected package libjpeg-turbo8:s390x. 264s Preparing to unpack .../48-libjpeg-turbo8_2.1.5-4ubuntu2_s390x.deb ... 264s Unpacking libjpeg-turbo8:s390x (2.1.5-4ubuntu2) ... 265s Selecting previously unselected package libjpeg8:s390x. 265s Preparing to unpack .../49-libjpeg8_8c-2ubuntu11_s390x.deb ... 265s Unpacking libjpeg8:s390x (8c-2ubuntu11) ... 265s Selecting previously unselected package libdeflate0:s390x. 265s Preparing to unpack .../50-libdeflate0_1.23-2_s390x.deb ... 265s Unpacking libdeflate0:s390x (1.23-2) ... 265s Selecting previously unselected package libjbig0:s390x. 265s Preparing to unpack .../51-libjbig0_2.1-6.1ubuntu3_s390x.deb ... 265s Unpacking libjbig0:s390x (2.1-6.1ubuntu3) ... 265s Selecting previously unselected package libsharpyuv0:s390x. 265s Preparing to unpack .../52-libsharpyuv0_1.5.0-0.1build1_s390x.deb ... 265s Unpacking libsharpyuv0:s390x (1.5.0-0.1build1) ... 265s Selecting previously unselected package libwebp7:s390x. 265s Preparing to unpack .../53-libwebp7_1.5.0-0.1build1_s390x.deb ... 265s Unpacking libwebp7:s390x (1.5.0-0.1build1) ... 265s Selecting previously unselected package libtiff6:s390x. 265s Preparing to unpack .../54-libtiff6_4.7.0-3ubuntu3_s390x.deb ... 265s Unpacking libtiff6:s390x (4.7.0-3ubuntu3) ... 266s Selecting previously unselected package libgdk-pixbuf-2.0-0:s390x. 266s Preparing to unpack .../55-libgdk-pixbuf-2.0-0_2.44.4+dfsg-1_s390x.deb ... 266s Unpacking libgdk-pixbuf-2.0-0:s390x (2.44.4+dfsg-1) ... 266s Selecting previously unselected package libmalcontent-0-0:s390x. 266s Preparing to unpack .../56-libmalcontent-0-0_0.13.1-2ubuntu2_s390x.deb ... 266s Unpacking libmalcontent-0-0:s390x (0.13.1-2ubuntu2) ... 266s Selecting previously unselected package libavahi-common-data:s390x. 266s Preparing to unpack .../57-libavahi-common-data_0.8-17ubuntu1_s390x.deb ... 266s Unpacking libavahi-common-data:s390x (0.8-17ubuntu1) ... 266s Selecting previously unselected package libavahi-common3:s390x. 266s Preparing to unpack .../58-libavahi-common3_0.8-17ubuntu1_s390x.deb ... 266s Unpacking libavahi-common3:s390x (0.8-17ubuntu1) ... 266s Selecting previously unselected package libavahi-client3:s390x. 266s Preparing to unpack .../59-libavahi-client3_0.8-17ubuntu1_s390x.deb ... 266s Unpacking libavahi-client3:s390x (0.8-17ubuntu1) ... 266s Selecting previously unselected package libavahi-glib1:s390x. 266s Preparing to unpack .../60-libavahi-glib1_0.8-17ubuntu1_s390x.deb ... 266s Unpacking libavahi-glib1:s390x (0.8-17ubuntu1) ... 266s Selecting previously unselected package libostree-1-1:s390x. 266s Preparing to unpack .../61-libostree-1-1_2025.7-1_s390x.deb ... 266s Unpacking libostree-1-1:s390x (2025.7-1) ... 266s Selecting previously unselected package libwayland-client0:s390x. 266s Preparing to unpack .../62-libwayland-client0_1.24.0-2_s390x.deb ... 266s Unpacking libwayland-client0:s390x (1.24.0-2) ... 266s Selecting previously unselected package flatpak. 266s Preparing to unpack .../63-flatpak_1.16.2-1_s390x.deb ... 266s Unpacking flatpak (1.16.2-1) ... 267s Selecting previously unselected package gir1.2-ostree-1.0:s390x. 267s Preparing to unpack .../64-gir1.2-ostree-1.0_2025.7-1_s390x.deb ... 267s Unpacking gir1.2-ostree-1.0:s390x (2025.7-1) ... 268s Selecting previously unselected package ostree. 268s Preparing to unpack .../65-ostree_2025.7-1_s390x.deb ... 268s Unpacking ostree (2025.7-1) ... 268s Selecting previously unselected package ostree-push. 268s Preparing to unpack .../66-ostree-push_1.2.0-1_all.deb ... 268s Unpacking ostree-push (1.2.0-1) ... 268s Selecting previously unselected package pybuild-plugin-autopkgtest. 268s Preparing to unpack .../67-pybuild-plugin-autopkgtest_7.20251231_all.deb ... 268s Unpacking pybuild-plugin-autopkgtest (7.20251231) ... 268s Selecting previously unselected package python3-pyproject-hooks. 268s Preparing to unpack .../68-python3-pyproject-hooks_1.2.0-1_all.deb ... 268s Unpacking python3-pyproject-hooks (1.2.0-1) ... 268s Selecting previously unselected package python3-wheel. 268s Preparing to unpack .../69-python3-wheel_0.46.1-2_all.deb ... 268s Unpacking python3-wheel (0.46.1-2) ... 268s Selecting previously unselected package python3-build. 268s Preparing to unpack .../70-python3-build_1.2.2-5_all.deb ... 268s Unpacking python3-build (1.2.2-5) ... 268s Selecting previously unselected package python3-installer. 268s Preparing to unpack .../71-python3-installer_0.7.0+dfsg1-3_all.deb ... 268s Unpacking python3-installer (0.7.0+dfsg1-3) ... 268s Selecting previously unselected package pybuild-plugin-pyproject. 268s Preparing to unpack .../72-pybuild-plugin-pyproject_7.20251231_all.deb ... 268s Unpacking pybuild-plugin-pyproject (7.20251231) ... 268s Selecting previously unselected package python3-all. 268s Preparing to unpack .../73-python3-all_3.14.2-1_s390x.deb ... 268s Unpacking python3-all (3.14.2-1) ... 268s Selecting previously unselected package python3-iniconfig. 269s Preparing to unpack .../74-python3-iniconfig_2.1.0-2_all.deb ... 269s Unpacking python3-iniconfig (2.1.0-2) ... 269s Selecting previously unselected package python3-pluggy. 269s Preparing to unpack .../75-python3-pluggy_1.6.0-2_all.deb ... 269s Unpacking python3-pluggy (1.6.0-2) ... 269s Selecting previously unselected package python3-pytest. 269s Preparing to unpack .../76-python3-pytest_9.0.2-2_all.deb ... 269s Unpacking python3-pytest (9.0.2-2) ... 269s Setting up dh-python (7.20251231) ... 269s Setting up bubblewrap (0.11.0-2build1) ... 269s Setting up python3-iniconfig (2.1.0-2) ... 270s Setting up libsharpyuv0:s390x (1.5.0-0.1build1) ... 270s Setting up libarchive-zip-perl (1.68-1) ... 270s Setting up libdebhelper-perl (13.28ubuntu1) ... 270s Setting up libgdk-pixbuf2.0-common (2.44.4+dfsg-1) ... 270s Setting up libdeflate0:s390x (1.23-2) ... 270s Setting up m4 (1.4.20-2) ... 270s Setting up libgomp1:s390x (15.2.0-11ubuntu1) ... 270s Setting up python3-wheel (0.46.1-2) ... 271s Setting up libjbig0:s390x (2.1-6.1ubuntu3) ... 271s Setting up libdconf1:s390x (0.49.0-4) ... 271s Setting up autotools-dev (20240727.1) ... 271s Setting up python3-pyproject-hooks (1.2.0-1) ... 272s Setting up libavahi-common-data:s390x (0.8-17ubuntu1) ... 272s Setting up libmpc3:s390x (1.3.1-2) ... 272s Setting up autopoint (0.23.2-1) ... 272s Setting up libjpeg-turbo8:s390x (2.1.5-4ubuntu2) ... 272s Setting up python3-installer (0.7.0+dfsg1-3) ... 273s Setting up autoconf (2.72-3.1ubuntu1) ... 273s Setting up python3-pluggy (1.6.0-2) ... 273s Setting up libwebp7:s390x (1.5.0-0.1build1) ... 273s Setting up libubsan1:s390x (15.2.0-11ubuntu1) ... 273s Setting up xdg-dbus-proxy (0.1.6-2) ... 273s Setting up dwz (0.16-2) ... 273s Setting up libasan8:s390x (15.2.0-11ubuntu1) ... 273s Setting up debugedit (1:5.2-3) ... 273s Setting up python3.13-minimal (3.13.11-1) ... 279s Setting up libstemmer0d:s390x (3.0.1-1) ... 279s Setting up libisl23:s390x (0.27-1build1) ... 279s Setting up python3-build (1.2.2-5) ... 280s Setting up libcc1-0:s390x (15.2.0-11ubuntu1) ... 280s Setting up libitm1:s390x (15.2.0-11ubuntu1) ... 280s Setting up libmalcontent-0-0:s390x (0.13.1-2ubuntu2) ... 280s Setting up libwayland-client0:s390x (1.24.0-2) ... 280s Setting up libjpeg8:s390x (8c-2ubuntu11) ... 280s Setting up automake (1:1.18.1-3build1) ... 281s update-alternatives: using /usr/bin/automake-1.18 to provide /usr/bin/automake (automake) in auto mode 281s Setting up libfile-stripnondeterminism-perl (1.15.0-1build1) ... 281s Setting up gettext (0.23.2-1) ... 281s Setting up libgcc-15-dev:s390x (15.2.0-11ubuntu1) ... 281s Setting up python3.13 (3.13.11-1) ... 288s Setting up pybuild-plugin-pyproject (7.20251231) ... 288s Setting up python3-pytest (9.0.2-2) ... 290s Setting up libavahi-common3:s390x (0.8-17ubuntu1) ... 290s Setting up python3-all (3.14.2-1) ... 290s Setting up libappstream5:s390x (1.0.6-2) ... 290s Setting up intltool-debian (0.35.0+20060710.6build1) ... 290s Setting up libstdc++-15-dev:s390x (15.2.0-11ubuntu1) ... 290s Setting up dh-strip-nondeterminism (1.15.0-1build1) ... 290s Setting up libtiff6:s390x (4.7.0-3ubuntu3) ... 290s Setting up cpp-15-s390x-linux-gnu (15.2.0-11ubuntu1) ... 290s Setting up libgdk-pixbuf-2.0-0:s390x (2.44.4+dfsg-1) ... 290s Setting up libavahi-glib1:s390x (0.8-17ubuntu1) ... 290s Setting up libavahi-client3:s390x (0.8-17ubuntu1) ... 290s Setting up gcc-15-s390x-linux-gnu (15.2.0-11ubuntu1) ... 290s Setting up g++-15-s390x-linux-gnu (15.2.0-11ubuntu1) ... 290s Setting up cpp-s390x-linux-gnu (4:15.2.0-4ubuntu1) ... 290s Setting up po-debconf (1.0.22) ... 290s Setting up libostree-1-1:s390x (2025.7-1) ... 290s Setting up ostree (2025.7-1) ... 290s Setting up gcc-s390x-linux-gnu (4:15.2.0-4ubuntu1) ... 290s Setting up gir1.2-ostree-1.0:s390x (2025.7-1) ... 290s Setting up flatpak (1.16.2-1) ... 292s Setting up cpp-15 (15.2.0-11ubuntu1) ... 292s Setting up cpp (4:15.2.0-4ubuntu1) ... 292s Setting up ostree-push (1.2.0-1) ... 293s Setting up g++-s390x-linux-gnu (4:15.2.0-4ubuntu1) ... 293s Setting up gcc-15 (15.2.0-11ubuntu1) ... 293s Setting up g++-15 (15.2.0-11ubuntu1) ... 293s Setting up libtool (2.5.4-9) ... 293s Setting up gcc (4:15.2.0-4ubuntu1) ... 293s Setting up dh-autoreconf (21) ... 293s Setting up g++ (4:15.2.0-4ubuntu1) ... 293s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 293s Setting up build-essential (12.12ubuntu2) ... 293s Setting up debhelper (13.28ubuntu1) ... 293s Setting up pybuild-plugin-autopkgtest (7.20251231) ... 293s Processing triggers for man-db (2.13.1-1) ... 302s Processing triggers for dbus (1.16.2-2ubuntu2) ... 302s Processing triggers for procps (2:4.0.4-9ubuntu1) ... 302s Processing triggers for install-info (7.2-5) ... 304s Processing triggers for libc-bin (2.42-2ubuntu4) ... 304s Processing triggers for systemd (259-1ubuntu2) ... 306s autopkgtest [11:18:05]: test pybuild-autopkgtest: pybuild-autopkgtest 306s autopkgtest [11:18:05]: test pybuild-autopkgtest: [----------------------- 307s ln -sr tests/ostree-receive tests/ostree-receive-0 307s ln -sr tests/ostree-receive tests/ostree-receive-1 307s pybuild-autopkgtest 308s I: pybuild base:384: cd /tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build; python3.13 -m pytest tests 312s ============================= test session starts ============================== 312s platform linux -- Python 3.13.11, pytest-9.0.2, pluggy-1.6.0 312s rootdir: /tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build 312s plugins: typeguard-4.4.4 312s collected 99 items 312s 328s tests/test_full.py FFFFFF [ 6%] 339s tests/test_push.py ................................. [ 39%] 354s tests/test_receive.py ...........ss...s................................. [ 89%] 354s . [ 90%] 357s tests/test_receive_legacy.py .. [ 92%] 359s tests/test_receive_shell.py .....s [ 98%] 359s tests/test_sshd.py . [100%] 359s 359s =================================== FAILURES =================================== 359s _______________________________ test_no_commits ________________________________ 359s 359s source_repo = 359s dest_repo = 359s sshd = SSHServerInfo(proc=, address='127.0.0.1', port=38796) 359s ssh_options = ['-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', ...] 359s cli_env_vars = {'PATH': '/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:...ild.NKu/src/debian/python3-ostree-push/usr/lib/python3.13/dist-packages:/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build'} 359s receive_config_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_no_commits0/ostree-receive.conf') 359s capfd = <_pytest.capture.CaptureFixture object at 0x3ffb04fcd70> 359s 359s def test_no_commits(source_repo, dest_repo, sshd, ssh_options, 359s cli_env_vars, receive_config_path, capfd): 359s """Test push with no commits in source repo""" 359s args = ( 359s source_repo, dest_repo, sshd, ssh_options, cli_env_vars, 359s receive_config_path 359s ) 359s 359s > run_push(*args) 359s 359s tests/test_full.py:54: 359s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 359s tests/test_full.py:43: in run_push 359s return subprocess.run(cmd, **popen_kwargs) 359s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 359s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 359s 359s input = None, capture_output = False, timeout = None, check = True 359s popenargs = (['ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-0/test_no_commits0/source-repo', '--command=ostree-receive-1', '-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', ...],) 359s kwargs = {'env': {'ADTTMP': '/tmp/autopkgtest.J2bpcH/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.J2bpcH/pybuild-autopk...': 'python3-defaults/3.14.2-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.J2bpcH/pybuild-autopkgtest-artifacts', ...}} 359s process = 359s stdout = None, stderr = None, retcode = 1 359s 359s def run(*popenargs, 359s input=None, capture_output=False, timeout=None, check=False, **kwargs): 359s """Run command with arguments and return a CompletedProcess instance. 359s 359s The returned instance will have attributes args, returncode, stdout and 359s stderr. By default, stdout and stderr are not captured, and those attributes 359s will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them, 359s or pass capture_output=True to capture both. 359s 359s If check is True and the exit code was non-zero, it raises a 359s CalledProcessError. The CalledProcessError object will have the return code 359s in the returncode attribute, and output & stderr attributes if those streams 359s were captured. 359s 359s If timeout (seconds) is given and the process takes too long, 359s a TimeoutExpired exception will be raised. 359s 359s There is an optional argument "input", allowing you to 359s pass bytes or a string to the subprocess's stdin. If you use this argument 359s you may not also use the Popen constructor's "stdin" argument, as 359s it will be used internally. 359s 359s By default, all communication is in bytes, and therefore any "input" should 359s be bytes, and the stdout and stderr will be bytes. If in text mode, any 359s "input" should be a string, and stdout and stderr will be strings decoded 359s according to locale encoding, or by "encoding" if set. Text mode is 359s triggered by setting any of text, encoding, errors or universal_newlines. 359s 359s The other arguments are the same as for the Popen constructor. 359s """ 359s if input is not None: 359s if kwargs.get('stdin') is not None: 359s raise ValueError('stdin and input arguments may not both be used.') 359s kwargs['stdin'] = PIPE 359s 359s if capture_output: 359s if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None: 359s raise ValueError('stdout and stderr arguments may not be used ' 359s 'with capture_output.') 359s kwargs['stdout'] = PIPE 359s kwargs['stderr'] = PIPE 359s 359s with Popen(*popenargs, **kwargs) as process: 359s try: 359s stdout, stderr = process.communicate(input, timeout=timeout) 359s except TimeoutExpired as exc: 359s process.kill() 359s if _mswindows: 359s # Windows accumulates the output in a single blocking 359s # read() call run on child threads, with the timeout 359s # being done in a join() on those threads. communicate() 359s # _after_ kill() is required to collect that and add it 359s # to the exception. 359s exc.stdout, exc.stderr = process.communicate() 359s else: 359s # POSIX _communicate already populated the output so 359s # far into the TimeoutExpired exception. 359s process.wait() 359s raise 359s except: # Including KeyboardInterrupt, communicate handled that. 359s process.kill() 359s # We don't call process.wait() as .__exit__ does that for us. 359s raise 359s retcode = process.poll() 359s if check and retcode: 359s > raise CalledProcessError(retcode, process.args, 359s output=stdout, stderr=stderr) 359s E subprocess.CalledProcessError: Command '['ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-0/test_no_commits0/source-repo', '--command=ostree-receive-1', '-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', '-o', 'UserKnownHostsFile=/dev/null', 'ssh://127.0.0.1:38796//tmp/pytest-of-ubuntu/pytest-0/test_no_commits0/dest-repo']' returned non-zero exit status 1. 359s 359s /usr/lib/python3.13/subprocess.py:577: CalledProcessError 359s ---------------------------- Captured stderr setup ----------------------------- 359s Server listening on 127.0.0.1 port 38796. 359s Connection closed by 127.0.0.1 port 60990 359s ----------------------------- Captured stderr call ----------------------------- 359s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests:/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build:/tmp/autopkgtest.J2bpcH/build.NKu/src/debian/python3-ostree-push/usr/lib/python3.13/dist-packages:/usr/lib/python314.zip:/usr/lib/python3.14:/usr/lib/python3.14/lib-dynload:/usr/local/lib/python3.14/dist-packages:/usr/lib/python3/dist-packages 359s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-0/test_no_commits0/source-repo', '--command=ostree-receive-1', '-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', '-o', 'UserKnownHostsFile=/dev/null', 'ssh://127.0.0.1:38796//tmp/pytest-of-ubuntu/pytest-0/test_no_commits0/dest-repo'] 359s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-0/test_no_commits0/source-repo', commands=['ostree-receive-1'], ssh_options=[]), '-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa' 359s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-0/test_no_commits0/source-repo', commands=['ostree-receive-1'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa']), '-o', 'IdentitiesOnly=yes' 359s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-0/test_no_commits0/source-repo', commands=['ostree-receive-1'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes']), '-o', 'StrictHostKeyChecking=no' 359s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-0/test_no_commits0/source-repo', commands=['ostree-receive-1'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no']), '-o', 'UserKnownHostsFile=/dev/null' 359s DEBUG:otpush.push:/tmp/pytest-of-ubuntu/pytest-0/test_no_commits0/source-repo/summary does not exist, regenerating 359s INFO:otpush.push:Regenerating summary file 359s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests:/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build:/tmp/autopkgtest.J2bpcH/build.NKu/src/debian/python3-ostree-push/usr/lib/python3.13/dist-packages:/usr/lib/python314.zip:/usr/lib/python3.14:/usr/lib/python3.14/lib-dynload:/usr/local/lib/python3.14/dist-packages:/usr/lib/python3/dist-packages 359s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-push'] 359s usage: ostree-push [-h] [-n] [-p PORT] [-q] [-v] [--repo REPO] 359s [--command COMMAND] [-i OPTION] [--version] 359s DEST [REF ...] 359s ostree-push: error: the following arguments are required: DEST 359s Traceback (most recent call last): 359s File "/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-push", line 14, in 359s push.main() 359s ~~~~~~~~~^^ 359s File "/usr/lib/python3/dist-packages/otpush/push.py", line 574, in main 359s push_refs( 359s ~~~~~~~~~^ 359s repo, 359s ^^^^^ 359s ...<4 lines>... 359s dry_run=args.dry_run, 359s ^^^^^^^^^^^^^^^^^^^^^ 359s ) 359s ^ 359s File "/usr/lib/python3/dist-packages/otpush/push.py", line 349, in push_refs 359s with RepoServer(local_repo_path) as http_server: 359s ~~~~~~~~~~^^^^^^^^^^^^^^^^^ 359s File "/usr/lib/python3/dist-packages/otpush/push.py", line 114, in __enter__ 359s self.start() 359s ~~~~~~~~~~^^ 359s File "/usr/lib/python3/dist-packages/otpush/push.py", line 141, in start 359s self.proc.start() 359s ~~~~~~~~~~~~~~~^^ 359s File "/usr/lib/python3.14/multiprocessing/process.py", line 121, in start 359s self._popen = self._Popen(self) 359s ~~~~~~~~~~~^^^^^^ 359s File "/usr/lib/python3.14/multiprocessing/context.py", line 224, in _Popen 359s return _default_context.get_context().Process._Popen(process_obj) 359s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 359s File "/usr/lib/python3.14/multiprocessing/context.py", line 300, in _Popen 359s return Popen(process_obj) 359s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 35, in __init__ 359s super().__init__(process_obj) 359s ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 359s File "/usr/lib/python3.14/multiprocessing/popen_fork.py", line 20, in __init__ 359s self._launch(process_obj) 359s ~~~~~~~~~~~~^^^^^^^^^^^^^ 359s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 51, in _launch 359s self.sentinel, w = forkserver.connect_to_new_process(self._fds) 359s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ 359s File "/usr/lib/python3.14/multiprocessing/forkserver.py", line 106, in connect_to_new_process 359s connection.answer_challenge( 359s ~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 359s wrapped_client, self._forkserver_authkey) 359s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 359s File "/usr/lib/python3.14/multiprocessing/connection.py", line 970, in answer_challenge 359s message = connection.recv_bytes(256) # reject large message 359s File "/usr/lib/python3.14/multiprocessing/connection.py", line 222, in recv_bytes 359s buf = self._recv_bytes(maxlength) 359s File "/usr/lib/python3.14/multiprocessing/connection.py", line 447, in _recv_bytes 359s buf = self._recv(4) 359s File "/usr/lib/python3.14/multiprocessing/connection.py", line 412, in _recv 359s chunk = read(handle, to_read) 359s ConnectionResetError: [Errno 104] Connection reset by peer 359s __________________________________ test_basic __________________________________ 359s 359s source_repo = 359s dest_repo = 359s sshd = SSHServerInfo(proc=, address='127.0.0.1', port=38796) 359s ssh_options = ['-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', ...] 359s cli_env_vars = {'PATH': '/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:...ild.NKu/src/debian/python3-ostree-push/usr/lib/python3.13/dist-packages:/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build'} 359s receive_config_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_basic0/ostree-receive.conf') 359s tmp_files_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_basic0/files') 359s capfd = <_pytest.capture.CaptureFixture object at 0x3ffb0b44f50> 359s 359s def test_basic(source_repo, dest_repo, sshd, ssh_options, cli_env_vars, 359s receive_config_path, tmp_files_path, capfd): 359s """Test push with one commit in source repo""" 359s args = ( 359s source_repo, dest_repo, sshd, ssh_options, cli_env_vars, 359s receive_config_path 359s ) 359s 359s rev = random_commit(source_repo, tmp_files_path, 'test') 359s source_content = get_content_checksum(source_repo, rev) 359s 359s wipe_repo(dest_repo) 359s > run_push(*args) 359s 359s tests/test_full.py:79: 359s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 359s tests/test_full.py:43: in run_push 359s return subprocess.run(cmd, **popen_kwargs) 359s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 359s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 359s 359s input = None, capture_output = False, timeout = None, check = True 359s popenargs = (['ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-0/test_basic0/source-repo', '--command=ostree-receive-1', '-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', ...],) 359s kwargs = {'env': {'ADTTMP': '/tmp/autopkgtest.J2bpcH/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.J2bpcH/pybuild-autopk...': 'python3-defaults/3.14.2-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.J2bpcH/pybuild-autopkgtest-artifacts', ...}} 359s process = 359s stdout = None, stderr = None, retcode = 1 359s 359s def run(*popenargs, 359s input=None, capture_output=False, timeout=None, check=False, **kwargs): 359s """Run command with arguments and return a CompletedProcess instance. 359s 359s The returned instance will have attributes args, returncode, stdout and 359s stderr. By default, stdout and stderr are not captured, and those attributes 359s will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them, 359s or pass capture_output=True to capture both. 359s 359s If check is True and the exit code was non-zero, it raises a 359s CalledProcessError. The CalledProcessError object will have the return code 359s in the returncode attribute, and output & stderr attributes if those streams 359s were captured. 359s 359s If timeout (seconds) is given and the process takes too long, 359s a TimeoutExpired exception will be raised. 359s 359s There is an optional argument "input", allowing you to 359s pass bytes or a string to the subprocess's stdin. If you use this argument 359s you may not also use the Popen constructor's "stdin" argument, as 359s it will be used internally. 359s 359s By default, all communication is in bytes, and therefore any "input" should 359s be bytes, and the stdout and stderr will be bytes. If in text mode, any 359s "input" should be a string, and stdout and stderr will be strings decoded 359s according to locale encoding, or by "encoding" if set. Text mode is 359s triggered by setting any of text, encoding, errors or universal_newlines. 359s 359s The other arguments are the same as for the Popen constructor. 359s """ 359s if input is not None: 359s if kwargs.get('stdin') is not None: 359s raise ValueError('stdin and input arguments may not both be used.') 359s kwargs['stdin'] = PIPE 359s 359s if capture_output: 359s if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None: 359s raise ValueError('stdout and stderr arguments may not be used ' 359s 'with capture_output.') 359s kwargs['stdout'] = PIPE 359s kwargs['stderr'] = PIPE 359s 359s with Popen(*popenargs, **kwargs) as process: 359s try: 359s stdout, stderr = process.communicate(input, timeout=timeout) 359s except TimeoutExpired as exc: 359s process.kill() 359s if _mswindows: 359s # Windows accumulates the output in a single blocking 359s # read() call run on child threads, with the timeout 359s # being done in a join() on those threads. communicate() 359s # _after_ kill() is required to collect that and add it 359s # to the exception. 359s exc.stdout, exc.stderr = process.communicate() 359s else: 359s # POSIX _communicate already populated the output so 359s # far into the TimeoutExpired exception. 359s process.wait() 359s raise 359s except: # Including KeyboardInterrupt, communicate handled that. 359s process.kill() 359s # We don't call process.wait() as .__exit__ does that for us. 359s raise 359s retcode = process.poll() 359s if check and retcode: 359s > raise CalledProcessError(retcode, process.args, 359s output=stdout, stderr=stderr) 359s E subprocess.CalledProcessError: Command '['ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-0/test_basic0/source-repo', '--command=ostree-receive-1', '-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', '-o', 'UserKnownHostsFile=/dev/null', 'ssh://127.0.0.1:38796//tmp/pytest-of-ubuntu/pytest-0/test_basic0/dest-repo']' returned non-zero exit status 1. 359s 359s /usr/lib/python3.13/subprocess.py:577: CalledProcessError 359s ----------------------------- Captured stderr call ----------------------------- 359s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests:/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build:/tmp/autopkgtest.J2bpcH/build.NKu/src/debian/python3-ostree-push/usr/lib/python3.13/dist-packages:/usr/lib/python314.zip:/usr/lib/python3.14:/usr/lib/python3.14/lib-dynload:/usr/local/lib/python3.14/dist-packages:/usr/lib/python3/dist-packages 359s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-0/test_basic0/source-repo', '--command=ostree-receive-1', '-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', '-o', 'UserKnownHostsFile=/dev/null', 'ssh://127.0.0.1:38796//tmp/pytest-of-ubuntu/pytest-0/test_basic0/dest-repo'] 359s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-0/test_basic0/source-repo', commands=['ostree-receive-1'], ssh_options=[]), '-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa' 359s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-0/test_basic0/source-repo', commands=['ostree-receive-1'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa']), '-o', 'IdentitiesOnly=yes' 359s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-0/test_basic0/source-repo', commands=['ostree-receive-1'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes']), '-o', 'StrictHostKeyChecking=no' 359s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-0/test_basic0/source-repo', commands=['ostree-receive-1'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no']), '-o', 'UserKnownHostsFile=/dev/null' 359s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests:/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build:/tmp/autopkgtest.J2bpcH/build.NKu/src/debian/python3-ostree-push/usr/lib/python3.13/dist-packages:/usr/lib/python314.zip:/usr/lib/python3.14:/usr/lib/python3.14/lib-dynload:/usr/local/lib/python3.14/dist-packages:/usr/lib/python3/dist-packages 359s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-push'] 359s usage: ostree-push [-h] [-n] [-p PORT] [-q] [-v] [--repo REPO] 359s [--command COMMAND] [-i OPTION] [--version] 359s DEST [REF ...] 359s ostree-push: error: the following arguments are required: DEST 359s Traceback (most recent call last): 359s File "/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-push", line 14, in 359s push.main() 359s ~~~~~~~~~^^ 359s File "/usr/lib/python3/dist-packages/otpush/push.py", line 574, in main 359s push_refs( 359s ~~~~~~~~~^ 359s repo, 359s ^^^^^ 359s ...<4 lines>... 359s dry_run=args.dry_run, 359s ^^^^^^^^^^^^^^^^^^^^^ 359s ) 359s ^ 359s File "/usr/lib/python3/dist-packages/otpush/push.py", line 349, in push_refs 359s with RepoServer(local_repo_path) as http_server: 359s ~~~~~~~~~~^^^^^^^^^^^^^^^^^ 359s File "/usr/lib/python3/dist-packages/otpush/push.py", line 114, in __enter__ 359s self.start() 359s ~~~~~~~~~~^^ 359s File "/usr/lib/python3/dist-packages/otpush/push.py", line 141, in start 359s self.proc.start() 359s ~~~~~~~~~~~~~~~^^ 359s File "/usr/lib/python3.14/multiprocessing/process.py", line 121, in start 359s self._popen = self._Popen(self) 359s ~~~~~~~~~~~^^^^^^ 359s File "/usr/lib/python3.14/multiprocessing/context.py", line 224, in _Popen 359s return _default_context.get_context().Process._Popen(process_obj) 359s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 359s File "/usr/lib/python3.14/multiprocessing/context.py", line 300, in _Popen 359s return Popen(process_obj) 359s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 35, in __init__ 359s super().__init__(process_obj) 359s ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 359s File "/usr/lib/python3.14/multiprocessing/popen_fork.py", line 20, in __init__ 359s self._launch(process_obj) 359s ~~~~~~~~~~~~^^^^^^^^^^^^^ 359s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 51, in _launch 359s self.sentinel, w = forkserver.connect_to_new_process(self._fds) 359s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ 359s File "/usr/lib/python3.14/multiprocessing/forkserver.py", line 106, in connect_to_new_process 359s connection.answer_challenge( 359s ~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 359s wrapped_client, self._forkserver_authkey) 359s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 359s File "/usr/lib/python3.14/multiprocessing/connection.py", line 970, in answer_challenge 359s message = connection.recv_bytes(256) # reject large message 359s File "/usr/lib/python3.14/multiprocessing/connection.py", line 222, in recv_bytes 359s buf = self._recv_bytes(maxlength) 359s File "/usr/lib/python3.14/multiprocessing/connection.py", line 447, in _recv_bytes 359s buf = self._recv(4) 359s File "/usr/lib/python3.14/multiprocessing/connection.py", line 412, in _recv 359s chunk = read(handle, to_read) 359s ConnectionResetError: [Errno 104] Connection reset by peer 359s _________________________________ test_dry_run _________________________________ 359s 359s source_repo = 359s dest_repo = 359s sshd = SSHServerInfo(proc=, address='127.0.0.1', port=38796) 359s ssh_options = ['-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', ...] 359s cli_env_vars = {'PATH': '/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:...ild.NKu/src/debian/python3-ostree-push/usr/lib/python3.13/dist-packages:/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build'} 359s receive_config_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_dry_run0/ostree-receive.conf') 359s tmp_files_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_dry_run0/files') 359s 359s def test_dry_run(source_repo, dest_repo, sshd, ssh_options, cli_env_vars, 359s receive_config_path, tmp_files_path): 359s """Test push dry run""" 359s args = ( 359s source_repo, dest_repo, sshd, ssh_options, cli_env_vars, 359s receive_config_path 359s ) 359s 359s random_commit(source_repo, tmp_files_path, 'test') 359s 359s wipe_repo(dest_repo) 359s > run_push(*args, options=['-n']) 359s 359s tests/test_full.py:114: 359s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 359s tests/test_full.py:43: in run_push 359s return subprocess.run(cmd, **popen_kwargs) 359s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 359s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 359s 359s input = None, capture_output = False, timeout = None, check = True 359s popenargs = (['ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-0/test_dry_run0/source-repo', '--command=ostree-receive-1', '-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', ...],) 359s kwargs = {'env': {'ADTTMP': '/tmp/autopkgtest.J2bpcH/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.J2bpcH/pybuild-autopk...': 'python3-defaults/3.14.2-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.J2bpcH/pybuild-autopkgtest-artifacts', ...}} 359s process = 359s stdout = None, stderr = None, retcode = 1 359s 359s def run(*popenargs, 359s input=None, capture_output=False, timeout=None, check=False, **kwargs): 359s """Run command with arguments and return a CompletedProcess instance. 359s 359s The returned instance will have attributes args, returncode, stdout and 359s stderr. By default, stdout and stderr are not captured, and those attributes 359s will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them, 359s or pass capture_output=True to capture both. 359s 359s If check is True and the exit code was non-zero, it raises a 359s CalledProcessError. The CalledProcessError object will have the return code 359s in the returncode attribute, and output & stderr attributes if those streams 359s were captured. 359s 359s If timeout (seconds) is given and the process takes too long, 359s a TimeoutExpired exception will be raised. 359s 359s There is an optional argument "input", allowing you to 359s pass bytes or a string to the subprocess's stdin. If you use this argument 359s you may not also use the Popen constructor's "stdin" argument, as 359s it will be used internally. 359s 359s By default, all communication is in bytes, and therefore any "input" should 359s be bytes, and the stdout and stderr will be bytes. If in text mode, any 359s "input" should be a string, and stdout and stderr will be strings decoded 359s according to locale encoding, or by "encoding" if set. Text mode is 359s triggered by setting any of text, encoding, errors or universal_newlines. 359s 359s The other arguments are the same as for the Popen constructor. 359s """ 359s if input is not None: 359s if kwargs.get('stdin') is not None: 359s raise ValueError('stdin and input arguments may not both be used.') 359s kwargs['stdin'] = PIPE 359s 359s if capture_output: 359s if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None: 359s raise ValueError('stdout and stderr arguments may not be used ' 359s 'with capture_output.') 359s kwargs['stdout'] = PIPE 359s kwargs['stderr'] = PIPE 359s 359s with Popen(*popenargs, **kwargs) as process: 359s try: 359s stdout, stderr = process.communicate(input, timeout=timeout) 359s except TimeoutExpired as exc: 359s process.kill() 359s if _mswindows: 359s # Windows accumulates the output in a single blocking 359s # read() call run on child threads, with the timeout 359s # being done in a join() on those threads. communicate() 359s # _after_ kill() is required to collect that and add it 359s # to the exception. 359s exc.stdout, exc.stderr = process.communicate() 359s else: 359s # POSIX _communicate already populated the output so 359s # far into the TimeoutExpired exception. 359s process.wait() 359s raise 359s except: # Including KeyboardInterrupt, communicate handled that. 359s process.kill() 359s # We don't call process.wait() as .__exit__ does that for us. 359s raise 359s retcode = process.poll() 359s if check and retcode: 359s > raise CalledProcessError(retcode, process.args, 359s output=stdout, stderr=stderr) 359s E subprocess.CalledProcessError: Command '['ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-0/test_dry_run0/source-repo', '--command=ostree-receive-1', '-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', '-o', 'UserKnownHostsFile=/dev/null', '-n', 'ssh://127.0.0.1:38796//tmp/pytest-of-ubuntu/pytest-0/test_dry_run0/dest-repo']' returned non-zero exit status 1. 359s 359s /usr/lib/python3.13/subprocess.py:577: CalledProcessError 359s ----------------------------- Captured stderr call ----------------------------- 359s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests:/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build:/tmp/autopkgtest.J2bpcH/build.NKu/src/debian/python3-ostree-push/usr/lib/python3.13/dist-packages:/usr/lib/python314.zip:/usr/lib/python3.14:/usr/lib/python3.14/lib-dynload:/usr/local/lib/python3.14/dist-packages:/usr/lib/python3/dist-packages 359s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-0/test_dry_run0/source-repo', '--command=ostree-receive-1', '-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', '-o', 'UserKnownHostsFile=/dev/null', '-n', 'ssh://127.0.0.1:38796//tmp/pytest-of-ubuntu/pytest-0/test_dry_run0/dest-repo'] 359s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-0/test_dry_run0/source-repo', commands=['ostree-receive-1'], ssh_options=[]), '-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa' 359s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-0/test_dry_run0/source-repo', commands=['ostree-receive-1'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa']), '-o', 'IdentitiesOnly=yes' 359s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-0/test_dry_run0/source-repo', commands=['ostree-receive-1'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes']), '-o', 'StrictHostKeyChecking=no' 359s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-0/test_dry_run0/source-repo', commands=['ostree-receive-1'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no']), '-o', 'UserKnownHostsFile=/dev/null' 359s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests:/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build:/tmp/autopkgtest.J2bpcH/build.NKu/src/debian/python3-ostree-push/usr/lib/python3.13/dist-packages:/usr/lib/python314.zip:/usr/lib/python3.14:/usr/lib/python3.14/lib-dynload:/usr/local/lib/python3.14/dist-packages:/usr/lib/python3/dist-packages 359s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-push'] 359s usage: ostree-push [-h] [-n] [-p PORT] [-q] [-v] [--repo REPO] 359s [--command COMMAND] [-i OPTION] [--version] 359s DEST [REF ...] 359s ostree-push: error: the following arguments are required: DEST 359s Traceback (most recent call last): 359s File "/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-push", line 14, in 359s push.main() 359s ~~~~~~~~~^^ 359s File "/usr/lib/python3/dist-packages/otpush/push.py", line 574, in main 359s push_refs( 359s ~~~~~~~~~^ 359s repo, 359s ^^^^^ 359s ...<4 lines>... 359s dry_run=args.dry_run, 359s ^^^^^^^^^^^^^^^^^^^^^ 359s ) 359s ^ 359s File "/usr/lib/python3/dist-packages/otpush/push.py", line 349, in push_refs 359s with RepoServer(local_repo_path) as http_server: 359s ~~~~~~~~~~^^^^^^^^^^^^^^^^^ 359s File "/usr/lib/python3/dist-packages/otpush/push.py", line 114, in __enter__ 359s self.start() 359s ~~~~~~~~~~^^ 359s File "/usr/lib/python3/dist-packages/otpush/push.py", line 141, in start 359s self.proc.start() 359s ~~~~~~~~~~~~~~~^^ 359s File "/usr/lib/python3.14/multiprocessing/process.py", line 121, in start 359s self._popen = self._Popen(self) 359s ~~~~~~~~~~~^^^^^^ 359s File "/usr/lib/python3.14/multiprocessing/context.py", line 224, in _Popen 359s return _default_context.get_context().Process._Popen(process_obj) 359s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 359s File "/usr/lib/python3.14/multiprocessing/context.py", line 300, in _Popen 359s return Popen(process_obj) 359s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 35, in __init__ 359s super().__init__(process_obj) 359s ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 359s File "/usr/lib/python3.14/multiprocessing/popen_fork.py", line 20, in __init__ 359s self._launch(process_obj) 359s ~~~~~~~~~~~~^^^^^^^^^^^^^ 359s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 51, in _launch 359s self.sentinel, w = forkserver.connect_to_new_process(self._fds) 359s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ 359s File "/usr/lib/python3.14/multiprocessing/forkserver.py", line 106, in connect_to_new_process 359s connection.answer_challenge( 359s ~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 359s wrapped_client, self._forkserver_authkey) 359s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 359s File "/usr/lib/python3.14/multiprocessing/connection.py", line 970, in answer_challenge 359s message = connection.recv_bytes(256) # reject large message 359s File "/usr/lib/python3.14/multiprocessing/connection.py", line 222, in recv_bytes 359s buf = self._recv_bytes(maxlength) 359s File "/usr/lib/python3.14/multiprocessing/connection.py", line 447, in _recv_bytes 359s buf = self._recv(4) 359s File "/usr/lib/python3.14/multiprocessing/connection.py", line 412, in _recv 359s chunk = read(handle, to_read) 359s ConnectionResetError: [Errno 104] Connection reset by peer 359s ________________________________ test_scp_dest _________________________________ 359s 359s source_repo = 359s dest_repo = 359s sshd = SSHServerInfo(proc=, address='127.0.0.1', port=38796) 359s ssh_options = ['-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', ...] 359s cli_env_vars = {'PATH': '/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:...ild.NKu/src/debian/python3-ostree-push/usr/lib/python3.13/dist-packages:/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build'} 359s receive_config_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_scp_dest0/ostree-receive.conf') 359s tmp_files_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_scp_dest0/files') 359s 359s def test_scp_dest(source_repo, dest_repo, sshd, ssh_options, cli_env_vars, 359s receive_config_path, tmp_files_path): 359s """Test push with scp style destination""" 359s args = ( 359s source_repo, dest_repo, sshd, ssh_options, cli_env_vars, 359s receive_config_path 359s ) 359s dest = f'{sshd.address}:{dest_repo.path}' 359s options = ['-p', str(sshd.port)] 359s 359s random_commit(source_repo, tmp_files_path, 'test') 359s > run_push(*args, dest=dest, options=options) 359s 359s tests/test_full.py:140: 359s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 359s tests/test_full.py:43: in run_push 359s return subprocess.run(cmd, **popen_kwargs) 359s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 359s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 359s 359s input = None, capture_output = False, timeout = None, check = True 359s popenargs = (['ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-0/test_scp_dest0/source-repo', '--command=ostree-receive-1', '-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', ...],) 359s kwargs = {'env': {'ADTTMP': '/tmp/autopkgtest.J2bpcH/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.J2bpcH/pybuild-autopk...': 'python3-defaults/3.14.2-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.J2bpcH/pybuild-autopkgtest-artifacts', ...}} 359s process = 359s stdout = None, stderr = None, retcode = 1 359s 359s def run(*popenargs, 359s input=None, capture_output=False, timeout=None, check=False, **kwargs): 359s """Run command with arguments and return a CompletedProcess instance. 359s 359s The returned instance will have attributes args, returncode, stdout and 359s stderr. By default, stdout and stderr are not captured, and those attributes 359s will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them, 359s or pass capture_output=True to capture both. 359s 359s If check is True and the exit code was non-zero, it raises a 359s CalledProcessError. The CalledProcessError object will have the return code 359s in the returncode attribute, and output & stderr attributes if those streams 359s were captured. 359s 359s If timeout (seconds) is given and the process takes too long, 359s a TimeoutExpired exception will be raised. 359s 359s There is an optional argument "input", allowing you to 359s pass bytes or a string to the subprocess's stdin. If you use this argument 359s you may not also use the Popen constructor's "stdin" argument, as 359s it will be used internally. 359s 359s By default, all communication is in bytes, and therefore any "input" should 359s be bytes, and the stdout and stderr will be bytes. If in text mode, any 359s "input" should be a string, and stdout and stderr will be strings decoded 359s according to locale encoding, or by "encoding" if set. Text mode is 359s triggered by setting any of text, encoding, errors or universal_newlines. 359s 359s The other arguments are the same as for the Popen constructor. 359s """ 359s if input is not None: 359s if kwargs.get('stdin') is not None: 359s raise ValueError('stdin and input arguments may not both be used.') 359s kwargs['stdin'] = PIPE 359s 359s if capture_output: 359s if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None: 359s raise ValueError('stdout and stderr arguments may not be used ' 359s 'with capture_output.') 359s kwargs['stdout'] = PIPE 359s kwargs['stderr'] = PIPE 359s 359s with Popen(*popenargs, **kwargs) as process: 359s try: 359s stdout, stderr = process.communicate(input, timeout=timeout) 359s except TimeoutExpired as exc: 359s process.kill() 359s if _mswindows: 359s # Windows accumulates the output in a single blocking 359s # read() call run on child threads, with the timeout 359s # being done in a join() on those threads. communicate() 359s # _after_ kill() is required to collect that and add it 359s # to the exception. 359s exc.stdout, exc.stderr = process.communicate() 359s else: 359s # POSIX _communicate already populated the output so 359s # far into the TimeoutExpired exception. 359s process.wait() 359s raise 359s except: # Including KeyboardInterrupt, communicate handled that. 359s process.kill() 359s # We don't call process.wait() as .__exit__ does that for us. 359s raise 359s retcode = process.poll() 359s if check and retcode: 359s > raise CalledProcessError(retcode, process.args, 359s output=stdout, stderr=stderr) 359s E subprocess.CalledProcessError: Command '['ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-0/test_scp_dest0/source-repo', '--command=ostree-receive-1', '-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', '-o', 'UserKnownHostsFile=/dev/null', '-p', '38796', '127.0.0.1:/tmp/pytest-of-ubuntu/pytest-0/test_scp_dest0/dest-repo']' returned non-zero exit status 1. 359s 359s /usr/lib/python3.13/subprocess.py:577: CalledProcessError 359s ----------------------------- Captured stderr call ----------------------------- 359s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests:/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build:/tmp/autopkgtest.J2bpcH/build.NKu/src/debian/python3-ostree-push/usr/lib/python3.13/dist-packages:/usr/lib/python314.zip:/usr/lib/python3.14:/usr/lib/python3.14/lib-dynload:/usr/local/lib/python3.14/dist-packages:/usr/lib/python3/dist-packages 359s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-0/test_scp_dest0/source-repo', '--command=ostree-receive-1', '-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', '-o', 'UserKnownHostsFile=/dev/null', '-p', '38796', '127.0.0.1:/tmp/pytest-of-ubuntu/pytest-0/test_scp_dest0/dest-repo'] 359s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-0/test_scp_dest0/source-repo', commands=['ostree-receive-1'], ssh_options=[]), '-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa' 359s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-0/test_scp_dest0/source-repo', commands=['ostree-receive-1'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa']), '-o', 'IdentitiesOnly=yes' 359s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-0/test_scp_dest0/source-repo', commands=['ostree-receive-1'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes']), '-o', 'StrictHostKeyChecking=no' 359s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-0/test_scp_dest0/source-repo', commands=['ostree-receive-1'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no']), '-o', 'UserKnownHostsFile=/dev/null' 359s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests:/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build:/tmp/autopkgtest.J2bpcH/build.NKu/src/debian/python3-ostree-push/usr/lib/python3.13/dist-packages:/usr/lib/python314.zip:/usr/lib/python3.14:/usr/lib/python3.14/lib-dynload:/usr/local/lib/python3.14/dist-packages:/usr/lib/python3/dist-packages 359s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-push'] 359s usage: ostree-push [-h] [-n] [-p PORT] [-q] [-v] [--repo REPO] 359s [--command COMMAND] [-i OPTION] [--version] 359s DEST [REF ...] 359s ostree-push: error: the following arguments are required: DEST 359s Traceback (most recent call last): 359s File "/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-push", line 14, in 359s push.main() 359s ~~~~~~~~~^^ 359s File "/usr/lib/python3/dist-packages/otpush/push.py", line 574, in main 359s push_refs( 359s ~~~~~~~~~^ 359s repo, 359s ^^^^^ 359s ...<4 lines>... 359s dry_run=args.dry_run, 359s ^^^^^^^^^^^^^^^^^^^^^ 359s ) 359s ^ 359s File "/usr/lib/python3/dist-packages/otpush/push.py", line 349, in push_refs 359s with RepoServer(local_repo_path) as http_server: 359s ~~~~~~~~~~^^^^^^^^^^^^^^^^^ 359s File "/usr/lib/python3/dist-packages/otpush/push.py", line 114, in __enter__ 359s self.start() 359s ~~~~~~~~~~^^ 359s File "/usr/lib/python3/dist-packages/otpush/push.py", line 141, in start 359s self.proc.start() 359s ~~~~~~~~~~~~~~~^^ 359s File "/usr/lib/python3.14/multiprocessing/process.py", line 121, in start 359s self._popen = self._Popen(self) 359s ~~~~~~~~~~~^^^^^^ 359s File "/usr/lib/python3.14/multiprocessing/context.py", line 224, in _Popen 359s return _default_context.get_context().Process._Popen(process_obj) 359s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 359s File "/usr/lib/python3.14/multiprocessing/context.py", line 300, in _Popen 359s return Popen(process_obj) 359s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 35, in __init__ 359s super().__init__(process_obj) 359s ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 359s File "/usr/lib/python3.14/multiprocessing/popen_fork.py", line 20, in __init__ 359s self._launch(process_obj) 359s ~~~~~~~~~~~~^^^^^^^^^^^^^ 359s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 51, in _launch 359s self.sentinel, w = forkserver.connect_to_new_process(self._fds) 359s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ 359s File "/usr/lib/python3.14/multiprocessing/forkserver.py", line 106, in connect_to_new_process 359s connection.answer_challenge( 359s ~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 359s wrapped_client, self._forkserver_authkey) 359s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 359s File "/usr/lib/python3.14/multiprocessing/connection.py", line 970, in answer_challenge 359s message = connection.recv_bytes(256) # reject large message 359s File "/usr/lib/python3.14/multiprocessing/connection.py", line 222, in recv_bytes 359s buf = self._recv_bytes(maxlength) 359s File "/usr/lib/python3.14/multiprocessing/connection.py", line 447, in _recv_bytes 359s buf = self._recv(4) 359s File "/usr/lib/python3.14/multiprocessing/connection.py", line 412, in _recv 359s chunk = read(handle, to_read) 359s ConnectionResetError: [Errno 104] Connection reset by peer 359s _____________________________ test_command_abspath _____________________________ 359s 359s source_repo = 359s dest_repo = 359s sshd = SSHServerInfo(proc=, address='127.0.0.1', port=38796) 359s ssh_options = ['-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', ...] 359s cli_env_vars = {'PATH': '/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:...ild.NKu/src/debian/python3-ostree-push/usr/lib/python3.13/dist-packages:/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build'} 359s receive_config_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_command_abspath0/ostree-receive.conf') 359s tmp_files_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_command_abspath0/files') 359s 359s def test_command_abspath(source_repo, dest_repo, sshd, ssh_options, 359s cli_env_vars, receive_config_path, tmp_files_path): 359s """Test push with absolute path to ostree-receive""" 359s args = ( 359s source_repo, dest_repo, sshd, ssh_options, cli_env_vars, 359s receive_config_path 359s ) 359s random_commit(source_repo, tmp_files_path, 'test') 359s > run_push(*args, command=ostree_receive_abspath) 359s 359s tests/test_full.py:153: 359s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 359s tests/test_full.py:43: in run_push 359s return subprocess.run(cmd, **popen_kwargs) 359s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 359s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 359s 359s input = None, capture_output = False, timeout = None, check = True 359s popenargs = (['ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-0/test_command_abspath0/source-repo', '--command=/tmp/autopkgtes...cH/autopkgtest_tmp/build/tests/ostree-receive-1', '-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', ...],) 359s kwargs = {'env': {'ADTTMP': '/tmp/autopkgtest.J2bpcH/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.J2bpcH/pybuild-autopk...': 'python3-defaults/3.14.2-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.J2bpcH/pybuild-autopkgtest-artifacts', ...}} 359s process = 359s stdout = None, stderr = None, retcode = 1 359s 359s def run(*popenargs, 359s input=None, capture_output=False, timeout=None, check=False, **kwargs): 359s """Run command with arguments and return a CompletedProcess instance. 359s 359s The returned instance will have attributes args, returncode, stdout and 359s stderr. By default, stdout and stderr are not captured, and those attributes 359s will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them, 359s or pass capture_output=True to capture both. 359s 359s If check is True and the exit code was non-zero, it raises a 359s CalledProcessError. The CalledProcessError object will have the return code 359s in the returncode attribute, and output & stderr attributes if those streams 359s were captured. 359s 359s If timeout (seconds) is given and the process takes too long, 359s a TimeoutExpired exception will be raised. 359s 359s There is an optional argument "input", allowing you to 359s pass bytes or a string to the subprocess's stdin. If you use this argument 359s you may not also use the Popen constructor's "stdin" argument, as 359s it will be used internally. 359s 359s By default, all communication is in bytes, and therefore any "input" should 359s be bytes, and the stdout and stderr will be bytes. If in text mode, any 359s "input" should be a string, and stdout and stderr will be strings decoded 359s according to locale encoding, or by "encoding" if set. Text mode is 359s triggered by setting any of text, encoding, errors or universal_newlines. 359s 359s The other arguments are the same as for the Popen constructor. 359s """ 359s if input is not None: 359s if kwargs.get('stdin') is not None: 359s raise ValueError('stdin and input arguments may not both be used.') 359s kwargs['stdin'] = PIPE 359s 359s if capture_output: 359s if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None: 359s raise ValueError('stdout and stderr arguments may not be used ' 359s 'with capture_output.') 359s kwargs['stdout'] = PIPE 359s kwargs['stderr'] = PIPE 359s 359s with Popen(*popenargs, **kwargs) as process: 359s try: 359s stdout, stderr = process.communicate(input, timeout=timeout) 359s except TimeoutExpired as exc: 359s process.kill() 359s if _mswindows: 359s # Windows accumulates the output in a single blocking 359s # read() call run on child threads, with the timeout 359s # being done in a join() on those threads. communicate() 359s # _after_ kill() is required to collect that and add it 359s # to the exception. 359s exc.stdout, exc.stderr = process.communicate() 359s else: 359s # POSIX _communicate already populated the output so 359s # far into the TimeoutExpired exception. 359s process.wait() 359s raise 359s except: # Including KeyboardInterrupt, communicate handled that. 359s process.kill() 359s # We don't call process.wait() as .__exit__ does that for us. 359s raise 359s retcode = process.poll() 359s if check and retcode: 359s > raise CalledProcessError(retcode, process.args, 359s output=stdout, stderr=stderr) 359s E subprocess.CalledProcessError: Command '['ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-0/test_command_abspath0/source-repo', '--command=/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-receive-1', '-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', '-o', 'UserKnownHostsFile=/dev/null', 'ssh://127.0.0.1:38796//tmp/pytest-of-ubuntu/pytest-0/test_command_abspath0/dest-repo']' returned non-zero exit status 1. 359s 359s /usr/lib/python3.13/subprocess.py:577: CalledProcessError 359s ----------------------------- Captured stderr call ----------------------------- 359s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests:/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build:/tmp/autopkgtest.J2bpcH/build.NKu/src/debian/python3-ostree-push/usr/lib/python3.13/dist-packages:/usr/lib/python314.zip:/usr/lib/python3.14:/usr/lib/python3.14/lib-dynload:/usr/local/lib/python3.14/dist-packages:/usr/lib/python3/dist-packages 359s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-0/test_command_abspath0/source-repo', '--command=/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-receive-1', '-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', '-o', 'UserKnownHostsFile=/dev/null', 'ssh://127.0.0.1:38796//tmp/pytest-of-ubuntu/pytest-0/test_command_abspath0/dest-repo'] 359s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-0/test_command_abspath0/source-repo', commands=['/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-receive-1'], ssh_options=[]), '-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa' 359s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-0/test_command_abspath0/source-repo', commands=['/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-receive-1'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa']), '-o', 'IdentitiesOnly=yes' 359s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-0/test_command_abspath0/source-repo', commands=['/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-receive-1'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes']), '-o', 'StrictHostKeyChecking=no' 359s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-0/test_command_abspath0/source-repo', commands=['/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-receive-1'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no']), '-o', 'UserKnownHostsFile=/dev/null' 359s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests:/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build:/tmp/autopkgtest.J2bpcH/build.NKu/src/debian/python3-ostree-push/usr/lib/python3.13/dist-packages:/usr/lib/python314.zip:/usr/lib/python3.14:/usr/lib/python3.14/lib-dynload:/usr/local/lib/python3.14/dist-packages:/usr/lib/python3/dist-packages 359s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-push'] 359s usage: ostree-push [-h] [-n] [-p PORT] [-q] [-v] [--repo REPO] 359s [--command COMMAND] [-i OPTION] [--version] 359s DEST [REF ...] 359s ostree-push: error: the following arguments are required: DEST 359s Traceback (most recent call last): 359s File "/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-push", line 14, in 359s push.main() 359s ~~~~~~~~~^^ 359s File "/usr/lib/python3/dist-packages/otpush/push.py", line 574, in main 359s push_refs( 359s ~~~~~~~~~^ 359s repo, 359s ^^^^^ 359s ...<4 lines>... 359s dry_run=args.dry_run, 359s ^^^^^^^^^^^^^^^^^^^^^ 359s ) 359s ^ 359s File "/usr/lib/python3/dist-packages/otpush/push.py", line 349, in push_refs 359s with RepoServer(local_repo_path) as http_server: 359s ~~~~~~~~~~^^^^^^^^^^^^^^^^^ 359s File "/usr/lib/python3/dist-packages/otpush/push.py", line 114, in __enter__ 359s self.start() 359s ~~~~~~~~~~^^ 359s File "/usr/lib/python3/dist-packages/otpush/push.py", line 141, in start 359s self.proc.start() 359s ~~~~~~~~~~~~~~~^^ 359s File "/usr/lib/python3.14/multiprocessing/process.py", line 121, in start 359s self._popen = self._Popen(self) 359s ~~~~~~~~~~~^^^^^^ 359s File "/usr/lib/python3.14/multiprocessing/context.py", line 224, in _Popen 359s return _default_context.get_context().Process._Popen(process_obj) 359s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 359s File "/usr/lib/python3.14/multiprocessing/context.py", line 300, in _Popen 359s return Popen(process_obj) 359s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 35, in __init__ 359s super().__init__(process_obj) 359s ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 359s File "/usr/lib/python3.14/multiprocessing/popen_fork.py", line 20, in __init__ 359s self._launch(process_obj) 359s ~~~~~~~~~~~~^^^^^^^^^^^^^ 359s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 51, in _launch 359s self.sentinel, w = forkserver.connect_to_new_process(self._fds) 359s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ 359s File "/usr/lib/python3.14/multiprocessing/forkserver.py", line 106, in connect_to_new_process 359s connection.answer_challenge( 359s ~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 359s wrapped_client, self._forkserver_authkey) 359s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 359s File "/usr/lib/python3.14/multiprocessing/connection.py", line 970, in answer_challenge 359s message = connection.recv_bytes(256) # reject large message 359s File "/usr/lib/python3.14/multiprocessing/connection.py", line 222, in recv_bytes 359s buf = self._recv_bytes(maxlength) 359s File "/usr/lib/python3.14/multiprocessing/connection.py", line 447, in _recv_bytes 359s buf = self._recv(4) 359s File "/usr/lib/python3.14/multiprocessing/connection.py", line 412, in _recv 359s chunk = read(handle, to_read) 359s ConnectionResetError: [Errno 104] Connection reset by peer 359s _______________________________ test_unversioned _______________________________ 359s 359s source_repo = 359s dest_repo = 359s sshd = SSHServerInfo(proc=, address='127.0.0.1', port=38796) 359s ssh_options = ['-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', ...] 359s cli_env_vars = {'PATH': '/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:...ild.NKu/src/debian/python3-ostree-push/usr/lib/python3.13/dist-packages:/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build'} 359s receive_config_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_unversioned0/ostree-receive.conf') 359s tmp_files_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_unversioned0/files') 359s 359s def test_unversioned(source_repo, dest_repo, sshd, ssh_options, 359s cli_env_vars, receive_config_path, tmp_files_path): 359s """Test push with unversioned ostree-receive""" 359s args = ( 359s source_repo, dest_repo, sshd, ssh_options, cli_env_vars, 359s receive_config_path 359s ) 359s random_commit(source_repo, tmp_files_path, 'test') 359s > run_push(*args, command='ostree-receive') 359s 359s tests/test_full.py:166: 359s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 359s tests/test_full.py:43: in run_push 359s return subprocess.run(cmd, **popen_kwargs) 359s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 359s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 359s 359s input = None, capture_output = False, timeout = None, check = True 359s popenargs = (['ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-0/test_unversioned0/source-repo', '--command=ostree-receive', '-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', ...],) 359s kwargs = {'env': {'ADTTMP': '/tmp/autopkgtest.J2bpcH/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.J2bpcH/pybuild-autopk...': 'python3-defaults/3.14.2-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.J2bpcH/pybuild-autopkgtest-artifacts', ...}} 359s process = 359s stdout = None, stderr = None, retcode = 1 359s 359s def run(*popenargs, 359s input=None, capture_output=False, timeout=None, check=False, **kwargs): 359s """Run command with arguments and return a CompletedProcess instance. 359s 359s The returned instance will have attributes args, returncode, stdout and 359s stderr. By default, stdout and stderr are not captured, and those attributes 359s will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them, 359s or pass capture_output=True to capture both. 359s 359s If check is True and the exit code was non-zero, it raises a 359s CalledProcessError. The CalledProcessError object will have the return code 359s in the returncode attribute, and output & stderr attributes if those streams 359s were captured. 359s 359s If timeout (seconds) is given and the process takes too long, 359s a TimeoutExpired exception will be raised. 359s 359s There is an optional argument "input", allowing you to 359s pass bytes or a string to the subprocess's stdin. If you use this argument 359s you may not also use the Popen constructor's "stdin" argument, as 359s it will be used internally. 359s 359s By default, all communication is in bytes, and therefore any "input" should 359s be bytes, and the stdout and stderr will be bytes. If in text mode, any 359s "input" should be a string, and stdout and stderr will be strings decoded 359s according to locale encoding, or by "encoding" if set. Text mode is 359s triggered by setting any of text, encoding, errors or universal_newlines. 359s 359s The other arguments are the same as for the Popen constructor. 359s """ 359s if input is not None: 359s if kwargs.get('stdin') is not None: 359s raise ValueError('stdin and input arguments may not both be used.') 359s kwargs['stdin'] = PIPE 359s 359s if capture_output: 359s if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None: 359s raise ValueError('stdout and stderr arguments may not be used ' 359s 'with capture_output.') 359s kwargs['stdout'] = PIPE 359s kwargs['stderr'] = PIPE 359s 359s with Popen(*popenargs, **kwargs) as process: 359s try: 359s stdout, stderr = process.communicate(input, timeout=timeout) 359s except TimeoutExpired as exc: 359s process.kill() 359s if _mswindows: 359s # Windows accumulates the output in a single blocking 359s # read() call run on child threads, with the timeout 359s # being done in a join() on those threads. communicate() 359s # _after_ kill() is required to collect that and add it 359s # to the exception. 359s exc.stdout, exc.stderr = process.communicate() 359s else: 359s # POSIX _communicate already populated the output so 359s # far into the TimeoutExpired exception. 359s process.wait() 359s raise 359s except: # Including KeyboardInterrupt, communicate handled that. 359s process.kill() 359s # We don't call process.wait() as .__exit__ does that for us. 359s raise 359s retcode = process.poll() 359s if check and retcode: 359s > raise CalledProcessError(retcode, process.args, 359s output=stdout, stderr=stderr) 359s E subprocess.CalledProcessError: Command '['ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-0/test_unversioned0/source-repo', '--command=ostree-receive', '-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', '-o', 'UserKnownHostsFile=/dev/null', 'ssh://127.0.0.1:38796//tmp/pytest-of-ubuntu/pytest-0/test_unversioned0/dest-repo']' returned non-zero exit status 1. 359s 359s /usr/lib/python3.13/subprocess.py:577: CalledProcessError 359s ----------------------------- Captured stderr call ----------------------------- 359s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests:/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build:/tmp/autopkgtest.J2bpcH/build.NKu/src/debian/python3-ostree-push/usr/lib/python3.13/dist-packages:/usr/lib/python314.zip:/usr/lib/python3.14:/usr/lib/python3.14/lib-dynload:/usr/local/lib/python3.14/dist-packages:/usr/lib/python3/dist-packages 359s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-0/test_unversioned0/source-repo', '--command=ostree-receive', '-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', '-o', 'UserKnownHostsFile=/dev/null', 'ssh://127.0.0.1:38796//tmp/pytest-of-ubuntu/pytest-0/test_unversioned0/dest-repo'] 359s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-0/test_unversioned0/source-repo', commands=['ostree-receive'], ssh_options=[]), '-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa' 359s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-0/test_unversioned0/source-repo', commands=['ostree-receive'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa']), '-o', 'IdentitiesOnly=yes' 359s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-0/test_unversioned0/source-repo', commands=['ostree-receive'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes']), '-o', 'StrictHostKeyChecking=no' 359s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-0/test_unversioned0/source-repo', commands=['ostree-receive'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no']), '-o', 'UserKnownHostsFile=/dev/null' 359s DEBUG:otpush.push:Repo /tmp/pytest-of-ubuntu/pytest-0/test_unversioned0/source-repo has been modified more recently than /tmp/pytest-of-ubuntu/pytest-0/test_unversioned0/source-repo/summary, regenerating 359s INFO:otpush.push:Regenerating summary file 359s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests:/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build:/tmp/autopkgtest.J2bpcH/build.NKu/src/debian/python3-ostree-push/usr/lib/python3.13/dist-packages:/usr/lib/python314.zip:/usr/lib/python3.14:/usr/lib/python3.14/lib-dynload:/usr/local/lib/python3.14/dist-packages:/usr/lib/python3/dist-packages 359s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-push'] 359s usage: ostree-push [-h] [-n] [-p PORT] [-q] [-v] [--repo REPO] 359s [--command COMMAND] [-i OPTION] [--version] 359s DEST [REF ...] 359s ostree-push: error: the following arguments are required: DEST 359s Traceback (most recent call last): 359s File "/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-push", line 14, in 359s push.main() 359s ~~~~~~~~~^^ 359s File "/usr/lib/python3/dist-packages/otpush/push.py", line 574, in main 359s push_refs( 359s ~~~~~~~~~^ 359s repo, 359s ^^^^^ 359s ...<4 lines>... 359s dry_run=args.dry_run, 359s ^^^^^^^^^^^^^^^^^^^^^ 359s ) 359s ^ 359s File "/usr/lib/python3/dist-packages/otpush/push.py", line 349, in push_refs 359s with RepoServer(local_repo_path) as http_server: 359s ~~~~~~~~~~^^^^^^^^^^^^^^^^^ 359s File "/usr/lib/python3/dist-packages/otpush/push.py", line 114, in __enter__ 359s self.start() 359s ~~~~~~~~~~^^ 359s File "/usr/lib/python3/dist-packages/otpush/push.py", line 141, in start 359s self.proc.start() 359s ~~~~~~~~~~~~~~~^^ 359s File "/usr/lib/python3.14/multiprocessing/process.py", line 121, in start 359s self._popen = self._Popen(self) 359s ~~~~~~~~~~~^^^^^^ 359s File "/usr/lib/python3.14/multiprocessing/context.py", line 224, in _Popen 359s return _default_context.get_context().Process._Popen(process_obj) 359s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 359s File "/usr/lib/python3.14/multiprocessing/context.py", line 300, in _Popen 359s return Popen(process_obj) 359s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 35, in __init__ 359s super().__init__(process_obj) 359s ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 359s File "/usr/lib/python3.14/multiprocessing/popen_fork.py", line 20, in __init__ 359s self._launch(process_obj) 359s ~~~~~~~~~~~~^^^^^^^^^^^^^ 359s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 51, in _launch 359s self.sentinel, w = forkserver.connect_to_new_process(self._fds) 359s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ 359s File "/usr/lib/python3.14/multiprocessing/forkserver.py", line 106, in connect_to_new_process 359s connection.answer_challenge( 359s ~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 359s wrapped_client, self._forkserver_authkey) 359s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 359s File "/usr/lib/python3.14/multiprocessing/connection.py", line 970, in answer_challenge 359s message = connection.recv_bytes(256) # reject large message 359s File "/usr/lib/python3.14/multiprocessing/connection.py", line 222, in recv_bytes 359s buf = self._recv_bytes(maxlength) 359s File "/usr/lib/python3.14/multiprocessing/connection.py", line 447, in _recv_bytes 359s buf = self._recv(4) 359s File "/usr/lib/python3.14/multiprocessing/connection.py", line 412, in _recv 359s chunk = read(handle, to_read) 359s ConnectionResetError: [Errno 104] Connection reset by peer 359s =============================== warnings summary =============================== 359s tests/test_push.py: 10 warnings 359s tests/test_receive.py: 19 warnings 359s /usr/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=3049) is multi-threaded, use of fork() may lead to deadlocks in the child. 359s self.pid = os.fork() 359s 359s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 359s =========================== short test summary info ============================ 359s FAILED tests/test_full.py::test_no_commits - subprocess.CalledProcessError: C... 359s FAILED tests/test_full.py::test_basic - subprocess.CalledProcessError: Comman... 359s FAILED tests/test_full.py::test_dry_run - subprocess.CalledProcessError: Comm... 359s FAILED tests/test_full.py::test_scp_dest - subprocess.CalledProcessError: Com... 359s FAILED tests/test_full.py::test_command_abspath - subprocess.CalledProcessErr... 359s FAILED tests/test_full.py::test_unversioned - subprocess.CalledProcessError: ... 359s ============ 6 failed, 89 passed, 4 skipped, 29 warnings in 48.18s ============= 359s E: pybuild pybuild:483: test: plugin pyproject failed with: exit code=1: cd /tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build; python3.13 -m pytest tests 359s I: pybuild base:384: cd /tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build; python3.14 -m pytest tests 362s ============================= test session starts ============================== 362s platform linux -- Python 3.14.2, pytest-9.0.2, pluggy-1.6.0 362s rootdir: /tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build 362s plugins: typeguard-4.4.4 362s collected 99 items 362s 375s tests/test_full.py FFFFFF [ 6%] 393s tests/test_push.py ................................. [ 39%] 412s tests/test_receive.py ...........ss...s................................. [ 89%] 412s . [ 90%] 417s tests/test_receive_legacy.py .. [ 92%] 419s tests/test_receive_shell.py .....s [ 98%] 420s tests/test_sshd.py . [100%]Received signal 15; terminating. 420s 420s 420s =================================== FAILURES =================================== 420s _______________________________ test_no_commits ________________________________ 420s 420s source_repo = 420s dest_repo = 420s sshd = SSHServerInfo(proc=, address='127.0.0.1', port=41056) 420s ssh_options = ['-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', ...] 420s cli_env_vars = {'PATH': '/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:...ild.NKu/src/debian/python3-ostree-push/usr/lib/python3.14/dist-packages:/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build'} 420s receive_config_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-1/test_no_commits0/ostree-receive.conf') 420s capfd = <_pytest.capture.CaptureFixture object at 0x3ffad809940> 420s 420s def test_no_commits(source_repo, dest_repo, sshd, ssh_options, 420s cli_env_vars, receive_config_path, capfd): 420s """Test push with no commits in source repo""" 420s args = ( 420s source_repo, dest_repo, sshd, ssh_options, cli_env_vars, 420s receive_config_path 420s ) 420s 420s > run_push(*args) 420s 420s tests/test_full.py:54: 420s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 420s tests/test_full.py:43: in run_push 420s return subprocess.run(cmd, **popen_kwargs) 420s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 420s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 420s 420s input = None, capture_output = False, timeout = None, check = True 420s popenargs = (['ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-1/test_no_commits0/source-repo', '--command=ostree-receive-1', '-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', ...],) 420s kwargs = {'env': {'ADTTMP': '/tmp/autopkgtest.J2bpcH/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.J2bpcH/pybuild-autopk...': 'python3-defaults/3.14.2-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.J2bpcH/pybuild-autopkgtest-artifacts', ...}} 420s process = 420s stdout = None, stderr = None, retcode = 1 420s 420s def run(*popenargs, 420s input=None, capture_output=False, timeout=None, check=False, **kwargs): 420s """Run command with arguments and return a CompletedProcess instance. 420s 420s The returned instance will have attributes args, returncode, stdout and 420s stderr. By default, stdout and stderr are not captured, and those attributes 420s will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them, 420s or pass capture_output=True to capture both. 420s 420s If check is True and the exit code was non-zero, it raises a 420s CalledProcessError. The CalledProcessError object will have the return code 420s in the returncode attribute, and output & stderr attributes if those streams 420s were captured. 420s 420s If timeout (seconds) is given and the process takes too long, 420s a TimeoutExpired exception will be raised. 420s 420s There is an optional argument "input", allowing you to 420s pass bytes or a string to the subprocess's stdin. If you use this argument 420s you may not also use the Popen constructor's "stdin" argument, as 420s it will be used internally. 420s 420s By default, all communication is in bytes, and therefore any "input" should 420s be bytes, and the stdout and stderr will be bytes. If in text mode, any 420s "input" should be a string, and stdout and stderr will be strings decoded 420s according to locale encoding, or by "encoding" if set. Text mode is 420s triggered by setting any of text, encoding, errors or universal_newlines. 420s 420s The other arguments are the same as for the Popen constructor. 420s """ 420s if input is not None: 420s if kwargs.get('stdin') is not None: 420s raise ValueError('stdin and input arguments may not both be used.') 420s kwargs['stdin'] = PIPE 420s 420s if capture_output: 420s if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None: 420s raise ValueError('stdout and stderr arguments may not be used ' 420s 'with capture_output.') 420s kwargs['stdout'] = PIPE 420s kwargs['stderr'] = PIPE 420s 420s with Popen(*popenargs, **kwargs) as process: 420s try: 420s stdout, stderr = process.communicate(input, timeout=timeout) 420s except TimeoutExpired as exc: 420s process.kill() 420s if _mswindows: 420s # Windows accumulates the output in a single blocking 420s # read() call run on child threads, with the timeout 420s # being done in a join() on those threads. communicate() 420s # _after_ kill() is required to collect that and add it 420s # to the exception. 420s exc.stdout, exc.stderr = process.communicate() 420s else: 420s # POSIX _communicate already populated the output so 420s # far into the TimeoutExpired exception. 420s process.wait() 420s raise 420s except: # Including KeyboardInterrupt, communicate handled that. 420s process.kill() 420s # We don't call process.wait() as .__exit__ does that for us. 420s raise 420s retcode = process.poll() 420s if check and retcode: 420s > raise CalledProcessError(retcode, process.args, 420s output=stdout, stderr=stderr) 420s E subprocess.CalledProcessError: Command '['ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-1/test_no_commits0/source-repo', '--command=ostree-receive-1', '-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', '-o', 'UserKnownHostsFile=/dev/null', 'ssh://127.0.0.1:41056//tmp/pytest-of-ubuntu/pytest-1/test_no_commits0/dest-repo']' returned non-zero exit status 1. 420s 420s /usr/lib/python3.14/subprocess.py:577: CalledProcessError 420s ---------------------------- Captured stderr setup ----------------------------- 420s Server listening on 127.0.0.1 port 41056. 420s Connection closed by 127.0.0.1 port 48144 420s ----------------------------- Captured stderr call ----------------------------- 420s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests:/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build:/tmp/autopkgtest.J2bpcH/build.NKu/src/debian/python3-ostree-push/usr/lib/python3.14/dist-packages:/usr/lib/python314.zip:/usr/lib/python3.14:/usr/lib/python3.14/lib-dynload:/usr/local/lib/python3.14/dist-packages:/usr/lib/python3/dist-packages 420s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-1/test_no_commits0/source-repo', '--command=ostree-receive-1', '-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', '-o', 'UserKnownHostsFile=/dev/null', 'ssh://127.0.0.1:41056//tmp/pytest-of-ubuntu/pytest-1/test_no_commits0/dest-repo'] 420s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-1/test_no_commits0/source-repo', commands=['ostree-receive-1'], ssh_options=[]), '-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa' 420s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-1/test_no_commits0/source-repo', commands=['ostree-receive-1'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa']), '-o', 'IdentitiesOnly=yes' 420s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-1/test_no_commits0/source-repo', commands=['ostree-receive-1'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes']), '-o', 'StrictHostKeyChecking=no' 420s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-1/test_no_commits0/source-repo', commands=['ostree-receive-1'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no']), '-o', 'UserKnownHostsFile=/dev/null' 420s DEBUG:otpush.push:/tmp/pytest-of-ubuntu/pytest-1/test_no_commits0/source-repo/summary does not exist, regenerating 420s INFO:otpush.push:Regenerating summary file 420s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests:/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build:/tmp/autopkgtest.J2bpcH/build.NKu/src/debian/python3-ostree-push/usr/lib/python3.14/dist-packages:/usr/lib/python314.zip:/usr/lib/python3.14:/usr/lib/python3.14/lib-dynload:/usr/local/lib/python3.14/dist-packages:/usr/lib/python3/dist-packages 420s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-push'] 420s usage: ostree-push [-h] [-n] [-p PORT] [-q] [-v] [--repo REPO] 420s [--command COMMAND] [-i OPTION] [--version] 420s DEST [REF ...] 420s ostree-push: error: the following arguments are required: DEST 420s Traceback (most recent call last): 420s File "/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-push", line 14, in 420s push.main() 420s ~~~~~~~~~^^ 420s File "/usr/lib/python3/dist-packages/otpush/push.py", line 574, in main 420s push_refs( 420s ~~~~~~~~~^ 420s repo, 420s ^^^^^ 420s ...<4 lines>... 420s dry_run=args.dry_run, 420s ^^^^^^^^^^^^^^^^^^^^^ 420s ) 420s ^ 420s File "/usr/lib/python3/dist-packages/otpush/push.py", line 349, in push_refs 420s with RepoServer(local_repo_path) as http_server: 420s ~~~~~~~~~~^^^^^^^^^^^^^^^^^ 420s File "/usr/lib/python3/dist-packages/otpush/push.py", line 114, in __enter__ 420s self.start() 420s ~~~~~~~~~~^^ 420s File "/usr/lib/python3/dist-packages/otpush/push.py", line 141, in start 420s self.proc.start() 420s ~~~~~~~~~~~~~~~^^ 420s File "/usr/lib/python3.14/multiprocessing/process.py", line 121, in start 420s self._popen = self._Popen(self) 420s ~~~~~~~~~~~^^^^^^ 420s File "/usr/lib/python3.14/multiprocessing/context.py", line 224, in _Popen 420s return _default_context.get_context().Process._Popen(process_obj) 420s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 420s File "/usr/lib/python3.14/multiprocessing/context.py", line 300, in _Popen 420s return Popen(process_obj) 420s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 35, in __init__ 420s super().__init__(process_obj) 420s ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 420s File "/usr/lib/python3.14/multiprocessing/popen_fork.py", line 20, in __init__ 420s self._launch(process_obj) 420s ~~~~~~~~~~~~^^^^^^^^^^^^^ 420s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 51, in _launch 420s self.sentinel, w = forkserver.connect_to_new_process(self._fds) 420s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ 420s File "/usr/lib/python3.14/multiprocessing/forkserver.py", line 106, in connect_to_new_process 420s connection.answer_challenge( 420s ~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 420s wrapped_client, self._forkserver_authkey) 420s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 420s File "/usr/lib/python3.14/multiprocessing/connection.py", line 970, in answer_challenge 420s message = connection.recv_bytes(256) # reject large message 420s File "/usr/lib/python3.14/multiprocessing/connection.py", line 222, in recv_bytes 420s buf = self._recv_bytes(maxlength) 420s File "/usr/lib/python3.14/multiprocessing/connection.py", line 447, in _recv_bytes 420s buf = self._recv(4) 420s File "/usr/lib/python3.14/multiprocessing/connection.py", line 412, in _recv 420s chunk = read(handle, to_read) 420s ConnectionResetError: [Errno 104] Connection reset by peer 420s __________________________________ test_basic __________________________________ 420s 420s source_repo = 420s dest_repo = 420s sshd = SSHServerInfo(proc=, address='127.0.0.1', port=41056) 420s ssh_options = ['-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', ...] 420s cli_env_vars = {'PATH': '/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:...ild.NKu/src/debian/python3-ostree-push/usr/lib/python3.14/dist-packages:/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build'} 420s receive_config_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-1/test_basic0/ostree-receive.conf') 420s tmp_files_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-1/test_basic0/files') 420s capfd = <_pytest.capture.CaptureFixture object at 0x3ffad878190> 420s 420s def test_basic(source_repo, dest_repo, sshd, ssh_options, cli_env_vars, 420s receive_config_path, tmp_files_path, capfd): 420s """Test push with one commit in source repo""" 420s args = ( 420s source_repo, dest_repo, sshd, ssh_options, cli_env_vars, 420s receive_config_path 420s ) 420s 420s rev = random_commit(source_repo, tmp_files_path, 'test') 420s source_content = get_content_checksum(source_repo, rev) 420s 420s wipe_repo(dest_repo) 420s > run_push(*args) 420s 420s tests/test_full.py:79: 420s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 420s tests/test_full.py:43: in run_push 420s return subprocess.run(cmd, **popen_kwargs) 420s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 420s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 420s 420s input = None, capture_output = False, timeout = None, check = True 420s popenargs = (['ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-1/test_basic0/source-repo', '--command=ostree-receive-1', '-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', ...],) 420s kwargs = {'env': {'ADTTMP': '/tmp/autopkgtest.J2bpcH/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.J2bpcH/pybuild-autopk...': 'python3-defaults/3.14.2-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.J2bpcH/pybuild-autopkgtest-artifacts', ...}} 420s process = 420s stdout = None, stderr = None, retcode = 1 420s 420s def run(*popenargs, 420s input=None, capture_output=False, timeout=None, check=False, **kwargs): 420s """Run command with arguments and return a CompletedProcess instance. 420s 420s The returned instance will have attributes args, returncode, stdout and 420s stderr. By default, stdout and stderr are not captured, and those attributes 420s will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them, 420s or pass capture_output=True to capture both. 420s 420s If check is True and the exit code was non-zero, it raises a 420s CalledProcessError. The CalledProcessError object will have the return code 420s in the returncode attribute, and output & stderr attributes if those streams 420s were captured. 420s 420s If timeout (seconds) is given and the process takes too long, 420s a TimeoutExpired exception will be raised. 420s 420s There is an optional argument "input", allowing you to 420s pass bytes or a string to the subprocess's stdin. If you use this argument 420s you may not also use the Popen constructor's "stdin" argument, as 420s it will be used internally. 420s 420s By default, all communication is in bytes, and therefore any "input" should 420s be bytes, and the stdout and stderr will be bytes. If in text mode, any 420s "input" should be a string, and stdout and stderr will be strings decoded 420s according to locale encoding, or by "encoding" if set. Text mode is 420s triggered by setting any of text, encoding, errors or universal_newlines. 420s 420s The other arguments are the same as for the Popen constructor. 420s """ 420s if input is not None: 420s if kwargs.get('stdin') is not None: 420s raise ValueError('stdin and input arguments may not both be used.') 420s kwargs['stdin'] = PIPE 420s 420s if capture_output: 420s if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None: 420s raise ValueError('stdout and stderr arguments may not be used ' 420s 'with capture_output.') 420s kwargs['stdout'] = PIPE 420s kwargs['stderr'] = PIPE 420s 420s with Popen(*popenargs, **kwargs) as process: 420s try: 420s stdout, stderr = process.communicate(input, timeout=timeout) 420s except TimeoutExpired as exc: 420s process.kill() 420s if _mswindows: 420s # Windows accumulates the output in a single blocking 420s # read() call run on child threads, with the timeout 420s # being done in a join() on those threads. communicate() 420s # _after_ kill() is required to collect that and add it 420s # to the exception. 420s exc.stdout, exc.stderr = process.communicate() 420s else: 420s # POSIX _communicate already populated the output so 420s # far into the TimeoutExpired exception. 420s process.wait() 420s raise 420s except: # Including KeyboardInterrupt, communicate handled that. 420s process.kill() 420s # We don't call process.wait() as .__exit__ does that for us. 420s raise 420s retcode = process.poll() 420s if check and retcode: 420s > raise CalledProcessError(retcode, process.args, 420s output=stdout, stderr=stderr) 420s E subprocess.CalledProcessError: Command '['ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-1/test_basic0/source-repo', '--command=ostree-receive-1', '-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', '-o', 'UserKnownHostsFile=/dev/null', 'ssh://127.0.0.1:41056//tmp/pytest-of-ubuntu/pytest-1/test_basic0/dest-repo']' returned non-zero exit status 1. 420s 420s /usr/lib/python3.14/subprocess.py:577: CalledProcessError 420s ----------------------------- Captured stderr call ----------------------------- 420s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests:/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build:/tmp/autopkgtest.J2bpcH/build.NKu/src/debian/python3-ostree-push/usr/lib/python3.14/dist-packages:/usr/lib/python314.zip:/usr/lib/python3.14:/usr/lib/python3.14/lib-dynload:/usr/local/lib/python3.14/dist-packages:/usr/lib/python3/dist-packages 420s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-1/test_basic0/source-repo', '--command=ostree-receive-1', '-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', '-o', 'UserKnownHostsFile=/dev/null', 'ssh://127.0.0.1:41056//tmp/pytest-of-ubuntu/pytest-1/test_basic0/dest-repo'] 420s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-1/test_basic0/source-repo', commands=['ostree-receive-1'], ssh_options=[]), '-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa' 420s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-1/test_basic0/source-repo', commands=['ostree-receive-1'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa']), '-o', 'IdentitiesOnly=yes' 420s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-1/test_basic0/source-repo', commands=['ostree-receive-1'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes']), '-o', 'StrictHostKeyChecking=no' 420s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-1/test_basic0/source-repo', commands=['ostree-receive-1'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no']), '-o', 'UserKnownHostsFile=/dev/null' 420s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests:/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build:/tmp/autopkgtest.J2bpcH/build.NKu/src/debian/python3-ostree-push/usr/lib/python3.14/dist-packages:/usr/lib/python314.zip:/usr/lib/python3.14:/usr/lib/python3.14/lib-dynload:/usr/local/lib/python3.14/dist-packages:/usr/lib/python3/dist-packages 420s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-push'] 420s usage: ostree-push [-h] [-n] [-p PORT] [-q] [-v] [--repo REPO] 420s [--command COMMAND] [-i OPTION] [--version] 420s DEST [REF ...] 420s ostree-push: error: the following arguments are required: DEST 420s Traceback (most recent call last): 420s File "/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-push", line 14, in 420s push.main() 420s ~~~~~~~~~^^ 420s File "/usr/lib/python3/dist-packages/otpush/push.py", line 574, in main 420s push_refs( 420s ~~~~~~~~~^ 420s repo, 420s ^^^^^ 420s ...<4 lines>... 420s dry_run=args.dry_run, 420s ^^^^^^^^^^^^^^^^^^^^^ 420s ) 420s ^ 420s File "/usr/lib/python3/dist-packages/otpush/push.py", line 349, in push_refs 420s with RepoServer(local_repo_path) as http_server: 420s ~~~~~~~~~~^^^^^^^^^^^^^^^^^ 420s File "/usr/lib/python3/dist-packages/otpush/push.py", line 114, in __enter__ 420s self.start() 420s ~~~~~~~~~~^^ 420s File "/usr/lib/python3/dist-packages/otpush/push.py", line 141, in start 420s self.proc.start() 420s ~~~~~~~~~~~~~~~^^ 420s File "/usr/lib/python3.14/multiprocessing/process.py", line 121, in start 420s self._popen = self._Popen(self) 420s ~~~~~~~~~~~^^^^^^ 420s File "/usr/lib/python3.14/multiprocessing/context.py", line 224, in _Popen 420s return _default_context.get_context().Process._Popen(process_obj) 420s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 420s File "/usr/lib/python3.14/multiprocessing/context.py", line 300, in _Popen 420s return Popen(process_obj) 420s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 35, in __init__ 420s super().__init__(process_obj) 420s ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 420s File "/usr/lib/python3.14/multiprocessing/popen_fork.py", line 20, in __init__ 420s self._launch(process_obj) 420s ~~~~~~~~~~~~^^^^^^^^^^^^^ 420s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 51, in _launch 420s self.sentinel, w = forkserver.connect_to_new_process(self._fds) 420s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ 420s File "/usr/lib/python3.14/multiprocessing/forkserver.py", line 106, in connect_to_new_process 420s connection.answer_challenge( 420s ~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 420s wrapped_client, self._forkserver_authkey) 420s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 420s File "/usr/lib/python3.14/multiprocessing/connection.py", line 970, in answer_challenge 420s message = connection.recv_bytes(256) # reject large message 420s File "/usr/lib/python3.14/multiprocessing/connection.py", line 222, in recv_bytes 420s buf = self._recv_bytes(maxlength) 420s File "/usr/lib/python3.14/multiprocessing/connection.py", line 447, in _recv_bytes 420s buf = self._recv(4) 420s File "/usr/lib/python3.14/multiprocessing/connection.py", line 412, in _recv 420s chunk = read(handle, to_read) 420s ConnectionResetError: [Errno 104] Connection reset by peer 420s _________________________________ test_dry_run _________________________________ 420s 420s source_repo = 420s dest_repo = 420s sshd = SSHServerInfo(proc=, address='127.0.0.1', port=41056) 420s ssh_options = ['-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', ...] 420s cli_env_vars = {'PATH': '/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:...ild.NKu/src/debian/python3-ostree-push/usr/lib/python3.14/dist-packages:/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build'} 420s receive_config_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-1/test_dry_run0/ostree-receive.conf') 420s tmp_files_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-1/test_dry_run0/files') 420s 420s def test_dry_run(source_repo, dest_repo, sshd, ssh_options, cli_env_vars, 420s receive_config_path, tmp_files_path): 420s """Test push dry run""" 420s args = ( 420s source_repo, dest_repo, sshd, ssh_options, cli_env_vars, 420s receive_config_path 420s ) 420s 420s random_commit(source_repo, tmp_files_path, 'test') 420s 420s wipe_repo(dest_repo) 420s > run_push(*args, options=['-n']) 420s 420s tests/test_full.py:114: 420s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 420s tests/test_full.py:43: in run_push 420s return subprocess.run(cmd, **popen_kwargs) 420s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 420s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 420s 420s input = None, capture_output = False, timeout = None, check = True 420s popenargs = (['ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-1/test_dry_run0/source-repo', '--command=ostree-receive-1', '-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', ...],) 420s kwargs = {'env': {'ADTTMP': '/tmp/autopkgtest.J2bpcH/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.J2bpcH/pybuild-autopk...': 'python3-defaults/3.14.2-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.J2bpcH/pybuild-autopkgtest-artifacts', ...}} 420s process = 420s stdout = None, stderr = None, retcode = 1 420s 420s def run(*popenargs, 420s input=None, capture_output=False, timeout=None, check=False, **kwargs): 420s """Run command with arguments and return a CompletedProcess instance. 420s 420s The returned instance will have attributes args, returncode, stdout and 420s stderr. By default, stdout and stderr are not captured, and those attributes 420s will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them, 420s or pass capture_output=True to capture both. 420s 420s If check is True and the exit code was non-zero, it raises a 420s CalledProcessError. The CalledProcessError object will have the return code 420s in the returncode attribute, and output & stderr attributes if those streams 420s were captured. 420s 420s If timeout (seconds) is given and the process takes too long, 420s a TimeoutExpired exception will be raised. 420s 420s There is an optional argument "input", allowing you to 420s pass bytes or a string to the subprocess's stdin. If you use this argument 420s you may not also use the Popen constructor's "stdin" argument, as 420s it will be used internally. 420s 420s By default, all communication is in bytes, and therefore any "input" should 420s be bytes, and the stdout and stderr will be bytes. If in text mode, any 420s "input" should be a string, and stdout and stderr will be strings decoded 420s according to locale encoding, or by "encoding" if set. Text mode is 420s triggered by setting any of text, encoding, errors or universal_newlines. 420s 420s The other arguments are the same as for the Popen constructor. 420s """ 420s if input is not None: 420s if kwargs.get('stdin') is not None: 420s raise ValueError('stdin and input arguments may not both be used.') 420s kwargs['stdin'] = PIPE 420s 420s if capture_output: 420s if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None: 420s raise ValueError('stdout and stderr arguments may not be used ' 420s 'with capture_output.') 420s kwargs['stdout'] = PIPE 420s kwargs['stderr'] = PIPE 420s 420s with Popen(*popenargs, **kwargs) as process: 420s try: 420s stdout, stderr = process.communicate(input, timeout=timeout) 420s except TimeoutExpired as exc: 420s process.kill() 420s if _mswindows: 420s # Windows accumulates the output in a single blocking 420s # read() call run on child threads, with the timeout 420s # being done in a join() on those threads. communicate() 420s # _after_ kill() is required to collect that and add it 420s # to the exception. 420s exc.stdout, exc.stderr = process.communicate() 420s else: 420s # POSIX _communicate already populated the output so 420s # far into the TimeoutExpired exception. 420s process.wait() 420s raise 420s except: # Including KeyboardInterrupt, communicate handled that. 420s process.kill() 420s # We don't call process.wait() as .__exit__ does that for us. 420s raise 420s retcode = process.poll() 420s if check and retcode: 420s > raise CalledProcessError(retcode, process.args, 420s output=stdout, stderr=stderr) 420s E subprocess.CalledProcessError: Command '['ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-1/test_dry_run0/source-repo', '--command=ostree-receive-1', '-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', '-o', 'UserKnownHostsFile=/dev/null', '-n', 'ssh://127.0.0.1:41056//tmp/pytest-of-ubuntu/pytest-1/test_dry_run0/dest-repo']' returned non-zero exit status 1. 420s 420s /usr/lib/python3.14/subprocess.py:577: CalledProcessError 420s ----------------------------- Captured stderr call ----------------------------- 420s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests:/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build:/tmp/autopkgtest.J2bpcH/build.NKu/src/debian/python3-ostree-push/usr/lib/python3.14/dist-packages:/usr/lib/python314.zip:/usr/lib/python3.14:/usr/lib/python3.14/lib-dynload:/usr/local/lib/python3.14/dist-packages:/usr/lib/python3/dist-packages 420s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-1/test_dry_run0/source-repo', '--command=ostree-receive-1', '-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', '-o', 'UserKnownHostsFile=/dev/null', '-n', 'ssh://127.0.0.1:41056//tmp/pytest-of-ubuntu/pytest-1/test_dry_run0/dest-repo'] 420s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-1/test_dry_run0/source-repo', commands=['ostree-receive-1'], ssh_options=[]), '-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa' 420s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-1/test_dry_run0/source-repo', commands=['ostree-receive-1'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa']), '-o', 'IdentitiesOnly=yes' 420s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-1/test_dry_run0/source-repo', commands=['ostree-receive-1'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes']), '-o', 'StrictHostKeyChecking=no' 420s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-1/test_dry_run0/source-repo', commands=['ostree-receive-1'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no']), '-o', 'UserKnownHostsFile=/dev/null' 420s DEBUG:otpush.push:Repo /tmp/pytest-of-ubuntu/pytest-1/test_dry_run0/source-repo has been modified more recently than /tmp/pytest-of-ubuntu/pytest-1/test_dry_run0/source-repo/summary, regenerating 420s INFO:otpush.push:Regenerating summary file 420s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests:/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build:/tmp/autopkgtest.J2bpcH/build.NKu/src/debian/python3-ostree-push/usr/lib/python3.14/dist-packages:/usr/lib/python314.zip:/usr/lib/python3.14:/usr/lib/python3.14/lib-dynload:/usr/local/lib/python3.14/dist-packages:/usr/lib/python3/dist-packages 420s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-push'] 420s usage: ostree-push [-h] [-n] [-p PORT] [-q] [-v] [--repo REPO] 420s [--command COMMAND] [-i OPTION] [--version] 420s DEST [REF ...] 420s ostree-push: error: the following arguments are required: DEST 420s Traceback (most recent call last): 420s File "/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-push", line 14, in 420s push.main() 420s ~~~~~~~~~^^ 420s File "/usr/lib/python3/dist-packages/otpush/push.py", line 574, in main 420s push_refs( 420s ~~~~~~~~~^ 420s repo, 420s ^^^^^ 420s ...<4 lines>... 420s dry_run=args.dry_run, 420s ^^^^^^^^^^^^^^^^^^^^^ 420s ) 420s ^ 420s File "/usr/lib/python3/dist-packages/otpush/push.py", line 349, in push_refs 420s with RepoServer(local_repo_path) as http_server: 420s ~~~~~~~~~~^^^^^^^^^^^^^^^^^ 420s File "/usr/lib/python3/dist-packages/otpush/push.py", line 114, in __enter__ 420s self.start() 420s ~~~~~~~~~~^^ 420s File "/usr/lib/python3/dist-packages/otpush/push.py", line 141, in start 420s self.proc.start() 420s ~~~~~~~~~~~~~~~^^ 420s File "/usr/lib/python3.14/multiprocessing/process.py", line 121, in start 420s self._popen = self._Popen(self) 420s ~~~~~~~~~~~^^^^^^ 420s File "/usr/lib/python3.14/multiprocessing/context.py", line 224, in _Popen 420s return _default_context.get_context().Process._Popen(process_obj) 420s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 420s File "/usr/lib/python3.14/multiprocessing/context.py", line 300, in _Popen 420s return Popen(process_obj) 420s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 35, in __init__ 420s super().__init__(process_obj) 420s ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 420s File "/usr/lib/python3.14/multiprocessing/popen_fork.py", line 20, in __init__ 420s self._launch(process_obj) 420s ~~~~~~~~~~~~^^^^^^^^^^^^^ 420s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 51, in _launch 420s self.sentinel, w = forkserver.connect_to_new_process(self._fds) 420s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ 420s File "/usr/lib/python3.14/multiprocessing/forkserver.py", line 106, in connect_to_new_process 420s connection.answer_challenge( 420s ~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 420s wrapped_client, self._forkserver_authkey) 420s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 420s File "/usr/lib/python3.14/multiprocessing/connection.py", line 970, in answer_challenge 420s message = connection.recv_bytes(256) # reject large message 420s File "/usr/lib/python3.14/multiprocessing/connection.py", line 222, in recv_bytes 420s buf = self._recv_bytes(maxlength) 420s File "/usr/lib/python3.14/multiprocessing/connection.py", line 447, in _recv_bytes 420s buf = self._recv(4) 420s File "/usr/lib/python3.14/multiprocessing/connection.py", line 412, in _recv 420s chunk = read(handle, to_read) 420s ConnectionResetError: [Errno 104] Connection reset by peer 420s ________________________________ test_scp_dest _________________________________ 420s 420s source_repo = 420s dest_repo = 420s sshd = SSHServerInfo(proc=, address='127.0.0.1', port=41056) 420s ssh_options = ['-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', ...] 420s cli_env_vars = {'PATH': '/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:...ild.NKu/src/debian/python3-ostree-push/usr/lib/python3.14/dist-packages:/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build'} 420s receive_config_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-1/test_scp_dest0/ostree-receive.conf') 420s tmp_files_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-1/test_scp_dest0/files') 420s 420s def test_scp_dest(source_repo, dest_repo, sshd, ssh_options, cli_env_vars, 420s receive_config_path, tmp_files_path): 420s """Test push with scp style destination""" 420s args = ( 420s source_repo, dest_repo, sshd, ssh_options, cli_env_vars, 420s receive_config_path 420s ) 420s dest = f'{sshd.address}:{dest_repo.path}' 420s options = ['-p', str(sshd.port)] 420s 420s random_commit(source_repo, tmp_files_path, 'test') 420s > run_push(*args, dest=dest, options=options) 420s 420s tests/test_full.py:140: 420s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 420s tests/test_full.py:43: in run_push 420s return subprocess.run(cmd, **popen_kwargs) 420s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 420s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 420s 420s input = None, capture_output = False, timeout = None, check = True 420s popenargs = (['ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-1/test_scp_dest0/source-repo', '--command=ostree-receive-1', '-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', ...],) 420s kwargs = {'env': {'ADTTMP': '/tmp/autopkgtest.J2bpcH/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.J2bpcH/pybuild-autopk...': 'python3-defaults/3.14.2-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.J2bpcH/pybuild-autopkgtest-artifacts', ...}} 420s process = 420s stdout = None, stderr = None, retcode = 1 420s 420s def run(*popenargs, 420s input=None, capture_output=False, timeout=None, check=False, **kwargs): 420s """Run command with arguments and return a CompletedProcess instance. 420s 420s The returned instance will have attributes args, returncode, stdout and 420s stderr. By default, stdout and stderr are not captured, and those attributes 420s will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them, 420s or pass capture_output=True to capture both. 420s 420s If check is True and the exit code was non-zero, it raises a 420s CalledProcessError. The CalledProcessError object will have the return code 420s in the returncode attribute, and output & stderr attributes if those streams 420s were captured. 420s 420s If timeout (seconds) is given and the process takes too long, 420s a TimeoutExpired exception will be raised. 420s 420s There is an optional argument "input", allowing you to 420s pass bytes or a string to the subprocess's stdin. If you use this argument 420s you may not also use the Popen constructor's "stdin" argument, as 420s it will be used internally. 420s 420s By default, all communication is in bytes, and therefore any "input" should 420s be bytes, and the stdout and stderr will be bytes. If in text mode, any 420s "input" should be a string, and stdout and stderr will be strings decoded 420s according to locale encoding, or by "encoding" if set. Text mode is 420s triggered by setting any of text, encoding, errors or universal_newlines. 420s 420s The other arguments are the same as for the Popen constructor. 420s """ 420s if input is not None: 420s if kwargs.get('stdin') is not None: 420s raise ValueError('stdin and input arguments may not both be used.') 420s kwargs['stdin'] = PIPE 420s 420s if capture_output: 420s if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None: 420s raise ValueError('stdout and stderr arguments may not be used ' 420s 'with capture_output.') 420s kwargs['stdout'] = PIPE 420s kwargs['stderr'] = PIPE 420s 420s with Popen(*popenargs, **kwargs) as process: 420s try: 420s stdout, stderr = process.communicate(input, timeout=timeout) 420s except TimeoutExpired as exc: 420s process.kill() 420s if _mswindows: 420s # Windows accumulates the output in a single blocking 420s # read() call run on child threads, with the timeout 420s # being done in a join() on those threads. communicate() 420s # _after_ kill() is required to collect that and add it 420s # to the exception. 420s exc.stdout, exc.stderr = process.communicate() 420s else: 420s # POSIX _communicate already populated the output so 420s # far into the TimeoutExpired exception. 420s process.wait() 420s raise 420s except: # Including KeyboardInterrupt, communicate handled that. 420s process.kill() 420s # We don't call process.wait() as .__exit__ does that for us. 420s raise 420s retcode = process.poll() 420s if check and retcode: 420s > raise CalledProcessError(retcode, process.args, 420s output=stdout, stderr=stderr) 420s E subprocess.CalledProcessError: Command '['ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-1/test_scp_dest0/source-repo', '--command=ostree-receive-1', '-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', '-o', 'UserKnownHostsFile=/dev/null', '-p', '41056', '127.0.0.1:/tmp/pytest-of-ubuntu/pytest-1/test_scp_dest0/dest-repo']' returned non-zero exit status 1. 420s 420s /usr/lib/python3.14/subprocess.py:577: CalledProcessError 420s ----------------------------- Captured stderr call ----------------------------- 420s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests:/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build:/tmp/autopkgtest.J2bpcH/build.NKu/src/debian/python3-ostree-push/usr/lib/python3.14/dist-packages:/usr/lib/python314.zip:/usr/lib/python3.14:/usr/lib/python3.14/lib-dynload:/usr/local/lib/python3.14/dist-packages:/usr/lib/python3/dist-packages 420s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-1/test_scp_dest0/source-repo', '--command=ostree-receive-1', '-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', '-o', 'UserKnownHostsFile=/dev/null', '-p', '41056', '127.0.0.1:/tmp/pytest-of-ubuntu/pytest-1/test_scp_dest0/dest-repo'] 420s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-1/test_scp_dest0/source-repo', commands=['ostree-receive-1'], ssh_options=[]), '-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa' 420s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-1/test_scp_dest0/source-repo', commands=['ostree-receive-1'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa']), '-o', 'IdentitiesOnly=yes' 420s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-1/test_scp_dest0/source-repo', commands=['ostree-receive-1'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes']), '-o', 'StrictHostKeyChecking=no' 420s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-1/test_scp_dest0/source-repo', commands=['ostree-receive-1'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no']), '-o', 'UserKnownHostsFile=/dev/null' 420s DEBUG:otpush.push:Repo /tmp/pytest-of-ubuntu/pytest-1/test_scp_dest0/source-repo has been modified more recently than /tmp/pytest-of-ubuntu/pytest-1/test_scp_dest0/source-repo/summary, regenerating 420s INFO:otpush.push:Regenerating summary file 420s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests:/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build:/tmp/autopkgtest.J2bpcH/build.NKu/src/debian/python3-ostree-push/usr/lib/python3.14/dist-packages:/usr/lib/python314.zip:/usr/lib/python3.14:/usr/lib/python3.14/lib-dynload:/usr/local/lib/python3.14/dist-packages:/usr/lib/python3/dist-packages 420s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-push'] 420s usage: ostree-push [-h] [-n] [-p PORT] [-q] [-v] [--repo REPO] 420s [--command COMMAND] [-i OPTION] [--version] 420s DEST [REF ...] 420s ostree-push: error: the following arguments are required: DEST 420s Traceback (most recent call last): 420s File "/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-push", line 14, in 420s push.main() 420s ~~~~~~~~~^^ 420s File "/usr/lib/python3/dist-packages/otpush/push.py", line 574, in main 420s push_refs( 420s ~~~~~~~~~^ 420s repo, 420s ^^^^^ 420s ...<4 lines>... 420s dry_run=args.dry_run, 420s ^^^^^^^^^^^^^^^^^^^^^ 420s ) 420s ^ 420s File "/usr/lib/python3/dist-packages/otpush/push.py", line 349, in push_refs 420s with RepoServer(local_repo_path) as http_server: 420s ~~~~~~~~~~^^^^^^^^^^^^^^^^^ 420s File "/usr/lib/python3/dist-packages/otpush/push.py", line 114, in __enter__ 420s self.start() 420s ~~~~~~~~~~^^ 420s File "/usr/lib/python3/dist-packages/otpush/push.py", line 141, in start 420s self.proc.start() 420s ~~~~~~~~~~~~~~~^^ 420s File "/usr/lib/python3.14/multiprocessing/process.py", line 121, in start 420s self._popen = self._Popen(self) 420s ~~~~~~~~~~~^^^^^^ 420s File "/usr/lib/python3.14/multiprocessing/context.py", line 224, in _Popen 420s return _default_context.get_context().Process._Popen(process_obj) 420s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 420s File "/usr/lib/python3.14/multiprocessing/context.py", line 300, in _Popen 420s return Popen(process_obj) 420s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 35, in __init__ 420s super().__init__(process_obj) 420s ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 420s File "/usr/lib/python3.14/multiprocessing/popen_fork.py", line 20, in __init__ 420s self._launch(process_obj) 420s ~~~~~~~~~~~~^^^^^^^^^^^^^ 420s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 51, in _launch 420s self.sentinel, w = forkserver.connect_to_new_process(self._fds) 420s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ 420s File "/usr/lib/python3.14/multiprocessing/forkserver.py", line 106, in connect_to_new_process 420s connection.answer_challenge( 420s ~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 420s wrapped_client, self._forkserver_authkey) 420s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 420s File "/usr/lib/python3.14/multiprocessing/connection.py", line 970, in answer_challenge 420s message = connection.recv_bytes(256) # reject large message 420s File "/usr/lib/python3.14/multiprocessing/connection.py", line 222, in recv_bytes 420s buf = self._recv_bytes(maxlength) 420s File "/usr/lib/python3.14/multiprocessing/connection.py", line 447, in _recv_bytes 420s buf = self._recv(4) 420s File "/usr/lib/python3.14/multiprocessing/connection.py", line 412, in _recv 420s chunk = read(handle, to_read) 420s ConnectionResetError: [Errno 104] Connection reset by peer 420s _____________________________ test_command_abspath _____________________________ 420s 420s source_repo = 420s dest_repo = 420s sshd = SSHServerInfo(proc=, address='127.0.0.1', port=41056) 420s ssh_options = ['-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', ...] 420s cli_env_vars = {'PATH': '/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:...ild.NKu/src/debian/python3-ostree-push/usr/lib/python3.14/dist-packages:/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build'} 420s receive_config_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-1/test_command_abspath0/ostree-receive.conf') 420s tmp_files_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-1/test_command_abspath0/files') 420s 420s def test_command_abspath(source_repo, dest_repo, sshd, ssh_options, 420s cli_env_vars, receive_config_path, tmp_files_path): 420s """Test push with absolute path to ostree-receive""" 420s args = ( 420s source_repo, dest_repo, sshd, ssh_options, cli_env_vars, 420s receive_config_path 420s ) 420s random_commit(source_repo, tmp_files_path, 'test') 420s > run_push(*args, command=ostree_receive_abspath) 420s 420s tests/test_full.py:153: 420s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 420s tests/test_full.py:43: in run_push 420s return subprocess.run(cmd, **popen_kwargs) 420s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 420s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 420s 420s input = None, capture_output = False, timeout = None, check = True 420s popenargs = (['ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-1/test_command_abspath0/source-repo', '--command=/tmp/autopkgtes...cH/autopkgtest_tmp/build/tests/ostree-receive-1', '-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', ...],) 420s kwargs = {'env': {'ADTTMP': '/tmp/autopkgtest.J2bpcH/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.J2bpcH/pybuild-autopk...': 'python3-defaults/3.14.2-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.J2bpcH/pybuild-autopkgtest-artifacts', ...}} 420s process = 420s stdout = None, stderr = None, retcode = 1 420s 420s def run(*popenargs, 420s input=None, capture_output=False, timeout=None, check=False, **kwargs): 420s """Run command with arguments and return a CompletedProcess instance. 420s 420s The returned instance will have attributes args, returncode, stdout and 420s stderr. By default, stdout and stderr are not captured, and those attributes 420s will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them, 420s or pass capture_output=True to capture both. 420s 420s If check is True and the exit code was non-zero, it raises a 420s CalledProcessError. The CalledProcessError object will have the return code 420s in the returncode attribute, and output & stderr attributes if those streams 420s were captured. 420s 420s If timeout (seconds) is given and the process takes too long, 420s a TimeoutExpired exception will be raised. 420s 420s There is an optional argument "input", allowing you to 420s pass bytes or a string to the subprocess's stdin. If you use this argument 420s you may not also use the Popen constructor's "stdin" argument, as 420s it will be used internally. 420s 420s By default, all communication is in bytes, and therefore any "input" should 420s be bytes, and the stdout and stderr will be bytes. If in text mode, any 420s "input" should be a string, and stdout and stderr will be strings decoded 420s according to locale encoding, or by "encoding" if set. Text mode is 420s triggered by setting any of text, encoding, errors or universal_newlines. 420s 420s The other arguments are the same as for the Popen constructor. 420s """ 420s if input is not None: 420s if kwargs.get('stdin') is not None: 420s raise ValueError('stdin and input arguments may not both be used.') 420s kwargs['stdin'] = PIPE 420s 420s if capture_output: 420s if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None: 420s raise ValueError('stdout and stderr arguments may not be used ' 420s 'with capture_output.') 420s kwargs['stdout'] = PIPE 420s kwargs['stderr'] = PIPE 420s 420s with Popen(*popenargs, **kwargs) as process: 420s try: 420s stdout, stderr = process.communicate(input, timeout=timeout) 420s except TimeoutExpired as exc: 420s process.kill() 420s if _mswindows: 420s # Windows accumulates the output in a single blocking 420s # read() call run on child threads, with the timeout 420s # being done in a join() on those threads. communicate() 420s # _after_ kill() is required to collect that and add it 420s # to the exception. 420s exc.stdout, exc.stderr = process.communicate() 420s else: 420s # POSIX _communicate already populated the output so 420s # far into the TimeoutExpired exception. 420s process.wait() 420s raise 420s except: # Including KeyboardInterrupt, communicate handled that. 420s process.kill() 420s # We don't call process.wait() as .__exit__ does that for us. 420s raise 420s retcode = process.poll() 420s if check and retcode: 420s > raise CalledProcessError(retcode, process.args, 420s output=stdout, stderr=stderr) 420s E subprocess.CalledProcessError: Command '['ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-1/test_command_abspath0/source-repo', '--command=/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-receive-1', '-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', '-o', 'UserKnownHostsFile=/dev/null', 'ssh://127.0.0.1:41056//tmp/pytest-of-ubuntu/pytest-1/test_command_abspath0/dest-repo']' returned non-zero exit status 1. 420s 420s /usr/lib/python3.14/subprocess.py:577: CalledProcessError 420s ----------------------------- Captured stderr call ----------------------------- 420s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests:/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build:/tmp/autopkgtest.J2bpcH/build.NKu/src/debian/python3-ostree-push/usr/lib/python3.14/dist-packages:/usr/lib/python314.zip:/usr/lib/python3.14:/usr/lib/python3.14/lib-dynload:/usr/local/lib/python3.14/dist-packages:/usr/lib/python3/dist-packages 420s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-1/test_command_abspath0/source-repo', '--command=/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-receive-1', '-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', '-o', 'UserKnownHostsFile=/dev/null', 'ssh://127.0.0.1:41056//tmp/pytest-of-ubuntu/pytest-1/test_command_abspath0/dest-repo'] 420s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-1/test_command_abspath0/source-repo', commands=['/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-receive-1'], ssh_options=[]), '-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa' 420s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-1/test_command_abspath0/source-repo', commands=['/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-receive-1'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa']), '-o', 'IdentitiesOnly=yes' 420s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-1/test_command_abspath0/source-repo', commands=['/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-receive-1'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes']), '-o', 'StrictHostKeyChecking=no' 420s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-1/test_command_abspath0/source-repo', commands=['/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-receive-1'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no']), '-o', 'UserKnownHostsFile=/dev/null' 420s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests:/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build:/tmp/autopkgtest.J2bpcH/build.NKu/src/debian/python3-ostree-push/usr/lib/python3.14/dist-packages:/usr/lib/python314.zip:/usr/lib/python3.14:/usr/lib/python3.14/lib-dynload:/usr/local/lib/python3.14/dist-packages:/usr/lib/python3/dist-packages 420s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-push'] 420s usage: ostree-push [-h] [-n] [-p PORT] [-q] [-v] [--repo REPO] 420s [--command COMMAND] [-i OPTION] [--version] 420s DEST [REF ...] 420s ostree-push: error: the following arguments are required: DEST 420s Traceback (most recent call last): 420s File "/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-push", line 14, in 420s push.main() 420s ~~~~~~~~~^^ 420s File "/usr/lib/python3/dist-packages/otpush/push.py", line 574, in main 420s push_refs( 420s ~~~~~~~~~^ 420s repo, 420s ^^^^^ 420s ...<4 lines>... 420s dry_run=args.dry_run, 420s ^^^^^^^^^^^^^^^^^^^^^ 420s ) 420s ^ 420s File "/usr/lib/python3/dist-packages/otpush/push.py", line 349, in push_refs 420s with RepoServer(local_repo_path) as http_server: 420s ~~~~~~~~~~^^^^^^^^^^^^^^^^^ 420s File "/usr/lib/python3/dist-packages/otpush/push.py", line 114, in __enter__ 420s self.start() 420s ~~~~~~~~~~^^ 420s File "/usr/lib/python3/dist-packages/otpush/push.py", line 141, in start 420s self.proc.start() 420s ~~~~~~~~~~~~~~~^^ 420s File "/usr/lib/python3.14/multiprocessing/process.py", line 121, in start 420s self._popen = self._Popen(self) 420s ~~~~~~~~~~~^^^^^^ 420s File "/usr/lib/python3.14/multiprocessing/context.py", line 224, in _Popen 420s return _default_context.get_context().Process._Popen(process_obj) 420s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 420s File "/usr/lib/python3.14/multiprocessing/context.py", line 300, in _Popen 420s return Popen(process_obj) 420s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 35, in __init__ 420s super().__init__(process_obj) 420s ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 420s File "/usr/lib/python3.14/multiprocessing/popen_fork.py", line 20, in __init__ 420s self._launch(process_obj) 420s ~~~~~~~~~~~~^^^^^^^^^^^^^ 420s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 51, in _launch 420s self.sentinel, w = forkserver.connect_to_new_process(self._fds) 420s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ 420s File "/usr/lib/python3.14/multiprocessing/forkserver.py", line 106, in connect_to_new_process 420s connection.answer_challenge( 420s ~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 420s wrapped_client, self._forkserver_authkey) 420s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 420s File "/usr/lib/python3.14/multiprocessing/connection.py", line 970, in answer_challenge 420s message = connection.recv_bytes(256) # reject large message 420s File "/usr/lib/python3.14/multiprocessing/connection.py", line 222, in recv_bytes 420s buf = self._recv_bytes(maxlength) 420s File "/usr/lib/python3.14/multiprocessing/connection.py", line 447, in _recv_bytes 420s buf = self._recv(4) 420s File "/usr/lib/python3.14/multiprocessing/connection.py", line 412, in _recv 420s chunk = read(handle, to_read) 420s ConnectionResetError: [Errno 104] Connection reset by peer 420s _______________________________ test_unversioned _______________________________ 420s 420s source_repo = 420s dest_repo = 420s sshd = SSHServerInfo(proc=, address='127.0.0.1', port=41056) 420s ssh_options = ['-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', ...] 420s cli_env_vars = {'PATH': '/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:...ild.NKu/src/debian/python3-ostree-push/usr/lib/python3.14/dist-packages:/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build'} 420s receive_config_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-1/test_unversioned0/ostree-receive.conf') 420s tmp_files_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-1/test_unversioned0/files') 420s 420s def test_unversioned(source_repo, dest_repo, sshd, ssh_options, 420s cli_env_vars, receive_config_path, tmp_files_path): 420s """Test push with unversioned ostree-receive""" 420s args = ( 420s source_repo, dest_repo, sshd, ssh_options, cli_env_vars, 420s receive_config_path 420s ) 420s random_commit(source_repo, tmp_files_path, 'test') 420s > run_push(*args, command='ostree-receive') 420s 420s tests/test_full.py:166: 420s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 420s tests/test_full.py:43: in run_push 420s return subprocess.run(cmd, **popen_kwargs) 420s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 420s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 420s 420s input = None, capture_output = False, timeout = None, check = True 420s popenargs = (['ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-1/test_unversioned0/source-repo', '--command=ostree-receive', '-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', ...],) 420s kwargs = {'env': {'ADTTMP': '/tmp/autopkgtest.J2bpcH/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.J2bpcH/pybuild-autopk...': 'python3-defaults/3.14.2-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.J2bpcH/pybuild-autopkgtest-artifacts', ...}} 420s process = 420s stdout = None, stderr = None, retcode = 1 420s 420s def run(*popenargs, 420s input=None, capture_output=False, timeout=None, check=False, **kwargs): 420s """Run command with arguments and return a CompletedProcess instance. 420s 420s The returned instance will have attributes args, returncode, stdout and 420s stderr. By default, stdout and stderr are not captured, and those attributes 420s will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them, 420s or pass capture_output=True to capture both. 420s 420s If check is True and the exit code was non-zero, it raises a 420s CalledProcessError. The CalledProcessError object will have the return code 420s in the returncode attribute, and output & stderr attributes if those streams 420s were captured. 420s 420s If timeout (seconds) is given and the process takes too long, 420s a TimeoutExpired exception will be raised. 420s 420s There is an optional argument "input", allowing you to 420s pass bytes or a string to the subprocess's stdin. If you use this argument 420s you may not also use the Popen constructor's "stdin" argument, as 420s it will be used internally. 420s 420s By default, all communication is in bytes, and therefore any "input" should 420s be bytes, and the stdout and stderr will be bytes. If in text mode, any 420s "input" should be a string, and stdout and stderr will be strings decoded 420s according to locale encoding, or by "encoding" if set. Text mode is 420s triggered by setting any of text, encoding, errors or universal_newlines. 420s 420s The other arguments are the same as for the Popen constructor. 420s """ 420s if input is not None: 420s if kwargs.get('stdin') is not None: 420s raise ValueError('stdin and input arguments may not both be used.') 420s kwargs['stdin'] = PIPE 420s 420s if capture_output: 420s if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None: 420s raise ValueError('stdout and stderr arguments may not be used ' 420s 'with capture_output.') 420s kwargs['stdout'] = PIPE 420s kwargs['stderr'] = PIPE 420s 420s with Popen(*popenargs, **kwargs) as process: 420s try: 420s stdout, stderr = process.communicate(input, timeout=timeout) 420s except TimeoutExpired as exc: 420s process.kill() 420s if _mswindows: 420s # Windows accumulates the output in a single blocking 420s # read() call run on child threads, with the timeout 420s # being done in a join() on those threads. communicate() 420s # _after_ kill() is required to collect that and add it 420s # to the exception. 420s exc.stdout, exc.stderr = process.communicate() 420s else: 420s # POSIX _communicate already populated the output so 420s # far into the TimeoutExpired exception. 420s process.wait() 420s raise 420s except: # Including KeyboardInterrupt, communicate handled that. 420s process.kill() 420s # We don't call process.wait() as .__exit__ does that for us. 420s raise 420s retcode = process.poll() 420s if check and retcode: 420s > raise CalledProcessError(retcode, process.args, 420s output=stdout, stderr=stderr) 420s E subprocess.CalledProcessError: Command '['ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-1/test_unversioned0/source-repo', '--command=ostree-receive', '-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', '-o', 'UserKnownHostsFile=/dev/null', 'ssh://127.0.0.1:41056//tmp/pytest-of-ubuntu/pytest-1/test_unversioned0/dest-repo']' returned non-zero exit status 1. 420s 420s /usr/lib/python3.14/subprocess.py:577: CalledProcessError 420s ----------------------------- Captured stderr call ----------------------------- 420s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests:/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build:/tmp/autopkgtest.J2bpcH/build.NKu/src/debian/python3-ostree-push/usr/lib/python3.14/dist-packages:/usr/lib/python314.zip:/usr/lib/python3.14:/usr/lib/python3.14/lib-dynload:/usr/local/lib/python3.14/dist-packages:/usr/lib/python3/dist-packages 420s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-1/test_unversioned0/source-repo', '--command=ostree-receive', '-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', '-o', 'UserKnownHostsFile=/dev/null', 'ssh://127.0.0.1:41056//tmp/pytest-of-ubuntu/pytest-1/test_unversioned0/dest-repo'] 420s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-1/test_unversioned0/source-repo', commands=['ostree-receive'], ssh_options=[]), '-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa' 420s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-1/test_unversioned0/source-repo', commands=['ostree-receive'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa']), '-o', 'IdentitiesOnly=yes' 420s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-1/test_unversioned0/source-repo', commands=['ostree-receive'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes']), '-o', 'StrictHostKeyChecking=no' 420s DEBUG:otpush.push:Parsing SSH option Namespace(dest=None, refs=[], dry_run=False, port=None, log_level=20, repo='/tmp/pytest-of-ubuntu/pytest-1/test_unversioned0/source-repo', commands=['ostree-receive'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no']), '-o', 'UserKnownHostsFile=/dev/null' 420s DEBUG:otpush.push:Repo /tmp/pytest-of-ubuntu/pytest-1/test_unversioned0/source-repo has been modified more recently than /tmp/pytest-of-ubuntu/pytest-1/test_unversioned0/source-repo/summary, regenerating 420s INFO:otpush.push:Regenerating summary file 420s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests:/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build:/tmp/autopkgtest.J2bpcH/build.NKu/src/debian/python3-ostree-push/usr/lib/python3.14/dist-packages:/usr/lib/python314.zip:/usr/lib/python3.14:/usr/lib/python3.14/lib-dynload:/usr/local/lib/python3.14/dist-packages:/usr/lib/python3/dist-packages 420s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-push'] 420s usage: ostree-push [-h] [-n] [-p PORT] [-q] [-v] [--repo REPO] 420s [--command COMMAND] [-i OPTION] [--version] 420s DEST [REF ...] 420s ostree-push: error: the following arguments are required: DEST 420s Traceback (most recent call last): 420s File "/tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build/tests/ostree-push", line 14, in 420s push.main() 420s ~~~~~~~~~^^ 420s File "/usr/lib/python3/dist-packages/otpush/push.py", line 574, in main 420s push_refs( 420s ~~~~~~~~~^ 420s repo, 420s ^^^^^ 420s ...<4 lines>... 420s dry_run=args.dry_run, 420s ^^^^^^^^^^^^^^^^^^^^^ 420s ) 420s ^ 420s File "/usr/lib/python3/dist-packages/otpush/push.py", line 349, in push_refs 420s with RepoServer(local_repo_path) as http_server: 420s ~~~~~~~~~~^^^^^^^^^^^^^^^^^ 420s File "/usr/lib/python3/dist-packages/otpush/push.py", line 114, in __enter__ 420s self.start() 420s ~~~~~~~~~~^^ 420s File "/usr/lib/python3/dist-packages/otpush/push.py", line 141, in start 420s self.proc.start() 420s ~~~~~~~~~~~~~~~^^ 420s File "/usr/lib/python3.14/multiprocessing/process.py", line 121, in start 420s self._popen = self._Popen(self) 420s ~~~~~~~~~~~^^^^^^ 420s File "/usr/lib/python3.14/multiprocessing/context.py", line 224, in _Popen 420s return _default_context.get_context().Process._Popen(process_obj) 420s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 420s File "/usr/lib/python3.14/multiprocessing/context.py", line 300, in _Popen 420s return Popen(process_obj) 420s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 35, in __init__ 420s super().__init__(process_obj) 420s ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 420s File "/usr/lib/python3.14/multiprocessing/popen_fork.py", line 20, in __init__ 420s self._launch(process_obj) 420s ~~~~~~~~~~~~^^^^^^^^^^^^^ 420s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 51, in _launch 420s self.sentinel, w = forkserver.connect_to_new_process(self._fds) 420s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ 420s File "/usr/lib/python3.14/multiprocessing/forkserver.py", line 106, in connect_to_new_process 420s connection.answer_challenge( 420s ~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 420s wrapped_client, self._forkserver_authkey) 420s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 420s File "/usr/lib/python3.14/multiprocessing/connection.py", line 970, in answer_challenge 420s message = connection.recv_bytes(256) # reject large message 420s File "/usr/lib/python3.14/multiprocessing/connection.py", line 222, in recv_bytes 420s buf = self._recv_bytes(maxlength) 420s File "/usr/lib/python3.14/multiprocessing/connection.py", line 447, in _recv_bytes 420s buf = self._recv(4) 420s File "/usr/lib/python3.14/multiprocessing/connection.py", line 412, in _recv 420s chunk = read(handle, to_read) 420s ConnectionResetError: [Errno 104] Connection reset by peer 420s =========================== short test summary info ============================ 420s FAILED tests/test_full.py::test_no_commits - subprocess.CalledProcessError: C... 420s FAILED tests/test_full.py::test_basic - subprocess.CalledProcessError: Comman... 420s FAILED tests/test_full.py::test_dry_run - subprocess.CalledProcessError: Comm... 420s FAILED tests/test_full.py::test_scp_dest - subprocess.CalledProcessError: Com... 420s FAILED tests/test_full.py::test_command_abspath - subprocess.CalledProcessErr... 420s FAILED tests/test_full.py::test_unversioned - subprocess.CalledProcessError: ... 420s =================== 6 failed, 89 passed, 4 skipped in 58.96s =================== 421s E: pybuild pybuild:483: test: plugin pyproject failed with: exit code=1: cd /tmp/autopkgtest.J2bpcH/autopkgtest_tmp/build; python3.14 -m pytest tests 421s pybuild-autopkgtest: error: pybuild --autopkgtest --test-pytest -i python{version} -p "3.13 3.14" returned exit code 13 421s make: *** [/tmp/ZAn91BMDQY/run:4: pybuild-autopkgtest] Error 25 421s pybuild-autopkgtest: error: /tmp/ZAn91BMDQY/run pybuild-autopkgtest returned exit code 2 421s autopkgtest [11:20:00]: test pybuild-autopkgtest: -----------------------] 422s autopkgtest [11:20:01]: test pybuild-autopkgtest: - - - - - - - - - - results - - - - - - - - - - 422s pybuild-autopkgtest FAIL non-zero exit status 25 423s autopkgtest [11:20:02]: @@@@@@@@@@@@@@@@@@@@ summary 423s pybuild-autopkgtest FAIL non-zero exit status 25