0s autopkgtest [12:06:09]: starting date and time: 2026-01-24 12:06:09+0000 0s autopkgtest [12:06:09]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [12:06:09]: host juju-7f2275-prod-proposed-migration-environment-15; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.dn5k_s4q/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-amd64 --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@sto01-8.secgroup --name adt-resolute-amd64-ostree-push-20260124-120608-juju-7f2275-prod-proposed-migration-environment-15-ea13f0ff-0801-46a2-a8d4-491ae053700b --image adt/ubuntu-resolute-amd64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-15 --net-id=net_prod-autopkgtest-workers-amd64 -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 3s Creating nova instance adt-resolute-amd64-ostree-push-20260124-120608-juju-7f2275-prod-proposed-migration-environment-15-ea13f0ff-0801-46a2-a8d4-491ae053700b from image adt/ubuntu-resolute-amd64-server-20260124.img (UUID 46811f22-3700-43f4-953b-ee3c613d71bb)... 79s autopkgtest [12:07:28]: testbed dpkg architecture: amd64 79s autopkgtest [12:07:28]: testbed apt version: 3.1.13 79s autopkgtest [12:07:28]: @@@@@@@@@@@@@@@@@@@@ test bed setup 79s autopkgtest [12:07:28]: testbed release detected to be: None 80s autopkgtest [12:07:29]: updating testbed package index (apt update) 80s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 80s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 80s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 80s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 80s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [998 kB] 81s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [92.3 kB] 81s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [24.3 kB] 81s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [2820 B] 81s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 Packages [115 kB] 81s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/main i386 Packages [98.2 kB] 81s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 c-n-f Metadata [3712 B] 81s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/restricted i386 Packages [3696 B] 81s Get:13 http://ftpmaster.internal/ubuntu resolute-proposed/restricted amd64 Packages [12.3 kB] 81s Get:14 http://ftpmaster.internal/ubuntu resolute-proposed/restricted amd64 c-n-f Metadata [336 B] 81s Get:15 http://ftpmaster.internal/ubuntu resolute-proposed/universe i386 Packages [385 kB] 81s Get:16 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 Packages [905 kB] 81s Get:17 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 c-n-f Metadata [24.9 kB] 81s Get:18 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse i386 Packages [4704 B] 81s Get:19 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse amd64 Packages [12.4 kB] 81s Get:20 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse amd64 c-n-f Metadata [824 B] 82s Fetched 2806 kB in 1s (1914 kB/s) 82s Reading package lists... 83s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 83s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 83s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 83s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 84s Reading package lists... 84s Reading package lists... 84s Building dependency tree... 84s Reading state information... 84s Calculating upgrade... 84s The following packages were automatically installed and are no longer required: 84s python3.13 python3.13-minimal 84s Use 'sudo apt autoremove' to remove them. 84s The following NEW packages will be installed: 84s libpython3.14-minimal libpython3.14-stdlib python3.14 python3.14-minimal 84s The following packages will be upgraded: 84s libpython3-stdlib python3 python3-gdbm python3-minimal rust-coreutils 84s 5 upgraded, 4 newly installed, 0 to remove and 0 not upgraded. 84s Need to get 10.4 MB of archives. 84s After this operation, 25.2 MB of additional disk space will be used. 84s Get:1 http://ftpmaster.internal/ubuntu resolute/main amd64 libpython3.14-minimal amd64 3.14.2-1 [920 kB] 84s Get:2 http://ftpmaster.internal/ubuntu resolute/main amd64 python3.14-minimal amd64 3.14.2-1 [2563 kB] 84s Get:3 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 python3-minimal amd64 3.14.2-1 [28.2 kB] 84s Get:4 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 python3 amd64 3.14.2-1 [22.9 kB] 84s Get:5 http://ftpmaster.internal/ubuntu resolute/main amd64 libpython3.14-stdlib amd64 3.14.2-1 [2398 kB] 84s Get:6 http://ftpmaster.internal/ubuntu resolute/main amd64 python3.14 amd64 3.14.2-1 [816 kB] 84s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 libpython3-stdlib amd64 3.14.2-1 [10.9 kB] 84s Get:8 http://ftpmaster.internal/ubuntu resolute/main amd64 rust-coreutils amd64 0.5.0-0ubuntu1 [3628 kB] 84s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 python3-gdbm amd64 3.14.2-1 [11.1 kB] 85s dpkg-preconfigure: unable to re-open stdin: No such file or directory 85s Fetched 10.4 MB in 0s (29.1 MB/s) 85s Selecting previously unselected package libpython3.14-minimal:amd64. 85s (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 ... 124177 files and directories currently installed.) 85s Preparing to unpack .../libpython3.14-minimal_3.14.2-1_amd64.deb ... 85s Unpacking libpython3.14-minimal:amd64 (3.14.2-1) ... 85s Selecting previously unselected package python3.14-minimal. 85s Preparing to unpack .../python3.14-minimal_3.14.2-1_amd64.deb ... 85s Unpacking python3.14-minimal (3.14.2-1) ... 85s Setting up libpython3.14-minimal:amd64 (3.14.2-1) ... 85s Setting up python3.14-minimal (3.14.2-1) ... 86s (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 ... 124519 files and directories currently installed.) 86s Preparing to unpack .../python3-minimal_3.14.2-1_amd64.deb ... 86s Unpacking python3-minimal (3.14.2-1) over (3.13.9-3) ... 86s Setting up python3-minimal (3.14.2-1) ... 86s (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 ... 124519 files and directories currently installed.) 86s Preparing to unpack .../python3_3.14.2-1_amd64.deb ... 86s running python pre-rtupdate hooks for python3.14... 86s Unpacking python3 (3.14.2-1) over (3.13.9-3) ... 86s Selecting previously unselected package libpython3.14-stdlib:amd64. 86s Preparing to unpack .../libpython3.14-stdlib_3.14.2-1_amd64.deb ... 86s Unpacking libpython3.14-stdlib:amd64 (3.14.2-1) ... 86s Selecting previously unselected package python3.14. 86s Preparing to unpack .../python3.14_3.14.2-1_amd64.deb ... 86s Unpacking python3.14 (3.14.2-1) ... 86s Preparing to unpack .../libpython3-stdlib_3.14.2-1_amd64.deb ... 86s Unpacking libpython3-stdlib:amd64 (3.14.2-1) over (3.13.9-3) ... 86s Preparing to unpack .../rust-coreutils_0.5.0-0ubuntu1_amd64.deb ... 86s Unpacking rust-coreutils (0.5.0-0ubuntu1) over (0.2.2-0ubuntu2) ... 86s Setting up rust-coreutils (0.5.0-0ubuntu1) ... 86s (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 ... 124980 files and directories currently installed.) 86s Preparing to unpack .../python3-gdbm_3.14.2-1_amd64.deb ... 86s Unpacking python3-gdbm (3.14.2-1) over (3.13.9-3) ... 86s Setting up libpython3.14-stdlib:amd64 (3.14.2-1) ... 86s Setting up python3.14 (3.14.2-1) ... 87s Setting up libpython3-stdlib:amd64 (3.14.2-1) ... 87s Setting up python3-gdbm (3.14.2-1) ... 87s Setting up python3 (3.14.2-1) ... 87s running python rtupdate hooks for python3.14... 87s running python post-rtupdate hooks for python3.14... 87s Processing triggers for man-db (2.13.1-1) ... 87s Processing triggers for systemd (259-1ubuntu2) ... 88s autopkgtest [12:07:37]: upgrading testbed (apt dist-upgrade and autopurge) 88s Reading package lists... 88s Building dependency tree... 88s Reading state information... 88s Calculating upgrade... 88s The following packages were automatically installed and are no longer required: 88s python3.13 python3.13-minimal 88s Use 'sudo apt autoremove' to remove them. 88s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 88s Reading package lists... 88s Building dependency tree... 88s Reading state information... 88s Solving dependencies... 88s The following packages will be REMOVED: 88s python3.13* python3.13-minimal* 89s 0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded. 89s After this operation, 7860 kB disk space will be freed. 89s (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 ... 124978 files and directories currently installed.) 89s Removing python3.13 (3.13.11-1) ... 89s Removing python3.13-minimal (3.13.11-1) ... 89s Processing triggers for man-db (2.13.1-1) ... 89s Processing triggers for systemd (259-1ubuntu2) ... 89s (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 ... 124951 files and directories currently installed.) 89s Purging configuration files for python3.13-minimal (3.13.11-1) ... 92s autopkgtest [12:07:41]: testbed running kernel: Linux 6.18.0-9-generic #9-Ubuntu SMP PREEMPT_DYNAMIC Mon Jan 12 16:49:02 UTC 2026 92s autopkgtest [12:07:41]: @@@@@@@@@@@@@@@@@@@@ apt-source ostree-push 93s Get:1 http://ftpmaster.internal/ubuntu resolute/universe ostree-push 1.2.0-1 (dsc) [1743 B] 93s Get:2 http://ftpmaster.internal/ubuntu resolute/universe ostree-push 1.2.0-1 (tar) [61.3 kB] 93s Get:3 http://ftpmaster.internal/ubuntu resolute/universe ostree-push 1.2.0-1 (diff) [7372 B] 93s gpgv: Signature made Sat Mar 29 17:34:18 2025 UTC 93s gpgv: using EDDSA key 83DCD17F44B22CC83656EDA1E8446B4AC8C77261 93s gpgv: Can't check signature: No public key 93s dpkg-source: warning: cannot verify inline signature for ./ostree-push_1.2.0-1.dsc: no acceptable signature found 93s autopkgtest [12:07:42]: testing package ostree-push version 1.2.0-1 93s autopkgtest [12:07:42]: build not needed 93s autopkgtest [12:07:42]: test pybuild-autopkgtest: preparing testbed 94s Reading package lists... 94s Building dependency tree... 94s Reading state information... 94s Solving dependencies... 94s The following NEW packages will be installed: 94s autoconf automake autopoint autotools-dev bubblewrap build-essential cpp 94s cpp-15 cpp-15-x86-64-linux-gnu cpp-x86-64-linux-gnu debhelper debugedit 94s dh-autoreconf dh-python dh-strip-nondeterminism dwz flatpak g++ g++-15 94s g++-15-x86-64-linux-gnu g++-x86-64-linux-gnu gcc gcc-15 94s gcc-15-x86-64-linux-gnu gcc-x86-64-linux-gnu gettext gir1.2-ostree-1.0 94s intltool-debian libappstream5 libarchive-zip-perl libasan8 libavahi-client3 94s libavahi-common-data libavahi-common3 libavahi-glib1 libcc1-0 libdconf1 94s libdebhelper-perl libdeflate0 libfile-stripnondeterminism-perl libgcc-15-dev 94s libgdk-pixbuf-2.0-0 libgdk-pixbuf2.0-common libgomp1 libhwasan0 libisl23 94s libitm1 libjbig0 libjpeg-turbo8 libjpeg8 liblerc4 liblsan0 libmalcontent-0-0 94s libmpc3 libostree-1-1 libquadmath0 libsharpyuv0 libstdc++-15-dev 94s libstemmer0d libtiff6 libtool libtsan2 libubsan1 libwayland-client0 libwebp7 94s m4 ostree ostree-push po-debconf pybuild-plugin-autopkgtest 94s pybuild-plugin-pyproject python3-all python3-build python3-iniconfig 94s python3-installer python3-pluggy python3-pyproject-hooks python3-pytest 94s python3-wheel python3.13 python3.13-minimal xdg-dbus-proxy 94s 0 upgraded, 82 newly installed, 0 to remove and 0 not upgraded. 94s Need to get 82.1 MB of archives. 94s After this operation, 274 MB of additional disk space will be used. 94s Get:1 http://ftpmaster.internal/ubuntu resolute/main amd64 python3.13-minimal amd64 3.13.11-1 [2408 kB] 94s Get:2 http://ftpmaster.internal/ubuntu resolute/main amd64 python3.13 amd64 3.13.11-1 [758 kB] 94s Get:3 http://ftpmaster.internal/ubuntu resolute/main amd64 m4 amd64 1.4.20-2 [217 kB] 94s Get:4 http://ftpmaster.internal/ubuntu resolute/main amd64 autoconf all 2.72-3.1ubuntu1 [384 kB] 94s Get:5 http://ftpmaster.internal/ubuntu resolute/main amd64 autotools-dev all 20240727.1 [43.4 kB] 94s Get:6 http://ftpmaster.internal/ubuntu resolute/main amd64 automake all 1:1.18.1-3build1 [582 kB] 94s Get:7 http://ftpmaster.internal/ubuntu resolute/main amd64 autopoint all 0.23.2-1 [620 kB] 94s Get:8 http://ftpmaster.internal/ubuntu resolute/main amd64 bubblewrap amd64 0.11.0-2build1 [53.2 kB] 94s Get:9 http://ftpmaster.internal/ubuntu resolute/main amd64 libisl23 amd64 0.27-1build1 [691 kB] 94s Get:10 http://ftpmaster.internal/ubuntu resolute/main amd64 libmpc3 amd64 1.3.1-2 [54.8 kB] 94s Get:11 http://ftpmaster.internal/ubuntu resolute/main amd64 cpp-15-x86-64-linux-gnu amd64 15.2.0-11ubuntu1 [12.9 MB] 95s Get:12 http://ftpmaster.internal/ubuntu resolute/main amd64 cpp-15 amd64 15.2.0-11ubuntu1 [1030 B] 95s Get:13 http://ftpmaster.internal/ubuntu resolute/main amd64 cpp-x86-64-linux-gnu amd64 4:15.2.0-4ubuntu1 [5746 B] 95s Get:14 http://ftpmaster.internal/ubuntu resolute/main amd64 cpp amd64 4:15.2.0-4ubuntu1 [22.4 kB] 95s Get:15 http://ftpmaster.internal/ubuntu resolute/main amd64 libcc1-0 amd64 15.2.0-11ubuntu1 [47.4 kB] 95s Get:16 http://ftpmaster.internal/ubuntu resolute/main amd64 libgomp1 amd64 15.2.0-11ubuntu1 [151 kB] 95s Get:17 http://ftpmaster.internal/ubuntu resolute/main amd64 libitm1 amd64 15.2.0-11ubuntu1 [29.5 kB] 95s Get:18 http://ftpmaster.internal/ubuntu resolute/main amd64 libasan8 amd64 15.2.0-11ubuntu1 [3070 kB] 95s Get:19 http://ftpmaster.internal/ubuntu resolute/main amd64 liblsan0 amd64 15.2.0-11ubuntu1 [1360 kB] 95s Get:20 http://ftpmaster.internal/ubuntu resolute/main amd64 libtsan2 amd64 15.2.0-11ubuntu1 [2757 kB] 95s Get:21 http://ftpmaster.internal/ubuntu resolute/main amd64 libubsan1 amd64 15.2.0-11ubuntu1 [1210 kB] 95s Get:22 http://ftpmaster.internal/ubuntu resolute/main amd64 libhwasan0 amd64 15.2.0-11ubuntu1 [1685 kB] 95s Get:23 http://ftpmaster.internal/ubuntu resolute/main amd64 libquadmath0 amd64 15.2.0-11ubuntu1 [153 kB] 95s Get:24 http://ftpmaster.internal/ubuntu resolute/main amd64 libgcc-15-dev amd64 15.2.0-11ubuntu1 [2863 kB] 95s Get:25 http://ftpmaster.internal/ubuntu resolute/main amd64 gcc-15-x86-64-linux-gnu amd64 15.2.0-11ubuntu1 [25.4 MB] 96s Get:26 http://ftpmaster.internal/ubuntu resolute/main amd64 gcc-15 amd64 15.2.0-11ubuntu1 [528 kB] 96s Get:27 http://ftpmaster.internal/ubuntu resolute/main amd64 gcc-x86-64-linux-gnu amd64 4:15.2.0-4ubuntu1 [1208 B] 96s Get:28 http://ftpmaster.internal/ubuntu resolute/main amd64 gcc amd64 4:15.2.0-4ubuntu1 [5024 B] 96s Get:29 http://ftpmaster.internal/ubuntu resolute/main amd64 libstdc++-15-dev amd64 15.2.0-11ubuntu1 [2574 kB] 96s Get:30 http://ftpmaster.internal/ubuntu resolute/main amd64 g++-15-x86-64-linux-gnu amd64 15.2.0-11ubuntu1 [14.4 MB] 96s Get:31 http://ftpmaster.internal/ubuntu resolute/main amd64 g++-15 amd64 15.2.0-11ubuntu1 [24.6 kB] 96s Get:32 http://ftpmaster.internal/ubuntu resolute/main amd64 g++-x86-64-linux-gnu amd64 4:15.2.0-4ubuntu1 [966 B] 96s Get:33 http://ftpmaster.internal/ubuntu resolute/main amd64 g++ amd64 4:15.2.0-4ubuntu1 [1100 B] 96s Get:34 http://ftpmaster.internal/ubuntu resolute/main amd64 build-essential amd64 12.12ubuntu2 [5256 B] 96s Get:35 http://ftpmaster.internal/ubuntu resolute/main amd64 libdebhelper-perl all 13.28ubuntu1 [97.4 kB] 96s Get:36 http://ftpmaster.internal/ubuntu resolute/main amd64 libtool all 2.5.4-9 [169 kB] 96s Get:37 http://ftpmaster.internal/ubuntu resolute/main amd64 dh-autoreconf all 21 [12.5 kB] 96s Get:38 http://ftpmaster.internal/ubuntu resolute/main amd64 libarchive-zip-perl all 1.68-1 [90.2 kB] 96s Get:39 http://ftpmaster.internal/ubuntu resolute/main amd64 libfile-stripnondeterminism-perl all 1.15.0-1build1 [20.6 kB] 96s Get:40 http://ftpmaster.internal/ubuntu resolute/main amd64 dh-strip-nondeterminism all 1.15.0-1build1 [5110 B] 96s Get:41 http://ftpmaster.internal/ubuntu resolute/main amd64 debugedit amd64 1:5.2-3 [49.9 kB] 96s Get:42 http://ftpmaster.internal/ubuntu resolute/main amd64 dwz amd64 0.16-2 [115 kB] 96s Get:43 http://ftpmaster.internal/ubuntu resolute/main amd64 gettext amd64 0.23.2-1 [1019 kB] 96s Get:44 http://ftpmaster.internal/ubuntu resolute/main amd64 intltool-debian all 0.35.0+20060710.6build1 [24.1 kB] 96s Get:45 http://ftpmaster.internal/ubuntu resolute/main amd64 po-debconf all 1.0.22 [215 kB] 96s Get:46 http://ftpmaster.internal/ubuntu resolute/main amd64 debhelper all 13.28ubuntu1 [916 kB] 96s Get:47 http://ftpmaster.internal/ubuntu resolute/universe amd64 dh-python all 7.20251231 [122 kB] 96s Get:48 http://ftpmaster.internal/ubuntu resolute/main amd64 xdg-dbus-proxy amd64 0.1.6-2 [26.6 kB] 96s Get:49 http://ftpmaster.internal/ubuntu resolute/main amd64 libstemmer0d amd64 3.0.1-1 [172 kB] 96s Get:50 http://ftpmaster.internal/ubuntu resolute/main amd64 libappstream5 amd64 1.0.6-2 [250 kB] 96s Get:51 http://ftpmaster.internal/ubuntu resolute/main amd64 libdconf1 amd64 0.49.0-4 [40.5 kB] 96s Get:52 http://ftpmaster.internal/ubuntu resolute/main amd64 libgdk-pixbuf2.0-common all 2.44.4+dfsg-1 [8584 B] 96s Get:53 http://ftpmaster.internal/ubuntu resolute/main amd64 libjpeg-turbo8 amd64 2.1.5-4ubuntu2 [152 kB] 96s Get:54 http://ftpmaster.internal/ubuntu resolute/main amd64 libjpeg8 amd64 8c-2ubuntu11 [2148 B] 96s Get:55 http://ftpmaster.internal/ubuntu resolute/main amd64 libdeflate0 amd64 1.23-2 [49.9 kB] 96s Get:56 http://ftpmaster.internal/ubuntu resolute/main amd64 libjbig0 amd64 2.1-6.1ubuntu3 [30.0 kB] 96s Get:57 http://ftpmaster.internal/ubuntu resolute/main amd64 liblerc4 amd64 4.0.0+ds-5ubuntu2 [207 kB] 96s Get:58 http://ftpmaster.internal/ubuntu resolute/main amd64 libsharpyuv0 amd64 1.5.0-0.1build1 [17.6 kB] 96s Get:59 http://ftpmaster.internal/ubuntu resolute/main amd64 libwebp7 amd64 1.5.0-0.1build1 [264 kB] 96s Get:60 http://ftpmaster.internal/ubuntu resolute/main amd64 libtiff6 amd64 4.7.0-3ubuntu3 [209 kB] 96s Get:61 http://ftpmaster.internal/ubuntu resolute/main amd64 libgdk-pixbuf-2.0-0 amd64 2.44.4+dfsg-1 [153 kB] 96s Get:62 http://ftpmaster.internal/ubuntu resolute/main amd64 libmalcontent-0-0 amd64 0.13.1-2ubuntu2 [22.8 kB] 96s Get:63 http://ftpmaster.internal/ubuntu resolute/main amd64 libavahi-common-data amd64 0.8-17ubuntu2 [31.5 kB] 96s Get:64 http://ftpmaster.internal/ubuntu resolute/main amd64 libavahi-common3 amd64 0.8-17ubuntu2 [23.7 kB] 96s Get:65 http://ftpmaster.internal/ubuntu resolute/main amd64 libavahi-client3 amd64 0.8-17ubuntu2 [27.3 kB] 96s Get:66 http://ftpmaster.internal/ubuntu resolute/main amd64 libavahi-glib1 amd64 0.8-17ubuntu2 [8346 B] 96s Get:67 http://ftpmaster.internal/ubuntu resolute/universe amd64 libostree-1-1 amd64 2025.7-1 [360 kB] 96s Get:68 http://ftpmaster.internal/ubuntu resolute/main amd64 libwayland-client0 amd64 1.24.0-2 [28.5 kB] 96s Get:69 http://ftpmaster.internal/ubuntu resolute/universe amd64 flatpak amd64 1.16.2-1 [1470 kB] 96s Get:70 http://ftpmaster.internal/ubuntu resolute/universe amd64 gir1.2-ostree-1.0 amd64 2025.7-1 [25.1 kB] 96s Get:71 http://ftpmaster.internal/ubuntu resolute/universe amd64 ostree amd64 2025.7-1 [187 kB] 96s Get:72 http://ftpmaster.internal/ubuntu resolute/universe amd64 ostree-push all 1.2.0-1 [26.7 kB] 96s Get:73 http://ftpmaster.internal/ubuntu resolute/universe amd64 pybuild-plugin-autopkgtest all 7.20251231 [1748 B] 96s Get:74 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pyproject-hooks all 1.2.0-1 [10.2 kB] 96s Get:75 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-wheel all 0.46.1-2 [22.1 kB] 96s Get:76 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-build all 1.2.2-5 [30.9 kB] 96s Get:77 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-installer all 0.7.0+dfsg1-3 [17.4 kB] 96s Get:78 http://ftpmaster.internal/ubuntu resolute/universe amd64 pybuild-plugin-pyproject all 7.20251231 [1714 B] 96s Get:79 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 python3-all amd64 3.14.2-1 [890 B] 96s Get:80 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-iniconfig all 2.1.0-2 [6962 B] 96s Get:81 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pluggy all 1.6.0-2 [21.1 kB] 96s Get:82 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pytest all 9.0.2-2 [277 kB] 97s Fetched 82.1 MB in 3s (32.8 MB/s) 97s Selecting previously unselected package python3.13-minimal. 97s (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 ... 124953 files and directories currently installed.) 97s Preparing to unpack .../00-python3.13-minimal_3.13.11-1_amd64.deb ... 97s Unpacking python3.13-minimal (3.13.11-1) ... 97s Selecting previously unselected package python3.13. 97s Preparing to unpack .../01-python3.13_3.13.11-1_amd64.deb ... 97s Unpacking python3.13 (3.13.11-1) ... 97s Selecting previously unselected package m4. 97s Preparing to unpack .../02-m4_1.4.20-2_amd64.deb ... 97s Unpacking m4 (1.4.20-2) ... 97s Selecting previously unselected package autoconf. 97s Preparing to unpack .../03-autoconf_2.72-3.1ubuntu1_all.deb ... 97s Unpacking autoconf (2.72-3.1ubuntu1) ... 97s Selecting previously unselected package autotools-dev. 97s Preparing to unpack .../04-autotools-dev_20240727.1_all.deb ... 97s Unpacking autotools-dev (20240727.1) ... 97s Selecting previously unselected package automake. 97s Preparing to unpack .../05-automake_1%3a1.18.1-3build1_all.deb ... 97s Unpacking automake (1:1.18.1-3build1) ... 97s Selecting previously unselected package autopoint. 97s Preparing to unpack .../06-autopoint_0.23.2-1_all.deb ... 97s Unpacking autopoint (0.23.2-1) ... 97s Selecting previously unselected package bubblewrap. 97s Preparing to unpack .../07-bubblewrap_0.11.0-2build1_amd64.deb ... 97s Unpacking bubblewrap (0.11.0-2build1) ... 97s Selecting previously unselected package libisl23:amd64. 97s Preparing to unpack .../08-libisl23_0.27-1build1_amd64.deb ... 97s Unpacking libisl23:amd64 (0.27-1build1) ... 97s Selecting previously unselected package libmpc3:amd64. 97s Preparing to unpack .../09-libmpc3_1.3.1-2_amd64.deb ... 97s Unpacking libmpc3:amd64 (1.3.1-2) ... 97s Selecting previously unselected package cpp-15-x86-64-linux-gnu. 97s Preparing to unpack .../10-cpp-15-x86-64-linux-gnu_15.2.0-11ubuntu1_amd64.deb ... 97s Unpacking cpp-15-x86-64-linux-gnu (15.2.0-11ubuntu1) ... 97s Selecting previously unselected package cpp-15. 97s Preparing to unpack .../11-cpp-15_15.2.0-11ubuntu1_amd64.deb ... 97s Unpacking cpp-15 (15.2.0-11ubuntu1) ... 97s Selecting previously unselected package cpp-x86-64-linux-gnu. 97s Preparing to unpack .../12-cpp-x86-64-linux-gnu_4%3a15.2.0-4ubuntu1_amd64.deb ... 97s Unpacking cpp-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 97s Selecting previously unselected package cpp. 97s Preparing to unpack .../13-cpp_4%3a15.2.0-4ubuntu1_amd64.deb ... 97s Unpacking cpp (4:15.2.0-4ubuntu1) ... 97s Selecting previously unselected package libcc1-0:amd64. 97s Preparing to unpack .../14-libcc1-0_15.2.0-11ubuntu1_amd64.deb ... 97s Unpacking libcc1-0:amd64 (15.2.0-11ubuntu1) ... 97s Selecting previously unselected package libgomp1:amd64. 97s Preparing to unpack .../15-libgomp1_15.2.0-11ubuntu1_amd64.deb ... 97s Unpacking libgomp1:amd64 (15.2.0-11ubuntu1) ... 97s Selecting previously unselected package libitm1:amd64. 97s Preparing to unpack .../16-libitm1_15.2.0-11ubuntu1_amd64.deb ... 97s Unpacking libitm1:amd64 (15.2.0-11ubuntu1) ... 97s Selecting previously unselected package libasan8:amd64. 97s Preparing to unpack .../17-libasan8_15.2.0-11ubuntu1_amd64.deb ... 97s Unpacking libasan8:amd64 (15.2.0-11ubuntu1) ... 97s Selecting previously unselected package liblsan0:amd64. 97s Preparing to unpack .../18-liblsan0_15.2.0-11ubuntu1_amd64.deb ... 97s Unpacking liblsan0:amd64 (15.2.0-11ubuntu1) ... 97s Selecting previously unselected package libtsan2:amd64. 97s Preparing to unpack .../19-libtsan2_15.2.0-11ubuntu1_amd64.deb ... 97s Unpacking libtsan2:amd64 (15.2.0-11ubuntu1) ... 97s Selecting previously unselected package libubsan1:amd64. 97s Preparing to unpack .../20-libubsan1_15.2.0-11ubuntu1_amd64.deb ... 97s Unpacking libubsan1:amd64 (15.2.0-11ubuntu1) ... 97s Selecting previously unselected package libhwasan0:amd64. 97s Preparing to unpack .../21-libhwasan0_15.2.0-11ubuntu1_amd64.deb ... 97s Unpacking libhwasan0:amd64 (15.2.0-11ubuntu1) ... 97s Selecting previously unselected package libquadmath0:amd64. 97s Preparing to unpack .../22-libquadmath0_15.2.0-11ubuntu1_amd64.deb ... 97s Unpacking libquadmath0:amd64 (15.2.0-11ubuntu1) ... 97s Selecting previously unselected package libgcc-15-dev:amd64. 97s Preparing to unpack .../23-libgcc-15-dev_15.2.0-11ubuntu1_amd64.deb ... 97s Unpacking libgcc-15-dev:amd64 (15.2.0-11ubuntu1) ... 97s Selecting previously unselected package gcc-15-x86-64-linux-gnu. 97s Preparing to unpack .../24-gcc-15-x86-64-linux-gnu_15.2.0-11ubuntu1_amd64.deb ... 97s Unpacking gcc-15-x86-64-linux-gnu (15.2.0-11ubuntu1) ... 97s Selecting previously unselected package gcc-15. 97s Preparing to unpack .../25-gcc-15_15.2.0-11ubuntu1_amd64.deb ... 97s Unpacking gcc-15 (15.2.0-11ubuntu1) ... 98s Selecting previously unselected package gcc-x86-64-linux-gnu. 98s Preparing to unpack .../26-gcc-x86-64-linux-gnu_4%3a15.2.0-4ubuntu1_amd64.deb ... 98s Unpacking gcc-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 98s Selecting previously unselected package gcc. 98s Preparing to unpack .../27-gcc_4%3a15.2.0-4ubuntu1_amd64.deb ... 98s Unpacking gcc (4:15.2.0-4ubuntu1) ... 98s Selecting previously unselected package libstdc++-15-dev:amd64. 98s Preparing to unpack .../28-libstdc++-15-dev_15.2.0-11ubuntu1_amd64.deb ... 98s Unpacking libstdc++-15-dev:amd64 (15.2.0-11ubuntu1) ... 98s Selecting previously unselected package g++-15-x86-64-linux-gnu. 98s Preparing to unpack .../29-g++-15-x86-64-linux-gnu_15.2.0-11ubuntu1_amd64.deb ... 98s Unpacking g++-15-x86-64-linux-gnu (15.2.0-11ubuntu1) ... 98s Selecting previously unselected package g++-15. 98s Preparing to unpack .../30-g++-15_15.2.0-11ubuntu1_amd64.deb ... 98s Unpacking g++-15 (15.2.0-11ubuntu1) ... 98s Selecting previously unselected package g++-x86-64-linux-gnu. 98s Preparing to unpack .../31-g++-x86-64-linux-gnu_4%3a15.2.0-4ubuntu1_amd64.deb ... 98s Unpacking g++-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 98s Selecting previously unselected package g++. 98s Preparing to unpack .../32-g++_4%3a15.2.0-4ubuntu1_amd64.deb ... 98s Unpacking g++ (4:15.2.0-4ubuntu1) ... 98s Selecting previously unselected package build-essential. 98s Preparing to unpack .../33-build-essential_12.12ubuntu2_amd64.deb ... 98s Unpacking build-essential (12.12ubuntu2) ... 98s Selecting previously unselected package libdebhelper-perl. 98s Preparing to unpack .../34-libdebhelper-perl_13.28ubuntu1_all.deb ... 98s Unpacking libdebhelper-perl (13.28ubuntu1) ... 98s Selecting previously unselected package libtool. 98s Preparing to unpack .../35-libtool_2.5.4-9_all.deb ... 98s Unpacking libtool (2.5.4-9) ... 98s Selecting previously unselected package dh-autoreconf. 98s Preparing to unpack .../36-dh-autoreconf_21_all.deb ... 98s Unpacking dh-autoreconf (21) ... 98s Selecting previously unselected package libarchive-zip-perl. 98s Preparing to unpack .../37-libarchive-zip-perl_1.68-1_all.deb ... 98s Unpacking libarchive-zip-perl (1.68-1) ... 98s Selecting previously unselected package libfile-stripnondeterminism-perl. 98s Preparing to unpack .../38-libfile-stripnondeterminism-perl_1.15.0-1build1_all.deb ... 98s Unpacking libfile-stripnondeterminism-perl (1.15.0-1build1) ... 98s Selecting previously unselected package dh-strip-nondeterminism. 98s Preparing to unpack .../39-dh-strip-nondeterminism_1.15.0-1build1_all.deb ... 98s Unpacking dh-strip-nondeterminism (1.15.0-1build1) ... 98s Selecting previously unselected package debugedit. 98s Preparing to unpack .../40-debugedit_1%3a5.2-3_amd64.deb ... 98s Unpacking debugedit (1:5.2-3) ... 98s Selecting previously unselected package dwz. 98s Preparing to unpack .../41-dwz_0.16-2_amd64.deb ... 98s Unpacking dwz (0.16-2) ... 98s Selecting previously unselected package gettext. 98s Preparing to unpack .../42-gettext_0.23.2-1_amd64.deb ... 98s Unpacking gettext (0.23.2-1) ... 98s Selecting previously unselected package intltool-debian. 98s Preparing to unpack .../43-intltool-debian_0.35.0+20060710.6build1_all.deb ... 98s Unpacking intltool-debian (0.35.0+20060710.6build1) ... 98s Selecting previously unselected package po-debconf. 98s Preparing to unpack .../44-po-debconf_1.0.22_all.deb ... 98s Unpacking po-debconf (1.0.22) ... 98s Selecting previously unselected package debhelper. 98s Preparing to unpack .../45-debhelper_13.28ubuntu1_all.deb ... 98s Unpacking debhelper (13.28ubuntu1) ... 98s Selecting previously unselected package dh-python. 98s Preparing to unpack .../46-dh-python_7.20251231_all.deb ... 98s Unpacking dh-python (7.20251231) ... 98s Selecting previously unselected package xdg-dbus-proxy. 98s Preparing to unpack .../47-xdg-dbus-proxy_0.1.6-2_amd64.deb ... 98s Unpacking xdg-dbus-proxy (0.1.6-2) ... 98s Selecting previously unselected package libstemmer0d:amd64. 98s Preparing to unpack .../48-libstemmer0d_3.0.1-1_amd64.deb ... 98s Unpacking libstemmer0d:amd64 (3.0.1-1) ... 98s Selecting previously unselected package libappstream5:amd64. 98s Preparing to unpack .../49-libappstream5_1.0.6-2_amd64.deb ... 98s Unpacking libappstream5:amd64 (1.0.6-2) ... 98s Selecting previously unselected package libdconf1:amd64. 98s Preparing to unpack .../50-libdconf1_0.49.0-4_amd64.deb ... 98s Unpacking libdconf1:amd64 (0.49.0-4) ... 98s Selecting previously unselected package libgdk-pixbuf2.0-common. 98s Preparing to unpack .../51-libgdk-pixbuf2.0-common_2.44.4+dfsg-1_all.deb ... 98s Unpacking libgdk-pixbuf2.0-common (2.44.4+dfsg-1) ... 98s Selecting previously unselected package libjpeg-turbo8:amd64. 98s Preparing to unpack .../52-libjpeg-turbo8_2.1.5-4ubuntu2_amd64.deb ... 98s Unpacking libjpeg-turbo8:amd64 (2.1.5-4ubuntu2) ... 98s Selecting previously unselected package libjpeg8:amd64. 98s Preparing to unpack .../53-libjpeg8_8c-2ubuntu11_amd64.deb ... 98s Unpacking libjpeg8:amd64 (8c-2ubuntu11) ... 98s Selecting previously unselected package libdeflate0:amd64. 98s Preparing to unpack .../54-libdeflate0_1.23-2_amd64.deb ... 98s Unpacking libdeflate0:amd64 (1.23-2) ... 98s Selecting previously unselected package libjbig0:amd64. 98s Preparing to unpack .../55-libjbig0_2.1-6.1ubuntu3_amd64.deb ... 98s Unpacking libjbig0:amd64 (2.1-6.1ubuntu3) ... 98s Selecting previously unselected package liblerc4:amd64. 98s Preparing to unpack .../56-liblerc4_4.0.0+ds-5ubuntu2_amd64.deb ... 98s Unpacking liblerc4:amd64 (4.0.0+ds-5ubuntu2) ... 98s Selecting previously unselected package libsharpyuv0:amd64. 98s Preparing to unpack .../57-libsharpyuv0_1.5.0-0.1build1_amd64.deb ... 98s Unpacking libsharpyuv0:amd64 (1.5.0-0.1build1) ... 98s Selecting previously unselected package libwebp7:amd64. 98s Preparing to unpack .../58-libwebp7_1.5.0-0.1build1_amd64.deb ... 98s Unpacking libwebp7:amd64 (1.5.0-0.1build1) ... 98s Selecting previously unselected package libtiff6:amd64. 98s Preparing to unpack .../59-libtiff6_4.7.0-3ubuntu3_amd64.deb ... 98s Unpacking libtiff6:amd64 (4.7.0-3ubuntu3) ... 98s Selecting previously unselected package libgdk-pixbuf-2.0-0:amd64. 98s Preparing to unpack .../60-libgdk-pixbuf-2.0-0_2.44.4+dfsg-1_amd64.deb ... 98s Unpacking libgdk-pixbuf-2.0-0:amd64 (2.44.4+dfsg-1) ... 98s Selecting previously unselected package libmalcontent-0-0:amd64. 98s Preparing to unpack .../61-libmalcontent-0-0_0.13.1-2ubuntu2_amd64.deb ... 98s Unpacking libmalcontent-0-0:amd64 (0.13.1-2ubuntu2) ... 98s Selecting previously unselected package libavahi-common-data:amd64. 98s Preparing to unpack .../62-libavahi-common-data_0.8-17ubuntu2_amd64.deb ... 98s Unpacking libavahi-common-data:amd64 (0.8-17ubuntu2) ... 98s Selecting previously unselected package libavahi-common3:amd64. 98s Preparing to unpack .../63-libavahi-common3_0.8-17ubuntu2_amd64.deb ... 98s Unpacking libavahi-common3:amd64 (0.8-17ubuntu2) ... 98s Selecting previously unselected package libavahi-client3:amd64. 98s Preparing to unpack .../64-libavahi-client3_0.8-17ubuntu2_amd64.deb ... 98s Unpacking libavahi-client3:amd64 (0.8-17ubuntu2) ... 98s Selecting previously unselected package libavahi-glib1:amd64. 98s Preparing to unpack .../65-libavahi-glib1_0.8-17ubuntu2_amd64.deb ... 98s Unpacking libavahi-glib1:amd64 (0.8-17ubuntu2) ... 98s Selecting previously unselected package libostree-1-1:amd64. 98s Preparing to unpack .../66-libostree-1-1_2025.7-1_amd64.deb ... 98s Unpacking libostree-1-1:amd64 (2025.7-1) ... 98s Selecting previously unselected package libwayland-client0:amd64. 98s Preparing to unpack .../67-libwayland-client0_1.24.0-2_amd64.deb ... 98s Unpacking libwayland-client0:amd64 (1.24.0-2) ... 98s Selecting previously unselected package flatpak. 98s Preparing to unpack .../68-flatpak_1.16.2-1_amd64.deb ... 98s Unpacking flatpak (1.16.2-1) ... 98s Selecting previously unselected package gir1.2-ostree-1.0:amd64. 98s Preparing to unpack .../69-gir1.2-ostree-1.0_2025.7-1_amd64.deb ... 98s Unpacking gir1.2-ostree-1.0:amd64 (2025.7-1) ... 98s Selecting previously unselected package ostree. 98s Preparing to unpack .../70-ostree_2025.7-1_amd64.deb ... 98s Unpacking ostree (2025.7-1) ... 98s Selecting previously unselected package ostree-push. 98s Preparing to unpack .../71-ostree-push_1.2.0-1_all.deb ... 98s Unpacking ostree-push (1.2.0-1) ... 98s Selecting previously unselected package pybuild-plugin-autopkgtest. 98s Preparing to unpack .../72-pybuild-plugin-autopkgtest_7.20251231_all.deb ... 98s Unpacking pybuild-plugin-autopkgtest (7.20251231) ... 98s Selecting previously unselected package python3-pyproject-hooks. 98s Preparing to unpack .../73-python3-pyproject-hooks_1.2.0-1_all.deb ... 98s Unpacking python3-pyproject-hooks (1.2.0-1) ... 98s Selecting previously unselected package python3-wheel. 98s Preparing to unpack .../74-python3-wheel_0.46.1-2_all.deb ... 98s Unpacking python3-wheel (0.46.1-2) ... 98s Selecting previously unselected package python3-build. 98s Preparing to unpack .../75-python3-build_1.2.2-5_all.deb ... 98s Unpacking python3-build (1.2.2-5) ... 98s Selecting previously unselected package python3-installer. 98s Preparing to unpack .../76-python3-installer_0.7.0+dfsg1-3_all.deb ... 98s Unpacking python3-installer (0.7.0+dfsg1-3) ... 98s Selecting previously unselected package pybuild-plugin-pyproject. 98s Preparing to unpack .../77-pybuild-plugin-pyproject_7.20251231_all.deb ... 98s Unpacking pybuild-plugin-pyproject (7.20251231) ... 98s Selecting previously unselected package python3-all. 98s Preparing to unpack .../78-python3-all_3.14.2-1_amd64.deb ... 98s Unpacking python3-all (3.14.2-1) ... 98s Selecting previously unselected package python3-iniconfig. 98s Preparing to unpack .../79-python3-iniconfig_2.1.0-2_all.deb ... 98s Unpacking python3-iniconfig (2.1.0-2) ... 99s Selecting previously unselected package python3-pluggy. 99s Preparing to unpack .../80-python3-pluggy_1.6.0-2_all.deb ... 99s Unpacking python3-pluggy (1.6.0-2) ... 99s Selecting previously unselected package python3-pytest. 99s Preparing to unpack .../81-python3-pytest_9.0.2-2_all.deb ... 99s Unpacking python3-pytest (9.0.2-2) ... 99s Setting up dh-python (7.20251231) ... 99s Setting up bubblewrap (0.11.0-2build1) ... 99s Setting up python3-iniconfig (2.1.0-2) ... 99s Setting up libsharpyuv0:amd64 (1.5.0-0.1build1) ... 99s Setting up liblerc4:amd64 (4.0.0+ds-5ubuntu2) ... 99s Setting up libarchive-zip-perl (1.68-1) ... 99s Setting up libdebhelper-perl (13.28ubuntu1) ... 99s Setting up libgdk-pixbuf2.0-common (2.44.4+dfsg-1) ... 99s Setting up libdeflate0:amd64 (1.23-2) ... 99s Setting up m4 (1.4.20-2) ... 99s Setting up libgomp1:amd64 (15.2.0-11ubuntu1) ... 99s Setting up python3-wheel (0.46.1-2) ... 99s Setting up libjbig0:amd64 (2.1-6.1ubuntu3) ... 99s Setting up libdconf1:amd64 (0.49.0-4) ... 99s Setting up autotools-dev (20240727.1) ... 99s Setting up python3-pyproject-hooks (1.2.0-1) ... 99s Setting up libavahi-common-data:amd64 (0.8-17ubuntu2) ... 99s Setting up libquadmath0:amd64 (15.2.0-11ubuntu1) ... 99s Setting up libmpc3:amd64 (1.3.1-2) ... 99s Setting up autopoint (0.23.2-1) ... 99s Setting up libjpeg-turbo8:amd64 (2.1.5-4ubuntu2) ... 99s Setting up python3-installer (0.7.0+dfsg1-3) ... 99s Setting up autoconf (2.72-3.1ubuntu1) ... 99s Setting up python3-pluggy (1.6.0-2) ... 99s Setting up libwebp7:amd64 (1.5.0-0.1build1) ... 99s Setting up libubsan1:amd64 (15.2.0-11ubuntu1) ... 99s Setting up xdg-dbus-proxy (0.1.6-2) ... 99s Setting up dwz (0.16-2) ... 99s Setting up libhwasan0:amd64 (15.2.0-11ubuntu1) ... 99s Setting up libasan8:amd64 (15.2.0-11ubuntu1) ... 99s Setting up debugedit (1:5.2-3) ... 99s Setting up python3.13-minimal (3.13.11-1) ... 100s Setting up libstemmer0d:amd64 (3.0.1-1) ... 100s Setting up libtsan2:amd64 (15.2.0-11ubuntu1) ... 100s Setting up libisl23:amd64 (0.27-1build1) ... 100s Setting up python3-build (1.2.2-5) ... 100s Setting up libcc1-0:amd64 (15.2.0-11ubuntu1) ... 100s Setting up liblsan0:amd64 (15.2.0-11ubuntu1) ... 100s Setting up libitm1:amd64 (15.2.0-11ubuntu1) ... 100s Setting up libmalcontent-0-0:amd64 (0.13.1-2ubuntu2) ... 100s Setting up libwayland-client0:amd64 (1.24.0-2) ... 100s Setting up libjpeg8:amd64 (8c-2ubuntu11) ... 100s Setting up automake (1:1.18.1-3build1) ... 100s update-alternatives: using /usr/bin/automake-1.18 to provide /usr/bin/automake (automake) in auto mode 100s Setting up libfile-stripnondeterminism-perl (1.15.0-1build1) ... 100s Setting up gettext (0.23.2-1) ... 100s Setting up libgcc-15-dev:amd64 (15.2.0-11ubuntu1) ... 100s Setting up python3.13 (3.13.11-1) ... 102s Setting up pybuild-plugin-pyproject (7.20251231) ... 102s Setting up python3-pytest (9.0.2-2) ... 102s Setting up libavahi-common3:amd64 (0.8-17ubuntu2) ... 102s Setting up python3-all (3.14.2-1) ... 102s Setting up libappstream5:amd64 (1.0.6-2) ... 102s Setting up cpp-15-x86-64-linux-gnu (15.2.0-11ubuntu1) ... 102s Setting up intltool-debian (0.35.0+20060710.6build1) ... 102s Setting up gcc-15-x86-64-linux-gnu (15.2.0-11ubuntu1) ... 102s Setting up libstdc++-15-dev:amd64 (15.2.0-11ubuntu1) ... 102s Setting up dh-strip-nondeterminism (1.15.0-1build1) ... 102s Setting up cpp-15 (15.2.0-11ubuntu1) ... 102s Setting up libtiff6:amd64 (4.7.0-3ubuntu3) ... 102s Setting up libgdk-pixbuf-2.0-0:amd64 (2.44.4+dfsg-1) ... 102s Setting up libavahi-glib1:amd64 (0.8-17ubuntu2) ... 102s Setting up libavahi-client3:amd64 (0.8-17ubuntu2) ... 102s Setting up cpp-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 102s Setting up g++-15-x86-64-linux-gnu (15.2.0-11ubuntu1) ... 102s Setting up gcc-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 102s Setting up po-debconf (1.0.22) ... 102s Setting up libostree-1-1:amd64 (2025.7-1) ... 102s Setting up ostree (2025.7-1) ... 102s Setting up gcc-15 (15.2.0-11ubuntu1) ... 102s Setting up gir1.2-ostree-1.0:amd64 (2025.7-1) ... 102s Setting up flatpak (1.16.2-1) ... 102s Setting up cpp (4:15.2.0-4ubuntu1) ... 102s Setting up g++-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 102s Setting up g++-15 (15.2.0-11ubuntu1) ... 102s Setting up ostree-push (1.2.0-1) ... 102s Setting up libtool (2.5.4-9) ... 102s Setting up gcc (4:15.2.0-4ubuntu1) ... 102s Setting up dh-autoreconf (21) ... 102s Setting up g++ (4:15.2.0-4ubuntu1) ... 102s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 102s Setting up build-essential (12.12ubuntu2) ... 102s Setting up debhelper (13.28ubuntu1) ... 102s Setting up pybuild-plugin-autopkgtest (7.20251231) ... 102s Processing triggers for man-db (2.13.1-1) ... 102s Processing triggers for dbus (1.16.2-2ubuntu2) ... 102s Processing triggers for procps (2:4.0.4-9ubuntu1) ... 102s Processing triggers for install-info (7.2-5) ... 102s Processing triggers for libc-bin (2.42-2ubuntu4) ... 102s Processing triggers for systemd (259-1ubuntu2) ... 103s autopkgtest [12:07:52]: test pybuild-autopkgtest: pybuild-autopkgtest 103s autopkgtest [12:07:52]: test pybuild-autopkgtest: [----------------------- 103s ln -sr tests/ostree-receive tests/ostree-receive-0 103s ln -sr tests/ostree-receive tests/ostree-receive-1 103s pybuild-autopkgtest 103s I: pybuild base:384: cd /tmp/autopkgtest.6RtGag/autopkgtest_tmp/build; python3.13 -m pytest tests 104s ============================= test session starts ============================== 104s platform linux -- Python 3.13.11, pytest-9.0.2, pluggy-1.6.0 104s rootdir: /tmp/autopkgtest.6RtGag/autopkgtest_tmp/build 104s plugins: typeguard-4.4.4 104s collected 99 items 104s 106s tests/test_full.py FFFFFF [ 6%] 113s tests/test_push.py ................................. [ 39%] 115s tests/test_receive.py ...........ss...s................................. [ 89%] 115s . [ 90%] 115s tests/test_receive_legacy.py .. [ 92%] 116s tests/test_receive_shell.py .....s [ 98%] 116s tests/test_sshd.py . [100%] 116s 116s =================================== FAILURES =================================== 116s _______________________________ test_no_commits ________________________________ 116s 116s source_repo = 116s dest_repo = 116s sshd = SSHServerInfo(proc=, address='127.0.0.1', port=58516) 116s ssh_options = ['-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', ...] 116s cli_env_vars = {'PATH': '/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:...ild.U2w/src/debian/python3-ostree-push/usr/lib/python3.13/dist-packages:/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build'} 116s receive_config_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_no_commits0/ostree-receive.conf') 116s capfd = <_pytest.capture.CaptureFixture object at 0x79dce8a24d70> 116s 116s def test_no_commits(source_repo, dest_repo, sshd, ssh_options, 116s cli_env_vars, receive_config_path, capfd): 116s """Test push with no commits in source repo""" 116s args = ( 116s source_repo, dest_repo, sshd, ssh_options, cli_env_vars, 116s receive_config_path 116s ) 116s 116s > run_push(*args) 116s 116s tests/test_full.py:54: 116s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 116s tests/test_full.py:43: in run_push 116s return subprocess.run(cmd, **popen_kwargs) 116s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 116s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 116s 116s input = None, capture_output = False, timeout = None, check = True 116s 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', ...],) 116s kwargs = {'env': {'ADTTMP': '/tmp/autopkgtest.6RtGag/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.6RtGag/pybuild-autopk...': 'python3-defaults/3.14.2-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.6RtGag/pybuild-autopkgtest-artifacts', ...}} 116s process = 116s stdout = None, stderr = None, retcode = 1 116s 116s def run(*popenargs, 116s input=None, capture_output=False, timeout=None, check=False, **kwargs): 116s """Run command with arguments and return a CompletedProcess instance. 116s 116s The returned instance will have attributes args, returncode, stdout and 116s stderr. By default, stdout and stderr are not captured, and those attributes 116s will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them, 116s or pass capture_output=True to capture both. 116s 116s If check is True and the exit code was non-zero, it raises a 116s CalledProcessError. The CalledProcessError object will have the return code 116s in the returncode attribute, and output & stderr attributes if those streams 116s were captured. 116s 116s If timeout (seconds) is given and the process takes too long, 116s a TimeoutExpired exception will be raised. 116s 116s There is an optional argument "input", allowing you to 116s pass bytes or a string to the subprocess's stdin. If you use this argument 116s you may not also use the Popen constructor's "stdin" argument, as 116s it will be used internally. 116s 116s By default, all communication is in bytes, and therefore any "input" should 116s be bytes, and the stdout and stderr will be bytes. If in text mode, any 116s "input" should be a string, and stdout and stderr will be strings decoded 116s according to locale encoding, or by "encoding" if set. Text mode is 116s triggered by setting any of text, encoding, errors or universal_newlines. 116s 116s The other arguments are the same as for the Popen constructor. 116s """ 116s if input is not None: 116s if kwargs.get('stdin') is not None: 116s raise ValueError('stdin and input arguments may not both be used.') 116s kwargs['stdin'] = PIPE 116s 116s if capture_output: 116s if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None: 116s raise ValueError('stdout and stderr arguments may not be used ' 116s 'with capture_output.') 116s kwargs['stdout'] = PIPE 116s kwargs['stderr'] = PIPE 116s 116s with Popen(*popenargs, **kwargs) as process: 116s try: 116s stdout, stderr = process.communicate(input, timeout=timeout) 116s except TimeoutExpired as exc: 116s process.kill() 116s if _mswindows: 116s # Windows accumulates the output in a single blocking 116s # read() call run on child threads, with the timeout 116s # being done in a join() on those threads. communicate() 116s # _after_ kill() is required to collect that and add it 116s # to the exception. 116s exc.stdout, exc.stderr = process.communicate() 116s else: 116s # POSIX _communicate already populated the output so 116s # far into the TimeoutExpired exception. 116s process.wait() 116s raise 116s except: # Including KeyboardInterrupt, communicate handled that. 116s process.kill() 116s # We don't call process.wait() as .__exit__ does that for us. 116s raise 116s retcode = process.poll() 116s if check and retcode: 116s > raise CalledProcessError(retcode, process.args, 116s output=stdout, stderr=stderr) 116s 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:58516//tmp/pytest-of-ubuntu/pytest-0/test_no_commits0/dest-repo']' returned non-zero exit status 1. 116s 116s /usr/lib/python3.13/subprocess.py:577: CalledProcessError 116s ---------------------------- Captured stderr setup ----------------------------- 116s Server listening on 127.0.0.1 port 58516. 116s Connection closed by 127.0.0.1 port 47996 116s ----------------------------- Captured stderr call ----------------------------- 116s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests:/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build:/tmp/autopkgtest.6RtGag/build.U2w/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 116s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.6RtGag/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:58516//tmp/pytest-of-ubuntu/pytest-0/test_no_commits0/dest-repo'] 116s 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' 116s 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' 116s 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' 116s 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' 116s DEBUG:otpush.push:/tmp/pytest-of-ubuntu/pytest-0/test_no_commits0/source-repo/summary does not exist, regenerating 116s INFO:otpush.push:Regenerating summary file 116s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests:/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build:/tmp/autopkgtest.6RtGag/build.U2w/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 116s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests/ostree-push'] 116s usage: ostree-push [-h] [-n] [-p PORT] [-q] [-v] [--repo REPO] 116s [--command COMMAND] [-i OPTION] [--version] 116s DEST [REF ...] 116s ostree-push: error: the following arguments are required: DEST 116s Traceback (most recent call last): 116s File "/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests/ostree-push", line 14, in 116s push.main() 116s ~~~~~~~~~^^ 116s File "/usr/lib/python3/dist-packages/otpush/push.py", line 574, in main 116s push_refs( 116s ~~~~~~~~~^ 116s repo, 116s ^^^^^ 116s ...<4 lines>... 116s dry_run=args.dry_run, 116s ^^^^^^^^^^^^^^^^^^^^^ 116s ) 116s ^ 116s File "/usr/lib/python3/dist-packages/otpush/push.py", line 349, in push_refs 116s with RepoServer(local_repo_path) as http_server: 116s ~~~~~~~~~~^^^^^^^^^^^^^^^^^ 116s File "/usr/lib/python3/dist-packages/otpush/push.py", line 114, in __enter__ 116s self.start() 116s ~~~~~~~~~~^^ 116s File "/usr/lib/python3/dist-packages/otpush/push.py", line 141, in start 116s self.proc.start() 116s ~~~~~~~~~~~~~~~^^ 116s File "/usr/lib/python3.14/multiprocessing/process.py", line 121, in start 116s self._popen = self._Popen(self) 116s ~~~~~~~~~~~^^^^^^ 116s File "/usr/lib/python3.14/multiprocessing/context.py", line 224, in _Popen 116s return _default_context.get_context().Process._Popen(process_obj) 116s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 116s File "/usr/lib/python3.14/multiprocessing/context.py", line 300, in _Popen 116s return Popen(process_obj) 116s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 35, in __init__ 116s super().__init__(process_obj) 116s ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 116s File "/usr/lib/python3.14/multiprocessing/popen_fork.py", line 20, in __init__ 116s self._launch(process_obj) 116s ~~~~~~~~~~~~^^^^^^^^^^^^^ 116s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 51, in _launch 116s self.sentinel, w = forkserver.connect_to_new_process(self._fds) 116s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ 116s File "/usr/lib/python3.14/multiprocessing/forkserver.py", line 106, in connect_to_new_process 116s connection.answer_challenge( 116s ~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 116s wrapped_client, self._forkserver_authkey) 116s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 116s File "/usr/lib/python3.14/multiprocessing/connection.py", line 970, in answer_challenge 116s message = connection.recv_bytes(256) # reject large message 116s File "/usr/lib/python3.14/multiprocessing/connection.py", line 222, in recv_bytes 116s buf = self._recv_bytes(maxlength) 116s File "/usr/lib/python3.14/multiprocessing/connection.py", line 447, in _recv_bytes 116s buf = self._recv(4) 116s File "/usr/lib/python3.14/multiprocessing/connection.py", line 412, in _recv 116s chunk = read(handle, to_read) 116s ConnectionResetError: [Errno 104] Connection reset by peer 116s __________________________________ test_basic __________________________________ 116s 116s source_repo = 116s dest_repo = 116s sshd = SSHServerInfo(proc=, address='127.0.0.1', port=58516) 116s ssh_options = ['-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', ...] 116s cli_env_vars = {'PATH': '/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:...ild.U2w/src/debian/python3-ostree-push/usr/lib/python3.13/dist-packages:/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build'} 116s receive_config_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_basic0/ostree-receive.conf') 116s tmp_files_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_basic0/files') 116s capfd = <_pytest.capture.CaptureFixture object at 0x79dce919cf50> 116s 116s def test_basic(source_repo, dest_repo, sshd, ssh_options, cli_env_vars, 116s receive_config_path, tmp_files_path, capfd): 116s """Test push with one commit in source repo""" 116s args = ( 116s source_repo, dest_repo, sshd, ssh_options, cli_env_vars, 116s receive_config_path 116s ) 116s 116s rev = random_commit(source_repo, tmp_files_path, 'test') 116s source_content = get_content_checksum(source_repo, rev) 116s 116s wipe_repo(dest_repo) 116s > run_push(*args) 116s 116s tests/test_full.py:79: 116s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 116s tests/test_full.py:43: in run_push 116s return subprocess.run(cmd, **popen_kwargs) 116s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 116s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 116s 116s input = None, capture_output = False, timeout = None, check = True 116s 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', ...],) 116s kwargs = {'env': {'ADTTMP': '/tmp/autopkgtest.6RtGag/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.6RtGag/pybuild-autopk...': 'python3-defaults/3.14.2-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.6RtGag/pybuild-autopkgtest-artifacts', ...}} 116s process = 116s stdout = None, stderr = None, retcode = 1 116s 116s def run(*popenargs, 116s input=None, capture_output=False, timeout=None, check=False, **kwargs): 116s """Run command with arguments and return a CompletedProcess instance. 116s 116s The returned instance will have attributes args, returncode, stdout and 116s stderr. By default, stdout and stderr are not captured, and those attributes 116s will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them, 116s or pass capture_output=True to capture both. 116s 116s If check is True and the exit code was non-zero, it raises a 116s CalledProcessError. The CalledProcessError object will have the return code 116s in the returncode attribute, and output & stderr attributes if those streams 116s were captured. 116s 116s If timeout (seconds) is given and the process takes too long, 116s a TimeoutExpired exception will be raised. 116s 116s There is an optional argument "input", allowing you to 116s pass bytes or a string to the subprocess's stdin. If you use this argument 116s you may not also use the Popen constructor's "stdin" argument, as 116s it will be used internally. 116s 116s By default, all communication is in bytes, and therefore any "input" should 116s be bytes, and the stdout and stderr will be bytes. If in text mode, any 116s "input" should be a string, and stdout and stderr will be strings decoded 116s according to locale encoding, or by "encoding" if set. Text mode is 116s triggered by setting any of text, encoding, errors or universal_newlines. 116s 116s The other arguments are the same as for the Popen constructor. 116s """ 116s if input is not None: 116s if kwargs.get('stdin') is not None: 116s raise ValueError('stdin and input arguments may not both be used.') 116s kwargs['stdin'] = PIPE 116s 116s if capture_output: 116s if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None: 116s raise ValueError('stdout and stderr arguments may not be used ' 116s 'with capture_output.') 116s kwargs['stdout'] = PIPE 116s kwargs['stderr'] = PIPE 116s 116s with Popen(*popenargs, **kwargs) as process: 116s try: 116s stdout, stderr = process.communicate(input, timeout=timeout) 116s except TimeoutExpired as exc: 116s process.kill() 116s if _mswindows: 116s # Windows accumulates the output in a single blocking 116s # read() call run on child threads, with the timeout 116s # being done in a join() on those threads. communicate() 116s # _after_ kill() is required to collect that and add it 116s # to the exception. 116s exc.stdout, exc.stderr = process.communicate() 116s else: 116s # POSIX _communicate already populated the output so 116s # far into the TimeoutExpired exception. 116s process.wait() 116s raise 116s except: # Including KeyboardInterrupt, communicate handled that. 116s process.kill() 116s # We don't call process.wait() as .__exit__ does that for us. 116s raise 116s retcode = process.poll() 116s if check and retcode: 116s > raise CalledProcessError(retcode, process.args, 116s output=stdout, stderr=stderr) 116s 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:58516//tmp/pytest-of-ubuntu/pytest-0/test_basic0/dest-repo']' returned non-zero exit status 1. 116s 116s /usr/lib/python3.13/subprocess.py:577: CalledProcessError 116s ----------------------------- Captured stderr call ----------------------------- 116s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests:/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build:/tmp/autopkgtest.6RtGag/build.U2w/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 116s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.6RtGag/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:58516//tmp/pytest-of-ubuntu/pytest-0/test_basic0/dest-repo'] 116s 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' 116s 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' 116s 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' 116s 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' 116s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests:/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build:/tmp/autopkgtest.6RtGag/build.U2w/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 116s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests/ostree-push'] 116s usage: ostree-push [-h] [-n] [-p PORT] [-q] [-v] [--repo REPO] 116s [--command COMMAND] [-i OPTION] [--version] 116s DEST [REF ...] 116s ostree-push: error: the following arguments are required: DEST 116s Traceback (most recent call last): 116s File "/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests/ostree-push", line 14, in 116s push.main() 116s ~~~~~~~~~^^ 116s File "/usr/lib/python3/dist-packages/otpush/push.py", line 574, in main 116s push_refs( 116s ~~~~~~~~~^ 116s repo, 116s ^^^^^ 116s ...<4 lines>... 116s dry_run=args.dry_run, 116s ^^^^^^^^^^^^^^^^^^^^^ 116s ) 116s ^ 116s File "/usr/lib/python3/dist-packages/otpush/push.py", line 349, in push_refs 116s with RepoServer(local_repo_path) as http_server: 116s ~~~~~~~~~~^^^^^^^^^^^^^^^^^ 116s File "/usr/lib/python3/dist-packages/otpush/push.py", line 114, in __enter__ 116s self.start() 116s ~~~~~~~~~~^^ 116s File "/usr/lib/python3/dist-packages/otpush/push.py", line 141, in start 116s self.proc.start() 116s ~~~~~~~~~~~~~~~^^ 116s File "/usr/lib/python3.14/multiprocessing/process.py", line 121, in start 116s self._popen = self._Popen(self) 116s ~~~~~~~~~~~^^^^^^ 116s File "/usr/lib/python3.14/multiprocessing/context.py", line 224, in _Popen 116s return _default_context.get_context().Process._Popen(process_obj) 116s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 116s File "/usr/lib/python3.14/multiprocessing/context.py", line 300, in _Popen 116s return Popen(process_obj) 116s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 35, in __init__ 116s super().__init__(process_obj) 116s ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 116s File "/usr/lib/python3.14/multiprocessing/popen_fork.py", line 20, in __init__ 116s self._launch(process_obj) 116s ~~~~~~~~~~~~^^^^^^^^^^^^^ 116s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 51, in _launch 116s self.sentinel, w = forkserver.connect_to_new_process(self._fds) 116s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ 116s File "/usr/lib/python3.14/multiprocessing/forkserver.py", line 106, in connect_to_new_process 116s connection.answer_challenge( 116s ~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 116s wrapped_client, self._forkserver_authkey) 116s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 116s File "/usr/lib/python3.14/multiprocessing/connection.py", line 970, in answer_challenge 116s message = connection.recv_bytes(256) # reject large message 116s File "/usr/lib/python3.14/multiprocessing/connection.py", line 222, in recv_bytes 116s buf = self._recv_bytes(maxlength) 116s File "/usr/lib/python3.14/multiprocessing/connection.py", line 447, in _recv_bytes 116s buf = self._recv(4) 116s File "/usr/lib/python3.14/multiprocessing/connection.py", line 412, in _recv 116s chunk = read(handle, to_read) 116s ConnectionResetError: [Errno 104] Connection reset by peer 116s _________________________________ test_dry_run _________________________________ 116s 116s source_repo = 116s dest_repo = 116s sshd = SSHServerInfo(proc=, address='127.0.0.1', port=58516) 116s ssh_options = ['-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', ...] 116s cli_env_vars = {'PATH': '/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:...ild.U2w/src/debian/python3-ostree-push/usr/lib/python3.13/dist-packages:/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build'} 116s receive_config_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_dry_run0/ostree-receive.conf') 116s tmp_files_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_dry_run0/files') 116s 116s def test_dry_run(source_repo, dest_repo, sshd, ssh_options, cli_env_vars, 116s receive_config_path, tmp_files_path): 116s """Test push dry run""" 116s args = ( 116s source_repo, dest_repo, sshd, ssh_options, cli_env_vars, 116s receive_config_path 116s ) 116s 116s random_commit(source_repo, tmp_files_path, 'test') 116s 116s wipe_repo(dest_repo) 116s > run_push(*args, options=['-n']) 116s 116s tests/test_full.py:114: 116s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 116s tests/test_full.py:43: in run_push 116s return subprocess.run(cmd, **popen_kwargs) 116s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 116s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 116s 116s input = None, capture_output = False, timeout = None, check = True 116s 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', ...],) 116s kwargs = {'env': {'ADTTMP': '/tmp/autopkgtest.6RtGag/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.6RtGag/pybuild-autopk...': 'python3-defaults/3.14.2-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.6RtGag/pybuild-autopkgtest-artifacts', ...}} 116s process = 116s stdout = None, stderr = None, retcode = 1 116s 116s def run(*popenargs, 116s input=None, capture_output=False, timeout=None, check=False, **kwargs): 116s """Run command with arguments and return a CompletedProcess instance. 116s 116s The returned instance will have attributes args, returncode, stdout and 116s stderr. By default, stdout and stderr are not captured, and those attributes 116s will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them, 116s or pass capture_output=True to capture both. 116s 116s If check is True and the exit code was non-zero, it raises a 116s CalledProcessError. The CalledProcessError object will have the return code 116s in the returncode attribute, and output & stderr attributes if those streams 116s were captured. 116s 116s If timeout (seconds) is given and the process takes too long, 116s a TimeoutExpired exception will be raised. 116s 116s There is an optional argument "input", allowing you to 116s pass bytes or a string to the subprocess's stdin. If you use this argument 116s you may not also use the Popen constructor's "stdin" argument, as 116s it will be used internally. 116s 116s By default, all communication is in bytes, and therefore any "input" should 116s be bytes, and the stdout and stderr will be bytes. If in text mode, any 116s "input" should be a string, and stdout and stderr will be strings decoded 116s according to locale encoding, or by "encoding" if set. Text mode is 116s triggered by setting any of text, encoding, errors or universal_newlines. 116s 116s The other arguments are the same as for the Popen constructor. 116s """ 116s if input is not None: 116s if kwargs.get('stdin') is not None: 116s raise ValueError('stdin and input arguments may not both be used.') 116s kwargs['stdin'] = PIPE 116s 116s if capture_output: 116s if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None: 116s raise ValueError('stdout and stderr arguments may not be used ' 116s 'with capture_output.') 116s kwargs['stdout'] = PIPE 116s kwargs['stderr'] = PIPE 116s 116s with Popen(*popenargs, **kwargs) as process: 116s try: 116s stdout, stderr = process.communicate(input, timeout=timeout) 116s except TimeoutExpired as exc: 116s process.kill() 116s if _mswindows: 116s # Windows accumulates the output in a single blocking 116s # read() call run on child threads, with the timeout 116s # being done in a join() on those threads. communicate() 116s # _after_ kill() is required to collect that and add it 116s # to the exception. 116s exc.stdout, exc.stderr = process.communicate() 116s else: 116s # POSIX _communicate already populated the output so 116s # far into the TimeoutExpired exception. 116s process.wait() 116s raise 116s except: # Including KeyboardInterrupt, communicate handled that. 116s process.kill() 116s # We don't call process.wait() as .__exit__ does that for us. 116s raise 116s retcode = process.poll() 116s if check and retcode: 116s > raise CalledProcessError(retcode, process.args, 116s output=stdout, stderr=stderr) 116s 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:58516//tmp/pytest-of-ubuntu/pytest-0/test_dry_run0/dest-repo']' returned non-zero exit status 1. 116s 116s /usr/lib/python3.13/subprocess.py:577: CalledProcessError 116s ----------------------------- Captured stderr call ----------------------------- 116s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests:/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build:/tmp/autopkgtest.6RtGag/build.U2w/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 116s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.6RtGag/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:58516//tmp/pytest-of-ubuntu/pytest-0/test_dry_run0/dest-repo'] 116s 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' 116s 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' 116s 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' 116s 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' 116s DEBUG:otpush.push:Repo /tmp/pytest-of-ubuntu/pytest-0/test_dry_run0/source-repo has been modified more recently than /tmp/pytest-of-ubuntu/pytest-0/test_dry_run0/source-repo/summary, regenerating 116s INFO:otpush.push:Regenerating summary file 116s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests:/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build:/tmp/autopkgtest.6RtGag/build.U2w/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 116s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests/ostree-push'] 116s usage: ostree-push [-h] [-n] [-p PORT] [-q] [-v] [--repo REPO] 116s [--command COMMAND] [-i OPTION] [--version] 116s DEST [REF ...] 116s ostree-push: error: the following arguments are required: DEST 116s Traceback (most recent call last): 116s File "/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests/ostree-push", line 14, in 116s push.main() 116s ~~~~~~~~~^^ 116s File "/usr/lib/python3/dist-packages/otpush/push.py", line 574, in main 116s push_refs( 116s ~~~~~~~~~^ 116s repo, 116s ^^^^^ 116s ...<4 lines>... 116s dry_run=args.dry_run, 116s ^^^^^^^^^^^^^^^^^^^^^ 116s ) 116s ^ 116s File "/usr/lib/python3/dist-packages/otpush/push.py", line 349, in push_refs 116s with RepoServer(local_repo_path) as http_server: 116s ~~~~~~~~~~^^^^^^^^^^^^^^^^^ 116s File "/usr/lib/python3/dist-packages/otpush/push.py", line 114, in __enter__ 116s self.start() 116s ~~~~~~~~~~^^ 116s File "/usr/lib/python3/dist-packages/otpush/push.py", line 141, in start 116s self.proc.start() 116s ~~~~~~~~~~~~~~~^^ 116s File "/usr/lib/python3.14/multiprocessing/process.py", line 121, in start 116s self._popen = self._Popen(self) 116s ~~~~~~~~~~~^^^^^^ 116s File "/usr/lib/python3.14/multiprocessing/context.py", line 224, in _Popen 116s return _default_context.get_context().Process._Popen(process_obj) 116s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 116s File "/usr/lib/python3.14/multiprocessing/context.py", line 300, in _Popen 116s return Popen(process_obj) 116s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 35, in __init__ 116s super().__init__(process_obj) 116s ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 116s File "/usr/lib/python3.14/multiprocessing/popen_fork.py", line 20, in __init__ 116s self._launch(process_obj) 116s ~~~~~~~~~~~~^^^^^^^^^^^^^ 116s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 51, in _launch 116s self.sentinel, w = forkserver.connect_to_new_process(self._fds) 116s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ 116s File "/usr/lib/python3.14/multiprocessing/forkserver.py", line 106, in connect_to_new_process 116s connection.answer_challenge( 116s ~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 116s wrapped_client, self._forkserver_authkey) 116s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 116s File "/usr/lib/python3.14/multiprocessing/connection.py", line 970, in answer_challenge 116s message = connection.recv_bytes(256) # reject large message 116s File "/usr/lib/python3.14/multiprocessing/connection.py", line 222, in recv_bytes 116s buf = self._recv_bytes(maxlength) 116s File "/usr/lib/python3.14/multiprocessing/connection.py", line 447, in _recv_bytes 116s buf = self._recv(4) 116s File "/usr/lib/python3.14/multiprocessing/connection.py", line 412, in _recv 116s chunk = read(handle, to_read) 116s ConnectionResetError: [Errno 104] Connection reset by peer 116s ________________________________ test_scp_dest _________________________________ 116s 116s source_repo = 116s dest_repo = 116s sshd = SSHServerInfo(proc=, address='127.0.0.1', port=58516) 116s ssh_options = ['-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', ...] 116s cli_env_vars = {'PATH': '/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:...ild.U2w/src/debian/python3-ostree-push/usr/lib/python3.13/dist-packages:/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build'} 116s receive_config_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_scp_dest0/ostree-receive.conf') 116s tmp_files_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_scp_dest0/files') 116s 116s def test_scp_dest(source_repo, dest_repo, sshd, ssh_options, cli_env_vars, 116s receive_config_path, tmp_files_path): 116s """Test push with scp style destination""" 116s args = ( 116s source_repo, dest_repo, sshd, ssh_options, cli_env_vars, 116s receive_config_path 116s ) 116s dest = f'{sshd.address}:{dest_repo.path}' 116s options = ['-p', str(sshd.port)] 116s 116s random_commit(source_repo, tmp_files_path, 'test') 116s > run_push(*args, dest=dest, options=options) 116s 116s tests/test_full.py:140: 116s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 116s tests/test_full.py:43: in run_push 116s return subprocess.run(cmd, **popen_kwargs) 116s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 116s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 116s 116s input = None, capture_output = False, timeout = None, check = True 116s 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', ...],) 116s kwargs = {'env': {'ADTTMP': '/tmp/autopkgtest.6RtGag/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.6RtGag/pybuild-autopk...': 'python3-defaults/3.14.2-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.6RtGag/pybuild-autopkgtest-artifacts', ...}} 116s process = 116s stdout = None, stderr = None, retcode = 1 116s 116s def run(*popenargs, 116s input=None, capture_output=False, timeout=None, check=False, **kwargs): 116s """Run command with arguments and return a CompletedProcess instance. 116s 116s The returned instance will have attributes args, returncode, stdout and 116s stderr. By default, stdout and stderr are not captured, and those attributes 116s will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them, 116s or pass capture_output=True to capture both. 116s 116s If check is True and the exit code was non-zero, it raises a 116s CalledProcessError. The CalledProcessError object will have the return code 116s in the returncode attribute, and output & stderr attributes if those streams 116s were captured. 116s 116s If timeout (seconds) is given and the process takes too long, 116s a TimeoutExpired exception will be raised. 116s 116s There is an optional argument "input", allowing you to 116s pass bytes or a string to the subprocess's stdin. If you use this argument 116s you may not also use the Popen constructor's "stdin" argument, as 116s it will be used internally. 116s 116s By default, all communication is in bytes, and therefore any "input" should 116s be bytes, and the stdout and stderr will be bytes. If in text mode, any 116s "input" should be a string, and stdout and stderr will be strings decoded 116s according to locale encoding, or by "encoding" if set. Text mode is 116s triggered by setting any of text, encoding, errors or universal_newlines. 116s 116s The other arguments are the same as for the Popen constructor. 116s """ 116s if input is not None: 116s if kwargs.get('stdin') is not None: 116s raise ValueError('stdin and input arguments may not both be used.') 116s kwargs['stdin'] = PIPE 116s 116s if capture_output: 116s if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None: 116s raise ValueError('stdout and stderr arguments may not be used ' 116s 'with capture_output.') 116s kwargs['stdout'] = PIPE 116s kwargs['stderr'] = PIPE 116s 116s with Popen(*popenargs, **kwargs) as process: 116s try: 116s stdout, stderr = process.communicate(input, timeout=timeout) 116s except TimeoutExpired as exc: 116s process.kill() 116s if _mswindows: 116s # Windows accumulates the output in a single blocking 116s # read() call run on child threads, with the timeout 116s # being done in a join() on those threads. communicate() 116s # _after_ kill() is required to collect that and add it 116s # to the exception. 116s exc.stdout, exc.stderr = process.communicate() 116s else: 116s # POSIX _communicate already populated the output so 116s # far into the TimeoutExpired exception. 116s process.wait() 116s raise 116s except: # Including KeyboardInterrupt, communicate handled that. 116s process.kill() 116s # We don't call process.wait() as .__exit__ does that for us. 116s raise 116s retcode = process.poll() 116s if check and retcode: 116s > raise CalledProcessError(retcode, process.args, 116s output=stdout, stderr=stderr) 116s 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', '58516', '127.0.0.1:/tmp/pytest-of-ubuntu/pytest-0/test_scp_dest0/dest-repo']' returned non-zero exit status 1. 116s 116s /usr/lib/python3.13/subprocess.py:577: CalledProcessError 116s ----------------------------- Captured stderr call ----------------------------- 116s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests:/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build:/tmp/autopkgtest.6RtGag/build.U2w/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 116s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.6RtGag/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', '58516', '127.0.0.1:/tmp/pytest-of-ubuntu/pytest-0/test_scp_dest0/dest-repo'] 116s 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' 116s 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' 116s 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' 116s 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' 116s DEBUG:otpush.push:Repo /tmp/pytest-of-ubuntu/pytest-0/test_scp_dest0/source-repo has been modified more recently than /tmp/pytest-of-ubuntu/pytest-0/test_scp_dest0/source-repo/summary, regenerating 116s INFO:otpush.push:Regenerating summary file 116s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests:/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build:/tmp/autopkgtest.6RtGag/build.U2w/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 116s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests/ostree-push'] 116s usage: ostree-push [-h] [-n] [-p PORT] [-q] [-v] [--repo REPO] 116s [--command COMMAND] [-i OPTION] [--version] 116s DEST [REF ...] 116s ostree-push: error: the following arguments are required: DEST 116s Traceback (most recent call last): 116s File "/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests/ostree-push", line 14, in 116s push.main() 116s ~~~~~~~~~^^ 116s File "/usr/lib/python3/dist-packages/otpush/push.py", line 574, in main 116s push_refs( 116s ~~~~~~~~~^ 116s repo, 116s ^^^^^ 116s ...<4 lines>... 116s dry_run=args.dry_run, 116s ^^^^^^^^^^^^^^^^^^^^^ 116s ) 116s ^ 116s File "/usr/lib/python3/dist-packages/otpush/push.py", line 349, in push_refs 116s with RepoServer(local_repo_path) as http_server: 116s ~~~~~~~~~~^^^^^^^^^^^^^^^^^ 116s File "/usr/lib/python3/dist-packages/otpush/push.py", line 114, in __enter__ 116s self.start() 116s ~~~~~~~~~~^^ 116s File "/usr/lib/python3/dist-packages/otpush/push.py", line 141, in start 116s self.proc.start() 116s ~~~~~~~~~~~~~~~^^ 116s File "/usr/lib/python3.14/multiprocessing/process.py", line 121, in start 116s self._popen = self._Popen(self) 116s ~~~~~~~~~~~^^^^^^ 116s File "/usr/lib/python3.14/multiprocessing/context.py", line 224, in _Popen 116s return _default_context.get_context().Process._Popen(process_obj) 116s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 116s File "/usr/lib/python3.14/multiprocessing/context.py", line 300, in _Popen 116s return Popen(process_obj) 116s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 35, in __init__ 116s super().__init__(process_obj) 116s ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 116s File "/usr/lib/python3.14/multiprocessing/popen_fork.py", line 20, in __init__ 116s self._launch(process_obj) 116s ~~~~~~~~~~~~^^^^^^^^^^^^^ 116s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 51, in _launch 116s self.sentinel, w = forkserver.connect_to_new_process(self._fds) 116s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ 116s File "/usr/lib/python3.14/multiprocessing/forkserver.py", line 106, in connect_to_new_process 116s connection.answer_challenge( 116s ~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 116s wrapped_client, self._forkserver_authkey) 116s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 116s File "/usr/lib/python3.14/multiprocessing/connection.py", line 970, in answer_challenge 116s message = connection.recv_bytes(256) # reject large message 116s File "/usr/lib/python3.14/multiprocessing/connection.py", line 222, in recv_bytes 116s buf = self._recv_bytes(maxlength) 116s File "/usr/lib/python3.14/multiprocessing/connection.py", line 447, in _recv_bytes 116s buf = self._recv(4) 116s File "/usr/lib/python3.14/multiprocessing/connection.py", line 412, in _recv 116s chunk = read(handle, to_read) 116s ConnectionResetError: [Errno 104] Connection reset by peer 116s _____________________________ test_command_abspath _____________________________ 116s 116s source_repo = 116s dest_repo = 116s sshd = SSHServerInfo(proc=, address='127.0.0.1', port=58516) 116s ssh_options = ['-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', ...] 116s cli_env_vars = {'PATH': '/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:...ild.U2w/src/debian/python3-ostree-push/usr/lib/python3.13/dist-packages:/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build'} 116s receive_config_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_command_abspath0/ostree-receive.conf') 116s tmp_files_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_command_abspath0/files') 116s 116s def test_command_abspath(source_repo, dest_repo, sshd, ssh_options, 116s cli_env_vars, receive_config_path, tmp_files_path): 116s """Test push with absolute path to ostree-receive""" 116s args = ( 116s source_repo, dest_repo, sshd, ssh_options, cli_env_vars, 116s receive_config_path 116s ) 116s random_commit(source_repo, tmp_files_path, 'test') 116s > run_push(*args, command=ostree_receive_abspath) 116s 116s tests/test_full.py:153: 116s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 116s tests/test_full.py:43: in run_push 116s return subprocess.run(cmd, **popen_kwargs) 116s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 116s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 116s 116s input = None, capture_output = False, timeout = None, check = True 116s popenargs = (['ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-0/test_command_abspath0/source-repo', '--command=/tmp/autopkgtes...ag/autopkgtest_tmp/build/tests/ostree-receive-1', '-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', ...],) 116s kwargs = {'env': {'ADTTMP': '/tmp/autopkgtest.6RtGag/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.6RtGag/pybuild-autopk...': 'python3-defaults/3.14.2-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.6RtGag/pybuild-autopkgtest-artifacts', ...}} 116s process = 116s stdout = None, stderr = None, retcode = 1 116s 116s def run(*popenargs, 116s input=None, capture_output=False, timeout=None, check=False, **kwargs): 116s """Run command with arguments and return a CompletedProcess instance. 116s 116s The returned instance will have attributes args, returncode, stdout and 116s stderr. By default, stdout and stderr are not captured, and those attributes 116s will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them, 116s or pass capture_output=True to capture both. 116s 116s If check is True and the exit code was non-zero, it raises a 116s CalledProcessError. The CalledProcessError object will have the return code 116s in the returncode attribute, and output & stderr attributes if those streams 116s were captured. 116s 116s If timeout (seconds) is given and the process takes too long, 116s a TimeoutExpired exception will be raised. 116s 116s There is an optional argument "input", allowing you to 116s pass bytes or a string to the subprocess's stdin. If you use this argument 116s you may not also use the Popen constructor's "stdin" argument, as 116s it will be used internally. 116s 116s By default, all communication is in bytes, and therefore any "input" should 116s be bytes, and the stdout and stderr will be bytes. If in text mode, any 116s "input" should be a string, and stdout and stderr will be strings decoded 116s according to locale encoding, or by "encoding" if set. Text mode is 116s triggered by setting any of text, encoding, errors or universal_newlines. 116s 116s The other arguments are the same as for the Popen constructor. 116s """ 116s if input is not None: 116s if kwargs.get('stdin') is not None: 116s raise ValueError('stdin and input arguments may not both be used.') 116s kwargs['stdin'] = PIPE 116s 116s if capture_output: 116s if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None: 116s raise ValueError('stdout and stderr arguments may not be used ' 116s 'with capture_output.') 116s kwargs['stdout'] = PIPE 116s kwargs['stderr'] = PIPE 116s 116s with Popen(*popenargs, **kwargs) as process: 116s try: 116s stdout, stderr = process.communicate(input, timeout=timeout) 116s except TimeoutExpired as exc: 116s process.kill() 116s if _mswindows: 116s # Windows accumulates the output in a single blocking 116s # read() call run on child threads, with the timeout 116s # being done in a join() on those threads. communicate() 116s # _after_ kill() is required to collect that and add it 116s # to the exception. 116s exc.stdout, exc.stderr = process.communicate() 116s else: 116s # POSIX _communicate already populated the output so 116s # far into the TimeoutExpired exception. 116s process.wait() 116s raise 116s except: # Including KeyboardInterrupt, communicate handled that. 116s process.kill() 116s # We don't call process.wait() as .__exit__ does that for us. 116s raise 116s retcode = process.poll() 116s if check and retcode: 116s > raise CalledProcessError(retcode, process.args, 116s output=stdout, stderr=stderr) 116s E subprocess.CalledProcessError: Command '['ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-0/test_command_abspath0/source-repo', '--command=/tmp/autopkgtest.6RtGag/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:58516//tmp/pytest-of-ubuntu/pytest-0/test_command_abspath0/dest-repo']' returned non-zero exit status 1. 116s 116s /usr/lib/python3.13/subprocess.py:577: CalledProcessError 116s ----------------------------- Captured stderr call ----------------------------- 116s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests:/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build:/tmp/autopkgtest.6RtGag/build.U2w/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 116s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests/ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-0/test_command_abspath0/source-repo', '--command=/tmp/autopkgtest.6RtGag/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:58516//tmp/pytest-of-ubuntu/pytest-0/test_command_abspath0/dest-repo'] 116s 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.6RtGag/autopkgtest_tmp/build/tests/ostree-receive-1'], ssh_options=[]), '-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa' 116s 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.6RtGag/autopkgtest_tmp/build/tests/ostree-receive-1'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa']), '-o', 'IdentitiesOnly=yes' 116s 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.6RtGag/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' 116s 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.6RtGag/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' 116s DEBUG:otpush.push:Repo /tmp/pytest-of-ubuntu/pytest-0/test_command_abspath0/source-repo has been modified more recently than /tmp/pytest-of-ubuntu/pytest-0/test_command_abspath0/source-repo/summary, regenerating 116s INFO:otpush.push:Regenerating summary file 116s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests:/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build:/tmp/autopkgtest.6RtGag/build.U2w/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 116s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests/ostree-push'] 116s usage: ostree-push [-h] [-n] [-p PORT] [-q] [-v] [--repo REPO] 116s [--command COMMAND] [-i OPTION] [--version] 116s DEST [REF ...] 116s ostree-push: error: the following arguments are required: DEST 116s Traceback (most recent call last): 116s File "/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests/ostree-push", line 14, in 116s push.main() 116s ~~~~~~~~~^^ 116s File "/usr/lib/python3/dist-packages/otpush/push.py", line 574, in main 116s push_refs( 116s ~~~~~~~~~^ 116s repo, 116s ^^^^^ 116s ...<4 lines>... 116s dry_run=args.dry_run, 116s ^^^^^^^^^^^^^^^^^^^^^ 116s ) 116s ^ 116s File "/usr/lib/python3/dist-packages/otpush/push.py", line 349, in push_refs 116s with RepoServer(local_repo_path) as http_server: 116s ~~~~~~~~~~^^^^^^^^^^^^^^^^^ 116s File "/usr/lib/python3/dist-packages/otpush/push.py", line 114, in __enter__ 116s self.start() 116s ~~~~~~~~~~^^ 116s File "/usr/lib/python3/dist-packages/otpush/push.py", line 141, in start 116s self.proc.start() 116s ~~~~~~~~~~~~~~~^^ 116s File "/usr/lib/python3.14/multiprocessing/process.py", line 121, in start 116s self._popen = self._Popen(self) 116s ~~~~~~~~~~~^^^^^^ 116s File "/usr/lib/python3.14/multiprocessing/context.py", line 224, in _Popen 116s return _default_context.get_context().Process._Popen(process_obj) 116s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 116s File "/usr/lib/python3.14/multiprocessing/context.py", line 300, in _Popen 116s return Popen(process_obj) 116s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 35, in __init__ 116s super().__init__(process_obj) 116s ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 116s File "/usr/lib/python3.14/multiprocessing/popen_fork.py", line 20, in __init__ 116s self._launch(process_obj) 116s ~~~~~~~~~~~~^^^^^^^^^^^^^ 116s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 51, in _launch 116s self.sentinel, w = forkserver.connect_to_new_process(self._fds) 116s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ 116s File "/usr/lib/python3.14/multiprocessing/forkserver.py", line 106, in connect_to_new_process 116s connection.answer_challenge( 116s ~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 116s wrapped_client, self._forkserver_authkey) 116s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 116s File "/usr/lib/python3.14/multiprocessing/connection.py", line 970, in answer_challenge 116s message = connection.recv_bytes(256) # reject large message 116s File "/usr/lib/python3.14/multiprocessing/connection.py", line 222, in recv_bytes 116s buf = self._recv_bytes(maxlength) 116s File "/usr/lib/python3.14/multiprocessing/connection.py", line 447, in _recv_bytes 116s buf = self._recv(4) 116s File "/usr/lib/python3.14/multiprocessing/connection.py", line 412, in _recv 116s chunk = read(handle, to_read) 116s ConnectionResetError: [Errno 104] Connection reset by peer 116s _______________________________ test_unversioned _______________________________ 116s 116s source_repo = 116s dest_repo = 116s sshd = SSHServerInfo(proc=, address='127.0.0.1', port=58516) 116s ssh_options = ['-i', '/tmp/pytest-of-ubuntu/pytest-0/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', ...] 116s cli_env_vars = {'PATH': '/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:...ild.U2w/src/debian/python3-ostree-push/usr/lib/python3.13/dist-packages:/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build'} 116s receive_config_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_unversioned0/ostree-receive.conf') 116s tmp_files_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_unversioned0/files') 116s 116s def test_unversioned(source_repo, dest_repo, sshd, ssh_options, 116s cli_env_vars, receive_config_path, tmp_files_path): 116s """Test push with unversioned ostree-receive""" 116s args = ( 116s source_repo, dest_repo, sshd, ssh_options, cli_env_vars, 116s receive_config_path 116s ) 116s random_commit(source_repo, tmp_files_path, 'test') 116s > run_push(*args, command='ostree-receive') 116s 116s tests/test_full.py:166: 116s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 116s tests/test_full.py:43: in run_push 116s return subprocess.run(cmd, **popen_kwargs) 116s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 116s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 116s 116s input = None, capture_output = False, timeout = None, check = True 116s 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', ...],) 116s kwargs = {'env': {'ADTTMP': '/tmp/autopkgtest.6RtGag/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.6RtGag/pybuild-autopk...': 'python3-defaults/3.14.2-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.6RtGag/pybuild-autopkgtest-artifacts', ...}} 116s process = 116s stdout = None, stderr = None, retcode = 1 116s 116s def run(*popenargs, 116s input=None, capture_output=False, timeout=None, check=False, **kwargs): 116s """Run command with arguments and return a CompletedProcess instance. 116s 116s The returned instance will have attributes args, returncode, stdout and 116s stderr. By default, stdout and stderr are not captured, and those attributes 116s will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them, 116s or pass capture_output=True to capture both. 116s 116s If check is True and the exit code was non-zero, it raises a 116s CalledProcessError. The CalledProcessError object will have the return code 116s in the returncode attribute, and output & stderr attributes if those streams 116s were captured. 116s 116s If timeout (seconds) is given and the process takes too long, 116s a TimeoutExpired exception will be raised. 116s 116s There is an optional argument "input", allowing you to 116s pass bytes or a string to the subprocess's stdin. If you use this argument 116s you may not also use the Popen constructor's "stdin" argument, as 116s it will be used internally. 116s 116s By default, all communication is in bytes, and therefore any "input" should 116s be bytes, and the stdout and stderr will be bytes. If in text mode, any 116s "input" should be a string, and stdout and stderr will be strings decoded 116s according to locale encoding, or by "encoding" if set. Text mode is 116s triggered by setting any of text, encoding, errors or universal_newlines. 116s 116s The other arguments are the same as for the Popen constructor. 116s """ 116s if input is not None: 116s if kwargs.get('stdin') is not None: 116s raise ValueError('stdin and input arguments may not both be used.') 116s kwargs['stdin'] = PIPE 116s 116s if capture_output: 116s if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None: 116s raise ValueError('stdout and stderr arguments may not be used ' 116s 'with capture_output.') 116s kwargs['stdout'] = PIPE 116s kwargs['stderr'] = PIPE 116s 116s with Popen(*popenargs, **kwargs) as process: 116s try: 116s stdout, stderr = process.communicate(input, timeout=timeout) 116s except TimeoutExpired as exc: 116s process.kill() 116s if _mswindows: 116s # Windows accumulates the output in a single blocking 116s # read() call run on child threads, with the timeout 116s # being done in a join() on those threads. communicate() 116s # _after_ kill() is required to collect that and add it 116s # to the exception. 116s exc.stdout, exc.stderr = process.communicate() 116s else: 116s # POSIX _communicate already populated the output so 116s # far into the TimeoutExpired exception. 116s process.wait() 116s raise 116s except: # Including KeyboardInterrupt, communicate handled that. 116s process.kill() 116s # We don't call process.wait() as .__exit__ does that for us. 116s raise 116s retcode = process.poll() 116s if check and retcode: 116s > raise CalledProcessError(retcode, process.args, 116s output=stdout, stderr=stderr) 116s 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:58516//tmp/pytest-of-ubuntu/pytest-0/test_unversioned0/dest-repo']' returned non-zero exit status 1. 116s 116s /usr/lib/python3.13/subprocess.py:577: CalledProcessError 116s ----------------------------- Captured stderr call ----------------------------- 116s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests:/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build:/tmp/autopkgtest.6RtGag/build.U2w/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 116s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.6RtGag/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:58516//tmp/pytest-of-ubuntu/pytest-0/test_unversioned0/dest-repo'] 116s 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' 116s 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' 116s 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' 116s 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' 116s 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 116s INFO:otpush.push:Regenerating summary file 116s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests:/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build:/tmp/autopkgtest.6RtGag/build.U2w/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 116s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests/ostree-push'] 116s usage: ostree-push [-h] [-n] [-p PORT] [-q] [-v] [--repo REPO] 116s [--command COMMAND] [-i OPTION] [--version] 116s DEST [REF ...] 116s ostree-push: error: the following arguments are required: DEST 116s Traceback (most recent call last): 116s File "/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests/ostree-push", line 14, in 116s push.main() 116s ~~~~~~~~~^^ 116s File "/usr/lib/python3/dist-packages/otpush/push.py", line 574, in main 116s push_refs( 116s ~~~~~~~~~^ 116s repo, 116s ^^^^^ 116s ...<4 lines>... 116s dry_run=args.dry_run, 116s ^^^^^^^^^^^^^^^^^^^^^ 116s ) 116s ^ 116s File "/usr/lib/python3/dist-packages/otpush/push.py", line 349, in push_refs 116s with RepoServer(local_repo_path) as http_server: 116s ~~~~~~~~~~^^^^^^^^^^^^^^^^^ 116s File "/usr/lib/python3/dist-packages/otpush/push.py", line 114, in __enter__ 116s self.start() 116s ~~~~~~~~~~^^ 116s File "/usr/lib/python3/dist-packages/otpush/push.py", line 141, in start 116s self.proc.start() 116s ~~~~~~~~~~~~~~~^^ 116s File "/usr/lib/python3.14/multiprocessing/process.py", line 121, in start 116s self._popen = self._Popen(self) 116s ~~~~~~~~~~~^^^^^^ 116s File "/usr/lib/python3.14/multiprocessing/context.py", line 224, in _Popen 116s return _default_context.get_context().Process._Popen(process_obj) 116s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 116s File "/usr/lib/python3.14/multiprocessing/context.py", line 300, in _Popen 116s return Popen(process_obj) 116s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 35, in __init__ 116s super().__init__(process_obj) 116s ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 116s File "/usr/lib/python3.14/multiprocessing/popen_fork.py", line 20, in __init__ 116s self._launch(process_obj) 116s ~~~~~~~~~~~~^^^^^^^^^^^^^ 116s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 51, in _launch 116s self.sentinel, w = forkserver.connect_to_new_process(self._fds) 116s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ 116s File "/usr/lib/python3.14/multiprocessing/forkserver.py", line 106, in connect_to_new_process 116s connection.answer_challenge( 116s ~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 116s wrapped_client, self._forkserver_authkey) 116s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 116s File "/usr/lib/python3.14/multiprocessing/connection.py", line 970, in answer_challenge 116s message = connection.recv_bytes(256) # reject large message 116s File "/usr/lib/python3.14/multiprocessing/connection.py", line 222, in recv_bytes 116s buf = self._recv_bytes(maxlength) 116s File "/usr/lib/python3.14/multiprocessing/connection.py", line 447, in _recv_bytes 116s buf = self._recv(4) 116s File "/usr/lib/python3.14/multiprocessing/connection.py", line 412, in _recv 116s chunk = read(handle, to_read) 116s ConnectionResetError: [Errno 104] Connection reset by peer 116s =============================== warnings summary =============================== 116s tests/test_push.py: 10 warnings 116s tests/test_receive.py: 19 warnings 116s /usr/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=3172) is multi-threaded, use of fork() may lead to deadlocks in the child. 116s self.pid = os.fork() 116s 116s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 116s =========================== short test summary info ============================ 116s FAILED tests/test_full.py::test_no_commits - subprocess.CalledProcessError: C... 116s FAILED tests/test_full.py::test_basic - subprocess.CalledProcessError: Comman... 116s FAILED tests/test_full.py::test_dry_run - subprocess.CalledProcessError: Comm... 116s FAILED tests/test_full.py::test_scp_dest - subprocess.CalledProcessError: Com... 116s FAILED tests/test_full.py::test_command_abspath - subprocess.CalledProcessErr... 116s FAILED tests/test_full.py::test_unversioned - subprocess.CalledProcessError: ... 116s ============ 6 failed, 89 passed, 4 skipped, 29 warnings in 12.05s ============= 116s E: pybuild pybuild:483: test: plugin pyproject failed with: exit code=1: cd /tmp/autopkgtest.6RtGag/autopkgtest_tmp/build; python3.13 -m pytest tests 116s I: pybuild base:384: cd /tmp/autopkgtest.6RtGag/autopkgtest_tmp/build; python3.14 -m pytest tests 116s ============================= test session starts ============================== 116s platform linux -- Python 3.14.2, pytest-9.0.2, pluggy-1.6.0 116s rootdir: /tmp/autopkgtest.6RtGag/autopkgtest_tmp/build 116s plugins: typeguard-4.4.4 116s collected 99 items 116s 118s tests/test_full.py FFFFFF [ 6%] 127s tests/test_push.py ................................. [ 39%] 129s tests/test_receive.py ...........ss...s................................. [ 89%] 129s . [ 90%] 129s tests/test_receive_legacy.py .. [ 92%] 130s tests/test_receive_shell.py .....s [ 98%] 130s tests/test_sshd.py . [100%] 130s 130s =================================== FAILURES =================================== 130s _______________________________ test_no_commits ________________________________ 130s 130s source_repo = 130s dest_repo = 130s sshd = SSHServerInfo(proc=, address='127.0.0.1', port=43266) 130s ssh_options = ['-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', ...] 130s cli_env_vars = {'PATH': '/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:...ild.U2w/src/debian/python3-ostree-push/usr/lib/python3.14/dist-packages:/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build'} 130s receive_config_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-1/test_no_commits0/ostree-receive.conf') 130s capfd = <_pytest.capture.CaptureFixture object at 0x72ff83249940> 130s 130s def test_no_commits(source_repo, dest_repo, sshd, ssh_options, 130s cli_env_vars, receive_config_path, capfd): 130s """Test push with no commits in source repo""" 130s args = ( 130s source_repo, dest_repo, sshd, ssh_options, cli_env_vars, 130s receive_config_path 130s ) 130s 130s > run_push(*args) 130s 130s tests/test_full.py:54: 130s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 130s tests/test_full.py:43: in run_push 130s return subprocess.run(cmd, **popen_kwargs) 130s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 130s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 130s 130s input = None, capture_output = False, timeout = None, check = True 130s 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', ...],) 130s kwargs = {'env': {'ADTTMP': '/tmp/autopkgtest.6RtGag/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.6RtGag/pybuild-autopk...': 'python3-defaults/3.14.2-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.6RtGag/pybuild-autopkgtest-artifacts', ...}} 130s process = 130s stdout = None, stderr = None, retcode = 1 130s 130s def run(*popenargs, 130s input=None, capture_output=False, timeout=None, check=False, **kwargs): 130s """Run command with arguments and return a CompletedProcess instance. 130s 130s The returned instance will have attributes args, returncode, stdout and 130s stderr. By default, stdout and stderr are not captured, and those attributes 130s will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them, 130s or pass capture_output=True to capture both. 130s 130s If check is True and the exit code was non-zero, it raises a 130s CalledProcessError. The CalledProcessError object will have the return code 130s in the returncode attribute, and output & stderr attributes if those streams 130s were captured. 130s 130s If timeout (seconds) is given and the process takes too long, 130s a TimeoutExpired exception will be raised. 130s 130s There is an optional argument "input", allowing you to 130s pass bytes or a string to the subprocess's stdin. If you use this argument 130s you may not also use the Popen constructor's "stdin" argument, as 130s it will be used internally. 130s 130s By default, all communication is in bytes, and therefore any "input" should 130s be bytes, and the stdout and stderr will be bytes. If in text mode, any 130s "input" should be a string, and stdout and stderr will be strings decoded 130s according to locale encoding, or by "encoding" if set. Text mode is 130s triggered by setting any of text, encoding, errors or universal_newlines. 130s 130s The other arguments are the same as for the Popen constructor. 130s """ 130s if input is not None: 130s if kwargs.get('stdin') is not None: 130s raise ValueError('stdin and input arguments may not both be used.') 130s kwargs['stdin'] = PIPE 130s 130s if capture_output: 130s if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None: 130s raise ValueError('stdout and stderr arguments may not be used ' 130s 'with capture_output.') 130s kwargs['stdout'] = PIPE 130s kwargs['stderr'] = PIPE 130s 130s with Popen(*popenargs, **kwargs) as process: 130s try: 130s stdout, stderr = process.communicate(input, timeout=timeout) 130s except TimeoutExpired as exc: 130s process.kill() 130s if _mswindows: 130s # Windows accumulates the output in a single blocking 130s # read() call run on child threads, with the timeout 130s # being done in a join() on those threads. communicate() 130s # _after_ kill() is required to collect that and add it 130s # to the exception. 130s exc.stdout, exc.stderr = process.communicate() 130s else: 130s # POSIX _communicate already populated the output so 130s # far into the TimeoutExpired exception. 130s process.wait() 130s raise 130s except: # Including KeyboardInterrupt, communicate handled that. 130s process.kill() 130s # We don't call process.wait() as .__exit__ does that for us. 130s raise 130s retcode = process.poll() 130s if check and retcode: 130s > raise CalledProcessError(retcode, process.args, 130s output=stdout, stderr=stderr) 130s 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:43266//tmp/pytest-of-ubuntu/pytest-1/test_no_commits0/dest-repo']' returned non-zero exit status 1. 130s 130s /usr/lib/python3.14/subprocess.py:577: CalledProcessError 130s ---------------------------- Captured stderr setup ----------------------------- 130s Server listening on 127.0.0.1 port 43266. 130s Connection closed by 127.0.0.1 port 54216 130s ----------------------------- Captured stderr call ----------------------------- 130s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests:/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build:/tmp/autopkgtest.6RtGag/build.U2w/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 130s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.6RtGag/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:43266//tmp/pytest-of-ubuntu/pytest-1/test_no_commits0/dest-repo'] 130s 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' 130s 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' 130s 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' 130s 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' 130s DEBUG:otpush.push:/tmp/pytest-of-ubuntu/pytest-1/test_no_commits0/source-repo/summary does not exist, regenerating 130s INFO:otpush.push:Regenerating summary file 130s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests:/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build:/tmp/autopkgtest.6RtGag/build.U2w/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 130s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests/ostree-push'] 130s usage: ostree-push [-h] [-n] [-p PORT] [-q] [-v] [--repo REPO] 130s [--command COMMAND] [-i OPTION] [--version] 130s DEST [REF ...] 130s ostree-push: error: the following arguments are required: DEST 130s Traceback (most recent call last): 130s File "/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests/ostree-push", line 14, in 130s push.main() 130s ~~~~~~~~~^^ 130s File "/usr/lib/python3/dist-packages/otpush/push.py", line 574, in main 130s push_refs( 130s ~~~~~~~~~^ 130s repo, 130s ^^^^^ 130s ...<4 lines>... 130s dry_run=args.dry_run, 130s ^^^^^^^^^^^^^^^^^^^^^ 130s ) 130s ^ 130s File "/usr/lib/python3/dist-packages/otpush/push.py", line 349, in push_refs 130s with RepoServer(local_repo_path) as http_server: 130s ~~~~~~~~~~^^^^^^^^^^^^^^^^^ 130s File "/usr/lib/python3/dist-packages/otpush/push.py", line 114, in __enter__ 130s self.start() 130s ~~~~~~~~~~^^ 130s File "/usr/lib/python3/dist-packages/otpush/push.py", line 141, in start 130s self.proc.start() 130s ~~~~~~~~~~~~~~~^^ 130s File "/usr/lib/python3.14/multiprocessing/process.py", line 121, in start 130s self._popen = self._Popen(self) 130s ~~~~~~~~~~~^^^^^^ 130s File "/usr/lib/python3.14/multiprocessing/context.py", line 224, in _Popen 130s return _default_context.get_context().Process._Popen(process_obj) 130s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 130s File "/usr/lib/python3.14/multiprocessing/context.py", line 300, in _Popen 130s return Popen(process_obj) 130s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 35, in __init__ 130s super().__init__(process_obj) 130s ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 130s File "/usr/lib/python3.14/multiprocessing/popen_fork.py", line 20, in __init__ 130s self._launch(process_obj) 130s ~~~~~~~~~~~~^^^^^^^^^^^^^ 130s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 51, in _launch 130s self.sentinel, w = forkserver.connect_to_new_process(self._fds) 130s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ 130s File "/usr/lib/python3.14/multiprocessing/forkserver.py", line 106, in connect_to_new_process 130s connection.answer_challenge( 130s ~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 130s wrapped_client, self._forkserver_authkey) 130s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 130s File "/usr/lib/python3.14/multiprocessing/connection.py", line 970, in answer_challenge 130s message = connection.recv_bytes(256) # reject large message 130s File "/usr/lib/python3.14/multiprocessing/connection.py", line 222, in recv_bytes 130s buf = self._recv_bytes(maxlength) 130s File "/usr/lib/python3.14/multiprocessing/connection.py", line 447, in _recv_bytes 130s buf = self._recv(4) 130s File "/usr/lib/python3.14/multiprocessing/connection.py", line 412, in _recv 130s chunk = read(handle, to_read) 130s ConnectionResetError: [Errno 104] Connection reset by peer 130s __________________________________ test_basic __________________________________ 130s 130s source_repo = 130s dest_repo = 130s sshd = SSHServerInfo(proc=, address='127.0.0.1', port=43266) 130s ssh_options = ['-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', ...] 130s cli_env_vars = {'PATH': '/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:...ild.U2w/src/debian/python3-ostree-push/usr/lib/python3.14/dist-packages:/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build'} 130s receive_config_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-1/test_basic0/ostree-receive.conf') 130s tmp_files_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-1/test_basic0/files') 130s capfd = <_pytest.capture.CaptureFixture object at 0x72ff8325c190> 130s 130s def test_basic(source_repo, dest_repo, sshd, ssh_options, cli_env_vars, 130s receive_config_path, tmp_files_path, capfd): 130s """Test push with one commit in source repo""" 130s args = ( 130s source_repo, dest_repo, sshd, ssh_options, cli_env_vars, 130s receive_config_path 130s ) 130s 130s rev = random_commit(source_repo, tmp_files_path, 'test') 130s source_content = get_content_checksum(source_repo, rev) 130s 130s wipe_repo(dest_repo) 130s > run_push(*args) 130s 130s tests/test_full.py:79: 130s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 130s tests/test_full.py:43: in run_push 130s return subprocess.run(cmd, **popen_kwargs) 130s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 130s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 130s 130s input = None, capture_output = False, timeout = None, check = True 130s 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', ...],) 130s kwargs = {'env': {'ADTTMP': '/tmp/autopkgtest.6RtGag/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.6RtGag/pybuild-autopk...': 'python3-defaults/3.14.2-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.6RtGag/pybuild-autopkgtest-artifacts', ...}} 130s process = 130s stdout = None, stderr = None, retcode = 1 130s 130s def run(*popenargs, 130s input=None, capture_output=False, timeout=None, check=False, **kwargs): 130s """Run command with arguments and return a CompletedProcess instance. 130s 130s The returned instance will have attributes args, returncode, stdout and 130s stderr. By default, stdout and stderr are not captured, and those attributes 130s will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them, 130s or pass capture_output=True to capture both. 130s 130s If check is True and the exit code was non-zero, it raises a 130s CalledProcessError. The CalledProcessError object will have the return code 130s in the returncode attribute, and output & stderr attributes if those streams 130s were captured. 130s 130s If timeout (seconds) is given and the process takes too long, 130s a TimeoutExpired exception will be raised. 130s 130s There is an optional argument "input", allowing you to 130s pass bytes or a string to the subprocess's stdin. If you use this argument 130s you may not also use the Popen constructor's "stdin" argument, as 130s it will be used internally. 130s 130s By default, all communication is in bytes, and therefore any "input" should 130s be bytes, and the stdout and stderr will be bytes. If in text mode, any 130s "input" should be a string, and stdout and stderr will be strings decoded 130s according to locale encoding, or by "encoding" if set. Text mode is 130s triggered by setting any of text, encoding, errors or universal_newlines. 130s 130s The other arguments are the same as for the Popen constructor. 130s """ 130s if input is not None: 130s if kwargs.get('stdin') is not None: 130s raise ValueError('stdin and input arguments may not both be used.') 130s kwargs['stdin'] = PIPE 130s 130s if capture_output: 130s if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None: 130s raise ValueError('stdout and stderr arguments may not be used ' 130s 'with capture_output.') 130s kwargs['stdout'] = PIPE 130s kwargs['stderr'] = PIPE 130s 130s with Popen(*popenargs, **kwargs) as process: 130s try: 130s stdout, stderr = process.communicate(input, timeout=timeout) 130s except TimeoutExpired as exc: 130s process.kill() 130s if _mswindows: 130s # Windows accumulates the output in a single blocking 130s # read() call run on child threads, with the timeout 130s # being done in a join() on those threads. communicate() 130s # _after_ kill() is required to collect that and add it 130s # to the exception. 130s exc.stdout, exc.stderr = process.communicate() 130s else: 130s # POSIX _communicate already populated the output so 130s # far into the TimeoutExpired exception. 130s process.wait() 130s raise 130s except: # Including KeyboardInterrupt, communicate handled that. 130s process.kill() 130s # We don't call process.wait() as .__exit__ does that for us. 130s raise 130s retcode = process.poll() 130s if check and retcode: 130s > raise CalledProcessError(retcode, process.args, 130s output=stdout, stderr=stderr) 130s 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:43266//tmp/pytest-of-ubuntu/pytest-1/test_basic0/dest-repo']' returned non-zero exit status 1. 130s 130s /usr/lib/python3.14/subprocess.py:577: CalledProcessError 130s ----------------------------- Captured stderr call ----------------------------- 130s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests:/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build:/tmp/autopkgtest.6RtGag/build.U2w/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 130s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.6RtGag/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:43266//tmp/pytest-of-ubuntu/pytest-1/test_basic0/dest-repo'] 130s 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' 130s 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' 130s 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' 130s 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' 130s DEBUG:otpush.push:Repo /tmp/pytest-of-ubuntu/pytest-1/test_basic0/source-repo has been modified more recently than /tmp/pytest-of-ubuntu/pytest-1/test_basic0/source-repo/summary, regenerating 130s INFO:otpush.push:Regenerating summary file 130s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests:/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build:/tmp/autopkgtest.6RtGag/build.U2w/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 130s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests/ostree-push'] 130s usage: ostree-push [-h] [-n] [-p PORT] [-q] [-v] [--repo REPO] 130s [--command COMMAND] [-i OPTION] [--version] 130s DEST [REF ...] 130s ostree-push: error: the following arguments are required: DEST 130s Traceback (most recent call last): 130s File "/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests/ostree-push", line 14, in 130s push.main() 130s ~~~~~~~~~^^ 130s File "/usr/lib/python3/dist-packages/otpush/push.py", line 574, in main 130s push_refs( 130s ~~~~~~~~~^ 130s repo, 130s ^^^^^ 130s ...<4 lines>... 130s dry_run=args.dry_run, 130s ^^^^^^^^^^^^^^^^^^^^^ 130s ) 130s ^ 130s File "/usr/lib/python3/dist-packages/otpush/push.py", line 349, in push_refs 130s with RepoServer(local_repo_path) as http_server: 130s ~~~~~~~~~~^^^^^^^^^^^^^^^^^ 130s File "/usr/lib/python3/dist-packages/otpush/push.py", line 114, in __enter__ 130s self.start() 130s ~~~~~~~~~~^^ 130s File "/usr/lib/python3/dist-packages/otpush/push.py", line 141, in start 130s self.proc.start() 130s ~~~~~~~~~~~~~~~^^ 130s File "/usr/lib/python3.14/multiprocessing/process.py", line 121, in start 130s self._popen = self._Popen(self) 130s ~~~~~~~~~~~^^^^^^ 130s File "/usr/lib/python3.14/multiprocessing/context.py", line 224, in _Popen 130s return _default_context.get_context().Process._Popen(process_obj) 130s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 130s File "/usr/lib/python3.14/multiprocessing/context.py", line 300, in _Popen 130s return Popen(process_obj) 130s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 35, in __init__ 130s super().__init__(process_obj) 130s ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 130s File "/usr/lib/python3.14/multiprocessing/popen_fork.py", line 20, in __init__ 130s self._launch(process_obj) 130s ~~~~~~~~~~~~^^^^^^^^^^^^^ 130s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 51, in _launch 130s self.sentinel, w = forkserver.connect_to_new_process(self._fds) 130s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ 130s File "/usr/lib/python3.14/multiprocessing/forkserver.py", line 106, in connect_to_new_process 130s connection.answer_challenge( 130s ~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 130s wrapped_client, self._forkserver_authkey) 130s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 130s File "/usr/lib/python3.14/multiprocessing/connection.py", line 970, in answer_challenge 130s message = connection.recv_bytes(256) # reject large message 130s File "/usr/lib/python3.14/multiprocessing/connection.py", line 222, in recv_bytes 130s buf = self._recv_bytes(maxlength) 130s File "/usr/lib/python3.14/multiprocessing/connection.py", line 447, in _recv_bytes 130s buf = self._recv(4) 130s File "/usr/lib/python3.14/multiprocessing/connection.py", line 412, in _recv 130s chunk = read(handle, to_read) 130s ConnectionResetError: [Errno 104] Connection reset by peer 130s _________________________________ test_dry_run _________________________________ 130s 130s source_repo = 130s dest_repo = 130s sshd = SSHServerInfo(proc=, address='127.0.0.1', port=43266) 130s ssh_options = ['-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', ...] 130s cli_env_vars = {'PATH': '/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:...ild.U2w/src/debian/python3-ostree-push/usr/lib/python3.14/dist-packages:/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build'} 130s receive_config_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-1/test_dry_run0/ostree-receive.conf') 130s tmp_files_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-1/test_dry_run0/files') 130s 130s def test_dry_run(source_repo, dest_repo, sshd, ssh_options, cli_env_vars, 130s receive_config_path, tmp_files_path): 130s """Test push dry run""" 130s args = ( 130s source_repo, dest_repo, sshd, ssh_options, cli_env_vars, 130s receive_config_path 130s ) 130s 130s random_commit(source_repo, tmp_files_path, 'test') 130s 130s wipe_repo(dest_repo) 130s > run_push(*args, options=['-n']) 130s 130s tests/test_full.py:114: 130s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 130s tests/test_full.py:43: in run_push 130s return subprocess.run(cmd, **popen_kwargs) 130s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 130s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 130s 130s input = None, capture_output = False, timeout = None, check = True 130s 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', ...],) 130s kwargs = {'env': {'ADTTMP': '/tmp/autopkgtest.6RtGag/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.6RtGag/pybuild-autopk...': 'python3-defaults/3.14.2-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.6RtGag/pybuild-autopkgtest-artifacts', ...}} 130s process = 130s stdout = None, stderr = None, retcode = 1 130s 130s def run(*popenargs, 130s input=None, capture_output=False, timeout=None, check=False, **kwargs): 130s """Run command with arguments and return a CompletedProcess instance. 130s 130s The returned instance will have attributes args, returncode, stdout and 130s stderr. By default, stdout and stderr are not captured, and those attributes 130s will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them, 130s or pass capture_output=True to capture both. 130s 130s If check is True and the exit code was non-zero, it raises a 130s CalledProcessError. The CalledProcessError object will have the return code 130s in the returncode attribute, and output & stderr attributes if those streams 130s were captured. 130s 130s If timeout (seconds) is given and the process takes too long, 130s a TimeoutExpired exception will be raised. 130s 130s There is an optional argument "input", allowing you to 130s pass bytes or a string to the subprocess's stdin. If you use this argument 130s you may not also use the Popen constructor's "stdin" argument, as 130s it will be used internally. 130s 130s By default, all communication is in bytes, and therefore any "input" should 130s be bytes, and the stdout and stderr will be bytes. If in text mode, any 130s "input" should be a string, and stdout and stderr will be strings decoded 130s according to locale encoding, or by "encoding" if set. Text mode is 130s triggered by setting any of text, encoding, errors or universal_newlines. 130s 130s The other arguments are the same as for the Popen constructor. 130s """ 130s if input is not None: 130s if kwargs.get('stdin') is not None: 130s raise ValueError('stdin and input arguments may not both be used.') 130s kwargs['stdin'] = PIPE 130s 130s if capture_output: 130s if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None: 130s raise ValueError('stdout and stderr arguments may not be used ' 130s 'with capture_output.') 130s kwargs['stdout'] = PIPE 130s kwargs['stderr'] = PIPE 130s 130s with Popen(*popenargs, **kwargs) as process: 130s try: 130s stdout, stderr = process.communicate(input, timeout=timeout) 130s except TimeoutExpired as exc: 130s process.kill() 130s if _mswindows: 130s # Windows accumulates the output in a single blocking 130s # read() call run on child threads, with the timeout 130s # being done in a join() on those threads. communicate() 130s # _after_ kill() is required to collect that and add it 130s # to the exception. 130s exc.stdout, exc.stderr = process.communicate() 130s else: 130s # POSIX _communicate already populated the output so 130s # far into the TimeoutExpired exception. 130s process.wait() 130s raise 130s except: # Including KeyboardInterrupt, communicate handled that. 130s process.kill() 130s # We don't call process.wait() as .__exit__ does that for us. 130s raise 130s retcode = process.poll() 130s if check and retcode: 130s > raise CalledProcessError(retcode, process.args, 130s output=stdout, stderr=stderr) 130s 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:43266//tmp/pytest-of-ubuntu/pytest-1/test_dry_run0/dest-repo']' returned non-zero exit status 1. 130s 130s /usr/lib/python3.14/subprocess.py:577: CalledProcessError 130s ----------------------------- Captured stderr call ----------------------------- 130s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests:/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build:/tmp/autopkgtest.6RtGag/build.U2w/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 130s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.6RtGag/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:43266//tmp/pytest-of-ubuntu/pytest-1/test_dry_run0/dest-repo'] 130s 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' 130s 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' 130s 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' 130s 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', '-E: pybuild pybuild:483: test: plugin pyproject failed with: exit code=1: cd /tmp/autopkgtest.6RtGag/autopkgtest_tmp/build; python3.14 -m pytest tests 130s pybuild-autopkgtest: error: pybuild --autopkgtest --test-pytest -i python{version} -p "3.13 3.14" returned exit code 13 130s make: *** [/tmp/B6ThAeA2rG/run:4: pybuild-autopkgtest] Error 25 130s pybuild-autopkgtest: error: /tmp/B6ThAeA2rG/run pybuild-autopkgtest returned exit code 2 130s o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no']), '-o', 'UserKnownHostsFile=/dev/null' 130s 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 130s INFO:otpush.push:Regenerating summary file 130s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests:/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build:/tmp/autopkgtest.6RtGag/build.U2w/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 130s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests/ostree-push'] 130s usage: ostree-push [-h] [-n] [-p PORT] [-q] [-v] [--repo REPO] 130s [--command COMMAND] [-i OPTION] [--version] 130s DEST [REF ...] 130s ostree-push: error: the following arguments are required: DEST 130s Traceback (most recent call last): 130s File "/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests/ostree-push", line 14, in 130s push.main() 130s ~~~~~~~~~^^ 130s File "/usr/lib/python3/dist-packages/otpush/push.py", line 574, in main 130s push_refs( 130s ~~~~~~~~~^ 130s repo, 130s ^^^^^ 130s ...<4 lines>... 130s dry_run=args.dry_run, 130s ^^^^^^^^^^^^^^^^^^^^^ 130s ) 130s ^ 130s File "/usr/lib/python3/dist-packages/otpush/push.py", line 349, in push_refs 130s with RepoServer(local_repo_path) as http_server: 130s ~~~~~~~~~~^^^^^^^^^^^^^^^^^ 130s File "/usr/lib/python3/dist-packages/otpush/push.py", line 114, in __enter__ 130s self.start() 130s ~~~~~~~~~~^^ 130s File "/usr/lib/python3/dist-packages/otpush/push.py", line 141, in start 130s self.proc.start() 130s ~~~~~~~~~~~~~~~^^ 130s File "/usr/lib/python3.14/multiprocessing/process.py", line 121, in start 130s self._popen = self._Popen(self) 130s ~~~~~~~~~~~^^^^^^ 130s File "/usr/lib/python3.14/multiprocessing/context.py", line 224, in _Popen 130s return _default_context.get_context().Process._Popen(process_obj) 130s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 130s File "/usr/lib/python3.14/multiprocessing/context.py", line 300, in _Popen 130s return Popen(process_obj) 130s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 35, in __init__ 130s super().__init__(process_obj) 130s ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 130s File "/usr/lib/python3.14/multiprocessing/popen_fork.py", line 20, in __init__ 130s self._launch(process_obj) 130s ~~~~~~~~~~~~^^^^^^^^^^^^^ 130s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 51, in _launch 130s self.sentinel, w = forkserver.connect_to_new_process(self._fds) 130s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ 130s File "/usr/lib/python3.14/multiprocessing/forkserver.py", line 106, in connect_to_new_process 130s connection.answer_challenge( 130s ~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 130s wrapped_client, self._forkserver_authkey) 130s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 130s File "/usr/lib/python3.14/multiprocessing/connection.py", line 970, in answer_challenge 130s message = connection.recv_bytes(256) # reject large message 130s File "/usr/lib/python3.14/multiprocessing/connection.py", line 222, in recv_bytes 130s buf = self._recv_bytes(maxlength) 130s File "/usr/lib/python3.14/multiprocessing/connection.py", line 447, in _recv_bytes 130s buf = self._recv(4) 130s File "/usr/lib/python3.14/multiprocessing/connection.py", line 412, in _recv 130s chunk = read(handle, to_read) 130s ConnectionResetError: [Errno 104] Connection reset by peer 130s ________________________________ test_scp_dest _________________________________ 130s 130s source_repo = 130s dest_repo = 130s sshd = SSHServerInfo(proc=, address='127.0.0.1', port=43266) 130s ssh_options = ['-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', ...] 130s cli_env_vars = {'PATH': '/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:...ild.U2w/src/debian/python3-ostree-push/usr/lib/python3.14/dist-packages:/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build'} 130s receive_config_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-1/test_scp_dest0/ostree-receive.conf') 130s tmp_files_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-1/test_scp_dest0/files') 130s 130s def test_scp_dest(source_repo, dest_repo, sshd, ssh_options, cli_env_vars, 130s receive_config_path, tmp_files_path): 130s """Test push with scp style destination""" 130s args = ( 130s source_repo, dest_repo, sshd, ssh_options, cli_env_vars, 130s receive_config_path 130s ) 130s dest = f'{sshd.address}:{dest_repo.path}' 130s options = ['-p', str(sshd.port)] 130s 130s random_commit(source_repo, tmp_files_path, 'test') 130s > run_push(*args, dest=dest, options=options) 130s 130s tests/test_full.py:140: 130s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 130s tests/test_full.py:43: in run_push 130s return subprocess.run(cmd, **popen_kwargs) 130s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 130s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 130s 130s input = None, capture_output = False, timeout = None, check = True 130s 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', ...],) 130s kwargs = {'env': {'ADTTMP': '/tmp/autopkgtest.6RtGag/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.6RtGag/pybuild-autopk...': 'python3-defaults/3.14.2-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.6RtGag/pybuild-autopkgtest-artifacts', ...}} 130s process = 130s stdout = None, stderr = None, retcode = 1 130s 130s def run(*popenargs, 130s input=None, capture_output=False, timeout=None, check=False, **kwargs): 130s """Run command with arguments and return a CompletedProcess instance. 130s 130s The returned instance will have attributes args, returncode, stdout and 130s stderr. By default, stdout and stderr are not captured, and those attributes 130s will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them, 130s or pass capture_output=True to capture both. 130s 130s If check is True and the exit code was non-zero, it raises a 130s CalledProcessError. The CalledProcessError object will have the return code 130s in the returncode attribute, and output & stderr attributes if those streams 130s were captured. 130s 130s If timeout (seconds) is given and the process takes too long, 130s a TimeoutExpired exception will be raised. 130s 130s There is an optional argument "input", allowing you to 130s pass bytes or a string to the subprocess's stdin. If you use this argument 130s you may not also use the Popen constructor's "stdin" argument, as 130s it will be used internally. 130s 130s By default, all communication is in bytes, and therefore any "input" should 130s be bytes, and the stdout and stderr will be bytes. If in text mode, any 130s "input" should be a string, and stdout and stderr will be strings decoded 130s according to locale encoding, or by "encoding" if set. Text mode is 130s triggered by setting any of text, encoding, errors or universal_newlines. 130s 130s The other arguments are the same as for the Popen constructor. 130s """ 130s if input is not None: 130s if kwargs.get('stdin') is not None: 130s raise ValueError('stdin and input arguments may not both be used.') 130s kwargs['stdin'] = PIPE 130s 130s if capture_output: 130s if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None: 130s raise ValueError('stdout and stderr arguments may not be used ' 130s 'with capture_output.') 130s kwargs['stdout'] = PIPE 130s kwargs['stderr'] = PIPE 130s 130s with Popen(*popenargs, **kwargs) as process: 130s try: 130s stdout, stderr = process.communicate(input, timeout=timeout) 130s except TimeoutExpired as exc: 130s process.kill() 130s if _mswindows: 130s # Windows accumulates the output in a single blocking 130s # read() call run on child threads, with the timeout 130s # being done in a join() on those threads. communicate() 130s # _after_ kill() is required to collect that and add it 130s # to the exception. 130s exc.stdout, exc.stderr = process.communicate() 130s else: 130s # POSIX _communicate already populated the output so 130s # far into the TimeoutExpired exception. 130s process.wait() 130s raise 130s except: # Including KeyboardInterrupt, communicate handled that. 130s process.kill() 130s # We don't call process.wait() as .__exit__ does that for us. 130s raise 130s retcode = process.poll() 130s if check and retcode: 130s > raise CalledProcessError(retcode, process.args, 130s output=stdout, stderr=stderr) 130s 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', '43266', '127.0.0.1:/tmp/pytest-of-ubuntu/pytest-1/test_scp_dest0/dest-repo']' returned non-zero exit status 1. 130s 130s /usr/lib/python3.14/subprocess.py:577: CalledProcessError 130s ----------------------------- Captured stderr call ----------------------------- 130s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests:/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build:/tmp/autopkgtest.6RtGag/build.U2w/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 130s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.6RtGag/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', '43266', '127.0.0.1:/tmp/pytest-of-ubuntu/pytest-1/test_scp_dest0/dest-repo'] 130s 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' 130s 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' 130s 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' 130s 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' 130s 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 130s INFO:otpush.push:Regenerating summary file 130s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests:/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build:/tmp/autopkgtest.6RtGag/build.U2w/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 130s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests/ostree-push'] 130s usage: ostree-push [-h] [-n] [-p PORT] [-q] [-v] [--repo REPO] 130s [--command COMMAND] [-i OPTION] [--version] 130s DEST [REF ...] 130s ostree-push: error: the following arguments are required: DEST 130s Traceback (most recent call last): 130s File "/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests/ostree-push", line 14, in 130s push.main() 130s ~~~~~~~~~^^ 130s File "/usr/lib/python3/dist-packages/otpush/push.py", line 574, in main 130s push_refs( 130s ~~~~~~~~~^ 130s repo, 130s ^^^^^ 130s ...<4 lines>... 130s dry_run=args.dry_run, 130s ^^^^^^^^^^^^^^^^^^^^^ 130s ) 130s ^ 130s File "/usr/lib/python3/dist-packages/otpush/push.py", line 349, in push_refs 130s with RepoServer(local_repo_path) as http_server: 130s ~~~~~~~~~~^^^^^^^^^^^^^^^^^ 130s File "/usr/lib/python3/dist-packages/otpush/push.py", line 114, in __enter__ 130s self.start() 130s ~~~~~~~~~~^^ 130s File "/usr/lib/python3/dist-packages/otpush/push.py", line 141, in start 130s self.proc.start() 130s ~~~~~~~~~~~~~~~^^ 130s File "/usr/lib/python3.14/multiprocessing/process.py", line 121, in start 130s self._popen = self._Popen(self) 130s ~~~~~~~~~~~^^^^^^ 130s File "/usr/lib/python3.14/multiprocessing/context.py", line 224, in _Popen 130s return _default_context.get_context().Process._Popen(process_obj) 130s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 130s File "/usr/lib/python3.14/multiprocessing/context.py", line 300, in _Popen 130s return Popen(process_obj) 130s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 35, in __init__ 130s super().__init__(process_obj) 130s ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 130s File "/usr/lib/python3.14/multiprocessing/popen_fork.py", line 20, in __init__ 130s self._launch(process_obj) 130s ~~~~~~~~~~~~^^^^^^^^^^^^^ 130s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 51, in _launch 130s self.sentinel, w = forkserver.connect_to_new_process(self._fds) 130s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ 130s File "/usr/lib/python3.14/multiprocessing/forkserver.py", line 106, in connect_to_new_process 130s connection.answer_challenge( 130s ~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 130s wrapped_client, self._forkserver_authkey) 130s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 130s File "/usr/lib/python3.14/multiprocessing/connection.py", line 970, in answer_challenge 130s message = connection.recv_bytes(256) # reject large message 130s File "/usr/lib/python3.14/multiprocessing/connection.py", line 222, in recv_bytes 130s buf = self._recv_bytes(maxlength) 130s File "/usr/lib/python3.14/multiprocessing/connection.py", line 447, in _recv_bytes 130s buf = self._recv(4) 130s File "/usr/lib/python3.14/multiprocessing/connection.py", line 412, in _recv 130s chunk = read(handle, to_read) 130s ConnectionResetError: [Errno 104] Connection reset by peer 130s _____________________________ test_command_abspath _____________________________ 130s 130s source_repo = 130s dest_repo = 130s sshd = SSHServerInfo(proc=, address='127.0.0.1', port=43266) 130s ssh_options = ['-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', ...] 130s cli_env_vars = {'PATH': '/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:...ild.U2w/src/debian/python3-ostree-push/usr/lib/python3.14/dist-packages:/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build'} 130s receive_config_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-1/test_command_abspath0/ostree-receive.conf') 130s tmp_files_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-1/test_command_abspath0/files') 130s 130s def test_command_abspath(source_repo, dest_repo, sshd, ssh_options, 130s cli_env_vars, receive_config_path, tmp_files_path): 130s """Test push with absolute path to ostree-receive""" 130s args = ( 130s source_repo, dest_repo, sshd, ssh_options, cli_env_vars, 130s receive_config_path 130s ) 130s random_commit(source_repo, tmp_files_path, 'test') 130s > run_push(*args, command=ostree_receive_abspath) 130s 130s tests/test_full.py:153: 130s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 130s tests/test_full.py:43: in run_push 130s return subprocess.run(cmd, **popen_kwargs) 130s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 130s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 130s 130s input = None, capture_output = False, timeout = None, check = True 130s popenargs = (['ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-1/test_command_abspath0/source-repo', '--command=/tmp/autopkgtes...ag/autopkgtest_tmp/build/tests/ostree-receive-1', '-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', ...],) 130s kwargs = {'env': {'ADTTMP': '/tmp/autopkgtest.6RtGag/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.6RtGag/pybuild-autopk...': 'python3-defaults/3.14.2-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.6RtGag/pybuild-autopkgtest-artifacts', ...}} 130s process = 130s stdout = None, stderr = None, retcode = 1 130s 130s def run(*popenargs, 130s input=None, capture_output=False, timeout=None, check=False, **kwargs): 130s """Run command with arguments and return a CompletedProcess instance. 130s 130s The returned instance will have attributes args, returncode, stdout and 130s stderr. By default, stdout and stderr are not captured, and those attributes 130s will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them, 130s or pass capture_output=True to capture both. 130s 130s If check is True and the exit code was non-zero, it raises a 130s CalledProcessError. The CalledProcessError object will have the return code 130s in the returncode attribute, and output & stderr attributes if those streams 130s were captured. 130s 130s If timeout (seconds) is given and the process takes too long, 130s a TimeoutExpired exception will be raised. 130s 130s There is an optional argument "input", allowing you to 130s pass bytes or a string to the subprocess's stdin. If you use this argument 130s you may not also use the Popen constructor's "stdin" argument, as 130s it will be used internally. 130s 130s By default, all communication is in bytes, and therefore any "input" should 130s be bytes, and the stdout and stderr will be bytes. If in text mode, any 130s "input" should be a string, and stdout and stderr will be strings decoded 130s according to locale encoding, or by "encoding" if set. Text mode is 130s triggered by setting any of text, encoding, errors or universal_newlines. 130s 130s The other arguments are the same as for the Popen constructor. 130s """ 130s if input is not None: 130s if kwargs.get('stdin') is not None: 130s raise ValueError('stdin and input arguments may not both be used.') 130s kwargs['stdin'] = PIPE 130s 130s if capture_output: 130s if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None: 130s raise ValueError('stdout and stderr arguments may not be used ' 130s 'with capture_output.') 130s kwargs['stdout'] = PIPE 130s kwargs['stderr'] = PIPE 130s 130s with Popen(*popenargs, **kwargs) as process: 130s try: 130s stdout, stderr = process.communicate(input, timeout=timeout) 130s except TimeoutExpired as exc: 130s process.kill() 130s if _mswindows: 130s # Windows accumulates the output in a single blocking 130s # read() call run on child threads, with the timeout 130s # being done in a join() on those threads. communicate() 130s # _after_ kill() is required to collect that and add it 130s # to the exception. 130s exc.stdout, exc.stderr = process.communicate() 130s else: 130s # POSIX _communicate already populated the output so 130s # far into the TimeoutExpired exception. 130s process.wait() 130s raise 130s except: # Including KeyboardInterrupt, communicate handled that. 130s process.kill() 130s # We don't call process.wait() as .__exit__ does that for us. 130s raise 130s retcode = process.poll() 130s if check and retcode: 130s > raise CalledProcessError(retcode, process.args, 130s output=stdout, stderr=stderr) 130s E subprocess.CalledProcessError: Command '['ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-1/test_command_abspath0/source-repo', '--command=/tmp/autopkgtest.6RtGag/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:43266//tmp/pytest-of-ubuntu/pytest-1/test_command_abspath0/dest-repo']' returned non-zero exit status 1. 130s 130s /usr/lib/python3.14/subprocess.py:577: CalledProcessError 130s ----------------------------- Captured stderr call ----------------------------- 130s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests:/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build:/tmp/autopkgtest.6RtGag/build.U2w/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 130s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests/ostree-push', '--repo=/tmp/pytest-of-ubuntu/pytest-1/test_command_abspath0/source-repo', '--command=/tmp/autopkgtest.6RtGag/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:43266//tmp/pytest-of-ubuntu/pytest-1/test_command_abspath0/dest-repo'] 130s 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.6RtGag/autopkgtest_tmp/build/tests/ostree-receive-1'], ssh_options=[]), '-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa' 130s 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.6RtGag/autopkgtest_tmp/build/tests/ostree-receive-1'], ssh_options=['-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa']), '-o', 'IdentitiesOnly=yes' 130s 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.6RtGag/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' 130s 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.6RtGag/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' 130s DEBUG:otpush.push:Repo /tmp/pytest-of-ubuntu/pytest-1/test_command_abspath0/source-repo has been modified more recently than /tmp/pytest-of-ubuntu/pytest-1/test_command_abspath0/source-repo/summary, regenerating 130s INFO:otpush.push:Regenerating summary file 130s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests:/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build:/tmp/autopkgtest.6RtGag/build.U2w/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 130s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests/ostree-push'] 130s usage: ostree-push [-h] [-n] [-p PORT] [-q] [-v] [--repo REPO] 130s [--command COMMAND] [-i OPTION] [--version] 130s DEST [REF ...] 130s ostree-push: error: the following arguments are required: DEST 130s Traceback (most recent call last): 130s File "/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests/ostree-push", line 14, in 130s push.main() 130s ~~~~~~~~~^^ 130s File "/usr/lib/python3/dist-packages/otpush/push.py", line 574, in main 130s push_refs( 130s ~~~~~~~~~^ 130s repo, 130s ^^^^^ 130s ...<4 lines>... 130s dry_run=args.dry_run, 130s ^^^^^^^^^^^^^^^^^^^^^ 130s ) 130s ^ 130s File "/usr/lib/python3/dist-packages/otpush/push.py", line 349, in push_refs 130s with RepoServer(local_repo_path) as http_server: 130s ~~~~~~~~~~^^^^^^^^^^^^^^^^^ 130s File "/usr/lib/python3/dist-packages/otpush/push.py", line 114, in __enter__ 130s self.start() 130s ~~~~~~~~~~^^ 130s File "/usr/lib/python3/dist-packages/otpush/push.py", line 141, in start 130s self.proc.start() 130s ~~~~~~~~~~~~~~~^^ 130s File "/usr/lib/python3.14/multiprocessing/process.py", line 121, in start 130s self._popen = self._Popen(self) 130s ~~~~~~~~~~~^^^^^^ 130s File "/usr/lib/python3.14/multiprocessing/context.py", line 224, in _Popen 130s return _default_context.get_context().Process._Popen(process_obj) 130s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 130s File "/usr/lib/python3.14/multiprocessing/context.py", line 300, in _Popen 130s return Popen(process_obj) 130s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 35, in __init__ 130s super().__init__(process_obj) 130s ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 130s File "/usr/lib/python3.14/multiprocessing/popen_fork.py", line 20, in __init__ 130s self._launch(process_obj) 130s ~~~~~~~~~~~~^^^^^^^^^^^^^ 130s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 51, in _launch 130s self.sentinel, w = forkserver.connect_to_new_process(self._fds) 130s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ 130s File "/usr/lib/python3.14/multiprocessing/forkserver.py", line 106, in connect_to_new_process 130s connection.answer_challenge( 130s ~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 130s wrapped_client, self._forkserver_authkey) 130s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 130s File "/usr/lib/python3.14/multiprocessing/connection.py", line 970, in answer_challenge 130s message = connection.recv_bytes(256) # reject large message 130s File "/usr/lib/python3.14/multiprocessing/connection.py", line 222, in recv_bytes 130s buf = self._recv_bytes(maxlength) 130s File "/usr/lib/python3.14/multiprocessing/connection.py", line 447, in _recv_bytes 130s buf = self._recv(4) 130s File "/usr/lib/python3.14/multiprocessing/connection.py", line 412, in _recv 130s chunk = read(handle, to_read) 130s ConnectionResetError: [Errno 104] Connection reset by peer 130s _______________________________ test_unversioned _______________________________ 130s 130s source_repo = 130s dest_repo = 130s sshd = SSHServerInfo(proc=, address='127.0.0.1', port=43266) 130s ssh_options = ['-i', '/tmp/pytest-of-ubuntu/pytest-1/ssh-data0/id_rsa', '-o', 'IdentitiesOnly=yes', '-o', 'StrictHostKeyChecking=no', ...] 130s cli_env_vars = {'PATH': '/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:...ild.U2w/src/debian/python3-ostree-push/usr/lib/python3.14/dist-packages:/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build'} 130s receive_config_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-1/test_unversioned0/ostree-receive.conf') 130s tmp_files_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-1/test_unversioned0/files') 130s 130s def test_unversioned(source_repo, dest_repo, sshd, ssh_options, 130s cli_env_vars, receive_config_path, tmp_files_path): 130s """Test push with unversioned ostree-receive""" 130s args = ( 130s source_repo, dest_repo, sshd, ssh_options, cli_env_vars, 130s receive_config_path 130s ) 130s random_commit(source_repo, tmp_files_path, 'test') 130s > run_push(*args, command='ostree-receive') 130s 130s tests/test_full.py:166: 130s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 130s tests/test_full.py:43: in run_push 130s return subprocess.run(cmd, **popen_kwargs) 130s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 130s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 130s 130s input = None, capture_output = False, timeout = None, check = True 130s 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', ...],) 130s kwargs = {'env': {'ADTTMP': '/tmp/autopkgtest.6RtGag/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.6RtGag/pybuild-autopk...': 'python3-defaults/3.14.2-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.6RtGag/pybuild-autopkgtest-artifacts', ...}} 130s process = 130s stdout = None, stderr = None, retcode = 1 130s 130s def run(*popenargs, 130s input=None, capture_output=False, timeout=None, check=False, **kwargs): 130s """Run command with arguments and return a CompletedProcess instance. 130s 130s The returned instance will have attributes args, returncode, stdout and 130s stderr. By default, stdout and stderr are not captured, and those attributes 130s will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them, 130s or pass capture_output=True to capture both. 130s 130s If check is True and the exit code was non-zero, it raises a 130s CalledProcessError. The CalledProcessError object will have the return code 130s in the returncode attribute, and output & stderr attributes if those streams 130s were captured. 130s 130s If timeout (seconds) is given and the process takes too long, 130s a TimeoutExpired exception will be raised. 130s 130s There is an optional argument "input", allowing you to 130s pass bytes or a string to the subprocess's stdin. If you use this argument 130s you may not also use the Popen constructor's "stdin" argument, as 130s it will be used internally. 130s 130s By default, all communication is in bytes, and therefore any "input" should 130s be bytes, and the stdout and stderr will be bytes. If in text mode, any 130s "input" should be a string, and stdout and stderr will be strings decoded 130s according to locale encoding, or by "encoding" if set. Text mode is 130s triggered by setting any of text, encoding, errors or universal_newlines. 130s 130s The other arguments are the same as for the Popen constructor. 130s """ 130s if input is not None: 130s if kwargs.get('stdin') is not None: 130s raise ValueError('stdin and input arguments may not both be used.') 130s kwargs['stdin'] = PIPE 130s 130s if capture_output: 130s if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None: 130s raise ValueError('stdout and stderr arguments may not be used ' 130s 'with capture_output.') 130s kwargs['stdout'] = PIPE 130s kwargs['stderr'] = PIPE 130s 130s with Popen(*popenargs, **kwargs) as process: 130s try: 130s stdout, stderr = process.communicate(input, timeout=timeout) 130s except TimeoutExpired as exc: 130s process.kill() 130s if _mswindows: 130s # Windows accumulates the output in a single blocking 130s # read() call run on child threads, with the timeout 130s # being done in a join() on those threads. communicate() 130s # _after_ kill() is required to collect that and add it 130s # to the exception. 130s exc.stdout, exc.stderr = process.communicate() 130s else: 130s # POSIX _communicate already populated the output so 130s # far into the TimeoutExpired exception. 130s process.wait() 130s raise 130s except: # Including KeyboardInterrupt, communicate handled that. 130s process.kill() 130s # We don't call process.wait() as .__exit__ does that for us. 130s raise 130s retcode = process.poll() 130s if check and retcode: 130s > raise CalledProcessError(retcode, process.args, 130s output=stdout, stderr=stderr) 130s 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:43266//tmp/pytest-of-ubuntu/pytest-1/test_unversioned0/dest-repo']' returned non-zero exit status 1. 130s 130s /usr/lib/python3.14/subprocess.py:577: CalledProcessError 130s ----------------------------- Captured stderr call ----------------------------- 130s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests:/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build:/tmp/autopkgtest.6RtGag/build.U2w/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 130s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.6RtGag/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:43266//tmp/pytest-of-ubuntu/pytest-1/test_unversioned0/dest-repo'] 130s 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' 130s 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' 130s 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' 130s 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' 130s 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 130s INFO:otpush.push:Regenerating summary file 130s DEBUG:tests/ostree-push:sys.path=/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests:/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build:/tmp/autopkgtest.6RtGag/build.U2w/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 130s DEBUG:tests/ostree-push:sys.argv=['/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests/ostree-push'] 130s usage: ostree-push [-h] [-n] [-p PORT] [-q] [-v] [--repo REPO] 130s [--command COMMAND] [-i OPTION] [--version] 130s DEST [REF ...] 130s ostree-push: error: the following arguments are required: DEST 130s Traceback (most recent call last): 130s File "/tmp/autopkgtest.6RtGag/autopkgtest_tmp/build/tests/ostree-push", line 14, in 130s push.main() 130s ~~~~~~~~~^^ 130s File "/usr/lib/python3/dist-packages/otpush/push.py", line 574, in main 130s push_refs( 130s ~~~~~~~~~^ 130s repo, 130s ^^^^^ 130s ...<4 lines>... 130s dry_run=args.dry_run, 130s ^^^^^^^^^^^^^^^^^^^^^ 130s ) 130s ^ 130s File "/usr/lib/python3/dist-packages/otpush/push.py", line 349, in push_refs 130s with RepoServer(local_repo_path) as http_server: 130s ~~~~~~~~~~^^^^^^^^^^^^^^^^^ 130s File "/usr/lib/python3/dist-packages/otpush/push.py", line 114, in __enter__ 130s self.start() 130s ~~~~~~~~~~^^ 130s File "/usr/lib/python3/dist-packages/otpush/push.py", line 141, in start 130s self.proc.start() 130s ~~~~~~~~~~~~~~~^^ 130s File "/usr/lib/python3.14/multiprocessing/process.py", line 121, in start 130s self._popen = self._Popen(self) 130s ~~~~~~~~~~~^^^^^^ 130s File "/usr/lib/python3.14/multiprocessing/context.py", line 224, in _Popen 130s return _default_context.get_context().Process._Popen(process_obj) 130s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 130s File "/usr/lib/python3.14/multiprocessing/context.py", line 300, in _Popen 130s return Popen(process_obj) 130s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 35, in __init__ 130s super().__init__(process_obj) 130s ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ 130s File "/usr/lib/python3.14/multiprocessing/popen_fork.py", line 20, in __init__ 130s self._launch(process_obj) 130s ~~~~~~~~~~~~^^^^^^^^^^^^^ 130s File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 51, in _launch 130s self.sentinel, w = forkserver.connect_to_new_process(self._fds) 130s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ 130s File "/usr/lib/python3.14/multiprocessing/forkserver.py", line 106, in connect_to_new_process 130s connection.answer_challenge( 130s ~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 130s wrapped_client, self._forkserver_authkey) 130s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 130s File "/usr/lib/python3.14/multiprocessing/connection.py", line 970, in answer_challenge 130s message = connection.recv_bytes(256) # reject large message 130s File "/usr/lib/python3.14/multiprocessing/connection.py", line 222, in recv_bytes 130s buf = self._recv_bytes(maxlength) 130s File "/usr/lib/python3.14/multiprocessing/connection.py", line 447, in _recv_bytes 130s buf = self._recv(4) 130s File "/usr/lib/python3.14/multiprocessing/connection.py", line 412, in _recv 130s chunk = read(handle, to_read) 130s ConnectionResetError: [Errno 104] Connection reset by peer 130s =========================== short test summary info ============================ 130s FAILED tests/test_full.py::test_no_commits - subprocess.CalledProcessError: C... 130s FAILED tests/test_full.py::test_basic - subprocess.CalledProcessError: Comman... 130s FAILED tests/test_full.py::test_dry_run - subprocess.CalledProcessError: Comm... 130s FAILED tests/test_full.py::test_scp_dest - subprocess.CalledProcessError: Com... 130s FAILED tests/test_full.py::test_command_abspath - subprocess.CalledProcessErr... 130s FAILED tests/test_full.py::test_unversioned - subprocess.CalledProcessError: ... 130s =================== 6 failed, 89 passed, 4 skipped in 13.86s =================== 130s autopkgtest [12:08:19]: test pybuild-autopkgtest: -----------------------] 131s pybuild-autopkgtest FAIL non-zero exit status 25 131s autopkgtest [12:08:20]: test pybuild-autopkgtest: - - - - - - - - - - results - - - - - - - - - - 131s autopkgtest [12:08:20]: @@@@@@@@@@@@@@@@@@@@ summary 131s pybuild-autopkgtest FAIL non-zero exit status 25