--- Begin Message ---
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
--------------------------------------------------------------------------------
--- End Message ---