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