Package: src:fsspec Version: 2025.7.0-4 Severity: serious Tags: ftbfs forky sid
Dear maintainer: During a rebuild of all packages in unstable, this package failed to build. Below you will find the last part of the build log (probably the most relevant part, but not necessarily). If required, the full build log is available here: https://people.debian.org/~sanvila/build-logs/202512/ About the archive rebuild: The build was made on virtual machines from AWS, using sbuild and a reduced chroot with only build-essential packages. If you cannot reproduce the bug please contact me privately, as I am willing to provide ssh access to a virtual machine where the bug is fully reproducible. If this is really a bug in one of the build-depends, please use reassign and add an affects on src:fsspec, so that this is still visible in the BTS web page for this package. Thanks. -------------------------------------------------------------------------------- [...] debian/rules clean dh clean --with sphinxdoc,python3 --buildsystem=pybuild debian/rules override_dh_auto_clean make[1]: Entering directory '/<<PKGBUILDDIR>>' dh_auto_clean /usr/bin/make -C docs clean make[2]: Entering directory '/<<PKGBUILDDIR>>/docs' make[2]: Leaving directory '/<<PKGBUILDDIR>>/docs' make[1]: Leaving directory '/<<PKGBUILDDIR>>' dh_autoreconf_clean -O--buildsystem=pybuild dh_clean -O--buildsystem=pybuild debian/rules binary dh binary --with sphinxdoc,python3 --buildsystem=pybuild dh_update_autotools_config -O--buildsystem=pybuild dh_autoreconf -O--buildsystem=pybuild [... snipped ...] if other is not None: other -= 1 elif response and response.get_redirect_location(): # Redirect retry? if redirect is not None: redirect -= 1 cause = "too many redirects" response_redirect_location = response.get_redirect_location() if response_redirect_location: redirect_location = response_redirect_location status = response.status else: # Incrementing because of a server error like a 500 in # status_forcelist and the given method is in the allowed_methods cause = ResponseError.GENERIC_ERROR if response and response.status: if status_count is not None: status_count -= 1 cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) status = response.status history = self.history + ( RequestHistory(method, url, error, status, redirect_location), ) new_retry = self.new( total=total, connect=connect, read=read, redirect=redirect, status=status_count, other=other, history=history, ) if new_retry.is_exhausted(): reason = error or ResponseError(cause) > raise MaxRetryError(_pool, url, reason) from reason # type: > ignore[arg-type] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='api.github.com', port=443): Max retries exceeded with url: /gists/2656908684d3965b80c2/2fb2f12f332f7e242b1a2af1f41e30ddf99f24c7 (Caused by ProxyError('Unable to connect to proxy', NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fe549511a90>: Failed to establish a new connection: [Errno 111] Connection refused'))) /usr/lib/python3/dist-packages/urllib3/util/retry.py:519: MaxRetryError During handling of the above exception, another exception occurred: gist_id = '2656908684d3965b80c2' sha = '2fb2f12f332f7e242b1a2af1f41e30ddf99f24c7' file = 'file-that-doesnt-exist.py' @pytest.mark.parametrize( "gist_id,sha,file", [ ( "2656908684d3965b80c2", "2fb2f12f332f7e242b1a2af1f41e30ddf99f24c7", "file-that-doesnt-exist.py", ) ], ) def test_gist_public_missing_file(gist_id, sha, file): with pytest.raises(FileNotFoundError): > fsspec.filesystem("gist", gist_id=gist_id, sha=sha, > filenames=[file]) /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_fsspec/build/fsspec/implementations/tests/test_gist.py:62: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_fsspec/build/fsspec/registry.py:322: in filesystem return cls(**storage_options) ^^^^^^^^^^^^^^^^^^^^^^ /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_fsspec/build/fsspec/spec.py:81: in __call__ obj = super().__call__(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_fsspec/build/fsspec/implementations/gist.py:65: in __init__ self.dircache[""] = self._fetch_file_list() ^^^^^^^^^^^^^^^^^^^^^^^ /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_fsspec/build/fsspec/implementations/gist.py:96: in _fetch_file_list meta = self._fetch_gist_metadata() ^^^^^^^^^^^^^^^^^^^^^^^^^^^ /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_fsspec/build/fsspec/implementations/gist.py:83: in _fetch_gist_metadata r = requests.get(url, timeout=self.timeout, **self.kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/requests/api.py:73: in get return request("get", url, params=params, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/requests/api.py:59: in request return session.request(method=method, url=url, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/requests/sessions.py:589: in request resp = self.send(prep, **send_kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/requests/sessions.py:703: in send r = adapter.send(request, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <requests.adapters.HTTPAdapter object at 0x7fe5496e4770> request = <PreparedRequest [GET]>, stream = False timeout = Timeout(connect=60, read=60, total=None), verify = True, cert = None proxies = OrderedDict({'no': 'localhost', 'https': 'https://127.0.0.1:9/', 'http': 'http://127.0.9.1:9'}) def send( self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None ): """Sends PreparedRequest object. Returns Response object. :param request: The :class:`PreparedRequest <PreparedRequest>` being sent. :param stream: (optional) Whether to stream the request content. :param timeout: (optional) How long to wait for the server to send data before giving up, as a float, or a :ref:`(connect timeout, read timeout) <timeouts>` tuple. :type timeout: float or tuple or urllib3 Timeout object :param verify: (optional) Either a boolean, in which case it controls whether we verify the server's TLS certificate, or a string, in which case it must be a path to a CA bundle to use :param cert: (optional) Any user-provided SSL certificate to be trusted. :param proxies: (optional) The proxies dictionary to apply to the request. :rtype: requests.Response """ try: conn = self.get_connection_with_tls_context( request, verify, proxies=proxies, cert=cert ) except LocationValueError as e: raise InvalidURL(e, request=request) self.cert_verify(conn, request.url, verify, cert) url = self.request_url(request, proxies) self.add_headers( request, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies, ) chunked = not (request.body is None or "Content-Length" in request.headers) if isinstance(timeout, tuple): try: connect, read = timeout timeout = TimeoutSauce(connect=connect, read=read) except ValueError: raise ValueError( f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " f"or a single float to set both timeouts to the same value." ) elif isinstance(timeout, TimeoutSauce): pass else: timeout = TimeoutSauce(connect=timeout, read=timeout) try: resp = conn.urlopen( method=request.method, url=url, body=request.body, headers=request.headers, redirect=False, assert_same_host=False, preload_content=False, decode_content=False, retries=self.max_retries, timeout=timeout, chunked=chunked, ) except (ProtocolError, OSError) as err: raise ConnectionError(err, request=request) except MaxRetryError as e: if isinstance(e.reason, ConnectTimeoutError): # TODO: Remove this in 3.0.0: see #2811 if not isinstance(e.reason, NewConnectionError): raise ConnectTimeout(e, request=request) if isinstance(e.reason, ResponseError): raise RetryError(e, request=request) if isinstance(e.reason, _ProxyError): > raise ProxyError(e, request=request) E requests.exceptions.ProxyError: HTTPSConnectionPool(host='api.github.com', port=443): Max retries exceeded with url: /gists/2656908684d3965b80c2/2fb2f12f332f7e242b1a2af1f41e30ddf99f24c7 (Caused by ProxyError('Unable to connect to proxy', NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fe549511a90>: Failed to establish a new connection: [Errno 111] Connection refused'))) /usr/lib/python3/dist-packages/requests/adapters.py:671: ProxyError =============================== warnings summary =============================== fsspec/tests/test_async.py::test_async_streamed_file_write /usr/lib/python3.14/functools.py:58: RuntimeWarning: coroutine 'test_run_coros_in_chunks.<locals>.runner' was never awaited getattr(wrapper, attr).update(getattr(wrapped, attr, {})) Enable tracemalloc to get traceback where the object was allocated. See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED fsspec/implementations/tests/test_gist.py::test_gist_public_all_files[2656908684d3965b80c2-2fb2f12f332f7e242b1a2af1f41e30ddf99f24c7] FAILED fsspec/implementations/tests/test_gist.py::test_gist_public_one_file[2656908684d3965b80c2-2fb2f12f332f7e242b1a2af1f41e30ddf99f24c7-distributed_error_logs_PY3_7-3-2016] FAILED fsspec/implementations/tests/test_gist.py::test_gist_public_missing_file[2656908684d3965b80c2-2fb2f12f332f7e242b1a2af1f41e30ddf99f24c7-file-that-doesnt-exist.py] = 3 failed, 1428 passed, 339 skipped, 3 deselected, 2 xfailed, 1 warning in 23.15s = E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_fsspec/build; python3.14 -m pytest --ignore=fsspec/implementations/tests/test_http_sync.py --ignore=fsspec/implementations/tests/test_github.py -k 'not test_dbfs_file_listing and not test_dbfs_mkdir and not test_dbfs_write_and_read and not test_dbfs_read_range and not test_dbfs_read_range_chunked and not test_find_returns_expected_result_detail_true_include_dirs and not test_find_returns_expected_result_detail_true and not test_async_cat_file_ranges' fsspec/ I: pybuild pybuild:308: cp -R /<<PKGBUILDDIR>>/fsspec/tests /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_fsspec/build/fsspec/ ; cp -R /<<PKGBUILDDIR>>/fsspec/implementations/tests /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_fsspec/build/fsspec/implementations/ I: pybuild base:317: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_fsspec/build; python3.13 -m pytest --ignore=fsspec/implementations/tests/test_http_sync.py --ignore=fsspec/implementations/tests/test_github.py -k 'not test_dbfs_file_listing and not test_dbfs_mkdir and not test_dbfs_write_and_read and not test_dbfs_read_range and not test_dbfs_read_range_chunked and not test_find_returns_expected_result_detail_true_include_dirs and not test_find_returns_expected_result_detail_true and not test_async_cat_file_ranges' fsspec/ ============================= test session starts ============================== platform linux -- Python 3.13.11, pytest-9.0.2, pluggy-1.6.0 rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_fsspec/build configfile: pyproject.toml plugins: asyncio-1.2.0, typeguard-4.4.4, mock-3.15.1, vcr-1.0.2 asyncio: mode=Mode.STRICT, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function collected 1757 items / 3 deselected / 11 skipped / 1754 selected fsspec/implementations/tests/local/local_test.py ....................... [ 1%] ........................................................................ [ 5%] ........................................ [ 7%] fsspec/implementations/tests/memory/memory_test.py ..................... [ 8%] ........................................................................ [ 12%] ............................................ [ 15%] fsspec/implementations/tests/test_archive.py ........................... [ 17%] .................................ssssssss.s.s...................s.s.s..s [ 21%] sss [ 21%] fsspec/implementations/tests/test_asyn_wrapper.py ......... [ 21%] fsspec/implementations/tests/test_cached.py ..........ssssssss......sss. [ 23%] .................ssssssssssssssss.s........ssss..................... [ 27%] fsspec/implementations/tests/test_common.py ssss [ 27%] fsspec/implementations/tests/test_data.py .. [ 27%] fsspec/implementations/tests/test_dirfs.py ............................. [ 29%] ........................................................................ [ 33%] ................................. [ 35%] fsspec/implementations/tests/test_ftp.py sssssssssssssssssss [ 36%] fsspec/implementations/tests/test_http.py .............................. [ 38%] ........................... [ 39%] fsspec/implementations/tests/test_libarchive.py s [ 39%] fsspec/implementations/tests/test_local.py .s........................s.. [ 41%] .................................................................ss..... [ 45%] ...ss.sssss.......sss....s.......................... [ 48%] fsspec/implementations/tests/test_memory.py ............................ [ 50%] .. [ 50%] fsspec/implementations/tests/test_reference.py ..................s.....s [ 51%] s..sssss [ 51%] fsspec/implementations/tests/test_tar.py ......................... [ 53%] fsspec/implementations/tests/test_webhdfs.py ssssssssssss [ 54%] fsspec/implementations/tests/test_zip.py ............... [ 54%] fsspec/tests/test_api.py ...............x...... [ 56%] fsspec/tests/test_async.py ............ [ 56%] fsspec/tests/test_caches.py ............................................ [ 59%] ........................................................................ [ 63%] .............................. [ 65%] fsspec/tests/test_callbacks.py ........ [ 65%] fsspec/tests/test_compression.py ...sss [ 66%] fsspec/tests/test_config.py ....... [ 66%] fsspec/tests/test_core.py .............................................. [ 69%] ...ss..sss.s [ 69%] fsspec/tests/test_file.py sssssssss.s [ 70%] fsspec/tests/test_generic.py ....... [ 70%] fsspec/tests/test_mapping.py ................. [ 71%] fsspec/tests/test_parquet.py sssssssssssssssssssssssssssssssssssssssssss [ 74%] ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 78%] ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 82%] sssss [ 82%] fsspec/tests/test_registry.py ......s [ 83%] fsspec/tests/test_spec.py ....................x......................... [ 85%] ............ssssssssss.................................................. [ 89%] ........................................................................ [ 93%] ........................................ [ 96%] fsspec/tests/test_utils.py ............................................. [ 98%] ...................... [100%] =============================== warnings summary =============================== fsspec/tests/test_caches.py::test_cache_getitem[background] /usr/lib/python3.13/inspect.py:764: RuntimeWarning: coroutine 'test_run_coros_in_chunks.<locals>.runner' was never awaited def unwrap(func, *, stop=None): Enable tracemalloc to get traceback where the object was allocated. See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html ==== 1422 passed, 341 skipped, 3 deselected, 2 xfailed, 1 warning in 23.00s ==== dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.14 3.13" returned exit code 13 make: *** [debian/rules:20: binary] Error 25 dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 --------------------------------------------------------------------------------

