0s autopkgtest [20:57:17]: starting date and time: 2025-10-20 20:57:17+0000 0s autopkgtest [20:57:17]: git checkout: 508d4a25 a-v-ssh wait_for_ssh: demote "ssh connection failed" to a debug message 0s autopkgtest [20:57:17]: host juju-7f2275-prod-proposed-migration-environment-9; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.qtguge3t/out --timeout-copy=6000 --setup-commands 'ln -s /dev/null /etc/systemd/system/bluetooth.service; printf "http_proxy=http://squid.internal:3128\nhttps_proxy=http://squid.internal:3128\nno_proxy=127.0.0.1,127.0.1.1,localhost,localdomain,internal,login.ubuntu.com,archive.ubuntu.com,ports.ubuntu.com,security.ubuntu.com,ddebs.ubuntu.com,changelogs.ubuntu.com,keyserver.ubuntu.com,launchpadlibrarian.net,launchpadcontent.net,launchpad.net,keystone.ps5.canonical.com,objectstorage.prodstack5.canonical.com,radosgw.ps5.canonical.com\n" >> /etc/environment' --apt-pocket=proposed=src:pytest,src:python-pluggy --apt-upgrade datalad-next --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 '--env=ADT_TEST_TRIGGERS=pytest/8.4.2-1 python-pluggy/1.6.0-1' -- lxd -r lxd-armhf-10.145.243.28 lxd-armhf-10.145.243.28:autopkgtest/ubuntu/resolute/armhf 20s autopkgtest [20:57:37]: testbed dpkg architecture: armhf 22s autopkgtest [20:57:39]: testbed apt version: 3.1.6ubuntu2 26s autopkgtest [20:57:43]: @@@@@@@@@@@@@@@@@@@@ test bed setup 27s autopkgtest [20:57:44]: testbed release detected to be: None 35s autopkgtest [20:57:52]: updating testbed package index (apt update) 37s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [83.3 kB] 37s Get:2 http://ftpmaster.internal/ubuntu resolute InRelease [83.3 kB] 37s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 37s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 37s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [646 kB] 37s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [5028 B] 37s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [59.3 kB] 37s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [14.3 kB] 37s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf Packages [100 kB] 37s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/restricted armhf Packages [940 B] 37s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/universe armhf Packages [399 kB] 37s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse armhf Packages [2804 B] 37s Get:13 http://ftpmaster.internal/ubuntu resolute/restricted Sources [14.4 kB] 37s Get:14 http://ftpmaster.internal/ubuntu resolute/main Sources [1402 kB] 37s Get:15 http://ftpmaster.internal/ubuntu resolute/universe Sources [21.1 MB] 38s Get:16 http://ftpmaster.internal/ubuntu resolute/multiverse Sources [307 kB] 38s Get:17 http://ftpmaster.internal/ubuntu resolute/main armhf Packages [1357 kB] 38s Get:18 http://ftpmaster.internal/ubuntu resolute/restricted armhf Packages [1672 B] 38s Get:19 http://ftpmaster.internal/ubuntu resolute/universe armhf Packages [15.0 MB] 39s Get:20 http://ftpmaster.internal/ubuntu resolute/multiverse armhf Packages [182 kB] 42s Fetched 40.7 MB in 5s (7796 kB/s) 43s Reading package lists... 48s autopkgtest [20:58:05]: upgrading testbed (apt dist-upgrade and autopurge) 50s Reading package lists... 50s Building dependency tree... 50s Reading state information... 51s Calculating upgrade... 51s The following packages will be upgraded: 51s apparmor apt base-files binutils binutils-arm-linux-gnueabihf 51s binutils-common cloud-init cloud-init-base distro-info-data dpkg dpkg-dev 51s gcc-15-base gir1.2-girepository-2.0 libapparmor1 libapt-pkg7.0 libatomic1 51s libaudit-common libaudit1 libbinutils libbrotli1 libcap-ng0 libctf-nobfd0 51s libctf0 libdpkg-perl libgcc-s1 libgirepository-1.0-1 libjson-c5 libnewt0.52 51s libnftables1 libp11-kit0 libseccomp2 libselinux1 libsemanage-common 51s libsemanage2 libsframe2 libstdc++6 lto-disabled-list nftables 51s python-apt-common python3-apt python3-cffi-backend python3-inflect 51s python3-oauthlib python3-zipp sudo-rs whiptail 52s 46 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 52s Need to get 11.7 MB of archives. 52s After this operation, 627 kB of additional disk space will be used. 52s Get:1 http://ftpmaster.internal/ubuntu resolute/main armhf base-files armhf 14ubuntu4 [75.4 kB] 52s Get:2 http://ftpmaster.internal/ubuntu resolute/main armhf libatomic1 armhf 15.2.0-5ubuntu1 [7942 B] 52s Get:3 http://ftpmaster.internal/ubuntu resolute/main armhf gcc-15-base armhf 15.2.0-5ubuntu1 [58.1 kB] 52s Get:4 http://ftpmaster.internal/ubuntu resolute/main armhf libgcc-s1 armhf 15.2.0-5ubuntu1 [40.6 kB] 52s Get:5 http://ftpmaster.internal/ubuntu resolute/main armhf libstdc++6 armhf 15.2.0-5ubuntu1 [731 kB] 52s Get:6 http://ftpmaster.internal/ubuntu resolute/main armhf libapt-pkg7.0 armhf 3.1.8ubuntu1 [1148 kB] 52s Get:7 http://ftpmaster.internal/ubuntu resolute/main armhf dpkg armhf 1.22.21ubuntu4 [1245 kB] 52s Get:8 http://ftpmaster.internal/ubuntu resolute/main armhf libseccomp2 armhf 2.6.0-2ubuntu3 [53.5 kB] 52s Get:9 http://ftpmaster.internal/ubuntu resolute/main armhf apt armhf 3.1.8ubuntu1 [1404 kB] 52s Get:10 http://ftpmaster.internal/ubuntu resolute/main armhf libaudit-common all 1:4.0.5-1build2 [6596 B] 52s Get:11 http://ftpmaster.internal/ubuntu resolute/main armhf libcap-ng0 armhf 0.8.5-4build3 [14.0 kB] 52s Get:12 http://ftpmaster.internal/ubuntu resolute/main armhf libaudit1 armhf 1:4.0.5-1build2 [51.7 kB] 52s Get:13 http://ftpmaster.internal/ubuntu resolute/main armhf libselinux1 armhf 3.8.1-1build2 [81.3 kB] 52s Get:14 http://ftpmaster.internal/ubuntu resolute/main armhf libsemanage-common all 3.8.1-1build1 [7916 B] 52s Get:15 http://ftpmaster.internal/ubuntu resolute/main armhf libsemanage2 armhf 3.8.1-1build1 [89.2 kB] 52s Get:16 http://ftpmaster.internal/ubuntu resolute/main armhf distro-info-data all 0.68 [7378 B] 52s Get:17 http://ftpmaster.internal/ubuntu resolute/main armhf libgirepository-1.0-1 armhf 1.86.0-6 [111 kB] 52s Get:18 http://ftpmaster.internal/ubuntu resolute/main armhf gir1.2-girepository-2.0 armhf 1.86.0-6 [25.3 kB] 52s Get:19 http://ftpmaster.internal/ubuntu resolute/main armhf libapparmor1 armhf 5.0.0~alpha1-0ubuntu8.1 [52.9 kB] 52s Get:20 http://ftpmaster.internal/ubuntu resolute/main armhf libjson-c5 armhf 0.18+ds-1.1 [33.3 kB] 52s Get:21 http://ftpmaster.internal/ubuntu resolute/main armhf libnewt0.52 armhf 0.52.25-1ubuntu2 [39.9 kB] 52s Get:22 http://ftpmaster.internal/ubuntu resolute/main armhf libp11-kit0 armhf 0.25.9-2 [265 kB] 52s Get:23 http://ftpmaster.internal/ubuntu resolute/main armhf python-apt-common all 3.0.0ubuntu2 [21.7 kB] 52s Get:24 http://ftpmaster.internal/ubuntu resolute/main armhf python3-apt armhf 3.0.0ubuntu2 [189 kB] 52s Get:25 http://ftpmaster.internal/ubuntu resolute/main armhf python3-cffi-backend armhf 1.17.1-3build1 [98.4 kB] 52s Get:26 http://ftpmaster.internal/ubuntu resolute/main armhf sudo-rs armhf 0.2.8-1ubuntu5.1 [548 kB] 52s Get:27 http://ftpmaster.internal/ubuntu resolute/main armhf whiptail armhf 0.52.25-1ubuntu2 [17.1 kB] 52s Get:28 http://ftpmaster.internal/ubuntu resolute/main armhf apparmor armhf 5.0.0~alpha1-0ubuntu8.1 [631 kB] 52s Get:29 http://ftpmaster.internal/ubuntu resolute/main armhf nftables armhf 1.1.5-2 [73.2 kB] 52s Get:30 http://ftpmaster.internal/ubuntu resolute/main armhf libnftables1 armhf 1.1.5-2 [329 kB] 52s Get:31 http://ftpmaster.internal/ubuntu resolute/main armhf libctf0 armhf 2.45-7ubuntu2 [75.7 kB] 52s Get:32 http://ftpmaster.internal/ubuntu resolute/main armhf libctf-nobfd0 armhf 2.45-7ubuntu2 [79.1 kB] 52s Get:33 http://ftpmaster.internal/ubuntu resolute/main armhf binutils-arm-linux-gnueabihf armhf 2.45-7ubuntu2 [1022 kB] 52s Get:34 http://ftpmaster.internal/ubuntu resolute/main armhf libbinutils armhf 2.45-7ubuntu2 [411 kB] 52s Get:35 http://ftpmaster.internal/ubuntu resolute/main armhf binutils armhf 2.45-7ubuntu2 [3240 B] 52s Get:36 http://ftpmaster.internal/ubuntu resolute/main armhf binutils-common armhf 2.45-7ubuntu2 [220 kB] 53s Get:37 http://ftpmaster.internal/ubuntu resolute/main armhf libsframe2 armhf 2.45-7ubuntu2 [13.4 kB] 53s Get:38 http://ftpmaster.internal/ubuntu resolute/main armhf cloud-init-base all 25.3-0ubuntu1 [625 kB] 53s Get:39 http://ftpmaster.internal/ubuntu resolute/main armhf cloud-init all 25.3-0ubuntu1 [2106 B] 53s Get:40 http://ftpmaster.internal/ubuntu resolute/main armhf python3-oauthlib all 3.3.1-1 [93.5 kB] 53s Get:41 http://ftpmaster.internal/ubuntu resolute/main armhf dpkg-dev all 1.22.21ubuntu4 [1088 kB] 53s Get:42 http://ftpmaster.internal/ubuntu resolute/main armhf libdpkg-perl all 1.22.21ubuntu4 [280 kB] 53s Get:43 http://ftpmaster.internal/ubuntu resolute/main armhf lto-disabled-list all 71 [12.5 kB] 53s Get:44 http://ftpmaster.internal/ubuntu resolute/main armhf libbrotli1 armhf 1.1.0-2build6 [320 kB] 53s Get:45 http://ftpmaster.internal/ubuntu resolute/main armhf python3-inflect all 7.5.0-1 [33.9 kB] 53s Get:46 http://ftpmaster.internal/ubuntu resolute/main armhf python3-zipp all 3.23.0-1 [10.4 kB] 53s Preconfiguring packages ... 53s Fetched 11.7 MB in 1s (10.4 MB/s) 53s (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 ... 61081 files and directories currently installed.) 53s Preparing to unpack .../base-files_14ubuntu4_armhf.deb ... 54s Unpacking base-files (14ubuntu4) over (14ubuntu3) ... 54s Setting up base-files (14ubuntu4) ... 54s Installing new version of config file /etc/issue ... 54s Installing new version of config file /etc/issue.net ... 54s Installing new version of config file /etc/lsb-release ... 54s motd-news.service is a disabled or a static unit not running, not starting it. 54s (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 ... 61081 files and directories currently installed.) 54s Preparing to unpack .../libatomic1_15.2.0-5ubuntu1_armhf.deb ... 54s Unpacking libatomic1:armhf (15.2.0-5ubuntu1) over (15.2.0-4ubuntu4) ... 54s Preparing to unpack .../gcc-15-base_15.2.0-5ubuntu1_armhf.deb ... 54s Unpacking gcc-15-base:armhf (15.2.0-5ubuntu1) over (15.2.0-4ubuntu4) ... 55s Setting up gcc-15-base:armhf (15.2.0-5ubuntu1) ... 55s (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 ... 61081 files and directories currently installed.) 55s Preparing to unpack .../libgcc-s1_15.2.0-5ubuntu1_armhf.deb ... 55s Unpacking libgcc-s1:armhf (15.2.0-5ubuntu1) over (15.2.0-4ubuntu4) ... 55s Setting up libgcc-s1:armhf (15.2.0-5ubuntu1) ... 55s (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 ... 61081 files and directories currently installed.) 55s Preparing to unpack .../libstdc++6_15.2.0-5ubuntu1_armhf.deb ... 55s Unpacking libstdc++6:armhf (15.2.0-5ubuntu1) over (15.2.0-4ubuntu4) ... 55s Setting up libstdc++6:armhf (15.2.0-5ubuntu1) ... 55s (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 ... 61081 files and directories currently installed.) 55s Preparing to unpack .../libapt-pkg7.0_3.1.8ubuntu1_armhf.deb ... 55s Unpacking libapt-pkg7.0:armhf (3.1.8ubuntu1) over (3.1.6ubuntu2) ... 55s Setting up libapt-pkg7.0:armhf (3.1.8ubuntu1) ... 55s (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 ... 61081 files and directories currently installed.) 55s Preparing to unpack .../dpkg_1.22.21ubuntu4_armhf.deb ... 55s Unpacking dpkg (1.22.21ubuntu4) over (1.22.21ubuntu3) ... 55s Setting up dpkg (1.22.21ubuntu4) ... 56s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 61081 files and directories currently installed.) 56s Preparing to unpack .../libseccomp2_2.6.0-2ubuntu3_armhf.deb ... 56s Unpacking libseccomp2:armhf (2.6.0-2ubuntu3) over (2.6.0-2ubuntu2) ... 56s Setting up libseccomp2:armhf (2.6.0-2ubuntu3) ... 56s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 61081 files and directories currently installed.) 56s Preparing to unpack .../apt_3.1.8ubuntu1_armhf.deb ... 56s Unpacking apt (3.1.8ubuntu1) over (3.1.6ubuntu2) ... 56s Setting up apt (3.1.8ubuntu1) ... 57s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 61081 files and directories currently installed.) 57s Preparing to unpack .../libaudit-common_1%3a4.0.5-1build2_all.deb ... 57s Unpacking libaudit-common (1:4.0.5-1build2) over (1:4.0.5-1build1) ... 57s Setting up libaudit-common (1:4.0.5-1build2) ... 57s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 61081 files and directories currently installed.) 57s Preparing to unpack .../libcap-ng0_0.8.5-4build3_armhf.deb ... 57s Unpacking libcap-ng0:armhf (0.8.5-4build3) over (0.8.5-4build2) ... 57s Setting up libcap-ng0:armhf (0.8.5-4build3) ... 57s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 61081 files and directories currently installed.) 57s Preparing to unpack .../libaudit1_1%3a4.0.5-1build2_armhf.deb ... 57s Unpacking libaudit1:armhf (1:4.0.5-1build2) over (1:4.0.5-1build1) ... 57s Setting up libaudit1:armhf (1:4.0.5-1build2) ... 57s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 61081 files and directories currently installed.) 57s Preparing to unpack .../libselinux1_3.8.1-1build2_armhf.deb ... 57s Unpacking libselinux1:armhf (3.8.1-1build2) over (3.8.1-1build1) ... 57s Setting up libselinux1:armhf (3.8.1-1build2) ... 57s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 61081 files and directories currently installed.) 57s Preparing to unpack .../libsemanage-common_3.8.1-1build1_all.deb ... 57s Unpacking libsemanage-common (3.8.1-1build1) over (3.8.1-1) ... 57s Setting up libsemanage-common (3.8.1-1build1) ... 57s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 61081 files and directories currently installed.) 57s Preparing to unpack .../libsemanage2_3.8.1-1build1_armhf.deb ... 57s Unpacking libsemanage2:armhf (3.8.1-1build1) over (3.8.1-1) ... 57s Setting up libsemanage2:armhf (3.8.1-1build1) ... 57s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 61081 files and directories currently installed.) 57s Preparing to unpack .../00-distro-info-data_0.68_all.deb ... 57s Unpacking distro-info-data (0.68) over (0.66) ... 57s Preparing to unpack .../01-libgirepository-1.0-1_1.86.0-6_armhf.deb ... 57s Unpacking libgirepository-1.0-1:armhf (1.86.0-6) over (1.84.0-1) ... 57s Preparing to unpack .../02-gir1.2-girepository-2.0_1.86.0-6_armhf.deb ... 57s Unpacking gir1.2-girepository-2.0:armhf (1.86.0-6) over (1.84.0-1) ... 57s Preparing to unpack .../03-libapparmor1_5.0.0~alpha1-0ubuntu8.1_armhf.deb ... 57s Unpacking libapparmor1:armhf (5.0.0~alpha1-0ubuntu8.1) over (5.0.0~alpha1-0ubuntu8) ... 57s Preparing to unpack .../04-libjson-c5_0.18+ds-1.1_armhf.deb ... 57s Unpacking libjson-c5:armhf (0.18+ds-1.1) over (0.18+ds-1) ... 57s Preparing to unpack .../05-libnewt0.52_0.52.25-1ubuntu2_armhf.deb ... 57s Unpacking libnewt0.52:armhf (0.52.25-1ubuntu2) over (0.52.25-1ubuntu1) ... 57s Preparing to unpack .../06-libp11-kit0_0.25.9-2_armhf.deb ... 57s Unpacking libp11-kit0:armhf (0.25.9-2) over (0.25.5-3ubuntu1) ... 57s Preparing to unpack .../07-python-apt-common_3.0.0ubuntu2_all.deb ... 57s Unpacking python-apt-common (3.0.0ubuntu2) over (3.0.0ubuntu1) ... 58s Preparing to unpack .../08-python3-apt_3.0.0ubuntu2_armhf.deb ... 58s Unpacking python3-apt (3.0.0ubuntu2) over (3.0.0ubuntu1) ... 58s Preparing to unpack .../09-python3-cffi-backend_1.17.1-3build1_armhf.deb ... 58s Unpacking python3-cffi-backend:armhf (1.17.1-3build1) over (1.17.1-3) ... 58s Preparing to unpack .../10-sudo-rs_0.2.8-1ubuntu5.1_armhf.deb ... 58s Unpacking sudo-rs (0.2.8-1ubuntu5.1) over (0.2.8-1ubuntu5) ... 58s Preparing to unpack .../11-whiptail_0.52.25-1ubuntu2_armhf.deb ... 58s Unpacking whiptail (0.52.25-1ubuntu2) over (0.52.25-1ubuntu1) ... 58s Preparing to unpack .../12-apparmor_5.0.0~alpha1-0ubuntu8.1_armhf.deb ... 59s Unpacking apparmor (5.0.0~alpha1-0ubuntu8.1) over (5.0.0~alpha1-0ubuntu8) ... 60s Preparing to unpack .../13-nftables_1.1.5-2_armhf.deb ... 60s Unpacking nftables (1.1.5-2) over (1.1.5-1) ... 60s Preparing to unpack .../14-libnftables1_1.1.5-2_armhf.deb ... 60s Unpacking libnftables1:armhf (1.1.5-2) over (1.1.5-1) ... 60s Preparing to unpack .../15-libctf0_2.45-7ubuntu2_armhf.deb ... 60s Unpacking libctf0:armhf (2.45-7ubuntu2) over (2.45-7ubuntu1) ... 60s Preparing to unpack .../16-libctf-nobfd0_2.45-7ubuntu2_armhf.deb ... 60s Unpacking libctf-nobfd0:armhf (2.45-7ubuntu2) over (2.45-7ubuntu1) ... 60s Preparing to unpack .../17-binutils-arm-linux-gnueabihf_2.45-7ubuntu2_armhf.deb ... 60s Unpacking binutils-arm-linux-gnueabihf (2.45-7ubuntu2) over (2.45-7ubuntu1) ... 60s Preparing to unpack .../18-libbinutils_2.45-7ubuntu2_armhf.deb ... 60s Unpacking libbinutils:armhf (2.45-7ubuntu2) over (2.45-7ubuntu1) ... 60s Preparing to unpack .../19-binutils_2.45-7ubuntu2_armhf.deb ... 60s Unpacking binutils (2.45-7ubuntu2) over (2.45-7ubuntu1) ... 60s Preparing to unpack .../20-binutils-common_2.45-7ubuntu2_armhf.deb ... 60s Unpacking binutils-common:armhf (2.45-7ubuntu2) over (2.45-7ubuntu1) ... 60s Preparing to unpack .../21-libsframe2_2.45-7ubuntu2_armhf.deb ... 60s Unpacking libsframe2:armhf (2.45-7ubuntu2) over (2.45-7ubuntu1) ... 61s Preparing to unpack .../22-cloud-init-base_25.3-0ubuntu1_all.deb ... 61s Unpacking cloud-init-base (25.3-0ubuntu1) over (25.3~2g890873f5-0ubuntu2) ... 62s Preparing to unpack .../23-cloud-init_25.3-0ubuntu1_all.deb ... 62s Unpacking cloud-init (25.3-0ubuntu1) over (25.3~2g890873f5-0ubuntu2) ... 62s Preparing to unpack .../24-python3-oauthlib_3.3.1-1_all.deb ... 62s Unpacking python3-oauthlib (3.3.1-1) over (3.2.2-3) ... 62s Preparing to unpack .../25-dpkg-dev_1.22.21ubuntu4_all.deb ... 62s Unpacking dpkg-dev (1.22.21ubuntu4) over (1.22.21ubuntu3) ... 62s Preparing to unpack .../26-libdpkg-perl_1.22.21ubuntu4_all.deb ... 62s Unpacking libdpkg-perl (1.22.21ubuntu4) over (1.22.21ubuntu3) ... 62s Preparing to unpack .../27-lto-disabled-list_71_all.deb ... 62s Unpacking lto-disabled-list (71) over (69) ... 62s Preparing to unpack .../28-libbrotli1_1.1.0-2build6_armhf.deb ... 62s Unpacking libbrotli1:armhf (1.1.0-2build6) over (1.1.0-2build5) ... 62s Preparing to unpack .../29-python3-inflect_7.5.0-1_all.deb ... 62s Unpacking python3-inflect (7.5.0-1) over (7.3.1-2) ... 62s Preparing to unpack .../30-python3-zipp_3.23.0-1_all.deb ... 62s Unpacking python3-zipp (3.23.0-1) over (3.21.0-1) ... 62s Setting up lto-disabled-list (71) ... 62s Setting up libapparmor1:armhf (5.0.0~alpha1-0ubuntu8.1) ... 62s Setting up libnewt0.52:armhf (0.52.25-1ubuntu2) ... 62s Setting up libnftables1:armhf (1.1.5-2) ... 62s Setting up nftables (1.1.5-2) ... 62s Setting up distro-info-data (0.68) ... 62s Setting up libsframe2:armhf (2.45-7ubuntu2) ... 62s Setting up libbrotli1:armhf (1.1.0-2build6) ... 62s Setting up binutils-common:armhf (2.45-7ubuntu2) ... 62s Setting up libctf-nobfd0:armhf (2.45-7ubuntu2) ... 62s Setting up python3-zipp (3.23.0-1) ... 62s Setting up apparmor (5.0.0~alpha1-0ubuntu8.1) ... 62s Installing new version of config file /etc/apparmor.d/fusermount3 ... 63s apparmor_parser: Unable to replace "lsb_release". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 63s 63s apparmor_parser: Unable to replace "kmod". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 63s 63s apparmor_parser: Unable to replace "nvidia_modprobe". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 63s 64s Reloading AppArmor profiles 64s /sbin/apparmor_parser: Unable to replace "1password". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "Discord". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "MongoDB Compass". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "QtWebEngineProcess". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "balena-etcher". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "brave". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "buildah". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "cam". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "ch-checkns". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "ch-run". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "chrome". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "bwrap". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "chromium". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "vscode". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "devhelp". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "crun". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "bfdd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "babeld". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "bgpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "element-desktop". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "epiphany". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "alsamixer". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "evolution". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "firefox". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "flatpak". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "foliate". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "geary". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "github-desktop". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "dnstracer". /sbin/apparmor_parser: Unable to replace "goldendict". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "eigrpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "fabricd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "dig". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "hostname". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "iotop-c". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "kchmviewer". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "fusermount3". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "keybase". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "lc-compliance". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "isisd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "libcamerify". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "linux-sandbox". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "Xorg". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "john". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "loupe". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "ipa_verify". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "gs". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "lxc-attach". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "ldpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "lxc-create". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "lxc-destroy". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "lxc-execute". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "lxc-stop". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "lxc-unshare". /sbin/apparmor_parser: Unable to replace "irssi". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "lxc-usernsexec". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "linux-boot-prober". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "mmdebstrap". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "compressor". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "locale". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "msedge". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "lsblk". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "notepadqq". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "lsusb". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "lsb_release". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "obsidian". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "opam". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "mosquitto". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "mbsync". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "nhrpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "opera". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "nslookup". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "pageedit". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "notify-send". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "nc.openbsd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "kmod". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "nvidia_modprobe". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "ospf6d". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "ospfd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "pathd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "podman". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "polypane". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "pbrd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "os-prober". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "privacybrowser". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "qcam". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "qmapshack". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "pim6d". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "qutebrowser". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "pimd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "rootlesskit". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "rssguard". /sbin/apparmor_parser: Unable to replace "rpm". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "QtWebEngineProcess". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "plasmashell". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "runc". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "sbuild". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "sbuild-abort". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "sbuild-adduser". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "qpdf". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "sbuild-apt". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "ripd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "ripngd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "sbuild-checkpackages". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "sbuild-clean". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "sbuild-destroychroot". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "sbuild-createchroot". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "sbuild-hold". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "sbuild-distupgrade". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "sbuild-shell". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "sbuild-unhold". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "scide". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "signal-desktop". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "slack". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "slirp4netns". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "sbuild-upgrade". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "sbuild-update". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "steam". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "stress-ng". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "surfshark". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "systemd-coredump". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "thunderbird". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "ssh-keyscan". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "staticd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "systemd-detect-virt". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "ip". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "openvpn". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "trinity". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "tup". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "tuxedo-control-center". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "proftpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "tinyproxy". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "unprivileged_userns". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "userbindmount". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "mx-extract". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "rygel". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "unix-chkpwd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "ubuntu_pro_apt_news". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "/usr/bin/man". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "uwsgi-core". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "vdens". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "virtiofsd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "vivaldi-bin". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "vpnns". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "/usr/sbin/chronyd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "rsyslogd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "vrrpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "cmds". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "tnftp". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "wg". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "wike". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "wpcom". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "who". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "dumpcap". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "tshark". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "znc". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "ip". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "wg-quick". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "tcpdump". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "apt_methods". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "ubuntu_pro_esm_cache". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s /sbin/apparmor_parser: Unable to replace "transmission-cli". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 64s 64s Error: At least one profile failed to load 64s Setting up python3-inflect (7.5.0-1) ... 64s Setting up python3-oauthlib (3.3.1-1) ... 65s Setting up libp11-kit0:armhf (0.25.9-2) ... 65s Setting up libatomic1:armhf (15.2.0-5ubuntu1) ... 65s Setting up libdpkg-perl (1.22.21ubuntu4) ... 65s Setting up whiptail (0.52.25-1ubuntu2) ... 65s Setting up python-apt-common (3.0.0ubuntu2) ... 65s Setting up libgirepository-1.0-1:armhf (1.86.0-6) ... 65s Setting up libbinutils:armhf (2.45-7ubuntu2) ... 65s Setting up libjson-c5:armhf (0.18+ds-1.1) ... 65s Setting up sudo-rs (0.2.8-1ubuntu5.1) ... 65s Setting up python3-cffi-backend:armhf (1.17.1-3build1) ... 65s Setting up libctf0:armhf (2.45-7ubuntu2) ... 65s Setting up python3-apt (3.0.0ubuntu2) ... 65s Setting up cloud-init-base (25.3-0ubuntu1) ... 66s Setting up gir1.2-girepository-2.0:armhf (1.86.0-6) ... 66s Setting up binutils-arm-linux-gnueabihf (2.45-7ubuntu2) ... 66s Setting up cloud-init (25.3-0ubuntu1) ... 66s Setting up binutils (2.45-7ubuntu2) ... 66s Setting up dpkg-dev (1.22.21ubuntu4) ... 66s Processing triggers for procps (2:4.0.4-8ubuntu3) ... 66s Processing triggers for install-info (7.1.1-1ubuntu1) ... 67s Processing triggers for libc-bin (2.42-0ubuntu3) ... 67s Processing triggers for rsyslog (8.2504.0-1ubuntu2) ... 67s Processing triggers for systemd (257.9-0ubuntu2) ... 67s Processing triggers for man-db (2.13.1-1) ... 69s Processing triggers for plymouth-theme-ubuntu-text (24.004.60+git20250831.4a3c171d-0ubuntu1) ... 72s Reading package lists... 72s Building dependency tree... 72s Reading state information... 72s Solving dependencies... 73s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 75s autopkgtest [20:58:32]: rebooting testbed after setup commands that affected boot 114s autopkgtest [20:59:11]: testbed running kernel: Linux 6.8.0-58-generic #60~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Mar 28 14:48:37 UTC 2 138s autopkgtest [20:59:35]: @@@@@@@@@@@@@@@@@@@@ apt-source datalad-next 148s Get:1 http://ftpmaster.internal/ubuntu resolute/universe datalad-next 1.5.0-1 (dsc) [2658 B] 148s Get:2 http://ftpmaster.internal/ubuntu resolute/universe datalad-next 1.5.0-1 (tar) [455 kB] 148s Get:3 http://ftpmaster.internal/ubuntu resolute/universe datalad-next 1.5.0-1 (diff) [8424 B] 148s gpgv: Signature made Tue Dec 17 00:15:31 2024 UTC 148s gpgv: using RSA key AC0A4FF12611B6FCCF01C111393587D97D86500B 148s gpgv: Can't check signature: No public key 148s dpkg-source: warning: cannot verify inline signature for ./datalad-next_1.5.0-1.dsc: no acceptable signature found 149s autopkgtest [20:59:46]: testing package datalad-next version 1.5.0-1 150s autopkgtest [20:59:47]: build not needed 153s autopkgtest [20:59:50]: test plain-import: preparing testbed 154s Reading package lists... 155s Building dependency tree... 155s Reading state information... 155s Solving dependencies... 155s The following NEW packages will be installed: 155s 7zip git git-annex git-man libcurl3t64-gnutls liberror-perl patool 155s python3-all python3-annexremote python3-boto3 python3-botocore 155s python3-datalad python3-datalad-next python3-dateutil python3-fasteners 155s python3-gitlab python3-humanize python3-iso8601 python3-jaraco.classes 155s python3-jeepney python3-jmespath python3-keyring python3-keyrings.alt 155s python3-monotonic python3-msgpack python3-packaging python3-platformdirs 155s python3-pycryptodome python3-requests-toolbelt python3-s3transfer 155s python3-secretstorage python3-six python3-tqdm 155s 0 upgraded, 33 newly installed, 0 to remove and 0 not upgraded. 155s Need to get 42.5 MB of archives. 155s After this operation, 292 MB of additional disk space will be used. 155s Get:1 http://ftpmaster.internal/ubuntu resolute/universe armhf 7zip armhf 25.01+dfsg-2 [1469 kB] 156s Get:2 http://ftpmaster.internal/ubuntu resolute/main armhf libcurl3t64-gnutls armhf 8.14.1-2ubuntu1 [352 kB] 156s Get:3 http://ftpmaster.internal/ubuntu resolute/main armhf liberror-perl all 0.17030-1 [23.5 kB] 156s Get:4 http://ftpmaster.internal/ubuntu resolute/main armhf git-man all 1:2.51.0-1ubuntu1 [1179 kB] 156s Get:5 http://ftpmaster.internal/ubuntu resolute/main armhf git armhf 1:2.51.0-1ubuntu1 [4649 kB] 157s Get:6 http://ftpmaster.internal/ubuntu resolute/universe armhf git-annex armhf 10.20250721-1 [24.3 MB] 158s Get:7 http://ftpmaster.internal/ubuntu resolute/universe armhf patool all 4.0.0-1 [39.1 kB] 158s Get:8 http://ftpmaster.internal/ubuntu resolute/main armhf python3-all armhf 3.13.7-1 [884 B] 158s Get:9 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-annexremote all 1.6.6-1 [14.5 kB] 158s Get:10 http://ftpmaster.internal/ubuntu resolute/main armhf python3-dateutil all 2.9.0-4 [80.3 kB] 158s Get:11 http://ftpmaster.internal/ubuntu resolute/main armhf python3-jmespath all 1.0.1-1 [21.3 kB] 158s Get:12 http://ftpmaster.internal/ubuntu resolute/main armhf python3-six all 1.17.0-1 [13.2 kB] 158s Get:13 http://ftpmaster.internal/ubuntu resolute/main armhf python3-botocore all 1.37.9+repack-1 [6982 kB] 159s Get:14 http://ftpmaster.internal/ubuntu resolute/main armhf python3-s3transfer all 0.11.4-1 [55.8 kB] 159s Get:15 http://ftpmaster.internal/ubuntu resolute/main armhf python3-boto3 all 1.37.9-1 [73.0 kB] 159s Get:16 http://ftpmaster.internal/ubuntu resolute/main armhf python3-monotonic all 1.6-3 [5344 B] 159s Get:17 http://ftpmaster.internal/ubuntu resolute/main armhf python3-fasteners all 0.18-2 [12.5 kB] 159s Get:18 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-requests-toolbelt all 1.0.0-4 [37.0 kB] 159s Get:19 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-gitlab all 1:4.9.0-1 [75.0 kB] 159s Get:20 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-humanize all 4.12.1-1 [58.3 kB] 159s Get:21 http://ftpmaster.internal/ubuntu resolute/main armhf python3-iso8601 all 2.1.0-2 [9136 B] 159s Get:22 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-jeepney all 0.9.0-1 [33.5 kB] 159s Get:23 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-secretstorage all 3.3.3-3 [13.7 kB] 159s Get:24 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-jaraco.classes all 3.4.0-1 [7664 B] 159s Get:25 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-keyring all 25.6.0-3 [40.7 kB] 159s Get:26 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-pycryptodome armhf 3.20.0+dfsg-3build1 [1089 kB] 159s Get:27 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-keyrings.alt all 5.0.2-1 [16.6 kB] 159s Get:28 http://ftpmaster.internal/ubuntu resolute/main armhf python3-msgpack armhf 1.0.3-3build4 [80.6 kB] 159s Get:29 http://ftpmaster.internal/ubuntu resolute/main armhf python3-platformdirs all 4.3.7-1 [16.9 kB] 159s Get:30 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-tqdm all 4.67.1-5 [92.1 kB] 159s Get:31 http://ftpmaster.internal/ubuntu resolute/main armhf python3-packaging all 25.0-1 [52.8 kB] 159s Get:32 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-datalad all 1.1.5-2.1 [816 kB] 159s Get:33 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-datalad-next all 1.5.0-1 [762 kB] 159s Fetched 42.5 MB in 4s (11.3 MB/s) 160s Selecting previously unselected package 7zip. 160s (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 ... 61096 files and directories currently installed.) 160s Preparing to unpack .../00-7zip_25.01+dfsg-2_armhf.deb ... 160s Unpacking 7zip (25.01+dfsg-2) ... 160s Selecting previously unselected package libcurl3t64-gnutls:armhf. 160s Preparing to unpack .../01-libcurl3t64-gnutls_8.14.1-2ubuntu1_armhf.deb ... 160s Unpacking libcurl3t64-gnutls:armhf (8.14.1-2ubuntu1) ... 160s Selecting previously unselected package liberror-perl. 160s Preparing to unpack .../02-liberror-perl_0.17030-1_all.deb ... 160s Unpacking liberror-perl (0.17030-1) ... 160s Selecting previously unselected package git-man. 160s Preparing to unpack .../03-git-man_1%3a2.51.0-1ubuntu1_all.deb ... 160s Unpacking git-man (1:2.51.0-1ubuntu1) ... 160s Selecting previously unselected package git. 160s Preparing to unpack .../04-git_1%3a2.51.0-1ubuntu1_armhf.deb ... 160s Unpacking git (1:2.51.0-1ubuntu1) ... 160s Selecting previously unselected package git-annex. 160s Preparing to unpack .../05-git-annex_10.20250721-1_armhf.deb ... 160s Unpacking git-annex (10.20250721-1) ... 161s Selecting previously unselected package patool. 161s Preparing to unpack .../06-patool_4.0.0-1_all.deb ... 161s Unpacking patool (4.0.0-1) ... 161s Selecting previously unselected package python3-all. 161s Preparing to unpack .../07-python3-all_3.13.7-1_armhf.deb ... 161s Unpacking python3-all (3.13.7-1) ... 161s Selecting previously unselected package python3-annexremote. 161s Preparing to unpack .../08-python3-annexremote_1.6.6-1_all.deb ... 161s Unpacking python3-annexremote (1.6.6-1) ... 161s Selecting previously unselected package python3-dateutil. 161s Preparing to unpack .../09-python3-dateutil_2.9.0-4_all.deb ... 161s Unpacking python3-dateutil (2.9.0-4) ... 161s Selecting previously unselected package python3-jmespath. 161s Preparing to unpack .../10-python3-jmespath_1.0.1-1_all.deb ... 161s Unpacking python3-jmespath (1.0.1-1) ... 161s Selecting previously unselected package python3-six. 161s Preparing to unpack .../11-python3-six_1.17.0-1_all.deb ... 161s Unpacking python3-six (1.17.0-1) ... 161s Selecting previously unselected package python3-botocore. 161s Preparing to unpack .../12-python3-botocore_1.37.9+repack-1_all.deb ... 161s Unpacking python3-botocore (1.37.9+repack-1) ... 162s Selecting previously unselected package python3-s3transfer. 162s Preparing to unpack .../13-python3-s3transfer_0.11.4-1_all.deb ... 162s Unpacking python3-s3transfer (0.11.4-1) ... 162s Selecting previously unselected package python3-boto3. 162s Preparing to unpack .../14-python3-boto3_1.37.9-1_all.deb ... 162s Unpacking python3-boto3 (1.37.9-1) ... 162s Selecting previously unselected package python3-monotonic. 162s Preparing to unpack .../15-python3-monotonic_1.6-3_all.deb ... 162s Unpacking python3-monotonic (1.6-3) ... 162s Selecting previously unselected package python3-fasteners. 162s Preparing to unpack .../16-python3-fasteners_0.18-2_all.deb ... 162s Unpacking python3-fasteners (0.18-2) ... 162s Selecting previously unselected package python3-requests-toolbelt. 162s Preparing to unpack .../17-python3-requests-toolbelt_1.0.0-4_all.deb ... 162s Unpacking python3-requests-toolbelt (1.0.0-4) ... 162s Selecting previously unselected package python3-gitlab. 162s Preparing to unpack .../18-python3-gitlab_1%3a4.9.0-1_all.deb ... 162s Unpacking python3-gitlab (1:4.9.0-1) ... 162s Selecting previously unselected package python3-humanize. 162s Preparing to unpack .../19-python3-humanize_4.12.1-1_all.deb ... 162s Unpacking python3-humanize (4.12.1-1) ... 162s Selecting previously unselected package python3-iso8601. 162s Preparing to unpack .../20-python3-iso8601_2.1.0-2_all.deb ... 162s Unpacking python3-iso8601 (2.1.0-2) ... 162s Selecting previously unselected package python3-jeepney. 162s Preparing to unpack .../21-python3-jeepney_0.9.0-1_all.deb ... 162s Unpacking python3-jeepney (0.9.0-1) ... 162s Selecting previously unselected package python3-secretstorage. 162s Preparing to unpack .../22-python3-secretstorage_3.3.3-3_all.deb ... 162s Unpacking python3-secretstorage (3.3.3-3) ... 162s Selecting previously unselected package python3-jaraco.classes. 162s Preparing to unpack .../23-python3-jaraco.classes_3.4.0-1_all.deb ... 162s Unpacking python3-jaraco.classes (3.4.0-1) ... 162s Selecting previously unselected package python3-keyring. 162s Preparing to unpack .../24-python3-keyring_25.6.0-3_all.deb ... 162s Unpacking python3-keyring (25.6.0-3) ... 162s Selecting previously unselected package python3-pycryptodome. 162s Preparing to unpack .../25-python3-pycryptodome_3.20.0+dfsg-3build1_armhf.deb ... 162s Unpacking python3-pycryptodome (3.20.0+dfsg-3build1) ... 162s Selecting previously unselected package python3-keyrings.alt. 162s Preparing to unpack .../26-python3-keyrings.alt_5.0.2-1_all.deb ... 162s Unpacking python3-keyrings.alt (5.0.2-1) ... 163s Selecting previously unselected package python3-msgpack. 163s Preparing to unpack .../27-python3-msgpack_1.0.3-3build4_armhf.deb ... 163s Unpacking python3-msgpack (1.0.3-3build4) ... 163s Selecting previously unselected package python3-platformdirs. 163s Preparing to unpack .../28-python3-platformdirs_4.3.7-1_all.deb ... 163s Unpacking python3-platformdirs (4.3.7-1) ... 163s Selecting previously unselected package python3-tqdm. 163s Preparing to unpack .../29-python3-tqdm_4.67.1-5_all.deb ... 163s Unpacking python3-tqdm (4.67.1-5) ... 163s Selecting previously unselected package python3-packaging. 163s Preparing to unpack .../30-python3-packaging_25.0-1_all.deb ... 163s Unpacking python3-packaging (25.0-1) ... 163s Selecting previously unselected package python3-datalad. 163s Preparing to unpack .../31-python3-datalad_1.1.5-2.1_all.deb ... 163s Unpacking python3-datalad (1.1.5-2.1) ... 163s Selecting previously unselected package python3-datalad-next. 163s Preparing to unpack .../32-python3-datalad-next_1.5.0-1_all.deb ... 163s Unpacking python3-datalad-next (1.5.0-1) ... 163s Setting up python3-jaraco.classes (3.4.0-1) ... 163s Setting up patool (4.0.0-1) ... 163s Setting up python3-requests-toolbelt (1.0.0-4) ... 163s Setting up python3-annexremote (1.6.6-1) ... 164s Setting up python3-pycryptodome (3.20.0+dfsg-3build1) ... 164s Setting up python3-tqdm (4.67.1-5) ... 164s Setting up libcurl3t64-gnutls:armhf (8.14.1-2ubuntu1) ... 164s Setting up python3-all (3.13.7-1) ... 164s Setting up 7zip (25.01+dfsg-2) ... 164s Setting up python3-platformdirs (4.3.7-1) ... 164s Setting up python3-monotonic (1.6-3) ... 164s Setting up liberror-perl (0.17030-1) ... 164s Setting up python3-six (1.17.0-1) ... 165s Setting up python3-packaging (25.0-1) ... 165s Setting up python3-iso8601 (2.1.0-2) ... 165s Setting up python3-jmespath (1.0.1-1) ... 165s Setting up python3-fasteners (0.18-2) ... 165s Setting up python3-jeepney (0.9.0-1) ... 165s Setting up git-man (1:2.51.0-1ubuntu1) ... 165s Setting up python3-dateutil (2.9.0-4) ... 165s Setting up python3-msgpack (1.0.3-3build4) ... 166s Setting up python3-humanize (4.12.1-1) ... 166s Setting up python3-gitlab (1:4.9.0-1) ... 166s Setting up python3-secretstorage (3.3.3-3) ... 166s Setting up python3-botocore (1.37.9+repack-1) ... 167s Setting up git (1:2.51.0-1ubuntu1) ... 167s Setting up git-annex (10.20250721-1) ... 167s Setting up python3-keyring (25.6.0-3) ... 167s Setting up python3-s3transfer (0.11.4-1) ... 167s Setting up python3-boto3 (1.37.9-1) ... 167s Setting up python3-keyrings.alt (5.0.2-1) ... 167s Setting up python3-datalad (1.1.5-2.1) ... 168s Setting up python3-datalad-next (1.5.0-1) ... 168s Processing triggers for libc-bin (2.42-0ubuntu3) ... 168s Processing triggers for man-db (2.13.1-1) ... 177s autopkgtest [21:00:14]: test plain-import: set -e ; export GIT_AUTHOR_NAME=debian; export GIT_AUTHOR_EMAIL=debian@datalad.org; for py in $(py3versions -r 2>/dev/null) ; do cd "$AUTOPKGTEST_TMP" ; echo "Testing with $py:" ; $py -c "import datalad_next; print(datalad_next)" ; done 177s autopkgtest [21:00:14]: test plain-import: [----------------------- 179s Testing with python3.13: 179s 179s autopkgtest [21:00:16]: test plain-import: -----------------------] 183s autopkgtest [21:00:20]: test plain-import: - - - - - - - - - - results - - - - - - - - - - 183s plain-import PASS (superficial) 187s autopkgtest [21:00:24]: test apply-datalad-patches: preparing testbed 189s Reading package lists... 189s Building dependency tree... 189s Reading state information... 189s Solving dependencies... 190s The following NEW packages will be installed: 190s datalad python3-argcomplete 190s 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. 190s Need to get 137 kB of archives. 190s After this operation, 402 kB of additional disk space will be used. 190s Get:1 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-argcomplete all 3.6.2-1 [35.8 kB] 190s Get:2 http://ftpmaster.internal/ubuntu resolute/universe armhf datalad all 1.1.5-2.1 [101 kB] 191s Fetched 137 kB in 0s (367 kB/s) 191s Selecting previously unselected package python3-argcomplete. 191s (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 ... 68449 files and directories currently installed.) 191s Preparing to unpack .../python3-argcomplete_3.6.2-1_all.deb ... 191s Unpacking python3-argcomplete (3.6.2-1) ... 191s Selecting previously unselected package datalad. 191s Preparing to unpack .../datalad_1.1.5-2.1_all.deb ... 191s Unpacking datalad (1.1.5-2.1) ... 191s Setting up python3-argcomplete (3.6.2-1) ... 191s Setting up datalad (1.1.5-2.1) ... 191s Processing triggers for man-db (2.13.1-1) ... 199s autopkgtest [21:00:36]: test apply-datalad-patches: set -e ; export GIT_AUTHOR_NAME=debian; export GIT_AUTHOR_EMAIL=debian@datalad.org; for py in $(py3versions -r 2>/dev/null) ; do cd "$AUTOPKGTEST_TMP" ; echo "Testing with $py:" ; $py -c "import datalad_next.patches.enabled" ; done 199s autopkgtest [21:00:36]: test apply-datalad-patches: [----------------------- 201s Testing with python3.13: 202s autopkgtest [21:00:39]: test apply-datalad-patches: -----------------------] 206s autopkgtest [21:00:43]: test apply-datalad-patches: - - - - - - - - - - results - - - - - - - - - - 206s apply-datalad-patches PASS (superficial) 209s autopkgtest [21:00:46]: test extension-registered: preparing testbed 233s autopkgtest [21:01:10]: testbed dpkg architecture: armhf 235s autopkgtest [21:01:12]: testbed apt version: 3.1.6ubuntu2 239s autopkgtest [21:01:16]: @@@@@@@@@@@@@@@@@@@@ test bed setup 241s autopkgtest [21:01:18]: testbed release detected to be: resolute 248s autopkgtest [21:01:25]: updating testbed package index (apt update) 250s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [83.3 kB] 251s Get:2 http://ftpmaster.internal/ubuntu resolute InRelease [83.3 kB] 251s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 251s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 251s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [646 kB] 251s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [5028 B] 251s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [59.3 kB] 251s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [14.3 kB] 251s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf Packages [100 kB] 251s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/restricted armhf Packages [940 B] 251s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/universe armhf Packages [399 kB] 251s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse armhf Packages [2804 B] 251s Get:13 http://ftpmaster.internal/ubuntu resolute/universe Sources [21.1 MB] 252s Get:14 http://ftpmaster.internal/ubuntu resolute/main Sources [1402 kB] 252s Get:15 http://ftpmaster.internal/ubuntu resolute/restricted Sources [14.4 kB] 252s Get:16 http://ftpmaster.internal/ubuntu resolute/multiverse Sources [307 kB] 252s Get:17 http://ftpmaster.internal/ubuntu resolute/main armhf Packages [1357 kB] 252s Get:18 http://ftpmaster.internal/ubuntu resolute/restricted armhf Packages [1672 B] 252s Get:19 http://ftpmaster.internal/ubuntu resolute/universe armhf Packages [15.0 MB] 253s Get:20 http://ftpmaster.internal/ubuntu resolute/multiverse armhf Packages [182 kB] 256s Fetched 40.7 MB in 5s (7502 kB/s) 257s Reading package lists... 262s autopkgtest [21:01:39]: upgrading testbed (apt dist-upgrade and autopurge) 264s Reading package lists... 265s Building dependency tree... 265s Reading state information... 265s Calculating upgrade... 265s The following packages will be upgraded: 265s apparmor apt base-files binutils binutils-arm-linux-gnueabihf 265s binutils-common cloud-init cloud-init-base distro-info-data dpkg dpkg-dev 265s gcc-15-base gir1.2-girepository-2.0 libapparmor1 libapt-pkg7.0 libatomic1 265s libaudit-common libaudit1 libbinutils libbrotli1 libcap-ng0 libctf-nobfd0 265s libctf0 libdpkg-perl libgcc-s1 libgirepository-1.0-1 libjson-c5 libnewt0.52 265s libnftables1 libp11-kit0 libseccomp2 libselinux1 libsemanage-common 265s libsemanage2 libsframe2 libstdc++6 lto-disabled-list nftables 265s python-apt-common python3-apt python3-cffi-backend python3-inflect 265s python3-oauthlib python3-zipp sudo-rs whiptail 266s 46 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 266s Need to get 11.7 MB of archives. 266s After this operation, 627 kB of additional disk space will be used. 266s Get:1 http://ftpmaster.internal/ubuntu resolute/main armhf base-files armhf 14ubuntu4 [75.4 kB] 266s Get:2 http://ftpmaster.internal/ubuntu resolute/main armhf libatomic1 armhf 15.2.0-5ubuntu1 [7942 B] 266s Get:3 http://ftpmaster.internal/ubuntu resolute/main armhf gcc-15-base armhf 15.2.0-5ubuntu1 [58.1 kB] 266s Get:4 http://ftpmaster.internal/ubuntu resolute/main armhf libgcc-s1 armhf 15.2.0-5ubuntu1 [40.6 kB] 266s Get:5 http://ftpmaster.internal/ubuntu resolute/main armhf libstdc++6 armhf 15.2.0-5ubuntu1 [731 kB] 266s Get:6 http://ftpmaster.internal/ubuntu resolute/main armhf libapt-pkg7.0 armhf 3.1.8ubuntu1 [1148 kB] 266s Get:7 http://ftpmaster.internal/ubuntu resolute/main armhf dpkg armhf 1.22.21ubuntu4 [1245 kB] 266s Get:8 http://ftpmaster.internal/ubuntu resolute/main armhf libseccomp2 armhf 2.6.0-2ubuntu3 [53.5 kB] 266s Get:9 http://ftpmaster.internal/ubuntu resolute/main armhf apt armhf 3.1.8ubuntu1 [1404 kB] 266s Get:10 http://ftpmaster.internal/ubuntu resolute/main armhf libaudit-common all 1:4.0.5-1build2 [6596 B] 266s Get:11 http://ftpmaster.internal/ubuntu resolute/main armhf libcap-ng0 armhf 0.8.5-4build3 [14.0 kB] 266s Get:12 http://ftpmaster.internal/ubuntu resolute/main armhf libaudit1 armhf 1:4.0.5-1build2 [51.7 kB] 266s Get:13 http://ftpmaster.internal/ubuntu resolute/main armhf libselinux1 armhf 3.8.1-1build2 [81.3 kB] 266s Get:14 http://ftpmaster.internal/ubuntu resolute/main armhf libsemanage-common all 3.8.1-1build1 [7916 B] 266s Get:15 http://ftpmaster.internal/ubuntu resolute/main armhf libsemanage2 armhf 3.8.1-1build1 [89.2 kB] 266s Get:16 http://ftpmaster.internal/ubuntu resolute/main armhf distro-info-data all 0.68 [7378 B] 266s Get:17 http://ftpmaster.internal/ubuntu resolute/main armhf libgirepository-1.0-1 armhf 1.86.0-6 [111 kB] 266s Get:18 http://ftpmaster.internal/ubuntu resolute/main armhf gir1.2-girepository-2.0 armhf 1.86.0-6 [25.3 kB] 266s Get:19 http://ftpmaster.internal/ubuntu resolute/main armhf libapparmor1 armhf 5.0.0~alpha1-0ubuntu8.1 [52.9 kB] 266s Get:20 http://ftpmaster.internal/ubuntu resolute/main armhf libjson-c5 armhf 0.18+ds-1.1 [33.3 kB] 266s Get:21 http://ftpmaster.internal/ubuntu resolute/main armhf libnewt0.52 armhf 0.52.25-1ubuntu2 [39.9 kB] 266s Get:22 http://ftpmaster.internal/ubuntu resolute/main armhf libp11-kit0 armhf 0.25.9-2 [265 kB] 266s Get:23 http://ftpmaster.internal/ubuntu resolute/main armhf python-apt-common all 3.0.0ubuntu2 [21.7 kB] 266s Get:24 http://ftpmaster.internal/ubuntu resolute/main armhf python3-apt armhf 3.0.0ubuntu2 [189 kB] 266s Get:25 http://ftpmaster.internal/ubuntu resolute/main armhf python3-cffi-backend armhf 1.17.1-3build1 [98.4 kB] 266s Get:26 http://ftpmaster.internal/ubuntu resolute/main armhf sudo-rs armhf 0.2.8-1ubuntu5.1 [548 kB] 266s Get:27 http://ftpmaster.internal/ubuntu resolute/main armhf whiptail armhf 0.52.25-1ubuntu2 [17.1 kB] 266s Get:28 http://ftpmaster.internal/ubuntu resolute/main armhf apparmor armhf 5.0.0~alpha1-0ubuntu8.1 [631 kB] 266s Get:29 http://ftpmaster.internal/ubuntu resolute/main armhf nftables armhf 1.1.5-2 [73.2 kB] 266s Get:30 http://ftpmaster.internal/ubuntu resolute/main armhf libnftables1 armhf 1.1.5-2 [329 kB] 266s Get:31 http://ftpmaster.internal/ubuntu resolute/main armhf libctf0 armhf 2.45-7ubuntu2 [75.7 kB] 266s Get:32 http://ftpmaster.internal/ubuntu resolute/main armhf libctf-nobfd0 armhf 2.45-7ubuntu2 [79.1 kB] 266s Get:33 http://ftpmaster.internal/ubuntu resolute/main armhf binutils-arm-linux-gnueabihf armhf 2.45-7ubuntu2 [1022 kB] 266s Get:34 http://ftpmaster.internal/ubuntu resolute/main armhf libbinutils armhf 2.45-7ubuntu2 [411 kB] 267s Get:35 http://ftpmaster.internal/ubuntu resolute/main armhf binutils armhf 2.45-7ubuntu2 [3240 B] 267s Get:36 http://ftpmaster.internal/ubuntu resolute/main armhf binutils-common armhf 2.45-7ubuntu2 [220 kB] 267s Get:37 http://ftpmaster.internal/ubuntu resolute/main armhf libsframe2 armhf 2.45-7ubuntu2 [13.4 kB] 267s Get:38 http://ftpmaster.internal/ubuntu resolute/main armhf cloud-init-base all 25.3-0ubuntu1 [625 kB] 267s Get:39 http://ftpmaster.internal/ubuntu resolute/main armhf cloud-init all 25.3-0ubuntu1 [2106 B] 267s Get:40 http://ftpmaster.internal/ubuntu resolute/main armhf python3-oauthlib all 3.3.1-1 [93.5 kB] 267s Get:41 http://ftpmaster.internal/ubuntu resolute/main armhf dpkg-dev all 1.22.21ubuntu4 [1088 kB] 267s Get:42 http://ftpmaster.internal/ubuntu resolute/main armhf libdpkg-perl all 1.22.21ubuntu4 [280 kB] 267s Get:43 http://ftpmaster.internal/ubuntu resolute/main armhf lto-disabled-list all 71 [12.5 kB] 267s Get:44 http://ftpmaster.internal/ubuntu resolute/main armhf libbrotli1 armhf 1.1.0-2build6 [320 kB] 267s Get:45 http://ftpmaster.internal/ubuntu resolute/main armhf python3-inflect all 7.5.0-1 [33.9 kB] 267s Get:46 http://ftpmaster.internal/ubuntu resolute/main armhf python3-zipp all 3.23.0-1 [10.4 kB] 267s Preconfiguring packages ... 268s Fetched 11.7 MB in 1s (9371 kB/s) 268s (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 ... 61081 files and directories currently installed.) 268s Preparing to unpack .../base-files_14ubuntu4_armhf.deb ... 268s Unpacking base-files (14ubuntu4) over (14ubuntu3) ... 268s Setting up base-files (14ubuntu4) ... 268s Installing new version of config file /etc/issue ... 268s Installing new version of config file /etc/issue.net ... 268s Installing new version of config file /etc/lsb-release ... 269s motd-news.service is a disabled or a static unit not running, not starting it. 269s (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 ... 61081 files and directories currently installed.) 269s Preparing to unpack .../libatomic1_15.2.0-5ubuntu1_armhf.deb ... 269s Unpacking libatomic1:armhf (15.2.0-5ubuntu1) over (15.2.0-4ubuntu4) ... 269s Preparing to unpack .../gcc-15-base_15.2.0-5ubuntu1_armhf.deb ... 269s Unpacking gcc-15-base:armhf (15.2.0-5ubuntu1) over (15.2.0-4ubuntu4) ... 269s Setting up gcc-15-base:armhf (15.2.0-5ubuntu1) ... 269s (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 ... 61081 files and directories currently installed.) 269s Preparing to unpack .../libgcc-s1_15.2.0-5ubuntu1_armhf.deb ... 269s Unpacking libgcc-s1:armhf (15.2.0-5ubuntu1) over (15.2.0-4ubuntu4) ... 269s Setting up libgcc-s1:armhf (15.2.0-5ubuntu1) ... 269s (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 ... 61081 files and directories currently installed.) 269s Preparing to unpack .../libstdc++6_15.2.0-5ubuntu1_armhf.deb ... 269s Unpacking libstdc++6:armhf (15.2.0-5ubuntu1) over (15.2.0-4ubuntu4) ... 269s Setting up libstdc++6:armhf (15.2.0-5ubuntu1) ... 269s (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 ... 61081 files and directories currently installed.) 269s Preparing to unpack .../libapt-pkg7.0_3.1.8ubuntu1_armhf.deb ... 269s Unpacking libapt-pkg7.0:armhf (3.1.8ubuntu1) over (3.1.6ubuntu2) ... 270s Setting up libapt-pkg7.0:armhf (3.1.8ubuntu1) ... 270s (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 ... 61081 files and directories currently installed.) 270s Preparing to unpack .../dpkg_1.22.21ubuntu4_armhf.deb ... 270s Unpacking dpkg (1.22.21ubuntu4) over (1.22.21ubuntu3) ... 270s Setting up dpkg (1.22.21ubuntu4) ... 270s (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 ... 61081 files and directories currently installed.) 270s Preparing to unpack .../libseccomp2_2.6.0-2ubuntu3_armhf.deb ... 270s Unpacking libseccomp2:armhf (2.6.0-2ubuntu3) over (2.6.0-2ubuntu2) ... 270s Setting up libseccomp2:armhf (2.6.0-2ubuntu3) ... 270s (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 ... 61081 files and directories currently installed.) 270s Preparing to unpack .../apt_3.1.8ubuntu1_armhf.deb ... 271s Unpacking apt (3.1.8ubuntu1) over (3.1.6ubuntu2) ... 271s Setting up apt (3.1.8ubuntu1) ... 271s (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 ... 61081 files and directories currently installed.) 271s Preparing to unpack .../libaudit-common_1%3a4.0.5-1build2_all.deb ... 271s Unpacking libaudit-common (1:4.0.5-1build2) over (1:4.0.5-1build1) ... 271s Setting up libaudit-common (1:4.0.5-1build2) ... 272s (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 ... 61081 files and directories currently installed.) 272s Preparing to unpack .../libcap-ng0_0.8.5-4build3_armhf.deb ... 272s Unpacking libcap-ng0:armhf (0.8.5-4build3) over (0.8.5-4build2) ... 272s Setting up libcap-ng0:armhf (0.8.5-4build3) ... 272s (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 ... 61081 files and directories currently installed.) 272s Preparing to unpack .../libaudit1_1%3a4.0.5-1build2_armhf.deb ... 272s Unpacking libaudit1:armhf (1:4.0.5-1build2) over (1:4.0.5-1build1) ... 272s Setting up libaudit1:armhf (1:4.0.5-1build2) ... 272s (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 ... 61081 files and directories currently installed.) 272s Preparing to unpack .../libselinux1_3.8.1-1build2_armhf.deb ... 272s Unpacking libselinux1:armhf (3.8.1-1build2) over (3.8.1-1build1) ... 272s Setting up libselinux1:armhf (3.8.1-1build2) ... 272s (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 ... 61081 files and directories currently installed.) 272s Preparing to unpack .../libsemanage-common_3.8.1-1build1_all.deb ... 272s Unpacking libsemanage-common (3.8.1-1build1) over (3.8.1-1) ... 272s Setting up libsemanage-common (3.8.1-1build1) ... 272s (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 ... 61081 files and directories currently installed.) 272s Preparing to unpack .../libsemanage2_3.8.1-1build1_armhf.deb ... 272s Unpacking libsemanage2:armhf (3.8.1-1build1) over (3.8.1-1) ... 272s Setting up libsemanage2:armhf (3.8.1-1build1) ... 272s (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 ... 61081 files and directories currently installed.) 272s Preparing to unpack .../00-distro-info-data_0.68_all.deb ... 272s Unpacking distro-info-data (0.68) over (0.66) ... 272s Preparing to unpack .../01-libgirepository-1.0-1_1.86.0-6_armhf.deb ... 272s Unpacking libgirepository-1.0-1:armhf (1.86.0-6) over (1.84.0-1) ... 272s Preparing to unpack .../02-gir1.2-girepository-2.0_1.86.0-6_armhf.deb ... 272s Unpacking gir1.2-girepository-2.0:armhf (1.86.0-6) over (1.84.0-1) ... 272s Preparing to unpack .../03-libapparmor1_5.0.0~alpha1-0ubuntu8.1_armhf.deb ... 272s Unpacking libapparmor1:armhf (5.0.0~alpha1-0ubuntu8.1) over (5.0.0~alpha1-0ubuntu8) ... 272s Preparing to unpack .../04-libjson-c5_0.18+ds-1.1_armhf.deb ... 272s Unpacking libjson-c5:armhf (0.18+ds-1.1) over (0.18+ds-1) ... 272s Preparing to unpack .../05-libnewt0.52_0.52.25-1ubuntu2_armhf.deb ... 272s Unpacking libnewt0.52:armhf (0.52.25-1ubuntu2) over (0.52.25-1ubuntu1) ... 272s Preparing to unpack .../06-libp11-kit0_0.25.9-2_armhf.deb ... 272s Unpacking libp11-kit0:armhf (0.25.9-2) over (0.25.5-3ubuntu1) ... 272s Preparing to unpack .../07-python-apt-common_3.0.0ubuntu2_all.deb ... 272s Unpacking python-apt-common (3.0.0ubuntu2) over (3.0.0ubuntu1) ... 272s Preparing to unpack .../08-python3-apt_3.0.0ubuntu2_armhf.deb ... 272s Unpacking python3-apt (3.0.0ubuntu2) over (3.0.0ubuntu1) ... 272s Preparing to unpack .../09-python3-cffi-backend_1.17.1-3build1_armhf.deb ... 272s Unpacking python3-cffi-backend:armhf (1.17.1-3build1) over (1.17.1-3) ... 273s Preparing to unpack .../10-sudo-rs_0.2.8-1ubuntu5.1_armhf.deb ... 273s Unpacking sudo-rs (0.2.8-1ubuntu5.1) over (0.2.8-1ubuntu5) ... 273s Preparing to unpack .../11-whiptail_0.52.25-1ubuntu2_armhf.deb ... 273s Unpacking whiptail (0.52.25-1ubuntu2) over (0.52.25-1ubuntu1) ... 273s Preparing to unpack .../12-apparmor_5.0.0~alpha1-0ubuntu8.1_armhf.deb ... 274s Unpacking apparmor (5.0.0~alpha1-0ubuntu8.1) over (5.0.0~alpha1-0ubuntu8) ... 275s Preparing to unpack .../13-nftables_1.1.5-2_armhf.deb ... 275s Unpacking nftables (1.1.5-2) over (1.1.5-1) ... 275s Preparing to unpack .../14-libnftables1_1.1.5-2_armhf.deb ... 275s Unpacking libnftables1:armhf (1.1.5-2) over (1.1.5-1) ... 275s Preparing to unpack .../15-libctf0_2.45-7ubuntu2_armhf.deb ... 275s Unpacking libctf0:armhf (2.45-7ubuntu2) over (2.45-7ubuntu1) ... 275s Preparing to unpack .../16-libctf-nobfd0_2.45-7ubuntu2_armhf.deb ... 275s Unpacking libctf-nobfd0:armhf (2.45-7ubuntu2) over (2.45-7ubuntu1) ... 275s Preparing to unpack .../17-binutils-arm-linux-gnueabihf_2.45-7ubuntu2_armhf.deb ... 275s Unpacking binutils-arm-linux-gnueabihf (2.45-7ubuntu2) over (2.45-7ubuntu1) ... 275s Preparing to unpack .../18-libbinutils_2.45-7ubuntu2_armhf.deb ... 275s Unpacking libbinutils:armhf (2.45-7ubuntu2) over (2.45-7ubuntu1) ... 275s Preparing to unpack .../19-binutils_2.45-7ubuntu2_armhf.deb ... 275s Unpacking binutils (2.45-7ubuntu2) over (2.45-7ubuntu1) ... 275s Preparing to unpack .../20-binutils-common_2.45-7ubuntu2_armhf.deb ... 275s Unpacking binutils-common:armhf (2.45-7ubuntu2) over (2.45-7ubuntu1) ... 276s Preparing to unpack .../21-libsframe2_2.45-7ubuntu2_armhf.deb ... 276s Unpacking libsframe2:armhf (2.45-7ubuntu2) over (2.45-7ubuntu1) ... 276s Preparing to unpack .../22-cloud-init-base_25.3-0ubuntu1_all.deb ... 276s Unpacking cloud-init-base (25.3-0ubuntu1) over (25.3~2g890873f5-0ubuntu2) ... 276s Preparing to unpack .../23-cloud-init_25.3-0ubuntu1_all.deb ... 276s Unpacking cloud-init (25.3-0ubuntu1) over (25.3~2g890873f5-0ubuntu2) ... 276s Preparing to unpack .../24-python3-oauthlib_3.3.1-1_all.deb ... 276s Unpacking python3-oauthlib (3.3.1-1) over (3.2.2-3) ... 277s Preparing to unpack .../25-dpkg-dev_1.22.21ubuntu4_all.deb ... 277s Unpacking dpkg-dev (1.22.21ubuntu4) over (1.22.21ubuntu3) ... 277s Preparing to unpack .../26-libdpkg-perl_1.22.21ubuntu4_all.deb ... 277s Unpacking libdpkg-perl (1.22.21ubuntu4) over (1.22.21ubuntu3) ... 277s Preparing to unpack .../27-lto-disabled-list_71_all.deb ... 277s Unpacking lto-disabled-list (71) over (69) ... 277s Preparing to unpack .../28-libbrotli1_1.1.0-2build6_armhf.deb ... 277s Unpacking libbrotli1:armhf (1.1.0-2build6) over (1.1.0-2build5) ... 277s Preparing to unpack .../29-python3-inflect_7.5.0-1_all.deb ... 277s Unpacking python3-inflect (7.5.0-1) over (7.3.1-2) ... 277s Preparing to unpack .../30-python3-zipp_3.23.0-1_all.deb ... 277s Unpacking python3-zipp (3.23.0-1) over (3.21.0-1) ... 277s Setting up lto-disabled-list (71) ... 277s Setting up libapparmor1:armhf (5.0.0~alpha1-0ubuntu8.1) ... 277s Setting up libnewt0.52:armhf (0.52.25-1ubuntu2) ... 277s Setting up libnftables1:armhf (1.1.5-2) ... 277s Setting up nftables (1.1.5-2) ... 278s Setting up distro-info-data (0.68) ... 278s Setting up libsframe2:armhf (2.45-7ubuntu2) ... 278s Setting up libbrotli1:armhf (1.1.0-2build6) ... 278s Setting up binutils-common:armhf (2.45-7ubuntu2) ... 278s Setting up libctf-nobfd0:armhf (2.45-7ubuntu2) ... 278s Setting up python3-zipp (3.23.0-1) ... 278s Setting up apparmor (5.0.0~alpha1-0ubuntu8.1) ... 278s Installing new version of config file /etc/apparmor.d/fusermount3 ... 278s apparmor_parser: Unable to replace "lsb_release". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 278s 278s apparmor_parser: Unable to replace "kmod". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 278s 278s apparmor_parser: Unable to replace "nvidia_modprobe". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 278s 280s Reloading AppArmor profiles 280s /sbin/apparmor_parser: Unable to replace "1password". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "Discord". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "MongoDB Compass". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "QtWebEngineProcess". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "balena-etcher". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "brave". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "buildah". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "cam". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "ch-checkns". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "ch-run". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "bwrap". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "chrome". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "chromium". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "vscode". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "crun". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "devhelp". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "babeld". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "element-desktop". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "bgpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "bfdd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "epiphany". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "evolution". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "firefox". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "alsamixer". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "flatpak". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "foliate". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "geary". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "github-desktop". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "goldendict". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "dnstracer". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "eigrpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "fabricd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "dig". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "hostname". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "iotop-c". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "kchmviewer". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "fusermount3". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "keybase". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "lc-compliance". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "libcamerify". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "isisd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "linux-sandbox". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "Xorg". /sbin/apparmor_parser: Unable to replace "ipa_verify". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "gs". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "loupe". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "john". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "ldpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "lxc-attach". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "lxc-create". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "irssi". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "lxc-destroy". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "lxc-execute". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "lxc-unshare". /sbin/apparmor_parser: Unable to replace "lxc-stop". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "linux-boot-prober". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "lxc-usernsexec". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "mmdebstrap". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "lsblk". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "msedge". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "compressor". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "locale". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "notepadqq". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "lsusb". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "lsb_release". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "obsidian". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "opam". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "mosquitto". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "mbsync". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "opera". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "nhrpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "nslookup". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "notify-send". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "pageedit". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "nc.openbsd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "ospf6d". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "ospfd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "kmod". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "nvidia_modprobe". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "podman". /sbin/apparmor_parser: Unable to replace "pathd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "polypane". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "privacybrowser". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "pbrd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "os-prober". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "qcam". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "qmapshack". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "QtWebEngineProcess". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "plasmashell". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "qutebrowser". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "rootlesskit". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "pim6d". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "rpm". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "pimd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "rssguard". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "runc". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "sbuild". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "sbuild-abort". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "qpdf". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "sbuild-adduser". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "sbuild-apt". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "sbuild-checkpackages". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "ripngd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "ripd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "sbuild-clean". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "sbuild-createchroot". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "sbuild-destroychroot". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "sbuild-distupgrade". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "sbuild-shell". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "sbuild-hold". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "sbuild-unhold". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "scide". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "signal-desktop". /sbin/apparmor_parser: Unable to replace "sbuild-update". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "slack". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "sbuild-upgrade". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "slirp4netns". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "steam". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "stress-ng". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "surfshark". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "systemd-coredump". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "thunderbird". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "ip". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "openvpn". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "proftpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "trinity". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "ssh-keyscan". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "tup". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "systemd-detect-virt". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "tuxedo-control-center". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "staticd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "tinyproxy". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "unprivileged_userns". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "userbindmount". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "mx-extract". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "rygel". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "unix-chkpwd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "ubuntu_pro_apt_news". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "/usr/bin/man". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "uwsgi-core". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "vdens". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "virtiofsd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "vivaldi-bin". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "vpnns". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "/usr/sbin/chronyd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "vrrpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "rsyslogd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "wg". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "wike". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "wpcom". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "who". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "cmds". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "tnftp". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "dumpcap". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "tshark". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "ip". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "wg-quick". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "tcpdump". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "znc". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "apt_methods". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "ubuntu_pro_esm_cache". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s /sbin/apparmor_parser: Unable to replace "transmission-cli". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 280s 280s Error: At least one profile failed to load 280s Setting up python3-inflect (7.5.0-1) ... 280s Setting up python3-oauthlib (3.3.1-1) ... 281s Setting up libp11-kit0:armhf (0.25.9-2) ... 281s Setting up libatomic1:armhf (15.2.0-5ubuntu1) ... 281s Setting up libdpkg-perl (1.22.21ubuntu4) ... 281s Setting up whiptail (0.52.25-1ubuntu2) ... 281s Setting up python-apt-common (3.0.0ubuntu2) ... 281s Setting up libgirepository-1.0-1:armhf (1.86.0-6) ... 281s Setting up libbinutils:armhf (2.45-7ubuntu2) ... 281s Setting up libjson-c5:armhf (0.18+ds-1.1) ... 281s Setting up sudo-rs (0.2.8-1ubuntu5.1) ... 281s Setting up python3-cffi-backend:armhf (1.17.1-3build1) ... 281s Setting up libctf0:armhf (2.45-7ubuntu2) ... 281s Setting up python3-apt (3.0.0ubuntu2) ... 281s Setting up cloud-init-base (25.3-0ubuntu1) ... 283s Setting up gir1.2-girepository-2.0:armhf (1.86.0-6) ... 283s Setting up binutils-arm-linux-gnueabihf (2.45-7ubuntu2) ... 283s Setting up cloud-init (25.3-0ubuntu1) ... 283s Setting up binutils (2.45-7ubuntu2) ... 283s Setting up dpkg-dev (1.22.21ubuntu4) ... 283s Processing triggers for procps (2:4.0.4-8ubuntu3) ... 283s Processing triggers for install-info (7.1.1-1ubuntu1) ... 283s Processing triggers for libc-bin (2.42-0ubuntu3) ... 283s Processing triggers for rsyslog (8.2504.0-1ubuntu2) ... 283s Processing triggers for systemd (257.9-0ubuntu2) ... 284s Processing triggers for man-db (2.13.1-1) ... 285s Processing triggers for plymouth-theme-ubuntu-text (24.004.60+git20250831.4a3c171d-0ubuntu1) ... 289s Reading package lists... 289s Building dependency tree... 289s Reading state information... 289s Solving dependencies... 290s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 292s autopkgtest [21:02:09]: rebooting testbed after setup commands that affected boot 360s Reading package lists... 361s Building dependency tree... 361s Reading state information... 361s Solving dependencies... 361s The following NEW packages will be installed: 361s 7zip datalad git git-annex git-man libcurl3t64-gnutls liberror-perl patool 361s python3-annexremote python3-argcomplete python3-boto3 python3-botocore 361s python3-datalad python3-datalad-next python3-dateutil python3-fasteners 361s python3-gitlab python3-humanize python3-iso8601 python3-jaraco.classes 361s python3-jeepney python3-jmespath python3-keyring python3-keyrings.alt 361s python3-monotonic python3-msgpack python3-packaging python3-platformdirs 361s python3-pycryptodome python3-requests-toolbelt python3-s3transfer 361s python3-secretstorage python3-six python3-tqdm 362s 0 upgraded, 34 newly installed, 0 to remove and 0 not upgraded. 362s Need to get 42.6 MB of archives. 362s After this operation, 292 MB of additional disk space will be used. 362s Get:1 http://ftpmaster.internal/ubuntu resolute/universe armhf 7zip armhf 25.01+dfsg-2 [1469 kB] 362s Get:2 http://ftpmaster.internal/ubuntu resolute/main armhf libcurl3t64-gnutls armhf 8.14.1-2ubuntu1 [352 kB] 362s Get:3 http://ftpmaster.internal/ubuntu resolute/main armhf liberror-perl all 0.17030-1 [23.5 kB] 362s Get:4 http://ftpmaster.internal/ubuntu resolute/main armhf git-man all 1:2.51.0-1ubuntu1 [1179 kB] 362s Get:5 http://ftpmaster.internal/ubuntu resolute/main armhf git armhf 1:2.51.0-1ubuntu1 [4649 kB] 364s Get:6 http://ftpmaster.internal/ubuntu resolute/universe armhf git-annex armhf 10.20250721-1 [24.3 MB] 370s Get:7 http://ftpmaster.internal/ubuntu resolute/universe armhf patool all 4.0.0-1 [39.1 kB] 370s Get:8 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-annexremote all 1.6.6-1 [14.5 kB] 370s Get:9 http://ftpmaster.internal/ubuntu resolute/main armhf python3-dateutil all 2.9.0-4 [80.3 kB] 370s Get:10 http://ftpmaster.internal/ubuntu resolute/main armhf python3-jmespath all 1.0.1-1 [21.3 kB] 370s Get:11 http://ftpmaster.internal/ubuntu resolute/main armhf python3-six all 1.17.0-1 [13.2 kB] 370s Get:12 http://ftpmaster.internal/ubuntu resolute/main armhf python3-botocore all 1.37.9+repack-1 [6982 kB] 372s Get:13 http://ftpmaster.internal/ubuntu resolute/main armhf python3-s3transfer all 0.11.4-1 [55.8 kB] 372s Get:14 http://ftpmaster.internal/ubuntu resolute/main armhf python3-boto3 all 1.37.9-1 [73.0 kB] 372s Get:15 http://ftpmaster.internal/ubuntu resolute/main armhf python3-monotonic all 1.6-3 [5344 B] 372s Get:16 http://ftpmaster.internal/ubuntu resolute/main armhf python3-fasteners all 0.18-2 [12.5 kB] 372s Get:17 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-requests-toolbelt all 1.0.0-4 [37.0 kB] 372s Get:18 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-gitlab all 1:4.9.0-1 [75.0 kB] 372s Get:19 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-humanize all 4.12.1-1 [58.3 kB] 372s Get:20 http://ftpmaster.internal/ubuntu resolute/main armhf python3-iso8601 all 2.1.0-2 [9136 B] 372s Get:21 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-jeepney all 0.9.0-1 [33.5 kB] 372s Get:22 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-secretstorage all 3.3.3-3 [13.7 kB] 372s Get:23 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-jaraco.classes all 3.4.0-1 [7664 B] 372s Get:24 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-keyring all 25.6.0-3 [40.7 kB] 372s Get:25 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-pycryptodome armhf 3.20.0+dfsg-3build1 [1089 kB] 372s Get:26 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-keyrings.alt all 5.0.2-1 [16.6 kB] 372s Get:27 http://ftpmaster.internal/ubuntu resolute/main armhf python3-msgpack armhf 1.0.3-3build4 [80.6 kB] 372s Get:28 http://ftpmaster.internal/ubuntu resolute/main armhf python3-platformdirs all 4.3.7-1 [16.9 kB] 372s Get:29 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-tqdm all 4.67.1-5 [92.1 kB] 372s Get:30 http://ftpmaster.internal/ubuntu resolute/main armhf python3-packaging all 25.0-1 [52.8 kB] 372s Get:31 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-datalad all 1.1.5-2.1 [816 kB] 373s Get:32 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-argcomplete all 3.6.2-1 [35.8 kB] 373s Get:33 http://ftpmaster.internal/ubuntu resolute/universe armhf datalad all 1.1.5-2.1 [101 kB] 373s Get:34 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-datalad-next all 1.5.0-1 [762 kB] 373s Fetched 42.6 MB in 12s (3696 kB/s) 373s Selecting previously unselected package 7zip. 373s (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 ... 61096 files and directories currently installed.) 373s Preparing to unpack .../00-7zip_25.01+dfsg-2_armhf.deb ... 373s Unpacking 7zip (25.01+dfsg-2) ... 373s Selecting previously unselected package libcurl3t64-gnutls:armhf. 373s Preparing to unpack .../01-libcurl3t64-gnutls_8.14.1-2ubuntu1_armhf.deb ... 373s Unpacking libcurl3t64-gnutls:armhf (8.14.1-2ubuntu1) ... 373s Selecting previously unselected package liberror-perl. 374s Preparing to unpack .../02-liberror-perl_0.17030-1_all.deb ... 374s Unpacking liberror-perl (0.17030-1) ... 374s Selecting previously unselected package git-man. 374s Preparing to unpack .../03-git-man_1%3a2.51.0-1ubuntu1_all.deb ... 374s Unpacking git-man (1:2.51.0-1ubuntu1) ... 374s Selecting previously unselected package git. 374s Preparing to unpack .../04-git_1%3a2.51.0-1ubuntu1_armhf.deb ... 374s Unpacking git (1:2.51.0-1ubuntu1) ... 374s Selecting previously unselected package git-annex. 374s Preparing to unpack .../05-git-annex_10.20250721-1_armhf.deb ... 374s Unpacking git-annex (10.20250721-1) ... 375s Selecting previously unselected package patool. 375s Preparing to unpack .../06-patool_4.0.0-1_all.deb ... 375s Unpacking patool (4.0.0-1) ... 375s Selecting previously unselected package python3-annexremote. 375s Preparing to unpack .../07-python3-annexremote_1.6.6-1_all.deb ... 375s Unpacking python3-annexremote (1.6.6-1) ... 375s Selecting previously unselected package python3-dateutil. 375s Preparing to unpack .../08-python3-dateutil_2.9.0-4_all.deb ... 375s Unpacking python3-dateutil (2.9.0-4) ... 375s Selecting previously unselected package python3-jmespath. 375s Preparing to unpack .../09-python3-jmespath_1.0.1-1_all.deb ... 375s Unpacking python3-jmespath (1.0.1-1) ... 375s Selecting previously unselected package python3-six. 375s Preparing to unpack .../10-python3-six_1.17.0-1_all.deb ... 375s Unpacking python3-six (1.17.0-1) ... 375s Selecting previously unselected package python3-botocore. 375s Preparing to unpack .../11-python3-botocore_1.37.9+repack-1_all.deb ... 375s Unpacking python3-botocore (1.37.9+repack-1) ... 376s Selecting previously unselected package python3-s3transfer. 376s Preparing to unpack .../12-python3-s3transfer_0.11.4-1_all.deb ... 376s Unpacking python3-s3transfer (0.11.4-1) ... 376s Selecting previously unselected package python3-boto3. 376s Preparing to unpack .../13-python3-boto3_1.37.9-1_all.deb ... 376s Unpacking python3-boto3 (1.37.9-1) ... 376s Selecting previously unselected package python3-monotonic. 376s Preparing to unpack .../14-python3-monotonic_1.6-3_all.deb ... 376s Unpacking python3-monotonic (1.6-3) ... 376s Selecting previously unselected package python3-fasteners. 376s Preparing to unpack .../15-python3-fasteners_0.18-2_all.deb ... 376s Unpacking python3-fasteners (0.18-2) ... 376s Selecting previously unselected package python3-requests-toolbelt. 376s Preparing to unpack .../16-python3-requests-toolbelt_1.0.0-4_all.deb ... 376s Unpacking python3-requests-toolbelt (1.0.0-4) ... 376s Selecting previously unselected package python3-gitlab. 376s Preparing to unpack .../17-python3-gitlab_1%3a4.9.0-1_all.deb ... 376s Unpacking python3-gitlab (1:4.9.0-1) ... 376s Selecting previously unselected package python3-humanize. 376s Preparing to unpack .../18-python3-humanize_4.12.1-1_all.deb ... 376s Unpacking python3-humanize (4.12.1-1) ... 376s Selecting previously unselected package python3-iso8601. 376s Preparing to unpack .../19-python3-iso8601_2.1.0-2_all.deb ... 376s Unpacking python3-iso8601 (2.1.0-2) ... 376s Selecting previously unselected package python3-jeepney. 376s Preparing to unpack .../20-python3-jeepney_0.9.0-1_all.deb ... 376s Unpacking python3-jeepney (0.9.0-1) ... 376s Selecting previously unselected package python3-secretstorage. 376s Preparing to unpack .../21-python3-secretstorage_3.3.3-3_all.deb ... 376s Unpacking python3-secretstorage (3.3.3-3) ... 376s Selecting previously unselected package python3-jaraco.classes. 376s Preparing to unpack .../22-python3-jaraco.classes_3.4.0-1_all.deb ... 376s Unpacking python3-jaraco.classes (3.4.0-1) ... 376s Selecting previously unselected package python3-keyring. 376s Preparing to unpack .../23-python3-keyring_25.6.0-3_all.deb ... 376s Unpacking python3-keyring (25.6.0-3) ... 376s Selecting previously unselected package python3-pycryptodome. 376s Preparing to unpack .../24-python3-pycryptodome_3.20.0+dfsg-3build1_armhf.deb ... 376s Unpacking python3-pycryptodome (3.20.0+dfsg-3build1) ... 376s Selecting previously unselected package python3-keyrings.alt. 376s Preparing to unpack .../25-python3-keyrings.alt_5.0.2-1_all.deb ... 376s Unpacking python3-keyrings.alt (5.0.2-1) ... 376s Selecting previously unselected package python3-msgpack. 376s Preparing to unpack .../26-python3-msgpack_1.0.3-3build4_armhf.deb ... 376s Unpacking python3-msgpack (1.0.3-3build4) ... 376s Selecting previously unselected package python3-platformdirs. 377s Preparing to unpack .../27-python3-platformdirs_4.3.7-1_all.deb ... 377s Unpacking python3-platformdirs (4.3.7-1) ... 377s Selecting previously unselected package python3-tqdm. 377s Preparing to unpack .../28-python3-tqdm_4.67.1-5_all.deb ... 377s Unpacking python3-tqdm (4.67.1-5) ... 377s Selecting previously unselected package python3-packaging. 377s Preparing to unpack .../29-python3-packaging_25.0-1_all.deb ... 377s Unpacking python3-packaging (25.0-1) ... 377s Selecting previously unselected package python3-datalad. 377s Preparing to unpack .../30-python3-datalad_1.1.5-2.1_all.deb ... 377s Unpacking python3-datalad (1.1.5-2.1) ... 377s Selecting previously unselected package python3-argcomplete. 377s Preparing to unpack .../31-python3-argcomplete_3.6.2-1_all.deb ... 377s Unpacking python3-argcomplete (3.6.2-1) ... 377s Selecting previously unselected package datalad. 377s Preparing to unpack .../32-datalad_1.1.5-2.1_all.deb ... 377s Unpacking datalad (1.1.5-2.1) ... 377s Selecting previously unselected package python3-datalad-next. 377s Preparing to unpack .../33-python3-datalad-next_1.5.0-1_all.deb ... 377s Unpacking python3-datalad-next (1.5.0-1) ... 377s Setting up python3-jaraco.classes (3.4.0-1) ... 378s Setting up patool (4.0.0-1) ... 378s Setting up python3-requests-toolbelt (1.0.0-4) ... 378s Setting up python3-annexremote (1.6.6-1) ... 378s Setting up python3-pycryptodome (3.20.0+dfsg-3build1) ... 378s Setting up python3-tqdm (4.67.1-5) ... 378s Setting up libcurl3t64-gnutls:armhf (8.14.1-2ubuntu1) ... 378s Setting up 7zip (25.01+dfsg-2) ... 378s Setting up python3-platformdirs (4.3.7-1) ... 379s Setting up python3-monotonic (1.6-3) ... 379s Setting up liberror-perl (0.17030-1) ... 379s Setting up python3-six (1.17.0-1) ... 379s Setting up python3-packaging (25.0-1) ... 379s Setting up python3-iso8601 (2.1.0-2) ... 379s Setting up python3-jmespath (1.0.1-1) ... 379s Setting up python3-fasteners (0.18-2) ... 379s Setting up python3-jeepney (0.9.0-1) ... 380s Setting up git-man (1:2.51.0-1ubuntu1) ... 380s Setting up python3-dateutil (2.9.0-4) ... 380s Setting up python3-msgpack (1.0.3-3build4) ... 380s Setting up python3-argcomplete (3.6.2-1) ... 380s Setting up python3-humanize (4.12.1-1) ... 380s Setting up python3-gitlab (1:4.9.0-1) ... 381s Setting up python3-secretstorage (3.3.3-3) ... 381s Setting up python3-botocore (1.37.9+repack-1) ... 381s Setting up git (1:2.51.0-1ubuntu1) ... 381s Setting up git-annex (10.20250721-1) ... 381s Setting up python3-keyring (25.6.0-3) ... 381s Setting up python3-s3transfer (0.11.4-1) ... 381s Setting up python3-boto3 (1.37.9-1) ... 382s Setting up python3-keyrings.alt (5.0.2-1) ... 382s Setting up python3-datalad (1.1.5-2.1) ... 383s Setting up datalad (1.1.5-2.1) ... 383s Setting up python3-datalad-next (1.5.0-1) ... 383s Processing triggers for libc-bin (2.42-0ubuntu3) ... 383s Processing triggers for man-db (2.13.1-1) ... 400s autopkgtest [21:03:57]: test extension-registered: set -e ; export GIT_AUTHOR_NAME=debian; export GIT_AUTHOR_EMAIL=debian@datalad.org; test "$(datalad -f '{infos[extensions][next][module]}' wtf -S extensions)" = "datalad_next" 400s autopkgtest [21:03:57]: test extension-registered: [----------------------- 403s autopkgtest [21:04:00]: test extension-registered: -----------------------] 406s extension-registered PASS (superficial) 406s autopkgtest [21:04:03]: test extension-registered: - - - - - - - - - - results - - - - - - - - - - 410s autopkgtest [21:04:07]: test nonetwork-testsuite: preparing testbed 412s Reading package lists... 412s Building dependency tree... 412s Reading state information... 412s Solving dependencies... 413s The following NEW packages will be installed: 413s libxslt1.1 python3-all python3-iniconfig python3-lxml python3-pluggy 413s python3-psutil python3-pytest python3-webdavclient unzip 413s 0 upgraded, 9 newly installed, 0 to remove and 0 not upgraded. 413s Need to get 2247 kB of archives. 413s After this operation, 8173 kB of additional disk space will be used. 413s Get:1 http://ftpmaster.internal/ubuntu resolute/main armhf libxslt1.1 armhf 1.1.43-0.1 [146 kB] 413s Get:2 http://ftpmaster.internal/ubuntu resolute/main armhf python3-all armhf 3.13.7-1 [884 B] 413s Get:3 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-iniconfig all 1.1.1-2 [6024 B] 413s Get:4 http://ftpmaster.internal/ubuntu resolute/main armhf python3-lxml armhf 6.0.1-1 [1430 kB] 414s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/universe armhf python3-pluggy all 1.6.0-1 [21.0 kB] 414s Get:6 http://ftpmaster.internal/ubuntu resolute/main armhf python3-psutil armhf 7.0.0-2ubuntu1 [187 kB] 414s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/universe armhf python3-pytest all 8.4.2-1 [268 kB] 414s Get:8 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-webdavclient all 3.14.6-3 [20.1 kB] 414s Get:9 http://ftpmaster.internal/ubuntu resolute/main armhf unzip armhf 6.0-28ubuntu7 [168 kB] 414s Fetched 2247 kB in 1s (2040 kB/s) 414s Selecting previously unselected package libxslt1.1:armhf. 415s (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 ... 68542 files and directories currently installed.) 415s Preparing to unpack .../0-libxslt1.1_1.1.43-0.1_armhf.deb ... 415s Unpacking libxslt1.1:armhf (1.1.43-0.1) ... 415s Selecting previously unselected package python3-all. 415s Preparing to unpack .../1-python3-all_3.13.7-1_armhf.deb ... 415s Unpacking python3-all (3.13.7-1) ... 415s Selecting previously unselected package python3-iniconfig. 415s Preparing to unpack .../2-python3-iniconfig_1.1.1-2_all.deb ... 415s Unpacking python3-iniconfig (1.1.1-2) ... 415s Selecting previously unselected package python3-lxml:armhf. 415s Preparing to unpack .../3-python3-lxml_6.0.1-1_armhf.deb ... 415s Unpacking python3-lxml:armhf (6.0.1-1) ... 415s Selecting previously unselected package python3-pluggy. 415s Preparing to unpack .../4-python3-pluggy_1.6.0-1_all.deb ... 415s Unpacking python3-pluggy (1.6.0-1) ... 415s Selecting previously unselected package python3-psutil. 415s Preparing to unpack .../5-python3-psutil_7.0.0-2ubuntu1_armhf.deb ... 415s Unpacking python3-psutil (7.0.0-2ubuntu1) ... 415s Selecting previously unselected package python3-pytest. 415s Preparing to unpack .../6-python3-pytest_8.4.2-1_all.deb ... 415s Unpacking python3-pytest (8.4.2-1) ... 415s Selecting previously unselected package python3-webdavclient. 415s Preparing to unpack .../7-python3-webdavclient_3.14.6-3_all.deb ... 415s Unpacking python3-webdavclient (3.14.6-3) ... 415s Selecting previously unselected package unzip. 415s Preparing to unpack .../8-unzip_6.0-28ubuntu7_armhf.deb ... 415s Unpacking unzip (6.0-28ubuntu7) ... 415s Setting up python3-iniconfig (1.1.1-2) ... 415s Setting up unzip (6.0-28ubuntu7) ... 415s Setting up python3-all (3.13.7-1) ... 415s Setting up python3-psutil (7.0.0-2ubuntu1) ... 415s Setting up python3-pluggy (1.6.0-1) ... 416s Setting up libxslt1.1:armhf (1.1.43-0.1) ... 416s Setting up python3-pytest (8.4.2-1) ... 416s Setting up python3-lxml:armhf (6.0.1-1) ... 416s Setting up python3-webdavclient (3.14.6-3) ... 416s Processing triggers for man-db (2.13.1-1) ... 417s Processing triggers for libc-bin (2.42-0ubuntu3) ... 424s autopkgtest [21:04:21]: test nonetwork-testsuite: set -e ; export GIT_AUTHOR_NAME=debian; export GIT_AUTHOR_EMAIL=debian@datalad.org; export DATALAD_TESTS_NONETWORK=1; SRCDIR=$(pwd); for py in $(py3versions -r 2>/dev/null) ; do cd "$AUTOPKGTEST_TMP" ; echo "Testing with $py:" ; $py -m pytest -s -v "${SRCDIR}/datalad_next" ; done 424s autopkgtest [21:04:21]: test nonetwork-testsuite: [----------------------- 426s Testing with python3.13: 428s ============================= test session starts ============================== 428s platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 -- /usr/bin/python3.13 428s cachedir: .pytest_cache 428s rootdir: /tmp/autopkgtest.vjeRUT/build.4Ft/src 428s configfile: pyproject.toml 428s plugins: typeguard-4.4.2 429s collecting ... collected 468 items 429s 429s ../build.4Ft/src/datalad_next/annexbackends/tests/test_base.py::test_protocol [INFO] Test fixture starts suppressing INFO level messages 429s PASSED 429s ../build.4Ft/src/datalad_next/annexbackends/tests/test_base.py::test_master DEBUG Traceback (most recent call last): 429s DEBUG File "/tmp/autopkgtest.vjeRUT/build.4Ft/src/datalad_next/annexbackends/base.py", line 307, in Listen 429s DEBUG reply = self.protocol.command(line) 429s DEBUG File "/tmp/autopkgtest.vjeRUT/build.4Ft/src/datalad_next/annexbackends/base.py", line 195, in command 429s DEBUG reply = method() 429s DEBUG File "/tmp/autopkgtest.vjeRUT/build.4Ft/src/datalad_next/annexbackends/base.py", line 210, in do_CANVERIFY 429s DEBUG return 'CANVERIFY-YES' if self.backend.can_verify() else 'CANVERIFY-NO' 429s DEBUG ~~~~~~~~~~~~~~~~~~~~~~~^^ 429s DEBUG File "/tmp/autopkgtest.vjeRUT/build.4Ft/src/datalad_next/annexbackends/tests/test_base.py", line 31, in can_verify 429s DEBUG raise RuntimeError('intentional blow') 429s DEBUG RuntimeError: intentional blow 429s ERROR intentional blow 429s PASSED 433s ../build.4Ft/src/datalad_next/annexremotes/tests/test_archivist.py::test_archivist_retrieval ERROR 436s ../build.4Ft/src/datalad_next/annexremotes/tests/test_archivist.py::test_archivist_retrieval_legacy ERROR 436s ../build.4Ft/src/datalad_next/annexremotes/tests/test_archivist.py::test_claimcheck_url PASSED 436s ../build.4Ft/src/datalad_next/annexremotes/tests/test_archivist.py::test_archivist_unsupported PASSED 437s ../build.4Ft/src/datalad_next/annexremotes/tests/test_uncurl.py::test_uncurl_remove_no_tmpl PASSED 437s ../build.4Ft/src/datalad_next/annexremotes/tests/test_uncurl.py::test_uncurl_transfer_store_no_tmpl PASSED 438s ../build.4Ft/src/datalad_next/annexremotes/tests/test_uncurl.py::test_uncurl_checkretrieve PASSED 438s ../build.4Ft/src/datalad_next/annexremotes/tests/test_uncurl.py::test_uncurl_claimurl PASSED 438s ../build.4Ft/src/datalad_next/annexremotes/tests/test_uncurl.py::test_uncurl_checkurl [WARNING] Failed to spin up httpbin Docker container: 438s Traceback (most recent call last): 438s File "/tmp/autopkgtest.vjeRUT/build.4Ft/src/datalad_next/tests/fixtures.py", line 531, in httpbin_service 438s r = subprocess.run( 438s ["docker", "run", "-d", "-p", "127.0.0.1:8765:80", "kennethreitz/httpbin"], 438s ...<2 lines>... 438s text=True, 438s ) 438s File "/usr/lib/python3.13/subprocess.py", line 554, in run 438s with Popen(*popenargs, **kwargs) as process: 438s ~~~~~^^^^^^^^^^^^^^^^^^^^^^ 438s File "/usr/lib/python3.13/subprocess.py", line 1039, in __init__ 438s self._execute_child(args, executable, preexec_fn, close_fds, 438s ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 438s pass_fds, cwd, env, 438s ^^^^^^^^^^^^^^^^^^^ 438s ...<5 lines>... 438s gid, gids, uid, umask, 438s ^^^^^^^^^^^^^^^^^^^^^^ 438s start_new_session, process_group) 438s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 438s File "/usr/lib/python3.13/subprocess.py", line 1972, in _execute_child 438s raise child_exception_type(errno_num, err_msg, err_filename) 438s FileNotFoundError: [Errno 2] No such file or directory: 'docker' 438s SKIPPED 438s ../build.4Ft/src/datalad_next/annexremotes/tests/test_uncurl.py::test_uncurl_addurl_unredirected SKIPPED 441s ../build.4Ft/src/datalad_next/annexremotes/tests/test_uncurl.py::test_uncurl FAILED 446s ../build.4Ft/src/datalad_next/annexremotes/tests/test_uncurl.py::test_uncurl_ria_access FAILED 452s ../build.4Ft/src/datalad_next/annexremotes/tests/test_uncurl.py::test_uncurl_store FAILED 452s ../build.4Ft/src/datalad_next/annexremotes/tests/test_uncurl.py::test_uncurl_store_via_ssh SKIPPED 454s ../build.4Ft/src/datalad_next/annexremotes/tests/test_uncurl.py::test_uncurl_remove FAILED 559s ../build.4Ft/src/datalad_next/annexremotes/tests/test_uncurl.py::test_uncurl_testremote FAILED 559s ../build.4Ft/src/datalad_next/archive_operations/tests/test_tarfile.py::test_tararchive_basics SKIPPED 559s ../build.4Ft/src/datalad_next/archive_operations/tests/test_tarfile.py::test_tararchive_contain SKIPPED 559s ../build.4Ft/src/datalad_next/archive_operations/tests/test_tarfile.py::test_tararchive_iterator SKIPPED 559s ../build.4Ft/src/datalad_next/archive_operations/tests/test_tarfile.py::test_open SKIPPED 559s ../build.4Ft/src/datalad_next/archive_operations/tests/test_zipfile.py::test_ziparchive_basics PASSED 559s ../build.4Ft/src/datalad_next/archive_operations/tests/test_zipfile.py::test_ziparchive_contain PASSED 559s ../build.4Ft/src/datalad_next/archive_operations/tests/test_zipfile.py::test_ziparchive_iterator PASSED 559s ../build.4Ft/src/datalad_next/archive_operations/tests/test_zipfile.py::test_open PASSED 559s ../build.4Ft/src/datalad_next/archive_operations/tests/test_zipfile.py::test_open_zipinfo PASSED 559s ../build.4Ft/src/datalad_next/archive_operations/tests/test_zipfile.py::test_ziparchive_noncontext PASSED 559s ../build.4Ft/src/datalad_next/commands/tests/test_create_sibling_webdav.py::test_common_workflow_implicit_cred SKIPPED 560s ../build.4Ft/src/datalad_next/commands/tests/test_create_sibling_webdav.py::test_common_workflow_explicit_cred SKIPPED 560s ../build.4Ft/src/datalad_next/commands/tests/test_create_sibling_webdav.py::test_common_workflow_export SKIPPED 561s ../build.4Ft/src/datalad_next/commands/tests/test_create_sibling_webdav.py::test_bad_url_catching PASSED 561s ../build.4Ft/src/datalad_next/commands/tests/test_create_sibling_webdav.py::test_http_warning PASSED 561s ../build.4Ft/src/datalad_next/commands/tests/test_create_sibling_webdav.py::test_constraints_checking PASSED 562s ../build.4Ft/src/datalad_next/commands/tests/test_create_sibling_webdav.py::test_name_clash_detection [WARNING] Using 'http:' ('http://localhost:22334/abc') means that WebDAV credentials are sent unencrypted over network links. Consider using 'https:'. 562s [WARNING] Using 'http:' ('http://localhost:22334/abc') means that WebDAV credentials are sent unencrypted over network links. Consider using 'https:'. 562s [WARNING] Using 'http:' ('http://localhost:22334/abc') means that WebDAV credentials are sent unencrypted over network links. Consider using 'https:'. 562s [WARNING] Sibling name will be used for storage sibling in storage-sibling-only mode, but a storage sibling name was provided 562s PASSED 562s ../build.4Ft/src/datalad_next/commands/tests/test_create_sibling_webdav.py::test_unused_storage_name_warning [WARNING] Using 'http:' ('http://localhost:22334/abc') means that WebDAV credentials are sent unencrypted over network links. Consider using 'https:'. 562s [WARNING] Sibling name will be used for storage sibling in storage-sibling-only mode, but a storage sibling name was provided 562s PASSED 563s ../build.4Ft/src/datalad_next/commands/tests/test_create_sibling_webdav.py::test_existing_switch SKIPPED 563s ../build.4Ft/src/datalad_next/commands/tests/test_create_sibling_webdav.py::test_result_renderer SKIPPED 563s ../build.4Ft/src/datalad_next/commands/tests/test_credentials.py::test_normalize_specs PASSED 563s ../build.4Ft/src/datalad_next/commands/tests/test_credentials.py::test_errorhandling_smoketest PASSED 564s ../build.4Ft/src/datalad_next/commands/tests/test_credentials.py::test_credentials_cli None(secret ✗): [could not set credential properties] [no credential name provided for setting] 564s PASSED 564s ../build.4Ft/src/datalad_next/commands/tests/test_credentials.py::test_interactive_entry_get PASSED 564s ../build.4Ft/src/datalad_next/commands/tests/test_credentials.py::test_interactive_entry_set PASSED 564s ../build.4Ft/src/datalad_next/commands/tests/test_credentials.py::test_result_renderer weird(broken): 564s PASSED 564s ../build.4Ft/src/datalad_next/commands/tests/test_credentials.py::test_extreme_credential_name PASSED 564s ../build.4Ft/src/datalad_next/commands/tests/test_download.py::test_download PASSED 564s ../build.4Ft/src/datalad_next/commands/tests/test_download.py::test_download_invalid_calls PASSED 564s ../build.4Ft/src/datalad_next/commands/tests/test_download.py::test_download_auth PASSED 564s ../build.4Ft/src/datalad_next/commands/tests/test_download.py::test_download_basic_auth SKIPPED 564s ../build.4Ft/src/datalad_next/commands/tests/test_download.py::test_download_bearer_token_auth SKIPPED 564s ../build.4Ft/src/datalad_next/commands/tests/test_download.py::test_download_digest_auth SKIPPED 564s ../build.4Ft/src/datalad_next/commands/tests/test_download.py::test_download_explicit_credential SKIPPED 564s ../build.4Ft/src/datalad_next/commands/tests/test_download.py::test_download_auth_after_redirect SKIPPED 564s ../build.4Ft/src/datalad_next/commands/tests/test_download.py::test_download_no_credential_leak_to_http SKIPPED 564s ../build.4Ft/src/datalad_next/commands/tests/test_download.py::test_download_new_bearer_token SKIPPED 564s ../build.4Ft/src/datalad_next/commands/tests/test_download.py::test_download_new_bearer_token_nosave SKIPPED 564s ../build.4Ft/src/datalad_next/commands/tests/test_download.py::test_download_404 SKIPPED 564s ../build.4Ft/src/datalad_next/commands/tests/test_download.py::test_downloadurl PASSED 564s ../build.4Ft/src/datalad_next/commands/tests/test_ls_file_collection.py::test_ls_file_collection_insufficient_args PASSED 564s ../build.4Ft/src/datalad_next/commands/tests/test_ls_file_collection.py::test_ls_file_collection_zipfile PASSED 564s ../build.4Ft/src/datalad_next/commands/tests/test_ls_file_collection.py::test_ls_file_collection_tarfile SKIPPED 564s ../build.4Ft/src/datalad_next/commands/tests/test_ls_file_collection.py::test_ls_file_collection_directory PASSED 564s ../build.4Ft/src/datalad_next/commands/tests/test_ls_file_collection.py::test_ls_file_collection_gitworktree PASSED 564s ../build.4Ft/src/datalad_next/commands/tests/test_ls_file_collection.py::test_ls_file_collection_validator PASSED 564s ../build.4Ft/src/datalad_next/commands/tests/test_ls_file_collection.py::test_replace_add_archive_content SKIPPED 564s ../build.4Ft/src/datalad_next/commands/tests/test_ls_file_collection.py::test_ls_renderer -rw-rw-r-- 1.8K 1000:0 Jun 16 2024 /tmp/autopkgtest.vjeRUT/build.4Ft/src/datalad_next/commands/tests/test_status.py (file) 564s -rw-rw-r-- 31.0K 1000:0 6 min ago /tmp/autopkgtest.vjeRUT/build.4Ft/src/datalad_next/commands/tests/test_tree.py (file) 564s -rw-rw-r-- 14.6K 1000:0 Jun 16 2024 /tmp/autopkgtest.vjeRUT/build.4Ft/src/datalad_next/commands/tests/test_create_sibling_webdav.py (file) 564s -rw-rw-r-- 8.1K 1000:0 Jun 16 2024 /tmp/autopkgtest.vjeRUT/build.4Ft/src/datalad_next/commands/tests/test_ls_file_collection.py (file) 564s -rw-rw-r-- 8.9K 1000:0 Jun 16 2024 /tmp/autopkgtest.vjeRUT/build.4Ft/src/datalad_next/commands/tests/test_download.py (file) 564s -rw-rw-r-- 6.0K 1000:0 Jun 16 2024 /tmp/autopkgtest.vjeRUT/build.4Ft/src/datalad_next/commands/tests/test_credentials.py (file) 564s -rw-rw-r-- 1.7K 1000:0 Jun 16 2024 /tmp/autopkgtest.vjeRUT/build.4Ft/src/datalad_next/commands/tests/test_results.py (file) 564s -rw-rw-r-- 0B 1000:0 Jun 16 2024 /tmp/autopkgtest.vjeRUT/build.4Ft/src/datalad_next/commands/tests/__init__.py (file) 564s drwxrwxr-x - 1000:1000 2 min ago /tmp/autopkgtest.vjeRUT/build.4Ft/src/datalad_next/commands/tests/__pycache__ (directory) 564s PASSED 565s ../build.4Ft/src/datalad_next/commands/tests/test_ls_file_collection.py::test_ls_annexworktree_empty_dataset PASSED 566s ../build.4Ft/src/datalad_next/commands/tests/test_ls_file_collection.py::test_ls_annexworktree_simple_dataset add(ok): sample.bin (file) 566s save(ok): . (dataset) 566s action summary: 566s add (ok: 1) 566s save (ok: 1) 566s PASSED 566s ../build.4Ft/src/datalad_next/commands/tests/test_results.py::test_commandresult PASSED 566s ../build.4Ft/src/datalad_next/commands/tests/test_status.py::test_status_invalid PASSED 566s ../build.4Ft/src/datalad_next/commands/tests/test_status.py::test_status_renderer_smoke nothing to save, working tree clean 566s untracked: untracked 566s PASSED 568s ../build.4Ft/src/datalad_next/commands/tests/test_status.py::test_status_clean PASSED 573s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithoutDatasets::test_print_tree[1-False-False-expected] expected: 573s ├── dir0/ 573s ├── dir1/ 573s └── dir2/ 573s 573s actual: 573s ├── dir0/ 573s ├── dir1/ 573s └── dir2/ 573s 573s PASSED 573s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithoutDatasets::test_print_tree[3-False-False-expected] expected: 573s ├── dir0/ 573s ├── dir1/ 573s └── dir2/ 573s ├── dir2_dir0/ 573s ├── dir2_dir1/ 573s └── dir2_dir2/ 573s 573s actual: 573s ├── dir0/ 573s ├── dir1/ 573s └── dir2/ 573s ├── dir2_dir0/ 573s ├── dir2_dir1/ 573s └── dir2_dir2/ 573s 573s PASSED 573s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithoutDatasets::test_print_tree[1-True-False-expected] expected: 573s ├── dir0/ 573s ├── dir1/ 573s ├── dir2/ 573s ├── file0 573s └── file1 573s 573s actual: 573s ├── dir0/ 573s ├── dir1/ 573s ├── dir2/ 573s ├── file0 573s └── file1 573s 573s PASSED 573s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithoutDatasets::test_print_tree[3-True-False-expected] expected: 573s ├── dir0/ 573s ├── dir1/ 573s │ └── dir1_file0 573s ├── dir2/ 573s │ ├── dir2_dir0/ 573s │ ├── dir2_dir1/ 573s │ │ └── dir2_dir1_file0 573s │ ├── dir2_dir2/ 573s │ │ ├── dir2_dir2_file0 573s │ │ └── dir2_dir2_file1 573s │ ├── dir2_file0 573s │ └── dir2_file1 573s ├── file0 573s └── file1 573s 573s actual: 573s ├── dir0/ 573s ├── dir1/ 573s │ └── dir1_file0 573s ├── dir2/ 573s │ ├── dir2_dir0/ 573s │ ├── dir2_dir1/ 573s │ │ └── dir2_dir1_file0 573s │ ├── dir2_dir2/ 573s │ │ ├── dir2_dir2_file0 573s │ │ └── dir2_dir2_file1 573s │ ├── dir2_file0 573s │ └── dir2_file1 573s ├── file0 573s └── file1 573s 573s PASSED 573s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithoutDatasets::test_print_tree[1-True-True-expected] expected: 573s ├── .dir3/ 573s ├── .file2 573s ├── dir0/ 573s ├── dir1/ 573s ├── dir2/ 573s ├── file0 573s └── file1 573s 573s actual: 573s ├── .dir3/ 573s ├── .file2 573s ├── dir0/ 573s ├── dir1/ 573s ├── dir2/ 573s ├── file0 573s └── file1 573s 573s PASSED 573s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithoutDatasets::test_print_tree[3-True-True-expected] expected: 573s ├── .dir3/ 573s │ ├── .dir3_file1 573s │ └── dir3_file0 573s ├── .file2 573s ├── dir0/ 573s ├── dir1/ 573s │ └── dir1_file0 573s ├── dir2/ 573s │ ├── dir2_dir0/ 573s │ ├── dir2_dir1/ 573s │ │ └── dir2_dir1_file0 573s │ ├── dir2_dir2/ 573s │ │ ├── dir2_dir2_file0 573s │ │ └── dir2_dir2_file1 573s │ ├── dir2_file0 573s │ └── dir2_file1 573s ├── file0 573s └── file1 573s 573s actual: 573s ├── .dir3/ 573s │ ├── .dir3_file1 573s │ └── dir3_file0 573s ├── .file2 573s ├── dir0/ 573s ├── dir1/ 573s │ └── dir1_file0 573s ├── dir2/ 573s │ ├── dir2_dir0/ 573s │ ├── dir2_dir1/ 573s │ │ └── dir2_dir1_file0 573s │ ├── dir2_dir2/ 573s │ │ ├── dir2_dir2_file0 573s │ │ └── dir2_dir2_file1 573s │ ├── dir2_file0 573s │ └── dir2_file1 573s ├── file0 573s └── file1 573s 573s PASSED 573s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithoutDatasets::test_print_tree[1-False-True-expected] expected: 573s ├── .dir3/ 573s ├── dir0/ 573s ├── dir1/ 573s └── dir2/ 573s 573s actual: 573s ├── .dir3/ 573s ├── dir0/ 573s ├── dir1/ 573s └── dir2/ 573s 573s PASSED 573s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithoutDatasets::test_print_tree[3-False-True-expected] expected: 573s ├── .dir3/ 573s ├── dir0/ 573s ├── dir1/ 573s └── dir2/ 573s ├── dir2_dir0/ 573s ├── dir2_dir1/ 573s └── dir2_dir2/ 573s 573s actual: 573s ├── .dir3/ 573s ├── dir0/ 573s ├── dir1/ 573s └── dir2/ 573s ├── dir2_dir0/ 573s ├── dir2_dir1/ 573s └── dir2_dir2/ 573s 573s PASSED 573s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithoutDatasets::test_print_stats[1-False-False-0 datasets, 3 directories] PASSED 573s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithoutDatasets::test_print_stats[3-False-False-0 datasets, 6 directories] PASSED 573s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithoutDatasets::test_print_stats[1-True-False-0 datasets, 3 directories, 2 files] PASSED 573s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithoutDatasets::test_print_stats[3-True-False-0 datasets, 6 directories, 8 files] PASSED 573s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithoutDatasets::test_print_stats[1-True-True-0 datasets, 4 directories, 3 files] PASSED 573s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithoutDatasets::test_print_stats[3-True-True-0 datasets, 7 directories, 11 files] PASSED 573s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithoutDatasets::test_print_stats[1-False-True-0 datasets, 4 directories] PASSED 573s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithoutDatasets::test_print_stats[3-False-True-0 datasets, 7 directories] PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithoutDatasets::test_root_path_is_normalized[root/] PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithoutDatasets::test_root_path_is_normalized[root/.] PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithoutDatasets::test_root_path_is_normalized[root/./] PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithoutDatasets::test_root_path_is_normalized[root/../root] PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithoutDatasets::test_no_difference_if_root_path_absolute_or_relative PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithoutDatasets::test_print_tree_depth_zero PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithoutDatasets::test_exhausted_levels_are_below_current_depth[1-False-False] PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithoutDatasets::test_exhausted_levels_are_below_current_depth[3-False-False] PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithoutDatasets::test_exhausted_levels_are_below_current_depth[1-True-False] PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithoutDatasets::test_exhausted_levels_are_below_current_depth[3-True-False] PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithoutDatasets::test_exhausted_levels_are_below_current_depth[1-True-True] PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithoutDatasets::test_exhausted_levels_are_below_current_depth[3-True-True] PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithoutDatasets::test_exhausted_levels_are_below_current_depth[1-False-True] PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithoutDatasets::test_exhausted_levels_are_below_current_depth[3-False-True] PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithDatasets::test_print_tree[1-False-False-expected] expected: 574s ├── repo0/ 574s ├── [DS~0] superds0/ 574s └── [DS~0] superds1/ 574s 574s actual: 574s ├── repo0/ 574s ├── [DS~0] superds0/ 574s └── [DS~0] superds1/ 574s 574s PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithDatasets::test_print_tree[4-False-False-expected] expected: 574s ├── repo0/ 574s ├── [DS~0] superds0/ 574s │ └── [DS~1] sd0_subds0/ 574s │ └── [DS~2] sd0_sub0_subds0/ 574s └── [DS~0] superds1/ 574s ├── sd1_dir0/ 574s │ ├── sd1_d0_repo0/ 574s │ └── [DS~1] sd1_d0_subds0/ 574s ├── [DS~0] sd1_ds0/ 574s └── [DS~1] (not installed) sd1_subds0/ 574s 574s actual: 574s ├── repo0/ 574s ├── [DS~0] superds0/ 574s │ └── [DS~1] sd0_subds0/ 574s │ └── [DS~2] sd0_sub0_subds0/ 574s └── [DS~0] superds1/ 574s ├── sd1_dir0/ 574s │ ├── sd1_d0_repo0/ 574s │ └── [DS~1] sd1_d0_subds0/ 574s ├── [DS~0] sd1_ds0/ 574s └── [DS~1] (not installed) sd1_subds0/ 574s 574s PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithDatasets::test_print_stats[1-False-False-2 datasets, 1 directory] PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithDatasets::test_print_stats[4-False-False-7 datasets, 3 directories] PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithDatasets::test_root_path_is_normalized[root/] PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithDatasets::test_root_path_is_normalized[root/.] PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithDatasets::test_root_path_is_normalized[root/./] PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithDatasets::test_root_path_is_normalized[root/../root] PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithDatasets::test_no_difference_if_root_path_absolute_or_relative PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithDatasets::test_print_tree_depth_zero PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithDatasets::test_exhausted_levels_are_below_current_depth[1-False-False] PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeWithDatasets::test_exhausted_levels_are_below_current_depth[4-False-False] PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestDatasetTree::test_print_tree[0-0-expected] expected: 574s ├── [DS~0] superds0/ 574s └── [DS~0] superds1/ 574s └── [DS~0] sd1_ds0/ 574s 574s actual: 574s ├── [DS~0] superds0/ 574s └── [DS~0] superds1/ 574s └── [DS~0] sd1_ds0/ 574s 574s PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestDatasetTree::test_print_tree[0-1-expected] expected: 574s ├── [DS~0] superds0/ 574s └── [DS~0] superds1/ 574s ├── sd1_dir0/ 574s └── [DS~0] sd1_ds0/ 574s 574s actual: 574s ├── [DS~0] superds0/ 574s └── [DS~0] superds1/ 574s ├── sd1_dir0/ 574s └── [DS~0] sd1_ds0/ 574s 574s PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestDatasetTree::test_print_tree[0-2-expected] expected: 574s ├── [DS~0] superds0/ 574s └── [DS~0] superds1/ 574s ├── sd1_dir0/ 574s │ └── sd1_d0_repo0/ 574s └── [DS~0] sd1_ds0/ 574s 574s actual: 574s ├── [DS~0] superds0/ 574s └── [DS~0] superds1/ 574s ├── sd1_dir0/ 574s │ └── sd1_d0_repo0/ 574s └── [DS~0] sd1_ds0/ 574s 574s PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestDatasetTree::test_print_tree[1-0-expected] expected: 574s ├── [DS~0] superds0/ 574s │ └── [DS~1] sd0_subds0/ 574s └── [DS~0] superds1/ 574s ├── sd1_dir0/ 574s │ └── [DS~1] sd1_d0_subds0/ 574s ├── [DS~0] sd1_ds0/ 574s └── [DS~1] (not installed) sd1_subds0/ 574s 574s actual: 574s ├── [DS~0] superds0/ 574s │ └── [DS~1] sd0_subds0/ 574s └── [DS~0] superds1/ 574s ├── sd1_dir0/ 574s │ └── [DS~1] sd1_d0_subds0/ 574s ├── [DS~0] sd1_ds0/ 574s └── [DS~1] (not installed) sd1_subds0/ 574s 574s PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestDatasetTree::test_print_tree[1-2-expected] expected: 574s ├── [DS~0] superds0/ 574s │ └── [DS~1] sd0_subds0/ 574s └── [DS~0] superds1/ 574s ├── sd1_dir0/ 574s │ ├── sd1_d0_repo0/ 574s │ └── [DS~1] sd1_d0_subds0/ 574s ├── [DS~0] sd1_ds0/ 574s └── [DS~1] (not installed) sd1_subds0/ 574s 574s actual: 574s ├── [DS~0] superds0/ 574s │ └── [DS~1] sd0_subds0/ 574s └── [DS~0] superds1/ 574s ├── sd1_dir0/ 574s │ ├── sd1_d0_repo0/ 574s │ └── [DS~1] sd1_d0_subds0/ 574s ├── [DS~0] sd1_ds0/ 574s └── [DS~1] (not installed) sd1_subds0/ 574s 574s PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestDatasetTree::test_print_tree[None-0-expected] expected: 574s ├── [DS~0] superds0/ 574s │ └── [DS~1] sd0_subds0/ 574s │ └── [DS~2] sd0_sub0_subds0/ 574s └── [DS~0] superds1/ 574s ├── sd1_dir0/ 574s │ └── [DS~1] sd1_d0_subds0/ 574s ├── [DS~0] sd1_ds0/ 574s └── [DS~1] (not installed) sd1_subds0/ 574s 574s actual: 574s ├── [DS~0] superds0/ 574s │ └── [DS~1] sd0_subds0/ 574s │ └── [DS~2] sd0_sub0_subds0/ 574s └── [DS~0] superds1/ 574s ├── sd1_dir0/ 574s │ └── [DS~1] sd1_d0_subds0/ 574s ├── [DS~0] sd1_ds0/ 574s └── [DS~1] (not installed) sd1_subds0/ 574s 574s PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestDatasetTree::test_print_tree[None-2-expected] expected: 574s ├── [DS~0] superds0/ 574s │ └── [DS~1] sd0_subds0/ 574s │ └── [DS~2] sd0_sub0_subds0/ 574s └── [DS~0] superds1/ 574s ├── sd1_dir0/ 574s │ ├── sd1_d0_repo0/ 574s │ └── [DS~1] sd1_d0_subds0/ 574s ├── [DS~0] sd1_ds0/ 574s └── [DS~1] (not installed) sd1_subds0/ 574s 574s actual: 574s ├── [DS~0] superds0/ 574s │ └── [DS~1] sd0_subds0/ 574s │ └── [DS~2] sd0_sub0_subds0/ 574s └── [DS~0] superds1/ 574s ├── sd1_dir0/ 574s │ ├── sd1_d0_repo0/ 574s │ └── [DS~1] sd1_d0_subds0/ 574s ├── [DS~0] sd1_ds0/ 574s └── [DS~1] (not installed) sd1_subds0/ 574s 574s PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestDatasetTree::test_print_tree_without_datasets expected: 574s 574s actual: 574s 574s PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestDatasetTree::test_print_stats[0-0-3 datasets, 0 directories] PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestDatasetTree::test_print_stats[0-1-3 datasets, 1 directory] PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestDatasetTree::test_print_stats[0-2-3 datasets, 2 directories] PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestDatasetTree::test_print_stats[1-0-6 datasets, 1 directory] PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestDatasetTree::test_print_stats[1-2-6 datasets, 2 directories] PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestDatasetTree::test_print_stats[None-0-7 datasets, 1 directory] PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestDatasetTree::test_print_stats[None-2-7 datasets, 2 directories] PASSED 574s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeFilesystemIssues::test_print_tree_fails_for_nonexistent_directory PASSED 575s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeFilesystemIssues::test_print_tree_permission_denied expected: 575s ├── a_forbidden_dir/ [error opening dir] 575s └── z_dir/ 575s └── subdir/ 575s 575s actual: 575s ├── a_forbidden_dir/ [error opening dir] 575s └── z_dir/ 575s └── subdir/ 575s 575s PASSED 575s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeFilesystemIssues::test_tree_with_broken_symlinks[True] PASSED 575s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeFilesystemIssues::test_tree_with_broken_symlinks[False] PASSED 575s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeFilesystemIssues::test_tree_with_broken_symlinks_to_inaccessible_targets[True] PASSED 575s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeFilesystemIssues::test_tree_with_broken_symlinks_to_inaccessible_targets[False] PASSED 578s ../build.4Ft/src/datalad_next/commands/tests/test_tree.py::TestTreeFilesystemIssues::test_print_tree_with_recursive_symlinks create(ok): . (dataset) 578s add(ok): subdir/annexed_file.txt (file) 578s save(ok): . (dataset) 578s action summary: 578s add (ok: 1) 578s save (ok: 1) 578s add(ok): subdir/git_file.txt (file) 578s save(ok): . (dataset) 578s action summary: 578s add (ok: 1) 578s save (ok: 1) 578s add(ok): subds_modified (dataset) 578s add(ok): .gitmodules (file) 578s save(ok): . (dataset) 578s create(ok): subds_modified (dataset) 578s action summary: 578s add (ok: 2) 578s create (ok: 1) 578s save (ok: 1) 578s add(ok): subds_lvl1_modified (dataset) 578s add(ok): .gitmodules (file) 578s save(ok): subds_modified (dataset) 578s add(ok): subds_modified (dataset) 578s add(ok): .gitmodules (file) 578s save(ok): . (dataset) 578s create(ok): subds_modified/subds_lvl1_modified (dataset) 578s action summary: 578s add (ok: 4) 578s create (ok: 1) 578s save (ok: 2) 578s add(ok): subdir/annexed_file.txt (file) 578s save(ok): . (dataset) 578s action summary: 578s add (ok: 1) 578s save (ok: 1) 578s expected: 578s ├── directory_untracked/ 578s │ └── link2dir/ -> ../subdir 578s ├── link2deepdir/ -> subds_modified/subdir/deepdir 578s │ └── subdeepdir/ 578s ├── link2dir/ -> subdir 578s ├── link2extdir/ -> ../ext_dir 578s │ └── ext_subdir/ 578s ├── link2parent/ -> ../.. 578s ├── link2subdsdir/ -> subds_modified/subdir 578s ├── link2subdsroot/ -> subds_modified 578s ├── subdir/ 578s └── [DS~1] subds_modified/ 578s ├── link2superdsdir/ -> ../subdir 578s ├── subdir/ 578s └── [DS~2] subds_lvl1_modified/ 578s 578s actual: 578s ├── directory_untracked/ 578s │ └── link2dir/ -> ../subdir 578s ├── link2deepdir/ -> subds_modified/subdir/deepdir 578s │ └── subdeepdir/ 578s ├── link2dir/ -> subdir 578s ├── link2extdir/ -> ../ext_dir 578s │ └── ext_subdir/ 578s ├── link2parent/ -> ../.. 578s ├── link2subdsdir/ -> subds_modified/subdir 578s ├── link2subdsroot/ -> subds_modified 578s ├── subdir/ 578s └── [DS~1] subds_modified/ 578s ├── link2superdsdir/ -> ../subdir 578s ├── subdir/ 578s └── [DS~2] subds_lvl1_modified/ 578s 578s PASSED 578s ../build.4Ft/src/datalad_next/config/tests/test_core.py::test_parse_gitconfig_dump PASSED 578s ../build.4Ft/src/datalad_next/config/tests/test_core.py::test_something fatal: no such section: nothere 578s fatal: --local can only be used inside a git repository 578s PASSED 578s ../build.4Ft/src/datalad_next/config/tests/test_core.py::test_includeif_breaking PASSED 578s ../build.4Ft/src/datalad_next/config/tests/test_core.py::test_crazy_cfg PASSED 578s ../build.4Ft/src/datalad_next/config/tests/test_core.py::test_obtain create(ok): /tmp/datalad_temp_test_obtainbft1xpep (dataset) 578s PASSED 578s ../build.4Ft/src/datalad_next/config/tests/test_core.py::test_from_env PASSED 579s ../build.4Ft/src/datalad_next/config/tests/test_core.py::test_from_env_overrides PASSED 579s ../build.4Ft/src/datalad_next/config/tests/test_core.py::test_overrides PASSED 579s ../build.4Ft/src/datalad_next/config/tests/test_core.py::test_rewrite_url PASSED 580s ../build.4Ft/src/datalad_next/config/tests/test_core.py::test_no_leaks create(ok): . (dataset) 580s create(ok): . (dataset) 580s PASSED 580s ../build.4Ft/src/datalad_next/config/tests/test_core.py::test_no_local_write_if_no_dataset create(ok): . (dataset) 580s PASSED 581s ../build.4Ft/src/datalad_next/config/tests/test_core.py::test_dataset_local_mode create(ok): /tmp/datalad_temp_test_dataset_local_modeidd19jkz (dataset) 581s PASSED 581s ../build.4Ft/src/datalad_next/config/tests/test_core.py::test_dataset_systemglobal_mode create(ok): /tmp/datalad_temp_test_dataset_systemglobal_modeojk4nkie (dataset) 581s PASSED 581s ../build.4Ft/src/datalad_next/config/tests/test_core.py::test_global_config PASSED 582s ../build.4Ft/src/datalad_next/config/tests/test_core.py::test_bare create(ok): . (dataset) 582s add(ok): .datalad/config (file) 582s save(ok): . (dataset) 582s action summary: 582s add (ok: 1) 582s save (ok: 1) 582s PASSED 582s ../build.4Ft/src/datalad_next/config/tests/test_core.py::test_write_config_section PASSED 582s ../build.4Ft/src/datalad_next/config/tests/test_core.py::test_external_modification PASSED 582s ../build.4Ft/src/datalad_next/config/tests/test_core.py::test_where_to_scope PASSED 583s ../build.4Ft/src/datalad_next/config/tests/test_core.py::test_cross_cfgman_update PASSED 583s ../build.4Ft/src/datalad_next/config/tests/test_utils.py::test_get_gitconfig_items_from_env PASSED 583s ../build.4Ft/src/datalad_next/config/tests/test_utils.py::test_set_gitconfig_items_in_env PASSED 583s ../build.4Ft/src/datalad_next/config/tests/test_utils.py::test_get_set_gitconfig_env_roundtrip PASSED 583s ../build.4Ft/src/datalad_next/constraints/tests/test_base.py::test_base PASSED 583s ../build.4Ft/src/datalad_next/constraints/tests/test_base.py::test_allof PASSED 583s ../build.4Ft/src/datalad_next/constraints/tests/test_base.py::test_anyof PASSED 583s ../build.4Ft/src/datalad_next/constraints/tests/test_base.py::test_both PASSED 583s ../build.4Ft/src/datalad_next/constraints/tests/test_basic.py::test_noconstraint PASSED 583s ../build.4Ft/src/datalad_next/constraints/tests/test_basic.py::test_int PASSED 583s ../build.4Ft/src/datalad_next/constraints/tests/test_basic.py::test_float PASSED 583s ../build.4Ft/src/datalad_next/constraints/tests/test_basic.py::test_bool PASSED 583s ../build.4Ft/src/datalad_next/constraints/tests/test_basic.py::test_str PASSED 583s ../build.4Ft/src/datalad_next/constraints/tests/test_basic.py::test_str_min_len PASSED 583s ../build.4Ft/src/datalad_next/constraints/tests/test_basic.py::test_EnsureStr_match PASSED 583s ../build.4Ft/src/datalad_next/constraints/tests/test_basic.py::test_EnsureStrPrefix PASSED 583s ../build.4Ft/src/datalad_next/constraints/tests/test_basic.py::test_EnsureValue PASSED 583s ../build.4Ft/src/datalad_next/constraints/tests/test_basic.py::test_none PASSED 583s ../build.4Ft/src/datalad_next/constraints/tests/test_basic.py::test_callable PASSED 583s ../build.4Ft/src/datalad_next/constraints/tests/test_basic.py::test_choice PASSED 583s ../build.4Ft/src/datalad_next/constraints/tests/test_basic.py::test_keychoice PASSED 583s ../build.4Ft/src/datalad_next/constraints/tests/test_basic.py::test_range PASSED 583s ../build.4Ft/src/datalad_next/constraints/tests/test_basic.py::test_type_str PASSED 583s ../build.4Ft/src/datalad_next/constraints/tests/test_basic.py::test_EnsurePath PASSED 583s ../build.4Ft/src/datalad_next/constraints/tests/test_basic.py::test_EnsurePath_fordataset PASSED 583s ../build.4Ft/src/datalad_next/constraints/tests/test_basic.py::test_EnsureHashAlgorithm PASSED 583s ../build.4Ft/src/datalad_next/constraints/tests/test_cmdarg_validation.py::test_multi_validation PASSED 583s ../build.4Ft/src/datalad_next/constraints/tests/test_cmdarg_validation.py::test_invalid_multi_validation PASSED 583s ../build.4Ft/src/datalad_next/constraints/tests/test_cmdarg_validation.py::test_cmd_with_validation PASSED 584s ../build.4Ft/src/datalad_next/constraints/tests/test_cmdarg_validation.py::test_constraint_dataset_tailoring PASSED 584s ../build.4Ft/src/datalad_next/constraints/tests/test_compound.py::test_EnsureTupleOf PASSED 584s ../build.4Ft/src/datalad_next/constraints/tests/test_compound.py::test_EnsureListOf PASSED 584s ../build.4Ft/src/datalad_next/constraints/tests/test_compound.py::test_EnsureIterableOf PASSED 584s ../build.4Ft/src/datalad_next/constraints/tests/test_compound.py::test_EnsureMapping PASSED 584s ../build.4Ft/src/datalad_next/constraints/tests/test_compound.py::test_EnsureGeneratorFromFileLike PASSED 584s ../build.4Ft/src/datalad_next/constraints/tests/test_compound.py::test_ConstraintWithPassthrough PASSED 584s ../build.4Ft/src/datalad_next/constraints/tests/test_compound.py::test_WithDescription PASSED 584s ../build.4Ft/src/datalad_next/constraints/tests/test_exceptions.py::test_constrainterror_repr PASSED 584s ../build.4Ft/src/datalad_next/constraints/tests/test_exceptions.py::test_constrainterrors PASSED 584s ../build.4Ft/src/datalad_next/constraints/tests/test_exceptions.py::test_parametercontext PASSED 584s ../build.4Ft/src/datalad_next/constraints/tests/test_exceptions.py::test_parametercontexterrors PASSED 584s ../build.4Ft/src/datalad_next/constraints/tests/test_exceptions.py::test_parameterizationerrors PASSED 584s ../build.4Ft/src/datalad_next/constraints/tests/test_special_purpose.py::test_EnsureGitRefName PASSED 584s ../build.4Ft/src/datalad_next/constraints/tests/test_special_purpose.py::test_EnsureRemoteName PASSED 584s ../build.4Ft/src/datalad_next/constraints/tests/test_special_purpose.py::test_EnsureParameterConstraint PASSED 584s ../build.4Ft/src/datalad_next/constraints/tests/test_special_purpose.py::test_EnsureParameterConstraint_passthrough PASSED 584s ../build.4Ft/src/datalad_next/constraints/tests/test_special_purpose.py::test_EnsureJSONLines PASSED 584s ../build.4Ft/src/datalad_next/constraints/tests/test_special_purpose.py::test_EnsureURL PASSED 584s ../build.4Ft/src/datalad_next/constraints/tests/test_special_purpose.py::test_EnsureURL_match PASSED 585s ../build.4Ft/src/datalad_next/constraints/tests/test_special_purpose.py::test_EnsureDataset PASSED 585s ../build.4Ft/src/datalad_next/constraints/tests/test_tutorial.py::test_dobatch PASSED 585s ../build.4Ft/src/datalad_next/credman/tests/test_credman.py::test_credmanager PASSED 585s ../build.4Ft/src/datalad_next/credman/tests/test_credman.py::test_credmanager_set_noninteractive PASSED 585s ../build.4Ft/src/datalad_next/credman/tests/test_credman.py::test_credman_local PASSED 586s ../build.4Ft/src/datalad_next/credman/tests/test_credman.py::test_query PASSED 586s ../build.4Ft/src/datalad_next/credman/tests/test_credman.py::test_credman_get PASSED 586s ../build.4Ft/src/datalad_next/credman/tests/test_credman.py::test_credman_get_guess_type PASSED 586s ../build.4Ft/src/datalad_next/credman/tests/test_credman.py::test_credman_obtain PASSED 586s ../build.4Ft/src/datalad_next/credman/tests/test_credman.py::test_legacy_credentials PASSED 586s ../build.4Ft/src/datalad_next/gitpathspec/tests/test_gitpathspec.py::test_pathspecs Initialized empty Git repository in /tmp/pytest-of-ubuntu/pytest-0/pathspec_match0/.git/ 586s PASSED 586s ../build.4Ft/src/datalad_next/gitpathspec/tests/test_gitpathspec.py::test_yield_subdir_match_remainder_pathspecs PASSED 586s ../build.4Ft/src/datalad_next/gitpathspec/tests/test_gitpathspec.py::test_GitPathSpecs PASSED 588s ../build.4Ft/src/datalad_next/gitremotes/tests/test_datalad_annex.py::test_annex_remote FAILED 590s ../build.4Ft/src/datalad_next/gitremotes/tests/test_datalad_annex.py::test_export_remote FAILED 591s ../build.4Ft/src/datalad_next/gitremotes/tests/test_datalad_annex.py::test_annex_remote_autorepush FAILED 593s ../build.4Ft/src/datalad_next/gitremotes/tests/test_datalad_annex.py::test_export_remote_autorepush FAILED 593s ../build.4Ft/src/datalad_next/gitremotes/tests/test_datalad_annex.py::test_params_from_url PASSED 595s ../build.4Ft/src/datalad_next/gitremotes/tests/test_datalad_annex.py::test_typeweb_annex FAILED 596s ../build.4Ft/src/datalad_next/gitremotes/tests/test_datalad_annex.py::test_typeweb_annex_uncompressed FAILED 598s ../build.4Ft/src/datalad_next/gitremotes/tests/test_datalad_annex.py::test_typeweb_export FAILED 600s ../build.4Ft/src/datalad_next/gitremotes/tests/test_datalad_annex.py::test_submodule_url FAILED 600s ../build.4Ft/src/datalad_next/gitremotes/tests/test_datalad_annex.py::test_webdav_auth SKIPPED 601s ../build.4Ft/src/datalad_next/iter_collections/tests/test_iterannexworktree.py::test_iter_annexworktree PASSED 602s ../build.4Ft/src/datalad_next/iter_collections/tests/test_iterannexworktree.py::test_iter_annexworktree_tuned PASSED 603s ../build.4Ft/src/datalad_next/iter_collections/tests/test_iterannexworktree.py::test_iter_annexworktree_basic_fp PASSED 604s ../build.4Ft/src/datalad_next/iter_collections/tests/test_iterannexworktree.py::test_iter_annexworktree_nonrecursive PASSED 604s ../build.4Ft/src/datalad_next/iter_collections/tests/test_iterannexworktree.py::test_iter_annexworktree_noannex PASSED 604s ../build.4Ft/src/datalad_next/iter_collections/tests/test_iterdir.py::test_iter_dir PASSED 604s ../build.4Ft/src/datalad_next/iter_collections/tests/test_itergitdiff.py::test_iter_gitdiff_invalid PASSED 606s ../build.4Ft/src/datalad_next/iter_collections/tests/test_itergitdiff.py::test_iter_gitdiff_basic PASSED 608s ../build.4Ft/src/datalad_next/iter_collections/tests/test_itergitdiff.py::test_iter_gitdiff_nonroot PASSED 609s ../build.4Ft/src/datalad_next/iter_collections/tests/test_itergitdiff.py::test_iter_gitdiff_nonrec PASSED 610s ../build.4Ft/src/datalad_next/iter_collections/tests/test_itergitdiff.py::test_iter_gitdiff_typechange_issue6791 PASSED 612s ../build.4Ft/src/datalad_next/iter_collections/tests/test_itergitdiff.py::test_iter_gitdiff_rec PASSED 627s ../build.4Ft/src/datalad_next/iter_collections/tests/test_itergitstatus.py::test_status_homogeneity PASSED 628s ../build.4Ft/src/datalad_next/iter_collections/tests/test_itergitstatus.py::test_status_invalid_params PASSED 629s ../build.4Ft/src/datalad_next/iter_collections/tests/test_itergitstatus.py::test_status_vs_git PASSED 629s ../build.4Ft/src/datalad_next/iter_collections/tests/test_itergitstatus.py::test_status_norec PASSED 629s ../build.4Ft/src/datalad_next/iter_collections/tests/test_itergitstatus.py::test_status_smrec PASSED 630s ../build.4Ft/src/datalad_next/iter_collections/tests/test_itergitstatus.py::test_status_monorec PASSED 630s ../build.4Ft/src/datalad_next/iter_collections/tests/test_itergitstatus.py::test_status_gitinit Initialized empty Git repository in /tmp/pytest-of-ubuntu/pytest-0/test_status_gitinit0/.git/ 630s PASSED 630s ../build.4Ft/src/datalad_next/iter_collections/tests/test_itergitstatus.py::test_status_nohead_staged Initialized empty Git repository in /tmp/pytest-of-ubuntu/pytest-0/test_status_nohead_staged0/.git/ 630s PASSED 631s ../build.4Ft/src/datalad_next/iter_collections/tests/test_itergitstatus.py::test_status_submodule_added Adding existing repo at 'sub' to the index 631s PASSED 632s ../build.4Ft/src/datalad_next/iter_collections/tests/test_itergittree.py::test_iter_gittree PASSED 632s ../build.4Ft/src/datalad_next/iter_collections/tests/test_itergittree.py::test_name_starting_with_tab [WARNING] Some elements of your dataset are not compatible with Windows systems. Disable this check by changing datalad.save.windows-compat-warning or consider renaming the following elements: 632s | Elements with illegal characters: ['\ttab.txt'] 633s PASSED 633s ../build.4Ft/src/datalad_next/iter_collections/tests/test_itergittree.py::test_iter_gittree_empty PASSED 634s ../build.4Ft/src/datalad_next/iter_collections/tests/test_itergitworktree.py::test_iter_gitworktree PASSED 634s ../build.4Ft/src/datalad_next/iter_collections/tests/test_itergitworktree.py::test_name_starting_with_tab [WARNING] Some elements of your dataset are not compatible with Windows systems. Disable this check by changing datalad.save.windows-compat-warning or consider renaming the following elements: 634s | Elements with illegal characters: ['\ttab.txt'] 635s PASSED 635s ../build.4Ft/src/datalad_next/iter_collections/tests/test_itergitworktree.py::test_iter_gitworktree_recursive PASSED 636s ../build.4Ft/src/datalad_next/iter_collections/tests/test_itergitworktree.py::test_iter_gitworktree_empty PASSED 637s ../build.4Ft/src/datalad_next/iter_collections/tests/test_itergitworktree.py::test_iter_gitworktree_deadsymlinks PASSED 638s ../build.4Ft/src/datalad_next/iter_collections/tests/test_itergitworktree.py::test_iter_gitworktree_basic_fp PASSED 638s ../build.4Ft/src/datalad_next/iter_collections/tests/test_itergitworktree.py::test_iter_gitworktree_untracked_only PASSED 638s ../build.4Ft/src/datalad_next/iter_collections/tests/test_itergitworktree.py::test_iter_gitworktree_pathspec PASSED 638s ../build.4Ft/src/datalad_next/iter_collections/tests/test_itergitworktree.py::test_iter_submodules PASSED 638s ../build.4Ft/src/datalad_next/iter_collections/tests/test_itergitworktree.py::test_iter_gitworktree_subm_recursion PASSED 638s ../build.4Ft/src/datalad_next/iter_collections/tests/test_itertar.py::test_iter_tar SKIPPED 638s ../build.4Ft/src/datalad_next/iter_collections/tests/test_iterzip.py::test_iter_zip PASSED 638s ../build.4Ft/src/datalad_next/iter_collections/tests/test_utils.py::test_FileSystemItem PASSED 638s ../build.4Ft/src/datalad_next/iter_collections/tests/test_utils.py::test_FileSystemItem_linktarget PASSED 638s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_cat_not_necessarily_streamed PASSED 643s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_cat_streamed PASSED 643s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_process_closed_after PASSED 643s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_exception_from_input_before_yield_propagated PASSED 643s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_exception_from_input_after_yield_propagated PASSED 643s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_exception_from_input_incorrect_type_propagated PASSED 643s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_exception_from_output_during_input_iterating_propagates_and_does_not_hang[1] PASSED 643s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_exception_from_output_during_input_iterating_propagates_and_does_not_hang[100] PASSED 643s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_exception_from_output_during_input_iterating_propagates_and_does_not_hang[10000] PASSED 643s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_exception_from_output_during_input_iterating_propagates_and_does_not_hang[1000000] PASSED 643s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_exception_from_output_iterating_propagates_and_does_not_hang[0-1] PASSED 643s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_exception_from_output_iterating_propagates_and_does_not_hang[0-100] PASSED 643s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_exception_from_output_iterating_propagates_and_does_not_hang[0-10000] PASSED 643s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_exception_from_output_iterating_propagates_and_does_not_hang[0-1000000] PASSED 643s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_exception_from_output_iterating_propagates_and_does_not_hang[1-1] PASSED 643s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_exception_from_output_iterating_propagates_and_does_not_hang[1-100] PASSED 643s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_exception_from_output_iterating_propagates_and_does_not_hang[1-10000] PASSED 643s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_exception_from_output_iterating_propagates_and_does_not_hang[1-1000000] PASSED 643s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_exception_from_output_iterating_propagates_and_does_not_hang[100-1] PASSED 643s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_exception_from_output_iterating_propagates_and_does_not_hang[100-100] PASSED 643s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_exception_from_output_iterating_propagates_and_does_not_hang[100-10000] PASSED 643s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_exception_from_output_iterating_propagates_and_does_not_hang[100-1000000] PASSED 643s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_exception_from_not_found_process_propagated PASSED 643s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_exception_from_return_code PASSED 643s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_exception_from_context_even_though_return_code_with_long_standard_error PASSED 643s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_exception_from_return_code_with_long_standard_error PASSED 643s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_if_process_exits_with_non_zero_error_code_and_inner_exception_it_propagates PASSED 643s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_if_process_closes_standard_input_but_exits_with_non_zero_error_code_then_broken_pipe_error PASSED 643s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_if_process_closes_standard_input_but_exits_with_non_zero_error_code_then_iterable_subprocess_error PASSED 643s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_program_that_outputs_for_a_long_time_is_interrupted_on_context_exit PASSED 643s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_program_that_sleeps_exits_quickly_if_exception PASSED 643s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_program_that_sleeps_exits_quickly_if_keyboard_interrupt PASSED 643s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_program_that_sleeps_exits_quickly_if_keyboard_interrupt_just_before_thread_starts PASSED 643s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_program_that_sleeps_exits_quickly_if_keyboard_interrupt_just_after_thread_starts PASSED 645s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_program_that_sleeps_not_quickly_if_no_exception PASSED 645s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_funzip_no_compression PASSED 645s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_funzip_deflate PASSED 645s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_error_returncode_available_from_generator PASSED 645s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_error_returncode_available_from_generator_with_exception PASSED 646s ../build.4Ft/src/datalad_next/iterable_subprocess/test_iterable_subprocess.py::test_returncode_available_from_generator_with_exception PASSED 646s ../build.4Ft/src/datalad_next/itertools/tests/test_align_pattern.py::test_pattern_processor[data_chunks0-abc-expected0] PASSED 646s ../build.4Ft/src/datalad_next/itertools/tests/test_align_pattern.py::test_pattern_processor[data_chunks1-abc-expected1] PASSED 646s ../build.4Ft/src/datalad_next/itertools/tests/test_align_pattern.py::test_pattern_processor[data_chunks2-abc-expected2] PASSED 646s ../build.4Ft/src/datalad_next/itertools/tests/test_align_pattern.py::test_pattern_processor[data_chunks3-abc-expected3] PASSED 646s ../build.4Ft/src/datalad_next/itertools/tests/test_align_pattern.py::test_pattern_processor[data_chunks4-abc-expected4] PASSED 646s ../build.4Ft/src/datalad_next/itertools/tests/test_align_pattern.py::test_pattern_processor[data_chunks5-abc-expected5] PASSED 646s ../build.4Ft/src/datalad_next/itertools/tests/test_align_pattern.py::test_performance 0.004255099222064018 0.16586909256875515 38.981251414461056 646s PASSED 646s ../build.4Ft/src/datalad_next/itertools/tests/test_align_pattern.py::test_newline_matches PASSED 646s ../build.4Ft/src/datalad_next/itertools/tests/test_decode_bytes.py::test_split_decoding PASSED 646s ../build.4Ft/src/datalad_next/itertools/tests/test_decode_bytes.py::test_unfixable_error_decoding PASSED 646s ../build.4Ft/src/datalad_next/itertools/tests/test_decode_bytes.py::test_single_undecodable_byte PASSED 646s ../build.4Ft/src/datalad_next/itertools/tests/test_decode_bytes.py::test_no_empty_strings PASSED 646s ../build.4Ft/src/datalad_next/itertools/tests/test_itemize.py::test_assembling_and_splitting[input_chunks0-\n] PASSED 646s ../build.4Ft/src/datalad_next/itertools/tests/test_itemize.py::test_assembling_and_splitting[input_chunks1-\n] PASSED 646s ../build.4Ft/src/datalad_next/itertools/tests/test_itemize.py::test_assembling_and_splitting[input_chunks2-\r\n] PASSED 646s ../build.4Ft/src/datalad_next/itertools/tests/test_itemize.py::test_assembling_and_splitting[input_chunks3-\r\n] PASSED 646s ../build.4Ft/src/datalad_next/itertools/tests/test_load_json.py::test_load_json_on_decoded_bytes PASSED 646s ../build.4Ft/src/datalad_next/itertools/tests/test_load_json.py::test_load_json_with_flag PASSED 646s ../build.4Ft/src/datalad_next/itertools/tests/test_reroute.py::test_route_around PASSED 646s ../build.4Ft/src/datalad_next/itertools/tests/test_reroute.py::test_route_no_processing PASSED 646s ../build.4Ft/src/datalad_next/patches/tests/test_add_method_url2transport_path.py::test_local_io_url2transport_path_posix PASSED 646s ../build.4Ft/src/datalad_next/patches/tests/test_add_method_url2transport_path.py::test_local_io_url2transport_path_windows SKIPPED 646s ../build.4Ft/src/datalad_next/patches/tests/test_add_method_url2transport_path.py::test_http_remote_io_url2transport_path PASSED 646s ../build.4Ft/src/datalad_next/patches/tests/test_annex_progress_logging.py::test_uncurl_progress_reporting_to_annex SKIPPED 646s ../build.4Ft/src/datalad_next/patches/tests/test_cli_configoverrides.py::test_cli_configoverrides unique 646s PASSED 646s ../build.4Ft/src/datalad_next/patches/tests/test_commanderror.py::test_repr_str PASSED 646s ../build.4Ft/src/datalad_next/patches/tests/test_commanderror.py::test_returncode_code_alias PASSED 648s ../build.4Ft/src/datalad_next/patches/tests/test_configuration.py::test_something create(ok): . (dataset) 648s 4 648s add(ok): subds (dataset) 648s add(ok): .gitmodules (file) 648s save(ok): . (dataset) 648s create(ok): subds (dataset) 648s action summary: 648s add (ok: 2) 648s create (ok: 1) 648s save (ok: 1) 648s PASSED 649s ../build.4Ft/src/datalad_next/patches/tests/test_configuration.py::test_config_get_global PASSED 649s ../build.4Ft/src/datalad_next/patches/tests/test_configuration.py::test_getset_None PASSED 650s ../build.4Ft/src/datalad_next/patches/tests/test_create_sibling_ghlike.py::test_invalid_call [WARNING] Cannot determine authorization token for gin.g-node.org 650s [WARNING] Cannot determine authorization token for some 656s [WARNING] Cannot determine authorization token for some 656s [WARNING] No token found for credential 'some' 656s PASSED 657s ../build.4Ft/src/datalad_next/patches/tests/test_create_sibling_ghlike.py::test_dryrun [WARNING] Cannot determine authorization token for some 657s [WARNING] No token found for credential 'some' 657s [WARNING] Cannot determine authorization token for some 657s [WARNING] No token found for credential 'some' 657s [WARNING] Cannot determine authorization token for some 657s [WARNING] No token found for credential 'some' 657s [WARNING] Cannot determine authorization token for some 657s [WARNING] No token found for credential 'some' 657s create(ok): . (dataset) 657s create_sibling_gin [dry-run](ok): [would create sibling 'gin' and repository 'bogus'] 657s create_sibling_gin [dry-run](ok): [would create sibling 'gin' and repository 'strangeorg/bogus'] 657s add(ok): subds (dataset) 657s add(ok): .gitmodules (file) 657s save(ok): . (dataset) 657s create(ok): subds (dataset) 657s action summary: 657s add (ok: 2) 657s create (ok: 1) 657s save (ok: 1) 657s create_sibling_gin [dry-run](ok): [would create sibling 'gin' and repository 'bogus'] 657s create_sibling_gin [dry-run](ok): [would create sibling 'gin' and repository 'bogus-subds'] 657s action summary: 657s create_sibling_gin [dry-run] (ok: 2) 657s uninstall(ok): subds (dataset) 657s create_sibling_gin [dry-run](ok): [would create sibling 'gin' and repository 'bogus'] 657s PASSED 657s ../build.4Ft/src/datalad_next/patches/tests/test_create_sibling_ghlike.py::test_gin SKIPPED 657s ../build.4Ft/src/datalad_next/patches/tests/test_create_sibling_ghlike.py::test_gitea SKIPPED 657s ../build.4Ft/src/datalad_next/patches/tests/test_create_sibling_ghlike.py::test_github SKIPPED 657s ../build.4Ft/src/datalad_next/patches/tests/test_create_sibling_ghlike.py::test_gogs SKIPPED 665s ../build.4Ft/src/datalad_next/patches/tests/test_create_sibling_gitlab.py::test_dryrun PASSED 666s ../build.4Ft/src/datalad_next/patches/tests/test_create_sibling_gitlab.py::test_fake_gitlab PASSED 670s ../build.4Ft/src/datalad_next/patches/tests/test_patched_ria_ora.py::test_ria_postclone_noannex update(ok): . (dataset) 670s update(ok): . (dataset) 670s configure-sibling(ok): . (sibling) 670s create-sibling-ria(ok): /tmp/pytest-of-ubuntu/pytest-0/dataset63 (dataset) 670s action summary: 670s configure-sibling (ok: 1) 670s create-sibling-ria (ok: 1) 670s update (ok: 1) 670s publish(ok): . (dataset) [refs/heads/dl-test-branch->store:refs/heads/dl-test-branch [new branch]] 670s publish(ok): . (dataset) [refs/heads/git-annex->store:refs/heads/git-annex [new branch]] 670s action summary: 670s publish (ok: 2) 670s configure-sibling(ok): . (sibling) 670s install(ok): /tmp/pytest-of-ubuntu/pytest-0/test_ria_postclone_noannex0/cloned_ds (dataset) 670s action summary: 670s configure-sibling (ok: 1) 670s install (ok: 1) 670s PASSED 674s ../build.4Ft/src/datalad_next/patches/tests/test_patched_ria_ora.py::test_initremote create(ok): . (dataset) 674s PASSED 674s ../build.4Ft/src/datalad_next/patches/tests/test_patched_ria_ora.py::test_read_access create(ok): . (dataset) 680s create(ok): . (dataset) 680s add(ok): one.txt (file) 680s add(ok): subdir/two (file) 680s save(ok): . (dataset) 680s action summary: 680s add (ok: 2) 680s save (ok: 1) 680s add(ok): subdir/four (file) 680s add(ok): three.txt (file) 680s save(ok): . (dataset) 680s action summary: 680s add (ok: 2) 680s save (ok: 1) 680s drop(ok): one.txt (file) 680s drop(ok): subdir/four (file) 680s drop(ok): subdir/two (file) 680s drop(ok): three.txt (file) 680s drop(ok): . (directory) 680s action summary: 680s drop (ok: 5) 680s get(error): one.txt (file) [not enough free space, need 100 MB more (use --force to override this check or adjust annex.diskreserve)] 680s get(error): subdir/four (file) [not enough free space, need 100 MB more (use --force to override this check or adjust annex.diskreserve)] 680s get(error): subdir/two (file) [not enough free space, need 100 MB more (use --force to override this check or adjust annex.diskreserve)] 680s get(error): three.txt (file) [not enough free space, need 100 MB more (use --force to override this check or adjust annex.diskreserve)] 680s action summary: 680s get (error: 4) 680s FAILED 687s ../build.4Ft/src/datalad_next/patches/tests/test_patched_ria_ora.py::test_push_url create(ok): . (dataset) 687s add(ok): one.txt (file) 687s add(ok): subdir/two (file) 687s save(ok): . (dataset) 687s action summary: 687s add (ok: 2) 687s save (ok: 1) 687s add(ok): subdir/four (file) 687s add(ok): three.txt (file) 687s save(ok): . (dataset) 687s action summary: 687s add (ok: 2) 687s save (ok: 1) 687s .: store(+) [ora] 687s .: here(+) [git] 687s PASSED 687s ../build.4Ft/src/datalad_next/patches/tests/test_patched_ria_ora.py::test_version_check_ssh SKIPPED 693s ../build.4Ft/src/datalad_next/patches/tests/test_patched_ria_ora.py::test_version_check add(ok): one.txt (file) 693s add(ok): subdir/two (file) 693s save(ok): . (dataset) 693s action summary: 693s add (ok: 2) 693s save (ok: 1) 693s add(ok): subdir/four (file) 693s add(ok): three.txt (file) 693s save(ok): . (dataset) 693s action summary: 693s add (ok: 2) 693s save (ok: 1) 693s copy(ok): one.txt (file) [to store...] 693s copy(ok): subdir/four (file) [to store...] 693s copy(ok): subdir/two (file) [to store...] 693s copy(ok): three.txt (file) [to store...] 693s action summary: 693s copy (ok: 4) 693s drop(ok): one.txt (file) 693s drop(ok): subdir/four (file) 693s drop(ok): subdir/two (file) 693s drop(ok): three.txt (file) 693s drop(ok): . (directory) 693s action summary: 693s drop (ok: 5) 693s get(error): one.txt (file) [not enough free space, need 100 MB more (use --force to override this check or adjust annex.diskreserve)] 693s get(error): subdir/four (file) [not enough free space, need 100 MB more (use --force to override this check or adjust annex.diskreserve)] 693s get(error): subdir/two (file) [not enough free space, need 100 MB more (use --force to override this check or adjust annex.diskreserve)] 693s get(error): three.txt (file) [not enough free space, need 100 MB more (use --force to override this check or adjust annex.diskreserve)] 693s action summary: 693s get (error: 4) 693s FAILED 693s ../build.4Ft/src/datalad_next/patches/tests/test_patched_ria_ora.py::test_obtain_permission_ssh SKIPPED 698s ../build.4Ft/src/datalad_next/patches/tests/test_patched_ria_ora.py::test_obtain_permission_root add(ok): one.txt (file) 698s add(ok): subdir/two (file) 698s save(ok): . (dataset) 698s action summary: 698s add (ok: 2) 698s save (ok: 1) 698s add(ok): subdir/four (file) 698s add(ok): three.txt (file) 698s save(ok): . (dataset) 698s action summary: 698s add (ok: 2) 698s save (ok: 1) 698s .: store(+) [ora] 698s .: here(+) [git] 698s PASSED 698s ../build.4Ft/src/datalad_next/patches/tests/test_patched_ria_ora.py::test_setup_store_local PASSED 698s ../build.4Ft/src/datalad_next/patches/tests/test_patched_ria_ora.py::test_setup_store_ssh SKIPPED 698s ../build.4Ft/src/datalad_next/patches/tests/test_patched_ria_ora.py::test_setup_ds_in_store_local PASSED 698s ../build.4Ft/src/datalad_next/patches/tests/test_patched_ria_ora.py::test_setup_ds_in_store_ssh SKIPPED 698s ../build.4Ft/src/datalad_next/patches/tests/test_patched_ria_ora.py::test_remote_layout_ssh SKIPPED 702s ../build.4Ft/src/datalad_next/patches/tests/test_patched_ria_ora.py::test_remote_layout 702s 7-Zip 25.01 (armt) : Copyright (c) 1999-2025 Igor Pavlov : 2025-08-03 702s 32-bit arm_v:7-A thumb:2 locale=C.UTF-8 Threads:8 OPEN_MAX:1024 702s 702s Scanning the drive: 702s 12 folders, 4 files, 32 bytes (1 KiB) 702s 702s Creating archive: /tmp/pytest-of-ubuntu/pytest-0/test_remote_layout0/ria-archive-store/72d/cd9c4-74ed-47b2-b2dc-4a5e18de0a57/archives/archive.7z 702s 702s Add new data to archive: 12 folders, 4 files, 32 bytes (1 KiB) 702s 702s 702s Files read from disk: 4 702s Archive size: 437 bytes (1 KiB) 702s Everything is Ok 705s 705s 7-Zip 25.01 (armt) : Copyright (c) 1999-2025 Igor Pavlov : 2025-08-03 705s 32-bit arm_v:7-A thumb:2 locale=C.UTF-8 Threads:8 OPEN_MAX:1024 705s 705s Scanning the drive: 705s 6 folders, 2 files, 16 bytes (1 KiB) 705s 705s Creating archive: /tmp/pytest-of-ubuntu/pytest-0/test_remote_layout0/ria-archive-store/72d/cd9c4-74ed-47b2-b2dc-4a5e18de0a57/archives/archive2.7z 705s 705s Add new data to archive: 6 folders, 2 files, 16 bytes (1 KiB) 705s 705s 705s Files read from disk: 2 705s Archive size: 298 bytes (1 KiB) 705s Everything is Ok 706s 706s 7-Zip 25.01 (armt) : Copyright (c) 1999-2025 Igor Pavlov : 2025-08-03 706s 32-bit arm_v:7-A thumb:2 locale=C.UTF-8 Threads:8 OPEN_MAX:1024 706s 706s Scanning the drive: 706s 6 folders, 2 files, 16 bytes (1 KiB) 706s 706s Creating archive: /tmp/pytest-of-ubuntu/pytest-0/test_remote_layout0/ria-archive-store/72d/cd9c4-74ed-47b2-b2dc-4a5e18de0a57/archives/archive3.7z 706s 706s Add new data to archive: 6 folders, 2 files, 16 bytes (1 KiB) 706s 706s 706s Files read from disk: 2 706s Archive size: 297 bytes (1 KiB) 706s Everything is Ok 706s 706s 7-Zip 25.01 (armt) : Copyright (c) 1999-2025 Igor Pavlov : 2025-08-03 706s 32-bit arm_v:7-A thumb:2 locale=C.UTF-8 Threads:8 OPEN_MAX:1024 706s 706s Scanning the drive: 706s 6 folders, 2 files, 16 bytes (1 KiB) 706s 706s Creating archive: /tmp/pytest-of-ubuntu/pytest-0/test_remote_layout0/ria-archive-store/72d/cd9c4-74ed-47b2-b2dc-4a5e18de0a57/archives/archive4.7z 706s 706s Add new data to archive: 6 folders, 2 files, 16 bytes (1 KiB) 706s 706s 706s Files read from disk: 2 706s Archive size: 301 bytes (1 KiB) 706s Everything is Ok 706s add(ok): one.txt (file) 706s add(ok): subdir/two (file) 706s save(ok): . (dataset) 706s action summary: 706s add (ok: 2) 706s save (ok: 1) 706s add(ok): subdir/four (file) 706s add(ok): three.txt (file) 706s save(ok): . (dataset) 706s action summary: 706s add (ok: 2) 706s save (ok: 1) 706s copy(ok): one.txt (file) [to store...] 706s copy(ok): subdir/four (file) [to store...] 706s copy(ok): subdir/two (file) [to store...] 706s copy(ok): three.txt (file) [to store...] 706s action summary: 706s copy (ok: 4) 706s export-archive-ora(ok): /tmp/pytest-of-ubuntu/pytest-0/test_remote_layout0/ria-archive-store/72d/cd9c4-74ed-47b2-b2dc-4a5e18de0a57/archives/archive.7z (file) 706s export-archive-ora(ok): /tmp/pytest-of-ubuntu/pytest-0/test_remote_layout0/ria-archive-store/72d/cd9c4-74ed-47b2-b2dc-4a5e18de0a57/archives/archive2.7z (file) 706s export-archive-ora(ok): /tmp/pytest-of-ubuntu/pytest-0/test_remote_layout0/ria-archive-store/72d/cd9c4-74ed-47b2-b2dc-4a5e18de0a57/archives/archive3.7z (file) 706s export-archive-ora(ok): /tmp/pytest-of-ubuntu/pytest-0/test_remote_layout0/ria-archive-store/72d/cd9c4-74ed-47b2-b2dc-4a5e18de0a57/archives/archive4.7z (file) 706s PASSED 706s ../build.4Ft/src/datalad_next/patches/tests/test_patched_ria_ora.py::test_initremote_basic_sshurl SKIPPED 716s ../build.4Ft/src/datalad_next/patches/tests/test_patched_ria_ora.py::test_initremote_basic_fileurl add(ok): one.txt (file) 716s add(ok): subdir/two (file) 716s save(ok): . (dataset) 716s action summary: 716s add (ok: 2) 716s save (ok: 1) 716s add(ok): subdir/four (file) 716s add(ok): three.txt (file) 716s save(ok): . (dataset) 716s action summary: 716s add (ok: 2) 716s save (ok: 1) 716s PASSED 727s ../build.4Ft/src/datalad_next/patches/tests/test_patched_ria_ora.py::test_initremote_basic_httpurl add(ok): one.txt (file) 727s add(ok): subdir/two (file) 727s save(ok): . (dataset) 727s action summary: 727s add (ok: 2) 727s save (ok: 1) 727s add(ok): subdir/four (file) 727s add(ok): three.txt (file) 727s save(ok): . (dataset) 727s action summary: 727s add (ok: 2) 727s save (ok: 1) 727s PASSED 727s ../build.4Ft/src/datalad_next/patches/tests/test_patched_ria_ora.py::test_gitannex_ssh SKIPPED 730s ../build.4Ft/src/datalad_next/patches/tests/test_patched_ria_ora.py::test_gitannex_local testremote store (generating test keys...) 730s Cannot run git-annex-remote-!dne! -- It is not installed in PATH (/usr/lib/git-core:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin) 730s Cannot run git-annex-remote-!dne! -- It is not installed in PATH (/usr/lib/git-core:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin) 730s Cannot run git-annex-remote-!dne! -- It is not installed in PATH (/usr/lib/git-core:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin) 730s Cannot run git-annex-remote-!dne! -- It is not installed in PATH (/usr/lib/git-core:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin) 730s Remote Tests 730s unavailable remote 730s removeKey: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 730s OK 730s storeKey: OK 730s checkPresent: OK 730s retrieveKeyFile: OK 730s retrieveKeyFileCheap: OK 730s key size Just 1048576; remote chunksize=0 encryption=none 731s removeKey when not present: OK (0.52s) 731s present False: OK 731s storeKey: OK 731s present True: OK 731s storeKey when already present: OK 731s present True: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 731s not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 731s OK 731s retrieveKeyFile: FAIL 731s ./Command/TestRemote.hs:295: 731s failed 731s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=0 encryption=none.retrieveKeyFile"' to rerun this test only. 731s fsck downloaded object: FAIL 731s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 731s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=0 encryption=none.fsck downloaded object"' to rerun this test only. 731s retrieveKeyFile resume from 0: cp: cannot stat '.git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key': No such file or directory 731s FAIL 731s ./Command/TestRemote.hs:295: 731s failed 731s Use -p '/key size Just 1048576; remote chunksize=0 encryption=none.retrieveKeyFile resume from 0/' to rerun this test only. 731s fsck downloaded object: FAIL 731s not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 731s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 731s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=0 encryption=none.fsck downloaded object"' to rerun this test only. 731s retrieveKeyFile resume from 33%: FAIL 731s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 731s Use -p '/key size Just 1048576; remote chunksize=0 encryption=none.retrieveKeyFile resume from 33%/' to rerun this test only. 731s fsck downloaded object: FAIL 731s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 731s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=0 encryption=none.fsck downloaded object"' to rerun this test only. 731s retrieveKeyFile resume from end: FAIL (0.02s) 731s ./Command/TestRemote.hs:295: 731s failed 731s Use -p '/key size Just 1048576; remote chunksize=0 encryption=none.retrieveKeyFile resume from end/' to rerun this test only. 731s fsck downloaded object: FAIL 731s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 731s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=0 encryption=none.fsck downloaded object"' to rerun this test only. 731s removeKey when present: OK (0.07s) 731s present False: OK 731s key size Just 1048576; remote chunksize=0 encryption=shared 731s removeKey when not present: OK (0.52s) 731s present False: OK 731s storeKey: FAIL 731s Exception: content not available to send 731s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=0 encryption=shared.storeKey"' to rerun this test only. 731s present True: FAIL 731s ./Command/TestRemote.hs:295: 731s failed 731s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=0 encryption=shared.present True"' to rerun this test only. 731s storeKey when already present: FAIL 731s Exception: content not available to send 731s Use -p '/key size Just 1048576; remote chunksize=0 encryption=shared.storeKey when already present/' to rerun this test only. 731s present True: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 731s not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 731s FAIL (0.03s) 731s ./Command/TestRemote.hs:295: 731s failed 731s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=0 encryption=shared.present True"' to rerun this test only. 731s retrieveKeyFile: FAIL 731s ./Command/TestRemote.hs:295: 731s failed 731s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=0 encryption=shared.retrieveKeyFile"' to rerun this test only. 731s fsck downloaded object: FAIL 731s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 731s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=0 encryption=shared.fsck downloaded object"' to rerun this test only. 731s retrieveKeyFile resume from 0: FAIL 731s ./Command/TestRemote.hs:295: 731s failed 731s Use -p '/key size Just 1048576; remote chunksize=0 encryption=shared.retrieveKeyFile resume from 0/' to rerun this test only. 731s fsck downloaded object: FAIL 731s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 731s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=0 encryption=shared.fsck downloaded object"' to rerun this test only. 731s retrieveKeyFile resume from 33%: FAIL 731s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 731s Use -p '/key size Just 1048576; remote chunksize=0 encryption=shared.retrieveKeyFile resume from 33%/' to rerun this test only. 731s fsck downloaded object: FAIL 731s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 731s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=0 encryption=shared.fsck downloaded object"' to rerun this test only. 731s retrieveKeyFile resume from end: cp: cannot stat '.git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key': No such file or directory 731s not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 731s FAIL (0.03s) 731s ./Command/TestRemote.hs:295: 731s failed 731s Use -p '/key size Just 1048576; remote chunksize=0 encryption=shared.retrieveKeyFile resume from end/' to rerun this test only. 731s fsck downloaded object: FAIL 731s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 731s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=0 encryption=shared.fsck downloaded object"' to rerun this test only. 731s removeKey when present: OK (0.02s) 731s present False: OK 731s key size Just 1048576; remote chunksize=10485 encryption=none 732s removeKey when not present: OK (0.62s) 732s present False: OK 732s storeKey: FAIL 732s Exception: content not available to send 732s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=10485 encryption=none.storeKey"' to rerun this test only. 732s present True: FAIL 732s ./Command/TestRemote.hs:295: 732s failed 732s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=10485 encryption=none.present True"' to rerun this test only. 732s not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 732s not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 732s storeKey when already present: FAIL 732s Exception: content not available to send 732s Use -p '/key size Just 1048576; remote chunksize=10485 encryption=none.storeKey when already present/' to rerun this test only. 732s present True: FAIL (0.03s) 732s ./Command/TestRemote.hs:295: 732s failed 732s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=10485 encryption=none.present True"' to rerun this test only. 732s retrieveKeyFile: FAIL 732s ./Command/TestRemote.hs:295: 732s failed 732s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=10485 encryption=none.retrieveKeyFile"' to rerun this test only. 732s fsck downloaded object: FAIL 732s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 732s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=10485 encryption=none.fsck downloaded object"' to rerun this test only. 732s retrieveKeyFile resume from 0: FAIL 732s ./Command/TestRemote.hs:295: 732s failed 732s Use -p '/key size Just 1048576; remote chunksize=10485 encryption=none.retrieveKeyFile resume from 0/' to rerun this test only. 732s fsck downloaded object: FAIL 732s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 732s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=10485 encryption=none.fsck downloaded object"' to rerun this test only. 732s retrieveKeyFile resume from 33%: FAIL 732s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 732s Use -p '/key size Just 1048576; remote chunksize=10485 encryption=none.retrieveKeyFile resume from 33%/' to rerun this test only. 732s fsck downloaded object: cp: cannot stat '.git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key': No such file or directory 732s FAIL 732s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 732s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=10485 encryption=none.fsck downloaded object"' to rerun this test only. 732s retrieveKeyFile resume from end: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 732s FAIL 732s ./Command/TestRemote.hs:295: 732s failed 732s Use -p '/key size Just 1048576; remote chunksize=10485 encryption=none.retrieveKeyFile resume from end/' to rerun this test only. 732s fsck downloaded object: FAIL 732s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 732s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=10485 encryption=none.fsck downloaded object"' to rerun this test only. 732s removeKey when present: OK (0.08s) 732s present False: OK 732s key size Just 1048576; remote chunksize=10485 encryption=shared 733s removeKey when not present: OK (0.60s) 733s present False: OK 733s storeKey: FAIL 733s Exception: content not available to send 733s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=10485 encryption=shared.storeKey"' to rerun this test only. 733s present True: FAIL 733s ./Command/TestRemote.hs:295: 733s failed 733s not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 733s not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 733s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=10485 encryption=shared.present True"' to rerun this test only. 733s storeKey when already present: FAIL 733s Exception: content not available to send 733s Use -p '/key size Just 1048576; remote chunksize=10485 encryption=shared.storeKey when already present/' to rerun this test only. 733s present True: FAIL (0.03s) 733s ./Command/TestRemote.hs:295: 733s failed 733s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=10485 encryption=shared.present True"' to rerun this test only. 733s retrieveKeyFile: FAIL 733s ./Command/TestRemote.hs:295: 733s failed 733s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=10485 encryption=shared.retrieveKeyFile"' to rerun this test only. 733s fsck downloaded object: FAIL 733s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 733s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=10485 encryption=shared.fsck downloaded object"' to rerun this test only. 733s retrieveKeyFile resume from 0: FAIL 733s ./Command/TestRemote.hs:295: 733s failed 733s Use -p '/key size Just 1048576; remote chunksize=10485 encryption=shared.retrieveKeyFile resume from 0/' to rerun this test only. 733s fsck downloaded object: FAIL 733s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 733s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=10485 encryption=shared.fsck downloaded object"' to rerun this test only. 733s retrieveKeyFile resume from 33%: cp: cannot stat '.git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key': No such file or directory 733s FAIL 733s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 733s Use -p '/key size Just 1048576; remote chunksize=10485 encryption=shared.retrieveKeyFile resume from 33%/' to rerun this test only. 733s fsck downloaded object: FAIL 733s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 733s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=10485 encryption=shared.fsck downloaded object"' to rerun this test only. 733s retrieveKeyFile resume from end: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 733s FAIL (0.02s) 733s ./Command/TestRemote.hs:295: 733s failed 733s Use -p '/key size Just 1048576; remote chunksize=10485 encryption=shared.retrieveKeyFile resume from end/' to rerun this test only. 733s fsck downloaded object: FAIL 733s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 733s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=10485 encryption=shared.fsck downloaded object"' to rerun this test only. 733s removeKey when present: OK (0.08s) 733s present False: OK 733s key size Just 1048576; remote chunksize=1048 encryption=none 734s removeKey when not present: OK (1.21s) 734s present False: OK 734s storeKey: FAIL 734s Exception: content not available to send 734s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048 encryption=none.storeKey"' to rerun this test only. 734s present True: FAIL 734s ./Command/TestRemote.hs:295: 734s failed 734s not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 734s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048 encryption=none.present True"' to rerun this test only. 734s storeKey when already present: FAIL 734s Exception: content not available to send 734s Use -p '/key size Just 1048576; remote chunksize=1048 encryption=none.storeKey when already present/' to rerun this test only. 734s present True: FAIL (0.03s) 734s ./Command/TestRemote.hs:295: 734s failed 734s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048 encryption=none.present True"' to rerun this test only. 734s retrieveKeyFile: FAIL 734s ./Command/TestRemote.hs:295: 734s failed 734s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048 encryption=none.retrieveKeyFile"' to rerun this test only. 734s fsck downloaded object: FAIL 734s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 734s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048 encryption=none.fsck downloaded object"' to rerun this test only. 734s retrieveKeyFile resume from 0: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 734s FAIL 734s ./Command/TestRemote.hs:295: 734s failed 734s Use -p '/key size Just 1048576; remote chunksize=1048 encryption=none.retrieveKeyFile resume from 0/' to rerun this test only. 734s fsck downloaded object: FAIL 734s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 734s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048 encryption=none.fsck downloaded object"' to rerun this test only. 734s retrieveKeyFile resume from 33%: FAIL 734s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 734s Use -p '/key size Just 1048576; remote chunksize=1048 encryption=none.retrieveKeyFile resume from 33%/' to rerun this test only. 734s fsck downloaded object: cp: cannot stat '.git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key': No such file or directory 734s FAIL 734s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 734s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048 encryption=none.fsck downloaded object"' to rerun this test only. 734s retrieveKeyFile resume from end: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 734s FAIL (0.03s) 734s ./Command/TestRemote.hs:295: 734s failed 734s Use -p '/key size Just 1048576; remote chunksize=1048 encryption=none.retrieveKeyFile resume from end/' to rerun this test only. 734s fsck downloaded object: FAIL 734s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 734s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048 encryption=none.fsck downloaded object"' to rerun this test only. 735s removeKey when present: OK (0.68s) 735s present False: OK 735s key size Just 1048576; remote chunksize=1048 encryption=shared 736s removeKey when not present: OK (1.19s) 736s present False: OK 736s storeKey: FAIL 736s Exception: content not available to send 736s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048 encryption=shared.storeKey"' to rerun this test only. 736s present True: FAIL 736s ./Command/TestRemote.hs:295: 736s failed 736s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048 encryption=shared.present True"' to rerun this test only. 736s not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 736s not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 736s storeKey when already present: FAIL 736s Exception: content not available to send 736s Use -p '/key size Just 1048576; remote chunksize=1048 encryption=shared.storeKey when already present/' to rerun this test only. 736s present True: FAIL (0.03s) 736s ./Command/TestRemote.hs:295: 736s failed 736s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048 encryption=shared.present True"' to rerun this test only. 736s retrieveKeyFile: FAIL 736s ./Command/TestRemote.hs:295: 736s failed 736s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048 encryption=shared.retrieveKeyFile"' to rerun this test only. 736s fsck downloaded object: FAIL 736s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 736s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048 encryption=shared.fsck downloaded object"' to rerun this test only. 736s retrieveKeyFile resume from 0: FAIL 736s ./Command/TestRemote.hs:295: 736s failed 736s Use -p '/key size Just 1048576; remote chunksize=1048 encryption=shared.retrieveKeyFile resume from 0/' to rerun this test only. 736s fsck downloaded object: FAIL 736s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 736s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048 encryption=shared.fsck downloaded object"' to rerun this test only. 736s retrieveKeyFile resume from 33%: cp: cannot stat '.git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key': No such file or directory 736s not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 736s FAIL 736s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 736s Use -p '/key size Just 1048576; remote chunksize=1048 encryption=shared.retrieveKeyFile resume from 33%/' to rerun this test only. 736s fsck downloaded object: FAIL 736s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 736s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048 encryption=shared.fsck downloaded object"' to rerun this test only. 736s retrieveKeyFile resume from end: FAIL (0.04s) 736s ./Command/TestRemote.hs:295: 736s failed 736s Use -p '/key size Just 1048576; remote chunksize=1048 encryption=shared.retrieveKeyFile resume from end/' to rerun this test only. 736s fsck downloaded object: FAIL 736s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 736s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048 encryption=shared.fsck downloaded object"' to rerun this test only. 737s removeKey when present: OK (0.64s) 737s present False: OK 737s key size Just 1048576; remote chunksize=1048576 encryption=none 738s removeKey when not present: OK (0.54s) 738s present False: OK 738s storeKey: FAIL 738s Exception: content not available to send 738s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048576 encryption=none.storeKey"' to rerun this test only. 738s present True: FAIL 738s ./Command/TestRemote.hs:295: 738s failed 738s not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 738s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048576 encryption=none.present True"' to rerun this test only. 738s storeKey when already present: FAIL 738s Exception: content not available to send 738s Use -p '/key size Just 1048576; remote chunksize=1048576 encryption=none.storeKey when already present/' to rerun this test only. 738s present True: FAIL (0.03s) 738s ./Command/TestRemote.hs:295: 738s failed 738s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048576 encryption=none.present True"' to rerun this test only. 738s retrieveKeyFile: FAIL (0.01s) 738s ./Command/TestRemote.hs:295: 738s failed 738s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048576 encryption=none.retrieveKeyFile"' to rerun this test only. 738s fsck downloaded object: FAIL 738s not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 738s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 738s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048576 encryption=none.fsck downloaded object"' to rerun this test only. 738s retrieveKeyFile resume from 0: FAIL (0.01s) 738s ./Command/TestRemote.hs:295: 738s failed 738s Use -p '/key size Just 1048576; remote chunksize=1048576 encryption=none.retrieveKeyFile resume from 0/' to rerun this test only. 738s fsck downloaded object: FAIL 738s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 738s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048576 encryption=none.fsck downloaded object"' to rerun this test only. 738s retrieveKeyFile resume from 33%: cp: cannot stat '.git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key': No such file or directory 738s FAIL 738s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 738s Use -p '/key size Just 1048576; remote chunksize=1048576 encryption=none.retrieveKeyFile resume from 33%/' to rerun this test only. 738s fsck downloaded object: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 738s FAIL 738s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 738s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048576 encryption=none.fsck downloaded object"' to rerun this test only. 738s retrieveKeyFile resume from end: FAIL (0.03s) 738s ./Command/TestRemote.hs:295: 738s failed 738s Use -p '/key size Just 1048576; remote chunksize=1048576 encryption=none.retrieveKeyFile resume from end/' to rerun this test only. 738s fsck downloaded object: FAIL 738s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 738s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048576 encryption=none.fsck downloaded object"' to rerun this test only. 738s removeKey when present: OK (0.03s) 738s present False: OK 738s key size Just 1048576; remote chunksize=1048576 encryption=shared 738s removeKey when not present: OK (0.52s) 738s present False: OK 738s storeKey: FAIL 738s Exception: content not available to send 738s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048576 encryption=shared.storeKey"' to rerun this test only. 738s present True: FAIL 738s ./Command/TestRemote.hs:295: 738s failed 738s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048576 encryption=shared.present True"' to rerun this test only. 738s storeKey when already present: FAIL 738s Exception: content not available to send 738s Use -p '/key size Just 1048576; remote chunksize=1048576 encryption=shared.storeKey when already present/' to rerun this test only. 738s present True: FAIL (0.03s) 738s ./Command/TestRemote.hs:295: 738s failed 738s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048576 encryption=shared.present True"' to rerun this test only. 738s retrieveKeyFile: FAIL (0.01s) 738s ./Command/TestRemote.hs:295: 738s failed 738s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048576 encryption=shared.retrieveKeyFile"' to rerun this test only. 738s fsck downloaded object: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 738s FAIL 738s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 738s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048576 encryption=shared.fsck downloaded object"' to rerun this test only. 738s retrieveKeyFile resume from 0: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 738s cp: cannot stat '.git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key': No such file or directory 738s FAIL (0.01s) 738s ./Command/TestRemote.hs:295: 738s failed 738s Use -p '/key size Just 1048576; remote chunksize=1048576 encryption=shared.retrieveKeyFile resume from 0/' to rerun this test only. 738s fsck downloaded object: FAIL 738s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 738s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048576 encryption=shared.fsck downloaded object"' to rerun this test only. 738s retrieveKeyFile resume from 33%: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 738s FAIL 738s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 738s Use -p '/key size Just 1048576; remote chunksize=1048576 encryption=shared.retrieveKeyFile resume from 33%/' to rerun this test only. 738s fsck downloaded object: FAIL 738s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 738s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048576 encryption=shared.fsck downloaded object"' to rerun this test only. 739s retrieveKeyFile resume from end: FAIL (0.05s) 739s ./Command/TestRemote.hs:295: 739s failed 739s Use -p '/key size Just 1048576; remote chunksize=1048576 encryption=shared.retrieveKeyFile resume from end/' to rerun this test only. 739s fsck downloaded object: FAIL 739s Exception: .git/annex/objects/xj/5k/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key/SHA256E-s1048576--f3b434c8e6f4bf7880e95c3534c5d3e458f454ddf0c658bb4a011d305031f69c.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 739s Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048576 encryption=shared.fsck downloaded object"' to rerun this test only. 739s removeKey when present: OK (0.02s) 739s present False: OK 739s key size Just 1048577; remote chunksize=0 encryption=none 739s removeKey when not present: OK 739s present False: OK 739s storeKey: OK 739s present True: OK 739s storeKey when already present: OK 739s present True: OK 739s retrieveKeyFile: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 739s FAIL 739s ./Command/TestRemote.hs:295: 739s failed 739s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=0 encryption=none.retrieveKeyFile"' to rerun this test only. 739s fsck downloaded object: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 739s FAIL 739s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 739s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=0 encryption=none.fsck downloaded object"' to rerun this test only. 739s retrieveKeyFile resume from 0: FAIL 739s ./Command/TestRemote.hs:295: 739s failed 739s Use -p '/key size Just 1048577; remote chunksize=0 encryption=none.retrieveKeyFile resume from 0/' to rerun this test only. 739s fsck downloaded object: cp: cannot stat '.git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key': No such file or directory 739s FAIL 739s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 739s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=0 encryption=none.fsck downloaded object"' to rerun this test only. 739s retrieveKeyFile resume from 33%: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 739s FAIL 739s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 739s Use -p '/key size Just 1048577; remote chunksize=0 encryption=none.retrieveKeyFile resume from 33%/' to rerun this test only. 739s fsck downloaded object: FAIL 739s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 739s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=0 encryption=none.fsck downloaded object"' to rerun this test only. 739s retrieveKeyFile resume from end: FAIL (0.04s) 739s ./Command/TestRemote.hs:295: 739s failed 739s Use -p '/key size Just 1048577; remote chunksize=0 encryption=none.retrieveKeyFile resume from end/' to rerun this test only. 739s fsck downloaded object: FAIL 739s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 739s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=0 encryption=none.fsck downloaded object"' to rerun this test only. 739s removeKey when present: OK 739s present False: OK 739s key size Just 1048577; remote chunksize=0 encryption=shared 739s removeKey when not present: OK 739s present False: OK 739s storeKey: FAIL 739s Exception: content not available to send 739s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=0 encryption=shared.storeKey"' to rerun this test only. 739s present True: FAIL 739s ./Command/TestRemote.hs:295: 739s failed 739s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=0 encryption=shared.present True"' to rerun this test only. 739s storeKey when already present: FAIL 739s Exception: content not available to send 739s Use -p '/key size Just 1048577; remote chunksize=0 encryption=shared.storeKey when already present/' to rerun this test only. 739s present True: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 739s FAIL (0.02s) 739s ./Command/TestRemote.hs:295: 739s failed 739s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=0 encryption=shared.present True"' to rerun this test only. 739s retrieveKeyFile: FAIL (0.01s) 739s ./Command/TestRemote.hs:295: 739s failed 739s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=0 encryption=shared.retrieveKeyFile"' to rerun this test only. 739s fsck downloaded object: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 739s FAIL 739s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 739s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=0 encryption=shared.fsck downloaded object"' to rerun this test only. 739s retrieveKeyFile resume from 0: FAIL (0.01s) 739s ./Command/TestRemote.hs:295: 739s failed 739s Use -p '/key size Just 1048577; remote chunksize=0 encryption=shared.retrieveKeyFile resume from 0/' to rerun this test only. 739s fsck downloaded object: cp: cannot stat '.git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key': No such file or directory 739s FAIL 739s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 739s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=0 encryption=shared.fsck downloaded object"' to rerun this test only. 739s retrieveKeyFile resume from 33%: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 739s FAIL 739s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 739s Use -p '/key size Just 1048577; remote chunksize=0 encryption=shared.retrieveKeyFile resume from 33%/' to rerun this test only. 739s fsck downloaded object: FAIL 739s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 739s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=0 encryption=shared.fsck downloaded object"' to rerun this test only. 739s retrieveKeyFile resume from end: FAIL (0.04s) 739s ./Command/TestRemote.hs:295: 739s failed 739s Use -p '/key size Just 1048577; remote chunksize=0 encryption=shared.retrieveKeyFile resume from end/' to rerun this test only. 739s fsck downloaded object: FAIL 739s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 739s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=0 encryption=shared.fsck downloaded object"' to rerun this test only. 739s removeKey when present: OK 739s present False: OK 739s key size Just 1048577; remote chunksize=10485 encryption=none 739s removeKey when not present: OK (0.09s) 739s present False: OK 739s storeKey: FAIL 739s Exception: content not available to send 739s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=10485 encryption=none.storeKey"' to rerun this test only. 739s present True: FAIL (0.01s) 739s ./Command/TestRemote.hs:295: 739s failed 739s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=10485 encryption=none.present True"' to rerun this test only. 739s storeKey when already present: FAIL 739s Exception: content not available to send 739s Use -p '/key size Just 1048577; remote chunksize=10485 encryption=none.storeKey when already present/' to rerun this test only. 739s present True: FAIL (0.03s) 739s ./Command/TestRemote.hs:295: 739s failed 739s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=10485 encryption=none.present True"' to rerun this test only. 739s retrieveKeyFile: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 739s FAIL (0.01s) 739s ./Command/TestRemote.hs:295: 739s failed 739s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=10485 encryption=none.retrieveKeyFile"' to rerun this test only. 739s fsck downloaded object: FAIL 739s not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 739s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 739s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=10485 encryption=none.fsck downloaded object"' to rerun this test only. 739s retrieveKeyFile resume from 0: FAIL (0.02s) 739s ./Command/TestRemote.hs:295: 739s failed 739s Use -p '/key size Just 1048577; remote chunksize=10485 encryption=none.retrieveKeyFile resume from 0/' to rerun this test only. 739s fsck downloaded object: FAIL 739s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 739s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=10485 encryption=none.fsck downloaded object"' to rerun this test only. 739s retrieveKeyFile resume from 33%: FAIL 739s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 739s cp: cannot stat '.git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key': No such file or directory 739s Use -p '/key size Just 1048577; remote chunksize=10485 encryption=none.retrieveKeyFile resume from 33%/' to rerun this test only. 739s fsck downloaded object: FAIL 739s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 739s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=10485 encryption=none.fsck downloaded object"' to rerun this test only. 739s retrieveKeyFile resume from end: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 739s FAIL (0.04s) 739s ./Command/TestRemote.hs:295: 739s failed 739s Use -p '/key size Just 1048577; remote chunksize=10485 encryption=none.retrieveKeyFile resume from end/' to rerun this test only. 739s fsck downloaded object: FAIL 739s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 739s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=10485 encryption=none.fsck downloaded object"' to rerun this test only. 739s removeKey when present: OK (0.08s) 739s present False: OK 739s key size Just 1048577; remote chunksize=10485 encryption=shared 739s removeKey when not present: OK (0.07s) 739s present False: OK 739s storeKey: FAIL 739s Exception: content not available to send 739s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=10485 encryption=shared.storeKey"' to rerun this test only. 739s present True: FAIL (0.01s) 739s ./Command/TestRemote.hs:295: 739s failed 739s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=10485 encryption=shared.present True"' to rerun this test only. 739s storeKey when already present: FAIL 739s Exception: content not available to send 739s Use -p '/key size Just 1048577; remote chunksize=10485 encryption=shared.storeKey when already present/' to rerun this test only. 739s present True: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 739s FAIL (0.03s) 739s ./Command/TestRemote.hs:295: 739s failed 739s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=10485 encryption=shared.present True"' to rerun this test only. 739s retrieveKeyFile: FAIL (0.01s) 739s ./Command/TestRemote.hs:295: 739s failed 739s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=10485 encryption=shared.retrieveKeyFile"' to rerun this test only. 739s fsck downloaded object: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 739s FAIL 739s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 739s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=10485 encryption=shared.fsck downloaded object"' to rerun this test only. 739s retrieveKeyFile resume from 0: FAIL (0.01s) 739s ./Command/TestRemote.hs:295: 739s failed 739s Use -p '/key size Just 1048577; remote chunksize=10485 encryption=shared.retrieveKeyFile resume from 0/' to rerun this test only. 739s fsck downloaded object: FAIL 739s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 739s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=10485 encryption=shared.fsck downloaded object"' to rerun this test only. 739s retrieveKeyFile resume from 33%: cp: cannot stat '.git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key': No such file or directory 739s FAIL 739s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 739s Use -p '/key size Just 1048577; remote chunksize=10485 encryption=shared.retrieveKeyFile resume from 33%/' to rerun this test only. 739s fsck downloaded object: FAIL 739s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 739s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=10485 encryption=shared.fsck downloaded object"' to rerun this test only. 739s retrieveKeyFile resume from end: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 740s FAIL (0.04s) 740s ./Command/TestRemote.hs:295: 740s failed 740s Use -p '/key size Just 1048577; remote chunksize=10485 encryption=shared.retrieveKeyFile resume from end/' to rerun this test only. 740s fsck downloaded object: FAIL 740s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 740s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=10485 encryption=shared.fsck downloaded object"' to rerun this test only. 740s removeKey when present: OK (0.08s) 740s present False: OK 740s key size Just 1048577; remote chunksize=1048 encryption=none 740s removeKey when not present: OK (0.66s) 740s present False: OK 740s storeKey: FAIL 740s Exception: content not available to send 740s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048 encryption=none.storeKey"' to rerun this test only. 740s present True: FAIL (0.01s) 740s ./Command/TestRemote.hs:295: 740s failed 740s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048 encryption=none.present True"' to rerun this test only. 740s storeKey when already present: FAIL 740s Exception: content not available to send 740s Use -p '/key size Just 1048577; remote chunksize=1048 encryption=none.storeKey when already present/' to rerun this test only. 740s present True: FAIL (0.03s) 740s ./Command/TestRemote.hs:295: 740s failed 740s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048 encryption=none.present True"' to rerun this test only. 740s retrieveKeyFile: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 740s FAIL (0.01s) 740s ./Command/TestRemote.hs:295: 740s failed 740s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048 encryption=none.retrieveKeyFile"' to rerun this test only. 740s fsck downloaded object: FAIL 740s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 740s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048 encryption=none.fsck downloaded object"' to rerun this test only. 740s retrieveKeyFile resume from 0: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 740s FAIL (0.01s) 740s ./Command/TestRemote.hs:295: 740s failed 740s Use -p '/key size Just 1048577; remote chunksize=1048 encryption=none.retrieveKeyFile resume from 0/' to rerun this test only. 740s fsck downloaded object: FAIL 740s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 740s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048 encryption=none.fsck downloaded object"' to rerun this test only. 740s retrieveKeyFile resume from 33%: FAIL 740s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 740s Use -p '/key size Just 1048577; remote chunksize=1048 encryption=none.retrieveKeyFile resume from 33%/' to rerun this test only. 740s cp: cannot stat '.git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key': No such file or directory 740s fsck downloaded object: FAIL 740s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 740s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048 encryption=none.fsck downloaded object"' to rerun this test only. 740s retrieveKeyFile resume from end: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 740s FAIL (0.02s) 740s ./Command/TestRemote.hs:295: 740s failed 740s Use -p '/key size Just 1048577; remote chunksize=1048 encryption=none.retrieveKeyFile resume from end/' to rerun this test only. 740s fsck downloaded object: FAIL 740s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 740s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048 encryption=none.fsck downloaded object"' to rerun this test only. 741s removeKey when present: OK (0.69s) 741s present False: OK 741s key size Just 1048577; remote chunksize=1048 encryption=shared 742s removeKey when not present: OK (0.67s) 742s present False: OK 742s storeKey: FAIL 742s Exception: content not available to send 742s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048 encryption=shared.storeKey"' to rerun this test only. 742s present True: FAIL (0.01s) 742s ./Command/TestRemote.hs:295: 742s failed 742s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048 encryption=shared.present True"' to rerun this test only. 742s storeKey when already present: FAIL 742s Exception: content not available to send 742s not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 742s Use -p '/key size Just 1048577; remote chunksize=1048 encryption=shared.storeKey when already present/' to rerun this test only. 742s present True: FAIL (0.03s) 742s ./Command/TestRemote.hs:295: 742s failed 742s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048 encryption=shared.present True"' to rerun this test only. 742s retrieveKeyFile: FAIL (0.01s) 742s ./Command/TestRemote.hs:295: 742s failed 742s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048 encryption=shared.retrieveKeyFile"' to rerun this test only. 742s fsck downloaded object: FAIL 742s not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 742s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 742s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048 encryption=shared.fsck downloaded object"' to rerun this test only. 742s retrieveKeyFile resume from 0: FAIL (0.02s) 742s ./Command/TestRemote.hs:295: 742s failed 742s Use -p '/key size Just 1048577; remote chunksize=1048 encryption=shared.retrieveKeyFile resume from 0/' to rerun this test only. 742s fsck downloaded object: FAIL 742s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 742s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048 encryption=shared.fsck downloaded object"' to rerun this test only. 742s retrieveKeyFile resume from 33%: FAIL 742s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 742s Use -p '/key size Just 1048577; remote chunksize=1048 encryption=shared.retrieveKeyFile resume from 33%/' to rerun this test only. 742s fsck downloaded object: cp: cannot stat '.git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key': No such file or directory 742s FAIL 742s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 742s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048 encryption=shared.fsck downloaded object"' to rerun this test only. 742s retrieveKeyFile resume from end: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 742s FAIL (0.02s) 742s ./Command/TestRemote.hs:295: 742s failed 742s Use -p '/key size Just 1048577; remote chunksize=1048 encryption=shared.retrieveKeyFile resume from end/' to rerun this test only. 742s fsck downloaded object: FAIL 742s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 742s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048 encryption=shared.fsck downloaded object"' to rerun this test only. 743s removeKey when present: OK (0.70s) 743s present False: OK 743s key size Just 1048577; remote chunksize=1048576 encryption=none 743s removeKey when not present: OK 743s present False: OK 743s storeKey: FAIL 743s Exception: content not available to send 743s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048576 encryption=none.storeKey"' to rerun this test only. 743s present True: FAIL (0.01s) 743s ./Command/TestRemote.hs:295: 743s failed 743s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048576 encryption=none.present True"' to rerun this test only. 743s storeKey when already present: FAIL 743s Exception: content not available to send 743s Use -p '/key size Just 1048577; remote chunksize=1048576 encryption=none.storeKey when already present/' to rerun this test only. 743s present True: FAIL (0.03s) 743s ./Command/TestRemote.hs:295: 743s failed 743s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048576 encryption=none.present True"' to rerun this test only. 743s retrieveKeyFile: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 743s FAIL (0.02s) 743s ./Command/TestRemote.hs:295: 743s failed 743s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048576 encryption=none.retrieveKeyFile"' to rerun this test only. 743s fsck downloaded object: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 743s FAIL 743s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 743s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048576 encryption=none.fsck downloaded object"' to rerun this test only. 743s retrieveKeyFile resume from 0: FAIL (0.02s) 743s ./Command/TestRemote.hs:295: 743s failed 743s Use -p '/key size Just 1048577; remote chunksize=1048576 encryption=none.retrieveKeyFile resume from 0/' to rerun this test only. 743s fsck downloaded object: FAIL 743s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 743s cp: cannot stat '.git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key': No such file or directory 743s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048576 encryption=none.fsck downloaded object"' to rerun this test only. 743s retrieveKeyFile resume from 33%: FAIL 743s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 743s Use -p '/key size Just 1048577; remote chunksize=1048576 encryption=none.retrieveKeyFile resume from 33%/' to rerun this test only. 743s fsck downloaded object: FAIL 743s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 743s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048576 encryption=none.fsck downloaded object"' to rerun this test only. 743s retrieveKeyFile resume from end: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 743s FAIL (0.04s) 743s ./Command/TestRemote.hs:295: 743s failed 743s Use -p '/key size Just 1048577; remote chunksize=1048576 encryption=none.retrieveKeyFile resume from end/' to rerun this test only. 743s fsck downloaded object: FAIL 743s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 743s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048576 encryption=none.fsck downloaded object"' to rerun this test only. 743s removeKey when present: OK (0.02s) 743s present False: OK 743s key size Just 1048577; remote chunksize=1048576 encryption=shared 743s removeKey when not present: OK 743s present False: OK 743s storeKey: FAIL 743s Exception: content not available to send 743s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048576 encryption=shared.storeKey"' to rerun this test only. 743s present True: FAIL (0.01s) 743s ./Command/TestRemote.hs:295: 743s failed 743s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048576 encryption=shared.present True"' to rerun this test only. 743s storeKey when already present: FAIL 743s Exception: content not available to send 743s Use -p '/key size Just 1048577; remote chunksize=1048576 encryption=shared.storeKey when already present/' to rerun this test only. 743s present True: FAIL (0.03s) 743s ./Command/TestRemote.hs:295: 743s failed 743s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048576 encryption=shared.present True"' to rerun this test only. 743s retrieveKeyFile: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 743s FAIL (0.01s) 743s ./Command/TestRemote.hs:295: 743s failed 743s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048576 encryption=shared.retrieveKeyFile"' to rerun this test only. 743s fsck downloaded object: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 743s FAIL 743s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 743s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048576 encryption=shared.fsck downloaded object"' to rerun this test only. 743s retrieveKeyFile resume from 0: FAIL (0.02s) 743s ./Command/TestRemote.hs:295: 743s failed 743s Use -p '/key size Just 1048577; remote chunksize=1048576 encryption=shared.retrieveKeyFile resume from 0/' to rerun this test only. 743s fsck downloaded object: FAIL 743s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 743s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048576 encryption=shared.fsck downloaded object"' to rerun this test only. 743s retrieveKeyFile resume from 33%: FAIL 743s cp: cannot stat '.git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key': No such file or directory 743s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 743s Use -p '/key size Just 1048577; remote chunksize=1048576 encryption=shared.retrieveKeyFile resume from 33%/' to rerun this test only. 743s fsck downloaded object: FAIL 743s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 743s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048576 encryption=shared.fsck downloaded object"' to rerun this test only. 743s retrieveKeyFile resume from end: FAIL (0.03s) 743s ./Command/TestRemote.hs:295: 743s failed 743s Use -p '/key size Just 1048577; remote chunksize=1048576 encryption=shared.retrieveKeyFile resume from end/' to rerun this test only. 743s fsck downloaded object: FAIL 743s Exception: .git/annex/objects/1J/q1/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key/SHA256E-s1048577--930652eabdf0e1797f76d3d4d5808be2d40f5e767da065b06dc5b63a259837a9.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 743s Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048576 encryption=shared.fsck downloaded object"' to rerun this test only. 743s removeKey when present: OK (0.03s) 743s present False: OK 743s key size Just 1048575; remote chunksize=0 encryption=none 743s removeKey when not present: OK 743s present False: OK 743s storeKey: OK 743s present True: OK 743s storeKey when already present: OK 743s present True: OK 743s retrieveKeyFile: FAIL 743s ./Command/TestRemote.hs:295: 743s failed 743s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=0 encryption=none.retrieveKeyFile"' to rerun this test only. 743s fsck downloaded object: FAIL 743s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 743s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=0 encryption=none.fsck downloaded object"' to rerun this test only. 743s retrieveKeyFile resume from 0: FAIL (0.02s) 743s ./Command/TestRemote.hs:295: 743s failed 743s Use -p '/key size Just 1048575; remote chunksize=0 encryption=none.retrieveKeyFile resume from 0/' to rerun this test only. 743s fsck downloaded object: FAIL 743s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 743s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=0 encryption=none.fsck downloaded object"' to rerun this test only. 743s retrieveKeyFile resume from 33%: FAIL 743s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 743s Use -p '/key size Just 1048575; remote chunksize=0 encryption=none.retrieveKeyFile resume from 33%/' to rerun this test only. 743s fsck downloaded object: FAIL 743s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 743s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=0 encryption=none.fsck downloaded object"' to rerun this test only. 743s retrieveKeyFile resume from end: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 743s not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 743s not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 743s cp: cannot stat '.git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key': No such file or directory 743s not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 743s FAIL (0.02s) 743s ./Command/TestRemote.hs:295: 743s failed 743s Use -p '/key size Just 1048575; remote chunksize=0 encryption=none.retrieveKeyFile resume from end/' to rerun this test only. 743s fsck downloaded object: FAIL 743s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 743s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=0 encryption=none.fsck downloaded object"' to rerun this test only. 743s removeKey when present: OK (0.02s) 743s present False: OK 743s key size Just 1048575; remote chunksize=0 encryption=shared 743s removeKey when not present: OK 743s present False: OK 743s storeKey: FAIL 743s Exception: content not available to send 743s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=0 encryption=shared.storeKey"' to rerun this test only. 743s present True: FAIL (0.01s) 743s ./Command/TestRemote.hs:295: 743s failed 743s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=0 encryption=shared.present True"' to rerun this test only. 743s storeKey when already present: FAIL 743s Exception: content not available to send 743s Use -p '/key size Just 1048575; remote chunksize=0 encryption=shared.storeKey when already present/' to rerun this test only. 743s present True: FAIL (0.02s) 743s ./Command/TestRemote.hs:295: 743s failed 743s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=0 encryption=shared.present True"' to rerun this test only. 743s retrieveKeyFile: FAIL (0.02s) 743s ./Command/TestRemote.hs:295: 743s failed 743s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=0 encryption=shared.retrieveKeyFile"' to rerun this test only. 743s fsck downloaded object: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 743s FAIL 743s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 743s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=0 encryption=shared.fsck downloaded object"' to rerun this test only. 743s retrieveKeyFile resume from 0: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 743s FAIL (0.02s) 743s ./Command/TestRemote.hs:295: 743s failed 743s Use -p '/key size Just 1048575; remote chunksize=0 encryption=shared.retrieveKeyFile resume from 0/' to rerun this test only. 744s fsck downloaded object: FAIL 744s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 744s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=0 encryption=shared.fsck downloaded object"' to rerun this test only. 744s retrieveKeyFile resume from 33%: FAIL 744s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 744s Use -p '/key size Just 1048575; remote chunksize=0 encryption=shared.retrieveKeyFile resume from 33%/' to rerun this test only. 744s fsck downloaded object: cp: cannot stat '.git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key': No such file or directory 744s FAIL 744s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 744s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=0 encryption=shared.fsck downloaded object"' to rerun this test only. 744s retrieveKeyFile resume from end: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 744s FAIL (0.02s) 744s ./Command/TestRemote.hs:295: 744s failed 744s Use -p '/key size Just 1048575; remote chunksize=0 encryption=shared.retrieveKeyFile resume from end/' to rerun this test only. 744s fsck downloaded object: FAIL 744s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 744s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=0 encryption=shared.fsck downloaded object"' to rerun this test only. 744s removeKey when present: OK (0.02s) 744s present False: OK 744s key size Just 1048575; remote chunksize=10485 encryption=none 744s removeKey when not present: OK (0.07s) 744s present False: OK 744s storeKey: FAIL 744s Exception: content not available to send 744s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=10485 encryption=none.storeKey"' to rerun this test only. 744s present True: FAIL (0.02s) 744s ./Command/TestRemote.hs:295: 744s failed 744s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=10485 encryption=none.present True"' to rerun this test only. 744s storeKey when already present: FAIL 744s Exception: content not available to send 744s Use -p '/key size Just 1048575; remote chunksize=10485 encryption=none.storeKey when already present/' to rerun this test only. 744s present True: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 744s FAIL (0.03s) 744s ./Command/TestRemote.hs:295: 744s failed 744s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=10485 encryption=none.present True"' to rerun this test only. 744s retrieveKeyFile: FAIL (0.02s) 744s ./Command/TestRemote.hs:295: 744s failed 744s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=10485 encryption=none.retrieveKeyFile"' to rerun this test only. 744s fsck downloaded object: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 744s FAIL 744s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 744s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=10485 encryption=none.fsck downloaded object"' to rerun this test only. 744s retrieveKeyFile resume from 0: FAIL (0.02s) 744s ./Command/TestRemote.hs:295: 744s failed 744s Use -p '/key size Just 1048575; remote chunksize=10485 encryption=none.retrieveKeyFile resume from 0/' to rerun this test only. 744s fsck downloaded object: FAIL 744s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 744s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=10485 encryption=none.fsck downloaded object"' to rerun this test only. 744s retrieveKeyFile resume from 33%: cp: cannot stat '.git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key': No such file or directory 744s FAIL 744s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 744s Use -p '/key size Just 1048575; remote chunksize=10485 encryption=none.retrieveKeyFile resume from 33%/' to rerun this test only. 744s fsck downloaded object: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 744s FAIL 744s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 744s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=10485 encryption=none.fsck downloaded object"' to rerun this test only. 744s retrieveKeyFile resume from end: FAIL (0.03s) 744s ./Command/TestRemote.hs:295: 744s failed 744s Use -p '/key size Just 1048575; remote chunksize=10485 encryption=none.retrieveKeyFile resume from end/' to rerun this test only. 744s fsck downloaded object: FAIL 744s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 744s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=10485 encryption=none.fsck downloaded object"' to rerun this test only. 744s removeKey when present: OK (0.10s) 744s present False: OK 744s key size Just 1048575; remote chunksize=10485 encryption=shared 744s removeKey when not present: OK (0.08s) 744s present False: OK 744s storeKey: FAIL 744s Exception: content not available to send 744s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=10485 encryption=shared.storeKey"' to rerun this test only. 744s present True: FAIL (0.02s) 744s ./Command/TestRemote.hs:295: 744s failed 744s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=10485 encryption=shared.present True"' to rerun this test only. 744s storeKey when already present: FAIL 744s Exception: content not available to send 744s Use -p '/key size Just 1048575; remote chunksize=10485 encryption=shared.storeKey when already present/' to rerun this test only. 744s present True: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 744s FAIL (0.03s) 744s ./Command/TestRemote.hs:295: 744s failed 744s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=10485 encryption=shared.present True"' to rerun this test only. 744s retrieveKeyFile: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 744s FAIL (0.02s) 744s ./Command/TestRemote.hs:295: 744s failed 744s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=10485 encryption=shared.retrieveKeyFile"' to rerun this test only. 744s fsck downloaded object: FAIL 744s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 744s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=10485 encryption=shared.fsck downloaded object"' to rerun this test only. 744s retrieveKeyFile resume from 0: FAIL (0.02s) 744s ./Command/TestRemote.hs:295: 744s failed 744s Use -p '/key size Just 1048575; remote chunksize=10485 encryption=shared.retrieveKeyFile resume from 0/' to rerun this test only. 744s fsck downloaded object: FAIL 744s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 744s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=10485 encryption=shared.fsck downloaded object"' to rerun this test only. 744s retrieveKeyFile resume from 33%: FAIL 744s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 744s Use -p '/key size Just 1048575; remote chunksize=10485 encryption=shared.retrieveKeyFile resume from 33%/' to rerun this test only. 744s fsck downloaded object: cp: cannot stat '.git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key': No such file or directory 744s not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 744s FAIL 744s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 744s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=10485 encryption=shared.fsck downloaded object"' to rerun this test only. 744s retrieveKeyFile resume from end: FAIL (0.03s) 744s ./Command/TestRemote.hs:295: 744s failed 744s Use -p '/key size Just 1048575; remote chunksize=10485 encryption=shared.retrieveKeyFile resume from end/' to rerun this test only. 744s fsck downloaded object: FAIL 744s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 744s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=10485 encryption=shared.fsck downloaded object"' to rerun this test only. 744s removeKey when present: OK (0.10s) 744s present False: OK 744s key size Just 1048575; remote chunksize=1048 encryption=none 745s removeKey when not present: OK (0.65s) 745s present False: OK 745s storeKey: FAIL 745s Exception: content not available to send 745s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048 encryption=none.storeKey"' to rerun this test only. 745s present True: FAIL (0.02s) 745s ./Command/TestRemote.hs:295: 745s failed 745s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048 encryption=none.present True"' to rerun this test only. 745s storeKey when already present: FAIL 745s Exception: content not available to send 745s Use -p '/key size Just 1048575; remote chunksize=1048 encryption=none.storeKey when already present/' to rerun this test only. 745s present True: FAIL (0.03s) 745s ./Command/TestRemote.hs:295: 745s failed 745s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048 encryption=none.present True"' to rerun this test only. 745s retrieveKeyFile: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 745s FAIL (0.02s) 745s ./Command/TestRemote.hs:295: 745s failed 745s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048 encryption=none.retrieveKeyFile"' to rerun this test only. 745s fsck downloaded object: FAIL 745s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 745s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048 encryption=none.fsck downloaded object"' to rerun this test only. 745s retrieveKeyFile resume from 0: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 745s FAIL (0.03s) 745s ./Command/TestRemote.hs:295: 745s failed 745s Use -p '/key size Just 1048575; remote chunksize=1048 encryption=none.retrieveKeyFile resume from 0/' to rerun this test only. 745s fsck downloaded object: FAIL 745s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 745s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048 encryption=none.fsck downloaded object"' to rerun this test only. 745s retrieveKeyFile resume from 33%: FAIL 745s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 745s Use -p '/key size Just 1048575; remote chunksize=1048 encryption=none.retrieveKeyFile resume from 33%/' to rerun this test only. 745s fsck downloaded object: cp: cannot stat '.git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key': No such file or directory 745s FAIL 745s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 745s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048 encryption=none.fsck downloaded object"' to rerun this test only. 745s retrieveKeyFile resume from end: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 745s FAIL (0.02s) 745s ./Command/TestRemote.hs:295: 745s failed 745s Use -p '/key size Just 1048575; remote chunksize=1048 encryption=none.retrieveKeyFile resume from end/' to rerun this test only. 745s fsck downloaded object: FAIL 745s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 745s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048 encryption=none.fsck downloaded object"' to rerun this test only. 746s removeKey when present: OK (0.67s) 746s present False: OK 746s key size Just 1048575; remote chunksize=1048 encryption=shared 747s removeKey when not present: OK (0.67s) 747s present False: OK 747s storeKey: FAIL 747s Exception: content not available to send 747s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048 encryption=shared.storeKey"' to rerun this test only. 747s present True: FAIL (0.02s) 747s ./Command/TestRemote.hs:295: 747s failed 747s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048 encryption=shared.present True"' to rerun this test only. 747s storeKey when already present: FAIL 747s Exception: content not available to send 747s Use -p '/key size Just 1048575; remote chunksize=1048 encryption=shared.storeKey when already present/' to rerun this test only. 747s present True: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 747s FAIL (0.03s) 747s ./Command/TestRemote.hs:295: 747s failed 747s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048 encryption=shared.present True"' to rerun this test only. 747s retrieveKeyFile: FAIL (0.02s) 747s ./Command/TestRemote.hs:295: 747s failed 747s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048 encryption=shared.retrieveKeyFile"' to rerun this test only. 747s fsck downloaded object: FAIL 747s not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 747s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 747s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048 encryption=shared.fsck downloaded object"' to rerun this test only. 747s retrieveKeyFile resume from 0: FAIL (0.02s) 747s ./Command/TestRemote.hs:295: 747s failed 747s Use -p '/key size Just 1048575; remote chunksize=1048 encryption=shared.retrieveKeyFile resume from 0/' to rerun this test only. 747s fsck downloaded object: FAIL 747s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 747s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048 encryption=shared.fsck downloaded object"' to rerun this test only. 747s retrieveKeyFile resume from 33%: cp: cannot stat '.git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key': No such file or directory 747s FAIL 747s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 747s Use -p '/key size Just 1048575; remote chunksize=1048 encryption=shared.retrieveKeyFile resume from 33%/' to rerun this test only. 747s fsck downloaded object: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 747s FAIL 747s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 747s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048 encryption=shared.fsck downloaded object"' to rerun this test only. 747s retrieveKeyFile resume from end: FAIL (0.05s) 747s ./Command/TestRemote.hs:295: 747s failed 747s Use -p '/key size Just 1048575; remote chunksize=1048 encryption=shared.retrieveKeyFile resume from end/' to rerun this test only. 747s fsck downloaded object: FAIL 747s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 747s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048 encryption=shared.fsck downloaded object"' to rerun this test only. 748s removeKey when present: OK (0.71s) 748s present False: OK 748s key size Just 1048575; remote chunksize=1048576 encryption=none 748s removeKey when not present: OK 748s present False: OK 748s storeKey: FAIL 748s Exception: content not available to send 748s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048576 encryption=none.storeKey"' to rerun this test only. 748s present True: FAIL (0.02s) 748s ./Command/TestRemote.hs:295: 748s failed 748s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048576 encryption=none.present True"' to rerun this test only. 748s storeKey when already present: FAIL 748s Exception: content not available to send 748s Use -p '/key size Just 1048575; remote chunksize=1048576 encryption=none.storeKey when already present/' to rerun this test only. 748s present True: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 748s FAIL (0.03s) 748s ./Command/TestRemote.hs:295: 748s failed 748s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048576 encryption=none.present True"' to rerun this test only. 748s retrieveKeyFile: FAIL (0.02s) 748s ./Command/TestRemote.hs:295: 748s failed 748s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048576 encryption=none.retrieveKeyFile"' to rerun this test only. 748s fsck downloaded object: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 748s FAIL 748s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 748s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048576 encryption=none.fsck downloaded object"' to rerun this test only. 748s retrieveKeyFile resume from 0: FAIL (0.02s) 748s ./Command/TestRemote.hs:295: 748s failed 748s Use -p '/key size Just 1048575; remote chunksize=1048576 encryption=none.retrieveKeyFile resume from 0/' to rerun this test only. 748s fsck downloaded object: FAIL 748s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 748s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048576 encryption=none.fsck downloaded object"' to rerun this test only. 748s retrieveKeyFile resume from 33%: cp: cannot stat '.git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key': No such file or directory 748s FAIL 748s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 748s Use -p '/key size Just 1048575; remote chunksize=1048576 encryption=none.retrieveKeyFile resume from 33%/' to rerun this test only. 748s fsck downloaded object: FAIL 748s not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 748s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 748s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048576 encryption=none.fsck downloaded object"' to rerun this test only. 748s retrieveKeyFile resume from end: FAIL (0.04s) 748s ./Command/TestRemote.hs:295: 748s failed 748s Use -p '/key size Just 1048575; remote chunksize=1048576 encryption=none.retrieveKeyFile resume from end/' to rerun this test only. 748s fsck downloaded object: FAIL 748s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 748s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048576 encryption=none.fsck downloaded object"' to rerun this test only. 748s removeKey when present: OK (0.03s) 748s present False: OK 748s key size Just 1048575; remote chunksize=1048576 encryption=shared 748s removeKey when not present: OK 748s present False: OK 748s storeKey: FAIL 748s Exception: content not available to send 748s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048576 encryption=shared.storeKey"' to rerun this test only. 748s present True: FAIL (0.02s) 748s ./Command/TestRemote.hs:295: 748s failed 748s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048576 encryption=shared.present True"' to rerun this test only. 748s storeKey when already present: FAIL 748s Exception: content not available to send 748s Use -p '/key size Just 1048575; remote chunksize=1048576 encryption=shared.storeKey when already present/' to rerun this test only. 748s present True: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 748s FAIL (0.03s) 748s ./Command/TestRemote.hs:295: 748s failed 748s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048576 encryption=shared.present True"' to rerun this test only. 748s retrieveKeyFile: FAIL (0.02s) 748s ./Command/TestRemote.hs:295: 748s failed 748s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048576 encryption=shared.retrieveKeyFile"' to rerun this test only. 748s fsck downloaded object: FAIL 748s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 748s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048576 encryption=shared.fsck downloaded object"' to rerun this test only. 748s retrieveKeyFile resume from 0: not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 748s FAIL (0.02s) 748s ./Command/TestRemote.hs:295: 748s failed 748s Use -p '/key size Just 1048575; remote chunksize=1048576 encryption=shared.retrieveKeyFile resume from 0/' to rerun this test only. 748s fsck downloaded object: FAIL 748s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 748s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048576 encryption=shared.fsck downloaded object"' to rerun this test only. 748s retrieveKeyFile resume from 33%: cp: cannot stat '.git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key': No such file or directory 748s FAIL 748s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 748s Use -p '/key size Just 1048575; remote chunksize=1048576 encryption=shared.retrieveKeyFile resume from 33%/' to rerun this test only. 748s fsck downloaded object: FAIL 748s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 748s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048576 encryption=shared.fsck downloaded object"' to rerun this test only. 748s not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 748s retrieveKeyFile resume from end: FAIL (0.05s) 748s ./Command/TestRemote.hs:295: 748s failed 748s Use -p '/key size Just 1048575; remote chunksize=1048576 encryption=shared.retrieveKeyFile resume from end/' to rerun this test only. 748s fsck downloaded object: FAIL 748s Exception: .git/annex/objects/k6/Q2/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key/SHA256E-s1048575--394565b58d6c3344eb9aa93a6173eb337b4a68a83870aa42848a2ddf42d04cff.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 748s Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048576 encryption=shared.fsck downloaded object"' to rerun this test only. 748s removeKey when present: OK (0.04s) 748s present False: OK 748s key size Just 2097152; remote chunksize=0 encryption=none 748s removeKey when not present: OK 748s present False: OK 748s storeKey: OK 748s present True: OK 748s storeKey when already present: not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 748s OK 748s present True: OK 748s retrieveKeyFile: FAIL 748s not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 748s ./Command/TestRemote.hs:295: 748s failed 748s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=0 encryption=none.retrieveKeyFile"' to rerun this test only. 748s fsck downloaded object: FAIL 748s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 748s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=0 encryption=none.fsck downloaded object"' to rerun this test only. 748s retrieveKeyFile resume from 0: FAIL (0.02s) 748s ./Command/TestRemote.hs:295: 748s failed 748s Use -p '/key size Just 2097152; remote chunksize=0 encryption=none.retrieveKeyFile resume from 0/' to rerun this test only. 748s fsck downloaded object: FAIL 748s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 748s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=0 encryption=none.fsck downloaded object"' to rerun this test only. 748s retrieveKeyFile resume from 33%: cp: cannot stat '.git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key': No such file or directory 748s FAIL 748s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 748s Use -p '/key size Just 2097152; remote chunksize=0 encryption=none.retrieveKeyFile resume from 33%/' to rerun this test only. 748s fsck downloaded object: FAIL 748s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 748s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=0 encryption=none.fsck downloaded object"' to rerun this test only. 748s retrieveKeyFile resume from end: not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 748s FAIL (0.05s) 748s ./Command/TestRemote.hs:295: 748s failed 748s Use -p '/key size Just 2097152; remote chunksize=0 encryption=none.retrieveKeyFile resume from end/' to rerun this test only. 748s fsck downloaded object: FAIL 748s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 748s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=0 encryption=none.fsck downloaded object"' to rerun this test only. 748s removeKey when present: OK (0.02s) 748s present False: OK 748s key size Just 2097152; remote chunksize=0 encryption=shared 748s removeKey when not present: OK 748s present False: OK 748s storeKey: FAIL 748s Exception: content not available to send 748s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=0 encryption=shared.storeKey"' to rerun this test only. 748s present True: FAIL (0.02s) 748s ./Command/TestRemote.hs:295: 748s failed 748s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=0 encryption=shared.present True"' to rerun this test only. 748s storeKey when already present: FAIL 748s Exception: content not available to send 748s Use -p '/key size Just 2097152; remote chunksize=0 encryption=shared.storeKey when already present/' to rerun this test only. 748s present True: not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 748s FAIL (0.03s) 748s ./Command/TestRemote.hs:295: 748s failed 748s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=0 encryption=shared.present True"' to rerun this test only. 748s retrieveKeyFile: FAIL 748s ./Command/TestRemote.hs:295: 748s failed 748s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=0 encryption=shared.retrieveKeyFile"' to rerun this test only. 748s fsck downloaded object: not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 748s FAIL 748s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 748s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=0 encryption=shared.fsck downloaded object"' to rerun this test only. 748s retrieveKeyFile resume from 0: FAIL (0.03s) 748s ./Command/TestRemote.hs:295: 748s failed 748s Use -p '/key size Just 2097152; remote chunksize=0 encryption=shared.retrieveKeyFile resume from 0/' to rerun this test only. 748s fsck downloaded object: FAIL 748s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 748s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=0 encryption=shared.fsck downloaded object"' to rerun this test only. 748s retrieveKeyFile resume from 33%: cp: cannot stat '.git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key': No such file or directory 749s FAIL 749s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 749s Use -p '/key size Just 2097152; remote chunksize=0 encryption=shared.retrieveKeyFile resume from 33%/' to rerun this test only. 749s fsck downloaded object: not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 749s FAIL 749s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 749s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=0 encryption=shared.fsck downloaded object"' to rerun this test only. 749s retrieveKeyFile resume from end: FAIL (0.03s) 749s ./Command/TestRemote.hs:295: 749s failed 749s Use -p '/key size Just 2097152; remote chunksize=0 encryption=shared.retrieveKeyFile resume from end/' to rerun this test only. 749s fsck downloaded object: FAIL 749s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 749s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=0 encryption=shared.fsck downloaded object"' to rerun this test only. 749s removeKey when present: OK (0.03s) 749s present False: OK 749s key size Just 2097152; remote chunksize=10485 encryption=none 749s removeKey when not present: OK (0.13s) 749s present False: OK 749s storeKey: FAIL 749s Exception: content not available to send 749s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=10485 encryption=none.storeKey"' to rerun this test only. 749s present True: FAIL (0.02s) 749s ./Command/TestRemote.hs:295: 749s failed 749s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=10485 encryption=none.present True"' to rerun this test only. 749s storeKey when already present: FAIL 749s Exception: content not available to send 749s Use -p '/key size Just 2097152; remote chunksize=10485 encryption=none.storeKey when already present/' to rerun this test only. 749s present True: FAIL (0.03s) 749s ./Command/TestRemote.hs:295: 749s failed 749s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=10485 encryption=none.present True"' to rerun this test only. 749s retrieveKeyFile: not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 749s FAIL (0.02s) 749s ./Command/TestRemote.hs:295: 749s failed 749s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=10485 encryption=none.retrieveKeyFile"' to rerun this test only. 749s fsck downloaded object: not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 749s FAIL 749s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 749s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=10485 encryption=none.fsck downloaded object"' to rerun this test only. 749s retrieveKeyFile resume from 0: FAIL (0.02s) 749s ./Command/TestRemote.hs:295: 749s failed 749s Use -p '/key size Just 2097152; remote chunksize=10485 encryption=none.retrieveKeyFile resume from 0/' to rerun this test only. 749s fsck downloaded object: FAIL 749s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 749s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=10485 encryption=none.fsck downloaded object"' to rerun this test only. 749s retrieveKeyFile resume from 33%: FAIL 749s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 749s Use -p '/key size Just 2097152; remote chunksize=10485 encryption=none.retrieveKeyFile resume from 33%/' to rerun this test only. 749s fsck downloaded object: FAIL 749s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 749s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=10485 encryption=none.fsck downloaded object"' to rerun this test only. 749s retrieveKeyFile resume from end: cp: cannot stat '.git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key': No such file or directory 749s not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 749s FAIL (0.03s) 749s ./Command/TestRemote.hs:295: 749s failed 749s Use -p '/key size Just 2097152; remote chunksize=10485 encryption=none.retrieveKeyFile resume from end/' to rerun this test only. 749s fsck downloaded object: FAIL 749s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 749s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=10485 encryption=none.fsck downloaded object"' to rerun this test only. 749s removeKey when present: OK (0.15s) 749s present False: OK 749s key size Just 2097152; remote chunksize=10485 encryption=shared 749s removeKey when not present: OK (0.13s) 749s present False: OK 749s storeKey: FAIL 749s Exception: content not available to send 749s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=10485 encryption=shared.storeKey"' to rerun this test only. 749s present True: FAIL (0.02s) 749s ./Command/TestRemote.hs:295: 749s failed 749s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=10485 encryption=shared.present True"' to rerun this test only. 749s storeKey when already present: FAIL 749s Exception: content not available to send 749s Use -p '/key size Just 2097152; remote chunksize=10485 encryption=shared.storeKey when already present/' to rerun this test only. 749s present True: not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 749s FAIL (0.03s) 749s ./Command/TestRemote.hs:295: 749s failed 749s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=10485 encryption=shared.present True"' to rerun this test only. 749s retrieveKeyFile: not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 749s FAIL (0.02s) 749s ./Command/TestRemote.hs:295: 749s failed 749s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=10485 encryption=shared.retrieveKeyFile"' to rerun this test only. 749s fsck downloaded object: FAIL 749s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 749s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=10485 encryption=shared.fsck downloaded object"' to rerun this test only. 749s retrieveKeyFile resume from 0: FAIL (0.02s) 749s ./Command/TestRemote.hs:295: 749s failed 749s Use -p '/key size Just 2097152; remote chunksize=10485 encryption=shared.retrieveKeyFile resume from 0/' to rerun this test only. 749s fsck downloaded object: FAIL 749s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 749s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=10485 encryption=shared.fsck downloaded object"' to rerun this test only. 749s retrieveKeyFile resume from 33%: FAIL 749s cp: cannot stat '.git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key': No such file or directory 749s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 749s Use -p '/key size Just 2097152; remote chunksize=10485 encryption=shared.retrieveKeyFile resume from 33%/' to rerun this test only. 749s fsck downloaded object: FAIL 749s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 749s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=10485 encryption=shared.fsck downloaded object"' to rerun this test only. 749s retrieveKeyFile resume from end: not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 750s FAIL (0.04s) 750s ./Command/TestRemote.hs:295: 750s failed 750s Use -p '/key size Just 2097152; remote chunksize=10485 encryption=shared.retrieveKeyFile resume from end/' to rerun this test only. 750s fsck downloaded object: FAIL 750s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 750s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=10485 encryption=shared.fsck downloaded object"' to rerun this test only. 750s removeKey when present: OK (0.16s) 750s present False: OK 750s key size Just 2097152; remote chunksize=1048 encryption=none 751s removeKey when not present: OK (1.27s) 751s present False: OK 751s storeKey: FAIL 751s Exception: content not available to send 751s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048 encryption=none.storeKey"' to rerun this test only. 751s present True: FAIL (0.02s) 751s ./Command/TestRemote.hs:295: 751s failed 751s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048 encryption=none.present True"' to rerun this test only. 751s storeKey when already present: FAIL 751s Exception: content not available to send 751s Use -p '/key size Just 2097152; remote chunksize=1048 encryption=none.storeKey when already present/' to rerun this test only. 751s present True: not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 751s FAIL (0.03s) 751s ./Command/TestRemote.hs:295: 751s failed 751s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048 encryption=none.present True"' to rerun this test only. 751s retrieveKeyFile: FAIL (0.02s) 751s ./Command/TestRemote.hs:295: 751s failed 751s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048 encryption=none.retrieveKeyFile"' to rerun this test only. 751s fsck downloaded object: not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 751s FAIL 751s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 751s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048 encryption=none.fsck downloaded object"' to rerun this test only. 751s retrieveKeyFile resume from 0: FAIL (0.03s) 751s ./Command/TestRemote.hs:295: 751s failed 751s Use -p '/key size Just 2097152; remote chunksize=1048 encryption=none.retrieveKeyFile resume from 0/' to rerun this test only. 751s fsck downloaded object: FAIL 751s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 751s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048 encryption=none.fsck downloaded object"' to rerun this test only. 751s retrieveKeyFile resume from 33%: cp: cannot stat '.git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key': No such file or directory 751s FAIL 751s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 751s Use -p '/key size Just 2097152; remote chunksize=1048 encryption=none.retrieveKeyFile resume from 33%/' to rerun this test only. 751s fsck downloaded object: FAIL 751s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 751s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048 encryption=none.fsck downloaded object"' to rerun this test only. 751s retrieveKeyFile resume from end: not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 751s FAIL (0.04s) 751s ./Command/TestRemote.hs:295: 751s failed 751s Use -p '/key size Just 2097152; remote chunksize=1048 encryption=none.retrieveKeyFile resume from end/' to rerun this test only. 751s fsck downloaded object: FAIL 751s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 751s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048 encryption=none.fsck downloaded object"' to rerun this test only. 753s removeKey when present: OK (1.35s) 753s present False: OK 753s key size Just 2097152; remote chunksize=1048 encryption=shared 754s removeKey when not present: OK (1.30s) 754s present False: OK 754s storeKey: FAIL 754s Exception: content not available to send 754s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048 encryption=shared.storeKey"' to rerun this test only. 754s present True: FAIL (0.02s) 754s ./Command/TestRemote.hs:295: 754s failed 754s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048 encryption=shared.present True"' to rerun this test only. 754s storeKey when already present: FAIL 754s Exception: content not available to send 754s Use -p '/key size Just 2097152; remote chunksize=1048 encryption=shared.storeKey when already present/' to rerun this test only. 754s present True: not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 754s FAIL (0.03s) 754s ./Command/TestRemote.hs:295: 754s failed 754s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048 encryption=shared.present True"' to rerun this test only. 754s retrieveKeyFile: FAIL (0.02s) 754s ./Command/TestRemote.hs:295: 754s failed 754s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048 encryption=shared.retrieveKeyFile"' to rerun this test only. 754s fsck downloaded object: FAIL 754s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 754s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048 encryption=shared.fsck downloaded object"' to rerun this test only. 754s retrieveKeyFile resume from 0: not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 754s FAIL (0.03s) 754s ./Command/TestRemote.hs:295: 754s failed 754s Use -p '/key size Just 2097152; remote chunksize=1048 encryption=shared.retrieveKeyFile resume from 0/' to rerun this test only. 754s fsck downloaded object: FAIL 754s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 754s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048 encryption=shared.fsck downloaded object"' to rerun this test only. 754s retrieveKeyFile resume from 33%: FAIL 754s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 754s Use -p '/key size Just 2097152; remote chunksize=1048 encryption=shared.retrieveKeyFile resume from 33%/' to rerun this test only. 754s fsck downloaded object: cp: cannot stat '.git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key': No such file or directory 754s FAIL 754s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 754s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048 encryption=shared.fsck downloaded object"' to rerun this test only. 754s retrieveKeyFile resume from end: not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 754s FAIL (0.05s) 754s ./Command/TestRemote.hs:295: 754s failed 754s Use -p '/key size Just 2097152; remote chunksize=1048 encryption=shared.retrieveKeyFile resume from end/' to rerun this test only. 754s fsck downloaded object: FAIL 754s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 754s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048 encryption=shared.fsck downloaded object"' to rerun this test only. 755s removeKey when present: OK (1.34s) 755s present False: OK 755s key size Just 2097152; remote chunksize=1048576 encryption=none 755s removeKey when not present: OK 755s present False: OK 755s storeKey: FAIL 755s Exception: content not available to send 756s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048576 encryption=none.storeKey"' to rerun this test only. 756s present True: FAIL (0.02s) 756s ./Command/TestRemote.hs:295: 756s failed 756s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048576 encryption=none.present True"' to rerun this test only. 756s storeKey when already present: FAIL 756s Exception: content not available to send 756s Use -p '/key size Just 2097152; remote chunksize=1048576 encryption=none.storeKey when already present/' to rerun this test only. 756s present True: not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 756s FAIL (0.03s) 756s ./Command/TestRemote.hs:295: 756s failed 756s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048576 encryption=none.present True"' to rerun this test only. 756s retrieveKeyFile: FAIL (0.03s) 756s ./Command/TestRemote.hs:295: 756s failed 756s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048576 encryption=none.retrieveKeyFile"' to rerun this test only. 756s fsck downloaded object: not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 756s FAIL 756s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 756s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048576 encryption=none.fsck downloaded object"' to rerun this test only. 756s retrieveKeyFile resume from 0: FAIL (0.03s) 756s ./Command/TestRemote.hs:295: 756s failed 756s Use -p '/key size Just 2097152; remote chunksize=1048576 encryption=none.retrieveKeyFile resume from 0/' to rerun this test only. 756s fsck downloaded object: FAIL 756s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 756s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048576 encryption=none.fsck downloaded object"' to rerun this test only. 756s retrieveKeyFile resume from 33%: FAIL 756s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 756s Use -p '/key size Just 2097152; remote chunksize=1048576 encryption=none.retrieveKeyFile resume from 33%/' to rerun this test only. 756s fsck downloaded object: cp: cannot stat '.git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key': No such file or directory 756s not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 756s FAIL 756s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 756s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048576 encryption=none.fsck downloaded object"' to rerun this test only. 756s retrieveKeyFile resume from end: FAIL (0.03s) 756s ./Command/TestRemote.hs:295: 756s failed 756s Use -p '/key size Just 2097152; remote chunksize=1048576 encryption=none.retrieveKeyFile resume from end/' to rerun this test only. 756s fsck downloaded object: FAIL 756s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 756s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048576 encryption=none.fsck downloaded object"' to rerun this test only. 756s removeKey when present: OK (0.03s) 756s present False: OK 756s key size Just 2097152; remote chunksize=1048576 encryption=shared 756s removeKey when not present: OK 756s present False: OK 756s storeKey: FAIL 756s Exception: content not available to send 756s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048576 encryption=shared.storeKey"' to rerun this test only. 756s present True: FAIL (0.02s) 756s ./Command/TestRemote.hs:295: 756s failed 756s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048576 encryption=shared.present True"' to rerun this test only. 756s storeKey when already present: FAIL 756s Exception: content not available to send 756s Use -p '/key size Just 2097152; remote chunksize=1048576 encryption=shared.storeKey when already present/' to rerun this test only. 756s present True: FAIL (0.03s) 756s ./Command/TestRemote.hs:295: 756s failed 756s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048576 encryption=shared.present True"' to rerun this test only. 756s not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 756s retrieveKeyFile: FAIL (0.03s) 756s ./Command/TestRemote.hs:295: 756s failed 756s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048576 encryption=shared.retrieveKeyFile"' to rerun this test only. 756s fsck downloaded object: FAIL 756s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 756s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048576 encryption=shared.fsck downloaded object"' to rerun this test only. 756s retrieveKeyFile resume from 0: not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 756s FAIL (0.03s) 756s ./Command/TestRemote.hs:295: 756s failed 756s Use -p '/key size Just 2097152; remote chunksize=1048576 encryption=shared.retrieveKeyFile resume from 0/' to rerun this test only. 756s fsck downloaded object: FAIL 756s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 756s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048576 encryption=shared.fsck downloaded object"' to rerun this test only. 756s retrieveKeyFile resume from 33%: cp: cannot stat '.git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key': No such file or directory 756s FAIL 756s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 756s Use -p '/key size Just 2097152; remote chunksize=1048576 encryption=shared.retrieveKeyFile resume from 33%/' to rerun this test only. 756s fsck downloaded object: not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 756s FAIL 756s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 756s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048576 encryption=shared.fsck downloaded object"' to rerun this test only. 756s retrieveKeyFile resume from end: FAIL (0.05s) 756s ./Command/TestRemote.hs:295: 756s failed 756s Use -p '/key size Just 2097152; remote chunksize=1048576 encryption=shared.retrieveKeyFile resume from end/' to rerun this test only. 756s fsck downloaded object: FAIL 756s Exception: .git/annex/objects/Kx/7X/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key/SHA256E-s2097152--25ac6b672086f40fe370e7a670c2dedc7fa9adc6f3ff5840eb425e36ded1129d.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 756s Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048576 encryption=shared.fsck downloaded object"' to rerun this test only. 756s removeKey when present: OK (0.03s) 756s present False: OK 756s exporttree=yes; key size Just 1048576; key size Just 2097152 756s check present export when not present: OK 756s remove export when not present: OK 756s store export: OK 756s check present export after store: OK 756s store export when already present: OK 756s retrieve export: OK 756s store new content to export: OK 756s check present export after store of new content: OK 756s retrieve export new content: OK 756s remove export: OK 756s check present export after remove: OK 756s retrieve export fails after removal: OK 756s remove export directory: OK 756s remove export directory that is already removed: OK 756s exporttree=yes; key size Just 1048576; key size Just 1048575 756s check present export when not present: OK 756s remove export when not present: OK 756s store export: OK 756s check present export after store: OK 756s store export when already present: OK 756s retrieve export: OK 756s store new content to export: OK 756s check present export after store of new content: OK 756s retrieve export new content: OK 756s remove export: OK 756s check present export after remove: OK 756s retrieve export fails after removal: OK 756s remove export directory: OK 756s remove export directory that is already removed: OK 756s exporttree=yes; key size Just 1048577; key size Just 2097152 756s check present export when not present: OK 756s remove export when not present: OK 756s store export: OK 756s check present export after store: OK 756s store export when already present: OK 756s retrieve export: OK 756s store new content to export: OK 756s check present export after store of new content: OK 756s retrieve export new content: OK 756s remove export: OK 756s check present export after remove: OK 756s retrieve export fails after removal: OK 756s remove export directory: OK 756s remove export directory that is already removed: OK 756s exporttree=yes; key size Just 1048577; key size Just 1048575 756s check present export when not present: OK 756s remove export when not present: OK 756s store export: OK 756s check present export after store: OK 756s store export when already present: OK 756s retrieve export: OK 756s store new content to export: OK 756s check present export after store of new content: OK 756s retrieve export new content: OK 756s remove export: OK 756s check present export after remove: OK 756s retrieve export fails after removal: OK 756s remove export directory: OK 756s remove export directory that is already removed: OK 756s 756s 368 out of 573 tests failed (26.16s) 764s failed 764s (recording state in git...) 764s testremote: 1 failed 764s create(ok): . (dataset) 764s add(ok): one.txt (file) 764s add(ok): subdir/two (file) 764s save(ok): . (dataset) 764s action summary: 764s add (ok: 2) 764s save (ok: 1) 764s add(ok): subdir/four (file) 764s add(ok): three.txt (file) 764s save(ok): . (dataset) 764s action summary: 764s add (ok: 2) 764s save (ok: 1) 764s FAILED 764s ../build.4Ft/src/datalad_next/patches/tests/test_patched_ria_ora.py::test_ria_postclonecfg SKIPPED 766s ../build.4Ft/src/datalad_next/patches/tests/test_push.py::test_invalid_call create(ok): . (dataset) 766s publish(impossible): . (dataset) [No push target given, and none could be auto-detected, please specify via --to] 766s action summary: 766s publish (impossible: 1) 766s publish(impossible): . (dataset) [No push target given, and none could be auto-detected, please specify via --to] 766s action summary: 766s publish (impossible: 1) 766s action summary: 766s publish (notneeded: 1) 766s add(ok): sub (dataset) 766s add(ok): .gitmodules (file) 766s save(ok): . (dataset) 766s create(ok): sub (dataset) 766s action summary: 766s add (ok: 2) 766s create (ok: 1) 766s save (ok: 1) 766s uninstall(ok): . (dataset) 766s subdataset(ok): sub (dataset) 766s PASSED 766s ../build.4Ft/src/datalad_next/patches/tests/test_push.py::test_push[False] create(ok): . (dataset) 766s publish(impossible): . (dataset) [No push target given, and none could be auto-detected, please specify via --to] 766s action summary: 766s publish (impossible: 1) 766s publish(ok): . (dataset) [refs/heads/dl-test-branch->target:refs/heads/dl-test-branch [new branch]] 766s action summary: 766s publish (ok: 1) 766s action summary: 766s publish (notneeded: 1) 766s add(ok): test_mod_file (file) 766s save(ok): . (dataset) 766s action summary: 766s add (ok: 1) 766s save (ok: 1) 766s add(ok): test_mod_annex_file (file) 766s save(ok): . (dataset) 766s action summary: 766s add (ok: 1) 766s save (ok: 1) 766s publish(ok): . (dataset) [refs/heads/dl-test-branch->target:refs/heads/dl-test-branch e734526..fba3a34] 766s action summary: 766s publish (ok: 1) 766s publish(error): . (dataset) [refs/heads/dl-test-branch->target:refs/heads/dl-test-branch [rejected] (non-fast-forward)] 766s action summary: 766s publish (error: 1) 766s Hints: 766s 1: Updates were rejected because the tip of your current branch is behind its remote counterpart. If you want to integrate the remote changes, use 'git pull' before pushing again. See the 'Note about fast-forwards' in 'git push --help' for details. 766s publish(ok): . (dataset) [refs/heads/dl-test-branch->target:refs/heads/dl-test-branch fba3a34...ca994b0 (forced update)] 766s action summary: 766s publish (ok: 1) 766s PASSED 769s ../build.4Ft/src/datalad_next/patches/tests/test_push.py::test_push[True] create(ok): . (dataset) 769s publish(impossible): . (dataset) [No push target given, and none could be auto-detected, please specify via --to] 769s action summary: 769s publish (impossible: 1) 769s publish(ok): . (dataset) [refs/heads/git-annex->target:refs/heads/git-annex 222519c..866f6f3] 769s publish(ok): . (dataset) [refs/heads/dl-test-branch->target:refs/heads/dl-test-branch [new branch]] 769s action summary: 769s publish (ok: 2) 769s action summary: 769s publish (notneeded: 2) 769s add(ok): test_mod_file (file) 769s save(ok): . (dataset) 769s action summary: 769s add (ok: 1) 769s save (ok: 1) 769s add(ok): test_mod_annex_file (file) 769s save(ok): . (dataset) 769s action summary: 769s add (ok: 1) 769s save (ok: 1) 769s FAILED 779s ../build.4Ft/src/datalad_next/patches/tests/test_push.py::test_push_recursive create(ok): . (dataset) 779s add(ok): sub m (dataset) 779s add(ok): .gitmodules (file) 779s save(ok): . (dataset) 779s create(ok): sub m (dataset) 779s action summary: 779s add (ok: 2) 779s create (ok: 1) 779s save (ok: 1) 779s add(ok): subsub m (dataset) 779s add(ok): .gitmodules (file) 779s save(ok): . (dataset) 779s create(ok): subsub m (dataset) 779s action summary: 779s add (ok: 2) 779s create (ok: 1) 779s save (ok: 1) 779s add(ok): subm noannex (dataset) 779s add(ok): .gitmodules (file) 779s save(ok): . (dataset) 779s create(ok): subm noannex (dataset) 779s action summary: 779s add (ok: 2) 779s create (ok: 1) 779s save (ok: 1) 779s add(ok): sub m (dataset) 779s add(ok): .gitmodules (file) 779s save(ok): . (dataset) 779s action summary: 779s add (ok: 2) 779s save (ok: 1) 779s install(ok): /tmp/datalad_temp_test_push_recursivebx_gq0bf (dataset) 779s install(ok): /tmp/datalad_temp_test_push_recursivebx_gq0bf/sub m (dataset) 779s install(ok): /tmp/datalad_temp_test_push_recursivebx_gq0bf/subm noannex (dataset) 779s install(ok): /tmp/datalad_temp_test_push_recursivebx_gq0bf/sub m/subsub m (dataset) 779s action summary: 779s install (ok: 3) 779s publish(error): sub m/subsub m (dataset) [Unknown target sibling 'target'.] 779s publish(error): sub m (dataset) [Unknown target sibling 'target'.] 779s publish(error): subm noannex (dataset) [Unknown target sibling 'target'.] 779s publish(ok): . (dataset) [refs/heads/git-annex->target:refs/heads/git-annex f5a5588..ef18c0e] 779s publish(ok): . (dataset) [refs/heads/dl-test-branch->target:refs/heads/dl-test-branch [new branch]] 779s action summary: 779s publish (error: 3, ok: 2) 779s publish(ok): sub m/subsub m (dataset) [refs/heads/git-annex->target:refs/heads/git-annex 41ddd60..e45d0a9] 779s publish(ok): sub m/subsub m (dataset) [refs/heads/dl-test-branch->target:refs/heads/dl-test-branch [new branch]] 779s publish(ok): sub m (dataset) [refs/heads/git-annex->target:refs/heads/git-annex 082f7c4..ea8e419] 779s publish(ok): sub m (dataset) [refs/heads/dl-test-branch->target:refs/heads/dl-test-branch [new branch]] 779s publish(ok): subm noannex (dataset) [refs/heads/dl-test-branch->target:refs/heads/dl-test-branch [new branch]] 779s action summary: 779s publish (notneeded: 2, ok: 5) 779s action summary: 779s publish (notneeded: 7) 779s add(ok): test_mod_annex_file (file) 779s save(ok): sub m/subsub m (dataset) 779s add(ok): subsub m (dataset) 779s add(ok): .gitmodules (file) 779s save(ok): sub m (dataset) 779s add(ok): sub m (dataset) 779s add(ok): .gitmodules (file) 779s save(ok): . (dataset) 779s action summary: 779s add (ok: 5) 779s save (notneeded: 1, ok: 3) 779s FAILED 783s ../build.4Ft/src/datalad_next/patches/tests/test_push.py::test_push_subds_no_recursion create(ok): . (dataset) 783s add(ok): sub m (dataset) 783s add(ok): .gitmodules (file) 783s save(ok): . (dataset) 783s create(ok): sub m (dataset) 783s action summary: 783s add (ok: 2) 783s create (ok: 1) 783s save (ok: 1) 783s add(ok): subdir/subsub m (dataset) 783s add(ok): .gitmodules (file) 783s save(ok): . (dataset) 783s create(ok): subdir/subsub m (dataset) 783s action summary: 783s add (ok: 2) 783s create (ok: 1) 783s save (ok: 1) 783s add(ok): subdir/test_file (file) 783s save(ok): sub m (dataset) 783s add(ok): sub m (dataset) 783s add(ok): .gitmodules (file) 783s save(ok): . (dataset) 783s action summary: 783s add (ok: 3) 783s save (notneeded: 1, ok: 2) 783s FAILED 785s ../build.4Ft/src/datalad_next/patches/tests/test_push.py::test_force_checkdatapresent create(ok): . (dataset) 785s add(ok): test_mod_annex_file (file) 785s save(ok): . (dataset) 785s action summary: 785s add (ok: 1) 785s save (ok: 1) 785s publish(ok): . (dataset) [refs/heads/git-annex->target:refs/heads/git-annex d320b3d..a9980ce] 785s publish(ok): . (dataset) [refs/heads/dl-test-branch->target:refs/heads/dl-test-branch [new branch]] 785s action summary: 785s publish (ok: 2) 785s FAILED 787s ../build.4Ft/src/datalad_next/patches/tests/test_push.py::test_ria_push create(ok): . (dataset) 787s add(ok): test_mod_annex_file (file) 787s save(ok): . (dataset) 787s action summary: 787s add (ok: 1) 787s save (ok: 1) 787s update(ok): . (dataset) 787s update(ok): . (dataset) 787s configure-sibling(ok): . (sibling) 787s create-sibling-ria(ok): /tmp/datalad_temp_test_ria_push0yznihwm (dataset) 787s action summary: 787s configure-sibling (ok: 1) 787s create-sibling-ria (ok: 1) 787s update (ok: 1) 787s copy(ok): test_mod_annex_file (file) [to datastore-storage...] 787s publish(ok): . (dataset) [refs/heads/dl-test-branch->datastore:refs/heads/dl-test-branch [new branch]] 787s publish(ok): . (dataset) [refs/heads/git-annex->datastore:refs/heads/git-annex [new branch]] 787s action summary: 787s copy (ok: 1) 787s publish (ok: 2) 787s PASSED 790s ../build.4Ft/src/datalad_next/patches/tests/test_push.py::test_gh1426 create(ok): . (dataset) 790s publish(ok): . (dataset) [refs/heads/git-annex->target:refs/heads/git-annex 850f751..0a36da7] 790s publish(ok): . (dataset) [refs/heads/dl-test-branch->target:refs/heads/dl-test-branch [new branch]] 790s action summary: 790s publish (ok: 2) 790s add(ok): sub (dataset) 790s add(ok): .gitmodules (file) 790s save(ok): . (dataset) 790s create(ok): sub (dataset) 790s action summary: 790s add (ok: 2) 790s create (ok: 1) 790s save (ok: 1) 790s publish(ok): . (dataset) [refs/heads/dl-test-branch->target:refs/heads/dl-test-branch 411e0d0..968e8a7] 790s action summary: 790s publish (notneeded: 1, ok: 1) 790s PASSED 790s ../build.4Ft/src/datalad_next/patches/tests/test_push.py::test_publish_target_url SKIPPED 793s ../build.4Ft/src/datalad_next/patches/tests/test_push.py::test_gh1763 FAILED 794s ../build.4Ft/src/datalad_next/patches/tests/test_push.py::test_gh1811 PASSED 795s ../build.4Ft/src/datalad_next/patches/tests/test_push.py::test_push_wanted create(ok): . (dataset) 795s add(ok): data.0 (file) 795s add(ok): secure.1 (file) 795s add(ok): secure.2 (file) 795s save(ok): . (dataset) 795s action summary: 795s add (ok: 3) 795s save (ok: 1) 795s drop(ok): secure.2 (file) 795s update(ok): . (dataset) 795s create_sibling(ok): /tmp/datalad_temp_test_push_wanted0ikwx0tb (dataset) 795s FAILED 798s ../build.4Ft/src/datalad_next/patches/tests/test_push.py::test_auto_data_transfer create(ok): . (dataset) 798s add(ok): foo.dat (file) 798s save(ok): . (dataset) 798s action summary: 798s add (ok: 1) 798s save (ok: 1) 798s update(ok): . (dataset) 798s create_sibling(ok): /tmp/datalad_temp_test_auto_data_transfera9ehvwjp/a (dataset) 798s publish(ok): . (dataset) [refs/heads/git-annex->b:refs/heads/git-annex e4acda2..1b9b970] 798s publish(ok): . (dataset) [refs/heads/dl-test-branch->b:refs/heads/dl-test-branch [new branch]] 798s action summary: 798s publish (ok: 2) 798s action summary: 798s publish (notneeded: 2) 798s FAILED 803s ../build.4Ft/src/datalad_next/patches/tests/test_push.py::test_auto_if_wanted_data_transfer_path_restriction create(ok): . (dataset) 803s add(ok): sub0 (dataset) 803s add(ok): .gitmodules (file) 803s save(ok): . (dataset) 803s create(ok): sub0 (dataset) 803s action summary: 803s add (ok: 2) 803s create (ok: 1) 803s save (ok: 1) 803s add(ok): sub1 (dataset) 803s add(ok): .gitmodules (file) 803s save(ok): . (dataset) 803s create(ok): sub1 (dataset) 803s action summary: 803s add (ok: 2) 803s create (ok: 1) 803s save (ok: 1) 803s add(ok): reg.dat (file) 803s add(ok): sec.dat (file) 803s save(ok): sub1 (dataset) 803s add(ok): reg.dat (file) 803s add(ok): sec.dat (file) 803s save(ok): sub0 (dataset) 803s add(ok): sub0 (dataset) 803s add(ok): sub1 (dataset) 803s add(ok): .gitmodules (file) 803s add(ok): reg.dat (file) 803s add(ok): sec.dat (file) 803s save(ok): . (dataset) 803s action summary: 803s add (ok: 9) 803s save (ok: 3) 803s update(ok): . (dataset) 803s update(ok): . (dataset) 803s update(ok): . (dataset) 803s create_sibling(ok): /tmp/datalad_temp_test_auto_if_wanted_data_transfer_path_restriction5gfj74z1/a/sub1 (dataset) 803s create_sibling(ok): /tmp/datalad_temp_test_auto_if_wanted_data_transfer_path_restriction5gfj74z1/a/sub0 (dataset) 803s create_sibling(ok): /tmp/datalad_temp_test_auto_if_wanted_data_transfer_path_restriction5gfj74z1/a (dataset) 803s action summary: 803s create_sibling (ok: 3) 803s FAILED 805s ../build.4Ft/src/datalad_next/patches/tests/test_push.py::test_push_git_annex_branch_when_no_data create(ok): . (dataset) 805s add(ok): f0 (file) 805s save(ok): . (dataset) 805s action summary: 805s add (ok: 1) 805s save (ok: 1) 805s publish(ok): . (dataset) [refs/heads/dl-test-branch->target:refs/heads/dl-test-branch [new branch]] 805s publish(ok): . (dataset) [refs/heads/git-annex->target:refs/heads/git-annex [new branch]] 805s action summary: 805s publish (ok: 2) 805s PASSED 806s ../build.4Ft/src/datalad_next/patches/tests/test_push.py::test_push_git_annex_branch_many_paths_same_data create(ok): . (dataset) 806s add(ok): f0 (file) 806s add(ok): f1 (file) 806s add(ok): f2 (file) 806s add(ok): f3 (file) 806s add(ok): f4 (file) 806s add(ok): f5 (file) 806s save(ok): . (dataset) 806s action summary: 806s add (ok: 6) 806s save (ok: 1) 806s FAILED 808s ../build.4Ft/src/datalad_next/patches/tests/test_push.py::test_push_matching create(ok): . (dataset) 808s add(ok): f0 (file) 808s save(ok): . (dataset) 808s action summary: 808s add (ok: 1) 808s save (ok: 1) 808s FAILED 809s ../build.4Ft/src/datalad_next/patches/tests/test_push.py::test_nested_pushclone_cycle_allplatforms create(ok): /tmp/datalad_temp_test_nested_pushclone_cycle_allplatformsarhg2yk4/super (dataset) 810s add(ok): sub (dataset) 810s add(ok): .gitmodules (file) 810s save(ok): . (dataset) 810s create(ok): sub (dataset) 810s action summary: 810s add (ok: 2) 810s create (ok: 1) 810s save (ok: 1) 811s add(ok): file2.txt (file) 811s save(ok): sub (dataset) 811s add(ok): sub (dataset) 811s add(ok): .gitmodules (file) 811s add(ok): file1.txt (file) 811s save(ok): . (dataset) 811s action summary: 811s add (ok: 4) 811s save (ok: 2) 812s [INFO] Start checking pre-existing sibling configuration Dataset(/tmp/datalad_temp_test_nested_pushclone_cycle_allplatformsarhg2yk4/super) 812s [INFO] Finished checking pre-existing sibling configuration Dataset(/tmp/datalad_temp_test_nested_pushclone_cycle_allplatformsarhg2yk4/super) 812s [INFO] Creating a new RIA store at /tmp/datalad_temp_test_nested_pushclone_cycle_allplatforms9fz0nqn5 812s [INFO] create siblings 'store' and 'store-storage' ... 814s [INFO] Fetching updates for Dataset(/tmp/datalad_temp_test_nested_pushclone_cycle_allplatformsarhg2yk4/super) 814s [INFO] Configure additional publication dependency on "store-storage" 814s [INFO] create siblings 'store' and 'store-storage' ... 816s [INFO] Fetching updates for Dataset(/tmp/datalad_temp_test_nested_pushclone_cycle_allplatformsarhg2yk4/super/sub) 816s [INFO] Configure additional publication dependency on "store-storage" 816s update(ok): . (dataset) 816s update(ok): . (dataset) 816s configure-sibling(ok): . (sibling) 816s create-sibling-ria(ok): /tmp/datalad_temp_test_nested_pushclone_cycle_allplatformsarhg2yk4/super (dataset) 816s update(ok): . (dataset) 816s update(ok): . (dataset) 816s configure-sibling(ok): . (sibling) 816s create-sibling-ria(ok): /tmp/datalad_temp_test_nested_pushclone_cycle_allplatformsarhg2yk4/super/sub (dataset) 816s action summary: 816s configure-sibling (ok: 2) 816s create-sibling-ria (ok: 2) 816s update (ok: 2) 817s [INFO] Determine push target 817s [INFO] Push refspecs 817s [INFO] Determine push target 817s [INFO] Push refspecs 817s [INFO] Transfer data 818s [INFO] Transfer data 818s [INFO] Update availability information 818s [INFO] Start enumerating objects 818s [INFO] Start counting objects 818s [INFO] Start compressing objects 818s [INFO] Start writing objects 818s [INFO] Finished push of Dataset(/tmp/datalad_temp_test_nested_pushclone_cycle_allplatformsarhg2yk4/super/sub) 818s [INFO] Finished push of Dataset(/tmp/datalad_temp_test_nested_pushclone_cycle_allplatformsarhg2yk4/super/sub) 818s [INFO] Determine push target 818s [INFO] Push refspecs 818s [INFO] Determine push target 818s [INFO] Push refspecs 818s [INFO] Transfer data 818s [INFO] Transfer data 818s [INFO] Update availability information 818s [INFO] Start enumerating objects 818s [INFO] Start counting objects 818s [INFO] Start compressing objects 818s [INFO] Start writing objects 818s copy(ok): sub/file2.txt (file) [to store-storage...] 818s publish(ok): sub (dataset) [refs/heads/dl-test-branch->store:refs/heads/dl-test-branch [new branch]] 818s publish(ok): sub (dataset) [refs/heads/git-annex->store:refs/heads/git-annex [new branch]] 818s copy(ok): file1.txt (file) [to store-storage...] 818s publish(ok): . (dataset) [refs/heads/dl-test-branch->store:refs/heads/dl-test-branch [new branch]] 818s publish(ok): . (dataset) [refs/heads/git-annex->store:refs/heads/git-annex [new branch]] 818s action summary: 818s copy (ok: 2) 818s publish (ok: 4) 818s [INFO] Finished push of Dataset(/tmp/datalad_temp_test_nested_pushclone_cycle_allplatformsarhg2yk4/super) 818s [INFO] Finished push of Dataset(/tmp/datalad_temp_test_nested_pushclone_cycle_allplatformsarhg2yk4/super) 819s [INFO] Attempting a clone into /tmp/datalad_temp_test_nested_pushclone_cycle_allplatformsb_6cpo68/super 819s [INFO] Attempting to clone from file:///tmp/datalad_temp_test_nested_pushclone_cycle_allplatforms9fz0nqn5/bd1/b054c-4331-4036-843d-c37970f712a8 to /tmp/datalad_temp_test_nested_pushclone_cycle_allplatformsb_6cpo68/super 819s [INFO] Completed clone attempts for Dataset(/tmp/datalad_temp_test_nested_pushclone_cycle_allplatformsb_6cpo68/super) 821s [INFO] Configure additional publication dependency on "store-storage" 821s configure-sibling(ok): . (sibling) 821s install(ok): /tmp/datalad_temp_test_nested_pushclone_cycle_allplatformsb_6cpo68/super (dataset) 821s action summary: 821s configure-sibling (ok: 1) 821s install (ok: 1) 822s [INFO] Ensuring presence of Dataset(/tmp/datalad_temp_test_nested_pushclone_cycle_allplatformsb_6cpo68/super) to get /tmp/datalad_temp_test_nested_pushclone_cycle_allplatformsb_6cpo68/super 822s [INFO] Attempting a clone into /tmp/datalad_temp_test_nested_pushclone_cycle_allplatformsb_6cpo68/super/sub 822s [INFO] Attempting to clone from file:///tmp/datalad_temp_test_nested_pushclone_cycle_allplatforms9fz0nqn5/935/fe8c5-50f5-4b7f-8f98-886fdaf24f09 to /tmp/datalad_temp_test_nested_pushclone_cycle_allplatformsb_6cpo68/super/sub 822s [INFO] Completed clone attempts for Dataset(/tmp/datalad_temp_test_nested_pushclone_cycle_allplatformsb_6cpo68/super/sub) 823s [INFO] Configure additional publication dependency on "store-storage" 824s configure-sibling(ok): . (sibling) 824s install(ok): /tmp/datalad_temp_test_nested_pushclone_cycle_allplatformsb_6cpo68/super/sub (dataset) 824s get(error): file1.txt (file) [not enough free space, need 100 MB more (use --force to override this check or adjust annex.diskreserve)] 824s get(error): sub/file2.txt (file) [not enough free space, need 100 MB more (use --force to override this check or adjust annex.diskreserve)] 824s action summary: 824s configure-sibling (ok: 1) 824s get (error: 2) 824s install (ok: 1) 824s subdataset(ok): sub (dataset) 824s .: store(-) [/tmp/datalad_temp_test_nested_pushclone_cycle_allplatforms9fz0nqn5/bd1/b054c-4331-4036-843d-c37970f712a8 (git)] 824s .: store(-) [/tmp/datalad_temp_test_nested_pushclone_cycle_allplatforms9fz0nqn5/935/fe8c5-50f5-4b7f-8f98-886fdaf24f09 (git)] 824s FAILED 826s ../build.4Ft/src/datalad_next/patches/tests/test_push.py::test_push_custom_summary create(ok): . (dataset) 826s add(ok): f2 (file) 826s save(ok): . (dataset) 826s action summary: 826s add (ok: 1) 826s save (ok: 1) 826s PASSED 826s ../build.4Ft/src/datalad_next/patches/tests/test_push_to_export_remote.py::test_is_export_remote PASSED 826s ../build.4Ft/src/datalad_next/patches/tests/test_push_to_export_remote.py::test_patch_pass_through PASSED 826s ../build.4Ft/src/datalad_next/patches/tests/test_push_to_export_remote.py::test_patch_execute_export PASSED 826s ../build.4Ft/src/datalad_next/patches/tests/test_push_to_export_remote.py::test_patch_skip_ignore_targets_export PASSED 826s ../build.4Ft/src/datalad_next/patches/tests/test_push_to_export_remote.py::test_patch_check_envpatch PASSED 826s ../build.4Ft/src/datalad_next/patches/tests/test_push_to_export_remote.py::test_no_special_remotes PASSED 826s ../build.4Ft/src/datalad_next/patches/tests/test_push_to_export_remote.py::test_get_export_records_no_exports PASSED 826s ../build.4Ft/src/datalad_next/patches/tests/test_push_to_export_remote.py::test_get_export_records PASSED 826s ../build.4Ft/src/datalad_next/patches/tests/test_push_to_export_remote.py::test_get_export_log_entry PASSED 826s ../build.4Ft/src/datalad_next/patches/tests/test_push_to_export_remote.py::test_is_valid_treeish SKIPPED 826s ../build.4Ft/src/datalad_next/patches/tests/test_replace_ora_remote.py::test_canonify[ria+file] PASSED 826s ../build.4Ft/src/datalad_next/patches/tests/test_replace_ora_remote.py::test_canonify[file] PASSED 826s ../build.4Ft/src/datalad_next/patches/tests/test_replace_ora_remote.py::test_de_canonify[ria+file] PASSED 826s ../build.4Ft/src/datalad_next/patches/tests/test_replace_ora_remote.py::test_de_canonify[file] PASSED 826s ../build.4Ft/src/datalad_next/patches/tests/test_ria.py::test_ria_ssh_roundtrip SKIPPED 826s ../build.4Ft/src/datalad_next/patches/tests/test_run.py::test_substitution_config_default Traceback (most recent call last): 826s File "", line 1, in 826s breakage 826s NameError: name 'breakage' is not defined 826s PASSED 826s ../build.4Ft/src/datalad_next/patches/tests/test_sshremoteio.py::test_sshremoteio SKIPPED 826s ../build.4Ft/src/datalad_next/patches/tests/test_sshremoteio.py::test_sshremoteio_7z SKIPPED 827s ../build.4Ft/src/datalad_next/repo_utils/tests/test_annex.py::test_has_initialized_annex PASSED 827s ../build.4Ft/src/datalad_next/repo_utils/tests/test_annex.py::test_no_initialized_annex PASSED 827s ../build.4Ft/src/datalad_next/repo_utils/tests/test_head.py::test_get_worktree_head Initialized empty Git repository in /tmp/pytest-of-ubuntu/pytest-0/test_get_worktree_head0/reponohead/.git/ 827s PASSED 827s ../build.4Ft/src/datalad_next/runners/tests/test_git.py::test_call_git git: 'notacommand' is not a git command. See 'git --help'. 827s git version 2.51.0 827s git: 'notacommand' is not a git command. See 'git --help'. 827s PASSED 827s ../build.4Ft/src/datalad_next/runners/tests/test_git.py::test_call_git_success git version 2.51.0 827s PASSED 827s ../build.4Ft/src/datalad_next/runners/tests/test_git.py::test_call_git_lines PASSED 827s ../build.4Ft/src/datalad_next/runners/tests/test_git.py::test_call_git_oneline PASSED 827s ../build.4Ft/src/datalad_next/runners/tests/test_git.py::test_iter_git_subproc PASSED 828s ../build.4Ft/src/datalad_next/runners/tests/test_iter_subproc.py::test_iter_subproc_cwd PASSED 828s ../build.4Ft/src/datalad_next/shell/tests/test_response_generators.py::test_unknown_state_detection_in_variable PASSED 828s ../build.4Ft/src/datalad_next/shell/tests/test_response_generators.py::test_unknown_state_detection PASSED 828s ../build.4Ft/src/datalad_next/shell/tests/test_response_generators.py::test_trailing_content_detection_in_variable PASSED 828s ../build.4Ft/src/datalad_next/shell/tests/test_response_generators.py::test_trailing_content_detection_in_fixed PASSED 828s ../build.4Ft/src/datalad_next/shell/tests/test_response_generators.py::test_trailing_content_detection_in_download PASSED 828s ../build.4Ft/src/datalad_next/shell/tests/test_shell.py::test_basic_functionality[/etc/passwd] SKIPPED 828s ../build.4Ft/src/datalad_next/shell/tests/test_shell.py::test_basic_functionality[/etc/shells] SKIPPED 828s ../build.4Ft/src/datalad_next/shell/tests/test_shell.py::test_basic_functionality_multi SKIPPED 828s ../build.4Ft/src/datalad_next/shell/tests/test_shell.py::test_return_code_functionality SKIPPED 828s ../build.4Ft/src/datalad_next/shell/tests/test_shell.py::test_stdout_forwarding[echo 0123456789-0123456789\n] SKIPPED 828s ../build.4Ft/src/datalad_next/shell/tests/test_shell.py::test_stdout_forwarding[echo -n 0123456789-0123456789] SKIPPED 828s ../build.4Ft/src/datalad_next/shell/tests/test_shell.py::test_stdout_forwarding_multi SKIPPED 828s ../build.4Ft/src/datalad_next/shell/tests/test_shell.py::test_exit_if_unlimited_stdin_is_closed SKIPPED 828s ../build.4Ft/src/datalad_next/shell/tests/test_shell.py::test_continuation_after_stdin_reading SKIPPED 828s ../build.4Ft/src/datalad_next/shell/tests/test_shell.py::test_upload SKIPPED 828s ../build.4Ft/src/datalad_next/shell/tests/test_shell.py::test_download_ssh SKIPPED 828s ../build.4Ft/src/datalad_next/shell/tests/test_shell.py::test_download_local_bash PASSED 828s ../build.4Ft/src/datalad_next/shell/tests/test_shell.py::test_upload_local_bash PASSED 828s ../build.4Ft/src/datalad_next/shell/tests/test_shell.py::test_upload_local_bash_error PASSED 828s ../build.4Ft/src/datalad_next/shell/tests/test_shell.py::test_delete SKIPPED 828s ../build.4Ft/src/datalad_next/shell/tests/test_shell.py::test_delete_error SKIPPED 828s ../build.4Ft/src/datalad_next/shell/tests/test_shell.py::test_returncode PASSED 828s ../build.4Ft/src/datalad_next/shell/tests/test_shell.py::test_powershell_basic SKIPPED 828s ../build.4Ft/src/datalad_next/shell/tests/test_shell.py::test_powershell_repr SKIPPED 828s ../build.4Ft/src/datalad_next/shell/tests/test_shell.py::test_posix_repr PASSED 828s ../build.4Ft/src/datalad_next/shell/tests/test_shell.py::test_variable_length_reuse PASSED 828s ../build.4Ft/src/datalad_next/shell/tests/test_shell.py::test_bad_zero_command PASSED 828s ../build.4Ft/src/datalad_next/shell/tests/test_shell.py::test_fixed_length_response_generator_bash PASSED 828s ../build.4Ft/src/datalad_next/shell/tests/test_shell.py::test_fixed_length_response_generator_powershell SKIPPED 828s ../build.4Ft/src/datalad_next/shell/tests/test_shell.py::test_download_length_error PASSED 828s ../build.4Ft/src/datalad_next/shell/tests/test_shell.py::test_download_error PASSED 828s ../build.4Ft/src/datalad_next/tests/test_common_cfg.py::test_annexretry PASSED 828s ../build.4Ft/src/datalad_next/tests/test_register.py::test_register PASSED 828s ../build.4Ft/src/datalad_next/tests/test_testutils.py::test_serve_webdav_fixture SKIPPED 828s ../build.4Ft/src/datalad_next/types/tests/test_annexkey.py::test_annexkey PASSED 828s ../build.4Ft/src/datalad_next/types/tests/test_annexkey.py::test_annexkey_errors PASSED 828s ../build.4Ft/src/datalad_next/types/tests/test_archivist.py::test_archivistlocator PASSED 828s ../build.4Ft/src/datalad_next/types/tests/test_archivist.py::test_archivistlocatori_errors PASSED 828s ../build.4Ft/src/datalad_next/url_operations/tests/test_any.py::test_get_best_url_handler PASSED 828s ../build.4Ft/src/datalad_next/url_operations/tests/test_any.py::test_any_url_operations PASSED 828s ../build.4Ft/src/datalad_next/url_operations/tests/test_file.py::test_file_url_download PASSED 828s ../build.4Ft/src/datalad_next/url_operations/tests/test_file.py::test_file_url_upload PASSED 828s ../build.4Ft/src/datalad_next/url_operations/tests/test_file.py::test_file_url_delete PASSED 828s ../build.4Ft/src/datalad_next/url_operations/tests/test_http.py::test_http_url_operations SKIPPED 828s ../build.4Ft/src/datalad_next/url_operations/tests/test_http.py::test_custom_http_headers_via_config PASSED 828s ../build.4Ft/src/datalad_next/url_operations/tests/test_http.py::test_transparent_decompression SKIPPED 828s ../build.4Ft/src/datalad_next/url_operations/tests/test_http.py::test_compressed_file_stay_compressed SKIPPED 828s ../build.4Ft/src/datalad_next/url_operations/tests/test_http.py::test_size_less_progress_reporting ../build.4Ft/src/datalad_next/url_operations/tests/test_http.py::test_header_adding PASSED 828s ../build.4Ft/src/datalad_next/url_operations/tests/test_ssh.py::test_ssh_url_download SKIPPED 828s ../build.4Ft/src/datalad_next/url_operations/tests/test_ssh.py::test_ssh_url_upload SKIPPED 828s ../build.4Ft/src/datalad_next/url_operations/tests/test_ssh.py::test_ssh_url_upload_from_stdin SKIPPED 829s ../build.4Ft/src/datalad_next/url_operations/tests/test_ssh.py::test_ssh_url_upload_timeout PASSED 829s ../build.4Ft/src/datalad_next/url_operations/tests/test_ssh.py::test_check_return_code PASSED 829s ../build.4Ft/src/datalad_next/utils/tests/test_deprecated.py::test_deprecated PASSED 829s ../build.4Ft/src/datalad_next/utils/tests/test_multihash.py::test_multihash PASSED 829s ../build.4Ft/src/datalad_next/utils/tests/test_multihash.py::test_noophash PASSED 829s ../build.4Ft/src/datalad_next/utils/tests/test_paramdictator.py::test_paramdictator PASSED 829s ../build.4Ft/src/datalad_next/utils/tests/test_parse_www_authenticate.py::test_parse_www_authenticate PASSED 829s ../build.4Ft/src/datalad_next/utils/tests/test_patch.py::test_patched_env PASSEDVersions: annexremote=1.6.6 boto3=1.37.9 cmd:7z=25.01 cmd:annex=10.20250721 cmd:bundled-git=UNKNOWN cmd:git=2.51.0 cmd:ssh=10.0p2 cmd:system-git=2.51.0 cmd:system-ssh=10.0p2 datalad=1.1.5 humanize=4.12.1 iso8601=2.1.0 keyring=25.6.0 keyrings.alt=5.0.2 msgpack=1.0.3 platformdirs=4.3.7 requests=2.32.3 829s Obscure filename: str=b' |;&%b5{}\'"<> .datc ' repr=' |;&%b5{}\'"<> .datc ' 829s Encodings: default='utf-8' filesystem='utf-8' locale.prefered='UTF-8' 829s Environment: LANG='C.UTF-8' GIT_AUTHOR_EMAIL='debian@datalad.org' GIT_AUTHOR_NAME='debian' PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin' GIT_CONFIG_PARAMETERS="'init.defaultBranch=dl-test-branch' 'clone.defaultRemoteName=dl-test-remote'" PYTHON_KEYRING_BACKEND='keyrings.alt.file.PlaintextKeyring' GIT_CONFIG_GLOBAL='/tmp/datalad_temp_5ws015q9/.gitconfig' GIT_ASKPASS='true' GIT_CONFIG_KEY_0='datalad.tests.nonetwork' GIT_CONFIG_VALUE_0='1' GIT_CONFIG_KEY_1='datalad.datasets.topurl' GIT_CONFIG_VALUE_1='https://datasets-tests.datalad.org/' GIT_CONFIG_KEY_2='bogusdataladtestsec.subsec' GIT_CONFIG_VALUE_2='unique' GIT_CONFIG_COUNT='3' 829s 829s 829s ==================================== ERRORS ==================================== 829s __________________ ERROR at setup of test_archivist_retrieval __________________ 829s 829s self = AnnexRepo('/tmp/pytest-of-ubuntu/pytest-0/archivistds0/archiveds') 829s args = ['addurl', '--file', '/tmp/pytest-of-ubuntu/pytest-0/archivistds0/archiveds/.archives/myarchive.tar.gz', 'file:///tmp/pytest-of-ubuntu/pytest-0/archivistds1/myarchive.tar.gz'] 829s files = None, jobs = None 829s protocol = 829s git_options = None, stdin = None, merge_annex_branches = True, kwargs = {} 829s cmd = ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', ...] 829s runner = 829s env = None 829s out_of_space_re = 829s 829s def _call_annex(self, args, files=None, jobs=None, protocol=StdOutErrCapture, 829s git_options=None, stdin=None, merge_annex_branches=True, 829s **kwargs): 829s """Internal helper to run git-annex commands 829s 829s Standard command options are applied in addition to the given arguments, 829s and certain error conditions are detected (if possible) and dedicated 829s exceptions are raised. 829s 829s Parameters 829s ---------- 829s args: list 829s List of git-annex command arguments. 829s files: list, optional 829s If command passes list of files. If list is too long 829s (by number of files or overall size) it will be split, and multiple 829s command invocations will follow 829s jobs : int or 'auto', optional 829s If 'auto', the number of jobs will be determined automatically, 829s informed by the configuration setting 829s 'datalad.runtime.max-annex-jobs'. 829s protocol : WitlessProtocol, optional 829s Protocol class to pass to GitWitlessRunner.run(). By default this is 829s StdOutErrCapture, which will provide default logging behavior and 829s guarantee that stdout/stderr are included in potential CommandError 829s exception. 829s git_options: list, optional 829s Additional arguments for Git to include in the git-annex call 829s (in a position prior to the 'annex' subcommand. 829s stdin: File-like, optional 829s stdin to connect to the git-annex process. Only used when `files` 829s is None. 829s merge_annex_branches: bool, optional 829s If False, annex.merge-annex-branches=false config will be set for 829s git-annex call. Useful for operations which are not intended to 829s benefit from updating information about remote git-annexes 829s **kwargs: 829s Additional arguments are passed on to the WitlessProtocol constructor 829s 829s Returns 829s ------- 829s dict 829s Return value of WitlessRunner.run(). The content of the dict is 829s determined by the given `protocol`. By default, it provides git-annex's 829s stdout and stderr (under these key names) 829s 829s Raises 829s ------ 829s CommandError 829s If the call exits with a non-zero status. 829s 829s OutOfSpaceError 829s If a corresponding statement was detected in git-annex's output on 829s stderr. Only supported if the given protocol captured stderr. 829s 829s RemoteNotAvailableError 829s If a corresponding statement was detected in git-annex's output on 829s stderr. Only supported if the given protocol captured stderr. 829s """ 829s if self.git_annex_version is None: 829s self._check_git_annex_version() 829s 829s # git portion of the command 829s cmd = ['git'] + self._ANNEX_GIT_COMMON_OPTIONS 829s 829s if git_options: 829s cmd += git_options 829s 829s if not self.always_commit: 829s cmd += ['-c', 'annex.alwayscommit=false'] 829s 829s if not merge_annex_branches: 829s cmd += ['-c', 'annex.merge-annex-branches=false'] 829s 829s # annex portion of the command 829s cmd.append('annex') 829s cmd += args 829s 829s if lgr.getEffectiveLevel() <= 8: 829s cmd.append('--debug') 829s 829s if self._annex_common_options: 829s cmd += self._annex_common_options 829s 829s if jobs == 'auto': 829s # Limit to # of CPUs (but at least 3 to start with) 829s # and also an additional config constraint (by default 1 829s # due to https://github.com/datalad/datalad/issues/4404) 829s jobs = self._n_auto_jobs or min( 829s self.config.obtain('datalad.runtime.max-annex-jobs'), 829s max(3, cpu_count())) 829s # cache result to avoid repeated calls to cpu_count() 829s self._n_auto_jobs = jobs 829s if jobs and jobs != 1: 829s cmd.append('-J%d' % jobs) 829s 829s runner = self._git_runner 829s env = None 829s if self.fake_dates_enabled: 829s env = self.add_fake_dates(runner.env) 829s 829s try: 829s if files: 829s if issubclass(protocol, GeneratorMixIn): 829s return runner.run_on_filelist_chunks_items_( 829s cmd, 829s files, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s else: 829s return runner.run_on_filelist_chunks( 829s cmd, 829s files, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s else: 829s > return runner.run( 829s cmd, 829s stdin=stdin, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s 829s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:996: 829s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 829s 829s self = 829s cmd = ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', ...] 829s protocol = , stdin = None 829s cwd = None, env = None, timeout = None, exception_on_error = True, kwargs = {} 829s applied_cwd = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/archivistds0/archiveds') 829s applied_env = {'ADTTMP': '/tmp/autopkgtest.vjeRUT/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-ar.../8.4.2-1 python-pluggy/1.6.0-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-artifacts', ...} 829s threaded_runner = 829s results_or_iterator = {'code': 1, 'stderr': ' not enough free space, need 100 MB more (use --force to override this check or adjust annex.d...addurl: 1 failed\n', 'stdout': 'addurl file:///tmp/pytest-of-ubuntu/pytest-0/archivistds1/myarchive.tar.gz \nfailed\n'} 829s results = {'code': 1, 'stderr': ' not enough free space, need 100 MB more (use --force to override this check or adjust annex.d...addurl: 1 failed\n', 'stdout': 'addurl file:///tmp/pytest-of-ubuntu/pytest-0/archivistds1/myarchive.tar.gz \nfailed\n'} 829s return_code = 1 829s 829s def run(self, 829s cmd: list | str, 829s protocol: type[WitlessProtocol] | None = None, 829s stdin: bytes | IO | Queue | None = None, 829s cwd: PathLike | str | None = None, 829s env: dict | None = None, 829s timeout: float | None = None, 829s exception_on_error: bool = True, 829s **kwargs) -> dict | _ResultGenerator: 829s """Execute a command and communicate with it. 829s 829s Parameters 829s ---------- 829s cmd : list or str 829s Sequence of program arguments. Passing a single string causes 829s execution via the platform shell. 829s protocol : WitlessProtocol, optional 829s Protocol class handling interaction with the running process 829s (e.g. output capture). A number of pre-crafted classes are 829s provided (e.g `KillOutput`, `NoCapture`, `GitProgress`). 829s If the protocol has the GeneratorMixIn-mixin, the run-method 829s will return an iterator and can therefore be used in a for-clause. 829s stdin : file-like, bytes, Queue, or None 829s If stdin is a file-like, it will be directly used as stdin for the 829s subprocess. The caller is responsible for writing to it and closing it. 829s If stdin is a bytes, it will be fed to stdin of the subprocess. 829s If all data is written, stdin will be closed. 829s If stdin is a Queue, all elements (bytes) put into the Queue will 829s be passed to stdin until None is read from the queue. If None is read, 829s stdin of the subprocess is closed. 829s cwd : str or path-like, optional 829s If given, commands are executed with this path as PWD, 829s the PWD of the parent process is used otherwise. Overrides 829s any `cwd` given to the constructor. 829s env : dict, optional 829s Environment to be used for command execution. If given, it will 829s completely replace any environment provided to theconstructor. If 829s `cwd` is given, 'PWD' in the environment is set to its value. 829s This must be a complete environment definition, no values 829s from the current environment will be inherited. Overrides 829s any `env` given to the constructor. 829s timeout: float, optional 829s None or the seconds after which a timeout callback is 829s invoked, if no progress was made in communicating with 829s the sub-process, or if waiting for the subprocess exit 829s took more than the specified time. See the protocol and 829s `ThreadedRunner` descriptions for a more detailed discussion 829s on timeouts. 829s exception_on_error : bool, optional 829s This argument is first interpreted if the protocol is a subclass 829s of `GeneratorMixIn`. If it is `True` (default), a 829s `CommandErrorException` is raised by the generator if the 829s sub process exited with a return code not equal to zero. If the 829s parameter is `False`, no exception is raised. In both cases the 829s return code can be read from the attribute `return_code` of 829s the generator. Then this argument interpreted within this function 829s to not raise `CommandError` if value is False in case of non-0 exit. 829s kwargs : 829s Passed to the Protocol class constructor. 829s 829s Returns 829s ------- 829s dict | _ResultGenerator 829s 829s If the protocol is not a subclass of `GeneratorMixIn`, the 829s result of protocol._prepare_result will be returned. 829s 829s If the protocol is a subclass of `GeneratorMixIn`, a Generator, i.e. 829s a `_ResultGenerator`, will be returned. This allows to use this 829s method in constructs like: 829s 829s for protocol_output in runner.run(): 829s ... 829s 829s Where the iterator yields whatever protocol.pipe_data_received 829s sends into the generator. 829s If all output was yielded and the process has terminated, the 829s generator will raise StopIteration(return_code), where 829s return_code is the return code of the process. The return code 829s of the process will also be stored in the "return_code"-attribute 829s of the runner. So you could write: 829s 829s gen = runner.run() 829s for file_descriptor, data in gen: 829s ... 829s 829s # get the return code of the process 829s result = gen.return_code 829s 829s Raises 829s ------ 829s CommandError 829s On execution failure (non-zero exit code) this exception is 829s raised which provides the command (cmd), stdout, stderr, 829s exit code (status), and a message identifying the failed 829s command, as properties. 829s FileNotFoundError 829s When a given executable does not exist. 829s """ 829s if protocol is None: 829s # by default let all subprocess stream pass through 829s protocol = NoCapture 829s 829s applied_cwd = cwd or self.cwd 829s applied_env = self._get_adjusted_env( 829s env=env or self.env, 829s cwd=applied_cwd, 829s ) 829s 829s lgr.debug( 829s 'Run %r (protocol_class=%s) (cwd=%s)', 829s cmd, 829s protocol.__name__, 829s applied_cwd 829s ) 829s 829s threaded_runner = ThreadedRunner( 829s cmd=cmd, 829s protocol_class=protocol, 829s stdin=stdin, 829s protocol_kwargs=kwargs, 829s timeout=timeout, 829s exception_on_error=exception_on_error, 829s cwd=applied_cwd, 829s env=applied_env 829s ) 829s 829s results_or_iterator = threaded_runner.run() 829s if issubclass(protocol, GeneratorMixIn): 829s return results_or_iterator 829s 829s results = cast(dict, results_or_iterator) 829s # log before any exception is raised 829s lgr.debug("Finished %r with status %s", cmd, results['code']) 829s 829s # make it such that we always blow if a protocol did not report 829s # a return code at all or it was non-0 and we were not asked ignore 829s # errors 829s return_code = results.get('code', None) 829s if return_code is None or (return_code and exception_on_error): 829s # the runner has a better idea, doc string warns Protocol 829s # implementations not to return these 829s results.pop('cmd', None) 829s results.pop('cwd', None) 829s > raise CommandError( 829s # whatever the results were, we carry them forward 829s cmd=cmd, 829s cwd=applied_cwd, 829s **results, 829s ) 829s E datalad.runner.exception.CommandError: CommandError: 'git -c diff.ignoreSubmodules=none -c core.quotepath=false annex addurl --file /tmp/pytest-of-ubuntu/pytest-0/archivistds0/archiveds/.archives/myarchive.tar.gz file:///tmp/pytest-of-ubuntu/pytest-0/archivistds1/myarchive.tar.gz -c annex.dotfiles=true' failed with exitcode 1 under /tmp/pytest-of-ubuntu/pytest-0/archivistds0/archiveds [out: 'addurl file:///tmp/pytest-of-ubuntu/pytest-0/archivistds1/myarchive.tar.gz 829s E failed'] [err: 'not enough free space, need 100 MB more (use --force to override this check or adjust annex.diskreserve) 829s E addurl: 1 failed'] 829s 829s /usr/lib/python3/dist-packages/datalad/runner/runner.py:243: CommandError 829s 829s During handling of the above exception, another exception occurred: 829s 829s archivist_dataset = Dataset('/tmp/pytest-of-ubuntu/pytest-0/archivistds0/archiveds') 829s tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-ubuntu/pytest-0'), _retention_count=3, _retention_policy='all') 829s no_result_rendering = None 829s 829s @pytest.fixture(autouse=False, scope="function") 829s def populated_archivist_dataset( 829s archivist_dataset, tmp_path_factory, no_result_rendering): 829s """Returns a path to generated dataset 829s 829s This dataset references an annex archive with no other annexed files. 829s The datalad special remote 'archivist' is enabled in the dataset and 829s also set to autoenable. 829s 829s Returns 829s ------- 829s Dataset, str, str, tuple(tuples) 829s 1. generated dataset instance 829s 2. the annex key for the included archive 829s 3. the leading directory of all files in the archive 829s 4. iterable with POSIX-path:content pairs for archive members. 829s The path is relative to the leading archive directory, and 829s can also be interpreted relative to the dataset root. 829s """ 829s wpath = tmp_path_factory.mktemp("archivistds") 829s 829s ads = archivist_dataset 829s 829s dscontent = ( 829s ('azip/file1.txt', 'zipfile1'), 829s ('azip/file2.csv', 'zipfile2_muchcontent'), 829s ('atar/file1.txt', 'tarfile1'), 829s ('atar/file2.csv', 'tarfile2_muchcontent'), 829s ) 829s srcds = Dataset(wpath / 'srcds').create() 829s for fpath, fcontent in dscontent: 829s fpath = srcds.pathobj / (PurePosixPath(fpath)) 829s fpath.parent.mkdir(parents=True, exist_ok=True) 829s fpath.write_text(fcontent) 829s srcds.save() 829s 829s archive_root = wpath / 'myarchive' 829s #archivetype = 'zip' 829s 829s akeys = {} 829s 829s # no ZIP just yet 829s # for archivetype, ext in (('zip', ''), ('tar', '.gz')): 829s for archivetype, ext in (('tar', '.gz'), ): 829s archive_path = Path(f"{archive_root}.{archivetype}{ext}") 829s 829s archive_path_inds = ads.pathobj / '.archives' / archive_path.name 829s # create an archive, the easy way, by simply exporting the 829s # entire dataset worktree 829s srcds.export_archive(archive_root, archivetype=archivetype) 829s assert archive_path.exists() 829s 829s # add the archive (in a hidden dir) to be able to reference 829s # it via a key 829s aurl = archive_path.as_uri() 829s > ads.repo.call_annex([ 829s 'addurl', '--file', str(archive_path_inds), aurl]) 829s 829s ../build.4Ft/src/datalad_next/annexremotes/tests/test_archivist.py:86: 829s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 829s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1317: in call_annex 829s return self._call_annex( 829s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 829s 829s self = AnnexRepo('/tmp/pytest-of-ubuntu/pytest-0/archivistds0/archiveds') 829s args = ['addurl', '--file', '/tmp/pytest-of-ubuntu/pytest-0/archivistds0/archiveds/.archives/myarchive.tar.gz', 'file:///tmp/pytest-of-ubuntu/pytest-0/archivistds1/myarchive.tar.gz'] 829s files = None, jobs = None 829s protocol = 829s git_options = None, stdin = None, merge_annex_branches = True, kwargs = {} 829s cmd = ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', ...] 829s runner = 829s env = None 829s out_of_space_re = 829s 829s def _call_annex(self, args, files=None, jobs=None, protocol=StdOutErrCapture, 829s git_options=None, stdin=None, merge_annex_branches=True, 829s **kwargs): 829s """Internal helper to run git-annex commands 829s 829s Standard command options are applied in addition to the given arguments, 829s and certain error conditions are detected (if possible) and dedicated 829s exceptions are raised. 829s 829s Parameters 829s ---------- 829s args: list 829s List of git-annex command arguments. 829s files: list, optional 829s If command passes list of files. If list is too long 829s (by number of files or overall size) it will be split, and multiple 829s command invocations will follow 829s jobs : int or 'auto', optional 829s If 'auto', the number of jobs will be determined automatically, 829s informed by the configuration setting 829s 'datalad.runtime.max-annex-jobs'. 829s protocol : WitlessProtocol, optional 829s Protocol class to pass to GitWitlessRunner.run(). By default this is 829s StdOutErrCapture, which will provide default logging behavior and 829s guarantee that stdout/stderr are included in potential CommandError 829s exception. 829s git_options: list, optional 829s Additional arguments for Git to include in the git-annex call 829s (in a position prior to the 'annex' subcommand. 829s stdin: File-like, optional 829s stdin to connect to the git-annex process. Only used when `files` 829s is None. 829s merge_annex_branches: bool, optional 829s If False, annex.merge-annex-branches=false config will be set for 829s git-annex call. Useful for operations which are not intended to 829s benefit from updating information about remote git-annexes 829s **kwargs: 829s Additional arguments are passed on to the WitlessProtocol constructor 829s 829s Returns 829s ------- 829s dict 829s Return value of WitlessRunner.run(). The content of the dict is 829s determined by the given `protocol`. By default, it provides git-annex's 829s stdout and stderr (under these key names) 829s 829s Raises 829s ------ 829s CommandError 829s If the call exits with a non-zero status. 829s 829s OutOfSpaceError 829s If a corresponding statement was detected in git-annex's output on 829s stderr. Only supported if the given protocol captured stderr. 829s 829s RemoteNotAvailableError 829s If a corresponding statement was detected in git-annex's output on 829s stderr. Only supported if the given protocol captured stderr. 829s """ 829s if self.git_annex_version is None: 829s self._check_git_annex_version() 829s 829s # git portion of the command 829s cmd = ['git'] + self._ANNEX_GIT_COMMON_OPTIONS 829s 829s if git_options: 829s cmd += git_options 829s 829s if not self.always_commit: 829s cmd += ['-c', 'annex.alwayscommit=false'] 829s 829s if not merge_annex_branches: 829s cmd += ['-c', 'annex.merge-annex-branches=false'] 829s 829s # annex portion of the command 829s cmd.append('annex') 829s cmd += args 829s 829s if lgr.getEffectiveLevel() <= 8: 829s cmd.append('--debug') 829s 829s if self._annex_common_options: 829s cmd += self._annex_common_options 829s 829s if jobs == 'auto': 829s # Limit to # of CPUs (but at least 3 to start with) 829s # and also an additional config constraint (by default 1 829s # due to https://github.com/datalad/datalad/issues/4404) 829s jobs = self._n_auto_jobs or min( 829s self.config.obtain('datalad.runtime.max-annex-jobs'), 829s max(3, cpu_count())) 829s # cache result to avoid repeated calls to cpu_count() 829s self._n_auto_jobs = jobs 829s if jobs and jobs != 1: 829s cmd.append('-J%d' % jobs) 829s 829s runner = self._git_runner 829s env = None 829s if self.fake_dates_enabled: 829s env = self.add_fake_dates(runner.env) 829s 829s try: 829s if files: 829s if issubclass(protocol, GeneratorMixIn): 829s return runner.run_on_filelist_chunks_items_( 829s cmd, 829s files, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s else: 829s return runner.run_on_filelist_chunks( 829s cmd, 829s files, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s else: 829s return runner.run( 829s cmd, 829s stdin=stdin, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s except CommandError as e: 829s # Note: A call might result in several 'failures', that can be or 829s # cannot be handled here. Detection of something, we can deal with, 829s # doesn't mean there's nothing else to deal with. 829s 829s # OutOfSpaceError: 829s # Note: 829s # doesn't depend on anything in stdout. Therefore check this before 829s # dealing with stdout 829s out_of_space_re = re.search( 829s "not enough free space, need (.*) more", e.stderr 829s ) 829s if out_of_space_re: 829s > raise OutOfSpaceError(cmd=['annex'] + args, 829s sizemore_msg=out_of_space_re.groups()[0]) 829s E datalad.support.exceptions.OutOfSpaceError: OutOfSpaceError: 'annex addurl --file /tmp/pytest-of-ubuntu/pytest-0/archivistds0/archiveds/.archives/myarchive.tar.gz file:///tmp/pytest-of-ubuntu/pytest-0/archivistds1/myarchive.tar.gz' needs 100 MB more 829s 829s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1015: OutOfSpaceError 829s ------------------------------ Captured log setup ------------------------------ 829s INFO datalad.core.local.save:log.py:436 Total: starting 829s INFO datalad.core.local.save:log.py:436 829s INFO datalad.core.local.save:log.py:436 Total: processed result for /tmp/pytest-of-ubuntu/pytest-0/archivistds1/srcds 829s INFO datalad.core.local.save:log.py:436 Total: done 829s ______________ ERROR at setup of test_archivist_retrieval_legacy _______________ 829s 829s self = AnnexRepo('/tmp/pytest-of-ubuntu/pytest-0/archivistds2/archiveds') 829s args = ['addurl', '--file', '/tmp/pytest-of-ubuntu/pytest-0/archivistds2/archiveds/.archives/myarchive.tar.gz', 'file:///tmp/pytest-of-ubuntu/pytest-0/archivistds3/myarchive.tar.gz'] 829s files = None, jobs = None 829s protocol = 829s git_options = None, stdin = None, merge_annex_branches = True, kwargs = {} 829s cmd = ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', ...] 829s runner = 829s env = None 829s out_of_space_re = 829s 829s def _call_annex(self, args, files=None, jobs=None, protocol=StdOutErrCapture, 829s git_options=None, stdin=None, merge_annex_branches=True, 829s **kwargs): 829s """Internal helper to run git-annex commands 829s 829s Standard command options are applied in addition to the given arguments, 829s and certain error conditions are detected (if possible) and dedicated 829s exceptions are raised. 829s 829s Parameters 829s ---------- 829s args: list 829s List of git-annex command arguments. 829s files: list, optional 829s If command passes list of files. If list is too long 829s (by number of files or overall size) it will be split, and multiple 829s command invocations will follow 829s jobs : int or 'auto', optional 829s If 'auto', the number of jobs will be determined automatically, 829s informed by the configuration setting 829s 'datalad.runtime.max-annex-jobs'. 829s protocol : WitlessProtocol, optional 829s Protocol class to pass to GitWitlessRunner.run(). By default this is 829s StdOutErrCapture, which will provide default logging behavior and 829s guarantee that stdout/stderr are included in potential CommandError 829s exception. 829s git_options: list, optional 829s Additional arguments for Git to include in the git-annex call 829s (in a position prior to the 'annex' subcommand. 829s stdin: File-like, optional 829s stdin to connect to the git-annex process. Only used when `files` 829s is None. 829s merge_annex_branches: bool, optional 829s If False, annex.merge-annex-branches=false config will be set for 829s git-annex call. Useful for operations which are not intended to 829s benefit from updating information about remote git-annexes 829s **kwargs: 829s Additional arguments are passed on to the WitlessProtocol constructor 829s 829s Returns 829s ------- 829s dict 829s Return value of WitlessRunner.run(). The content of the dict is 829s determined by the given `protocol`. By default, it provides git-annex's 829s stdout and stderr (under these key names) 829s 829s Raises 829s ------ 829s CommandError 829s If the call exits with a non-zero status. 829s 829s OutOfSpaceError 829s If a corresponding statement was detected in git-annex's output on 829s stderr. Only supported if the given protocol captured stderr. 829s 829s RemoteNotAvailableError 829s If a corresponding statement was detected in git-annex's output on 829s stderr. Only supported if the given protocol captured stderr. 829s """ 829s if self.git_annex_version is None: 829s self._check_git_annex_version() 829s 829s # git portion of the command 829s cmd = ['git'] + self._ANNEX_GIT_COMMON_OPTIONS 829s 829s if git_options: 829s cmd += git_options 829s 829s if not self.always_commit: 829s cmd += ['-c', 'annex.alwayscommit=false'] 829s 829s if not merge_annex_branches: 829s cmd += ['-c', 'annex.merge-annex-branches=false'] 829s 829s # annex portion of the command 829s cmd.append('annex') 829s cmd += args 829s 829s if lgr.getEffectiveLevel() <= 8: 829s cmd.append('--debug') 829s 829s if self._annex_common_options: 829s cmd += self._annex_common_options 829s 829s if jobs == 'auto': 829s # Limit to # of CPUs (but at least 3 to start with) 829s # and also an additional config constraint (by default 1 829s # due to https://github.com/datalad/datalad/issues/4404) 829s jobs = self._n_auto_jobs or min( 829s self.config.obtain('datalad.runtime.max-annex-jobs'), 829s max(3, cpu_count())) 829s # cache result to avoid repeated calls to cpu_count() 829s self._n_auto_jobs = jobs 829s if jobs and jobs != 1: 829s cmd.append('-J%d' % jobs) 829s 829s runner = self._git_runner 829s env = None 829s if self.fake_dates_enabled: 829s env = self.add_fake_dates(runner.env) 829s 829s try: 829s if files: 829s if issubclass(protocol, GeneratorMixIn): 829s return runner.run_on_filelist_chunks_items_( 829s cmd, 829s files, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s else: 829s return runner.run_on_filelist_chunks( 829s cmd, 829s files, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s else: 829s > return runner.run( 829s cmd, 829s stdin=stdin, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s 829s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:996: 829s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 829s 829s self = 829s cmd = ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', ...] 829s protocol = , stdin = None 829s cwd = None, env = None, timeout = None, exception_on_error = True, kwargs = {} 829s applied_cwd = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/archivistds2/archiveds') 829s applied_env = {'ADTTMP': '/tmp/autopkgtest.vjeRUT/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-ar.../8.4.2-1 python-pluggy/1.6.0-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-artifacts', ...} 829s threaded_runner = 829s results_or_iterator = {'code': 1, 'stderr': ' not enough free space, need 100 MB more (use --force to override this check or adjust annex.d...addurl: 1 failed\n', 'stdout': 'addurl file:///tmp/pytest-of-ubuntu/pytest-0/archivistds3/myarchive.tar.gz \nfailed\n'} 829s results = {'code': 1, 'stderr': ' not enough free space, need 100 MB more (use --force to override this check or adjust annex.d...addurl: 1 failed\n', 'stdout': 'addurl file:///tmp/pytest-of-ubuntu/pytest-0/archivistds3/myarchive.tar.gz \nfailed\n'} 829s return_code = 1 829s 829s def run(self, 829s cmd: list | str, 829s protocol: type[WitlessProtocol] | None = None, 829s stdin: bytes | IO | Queue | None = None, 829s cwd: PathLike | str | None = None, 829s env: dict | None = None, 829s timeout: float | None = None, 829s exception_on_error: bool = True, 829s **kwargs) -> dict | _ResultGenerator: 829s """Execute a command and communicate with it. 829s 829s Parameters 829s ---------- 829s cmd : list or str 829s Sequence of program arguments. Passing a single string causes 829s execution via the platform shell. 829s protocol : WitlessProtocol, optional 829s Protocol class handling interaction with the running process 829s (e.g. output capture). A number of pre-crafted classes are 829s provided (e.g `KillOutput`, `NoCapture`, `GitProgress`). 829s If the protocol has the GeneratorMixIn-mixin, the run-method 829s will return an iterator and can therefore be used in a for-clause. 829s stdin : file-like, bytes, Queue, or None 829s If stdin is a file-like, it will be directly used as stdin for the 829s subprocess. The caller is responsible for writing to it and closing it. 829s If stdin is a bytes, it will be fed to stdin of the subprocess. 829s If all data is written, stdin will be closed. 829s If stdin is a Queue, all elements (bytes) put into the Queue will 829s be passed to stdin until None is read from the queue. If None is read, 829s stdin of the subprocess is closed. 829s cwd : str or path-like, optional 829s If given, commands are executed with this path as PWD, 829s the PWD of the parent process is used otherwise. Overrides 829s any `cwd` given to the constructor. 829s env : dict, optional 829s Environment to be used for command execution. If given, it will 829s completely replace any environment provided to theconstructor. If 829s `cwd` is given, 'PWD' in the environment is set to its value. 829s This must be a complete environment definition, no values 829s from the current environment will be inherited. Overrides 829s any `env` given to the constructor. 829s timeout: float, optional 829s None or the seconds after which a timeout callback is 829s invoked, if no progress was made in communicating with 829s the sub-process, or if waiting for the subprocess exit 829s took more than the specified time. See the protocol and 829s `ThreadedRunner` descriptions for a more detailed discussion 829s on timeouts. 829s exception_on_error : bool, optional 829s This argument is first interpreted if the protocol is a subclass 829s of `GeneratorMixIn`. If it is `True` (default), a 829s `CommandErrorException` is raised by the generator if the 829s sub process exited with a return code not equal to zero. If the 829s parameter is `False`, no exception is raised. In both cases the 829s return code can be read from the attribute `return_code` of 829s the generator. Then this argument interpreted within this function 829s to not raise `CommandError` if value is False in case of non-0 exit. 829s kwargs : 829s Passed to the Protocol class constructor. 829s 829s Returns 829s ------- 829s dict | _ResultGenerator 829s 829s If the protocol is not a subclass of `GeneratorMixIn`, the 829s result of protocol._prepare_result will be returned. 829s 829s If the protocol is a subclass of `GeneratorMixIn`, a Generator, i.e. 829s a `_ResultGenerator`, will be returned. This allows to use this 829s method in constructs like: 829s 829s for protocol_output in runner.run(): 829s ... 829s 829s Where the iterator yields whatever protocol.pipe_data_received 829s sends into the generator. 829s If all output was yielded and the process has terminated, the 829s generator will raise StopIteration(return_code), where 829s return_code is the return code of the process. The return code 829s of the process will also be stored in the "return_code"-attribute 829s of the runner. So you could write: 829s 829s gen = runner.run() 829s for file_descriptor, data in gen: 829s ... 829s 829s # get the return code of the process 829s result = gen.return_code 829s 829s Raises 829s ------ 829s CommandError 829s On execution failure (non-zero exit code) this exception is 829s raised which provides the command (cmd), stdout, stderr, 829s exit code (status), and a message identifying the failed 829s command, as properties. 829s FileNotFoundError 829s When a given executable does not exist. 829s """ 829s if protocol is None: 829s # by default let all subprocess stream pass through 829s protocol = NoCapture 829s 829s applied_cwd = cwd or self.cwd 829s applied_env = self._get_adjusted_env( 829s env=env or self.env, 829s cwd=applied_cwd, 829s ) 829s 829s lgr.debug( 829s 'Run %r (protocol_class=%s) (cwd=%s)', 829s cmd, 829s protocol.__name__, 829s applied_cwd 829s ) 829s 829s threaded_runner = ThreadedRunner( 829s cmd=cmd, 829s protocol_class=protocol, 829s stdin=stdin, 829s protocol_kwargs=kwargs, 829s timeout=timeout, 829s exception_on_error=exception_on_error, 829s cwd=applied_cwd, 829s env=applied_env 829s ) 829s 829s results_or_iterator = threaded_runner.run() 829s if issubclass(protocol, GeneratorMixIn): 829s return results_or_iterator 829s 829s results = cast(dict, results_or_iterator) 829s # log before any exception is raised 829s lgr.debug("Finished %r with status %s", cmd, results['code']) 829s 829s # make it such that we always blow if a protocol did not report 829s # a return code at all or it was non-0 and we were not asked ignore 829s # errors 829s return_code = results.get('code', None) 829s if return_code is None or (return_code and exception_on_error): 829s # the runner has a better idea, doc string warns Protocol 829s # implementations not to return these 829s results.pop('cmd', None) 829s results.pop('cwd', None) 829s > raise CommandError( 829s # whatever the results were, we carry them forward 829s cmd=cmd, 829s cwd=applied_cwd, 829s **results, 829s ) 829s E datalad.runner.exception.CommandError: CommandError: 'git -c diff.ignoreSubmodules=none -c core.quotepath=false annex addurl --file /tmp/pytest-of-ubuntu/pytest-0/archivistds2/archiveds/.archives/myarchive.tar.gz file:///tmp/pytest-of-ubuntu/pytest-0/archivistds3/myarchive.tar.gz -c annex.dotfiles=true' failed with exitcode 1 under /tmp/pytest-of-ubuntu/pytest-0/archivistds2/archiveds [out: 'addurl file:///tmp/pytest-of-ubuntu/pytest-0/archivistds3/myarchive.tar.gz 829s E failed'] [err: 'not enough free space, need 100 MB more (use --force to override this check or adjust annex.diskreserve) 829s E addurl: 1 failed'] 829s 829s /usr/lib/python3/dist-packages/datalad/runner/runner.py:243: CommandError 829s 829s During handling of the above exception, another exception occurred: 829s 829s archivist_dataset = Dataset('/tmp/pytest-of-ubuntu/pytest-0/archivistds2/archiveds') 829s tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-ubuntu/pytest-0'), _retention_count=3, _retention_policy='all') 829s no_result_rendering = None 829s 829s @pytest.fixture(autouse=False, scope="function") 829s def populated_archivist_dataset( 829s archivist_dataset, tmp_path_factory, no_result_rendering): 829s """Returns a path to generated dataset 829s 829s This dataset references an annex archive with no other annexed files. 829s The datalad special remote 'archivist' is enabled in the dataset and 829s also set to autoenable. 829s 829s Returns 829s ------- 829s Dataset, str, str, tuple(tuples) 829s 1. generated dataset instance 829s 2. the annex key for the included archive 829s 3. the leading directory of all files in the archive 829s 4. iterable with POSIX-path:content pairs for archive members. 829s The path is relative to the leading archive directory, and 829s can also be interpreted relative to the dataset root. 829s """ 829s wpath = tmp_path_factory.mktemp("archivistds") 829s 829s ads = archivist_dataset 829s 829s dscontent = ( 829s ('azip/file1.txt', 'zipfile1'), 829s ('azip/file2.csv', 'zipfile2_muchcontent'), 829s ('atar/file1.txt', 'tarfile1'), 829s ('atar/file2.csv', 'tarfile2_muchcontent'), 829s ) 829s srcds = Dataset(wpath / 'srcds').create() 829s for fpath, fcontent in dscontent: 829s fpath = srcds.pathobj / (PurePosixPath(fpath)) 829s fpath.parent.mkdir(parents=True, exist_ok=True) 829s fpath.write_text(fcontent) 829s srcds.save() 829s 829s archive_root = wpath / 'myarchive' 829s #archivetype = 'zip' 829s 829s akeys = {} 829s 829s # no ZIP just yet 829s # for archivetype, ext in (('zip', ''), ('tar', '.gz')): 829s for archivetype, ext in (('tar', '.gz'), ): 829s archive_path = Path(f"{archive_root}.{archivetype}{ext}") 829s 829s archive_path_inds = ads.pathobj / '.archives' / archive_path.name 829s # create an archive, the easy way, by simply exporting the 829s # entire dataset worktree 829s srcds.export_archive(archive_root, archivetype=archivetype) 829s assert archive_path.exists() 829s 829s # add the archive (in a hidden dir) to be able to reference 829s # it via a key 829s aurl = archive_path.as_uri() 829s > ads.repo.call_annex([ 829s 'addurl', '--file', str(archive_path_inds), aurl]) 829s 829s ../build.4Ft/src/datalad_next/annexremotes/tests/test_archivist.py:86: 829s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 829s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1317: in call_annex 829s return self._call_annex( 829s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 829s 829s self = AnnexRepo('/tmp/pytest-of-ubuntu/pytest-0/archivistds2/archiveds') 829s args = ['addurl', '--file', '/tmp/pytest-of-ubuntu/pytest-0/archivistds2/archiveds/.archives/myarchive.tar.gz', 'file:///tmp/pytest-of-ubuntu/pytest-0/archivistds3/myarchive.tar.gz'] 829s files = None, jobs = None 829s protocol = 829s git_options = None, stdin = None, merge_annex_branches = True, kwargs = {} 829s cmd = ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', ...] 829s runner = 829s env = None 829s out_of_space_re = 829s 829s def _call_annex(self, args, files=None, jobs=None, protocol=StdOutErrCapture, 829s git_options=None, stdin=None, merge_annex_branches=True, 829s **kwargs): 829s """Internal helper to run git-annex commands 829s 829s Standard command options are applied in addition to the given arguments, 829s and certain error conditions are detected (if possible) and dedicated 829s exceptions are raised. 829s 829s Parameters 829s ---------- 829s args: list 829s List of git-annex command arguments. 829s files: list, optional 829s If command passes list of files. If list is too long 829s (by number of files or overall size) it will be split, and multiple 829s command invocations will follow 829s jobs : int or 'auto', optional 829s If 'auto', the number of jobs will be determined automatically, 829s informed by the configuration setting 829s 'datalad.runtime.max-annex-jobs'. 829s protocol : WitlessProtocol, optional 829s Protocol class to pass to GitWitlessRunner.run(). By default this is 829s StdOutErrCapture, which will provide default logging behavior and 829s guarantee that stdout/stderr are included in potential CommandError 829s exception. 829s git_options: list, optional 829s Additional arguments for Git to include in the git-annex call 829s (in a position prior to the 'annex' subcommand. 829s stdin: File-like, optional 829s stdin to connect to the git-annex process. Only used when `files` 829s is None. 829s merge_annex_branches: bool, optional 829s If False, annex.merge-annex-branches=false config will be set for 829s git-annex call. Useful for operations which are not intended to 829s benefit from updating information about remote git-annexes 829s **kwargs: 829s Additional arguments are passed on to the WitlessProtocol constructor 829s 829s Returns 829s ------- 829s dict 829s Return value of WitlessRunner.run(). The content of the dict is 829s determined by the given `protocol`. By default, it provides git-annex's 829s stdout and stderr (under these key names) 829s 829s Raises 829s ------ 829s CommandError 829s If the call exits with a non-zero status. 829s 829s OutOfSpaceError 829s If a corresponding statement was detected in git-annex's output on 829s stderr. Only supported if the given protocol captured stderr. 829s 829s RemoteNotAvailableError 829s If a corresponding statement was detected in git-annex's output on 829s stderr. Only supported if the given protocol captured stderr. 829s """ 829s if self.git_annex_version is None: 829s self._check_git_annex_version() 829s 829s # git portion of the command 829s cmd = ['git'] + self._ANNEX_GIT_COMMON_OPTIONS 829s 829s if git_options: 829s cmd += git_options 829s 829s if not self.always_commit: 829s cmd += ['-c', 'annex.alwayscommit=false'] 829s 829s if not merge_annex_branches: 829s cmd += ['-c', 'annex.merge-annex-branches=false'] 829s 829s # annex portion of the command 829s cmd.append('annex') 829s cmd += args 829s 829s if lgr.getEffectiveLevel() <= 8: 829s cmd.append('--debug') 829s 829s if self._annex_common_options: 829s cmd += self._annex_common_options 829s 829s if jobs == 'auto': 829s # Limit to # of CPUs (but at least 3 to start with) 829s # and also an additional config constraint (by default 1 829s # due to https://github.com/datalad/datalad/issues/4404) 829s jobs = self._n_auto_jobs or min( 829s self.config.obtain('datalad.runtime.max-annex-jobs'), 829s max(3, cpu_count())) 829s # cache result to avoid repeated calls to cpu_count() 829s self._n_auto_jobs = jobs 829s if jobs and jobs != 1: 829s cmd.append('-J%d' % jobs) 829s 829s runner = self._git_runner 829s env = None 829s if self.fake_dates_enabled: 829s env = self.add_fake_dates(runner.env) 829s 829s try: 829s if files: 829s if issubclass(protocol, GeneratorMixIn): 829s return runner.run_on_filelist_chunks_items_( 829s cmd, 829s files, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s else: 829s return runner.run_on_filelist_chunks( 829s cmd, 829s files, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s else: 829s return runner.run( 829s cmd, 829s stdin=stdin, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s except CommandError as e: 829s # Note: A call might result in several 'failures', that can be or 829s # cannot be handled here. Detection of something, we can deal with, 829s # doesn't mean there's nothing else to deal with. 829s 829s # OutOfSpaceError: 829s # Note: 829s # doesn't depend on anything in stdout. Therefore check this before 829s # dealing with stdout 829s out_of_space_re = re.search( 829s "not enough free space, need (.*) more", e.stderr 829s ) 829s if out_of_space_re: 829s > raise OutOfSpaceError(cmd=['annex'] + args, 829s sizemore_msg=out_of_space_re.groups()[0]) 829s E datalad.support.exceptions.OutOfSpaceError: OutOfSpaceError: 'annex addurl --file /tmp/pytest-of-ubuntu/pytest-0/archivistds2/archiveds/.archives/myarchive.tar.gz file:///tmp/pytest-of-ubuntu/pytest-0/archivistds3/myarchive.tar.gz' needs 100 MB more 829s 829s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1015: OutOfSpaceError 829s ------------------------------ Captured log setup ------------------------------ 829s INFO datalad.core.local.save:log.py:436 Total: starting 829s INFO datalad.core.local.save:log.py:436 829s INFO datalad.core.local.save:log.py:436 Total: processed result for /tmp/pytest-of-ubuntu/pytest-0/archivistds3/srcds 829s INFO datalad.core.local.save:log.py:436 Total: done 829s =================================== FAILURES =================================== 829s _________________________________ test_uncurl __________________________________ 829s 829s self = AnnexRepo('/tmp/pytest-of-ubuntu/pytest-0/dataset5') 829s args = ['addurl', '--file', 'data_A1B2F1.dat', 'bingofile:///tmp/pytest-of-ubuntu/pytest-0/test_uncurl0/lvlA1/lvlB2_flavor1.tar'] 829s files = None, jobs = None 829s protocol = 829s git_options = None, stdin = None, merge_annex_branches = True, kwargs = {} 829s cmd = ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', ...] 829s runner = 829s env = None 829s out_of_space_re = 829s 829s def _call_annex(self, args, files=None, jobs=None, protocol=StdOutErrCapture, 829s git_options=None, stdin=None, merge_annex_branches=True, 829s **kwargs): 829s """Internal helper to run git-annex commands 829s 829s Standard command options are applied in addition to the given arguments, 829s and certain error conditions are detected (if possible) and dedicated 829s exceptions are raised. 829s 829s Parameters 829s ---------- 829s args: list 829s List of git-annex command arguments. 829s files: list, optional 829s If command passes list of files. If list is too long 829s (by number of files or overall size) it will be split, and multiple 829s command invocations will follow 829s jobs : int or 'auto', optional 829s If 'auto', the number of jobs will be determined automatically, 829s informed by the configuration setting 829s 'datalad.runtime.max-annex-jobs'. 829s protocol : WitlessProtocol, optional 829s Protocol class to pass to GitWitlessRunner.run(). By default this is 829s StdOutErrCapture, which will provide default logging behavior and 829s guarantee that stdout/stderr are included in potential CommandError 829s exception. 829s git_options: list, optional 829s Additional arguments for Git to include in the git-annex call 829s (in a position prior to the 'annex' subcommand. 829s stdin: File-like, optional 829s stdin to connect to the git-annex process. Only used when `files` 829s is None. 829s merge_annex_branches: bool, optional 829s If False, annex.merge-annex-branches=false config will be set for 829s git-annex call. Useful for operations which are not intended to 829s benefit from updating information about remote git-annexes 829s **kwargs: 829s Additional arguments are passed on to the WitlessProtocol constructor 829s 829s Returns 829s ------- 829s dict 829s Return value of WitlessRunner.run(). The content of the dict is 829s determined by the given `protocol`. By default, it provides git-annex's 829s stdout and stderr (under these key names) 829s 829s Raises 829s ------ 829s CommandError 829s If the call exits with a non-zero status. 829s 829s OutOfSpaceError 829s If a corresponding statement was detected in git-annex's output on 829s stderr. Only supported if the given protocol captured stderr. 829s 829s RemoteNotAvailableError 829s If a corresponding statement was detected in git-annex's output on 829s stderr. Only supported if the given protocol captured stderr. 829s """ 829s if self.git_annex_version is None: 829s self._check_git_annex_version() 829s 829s # git portion of the command 829s cmd = ['git'] + self._ANNEX_GIT_COMMON_OPTIONS 829s 829s if git_options: 829s cmd += git_options 829s 829s if not self.always_commit: 829s cmd += ['-c', 'annex.alwayscommit=false'] 829s 829s if not merge_annex_branches: 829s cmd += ['-c', 'annex.merge-annex-branches=false'] 829s 829s # annex portion of the command 829s cmd.append('annex') 829s cmd += args 829s 829s if lgr.getEffectiveLevel() <= 8: 829s cmd.append('--debug') 829s 829s if self._annex_common_options: 829s cmd += self._annex_common_options 829s 829s if jobs == 'auto': 829s # Limit to # of CPUs (but at least 3 to start with) 829s # and also an additional config constraint (by default 1 829s # due to https://github.com/datalad/datalad/issues/4404) 829s jobs = self._n_auto_jobs or min( 829s self.config.obtain('datalad.runtime.max-annex-jobs'), 829s max(3, cpu_count())) 829s # cache result to avoid repeated calls to cpu_count() 829s self._n_auto_jobs = jobs 829s if jobs and jobs != 1: 829s cmd.append('-J%d' % jobs) 829s 829s runner = self._git_runner 829s env = None 829s if self.fake_dates_enabled: 829s env = self.add_fake_dates(runner.env) 829s 829s try: 829s if files: 829s if issubclass(protocol, GeneratorMixIn): 829s return runner.run_on_filelist_chunks_items_( 829s cmd, 829s files, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s else: 829s return runner.run_on_filelist_chunks( 829s cmd, 829s files, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s else: 829s > return runner.run( 829s cmd, 829s stdin=stdin, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s 829s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:996: 829s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 829s 829s self = 829s cmd = ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', ...] 829s protocol = , stdin = None 829s cwd = None, env = None, timeout = None, exception_on_error = True, kwargs = {} 829s applied_cwd = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/dataset5') 829s applied_env = {'ADTTMP': '/tmp/autopkgtest.vjeRUT/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-ar.../8.4.2-1 python-pluggy/1.6.0-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-artifacts', ...} 829s threaded_runner = 829s results_or_iterator = {'code': 1, 'stderr': ' not enough free space, need 100 MB more (use --force to override this check or adjust annex.d...///tmp/pytest-of-ubuntu/pytest-0/test_uncurl0/lvlA1/lvlB2_flavor1.tar (from myuncurl) (to data_A1B2F1.dat) \nfailed\n'} 829s results = {'code': 1, 'stderr': ' not enough free space, need 100 MB more (use --force to override this check or adjust annex.d...///tmp/pytest-of-ubuntu/pytest-0/test_uncurl0/lvlA1/lvlB2_flavor1.tar (from myuncurl) (to data_A1B2F1.dat) \nfailed\n'} 829s return_code = 1 829s 829s def run(self, 829s cmd: list | str, 829s protocol: type[WitlessProtocol] | None = None, 829s stdin: bytes | IO | Queue | None = None, 829s cwd: PathLike | str | None = None, 829s env: dict | None = None, 829s timeout: float | None = None, 829s exception_on_error: bool = True, 829s **kwargs) -> dict | _ResultGenerator: 829s """Execute a command and communicate with it. 829s 829s Parameters 829s ---------- 829s cmd : list or str 829s Sequence of program arguments. Passing a single string causes 829s execution via the platform shell. 829s protocol : WitlessProtocol, optional 829s Protocol class handling interaction with the running process 829s (e.g. output capture). A number of pre-crafted classes are 829s provided (e.g `KillOutput`, `NoCapture`, `GitProgress`). 829s If the protocol has the GeneratorMixIn-mixin, the run-method 829s will return an iterator and can therefore be used in a for-clause. 829s stdin : file-like, bytes, Queue, or None 829s If stdin is a file-like, it will be directly used as stdin for the 829s subprocess. The caller is responsible for writing to it and closing it. 829s If stdin is a bytes, it will be fed to stdin of the subprocess. 829s If all data is written, stdin will be closed. 829s If stdin is a Queue, all elements (bytes) put into the Queue will 829s be passed to stdin until None is read from the queue. If None is read, 829s stdin of the subprocess is closed. 829s cwd : str or path-like, optional 829s If given, commands are executed with this path as PWD, 829s the PWD of the parent process is used otherwise. Overrides 829s any `cwd` given to the constructor. 829s env : dict, optional 829s Environment to be used for command execution. If given, it will 829s completely replace any environment provided to theconstructor. If 829s `cwd` is given, 'PWD' in the environment is set to its value. 829s This must be a complete environment definition, no values 829s from the current environment will be inherited. Overrides 829s any `env` given to the constructor. 829s timeout: float, optional 829s None or the seconds after which a timeout callback is 829s invoked, if no progress was made in communicating with 829s the sub-process, or if waiting for the subprocess exit 829s took more than the specified time. See the protocol and 829s `ThreadedRunner` descriptions for a more detailed discussion 829s on timeouts. 829s exception_on_error : bool, optional 829s This argument is first interpreted if the protocol is a subclass 829s of `GeneratorMixIn`. If it is `True` (default), a 829s `CommandErrorException` is raised by the generator if the 829s sub process exited with a return code not equal to zero. If the 829s parameter is `False`, no exception is raised. In both cases the 829s return code can be read from the attribute `return_code` of 829s the generator. Then this argument interpreted within this function 829s to not raise `CommandError` if value is False in case of non-0 exit. 829s kwargs : 829s Passed to the Protocol class constructor. 829s 829s Returns 829s ------- 829s dict | _ResultGenerator 829s 829s If the protocol is not a subclass of `GeneratorMixIn`, the 829s result of protocol._prepare_result will be returned. 829s 829s If the protocol is a subclass of `GeneratorMixIn`, a Generator, i.e. 829s a `_ResultGenerator`, will be returned. This allows to use this 829s method in constructs like: 829s 829s for protocol_output in runner.run(): 829s ... 829s 829s Where the iterator yields whatever protocol.pipe_data_received 829s sends into the generator. 829s If all output was yielded and the process has terminated, the 829s generator will raise StopIteration(return_code), where 829s return_code is the return code of the process. The return code 829s of the process will also be stored in the "return_code"-attribute 829s of the runner. So you could write: 829s 829s gen = runner.run() 829s for file_descriptor, data in gen: 829s ... 829s 829s # get the return code of the process 829s result = gen.return_code 829s 829s Raises 829s ------ 829s CommandError 829s On execution failure (non-zero exit code) this exception is 829s raised which provides the command (cmd), stdout, stderr, 829s exit code (status), and a message identifying the failed 829s command, as properties. 829s FileNotFoundError 829s When a given executable does not exist. 829s """ 829s if protocol is None: 829s # by default let all subprocess stream pass through 829s protocol = NoCapture 829s 829s applied_cwd = cwd or self.cwd 829s applied_env = self._get_adjusted_env( 829s env=env or self.env, 829s cwd=applied_cwd, 829s ) 829s 829s lgr.debug( 829s 'Run %r (protocol_class=%s) (cwd=%s)', 829s cmd, 829s protocol.__name__, 829s applied_cwd 829s ) 829s 829s threaded_runner = ThreadedRunner( 829s cmd=cmd, 829s protocol_class=protocol, 829s stdin=stdin, 829s protocol_kwargs=kwargs, 829s timeout=timeout, 829s exception_on_error=exception_on_error, 829s cwd=applied_cwd, 829s env=applied_env 829s ) 829s 829s results_or_iterator = threaded_runner.run() 829s if issubclass(protocol, GeneratorMixIn): 829s return results_or_iterator 829s 829s results = cast(dict, results_or_iterator) 829s # log before any exception is raised 829s lgr.debug("Finished %r with status %s", cmd, results['code']) 829s 829s # make it such that we always blow if a protocol did not report 829s # a return code at all or it was non-0 and we were not asked ignore 829s # errors 829s return_code = results.get('code', None) 829s if return_code is None or (return_code and exception_on_error): 829s # the runner has a better idea, doc string warns Protocol 829s # implementations not to return these 829s results.pop('cmd', None) 829s results.pop('cwd', None) 829s > raise CommandError( 829s # whatever the results were, we carry them forward 829s cmd=cmd, 829s cwd=applied_cwd, 829s **results, 829s ) 829s E datalad.runner.exception.CommandError: CommandError: 'git -c diff.ignoreSubmodules=none -c core.quotepath=false annex addurl --file data_A1B2F1.dat bingofile:///tmp/pytest-of-ubuntu/pytest-0/test_uncurl0/lvlA1/lvlB2_flavor1.tar -c annex.dotfiles=true' failed with exitcode 1 under /tmp/pytest-of-ubuntu/pytest-0/dataset5 [out: 'addurl bingofile:///tmp/pytest-of-ubuntu/pytest-0/test_uncurl0/lvlA1/lvlB2_flavor1.tar (from myuncurl) (to data_A1B2F1.dat) 829s E failed'] [err: 'not enough free space, need 100 MB more (use --force to override this check or adjust annex.diskreserve) 829s E addurl: 1 failed'] 829s 829s /usr/lib/python3/dist-packages/datalad/runner/runner.py:243: CommandError 829s 829s During handling of the above exception, another exception occurred: 829s 829s existing_dataset = Dataset('/tmp/pytest-of-ubuntu/pytest-0/dataset5') 829s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_uncurl0') 829s 829s def test_uncurl(existing_dataset, tmp_path): 829s archive_path = tmp_path 829s create_tree(archive_path, {'lvlA1': {'lvlB2_flavor1.tar': 'data_A1B2F1'}}) 829s ds = existing_dataset 829s archive_path = Path(archive_path) 829s dsca = ds.repo.call_annex 829s dsca(['initremote', 'myuncurl'] + std_initargs + [ 829s 'match=bingofile://(?P.*)/(?P[^/]+)/(?P[^/]+)_(?P.*)$ someothermatch', 829s 'url=file://{basepath}/{lvlA}/{lvlB}_{flavor}', 829s ]) 829s data_url = (archive_path / 'lvlA1' / 'lvlB2_flavor1.tar').as_uri() 829s # prefix the URL so git-annex has no idea how to handle it 829s # (same as migrating from an obsolete system with no support anymore) 829s data_url = f'bingo{data_url}' 829s > dsca(['addurl', '--file', 'data_A1B2F1.dat', data_url]) 829s 829s ../build.4Ft/src/datalad_next/annexremotes/tests/test_uncurl.py:207: 829s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 829s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1317: in call_annex 829s return self._call_annex( 829s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 829s 829s self = AnnexRepo('/tmp/pytest-of-ubuntu/pytest-0/dataset5') 829s args = ['addurl', '--file', 'data_A1B2F1.dat', 'bingofile:///tmp/pytest-of-ubuntu/pytest-0/test_uncurl0/lvlA1/lvlB2_flavor1.tar'] 829s files = None, jobs = None 829s protocol = 829s git_options = None, stdin = None, merge_annex_branches = True, kwargs = {} 829s cmd = ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', ...] 829s runner = 829s env = None 829s out_of_space_re = 829s 829s def _call_annex(self, args, files=None, jobs=None, protocol=StdOutErrCapture, 829s git_options=None, stdin=None, merge_annex_branches=True, 829s **kwargs): 829s """Internal helper to run git-annex commands 829s 829s Standard command options are applied in addition to the given arguments, 829s and certain error conditions are detected (if possible) and dedicated 829s exceptions are raised. 829s 829s Parameters 829s ---------- 829s args: list 829s List of git-annex command arguments. 829s files: list, optional 829s If command passes list of files. If list is too long 829s (by number of files or overall size) it will be split, and multiple 829s command invocations will follow 829s jobs : int or 'auto', optional 829s If 'auto', the number of jobs will be determined automatically, 829s informed by the configuration setting 829s 'datalad.runtime.max-annex-jobs'. 829s protocol : WitlessProtocol, optional 829s Protocol class to pass to GitWitlessRunner.run(). By default this is 829s StdOutErrCapture, which will provide default logging behavior and 829s guarantee that stdout/stderr are included in potential CommandError 829s exception. 829s git_options: list, optional 829s Additional arguments for Git to include in the git-annex call 829s (in a position prior to the 'annex' subcommand. 829s stdin: File-like, optional 829s stdin to connect to the git-annex process. Only used when `files` 829s is None. 829s merge_annex_branches: bool, optional 829s If False, annex.merge-annex-branches=false config will be set for 829s git-annex call. Useful for operations which are not intended to 829s benefit from updating information about remote git-annexes 829s **kwargs: 829s Additional arguments are passed on to the WitlessProtocol constructor 829s 829s Returns 829s ------- 829s dict 829s Return value of WitlessRunner.run(). The content of the dict is 829s determined by the given `protocol`. By default, it provides git-annex's 829s stdout and stderr (under these key names) 829s 829s Raises 829s ------ 829s CommandError 829s If the call exits with a non-zero status. 829s 829s OutOfSpaceError 829s If a corresponding statement was detected in git-annex's output on 829s stderr. Only supported if the given protocol captured stderr. 829s 829s RemoteNotAvailableError 829s If a corresponding statement was detected in git-annex's output on 829s stderr. Only supported if the given protocol captured stderr. 829s """ 829s if self.git_annex_version is None: 829s self._check_git_annex_version() 829s 829s # git portion of the command 829s cmd = ['git'] + self._ANNEX_GIT_COMMON_OPTIONS 829s 829s if git_options: 829s cmd += git_options 829s 829s if not self.always_commit: 829s cmd += ['-c', 'annex.alwayscommit=false'] 829s 829s if not merge_annex_branches: 829s cmd += ['-c', 'annex.merge-annex-branches=false'] 829s 829s # annex portion of the command 829s cmd.append('annex') 829s cmd += args 829s 829s if lgr.getEffectiveLevel() <= 8: 829s cmd.append('--debug') 829s 829s if self._annex_common_options: 829s cmd += self._annex_common_options 829s 829s if jobs == 'auto': 829s # Limit to # of CPUs (but at least 3 to start with) 829s # and also an additional config constraint (by default 1 829s # due to https://github.com/datalad/datalad/issues/4404) 829s jobs = self._n_auto_jobs or min( 829s self.config.obtain('datalad.runtime.max-annex-jobs'), 829s max(3, cpu_count())) 829s # cache result to avoid repeated calls to cpu_count() 829s self._n_auto_jobs = jobs 829s if jobs and jobs != 1: 829s cmd.append('-J%d' % jobs) 829s 829s runner = self._git_runner 829s env = None 829s if self.fake_dates_enabled: 829s env = self.add_fake_dates(runner.env) 829s 829s try: 829s if files: 829s if issubclass(protocol, GeneratorMixIn): 829s return runner.run_on_filelist_chunks_items_( 829s cmd, 829s files, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s else: 829s return runner.run_on_filelist_chunks( 829s cmd, 829s files, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s else: 829s return runner.run( 829s cmd, 829s stdin=stdin, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s except CommandError as e: 829s # Note: A call might result in several 'failures', that can be or 829s # cannot be handled here. Detection of something, we can deal with, 829s # doesn't mean there's nothing else to deal with. 829s 829s # OutOfSpaceError: 829s # Note: 829s # doesn't depend on anything in stdout. Therefore check this before 829s # dealing with stdout 829s out_of_space_re = re.search( 829s "not enough free space, need (.*) more", e.stderr 829s ) 829s if out_of_space_re: 829s > raise OutOfSpaceError(cmd=['annex'] + args, 829s sizemore_msg=out_of_space_re.groups()[0]) 829s E datalad.support.exceptions.OutOfSpaceError: OutOfSpaceError: 'annex addurl --file data_A1B2F1.dat bingofile:///tmp/pytest-of-ubuntu/pytest-0/test_uncurl0/lvlA1/lvlB2_flavor1.tar' needs 100 MB more 829s 829s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1015: OutOfSpaceError 829s ____________________________ test_uncurl_ria_access ____________________________ 829s 829s self = AnnexRepo('/tmp/pytest-of-ubuntu/pytest-0/test_uncurl_ria_access0/testds') 829s args = ['addurl', '--file', 'mydownload.txt', 'file:///tmp/pytest-of-ubuntu/pytest-0/test_uncurl_ria_access0/ria/93d/5f35e-bc...869/annex/objects/v6/6V/MD5E-s12--311e5fb57121c9ec105ef297a9a149a6.txt/MD5E-s12--311e5fb57121c9ec105ef297a9a149a6.txt'] 829s files = None, jobs = None 829s protocol = 829s git_options = None, stdin = None, merge_annex_branches = True, kwargs = {} 829s cmd = ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', ...] 829s runner = 829s env = None 829s out_of_space_re = 829s 829s def _call_annex(self, args, files=None, jobs=None, protocol=StdOutErrCapture, 829s git_options=None, stdin=None, merge_annex_branches=True, 829s **kwargs): 829s """Internal helper to run git-annex commands 829s 829s Standard command options are applied in addition to the given arguments, 829s and certain error conditions are detected (if possible) and dedicated 829s exceptions are raised. 829s 829s Parameters 829s ---------- 829s args: list 829s List of git-annex command arguments. 829s files: list, optional 829s If command passes list of files. If list is too long 829s (by number of files or overall size) it will be split, and multiple 829s command invocations will follow 829s jobs : int or 'auto', optional 829s If 'auto', the number of jobs will be determined automatically, 829s informed by the configuration setting 829s 'datalad.runtime.max-annex-jobs'. 829s protocol : WitlessProtocol, optional 829s Protocol class to pass to GitWitlessRunner.run(). By default this is 829s StdOutErrCapture, which will provide default logging behavior and 829s guarantee that stdout/stderr are included in potential CommandError 829s exception. 829s git_options: list, optional 829s Additional arguments for Git to include in the git-annex call 829s (in a position prior to the 'annex' subcommand. 829s stdin: File-like, optional 829s stdin to connect to the git-annex process. Only used when `files` 829s is None. 829s merge_annex_branches: bool, optional 829s If False, annex.merge-annex-branches=false config will be set for 829s git-annex call. Useful for operations which are not intended to 829s benefit from updating information about remote git-annexes 829s **kwargs: 829s Additional arguments are passed on to the WitlessProtocol constructor 829s 829s Returns 829s ------- 829s dict 829s Return value of WitlessRunner.run(). The content of the dict is 829s determined by the given `protocol`. By default, it provides git-annex's 829s stdout and stderr (under these key names) 829s 829s Raises 829s ------ 829s CommandError 829s If the call exits with a non-zero status. 829s 829s OutOfSpaceError 829s If a corresponding statement was detected in git-annex's output on 829s stderr. Only supported if the given protocol captured stderr. 829s 829s RemoteNotAvailableError 829s If a corresponding statement was detected in git-annex's output on 829s stderr. Only supported if the given protocol captured stderr. 829s """ 829s if self.git_annex_version is None: 829s self._check_git_annex_version() 829s 829s # git portion of the command 829s cmd = ['git'] + self._ANNEX_GIT_COMMON_OPTIONS 829s 829s if git_options: 829s cmd += git_options 829s 829s if not self.always_commit: 829s cmd += ['-c', 'annex.alwayscommit=false'] 829s 829s if not merge_annex_branches: 829s cmd += ['-c', 'annex.merge-annex-branches=false'] 829s 829s # annex portion of the command 829s cmd.append('annex') 829s cmd += args 829s 829s if lgr.getEffectiveLevel() <= 8: 829s cmd.append('--debug') 829s 829s if self._annex_common_options: 829s cmd += self._annex_common_options 829s 829s if jobs == 'auto': 829s # Limit to # of CPUs (but at least 3 to start with) 829s # and also an additional config constraint (by default 1 829s # due to https://github.com/datalad/datalad/issues/4404) 829s jobs = self._n_auto_jobs or min( 829s self.config.obtain('datalad.runtime.max-annex-jobs'), 829s max(3, cpu_count())) 829s # cache result to avoid repeated calls to cpu_count() 829s self._n_auto_jobs = jobs 829s if jobs and jobs != 1: 829s cmd.append('-J%d' % jobs) 829s 829s runner = self._git_runner 829s env = None 829s if self.fake_dates_enabled: 829s env = self.add_fake_dates(runner.env) 829s 829s try: 829s if files: 829s if issubclass(protocol, GeneratorMixIn): 829s return runner.run_on_filelist_chunks_items_( 829s cmd, 829s files, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s else: 829s return runner.run_on_filelist_chunks( 829s cmd, 829s files, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s else: 829s > return runner.run( 829s cmd, 829s stdin=stdin, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s 829s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:996: 829s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 829s 829s self = 829s cmd = ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', ...] 829s protocol = , stdin = None 829s cwd = None, env = None, timeout = None, exception_on_error = True, kwargs = {} 829s applied_cwd = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_uncurl_ria_access0/testds') 829s applied_env = {'ADTTMP': '/tmp/autopkgtest.vjeRUT/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-ar.../8.4.2-1 python-pluggy/1.6.0-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-artifacts', ...} 829s threaded_runner = 829s results_or_iterator = {'code': 1, 'stderr': ' not enough free space, need 100 MB more (use --force to override this check or adjust annex.d...9ec105ef297a9a149a6.txt/MD5E-s12--311e5fb57121c9ec105ef297a9a149a6.txt (from myuncurl) (to mydownload.txt) \nfailed\n'} 829s results = {'code': 1, 'stderr': ' not enough free space, need 100 MB more (use --force to override this check or adjust annex.d...9ec105ef297a9a149a6.txt/MD5E-s12--311e5fb57121c9ec105ef297a9a149a6.txt (from myuncurl) (to mydownload.txt) \nfailed\n'} 829s return_code = 1 829s 829s def run(self, 829s cmd: list | str, 829s protocol: type[WitlessProtocol] | None = None, 829s stdin: bytes | IO | Queue | None = None, 829s cwd: PathLike | str | None = None, 829s env: dict | None = None, 829s timeout: float | None = None, 829s exception_on_error: bool = True, 829s **kwargs) -> dict | _ResultGenerator: 829s """Execute a command and communicate with it. 829s 829s Parameters 829s ---------- 829s cmd : list or str 829s Sequence of program arguments. Passing a single string causes 829s execution via the platform shell. 829s protocol : WitlessProtocol, optional 829s Protocol class handling interaction with the running process 829s (e.g. output capture). A number of pre-crafted classes are 829s provided (e.g `KillOutput`, `NoCapture`, `GitProgress`). 829s If the protocol has the GeneratorMixIn-mixin, the run-method 829s will return an iterator and can therefore be used in a for-clause. 829s stdin : file-like, bytes, Queue, or None 829s If stdin is a file-like, it will be directly used as stdin for the 829s subprocess. The caller is responsible for writing to it and closing it. 829s If stdin is a bytes, it will be fed to stdin of the subprocess. 829s If all data is written, stdin will be closed. 829s If stdin is a Queue, all elements (bytes) put into the Queue will 829s be passed to stdin until None is read from the queue. If None is read, 829s stdin of the subprocess is closed. 829s cwd : str or path-like, optional 829s If given, commands are executed with this path as PWD, 829s the PWD of the parent process is used otherwise. Overrides 829s any `cwd` given to the constructor. 829s env : dict, optional 829s Environment to be used for command execution. If given, it will 829s completely replace any environment provided to theconstructor. If 829s `cwd` is given, 'PWD' in the environment is set to its value. 829s This must be a complete environment definition, no values 829s from the current environment will be inherited. Overrides 829s any `env` given to the constructor. 829s timeout: float, optional 829s None or the seconds after which a timeout callback is 829s invoked, if no progress was made in communicating with 829s the sub-process, or if waiting for the subprocess exit 829s took more than the specified time. See the protocol and 829s `ThreadedRunner` descriptions for a more detailed discussion 829s on timeouts. 829s exception_on_error : bool, optional 829s This argument is first interpreted if the protocol is a subclass 829s of `GeneratorMixIn`. If it is `True` (default), a 829s `CommandErrorException` is raised by the generator if the 829s sub process exited with a return code not equal to zero. If the 829s parameter is `False`, no exception is raised. In both cases the 829s return code can be read from the attribute `return_code` of 829s the generator. Then this argument interpreted within this function 829s to not raise `CommandError` if value is False in case of non-0 exit. 829s kwargs : 829s Passed to the Protocol class constructor. 829s 829s Returns 829s ------- 829s dict | _ResultGenerator 829s 829s If the protocol is not a subclass of `GeneratorMixIn`, the 829s result of protocol._prepare_result will be returned. 829s 829s If the protocol is a subclass of `GeneratorMixIn`, a Generator, i.e. 829s a `_ResultGenerator`, will be returned. This allows to use this 829s method in constructs like: 829s 829s for protocol_output in runner.run(): 829s ... 829s 829s Where the iterator yields whatever protocol.pipe_data_received 829s sends into the generator. 829s If all output was yielded and the process has terminated, the 829s generator will raise StopIteration(return_code), where 829s return_code is the return code of the process. The return code 829s of the process will also be stored in the "return_code"-attribute 829s of the runner. So you could write: 829s 829s gen = runner.run() 829s for file_descriptor, data in gen: 829s ... 829s 829s # get the return code of the process 829s result = gen.return_code 829s 829s Raises 829s ------ 829s CommandError 829s On execution failure (non-zero exit code) this exception is 829s raised which provides the command (cmd), stdout, stderr, 829s exit code (status), and a message identifying the failed 829s command, as properties. 829s FileNotFoundError 829s When a given executable does not exist. 829s """ 829s if protocol is None: 829s # by default let all subprocess stream pass through 829s protocol = NoCapture 829s 829s applied_cwd = cwd or self.cwd 829s applied_env = self._get_adjusted_env( 829s env=env or self.env, 829s cwd=applied_cwd, 829s ) 829s 829s lgr.debug( 829s 'Run %r (protocol_class=%s) (cwd=%s)', 829s cmd, 829s protocol.__name__, 829s applied_cwd 829s ) 829s 829s threaded_runner = ThreadedRunner( 829s cmd=cmd, 829s protocol_class=protocol, 829s stdin=stdin, 829s protocol_kwargs=kwargs, 829s timeout=timeout, 829s exception_on_error=exception_on_error, 829s cwd=applied_cwd, 829s env=applied_env 829s ) 829s 829s results_or_iterator = threaded_runner.run() 829s if issubclass(protocol, GeneratorMixIn): 829s return results_or_iterator 829s 829s results = cast(dict, results_or_iterator) 829s # log before any exception is raised 829s lgr.debug("Finished %r with status %s", cmd, results['code']) 829s 829s # make it such that we always blow if a protocol did not report 829s # a return code at all or it was non-0 and we were not asked ignore 829s # errors 829s return_code = results.get('code', None) 829s if return_code is None or (return_code and exception_on_error): 829s # the runner has a better idea, doc string warns Protocol 829s # implementations not to return these 829s results.pop('cmd', None) 829s results.pop('cwd', None) 829s > raise CommandError( 829s # whatever the results were, we carry them forward 829s cmd=cmd, 829s cwd=applied_cwd, 829s **results, 829s ) 829s E datalad.runner.exception.CommandError: CommandError: 'git -c diff.ignoreSubmodules=none -c core.quotepath=false annex addurl --file mydownload.txt file:///tmp/pytest-of-ubuntu/pytest-0/test_uncurl_ria_access0/ria/93d/5f35e-bca7-4273-bffb-4915a0081869/annex/objects/v6/6V/MD5E-s12--311e5fb57121c9ec105ef297a9a149a6.txt/MD5E-s12--311e5fb57121c9ec105ef297a9a149a6.txt -c annex.dotfiles=true' failed with exitcode 1 under /tmp/pytest-of-ubuntu/pytest-0/test_uncurl_ria_access0/testds [out: 'addurl file:///tmp/pytest-of-ubuntu/pytest-0/test_uncurl_ria_access0/ria/93d/5f35e-bca7-4273-bffb-4915a0081869/annex/objects/v6/6V/MD5E-s12--311e5fb57121c9ec105ef297a9a149a6.txt/MD5E-s12--311e5fb57121c9ec105ef297a9a149a6.txt (from myuncurl) (to mydownload.txt) 829s E failed'] [err: 'not enough free space, need 100 MB more (use --force to override this check or adjust annex.diskreserve) 829s E addurl: 1 failed'] 829s 829s /usr/lib/python3/dist-packages/datalad/runner/runner.py:243: CommandError 829s 829s During handling of the above exception, another exception occurred: 829s 829s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_uncurl_ria_access0') 829s no_result_rendering = None 829s 829s @skip_if_on_windows 829s def test_uncurl_ria_access(tmp_path, no_result_rendering): 829s """ 829s - create dataset with test file and push into RIA store 829s - create INDEPENDENT dataset and 'addurl' test file directly from RIA 829s - test that addurls work without any config, just initremote with no 829s custom settings 829s - now move RIA and hence break URL 829s - fix1: only using a URL template, point to dataset dir in RIA store 829s plus some always available key-properties 829s - alternative fix2: simpler template, plus match expression to 829s "understand" some structural aspects of RIA and reuse them 829s """ 829s # we create a dataset to bootstrap the test setup, with on file 829s # of known content 829s srcds = EnsureDataset()(tmp_path / 'srcds').ds.create() 829s testfile_content = 'mikewashere!' 829s (srcds.pathobj / 'testfile.txt').write_text(testfile_content) 829s srcds.save() 829s # pull out some essential properties for the underlying key for later 829s # use in this test 829s testkey_props = srcds.status( 829s 'testfile.txt', annex='basic', return_type='item-or-list') 829s testkey_props = { 829s k: v for k, v in testkey_props.items() 829s if k in ('key', 'hashdirmixed', 'hashdirlower') 829s } 829s 829s # establish a RIA sibling and push 829s baseurl = (tmp_path / "ria").as_uri() 829s srcds.create_sibling_ria( 829s # use a ria+file:// URL for simplicity 829s f'ria+{baseurl}', 829s name='ria', 829s new_store_ok=True, 829s ) 829s srcds.push(to='ria') 829s # setup is done 829s 829s # start of the actual test 829s # create a fresh dataset 829s ds = EnsureDataset()(tmp_path / 'testds').ds.create() 829s dsca = ds.repo.call_annex 829s # we add uncurl WITH NO config whatsoever. 829s # this must be enough to be able to use the built-in downloaders 829s target_fname = 'mydownload.txt' 829s dsca(['initremote', 'myuncurl'] + std_initargs) 829s > dsca(['addurl', '--file', target_fname, 829s # we download from the verbatim, hand-crafted URL 829s f'{baseurl}/{srcds.id[:3]}/{srcds.id[3:]}/annex/objects/' 829s f'{testkey_props["hashdirmixed"]}' 829s f'{testkey_props["key"]}/{testkey_props["key"]}' 829s ]) 829s 829s ../build.4Ft/src/datalad_next/annexremotes/tests/test_uncurl.py:264: 829s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 829s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1317: in call_annex 829s return self._call_annex( 829s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 829s 829s self = AnnexRepo('/tmp/pytest-of-ubuntu/pytest-0/test_uncurl_ria_access0/testds') 829s args = ['addurl', '--file', 'mydownload.txt', 'file:///tmp/pytest-of-ubuntu/pytest-0/test_uncurl_ria_access0/ria/93d/5f35e-bc...869/annex/objects/v6/6V/MD5E-s12--311e5fb57121c9ec105ef297a9a149a6.txt/MD5E-s12--311e5fb57121c9ec105ef297a9a149a6.txt'] 829s files = None, jobs = None 829s protocol = 829s git_options = None, stdin = None, merge_annex_branches = True, kwargs = {} 829s cmd = ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', ...] 829s runner = 829s env = None 829s out_of_space_re = 829s 829s def _call_annex(self, args, files=None, jobs=None, protocol=StdOutErrCapture, 829s git_options=None, stdin=None, merge_annex_branches=True, 829s **kwargs): 829s """Internal helper to run git-annex commands 829s 829s Standard command options are applied in addition to the given arguments, 829s and certain error conditions are detected (if possible) and dedicated 829s exceptions are raised. 829s 829s Parameters 829s ---------- 829s args: list 829s List of git-annex command arguments. 829s files: list, optional 829s If command passes list of files. If list is too long 829s (by number of files or overall size) it will be split, and multiple 829s command invocations will follow 829s jobs : int or 'auto', optional 829s If 'auto', the number of jobs will be determined automatically, 829s informed by the configuration setting 829s 'datalad.runtime.max-annex-jobs'. 829s protocol : WitlessProtocol, optional 829s Protocol class to pass to GitWitlessRunner.run(). By default this is 829s StdOutErrCapture, which will provide default logging behavior and 829s guarantee that stdout/stderr are included in potential CommandError 829s exception. 829s git_options: list, optional 829s Additional arguments for Git to include in the git-annex call 829s (in a position prior to the 'annex' subcommand. 829s stdin: File-like, optional 829s stdin to connect to the git-annex process. Only used when `files` 829s is None. 829s merge_annex_branches: bool, optional 829s If False, annex.merge-annex-branches=false config will be set for 829s git-annex call. Useful for operations which are not intended to 829s benefit from updating information about remote git-annexes 829s **kwargs: 829s Additional arguments are passed on to the WitlessProtocol constructor 829s 829s Returns 829s ------- 829s dict 829s Return value of WitlessRunner.run(). The content of the dict is 829s determined by the given `protocol`. By default, it provides git-annex's 829s stdout and stderr (under these key names) 829s 829s Raises 829s ------ 829s CommandError 829s If the call exits with a non-zero status. 829s 829s OutOfSpaceError 829s If a corresponding statement was detected in git-annex's output on 829s stderr. Only supported if the given protocol captured stderr. 829s 829s RemoteNotAvailableError 829s If a corresponding statement was detected in git-annex's output on 829s stderr. Only supported if the given protocol captured stderr. 829s """ 829s if self.git_annex_version is None: 829s self._check_git_annex_version() 829s 829s # git portion of the command 829s cmd = ['git'] + self._ANNEX_GIT_COMMON_OPTIONS 829s 829s if git_options: 829s cmd += git_options 829s 829s if not self.always_commit: 829s cmd += ['-c', 'annex.alwayscommit=false'] 829s 829s if not merge_annex_branches: 829s cmd += ['-c', 'annex.merge-annex-branches=false'] 829s 829s # annex portion of the command 829s cmd.append('annex') 829s cmd += args 829s 829s if lgr.getEffectiveLevel() <= 8: 829s cmd.append('--debug') 829s 829s if self._annex_common_options: 829s cmd += self._annex_common_options 829s 829s if jobs == 'auto': 829s # Limit to # of CPUs (but at least 3 to start with) 829s # and also an additional config constraint (by default 1 829s # due to https://github.com/datalad/datalad/issues/4404) 829s jobs = self._n_auto_jobs or min( 829s self.config.obtain('datalad.runtime.max-annex-jobs'), 829s max(3, cpu_count())) 829s # cache result to avoid repeated calls to cpu_count() 829s self._n_auto_jobs = jobs 829s if jobs and jobs != 1: 829s cmd.append('-J%d' % jobs) 829s 829s runner = self._git_runner 829s env = None 829s if self.fake_dates_enabled: 829s env = self.add_fake_dates(runner.env) 829s 829s try: 829s if files: 829s if issubclass(protocol, GeneratorMixIn): 829s return runner.run_on_filelist_chunks_items_( 829s cmd, 829s files, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s else: 829s return runner.run_on_filelist_chunks( 829s cmd, 829s files, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s else: 829s return runner.run( 829s cmd, 829s stdin=stdin, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s except CommandError as e: 829s # Note: A call might result in several 'failures', that can be or 829s # cannot be handled here. Detection of something, we can deal with, 829s # doesn't mean there's nothing else to deal with. 829s 829s # OutOfSpaceError: 829s # Note: 829s # doesn't depend on anything in stdout. Therefore check this before 829s # dealing with stdout 829s out_of_space_re = re.search( 829s "not enough free space, need (.*) more", e.stderr 829s ) 829s if out_of_space_re: 829s > raise OutOfSpaceError(cmd=['annex'] + args, 829s sizemore_msg=out_of_space_re.groups()[0]) 829s E datalad.support.exceptions.OutOfSpaceError: OutOfSpaceError: 'annex addurl --file mydownload.txt file:///tmp/pytest-of-ubuntu/pytest-0/test_uncurl_ria_access0/ria/93d/5f35e-bca7-4273-bffb-4915a0081869/annex/objects/v6/6V/MD5E-s12--311e5fb57121c9ec105ef297a9a149a6.txt/MD5E-s12--311e5fb57121c9ec105ef297a9a149a6.txt' needs 100 MB more 829s 829s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1015: OutOfSpaceError 829s ------------------------------ Captured log call ------------------------------- 829s INFO datalad.core.local.save:log.py:436 Total: starting 829s INFO datalad.core.local.save:log.py:436 829s INFO datalad.core.local.save:log.py:436 Total: processed result for /tmp/pytest-of-ubuntu/pytest-0/test_uncurl_ria_access0/srcds 829s INFO datalad.core.local.save:log.py:436 Total: done 829s INFO datalad.distributed.create_sibling_ria:log.py:436 Creating a new RIA store at /tmp/pytest-of-ubuntu/pytest-0/test_uncurl_ria_access0/ria 829s INFO datalad.distributed.create_sibling_ria:replace_create_sibling_ria.py:609 create siblings 'ria' and 'ria-storage' ... 829s INFO datalad.distribution.update:update.py:307 Fetching updates for Dataset(/tmp/pytest-of-ubuntu/pytest-0/test_uncurl_ria_access0/srcds) 829s INFO datalad.distribution.siblings:siblings.py:536 Configure additional publication dependency on "ria-storage" 829s INFO datalad.core.distributed.push:log.py:436 Determine push target 829s INFO datalad.core.distributed.push:log.py:436 Push refspecs 829s INFO datalad.core.distributed.push:log.py:436 Determine push target 829s INFO datalad.core.distributed.push:log.py:436 Push refspecs 829s INFO datalad.core.distributed.push:log.py:436 Transfer data 829s INFO datalad.annex:log.py:436 Start annex operation 829s INFO datalad.annex:log.py:436 Finished annex copy 829s INFO datalad.core.distributed.push:log.py:436 Transfer data 829s INFO datalad.core.distributed.push:log.py:436 Update availability information 829s INFO datalad.gitrepo:log.py:436 Start enumerating objects 829s INFO datalad.gitrepo:log.py:436 Finished enumerating objects 829s INFO datalad.gitrepo:log.py:436 Start counting objects 829s INFO datalad.gitrepo:log.py:436 Counting objects: 3% (1/28) 829s INFO datalad.gitrepo:log.py:436 Counting objects: 7% (2/28) 829s INFO datalad.gitrepo:log.py:436 Counting objects: 10% (3/28) 829s INFO datalad.gitrepo:log.py:436 Counting objects: 14% (4/28) 829s INFO datalad.gitrepo:log.py:436 Counting objects: 17% (5/28) 829s INFO datalad.gitrepo:log.py:436 Counting objects: 21% (6/28) 829s INFO datalad.gitrepo:log.py:436 Counting objects: 25% (7/28) 829s INFO datalad.gitrepo:log.py:436 Counting objects: 28% (8/28) 829s INFO datalad.gitrepo:log.py:436 Counting objects: 32% (9/28) 829s INFO datalad.gitrepo:log.py:436 Counting objects: 35% (10/28) 829s INFO datalad.gitrepo:log.py:436 Counting objects: 39% (11/28) 829s INFO datalad.gitrepo:log.py:436 Counting objects: 42% (12/28) 829s INFO datalad.gitrepo:log.py:436 Counting objects: 46% (13/28) 829s INFO datalad.gitrepo:log.py:436 Counting objects: 50% (14/28) 829s INFO datalad.gitrepo:log.py:436 Counting objects: 53% (15/28) 829s INFO datalad.gitrepo:log.py:436 Counting objects: 57% (16/28) 829s INFO datalad.gitrepo:log.py:436 Counting objects: 60% (17/28) 829s INFO datalad.gitrepo:log.py:436 Counting objects: 64% (18/28) 829s INFO datalad.gitrepo:log.py:436 Counting objects: 67% (19/28) 829s INFO datalad.gitrepo:log.py:436 Counting objects: 71% (20/28) 829s INFO datalad.gitrepo:log.py:436 Counting objects: 75% (21/28) 829s INFO datalad.gitrepo:log.py:436 Counting objects: 78% (22/28) 829s INFO datalad.gitrepo:log.py:436 Counting objects: 82% (23/28) 829s INFO datalad.gitrepo:log.py:436 Counting objects: 85% (24/28) 829s INFO datalad.gitrepo:log.py:436 Counting objects: 89% (25/28) 829s INFO datalad.gitrepo:log.py:436 Counting objects: 92% (26/28) 829s INFO datalad.gitrepo:log.py:436 Counting objects: 96% (27/28) 829s INFO datalad.gitrepo:log.py:436 Counting objects: 100% (28/28) 829s INFO datalad.gitrepo:log.py:436 Counting objects: 100% (28/28), done. 829s INFO datalad.gitrepo:log.py:436 Finished counting objects 829s INFO datalad.gitrepo:log.py:436 Start compressing objects 829s INFO datalad.gitrepo:log.py:436 Compressing objects: 4% (1/23) 829s INFO datalad.gitrepo:log.py:436 Compressing objects: 8% (2/23) 829s INFO datalad.gitrepo:log.py:436 Compressing objects: 13% (3/23) 829s INFO datalad.gitrepo:log.py:436 Compressing objects: 17% (4/23) 829s INFO datalad.gitrepo:log.py:436 Compressing objects: 21% (5/23) 829s INFO datalad.gitrepo:log.py:436 Compressing objects: 26% (6/23) 829s INFO datalad.gitrepo:log.py:436 Compressing objects: 30% (7/23) 829s INFO datalad.gitrepo:log.py:436 Compressing objects: 34% (8/23) 829s INFO datalad.gitrepo:log.py:436 Compressing objects: 39% (9/23) 829s INFO datalad.gitrepo:log.py:436 Compressing objects: 43% (10/23) 829s INFO datalad.gitrepo:log.py:436 Compressing objects: 47% (11/23) 829s INFO datalad.gitrepo:log.py:436 Compressing objects: 52% (12/23) 829s INFO datalad.gitrepo:log.py:436 Compressing objects: 56% (13/23) 829s INFO datalad.gitrepo:log.py:436 Compressing objects: 60% (14/23) 829s INFO datalad.gitrepo:log.py:436 Compressing objects: 65% (15/23) 829s INFO datalad.gitrepo:log.py:436 Compressing objects: 69% (16/23) 829s INFO datalad.gitrepo:log.py:436 Compressing objects: 73% (17/23) 829s INFO datalad.gitrepo:log.py:436 Compressing objects: 78% (18/23) 829s INFO datalad.gitrepo:log.py:436 Compressing objects: 82% (19/23) 829s INFO datalad.gitrepo:log.py:436 Compressing objects: 86% (20/23) 829s INFO datalad.gitrepo:log.py:436 Compressing objects: 91% (21/23) 829s INFO datalad.gitrepo:log.py:436 Compressing objects: 95% (22/23) 829s INFO datalad.gitrepo:log.py:436 Compressing objects: 100% (23/23) 829s INFO datalad.gitrepo:log.py:436 Compressing objects: 100% (23/23), done. 829s INFO datalad.gitrepo:log.py:436 Finished compressing objects 829s INFO datalad.gitrepo:log.py:436 Start writing objects 829s INFO datalad.gitrepo:log.py:436 Writing objects: 3% (1/28) 829s INFO datalad.gitrepo:log.py:436 Writing objects: 7% (2/28) 829s INFO datalad.gitrepo:log.py:436 Writing objects: 10% (3/28) 829s INFO datalad.gitrepo:log.py:436 Writing objects: 14% (4/28) 829s INFO datalad.gitrepo:log.py:436 Writing objects: 17% (5/28) 829s INFO datalad.gitrepo:log.py:436 Writing objects: 21% (6/28) 829s INFO datalad.gitrepo:log.py:436 Writing objects: 25% (7/28) 829s INFO datalad.gitrepo:log.py:436 Writing objects: 28% (8/28) 829s INFO datalad.gitrepo:log.py:436 Writing objects: 32% (9/28) 829s INFO datalad.gitrepo:log.py:436 Writing objects: 35% (10/28) 829s INFO datalad.gitrepo:log.py:436 Writing objects: 39% (11/28) 829s INFO datalad.gitrepo:log.py:436 Writing objects: 42% (12/28) 829s INFO datalad.gitrepo:log.py:436 Writing objects: 46% (13/28) 829s INFO datalad.gitrepo:log.py:436 Writing objects: 50% (14/28) 829s INFO datalad.gitrepo:log.py:436 Writing objects: 53% (15/28) 829s INFO datalad.gitrepo:log.py:436 Writing objects: 57% (16/28) 829s INFO datalad.gitrepo:log.py:436 Writing objects: 60% (17/28) 829s INFO datalad.gitrepo:log.py:436 Writing objects: 64% (18/28) 829s INFO datalad.gitrepo:log.py:436 Writing objects: 67% (19/28) 829s INFO datalad.gitrepo:log.py:436 Writing objects: 71% (20/28) 829s INFO datalad.gitrepo:log.py:436 Writing objects: 75% (21/28) 829s INFO datalad.gitrepo:log.py:436 Writing objects: 78% (22/28) 829s INFO datalad.gitrepo:log.py:436 Writing objects: 82% (23/28) 829s INFO datalad.gitrepo:log.py:436 Writing objects: 85% (24/28) 829s INFO datalad.gitrepo:log.py:436 Writing objects: 89% (25/28) 829s INFO datalad.gitrepo:log.py:436 Writing objects: 92% (26/28) 829s INFO datalad.gitrepo:log.py:436 Writing objects: 96% (27/28) 829s INFO datalad.gitrepo:log.py:436 Writing objects: 100% (28/28) 829s INFO datalad.gitrepo:log.py:436 Writing objects: 100% (28/28), 2.70 KiB | 920.00 KiB/s, done. 829s INFO datalad.gitrepo:log.py:436 Finished writing objects 829s INFO datalad.core.distributed.push:log.py:436 Finished push of Dataset(/tmp/pytest-of-ubuntu/pytest-0/test_uncurl_ria_access0/srcds) 829s INFO datalad.core.distributed.push:log.py:436 Finished push of Dataset(/tmp/pytest-of-ubuntu/pytest-0/test_uncurl_ria_access0/srcds) 829s ______________________________ test_uncurl_store _______________________________ 829s 829s self = AnnexRepo('/tmp/pytest-of-ubuntu/pytest-0/dataset6') 829s args = ['copy', '-f', 'myuncurl', '/tmp/pytest-of-ubuntu/pytest-0/dataset6/testfile1.txt'] 829s files = None, jobs = None 829s protocol = 829s git_options = None, stdin = None, merge_annex_branches = True, kwargs = {} 829s cmd = ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', ...] 829s runner = 829s env = None 829s out_of_space_re = 829s 829s def _call_annex(self, args, files=None, jobs=None, protocol=StdOutErrCapture, 829s git_options=None, stdin=None, merge_annex_branches=True, 829s **kwargs): 829s """Internal helper to run git-annex commands 829s 829s Standard command options are applied in addition to the given arguments, 829s and certain error conditions are detected (if possible) and dedicated 829s exceptions are raised. 829s 829s Parameters 829s ---------- 829s args: list 829s List of git-annex command arguments. 829s files: list, optional 829s If command passes list of files. If list is too long 829s (by number of files or overall size) it will be split, and multiple 829s command invocations will follow 829s jobs : int or 'auto', optional 829s If 'auto', the number of jobs will be determined automatically, 829s informed by the configuration setting 829s 'datalad.runtime.max-annex-jobs'. 829s protocol : WitlessProtocol, optional 829s Protocol class to pass to GitWitlessRunner.run(). By default this is 829s StdOutErrCapture, which will provide default logging behavior and 829s guarantee that stdout/stderr are included in potential CommandError 829s exception. 829s git_options: list, optional 829s Additional arguments for Git to include in the git-annex call 829s (in a position prior to the 'annex' subcommand. 829s stdin: File-like, optional 829s stdin to connect to the git-annex process. Only used when `files` 829s is None. 829s merge_annex_branches: bool, optional 829s If False, annex.merge-annex-branches=false config will be set for 829s git-annex call. Useful for operations which are not intended to 829s benefit from updating information about remote git-annexes 829s **kwargs: 829s Additional arguments are passed on to the WitlessProtocol constructor 829s 829s Returns 829s ------- 829s dict 829s Return value of WitlessRunner.run(). The content of the dict is 829s determined by the given `protocol`. By default, it provides git-annex's 829s stdout and stderr (under these key names) 829s 829s Raises 829s ------ 829s CommandError 829s If the call exits with a non-zero status. 829s 829s OutOfSpaceError 829s If a corresponding statement was detected in git-annex's output on 829s stderr. Only supported if the given protocol captured stderr. 829s 829s RemoteNotAvailableError 829s If a corresponding statement was detected in git-annex's output on 829s stderr. Only supported if the given protocol captured stderr. 829s """ 829s if self.git_annex_version is None: 829s self._check_git_annex_version() 829s 829s # git portion of the command 829s cmd = ['git'] + self._ANNEX_GIT_COMMON_OPTIONS 829s 829s if git_options: 829s cmd += git_options 829s 829s if not self.always_commit: 829s cmd += ['-c', 'annex.alwayscommit=false'] 829s 829s if not merge_annex_branches: 829s cmd += ['-c', 'annex.merge-annex-branches=false'] 829s 829s # annex portion of the command 829s cmd.append('annex') 829s cmd += args 829s 829s if lgr.getEffectiveLevel() <= 8: 829s cmd.append('--debug') 829s 829s if self._annex_common_options: 829s cmd += self._annex_common_options 829s 829s if jobs == 'auto': 829s # Limit to # of CPUs (but at least 3 to start with) 829s # and also an additional config constraint (by default 1 829s # due to https://github.com/datalad/datalad/issues/4404) 829s jobs = self._n_auto_jobs or min( 829s self.config.obtain('datalad.runtime.max-annex-jobs'), 829s max(3, cpu_count())) 829s # cache result to avoid repeated calls to cpu_count() 829s self._n_auto_jobs = jobs 829s if jobs and jobs != 1: 829s cmd.append('-J%d' % jobs) 829s 829s runner = self._git_runner 829s env = None 829s if self.fake_dates_enabled: 829s env = self.add_fake_dates(runner.env) 829s 829s try: 829s if files: 829s if issubclass(protocol, GeneratorMixIn): 829s return runner.run_on_filelist_chunks_items_( 829s cmd, 829s files, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s else: 829s return runner.run_on_filelist_chunks( 829s cmd, 829s files, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s else: 829s > return runner.run( 829s cmd, 829s stdin=stdin, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s 829s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:996: 829s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 829s 829s self = 829s cmd = ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', ...] 829s protocol = , stdin = None 829s cwd = None, env = None, timeout = None, exception_on_error = True, kwargs = {} 829s applied_cwd = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/dataset6') 829s applied_env = {'ADTTMP': '/tmp/autopkgtest.vjeRUT/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-ar.../8.4.2-1 python-pluggy/1.6.0-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-artifacts', ...} 829s threaded_runner = 829s results_or_iterator = {'code': 1, 'stderr': ' not enough free space, need 100 MB more (use --force to override this check or adjust annex.diskreserve)\ncopy: 1 failed\n', 'stdout': 'copy testfile1.txt (from myuncurl...) \nfailed\n'} 829s results = {'code': 1, 'stderr': ' not enough free space, need 100 MB more (use --force to override this check or adjust annex.diskreserve)\ncopy: 1 failed\n', 'stdout': 'copy testfile1.txt (from myuncurl...) \nfailed\n'} 829s return_code = 1 829s 829s def run(self, 829s cmd: list | str, 829s protocol: type[WitlessProtocol] | None = None, 829s stdin: bytes | IO | Queue | None = None, 829s cwd: PathLike | str | None = None, 829s env: dict | None = None, 829s timeout: float | None = None, 829s exception_on_error: bool = True, 829s **kwargs) -> dict | _ResultGenerator: 829s """Execute a command and communicate with it. 829s 829s Parameters 829s ---------- 829s cmd : list or str 829s Sequence of program arguments. Passing a single string causes 829s execution via the platform shell. 829s protocol : WitlessProtocol, optional 829s Protocol class handling interaction with the running process 829s (e.g. output capture). A number of pre-crafted classes are 829s provided (e.g `KillOutput`, `NoCapture`, `GitProgress`). 829s If the protocol has the GeneratorMixIn-mixin, the run-method 829s will return an iterator and can therefore be used in a for-clause. 829s stdin : file-like, bytes, Queue, or None 829s If stdin is a file-like, it will be directly used as stdin for the 829s subprocess. The caller is responsible for writing to it and closing it. 829s If stdin is a bytes, it will be fed to stdin of the subprocess. 829s If all data is written, stdin will be closed. 829s If stdin is a Queue, all elements (bytes) put into the Queue will 829s be passed to stdin until None is read from the queue. If None is read, 829s stdin of the subprocess is closed. 829s cwd : str or path-like, optional 829s If given, commands are executed with this path as PWD, 829s the PWD of the parent process is used otherwise. Overrides 829s any `cwd` given to the constructor. 829s env : dict, optional 829s Environment to be used for command execution. If given, it will 829s completely replace any environment provided to theconstructor. If 829s `cwd` is given, 'PWD' in the environment is set to its value. 829s This must be a complete environment definition, no values 829s from the current environment will be inherited. Overrides 829s any `env` given to the constructor. 829s timeout: float, optional 829s None or the seconds after which a timeout callback is 829s invoked, if no progress was made in communicating with 829s the sub-process, or if waiting for the subprocess exit 829s took more than the specified time. See the protocol and 829s `ThreadedRunner` descriptions for a more detailed discussion 829s on timeouts. 829s exception_on_error : bool, optional 829s This argument is first interpreted if the protocol is a subclass 829s of `GeneratorMixIn`. If it is `True` (default), a 829s `CommandErrorException` is raised by the generator if the 829s sub process exited with a return code not equal to zero. If the 829s parameter is `False`, no exception is raised. In both cases the 829s return code can be read from the attribute `return_code` of 829s the generator. Then this argument interpreted within this function 829s to not raise `CommandError` if value is False in case of non-0 exit. 829s kwargs : 829s Passed to the Protocol class constructor. 829s 829s Returns 829s ------- 829s dict | _ResultGenerator 829s 829s If the protocol is not a subclass of `GeneratorMixIn`, the 829s result of protocol._prepare_result will be returned. 829s 829s If the protocol is a subclass of `GeneratorMixIn`, a Generator, i.e. 829s a `_ResultGenerator`, will be returned. This allows to use this 829s method in constructs like: 829s 829s for protocol_output in runner.run(): 829s ... 829s 829s Where the iterator yields whatever protocol.pipe_data_received 829s sends into the generator. 829s If all output was yielded and the process has terminated, the 829s generator will raise StopIteration(return_code), where 829s return_code is the return code of the process. The return code 829s of the process will also be stored in the "return_code"-attribute 829s of the runner. So you could write: 829s 829s gen = runner.run() 829s for file_descriptor, data in gen: 829s ... 829s 829s # get the return code of the process 829s result = gen.return_code 829s 829s Raises 829s ------ 829s CommandError 829s On execution failure (non-zero exit code) this exception is 829s raised which provides the command (cmd), stdout, stderr, 829s exit code (status), and a message identifying the failed 829s command, as properties. 829s FileNotFoundError 829s When a given executable does not exist. 829s """ 829s if protocol is None: 829s # by default let all subprocess stream pass through 829s protocol = NoCapture 829s 829s applied_cwd = cwd or self.cwd 829s applied_env = self._get_adjusted_env( 829s env=env or self.env, 829s cwd=applied_cwd, 829s ) 829s 829s lgr.debug( 829s 'Run %r (protocol_class=%s) (cwd=%s)', 829s cmd, 829s protocol.__name__, 829s applied_cwd 829s ) 829s 829s threaded_runner = ThreadedRunner( 829s cmd=cmd, 829s protocol_class=protocol, 829s stdin=stdin, 829s protocol_kwargs=kwargs, 829s timeout=timeout, 829s exception_on_error=exception_on_error, 829s cwd=applied_cwd, 829s env=applied_env 829s ) 829s 829s results_or_iterator = threaded_runner.run() 829s if issubclass(protocol, GeneratorMixIn): 829s return results_or_iterator 829s 829s results = cast(dict, results_or_iterator) 829s # log before any exception is raised 829s lgr.debug("Finished %r with status %s", cmd, results['code']) 829s 829s # make it such that we always blow if a protocol did not report 829s # a return code at all or it was non-0 and we were not asked ignore 829s # errors 829s return_code = results.get('code', None) 829s if return_code is None or (return_code and exception_on_error): 829s # the runner has a better idea, doc string warns Protocol 829s # implementations not to return these 829s results.pop('cmd', None) 829s results.pop('cwd', None) 829s > raise CommandError( 829s # whatever the results were, we carry them forward 829s cmd=cmd, 829s cwd=applied_cwd, 829s **results, 829s ) 829s E datalad.runner.exception.CommandError: CommandError: 'git -c diff.ignoreSubmodules=none -c core.quotepath=false annex copy -f myuncurl /tmp/pytest-of-ubuntu/pytest-0/dataset6/testfile1.txt -c annex.dotfiles=true' failed with exitcode 1 under /tmp/pytest-of-ubuntu/pytest-0/dataset6 [out: 'copy testfile1.txt (from myuncurl...) 829s E failed'] [err: 'not enough free space, need 100 MB more (use --force to override this check or adjust annex.diskreserve) 829s E copy: 1 failed'] 829s 829s /usr/lib/python3/dist-packages/datalad/runner/runner.py:243: CommandError 829s 829s During handling of the above exception, another exception occurred: 829s 829s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_uncurl_store0') 829s existing_dataset = Dataset('/tmp/pytest-of-ubuntu/pytest-0/dataset6') 829s no_result_rendering = None 829s 829s @skip_if_root # see https://github.com/datalad/datalad-next/issues/525 829s def test_uncurl_store(tmp_path, existing_dataset, no_result_rendering): 829s ds = existing_dataset 829s testfile = ds.pathobj / 'testfile1.txt' 829s testfile_content = 'uppytyup!' 829s testfile.write_text(testfile_content) 829s ds.save() 829s dsca = ds.repo.call_annex 829s # init the remote with a template that places keys in the same structure 829s # as annex/objects within a bare remote repo 829s dsca(['initremote', 'myuncurl'] + std_initargs + [ 829s # intentional double-braces at the end to get templates into the template 829s f'url={(tmp_path).as_uri()}/{{annex_dirhash_lower}}{{annex_key}}/{{annex_key}}', 829s ]) 829s # store file at remote 829s dsca(['copy', '-t', 'myuncurl', str(testfile)]) 829s # let remote verify presence 829s dsca(['fsck', '-q', '-f', 'myuncurl']) 829s # doublecheck 829s testfile_props = ds.status(testfile, annex='basic', 829s return_type='item-or-list') 829s assert (tmp_path / testfile_props['hashdirlower'] / 829s testfile_props['key'] / testfile_props['key'] 829s ).read_text() == testfile_content 829s # we have no URLs recorded 829s assert all(not v['urls'] 829s for v in ds.repo.whereis(str(testfile), output='full').values()) 829s # yet we can retrieve via uncurl, because local key properties are enough 829s # to fill the template 829s ds.drop(testfile) 829s assert not ds.status( 829s testfile, annex='availability', return_type='item-or-list', 829s )['has_content'] 829s > dsca(['copy', '-f', 'myuncurl', str(testfile)]) 829s 829s ../build.4Ft/src/datalad_next/annexremotes/tests/test_uncurl.py:364: 829s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 829s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1317: in call_annex 829s return self._call_annex( 829s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 829s 829s self = AnnexRepo('/tmp/pytest-of-ubuntu/pytest-0/dataset6') 829s args = ['copy', '-f', 'myuncurl', '/tmp/pytest-of-ubuntu/pytest-0/dataset6/testfile1.txt'] 829s files = None, jobs = None 829s protocol = 829s git_options = None, stdin = None, merge_annex_branches = True, kwargs = {} 829s cmd = ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', ...] 829s runner = 829s env = None 829s out_of_space_re = 829s 829s def _call_annex(self, args, files=None, jobs=None, protocol=StdOutErrCapture, 829s git_options=None, stdin=None, merge_annex_branches=True, 829s **kwargs): 829s """Internal helper to run git-annex commands 829s 829s Standard command options are applied in addition to the given arguments, 829s and certain error conditions are detected (if possible) and dedicated 829s exceptions are raised. 829s 829s Parameters 829s ---------- 829s args: list 829s List of git-annex command arguments. 829s files: list, optional 829s If command passes list of files. If list is too long 829s (by number of files or overall size) it will be split, and multiple 829s command invocations will follow 829s jobs : int or 'auto', optional 829s If 'auto', the number of jobs will be determined automatically, 829s informed by the configuration setting 829s 'datalad.runtime.max-annex-jobs'. 829s protocol : WitlessProtocol, optional 829s Protocol class to pass to GitWitlessRunner.run(). By default this is 829s StdOutErrCapture, which will provide default logging behavior and 829s guarantee that stdout/stderr are included in potential CommandError 829s exception. 829s git_options: list, optional 829s Additional arguments for Git to include in the git-annex call 829s (in a position prior to the 'annex' subcommand. 829s stdin: File-like, optional 829s stdin to connect to the git-annex process. Only used when `files` 829s is None. 829s merge_annex_branches: bool, optional 829s If False, annex.merge-annex-branches=false config will be set for 829s git-annex call. Useful for operations which are not intended to 829s benefit from updating information about remote git-annexes 829s **kwargs: 829s Additional arguments are passed on to the WitlessProtocol constructor 829s 829s Returns 829s ------- 829s dict 829s Return value of WitlessRunner.run(). The content of the dict is 829s determined by the given `protocol`. By default, it provides git-annex's 829s stdout and stderr (under these key names) 829s 829s Raises 829s ------ 829s CommandError 829s If the call exits with a non-zero status. 829s 829s OutOfSpaceError 829s If a corresponding statement was detected in git-annex's output on 829s stderr. Only supported if the given protocol captured stderr. 829s 829s RemoteNotAvailableError 829s If a corresponding statement was detected in git-annex's output on 829s stderr. Only supported if the given protocol captured stderr. 829s """ 829s if self.git_annex_version is None: 829s self._check_git_annex_version() 829s 829s # git portion of the command 829s cmd = ['git'] + self._ANNEX_GIT_COMMON_OPTIONS 829s 829s if git_options: 829s cmd += git_options 829s 829s if not self.always_commit: 829s cmd += ['-c', 'annex.alwayscommit=false'] 829s 829s if not merge_annex_branches: 829s cmd += ['-c', 'annex.merge-annex-branches=false'] 829s 829s # annex portion of the command 829s cmd.append('annex') 829s cmd += args 829s 829s if lgr.getEffectiveLevel() <= 8: 829s cmd.append('--debug') 829s 829s if self._annex_common_options: 829s cmd += self._annex_common_options 829s 829s if jobs == 'auto': 829s # Limit to # of CPUs (but at least 3 to start with) 829s # and also an additional config constraint (by default 1 829s # due to https://github.com/datalad/datalad/issues/4404) 829s jobs = self._n_auto_jobs or min( 829s self.config.obtain('datalad.runtime.max-annex-jobs'), 829s max(3, cpu_count())) 829s # cache result to avoid repeated calls to cpu_count() 829s self._n_auto_jobs = jobs 829s if jobs and jobs != 1: 829s cmd.append('-J%d' % jobs) 829s 829s runner = self._git_runner 829s env = None 829s if self.fake_dates_enabled: 829s env = self.add_fake_dates(runner.env) 829s 829s try: 829s if files: 829s if issubclass(protocol, GeneratorMixIn): 829s return runner.run_on_filelist_chunks_items_( 829s cmd, 829s files, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s else: 829s return runner.run_on_filelist_chunks( 829s cmd, 829s files, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s else: 829s return runner.run( 829s cmd, 829s stdin=stdin, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s except CommandError as e: 829s # Note: A call might result in several 'failures', that can be or 829s # cannot be handled here. Detection of something, we can deal with, 829s # doesn't mean there's nothing else to deal with. 829s 829s # OutOfSpaceError: 829s # Note: 829s # doesn't depend on anything in stdout. Therefore check this before 829s # dealing with stdout 829s out_of_space_re = re.search( 829s "not enough free space, need (.*) more", e.stderr 829s ) 829s if out_of_space_re: 829s > raise OutOfSpaceError(cmd=['annex'] + args, 829s sizemore_msg=out_of_space_re.groups()[0]) 829s E datalad.support.exceptions.OutOfSpaceError: OutOfSpaceError: 'annex copy -f myuncurl /tmp/pytest-of-ubuntu/pytest-0/dataset6/testfile1.txt' needs 100 MB more 829s 829s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1015: OutOfSpaceError 829s ------------------------------ Captured log call ------------------------------- 829s INFO datalad.core.local.save:log.py:436 Total: starting 829s INFO datalad.core.local.save:log.py:436 829s INFO datalad.core.local.save:log.py:436 Total: processed result for /tmp/pytest-of-ubuntu/pytest-0/dataset6 829s INFO datalad.core.local.save:log.py:436 Total: done 829s ______________________________ test_uncurl_remove ______________________________ 829s 829s self = AnnexRepo('/tmp/pytest-of-ubuntu/pytest-0/dataset7') 829s args = ['addurl', '--file', '/tmp/pytest-of-ubuntu/pytest-0/dataset7/target1.txt', 'file:///tmp/pytest-of-ubuntu/pytest-0/test_uncurl_remove0/testdeposit/testfile1.txt'] 829s files = None, jobs = None 829s protocol = 829s git_options = None, stdin = None, merge_annex_branches = True, kwargs = {} 829s cmd = ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', ...] 829s runner = 829s env = None 829s out_of_space_re = 829s 829s def _call_annex(self, args, files=None, jobs=None, protocol=StdOutErrCapture, 829s git_options=None, stdin=None, merge_annex_branches=True, 829s **kwargs): 829s """Internal helper to run git-annex commands 829s 829s Standard command options are applied in addition to the given arguments, 829s and certain error conditions are detected (if possible) and dedicated 829s exceptions are raised. 829s 829s Parameters 829s ---------- 829s args: list 829s List of git-annex command arguments. 829s files: list, optional 829s If command passes list of files. If list is too long 829s (by number of files or overall size) it will be split, and multiple 829s command invocations will follow 829s jobs : int or 'auto', optional 829s If 'auto', the number of jobs will be determined automatically, 829s informed by the configuration setting 829s 'datalad.runtime.max-annex-jobs'. 829s protocol : WitlessProtocol, optional 829s Protocol class to pass to GitWitlessRunner.run(). By default this is 829s StdOutErrCapture, which will provide default logging behavior and 829s guarantee that stdout/stderr are included in potential CommandError 829s exception. 829s git_options: list, optional 829s Additional arguments for Git to include in the git-annex call 829s (in a position prior to the 'annex' subcommand. 829s stdin: File-like, optional 829s stdin to connect to the git-annex process. Only used when `files` 829s is None. 829s merge_annex_branches: bool, optional 829s If False, annex.merge-annex-branches=false config will be set for 829s git-annex call. Useful for operations which are not intended to 829s benefit from updating information about remote git-annexes 829s **kwargs: 829s Additional arguments are passed on to the WitlessProtocol constructor 829s 829s Returns 829s ------- 829s dict 829s Return value of WitlessRunner.run(). The content of the dict is 829s determined by the given `protocol`. By default, it provides git-annex's 829s stdout and stderr (under these key names) 829s 829s Raises 829s ------ 829s CommandError 829s If the call exits with a non-zero status. 829s 829s OutOfSpaceError 829s If a corresponding statement was detected in git-annex's output on 829s stderr. Only supported if the given protocol captured stderr. 829s 829s RemoteNotAvailableError 829s If a corresponding statement was detected in git-annex's output on 829s stderr. Only supported if the given protocol captured stderr. 829s """ 829s if self.git_annex_version is None: 829s self._check_git_annex_version() 829s 829s # git portion of the command 829s cmd = ['git'] + self._ANNEX_GIT_COMMON_OPTIONS 829s 829s if git_options: 829s cmd += git_options 829s 829s if not self.always_commit: 829s cmd += ['-c', 'annex.alwayscommit=false'] 829s 829s if not merge_annex_branches: 829s cmd += ['-c', 'annex.merge-annex-branches=false'] 829s 829s # annex portion of the command 829s cmd.append('annex') 829s cmd += args 829s 829s if lgr.getEffectiveLevel() <= 8: 829s cmd.append('--debug') 829s 829s if self._annex_common_options: 829s cmd += self._annex_common_options 829s 829s if jobs == 'auto': 829s # Limit to # of CPUs (but at least 3 to start with) 829s # and also an additional config constraint (by default 1 829s # due to https://github.com/datalad/datalad/issues/4404) 829s jobs = self._n_auto_jobs or min( 829s self.config.obtain('datalad.runtime.max-annex-jobs'), 829s max(3, cpu_count())) 829s # cache result to avoid repeated calls to cpu_count() 829s self._n_auto_jobs = jobs 829s if jobs and jobs != 1: 829s cmd.append('-J%d' % jobs) 829s 829s runner = self._git_runner 829s env = None 829s if self.fake_dates_enabled: 829s env = self.add_fake_dates(runner.env) 829s 829s try: 829s if files: 829s if issubclass(protocol, GeneratorMixIn): 829s return runner.run_on_filelist_chunks_items_( 829s cmd, 829s files, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s else: 829s return runner.run_on_filelist_chunks( 829s cmd, 829s files, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s else: 829s > return runner.run( 829s cmd, 829s stdin=stdin, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s 829s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:996: 829s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 829s 829s self = 829s cmd = ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', ...] 829s protocol = , stdin = None 829s cwd = None, env = None, timeout = None, exception_on_error = True, kwargs = {} 829s applied_cwd = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/dataset7') 829s applied_env = {'ADTTMP': '/tmp/autopkgtest.vjeRUT/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-ar.../8.4.2-1 python-pluggy/1.6.0-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-artifacts', ...} 829s threaded_runner = 829s results_or_iterator = {'code': 1, 'stderr': ' not enough free space, need 100 MB more (use --force to override this check or adjust annex.d...remove0/testdeposit/testfile1.txt (from myuncurl) (to /tmp/pytest-of-ubuntu/pytest-0/dataset7/target1.txt) \nfailed\n'} 829s results = {'code': 1, 'stderr': ' not enough free space, need 100 MB more (use --force to override this check or adjust annex.d...remove0/testdeposit/testfile1.txt (from myuncurl) (to /tmp/pytest-of-ubuntu/pytest-0/dataset7/target1.txt) \nfailed\n'} 829s return_code = 1 829s 829s def run(self, 829s cmd: list | str, 829s protocol: type[WitlessProtocol] | None = None, 829s stdin: bytes | IO | Queue | None = None, 829s cwd: PathLike | str | None = None, 829s env: dict | None = None, 829s timeout: float | None = None, 829s exception_on_error: bool = True, 829s **kwargs) -> dict | _ResultGenerator: 829s """Execute a command and communicate with it. 829s 829s Parameters 829s ---------- 829s cmd : list or str 829s Sequence of program arguments. Passing a single string causes 829s execution via the platform shell. 829s protocol : WitlessProtocol, optional 829s Protocol class handling interaction with the running process 829s (e.g. output capture). A number of pre-crafted classes are 829s provided (e.g `KillOutput`, `NoCapture`, `GitProgress`). 829s If the protocol has the GeneratorMixIn-mixin, the run-method 829s will return an iterator and can therefore be used in a for-clause. 829s stdin : file-like, bytes, Queue, or None 829s If stdin is a file-like, it will be directly used as stdin for the 829s subprocess. The caller is responsible for writing to it and closing it. 829s If stdin is a bytes, it will be fed to stdin of the subprocess. 829s If all data is written, stdin will be closed. 829s If stdin is a Queue, all elements (bytes) put into the Queue will 829s be passed to stdin until None is read from the queue. If None is read, 829s stdin of the subprocess is closed. 829s cwd : str or path-like, optional 829s If given, commands are executed with this path as PWD, 829s the PWD of the parent process is used otherwise. Overrides 829s any `cwd` given to the constructor. 829s env : dict, optional 829s Environment to be used for command execution. If given, it will 829s completely replace any environment provided to theconstructor. If 829s `cwd` is given, 'PWD' in the environment is set to its value. 829s This must be a complete environment definition, no values 829s from the current environment will be inherited. Overrides 829s any `env` given to the constructor. 829s timeout: float, optional 829s None or the seconds after which a timeout callback is 829s invoked, if no progress was made in communicating with 829s the sub-process, or if waiting for the subprocess exit 829s took more than the specified time. See the protocol and 829s `ThreadedRunner` descriptions for a more detailed discussion 829s on timeouts. 829s exception_on_error : bool, optional 829s This argument is first interpreted if the protocol is a subclass 829s of `GeneratorMixIn`. If it is `True` (default), a 829s `CommandErrorException` is raised by the generator if the 829s sub process exited with a return code not equal to zero. If the 829s parameter is `False`, no exception is raised. In both cases the 829s return code can be read from the attribute `return_code` of 829s the generator. Then this argument interpreted within this function 829s to not raise `CommandError` if value is False in case of non-0 exit. 829s kwargs : 829s Passed to the Protocol class constructor. 829s 829s Returns 829s ------- 829s dict | _ResultGenerator 829s 829s If the protocol is not a subclass of `GeneratorMixIn`, the 829s result of protocol._prepare_result will be returned. 829s 829s If the protocol is a subclass of `GeneratorMixIn`, a Generator, i.e. 829s a `_ResultGenerator`, will be returned. This allows to use this 829s method in constructs like: 829s 829s for protocol_output in runner.run(): 829s ... 829s 829s Where the iterator yields whatever protocol.pipe_data_received 829s sends into the generator. 829s If all output was yielded and the process has terminated, the 829s generator will raise StopIteration(return_code), where 829s return_code is the return code of the process. The return code 829s of the process will also be stored in the "return_code"-attribute 829s of the runner. So you could write: 829s 829s gen = runner.run() 829s for file_descriptor, data in gen: 829s ... 829s 829s # get the return code of the process 829s result = gen.return_code 829s 829s Raises 829s ------ 829s CommandError 829s On execution failure (non-zero exit code) this exception is 829s raised which provides the command (cmd), stdout, stderr, 829s exit code (status), and a message identifying the failed 829s command, as properties. 829s FileNotFoundError 829s When a given executable does not exist. 829s """ 829s if protocol is None: 829s # by default let all subprocess stream pass through 829s protocol = NoCapture 829s 829s applied_cwd = cwd or self.cwd 829s applied_env = self._get_adjusted_env( 829s env=env or self.env, 829s cwd=applied_cwd, 829s ) 829s 829s lgr.debug( 829s 'Run %r (protocol_class=%s) (cwd=%s)', 829s cmd, 829s protocol.__name__, 829s applied_cwd 829s ) 829s 829s threaded_runner = ThreadedRunner( 829s cmd=cmd, 829s protocol_class=protocol, 829s stdin=stdin, 829s protocol_kwargs=kwargs, 829s timeout=timeout, 829s exception_on_error=exception_on_error, 829s cwd=applied_cwd, 829s env=applied_env 829s ) 829s 829s results_or_iterator = threaded_runner.run() 829s if issubclass(protocol, GeneratorMixIn): 829s return results_or_iterator 829s 829s results = cast(dict, results_or_iterator) 829s # log before any exception is raised 829s lgr.debug("Finished %r with status %s", cmd, results['code']) 829s 829s # make it such that we always blow if a protocol did not report 829s # a return code at all or it was non-0 and we were not asked ignore 829s # errors 829s return_code = results.get('code', None) 829s if return_code is None or (return_code and exception_on_error): 829s # the runner has a better idea, doc string warns Protocol 829s # implementations not to return these 829s results.pop('cmd', None) 829s results.pop('cwd', None) 829s > raise CommandError( 829s # whatever the results were, we carry them forward 829s cmd=cmd, 829s cwd=applied_cwd, 829s **results, 829s ) 829s E datalad.runner.exception.CommandError: CommandError: 'git -c diff.ignoreSubmodules=none -c core.quotepath=false annex addurl --file /tmp/pytest-of-ubuntu/pytest-0/dataset7/target1.txt file:///tmp/pytest-of-ubuntu/pytest-0/test_uncurl_remove0/testdeposit/testfile1.txt -c annex.dotfiles=true' failed with exitcode 1 under /tmp/pytest-of-ubuntu/pytest-0/dataset7 [out: 'addurl file:///tmp/pytest-of-ubuntu/pytest-0/test_uncurl_remove0/testdeposit/testfile1.txt (from myuncurl) (to /tmp/pytest-of-ubuntu/pytest-0/dataset7/target1.txt) 829s E failed'] [err: 'not enough free space, need 100 MB more (use --force to override this check or adjust annex.diskreserve) 829s E addurl: 1 failed'] 829s 829s /usr/lib/python3/dist-packages/datalad/runner/runner.py:243: CommandError 829s 829s During handling of the above exception, another exception occurred: 829s 829s existing_dataset = Dataset('/tmp/pytest-of-ubuntu/pytest-0/dataset7') 829s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_uncurl_remove0') 829s no_result_rendering = None 829s 829s def test_uncurl_remove(existing_dataset, tmp_path, no_result_rendering): 829s testfile = tmp_path / 'testdeposit' / 'testfile1.txt' 829s testfile_content = 'uppytyup!' 829s testfile.parent.mkdir() 829s testfile.write_text(testfile_content) 829s ds = existing_dataset 829s dsca = ds.repo.call_annex 829s # init without URL template 829s dsca(['initremote', 'myuncurl'] + std_initargs) 829s # add the testdeposit by URL 829s target_fname = ds.pathobj / 'target1.txt' 829s > dsca(['addurl', '--file', str(target_fname), testfile.as_uri()]) 829s 829s ../build.4Ft/src/datalad_next/annexremotes/tests/test_uncurl.py:414: 829s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 829s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1317: in call_annex 829s return self._call_annex( 829s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 829s 829s self = AnnexRepo('/tmp/pytest-of-ubuntu/pytest-0/dataset7') 829s args = ['addurl', '--file', '/tmp/pytest-of-ubuntu/pytest-0/dataset7/target1.txt', 'file:///tmp/pytest-of-ubuntu/pytest-0/test_uncurl_remove0/testdeposit/testfile1.txt'] 829s files = None, jobs = None 829s protocol = 829s git_options = None, stdin = None, merge_annex_branches = True, kwargs = {} 829s cmd = ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', ...] 829s runner = 829s env = None 829s out_of_space_re = 829s 829s def _call_annex(self, args, files=None, jobs=None, protocol=StdOutErrCapture, 829s git_options=None, stdin=None, merge_annex_branches=True, 829s **kwargs): 829s """Internal helper to run git-annex commands 829s 829s Standard command options are applied in addition to the given arguments, 829s and certain error conditions are detected (if possible) and dedicated 829s exceptions are raised. 829s 829s Parameters 829s ---------- 829s args: list 829s List of git-annex command arguments. 829s files: list, optional 829s If command passes list of files. If list is too long 829s (by number of files or overall size) it will be split, and multiple 829s command invocations will follow 829s jobs : int or 'auto', optional 829s If 'auto', the number of jobs will be determined automatically, 829s informed by the configuration setting 829s 'datalad.runtime.max-annex-jobs'. 829s protocol : WitlessProtocol, optional 829s Protocol class to pass to GitWitlessRunner.run(). By default this is 829s StdOutErrCapture, which will provide default logging behavior and 829s guarantee that stdout/stderr are included in potential CommandError 829s exception. 829s git_options: list, optional 829s Additional arguments for Git to include in the git-annex call 829s (in a position prior to the 'annex' subcommand. 829s stdin: File-like, optional 829s stdin to connect to the git-annex process. Only used when `files` 829s is None. 829s merge_annex_branches: bool, optional 829s If False, annex.merge-annex-branches=false config will be set for 829s git-annex call. Useful for operations which are not intended to 829s benefit from updating information about remote git-annexes 829s **kwargs: 829s Additional arguments are passed on to the WitlessProtocol constructor 829s 829s Returns 829s ------- 829s dict 829s Return value of WitlessRunner.run(). The content of the dict is 829s determined by the given `protocol`. By default, it provides git-annex's 829s stdout and stderr (under these key names) 829s 829s Raises 829s ------ 829s CommandError 829s If the call exits with a non-zero status. 829s 829s OutOfSpaceError 829s If a corresponding statement was detected in git-annex's output on 829s stderr. Only supported if the given protocol captured stderr. 829s 829s RemoteNotAvailableError 829s If a corresponding statement was detected in git-annex's output on 829s stderr. Only supported if the given protocol captured stderr. 829s """ 829s if self.git_annex_version is None: 829s self._check_git_annex_version() 829s 829s # git portion of the command 829s cmd = ['git'] + self._ANNEX_GIT_COMMON_OPTIONS 829s 829s if git_options: 829s cmd += git_options 829s 829s if not self.always_commit: 829s cmd += ['-c', 'annex.alwayscommit=false'] 829s 829s if not merge_annex_branches: 829s cmd += ['-c', 'annex.merge-annex-branches=false'] 829s 829s # annex portion of the command 829s cmd.append('annex') 829s cmd += args 829s 829s if lgr.getEffectiveLevel() <= 8: 829s cmd.append('--debug') 829s 829s if self._annex_common_options: 829s cmd += self._annex_common_options 829s 829s if jobs == 'auto': 829s # Limit to # of CPUs (but at least 3 to start with) 829s # and also an additional config constraint (by default 1 829s # due to https://github.com/datalad/datalad/issues/4404) 829s jobs = self._n_auto_jobs or min( 829s self.config.obtain('datalad.runtime.max-annex-jobs'), 829s max(3, cpu_count())) 829s # cache result to avoid repeated calls to cpu_count() 829s self._n_auto_jobs = jobs 829s if jobs and jobs != 1: 829s cmd.append('-J%d' % jobs) 829s 829s runner = self._git_runner 829s env = None 829s if self.fake_dates_enabled: 829s env = self.add_fake_dates(runner.env) 829s 829s try: 829s if files: 829s if issubclass(protocol, GeneratorMixIn): 829s return runner.run_on_filelist_chunks_items_( 829s cmd, 829s files, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s else: 829s return runner.run_on_filelist_chunks( 829s cmd, 829s files, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s else: 829s return runner.run( 829s cmd, 829s stdin=stdin, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s except CommandError as e: 829s # Note: A call might result in several 'failures', that can be or 829s # cannot be handled here. Detection of something, we can deal with, 829s # doesn't mean there's nothing else to deal with. 829s 829s # OutOfSpaceError: 829s # Note: 829s # doesn't depend on anything in stdout. Therefore check this before 829s # dealing with stdout 829s out_of_space_re = re.search( 829s "not enough free space, need (.*) more", e.stderr 829s ) 829s if out_of_space_re: 829s > raise OutOfSpaceError(cmd=['annex'] + args, 829s sizemore_msg=out_of_space_re.groups()[0]) 829s E datalad.support.exceptions.OutOfSpaceError: OutOfSpaceError: 'annex addurl --file /tmp/pytest-of-ubuntu/pytest-0/dataset7/target1.txt file:///tmp/pytest-of-ubuntu/pytest-0/test_uncurl_remove0/testdeposit/testfile1.txt' needs 100 MB more 829s 829s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1015: OutOfSpaceError 829s ____________________________ test_uncurl_testremote ____________________________ 829s 829s self = AnnexRepo('/tmp/pytest-of-ubuntu/pytest-0/dataset8') 829s args = ['testremote', '--quiet', 'myuncurl'], files = None, jobs = None 829s protocol = 829s git_options = None, stdin = None, merge_annex_branches = True, kwargs = {} 829s cmd = ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', ...] 829s runner = 829s env = None 829s out_of_space_re = 829s 829s def _call_annex(self, args, files=None, jobs=None, protocol=StdOutErrCapture, 829s git_options=None, stdin=None, merge_annex_branches=True, 829s **kwargs): 829s """Internal helper to run git-annex commands 829s 829s Standard command options are applied in addition to the given arguments, 829s and certain error conditions are detected (if possible) and dedicated 829s exceptions are raised. 829s 829s Parameters 829s ---------- 829s args: list 829s List of git-annex command arguments. 829s files: list, optional 829s If command passes list of files. If list is too long 829s (by number of files or overall size) it will be split, and multiple 829s command invocations will follow 829s jobs : int or 'auto', optional 829s If 'auto', the number of jobs will be determined automatically, 829s informed by the configuration setting 829s 'datalad.runtime.max-annex-jobs'. 829s protocol : WitlessProtocol, optional 829s Protocol class to pass to GitWitlessRunner.run(). By default this is 829s StdOutErrCapture, which will provide default logging behavior and 829s guarantee that stdout/stderr are included in potential CommandError 829s exception. 829s git_options: list, optional 829s Additional arguments for Git to include in the git-annex call 829s (in a position prior to the 'annex' subcommand. 829s stdin: File-like, optional 829s stdin to connect to the git-annex process. Only used when `files` 829s is None. 829s merge_annex_branches: bool, optional 829s If False, annex.merge-annex-branches=false config will be set for 829s git-annex call. Useful for operations which are not intended to 829s benefit from updating information about remote git-annexes 829s **kwargs: 829s Additional arguments are passed on to the WitlessProtocol constructor 829s 829s Returns 829s ------- 829s dict 829s Return value of WitlessRunner.run(). The content of the dict is 829s determined by the given `protocol`. By default, it provides git-annex's 829s stdout and stderr (under these key names) 829s 829s Raises 829s ------ 829s CommandError 829s If the call exits with a non-zero status. 829s 829s OutOfSpaceError 829s If a corresponding statement was detected in git-annex's output on 829s stderr. Only supported if the given protocol captured stderr. 829s 829s RemoteNotAvailableError 829s If a corresponding statement was detected in git-annex's output on 829s stderr. Only supported if the given protocol captured stderr. 829s """ 829s if self.git_annex_version is None: 829s self._check_git_annex_version() 829s 829s # git portion of the command 829s cmd = ['git'] + self._ANNEX_GIT_COMMON_OPTIONS 829s 829s if git_options: 829s cmd += git_options 829s 829s if not self.always_commit: 829s cmd += ['-c', 'annex.alwayscommit=false'] 829s 829s if not merge_annex_branches: 829s cmd += ['-c', 'annex.merge-annex-branches=false'] 829s 829s # annex portion of the command 829s cmd.append('annex') 829s cmd += args 829s 829s if lgr.getEffectiveLevel() <= 8: 829s cmd.append('--debug') 829s 829s if self._annex_common_options: 829s cmd += self._annex_common_options 829s 829s if jobs == 'auto': 829s # Limit to # of CPUs (but at least 3 to start with) 829s # and also an additional config constraint (by default 1 829s # due to https://github.com/datalad/datalad/issues/4404) 829s jobs = self._n_auto_jobs or min( 829s self.config.obtain('datalad.runtime.max-annex-jobs'), 829s max(3, cpu_count())) 829s # cache result to avoid repeated calls to cpu_count() 829s self._n_auto_jobs = jobs 829s if jobs and jobs != 1: 829s cmd.append('-J%d' % jobs) 829s 829s runner = self._git_runner 829s env = None 829s if self.fake_dates_enabled: 829s env = self.add_fake_dates(runner.env) 829s 829s try: 829s if files: 829s if issubclass(protocol, GeneratorMixIn): 829s return runner.run_on_filelist_chunks_items_( 829s cmd, 829s files, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s else: 829s return runner.run_on_filelist_chunks( 829s cmd, 829s files, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s else: 829s > return runner.run( 829s cmd, 829s stdin=stdin, 829s protocol=protocol, 829s env=env, 829s **kwargs) 829s 829s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:996: 829s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 829s 829s self = 829s cmd = ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', ...] 829s protocol = , stdin = None 829s cwd = None, env = None, timeout = None, exception_on_error = True, kwargs = {} 829s applied_cwd = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/dataset8') 829s applied_env = {'ADTTMP': '/tmp/autopkgtest.vjeRUT/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-ar.../8.4.2-1 python-pluggy/1.6.0-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-artifacts', ...} 829s threaded_runner = 829s results_or_iterator = {'code': 1, 'stderr': ' Cannot run git-annex-remote-!dne! -- It is not installed in PATH (/usr/lib/git-core:/usr/loca... OK\n remove export directory that is already removed: OK\n\n368 out of 573 tests failed (72.52s)\n'} 829s results = {'code': 1, 'stderr': ' Cannot run git-annex-remote-!dne! -- It is not installed in PATH (/usr/lib/git-core:/usr/loca... OK\n remove export directory that is already removed: OK\n\n368 out of 573 tests failed (72.52s)\n'} 829s return_code = 1 829s 829s def run(self, 829s cmd: list | str, 829s protocol: type[WitlessProtocol] | None = None, 829s stdin: bytes | IO | Queue | None = None, 829s cwd: PathLike | str | None = None, 829s env: dict | None = None, 829s timeout: float | None = None, 829s exception_on_error: bool = True, 829s **kwargs) -> dict | _ResultGenerator: 829s """Execute a command and communicate with it. 829s 829s Parameters 829s ---------- 829s cmd : list or str 829s Sequence of program arguments. Passing a single string causes 829s execution via the platform shell. 829s protocol : WitlessProtocol, optional 829s Protocol class handling interaction with the running process 829s (e.g. output capture). A number of pre-crafted classes are 829s provided (e.g `KillOutput`, `NoCapture`, `GitProgress`). 829s If the protocol has the GeneratorMixIn-mixin, the run-method 829s will return an iterator and can therefore be used in a for-clause. 829s stdin : file-like, bytes, Queue, or None 829s If stdin is a file-like, it will be directly used as stdin for the 829s subprocess. The caller is responsible for writing to it and closing it. 829s If stdin is a bytes, it will be fed to stdin of the subprocess. 829s If all data is written, stdin will be closed. 829s If stdin is a Queue, all elements (bytes) put into the Queue will 829s be passed to stdin until None is read from the queue. If None is read, 829s stdin of the subprocess is closed. 829s cwd : str or path-like, optional 829s If given, commands are executed with this path as PWD, 829s the PWD of the parent process is used otherwise. Overrides 829s any `cwd` given to the constructor. 829s env : dict, optional 829s Environment to be used for command execution. If given, it will 829s completely replace any environment provided to theconstructor. If 829s `cwd` is given, 'PWD' in the environment is set to its value. 829s This must be a complete environment definition, no values 829s from the current environment will be inherited. Overrides 829s any `env` given to the constructor. 829s timeout: float, optional 829s None or the seconds after which a timeout callback is 829s invoked, if no progress was made in communicating with 829s the sub-process, or if waiting for the subprocess exit 829s took more than the specified time. See the protocol and 829s `ThreadedRunner` descriptions for a more detailed discussion 829s on timeouts. 829s exception_on_error : bool, optional 829s This argument is first interpreted if the protocol is a subclass 829s of `GeneratorMixIn`. If it is `True` (default), a 829s `CommandErrorException` is raised by the generator if the 829s sub process exited with a return code not equal to zero. If the 829s parameter is `False`, no exception is raised. In both cases the 829s return code can be read from the attribute `return_code` of 829s the generator. Then this argument interpreted within this function 829s to not raise `CommandError` if value is False in case of non-0 exit. 829s kwargs : 829s Passed to the Protocol class constructor. 829s 829s Returns 829s ------- 829s dict | _ResultGenerator 829s 829s If the protocol is not a subclass of `GeneratorMixIn`, the 829s result of protocol._prepare_result will be returned. 829s 829s If the protocol is a subclass of `GeneratorMixIn`, a Generator, i.e. 829s a `_ResultGenerator`, will be returned. This allows to use this 829s method in constructs like: 829s 829s for protocol_output in runner.run(): 829s ... 829s 829s Where the iterator yields whatever protocol.pipe_data_received 829s sends into the generator. 829s If all output was yielded and the process has terminated, the 829s generator will raise StopIteration(return_code), where 829s return_code is the return code of the process. The return code 829s of the process will also be stored in the "return_code"-attribute 829s of the runner. So you could write: 829s 829s gen = runner.run() 829s for file_descriptor, data in gen: 829s ... 829s 829s # get the return code of the process 829s result = gen.return_code 829s 829s Raises 829s ------ 829s CommandError 829s On execution failure (non-zero exit code) this exception is 829s raised which provides the command (cmd), stdout, stderr, 829s exit code (status), and a message identifying the failed 829s command, as properties. 829s FileNotFoundError 829s When a given executable does not exist. 829s """ 829s if protocol is None: 829s # by default let all subprocess stream pass through 829s protocol = NoCapture 829s 829s applied_cwd = cwd or self.cwd 829s applied_env = self._get_adjusted_env( 829s env=env or self.env, 829s cwd=applied_cwd, 829s ) 829s 829s lgr.debug( 829s 'Run %r (protocol_class=%s) (cwd=%s)', 829s cmd, 829s protocol.__name__, 829s applied_cwd 829s ) 829s 829s threaded_runner = ThreadedRunner( 829s cmd=cmd, 829s protocol_class=protocol, 829s stdin=stdin, 829s protocol_kwargs=kwargs, 829s timeout=timeout, 829s exception_on_error=exception_on_error, 829s cwd=applied_cwd, 829s env=applied_env 829s ) 829s 829s results_or_iterator = threaded_runner.run() 829s if issubclass(protocol, GeneratorMixIn): 829s return results_or_iterator 829s 829s results = cast(dict, results_or_iterator) 829s # log before any exception is raised 829s lgr.debug("Finished %r with status %s", cmd, results['code']) 829s 829s # make it such that we always blow if a protocol did not report 829s # a return code at all or it was non-0 and we were not asked ignore 829s # errors 829s return_code = results.get('code', None) 829s if return_code is None or (return_code and exception_on_error): 829s # the runner has a better idea, doc string warns Protocol 829s # implementations not to return these 829s results.pop('cmd', None) 829s results.pop('cwd', None) 829s > raise CommandError( 829s # whatever the results were, we carry them forward 829s cmd=cmd, 829s cwd=applied_cwd, 829s **results, 829s ) 829s E datalad.runner.exception.CommandError: CommandError: 'git -c diff.ignoreSubmodules=none -c core.quotepath=false annex testremote --quiet myuncurl -c annex.dotfiles=true' failed with exitcode 1 under /tmp/pytest-of-ubuntu/pytest-0/dataset8 [out: 'Remote Tests 829s E unavailable remote 829s E removeKey: OK 829s E storeKey: OK 829s E checkPresent: OK 829s E retrieveKeyFile: OK 829s E retrieveKeyFileCheap: OK 829s E key size Just 1048576; remote chunksize=0 encryption=none 829s E removeKey when not present: OK (0.81s) 829s E present False: OK 829s E storeKey: OK 829s E present True: OK 829s E storeKey when already present: OK 829s E present True: OK 829s E retrieveKeyFile: FAIL 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=0 encryption=none.retrieveKeyFile"' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=0 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 0: FAIL (0.01s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048576; remote chunksize=0 encryption=none.retrieveKeyFile resume from 0/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=0 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 33%: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 829s E Use -p '/key size Just 1048576; remote chunksize=0 encryption=none.retrieveKeyFile resume from 33%/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=0 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from end: FAIL (0.06s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048576; remote chunksize=0 encryption=none.retrieveKeyFile resume from end/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=0 encryption=none.fsck downloaded object"' to rerun this test only. 829s E removeKey when present: OK (0.05s) 829s E present False: OK 829s E key size Just 1048576; remote chunksize=0 encryption=shared 829s E removeKey when not present: OK (0.80s) 829s E present False: OK 829s E storeKey: FAIL 829s E Exception: content not available to send 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=0 encryption=shared.storeKey"' to rerun this test only. 829s E present True: FAIL 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=0 encryption=shared.present True"' to rerun this test only. 829s E storeKey when already present: FAIL 829s E Exception: content not available to send 829s E Use -p '/key size Just 1048576; remote chunksize=0 encryption=shared.storeKey when already present/' to rerun this test only. 829s E present True: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=0 encryption=shared.present True"' to rerun this test only. 829s E retrieveKeyFile: FAIL 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=0 encryption=shared.retrieveKeyFile"' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=0 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 0: FAIL 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048576; remote chunksize=0 encryption=shared.retrieveKeyFile resume from 0/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=0 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 33%: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 829s E Use -p '/key size Just 1048576; remote chunksize=0 encryption=shared.retrieveKeyFile resume from 33%/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=0 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from end: FAIL 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048576; remote chunksize=0 encryption=shared.retrieveKeyFile resume from end/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=0 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E removeKey when present: OK 829s E present False: OK 829s E key size Just 1048576; remote chunksize=10485 encryption=none 829s E removeKey when not present: OK (1.13s) 829s E present False: OK 829s E storeKey: FAIL 829s E Exception: content not available to send 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=10485 encryption=none.storeKey"' to rerun this test only. 829s E present True: FAIL 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=10485 encryption=none.present True"' to rerun this test only. 829s E storeKey when already present: FAIL 829s E Exception: content not available to send 829s E Use -p '/key size Just 1048576; remote chunksize=10485 encryption=none.storeKey when already present/' to rerun this test only. 829s E present True: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=10485 encryption=none.present True"' to rerun this test only. 829s E retrieveKeyFile: FAIL 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=10485 encryption=none.retrieveKeyFile"' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=10485 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 0: FAIL 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048576; remote chunksize=10485 encryption=none.retrieveKeyFile resume from 0/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=10485 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 33%: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 829s E Use -p '/key size Just 1048576; remote chunksize=10485 encryption=none.retrieveKeyFile resume from 33%/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=10485 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from end: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048576; remote chunksize=10485 encryption=none.retrieveKeyFile resume from end/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=10485 encryption=none.fsck downloaded object"' to rerun this test only. 829s E removeKey when present: OK (0.30s) 829s E present False: OK 829s E key size Just 1048576; remote chunksize=10485 encryption=shared 829s E removeKey when not present: OK (1.06s) 829s E present False: OK 829s E storeKey: FAIL 829s E Exception: content not available to send 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=10485 encryption=shared.storeKey"' to rerun this test only. 829s E present True: FAIL 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=10485 encryption=shared.present True"' to rerun this test only. 829s E storeKey when already present: FAIL 829s E Exception: content not available to send 829s E Use -p '/key size Just 1048576; remote chunksize=10485 encryption=shared.storeKey when already present/' to rerun this test only. 829s E present True: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=10485 encryption=shared.present True"' to rerun this test only. 829s E retrieveKeyFile: FAIL 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=10485 encryption=shared.retrieveKeyFile"' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=10485 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 0: FAIL 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048576; remote chunksize=10485 encryption=shared.retrieveKeyFile resume from 0/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=10485 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 33%: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 829s E Use -p '/key size Just 1048576; remote chunksize=10485 encryption=shared.retrieveKeyFile resume from 33%/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=10485 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from end: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048576; remote chunksize=10485 encryption=shared.retrieveKeyFile resume from end/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=10485 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E removeKey when present: OK (0.30s) 829s E present False: OK 829s E key size Just 1048576; remote chunksize=1048 encryption=none 829s E removeKey when not present: OK (3.72s) 829s E present False: OK 829s E storeKey: FAIL 829s E Exception: content not available to send 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048 encryption=none.storeKey"' to rerun this test only. 829s E present True: FAIL (0.01s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048 encryption=none.present True"' to rerun this test only. 829s E storeKey when already present: FAIL 829s E Exception: content not available to send 829s E Use -p '/key size Just 1048576; remote chunksize=1048 encryption=none.storeKey when already present/' to rerun this test only. 829s E present True: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048 encryption=none.present True"' to rerun this test only. 829s E retrieveKeyFile: FAIL 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048 encryption=none.retrieveKeyFile"' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 0: FAIL 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048576; remote chunksize=1048 encryption=none.retrieveKeyFile resume from 0/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 33%: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 829s E Use -p '/key size Just 1048576; remote chunksize=1048 encryption=none.retrieveKeyFile resume from 33%/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from end: FAIL (0.04s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048576; remote chunksize=1048 encryption=none.retrieveKeyFile resume from end/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048 encryption=none.fsck downloaded object"' to rerun this test only. 829s E removeKey when present: OK (2.69s) 829s E present False: OK 829s E key size Just 1048576; remote chunksize=1048 encryption=shared 829s E removeKey when not present: OK (3.38s) 829s E present False: OK 829s E storeKey: FAIL 829s E Exception: content not available to send 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048 encryption=shared.storeKey"' to rerun this test only. 829s E present True: FAIL (0.01s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048 encryption=shared.present True"' to rerun this test only. 829s E storeKey when already present: FAIL 829s E Exception: content not available to send 829s E Use -p '/key size Just 1048576; remote chunksize=1048 encryption=shared.storeKey when already present/' to rerun this test only. 829s E present True: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048 encryption=shared.present True"' to rerun this test only. 829s E retrieveKeyFile: FAIL 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048 encryption=shared.retrieveKeyFile"' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 0: FAIL (0.01s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048576; remote chunksize=1048 encryption=shared.retrieveKeyFile resume from 0/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 33%: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 829s E Use -p '/key size Just 1048576; remote chunksize=1048 encryption=shared.retrieveKeyFile resume from 33%/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from end: FAIL (0.04s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048576; remote chunksize=1048 encryption=shared.retrieveKeyFile resume from end/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E removeKey when present: OK (2.68s) 829s E present False: OK 829s E key size Just 1048576; remote chunksize=1048576 encryption=none 829s E removeKey when not present: OK (0.79s) 829s E present False: OK 829s E storeKey: FAIL 829s E Exception: content not available to send 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048576 encryption=none.storeKey"' to rerun this test only. 829s E present True: FAIL (0.01s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048576 encryption=none.present True"' to rerun this test only. 829s E storeKey when already present: FAIL 829s E Exception: content not available to send 829s E Use -p '/key size Just 1048576; remote chunksize=1048576 encryption=none.storeKey when already present/' to rerun this test only. 829s E present True: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048576 encryption=none.present True"' to rerun this test only. 829s E retrieveKeyFile: FAIL 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048576 encryption=none.retrieveKeyFile"' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048576 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 0: FAIL (0.01s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048576; remote chunksize=1048576 encryption=none.retrieveKeyFile resume from 0/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048576 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 33%: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 829s E Use -p '/key size Just 1048576; remote chunksize=1048576 encryption=none.retrieveKeyFile resume from 33%/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048576 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from end: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048576; remote chunksize=1048576 encryption=none.retrieveKeyFile resume from end/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048576 encryption=none.fsck downloaded object"' to rerun this test only. 829s E removeKey when present: OK (0.04s) 829s E present False: OK 829s E key size Just 1048576; remote chunksize=1048576 encryption=shared 829s E removeKey when not present: OK (0.81s) 829s E present False: OK 829s E storeKey: FAIL 829s E Exception: content not available to send 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048576 encryption=shared.storeKey"' to rerun this test only. 829s E present True: FAIL (0.01s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048576 encryption=shared.present True"' to rerun this test only. 829s E storeKey when already present: FAIL 829s E Exception: content not available to send 829s E Use -p '/key size Just 1048576; remote chunksize=1048576 encryption=shared.storeKey when already present/' to rerun this test only. 829s E present True: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048576 encryption=shared.present True"' to rerun this test only. 829s E retrieveKeyFile: FAIL (0.01s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048576 encryption=shared.retrieveKeyFile"' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048576 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 0: FAIL (0.01s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048576; remote chunksize=1048576 encryption=shared.retrieveKeyFile resume from 0/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048576 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 33%: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 829s E Use -p '/key size Just 1048576; remote chunksize=1048576 encryption=shared.retrieveKeyFile resume from 33%/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048576 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from end: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048576; remote chunksize=1048576 encryption=shared.retrieveKeyFile resume from end/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048576; remote chunksize=1048576 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E removeKey when present: OK (0.04s) 829s E present False: OK 829s E key size Just 1048577; remote chunksize=0 encryption=none 829s E removeKey when not present: OK 829s E present False: OK 829s E storeKey: OK 829s E present True: OK 829s E storeKey when already present: OK 829s E present True: OK 829s E retrieveKeyFile: FAIL 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=0 encryption=none.retrieveKeyFile"' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=0 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 0: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048577; remote chunksize=0 encryption=none.retrieveKeyFile resume from 0/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=0 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 33%: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 829s E Use -p '/key size Just 1048577; remote chunksize=0 encryption=none.retrieveKeyFile resume from 33%/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=0 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from end: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048577; remote chunksize=0 encryption=none.retrieveKeyFile resume from end/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=0 encryption=none.fsck downloaded object"' to rerun this test only. 829s E removeKey when present: OK (0.03s) 829s E present False: OK 829s E key size Just 1048577; remote chunksize=0 encryption=shared 829s E removeKey when not present: OK 829s E present False: OK 829s E storeKey: FAIL 829s E Exception: content not available to send 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=0 encryption=shared.storeKey"' to rerun this test only. 829s E present True: FAIL (0.01s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=0 encryption=shared.present True"' to rerun this test only. 829s E storeKey when already present: FAIL 829s E Exception: content not available to send 829s E Use -p '/key size Just 1048577; remote chunksize=0 encryption=shared.storeKey when already present/' to rerun this test only. 829s E present True: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=0 encryption=shared.present True"' to rerun this test only. 829s E retrieveKeyFile: FAIL (0.01s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=0 encryption=shared.retrieveKeyFile"' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=0 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 0: FAIL (0.01s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048577; remote chunksize=0 encryption=shared.retrieveKeyFile resume from 0/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=0 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 33%: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 829s E Use -p '/key size Just 1048577; remote chunksize=0 encryption=shared.retrieveKeyFile resume from 33%/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=0 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from end: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048577; remote chunksize=0 encryption=shared.retrieveKeyFile resume from end/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=0 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E removeKey when present: OK (0.02s) 829s E present False: OK 829s E key size Just 1048577; remote chunksize=10485 encryption=none 829s E removeKey when not present: OK (0.29s) 829s E present False: OK 829s E storeKey: FAIL 829s E Exception: content not available to send 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=10485 encryption=none.storeKey"' to rerun this test only. 829s E present True: FAIL 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=10485 encryption=none.present True"' to rerun this test only. 829s E storeKey when already present: FAIL 829s E Exception: content not available to send 829s E Use -p '/key size Just 1048577; remote chunksize=10485 encryption=none.storeKey when already present/' to rerun this test only. 829s E present True: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=10485 encryption=none.present True"' to rerun this test only. 829s E retrieveKeyFile: FAIL (0.01s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=10485 encryption=none.retrieveKeyFile"' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=10485 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 0: FAIL (0.01s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048577; remote chunksize=10485 encryption=none.retrieveKeyFile resume from 0/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=10485 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 33%: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 829s E Use -p '/key size Just 1048577; remote chunksize=10485 encryption=none.retrieveKeyFile resume from 33%/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=10485 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from end: FAIL (0.05s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048577; remote chunksize=10485 encryption=none.retrieveKeyFile resume from end/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=10485 encryption=none.fsck downloaded object"' to rerun this test only. 829s E removeKey when present: OK (0.28s) 829s E present False: OK 829s E key size Just 1048577; remote chunksize=10485 encryption=shared 829s E removeKey when not present: OK (0.27s) 829s E present False: OK 829s E storeKey: FAIL 829s E Exception: content not available to send 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=10485 encryption=shared.storeKey"' to rerun this test only. 829s E present True: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=10485 encryption=shared.present True"' to rerun this test only. 829s E storeKey when already present: FAIL 829s E Exception: content not available to send 829s E Use -p '/key size Just 1048577; remote chunksize=10485 encryption=shared.storeKey when already present/' to rerun this test only. 829s E present True: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=10485 encryption=shared.present True"' to rerun this test only. 829s E retrieveKeyFile: FAIL (0.01s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=10485 encryption=shared.retrieveKeyFile"' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=10485 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 0: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048577; remote chunksize=10485 encryption=shared.retrieveKeyFile resume from 0/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=10485 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 33%: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 829s E Use -p '/key size Just 1048577; remote chunksize=10485 encryption=shared.retrieveKeyFile resume from 33%/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=10485 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from end: FAIL (0.05s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048577; remote chunksize=10485 encryption=shared.retrieveKeyFile resume from end/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=10485 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E removeKey when present: OK (0.30s) 829s E present False: OK 829s E key size Just 1048577; remote chunksize=1048 encryption=none 829s E removeKey when not present: OK (2.83s) 829s E present False: OK 829s E storeKey: FAIL 829s E Exception: content not available to send 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048 encryption=none.storeKey"' to rerun this test only. 829s E present True: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048 encryption=none.present True"' to rerun this test only. 829s E storeKey when already present: FAIL 829s E Exception: content not available to send 829s E Use -p '/key size Just 1048577; remote chunksize=1048 encryption=none.storeKey when already present/' to rerun this test only. 829s E present True: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048 encryption=none.present True"' to rerun this test only. 829s E retrieveKeyFile: FAIL (0.01s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048 encryption=none.retrieveKeyFile"' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 0: FAIL (0.01s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048577; remote chunksize=1048 encryption=none.retrieveKeyFile resume from 0/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 33%: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 829s E Use -p '/key size Just 1048577; remote chunksize=1048 encryption=none.retrieveKeyFile resume from 33%/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from end: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048577; remote chunksize=1048 encryption=none.retrieveKeyFile resume from end/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048 encryption=none.fsck downloaded object"' to rerun this test only. 829s E removeKey when present: OK (2.64s) 829s E present False: OK 829s E key size Just 1048577; remote chunksize=1048 encryption=shared 829s E removeKey when not present: OK (2.65s) 829s E present False: OK 829s E storeKey: FAIL 829s E Exception: content not available to send 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048 encryption=shared.storeKey"' to rerun this test only. 829s E present True: FAIL 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048 encryption=shared.present True"' to rerun this test only. 829s E storeKey when already present: FAIL 829s E Exception: content not available to send 829s E Use -p '/key size Just 1048577; remote chunksize=1048 encryption=shared.storeKey when already present/' to rerun this test only. 829s E present True: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048 encryption=shared.present True"' to rerun this test only. 829s E retrieveKeyFile: FAIL (0.01s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048 encryption=shared.retrieveKeyFile"' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 0: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048577; remote chunksize=1048 encryption=shared.retrieveKeyFile resume from 0/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 33%: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 829s E Use -p '/key size Just 1048577; remote chunksize=1048 encryption=shared.retrieveKeyFile resume from 33%/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from end: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048577; remote chunksize=1048 encryption=shared.retrieveKeyFile resume from end/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E removeKey when present: OK (2.70s) 829s E present False: OK 829s E key size Just 1048577; remote chunksize=1048576 encryption=none 829s E removeKey when not present: OK (0.01s) 829s E present False: OK 829s E storeKey: FAIL 829s E Exception: content not available to send 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048576 encryption=none.storeKey"' to rerun this test only. 829s E present True: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048576 encryption=none.present True"' to rerun this test only. 829s E storeKey when already present: FAIL 829s E Exception: content not available to send 829s E Use -p '/key size Just 1048577; remote chunksize=1048576 encryption=none.storeKey when already present/' to rerun this test only. 829s E present True: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048576 encryption=none.present True"' to rerun this test only. 829s E retrieveKeyFile: FAIL (0.01s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048576 encryption=none.retrieveKeyFile"' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048576 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 0: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048577; remote chunksize=1048576 encryption=none.retrieveKeyFile resume from 0/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048576 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 33%: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 829s E Use -p '/key size Just 1048577; remote chunksize=1048576 encryption=none.retrieveKeyFile resume from 33%/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048576 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from end: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048577; remote chunksize=1048576 encryption=none.retrieveKeyFile resume from end/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048576 encryption=none.fsck downloaded object"' to rerun this test only. 829s E removeKey when present: OK (0.04s) 829s E present False: OK 829s E key size Just 1048577; remote chunksize=1048576 encryption=shared 829s E removeKey when not present: OK (0.01s) 829s E present False: OK 829s E storeKey: FAIL 829s E Exception: content not available to send 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048576 encryption=shared.storeKey"' to rerun this test only. 829s E present True: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048576 encryption=shared.present True"' to rerun this test only. 829s E storeKey when already present: FAIL 829s E Exception: content not available to send 829s E Use -p '/key size Just 1048577; remote chunksize=1048576 encryption=shared.storeKey when already present/' to rerun this test only. 829s E present True: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048576 encryption=shared.present True"' to rerun this test only. 829s E retrieveKeyFile: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048576 encryption=shared.retrieveKeyFile"' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048576 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 0: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048577; remote chunksize=1048576 encryption=shared.retrieveKeyFile resume from 0/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048576 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 33%: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 829s E Use -p '/key size Just 1048577; remote chunksize=1048576 encryption=shared.retrieveKeyFile resume from 33%/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048576 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from end: FAIL (0.04s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048577; remote chunksize=1048576 encryption=shared.retrieveKeyFile resume from end/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048577; remote chunksize=1048576 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E removeKey when present: OK (0.01s) 829s E present False: OK 829s E key size Just 1048575; remote chunksize=0 encryption=none 829s E removeKey when not present: OK 829s E present False: OK 829s E storeKey: OK 829s E present True: OK 829s E storeKey when already present: OK 829s E present True: OK 829s E retrieveKeyFile: FAIL 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=0 encryption=none.retrieveKeyFile"' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=0 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 0: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048575; remote chunksize=0 encryption=none.retrieveKeyFile resume from 0/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=0 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 33%: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 829s E Use -p '/key size Just 1048575; remote chunksize=0 encryption=none.retrieveKeyFile resume from 33%/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=0 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from end: FAIL (0.05s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048575; remote chunksize=0 encryption=none.retrieveKeyFile resume from end/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=0 encryption=none.fsck downloaded object"' to rerun this test only. 829s E removeKey when present: OK (0.03s) 829s E present False: OK 829s E key size Just 1048575; remote chunksize=0 encryption=shared 829s E removeKey when not present: OK 829s E present False: OK 829s E storeKey: FAIL 829s E Exception: content not available to send 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=0 encryption=shared.storeKey"' to rerun this test only. 829s E present True: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=0 encryption=shared.present True"' to rerun this test only. 829s E storeKey when already present: FAIL 829s E Exception: content not available to send 829s E Use -p '/key size Just 1048575; remote chunksize=0 encryption=shared.storeKey when already present/' to rerun this test only. 829s E present True: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=0 encryption=shared.present True"' to rerun this test only. 829s E retrieveKeyFile: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=0 encryption=shared.retrieveKeyFile"' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=0 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 0: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048575; remote chunksize=0 encryption=shared.retrieveKeyFile resume from 0/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=0 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 33%: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 829s E Use -p '/key size Just 1048575; remote chunksize=0 encryption=shared.retrieveKeyFile resume from 33%/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=0 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from end: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048575; remote chunksize=0 encryption=shared.retrieveKeyFile resume from end/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=0 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E removeKey when present: OK (0.02s) 829s E present False: OK 829s E key size Just 1048575; remote chunksize=10485 encryption=none 829s E removeKey when not present: OK (0.29s) 829s E present False: OK 829s E storeKey: FAIL 829s E Exception: content not available to send 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=10485 encryption=none.storeKey"' to rerun this test only. 829s E present True: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=10485 encryption=none.present True"' to rerun this test only. 829s E storeKey when already present: FAIL 829s E Exception: content not available to send 829s E Use -p '/key size Just 1048575; remote chunksize=10485 encryption=none.storeKey when already present/' to rerun this test only. 829s E present True: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=10485 encryption=none.present True"' to rerun this test only. 829s E retrieveKeyFile: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=10485 encryption=none.retrieveKeyFile"' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=10485 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 0: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048575; remote chunksize=10485 encryption=none.retrieveKeyFile resume from 0/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=10485 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 33%: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 829s E Use -p '/key size Just 1048575; remote chunksize=10485 encryption=none.retrieveKeyFile resume from 33%/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=10485 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from end: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048575; remote chunksize=10485 encryption=none.retrieveKeyFile resume from end/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=10485 encryption=none.fsck downloaded object"' to rerun this test only. 829s E removeKey when present: OK (0.28s) 829s E present False: OK 829s E key size Just 1048575; remote chunksize=10485 encryption=shared 829s E removeKey when not present: OK (0.32s) 829s E present False: OK 829s E storeKey: FAIL 829s E Exception: content not available to send 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=10485 encryption=shared.storeKey"' to rerun this test only. 829s E present True: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=10485 encryption=shared.present True"' to rerun this test only. 829s E storeKey when already present: FAIL 829s E Exception: content not available to send 829s E Use -p '/key size Just 1048575; remote chunksize=10485 encryption=shared.storeKey when already present/' to rerun this test only. 829s E present True: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=10485 encryption=shared.present True"' to rerun this test only. 829s E retrieveKeyFile: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=10485 encryption=shared.retrieveKeyFile"' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=10485 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 0: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048575; remote chunksize=10485 encryption=shared.retrieveKeyFile resume from 0/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=10485 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 33%: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 829s E Use -p '/key size Just 1048575; remote chunksize=10485 encryption=shared.retrieveKeyFile resume from 33%/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=10485 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from end: FAIL (0.04s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048575; remote chunksize=10485 encryption=shared.retrieveKeyFile resume from end/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=10485 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E removeKey when present: OK (0.31s) 829s E present False: OK 829s E key size Just 1048575; remote chunksize=1048 encryption=none 829s E removeKey when not present: OK (2.88s) 829s E present False: OK 829s E storeKey: FAIL 829s E Exception: content not available to send 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048 encryption=none.storeKey"' to rerun this test only. 829s E present True: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048 encryption=none.present True"' to rerun this test only. 829s E storeKey when already present: FAIL 829s E Exception: content not available to send 829s E Use -p '/key size Just 1048575; remote chunksize=1048 encryption=none.storeKey when already present/' to rerun this test only. 829s E present True: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048 encryption=none.present True"' to rerun this test only. 829s E retrieveKeyFile: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048 encryption=none.retrieveKeyFile"' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 0: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048575; remote chunksize=1048 encryption=none.retrieveKeyFile resume from 0/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 33%: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 829s E Use -p '/key size Just 1048575; remote chunksize=1048 encryption=none.retrieveKeyFile resume from 33%/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from end: FAIL (0.05s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048575; remote chunksize=1048 encryption=none.retrieveKeyFile resume from end/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048 encryption=none.fsck downloaded object"' to rerun this test only. 829s E removeKey when present: OK (2.58s) 829s E present False: OK 829s E key size Just 1048575; remote chunksize=1048 encryption=shared 829s E removeKey when not present: OK (2.72s) 829s E present False: OK (0.01s) 829s E storeKey: FAIL 829s E Exception: content not available to send 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048 encryption=shared.storeKey"' to rerun this test only. 829s E present True: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048 encryption=shared.present True"' to rerun this test only. 829s E storeKey when already present: FAIL 829s E Exception: content not available to send 829s E Use -p '/key size Just 1048575; remote chunksize=1048 encryption=shared.storeKey when already present/' to rerun this test only. 829s E present True: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048 encryption=shared.present True"' to rerun this test only. 829s E retrieveKeyFile: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048 encryption=shared.retrieveKeyFile"' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 0: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048575; remote chunksize=1048 encryption=shared.retrieveKeyFile resume from 0/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 33%: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 829s E Use -p '/key size Just 1048575; remote chunksize=1048 encryption=shared.retrieveKeyFile resume from 33%/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from end: FAIL (0.05s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048575; remote chunksize=1048 encryption=shared.retrieveKeyFile resume from end/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E removeKey when present: OK (2.51s) 829s E present False: OK 829s E key size Just 1048575; remote chunksize=1048576 encryption=none 829s E removeKey when not present: OK 829s E present False: OK 829s E storeKey: FAIL 829s E Exception: content not available to send 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048576 encryption=none.storeKey"' to rerun this test only. 829s E present True: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048576 encryption=none.present True"' to rerun this test only. 829s E storeKey when already present: FAIL 829s E Exception: content not available to send 829s E Use -p '/key size Just 1048575; remote chunksize=1048576 encryption=none.storeKey when already present/' to rerun this test only. 829s E present True: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048576 encryption=none.present True"' to rerun this test only. 829s E retrieveKeyFile: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048576 encryption=none.retrieveKeyFile"' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048576 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 0: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048575; remote chunksize=1048576 encryption=none.retrieveKeyFile resume from 0/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048576 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 33%: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 829s E Use -p '/key size Just 1048575; remote chunksize=1048576 encryption=none.retrieveKeyFile resume from 33%/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048576 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from end: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048575; remote chunksize=1048576 encryption=none.retrieveKeyFile resume from end/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048576 encryption=none.fsck downloaded object"' to rerun this test only. 829s E removeKey when present: OK (0.05s) 829s E present False: OK 829s E key size Just 1048575; remote chunksize=1048576 encryption=shared 829s E removeKey when not present: OK 829s E present False: OK 829s E storeKey: FAIL 829s E Exception: content not available to send 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048576 encryption=shared.storeKey"' to rerun this test only. 829s E present True: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048576 encryption=shared.present True"' to rerun this test only. 829s E storeKey when already present: FAIL 829s E Exception: content not available to send 829s E Use -p '/key size Just 1048575; remote chunksize=1048576 encryption=shared.storeKey when already present/' to rerun this test only. 829s E present True: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048576 encryption=shared.present True"' to rerun this test only. 829s E retrieveKeyFile: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048576 encryption=shared.retrieveKeyFile"' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048576 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 0: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048575; remote chunksize=1048576 encryption=shared.retrieveKeyFile resume from 0/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048576 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 33%: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 829s E Use -p '/key size Just 1048575; remote chunksize=1048576 encryption=shared.retrieveKeyFile resume from 33%/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048576 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from end: FAIL (0.05s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 1048575; remote chunksize=1048576 encryption=shared.retrieveKeyFile resume from end/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 1048575; remote chunksize=1048576 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E removeKey when present: OK (0.04s) 829s E present False: OK 829s E key size Just 2097152; remote chunksize=0 encryption=none 829s E removeKey when not present: OK 829s E present False: OK 829s E storeKey: OK 829s E present True: OK 829s E storeKey when already present: OK 829s E present True: OK 829s E retrieveKeyFile: FAIL 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=0 encryption=none.retrieveKeyFile"' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=0 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 0: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 2097152; remote chunksize=0 encryption=none.retrieveKeyFile resume from 0/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=0 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 33%: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 829s E Use -p '/key size Just 2097152; remote chunksize=0 encryption=none.retrieveKeyFile resume from 33%/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=0 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from end: FAIL (0.04s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 2097152; remote chunksize=0 encryption=none.retrieveKeyFile resume from end/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=0 encryption=none.fsck downloaded object"' to rerun this test only. 829s E removeKey when present: OK (0.03s) 829s E present False: OK 829s E key size Just 2097152; remote chunksize=0 encryption=shared 829s E removeKey when not present: OK 829s E present False: OK 829s E storeKey: FAIL 829s E Exception: content not available to send 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=0 encryption=shared.storeKey"' to rerun this test only. 829s E present True: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=0 encryption=shared.present True"' to rerun this test only. 829s E storeKey when already present: FAIL 829s E Exception: content not available to send 829s E Use -p '/key size Just 2097152; remote chunksize=0 encryption=shared.storeKey when already present/' to rerun this test only. 829s E present True: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=0 encryption=shared.present True"' to rerun this test only. 829s E retrieveKeyFile: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=0 encryption=shared.retrieveKeyFile"' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=0 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 0: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 2097152; remote chunksize=0 encryption=shared.retrieveKeyFile resume from 0/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=0 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 33%: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 829s E Use -p '/key size Just 2097152; remote chunksize=0 encryption=shared.retrieveKeyFile resume from 33%/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=0 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from end: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 2097152; remote chunksize=0 encryption=shared.retrieveKeyFile resume from end/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=0 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E removeKey when present: OK (0.04s) 829s E present False: OK 829s E key size Just 2097152; remote chunksize=10485 encryption=none 829s E removeKey when not present: OK (0.54s) 829s E present False: OK 829s E storeKey: FAIL 829s E Exception: content not available to send 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=10485 encryption=none.storeKey"' to rerun this test only. 829s E present True: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=10485 encryption=none.present True"' to rerun this test only. 829s E storeKey when already present: FAIL 829s E Exception: content not available to send 829s E Use -p '/key size Just 2097152; remote chunksize=10485 encryption=none.storeKey when already present/' to rerun this test only. 829s E present True: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=10485 encryption=none.present True"' to rerun this test only. 829s E retrieveKeyFile: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=10485 encryption=none.retrieveKeyFile"' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=10485 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 0: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 2097152; remote chunksize=10485 encryption=none.retrieveKeyFile resume from 0/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=10485 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 33%: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 829s E Use -p '/key size Just 2097152; remote chunksize=10485 encryption=none.retrieveKeyFile resume from 33%/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=10485 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from end: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 2097152; remote chunksize=10485 encryption=none.retrieveKeyFile resume from end/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=10485 encryption=none.fsck downloaded object"' to rerun this test only. 829s E removeKey when present: OK (0.51s) 829s E present False: OK 829s E key size Just 2097152; remote chunksize=10485 encryption=shared 829s E removeKey when not present: OK (0.50s) 829s E present False: OK 829s E storeKey: FAIL 829s E Exception: content not available to send 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=10485 encryption=shared.storeKey"' to rerun this test only. 829s E present True: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=10485 encryption=shared.present True"' to rerun this test only. 829s E storeKey when already present: FAIL 829s E Exception: content not available to send 829s E Use -p '/key size Just 2097152; remote chunksize=10485 encryption=shared.storeKey when already present/' to rerun this test only. 829s E present True: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=10485 encryption=shared.present True"' to rerun this test only. 829s E retrieveKeyFile: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=10485 encryption=shared.retrieveKeyFile"' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=10485 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 0: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 2097152; remote chunksize=10485 encryption=shared.retrieveKeyFile resume from 0/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=10485 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 33%: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 829s E Use -p '/key size Just 2097152; remote chunksize=10485 encryption=shared.retrieveKeyFile resume from 33%/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=10485 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from end: FAIL (0.05s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 2097152; remote chunksize=10485 encryption=shared.retrieveKeyFile resume from end/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=10485 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E removeKey when present: OK (0.52s) 829s E present False: OK 829s E key size Just 2097152; remote chunksize=1048 encryption=none 829s E removeKey when not present: OK (5.37s) 829s E present False: OK 829s E storeKey: FAIL 829s E Exception: content not available to send 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048 encryption=none.storeKey"' to rerun this test only. 829s E present True: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048 encryption=none.present True"' to rerun this test only. 829s E storeKey when already present: FAIL 829s E Exception: content not available to send 829s E Use -p '/key size Just 2097152; remote chunksize=1048 encryption=none.storeKey when already present/' to rerun this test only. 829s E present True: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048 encryption=none.present True"' to rerun this test only. 829s E retrieveKeyFile: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048 encryption=none.retrieveKeyFile"' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 0: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 2097152; remote chunksize=1048 encryption=none.retrieveKeyFile resume from 0/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 33%: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 829s E Use -p '/key size Just 2097152; remote chunksize=1048 encryption=none.retrieveKeyFile resume from 33%/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from end: FAIL (0.05s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 2097152; remote chunksize=1048 encryption=none.retrieveKeyFile resume from end/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048 encryption=none.fsck downloaded object"' to rerun this test only. 829s E removeKey when present: OK (4.99s) 829s E present False: OK 829s E key size Just 2097152; remote chunksize=1048 encryption=shared 829s E removeKey when not present: OK (4.93s) 829s E present False: OK 829s E storeKey: FAIL 829s E Exception: content not available to send 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048 encryption=shared.storeKey"' to rerun this test only. 829s E present True: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048 encryption=shared.present True"' to rerun this test only. 829s E storeKey when already present: FAIL 829s E Exception: content not available to send 829s E Use -p '/key size Just 2097152; remote chunksize=1048 encryption=shared.storeKey when already present/' to rerun this test only. 829s E present True: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048 encryption=shared.present True"' to rerun this test only. 829s E retrieveKeyFile: FAIL 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048 encryption=shared.retrieveKeyFile"' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 0: FAIL (0.04s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 2097152; remote chunksize=1048 encryption=shared.retrieveKeyFile resume from 0/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 33%: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 829s E Use -p '/key size Just 2097152; remote chunksize=1048 encryption=shared.retrieveKeyFile resume from 33%/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from end: FAIL (0.08s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 2097152; remote chunksize=1048 encryption=shared.retrieveKeyFile resume from end/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E removeKey when present: OK (5.06s) 829s E present False: OK 829s E key size Just 2097152; remote chunksize=1048576 encryption=none 829s E removeKey when not present: OK (0.01s) 829s E present False: OK 829s E storeKey: FAIL 829s E Exception: content not available to send 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048576 encryption=none.storeKey"' to rerun this test only. 829s E present True: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048576 encryption=none.present True"' to rerun this test only. 829s E storeKey when already present: FAIL 829s E Exception: content not available to send 829s E Use -p '/key size Just 2097152; remote chunksize=1048576 encryption=none.storeKey when already present/' to rerun this test only. 829s E present True: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048576 encryption=none.present True"' to rerun this test only. 829s E retrieveKeyFile: FAIL (0.02s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048576 encryption=none.retrieveKeyFile"' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048576 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 0: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 2097152; remote chunksize=1048576 encryption=none.retrieveKeyFile resume from 0/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048576 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 33%: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 829s E Use -p '/key size Just 2097152; remote chunksize=1048576 encryption=none.retrieveKeyFile resume from 33%/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048576 encryption=none.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from end: FAIL (0.05s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 2097152; remote chunksize=1048576 encryption=none.retrieveKeyFile resume from end/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048576 encryption=none.fsck downloaded object"' to rerun this test only. 829s E removeKey when present: OK (0.06s) 829s E present False: OK 829s E key size Just 2097152; remote chunksize=1048576 encryption=shared 829s E removeKey when not present: OK (0.01s) 829s E present False: OK 829s E storeKey: FAIL 829s E Exception: content not available to send 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048576 encryption=shared.storeKey"' to rerun this test only. 829s E present True: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048576 encryption=shared.present True"' to rerun this test only. 829s E storeKey when already present: FAIL 829s E Exception: content not available to send 829s E Use -p '/key size Just 2097152; remote chunksize=1048576 encryption=shared.storeKey when already present/' to rerun this test only. 829s E present True: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048576 encryption=shared.present True"' to rerun this test only. 829s E retrieveKeyFile: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048576 encryption=shared.retrieveKeyFile"' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048576 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 0: FAIL (0.03s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 2097152; remote chunksize=1048576 encryption=shared.retrieveKeyFile resume from 0/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048576 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from 33%: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: openBinaryFile: does not exist (No such file or directory) 829s E Use -p '/key size Just 2097152; remote chunksize=1048576 encryption=shared.retrieveKeyFile resume from 33%/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048576 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E retrieveKeyFile resume from end: FAIL (0.05s) 829s E ./Command/TestRemote.hs:295: 829s E failed 829s E Use -p '/key size Just 2097152; remote chunksize=1048576 encryption=shared.retrieveKeyFile resume from end/' to rerun this test only. 829s E fsck downloaded object: FAIL 829s E Exception: .git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key: withBinaryFile: does not exist (No such file or directory) 829s E Use -p '$0=="Remote Tests.key size Just 2097152; remote chunksize=1048576 encryption=shared.fsck downloaded object"' to rerun this test only. 829s E removeKey when present: OK (0.05s) 829s E present False: OK 829s E exporttree=yes; key size Just 1048576; key size Just 2097152 829s E check present export when not present: OK 829s E remove export when not present: OK 829s E store export: OK 829s E check present export after store: OK 829s E store export when already present: OK 829s E retrieve export: OK 829s E store new content to export: OK 829s E check present export after store of new content: OK 829s E retrieve export new content: OK 829s E remove export: OK 829s E check present export after remove: OK 829s E retrieve export fails after removal: OK 829s E remove export directory: OK 829s E remove export directory that is already removed: OK 829s E exporttree=yes; key size Just 1048576; key size Just 1048575 829s E check present export when not present: OK 829s E remove export when not present: OK 829s E store export: OK 829s E check present export after store: OK 829s E store export when already present: OK 829s E retrieve export: OK 829s E store new content to export: OK 829s E check present export after store of new content: OK 829s E retrieve export new content: OK 829s E remove export: OK 829s E check present export after remove: OK 829s E retrieve export fails after removal: OK 829s E remove export directory: OK 829s E remove export directory that is already removed: OK 829s E exporttree=yes; key size Just 1048577; key size Just 2097152 829s E check present export when not present: OK 829s E remove export when not present: OK 829s E store export: OK 829s E check present export after store: OK 829s E store export when already present: OK 829s E retrieve export: OK 829s E store new content to export: OK 829s E check present export after store of new content: OK 829s E retrieve export new content: OK 829s E remove export: OK 829s E check present export after remove: OK 829s E retrieve export fails after removal: OK 829s E remove export directory: OK 829s E remove export directory that is already removed: OK 829s E exporttree=yes; key size Just 1048577; key size Just 1048575 829s E check present export when not present: OK 829s E remove export when not present: OK 829s E store export: OK 829s E check present export after store: OK 829s E store export when already present: OK 829s E retrieve export: OK 829s E store new content to export: OK 829s E check present export after store of new content: OK 829s E retrieve export new content: OK 829s E remove export: OK 829s E check present export after remove: OK 829s E retrieve export fails after removal: OK 829s E remove export directory: OK 829s E remove export directory that is already removed: OK 829s E 829s E 368 out of 573 tests failed (72.52s)'] [err: 'Cannot run git-annex-remote-!dne! -- It is not installed in PATH (/usr/lib/git-core:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin) 829s E Cannot run git-annex-remote-!dne! -- It is not installed in PATH (/usr/lib/git-core:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin) 829s E Cannot run git-annex-remote-!dne! -- It is not installed in PATH (/usr/lib/git-core:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin) 829s E Cannot run git-annex-remote-!dne! -- It is not installed in PATH (/usr/lib/git-core:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E cp: cannot stat '.git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key': No such file or directory 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E cp: cannot stat '.git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key': No such file or directory 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E cp: cannot stat '.git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key': No such file or directory 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E cp: cannot stat '.git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key': No such file or directory 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E cp: cannot stat '.git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key': No such file or directory 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E cp: cannot stat '.git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key': No such file or directory 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E cp: cannot stat '.git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key': No such file or directory 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E cp: cannot stat '.git/annex/objects/MW/74/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key/SHA256E-s1048576--27ee5d88617ef57a34ceb036d056f274b9f9ec1b6b143cf33cf0090437c468dd.this-is-a-test-key': No such file or directory 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E cp: cannot stat '.git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key': No such file or directory 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E cp: cannot stat '.git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key': No such file or directory 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E cp: cannot stat '.git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key': No such file or directory 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E cp: cannot stat '.git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key': No such file or directory 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E cp: cannot stat '.git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key': No such file or directory 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E cp: cannot stat '.git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key': No such file or directory 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E cp: cannot stat '.git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key': No such file or directory 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E cp: cannot stat '.git/annex/objects/vm/9W/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key/SHA256E-s1048577--236947a23334d74d23e24f3402d99b1cb89db0c4a8365d2f27173f93cc6d0d63.this-is-a-test-key': No such file or directory 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E cp: cannot stat '.git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key': No such file or directory 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E cp: cannot stat '.git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key': No such file or directory 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E cp: cannot stat '.git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key': No such file or directory 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E cp: cannot stat '.git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key': No such file or directory 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E cp: cannot stat '.git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key': No such file or directory 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E cp: cannot stat '.git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key': No such file or directory 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E cp: cannot stat '.git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key': No such file or directory 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E cp: cannot stat '.git/annex/objects/3v/2M/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key/SHA256E-s1048575--6224ccdb6abcdc79af19340dae8a68712e992c7d7bbbb68abe1aee48ee7a98eb.this-is-a-test-key': No such file or directory 829s E not enough free space, need 101.05 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 829s E cp: cannot stat '.git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key': No such file or directory 829s E not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 829s E cp: cannot stat '.git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key': No such file or directory 829s E not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 829s E cp: cannot stat '.git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key': No such file or directory 829s E not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 829s E cp: cannot stat '.git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key': No such file or directory 829s E not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 829s E cp: cannot stat '.git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key': No such file or directory 829s E not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 829s E cp: cannot stat '.git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key': No such file or directory 829s E not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 829s E cp: cannot stat '.git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key': No such file or directory 829s E not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 829s E not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 829s E cp: cannot stat '.git/annex/objects/qF/6J/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key/SHA256E-s2097152--d18ebeb1a6fe110d5565df3a8a419b74ea71b0eb85c314e356fbf505ae665735.this-is-a-test-key': No such file or directory 829s E not enough free space, need 102.1 MB more (use --force to override this check or adjust annex.diskreserve) 829s E testremote: 1 failed'] 829s 829s /usr/lib/python3/dist-packages/datalad/runner/runner.py:243: CommandError 829s 829s During handling of the above exception, another exception occurred: 829s 829s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_uncurl_testremote0') 829s existing_dataset = Dataset('/tmp/pytest-of-ubuntu/pytest-0/dataset8') 829s 829s def test_uncurl_testremote(tmp_path, existing_dataset): 829s "Point git-annex's testremote at uncurl" 829s ds = existing_dataset 829s dsca = ds.repo.call_annex 829s dsca(['initremote', 'myuncurl'] + std_initargs 829s # file:///key 829s + [f'url=file://{tmp_path}/{{annex_key}}']) 829s # Temporarily disable this until 829s # https://github.com/datalad/datalad-dataverse/issues/127 829s # is sorted out. Possibly via 829s # https://git-annex.branchable.com/bugs/testremote_is_not_honoring_--backend 829s if not on_windows: 829s # not running with --fast to also cover key chunking 829s > dsca(['testremote', '--quiet', 'myuncurl']) 829s 829s ../build.4Ft/src/datalad_next/annexremotes/tests/test_uncurl.py:449: 829s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 829s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1317: in call_annex 829s return self._call_annex( 829s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 829s 829s self = AnnexRepo('/tmp/pytest-of-ubuntu/pytest-0/dataset8') 829s args = ['testremote', '--quiet', 'myuncurl'], files = None, jobs = None 829s protocol = 829s git_options = None, stdin = None, merge_annex_branches = True, kwargs = {} 829s cmd = ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', ...] 829s runner = 829s env = None 829s out_of_space_re = 829s 829s def _call_annex(self, args, files=None, jobs=None, protocol=StdOutErrCapture, 829s git_options=None, stdin=None, merge_annex_branches=True, 829s **kwargs): 829s """Internal helper to run git-annex commands 829s 830s Standard command options are applied in addition to the given arguments, 830s and certain error conditions are detected (if possible) and dedicated 830s exceptions are raised. 830s 830s Parameters 830s ---------- 830s args: list 830s List of git-annex command arguments. 830s files: list, optional 830s If command passes list of files. If list is too long 830s (by number of files or overall size) it will be split, and multiple 830s command invocations will follow 830s jobs : int or 'auto', optional 830s If 'auto', the number of jobs will be determined automatically, 830s informed by the configuration setting 830s 'datalad.runtime.max-annex-jobs'. 830s protocol : WitlessProtocol, optional 830s Protocol class to pass to GitWitlessRunner.run(). By default this is 830s StdOutErrCapture, which will provide default logging behavior and 830s guarantee that stdout/stderr are included in potential CommandError 830s exception. 830s git_options: list, optional 830s Additional arguments for Git to include in the git-annex call 830s (in a position prior to the 'annex' subcommand. 830s stdin: File-like, optional 830s stdin to connect to the git-annex process. Only used when `files` 830s is None. 830s merge_annex_branches: bool, optional 830s If False, annex.merge-annex-branches=false config will be set for 830s git-annex call. Useful for operations which are not intended to 830s benefit from updating information about remote git-annexes 830s **kwargs: 830s Additional arguments are passed on to the WitlessProtocol constructor 830s 830s Returns 830s ------- 830s dict 830s Return value of WitlessRunner.run(). The content of the dict is 830s determined by the given `protocol`. By default, it provides git-annex's 830s stdout and stderr (under these key names) 830s 830s Raises 830s ------ 830s CommandError 830s If the call exits with a non-zero status. 830s 830s OutOfSpaceError 830s If a corresponding statement was detected in git-annex's output on 830s stderr. Only supported if the given protocol captured stderr. 830s 830s RemoteNotAvailableError 830s If a corresponding statement was detected in git-annex's output on 830s stderr. Only supported if the given protocol captured stderr. 830s """ 830s if self.git_annex_version is None: 830s self._check_git_annex_version() 830s 830s # git portion of the command 830s cmd = ['git'] + self._ANNEX_GIT_COMMON_OPTIONS 830s 830s if git_options: 830s cmd += git_options 830s 830s if not self.always_commit: 830s cmd += ['-c', 'annex.alwayscommit=false'] 830s 830s if not merge_annex_branches: 830s cmd += ['-c', 'annex.merge-annex-branches=false'] 830s 830s # annex portion of the command 830s cmd.append('annex') 830s cmd += args 830s 830s if lgr.getEffectiveLevel() <= 8: 830s cmd.append('--debug') 830s 830s if self._annex_common_options: 830s cmd += self._annex_common_options 830s 830s if jobs == 'auto': 830s # Limit to # of CPUs (but at least 3 to start with) 830s # and also an additional config constraint (by default 1 830s # due to https://github.com/datalad/datalad/issues/4404) 830s jobs = self._n_auto_jobs or min( 830s self.config.obtain('datalad.runtime.max-annex-jobs'), 830s max(3, cpu_count())) 830s # cache result to avoid repeated calls to cpu_count() 830s self._n_auto_jobs = jobs 830s if jobs and jobs != 1: 830s cmd.append('-J%d' % jobs) 830s 830s runner = self._git_runner 830s env = None 830s if self.fake_dates_enabled: 830s env = self.add_fake_dates(runner.env) 830s 830s try: 830s if files: 830s if issubclass(protocol, GeneratorMixIn): 830s return runner.run_on_filelist_chunks_items_( 830s cmd, 830s files, 830s protocol=protocol, 830s env=env, 830s **kwargs) 830s else: 830s return runner.run_on_filelist_chunks( 830s cmd, 830s files, 830s protocol=protocol, 830s env=env, 830s **kwargs) 830s else: 830s return runner.run( 830s cmd, 830s stdin=stdin, 830s protocol=protocol, 830s env=env, 830s **kwargs) 830s except CommandError as e: 830s # Note: A call might result in several 'failures', that can be or 830s # cannot be handled here. Detection of something, we can deal with, 830s # doesn't mean there's nothing else to deal with. 830s 830s # OutOfSpaceError: 830s # Note: 830s # doesn't depend on anything in stdout. Therefore check this before 830s # dealing with stdout 830s out_of_space_re = re.search( 830s "not enough free space, need (.*) more", e.stderr 830s ) 830s if out_of_space_re: 830s > raise OutOfSpaceError(cmd=['annex'] + args, 830s sizemore_msg=out_of_space_re.groups()[0]) 830s E datalad.support.exceptions.OutOfSpaceError: OutOfSpaceError: 'annex testremote --quiet myuncurl' needs 101.05 MB more 830s 830s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1015: OutOfSpaceError 830s ______________________________ test_annex_remote _______________________________ 830s 830s existing_noannex_dataset = Dataset('/tmp/pytest-of-ubuntu/pytest-0/dataset32') 830s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_annex_remote0') 830s no_result_rendering = None 830s 830s @skip_if_root # see https://github.com/datalad/datalad-next/issues/525 830s def test_annex_remote(existing_noannex_dataset, tmp_path, no_result_rendering): 830s remotepath = tmp_path / 'remote' 830s # bypass the complications of folding a windows path into a file URL 830s dlaurl = \ 830s f'datalad-annex::?type=directory&directory={remotepath}&encryption=none' \ 830s if on_windows else \ 830s f'datalad-annex::file://{remotepath}?type=directory&directory={{path}}&encryption=none' 830s ds = existing_noannex_dataset 830s > _check_push_fetch_cycle(ds, dlaurl, remotepath, tmp_path) 830s 830s ../build.4Ft/src/datalad_next/gitremotes/tests/test_datalad_annex.py:67: 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s ../build.4Ft/src/datalad_next/gitremotes/tests/test_datalad_annex.py:102: in _check_push_fetch_cycle 830s dsrepo.call_git(['push', '-u', 'dla', DEFAULT_BRANCH]) 830s /usr/lib/python3/dist-packages/datalad/dataset/gitrepo.py:460: in call_git 830s return "".join( 830s /usr/lib/python3/dist-packages/datalad/dataset/gitrepo.py:524: in call_git_items_ 830s for file_no, line in self._generator_call_git( 830s /usr/lib/python3/dist-packages/datalad/dataset/gitrepo.py:362: in _generator_call_git 830s for file_no, content in generator: 830s ^^^^^^^^^ 830s :360: in __next__ 830s ??? 830s /usr/lib/python3/dist-packages/datalad/runner/nonasyncrunner.py:99: in send 830s return self._locked_send(message) 830s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/runner/nonasyncrunner.py:124: in _locked_send 830s self._check_result() 830s /usr/lib/python3/dist-packages/datalad/runner/nonasyncrunner.py:95: in _check_result 830s self.runner._check_result() 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s 830s self = 830s 830s def _check_result(self): 830s if self.exception_on_error is True: 830s if self.return_code not in (0, None): 830s protocol = self.protocol 830s decoded_output = { 830s source: protocol.fd_infos[fileno][1].decode(protocol.encoding) 830s for source, fileno in ( 830s ("stdout", protocol.stdout_fileno), 830s ("stderr", protocol.stderr_fileno)) 830s if protocol.fd_infos[fileno][1] is not None 830s } 830s > raise CommandError( 830s cmd=self.cmd, 830s code=self.return_code, 830s stdout=decoded_output.get("stdout", None), 830s stderr=decoded_output.get("stderr", None) 830s ) 830s E datalad.runner.exception.CommandError: CommandError: 'git -c diff.ignoreSubmodules=none -c core.quotepath=false push -u dla dl-test-branch' failed with exitcode 1 [err: 'fatal: datalad.support.exceptions.OutOfSpaceError(OutOfSpaceError: 'annex setkey XDLRA--repo-export /tmp/pytest-of-ubuntu/pytest-0/dataset32/.git/dl-repoannex/dla/repoarchive.zip' needs 100 MB more) 830s E To datalad-annex::file:///tmp/pytest-of-ubuntu/pytest-0/test_annex_remote0/remote?type=directory&directory={path}&encryption=none 830s E * [new branch] dl-test-branch -> dl-test-branch 830s E error: failed to push some refs to 'datalad-annex::file:///tmp/pytest-of-ubuntu/pytest-0/test_annex_remote0/remote?type=directory&directory={path}&encryption=none''] 830s 830s /usr/lib/python3/dist-packages/datalad/runner/nonasyncrunner.py:297: CommandError 830s ______________________________ test_export_remote ______________________________ 830s 830s existing_noannex_dataset = Dataset('/tmp/pytest-of-ubuntu/pytest-0/dataset33') 830s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_export_remote0') 830s no_result_rendering = None 830s 830s @skip_if_root # see https://github.com/datalad/datalad-next/issues/525 830s def test_export_remote(existing_noannex_dataset, tmp_path, no_result_rendering): 830s remotepath = tmp_path / 'remote' 830s # bypass the complications of folding a windows path into a file URL 830s dlaurl = \ 830s f'datalad-annex::?type=directory&directory={remotepath}&encryption=none&exporttree=yes' \ 830s if on_windows else \ 830s f'datalad-annex::file://{remotepath}?type=directory&directory={{path}}&encryption=none&exporttree=yes' 830s ds = existing_noannex_dataset 830s > _check_push_fetch_cycle(ds, dlaurl, remotepath, tmp_path) 830s 830s ../build.4Ft/src/datalad_next/gitremotes/tests/test_datalad_annex.py:79: 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s ../build.4Ft/src/datalad_next/gitremotes/tests/test_datalad_annex.py:102: in _check_push_fetch_cycle 830s dsrepo.call_git(['push', '-u', 'dla', DEFAULT_BRANCH]) 830s /usr/lib/python3/dist-packages/datalad/dataset/gitrepo.py:460: in call_git 830s return "".join( 830s /usr/lib/python3/dist-packages/datalad/dataset/gitrepo.py:524: in call_git_items_ 830s for file_no, line in self._generator_call_git( 830s /usr/lib/python3/dist-packages/datalad/dataset/gitrepo.py:362: in _generator_call_git 830s for file_no, content in generator: 830s ^^^^^^^^^ 830s :360: in __next__ 830s ??? 830s /usr/lib/python3/dist-packages/datalad/runner/nonasyncrunner.py:99: in send 830s return self._locked_send(message) 830s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/runner/nonasyncrunner.py:124: in _locked_send 830s self._check_result() 830s /usr/lib/python3/dist-packages/datalad/runner/nonasyncrunner.py:95: in _check_result 830s self.runner._check_result() 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s 830s self = 830s 830s def _check_result(self): 830s if self.exception_on_error is True: 830s if self.return_code not in (0, None): 830s protocol = self.protocol 830s decoded_output = { 830s source: protocol.fd_infos[fileno][1].decode(protocol.encoding) 830s for source, fileno in ( 830s ("stdout", protocol.stdout_fileno), 830s ("stderr", protocol.stderr_fileno)) 830s if protocol.fd_infos[fileno][1] is not None 830s } 830s > raise CommandError( 830s cmd=self.cmd, 830s code=self.return_code, 830s stdout=decoded_output.get("stdout", None), 830s stderr=decoded_output.get("stderr", None) 830s ) 830s E datalad.runner.exception.CommandError: CommandError: 'git -c diff.ignoreSubmodules=none -c core.quotepath=false push -u dla dl-test-branch' failed with exitcode 1 [err: 'fatal: datalad.support.exceptions.OutOfSpaceError(OutOfSpaceError: 'annex setkey XDLRA--repo-export /tmp/pytest-of-ubuntu/pytest-0/dataset33/.git/dl-repoannex/dla/repoarchive.zip' needs 100 MB more) 830s E To datalad-annex::file:///tmp/pytest-of-ubuntu/pytest-0/test_export_remote0/remote?type=directory&directory={path}&encryption=none&exporttree=yes 830s E * [new branch] dl-test-branch -> dl-test-branch 830s E error: failed to push some refs to 'datalad-annex::file:///tmp/pytest-of-ubuntu/pytest-0/test_export_remote0/remote?type=directory&directory={path}&encryption=none&exporttree=yes''] 830s 830s /usr/lib/python3/dist-packages/datalad/runner/nonasyncrunner.py:297: CommandError 830s _________________________ test_annex_remote_autorepush _________________________ 830s 830s existing_noannex_dataset = Dataset('/tmp/pytest-of-ubuntu/pytest-0/dataset34') 830s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_annex_remote_autorepush0') 830s 830s def test_annex_remote_autorepush(existing_noannex_dataset, tmp_path): 830s remotepath = tmp_path 830s # bypass the complications of folding a windows path into a file URL 830s dlaurl = \ 830s f'datalad-annex::?type=directory&directory={remotepath}&encryption=none' \ 830s if on_windows else \ 830s f'datalad-annex::file://{remotepath}?type=directory&directory={{path}}&encryption=none' 830s > _check_repush_after_vanish(existing_noannex_dataset, dlaurl, remotepath) 830s 830s ../build.4Ft/src/datalad_next/gitremotes/tests/test_datalad_annex.py:195: 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s ../build.4Ft/src/datalad_next/gitremotes/tests/test_datalad_annex.py:213: in _check_repush_after_vanish 830s dsrepo.call_git(['push', '-u', 'dla', DEFAULT_BRANCH]) 830s /usr/lib/python3/dist-packages/datalad/dataset/gitrepo.py:460: in call_git 830s return "".join( 830s /usr/lib/python3/dist-packages/datalad/dataset/gitrepo.py:524: in call_git_items_ 830s for file_no, line in self._generator_call_git( 830s /usr/lib/python3/dist-packages/datalad/dataset/gitrepo.py:362: in _generator_call_git 830s for file_no, content in generator: 830s ^^^^^^^^^ 830s :360: in __next__ 830s ??? 830s /usr/lib/python3/dist-packages/datalad/runner/nonasyncrunner.py:99: in send 830s return self._locked_send(message) 830s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/runner/nonasyncrunner.py:124: in _locked_send 830s self._check_result() 830s /usr/lib/python3/dist-packages/datalad/runner/nonasyncrunner.py:95: in _check_result 830s self.runner._check_result() 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s 830s self = 830s 830s def _check_result(self): 830s if self.exception_on_error is True: 830s if self.return_code not in (0, None): 830s protocol = self.protocol 830s decoded_output = { 830s source: protocol.fd_infos[fileno][1].decode(protocol.encoding) 830s for source, fileno in ( 830s ("stdout", protocol.stdout_fileno), 830s ("stderr", protocol.stderr_fileno)) 830s if protocol.fd_infos[fileno][1] is not None 830s } 830s > raise CommandError( 830s cmd=self.cmd, 830s code=self.return_code, 830s stdout=decoded_output.get("stdout", None), 830s stderr=decoded_output.get("stderr", None) 830s ) 830s E datalad.runner.exception.CommandError: CommandError: 'git -c diff.ignoreSubmodules=none -c core.quotepath=false push -u dla dl-test-branch' failed with exitcode 1 [err: 'fatal: datalad.support.exceptions.OutOfSpaceError(OutOfSpaceError: 'annex setkey XDLRA--repo-export /tmp/pytest-of-ubuntu/pytest-0/dataset34/.git/dl-repoannex/dla/repoarchive.zip' needs 100 MB more) 830s E To datalad-annex::file:///tmp/pytest-of-ubuntu/pytest-0/test_annex_remote_autorepush0?type=directory&directory={path}&encryption=none 830s E * [new branch] dl-test-branch -> dl-test-branch 830s E error: failed to push some refs to 'datalad-annex::file:///tmp/pytest-of-ubuntu/pytest-0/test_annex_remote_autorepush0?type=directory&directory={path}&encryption=none''] 830s 830s /usr/lib/python3/dist-packages/datalad/runner/nonasyncrunner.py:297: CommandError 830s ________________________ test_export_remote_autorepush _________________________ 830s 830s existing_noannex_dataset = Dataset('/tmp/pytest-of-ubuntu/pytest-0/dataset35') 830s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_export_remote_autorepush0') 830s 830s def test_export_remote_autorepush(existing_noannex_dataset, tmp_path): 830s remotepath = tmp_path 830s # bypass the complications of folding a windows path into a file URL 830s dlaurl = \ 830s f'datalad-annex::?type=directory&directory={remotepath}&encryption=none&exporttree=yes' \ 830s if on_windows else \ 830s f'datalad-annex::file://{remotepath}?type=directory&directory={{path}}&encryption=none&exporttree=yes' 830s > _check_repush_after_vanish(existing_noannex_dataset, dlaurl, remotepath) 830s 830s ../build.4Ft/src/datalad_next/gitremotes/tests/test_datalad_annex.py:205: 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s ../build.4Ft/src/datalad_next/gitremotes/tests/test_datalad_annex.py:213: in _check_repush_after_vanish 830s dsrepo.call_git(['push', '-u', 'dla', DEFAULT_BRANCH]) 830s /usr/lib/python3/dist-packages/datalad/dataset/gitrepo.py:460: in call_git 830s return "".join( 830s /usr/lib/python3/dist-packages/datalad/dataset/gitrepo.py:524: in call_git_items_ 830s for file_no, line in self._generator_call_git( 830s /usr/lib/python3/dist-packages/datalad/dataset/gitrepo.py:362: in _generator_call_git 830s for file_no, content in generator: 830s ^^^^^^^^^ 830s :360: in __next__ 830s ??? 830s /usr/lib/python3/dist-packages/datalad/runner/nonasyncrunner.py:99: in send 830s return self._locked_send(message) 830s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/runner/nonasyncrunner.py:124: in _locked_send 830s self._check_result() 830s /usr/lib/python3/dist-packages/datalad/runner/nonasyncrunner.py:95: in _check_result 830s self.runner._check_result() 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s 830s self = 830s 830s def _check_result(self): 830s if self.exception_on_error is True: 830s if self.return_code not in (0, None): 830s protocol = self.protocol 830s decoded_output = { 830s source: protocol.fd_infos[fileno][1].decode(protocol.encoding) 830s for source, fileno in ( 830s ("stdout", protocol.stdout_fileno), 830s ("stderr", protocol.stderr_fileno)) 830s if protocol.fd_infos[fileno][1] is not None 830s } 830s > raise CommandError( 830s cmd=self.cmd, 830s code=self.return_code, 830s stdout=decoded_output.get("stdout", None), 830s stderr=decoded_output.get("stderr", None) 830s ) 830s E datalad.runner.exception.CommandError: CommandError: 'git -c diff.ignoreSubmodules=none -c core.quotepath=false push -u dla dl-test-branch' failed with exitcode 1 [err: 'fatal: datalad.support.exceptions.OutOfSpaceError(OutOfSpaceError: 'annex setkey XDLRA--repo-export /tmp/pytest-of-ubuntu/pytest-0/dataset35/.git/dl-repoannex/dla/repoarchive.zip' needs 100 MB more) 830s E To datalad-annex::file:///tmp/pytest-of-ubuntu/pytest-0/test_export_remote_autorepush0?type=directory&directory={path}&encryption=none&exporttree=yes 830s E * [new branch] dl-test-branch -> dl-test-branch 830s E error: failed to push some refs to 'datalad-annex::file:///tmp/pytest-of-ubuntu/pytest-0/test_export_remote_autorepush0?type=directory&directory={path}&encryption=none&exporttree=yes''] 830s 830s /usr/lib/python3/dist-packages/datalad/runner/nonasyncrunner.py:297: CommandError 830s ______________________________ test_typeweb_annex ______________________________ 830s 830s existing_noannex_dataset = Dataset('/tmp/pytest-of-ubuntu/pytest-0/dataset36') 830s http_server = 830s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_typeweb_annex0') 830s no_result_rendering = None 830s 830s def test_typeweb_annex(existing_noannex_dataset, http_server, tmp_path, 830s no_result_rendering): 830s > _check_typeweb( 830s # bypass the complications of folding a windows path into a file URL 830s 'datalad-annex::?type=directory&directory={export}&encryption=none' \ 830s if on_windows else 830s 'datalad-annex::file://{export}?type=directory&directory={{path}}&encryption=none', 830s 'datalad-annex::{url}?type=web&url={{noquery}}', 830s existing_noannex_dataset, 830s http_server, 830s tmp_path, 830s ) 830s 830s ../build.4Ft/src/datalad_next/gitremotes/tests/test_datalad_annex.py:253: 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s ../build.4Ft/src/datalad_next/gitremotes/tests/test_datalad_annex.py:301: in _check_typeweb 830s ds.repo.call_git(['push', '-u', 'dla', DEFAULT_BRANCH]) 830s /usr/lib/python3/dist-packages/datalad/dataset/gitrepo.py:460: in call_git 830s return "".join( 830s /usr/lib/python3/dist-packages/datalad/dataset/gitrepo.py:524: in call_git_items_ 830s for file_no, line in self._generator_call_git( 830s /usr/lib/python3/dist-packages/datalad/dataset/gitrepo.py:362: in _generator_call_git 830s for file_no, content in generator: 830s ^^^^^^^^^ 830s :360: in __next__ 830s ??? 830s /usr/lib/python3/dist-packages/datalad/runner/nonasyncrunner.py:99: in send 830s return self._locked_send(message) 830s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/runner/nonasyncrunner.py:124: in _locked_send 830s self._check_result() 830s /usr/lib/python3/dist-packages/datalad/runner/nonasyncrunner.py:95: in _check_result 830s self.runner._check_result() 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s 830s self = 830s 830s def _check_result(self): 830s if self.exception_on_error is True: 830s if self.return_code not in (0, None): 830s protocol = self.protocol 830s decoded_output = { 830s source: protocol.fd_infos[fileno][1].decode(protocol.encoding) 830s for source, fileno in ( 830s ("stdout", protocol.stdout_fileno), 830s ("stderr", protocol.stderr_fileno)) 830s if protocol.fd_infos[fileno][1] is not None 830s } 830s > raise CommandError( 830s cmd=self.cmd, 830s code=self.return_code, 830s stdout=decoded_output.get("stdout", None), 830s stderr=decoded_output.get("stderr", None) 830s ) 830s E datalad.runner.exception.CommandError: CommandError: 'git -c diff.ignoreSubmodules=none -c core.quotepath=false push -u dla dl-test-branch' failed with exitcode 1 [err: 'fatal: datalad.support.exceptions.OutOfSpaceError(OutOfSpaceError: 'annex setkey XDLRA--repo-export /tmp/pytest-of-ubuntu/pytest-0/dataset36/.git/dl-repoannex/dla/repoarchive.zip' needs 100 MB more) 830s E To datalad-annex::file:///tmp/pytest-of-ubuntu/pytest-0/webdav7?type=directory&directory={path}&encryption=none 830s E * [new branch] dl-test-branch -> dl-test-branch 830s E error: failed to push some refs to 'datalad-annex::file:///tmp/pytest-of-ubuntu/pytest-0/webdav7?type=directory&directory={path}&encryption=none''] 830s 830s /usr/lib/python3/dist-packages/datalad/runner/nonasyncrunner.py:297: CommandError 830s _______________________ test_typeweb_annex_uncompressed ________________________ 830s 830s existing_noannex_dataset = Dataset('/tmp/pytest-of-ubuntu/pytest-0/dataset37') 830s http_server = 830s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_typeweb_annex_uncompresse0') 830s no_result_rendering = None 830s 830s def test_typeweb_annex_uncompressed( 830s existing_noannex_dataset, http_server, tmp_path, no_result_rendering): 830s > _check_typeweb( 830s # bypass the complications of folding a windows path into a file URL 830s 'datalad-annex::?type=directory&directory={export}&encryption=none&dladotgit=uncompressed' \ 830s if on_windows else 830s 'datalad-annex::file://{export}?type=directory&directory={{path}}&encryption=none&dladotgit=uncompressed', 830s 'datalad-annex::{url}?type=web&url={{noquery}}', 830s existing_noannex_dataset, 830s http_server, 830s tmp_path, 830s ) 830s 830s ../build.4Ft/src/datalad_next/gitremotes/tests/test_datalad_annex.py:268: 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s ../build.4Ft/src/datalad_next/gitremotes/tests/test_datalad_annex.py:301: in _check_typeweb 830s ds.repo.call_git(['push', '-u', 'dla', DEFAULT_BRANCH]) 830s /usr/lib/python3/dist-packages/datalad/dataset/gitrepo.py:460: in call_git 830s return "".join( 830s /usr/lib/python3/dist-packages/datalad/dataset/gitrepo.py:524: in call_git_items_ 830s for file_no, line in self._generator_call_git( 830s /usr/lib/python3/dist-packages/datalad/dataset/gitrepo.py:362: in _generator_call_git 830s for file_no, content in generator: 830s ^^^^^^^^^ 830s :360: in __next__ 830s ??? 830s /usr/lib/python3/dist-packages/datalad/runner/nonasyncrunner.py:99: in send 830s return self._locked_send(message) 830s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/runner/nonasyncrunner.py:124: in _locked_send 830s self._check_result() 830s /usr/lib/python3/dist-packages/datalad/runner/nonasyncrunner.py:95: in _check_result 830s self.runner._check_result() 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s 830s self = 830s 830s def _check_result(self): 830s if self.exception_on_error is True: 830s if self.return_code not in (0, None): 830s protocol = self.protocol 830s decoded_output = { 830s source: protocol.fd_infos[fileno][1].decode(protocol.encoding) 830s for source, fileno in ( 830s ("stdout", protocol.stdout_fileno), 830s ("stderr", protocol.stderr_fileno)) 830s if protocol.fd_infos[fileno][1] is not None 830s } 830s > raise CommandError( 830s cmd=self.cmd, 830s code=self.return_code, 830s stdout=decoded_output.get("stdout", None), 830s stderr=decoded_output.get("stderr", None) 830s ) 830s E datalad.runner.exception.CommandError: CommandError: 'git -c diff.ignoreSubmodules=none -c core.quotepath=false push -u dla dl-test-branch' failed with exitcode 1 [err: 'fatal: datalad.support.exceptions.OutOfSpaceError(OutOfSpaceError: 'annex setkey XDLRA--repo-export /tmp/pytest-of-ubuntu/pytest-0/dataset37/.git/dl-repoannex/dla/repoarchive.zip' needs 100 MB more) 830s E To datalad-annex::file:///tmp/pytest-of-ubuntu/pytest-0/webdav8?type=directory&directory={path}&encryption=none&dladotgit=uncompressed 830s E * [new branch] dl-test-branch -> dl-test-branch 830s E error: failed to push some refs to 'datalad-annex::file:///tmp/pytest-of-ubuntu/pytest-0/webdav8?type=directory&directory={path}&encryption=none&dladotgit=uncompressed''] 830s 830s /usr/lib/python3/dist-packages/datalad/runner/nonasyncrunner.py:297: CommandError 830s _____________________________ test_typeweb_export ______________________________ 830s 830s existing_noannex_dataset = Dataset('/tmp/pytest-of-ubuntu/pytest-0/dataset38') 830s http_server = 830s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_typeweb_export0') 830s no_result_rendering = None 830s 830s def test_typeweb_export(existing_noannex_dataset, http_server, tmp_path, 830s no_result_rendering): 830s > _check_typeweb( 830s # bypass the complications of folding a windows path into a file URL 830s 'datalad-annex::?type=directory&directory={export}&encryption=none&exporttree=yes' \ 830s if on_windows else 830s 'datalad-annex::file://{export}?type=directory&directory={{path}}&encryption=none&exporttree=yes', 830s # when nothing is given type=web&exporttree=yes is the default 830s 'datalad-annex::{url}', 830s existing_noannex_dataset, 830s http_server, 830s tmp_path, 830s ) 830s 830s ../build.4Ft/src/datalad_next/gitremotes/tests/test_datalad_annex.py:282: 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s ../build.4Ft/src/datalad_next/gitremotes/tests/test_datalad_annex.py:301: in _check_typeweb 830s ds.repo.call_git(['push', '-u', 'dla', DEFAULT_BRANCH]) 830s /usr/lib/python3/dist-packages/datalad/dataset/gitrepo.py:460: in call_git 830s return "".join( 830s /usr/lib/python3/dist-packages/datalad/dataset/gitrepo.py:524: in call_git_items_ 830s for file_no, line in self._generator_call_git( 830s /usr/lib/python3/dist-packages/datalad/dataset/gitrepo.py:362: in _generator_call_git 830s for file_no, content in generator: 830s ^^^^^^^^^ 830s :360: in __next__ 830s ??? 830s /usr/lib/python3/dist-packages/datalad/runner/nonasyncrunner.py:99: in send 830s return self._locked_send(message) 830s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/runner/nonasyncrunner.py:124: in _locked_send 830s self._check_result() 830s /usr/lib/python3/dist-packages/datalad/runner/nonasyncrunner.py:95: in _check_result 830s self.runner._check_result() 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s 830s self = 830s 830s def _check_result(self): 830s if self.exception_on_error is True: 830s if self.return_code not in (0, None): 830s protocol = self.protocol 830s decoded_output = { 830s source: protocol.fd_infos[fileno][1].decode(protocol.encoding) 830s for source, fileno in ( 830s ("stdout", protocol.stdout_fileno), 830s ("stderr", protocol.stderr_fileno)) 830s if protocol.fd_infos[fileno][1] is not None 830s } 830s > raise CommandError( 830s cmd=self.cmd, 830s code=self.return_code, 830s stdout=decoded_output.get("stdout", None), 830s stderr=decoded_output.get("stderr", None) 830s ) 830s E datalad.runner.exception.CommandError: CommandError: 'git -c diff.ignoreSubmodules=none -c core.quotepath=false push -u dla dl-test-branch' failed with exitcode 1 [err: 'fatal: datalad.support.exceptions.OutOfSpaceError(OutOfSpaceError: 'annex setkey XDLRA--repo-export /tmp/pytest-of-ubuntu/pytest-0/dataset38/.git/dl-repoannex/dla/repoarchive.zip' needs 100 MB more) 830s E To datalad-annex::file:///tmp/pytest-of-ubuntu/pytest-0/webdav9?type=directory&directory={path}&encryption=none&exporttree=yes 830s E * [new branch] dl-test-branch -> dl-test-branch 830s E error: failed to push some refs to 'datalad-annex::file:///tmp/pytest-of-ubuntu/pytest-0/webdav9?type=directory&directory={path}&encryption=none&exporttree=yes''] 830s 830s /usr/lib/python3/dist-packages/datalad/runner/nonasyncrunner.py:297: CommandError 830s ______________________________ test_submodule_url ______________________________ 830s 830s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_submodule_url0') 830s existing_noannex_dataset = Dataset('/tmp/pytest-of-ubuntu/pytest-0/dataset39') 830s http_server = 830s no_result_rendering = None 830s 830s def test_submodule_url(tmp_path, existing_noannex_dataset, http_server, 830s no_result_rendering): 830s servepath = http_server.path 830s url = http_server.url 830s # a future subdataset that we want to register under a complex URL 830s tobesubds = existing_noannex_dataset 830s # push to test web server, this URL doesn't matter yet 830s tobesubds.repo.call_git([ 830s 'remote', 'add', 'dla', 830s # bypass the complications of folding a windows path into a file URL 830s f'datalad-annex::?type=directory&directory={servepath}&encryption=none&exporttree=yes' 830s if on_windows else 830s f'datalad-annex::file://{servepath}?type=directory&directory={{path}}&encryption=none&exporttree=yes', 830s ]) 830s > tobesubds.repo.call_git(['push', '-u', 'dla', DEFAULT_BRANCH]) 830s 830s ../build.4Ft/src/datalad_next/gitremotes/tests/test_datalad_annex.py:329: 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s /usr/lib/python3/dist-packages/datalad/dataset/gitrepo.py:460: in call_git 830s return "".join( 830s /usr/lib/python3/dist-packages/datalad/dataset/gitrepo.py:524: in call_git_items_ 830s for file_no, line in self._generator_call_git( 830s /usr/lib/python3/dist-packages/datalad/dataset/gitrepo.py:362: in _generator_call_git 830s for file_no, content in generator: 830s ^^^^^^^^^ 830s :360: in __next__ 830s ??? 830s /usr/lib/python3/dist-packages/datalad/runner/nonasyncrunner.py:99: in send 830s return self._locked_send(message) 830s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/runner/nonasyncrunner.py:124: in _locked_send 830s self._check_result() 830s /usr/lib/python3/dist-packages/datalad/runner/nonasyncrunner.py:95: in _check_result 830s self.runner._check_result() 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s 830s self = 830s 830s def _check_result(self): 830s if self.exception_on_error is True: 830s if self.return_code not in (0, None): 830s protocol = self.protocol 830s decoded_output = { 830s source: protocol.fd_infos[fileno][1].decode(protocol.encoding) 830s for source, fileno in ( 830s ("stdout", protocol.stdout_fileno), 830s ("stderr", protocol.stderr_fileno)) 830s if protocol.fd_infos[fileno][1] is not None 830s } 830s > raise CommandError( 830s cmd=self.cmd, 830s code=self.return_code, 830s stdout=decoded_output.get("stdout", None), 830s stderr=decoded_output.get("stderr", None) 830s ) 830s E datalad.runner.exception.CommandError: CommandError: 'git -c diff.ignoreSubmodules=none -c core.quotepath=false push -u dla dl-test-branch' failed with exitcode 1 [err: 'fatal: datalad.support.exceptions.OutOfSpaceError(OutOfSpaceError: 'annex setkey XDLRA--repo-export /tmp/pytest-of-ubuntu/pytest-0/dataset39/.git/dl-repoannex/dla/repoarchive.zip' needs 100 MB more) 830s E To datalad-annex::file:///tmp/pytest-of-ubuntu/pytest-0/webdav10?type=directory&directory={path}&encryption=none&exporttree=yes 830s E * [new branch] dl-test-branch -> dl-test-branch 830s E error: failed to push some refs to 'datalad-annex::file:///tmp/pytest-of-ubuntu/pytest-0/webdav10?type=directory&directory={path}&encryption=none&exporttree=yes''] 830s 830s /usr/lib/python3/dist-packages/datalad/runner/nonasyncrunner.py:297: CommandError 830s _______________________________ test_read_access _______________________________ 830s 830s store_path = PosixPath('/tmp/datalad_temp_test_read_access30byzikf') 830s store_url = 'http://127.0.0.1:35137/' 830s ds_path = '/tmp/datalad_temp_test_read_accessemv51pe9' 830s 830s @skip_if_adjusted_branch 830s @known_failure_windows # see gh-4469 830s @with_tempfile(mkdir=True) 830s @serve_path_via_http 830s @with_tempfile 830s def test_read_access(store_path=None, store_url=None, ds_path=None): 830s 830s ds = Dataset(ds_path).create() 830s populate_dataset(ds) 830s 830s files = [Path('one.txt'), Path('subdir') / 'two'] 830s store_path = Path(store_path) 830s # PATCH: introduce `ppp_store_path` and use it instead of `store_path` 830s ppp_store_path = _local_path2pure_posix_path(store_path) 830s url = "ria+" + store_url 830s init_opts = common_init_opts + ['url={}'.format(url)] 830s 830s io = LocalIO() 830s create_store(io, ppp_store_path, '1') 830s create_ds_in_store(io, ppp_store_path, ds.id, '2', '1') 830s ds.repo.init_remote('ora-remote', options=init_opts) 830s fsck_results = ds.repo.fsck(remote='ora-remote', fast=True) 830s # Note: Failures in the special remote will show up as a success=False 830s # result for fsck -> the call itself would not fail. 830s for r in fsck_results: 830s if "note" in r: 830s # we could simply assert "note" to not be in r, but we want proper 830s # error reporting - content of note, not just its unexpected 830s # existence. 830s assert_equal(r["success"], "true", 830s msg="git-annex-fsck failed with ORA over HTTP: %s" % r) 830s assert_equal(r["error-messages"], []) 830s store_uuid = ds.siblings(name='ora-remote', 830s return_type='item-or-list', 830s result_renderer='disabled')['annex-uuid'] 830s here_uuid = ds.siblings(name='here', 830s return_type='item-or-list', 830s result_renderer='disabled')['annex-uuid'] 830s 830s # nothing in store yet: 830s for f in files: 830s known_sources = ds.repo.whereis(str(f)) 830s assert_in(here_uuid, known_sources) 830s assert_not_in(store_uuid, known_sources) 830s 830s annex_obj_target = str(store_path / ds.id[:3] / ds.id[3:] 830s / 'annex' / 'objects') 830s shutil.rmtree(annex_obj_target) 830s shutil.copytree(src=str(ds.repo.dot_git / 'annex' / 'objects'), 830s dst=annex_obj_target) 830s 830s ds.repo.fsck(remote='ora-remote', fast=True) 830s # all in store now: 830s for f in files: 830s known_sources = ds.repo.whereis(str(f)) 830s assert_in(here_uuid, known_sources) 830s assert_in(store_uuid, known_sources) 830s 830s ds.drop('.') 830s > res = ds.get('.') 830s ^^^^^^^^^^^ 830s 830s ../build.4Ft/src/datalad_next/patches/tests/test_patched_ria_ora.py:444: 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s /usr/lib/python3/dist-packages/datalad/distribution/dataset.py:502: in apply_func 830s return f(*args, **kwargs) 830s ^^^^^^^^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/interface/base.py:772: in eval_func 830s return return_func(*args, **kwargs) 830s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/interface/base.py:762: in return_func 830s results = list(results) 830s ^^^^^^^^^^^^^ 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s 830s def _execute_command_( 830s *, 830s interface: anInterface, 830s cmd: Callable[..., Generator[Dict, None, None]], 830s cmd_args: tuple, 830s cmd_kwargs: Dict, 830s exec_kwargs: Dict, 830s ) -> Generator[Dict, None, None]: 830s """Internal helper to drive a command execution generator-style 830s 830s Parameters 830s ---------- 830s interface: 830s Interface class of associated with the `cmd` callable 830s cmd: 830s A DataLad command implementation. Typically the `__call__()` of 830s the given `interface`. 830s cmd_args: 830s Positional arguments for `cmd`. 830s cmd_kwargs: 830s Keyword arguments for `cmd`. 830s exec_kwargs: 830s Keyword argument affecting the result handling. 830s See `datalad.interface.common_opts.eval_params`. 830s """ 830s # for result filters and validation 830s # we need to produce a dict with argname/argvalue pairs for all args 830s # incl. defaults and args given as positionals 830s allkwargs, at_default, required_args = get_allargs_as_kwargs( 830s cmd, 830s cmd_args, 830s {**cmd_kwargs, **exec_kwargs}, 830s ) 830s 830s # validate the complete parameterization 830s param_validator = interface.get_parameter_validator() \ 830s if hasattr(interface, 'get_parameter_validator') else None 830s if param_validator is None: 830s lgr.debug( 830s 'Command parameter validation skipped. %s declares no validator', 830s interface) 830s else: 830s lgr.debug('Command parameter validation for %s', interface) 830s validator_kwargs = dict( 830s at_default=at_default, 830s required=required_args or None, 830s ) 830s # make immediate vs exhaustive parameter validation 830s # configurable 830s raise_on_error = dlcfg.get( 830s 'datalad.runtime.parameter-violation', None) 830s if raise_on_error: 830s validator_kwargs['on_error'] = raise_on_error 830s 830s allkwargs = param_validator( 830s allkwargs, 830s **validator_kwargs 830s ) 830s lgr.debug('Command parameter validation ended for %s', interface) 830s 830s # look for potential override of logging behavior 830s result_log_level = dlcfg.get('datalad.log.result-level', 'debug') 830s # resolve string labels for transformers too 830s result_xfm = known_result_xfms.get( 830s allkwargs['result_xfm'], 830s # use verbatim, if not a known label 830s allkwargs['result_xfm']) 830s result_filter = get_result_filter(allkwargs['result_filter']) 830s result_renderer = allkwargs['result_renderer'] 830s if result_renderer == 'tailored' and not hasattr(interface, 830s 'custom_result_renderer'): 830s # a tailored result renderer is requested, but the class 830s # does not provide any, fall back to the generic one 830s result_renderer = 'generic' 830s if result_renderer == 'default': 830s # standardize on the new name 'generic' to avoid more complex 830s # checking below 830s result_renderer = 'generic' 830s 830s # figure out which hooks are relevant for this command execution 830s # query cfg for defaults 830s # .is_installed and .config can be costly, so ensure we do 830s # it only once. See https://github.com/datalad/datalad/issues/3575 830s dataset_arg = allkwargs.get('dataset', None) 830s ds = None 830s if dataset_arg is not None: 830s from datalad_next.datasets import Dataset 830s if isinstance(dataset_arg, Dataset): 830s ds = dataset_arg 830s elif isinstance(dataset_arg, DatasetParameter): 830s ds = dataset_arg.ds 830s else: 830s try: 830s ds = Dataset(dataset_arg) 830s except ValueError: 830s pass 830s # look for hooks 830s hooks = get_jsonhooks_from_config(ds.config if ds else dlcfg) 830s # end of hooks discovery 830s 830s # flag whether to raise an exception 830s incomplete_results = [] 830s # track what actions were performed how many times 830s action_summary = {} 830s 830s # if a custom summary is to be provided, collect the results 830s # of the command execution 830s results = [] 830s do_custom_result_summary = result_renderer in ( 830s 'tailored', 'generic', 'default') and hasattr( 830s interface, 830s 'custom_result_summary_renderer') 830s pass_summary = do_custom_result_summary \ 830s and getattr(interface, 830s 'custom_result_summary_renderer_pass_summary', 830s None) 830s 830s # process main results 830s for r in _process_results( 830s # execution, call with any arguments from the validated 830s # set that are no result-handling related 830s cmd(**{k: v for k, v in allkwargs.items() 830s if k not in exec_kwargs}), 830s interface, 830s allkwargs['on_failure'], 830s # bookkeeping 830s action_summary, 830s incomplete_results, 830s # communication 830s result_renderer, 830s result_log_level, 830s # let renderers get to see how a command was called 830s allkwargs): 830s for hook, spec in hooks.items(): 830s # run the hooks before we yield the result 830s # this ensures that they are executed before 830s # a potentially wrapper command gets to act 830s # on them 830s if match_jsonhook2result(hook, r, spec['match']): 830s lgr.debug('Result %s matches hook %s', r, hook) 830s # a hook is also a command that yields results 830s # so yield them outside too 830s # users need to pay attention to void infinite 830s # loops, i.e. when a hook yields a result that 830s # triggers that same hook again 830s for hr in run_jsonhook(hook, spec, r, dataset_arg): 830s # apply same logic as for main results, otherwise 830s # any filters would only tackle the primary results 830s # and a mixture of return values could happen 830s if not keep_result(hr, result_filter, **allkwargs): 830s continue 830s hr = xfm_result(hr, result_xfm) 830s # rationale for conditional is a few lines down 830s if hr: 830s yield hr 830s if not keep_result(r, result_filter, **allkwargs): 830s continue 830s r = xfm_result(r, result_xfm) 830s # in case the result_xfm decided to not give us anything 830s # exclude it from the results. There is no particular reason 830s # to do so other than that it was established behavior when 830s # this comment was written. This will not affect any real 830s # result record 830s if r: 830s yield r 830s 830s # collect if summary is desired 830s if do_custom_result_summary: 830s results.append(r) 830s 830s # result summary before a potential exception 830s # custom first 830s if do_custom_result_summary: 830s if pass_summary: 830s summary_args = (results, action_summary) 830s else: 830s summary_args = (results,) 830s interface.custom_result_summary_renderer(*summary_args) 830s elif result_renderer in ('generic', 'default') \ 830s and action_summary \ 830s and sum(sum(s.values()) 830s for s in action_summary.values()) > 1: 830s # give a summary in generic mode, when there was more than one 830s # action performed 830s render_action_summary(action_summary) 830s 830s if incomplete_results: 830s > raise IncompleteResultsError( 830s failed=incomplete_results, 830s msg="Command did not complete successfully") 830s E datalad.support.exceptions.IncompleteResultsError: Command did not complete successfully. 4 failed: 830s E [{'action': 'get', 830s E 'annexkey': 'MD5E-s8--7e55db001d319a94b0b713529a756623.txt', 830s E 'error_message': 'not enough free space, need 100 MB more (use --force to ' 830s E 'override this check or adjust annex.diskreserve)', 830s E 'path': '/tmp/datalad_temp_test_read_accessemv51pe9/one.txt', 830s E 'refds': '/tmp/datalad_temp_test_read_accessemv51pe9', 830s E 'status': 'error', 830s E 'type': 'file'}, 830s E {'action': 'get', 830s E 'annexkey': 'MD5E-s8--e22e815a116e7bdea9a59a87e63464a1', 830s E 'error_message': 'not enough free space, need 100 MB more (use --force to ' 830s E 'override this check or adjust annex.diskreserve)', 830s E 'path': '/tmp/datalad_temp_test_read_accessemv51pe9/subdir/four', 830s E 'refds': '/tmp/datalad_temp_test_read_accessemv51pe9', 830s E 'status': 'error', 830s E 'type': 'file'}, 830s E {'action': 'get', 830s E 'annexkey': 'MD5E-s8--eea670f4ac941df71a3b5f268ebe3eac', 830s E 'error_message': 'not enough free space, need 100 MB more (use --force to ' 830s E 'override this check or adjust annex.diskreserve)', 830s E 'path': '/tmp/datalad_temp_test_read_accessemv51pe9/subdir/two', 830s E 'refds': '/tmp/datalad_temp_test_read_accessemv51pe9', 830s E 'status': 'error', 830s E 'type': 'file'}, 830s E {'action': 'get', 830s E 'annexkey': 'MD5E-s8--c96310e55d9677b978eae0dada47642c.txt', 830s E 'error_message': 'not enough free space, need 100 MB more (use --force to ' 830s E 'override this check or adjust annex.diskreserve)', 830s E 'path': '/tmp/datalad_temp_test_read_accessemv51pe9/three.txt', 830s E 'refds': '/tmp/datalad_temp_test_read_accessemv51pe9', 830s E 'status': 'error', 830s E 'type': 'file'}] 830s 830s ../build.4Ft/src/datalad_next/patches/interface_utils.py:287: IncompleteResultsError 830s ------------------------------ Captured log call ------------------------------- 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: starting 830s INFO datalad.core.local.save:log.py:436 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: processed result for /tmp/datalad_temp_test_read_accessemv51pe9 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: done 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: starting 830s INFO datalad.core.local.save:log.py:436 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: processed result for /tmp/datalad_temp_test_read_accessemv51pe9 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: done 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.annex:log.py:436 Start annex operation 830s INFO datalad.annex:log.py:436 one.txt 830s INFO datalad.annex:log.py:436 subdir/four 830s INFO datalad.annex:log.py:436 subdir/two 830s INFO datalad.annex:log.py:436 Finished annex get 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s ______________________________ test_version_check ______________________________ 830s 830s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_version_check0') 830s existing_dataset = Dataset('/tmp/pytest-of-ubuntu/pytest-0/dataset64') 830s 830s def test_version_check(tmp_path, existing_dataset): 830s > _test_version_check( 830s LocalIO(), 830s 'file://' + (tmp_path / 'ria-store').as_uri(), 830s tmp_path / 'ria-store', 830s existing_dataset 830s ) 830s 830s ../build.4Ft/src/datalad_next/patches/tests/test_patched_ria_ora.py:951: 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s ../build.4Ft/src/datalad_next/patches/tests/test_patched_ria_ora.py:715: in _test_version_check 830s assert_status('ok', ds.get('.')) 830s ^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/distribution/dataset.py:502: in apply_func 830s return f(*args, **kwargs) 830s ^^^^^^^^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/interface/base.py:772: in eval_func 830s return return_func(*args, **kwargs) 830s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/interface/base.py:762: in return_func 830s results = list(results) 830s ^^^^^^^^^^^^^ 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s 830s def _execute_command_( 830s *, 830s interface: anInterface, 830s cmd: Callable[..., Generator[Dict, None, None]], 830s cmd_args: tuple, 830s cmd_kwargs: Dict, 830s exec_kwargs: Dict, 830s ) -> Generator[Dict, None, None]: 830s """Internal helper to drive a command execution generator-style 830s 830s Parameters 830s ---------- 830s interface: 830s Interface class of associated with the `cmd` callable 830s cmd: 830s A DataLad command implementation. Typically the `__call__()` of 830s the given `interface`. 830s cmd_args: 830s Positional arguments for `cmd`. 830s cmd_kwargs: 830s Keyword arguments for `cmd`. 830s exec_kwargs: 830s Keyword argument affecting the result handling. 830s See `datalad.interface.common_opts.eval_params`. 830s """ 830s # for result filters and validation 830s # we need to produce a dict with argname/argvalue pairs for all args 830s # incl. defaults and args given as positionals 830s allkwargs, at_default, required_args = get_allargs_as_kwargs( 830s cmd, 830s cmd_args, 830s {**cmd_kwargs, **exec_kwargs}, 830s ) 830s 830s # validate the complete parameterization 830s param_validator = interface.get_parameter_validator() \ 830s if hasattr(interface, 'get_parameter_validator') else None 830s if param_validator is None: 830s lgr.debug( 830s 'Command parameter validation skipped. %s declares no validator', 830s interface) 830s else: 830s lgr.debug('Command parameter validation for %s', interface) 830s validator_kwargs = dict( 830s at_default=at_default, 830s required=required_args or None, 830s ) 830s # make immediate vs exhaustive parameter validation 830s # configurable 830s raise_on_error = dlcfg.get( 830s 'datalad.runtime.parameter-violation', None) 830s if raise_on_error: 830s validator_kwargs['on_error'] = raise_on_error 830s 830s allkwargs = param_validator( 830s allkwargs, 830s **validator_kwargs 830s ) 830s lgr.debug('Command parameter validation ended for %s', interface) 830s 830s # look for potential override of logging behavior 830s result_log_level = dlcfg.get('datalad.log.result-level', 'debug') 830s # resolve string labels for transformers too 830s result_xfm = known_result_xfms.get( 830s allkwargs['result_xfm'], 830s # use verbatim, if not a known label 830s allkwargs['result_xfm']) 830s result_filter = get_result_filter(allkwargs['result_filter']) 830s result_renderer = allkwargs['result_renderer'] 830s if result_renderer == 'tailored' and not hasattr(interface, 830s 'custom_result_renderer'): 830s # a tailored result renderer is requested, but the class 830s # does not provide any, fall back to the generic one 830s result_renderer = 'generic' 830s if result_renderer == 'default': 830s # standardize on the new name 'generic' to avoid more complex 830s # checking below 830s result_renderer = 'generic' 830s 830s # figure out which hooks are relevant for this command execution 830s # query cfg for defaults 830s # .is_installed and .config can be costly, so ensure we do 830s # it only once. See https://github.com/datalad/datalad/issues/3575 830s dataset_arg = allkwargs.get('dataset', None) 830s ds = None 830s if dataset_arg is not None: 830s from datalad_next.datasets import Dataset 830s if isinstance(dataset_arg, Dataset): 830s ds = dataset_arg 830s elif isinstance(dataset_arg, DatasetParameter): 830s ds = dataset_arg.ds 830s else: 830s try: 830s ds = Dataset(dataset_arg) 830s except ValueError: 830s pass 830s # look for hooks 830s hooks = get_jsonhooks_from_config(ds.config if ds else dlcfg) 830s # end of hooks discovery 830s 830s # flag whether to raise an exception 830s incomplete_results = [] 830s # track what actions were performed how many times 830s action_summary = {} 830s 830s # if a custom summary is to be provided, collect the results 830s # of the command execution 830s results = [] 830s do_custom_result_summary = result_renderer in ( 830s 'tailored', 'generic', 'default') and hasattr( 830s interface, 830s 'custom_result_summary_renderer') 830s pass_summary = do_custom_result_summary \ 830s and getattr(interface, 830s 'custom_result_summary_renderer_pass_summary', 830s None) 830s 830s # process main results 830s for r in _process_results( 830s # execution, call with any arguments from the validated 830s # set that are no result-handling related 830s cmd(**{k: v for k, v in allkwargs.items() 830s if k not in exec_kwargs}), 830s interface, 830s allkwargs['on_failure'], 830s # bookkeeping 830s action_summary, 830s incomplete_results, 830s # communication 830s result_renderer, 830s result_log_level, 830s # let renderers get to see how a command was called 830s allkwargs): 830s for hook, spec in hooks.items(): 830s # run the hooks before we yield the result 830s # this ensures that they are executed before 830s # a potentially wrapper command gets to act 830s # on them 830s if match_jsonhook2result(hook, r, spec['match']): 830s lgr.debug('Result %s matches hook %s', r, hook) 830s # a hook is also a command that yields results 830s # so yield them outside too 830s # users need to pay attention to void infinite 830s # loops, i.e. when a hook yields a result that 830s # triggers that same hook again 830s for hr in run_jsonhook(hook, spec, r, dataset_arg): 830s # apply same logic as for main results, otherwise 830s # any filters would only tackle the primary results 830s # and a mixture of return values could happen 830s if not keep_result(hr, result_filter, **allkwargs): 830s continue 830s hr = xfm_result(hr, result_xfm) 830s # rationale for conditional is a few lines down 830s if hr: 830s yield hr 830s if not keep_result(r, result_filter, **allkwargs): 830s continue 830s r = xfm_result(r, result_xfm) 830s # in case the result_xfm decided to not give us anything 830s # exclude it from the results. There is no particular reason 830s # to do so other than that it was established behavior when 830s # this comment was written. This will not affect any real 830s # result record 830s if r: 830s yield r 830s 830s # collect if summary is desired 830s if do_custom_result_summary: 830s results.append(r) 830s 830s # result summary before a potential exception 830s # custom first 830s if do_custom_result_summary: 830s if pass_summary: 830s summary_args = (results, action_summary) 830s else: 830s summary_args = (results,) 830s interface.custom_result_summary_renderer(*summary_args) 830s elif result_renderer in ('generic', 'default') \ 830s and action_summary \ 830s and sum(sum(s.values()) 830s for s in action_summary.values()) > 1: 830s # give a summary in generic mode, when there was more than one 830s # action performed 830s render_action_summary(action_summary) 830s 830s if incomplete_results: 830s > raise IncompleteResultsError( 830s failed=incomplete_results, 830s msg="Command did not complete successfully") 830s E datalad.support.exceptions.IncompleteResultsError: Command did not complete successfully. 4 failed: 830s E [{'action': 'get', 830s E 'annexkey': 'MD5E-s8--7e55db001d319a94b0b713529a756623.txt', 830s E 'error_message': 'not enough free space, need 100 MB more (use --force to ' 830s E 'override this check or adjust annex.diskreserve)', 830s E 'path': '/tmp/pytest-of-ubuntu/pytest-0/dataset64/one.txt', 830s E 'refds': '/tmp/pytest-of-ubuntu/pytest-0/dataset64', 830s E 'status': 'error', 830s E 'type': 'file'}, 830s E {'action': 'get', 830s E 'annexkey': 'MD5E-s8--e22e815a116e7bdea9a59a87e63464a1', 830s E 'error_message': 'not enough free space, need 100 MB more (use --force to ' 830s E 'override this check or adjust annex.diskreserve)', 830s E 'path': '/tmp/pytest-of-ubuntu/pytest-0/dataset64/subdir/four', 830s E 'refds': '/tmp/pytest-of-ubuntu/pytest-0/dataset64', 830s E 'status': 'error', 830s E 'type': 'file'}, 830s E {'action': 'get', 830s E 'annexkey': 'MD5E-s8--eea670f4ac941df71a3b5f268ebe3eac', 830s E 'error_message': 'not enough free space, need 100 MB more (use --force to ' 830s E 'override this check or adjust annex.diskreserve)', 830s E 'path': '/tmp/pytest-of-ubuntu/pytest-0/dataset64/subdir/two', 830s E 'refds': '/tmp/pytest-of-ubuntu/pytest-0/dataset64', 830s E 'status': 'error', 830s E 'type': 'file'}, 830s E {'action': 'get', 830s E 'annexkey': 'MD5E-s8--c96310e55d9677b978eae0dada47642c.txt', 830s E 'error_message': 'not enough free space, need 100 MB more (use --force to ' 830s E 'override this check or adjust annex.diskreserve)', 830s E 'path': '/tmp/pytest-of-ubuntu/pytest-0/dataset64/three.txt', 830s E 'refds': '/tmp/pytest-of-ubuntu/pytest-0/dataset64', 830s E 'status': 'error', 830s E 'type': 'file'}] 830s 830s ../build.4Ft/src/datalad_next/patches/interface_utils.py:287: IncompleteResultsError 830s ------------------------------ Captured log call ------------------------------- 830s INFO datalad.core.local.save:log.py:436 Total: starting 830s INFO datalad.core.local.save:log.py:436 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: processed result for /tmp/pytest-of-ubuntu/pytest-0/dataset64 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: done 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: starting 830s INFO datalad.core.local.save:log.py:436 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: processed result for /tmp/pytest-of-ubuntu/pytest-0/dataset64 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: done 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.distributed.push:log.py:436 Determine push target 830s INFO datalad.core.distributed.push:log.py:436 Push refspecs 830s INFO datalad.core.distributed.push:log.py:436 Transfer data 830s INFO datalad.annex:log.py:436 Start annex operation 830s INFO datalad.annex:log.py:436 one.txt 830s INFO datalad.annex:log.py:436 subdir/four 830s INFO datalad.annex:log.py:436 subdir/two 830s INFO datalad.annex:log.py:436 Finished annex copy 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.distributed.push:log.py:436 Finished push of Dataset(/tmp/pytest-of-ubuntu/pytest-0/dataset64) 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.annex:annexrepo.py:1189 Remote object tree reports version X. Supportedversions are ['1', '2']. Consider upgrading datalad or fix the 'ria-layout-version' file at the remote dataset root. Treating remote as read-only in order to prevent damage by putting things into an unknown version of the target layout. You can overrule this by setting 'annex.ora-remote..force-write=true'. 830s INFO datalad.annex:annexrepo.py:1237 Remote object tree reports version X. Supportedversions are ['1', '2']. Consider upgrading datalad or fix the 'ria-layout-version' file at the remote dataset root. Treating remote as read-only in order to prevent damage by putting things into an unknown version of the target layout. You can overrule this by setting 'annex.ora-remote..force-write=true'. 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.annex:log.py:436 Start annex operation 830s INFO datalad.annex:log.py:436 one.txt 830s INFO datalad.annex:log.py:436 subdir/four 830s INFO datalad.annex:log.py:436 subdir/two 830s INFO datalad.annex:log.py:436 Finished annex get 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s _____________________________ test_gitannex_local ______________________________ 830s 830s @slow # 41sec on travis 830s def test_gitannex_local(): 830s > _test_gitannex(None) 830s 830s ../build.4Ft/src/datalad_next/patches/tests/test_patched_ria_ora.py:1107: 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s /usr/lib/python3/dist-packages/datalad/tests/utils_pytest.py:1944: in _wrap_skip_if_adjusted_branch 830s return func(*args, **kwargs) 830s ^^^^^^^^^^^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/tests/utils_pytest.py:924: in _wrap_with_tempfile 830s return t(*(arg + (filename,)), **kw) 830s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/tests/utils_pytest.py:924: in _wrap_with_tempfile 830s return t(*(arg + (filename,)), **kw) 830s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 830s ../build.4Ft/src/datalad_next/patches/tests/test_patched_ria_ora.py:779: in _test_gitannex 830s ds.repo._call_annex(['testremote', 'store'], protocol=NoCapture) 830s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:996: in _call_annex 830s return runner.run( 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s 830s self = 830s cmd = ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', ...] 830s protocol = , stdin = None 830s cwd = None, env = None, timeout = None, exception_on_error = True, kwargs = {} 830s applied_cwd = PosixPath('/tmp/datalad_temp__test_gitannexzpcgh73h') 830s applied_env = {'ADTTMP': '/tmp/autopkgtest.vjeRUT/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-ar.../8.4.2-1 python-pluggy/1.6.0-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-artifacts', ...} 830s threaded_runner = 830s results_or_iterator = {'code': 1, 'stderr': '', 'stdout': ''} 830s results = {'code': 1, 'stderr': '', 'stdout': ''}, return_code = 1 830s 830s def run(self, 830s cmd: list | str, 830s protocol: type[WitlessProtocol] | None = None, 830s stdin: bytes | IO | Queue | None = None, 830s cwd: PathLike | str | None = None, 830s env: dict | None = None, 830s timeout: float | None = None, 830s exception_on_error: bool = True, 830s **kwargs) -> dict | _ResultGenerator: 830s """Execute a command and communicate with it. 830s 830s Parameters 830s ---------- 830s cmd : list or str 830s Sequence of program arguments. Passing a single string causes 830s execution via the platform shell. 830s protocol : WitlessProtocol, optional 830s Protocol class handling interaction with the running process 830s (e.g. output capture). A number of pre-crafted classes are 830s provided (e.g `KillOutput`, `NoCapture`, `GitProgress`). 830s If the protocol has the GeneratorMixIn-mixin, the run-method 830s will return an iterator and can therefore be used in a for-clause. 830s stdin : file-like, bytes, Queue, or None 830s If stdin is a file-like, it will be directly used as stdin for the 830s subprocess. The caller is responsible for writing to it and closing it. 830s If stdin is a bytes, it will be fed to stdin of the subprocess. 830s If all data is written, stdin will be closed. 830s If stdin is a Queue, all elements (bytes) put into the Queue will 830s be passed to stdin until None is read from the queue. If None is read, 830s stdin of the subprocess is closed. 830s cwd : str or path-like, optional 830s If given, commands are executed with this path as PWD, 830s the PWD of the parent process is used otherwise. Overrides 830s any `cwd` given to the constructor. 830s env : dict, optional 830s Environment to be used for command execution. If given, it will 830s completely replace any environment provided to theconstructor. If 830s `cwd` is given, 'PWD' in the environment is set to its value. 830s This must be a complete environment definition, no values 830s from the current environment will be inherited. Overrides 830s any `env` given to the constructor. 830s timeout: float, optional 830s None or the seconds after which a timeout callback is 830s invoked, if no progress was made in communicating with 830s the sub-process, or if waiting for the subprocess exit 830s took more than the specified time. See the protocol and 830s `ThreadedRunner` descriptions for a more detailed discussion 830s on timeouts. 830s exception_on_error : bool, optional 830s This argument is first interpreted if the protocol is a subclass 830s of `GeneratorMixIn`. If it is `True` (default), a 830s `CommandErrorException` is raised by the generator if the 830s sub process exited with a return code not equal to zero. If the 830s parameter is `False`, no exception is raised. In both cases the 830s return code can be read from the attribute `return_code` of 830s the generator. Then this argument interpreted within this function 830s to not raise `CommandError` if value is False in case of non-0 exit. 830s kwargs : 830s Passed to the Protocol class constructor. 830s 830s Returns 830s ------- 830s dict | _ResultGenerator 830s 830s If the protocol is not a subclass of `GeneratorMixIn`, the 830s result of protocol._prepare_result will be returned. 830s 830s If the protocol is a subclass of `GeneratorMixIn`, a Generator, i.e. 830s a `_ResultGenerator`, will be returned. This allows to use this 830s method in constructs like: 830s 830s for protocol_output in runner.run(): 830s ... 830s 830s Where the iterator yields whatever protocol.pipe_data_received 830s sends into the generator. 830s If all output was yielded and the process has terminated, the 830s generator will raise StopIteration(return_code), where 830s return_code is the return code of the process. The return code 830s of the process will also be stored in the "return_code"-attribute 830s of the runner. So you could write: 830s 830s gen = runner.run() 830s for file_descriptor, data in gen: 830s ... 830s 830s # get the return code of the process 830s result = gen.return_code 830s 830s Raises 830s ------ 830s CommandError 830s On execution failure (non-zero exit code) this exception is 830s raised which provides the command (cmd), stdout, stderr, 830s exit code (status), and a message identifying the failed 830s command, as properties. 830s FileNotFoundError 830s When a given executable does not exist. 830s """ 830s if protocol is None: 830s # by default let all subprocess stream pass through 830s protocol = NoCapture 830s 830s applied_cwd = cwd or self.cwd 830s applied_env = self._get_adjusted_env( 830s env=env or self.env, 830s cwd=applied_cwd, 830s ) 830s 830s lgr.debug( 830s 'Run %r (protocol_class=%s) (cwd=%s)', 830s cmd, 830s protocol.__name__, 830s applied_cwd 830s ) 830s 830s threaded_runner = ThreadedRunner( 830s cmd=cmd, 830s protocol_class=protocol, 830s stdin=stdin, 830s protocol_kwargs=kwargs, 830s timeout=timeout, 830s exception_on_error=exception_on_error, 830s cwd=applied_cwd, 830s env=applied_env 830s ) 830s 830s results_or_iterator = threaded_runner.run() 830s if issubclass(protocol, GeneratorMixIn): 830s return results_or_iterator 830s 830s results = cast(dict, results_or_iterator) 830s # log before any exception is raised 830s lgr.debug("Finished %r with status %s", cmd, results['code']) 830s 830s # make it such that we always blow if a protocol did not report 830s # a return code at all or it was non-0 and we were not asked ignore 830s # errors 830s return_code = results.get('code', None) 830s if return_code is None or (return_code and exception_on_error): 830s # the runner has a better idea, doc string warns Protocol 830s # implementations not to return these 830s results.pop('cmd', None) 830s results.pop('cwd', None) 830s > raise CommandError( 830s # whatever the results were, we carry them forward 830s cmd=cmd, 830s cwd=applied_cwd, 830s **results, 830s ) 830s E datalad.runner.exception.CommandError: CommandError: 'git -c diff.ignoreSubmodules=none -c core.quotepath=false annex testremote store -c annex.dotfiles=true' failed with exitcode 1 under /tmp/datalad_temp__test_gitannexzpcgh73h 830s 830s /usr/lib/python3/dist-packages/datalad/runner/runner.py:243: CommandError 830s ------------------------------ Captured log call ------------------------------- 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: starting 830s INFO datalad.core.local.save:log.py:436 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: processed result for /tmp/datalad_temp__test_gitannexzpcgh73h 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: done 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: starting 830s INFO datalad.core.local.save:log.py:436 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: processed result for /tmp/datalad_temp__test_gitannexzpcgh73h 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: done 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s _______________________________ test_push[True] ________________________________ 830s 830s annex = True 830s 830s @pytest.mark.parametrize("annex", [False, True]) 830s def test_push(annex): 830s > check_push(annex) 830s 830s /usr/lib/python3/dist-packages/datalad/core/distributed/tests/test_push.py:259: 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s /usr/lib/python3/dist-packages/datalad/tests/utils_pytest.py:924: in _wrap_with_tempfile 830s return t(*(arg + (filename,)), **kw) 830s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/tests/utils_pytest.py:924: in _wrap_with_tempfile 830s return t(*(arg + (filename,)), **kw) 830s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/core/distributed/tests/test_push.py:200: in check_push 830s res = src.push(to='target', since="^", jobs=2) 830s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/distribution/dataset.py:502: in apply_func 830s return f(*args, **kwargs) 830s ^^^^^^^^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/interface/base.py:772: in eval_func 830s return return_func(*args, **kwargs) 830s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/interface/base.py:762: in return_func 830s results = list(results) 830s ^^^^^^^^^^^^^ 830s ../build.4Ft/src/datalad_next/patches/interface_utils.py:218: in _execute_command_ 830s for r in _process_results( 830s /usr/lib/python3/dist-packages/datalad/interface/utils.py:319: in _process_results 830s for res in results: 830s ^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/core/distributed/push.py:255: in __call__ 830s yield from _push( 830s ../build.4Ft/src/datalad_next/patches/push_optimize.py:184: in _push 830s yield from mod_push._transfer_data( 830s ../build.4Ft/src/datalad_next/patches/push_to_export_remote.py:170: in _transfer_data 830s yield from mod_push._push_data( 830s /usr/lib/python3/dist-packages/datalad/core/distributed/push.py:894: in _push_data 830s res = ds_repo._call_annex_records( 830s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1133: in _call_annex_records 830s raise e 830s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1093: in _call_annex_records 830s out = self._call_annex( 830s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:996: in _call_annex 830s return runner.run( 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s 830s self = 830s cmd = ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', ...] 830s protocol = 830s stdin = b'test_mod_annex_file\x00', cwd = None, env = None, timeout = None 830s exception_on_error = True, kwargs = {'total_nbytes': 12} 830s applied_cwd = PosixPath('/tmp/datalad_temp_check_push9_2dna6t') 830s applied_env = {'ADTTMP': '/tmp/autopkgtest.vjeRUT/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-ar.../8.4.2-1 python-pluggy/1.6.0-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-artifacts', ...} 830s threaded_runner = 830s results_or_iterator = {'code': 1, 'stderr': 'copy: 1 failed\n', 'stdout': '', 'stdout_json': [{'command': 'copy', 'error-messages': ['failed...could have failed because --fast is enabled.'], 'file': 'test_mod_annex_file', 'input': ['test_mod_annex_file'], ...}]} 830s results = {'code': 1, 'stderr': 'copy: 1 failed\n', 'stdout': '', 'stdout_json': [{'command': 'copy', 'error-messages': ['failed...could have failed because --fast is enabled.'], 'file': 'test_mod_annex_file', 'input': ['test_mod_annex_file'], ...}]} 830s return_code = 1 830s 830s def run(self, 830s cmd: list | str, 830s protocol: type[WitlessProtocol] | None = None, 830s stdin: bytes | IO | Queue | None = None, 830s cwd: PathLike | str | None = None, 830s env: dict | None = None, 830s timeout: float | None = None, 830s exception_on_error: bool = True, 830s **kwargs) -> dict | _ResultGenerator: 830s """Execute a command and communicate with it. 830s 830s Parameters 830s ---------- 830s cmd : list or str 830s Sequence of program arguments. Passing a single string causes 830s execution via the platform shell. 830s protocol : WitlessProtocol, optional 830s Protocol class handling interaction with the running process 830s (e.g. output capture). A number of pre-crafted classes are 830s provided (e.g `KillOutput`, `NoCapture`, `GitProgress`). 830s If the protocol has the GeneratorMixIn-mixin, the run-method 830s will return an iterator and can therefore be used in a for-clause. 830s stdin : file-like, bytes, Queue, or None 830s If stdin is a file-like, it will be directly used as stdin for the 830s subprocess. The caller is responsible for writing to it and closing it. 830s If stdin is a bytes, it will be fed to stdin of the subprocess. 830s If all data is written, stdin will be closed. 830s If stdin is a Queue, all elements (bytes) put into the Queue will 830s be passed to stdin until None is read from the queue. If None is read, 830s stdin of the subprocess is closed. 830s cwd : str or path-like, optional 830s If given, commands are executed with this path as PWD, 830s the PWD of the parent process is used otherwise. Overrides 830s any `cwd` given to the constructor. 830s env : dict, optional 830s Environment to be used for command execution. If given, it will 830s completely replace any environment provided to theconstructor. If 830s `cwd` is given, 'PWD' in the environment is set to its value. 830s This must be a complete environment definition, no values 830s from the current environment will be inherited. Overrides 830s any `env` given to the constructor. 830s timeout: float, optional 830s None or the seconds after which a timeout callback is 830s invoked, if no progress was made in communicating with 830s the sub-process, or if waiting for the subprocess exit 830s took more than the specified time. See the protocol and 830s `ThreadedRunner` descriptions for a more detailed discussion 830s on timeouts. 830s exception_on_error : bool, optional 830s This argument is first interpreted if the protocol is a subclass 830s of `GeneratorMixIn`. If it is `True` (default), a 830s `CommandErrorException` is raised by the generator if the 830s sub process exited with a return code not equal to zero. If the 830s parameter is `False`, no exception is raised. In both cases the 830s return code can be read from the attribute `return_code` of 830s the generator. Then this argument interpreted within this function 830s to not raise `CommandError` if value is False in case of non-0 exit. 830s kwargs : 830s Passed to the Protocol class constructor. 830s 830s Returns 830s ------- 830s dict | _ResultGenerator 830s 830s If the protocol is not a subclass of `GeneratorMixIn`, the 830s result of protocol._prepare_result will be returned. 830s 830s If the protocol is a subclass of `GeneratorMixIn`, a Generator, i.e. 830s a `_ResultGenerator`, will be returned. This allows to use this 830s method in constructs like: 830s 830s for protocol_output in runner.run(): 830s ... 830s 830s Where the iterator yields whatever protocol.pipe_data_received 830s sends into the generator. 830s If all output was yielded and the process has terminated, the 830s generator will raise StopIteration(return_code), where 830s return_code is the return code of the process. The return code 830s of the process will also be stored in the "return_code"-attribute 830s of the runner. So you could write: 830s 830s gen = runner.run() 830s for file_descriptor, data in gen: 830s ... 830s 830s # get the return code of the process 830s result = gen.return_code 830s 830s Raises 830s ------ 830s CommandError 830s On execution failure (non-zero exit code) this exception is 830s raised which provides the command (cmd), stdout, stderr, 830s exit code (status), and a message identifying the failed 830s command, as properties. 830s FileNotFoundError 830s When a given executable does not exist. 830s """ 830s if protocol is None: 830s # by default let all subprocess stream pass through 830s protocol = NoCapture 830s 830s applied_cwd = cwd or self.cwd 830s applied_env = self._get_adjusted_env( 830s env=env or self.env, 830s cwd=applied_cwd, 830s ) 830s 830s lgr.debug( 830s 'Run %r (protocol_class=%s) (cwd=%s)', 830s cmd, 830s protocol.__name__, 830s applied_cwd 830s ) 830s 830s threaded_runner = ThreadedRunner( 830s cmd=cmd, 830s protocol_class=protocol, 830s stdin=stdin, 830s protocol_kwargs=kwargs, 830s timeout=timeout, 830s exception_on_error=exception_on_error, 830s cwd=applied_cwd, 830s env=applied_env 830s ) 830s 830s results_or_iterator = threaded_runner.run() 830s if issubclass(protocol, GeneratorMixIn): 830s return results_or_iterator 830s 830s results = cast(dict, results_or_iterator) 830s # log before any exception is raised 830s lgr.debug("Finished %r with status %s", cmd, results['code']) 830s 830s # make it such that we always blow if a protocol did not report 830s # a return code at all or it was non-0 and we were not asked ignore 830s # errors 830s return_code = results.get('code', None) 830s if return_code is None or (return_code and exception_on_error): 830s # the runner has a better idea, doc string warns Protocol 830s # implementations not to return these 830s results.pop('cmd', None) 830s results.pop('cwd', None) 830s > raise CommandError( 830s # whatever the results were, we carry them forward 830s cmd=cmd, 830s cwd=applied_cwd, 830s **results, 830s ) 830s E datalad.runner.exception.CommandError: CommandError: 'git -c diff.ignoreSubmodules=none -c core.quotepath=false annex copy --batch -z --to target --jobs 2 --fast --json --json-error-messages --json-progress -c annex.dotfiles=true' failed with exitcode 1 under /tmp/datalad_temp_check_push9_2dna6t [info keys: stdout_json] 830s E > to target... 830s E failed to send content to remote 830s E This could have failed because --fast is enabled. [err: 'copy: 1 failed'] 830s 830s /usr/lib/python3/dist-packages/datalad/runner/runner.py:243: CommandError 830s ------------------------------ Captured log call ------------------------------- 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.distributed.push:log.py:436 Determine push target 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.distributed.push:log.py:436 Finished push of Dataset(/tmp/datalad_temp_check_push9_2dna6t) 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.distributed.push:log.py:436 Determine push target 830s INFO datalad.core.distributed.push:log.py:436 Push refspecs 830s INFO datalad.core.distributed.push:log.py:436 Transfer data 830s INFO datalad.core.distributed.push:log.py:436 Update availability information 830s INFO datalad.gitrepo:log.py:436 Start enumerating objects 830s INFO datalad.gitrepo:log.py:436 Finished enumerating objects 830s INFO datalad.gitrepo:log.py:436 Start counting objects 830s INFO datalad.gitrepo:log.py:436 Counting objects: 6% (1/16) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 12% (2/16) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 18% (3/16) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 25% (4/16) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 31% (5/16) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 37% (6/16) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 43% (7/16) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 50% (8/16) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 56% (9/16) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 62% (10/16) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 68% (11/16) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 75% (12/16) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 81% (13/16) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 87% (14/16) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 93% (15/16) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 100% (16/16) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 100% (16/16), done. 830s INFO datalad.gitrepo:log.py:436 Finished counting objects 830s INFO datalad.gitrepo:log.py:436 Start compressing objects 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 10% (1/10) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 20% (2/10) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 30% (3/10) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 40% (4/10) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 50% (5/10) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 60% (6/10) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 70% (7/10) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 80% (8/10) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 90% (9/10) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 100% (10/10) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 100% (10/10), done. 830s INFO datalad.gitrepo:log.py:436 Finished compressing objects 830s INFO datalad.gitrepo:log.py:436 Start writing objects 830s INFO datalad.gitrepo:log.py:436 Writing objects: 7% (1/14) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 14% (2/14) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 21% (3/14) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 28% (4/14) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 35% (5/14) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 42% (6/14) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 50% (7/14) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 57% (8/14) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 64% (9/14) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 71% (10/14) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 78% (11/14) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 85% (12/14) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 92% (13/14) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 100% (14/14) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 100% (14/14), 1.30 KiB | 1.30 MiB/s, done. 830s INFO datalad.gitrepo:log.py:436 Finished writing objects 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.distributed.push:log.py:436 Finished push of Dataset(/tmp/datalad_temp_check_push9_2dna6t) 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.distributed.push:log.py:436 Determine push target 830s INFO datalad.core.distributed.push:log.py:436 Push refspecs 830s INFO datalad.core.distributed.push:log.py:436 Transfer data 830s INFO datalad.core.distributed.push:log.py:436 Update availability information 830s INFO datalad.core.distributed.push:log.py:436 Finished push of Dataset(/tmp/datalad_temp_check_push9_2dna6t) 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: starting 830s INFO datalad.core.local.save:log.py:436 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: processed result for /tmp/datalad_temp_check_push9_2dna6t 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: done 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: starting 830s INFO datalad.core.local.save:log.py:436 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: processed result for /tmp/datalad_temp_check_push9_2dna6t 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: done 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.distributed.push:log.py:436 Determine push target 830s INFO datalad.core.distributed.push:log.py:436 Push refspecs 830s INFO datalad.core.distributed.push:log.py:436 Transfer data 830s INFO datalad.annex:log.py:436 Start annex operation 830s INFO datalad.annex:log.py:436 Finished annex copy 830s _____________________________ test_push_recursive ______________________________ 830s 830s origin_path = '/tmp/datalad_temp_test_push_recursive1i2r_by8' 830s src_path = '/tmp/datalad_temp_test_push_recursivebx_gq0bf' 830s dst_top = '/tmp/datalad_temp_test_push_recursivegdjbqheg' 830s dst_sub = '/tmp/datalad_temp_test_push_recursiven3h41jt4sub' 830s dst_subnoannex = '/tmp/datalad_temp_test_push_recursivez5gxhpf_subnoannex' 830s dst_subsub = '/tmp/datalad_temp_test_push_recursivers_2m9imsubsub' 830s 830s @slow # 33sec on Yarik's laptop 830s @with_tempfile 830s @with_tempfile(mkdir=True) 830s @with_tempfile(mkdir=True) 830s @with_tempfile(mkdir=True, suffix='sub') 830s @with_tempfile(mkdir=True, suffix='subnoannex') 830s @with_tempfile(mkdir=True, suffix='subsub') 830s def test_push_recursive( 830s origin_path=None, src_path=None, dst_top=None, dst_sub=None, dst_subnoannex=None, dst_subsub=None): 830s # dataset with two submodules and one subsubmodule 830s origin = Dataset(origin_path).create() 830s origin_subm1 = origin.create('sub m') 830s origin_subm1.create('subsub m') 830s origin.create('subm noannex', annex=False) 830s origin.save() 830s assert_repo_status(origin.path) 830s # prepare src as a fresh clone with all subdatasets checkout out recursively 830s # running on a clone should make the test scenario more different than 830s # test_push(), even for the pieces that should be identical 830s top = Clone.__call__(source=origin.path, path=src_path) 830s subs = top.get('.', recursive=True, get_data=False, result_xfm='datasets') 830s # order for '.' should not be relied upon, so sort by path 830s sub, subsub, subnoannex = sorted(subs, key=lambda ds: ds.path) 830s 830s target_top = mk_push_target(top, 'target', dst_top, annex=True) 830s # subdatasets have no remote yet, so recursive publishing should fail: 830s res = top.push(to="target", recursive=True, on_failure='ignore') 830s check_datasets_order(res) 830s assert_in_results( 830s res, path=top.path, type='dataset', 830s refspec=DEFAULT_REFSPEC, 830s operations=['new-branch'], action='publish', status='ok', 830s target='target') 830s for d in (sub, subsub, subnoannex): 830s assert_in_results( 830s res, status='error', type='dataset', path=d.path, 830s message=("Unknown target sibling '%s'.", 830s 'target')) 830s # now fix that and set up targets for the submodules 830s target_sub = mk_push_target(sub, 'target', dst_sub, annex=True) 830s target_subnoannex = mk_push_target( 830s subnoannex, 'target', dst_subnoannex, annex=False) 830s target_subsub = mk_push_target(subsub, 'target', dst_subsub, annex=True) 830s 830s # and same push call as above 830s res = top.push(to="target", recursive=True) 830s check_datasets_order(res) 830s # topds skipped 830s assert_in_results( 830s res, path=top.path, type='dataset', 830s action='publish', status='notneeded', target='target') 830s # the rest pushed 830s for d in (sub, subsub, subnoannex): 830s assert_in_results( 830s res, status='ok', type='dataset', path=d.path, 830s refspec=DEFAULT_REFSPEC) 830s # all corresponding branches match across all datasets 830s for s, d in zip((top, sub, subnoannex, subsub), 830s (target_top, target_sub, target_subnoannex, 830s target_subsub)): 830s eq_(list(s.repo.get_branch_commits_(DEFAULT_BRANCH)), 830s list(d.get_branch_commits_(DEFAULT_BRANCH))) 830s if s != subnoannex: 830s eq_(list(s.repo.get_branch_commits_("git-annex")), 830s list(d.get_branch_commits_("git-annex"))) 830s 830s # rerun should not result in further pushes of the default branch 830s res = top.push(to="target", recursive=True) 830s check_datasets_order(res) 830s assert_not_in_results( 830s res, status='ok', refspec=DEFAULT_REFSPEC) 830s assert_in_results( 830s res, status='notneeded', refspec=DEFAULT_REFSPEC) 830s 830s # now annex a file in subsub 830s test_copy_file = subsub.pathobj / 'test_mod_annex_file' 830s test_copy_file.write_text("Heavy stuff.") 830s # save all the way up 830s assert_status( 830s ('ok', 'notneeded'), 830s top.save(message='subsub got something', recursive=True)) 830s assert_repo_status(top.path) 830s # publish straight up, should be smart by default 830s > res = top.push(to="target", recursive=True) 830s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 830s 830s /usr/lib/python3/dist-packages/datalad/core/distributed/tests/test_push.py:367: 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s /usr/lib/python3/dist-packages/datalad/distribution/dataset.py:502: in apply_func 830s return f(*args, **kwargs) 830s ^^^^^^^^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/interface/base.py:772: in eval_func 830s return return_func(*args, **kwargs) 830s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/interface/base.py:762: in return_func 830s results = list(results) 830s ^^^^^^^^^^^^^ 830s ../build.4Ft/src/datalad_next/patches/interface_utils.py:218: in _execute_command_ 830s for r in _process_results( 830s /usr/lib/python3/dist-packages/datalad/interface/utils.py:319: in _process_results 830s for res in results: 830s ^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/core/distributed/push.py:255: in __call__ 830s yield from _push( 830s ../build.4Ft/src/datalad_next/patches/push_optimize.py:184: in _push 830s yield from mod_push._transfer_data( 830s ../build.4Ft/src/datalad_next/patches/push_to_export_remote.py:170: in _transfer_data 830s yield from mod_push._push_data( 830s /usr/lib/python3/dist-packages/datalad/core/distributed/push.py:894: in _push_data 830s res = ds_repo._call_annex_records( 830s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1133: in _call_annex_records 830s raise e 830s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1093: in _call_annex_records 830s out = self._call_annex( 830s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:996: in _call_annex 830s return runner.run( 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s 830s self = 830s cmd = ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', ...] 830s protocol = 830s stdin = b'test_mod_annex_file\x00', cwd = None, env = None, timeout = None 830s exception_on_error = True, kwargs = {'total_nbytes': 12} 830s applied_cwd = PosixPath('/tmp/datalad_temp_test_push_recursivebx_gq0bf/sub m/subsub m') 830s applied_env = {'ADTTMP': '/tmp/autopkgtest.vjeRUT/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-ar.../8.4.2-1 python-pluggy/1.6.0-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-artifacts', ...} 830s threaded_runner = 830s results_or_iterator = {'code': 1, 'stderr': 'copy: 1 failed\n', 'stdout': '', 'stdout_json': [{'command': 'copy', 'error-messages': ['failed...could have failed because --fast is enabled.'], 'file': 'test_mod_annex_file', 'input': ['test_mod_annex_file'], ...}]} 830s results = {'code': 1, 'stderr': 'copy: 1 failed\n', 'stdout': '', 'stdout_json': [{'command': 'copy', 'error-messages': ['failed...could have failed because --fast is enabled.'], 'file': 'test_mod_annex_file', 'input': ['test_mod_annex_file'], ...}]} 830s return_code = 1 830s 830s def run(self, 830s cmd: list | str, 830s protocol: type[WitlessProtocol] | None = None, 830s stdin: bytes | IO | Queue | None = None, 830s cwd: PathLike | str | None = None, 830s env: dict | None = None, 830s timeout: float | None = None, 830s exception_on_error: bool = True, 830s **kwargs) -> dict | _ResultGenerator: 830s """Execute a command and communicate with it. 830s 830s Parameters 830s ---------- 830s cmd : list or str 830s Sequence of program arguments. Passing a single string causes 830s execution via the platform shell. 830s protocol : WitlessProtocol, optional 830s Protocol class handling interaction with the running process 830s (e.g. output capture). A number of pre-crafted classes are 830s provided (e.g `KillOutput`, `NoCapture`, `GitProgress`). 830s If the protocol has the GeneratorMixIn-mixin, the run-method 830s will return an iterator and can therefore be used in a for-clause. 830s stdin : file-like, bytes, Queue, or None 830s If stdin is a file-like, it will be directly used as stdin for the 830s subprocess. The caller is responsible for writing to it and closing it. 830s If stdin is a bytes, it will be fed to stdin of the subprocess. 830s If all data is written, stdin will be closed. 830s If stdin is a Queue, all elements (bytes) put into the Queue will 830s be passed to stdin until None is read from the queue. If None is read, 830s stdin of the subprocess is closed. 830s cwd : str or path-like, optional 830s If given, commands are executed with this path as PWD, 830s the PWD of the parent process is used otherwise. Overrides 830s any `cwd` given to the constructor. 830s env : dict, optional 830s Environment to be used for command execution. If given, it will 830s completely replace any environment provided to theconstructor. If 830s `cwd` is given, 'PWD' in the environment is set to its value. 830s This must be a complete environment definition, no values 830s from the current environment will be inherited. Overrides 830s any `env` given to the constructor. 830s timeout: float, optional 830s None or the seconds after which a timeout callback is 830s invoked, if no progress was made in communicating with 830s the sub-process, or if waiting for the subprocess exit 830s took more than the specified time. See the protocol and 830s `ThreadedRunner` descriptions for a more detailed discussion 830s on timeouts. 830s exception_on_error : bool, optional 830s This argument is first interpreted if the protocol is a subclass 830s of `GeneratorMixIn`. If it is `True` (default), a 830s `CommandErrorException` is raised by the generator if the 830s sub process exited with a return code not equal to zero. If the 830s parameter is `False`, no exception is raised. In both cases the 830s return code can be read from the attribute `return_code` of 830s the generator. Then this argument interpreted within this function 830s to not raise `CommandError` if value is False in case of non-0 exit. 830s kwargs : 830s Passed to the Protocol class constructor. 830s 830s Returns 830s ------- 830s dict | _ResultGenerator 830s 830s If the protocol is not a subclass of `GeneratorMixIn`, the 830s result of protocol._prepare_result will be returned. 830s 830s If the protocol is a subclass of `GeneratorMixIn`, a Generator, i.e. 830s a `_ResultGenerator`, will be returned. This allows to use this 830s method in constructs like: 830s 830s for protocol_output in runner.run(): 830s ... 830s 830s Where the iterator yields whatever protocol.pipe_data_received 830s sends into the generator. 830s If all output was yielded and the process has terminated, the 830s generator will raise StopIteration(return_code), where 830s return_code is the return code of the process. The return code 830s of the process will also be stored in the "return_code"-attribute 830s of the runner. So you could write: 830s 830s gen = runner.run() 830s for file_descriptor, data in gen: 830s ... 830s 830s # get the return code of the process 830s result = gen.return_code 830s 830s Raises 830s ------ 830s CommandError 830s On execution failure (non-zero exit code) this exception is 830s raised which provides the command (cmd), stdout, stderr, 830s exit code (status), and a message identifying the failed 830s command, as properties. 830s FileNotFoundError 830s When a given executable does not exist. 830s """ 830s if protocol is None: 830s # by default let all subprocess stream pass through 830s protocol = NoCapture 830s 830s applied_cwd = cwd or self.cwd 830s applied_env = self._get_adjusted_env( 830s env=env or self.env, 830s cwd=applied_cwd, 830s ) 830s 830s lgr.debug( 830s 'Run %r (protocol_class=%s) (cwd=%s)', 830s cmd, 830s protocol.__name__, 830s applied_cwd 830s ) 830s 830s threaded_runner = ThreadedRunner( 830s cmd=cmd, 830s protocol_class=protocol, 830s stdin=stdin, 830s protocol_kwargs=kwargs, 830s timeout=timeout, 830s exception_on_error=exception_on_error, 830s cwd=applied_cwd, 830s env=applied_env 830s ) 830s 830s results_or_iterator = threaded_runner.run() 830s if issubclass(protocol, GeneratorMixIn): 830s return results_or_iterator 830s 830s results = cast(dict, results_or_iterator) 830s # log before any exception is raised 830s lgr.debug("Finished %r with status %s", cmd, results['code']) 830s 830s # make it such that we always blow if a protocol did not report 830s # a return code at all or it was non-0 and we were not asked ignore 830s # errors 830s return_code = results.get('code', None) 830s if return_code is None or (return_code and exception_on_error): 830s # the runner has a better idea, doc string warns Protocol 830s # implementations not to return these 830s results.pop('cmd', None) 830s results.pop('cwd', None) 830s > raise CommandError( 830s # whatever the results were, we carry them forward 830s cmd=cmd, 830s cwd=applied_cwd, 830s **results, 830s ) 830s E datalad.runner.exception.CommandError: CommandError: 'git -c diff.ignoreSubmodules=none -c core.quotepath=false annex copy --batch -z --to target --fast --json --json-error-messages --json-progress -c annex.dotfiles=true' failed with exitcode 1 under /tmp/datalad_temp_test_push_recursivebx_gq0bf/sub m/subsub m [info keys: stdout_json] 830s E > to target... 830s E failed to send content to remote 830s E This could have failed because --fast is enabled. [err: 'copy: 1 failed'] 830s 830s /usr/lib/python3/dist-packages/datalad/runner/runner.py:243: CommandError 830s ------------------------------ Captured log call ------------------------------- 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: starting 830s INFO datalad.core.local.save:log.py:436 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: processed result for /tmp/datalad_temp_test_push_recursive1i2r_by8 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: done 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: starting 830s INFO datalad.core.local.save:log.py:436 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: processed result for /tmp/datalad_temp_test_push_recursive1i2r_by8/sub m 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: done 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: starting 830s INFO datalad.core.local.save:log.py:436 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: processed result for /tmp/datalad_temp_test_push_recursive1i2r_by8 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: done 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: starting 830s INFO datalad.core.local.save:log.py:436 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: processed result for /tmp/datalad_temp_test_push_recursive1i2r_by8 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: done 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.distributed.clone:log.py:436 Attempting a clone into /tmp/datalad_temp_test_push_recursivebx_gq0bf 830s INFO datalad.core.distributed.clone:log.py:436 Attempting to clone from /tmp/datalad_temp_test_push_recursive1i2r_by8 to /tmp/datalad_temp_test_push_recursivebx_gq0bf 830s INFO datalad.core.distributed.clone:log.py:436 Completed clone attempts for Dataset(/tmp/datalad_temp_test_push_recursivebx_gq0bf) 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.distribution.get:get.py:621 Ensuring presence of Dataset(/tmp/datalad_temp_test_push_recursivebx_gq0bf) to get /tmp/datalad_temp_test_push_recursivebx_gq0bf 830s INFO datalad.distribution.get:log.py:436 Installing: starting 830s INFO datalad.core.distributed.clone:log.py:436 Attempting a clone into /tmp/datalad_temp_test_push_recursivebx_gq0bf/sub m 830s INFO datalad.core.distributed.clone:log.py:436 Attempting to clone from /tmp/datalad_temp_test_push_recursive1i2r_by8/sub m to /tmp/datalad_temp_test_push_recursivebx_gq0bf/sub m 830s INFO datalad.core.distributed.clone:log.py:436 Completed clone attempts for Dataset('/tmp/datalad_temp_test_push_recursivebx_gq0bf/sub m') 830s INFO datalad.core.distributed.clone:log.py:436 Attempting a clone into /tmp/datalad_temp_test_push_recursivebx_gq0bf/subm noannex 830s INFO datalad.core.distributed.clone:log.py:436 Attempting to clone from /tmp/datalad_temp_test_push_recursive1i2r_by8/subm noannex to /tmp/datalad_temp_test_push_recursivebx_gq0bf/subm noannex 830s INFO datalad.core.distributed.clone:log.py:436 Completed clone attempts for Dataset('/tmp/datalad_temp_test_push_recursivebx_gq0bf/subm noannex') 830s INFO datalad.distribution.get:log.py:436 830s INFO datalad.distribution.get:log.py:436 Installing: processed result for /tmp/datalad_temp_test_push_recursivebx_gq0bf/sub m 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.distribution.get:log.py:436 Installing: processed result for /tmp/datalad_temp_test_push_recursivebx_gq0bf/subm noannex 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.distributed.clone:log.py:436 Attempting a clone into /tmp/datalad_temp_test_push_recursivebx_gq0bf/sub m/subsub m 830s INFO datalad.core.distributed.clone:log.py:436 Attempting to clone from /tmp/datalad_temp_test_push_recursive1i2r_by8/sub m/subsub m to /tmp/datalad_temp_test_push_recursivebx_gq0bf/sub m/subsub m 830s INFO datalad.core.distributed.clone:log.py:436 Completed clone attempts for Dataset('/tmp/datalad_temp_test_push_recursivebx_gq0bf/sub m/subsub m') 830s INFO datalad.distribution.get:log.py:436 Installing: processed result for /tmp/datalad_temp_test_push_recursivebx_gq0bf/sub m/subsub m 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.distribution.get:log.py:436 Installing: done 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.distributed.push:log.py:436 Determine push target 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.distributed.push:log.py:436 Finished push of Dataset('/tmp/datalad_temp_test_push_recursivebx_gq0bf/sub m/subsub m') 830s INFO datalad.core.distributed.push:log.py:436 Determine push target 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.distributed.push:log.py:436 Finished push of Dataset('/tmp/datalad_temp_test_push_recursivebx_gq0bf/sub m') 830s INFO datalad.core.distributed.push:log.py:436 Determine push target 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.distributed.push:log.py:436 Finished push of Dataset('/tmp/datalad_temp_test_push_recursivebx_gq0bf/subm noannex') 830s INFO datalad.core.distributed.push:log.py:436 Determine push target 830s INFO datalad.core.distributed.push:log.py:436 Push refspecs 830s INFO datalad.core.distributed.push:log.py:436 Transfer data 830s INFO datalad.core.distributed.push:log.py:436 Update availability information 830s INFO datalad.gitrepo:log.py:436 Start enumerating objects 830s INFO datalad.gitrepo:log.py:436 Finished enumerating objects 830s INFO datalad.gitrepo:log.py:436 Start counting objects 830s INFO datalad.gitrepo:log.py:436 Counting objects: 3% (1/29) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 6% (2/29) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 10% (3/29) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 13% (4/29) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 17% (5/29) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 20% (6/29) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 24% (7/29) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 27% (8/29) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 31% (9/29) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 34% (10/29) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 37% (11/29) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 41% (12/29) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 44% (13/29) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 48% (14/29) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 51% (15/29) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 55% (16/29) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 58% (17/29) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 62% (18/29) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 65% (19/29) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 68% (20/29) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 72% (21/29) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 75% (22/29) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 79% (23/29) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 82% (24/29) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 86% (25/29) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 89% (26/29) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 93% (27/29) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 96% (28/29) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 100% (29/29) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 100% (29/29), done. 830s INFO datalad.gitrepo:log.py:436 Finished counting objects 830s INFO datalad.gitrepo:log.py:436 Start compressing objects 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 4% (1/22) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 9% (2/22) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 13% (3/22) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 18% (4/22) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 22% (5/22) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 27% (6/22) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 31% (7/22) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 36% (8/22) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 40% (9/22) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 45% (10/22) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 50% (11/22) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 54% (12/22) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 59% (13/22) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 63% (14/22) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 68% (15/22) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 72% (16/22) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 77% (17/22) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 81% (18/22) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 86% (19/22) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 90% (20/22) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 95% (21/22) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 100% (22/22) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 100% (22/22), done. 830s INFO datalad.gitrepo:log.py:436 Finished compressing objects 830s INFO datalad.gitrepo:log.py:436 Start writing objects 830s INFO datalad.gitrepo:log.py:436 Writing objects: 3% (1/27) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 7% (2/27) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 11% (3/27) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 14% (4/27) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 18% (5/27) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 22% (6/27) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 25% (7/27) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 29% (8/27) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 33% (9/27) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 37% (10/27) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 40% (11/27) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 44% (12/27) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 48% (13/27) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 51% (14/27) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 55% (15/27) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 59% (16/27) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 62% (17/27) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 66% (18/27) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 70% (19/27) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 74% (20/27) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 77% (21/27) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 81% (22/27) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 85% (23/27) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 88% (24/27) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 92% (25/27) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 96% (26/27) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 100% (27/27) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 100% (27/27), 2.75 KiB | 1.38 MiB/s, done. 830s INFO datalad.gitrepo:log.py:436 Finished writing objects 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.distributed.push:log.py:436 Finished push of Dataset(/tmp/datalad_temp_test_push_recursivebx_gq0bf) 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.distributed.push:log.py:436 Determine push target 830s INFO datalad.core.distributed.push:log.py:436 Push refspecs 830s INFO datalad.core.distributed.push:log.py:436 Transfer data 830s INFO datalad.core.distributed.push:log.py:436 Update availability information 830s INFO datalad.gitrepo:log.py:436 Start enumerating objects 830s INFO datalad.gitrepo:log.py:436 Finished enumerating objects 830s INFO datalad.gitrepo:log.py:436 Start counting objects 830s INFO datalad.gitrepo:log.py:436 Counting objects: 4% (1/21) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 9% (2/21) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 14% (3/21) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 19% (4/21) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 23% (5/21) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 28% (6/21) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 33% (7/21) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 38% (8/21) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 42% (9/21) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 47% (10/21) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 52% (11/21) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 57% (12/21) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 61% (13/21) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 66% (14/21) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 71% (15/21) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 76% (16/21) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 80% (17/21) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 85% (18/21) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 90% (19/21) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 95% (20/21) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 100% (21/21) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 100% (21/21), done. 830s INFO datalad.gitrepo:log.py:436 Finished counting objects 830s INFO datalad.gitrepo:log.py:436 Start compressing objects 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 7% (1/14) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 14% (2/14) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 21% (3/14) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 28% (4/14) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 35% (5/14) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 42% (6/14) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 50% (7/14) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 57% (8/14) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 64% (9/14) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 71% (10/14) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 78% (11/14) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 85% (12/14) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 92% (13/14) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 100% (14/14) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 100% (14/14), done. 830s INFO datalad.gitrepo:log.py:436 Finished compressing objects 830s INFO datalad.gitrepo:log.py:436 Start writing objects 830s INFO datalad.gitrepo:log.py:436 Writing objects: 5% (1/19) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 10% (2/19) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 15% (3/19) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 21% (4/19) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 26% (5/19) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 31% (6/19) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 36% (7/19) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 42% (8/19) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 47% (9/19) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 52% (10/19) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 57% (11/19) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 63% (12/19) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 68% (13/19) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 73% (14/19) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 78% (15/19) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 84% (16/19) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 89% (17/19) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 94% (18/19) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 100% (19/19) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 100% (19/19), 1.76 KiB | 902.00 KiB/s, done. 830s INFO datalad.gitrepo:log.py:436 Finished writing objects 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.distributed.push:log.py:436 Finished push of Dataset('/tmp/datalad_temp_test_push_recursivebx_gq0bf/sub m/subsub m') 830s INFO datalad.core.distributed.push:log.py:436 Determine push target 830s INFO datalad.core.distributed.push:log.py:436 Push refspecs 830s INFO datalad.core.distributed.push:log.py:436 Transfer data 830s INFO datalad.core.distributed.push:log.py:436 Update availability information 830s INFO datalad.gitrepo:log.py:436 Start enumerating objects 830s INFO datalad.gitrepo:log.py:436 Finished enumerating objects 830s INFO datalad.gitrepo:log.py:436 Start counting objects 830s INFO datalad.gitrepo:log.py:436 Counting objects: 4% (1/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 8% (2/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 12% (3/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 16% (4/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 20% (5/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 25% (6/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 29% (7/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 33% (8/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 37% (9/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 41% (10/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 45% (11/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 50% (12/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 54% (13/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 58% (14/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 62% (15/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 66% (16/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 70% (17/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 75% (18/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 79% (19/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 83% (20/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 87% (21/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 91% (22/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 95% (23/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 100% (24/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 100% (24/24), done. 830s INFO datalad.gitrepo:log.py:436 Finished counting objects 830s INFO datalad.gitrepo:log.py:436 Start compressing objects 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 5% (1/17) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 11% (2/17) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 17% (3/17) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 23% (4/17) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 29% (5/17) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 35% (6/17) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 41% (7/17) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 47% (8/17) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 52% (9/17) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 58% (10/17) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 64% (11/17) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 70% (12/17) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 76% (13/17) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 82% (14/17) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 88% (15/17) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 94% (16/17) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 100% (17/17) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 100% (17/17), done. 830s INFO datalad.gitrepo:log.py:436 Finished compressing objects 830s INFO datalad.gitrepo:log.py:436 Start writing objects 830s INFO datalad.gitrepo:log.py:436 Writing objects: 4% (1/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 9% (2/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 13% (3/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 18% (4/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 22% (5/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 27% (6/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 31% (7/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 36% (8/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 40% (9/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 45% (10/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 50% (11/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 54% (12/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 59% (13/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 63% (14/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 68% (15/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 72% (16/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 77% (17/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 81% (18/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 86% (19/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 90% (20/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 95% (21/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 100% (22/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 100% (22/22), 2.11 KiB | 1.05 MiB/s, done. 830s INFO datalad.gitrepo:log.py:436 Finished writing objects 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.distributed.push:log.py:436 Finished push of Dataset('/tmp/datalad_temp_test_push_recursivebx_gq0bf/sub m') 830s INFO datalad.core.distributed.push:log.py:436 Determine push target 830s INFO datalad.core.distributed.push:log.py:436 Push refspecs 830s INFO datalad.core.distributed.push:log.py:436 Update availability information 830s INFO datalad.gitrepo:log.py:436 Start enumerating objects 830s INFO datalad.gitrepo:log.py:436 Finished enumerating objects 830s INFO datalad.gitrepo:log.py:436 Start counting objects 830s INFO datalad.gitrepo:log.py:436 Counting objects: 20% (1/5) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 40% (2/5) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 60% (3/5) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 80% (4/5) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 100% (5/5) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 100% (5/5), done. 830s INFO datalad.gitrepo:log.py:436 Finished counting objects 830s INFO datalad.gitrepo:log.py:436 Start compressing objects 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 33% (1/3) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 66% (2/3) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 100% (3/3) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 100% (3/3), done. 830s INFO datalad.gitrepo:log.py:436 Finished compressing objects 830s INFO datalad.gitrepo:log.py:436 Start writing objects 830s INFO datalad.gitrepo:log.py:436 Writing objects: 20% (1/5) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 40% (2/5) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 60% (3/5) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 80% (4/5) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 100% (5/5) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 100% (5/5), 389 bytes | 389.00 KiB/s, done. 830s INFO datalad.gitrepo:log.py:436 Finished writing objects 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.distributed.push:log.py:436 Finished push of Dataset('/tmp/datalad_temp_test_push_recursivebx_gq0bf/subm noannex') 830s INFO datalad.core.distributed.push:log.py:436 Determine push target 830s INFO datalad.core.distributed.push:log.py:436 Push refspecs 830s INFO datalad.core.distributed.push:log.py:436 Transfer data 830s INFO datalad.core.distributed.push:log.py:436 Update availability information 830s INFO datalad.core.distributed.push:log.py:436 Finished push of Dataset(/tmp/datalad_temp_test_push_recursivebx_gq0bf) 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.distributed.push:log.py:436 Determine push target 830s INFO datalad.core.distributed.push:log.py:436 Push refspecs 830s INFO datalad.core.distributed.push:log.py:436 Transfer data 830s INFO datalad.core.distributed.push:log.py:436 Update availability information 830s INFO datalad.core.distributed.push:log.py:436 Finished push of Dataset('/tmp/datalad_temp_test_push_recursivebx_gq0bf/sub m/subsub m') 830s INFO datalad.core.distributed.push:log.py:436 Determine push target 830s INFO datalad.core.distributed.push:log.py:436 Push refspecs 830s INFO datalad.core.distributed.push:log.py:436 Transfer data 830s INFO datalad.core.distributed.push:log.py:436 Update availability information 830s INFO datalad.core.distributed.push:log.py:436 Finished push of Dataset('/tmp/datalad_temp_test_push_recursivebx_gq0bf/sub m') 830s INFO datalad.core.distributed.push:log.py:436 Determine push target 830s INFO datalad.core.distributed.push:log.py:436 Push refspecs 830s INFO datalad.core.distributed.push:log.py:436 Update availability information 830s INFO datalad.core.distributed.push:log.py:436 Finished push of Dataset('/tmp/datalad_temp_test_push_recursivebx_gq0bf/subm noannex') 830s INFO datalad.core.distributed.push:log.py:436 Determine push target 830s INFO datalad.core.distributed.push:log.py:436 Push refspecs 830s INFO datalad.core.distributed.push:log.py:436 Transfer data 830s INFO datalad.core.distributed.push:log.py:436 Update availability information 830s INFO datalad.core.distributed.push:log.py:436 Finished push of Dataset(/tmp/datalad_temp_test_push_recursivebx_gq0bf) 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: starting 830s INFO datalad.core.local.save:log.py:436 830s INFO datalad.core.local.save:log.py:436 Total: processed result for /tmp/datalad_temp_test_push_recursivebx_gq0bf/subm noannex 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: processed result for /tmp/datalad_temp_test_push_recursivebx_gq0bf/sub m/subsub m 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: processed result for /tmp/datalad_temp_test_push_recursivebx_gq0bf/sub m 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: processed result for /tmp/datalad_temp_test_push_recursivebx_gq0bf 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: done 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.distributed.push:log.py:436 Determine push target 830s INFO datalad.core.distributed.push:log.py:436 Push refspecs 830s INFO datalad.core.distributed.push:log.py:436 Transfer data 830s INFO datalad.annex:log.py:436 Start annex operation 830s INFO datalad.annex:log.py:436 Finished annex copy 830s _________________________ test_push_subds_no_recursion _________________________ 830s 830s src_path = '/tmp/datalad_temp_test_push_subds_no_recursions6_abrlv' 830s dst_top = '/tmp/datalad_temp_test_push_subds_no_recursions29nsf2c' 830s dst_sub = '/tmp/datalad_temp_test_push_subds_no_recursion7dyd4tiy' 830s dst_subsub = '/tmp/datalad_temp_test_push_subds_no_recursion7qiz1o1s' 830s 830s @slow # 12sec on Yarik's laptop 830s @with_tempfile(mkdir=True) 830s @with_tempfile(mkdir=True) 830s @with_tempfile(mkdir=True) 830s @with_tempfile(mkdir=True) 830s def test_push_subds_no_recursion(src_path=None, dst_top=None, dst_sub=None, dst_subsub=None): 830s # dataset with one submodule and one subsubmodule 830s top = Dataset(src_path).create() 830s sub = top.create('sub m') 830s test_file = sub.pathobj / 'subdir' / 'test_file' 830s test_file.parent.mkdir() 830s test_file.write_text('some') 830s subsub = sub.create(sub.pathobj / 'subdir' / 'subsub m') 830s top.save(recursive=True) 830s assert_repo_status(top.path) 830s target_top = mk_push_target(top, 'target', dst_top, annex=True) 830s target_sub = mk_push_target(sub, 'target', dst_sub, annex=True) 830s target_subsub = mk_push_target(subsub, 'target', dst_subsub, annex=True) 830s # now publish, but NO recursion, instead give the parent dir of 830s # both a subdataset and a file in the middle subdataset 830s > res = top.push( 830s to='target', 830s # give relative to top dataset to elevate the difficulty a little 830s path=str(test_file.relative_to(top.pathobj).parent)) 830s 830s /usr/lib/python3/dist-packages/datalad/core/distributed/tests/test_push.py:445: 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s /usr/lib/python3/dist-packages/datalad/distribution/dataset.py:502: in apply_func 830s return f(*args, **kwargs) 830s ^^^^^^^^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/interface/base.py:772: in eval_func 830s return return_func(*args, **kwargs) 830s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/interface/base.py:762: in return_func 830s results = list(results) 830s ^^^^^^^^^^^^^ 830s ../build.4Ft/src/datalad_next/patches/interface_utils.py:218: in _execute_command_ 830s for r in _process_results( 830s /usr/lib/python3/dist-packages/datalad/interface/utils.py:319: in _process_results 830s for res in results: 830s ^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/core/distributed/push.py:255: in __call__ 830s yield from _push( 830s ../build.4Ft/src/datalad_next/patches/push_optimize.py:184: in _push 830s yield from mod_push._transfer_data( 830s ../build.4Ft/src/datalad_next/patches/push_to_export_remote.py:170: in _transfer_data 830s yield from mod_push._push_data( 830s /usr/lib/python3/dist-packages/datalad/core/distributed/push.py:894: in _push_data 830s res = ds_repo._call_annex_records( 830s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1133: in _call_annex_records 830s raise e 830s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1093: in _call_annex_records 830s out = self._call_annex( 830s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:996: in _call_annex 830s return runner.run( 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s 830s self = 830s cmd = ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', ...] 830s protocol = 830s stdin = b'subdir/test_file\x00', cwd = None, env = None, timeout = None 830s exception_on_error = True, kwargs = {'total_nbytes': 4} 830s applied_cwd = PosixPath('/tmp/datalad_temp_test_push_subds_no_recursions6_abrlv/sub m') 830s applied_env = {'ADTTMP': '/tmp/autopkgtest.vjeRUT/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-ar.../8.4.2-1 python-pluggy/1.6.0-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-artifacts', ...} 830s threaded_runner = 830s results_or_iterator = {'code': 1, 'stderr': 'copy: 1 failed\n', 'stdout': '', 'stdout_json': [{'command': 'copy', 'error-messages': ['failed...'This could have failed because --fast is enabled.'], 'file': 'subdir/test_file', 'input': ['subdir/test_file'], ...}]} 830s results = {'code': 1, 'stderr': 'copy: 1 failed\n', 'stdout': '', 'stdout_json': [{'command': 'copy', 'error-messages': ['failed...'This could have failed because --fast is enabled.'], 'file': 'subdir/test_file', 'input': ['subdir/test_file'], ...}]} 830s return_code = 1 830s 830s def run(self, 830s cmd: list | str, 830s protocol: type[WitlessProtocol] | None = None, 830s stdin: bytes | IO | Queue | None = None, 830s cwd: PathLike | str | None = None, 830s env: dict | None = None, 830s timeout: float | None = None, 830s exception_on_error: bool = True, 830s **kwargs) -> dict | _ResultGenerator: 830s """Execute a command and communicate with it. 830s 830s Parameters 830s ---------- 830s cmd : list or str 830s Sequence of program arguments. Passing a single string causes 830s execution via the platform shell. 830s protocol : WitlessProtocol, optional 830s Protocol class handling interaction with the running process 830s (e.g. output capture). A number of pre-crafted classes are 830s provided (e.g `KillOutput`, `NoCapture`, `GitProgress`). 830s If the protocol has the GeneratorMixIn-mixin, the run-method 830s will return an iterator and can therefore be used in a for-clause. 830s stdin : file-like, bytes, Queue, or None 830s If stdin is a file-like, it will be directly used as stdin for the 830s subprocess. The caller is responsible for writing to it and closing it. 830s If stdin is a bytes, it will be fed to stdin of the subprocess. 830s If all data is written, stdin will be closed. 830s If stdin is a Queue, all elements (bytes) put into the Queue will 830s be passed to stdin until None is read from the queue. If None is read, 830s stdin of the subprocess is closed. 830s cwd : str or path-like, optional 830s If given, commands are executed with this path as PWD, 830s the PWD of the parent process is used otherwise. Overrides 830s any `cwd` given to the constructor. 830s env : dict, optional 830s Environment to be used for command execution. If given, it will 830s completely replace any environment provided to theconstructor. If 830s `cwd` is given, 'PWD' in the environment is set to its value. 830s This must be a complete environment definition, no values 830s from the current environment will be inherited. Overrides 830s any `env` given to the constructor. 830s timeout: float, optional 830s None or the seconds after which a timeout callback is 830s invoked, if no progress was made in communicating with 830s the sub-process, or if waiting for the subprocess exit 830s took more than the specified time. See the protocol and 830s `ThreadedRunner` descriptions for a more detailed discussion 830s on timeouts. 830s exception_on_error : bool, optional 830s This argument is first interpreted if the protocol is a subclass 830s of `GeneratorMixIn`. If it is `True` (default), a 830s `CommandErrorException` is raised by the generator if the 830s sub process exited with a return code not equal to zero. If the 830s parameter is `False`, no exception is raised. In both cases the 830s return code can be read from the attribute `return_code` of 830s the generator. Then this argument interpreted within this function 830s to not raise `CommandError` if value is False in case of non-0 exit. 830s kwargs : 830s Passed to the Protocol class constructor. 830s 830s Returns 830s ------- 830s dict | _ResultGenerator 830s 830s If the protocol is not a subclass of `GeneratorMixIn`, the 830s result of protocol._prepare_result will be returned. 830s 830s If the protocol is a subclass of `GeneratorMixIn`, a Generator, i.e. 830s a `_ResultGenerator`, will be returned. This allows to use this 830s method in constructs like: 830s 830s for protocol_output in runner.run(): 830s ... 830s 830s Where the iterator yields whatever protocol.pipe_data_received 830s sends into the generator. 830s If all output was yielded and the process has terminated, the 830s generator will raise StopIteration(return_code), where 830s return_code is the return code of the process. The return code 830s of the process will also be stored in the "return_code"-attribute 830s of the runner. So you could write: 830s 830s gen = runner.run() 830s for file_descriptor, data in gen: 830s ... 830s 830s # get the return code of the process 830s result = gen.return_code 830s 830s Raises 830s ------ 830s CommandError 830s On execution failure (non-zero exit code) this exception is 830s raised which provides the command (cmd), stdout, stderr, 830s exit code (status), and a message identifying the failed 830s command, as properties. 830s FileNotFoundError 830s When a given executable does not exist. 830s """ 830s if protocol is None: 830s # by default let all subprocess stream pass through 830s protocol = NoCapture 830s 830s applied_cwd = cwd or self.cwd 830s applied_env = self._get_adjusted_env( 830s env=env or self.env, 830s cwd=applied_cwd, 830s ) 830s 830s lgr.debug( 830s 'Run %r (protocol_class=%s) (cwd=%s)', 830s cmd, 830s protocol.__name__, 830s applied_cwd 830s ) 830s 830s threaded_runner = ThreadedRunner( 830s cmd=cmd, 830s protocol_class=protocol, 830s stdin=stdin, 830s protocol_kwargs=kwargs, 830s timeout=timeout, 830s exception_on_error=exception_on_error, 830s cwd=applied_cwd, 830s env=applied_env 830s ) 830s 830s results_or_iterator = threaded_runner.run() 830s if issubclass(protocol, GeneratorMixIn): 830s return results_or_iterator 830s 830s results = cast(dict, results_or_iterator) 830s # log before any exception is raised 830s lgr.debug("Finished %r with status %s", cmd, results['code']) 830s 830s # make it such that we always blow if a protocol did not report 830s # a return code at all or it was non-0 and we were not asked ignore 830s # errors 830s return_code = results.get('code', None) 830s if return_code is None or (return_code and exception_on_error): 830s # the runner has a better idea, doc string warns Protocol 830s # implementations not to return these 830s results.pop('cmd', None) 830s results.pop('cwd', None) 830s > raise CommandError( 830s # whatever the results were, we carry them forward 830s cmd=cmd, 830s cwd=applied_cwd, 830s **results, 830s ) 830s E datalad.runner.exception.CommandError: CommandError: 'git -c diff.ignoreSubmodules=none -c core.quotepath=false annex copy --batch -z --to target --fast --json --json-error-messages --json-progress -c annex.dotfiles=true' failed with exitcode 1 under /tmp/datalad_temp_test_push_subds_no_recursions6_abrlv/sub m [info keys: stdout_json] 830s E > to target... 830s E failed to send content to remote 830s E This could have failed because --fast is enabled. [err: 'copy: 1 failed'] 830s 830s /usr/lib/python3/dist-packages/datalad/runner/runner.py:243: CommandError 830s ------------------------------ Captured log call ------------------------------- 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: starting 830s INFO datalad.core.local.save:log.py:436 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: processed result for /tmp/datalad_temp_test_push_subds_no_recursions6_abrlv 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: done 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: starting 830s INFO datalad.core.local.save:log.py:436 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: processed result for /tmp/datalad_temp_test_push_subds_no_recursions6_abrlv/sub m 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: done 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: starting 830s INFO datalad.core.local.save:log.py:436 830s INFO datalad.core.local.save:log.py:436 Total: processed result for /tmp/datalad_temp_test_push_subds_no_recursions6_abrlv/sub m/subdir/subsub m 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: processed result for /tmp/datalad_temp_test_push_subds_no_recursions6_abrlv/sub m 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: processed result for /tmp/datalad_temp_test_push_subds_no_recursions6_abrlv 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: done 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.distributed.push:log.py:436 Determine push target 830s INFO datalad.core.distributed.push:log.py:436 Push refspecs 830s INFO datalad.core.distributed.push:log.py:436 Transfer data 830s INFO datalad.annex:log.py:436 Start annex operation 830s INFO datalad.annex:log.py:436 Finished annex copy 830s _________________________ test_force_checkdatapresent __________________________ 830s 830s srcpath = '/tmp/datalad_temp_test_force_checkdatapresent1raab49k' 830s dstpath = '/tmp/datalad_temp_test_force_checkdatapresenttaiq7law' 830s 830s @with_tempfile(mkdir=True) 830s @with_tempfile(mkdir=True) 830s def test_force_checkdatapresent(srcpath=None, dstpath=None): 830s src = Dataset(srcpath).create() 830s target = mk_push_target(src, 'target', dstpath, annex=True, bare=True) 830s (src.pathobj / 'test_mod_annex_file').write_text("Heavy stuff.") 830s src.save(to_git=False, message="New annex file") 830s assert_repo_status(src.path, annex=True) 830s whereis_prior = src.repo.whereis(files=['test_mod_annex_file'])[0] 830s 830s res = src.push(to='target', data='nothing') 830s # nothing reported to be copied 830s assert_not_in_results(res, action='copy') 830s # we got the git-push nevertheless 830s eq_(src.repo.get_hexsha(DEFAULT_BRANCH), target.get_hexsha(DEFAULT_BRANCH)) 830s # nothing moved 830s eq_(whereis_prior, src.repo.whereis(files=['test_mod_annex_file'])[0]) 830s 830s # now a push without forced no-transfer 830s # we do not give since, so the non-transfered file is picked up 830s # and transferred 830s annex_branch_state = src.repo.get_hexsha('git-annex') 830s > res = src.push(to='target', force=None) 830s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 830s 830s /usr/lib/python3/dist-packages/datalad/core/distributed/tests/test_push.py:480: 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s /usr/lib/python3/dist-packages/datalad/distribution/dataset.py:502: in apply_func 830s return f(*args, **kwargs) 830s ^^^^^^^^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/interface/base.py:772: in eval_func 830s return return_func(*args, **kwargs) 830s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/interface/base.py:762: in return_func 830s results = list(results) 830s ^^^^^^^^^^^^^ 830s ../build.4Ft/src/datalad_next/patches/interface_utils.py:218: in _execute_command_ 830s for r in _process_results( 830s /usr/lib/python3/dist-packages/datalad/interface/utils.py:319: in _process_results 830s for res in results: 830s ^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/core/distributed/push.py:255: in __call__ 830s yield from _push( 830s ../build.4Ft/src/datalad_next/patches/push_optimize.py:184: in _push 830s yield from mod_push._transfer_data( 830s ../build.4Ft/src/datalad_next/patches/push_to_export_remote.py:170: in _transfer_data 830s yield from mod_push._push_data( 830s /usr/lib/python3/dist-packages/datalad/core/distributed/push.py:894: in _push_data 830s res = ds_repo._call_annex_records( 830s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1133: in _call_annex_records 830s raise e 830s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1093: in _call_annex_records 830s out = self._call_annex( 830s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:996: in _call_annex 830s return runner.run( 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s 830s self = 830s cmd = ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', ...] 830s protocol = 830s stdin = b'test_mod_annex_file\x00', cwd = None, env = None, timeout = None 830s exception_on_error = True, kwargs = {'total_nbytes': 12} 830s applied_cwd = PosixPath('/tmp/datalad_temp_test_force_checkdatapresent1raab49k') 830s applied_env = {'ADTTMP': '/tmp/autopkgtest.vjeRUT/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-ar.../8.4.2-1 python-pluggy/1.6.0-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-artifacts', ...} 830s threaded_runner = 830s results_or_iterator = {'code': 1, 'stderr': 'copy: 1 failed\n', 'stdout': '', 'stdout_json': [{'command': 'copy', 'error-messages': ['failed...could have failed because --fast is enabled.'], 'file': 'test_mod_annex_file', 'input': ['test_mod_annex_file'], ...}]} 830s results = {'code': 1, 'stderr': 'copy: 1 failed\n', 'stdout': '', 'stdout_json': [{'command': 'copy', 'error-messages': ['failed...could have failed because --fast is enabled.'], 'file': 'test_mod_annex_file', 'input': ['test_mod_annex_file'], ...}]} 830s return_code = 1 830s 830s def run(self, 830s cmd: list | str, 830s protocol: type[WitlessProtocol] | None = None, 830s stdin: bytes | IO | Queue | None = None, 830s cwd: PathLike | str | None = None, 830s env: dict | None = None, 830s timeout: float | None = None, 830s exception_on_error: bool = True, 830s **kwargs) -> dict | _ResultGenerator: 830s """Execute a command and communicate with it. 830s 830s Parameters 830s ---------- 830s cmd : list or str 830s Sequence of program arguments. Passing a single string causes 830s execution via the platform shell. 830s protocol : WitlessProtocol, optional 830s Protocol class handling interaction with the running process 830s (e.g. output capture). A number of pre-crafted classes are 830s provided (e.g `KillOutput`, `NoCapture`, `GitProgress`). 830s If the protocol has the GeneratorMixIn-mixin, the run-method 830s will return an iterator and can therefore be used in a for-clause. 830s stdin : file-like, bytes, Queue, or None 830s If stdin is a file-like, it will be directly used as stdin for the 830s subprocess. The caller is responsible for writing to it and closing it. 830s If stdin is a bytes, it will be fed to stdin of the subprocess. 830s If all data is written, stdin will be closed. 830s If stdin is a Queue, all elements (bytes) put into the Queue will 830s be passed to stdin until None is read from the queue. If None is read, 830s stdin of the subprocess is closed. 830s cwd : str or path-like, optional 830s If given, commands are executed with this path as PWD, 830s the PWD of the parent process is used otherwise. Overrides 830s any `cwd` given to the constructor. 830s env : dict, optional 830s Environment to be used for command execution. If given, it will 830s completely replace any environment provided to theconstructor. If 830s `cwd` is given, 'PWD' in the environment is set to its value. 830s This must be a complete environment definition, no values 830s from the current environment will be inherited. Overrides 830s any `env` given to the constructor. 830s timeout: float, optional 830s None or the seconds after which a timeout callback is 830s invoked, if no progress was made in communicating with 830s the sub-process, or if waiting for the subprocess exit 830s took more than the specified time. See the protocol and 830s `ThreadedRunner` descriptions for a more detailed discussion 830s on timeouts. 830s exception_on_error : bool, optional 830s This argument is first interpreted if the protocol is a subclass 830s of `GeneratorMixIn`. If it is `True` (default), a 830s `CommandErrorException` is raised by the generator if the 830s sub process exited with a return code not equal to zero. If the 830s parameter is `False`, no exception is raised. In both cases the 830s return code can be read from the attribute `return_code` of 830s the generator. Then this argument interpreted within this function 830s to not raise `CommandError` if value is False in case of non-0 exit. 830s kwargs : 830s Passed to the Protocol class constructor. 830s 830s Returns 830s ------- 830s dict | _ResultGenerator 830s 830s If the protocol is not a subclass of `GeneratorMixIn`, the 830s result of protocol._prepare_result will be returned. 830s 830s If the protocol is a subclass of `GeneratorMixIn`, a Generator, i.e. 830s a `_ResultGenerator`, will be returned. This allows to use this 830s method in constructs like: 830s 830s for protocol_output in runner.run(): 830s ... 830s 830s Where the iterator yields whatever protocol.pipe_data_received 830s sends into the generator. 830s If all output was yielded and the process has terminated, the 830s generator will raise StopIteration(return_code), where 830s return_code is the return code of the process. The return code 830s of the process will also be stored in the "return_code"-attribute 830s of the runner. So you could write: 830s 830s gen = runner.run() 830s for file_descriptor, data in gen: 830s ... 830s 830s # get the return code of the process 830s result = gen.return_code 830s 830s Raises 830s ------ 830s CommandError 830s On execution failure (non-zero exit code) this exception is 830s raised which provides the command (cmd), stdout, stderr, 830s exit code (status), and a message identifying the failed 830s command, as properties. 830s FileNotFoundError 830s When a given executable does not exist. 830s """ 830s if protocol is None: 830s # by default let all subprocess stream pass through 830s protocol = NoCapture 830s 830s applied_cwd = cwd or self.cwd 830s applied_env = self._get_adjusted_env( 830s env=env or self.env, 830s cwd=applied_cwd, 830s ) 830s 830s lgr.debug( 830s 'Run %r (protocol_class=%s) (cwd=%s)', 830s cmd, 830s protocol.__name__, 830s applied_cwd 830s ) 830s 830s threaded_runner = ThreadedRunner( 830s cmd=cmd, 830s protocol_class=protocol, 830s stdin=stdin, 830s protocol_kwargs=kwargs, 830s timeout=timeout, 830s exception_on_error=exception_on_error, 830s cwd=applied_cwd, 830s env=applied_env 830s ) 830s 830s results_or_iterator = threaded_runner.run() 830s if issubclass(protocol, GeneratorMixIn): 830s return results_or_iterator 830s 830s results = cast(dict, results_or_iterator) 830s # log before any exception is raised 830s lgr.debug("Finished %r with status %s", cmd, results['code']) 830s 830s # make it such that we always blow if a protocol did not report 830s # a return code at all or it was non-0 and we were not asked ignore 830s # errors 830s return_code = results.get('code', None) 830s if return_code is None or (return_code and exception_on_error): 830s # the runner has a better idea, doc string warns Protocol 830s # implementations not to return these 830s results.pop('cmd', None) 830s results.pop('cwd', None) 830s > raise CommandError( 830s # whatever the results were, we carry them forward 830s cmd=cmd, 830s cwd=applied_cwd, 830s **results, 830s ) 830s E datalad.runner.exception.CommandError: CommandError: 'git -c diff.ignoreSubmodules=none -c core.quotepath=false annex copy --batch -z --to target --fast --json --json-error-messages --json-progress -c annex.dotfiles=true' failed with exitcode 1 under /tmp/datalad_temp_test_force_checkdatapresent1raab49k [info keys: stdout_json] 830s E > to target... 830s E failed to send content to remote 830s E This could have failed because --fast is enabled. [err: 'copy: 1 failed'] 830s 830s /usr/lib/python3/dist-packages/datalad/runner/runner.py:243: CommandError 830s ------------------------------ Captured log call ------------------------------- 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: starting 830s INFO datalad.core.local.save:log.py:436 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: processed result for /tmp/datalad_temp_test_force_checkdatapresent1raab49k 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: done 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.distributed.push:log.py:436 Determine push target 830s INFO datalad.core.distributed.push:log.py:436 Push refspecs 830s INFO datalad.core.distributed.push:log.py:436 Update availability information 830s INFO datalad.gitrepo:log.py:436 Start enumerating objects 830s INFO datalad.gitrepo:log.py:436 Finished enumerating objects 830s INFO datalad.gitrepo:log.py:436 Start counting objects 830s INFO datalad.gitrepo:log.py:436 Counting objects: 4% (1/23) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 8% (2/23) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 13% (3/23) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 17% (4/23) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 21% (5/23) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 26% (6/23) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 30% (7/23) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 34% (8/23) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 39% (9/23) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 43% (10/23) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 47% (11/23) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 52% (12/23) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 56% (13/23) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 60% (14/23) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 65% (15/23) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 69% (16/23) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 73% (17/23) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 78% (18/23) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 82% (19/23) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 86% (20/23) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 91% (21/23) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 95% (22/23) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 100% (23/23) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 100% (23/23), done. 830s INFO datalad.gitrepo:log.py:436 Finished counting objects 830s INFO datalad.gitrepo:log.py:436 Start compressing objects 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 5% (1/17) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 11% (2/17) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 17% (3/17) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 23% (4/17) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 29% (5/17) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 35% (6/17) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 41% (7/17) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 47% (8/17) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 52% (9/17) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 58% (10/17) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 64% (11/17) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 70% (12/17) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 76% (13/17) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 82% (14/17) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 88% (15/17) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 94% (16/17) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 100% (17/17) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 100% (17/17), done. 830s INFO datalad.gitrepo:log.py:436 Finished compressing objects 830s INFO datalad.gitrepo:log.py:436 Start writing objects 830s INFO datalad.gitrepo:log.py:436 Writing objects: 5% (1/20) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 10% (2/20) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 15% (3/20) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 20% (4/20) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 25% (5/20) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 30% (6/20) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 35% (7/20) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 40% (8/20) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 45% (9/20) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 50% (10/20) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 55% (11/20) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 60% (12/20) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 65% (13/20) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 70% (14/20) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 75% (15/20) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 80% (16/20) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 85% (17/20) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 90% (18/20) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 95% (19/20) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 100% (20/20) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 100% (20/20), 1.91 KiB | 1.91 MiB/s, done. 830s INFO datalad.gitrepo:log.py:436 Finished writing objects 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.distributed.push:log.py:436 Finished push of Dataset(/tmp/datalad_temp_test_force_checkdatapresent1raab49k) 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.distributed.push:log.py:436 Determine push target 830s INFO datalad.core.distributed.push:log.py:436 Push refspecs 830s INFO datalad.core.distributed.push:log.py:436 Transfer data 830s INFO datalad.annex:log.py:436 Start annex operation 830s INFO datalad.annex:log.py:436 Finished annex copy 830s _________________________________ test_gh1763 __________________________________ 830s 830s src = Dataset('/tmp/datalad_temp_test_gh17630k6eqe6f') 830s target1 = '/tmp/datalad_temp_test_gh1763z097236a' 830s target2 = '/tmp/datalad_temp_test_gh1763q64x6f1g' 830s target3 = '/tmp/datalad_temp_test_gh1763j1bhd9kx' 830s 830s @with_tempfile(mkdir=True) 830s @with_tempfile() 830s @with_tempfile() 830s @with_tempfile() 830s def test_gh1763(src=None, target1=None, target2=None, target3=None): 830s # this test is very similar to test_publish_depends, but more 830s # comprehensible, and directly tests issue 1763 830s src = Dataset(src).create(force=True, **ckwa) 830s targets = [ 830s mk_push_target(src, f'target{i}', t, bare=False) 830s for i, t in enumerate([target1, target2, target3]) 830s ] 830s src.siblings('configure', name='target0', 830s publish_depends=['target1', 'target2'], 830s **ckwa) 830s # a file to annex 830s (src.pathobj / 'probe1').write_text('probe1') 830s src.save('probe1', to_git=False, **ckwa) 830s # make sure the probe is annexed, not straight in Git 830s assert_in('probe1', src.repo.get_annexed_files(with_content_only=True)) 830s # publish to target0, must handle dependency 830s > src.push(to='target0', **ckwa) 830s 830s /usr/lib/python3/dist-packages/datalad/core/distributed/tests/test_push.py:634: 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s /usr/lib/python3/dist-packages/datalad/distribution/dataset.py:502: in apply_func 830s return f(*args, **kwargs) 830s ^^^^^^^^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/interface/base.py:772: in eval_func 830s return return_func(*args, **kwargs) 830s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/interface/base.py:762: in return_func 830s results = list(results) 830s ^^^^^^^^^^^^^ 830s ../build.4Ft/src/datalad_next/patches/interface_utils.py:218: in _execute_command_ 830s for r in _process_results( 830s /usr/lib/python3/dist-packages/datalad/interface/utils.py:319: in _process_results 830s for res in results: 830s ^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/core/distributed/push.py:255: in __call__ 830s yield from _push( 830s ../build.4Ft/src/datalad_next/patches/push_optimize.py:162: in _push 830s yield from _push( 830s ../build.4Ft/src/datalad_next/patches/push_optimize.py:184: in _push 830s yield from mod_push._transfer_data( 830s ../build.4Ft/src/datalad_next/patches/push_to_export_remote.py:170: in _transfer_data 830s yield from mod_push._push_data( 830s /usr/lib/python3/dist-packages/datalad/core/distributed/push.py:894: in _push_data 830s res = ds_repo._call_annex_records( 830s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1133: in _call_annex_records 830s raise e 830s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1093: in _call_annex_records 830s out = self._call_annex( 830s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:996: in _call_annex 830s return runner.run( 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s 830s self = 830s cmd = ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', ...] 830s protocol = 830s stdin = b'probe1\x00', cwd = None, env = None, timeout = None 830s exception_on_error = True, kwargs = {'total_nbytes': 6} 830s applied_cwd = PosixPath('/tmp/datalad_temp_test_gh17630k6eqe6f') 830s applied_env = {'ADTTMP': '/tmp/autopkgtest.vjeRUT/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-ar.../8.4.2-1 python-pluggy/1.6.0-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-artifacts', ...} 830s threaded_runner = 830s results_or_iterator = {'code': 1, 'stderr': 'copy: 1 failed\n', 'stdout': '', 'stdout_json': [{'command': 'copy', 'error-messages': ['failed...content to remote', 'This could have failed because --fast is enabled.'], 'file': 'probe1', 'input': ['probe1'], ...}]} 830s results = {'code': 1, 'stderr': 'copy: 1 failed\n', 'stdout': '', 'stdout_json': [{'command': 'copy', 'error-messages': ['failed...content to remote', 'This could have failed because --fast is enabled.'], 'file': 'probe1', 'input': ['probe1'], ...}]} 830s return_code = 1 830s 830s def run(self, 830s cmd: list | str, 830s protocol: type[WitlessProtocol] | None = None, 830s stdin: bytes | IO | Queue | None = None, 830s cwd: PathLike | str | None = None, 830s env: dict | None = None, 830s timeout: float | None = None, 830s exception_on_error: bool = True, 830s **kwargs) -> dict | _ResultGenerator: 830s """Execute a command and communicate with it. 830s 830s Parameters 830s ---------- 830s cmd : list or str 830s Sequence of program arguments. Passing a single string causes 830s execution via the platform shell. 830s protocol : WitlessProtocol, optional 830s Protocol class handling interaction with the running process 830s (e.g. output capture). A number of pre-crafted classes are 830s provided (e.g `KillOutput`, `NoCapture`, `GitProgress`). 830s If the protocol has the GeneratorMixIn-mixin, the run-method 830s will return an iterator and can therefore be used in a for-clause. 830s stdin : file-like, bytes, Queue, or None 830s If stdin is a file-like, it will be directly used as stdin for the 830s subprocess. The caller is responsible for writing to it and closing it. 830s If stdin is a bytes, it will be fed to stdin of the subprocess. 830s If all data is written, stdin will be closed. 830s If stdin is a Queue, all elements (bytes) put into the Queue will 830s be passed to stdin until None is read from the queue. If None is read, 830s stdin of the subprocess is closed. 830s cwd : str or path-like, optional 830s If given, commands are executed with this path as PWD, 830s the PWD of the parent process is used otherwise. Overrides 830s any `cwd` given to the constructor. 830s env : dict, optional 830s Environment to be used for command execution. If given, it will 830s completely replace any environment provided to theconstructor. If 830s `cwd` is given, 'PWD' in the environment is set to its value. 830s This must be a complete environment definition, no values 830s from the current environment will be inherited. Overrides 830s any `env` given to the constructor. 830s timeout: float, optional 830s None or the seconds after which a timeout callback is 830s invoked, if no progress was made in communicating with 830s the sub-process, or if waiting for the subprocess exit 830s took more than the specified time. See the protocol and 830s `ThreadedRunner` descriptions for a more detailed discussion 830s on timeouts. 830s exception_on_error : bool, optional 830s This argument is first interpreted if the protocol is a subclass 830s of `GeneratorMixIn`. If it is `True` (default), a 830s `CommandErrorException` is raised by the generator if the 830s sub process exited with a return code not equal to zero. If the 830s parameter is `False`, no exception is raised. In both cases the 830s return code can be read from the attribute `return_code` of 830s the generator. Then this argument interpreted within this function 830s to not raise `CommandError` if value is False in case of non-0 exit. 830s kwargs : 830s Passed to the Protocol class constructor. 830s 830s Returns 830s ------- 830s dict | _ResultGenerator 830s 830s If the protocol is not a subclass of `GeneratorMixIn`, the 830s result of protocol._prepare_result will be returned. 830s 830s If the protocol is a subclass of `GeneratorMixIn`, a Generator, i.e. 830s a `_ResultGenerator`, will be returned. This allows to use this 830s method in constructs like: 830s 830s for protocol_output in runner.run(): 830s ... 830s 830s Where the iterator yields whatever protocol.pipe_data_received 830s sends into the generator. 830s If all output was yielded and the process has terminated, the 830s generator will raise StopIteration(return_code), where 830s return_code is the return code of the process. The return code 830s of the process will also be stored in the "return_code"-attribute 830s of the runner. So you could write: 830s 830s gen = runner.run() 830s for file_descriptor, data in gen: 830s ... 830s 830s # get the return code of the process 830s result = gen.return_code 830s 830s Raises 830s ------ 830s CommandError 830s On execution failure (non-zero exit code) this exception is 830s raised which provides the command (cmd), stdout, stderr, 830s exit code (status), and a message identifying the failed 830s command, as properties. 830s FileNotFoundError 830s When a given executable does not exist. 830s """ 830s if protocol is None: 830s # by default let all subprocess stream pass through 830s protocol = NoCapture 830s 830s applied_cwd = cwd or self.cwd 830s applied_env = self._get_adjusted_env( 830s env=env or self.env, 830s cwd=applied_cwd, 830s ) 830s 830s lgr.debug( 830s 'Run %r (protocol_class=%s) (cwd=%s)', 830s cmd, 830s protocol.__name__, 830s applied_cwd 830s ) 830s 830s threaded_runner = ThreadedRunner( 830s cmd=cmd, 830s protocol_class=protocol, 830s stdin=stdin, 830s protocol_kwargs=kwargs, 830s timeout=timeout, 830s exception_on_error=exception_on_error, 830s cwd=applied_cwd, 830s env=applied_env 830s ) 830s 830s results_or_iterator = threaded_runner.run() 830s if issubclass(protocol, GeneratorMixIn): 830s return results_or_iterator 830s 830s results = cast(dict, results_or_iterator) 830s # log before any exception is raised 830s lgr.debug("Finished %r with status %s", cmd, results['code']) 830s 830s # make it such that we always blow if a protocol did not report 830s # a return code at all or it was non-0 and we were not asked ignore 830s # errors 830s return_code = results.get('code', None) 830s if return_code is None or (return_code and exception_on_error): 830s # the runner has a better idea, doc string warns Protocol 830s # implementations not to return these 830s results.pop('cmd', None) 830s results.pop('cwd', None) 830s > raise CommandError( 830s # whatever the results were, we carry them forward 830s cmd=cmd, 830s cwd=applied_cwd, 830s **results, 830s ) 830s E datalad.runner.exception.CommandError: CommandError: 'git -c diff.ignoreSubmodules=none -c core.quotepath=false annex copy --batch -z --to target1 --fast --json --json-error-messages --json-progress -c annex.dotfiles=true' failed with exitcode 1 under /tmp/datalad_temp_test_gh17630k6eqe6f [info keys: stdout_json] 830s E > to target1... 830s E failed to send content to remote 830s E This could have failed because --fast is enabled. [err: 'copy: 1 failed'] 830s 830s /usr/lib/python3/dist-packages/datalad/runner/runner.py:243: CommandError 830s ------------------------------ Captured log call ------------------------------- 830s INFO datalad.distribution.siblings:siblings.py:536 Configure additional publication dependency on "target1" 830s INFO datalad.distribution.siblings:siblings.py:536 Configure additional publication dependency on "target2" 830s INFO datalad.core.local.save:log.py:436 Total: starting 830s INFO datalad.core.local.save:log.py:436 830s INFO datalad.core.local.save:log.py:436 Total: processed result for /tmp/datalad_temp_test_gh17630k6eqe6f 830s INFO datalad.core.local.save:log.py:436 Total: done 830s INFO datalad.core.distributed.push:log.py:436 Determine push target 830s INFO datalad.core.distributed.push:log.py:436 Push refspecs 830s INFO datalad.core.distributed.push:log.py:436 Determine push target 830s INFO datalad.core.distributed.push:log.py:436 Push refspecs 830s INFO datalad.core.distributed.push:log.py:436 Transfer data 830s INFO datalad.annex:log.py:436 Start annex operation 830s INFO datalad.annex:log.py:436 Finished annex copy 830s _______________________________ test_push_wanted _______________________________ 830s 830s srcpath = '/tmp/datalad_temp_test_push_wanted0ikwx0tb' 830s dstpath = '/tmp/datalad_temp_test_push_wantedoeserxe1' 830s 830s @skip_if_adjusted_branch 830s @with_tempfile() 830s @with_tempfile() 830s def test_push_wanted(srcpath=None, dstpath=None): 830s src = Dataset(srcpath).create() 830s (src.pathobj / 'data.0').write_text('0') 830s (src.pathobj / 'secure.1').write_text('1') 830s (src.pathobj / 'secure.2').write_text('2') 830s src.save() 830s 830s # Dropping a file to mimic a case of simply not having it locally (thus not 830s # to be "pushed") 830s src.drop('secure.2', reckless='kill') 830s 830s # Annotate sensitive content, actual value "verysecure" does not matter in 830s # this example 830s src.repo.set_metadata( 830s add={'distribution-restrictions': 'verysecure'}, 830s files=['secure.1', 'secure.2']) 830s 830s src.create_sibling( 830s dstpath, 830s annex_wanted="not metadata=distribution-restrictions=*", 830s name='target', 830s ) 830s # check that wanted is obeyed, since set in sibling configuration 830s > res = src.push(to='target') 830s ^^^^^^^^^^^^^^^^^^^^^ 830s 830s /usr/lib/python3/dist-packages/datalad/core/distributed/tests/test_push.py:697: 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s /usr/lib/python3/dist-packages/datalad/distribution/dataset.py:502: in apply_func 830s return f(*args, **kwargs) 830s ^^^^^^^^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/interface/base.py:772: in eval_func 830s return return_func(*args, **kwargs) 830s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/interface/base.py:762: in return_func 830s results = list(results) 830s ^^^^^^^^^^^^^ 830s ../build.4Ft/src/datalad_next/patches/interface_utils.py:218: in _execute_command_ 830s for r in _process_results( 830s /usr/lib/python3/dist-packages/datalad/interface/utils.py:319: in _process_results 830s for res in results: 830s ^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/core/distributed/push.py:255: in __call__ 830s yield from _push( 830s ../build.4Ft/src/datalad_next/patches/push_optimize.py:184: in _push 830s yield from mod_push._transfer_data( 830s ../build.4Ft/src/datalad_next/patches/push_to_export_remote.py:170: in _transfer_data 830s yield from mod_push._push_data( 830s /usr/lib/python3/dist-packages/datalad/core/distributed/push.py:894: in _push_data 830s res = ds_repo._call_annex_records( 830s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1133: in _call_annex_records 830s raise e 830s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1093: in _call_annex_records 830s out = self._call_annex( 830s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:996: in _call_annex 830s return runner.run( 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s 830s self = 830s cmd = ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', ...] 830s protocol = 830s stdin = b'data.0\x00secure.1\x00secure.2\x00', cwd = None, env = None 830s timeout = None, exception_on_error = True, kwargs = {'total_nbytes': 3} 830s applied_cwd = PosixPath('/tmp/datalad_temp_test_push_wanted0ikwx0tb') 830s applied_env = {'ADTTMP': '/tmp/autopkgtest.vjeRUT/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-ar.../8.4.2-1 python-pluggy/1.6.0-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-artifacts', ...} 830s threaded_runner = 830s results_or_iterator = {'code': 1, 'stderr': 'copy: 1 failed\n', 'stdout': '', 'stdout_json': [{'command': 'copy', 'error-messages': ['failed...content to remote', 'This could have failed because --fast is enabled.'], 'file': 'data.0', 'input': ['data.0'], ...}]} 830s results = {'code': 1, 'stderr': 'copy: 1 failed\n', 'stdout': '', 'stdout_json': [{'command': 'copy', 'error-messages': ['failed...content to remote', 'This could have failed because --fast is enabled.'], 'file': 'data.0', 'input': ['data.0'], ...}]} 830s return_code = 1 830s 830s def run(self, 830s cmd: list | str, 830s protocol: type[WitlessProtocol] | None = None, 830s stdin: bytes | IO | Queue | None = None, 830s cwd: PathLike | str | None = None, 830s env: dict | None = None, 830s timeout: float | None = None, 830s exception_on_error: bool = True, 830s **kwargs) -> dict | _ResultGenerator: 830s """Execute a command and communicate with it. 830s 830s Parameters 830s ---------- 830s cmd : list or str 830s Sequence of program arguments. Passing a single string causes 830s execution via the platform shell. 830s protocol : WitlessProtocol, optional 830s Protocol class handling interaction with the running process 830s (e.g. output capture). A number of pre-crafted classes are 830s provided (e.g `KillOutput`, `NoCapture`, `GitProgress`). 830s If the protocol has the GeneratorMixIn-mixin, the run-method 830s will return an iterator and can therefore be used in a for-clause. 830s stdin : file-like, bytes, Queue, or None 830s If stdin is a file-like, it will be directly used as stdin for the 830s subprocess. The caller is responsible for writing to it and closing it. 830s If stdin is a bytes, it will be fed to stdin of the subprocess. 830s If all data is written, stdin will be closed. 830s If stdin is a Queue, all elements (bytes) put into the Queue will 830s be passed to stdin until None is read from the queue. If None is read, 830s stdin of the subprocess is closed. 830s cwd : str or path-like, optional 830s If given, commands are executed with this path as PWD, 830s the PWD of the parent process is used otherwise. Overrides 830s any `cwd` given to the constructor. 830s env : dict, optional 830s Environment to be used for command execution. If given, it will 830s completely replace any environment provided to theconstructor. If 830s `cwd` is given, 'PWD' in the environment is set to its value. 830s This must be a complete environment definition, no values 830s from the current environment will be inherited. Overrides 830s any `env` given to the constructor. 830s timeout: float, optional 830s None or the seconds after which a timeout callback is 830s invoked, if no progress was made in communicating with 830s the sub-process, or if waiting for the subprocess exit 830s took more than the specified time. See the protocol and 830s `ThreadedRunner` descriptions for a more detailed discussion 830s on timeouts. 830s exception_on_error : bool, optional 830s This argument is first interpreted if the protocol is a subclass 830s of `GeneratorMixIn`. If it is `True` (default), a 830s `CommandErrorException` is raised by the generator if the 830s sub process exited with a return code not equal to zero. If the 830s parameter is `False`, no exception is raised. In both cases the 830s return code can be read from the attribute `return_code` of 830s the generator. Then this argument interpreted within this function 830s to not raise `CommandError` if value is False in case of non-0 exit. 830s kwargs : 830s Passed to the Protocol class constructor. 830s 830s Returns 830s ------- 830s dict | _ResultGenerator 830s 830s If the protocol is not a subclass of `GeneratorMixIn`, the 830s result of protocol._prepare_result will be returned. 830s 830s If the protocol is a subclass of `GeneratorMixIn`, a Generator, i.e. 830s a `_ResultGenerator`, will be returned. This allows to use this 830s method in constructs like: 830s 830s for protocol_output in runner.run(): 830s ... 830s 830s Where the iterator yields whatever protocol.pipe_data_received 830s sends into the generator. 830s If all output was yielded and the process has terminated, the 830s generator will raise StopIteration(return_code), where 830s return_code is the return code of the process. The return code 830s of the process will also be stored in the "return_code"-attribute 830s of the runner. So you could write: 830s 830s gen = runner.run() 830s for file_descriptor, data in gen: 830s ... 830s 830s # get the return code of the process 830s result = gen.return_code 830s 830s Raises 830s ------ 830s CommandError 830s On execution failure (non-zero exit code) this exception is 830s raised which provides the command (cmd), stdout, stderr, 830s exit code (status), and a message identifying the failed 830s command, as properties. 830s FileNotFoundError 830s When a given executable does not exist. 830s """ 830s if protocol is None: 830s # by default let all subprocess stream pass through 830s protocol = NoCapture 830s 830s applied_cwd = cwd or self.cwd 830s applied_env = self._get_adjusted_env( 830s env=env or self.env, 830s cwd=applied_cwd, 830s ) 830s 830s lgr.debug( 830s 'Run %r (protocol_class=%s) (cwd=%s)', 830s cmd, 830s protocol.__name__, 830s applied_cwd 830s ) 830s 830s threaded_runner = ThreadedRunner( 830s cmd=cmd, 830s protocol_class=protocol, 830s stdin=stdin, 830s protocol_kwargs=kwargs, 830s timeout=timeout, 830s exception_on_error=exception_on_error, 830s cwd=applied_cwd, 830s env=applied_env 830s ) 830s 830s results_or_iterator = threaded_runner.run() 830s if issubclass(protocol, GeneratorMixIn): 830s return results_or_iterator 830s 830s results = cast(dict, results_or_iterator) 830s # log before any exception is raised 830s lgr.debug("Finished %r with status %s", cmd, results['code']) 830s 830s # make it such that we always blow if a protocol did not report 830s # a return code at all or it was non-0 and we were not asked ignore 830s # errors 830s return_code = results.get('code', None) 830s if return_code is None or (return_code and exception_on_error): 830s # the runner has a better idea, doc string warns Protocol 830s # implementations not to return these 830s results.pop('cmd', None) 830s results.pop('cwd', None) 830s > raise CommandError( 830s # whatever the results were, we carry them forward 830s cmd=cmd, 830s cwd=applied_cwd, 830s **results, 830s ) 830s E datalad.runner.exception.CommandError: CommandError: 'git -c diff.ignoreSubmodules=none -c core.quotepath=false annex copy --batch -z --to target --auto --fast --json --json-error-messages --json-progress -c annex.dotfiles=true' failed with exitcode 1 under /tmp/datalad_temp_test_push_wanted0ikwx0tb [info keys: stdout_json] 830s E > to target... 830s E failed to send content to remote 830s E This could have failed because --fast is enabled. [err: 'copy: 1 failed'] 830s 830s /usr/lib/python3/dist-packages/datalad/runner/runner.py:243: CommandError 830s ------------------------------ Captured log call ------------------------------- 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: starting 830s INFO datalad.core.local.save:log.py:436 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: processed result for /tmp/datalad_temp_test_push_wanted0ikwx0tb 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: done 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.distribution.create_sibling:create_sibling.py:190 Considering to create a target dataset /tmp/datalad_temp_test_push_wanted0ikwx0tb at /tmp/datalad_temp_test_push_wantedoeserxe1 of localhost 830s INFO datalad.distribution.update:update.py:307 Fetching updates for Dataset(/tmp/datalad_temp_test_push_wanted0ikwx0tb) 830s INFO datalad.gitrepo:log.py:436 Start enumerating objects 830s INFO datalad.gitrepo:log.py:436 Finished enumerating objects 830s INFO datalad.gitrepo:log.py:436 Start counting objects 830s INFO datalad.gitrepo:log.py:436 remote: Counting objects: 20% (1/5) 830s INFO datalad.gitrepo:log.py:436 remote: Counting objects: 40% (2/5) 830s INFO datalad.gitrepo:log.py:436 remote: Counting objects: 60% (3/5) 830s INFO datalad.gitrepo:log.py:436 remote: Counting objects: 80% (4/5) 830s INFO datalad.gitrepo:log.py:436 remote: Counting objects: 100% (5/5) 830s INFO datalad.gitrepo:log.py:436 remote: Counting objects: 100% (5/5), done. 830s INFO datalad.gitrepo:log.py:436 Finished counting objects 830s INFO datalad.gitrepo:log.py:436 Start compressing objects 830s INFO datalad.gitrepo:log.py:436 remote: Compressing objects: 33% (1/3) 830s INFO datalad.gitrepo:log.py:436 remote: Compressing objects: 66% (2/3) 830s INFO datalad.gitrepo:log.py:436 remote: Compressing objects: 100% (3/3) 830s INFO datalad.gitrepo:log.py:436 remote: Compressing objects: 100% (3/3), done. 830s INFO datalad.gitrepo:log.py:436 Finished compressing objects 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.distribution.create_sibling:create_sibling.py:349 Adjusting remote git configuration 830s INFO datalad.distribution.create_sibling:create_sibling.py:856 Running post-update hooks in all created siblings 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.distributed.push:log.py:436 Determine push target 830s INFO datalad.core.distributed.push:log.py:436 Push refspecs 830s INFO datalad.core.distributed.push:log.py:436 Transfer data 830s INFO datalad.annex:log.py:436 Start annex operation 830s INFO datalad.annex:log.py:436 data.0 830s INFO datalad.annex:log.py:436 Finished 830s ___________________________ test_auto_data_transfer ____________________________ 830s 830s path = PosixPath('/tmp/datalad_temp_test_auto_data_transfera9ehvwjp') 830s 830s @skip_if_adjusted_branch 830s @slow # 10sec on Yarik's laptop 830s @with_tempfile(mkdir=True) 830s def test_auto_data_transfer(path=None): 830s path = Path(path) 830s ds_a = Dataset(path / "a").create() 830s (ds_a.pathobj / "foo.dat").write_text("foo") 830s ds_a.save() 830s 830s # Should be the default, but just in case. 830s ds_a.repo.config.set("annex.numcopies", "1", scope="local") 830s ds_a.create_sibling(str(path / "b"), name="b") 830s 830s # With numcopies=1, no data is copied with data="auto". 830s res = ds_a.push(to="b", data="auto", since=None) 830s assert_not_in_results(res, action="copy") 830s 830s # Even when a file is explicitly given. 830s res = ds_a.push(to="b", path="foo.dat", data="auto", since=None) 830s assert_not_in_results(res, action="copy") 830s 830s # numcopies=2 changes that. 830s ds_a.repo.config.set("annex.numcopies", "2", scope="local") 830s > res = ds_a.push(to="b", data="auto", since=None) 830s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 830s 830s /usr/lib/python3/dist-packages/datalad/core/distributed/tests/test_push.py:746: 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s /usr/lib/python3/dist-packages/datalad/distribution/dataset.py:502: in apply_func 830s return f(*args, **kwargs) 830s ^^^^^^^^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/interface/base.py:772: in eval_func 830s return return_func(*args, **kwargs) 830s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/interface/base.py:762: in return_func 830s results = list(results) 830s ^^^^^^^^^^^^^ 830s ../build.4Ft/src/datalad_next/patches/interface_utils.py:218: in _execute_command_ 830s for r in _process_results( 830s /usr/lib/python3/dist-packages/datalad/interface/utils.py:319: in _process_results 830s for res in results: 830s ^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/core/distributed/push.py:255: in __call__ 830s yield from _push( 830s ../build.4Ft/src/datalad_next/patches/push_optimize.py:184: in _push 830s yield from mod_push._transfer_data( 830s ../build.4Ft/src/datalad_next/patches/push_to_export_remote.py:170: in _transfer_data 830s yield from mod_push._push_data( 830s /usr/lib/python3/dist-packages/datalad/core/distributed/push.py:894: in _push_data 830s res = ds_repo._call_annex_records( 830s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1133: in _call_annex_records 830s raise e 830s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1093: in _call_annex_records 830s out = self._call_annex( 830s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:996: in _call_annex 830s return runner.run( 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s 830s self = 830s cmd = ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', ...] 830s protocol = 830s stdin = b'foo.dat\x00', cwd = None, env = None, timeout = None 830s exception_on_error = True, kwargs = {'total_nbytes': 3} 830s applied_cwd = PosixPath('/tmp/datalad_temp_test_auto_data_transfera9ehvwjp/a') 830s applied_env = {'ADTTMP': '/tmp/autopkgtest.vjeRUT/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-ar.../8.4.2-1 python-pluggy/1.6.0-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-artifacts', ...} 830s threaded_runner = 830s results_or_iterator = {'code': 1, 'stderr': 'copy: 1 failed\n', 'stdout': '', 'stdout_json': [{'command': 'copy', 'error-messages': ['failed...ntent to remote', 'This could have failed because --fast is enabled.'], 'file': 'foo.dat', 'input': ['foo.dat'], ...}]} 830s results = {'code': 1, 'stderr': 'copy: 1 failed\n', 'stdout': '', 'stdout_json': [{'command': 'copy', 'error-messages': ['failed...ntent to remote', 'This could have failed because --fast is enabled.'], 'file': 'foo.dat', 'input': ['foo.dat'], ...}]} 830s return_code = 1 830s 830s def run(self, 830s cmd: list | str, 830s protocol: type[WitlessProtocol] | None = None, 830s stdin: bytes | IO | Queue | None = None, 830s cwd: PathLike | str | None = None, 830s env: dict | None = None, 830s timeout: float | None = None, 830s exception_on_error: bool = True, 830s **kwargs) -> dict | _ResultGenerator: 830s """Execute a command and communicate with it. 830s 830s Parameters 830s ---------- 830s cmd : list or str 830s Sequence of program arguments. Passing a single string causes 830s execution via the platform shell. 830s protocol : WitlessProtocol, optional 830s Protocol class handling interaction with the running process 830s (e.g. output capture). A number of pre-crafted classes are 830s provided (e.g `KillOutput`, `NoCapture`, `GitProgress`). 830s If the protocol has the GeneratorMixIn-mixin, the run-method 830s will return an iterator and can therefore be used in a for-clause. 830s stdin : file-like, bytes, Queue, or None 830s If stdin is a file-like, it will be directly used as stdin for the 830s subprocess. The caller is responsible for writing to it and closing it. 830s If stdin is a bytes, it will be fed to stdin of the subprocess. 830s If all data is written, stdin will be closed. 830s If stdin is a Queue, all elements (bytes) put into the Queue will 830s be passed to stdin until None is read from the queue. If None is read, 830s stdin of the subprocess is closed. 830s cwd : str or path-like, optional 830s If given, commands are executed with this path as PWD, 830s the PWD of the parent process is used otherwise. Overrides 830s any `cwd` given to the constructor. 830s env : dict, optional 830s Environment to be used for command execution. If given, it will 830s completely replace any environment provided to theconstructor. If 830s `cwd` is given, 'PWD' in the environment is set to its value. 830s This must be a complete environment definition, no values 830s from the current environment will be inherited. Overrides 830s any `env` given to the constructor. 830s timeout: float, optional 830s None or the seconds after which a timeout callback is 830s invoked, if no progress was made in communicating with 830s the sub-process, or if waiting for the subprocess exit 830s took more than the specified time. See the protocol and 830s `ThreadedRunner` descriptions for a more detailed discussion 830s on timeouts. 830s exception_on_error : bool, optional 830s This argument is first interpreted if the protocol is a subclass 830s of `GeneratorMixIn`. If it is `True` (default), a 830s `CommandErrorException` is raised by the generator if the 830s sub process exited with a return code not equal to zero. If the 830s parameter is `False`, no exception is raised. In both cases the 830s return code can be read from the attribute `return_code` of 830s the generator. Then this argument interpreted within this function 830s to not raise `CommandError` if value is False in case of non-0 exit. 830s kwargs : 830s Passed to the Protocol class constructor. 830s 830s Returns 830s ------- 830s dict | _ResultGenerator 830s 830s If the protocol is not a subclass of `GeneratorMixIn`, the 830s result of protocol._prepare_result will be returned. 830s 830s If the protocol is a subclass of `GeneratorMixIn`, a Generator, i.e. 830s a `_ResultGenerator`, will be returned. This allows to use this 830s method in constructs like: 830s 830s for protocol_output in runner.run(): 830s ... 830s 830s Where the iterator yields whatever protocol.pipe_data_received 830s sends into the generator. 830s If all output was yielded and the process has terminated, the 830s generator will raise StopIteration(return_code), where 830s return_code is the return code of the process. The return code 830s of the process will also be stored in the "return_code"-attribute 830s of the runner. So you could write: 830s 830s gen = runner.run() 830s for file_descriptor, data in gen: 830s ... 830s 830s # get the return code of the process 830s result = gen.return_code 830s 830s Raises 830s ------ 830s CommandError 830s On execution failure (non-zero exit code) this exception is 830s raised which provides the command (cmd), stdout, stderr, 830s exit code (status), and a message identifying the failed 830s command, as properties. 830s FileNotFoundError 830s When a given executable does not exist. 830s """ 830s if protocol is None: 830s # by default let all subprocess stream pass through 830s protocol = NoCapture 830s 830s applied_cwd = cwd or self.cwd 830s applied_env = self._get_adjusted_env( 830s env=env or self.env, 830s cwd=applied_cwd, 830s ) 830s 830s lgr.debug( 830s 'Run %r (protocol_class=%s) (cwd=%s)', 830s cmd, 830s protocol.__name__, 830s applied_cwd 830s ) 830s 830s threaded_runner = ThreadedRunner( 830s cmd=cmd, 830s protocol_class=protocol, 830s stdin=stdin, 830s protocol_kwargs=kwargs, 830s timeout=timeout, 830s exception_on_error=exception_on_error, 830s cwd=applied_cwd, 830s env=applied_env 830s ) 830s 830s results_or_iterator = threaded_runner.run() 830s if issubclass(protocol, GeneratorMixIn): 830s return results_or_iterator 830s 830s results = cast(dict, results_or_iterator) 830s # log before any exception is raised 830s lgr.debug("Finished %r with status %s", cmd, results['code']) 830s 830s # make it such that we always blow if a protocol did not report 830s # a return code at all or it was non-0 and we were not asked ignore 830s # errors 830s return_code = results.get('code', None) 830s if return_code is None or (return_code and exception_on_error): 830s # the runner has a better idea, doc string warns Protocol 830s # implementations not to return these 830s results.pop('cmd', None) 830s results.pop('cwd', None) 830s > raise CommandError( 830s # whatever the results were, we carry them forward 830s cmd=cmd, 830s cwd=applied_cwd, 830s **results, 830s ) 830s E datalad.runner.exception.CommandError: CommandError: 'git -c diff.ignoreSubmodules=none -c core.quotepath=false annex copy --batch -z --to b --auto --fast --json --json-error-messages --json-progress -c annex.dotfiles=true' failed with exitcode 1 under /tmp/datalad_temp_test_auto_data_transfera9ehvwjp/a [info keys: stdout_json] 830s E > to b... 830s E failed to send content to remote 830s E This could have failed because --fast is enabled. [err: 'copy: 1 failed'] 830s 830s /usr/lib/python3/dist-packages/datalad/runner/runner.py:243: CommandError 830s ------------------------------ Captured log call ------------------------------- 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: starting 830s INFO datalad.core.local.save:log.py:436 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: processed result for /tmp/datalad_temp_test_auto_data_transfera9ehvwjp/a 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: done 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.distribution.create_sibling:create_sibling.py:190 Considering to create a target dataset /tmp/datalad_temp_test_auto_data_transfera9ehvwjp/a at /tmp/datalad_temp_test_auto_data_transfera9ehvwjp/b of localhost 830s INFO datalad.distribution.update:update.py:307 Fetching updates for Dataset(/tmp/datalad_temp_test_auto_data_transfera9ehvwjp/a) 830s INFO datalad.gitrepo:log.py:436 Start enumerating objects 830s INFO datalad.gitrepo:log.py:436 Finished enumerating objects 830s INFO datalad.gitrepo:log.py:436 Start counting objects 830s INFO datalad.gitrepo:log.py:436 remote: Counting objects: 20% (1/5) 830s INFO datalad.gitrepo:log.py:436 remote: Counting objects: 40% (2/5) 830s INFO datalad.gitrepo:log.py:436 remote: Counting objects: 60% (3/5) 830s INFO datalad.gitrepo:log.py:436 remote: Counting objects: 80% (4/5) 830s INFO datalad.gitrepo:log.py:436 remote: Counting objects: 100% (5/5) 830s INFO datalad.gitrepo:log.py:436 remote: Counting objects: 100% (5/5), done. 830s INFO datalad.gitrepo:log.py:436 Finished counting objects 830s INFO datalad.gitrepo:log.py:436 Start compressing objects 830s INFO datalad.gitrepo:log.py:436 remote: Compressing objects: 33% (1/3) 830s INFO datalad.gitrepo:log.py:436 remote: Compressing objects: 66% (2/3) 830s INFO datalad.gitrepo:log.py:436 remote: Compressing objects: 100% (3/3) 830s INFO datalad.gitrepo:log.py:436 remote: Compressing objects: 100% (3/3), done. 830s INFO datalad.gitrepo:log.py:436 Finished compressing objects 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.distribution.create_sibling:create_sibling.py:349 Adjusting remote git configuration 830s INFO datalad.distribution.create_sibling:create_sibling.py:856 Running post-update hooks in all created siblings 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.distributed.push:log.py:436 Determine push target 830s INFO datalad.core.distributed.push:log.py:436 Push refspecs 830s INFO datalad.core.distributed.push:log.py:436 Transfer data 830s INFO datalad.annex:log.py:436 Start annex operation 830s INFO datalad.annex:log.py:436 Finished 830s INFO datalad.core.distributed.push:log.py:436 Update availability information 830s INFO datalad.gitrepo:log.py:436 Start enumerating objects 830s INFO datalad.gitrepo:log.py:436 Finished enumerating objects 830s INFO datalad.gitrepo:log.py:436 Start counting objects 830s INFO datalad.gitrepo:log.py:436 Counting objects: 4% (1/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 8% (2/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 12% (3/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 16% (4/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 20% (5/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 25% (6/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 29% (7/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 33% (8/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 37% (9/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 41% (10/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 45% (11/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 50% (12/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 54% (13/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 58% (14/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 62% (15/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 66% (16/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 70% (17/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 75% (18/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 79% (19/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 83% (20/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 87% (21/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 91% (22/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 95% (23/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 100% (24/24) 830s INFO datalad.gitrepo:log.py:436 Counting objects: 100% (24/24), done. 830s INFO datalad.gitrepo:log.py:436 Finished counting objects 830s INFO datalad.gitrepo:log.py:436 Start compressing objects 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 5% (1/18) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 11% (2/18) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 16% (3/18) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 22% (4/18) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 27% (5/18) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 33% (6/18) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 38% (7/18) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 44% (8/18) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 50% (9/18) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 55% (10/18) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 61% (11/18) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 66% (12/18) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 72% (13/18) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 77% (14/18) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 83% (15/18) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 88% (16/18) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 94% (17/18) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 100% (18/18) 830s INFO datalad.gitrepo:log.py:436 Compressing objects: 100% (18/18), done. 830s INFO datalad.gitrepo:log.py:436 Finished compressing objects 830s INFO datalad.gitrepo:log.py:436 Start writing objects 830s INFO datalad.gitrepo:log.py:436 Writing objects: 4% (1/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 9% (2/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 13% (3/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 18% (4/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 22% (5/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 27% (6/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 31% (7/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 36% (8/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 40% (9/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 45% (10/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 50% (11/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 54% (12/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 59% (13/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 63% (14/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 68% (15/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 72% (16/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 77% (17/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 81% (18/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 86% (19/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 90% (20/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 95% (21/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 100% (22/22) 830s INFO datalad.gitrepo:log.py:436 Writing objects: 100% (22/22), 1.98 KiB | 1015.00 KiB/s, done. 830s INFO datalad.gitrepo:log.py:436 Finished writing objects 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.distributed.push:log.py:436 Finished push of Dataset(/tmp/datalad_temp_test_auto_data_transfera9ehvwjp/a) 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.distributed.push:log.py:436 Determine push target 830s INFO datalad.core.distributed.push:log.py:436 Push refspecs 830s INFO datalad.core.distributed.push:log.py:436 Transfer data 830s INFO datalad.annex:log.py:436 Start annex operation 830s INFO datalad.annex:log.py:436 Finished 830s INFO datalad.core.distributed.push:log.py:436 Update availability information 830s INFO datalad.core.distributed.push:log.py:436 Finished push of Dataset(/tmp/datalad_temp_test_auto_data_transfera9ehvwjp/a) 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.distributed.push:log.py:436 Determine push target 830s INFO datalad.core.distributed.push:log.py:436 Push refspecs 830s INFO datalad.core.distributed.push:log.py:436 Transfer data 830s INFO datalad.annex:log.py:436 Start annex operation 830s INFO datalad.annex:log.py:436 Finished annex copy 830s ______________ test_auto_if_wanted_data_transfer_path_restriction ______________ 830s 830s path = PosixPath('/tmp/datalad_temp_test_auto_if_wanted_data_transfer_path_restriction5gfj74z1') 830s 830s @skip_if_adjusted_branch 830s @slow # 16sec on Yarik's laptop 830s @with_tempfile(mkdir=True) 830s def test_auto_if_wanted_data_transfer_path_restriction(path=None): 830s path = Path(path) 830s ds_a = Dataset(path / "a").create() 830s ds_a_sub0 = ds_a.create("sub0") 830s ds_a_sub1 = ds_a.create("sub1") 830s 830s for ds in [ds_a, ds_a_sub0, ds_a_sub1]: 830s (ds.pathobj / "sec.dat").write_text("sec") 830s (ds.pathobj / "reg.dat").write_text("reg") 830s ds_a.save(recursive=True) 830s 830s ds_a.create_sibling(str(path / "b"), name="b", 830s annex_wanted="not metadata=distribution-restrictions=*", 830s recursive=True) 830s for ds in [ds_a, ds_a_sub0, ds_a_sub1]: 830s ds.repo.set_metadata(add={"distribution-restrictions": "doesntmatter"}, 830s files=["sec.dat"]) 830s 830s # wanted-triggered --auto can be restricted to subdataset... 830s > res = ds_a.push(to="b", path="sub0", data="auto-if-wanted", 830s recursive=True) 830s 830s /usr/lib/python3/dist-packages/datalad/core/distributed/tests/test_push.py:805: 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s /usr/lib/python3/dist-packages/datalad/distribution/dataset.py:502: in apply_func 830s return f(*args, **kwargs) 830s ^^^^^^^^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/interface/base.py:772: in eval_func 830s return return_func(*args, **kwargs) 830s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/interface/base.py:762: in return_func 830s results = list(results) 830s ^^^^^^^^^^^^^ 830s ../build.4Ft/src/datalad_next/patches/interface_utils.py:218: in _execute_command_ 830s for r in _process_results( 830s /usr/lib/python3/dist-packages/datalad/interface/utils.py:319: in _process_results 830s for res in results: 830s ^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/core/distributed/push.py:255: in __call__ 830s yield from _push( 830s ../build.4Ft/src/datalad_next/patches/push_optimize.py:184: in _push 830s yield from mod_push._transfer_data( 830s ../build.4Ft/src/datalad_next/patches/push_to_export_remote.py:170: in _transfer_data 830s yield from mod_push._push_data( 830s /usr/lib/python3/dist-packages/datalad/core/distributed/push.py:894: in _push_data 830s res = ds_repo._call_annex_records( 830s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1133: in _call_annex_records 830s raise e 830s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1093: in _call_annex_records 830s out = self._call_annex( 830s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:996: in _call_annex 830s return runner.run( 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s 830s self = 830s cmd = ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', ...] 830s protocol = 830s stdin = b'reg.dat\x00sec.dat\x00', cwd = None, env = None, timeout = None 830s exception_on_error = True, kwargs = {'total_nbytes': 6} 830s applied_cwd = PosixPath('/tmp/datalad_temp_test_auto_if_wanted_data_transfer_path_restriction5gfj74z1/a/sub0') 830s applied_env = {'ADTTMP': '/tmp/autopkgtest.vjeRUT/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-ar.../8.4.2-1 python-pluggy/1.6.0-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-artifacts', ...} 830s threaded_runner = 830s results_or_iterator = {'code': 1, 'stderr': 'copy: 1 failed\n', 'stdout': '', 'stdout_json': [{'command': 'copy', 'error-messages': ['failed...ntent to remote', 'This could have failed because --fast is enabled.'], 'file': 'reg.dat', 'input': ['reg.dat'], ...}]} 830s results = {'code': 1, 'stderr': 'copy: 1 failed\n', 'stdout': '', 'stdout_json': [{'command': 'copy', 'error-messages': ['failed...ntent to remote', 'This could have failed because --fast is enabled.'], 'file': 'reg.dat', 'input': ['reg.dat'], ...}]} 830s return_code = 1 830s 830s def run(self, 830s cmd: list | str, 830s protocol: type[WitlessProtocol] | None = None, 830s stdin: bytes | IO | Queue | None = None, 830s cwd: PathLike | str | None = None, 830s env: dict | None = None, 830s timeout: float | None = None, 830s exception_on_error: bool = True, 830s **kwargs) -> dict | _ResultGenerator: 830s """Execute a command and communicate with it. 830s 830s Parameters 830s ---------- 830s cmd : list or str 830s Sequence of program arguments. Passing a single string causes 830s execution via the platform shell. 830s protocol : WitlessProtocol, optional 830s Protocol class handling interaction with the running process 830s (e.g. output capture). A number of pre-crafted classes are 830s provided (e.g `KillOutput`, `NoCapture`, `GitProgress`). 830s If the protocol has the GeneratorMixIn-mixin, the run-method 830s will return an iterator and can therefore be used in a for-clause. 830s stdin : file-like, bytes, Queue, or None 830s If stdin is a file-like, it will be directly used as stdin for the 830s subprocess. The caller is responsible for writing to it and closing it. 830s If stdin is a bytes, it will be fed to stdin of the subprocess. 830s If all data is written, stdin will be closed. 830s If stdin is a Queue, all elements (bytes) put into the Queue will 830s be passed to stdin until None is read from the queue. If None is read, 830s stdin of the subprocess is closed. 830s cwd : str or path-like, optional 830s If given, commands are executed with this path as PWD, 830s the PWD of the parent process is used otherwise. Overrides 830s any `cwd` given to the constructor. 830s env : dict, optional 830s Environment to be used for command execution. If given, it will 830s completely replace any environment provided to theconstructor. If 830s `cwd` is given, 'PWD' in the environment is set to its value. 830s This must be a complete environment definition, no values 830s from the current environment will be inherited. Overrides 830s any `env` given to the constructor. 830s timeout: float, optional 830s None or the seconds after which a timeout callback is 830s invoked, if no progress was made in communicating with 830s the sub-process, or if waiting for the subprocess exit 830s took more than the specified time. See the protocol and 830s `ThreadedRunner` descriptions for a more detailed discussion 830s on timeouts. 830s exception_on_error : bool, optional 830s This argument is first interpreted if the protocol is a subclass 830s of `GeneratorMixIn`. If it is `True` (default), a 830s `CommandErrorException` is raised by the generator if the 830s sub process exited with a return code not equal to zero. If the 830s parameter is `False`, no exception is raised. In both cases the 830s return code can be read from the attribute `return_code` of 830s the generator. Then this argument interpreted within this function 830s to not raise `CommandError` if value is False in case of non-0 exit. 830s kwargs : 830s Passed to the Protocol class constructor. 830s 830s Returns 830s ------- 830s dict | _ResultGenerator 830s 830s If the protocol is not a subclass of `GeneratorMixIn`, the 830s result of protocol._prepare_result will be returned. 830s 830s If the protocol is a subclass of `GeneratorMixIn`, a Generator, i.e. 830s a `_ResultGenerator`, will be returned. This allows to use this 830s method in constructs like: 830s 830s for protocol_output in runner.run(): 830s ... 830s 830s Where the iterator yields whatever protocol.pipe_data_received 830s sends into the generator. 830s If all output was yielded and the process has terminated, the 830s generator will raise StopIteration(return_code), where 830s return_code is the return code of the process. The return code 830s of the process will also be stored in the "return_code"-attribute 830s of the runner. So you could write: 830s 830s gen = runner.run() 830s for file_descriptor, data in gen: 830s ... 830s 830s # get the return code of the process 830s result = gen.return_code 830s 830s Raises 830s ------ 830s CommandError 830s On execution failure (non-zero exit code) this exception is 830s raised which provides the command (cmd), stdout, stderr, 830s exit code (status), and a message identifying the failed 830s command, as properties. 830s FileNotFoundError 830s When a given executable does not exist. 830s """ 830s if protocol is None: 830s # by default let all subprocess stream pass through 830s protocol = NoCapture 830s 830s applied_cwd = cwd or self.cwd 830s applied_env = self._get_adjusted_env( 830s env=env or self.env, 830s cwd=applied_cwd, 830s ) 830s 830s lgr.debug( 830s 'Run %r (protocol_class=%s) (cwd=%s)', 830s cmd, 830s protocol.__name__, 830s applied_cwd 830s ) 830s 830s threaded_runner = ThreadedRunner( 830s cmd=cmd, 830s protocol_class=protocol, 830s stdin=stdin, 830s protocol_kwargs=kwargs, 830s timeout=timeout, 830s exception_on_error=exception_on_error, 830s cwd=applied_cwd, 830s env=applied_env 830s ) 830s 830s results_or_iterator = threaded_runner.run() 830s if issubclass(protocol, GeneratorMixIn): 830s return results_or_iterator 830s 830s results = cast(dict, results_or_iterator) 830s # log before any exception is raised 830s lgr.debug("Finished %r with status %s", cmd, results['code']) 830s 830s # make it such that we always blow if a protocol did not report 830s # a return code at all or it was non-0 and we were not asked ignore 830s # errors 830s return_code = results.get('code', None) 830s if return_code is None or (return_code and exception_on_error): 830s # the runner has a better idea, doc string warns Protocol 830s # implementations not to return these 830s results.pop('cmd', None) 830s results.pop('cwd', None) 830s > raise CommandError( 830s # whatever the results were, we carry them forward 830s cmd=cmd, 830s cwd=applied_cwd, 830s **results, 830s ) 830s E datalad.runner.exception.CommandError: CommandError: 'git -c diff.ignoreSubmodules=none -c core.quotepath=false annex copy --batch -z --to b --auto --fast --json --json-error-messages --json-progress -c annex.dotfiles=true' failed with exitcode 1 under /tmp/datalad_temp_test_auto_if_wanted_data_transfer_path_restriction5gfj74z1/a/sub0 [info keys: stdout_json] 830s E > to b... 830s E failed to send content to remote 830s E This could have failed because --fast is enabled. [err: 'copy: 1 failed'] 830s 830s /usr/lib/python3/dist-packages/datalad/runner/runner.py:243: CommandError 830s ------------------------------ Captured log call ------------------------------- 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: starting 830s INFO datalad.core.local.save:log.py:436 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: processed result for /tmp/datalad_temp_test_auto_if_wanted_data_transfer_path_restriction5gfj74z1/a 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: done 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: starting 830s INFO datalad.core.local.save:log.py:436 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: processed result for /tmp/datalad_temp_test_auto_if_wanted_data_transfer_path_restriction5gfj74z1/a 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: done 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: starting 830s INFO datalad.core.local.save:log.py:436 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: processed result for /tmp/datalad_temp_test_auto_if_wanted_data_transfer_path_restriction5gfj74z1/a/sub1 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: processed result for /tmp/datalad_temp_test_auto_if_wanted_data_transfer_path_restriction5gfj74z1/a/sub0 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: processed result for /tmp/datalad_temp_test_auto_if_wanted_data_transfer_path_restriction5gfj74z1/a 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: done 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.distribution.create_sibling:create_sibling.py:190 Considering to create a target dataset /tmp/datalad_temp_test_auto_if_wanted_data_transfer_path_restriction5gfj74z1/a at /tmp/datalad_temp_test_auto_if_wanted_data_transfer_path_restriction5gfj74z1/b of localhost 830s INFO datalad.distribution.update:update.py:307 Fetching updates for Dataset(/tmp/datalad_temp_test_auto_if_wanted_data_transfer_path_restriction5gfj74z1/a) 830s INFO datalad.gitrepo:log.py:436 Start enumerating objects 830s INFO datalad.gitrepo:log.py:436 Finished enumerating objects 830s INFO datalad.gitrepo:log.py:436 Start counting objects 830s INFO datalad.gitrepo:log.py:436 remote: Counting objects: 20% (1/5) 830s INFO datalad.gitrepo:log.py:436 remote: Counting objects: 40% (2/5) 830s INFO datalad.gitrepo:log.py:436 remote: Counting objects: 60% (3/5) 830s INFO datalad.gitrepo:log.py:436 remote: Counting objects: 80% (4/5) 830s INFO datalad.gitrepo:log.py:436 remote: Counting objects: 100% (5/5) 830s INFO datalad.gitrepo:log.py:436 remote: Counting objects: 100% (5/5), done. 830s INFO datalad.gitrepo:log.py:436 Finished counting objects 830s INFO datalad.gitrepo:log.py:436 Start compressing objects 830s INFO datalad.gitrepo:log.py:436 remote: Compressing objects: 33% (1/3) 830s INFO datalad.gitrepo:log.py:436 remote: Compressing objects: 66% (2/3) 830s INFO datalad.gitrepo:log.py:436 remote: Compressing objects: 100% (3/3) 830s INFO datalad.gitrepo:log.py:436 remote: Compressing objects: 100% (3/3), done. 830s INFO datalad.gitrepo:log.py:436 Finished compressing objects 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.distribution.create_sibling:create_sibling.py:349 Adjusting remote git configuration 830s INFO datalad.distribution.create_sibling:create_sibling.py:190 Considering to create a target dataset /tmp/datalad_temp_test_auto_if_wanted_data_transfer_path_restriction5gfj74z1/a/sub0 at /tmp/datalad_temp_test_auto_if_wanted_data_transfer_path_restriction5gfj74z1/b/sub0 of localhost 830s INFO datalad.distribution.update:update.py:307 Fetching updates for Dataset(/tmp/datalad_temp_test_auto_if_wanted_data_transfer_path_restriction5gfj74z1/a/sub0) 830s INFO datalad.gitrepo:log.py:436 Start enumerating objects 830s INFO datalad.gitrepo:log.py:436 Finished enumerating objects 830s INFO datalad.gitrepo:log.py:436 Start counting objects 830s INFO datalad.gitrepo:log.py:436 remote: Counting objects: 20% (1/5) 830s INFO datalad.gitrepo:log.py:436 remote: Counting objects: 40% (2/5) 830s INFO datalad.gitrepo:log.py:436 remote: Counting objects: 60% (3/5) 830s INFO datalad.gitrepo:log.py:436 remote: Counting objects: 80% (4/5) 830s INFO datalad.gitrepo:log.py:436 remote: Counting objects: 100% (5/5) 830s INFO datalad.gitrepo:log.py:436 remote: Counting objects: 100% (5/5), done. 830s INFO datalad.gitrepo:log.py:436 Finished counting objects 830s INFO datalad.gitrepo:log.py:436 Start compressing objects 830s INFO datalad.gitrepo:log.py:436 remote: Compressing objects: 33% (1/3) 830s INFO datalad.gitrepo:log.py:436 remote: Compressing objects: 66% (2/3) 830s INFO datalad.gitrepo:log.py:436 remote: Compressing objects: 100% (3/3) 830s INFO datalad.gitrepo:log.py:436 remote: Compressing objects: 100% (3/3), done. 830s INFO datalad.gitrepo:log.py:436 Finished compressing objects 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.distribution.create_sibling:create_sibling.py:349 Adjusting remote git configuration 830s INFO datalad.distribution.create_sibling:create_sibling.py:190 Considering to create a target dataset /tmp/datalad_temp_test_auto_if_wanted_data_transfer_path_restriction5gfj74z1/a/sub1 at /tmp/datalad_temp_test_auto_if_wanted_data_transfer_path_restriction5gfj74z1/b/sub1 of localhost 830s INFO datalad.distribution.update:update.py:307 Fetching updates for Dataset(/tmp/datalad_temp_test_auto_if_wanted_data_transfer_path_restriction5gfj74z1/a/sub1) 830s INFO datalad.gitrepo:log.py:436 Start enumerating objects 830s INFO datalad.gitrepo:log.py:436 Finished enumerating objects 830s INFO datalad.gitrepo:log.py:436 Start counting objects 830s INFO datalad.gitrepo:log.py:436 remote: Counting objects: 20% (1/5) 830s INFO datalad.gitrepo:log.py:436 remote: Counting objects: 40% (2/5) 830s INFO datalad.gitrepo:log.py:436 remote: Counting objects: 60% (3/5) 830s INFO datalad.gitrepo:log.py:436 remote: Counting objects: 80% (4/5) 830s INFO datalad.gitrepo:log.py:436 remote: Counting objects: 100% (5/5) 830s INFO datalad.gitrepo:log.py:436 remote: Counting objects: 100% (5/5), done. 830s INFO datalad.gitrepo:log.py:436 Finished counting objects 830s INFO datalad.gitrepo:log.py:436 Start compressing objects 830s INFO datalad.gitrepo:log.py:436 remote: Compressing objects: 33% (1/3) 830s INFO datalad.gitrepo:log.py:436 remote: Compressing objects: 66% (2/3) 830s INFO datalad.gitrepo:log.py:436 remote: Compressing objects: 100% (3/3) 830s INFO datalad.gitrepo:log.py:436 remote: Compressing objects: 100% (3/3), done. 830s INFO datalad.gitrepo:log.py:436 Finished compressing objects 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.distribution.create_sibling:create_sibling.py:349 Adjusting remote git configuration 830s INFO datalad.distribution.create_sibling:create_sibling.py:856 Running post-update hooks in all created siblings 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.distributed.push:log.py:436 Determine push target 830s INFO datalad.core.distributed.push:log.py:436 Push refspecs 830s INFO datalad.core.distributed.push:log.py:436 Transfer data 830s INFO datalad.annex:log.py:436 Start annex operation 830s INFO datalad.annex:log.py:436 reg.dat 830s INFO datalad.annex:log.py:436 Finished 830s _______________ test_push_git_annex_branch_many_paths_same_data ________________ 830s 830s path = PosixPath('/tmp/datalad_temp_tree_test_push_git_annex_branch_many_paths_same_data_qm4gkdn') 830s 830s @known_failure_githubci_osx 830s @with_tree(tree={"ds": {"f0": "0", "f1": "0", "f2": "0", 830s "f3": "1", 830s "f4": "2", "f5": "2"}}) 830s def test_push_git_annex_branch_many_paths_same_data(path=None): 830s path = Path(path) 830s ds = Dataset(path / "ds").create(force=True) 830s ds.save() 830s mk_push_target(ds, "target", str(path / "target"), 830s annex=True, bare=False) 830s nbytes = sum(ds.repo.get_content_annexinfo(paths=[f])[f]["bytesize"] 830s for f in [ds.repo.pathobj / "f0", 830s ds.repo.pathobj / "f3", 830s ds.repo.pathobj / "f4"]) 830s with swallow_logs(new_level=logging.DEBUG) as cml: 830s > res = ds.push(to="target") 830s ^^^^^^^^^^^^^^^^^^^^ 830s 830s /usr/lib/python3/dist-packages/datalad/core/distributed/tests/test_push.py:881: 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s /usr/lib/python3/dist-packages/datalad/distribution/dataset.py:502: in apply_func 830s return f(*args, **kwargs) 830s ^^^^^^^^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/interface/base.py:772: in eval_func 830s return return_func(*args, **kwargs) 830s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/interface/base.py:762: in return_func 830s results = list(results) 830s ^^^^^^^^^^^^^ 830s ../build.4Ft/src/datalad_next/patches/interface_utils.py:218: in _execute_command_ 830s for r in _process_results( 830s /usr/lib/python3/dist-packages/datalad/interface/utils.py:319: in _process_results 830s for res in results: 830s ^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/core/distributed/push.py:255: in __call__ 830s yield from _push( 830s ../build.4Ft/src/datalad_next/patches/push_optimize.py:184: in _push 830s yield from mod_push._transfer_data( 830s ../build.4Ft/src/datalad_next/patches/push_to_export_remote.py:170: in _transfer_data 830s yield from mod_push._push_data( 830s /usr/lib/python3/dist-packages/datalad/core/distributed/push.py:894: in _push_data 830s res = ds_repo._call_annex_records( 830s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1133: in _call_annex_records 830s raise e 830s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1093: in _call_annex_records 830s out = self._call_annex( 830s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:996: in _call_annex 830s return runner.run( 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s 830s self = 830s cmd = ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', ...] 830s protocol = 830s stdin = b'f0\x00f3\x00f4\x00', cwd = None, env = None, timeout = None 830s exception_on_error = True, kwargs = {'total_nbytes': 3} 830s applied_cwd = PosixPath('/tmp/datalad_temp_tree_test_push_git_annex_branch_many_paths_same_data_qm4gkdn/ds') 830s applied_env = {'ADTTMP': '/tmp/autopkgtest.vjeRUT/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-ar.../8.4.2-1 python-pluggy/1.6.0-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-artifacts', ...} 830s threaded_runner = 830s results_or_iterator = {'code': 1, 'stderr': 'copy: 3 failed\n', 'stdout': '', 'stdout_json': [{'command': 'copy', 'error-messages': ['failed...to send content to remote', 'This could have failed because --fast is enabled.'], 'file': 'f4', 'input': ['f4'], ...}]} 830s results = {'code': 1, 'stderr': 'copy: 3 failed\n', 'stdout': '', 'stdout_json': [{'command': 'copy', 'error-messages': ['failed...to send content to remote', 'This could have failed because --fast is enabled.'], 'file': 'f4', 'input': ['f4'], ...}]} 830s return_code = 1 830s 830s def run(self, 830s cmd: list | str, 830s protocol: type[WitlessProtocol] | None = None, 830s stdin: bytes | IO | Queue | None = None, 830s cwd: PathLike | str | None = None, 830s env: dict | None = None, 830s timeout: float | None = None, 830s exception_on_error: bool = True, 830s **kwargs) -> dict | _ResultGenerator: 830s """Execute a command and communicate with it. 830s 830s Parameters 830s ---------- 830s cmd : list or str 830s Sequence of program arguments. Passing a single string causes 830s execution via the platform shell. 830s protocol : WitlessProtocol, optional 830s Protocol class handling interaction with the running process 830s (e.g. output capture). A number of pre-crafted classes are 830s provided (e.g `KillOutput`, `NoCapture`, `GitProgress`). 830s If the protocol has the GeneratorMixIn-mixin, the run-method 830s will return an iterator and can therefore be used in a for-clause. 830s stdin : file-like, bytes, Queue, or None 830s If stdin is a file-like, it will be directly used as stdin for the 830s subprocess. The caller is responsible for writing to it and closing it. 830s If stdin is a bytes, it will be fed to stdin of the subprocess. 830s If all data is written, stdin will be closed. 830s If stdin is a Queue, all elements (bytes) put into the Queue will 830s be passed to stdin until None is read from the queue. If None is read, 830s stdin of the subprocess is closed. 830s cwd : str or path-like, optional 830s If given, commands are executed with this path as PWD, 830s the PWD of the parent process is used otherwise. Overrides 830s any `cwd` given to the constructor. 830s env : dict, optional 830s Environment to be used for command execution. If given, it will 830s completely replace any environment provided to theconstructor. If 830s `cwd` is given, 'PWD' in the environment is set to its value. 830s This must be a complete environment definition, no values 830s from the current environment will be inherited. Overrides 830s any `env` given to the constructor. 830s timeout: float, optional 830s None or the seconds after which a timeout callback is 830s invoked, if no progress was made in communicating with 830s the sub-process, or if waiting for the subprocess exit 830s took more than the specified time. See the protocol and 830s `ThreadedRunner` descriptions for a more detailed discussion 830s on timeouts. 830s exception_on_error : bool, optional 830s This argument is first interpreted if the protocol is a subclass 830s of `GeneratorMixIn`. If it is `True` (default), a 830s `CommandErrorException` is raised by the generator if the 830s sub process exited with a return code not equal to zero. If the 830s parameter is `False`, no exception is raised. In both cases the 830s return code can be read from the attribute `return_code` of 830s the generator. Then this argument interpreted within this function 830s to not raise `CommandError` if value is False in case of non-0 exit. 830s kwargs : 830s Passed to the Protocol class constructor. 830s 830s Returns 830s ------- 830s dict | _ResultGenerator 830s 830s If the protocol is not a subclass of `GeneratorMixIn`, the 830s result of protocol._prepare_result will be returned. 830s 830s If the protocol is a subclass of `GeneratorMixIn`, a Generator, i.e. 830s a `_ResultGenerator`, will be returned. This allows to use this 830s method in constructs like: 830s 830s for protocol_output in runner.run(): 830s ... 830s 830s Where the iterator yields whatever protocol.pipe_data_received 830s sends into the generator. 830s If all output was yielded and the process has terminated, the 830s generator will raise StopIteration(return_code), where 830s return_code is the return code of the process. The return code 830s of the process will also be stored in the "return_code"-attribute 830s of the runner. So you could write: 830s 830s gen = runner.run() 830s for file_descriptor, data in gen: 830s ... 830s 830s # get the return code of the process 830s result = gen.return_code 830s 830s Raises 830s ------ 830s CommandError 830s On execution failure (non-zero exit code) this exception is 830s raised which provides the command (cmd), stdout, stderr, 830s exit code (status), and a message identifying the failed 830s command, as properties. 830s FileNotFoundError 830s When a given executable does not exist. 830s """ 830s if protocol is None: 830s # by default let all subprocess stream pass through 830s protocol = NoCapture 830s 830s applied_cwd = cwd or self.cwd 830s applied_env = self._get_adjusted_env( 830s env=env or self.env, 830s cwd=applied_cwd, 830s ) 830s 830s lgr.debug( 830s 'Run %r (protocol_class=%s) (cwd=%s)', 830s cmd, 830s protocol.__name__, 830s applied_cwd 830s ) 830s 830s threaded_runner = ThreadedRunner( 830s cmd=cmd, 830s protocol_class=protocol, 830s stdin=stdin, 830s protocol_kwargs=kwargs, 830s timeout=timeout, 830s exception_on_error=exception_on_error, 830s cwd=applied_cwd, 830s env=applied_env 830s ) 830s 830s results_or_iterator = threaded_runner.run() 830s if issubclass(protocol, GeneratorMixIn): 830s return results_or_iterator 830s 830s results = cast(dict, results_or_iterator) 830s # log before any exception is raised 830s lgr.debug("Finished %r with status %s", cmd, results['code']) 830s 830s # make it such that we always blow if a protocol did not report 830s # a return code at all or it was non-0 and we were not asked ignore 830s # errors 830s return_code = results.get('code', None) 830s if return_code is None or (return_code and exception_on_error): 830s # the runner has a better idea, doc string warns Protocol 830s # implementations not to return these 830s results.pop('cmd', None) 830s results.pop('cwd', None) 830s > raise CommandError( 830s # whatever the results were, we carry them forward 830s cmd=cmd, 830s cwd=applied_cwd, 830s **results, 830s ) 830s E datalad.runner.exception.CommandError: CommandError: 'git -c diff.ignoreSubmodules=none -c core.quotepath=false annex copy --batch -z --to target --fast --json --json-error-messages --json-progress -c annex.dotfiles=true' failed with exitcode 1 under /tmp/datalad_temp_tree_test_push_git_annex_branch_many_paths_same_data_qm4gkdn/ds [info keys: stdout_json] 830s E > to target... 830s E failed to send content to remote 830s E This could have failed because --fast is enabled. [3 times] [err: 'copy: 3 failed'] 830s 830s /usr/lib/python3/dist-packages/datalad/runner/runner.py:243: CommandError 830s ------------------------------ Captured log call ------------------------------- 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: starting 830s INFO datalad.core.local.save:log.py:436 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: processed result for /tmp/datalad_temp_tree_test_push_git_annex_branch_many_paths_same_data_qm4gkdn/ds 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: done 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s DEBUG datalad.utils:utils.py:2724 Determined class of decorated function: 830s DEBUG datalad.interface.utils:interface_utils.py:138 Command parameter validation skipped. declares no validator 830s DEBUG datalad.dataset:dataset.py:590 Resolved dataset to push: /tmp/datalad_temp_tree_test_push_git_annex_branch_many_paths_same_data_qm4gkdn/ds 830s DEBUG datalad.dataset:dataset.py:590 Resolved dataset to report difference: /tmp/datalad_temp_tree_test_push_git_annex_branch_many_paths_same_data_qm4gkdn/ds 830s DEBUG datalad.core.local.diff:diff.py:330 Diff Dataset(/tmp/datalad_temp_tree_test_push_git_annex_branch_many_paths_same_data_qm4gkdn/ds) from 'None' to 'HEAD' 830s DEBUG datalad.gitrepo:gitrepo.py:2843 AnnexRepo(/tmp/datalad_temp_tree_test_push_git_annex_branch_many_paths_same_data_qm4gkdn/ds).get_content_info(...) 830s DEBUG datalad.gitrepo:gitrepo.py:2899 Query repo: ['ls-tree', 'HEAD', '-z', '-r', '--full-tree', '-l'] 830s DEBUG datalad.runner.runner:runner.py:208 Run ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'ls-tree', 'HEAD', '-z', '-r', '--full-tree', '-l'] (protocol_class=GeneratorStdOutErrCapture) (cwd=/tmp/datalad_temp_tree_test_push_git_annex_branch_many_paths_same_data_qm4gkdn/ds) 830s DEBUG datalad.gitrepo:gitrepo.py:2910 Done query repo: ['ls-tree', 'HEAD', '-z', '-r', '--full-tree', '-l'] 830s DEBUG datalad.gitrepo:gitrepo.py:2918 Done AnnexRepo(/tmp/datalad_temp_tree_test_push_git_annex_branch_many_paths_same_data_qm4gkdn/ds).get_content_info(...) 830s DEBUG datalad.core.distributed.push:push.py:253 Pushing Dataset at /tmp/datalad_temp_tree_test_push_git_annex_branch_many_paths_same_data_qm4gkdn/ds 830s INFO datalad.core.distributed.push:log.py:436 Determine push target 830s INFO datalad.core.distributed.push:log.py:436 Push refspecs 830s DEBUG datalad.runner.runner:runner.py:208 Run ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'push', '--progress', '--porcelain', '--dry-run', 'target'] (protocol_class=StdOutCaptureWithGitProgress) (cwd=/tmp/datalad_temp_tree_test_push_git_annex_branch_many_paths_same_data_qm4gkdn/ds) 830s DEBUG datalad.gitrepo:gitrepo.py:470 Non-progress stderr: b'fatal: The current branch dl-test-branch has no upstream branch.\n' 830s DEBUG datalad.gitrepo:gitrepo.py:470 Non-progress stderr: b'To push the current branch and set the remote as upstream, use\n' 830s DEBUG datalad.gitrepo:gitrepo.py:470 Non-progress stderr: b'\n' 830s DEBUG datalad.gitrepo:gitrepo.py:470 Non-progress stderr: b' git push --set-upstream target dl-test-branch\n' 830s DEBUG datalad.gitrepo:gitrepo.py:470 Non-progress stderr: b'\n' 830s DEBUG datalad.gitrepo:gitrepo.py:470 Non-progress stderr: b'To have this happen automatically for branches without a tracking\n' 830s DEBUG datalad.gitrepo:gitrepo.py:470 Non-progress stderr: b"upstream, see 'push.autoSetupRemote' in 'git help config'.\n" 830s DEBUG datalad.gitrepo:gitrepo.py:470 Non-progress stderr: b'\n' 830s DEBUG datalad.runner.runner:runner.py:232 Finished ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'push', '--progress', '--porcelain', '--dry-run', 'target'] with status 128 830s DEBUG datalad.core.distributed.push:push_optimize.py:254 Dry-run push to 'target' remote failed, assume no configuration: CommandError: 'git -c diff.ignoreSubmodules=none -c core.quotepath=false push --progress --porcelain --dry-run target' failed with exitcode 128 under /tmp/datalad_temp_tree_test_push_git_annex_branch_many_paths_same_data_qm4gkdn/ds [err: 'fatal: The current branch dl-test-branch has no upstream branch. 830s To push the current branch and set the remote as upstream, use 830s 830s git push --set-upstream target dl-test-branch 830s 830s To have this happen automatically for branches without a tracking 830s upstream, see 'push.autoSetupRemote' in 'git help config'.'] 830s DEBUG datalad.runner.runner:runner.py:208 Run ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'symbolic-ref', 'HEAD'] (protocol_class=GeneratorStdOutErrCapture) (cwd=/tmp/datalad_temp_tree_test_push_git_annex_branch_many_paths_same_data_qm4gkdn/ds) 830s DEBUG datalad.runner.runner:runner.py:208 Run ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'symbolic-ref', 'HEAD'] (protocol_class=GeneratorStdOutErrCapture) (cwd=/tmp/datalad_temp_tree_test_push_git_annex_branch_many_paths_same_data_qm4gkdn/ds) 830s DEBUG datalad.annex:annexrepo.py:3680 No sync necessary, no corresponding branch detected 830s INFO datalad.core.distributed.push:log.py:436 Transfer data 830s DEBUG datalad.runner.runner:runner.py:208 Run ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'cat-file', 'blob', 'git-annex:remote.log'] (protocol_class=GeneratorStdOutErrCapture) (cwd=/tmp/datalad_temp_tree_test_push_git_annex_branch_many_paths_same_data_qm4gkdn/ds) 830s Level 11 datalad.dataset.gitrepo:gitrepo.py:84 CommandError: 'git -c diff.ignoreSubmodules=none -c core.quotepath=false cat-file blob git-annex:remote.log' failed with exitcode 128 [err: 'fatal: path 'remote.log' does not exist in 'git-annex''] 830s DEBUG datalad.runner.runner:runner.py:208 Run ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'cat-file', 'blob', 'git-annex:trust.log'] (protocol_class=GeneratorStdOutErrCapture) (cwd=/tmp/datalad_temp_tree_test_push_git_annex_branch_many_paths_same_data_qm4gkdn/ds) 830s Level 11 datalad.dataset.gitrepo:gitrepo.py:84 CommandError: 'git -c diff.ignoreSubmodules=none -c core.quotepath=false cat-file blob git-annex:trust.log' failed with exitcode 128 [err: 'fatal: path 'trust.log' does not exist in 'git-annex''] 830s DEBUG datalad.runner.runner:runner.py:208 Run ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', 'findref', '--anything', 'HEAD', '--json', '--json-error-messages', '-c', 'annex.dotfiles=true'] (protocol_class=AnnexJsonProtocol) (cwd=/tmp/datalad_temp_tree_test_push_git_annex_branch_many_paths_same_data_qm4gkdn/ds) 830s DEBUG datalad.runner.runner:runner.py:232 Finished ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', 'findref', '--anything', 'HEAD', '--json', '--json-error-messages', '-c', 'annex.dotfiles=true'] with status 0 830s DEBUG datalad.runner.runner:runner.py:208 Run ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', 'wanted', 'target', '-c', 'annex.dotfiles=true'] (protocol_class=GeneratorStdOutErrCapture) (cwd=/tmp/datalad_temp_tree_test_push_git_annex_branch_many_paths_same_data_qm4gkdn/ds) 830s DEBUG datalad.core.distributed.push:push.py:863 Pushing data from Dataset(/tmp/datalad_temp_tree_test_push_git_annex_branch_many_paths_same_data_qm4gkdn/ds) to 'target' 830s DEBUG datalad.core.distributed.push:push.py:890 Counted 3 bytes of annex data to transfer 830s DEBUG datalad.runner.runner:runner.py:208 Run ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', 'copy', '--batch', '-z', '--to', 'target', '--fast', '--json', '--json-error-messages', '--json-progress', '-c', 'annex.dotfiles=true'] (protocol_class=AnnexJsonProtocol) (cwd=/tmp/datalad_temp_tree_test_push_git_annex_branch_many_paths_same_data_qm4gkdn/ds) 830s INFO datalad.annex:log.py:436 Start annex operation 830s INFO datalad.annex:log.py:436 f0 830s INFO datalad.annex:log.py:436 f3 830s INFO datalad.annex:log.py:436 Finished annex copy 830s DEBUG datalad.runner.runner:runner.py:232 Finished ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', 'copy', '--batch', '-z', '--to', 'target', '--fast', '--json', '--json-error-messages', '--json-progress', '-c', 'annex.dotfiles=true'] with status 1 830s ______________________________ test_push_matching ______________________________ 830s 830s path = PosixPath('/tmp/datalad_temp_tree_test_push_matchingw5d9lk13') 830s 830s @known_failure_githubci_osx 830s @with_tree(tree={"ds": {"f0": "0"}}) 830s def test_push_matching(path=None): 830s path = Path(path) 830s ds = Dataset(path / "ds").create(force=True) 830s ds.config.set('push.default', 'matching', scope='local') 830s ds.save() 830s remote_ds = mk_push_target(ds, 'local', str(path / 'dssibling'), 830s annex=True, bare=False) 830s # that fact that the next one even runs makes sure that we are in a better 830s # place than https://github.com/datalad/datalad/issues/4888 830s > ds.push(to='local') 830s 830s /usr/lib/python3/dist-packages/datalad/core/distributed/tests/test_push.py:899: 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s /usr/lib/python3/dist-packages/datalad/distribution/dataset.py:502: in apply_func 830s return f(*args, **kwargs) 830s ^^^^^^^^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/interface/base.py:772: in eval_func 830s return return_func(*args, **kwargs) 830s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/interface/base.py:762: in return_func 830s results = list(results) 830s ^^^^^^^^^^^^^ 830s ../build.4Ft/src/datalad_next/patches/interface_utils.py:218: in _execute_command_ 830s for r in _process_results( 830s /usr/lib/python3/dist-packages/datalad/interface/utils.py:319: in _process_results 830s for res in results: 830s ^^^^^^^ 830s /usr/lib/python3/dist-packages/datalad/core/distributed/push.py:255: in __call__ 830s yield from _push( 830s ../build.4Ft/src/datalad_next/patches/push_optimize.py:184: in _push 830s yield from mod_push._transfer_data( 830s ../build.4Ft/src/datalad_next/patches/push_to_export_remote.py:170: in _transfer_data 830s yield from mod_push._push_data( 830s /usr/lib/python3/dist-packages/datalad/core/distributed/push.py:894: in _push_data 830s res = ds_repo._call_annex_records( 830s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1133: in _call_annex_records 830s raise e 830s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1093: in _call_annex_records 830s out = self._call_annex( 830s /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:996: in _call_annex 830s return runner.run( 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s 830s self = 830s cmd = ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', ...] 830s protocol = 830s stdin = b'f0\x00', cwd = None, env = None, timeout = None 830s exception_on_error = True, kwargs = {'total_nbytes': 1} 830s applied_cwd = PosixPath('/tmp/datalad_temp_tree_test_push_matchingw5d9lk13/ds') 830s applied_env = {'ADTTMP': '/tmp/autopkgtest.vjeRUT/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-ar.../8.4.2-1 python-pluggy/1.6.0-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-artifacts', ...} 830s threaded_runner = 830s results_or_iterator = {'code': 1, 'stderr': 'copy: 1 failed\n', 'stdout': '', 'stdout_json': [{'command': 'copy', 'error-messages': ['failed to send content to remote', 'This could have failed because --fast is enabled.'], 'file': 'f0', 'input': ['f0'], ...}]} 830s results = {'code': 1, 'stderr': 'copy: 1 failed\n', 'stdout': '', 'stdout_json': [{'command': 'copy', 'error-messages': ['failed to send content to remote', 'This could have failed because --fast is enabled.'], 'file': 'f0', 'input': ['f0'], ...}]} 830s return_code = 1 830s 830s def run(self, 830s cmd: list | str, 830s protocol: type[WitlessProtocol] | None = None, 830s stdin: bytes | IO | Queue | None = None, 830s cwd: PathLike | str | None = None, 830s env: dict | None = None, 830s timeout: float | None = None, 830s exception_on_error: bool = True, 830s **kwargs) -> dict | _ResultGenerator: 830s """Execute a command and communicate with it. 830s 830s Parameters 830s ---------- 830s cmd : list or str 830s Sequence of program arguments. Passing a single string causes 830s execution via the platform shell. 830s protocol : WitlessProtocol, optional 830s Protocol class handling interaction with the running process 830s (e.g. output capture). A number of pre-crafted classes are 830s provided (e.g `KillOutput`, `NoCapture`, `GitProgress`). 830s If the protocol has the GeneratorMixIn-mixin, the run-method 830s will return an iterator and can therefore be used in a for-clause. 830s stdin : file-like, bytes, Queue, or None 830s If stdin is a file-like, it will be directly used as stdin for the 830s subprocess. The caller is responsible for writing to it and closing it. 830s If stdin is a bytes, it will be fed to stdin of the subprocess. 830s If all data is written, stdin will be closed. 830s If stdin is a Queue, all elements (bytes) put into the Queue will 830s be passed to stdin until None is read from the queue. If None is read, 830s stdin of the subprocess is closed. 830s cwd : str or path-like, optional 830s If given, commands are executed with this path as PWD, 830s the PWD of the parent process is used otherwise. Overrides 830s any `cwd` given to the constructor. 830s env : dict, optional 830s Environment to be used for command execution. If given, it will 830s completely replace any environment provided to theconstructor. If 830s `cwd` is given, 'PWD' in the environment is set to its value. 830s This must be a complete environment definition, no values 830s from the current environment will be inherited. Overrides 830s any `env` given to the constructor. 830s timeout: float, optional 830s None or the seconds after which a timeout callback is 830s invoked, if no progress was made in communicating with 830s the sub-process, or if waiting for the subprocess exit 830s took more than the specified time. See the protocol and 830s `ThreadedRunner` descriptions for a more detailed discussion 830s on timeouts. 830s exception_on_error : bool, optional 830s This argument is first interpreted if the protocol is a subclass 830s of `GeneratorMixIn`. If it is `True` (default), a 830s `CommandErrorException` is raised by the generator if the 830s sub process exited with a return code not equal to zero. If the 830s parameter is `False`, no exception is raised. In both cases the 830s return code can be read from the attribute `return_code` of 830s the generator. Then this argument interpreted within this function 830s to not raise `CommandError` if value is False in case of non-0 exit. 830s kwargs : 830s Passed to the Protocol class constructor. 830s 830s Returns 830s ------- 830s dict | _ResultGenerator 830s 830s If the protocol is not a subclass of `GeneratorMixIn`, the 830s result of protocol._prepare_result will be returned. 830s 830s If the protocol is a subclass of `GeneratorMixIn`, a Generator, i.e. 830s a `_ResultGenerator`, will be returned. This allows to use this 830s method in constructs like: 830s 830s for protocol_output in runner.run(): 830s ... 830s 830s Where the iterator yields whatever protocol.pipe_data_received 830s sends into the generator. 830s If all output was yielded and the process has terminated, the 830s generator will raise StopIteration(return_code), where 830s return_code is the return code of the process. The return code 830s of the process will also be stored in the "return_code"-attribute 830s of the runner. So you could write: 830s 830s gen = runner.run() 830s for file_descriptor, data in gen: 830s ... 830s 830s # get the return code of the process 830s result = gen.return_code 830s 830s Raises 830s ------ 830s CommandError 830s On execution failure (non-zero exit code) this exception is 830s raised which provides the command (cmd), stdout, stderr, 830s exit code (status), and a message identifying the failed 830s command, as properties. 830s FileNotFoundError 830s When a given executable does not exist. 830s """ 830s if protocol is None: 830s # by default let all subprocess stream pass through 830s protocol = NoCapture 830s 830s applied_cwd = cwd or self.cwd 830s applied_env = self._get_adjusted_env( 830s env=env or self.env, 830s cwd=applied_cwd, 830s ) 830s 830s lgr.debug( 830s 'Run %r (protocol_class=%s) (cwd=%s)', 830s cmd, 830s protocol.__name__, 830s applied_cwd 830s ) 830s 830s threaded_runner = ThreadedRunner( 830s cmd=cmd, 830s protocol_class=protocol, 830s stdin=stdin, 830s protocol_kwargs=kwargs, 830s timeout=timeout, 830s exception_on_error=exception_on_error, 830s cwd=applied_cwd, 830s env=applied_env 830s ) 830s 830s results_or_iterator = threaded_runner.run() 830s if issubclass(protocol, GeneratorMixIn): 830s return results_or_iterator 830s 830s results = cast(dict, results_or_iterator) 830s # log before any exception is raised 830s lgr.debug("Finished %r with status %s", cmd, results['code']) 830s 830s # make it such that we always blow if a protocol did not report 830s # a return code at all or it was non-0 and we were not asked ignore 830s # errors 830s return_code = results.get('code', None) 830s if return_code is None or (return_code and exception_on_error): 830s # the runner has a better idea, doc string warns Protocol 830s # implementations not to return these 830s results.pop('cmd', None) 830s results.pop('cwd', None) 830s > raise CommandError( 830s # whatever the results were, we carry them forward 830s cmd=cmd, 830s cwd=applied_cwd, 830s **results, 830s ) 830s E datalad.runner.exception.CommandError: CommandError: 'git -c diff.ignoreSubmodules=none -c core.quotepath=false annex copy --batch -z --to local --fast --json --json-error-messages --json-progress -c annex.dotfiles=true' failed with exitcode 1 under /tmp/datalad_temp_tree_test_push_matchingw5d9lk13/ds [info keys: stdout_json] 830s E > to local... 830s E failed to send content to remote 830s E This could have failed because --fast is enabled. [err: 'copy: 1 failed'] 830s 830s /usr/lib/python3/dist-packages/datalad/runner/runner.py:243: CommandError 830s ------------------------------ Captured log call ------------------------------- 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: starting 830s INFO datalad.core.local.save:log.py:436 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: processed result for /tmp/datalad_temp_tree_test_push_matchingw5d9lk13/ds 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.local.save:log.py:436 Total: done 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad.core.distributed.push:log.py:436 Determine push target 830s INFO datalad.core.distributed.push:log.py:436 Push refspecs 830s INFO datalad.core.distributed.push:log.py:436 Transfer data 830s INFO datalad.annex:log.py:436 Start annex operation 830s INFO datalad.annex:log.py:436 Finished annex copy 830s ___________________ test_nested_pushclone_cycle_allplatforms ___________________ 830s 830s origpath = '/tmp/datalad_temp_test_nested_pushclone_cycle_allplatformsarhg2yk4' 830s storepath = '/tmp/datalad_temp_test_nested_pushclone_cycle_allplatforms9fz0nqn5' 830s clonepath = '/tmp/datalad_temp_test_nested_pushclone_cycle_allplatformsb_6cpo68' 830s 830s @slow # can run over 30 sec when running in parallel with n=2. Cannot force serial yet, see https://github.com/pytest-dev/pytest-xdist/issues/385 830s # Removed @known_failure_githubci_win-decorator 830s @with_tempfile(mkdir=True) 830s @with_tempfile(mkdir=True) 830s @with_tempfile(mkdir=True) 830s def test_nested_pushclone_cycle_allplatforms(origpath=None, storepath=None, clonepath=None): 830s if 'DATALAD_SEED' in os.environ: 830s # we are using create-sibling-ria via the cmdline in here 830s # this will create random UUIDs for datasets 830s # however, given a fixed seed each call to this command will start 830s # with the same RNG seed, hence yield the same UUID on the same 830s # machine -- leading to a collision 830s raise SkipTest( 830s 'Test incompatible with fixed random number generator seed' 830s ) 830s # the aim here is this high-level test a std create-push-clone cycle for a 830s # dataset with a subdataset, with the goal to ensure that correct branches 830s # and commits are tracked, regardless of platform behavior and condition 830s # of individual clones. Nothing fancy, just that the defaults behave in 830s # sensible ways 830s from datalad.cmd import WitlessRunner as Runner 830s run = Runner().run 830s 830s os.environ['DATALAD_EXTENSIONS_LOAD'] = 'next' 830s 830s # create original nested dataset 830s with chpwd(origpath): 830s run(['datalad', 'create', 'super'], env=os.environ) 830s run( 830s [ 830s 'datalad', 'create', '-d', 'super', 830s str(Path('super', 'sub')) 830s ], 830s env=os.environ 830s ) 830s 830s # verify essential linkage properties 830s orig_super = Dataset(Path(origpath, 'super')) 830s orig_sub = Dataset(orig_super.pathobj / 'sub') 830s 830s (orig_super.pathobj / 'file1.txt').write_text('some1') 830s (orig_sub.pathobj / 'file2.txt').write_text('some1') 830s with chpwd(orig_super.path): 830s run(['datalad', 'save', '--recursive'], env=os.environ) 830s 830s # TODO not yet reported clean with adjusted branches 830s #assert_repo_status(orig_super.path) 830s 830s # the "true" branch that sub is on, and the gitsha of the HEAD commit of it 830s orig_sub_corr_branch = \ 830s orig_sub.repo.get_corresponding_branch() or orig_sub.repo.get_active_branch() 830s orig_sub_corr_commit = orig_sub.repo.get_hexsha(orig_sub_corr_branch) 830s 830s # make sure the super trackes this commit 830s assert_in_results( 830s orig_super.subdatasets(), 830s path=orig_sub.path, 830s gitshasum=orig_sub_corr_commit, 830s # TODO it should also track the branch name 830s # Attempted: https://github.com/datalad/datalad/pull/3817 830s # But reverted: https://github.com/datalad/datalad/pull/4375 830s ) 830s 830s # publish to a store, to get into a platform-agnostic state 830s # (i.e. no impact of an annex-init of any kind) 830s store_url = 'ria+' + get_local_file_url(storepath) 830s with chpwd(orig_super.path): 830s run( 830s [ 830s 'datalad', 'create-sibling-ria', '--recursive', 830s '-s', 'store', store_url, '--new-store-ok' 830s ], 830s env=os.environ 830s ) 830s run( 830s ['datalad', 'push', '--recursive', '--to', 'store'], 830s env=os.environ 830s ) 830s 830s # we are using the 'store' sibling's URL, which should be a plain path 830s store_super = AnnexRepo(orig_super.siblings(name='store')[0]['url'], init=False) 830s store_sub = AnnexRepo(orig_sub.siblings(name='store')[0]['url'], init=False) 830s 830s # both datasets in the store only carry the real branches, and nothing 830s # adjusted 830s for r in (store_super, store_sub): 830s eq_(set(r.get_branches()), set([orig_sub_corr_branch, 'git-annex'])) 830s 830s # and reobtain from a store 830s cloneurl = 'ria+' + get_local_file_url(str(storepath), compatibility='git') 830s with chpwd(clonepath): 830s run( 830s ['datalad', 'clone', cloneurl + '#' + orig_super.id, 'super'], 830s env=os.environ 830s ) 830s > run( 830s ['datalad', '-C', 'super', 'get', '--recursive', '.'], 830s env=os.environ 830s ) 830s 830s ../build.4Ft/src/datalad_next/patches/tests/test_push.py:146: 830s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 830s 830s self = 830s cmd = ['datalad', '-C', 'super', 'get', '--recursive', '.'] 830s protocol = , stdin = None 830s cwd = None 830s env = environ({'SHELL': '/bin/bash', 'AUTOPKGTEST_TESTBED_ARCH': 'armhf', 'no_proxy': '127.0.0.1,127.0.1.1,localhost,localdo..._next/patches/tests/test_push.py::test_nested_pushclone_cycle_allplatforms (call)', 'DATALAD_EXTENSIONS_LOAD': 'next'}) 830s timeout = None, exception_on_error = True, kwargs = {}, applied_cwd = None 830s applied_env = {'ADTTMP': '/tmp/autopkgtest.vjeRUT/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-ar.../8.4.2-1 python-pluggy/1.6.0-1', 'AUTOPKGTEST_ARTIFACTS': '/tmp/autopkgtest.vjeRUT/nonetwork-testsuite-artifacts', ...} 830s threaded_runner = 830s results_or_iterator = {'code': 1, 'stderr': '', 'stdout': ''} 830s results = {'code': 1, 'stderr': '', 'stdout': ''}, return_code = 1 830s 830s def run(self, 830s cmd: list | str, 830s protocol: type[WitlessProtocol] | None = None, 830s stdin: bytes | IO | Queue | None = None, 830s cwd: PathLike | str | None = None, 830s env: dict | None = None, 830s timeout: float | None = None, 830s exception_on_error: bool = True, 830s **kwargs) -> dict | _ResultGenerator: 830s """Execute a command and communicate with it. 830s 830s Parameters 830s ---------- 830s cmd : list or str 830s Sequence of program arguments. Passing a single string causes 830s execution via the platform shell. 830s protocol : WitlessProtocol, optional 830s Protocol class handling interaction with the running process 830s (e.g. output capture). A number of pre-crafted classes are 830s provided (e.g `KillOutput`, `NoCapture`, `GitProgress`). 830s If the protocol has the GeneratorMixIn-mixin, the run-method 830s will return an iterator and can therefore be used in a for-clause. 830s stdin : file-like, bytes, Queue, or None 830s If stdin is a file-like, it will be directly used as stdin for the 830s subprocess. The caller is responsible for writing to it and closing it. 830s If stdin is a bytes, it will be fed to stdin of the subprocess. 830s If all data is written, stdin will be closed. 830s If stdin is a Queue, all elements (bytes) put into the Queue will 830s be passed to stdin until None is read from the queue. If None is read, 830s stdin of the subprocess is closed. 830s cwd : str or path-like, optional 830s If given, commands are executed with this path as PWD, 830s the PWD of the parent process is used otherwise. Overrides 830s any `cwd` given to the constructor. 830s env : dict, optional 830s Environment to be used for command execution. If given, it will 830s completely replace any environment provided to theconstructor. If 830s `cwd` is given, 'PWD' in the environment is set to its value. 830s This must be a complete environment definition, no values 830s from the current environment will be inherited. Overrides 830s any `env` given to the constructor. 830s timeout: float, optional 830s None or the seconds after which a timeout callback is 830s invoked, if no progress was made in communicating with 830s the sub-process, or if waiting for the subprocess exit 830s took more than the specified time. See the protocol and 830s `ThreadedRunner` descriptions for a more detailed discussion 830s on timeouts. 830s exception_on_error : bool, optional 830s This argument is first interpreted if the protocol is a subclass 830s of `GeneratorMixIn`. If it is `True` (default), a 830s `CommandErrorException` is raised by the generator if the 830s sub process exited with a return code not equal to zero. If the 830s parameter is `False`, no exception is raised. In both cases the 830s return code can be read from the attribute `return_code` of 830s the generator. Then this argument interpreted within this function 830s to not raise `CommandError` if value is False in case of non-0 exit. 830s kwargs : 830s Passed to the Protocol class constructor. 830s 830s Returns 830s ------- 830s dict | _ResultGenerator 830s 830s If the protocol is not a subclass of `GeneratorMixIn`, the 830s result of protocol._prepare_result will be returned. 830s 830s If the protocol is a subclass of `GeneratorMixIn`, a Generator, i.e. 830s a `_ResultGenerator`, will be returned. This allows to use this 830s method in constructs like: 830s 830s for protocol_output in runner.run(): 830s ... 830s 830s Where the iterator yields whatever protocol.pipe_data_received 830s sends into the generator. 830s If all output was yielded and the process has terminated, the 830s generator will raise StopIteration(return_code), where 830s return_code is the return code of the process. The return code 830s of the process will also be stored in the "return_code"-attribute 830s of the runner. So you could write: 830s 830s gen = runner.run() 830s for file_descriptor, data in gen: 830s ... 830s 830s # get the return code of the process 830s result = gen.return_code 830s 830s Raises 830s ------ 830s CommandError 830s On execution failure (non-zero exit code) this exception is 830s raised which provides the command (cmd), stdout, stderr, 830s exit code (status), and a message identifying the failed 830s command, as properties. 830s FileNotFoundError 830s When a given executable does not exist. 830s """ 830s if protocol is None: 830s # by default let all subprocess stream pass through 830s protocol = NoCapture 830s 830s applied_cwd = cwd or self.cwd 830s applied_env = self._get_adjusted_env( 830s env=env or self.env, 830s cwd=applied_cwd, 830s ) 830s 830s lgr.debug( 830s 'Run %r (protocol_class=%s) (cwd=%s)', 830s cmd, 830s protocol.__name__, 830s applied_cwd 830s ) 830s 830s threaded_runner = ThreadedRunner( 830s cmd=cmd, 830s protocol_class=protocol, 830s stdin=stdin, 830s protocol_kwargs=kwargs, 830s timeout=timeout, 830s exception_on_error=exception_on_error, 830s cwd=applied_cwd, 830s env=applied_env 830s ) 830s 830s results_or_iterator = threaded_runner.run() 830s if issubclass(protocol, GeneratorMixIn): 830s return results_or_iterator 830s 830s results = cast(dict, results_or_iterator) 830s # log before any exception is raised 830s lgr.debug("Finished %r with status %s", cmd, results['code']) 830s 830s # make it such that we always blow if a protocol did not report 830s # a return code at all or it was non-0 and we were not asked ignore 830s # errors 830s return_code = results.get('code', None) 830s if return_code is None or (return_code and exception_on_error): 830s # the runner has a better idea, doc string warns Protocol 830s # implementations not to return these 830s results.pop('cmd', None) 830s results.pop('cwd', None) 830s > raise CommandError( 830s # whatever the results were, we carry them forward 830s cmd=cmd, 830s cwd=applied_cwd, 830s **results, 830s ) 830s E datalad.runner.exception.CommandError: CommandError: 'datalad -C super get --recursive .' failed with exitcode 1 830s 830s /usr/lib/python3/dist-packages/datalad/runner/runner.py:243: CommandError 830s ------------------------------ Captured log call ------------------------------- 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s INFO datalad:log.py:436 Clear progress bars 830s INFO datalad:log.py:436 Refresh progress bars 830s =========================== short test summary info ============================ 830s FAILED ../build.4Ft/src/datalad_next/annexremotes/tests/test_uncurl.py::test_uncurl 830s FAILED ../build.4Ft/src/datalad_next/annexremotes/tests/test_uncurl.py::test_uncurl_ria_access 830s FAILED ../build.4Ft/src/datalad_next/annexremotes/tests/test_uncurl.py::test_uncurl_store 830s FAILED ../build.4Ft/src/datalad_next/annexremotes/tests/test_uncurl.py::test_uncurl_remove 830s FAILED ../build.4Ft/src/datalad_next/annexremotes/tests/test_uncurl.py::test_uncurl_testremote 830s FAILED ../build.4Ft/src/datalad_next/gitremotes/tests/test_datalad_annex.py::test_annex_remote 830s FAILED ../build.4Ft/src/datalad_next/gitremotes/tests/test_datalad_annex.py::test_export_remote 830s FAILED ../build.4Ft/src/datalad_next/gitremotes/tests/test_datalad_annex.py::test_annex_remote_autorepush 830s FAILED ../build.4Ft/src/datalad_next/gitremotes/tests/test_datalad_annex.py::test_export_remote_autorepush 830s FAILED ../build.4Ft/src/datalad_next/gitremotes/tests/test_datalad_annex.py::test_typeweb_annex 830s FAILED ../build.4Ft/src/datalad_next/gitremotes/tests/test_datalad_annex.py::test_typeweb_annex_uncompressed 830s FAILED ../build.4Ft/src/datalad_next/gitremotes/tests/test_datalad_annex.py::test_typeweb_export 830s FAILED ../build.4Ft/src/datalad_next/gitremotes/tests/test_datalad_annex.py::test_submodule_url 830s FAILED ../build.4Ft/src/datalad_next/patches/tests/test_patched_ria_ora.py::test_read_access 830s FAILED ../build.4Ft/src/datalad_next/patches/tests/test_patched_ria_ora.py::test_version_check 830s FAILED ../build.4Ft/src/datalad_next/patches/tests/test_patched_ria_ora.py::test_gitannex_local 830s FAILED ../build.4Ft/src/datalad_next/patches/tests/test_push.py::test_push[True] 830s FAILED ../build.4Ft/src/datalad_next/patches/tests/test_push.py::test_push_recursive 830s FAILED ../build.4Ft/src/datalad_next/patches/tests/test_push.py::test_push_subds_no_recursion 830s FAILED ../build.4Ft/src/datalad_next/patches/tests/test_push.py::test_force_checkdatapresent 830s FAILED ../build.4Ft/src/datalad_next/patches/tests/test_push.py::test_gh1763 830s FAILED ../build.4Ft/src/datalad_next/patches/tests/test_push.py::test_push_wanted 830s FAILED ../build.4Ft/src/datalad_next/patches/tests/test_push.py::test_auto_data_transfer 830s FAILED ../build.4Ft/src/datalad_next/patches/tests/test_push.py::test_auto_if_wanted_data_transfer_path_restriction 830s FAILED ../build.4Ft/src/datalad_next/patches/tests/test_push.py::test_push_git_annex_branch_many_paths_same_data 830s FAILED ../build.4Ft/src/datalad_next/patches/tests/test_push.py::test_push_matching 830s FAILED ../build.4Ft/src/datalad_next/patches/tests/test_push.py::test_nested_pushclone_cycle_allplatforms 830s ERROR ../build.4Ft/src/datalad_next/annexremotes/tests/test_archivist.py::test_archivist_retrieval 830s ERROR ../build.4Ft/src/datalad_next/annexremotes/tests/test_archivist.py::test_archivist_retrieval_legacy 830s ======= 27 failed, 372 passed, 67 skipped, 2 errors in 401.97s (0:06:41) ======= 831s autopkgtest [21:11:08]: test nonetwork-testsuite: -----------------------] 835s autopkgtest [21:11:12]: test nonetwork-testsuite: - - - - - - - - - - results - - - - - - - - - - 835s nonetwork-testsuite FAIL non-zero exit status 1 839s autopkgtest [21:11:16]: @@@@@@@@@@@@@@@@@@@@ summary 839s plain-import PASS (superficial) 839s apply-datalad-patches PASS (superficial) 839s extension-registered PASS (superficial) 839s nonetwork-testsuite FAIL non-zero exit status 1