0s autopkgtest [08:21:31]: starting date and time: 2025-06-30 08:21:31+0000 0s autopkgtest [08:21:31]: git checkout: 508d4a25 a-v-ssh wait_for_ssh: demote "ssh connection failed" to a debug message 0s autopkgtest [08:21:31]: host juju-7f2275-prod-proposed-migration-environment-20; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.pd2i7jvo/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:fsspec --apt-upgrade fsspec --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=fsspec/2025.3.2-1 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest-cpu2-ram4-disk20-amd64 --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-20@sto01-19.secgroup --name adt-questing-amd64-fsspec-20250630-082131-juju-7f2275-prod-proposed-migration-environment-20-8d6eb312-1eae-47a1-9f84-dd679e192f17 --image adt/ubuntu-questing-amd64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-20 --net-id=net_prod-autopkgtest-workers-amd64 -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 4s Creating nova instance adt-questing-amd64-fsspec-20250630-082131-juju-7f2275-prod-proposed-migration-environment-20-8d6eb312-1eae-47a1-9f84-dd679e192f17 from image adt/ubuntu-questing-amd64-server-20250630.img (UUID 27e36c1d-83c5-4372-833c-68f8b22100e1)... 58s autopkgtest [08:22:29]: testbed dpkg architecture: amd64 58s autopkgtest [08:22:29]: testbed apt version: 3.1.2 58s autopkgtest [08:22:29]: @@@@@@@@@@@@@@@@@@@@ test bed setup 58s autopkgtest [08:22:29]: testbed release detected to be: None 59s autopkgtest [08:22:30]: updating testbed package index (apt update) 59s Get:1 http://ftpmaster.internal/ubuntu questing-proposed InRelease [249 kB] 59s Hit:2 http://ftpmaster.internal/ubuntu questing InRelease 59s Hit:3 http://ftpmaster.internal/ubuntu questing-updates InRelease 59s Hit:4 http://ftpmaster.internal/ubuntu questing-security InRelease 59s Get:5 http://ftpmaster.internal/ubuntu questing-proposed/main Sources [26.6 kB] 59s Get:6 http://ftpmaster.internal/ubuntu questing-proposed/multiverse Sources [17.5 kB] 59s Get:7 http://ftpmaster.internal/ubuntu questing-proposed/universe Sources [429 kB] 59s Get:8 http://ftpmaster.internal/ubuntu questing-proposed/main amd64 Packages [33.7 kB] 59s Get:9 http://ftpmaster.internal/ubuntu questing-proposed/main i386 Packages [16.7 kB] 60s Get:10 http://ftpmaster.internal/ubuntu questing-proposed/universe i386 Packages [129 kB] 60s Get:11 http://ftpmaster.internal/ubuntu questing-proposed/universe amd64 Packages [398 kB] 60s Get:12 http://ftpmaster.internal/ubuntu questing-proposed/multiverse i386 Packages [10.1 kB] 60s Get:13 http://ftpmaster.internal/ubuntu questing-proposed/multiverse amd64 Packages [17.4 kB] 60s Fetched 1328 kB in 1s (2633 kB/s) 60s Reading package lists... 61s autopkgtest [08:22:32]: upgrading testbed (apt dist-upgrade and autopurge) 61s Reading package lists... 61s Building dependency tree... 61s Reading state information... 61s Calculating upgrade... 61s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 61s Reading package lists... 62s Building dependency tree... 62s Reading state information... 62s Solving dependencies... 62s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 64s autopkgtest [08:22:35]: testbed running kernel: Linux 6.15.0-3-generic #3-Ubuntu SMP PREEMPT_DYNAMIC Wed Jun 4 08:34:48 UTC 2025 64s autopkgtest [08:22:35]: @@@@@@@@@@@@@@@@@@@@ apt-source fsspec 65s Get:1 http://ftpmaster.internal/ubuntu questing-proposed/universe fsspec 2025.3.2-1 (dsc) [2580 B] 65s Get:2 http://ftpmaster.internal/ubuntu questing-proposed/universe fsspec 2025.3.2-1 (tar) [432 kB] 65s Get:3 http://ftpmaster.internal/ubuntu questing-proposed/universe fsspec 2025.3.2-1 (diff) [7208 B] 66s gpgv: Signature made Fri Apr 4 17:43:51 2025 UTC 66s gpgv: using RSA key 13796755BBC72BB8ABE2AEB5FA9DEC5DE11C63F1 66s gpgv: issuer "eamanu@debian.org" 66s gpgv: Can't check signature: No public key 66s dpkg-source: warning: cannot verify inline signature for ./fsspec_2025.3.2-1.dsc: no acceptable signature found 66s autopkgtest [08:22:37]: testing package fsspec version 2025.3.2-1 66s autopkgtest [08:22:37]: build not needed 67s autopkgtest [08:22:38]: test fsspec-tests: preparing testbed 67s Reading package lists... 67s Building dependency tree... 67s Reading state information... 67s Solving dependencies... 67s The following NEW packages will be installed: 67s fonts-font-awesome fonts-lato libblas3 libgfortran5 libjs-jquery 67s libjs-sphinxdoc libjs-underscore liblapack3 python-fsspec-doc 67s python3-aiohappyeyeballs python3-aiohttp python3-aiosignal python3-all 67s python3-async-generator python3-async-timeout python3-frozenlist 67s python3-fsspec python3-iniconfig python3-multidict python3-numpy 67s python3-numpy-dev python3-pluggy python3-propcache python3-pytest 67s python3-pytest-asyncio python3-pytest-mock python3-pytest-vcr python3-tqdm 67s python3-vcr python3-wrapt python3-yarl sphinx-rtd-theme-common 67s 0 upgraded, 32 newly installed, 0 to remove and 0 not upgraded. 67s Need to get 15.9 MB of archives. 67s After this operation, 74.0 MB of additional disk space will be used. 67s Get:1 http://ftpmaster.internal/ubuntu questing/main amd64 fonts-lato all 2.015-1 [2781 kB] 67s Get:2 http://ftpmaster.internal/ubuntu questing/main amd64 python3-numpy-dev amd64 1:2.2.4+ds-1ubuntu1 [147 kB] 67s Get:3 http://ftpmaster.internal/ubuntu questing/main amd64 libblas3 amd64 3.12.1-2build1 [262 kB] 67s Get:4 http://ftpmaster.internal/ubuntu questing/main amd64 libgfortran5 amd64 15.1.0-8ubuntu1 [940 kB] 68s Get:5 http://ftpmaster.internal/ubuntu questing/main amd64 liblapack3 amd64 3.12.1-2build1 [2672 kB] 68s Get:6 http://ftpmaster.internal/ubuntu questing/main amd64 python3-numpy amd64 1:2.2.4+ds-1ubuntu1 [5377 kB] 68s Get:7 http://ftpmaster.internal/ubuntu questing/main amd64 fonts-font-awesome all 5.0.10+really4.7.0~dfsg-4.1 [516 kB] 68s Get:8 http://ftpmaster.internal/ubuntu questing/main amd64 libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 68s Get:9 http://ftpmaster.internal/ubuntu questing/main amd64 libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [118 kB] 68s Get:10 http://ftpmaster.internal/ubuntu questing/main amd64 libjs-sphinxdoc all 8.2.3-1ubuntu2 [28.0 kB] 68s Get:11 http://ftpmaster.internal/ubuntu questing/main amd64 sphinx-rtd-theme-common all 3.0.2+dfsg-3 [1013 kB] 68s Get:12 http://ftpmaster.internal/ubuntu questing-proposed/universe amd64 python-fsspec-doc all 2025.3.2-1 [321 kB] 68s Get:13 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-aiohappyeyeballs all 2.6.1-1 [11.1 kB] 68s Get:14 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-multidict amd64 6.4.3-1 [49.6 kB] 69s Get:15 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-propcache amd64 0.3.1-1 [41.7 kB] 69s Get:16 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-yarl amd64 1.19.0-1 [88.6 kB] 69s Get:17 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-async-timeout all 5.0.1-1 [6830 B] 69s Get:18 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-frozenlist amd64 1.6.0-1 [100 kB] 69s Get:19 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-aiosignal all 1.3.2-1 [5182 B] 69s Get:20 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-aiohttp amd64 3.11.16-1 [367 kB] 69s Get:21 http://ftpmaster.internal/ubuntu questing/main amd64 python3-all amd64 3.13.4-1 [880 B] 69s Get:22 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-async-generator all 1.10-4 [17.5 kB] 69s Get:23 http://ftpmaster.internal/ubuntu questing-proposed/universe amd64 python3-fsspec all 2025.3.2-1 [217 kB] 69s Get:24 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-iniconfig all 1.1.1-2 [6024 B] 69s Get:25 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-pluggy all 1.5.0-1 [21.0 kB] 69s Get:26 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-pytest all 8.3.5-2 [252 kB] 69s Get:27 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-pytest-asyncio all 0.25.1-1 [17.0 kB] 69s Get:28 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-pytest-mock all 3.14.0-2 [11.7 kB] 69s Get:29 http://ftpmaster.internal/ubuntu questing/main amd64 python3-wrapt amd64 1.15.0-4build1 [34.7 kB] 69s Get:30 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-vcr all 7.0.0-2 [33.3 kB] 69s Get:31 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-pytest-vcr all 1.0.2-4 [5228 B] 69s Get:32 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-tqdm all 4.67.1-5 [92.1 kB] 69s Fetched 15.9 MB in 2s (8552 kB/s) 69s Selecting previously unselected package fonts-lato. 69s (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 ... 120940 files and directories currently installed.) 69s Preparing to unpack .../00-fonts-lato_2.015-1_all.deb ... 69s Unpacking fonts-lato (2.015-1) ... 70s Selecting previously unselected package python3-numpy-dev:amd64. 70s Preparing to unpack .../01-python3-numpy-dev_1%3a2.2.4+ds-1ubuntu1_amd64.deb ... 70s Unpacking python3-numpy-dev:amd64 (1:2.2.4+ds-1ubuntu1) ... 70s Selecting previously unselected package libblas3:amd64. 70s Preparing to unpack .../02-libblas3_3.12.1-2build1_amd64.deb ... 70s Unpacking libblas3:amd64 (3.12.1-2build1) ... 70s Selecting previously unselected package libgfortran5:amd64. 70s Preparing to unpack .../03-libgfortran5_15.1.0-8ubuntu1_amd64.deb ... 70s Unpacking libgfortran5:amd64 (15.1.0-8ubuntu1) ... 70s Selecting previously unselected package liblapack3:amd64. 70s Preparing to unpack .../04-liblapack3_3.12.1-2build1_amd64.deb ... 70s Unpacking liblapack3:amd64 (3.12.1-2build1) ... 70s Selecting previously unselected package python3-numpy. 70s Preparing to unpack .../05-python3-numpy_1%3a2.2.4+ds-1ubuntu1_amd64.deb ... 70s Unpacking python3-numpy (1:2.2.4+ds-1ubuntu1) ... 70s Selecting previously unselected package fonts-font-awesome. 70s Preparing to unpack .../06-fonts-font-awesome_5.0.10+really4.7.0~dfsg-4.1_all.deb ... 70s Unpacking fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 70s Selecting previously unselected package libjs-jquery. 70s Preparing to unpack .../07-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 70s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 70s Selecting previously unselected package libjs-underscore. 70s Preparing to unpack .../08-libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ... 70s Unpacking libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 70s Selecting previously unselected package libjs-sphinxdoc. 70s Preparing to unpack .../09-libjs-sphinxdoc_8.2.3-1ubuntu2_all.deb ... 70s Unpacking libjs-sphinxdoc (8.2.3-1ubuntu2) ... 70s Selecting previously unselected package sphinx-rtd-theme-common. 70s Preparing to unpack .../10-sphinx-rtd-theme-common_3.0.2+dfsg-3_all.deb ... 70s Unpacking sphinx-rtd-theme-common (3.0.2+dfsg-3) ... 70s Selecting previously unselected package python-fsspec-doc. 70s Preparing to unpack .../11-python-fsspec-doc_2025.3.2-1_all.deb ... 70s Unpacking python-fsspec-doc (2025.3.2-1) ... 70s Selecting previously unselected package python3-aiohappyeyeballs. 70s Preparing to unpack .../12-python3-aiohappyeyeballs_2.6.1-1_all.deb ... 70s Unpacking python3-aiohappyeyeballs (2.6.1-1) ... 70s Selecting previously unselected package python3-multidict. 70s Preparing to unpack .../13-python3-multidict_6.4.3-1_amd64.deb ... 70s Unpacking python3-multidict (6.4.3-1) ... 70s Selecting previously unselected package python3-propcache. 70s Preparing to unpack .../14-python3-propcache_0.3.1-1_amd64.deb ... 70s Unpacking python3-propcache (0.3.1-1) ... 70s Selecting previously unselected package python3-yarl. 70s Preparing to unpack .../15-python3-yarl_1.19.0-1_amd64.deb ... 70s Unpacking python3-yarl (1.19.0-1) ... 70s Selecting previously unselected package python3-async-timeout. 70s Preparing to unpack .../16-python3-async-timeout_5.0.1-1_all.deb ... 70s Unpacking python3-async-timeout (5.0.1-1) ... 70s Selecting previously unselected package python3-frozenlist. 70s Preparing to unpack .../17-python3-frozenlist_1.6.0-1_amd64.deb ... 70s Unpacking python3-frozenlist (1.6.0-1) ... 70s Selecting previously unselected package python3-aiosignal. 70s Preparing to unpack .../18-python3-aiosignal_1.3.2-1_all.deb ... 70s Unpacking python3-aiosignal (1.3.2-1) ... 70s Selecting previously unselected package python3-aiohttp. 70s Preparing to unpack .../19-python3-aiohttp_3.11.16-1_amd64.deb ... 70s Unpacking python3-aiohttp (3.11.16-1) ... 70s Selecting previously unselected package python3-all. 70s Preparing to unpack .../20-python3-all_3.13.4-1_amd64.deb ... 70s Unpacking python3-all (3.13.4-1) ... 70s Selecting previously unselected package python3-async-generator. 70s Preparing to unpack .../21-python3-async-generator_1.10-4_all.deb ... 70s Unpacking python3-async-generator (1.10-4) ... 70s Selecting previously unselected package python3-fsspec. 70s Preparing to unpack .../22-python3-fsspec_2025.3.2-1_all.deb ... 70s Unpacking python3-fsspec (2025.3.2-1) ... 70s Selecting previously unselected package python3-iniconfig. 70s Preparing to unpack .../23-python3-iniconfig_1.1.1-2_all.deb ... 70s Unpacking python3-iniconfig (1.1.1-2) ... 70s Selecting previously unselected package python3-pluggy. 70s Preparing to unpack .../24-python3-pluggy_1.5.0-1_all.deb ... 70s Unpacking python3-pluggy (1.5.0-1) ... 70s Selecting previously unselected package python3-pytest. 70s Preparing to unpack .../25-python3-pytest_8.3.5-2_all.deb ... 70s Unpacking python3-pytest (8.3.5-2) ... 70s Selecting previously unselected package python3-pytest-asyncio. 70s Preparing to unpack .../26-python3-pytest-asyncio_0.25.1-1_all.deb ... 70s Unpacking python3-pytest-asyncio (0.25.1-1) ... 70s Selecting previously unselected package python3-pytest-mock. 70s Preparing to unpack .../27-python3-pytest-mock_3.14.0-2_all.deb ... 70s Unpacking python3-pytest-mock (3.14.0-2) ... 70s Selecting previously unselected package python3-wrapt. 70s Preparing to unpack .../28-python3-wrapt_1.15.0-4build1_amd64.deb ... 70s Unpacking python3-wrapt (1.15.0-4build1) ... 70s Selecting previously unselected package python3-vcr. 70s Preparing to unpack .../29-python3-vcr_7.0.0-2_all.deb ... 70s Unpacking python3-vcr (7.0.0-2) ... 71s Selecting previously unselected package python3-pytest-vcr. 71s Preparing to unpack .../30-python3-pytest-vcr_1.0.2-4_all.deb ... 71s Unpacking python3-pytest-vcr (1.0.2-4) ... 71s Selecting previously unselected package python3-tqdm. 71s Preparing to unpack .../31-python3-tqdm_4.67.1-5_all.deb ... 71s Unpacking python3-tqdm (4.67.1-5) ... 71s Setting up python3-iniconfig (1.1.1-2) ... 71s Setting up fonts-lato (2.015-1) ... 71s Setting up python3-async-generator (1.10-4) ... 71s Setting up python3-fsspec (2025.3.2-1) ... 71s Setting up python3-tqdm (4.67.1-5) ... 71s Setting up python3-all (3.13.4-1) ... 71s Setting up python3-multidict (6.4.3-1) ... 71s Setting up python3-frozenlist (1.6.0-1) ... 71s Setting up python3-aiosignal (1.3.2-1) ... 71s Setting up python3-async-timeout (5.0.1-1) ... 71s Setting up libblas3:amd64 (3.12.1-2build1) ... 71s update-alternatives: using /usr/lib/x86_64-linux-gnu/blas/libblas.so.3 to provide /usr/lib/x86_64-linux-gnu/libblas.so.3 (libblas.so.3-x86_64-linux-gnu) in auto mode 71s Setting up python3-numpy-dev:amd64 (1:2.2.4+ds-1ubuntu1) ... 71s Setting up python3-wrapt (1.15.0-4build1) ... 71s Setting up python3-aiohappyeyeballs (2.6.1-1) ... 72s Setting up libgfortran5:amd64 (15.1.0-8ubuntu1) ... 72s Setting up python3-pluggy (1.5.0-1) ... 72s Setting up python3-propcache (0.3.1-1) ... 72s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 72s Setting up python3-yarl (1.19.0-1) ... 72s Setting up fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 72s Setting up sphinx-rtd-theme-common (3.0.2+dfsg-3) ... 72s Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 72s Setting up liblapack3:amd64 (3.12.1-2build1) ... 72s update-alternatives: using /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3 to provide /usr/lib/x86_64-linux-gnu/liblapack.so.3 (liblapack.so.3-x86_64-linux-gnu) in auto mode 72s Setting up python3-pytest (8.3.5-2) ... 72s Setting up python3-aiohttp (3.11.16-1) ... 72s Setting up python3-vcr (7.0.0-2) ... 72s Setting up python3-numpy (1:2.2.4+ds-1ubuntu1) ... 73s Setting up libjs-sphinxdoc (8.2.3-1ubuntu2) ... 73s Setting up python3-pytest-asyncio (0.25.1-1) ... 73s Setting up python3-pytest-mock (3.14.0-2) ... 73s Setting up python3-pytest-vcr (1.0.2-4) ... 73s Setting up python-fsspec-doc (2025.3.2-1) ... 73s Processing triggers for man-db (2.13.1-1) ... 74s Processing triggers for libc-bin (2.41-6ubuntu2) ... 75s autopkgtest [08:22:46]: test fsspec-tests: [----------------------- 75s 'fsspec/tests' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/tests' 75s 'fsspec/tests/__init__.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/tests/__init__.py' 75s 'fsspec/tests/abstract' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/tests/abstract' 75s 'fsspec/tests/abstract/__init__.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/tests/abstract/__init__.py' 75s 'fsspec/tests/abstract/common.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/tests/abstract/common.py' 75s 'fsspec/tests/abstract/copy.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/tests/abstract/copy.py' 75s 'fsspec/tests/abstract/get.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/tests/abstract/get.py' 75s 'fsspec/tests/abstract/mv.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/tests/abstract/mv.py' 75s 'fsspec/tests/abstract/open.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/tests/abstract/open.py' 75s 'fsspec/tests/abstract/pipe.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/tests/abstract/pipe.py' 75s 'fsspec/tests/abstract/put.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/tests/abstract/put.py' 75s 'fsspec/tests/data' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/tests/data' 75s 'fsspec/tests/data/listing.html' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/tests/data/listing.html' 75s 'fsspec/tests/test_api.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/tests/test_api.py' 75s 'fsspec/tests/test_async.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/tests/test_async.py' 75s 'fsspec/tests/test_caches.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/tests/test_caches.py' 75s 'fsspec/tests/test_callbacks.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/tests/test_callbacks.py' 75s 'fsspec/tests/test_compression.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/tests/test_compression.py' 75s 'fsspec/tests/test_config.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/tests/test_config.py' 75s 'fsspec/tests/test_core.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/tests/test_core.py' 75s 'fsspec/tests/test_downstream.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/tests/test_downstream.py' 75s 'fsspec/tests/test_file.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/tests/test_file.py' 75s 'fsspec/tests/test_fuse.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/tests/test_fuse.py' 75s 'fsspec/tests/test_generic.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/tests/test_generic.py' 75s 'fsspec/tests/test_gui.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/tests/test_gui.py' 75s 'fsspec/tests/test_mapping.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/tests/test_mapping.py' 75s 'fsspec/tests/test_parquet.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/tests/test_parquet.py' 75s 'fsspec/tests/test_registry.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/tests/test_registry.py' 75s 'fsspec/tests/test_spec.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/tests/test_spec.py' 75s 'fsspec/tests/test_utils.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/tests/test_utils.py' 75s 'fsspec/tests/conftest.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/tests/conftest.py' 75s 'fsspec/implementations/tests' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests' 75s 'fsspec/implementations/tests/__init__.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/__init__.py' 75s 'fsspec/implementations/tests/cassettes' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/cassettes' 75s 'fsspec/implementations/tests/cassettes/test_dbfs' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/cassettes/test_dbfs' 75s 'fsspec/implementations/tests/cassettes/test_dbfs/test_dbfs_file_listing.yaml' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/cassettes/test_dbfs/test_dbfs_file_listing.yaml' 75s 'fsspec/implementations/tests/cassettes/test_dbfs/test_dbfs_mkdir.yaml' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/cassettes/test_dbfs/test_dbfs_mkdir.yaml' 75s 'fsspec/implementations/tests/cassettes/test_dbfs/test_dbfs_read_pyarrow_non_partitioned.yaml' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/cassettes/test_dbfs/test_dbfs_read_pyarrow_non_partitioned.yaml' 75s 'fsspec/implementations/tests/cassettes/test_dbfs/test_dbfs_read_range.yaml' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/cassettes/test_dbfs/test_dbfs_read_range.yaml' 75s 'fsspec/implementations/tests/cassettes/test_dbfs/test_dbfs_read_range_chunked.yaml' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/cassettes/test_dbfs/test_dbfs_read_range_chunked.yaml' 75s 'fsspec/implementations/tests/cassettes/test_dbfs/test_dbfs_write_and_read.yaml' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/cassettes/test_dbfs/test_dbfs_write_and_read.yaml' 75s 'fsspec/implementations/tests/cassettes/test_dbfs/test_dbfs_write_pyarrow_non_partitioned.yaml' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/cassettes/test_dbfs/test_dbfs_write_pyarrow_non_partitioned.yaml' 75s 'fsspec/implementations/tests/conftest.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/conftest.py' 75s 'fsspec/implementations/tests/ftp_tls.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/ftp_tls.py' 75s 'fsspec/implementations/tests/keycert.pem' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/keycert.pem' 75s 'fsspec/implementations/tests/local' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/local' 75s 'fsspec/implementations/tests/local/__init__.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/local/__init__.py' 75s 'fsspec/implementations/tests/local/local_fixtures.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/local/local_fixtures.py' 75s 'fsspec/implementations/tests/local/local_test.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/local/local_test.py' 75s 'fsspec/implementations/tests/memory' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/memory' 75s 'fsspec/implementations/tests/memory/__init__.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/memory/__init__.py' 75s 'fsspec/implementations/tests/memory/memory_fixtures.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/memory/memory_fixtures.py' 75s 'fsspec/implementations/tests/memory/memory_test.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/memory/memory_test.py' 75s 'fsspec/implementations/tests/out.zip' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/out.zip' 75s 'fsspec/implementations/tests/test_archive.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/test_archive.py' 75s 'fsspec/implementations/tests/test_arrow.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/test_arrow.py' 75s 'fsspec/implementations/tests/test_asyn_wrapper.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/test_asyn_wrapper.py' 75s 'fsspec/implementations/tests/test_cached.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/test_cached.py' 75s 'fsspec/implementations/tests/test_common.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/test_common.py' 75s 'fsspec/implementations/tests/test_dask.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/test_dask.py' 75s 'fsspec/implementations/tests/test_data.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/test_data.py' 75s 'fsspec/implementations/tests/test_dbfs.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/test_dbfs.py' 75s 'fsspec/implementations/tests/test_dirfs.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/test_dirfs.py' 75s 'fsspec/implementations/tests/test_ftp.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/test_ftp.py' 75s 'fsspec/implementations/tests/test_git.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/test_git.py' 75s 'fsspec/implementations/tests/test_github.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/test_github.py' 75s 'fsspec/implementations/tests/test_http.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/test_http.py' 75s 'fsspec/implementations/tests/test_http_sync.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/test_http_sync.py' 75s 'fsspec/implementations/tests/test_jupyter.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/test_jupyter.py' 75s 'fsspec/implementations/tests/test_libarchive.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/test_libarchive.py' 75s 'fsspec/implementations/tests/test_local.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/test_local.py' 75s 'fsspec/implementations/tests/test_memory.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/test_memory.py' 75s 'fsspec/implementations/tests/test_reference.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/test_reference.py' 75s 'fsspec/implementations/tests/test_sftp.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/test_sftp.py' 75s 'fsspec/implementations/tests/test_smb.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/test_smb.py' 75s 'fsspec/implementations/tests/test_tar.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/test_tar.py' 75s 'fsspec/implementations/tests/test_webhdfs.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/test_webhdfs.py' 75s 'fsspec/implementations/tests/test_zip.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/test_zip.py' 75s 'fsspec/conftest.py' -> '/tmp/autopkgtest.X5LLDo/autopkgtest_tmp/conftest.py' 75s === python3.13 === 75s /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:207: PytestDeprecationWarning: The configuration option "asyncio_default_fixture_loop_scope" is unset. 75s The event loop scope for asynchronous fixtures will default to the fixture caching scope. Future versions of pytest-asyncio will default the loop scope for asynchronous fixtures to function scope. Set the default fixture loop scope explicitly in order to avoid unexpected behavior in the future. Valid fixture loop scopes are: "function", "class", "module", "package", "session" 75s 75s warnings.warn(PytestDeprecationWarning(_DEFAULT_FIXTURE_LOOP_SCOPE_UNSET)) 76s ============================= test session starts ============================== 76s platform linux -- Python 3.13.5, pytest-8.3.5, pluggy-1.5.0 76s rootdir: /tmp/autopkgtest.X5LLDo/autopkgtest_tmp 76s plugins: asyncio-0.25.1, vcr-1.0.2, mock-3.14.0, typeguard-4.4.2 76s asyncio: mode=Mode.STRICT, asyncio_default_fixture_loop_scope=None 76s collected 790 items / 2 skipped 76s 76s tests/test_api.py ...............x...... [ 2%] 79s tests/test_async.py .........s... [ 4%] 79s tests/test_caches.py ................................................... [ 10%] 79s ........................................................................ [ 20%] 80s ....................... [ 22%] 80s tests/test_callbacks.py ........ [ 23%] 80s tests/test_compression.py ...sss [ 24%] 80s tests/test_config.py ....... [ 25%] 80s tests/test_core.py .................................................ss.. [ 32%] 80s sss.s [ 32%] 80s tests/test_file.py sssssssss.s [ 34%] 80s tests/test_generic.py ...... [ 35%] 80s tests/test_mapping.py ................. [ 37%] 80s tests/test_parquet.py ssssssssssssssssssssssssssssssssssssssssssssssssss [ 43%] 80s ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 52%] 80s ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 61%] 80s tests/test_registry.py ......s [ 62%] 111s tests/test_spec.py ....................x................................ [ 69%] 111s .....ssssssssss......................................................... [ 78%] 111s ........................................................................ [ 87%] 112s ................................. [ 91%] 112s tests/test_utils.py .................................................... [ 98%] 112s ............... [100%] 112s 112s =============================== warnings summary =============================== 112s tests/test_async.py::test_async_streamed_file_write 112s /usr/lib/python3.13/functools.py:77: RuntimeWarning: coroutine 'test_run_coros_in_chunks..runner' was never awaited 112s return partial(update_wrapper, wrapped=wrapped, 112s Enable tracemalloc to get traceback where the object was allocated. 112s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 112s 112s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 112s =========== 565 passed, 225 skipped, 2 xfailed, 1 warning in 36.26s ============ 112s /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:207: PytestDeprecationWarning: The configuration option "asyncio_default_fixture_loop_scope" is unset. 112s The event loop scope for asynchronous fixtures will default to the fixture caching scope. Future versions of pytest-asyncio will default the loop scope for asynchronous fixtures to function scope. Set the default fixture loop scope explicitly in order to avoid unexpected behavior in the future. Valid fixture loop scopes are: "function", "class", "module", "package", "session" 112s 112s warnings.warn(PytestDeprecationWarning(_DEFAULT_FIXTURE_LOOP_SCOPE_UNSET)) 113s ============================= test session starts ============================== 113s platform linux -- Python 3.13.5, pytest-8.3.5, pluggy-1.5.0 113s rootdir: /tmp/autopkgtest.X5LLDo/autopkgtest_tmp 113s plugins: asyncio-0.25.1, vcr-1.0.2, mock-3.14.0, typeguard-4.4.2 113s asyncio: mode=Mode.STRICT, asyncio_default_fixture_loop_scope=None 113s collected 1005 items / 3 deselected / 7 skipped / 1002 selected 113s 113s implementations_tests/local/local_test.py .............................. [ 2%] 113s ........................................................................ [ 10%] 113s ................................. [ 13%] 114s implementations_tests/memory/memory_test.py ............................ [ 16%] 114s ........................................................................ [ 23%] 114s ..................................... [ 27%] 115s implementations_tests/test_archive.py .................................. [ 30%] 119s ...................................................sssssssssssssssss [ 37%] 119s implementations_tests/test_asyn_wrapper.py ......... [ 38%] 127s implementations_tests/test_cached.py ..........ssssssss......sss........ [ 41%] 127s ..........ssssssssssssssss.s........ssss..................... [ 47%] 127s implementations_tests/test_common.py ssss [ 48%] 127s implementations_tests/test_data.py .. [ 48%] 127s implementations_tests/test_dirfs.py .................................... [ 51%] 127s ........................................................................ [ 59%] 127s .......................... [ 61%] 127s implementations_tests/test_ftp.py sssssssssssssssssss [ 63%] 625s implementations_tests/test_github.py .FF.. [ 64%] 625s implementations_tests/test_http.py ..................................... [ 67%] 626s .................... [ 69%] 627s implementations_tests/test_http_sync.py ................................ [ 73%] 627s ....... [ 73%] 627s implementations_tests/test_libarchive.py s [ 73%] 627s implementations_tests/test_local.py .s........................s......... [ 77%] 628s ....................................................ss........ss.sssss.. [ 84%] 628s .....sss....s.......................... [ 88%] 628s implementations_tests/test_memory.py .............................. [ 91%] 628s implementations_tests/test_reference.py ..................s.....ss..ssss [ 94%] 628s s [ 94%] 628s implementations_tests/test_tar.py ......................... [ 97%] 628s implementations_tests/test_webhdfs.py ssssssssssss [ 98%] 628s implementations_tests/test_zip.py ............... [100%] 628s 628s =================================== FAILURES =================================== 628s _________________________ test_github_open_large_file __________________________ 628s 628s self = 628s addr_infos = [] 628s req = 628s timeout = ClientTimeout(total=300, connect=None, sock_read=None, sock_connect=30, ceil_threshold=5) 628s client_error = 628s args = (functools.partial(, loop=<_UnixSelectorEventLoop running=True closed=False debug=False>),) 628s kwargs = {'server_hostname': 'raw.githubusercontent.com', 'ssl': } 628s 628s async def _wrap_create_connection( 628s self, 628s *args: Any, 628s addr_infos: List[aiohappyeyeballs.AddrInfoType], 628s req: ClientRequest, 628s timeout: "ClientTimeout", 628s client_error: Type[Exception] = ClientConnectorError, 628s **kwargs: Any, 628s ) -> Tuple[asyncio.Transport, ResponseHandler]: 628s try: 628s async with ceil_timeout( 628s timeout.sock_connect, ceil_threshold=timeout.ceil_threshold 628s ): 628s > sock = await aiohappyeyeballs.start_connection( 628s addr_infos=addr_infos, 628s local_addr_infos=self._local_addr_infos, 628s happy_eyeballs_delay=self._happy_eyeballs_delay, 628s interleave=self._interleave, 628s loop=self._loop, 628s ) 628s 628s /usr/lib/python3/dist-packages/aiohttp/connector.py:1115: 628s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 628s /usr/lib/python3/dist-packages/aiohappyeyeballs/impl.py:87: in start_connection 628s sock, _, _ = await _staggered.staggered_race( 628s /usr/lib/python3/dist-packages/aiohappyeyeballs/_staggered.py:165: in staggered_race 628s done = await _wait_one( 628s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 628s 628s futures = {.run_one_coro() done, defined at /usr/lib/python3/dist-packages/aiohappyeyeballs/_staggered.py:115> result=None>} 628s loop = <_UnixSelectorEventLoop running=True closed=False debug=False> 628s 628s async def _wait_one( 628s futures: "Iterable[asyncio.Future[Any]]", 628s loop: asyncio.AbstractEventLoop, 628s ) -> _T: 628s """Wait for the first future to complete.""" 628s wait_next = loop.create_future() 628s 628s def _on_completion(fut: "asyncio.Future[Any]") -> None: 628s if not wait_next.done(): 628s wait_next.set_result(fut) 628s 628s for f in futures: 628s f.add_done_callback(_on_completion) 628s 628s try: 628s > return await wait_next 628s E asyncio.exceptions.CancelledError 628s 628s /usr/lib/python3/dist-packages/aiohappyeyeballs/_staggered.py:46: CancelledError 628s 628s The above exception was the direct cause of the following exception: 628s 628s self = , method = 'GET' 628s str_or_url = URL('https://raw.githubusercontent.com/mwaskom/seaborn-data/83bfba7/brain_networks.csv') 628s 628s async def _request( 628s self, 628s method: str, 628s str_or_url: StrOrURL, 628s *, 628s params: Query = None, 628s data: Any = None, 628s json: Any = None, 628s cookies: Optional[LooseCookies] = None, 628s headers: Optional[LooseHeaders] = None, 628s skip_auto_headers: Optional[Iterable[str]] = None, 628s auth: Optional[BasicAuth] = None, 628s allow_redirects: bool = True, 628s max_redirects: int = 10, 628s compress: Union[str, bool, None] = None, 628s chunked: Optional[bool] = None, 628s expect100: bool = False, 628s raise_for_status: Union[ 628s None, bool, Callable[[ClientResponse], Awaitable[None]] 628s ] = None, 628s read_until_eof: bool = True, 628s proxy: Optional[StrOrURL] = None, 628s proxy_auth: Optional[BasicAuth] = None, 628s timeout: Union[ClientTimeout, _SENTINEL] = sentinel, 628s verify_ssl: Optional[bool] = None, 628s fingerprint: Optional[bytes] = None, 628s ssl_context: Optional[SSLContext] = None, 628s ssl: Union[SSLContext, bool, Fingerprint] = True, 628s server_hostname: Optional[str] = None, 628s proxy_headers: Optional[LooseHeaders] = None, 628s trace_request_ctx: Optional[Mapping[str, Any]] = None, 628s read_bufsize: Optional[int] = None, 628s auto_decompress: Optional[bool] = None, 628s max_line_size: Optional[int] = None, 628s max_field_size: Optional[int] = None, 628s ) -> ClientResponse: 628s 628s # NOTE: timeout clamps existing connect and read timeouts. We cannot 628s # set the default to None because we need to detect if the user wants 628s # to use the existing timeouts by setting timeout to None. 628s 628s if self.closed: 628s raise RuntimeError("Session is closed") 628s 628s ssl = _merge_ssl_params(ssl, verify_ssl, ssl_context, fingerprint) 628s 628s if data is not None and json is not None: 628s raise ValueError( 628s "data and json parameters can not be used at the same time" 628s ) 628s elif json is not None: 628s data = payload.JsonPayload(json, dumps=self._json_serialize) 628s 628s if not isinstance(chunked, bool) and chunked is not None: 628s warnings.warn("Chunk size is deprecated #1615", DeprecationWarning) 628s 628s redirects = 0 628s history: List[ClientResponse] = [] 628s version = self._version 628s params = params or {} 628s 628s # Merge with default headers and transform to CIMultiDict 628s headers = self._prepare_headers(headers) 628s 628s try: 628s url = self._build_url(str_or_url) 628s except ValueError as e: 628s raise InvalidUrlClientError(str_or_url) from e 628s 628s assert self._connector is not None 628s if url.scheme not in self._connector.allowed_protocol_schema_set: 628s raise NonHttpUrlClientError(url) 628s 628s skip_headers: Optional[Iterable[istr]] 628s if skip_auto_headers is not None: 628s skip_headers = { 628s istr(i) for i in skip_auto_headers 628s } | self._skip_auto_headers 628s elif self._skip_auto_headers: 628s skip_headers = self._skip_auto_headers 628s else: 628s skip_headers = None 628s 628s if proxy is None: 628s proxy = self._default_proxy 628s if proxy_auth is None: 628s proxy_auth = self._default_proxy_auth 628s 628s if proxy is None: 628s proxy_headers = None 628s else: 628s proxy_headers = self._prepare_headers(proxy_headers) 628s try: 628s proxy = URL(proxy) 628s except ValueError as e: 628s raise InvalidURL(proxy) from e 628s 628s if timeout is sentinel: 628s real_timeout: ClientTimeout = self._timeout 628s else: 628s if not isinstance(timeout, ClientTimeout): 628s real_timeout = ClientTimeout(total=timeout) 628s else: 628s real_timeout = timeout 628s # timeout is cumulative for all request operations 628s # (request, redirects, responses, data consuming) 628s tm = TimeoutHandle( 628s self._loop, real_timeout.total, ceil_threshold=real_timeout.ceil_threshold 628s ) 628s handle = tm.start() 628s 628s if read_bufsize is None: 628s read_bufsize = self._read_bufsize 628s 628s if auto_decompress is None: 628s auto_decompress = self._auto_decompress 628s 628s if max_line_size is None: 628s max_line_size = self._max_line_size 628s 628s if max_field_size is None: 628s max_field_size = self._max_field_size 628s 628s traces = [ 628s Trace( 628s self, 628s trace_config, 628s trace_config.trace_config_ctx(trace_request_ctx=trace_request_ctx), 628s ) 628s for trace_config in self._trace_configs 628s ] 628s 628s for trace in traces: 628s await trace.send_request_start(method, url.update_query(params), headers) 628s 628s timer = tm.timer() 628s try: 628s with timer: 628s # https://www.rfc-editor.org/rfc/rfc9112.html#name-retrying-requests 628s retry_persistent_connection = ( 628s self._retry_connection and method in IDEMPOTENT_METHODS 628s ) 628s while True: 628s url, auth_from_url = strip_auth_from_url(url) 628s if not url.raw_host: 628s # NOTE: Bail early, otherwise, causes `InvalidURL` through 628s # NOTE: `self._request_class()` below. 628s err_exc_cls = ( 628s InvalidUrlRedirectClientError 628s if redirects 628s else InvalidUrlClientError 628s ) 628s raise err_exc_cls(url) 628s # If `auth` was passed for an already authenticated URL, 628s # disallow only if this is the initial URL; this is to avoid issues 628s # with sketchy redirects that are not the caller's responsibility 628s if not history and (auth and auth_from_url): 628s raise ValueError( 628s "Cannot combine AUTH argument with " 628s "credentials encoded in URL" 628s ) 628s 628s # Override the auth with the one from the URL only if we 628s # have no auth, or if we got an auth from a redirect URL 628s if auth is None or (history and auth_from_url is not None): 628s auth = auth_from_url 628s 628s if ( 628s auth is None 628s and self._default_auth 628s and ( 628s not self._base_url or self._base_url_origin == url.origin() 628s ) 628s ): 628s auth = self._default_auth 628s # It would be confusing if we support explicit 628s # Authorization header with auth argument 628s if ( 628s headers is not None 628s and auth is not None 628s and hdrs.AUTHORIZATION in headers 628s ): 628s raise ValueError( 628s "Cannot combine AUTHORIZATION header " 628s "with AUTH argument or credentials " 628s "encoded in URL" 628s ) 628s 628s all_cookies = self._cookie_jar.filter_cookies(url) 628s 628s if cookies is not None: 628s tmp_cookie_jar = CookieJar( 628s quote_cookie=self._cookie_jar.quote_cookie 628s ) 628s tmp_cookie_jar.update_cookies(cookies) 628s req_cookies = tmp_cookie_jar.filter_cookies(url) 628s if req_cookies: 628s all_cookies.load(req_cookies) 628s 628s if proxy is not None: 628s proxy = URL(proxy) 628s elif self._trust_env: 628s with suppress(LookupError): 628s proxy, proxy_auth = get_env_proxy_for_url(url) 628s 628s req = self._request_class( 628s method, 628s url, 628s params=params, 628s headers=headers, 628s skip_auto_headers=skip_headers, 628s data=data, 628s cookies=all_cookies, 628s auth=auth, 628s version=version, 628s compress=compress, 628s chunked=chunked, 628s expect100=expect100, 628s loop=self._loop, 628s response_class=self._response_class, 628s proxy=proxy, 628s proxy_auth=proxy_auth, 628s timer=timer, 628s session=self, 628s ssl=ssl if ssl is not None else True, 628s server_hostname=server_hostname, 628s proxy_headers=proxy_headers, 628s traces=traces, 628s trust_env=self.trust_env, 628s ) 628s 628s # connection timeout 628s try: 628s > conn = await self._connector.connect( 628s req, traces=traces, timeout=real_timeout 628s ) 628s 628s /usr/lib/python3/dist-packages/aiohttp/client.py:703: 628s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 628s /usr/lib/python3/dist-packages/aiohttp/connector.py:548: in connect 628s proto = await self._create_connection(req, traces, timeout) 628s /usr/lib/python3/dist-packages/aiohttp/connector.py:1056: in _create_connection 628s _, proto = await self._create_direct_connection(req, traces, timeout) 628s /usr/lib/python3/dist-packages/aiohttp/connector.py:1400: in _create_direct_connection 628s raise last_exc 628s /usr/lib/python3/dist-packages/aiohttp/connector.py:1369: in _create_direct_connection 628s transp, proto = await self._wrap_create_connection( 628s /usr/lib/python3/dist-packages/aiohttp/connector.py:1112: in _wrap_create_connection 628s async with ceil_timeout( 628s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 628s 628s self = 628s exc_type = 628s exc_val = CancelledError(), exc_tb = 628s 628s async def __aexit__( 628s self, 628s exc_type: Optional[Type[BaseException]], 628s exc_val: Optional[BaseException], 628s exc_tb: Optional[TracebackType], 628s ) -> Optional[bool]: 628s assert self._state in (_State.ENTERED, _State.EXPIRING) 628s 628s if self._timeout_handler is not None: 628s self._timeout_handler.cancel() 628s self._timeout_handler = None 628s 628s if self._state is _State.EXPIRING: 628s self._state = _State.EXPIRED 628s 628s if self._task.uncancel() <= self._cancelling and exc_type is not None: 628s # Since there are no new cancel requests, we're 628s # handling this. 628s if issubclass(exc_type, exceptions.CancelledError): 628s > raise TimeoutError from exc_val 628s E TimeoutError 628s 628s /usr/lib/python3.13/asyncio/timeouts.py:116: TimeoutError 628s 628s The above exception was the direct cause of the following exception: 628s 628s self = 628s url = 'https://raw.githubusercontent.com/mwaskom/seaborn-data/83bfba7/brain_networks.csv' 628s kwargs = {}, info = {} 628s session = 628s policy = 'get' 628s 628s async def _info(self, url, **kwargs): 628s """Get info of URL 628s 628s Tries to access location via HEAD, and then GET methods, but does 628s not fetch the data. 628s 628s It is possible that the server does not supply any size information, in 628s which case size will be given as None (and certain operations on the 628s corresponding file will not work). 628s """ 628s info = {} 628s session = await self.set_session() 628s 628s for policy in ["head", "get"]: 628s try: 628s info.update( 628s > await _file_info( 628s self.encode_url(url), 628s size_policy=policy, 628s session=session, 628s **self.kwargs, 628s **kwargs, 628s ) 628s ) 628s 628s /usr/lib/python3/dist-packages/fsspec/implementations/http.py:427: 628s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 628s /usr/lib/python3/dist-packages/fsspec/implementations/http.py:839: in _file_info 628s r = await session.get(url, allow_redirects=ar, **kwargs) 628s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 628s 628s self = , method = 'GET' 628s str_or_url = URL('https://raw.githubusercontent.com/mwaskom/seaborn-data/83bfba7/brain_networks.csv') 628s 628s async def _request( 628s self, 628s method: str, 628s str_or_url: StrOrURL, 628s *, 628s params: Query = None, 628s data: Any = None, 628s json: Any = None, 628s cookies: Optional[LooseCookies] = None, 628s headers: Optional[LooseHeaders] = None, 628s skip_auto_headers: Optional[Iterable[str]] = None, 628s auth: Optional[BasicAuth] = None, 628s allow_redirects: bool = True, 628s max_redirects: int = 10, 628s compress: Union[str, bool, None] = None, 628s chunked: Optional[bool] = None, 628s expect100: bool = False, 628s raise_for_status: Union[ 628s None, bool, Callable[[ClientResponse], Awaitable[None]] 628s ] = None, 628s read_until_eof: bool = True, 628s proxy: Optional[StrOrURL] = None, 628s proxy_auth: Optional[BasicAuth] = None, 628s timeout: Union[ClientTimeout, _SENTINEL] = sentinel, 628s verify_ssl: Optional[bool] = None, 628s fingerprint: Optional[bytes] = None, 628s ssl_context: Optional[SSLContext] = None, 628s ssl: Union[SSLContext, bool, Fingerprint] = True, 628s server_hostname: Optional[str] = None, 628s proxy_headers: Optional[LooseHeaders] = None, 628s trace_request_ctx: Optional[Mapping[str, Any]] = None, 628s read_bufsize: Optional[int] = None, 628s auto_decompress: Optional[bool] = None, 628s max_line_size: Optional[int] = None, 628s max_field_size: Optional[int] = None, 628s ) -> ClientResponse: 628s 628s # NOTE: timeout clamps existing connect and read timeouts. We cannot 628s # set the default to None because we need to detect if the user wants 628s # to use the existing timeouts by setting timeout to None. 628s 628s if self.closed: 628s raise RuntimeError("Session is closed") 628s 628s ssl = _merge_ssl_params(ssl, verify_ssl, ssl_context, fingerprint) 628s 628s if data is not None and json is not None: 628s raise ValueError( 628s "data and json parameters can not be used at the same time" 628s ) 628s elif json is not None: 628s data = payload.JsonPayload(json, dumps=self._json_serialize) 628s 628s if not isinstance(chunked, bool) and chunked is not None: 628s warnings.warn("Chunk size is deprecated #1615", DeprecationWarning) 628s 628s redirects = 0 628s history: List[ClientResponse] = [] 628s version = self._version 628s params = params or {} 628s 628s # Merge with default headers and transform to CIMultiDict 628s headers = self._prepare_headers(headers) 628s 628s try: 628s url = self._build_url(str_or_url) 628s except ValueError as e: 628s raise InvalidUrlClientError(str_or_url) from e 628s 628s assert self._connector is not None 628s if url.scheme not in self._connector.allowed_protocol_schema_set: 628s raise NonHttpUrlClientError(url) 628s 628s skip_headers: Optional[Iterable[istr]] 628s if skip_auto_headers is not None: 628s skip_headers = { 628s istr(i) for i in skip_auto_headers 628s } | self._skip_auto_headers 628s elif self._skip_auto_headers: 628s skip_headers = self._skip_auto_headers 628s else: 628s skip_headers = None 628s 628s if proxy is None: 628s proxy = self._default_proxy 628s if proxy_auth is None: 628s proxy_auth = self._default_proxy_auth 628s 628s if proxy is None: 628s proxy_headers = None 628s else: 628s proxy_headers = self._prepare_headers(proxy_headers) 628s try: 628s proxy = URL(proxy) 628s except ValueError as e: 628s raise InvalidURL(proxy) from e 628s 628s if timeout is sentinel: 628s real_timeout: ClientTimeout = self._timeout 628s else: 628s if not isinstance(timeout, ClientTimeout): 628s real_timeout = ClientTimeout(total=timeout) 628s else: 628s real_timeout = timeout 628s # timeout is cumulative for all request operations 628s # (request, redirects, responses, data consuming) 628s tm = TimeoutHandle( 628s self._loop, real_timeout.total, ceil_threshold=real_timeout.ceil_threshold 628s ) 628s handle = tm.start() 628s 628s if read_bufsize is None: 628s read_bufsize = self._read_bufsize 628s 628s if auto_decompress is None: 628s auto_decompress = self._auto_decompress 628s 628s if max_line_size is None: 628s max_line_size = self._max_line_size 628s 628s if max_field_size is None: 628s max_field_size = self._max_field_size 628s 628s traces = [ 628s Trace( 628s self, 628s trace_config, 628s trace_config.trace_config_ctx(trace_request_ctx=trace_request_ctx), 628s ) 628s for trace_config in self._trace_configs 628s ] 628s 628s for trace in traces: 628s await trace.send_request_start(method, url.update_query(params), headers) 628s 628s timer = tm.timer() 628s try: 628s with timer: 628s # https://www.rfc-editor.org/rfc/rfc9112.html#name-retrying-requests 628s retry_persistent_connection = ( 628s self._retry_connection and method in IDEMPOTENT_METHODS 628s ) 628s while True: 628s url, auth_from_url = strip_auth_from_url(url) 628s if not url.raw_host: 628s # NOTE: Bail early, otherwise, causes `InvalidURL` through 628s # NOTE: `self._request_class()` below. 628s err_exc_cls = ( 628s InvalidUrlRedirectClientError 628s if redirects 628s else InvalidUrlClientError 628s ) 628s raise err_exc_cls(url) 628s # If `auth` was passed for an already authenticated URL, 628s # disallow only if this is the initial URL; this is to avoid issues 628s # with sketchy redirects that are not the caller's responsibility 628s if not history and (auth and auth_from_url): 628s raise ValueError( 628s "Cannot combine AUTH argument with " 628s "credentials encoded in URL" 628s ) 628s 628s # Override the auth with the one from the URL only if we 628s # have no auth, or if we got an auth from a redirect URL 628s if auth is None or (history and auth_from_url is not None): 628s auth = auth_from_url 628s 628s if ( 628s auth is None 628s and self._default_auth 628s and ( 628s not self._base_url or self._base_url_origin == url.origin() 628s ) 628s ): 628s auth = self._default_auth 628s # It would be confusing if we support explicit 628s # Authorization header with auth argument 628s if ( 628s headers is not None 628s and auth is not None 628s and hdrs.AUTHORIZATION in headers 628s ): 628s raise ValueError( 628s "Cannot combine AUTHORIZATION header " 628s "with AUTH argument or credentials " 628s "encoded in URL" 628s ) 628s 628s all_cookies = self._cookie_jar.filter_cookies(url) 628s 628s if cookies is not None: 628s tmp_cookie_jar = CookieJar( 628s quote_cookie=self._cookie_jar.quote_cookie 628s ) 628s tmp_cookie_jar.update_cookies(cookies) 628s req_cookies = tmp_cookie_jar.filter_cookies(url) 628s if req_cookies: 628s all_cookies.load(req_cookies) 628s 628s if proxy is not None: 628s proxy = URL(proxy) 628s elif self._trust_env: 628s with suppress(LookupError): 628s proxy, proxy_auth = get_env_proxy_for_url(url) 628s 628s req = self._request_class( 628s method, 628s url, 628s params=params, 628s headers=headers, 628s skip_auto_headers=skip_headers, 628s data=data, 628s cookies=all_cookies, 628s auth=auth, 628s version=version, 628s compress=compress, 628s chunked=chunked, 628s expect100=expect100, 628s loop=self._loop, 628s response_class=self._response_class, 628s proxy=proxy, 628s proxy_auth=proxy_auth, 628s timer=timer, 628s session=self, 628s ssl=ssl if ssl is not None else True, 628s server_hostname=server_hostname, 628s proxy_headers=proxy_headers, 628s traces=traces, 628s trust_env=self.trust_env, 628s ) 628s 628s # connection timeout 628s try: 628s conn = await self._connector.connect( 628s req, traces=traces, timeout=real_timeout 628s ) 628s except asyncio.TimeoutError as exc: 628s > raise ConnectionTimeoutError( 628s f"Connection timeout to host {url}" 628s ) from exc 628s E aiohttp.client_exceptions.ConnectionTimeoutError: Connection timeout to host https://raw.githubusercontent.com/mwaskom/seaborn-data/83bfba7/brain_networks.csv 628s 628s /usr/lib/python3/dist-packages/aiohttp/client.py:707: ConnectionTimeoutError 628s 628s The above exception was the direct cause of the following exception: 628s 628s def test_github_open_large_file(): 628s # test opening a large file >1 MB 628s # use block_size=0 to get a streaming interface to the file, ensuring that 628s # we fetch only the parts we need instead of downloading the full file all 628s # at once 628s > with fsspec.open( 628s "github://mwaskom:seaborn-data@83bfba7/brain_networks.csv", block_size=0 628s ) as f: 628s 628s /tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/test_github.py:15: 628s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 628s /usr/lib/python3/dist-packages/fsspec/core.py:105: in __enter__ 628s f = self.fs.open(self.path, mode=mode) 628s /usr/lib/python3/dist-packages/fsspec/spec.py:1310: in open 628s f = self._open( 628s /usr/lib/python3/dist-packages/fsspec/implementations/github.py:261: in _open 628s return self.http_fs.open( 628s /usr/lib/python3/dist-packages/fsspec/spec.py:1310: in open 628s f = self._open( 628s /usr/lib/python3/dist-packages/fsspec/implementations/http.py:366: in _open 628s size = size or info.update(self.info(path, **kwargs)) or info["size"] 628s /usr/lib/python3/dist-packages/fsspec/asyn.py:118: in wrapper 628s return sync(self.loop, func, *args, **kwargs) 628s /usr/lib/python3/dist-packages/fsspec/asyn.py:103: in sync 628s raise return_result 628s /usr/lib/python3/dist-packages/fsspec/asyn.py:56: in _runner 628s result[0] = await coro 628s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 628s 628s self = 628s url = 'https://raw.githubusercontent.com/mwaskom/seaborn-data/83bfba7/brain_networks.csv' 628s kwargs = {}, info = {} 628s session = 628s policy = 'get' 628s 628s async def _info(self, url, **kwargs): 628s """Get info of URL 628s 628s Tries to access location via HEAD, and then GET methods, but does 628s not fetch the data. 628s 628s It is possible that the server does not supply any size information, in 628s which case size will be given as None (and certain operations on the 628s corresponding file will not work). 628s """ 628s info = {} 628s session = await self.set_session() 628s 628s for policy in ["head", "get"]: 628s try: 628s info.update( 628s await _file_info( 628s self.encode_url(url), 628s size_policy=policy, 628s session=session, 628s **self.kwargs, 628s **kwargs, 628s ) 628s ) 628s if info.get("size") is not None: 628s break 628s except Exception as exc: 628s if policy == "get": 628s # If get failed, then raise a FileNotFoundError 628s > raise FileNotFoundError(url) from exc 628s E FileNotFoundError: https://raw.githubusercontent.com/mwaskom/seaborn-data/83bfba7/brain_networks.csv 628s 628s /usr/lib/python3/dist-packages/fsspec/implementations/http.py:440: FileNotFoundError 628s __________________________ test_github_open_lfs_file ___________________________ 628s 628s self = 628s addr_infos = [] 628s req = 628s timeout = ClientTimeout(total=300, connect=None, sock_read=None, sock_connect=30, ceil_threshold=5) 628s client_error = 628s args = (functools.partial(, loop=<_UnixSelectorEventLoop running=True closed=False debug=False>),) 628s kwargs = {'server_hostname': 'media.githubusercontent.com', 'ssl': } 628s 628s async def _wrap_create_connection( 628s self, 628s *args: Any, 628s addr_infos: List[aiohappyeyeballs.AddrInfoType], 628s req: ClientRequest, 628s timeout: "ClientTimeout", 628s client_error: Type[Exception] = ClientConnectorError, 628s **kwargs: Any, 628s ) -> Tuple[asyncio.Transport, ResponseHandler]: 628s try: 628s async with ceil_timeout( 628s timeout.sock_connect, ceil_threshold=timeout.ceil_threshold 628s ): 628s > sock = await aiohappyeyeballs.start_connection( 628s addr_infos=addr_infos, 628s local_addr_infos=self._local_addr_infos, 628s happy_eyeballs_delay=self._happy_eyeballs_delay, 628s interleave=self._interleave, 628s loop=self._loop, 628s ) 628s 628s /usr/lib/python3/dist-packages/aiohttp/connector.py:1115: 628s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 628s /usr/lib/python3/dist-packages/aiohappyeyeballs/impl.py:87: in start_connection 628s sock, _, _ = await _staggered.staggered_race( 628s /usr/lib/python3/dist-packages/aiohappyeyeballs/_staggered.py:165: in staggered_race 628s done = await _wait_one( 628s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 628s 628s futures = {.run_one_coro() done, defined at /usr/lib/python3/dist-packages/aiohappyeyeballs/_staggered.py:115> result=None>} 628s loop = <_UnixSelectorEventLoop running=True closed=False debug=False> 628s 628s async def _wait_one( 628s futures: "Iterable[asyncio.Future[Any]]", 628s loop: asyncio.AbstractEventLoop, 628s ) -> _T: 628s """Wait for the first future to complete.""" 628s wait_next = loop.create_future() 628s 628s def _on_completion(fut: "asyncio.Future[Any]") -> None: 628s if not wait_next.done(): 628s wait_next.set_result(fut) 628s 628s for f in futures: 628s f.add_done_callback(_on_completion) 628s 628s try: 628s > return await wait_next 628s E asyncio.exceptions.CancelledError 628s 628s /usr/lib/python3/dist-packages/aiohappyeyeballs/_staggered.py:46: CancelledError 628s 628s The above exception was the direct cause of the following exception: 628s 628s self = , method = 'GET' 628s str_or_url = URL('https://media.githubusercontent.com/media/cBioPortal/datahub/55cd360/public/acc_2019/data_gene_panel_matrix.txt') 628s 628s async def _request( 628s self, 628s method: str, 628s str_or_url: StrOrURL, 628s *, 628s params: Query = None, 628s data: Any = None, 628s json: Any = None, 628s cookies: Optional[LooseCookies] = None, 628s headers: Optional[LooseHeaders] = None, 628s skip_auto_headers: Optional[Iterable[str]] = None, 628s auth: Optional[BasicAuth] = None, 628s allow_redirects: bool = True, 628s max_redirects: int = 10, 628s compress: Union[str, bool, None] = None, 628s chunked: Optional[bool] = None, 628s expect100: bool = False, 628s raise_for_status: Union[ 628s None, bool, Callable[[ClientResponse], Awaitable[None]] 628s ] = None, 628s read_until_eof: bool = True, 628s proxy: Optional[StrOrURL] = None, 628s proxy_auth: Optional[BasicAuth] = None, 628s timeout: Union[ClientTimeout, _SENTINEL] = sentinel, 628s verify_ssl: Optional[bool] = None, 628s fingerprint: Optional[bytes] = None, 628s ssl_context: Optional[SSLContext] = None, 628s ssl: Union[SSLContext, bool, Fingerprint] = True, 628s server_hostname: Optional[str] = None, 628s proxy_headers: Optional[LooseHeaders] = None, 628s trace_request_ctx: Optional[Mapping[str, Any]] = None, 628s read_bufsize: Optional[int] = None, 628s auto_decompress: Optional[bool] = None, 628s max_line_size: Optional[int] = None, 628s max_field_size: Optional[int] = None, 628s ) -> ClientResponse: 628s 628s # NOTE: timeout clamps existing connect and read timeouts. We cannot 628s # set the default to None because we need to detect if the user wants 628s # to use the existing timeouts by setting timeout to None. 628s 628s if self.closed: 628s raise RuntimeError("Session is closed") 628s 628s ssl = _merge_ssl_params(ssl, verify_ssl, ssl_context, fingerprint) 628s 628s if data is not None and json is not None: 628s raise ValueError( 628s "data and json parameters can not be used at the same time" 628s ) 628s elif json is not None: 628s data = payload.JsonPayload(json, dumps=self._json_serialize) 628s 628s if not isinstance(chunked, bool) and chunked is not None: 628s warnings.warn("Chunk size is deprecated #1615", DeprecationWarning) 628s 628s redirects = 0 628s history: List[ClientResponse] = [] 628s version = self._version 628s params = params or {} 628s 628s # Merge with default headers and transform to CIMultiDict 628s headers = self._prepare_headers(headers) 628s 628s try: 628s url = self._build_url(str_or_url) 628s except ValueError as e: 628s raise InvalidUrlClientError(str_or_url) from e 628s 628s assert self._connector is not None 628s if url.scheme not in self._connector.allowed_protocol_schema_set: 628s raise NonHttpUrlClientError(url) 628s 628s skip_headers: Optional[Iterable[istr]] 628s if skip_auto_headers is not None: 628s skip_headers = { 628s istr(i) for i in skip_auto_headers 628s } | self._skip_auto_headers 628s elif self._skip_auto_headers: 628s skip_headers = self._skip_auto_headers 628s else: 628s skip_headers = None 628s 628s if proxy is None: 628s proxy = self._default_proxy 628s if proxy_auth is None: 628s proxy_auth = self._default_proxy_auth 628s 628s if proxy is None: 628s proxy_headers = None 628s else: 628s proxy_headers = self._prepare_headers(proxy_headers) 628s try: 628s proxy = URL(proxy) 628s except ValueError as e: 628s raise InvalidURL(proxy) from e 628s 628s if timeout is sentinel: 628s real_timeout: ClientTimeout = self._timeout 628s else: 628s if not isinstance(timeout, ClientTimeout): 628s real_timeout = ClientTimeout(total=timeout) 628s else: 628s real_timeout = timeout 628s # timeout is cumulative for all request operations 628s # (request, redirects, responses, data consuming) 628s tm = TimeoutHandle( 628s self._loop, real_timeout.total, ceil_threshold=real_timeout.ceil_threshold 628s ) 628s handle = tm.start() 628s 628s if read_bufsize is None: 628s read_bufsize = self._read_bufsize 628s 628s if auto_decompress is None: 628s auto_decompress = self._auto_decompress 628s 628s if max_line_size is None: 628s max_line_size = self._max_line_size 628s 628s if max_field_size is None: 628s max_field_size = self._max_field_size 628s 628s traces = [ 628s Trace( 628s self, 628s trace_config, 628s trace_config.trace_config_ctx(trace_request_ctx=trace_request_ctx), 628s ) 628s for trace_config in self._trace_configs 628s ] 628s 628s for trace in traces: 628s await trace.send_request_start(method, url.update_query(params), headers) 628s 628s timer = tm.timer() 628s try: 628s with timer: 628s # https://www.rfc-editor.org/rfc/rfc9112.html#name-retrying-requests 628s retry_persistent_connection = ( 628s self._retry_connection and method in IDEMPOTENT_METHODS 628s ) 628s while True: 628s url, auth_from_url = strip_auth_from_url(url) 628s if not url.raw_host: 628s # NOTE: Bail early, otherwise, causes `InvalidURL` through 628s # NOTE: `self._request_class()` below. 628s err_exc_cls = ( 628s InvalidUrlRedirectClientError 628s if redirects 628s else InvalidUrlClientError 628s ) 628s raise err_exc_cls(url) 628s # If `auth` was passed for an already authenticated URL, 628s # disallow only if this is the initial URL; this is to avoid issues 628s # with sketchy redirects that are not the caller's responsibility 628s if not history and (auth and auth_from_url): 628s raise ValueError( 628s "Cannot combine AUTH argument with " 628s "credentials encoded in URL" 628s ) 628s 628s # Override the auth with the one from the URL only if we 628s # have no auth, or if we got an auth from a redirect URL 628s if auth is None or (history and auth_from_url is not None): 628s auth = auth_from_url 628s 628s if ( 628s auth is None 628s and self._default_auth 628s and ( 628s not self._base_url or self._base_url_origin == url.origin() 628s ) 628s ): 628s auth = self._default_auth 628s # It would be confusing if we support explicit 628s # Authorization header with auth argument 628s if ( 628s headers is not None 628s and auth is not None 628s and hdrs.AUTHORIZATION in headers 628s ): 628s raise ValueError( 628s "Cannot combine AUTHORIZATION header " 628s "with AUTH argument or credentials " 628s "encoded in URL" 628s ) 628s 628s all_cookies = self._cookie_jar.filter_cookies(url) 628s 628s if cookies is not None: 628s tmp_cookie_jar = CookieJar( 628s quote_cookie=self._cookie_jar.quote_cookie 628s ) 628s tmp_cookie_jar.update_cookies(cookies) 628s req_cookies = tmp_cookie_jar.filter_cookies(url) 628s if req_cookies: 628s all_cookies.load(req_cookies) 628s 628s if proxy is not None: 628s proxy = URL(proxy) 628s elif self._trust_env: 628s with suppress(LookupError): 628s proxy, proxy_auth = get_env_proxy_for_url(url) 628s 628s req = self._request_class( 628s method, 628s url, 628s params=params, 628s headers=headers, 628s skip_auto_headers=skip_headers, 628s data=data, 628s cookies=all_cookies, 628s auth=auth, 628s version=version, 628s compress=compress, 628s chunked=chunked, 628s expect100=expect100, 628s loop=self._loop, 628s response_class=self._response_class, 628s proxy=proxy, 628s proxy_auth=proxy_auth, 628s timer=timer, 628s session=self, 628s ssl=ssl if ssl is not None else True, 628s server_hostname=server_hostname, 628s proxy_headers=proxy_headers, 628s traces=traces, 628s trust_env=self.trust_env, 628s ) 628s 628s # connection timeout 628s try: 628s > conn = await self._connector.connect( 628s req, traces=traces, timeout=real_timeout 628s ) 628s 628s /usr/lib/python3/dist-packages/aiohttp/client.py:703: 628s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 628s /usr/lib/python3/dist-packages/aiohttp/connector.py:548: in connect 628s proto = await self._create_connection(req, traces, timeout) 628s /usr/lib/python3/dist-packages/aiohttp/connector.py:1056: in _create_connection 628s _, proto = await self._create_direct_connection(req, traces, timeout) 628s /usr/lib/python3/dist-packages/aiohttp/connector.py:1400: in _create_direct_connection 628s raise last_exc 628s /usr/lib/python3/dist-packages/aiohttp/connector.py:1369: in _create_direct_connection 628s transp, proto = await self._wrap_create_connection( 628s /usr/lib/python3/dist-packages/aiohttp/connector.py:1112: in _wrap_create_connection 628s async with ceil_timeout( 628s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 628s 628s self = 628s exc_type = 628s exc_val = CancelledError(), exc_tb = 628s 628s async def __aexit__( 628s self, 628s exc_type: Optional[Type[BaseException]], 628s exc_val: Optional[BaseException], 628s exc_tb: Optional[TracebackType], 628s ) -> Optional[bool]: 628s assert self._state in (_State.ENTERED, _State.EXPIRING) 628s 628s if self._timeout_handler is not None: 628s self._timeout_handler.cancel() 628s self._timeout_handler = None 628s 628s if self._state is _State.EXPIRING: 628s self._state = _State.EXPIRED 628s 628s if self._task.uncancel() <= self._cancelling and exc_type is not None: 628s # Since there are no new cancel requests, we're 628s # handling this. 628s if issubclass(exc_type, exceptions.CancelledError): 628s > raise TimeoutError from exc_val 628s E TimeoutError 628s 628s /usr/lib/python3.13/asyncio/timeouts.py:116: TimeoutError 628s 628s The above exception was the direct cause of the following exception: 628s 628s self = 628s url = 'https://media.githubusercontent.com/media/cBioPortal/datahub/55cd360/public/acc_2019/data_gene_panel_matrix.txt' 628s kwargs = {}, info = {} 628s session = 628s policy = 'get' 628s 628s async def _info(self, url, **kwargs): 628s """Get info of URL 628s 628s Tries to access location via HEAD, and then GET methods, but does 628s not fetch the data. 628s 628s It is possible that the server does not supply any size information, in 628s which case size will be given as None (and certain operations on the 628s corresponding file will not work). 628s """ 628s info = {} 628s session = await self.set_session() 628s 628s for policy in ["head", "get"]: 628s try: 628s info.update( 628s > await _file_info( 628s self.encode_url(url), 628s size_policy=policy, 628s session=session, 628s **self.kwargs, 628s **kwargs, 628s ) 628s ) 628s 628s /usr/lib/python3/dist-packages/fsspec/implementations/http.py:427: 628s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 628s /usr/lib/python3/dist-packages/fsspec/implementations/http.py:839: in _file_info 628s r = await session.get(url, allow_redirects=ar, **kwargs) 628s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 628s 628s self = , method = 'GET' 628s str_or_url = URL('https://media.githubusercontent.com/media/cBioPortal/datahub/55cd360/public/acc_2019/data_gene_panel_matrix.txt') 628s 628s async def _request( 628s self, 628s method: str, 628s str_or_url: StrOrURL, 628s *, 628s params: Query = None, 628s data: Any = None, 628s json: Any = None, 628s cookies: Optional[LooseCookies] = None, 628s headers: Optional[LooseHeaders] = None, 628s skip_auto_headers: Optional[Iterable[str]] = None, 628s auth: Optional[BasicAuth] = None, 628s allow_redirects: bool = True, 628s max_redirects: int = 10, 628s compress: Union[str, bool, None] = None, 628s chunked: Optional[bool] = None, 628s expect100: bool = False, 628s raise_for_status: Union[ 628s None, bool, Callable[[ClientResponse], Awaitable[None]] 628s ] = None, 628s read_until_eof: bool = True, 628s proxy: Optional[StrOrURL] = None, 628s proxy_auth: Optional[BasicAuth] = None, 628s timeout: Union[ClientTimeout, _SENTINEL] = sentinel, 628s verify_ssl: Optional[bool] = None, 628s fingerprint: Optional[bytes] = None, 628s ssl_context: Optional[SSLContext] = None, 628s ssl: Union[SSLContext, bool, Fingerprint] = True, 628s server_hostname: Optional[str] = None, 628s proxy_headers: Optional[LooseHeaders] = None, 628s trace_request_ctx: Optional[Mapping[str, Any]] = None, 628s read_bufsize: Optional[int] = None, 628s auto_decompress: Optional[bool] = None, 628s max_line_size: Optional[int] = None, 628s max_field_size: Optional[int] = None, 628s ) -> ClientResponse: 628s 628s # NOTE: timeout clamps existing connect and read timeouts. We cannot 628s # set the default to None because we need to detect if the user wants 628s # to use the existing timeouts by setting timeout to None. 628s 628s if self.closed: 628s raise RuntimeError("Session is closed") 628s 628s ssl = _merge_ssl_params(ssl, verify_ssl, ssl_context, fingerprint) 628s 628s if data is not None and json is not None: 628s raise ValueError( 628s "data and json parameters can not be used at the same time" 628s ) 628s elif json is not None: 628s data = payload.JsonPayload(json, dumps=self._json_serialize) 628s 628s if not isinstance(chunked, bool) and chunked is not None: 628s warnings.warn("Chunk size is deprecated #1615", DeprecationWarning) 628s 628s redirects = 0 628s history: List[ClientResponse] = [] 628s version = self._version 628s params = params or {} 628s 628s # Merge with default headers and transform to CIMultiDict 628s headers = self._prepare_headers(headers) 628s 628s try: 628s url = self._build_url(str_or_url) 628s except ValueError as e: 628s raise InvalidUrlClientError(str_or_url) from e 628s 628s assert self._connector is not None 628s if url.scheme not in self._connector.allowed_protocol_schema_set: 628s raise NonHttpUrlClientError(url) 628s 628s skip_headers: Optional[Iterable[istr]] 628s if skip_auto_headers is not None: 628s skip_headers = { 628s istr(i) for i in skip_auto_headers 628s } | self._skip_auto_headers 628s elif self._skip_auto_headers: 628s skip_headers = self._skip_auto_headers 628s else: 628s skip_headers = None 628s 628s if proxy is None: 628s proxy = self._default_proxy 628s if proxy_auth is None: 628s proxy_auth = self._default_proxy_auth 628s 628s if proxy is None: 628s proxy_headers = None 628s else: 628s proxy_headers = self._prepare_headers(proxy_headers) 628s try: 628s proxy = URL(proxy) 628s except ValueError as e: 628s raise InvalidURL(proxy) from e 628s 628s if timeout is sentinel: 628s real_timeout: ClientTimeout = self._timeout 628s else: 628s if not isinstance(timeout, ClientTimeout): 628s real_timeout = ClientTimeout(total=timeout) 628s else: 628s real_timeout = timeout 628s # timeout is cumulative for all request operations 628s # (request, redirects, responses, data consuming) 628s tm = TimeoutHandle( 628s self._loop, real_timeout.total, ceil_threshold=real_timeout.ceil_threshold 628s ) 628s handle = tm.start() 628s 628s if read_bufsize is None: 628s read_bufsize = self._read_bufsize 628s 628s if auto_decompress is None: 628s auto_decompress = self._auto_decompress 628s 628s if max_line_size is None: 628s max_line_size = self._max_line_size 628s 628s if max_field_size is None: 628s max_field_size = self._max_field_size 628s 628s traces = [ 628s Trace( 628s self, 628s trace_config, 628s trace_config.trace_config_ctx(trace_request_ctx=trace_request_ctx), 628s ) 628s for trace_config in self._trace_configs 628s ] 628s 628s for trace in traces: 628s await trace.send_request_start(method, url.update_query(params), headers) 628s 628s timer = tm.timer() 628s try: 628s with timer: 628s # https://www.rfc-editor.org/rfc/rfc9112.html#name-retrying-requests 628s retry_persistent_connection = ( 628s self._retry_connection and method in IDEMPOTENT_METHODS 628s ) 628s while True: 628s url, auth_from_url = strip_auth_from_url(url) 628s if not url.raw_host: 628s # NOTE: Bail early, otherwise, causes `InvalidURL` through 628s # NOTE: `self._request_class()` below. 628s err_exc_cls = ( 628s InvalidUrlRedirectClientError 628s if redirects 628s else InvalidUrlClientError 628s ) 628s raise err_exc_cls(url) 628s # If `auth` was passed for an already authenticated URL, 628s # disallow only if this is the initial URL; this is to avoid issues 628s # with sketchy redirects that are not the caller's responsibility 628s if not history and (auth and auth_from_url): 628s raise ValueError( 628s "Cannot combine AUTH argument with " 628s "credentials encoded in URL" 628s ) 628s 628s # Override the auth with the one from the URL only if we 628s # have no auth, or if we got an auth from a redirect URL 628s if auth is None or (history and auth_from_url is not None): 628s auth = auth_from_url 628s 628s if ( 628s auth is None 628s and self._default_auth 628s and ( 628s not self._base_url or self._base_url_origin == url.origin() 628s ) 628s ): 628s auth = self._default_auth 628s # It would be confusing if we support explicit 628s # Authorization header with auth argument 628s if ( 628s headers is not None 628s and auth is not None 628s and hdrs.AUTHORIZATION in headers 628s ): 628s raise ValueError( 628s "Cannot combine AUTHORIZATION header " 628s "with AUTH argument or credentials " 628s "encoded in URL" 628s ) 628s 628s all_cookies = self._cookie_jar.filter_cookies(url) 628s 628s if cookies is not None: 628s tmp_cookie_jar = CookieJar( 628s quote_cookie=self._cookie_jar.quote_cookie 628s ) 628s tmp_cookie_jar.update_cookies(cookies) 628s req_cookies = tmp_cookie_jar.filter_cookies(url) 628s if req_cookies: 628s all_cookies.load(req_cookies) 628s 628s if proxy is not None: 628s proxy = URL(proxy) 628s elif self._trust_env: 628s with suppress(LookupError): 628s proxy, proxy_auth = get_env_proxy_for_url(url) 628s 628s req = self._request_class( 628s method, 628s url, 628s params=params, 628s headers=headers, 628s skip_auto_headers=skip_headers, 628s data=data, 628s cookies=all_cookies, 628s auth=auth, 628s version=version, 628s compress=compress, 628s chunked=chunked, 628s expect100=expect100, 628s loop=self._loop, 628s response_class=self._response_class, 628s proxy=proxy, 628s proxy_auth=proxy_auth, 628s timer=timer, 628s session=self, 628s ssl=ssl if ssl is not None else True, 628s server_hostname=server_hostname, 628s proxy_headers=proxy_headers, 628s traces=traces, 628s trust_env=self.trust_env, 628s ) 628s 628s # connection timeout 628s try: 628s conn = await self._connector.connect( 628s req, traces=traces, timeout=real_timeout 628s ) 628s except asyncio.TimeoutError as exc: 628s > raise ConnectionTimeoutError( 628s f"Connection timeout to host {url}" 628s ) from exc 628s E aiohttp.client_exceptions.ConnectionTimeoutError: Connection timeout to host https://media.githubusercontent.com/media/cBioPortal/datahub/55cd360/public/acc_2019/data_gene_panel_matrix.txt 628s 628s /usr/lib/python3/dist-packages/aiohttp/client.py:707: ConnectionTimeoutError 628s 628s The above exception was the direct cause of the following exception: 628s 628s def test_github_open_lfs_file(): 628s # test opening a git-lfs tracked file 628s > with fsspec.open( 628s "github://cBioPortal:datahub@55cd360" 628s "/public/acc_2019/data_gene_panel_matrix.txt", 628s block_size=0, 628s ) as f: 628s 628s /tmp/autopkgtest.X5LLDo/autopkgtest_tmp/implementations_tests/test_github.py:24: 628s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 628s /usr/lib/python3/dist-packages/fsspec/core.py:105: in __enter__ 628s f = self.fs.open(self.path, mode=mode) 628s /usr/lib/python3/dist-packages/fsspec/spec.py:1310: in open 628s f = self._open( 628s /usr/lib/python3/dist-packages/fsspec/implementations/github.py:261: in _open 628s return self.http_fs.open( 628s /usr/lib/python3/dist-packages/fsspec/spec.py:1310: in open 628s f = self._open( 628s /usr/lib/python3/dist-packages/fsspec/implementations/http.py:366: in _open 628s size = size or info.update(self.info(path, **kwargs)) or info["size"] 628s /usr/lib/python3/dist-packages/fsspec/asyn.py:118: in wrapper 628s return sync(self.loop, func, *args, **kwargs) 628s /usr/lib/python3/dist-packages/fsspec/asyn.py:103: in sync 628s raise return_result 628s /usr/lib/python3/dist-packages/fsspec/asyn.py:56: in _runner 628s result[0] = await coro 628s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 628s 628s self = 628s url = 'https://media.githubusercontent.com/media/cBioPortal/datahub/55cd360/public/acc_2019/data_gene_panel_matrix.txt' 628s kwargs = {}, info = {} 628s session = 628s policy = 'get' 628s 628s async def _info(self, url, **kwargs): 628s """Get info of URL 628s 628s Tries to access location via HEAD, and then GET methods, but does 628s not fetch the data. 628s 628s It is possible that the server does not supply any size information, in 628s which case size will be given as None (and certain operations on the 628s corresponding file will not work). 628s """ 628s info = {} 628s session = await self.set_session() 628s 628s for policy in ["head", "get"]: 628s try: 628s info.update( 628s await _file_info( 628s self.encode_url(url), 628s size_policy=policy, 628s session=session, 628s **self.kwargs, 628s **kwargs, 628s ) 628s ) 628s if info.get("size") is not None: 628s break 628s except Exception as exc: 628s if policy == "get": 628s # If get failed, then raise a FileNotFoundError 628s > raise FileNotFoundError(url) from exc 628s E FileNotFoundError: https://media.githubusercontent.com/media/cBioPortal/datahub/55cd360/public/acc_2019/data_gene_panel_matrix.txt 628s 628s /usr/lib/python3/dist-packages/fsspec/implementations/http.py:440: FileNotFoundError 628s =========================== short test summary info ============================ 628s FAILED implementations_tests/test_github.py::test_github_open_large_file - Fi... 628s FAILED implementations_tests/test_github.py::test_github_open_lfs_file - File... 628s ===== 2 failed, 892 passed, 115 skipped, 3 deselected in 516.24s (0:08:36) ===== 629s autopkgtest [08:32:00]: test fsspec-tests: -----------------------] 629s fsspec-tests FAIL non-zero exit status 1 629s autopkgtest [08:32:00]: test fsspec-tests: - - - - - - - - - - results - - - - - - - - - - 629s autopkgtest [08:32:00]: @@@@@@@@@@@@@@@@@@@@ summary 629s fsspec-tests FAIL non-zero exit status 1