Your message dated Thu, 01 Jan 2026 18:04:36 +0000
with message-id <[email protected]>
and subject line Bug#1123344: fixed in smart-open 7.5.0-1
has caused the Debian Bug report #1123344,
regarding smart-open: FTBFS: dh_auto_test: error: pybuild --test --test-pytest 
-i python{version} -p "3.14 3.13" returned exit code 13
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
1123344: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1123344
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: src:smart-open
Version: 7.1.0-1
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:smart-open, so that this is still
visible in the BTS web page for this package.

Thanks.

--------------------------------------------------------------------------------
[...]
 debian/rules clean
dh clean --buildsystem=pybuild
   dh_auto_clean -O--buildsystem=pybuild
I: pybuild base:317: python3.14 setup.py clean 
/usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:289: UserWarning: 
Unknown distribution option: 'tests_require'
  warnings.warn(msg)
/usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:289: UserWarning: 
Unknown distribution option: 'test_suite'
  warnings.warn(msg)
/usr/lib/python3/dist-packages/setuptools/dist.py:759: 
SetuptoolsDeprecationWarning: License classifiers are deprecated.
!!

        
********************************************************************************
        Please consider removing the following classifiers in favor of a SPDX 
license expression:

        License :: OSI Approved :: MIT License

[... snipped ...]

  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 773, in 
urlopen
    self._prepare_proxy(conn)
    ~~~~~~~~~~~~~~~~~~~^^^^^^
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 1042, 
in _prepare_proxy
    conn.connect()
    ~~~~~~~~~~~~^^
  File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 753, in 
connect
    self.sock = sock = self._new_conn()
                       ~~~~~~~~~~~~~~^^
  File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 213, in 
_new_conn
    raise NewConnectionError(
        self, f"Failed to establish a new connection: {e}"
    ) from e
urllib3.exceptions.NewConnectionError: <botocore.awsrequest.AWSHTTPSConnection 
object at 0x7f217a681bd0>: Failed to establish a new connection: [Errno 111] 
Connection refused

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/botocore/httpsession.py", line 465, in 
send
    urllib_response = conn.urlopen(
        method=request.method,
    ...<7 lines>...
        chunked=self._chunked(request.headers),
    )
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 841, in 
urlopen
    retries = retries.increment(
        method, url, error=new_e, _pool=self, _stacktrace=sys.exc_info()[2]
    )
  File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 449, in 
increment
    raise reraise(type(error), error, _stacktrace)
          ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/urllib3/util/util.py", line 38, in 
reraise
    raise value.with_traceback(tb)
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 773, in 
urlopen
    self._prepare_proxy(conn)
    ~~~~~~~~~~~~~~~~~~~^^^^^^
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 1042, 
in _prepare_proxy
    conn.connect()
    ~~~~~~~~~~~~^^
  File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 753, in 
connect
    self.sock = sock = self._new_conn()
                       ~~~~~~~~~~~~~~^^
  File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 213, in 
_new_conn
    raise NewConnectionError(
        self, f"Failed to establish a new connection: {e}"
    ) from e
urllib3.exceptions.ProxyError: ('Unable to connect to proxy', 
NewConnectionError('<botocore.awsrequest.AWSHTTPSConnection object at 
0x7f217a681bd0>: Failed to establish a new connection: [Errno 111] Connection 
refused'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.14/multiprocessing/pool.py", line 125, in worker
    result = (True, func(*args, **kwds))
                    ~~~~^^^^^^^^^^^^^^^
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_smart-open/build/smart_open/s3.py", 
line 1406, in _download_key
    content_bytes = _download_fileobj(bucket, key_name)
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_smart-open/build/smart_open/s3.py", 
line 1423, in _download_fileobj
    bucket.download_fileobj(key_name, buf)
    ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/boto3/s3/inject.py", line 901, in 
bucket_download_fileobj
    return self.meta.client.download_fileobj(
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        Bucket=self.name,
        ^^^^^^^^^^^^^^^^^
    ...<4 lines>...
        Config=Config,
        ^^^^^^^^^^^^^^
    )
    ^
  File "/usr/lib/python3/dist-packages/botocore/context.py", line 123, in 
wrapper
    return func(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/boto3/s3/inject.py", line 859, in 
download_fileobj
    return future.result()
           ~~~~~~~~~~~~~^^
  File "/usr/lib/python3/dist-packages/s3transfer/futures.py", line 111, in 
result
    return self._coordinator.result()
           ~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/usr/lib/python3/dist-packages/s3transfer/futures.py", line 287, in 
result
    raise self._exception
  File "/usr/lib/python3/dist-packages/s3transfer/tasks.py", line 272, in _main
    self._submit(transfer_future=transfer_future, **kwargs)
    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/s3transfer/download.py", line 359, in 
_submit
    response = client.head_object(
        Bucket=transfer_future.meta.call_args.bucket,
        Key=transfer_future.meta.call_args.key,
        **transfer_future.meta.call_args.extra_args,
    )
  File "/usr/lib/python3/dist-packages/botocore/client.py", line 602, in 
_api_call
    return self._make_api_call(operation_name, kwargs)
           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/botocore/context.py", line 123, in 
wrapper
    return func(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/botocore/client.py", line 1060, in 
_make_api_call
    http, parsed_response = self._make_request(
                            ~~~~~~~~~~~~~~~~~~^
        operation_model, request_dict, request_context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/lib/python3/dist-packages/botocore/client.py", line 1084, in 
_make_request
    return self._endpoint.make_request(operation_model, request_dict)
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/botocore/endpoint.py", line 119, in 
make_request
    return self._send_request(request_dict, operation_model)
           ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/botocore/endpoint.py", line 200, in 
_send_request
    while self._needs_retry(
          ~~~~~~~~~~~~~~~~~^
        attempts,
        ^^^^^^^^^
    ...<3 lines>...
        exception,
        ^^^^^^^^^^
    ):
    ^
  File "/usr/lib/python3/dist-packages/botocore/endpoint.py", line 360, in 
_needs_retry
    responses = self._event_emitter.emit(
        event_name,
    ...<5 lines>...
        request_dict=request_dict,
    )
  File "/usr/lib/python3/dist-packages/botocore/hooks.py", line 412, in emit
    return self._emitter.emit(aliased_event_name, **kwargs)
           ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/botocore/hooks.py", line 256, in emit
    return self._emit(event_name, kwargs)
           ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/botocore/hooks.py", line 239, in _emit
    response = handler(**kwargs)
  File "/usr/lib/python3/dist-packages/botocore/retryhandler.py", line 207, in 
__call__
    if self._checker(**checker_kwargs):
       ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/botocore/retryhandler.py", line 284, in 
__call__
    should_retry = self._should_retry(
        attempt_number, response, caught_exception
    )
  File "/usr/lib/python3/dist-packages/botocore/retryhandler.py", line 320, in 
_should_retry
    return self._checker(attempt_number, response, caught_exception)
           ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/botocore/retryhandler.py", line 363, in 
__call__
    checker_response = checker(
        attempt_number, response, caught_exception
    )
  File "/usr/lib/python3/dist-packages/botocore/retryhandler.py", line 247, in 
__call__
    return self._check_caught_exception(
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        attempt_number, caught_exception
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/lib/python3/dist-packages/botocore/retryhandler.py", line 416, in 
_check_caught_exception
    raise caught_exception
  File "/usr/lib/python3/dist-packages/botocore/endpoint.py", line 279, in 
_do_get_response
    http_response = self._send(request)
  File "/usr/lib/python3/dist-packages/botocore/endpoint.py", line 383, in _send
    return self.http_session.send(request)
           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "/usr/lib/python3/dist-packages/botocore/httpsession.py", line 496, in 
send
    raise ProxyConnectionError(
        proxy_url=mask_proxy_url(proxy_url), error=e
    )
botocore.exceptions.ProxyConnectionError: Failed to connect to proxy URL: 
"http://127.0.0.1:9";
"""

The above exception was the direct cause of the following exception:

self = <smart_open.tests.test_s3.IterBucketMultiprocessingTest testMethod=test>

    def test(self):
        num_keys = 101
        populate_bucket(num_keys=num_keys)
>       keys = list(smart_open.s3.iter_bucket(BUCKET_NAME))
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

smart_open/tests/test_s3.py:1004: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
smart_open/s3.py:1334: in iter_bucket
    (key, content) = result_iterator.__next__()
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <multiprocessing.pool.IMapUnorderedIterator object at 0x7fc22215d5b0>
timeout = None

    def next(self, timeout=None):
        with self._cond:
            try:
                item = self._items.popleft()
            except IndexError:
                if self._index == self._length:
                    self._pool = None
                    raise StopIteration from None
                self._cond.wait(timeout)
                try:
                    item = self._items.popleft()
                except IndexError:
                    if self._index == self._length:
                        self._pool = None
                        raise StopIteration from None
                    raise TimeoutError from None
    
        success, value = item
        if success:
            return value
>       raise value
E       botocore.exceptions.ProxyConnectionError: Failed to connect to proxy 
URL: "http://127.0.0.1:9";

/usr/lib/python3.14/multiprocessing/pool.py:873: ProxyConnectionError
=============================== warnings summary ===============================
smart_open/tests/test_smart_open.py::SmartOpenTest::test_incorrect
smart_open/tests/test_smart_open.py::SmartOpenTest::test_incorrect
smart_open/tests/test_smart_open.py::SmartOpenTest::test_incorrect
smart_open/tests/test_smart_open.py::SmartOpenTest::test_incorrect
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_smart-open/build/smart_open/smart_open_lib.py:513:
 DeprecationWarning: This function is deprecated.  See 
https://github.com/RaRe-Technologies/smart_open/blob/develop/MIGRATING_FROM_OLDER_VERSIONS.rst
 for more information
    warnings.warn(message, category=DeprecationWarning)

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED smart_open/tests/test_s3.py::IterBucketTest::test_accepts_boto3_bucket
FAILED smart_open/tests/test_s3.py::IterBucketTest::test_iter_bucket - botoco...
FAILED smart_open/tests/test_s3.py::IterBucketTest::test_iter_bucket_404 - bo...
FAILED smart_open/tests/test_s3.py::IterBucketTest::test_iter_bucket_non_404
FAILED smart_open/tests/test_s3.py::IterBucketMultiprocessingTest::test - bot...
= 5 failed, 375 passed, 4 skipped, 4 deselected, 4 warnings in 82.58s (0:01:22) 
=
Exception ignored while calling deallocator <function Pool.__del__ at 
0x7fc2386505c0>:
Traceback (most recent call last):
  File "/usr/lib/python3.14/multiprocessing/pool.py", line 271, in __del__
    self._change_notifier.put(None)
  File "/usr/lib/python3.14/multiprocessing/queues.py", line 397, in put
    self._writer.send_bytes(obj)
  File "/usr/lib/python3.14/multiprocessing/connection.py", line 206, in 
send_bytes
    self._send_bytes(m[offset:offset + size])
  File "/usr/lib/python3.14/multiprocessing/connection.py", line 444, in 
_send_bytes
    self._send(header + buf)
  File "/usr/lib/python3.14/multiprocessing/connection.py", line 400, in _send
    n = write(self._handle, buf)
OSError: [Errno 9] Bad file descriptor
E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_smart-open/build; python3.14 -m pytest 
smart_open/tests -k 'not test_gs_uri and not test_scheme'
I: pybuild pybuild:308: cp -a smart_open/tests 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_smart-open/build/smart_open
I: pybuild base:317: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_smart-open/build; python3.13 -m pytest 
smart_open/tests -k 'not test_gs_uri and not test_scheme'
============================= test session starts ==============================
platform linux -- Python 3.13.11, pytest-9.0.2, pluggy-1.6.0
rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_smart-open/build
configfile: pyproject.toml
plugins: typeguard-4.4.4, anyio-4.11.0
collected 388 items / 4 deselected / 384 selected

smart_open/tests/test_azure.py ......................................... [ 10%]
......                                                                   [ 12%]
smart_open/tests/test_bytebuffer.py ...............                      [ 16%]
smart_open/tests/test_compression.py .............                       [ 19%]
smart_open/tests/test_hdfs.py ..............                             [ 23%]
smart_open/tests/test_http.py .............                              [ 26%]
smart_open/tests/test_package.py sss                                     [ 27%]
smart_open/tests/test_s3.py s........................................... [ 38%]
.............................                                            [ 46%]
smart_open/tests/test_s3_version.py .......                              [ 48%]
smart_open/tests/test_smart_open.py .................................... [ 57%]
........................................................................ [ 76%]
.................................................................        [ 93%]
smart_open/tests/test_ssh.py .........                                   [ 95%]
smart_open/tests/test_transport.py ...                                   [ 96%]
smart_open/tests/test_utils.py ..............                            [100%]

=============================== warnings summary ===============================
smart_open/tests/test_smart_open.py::SmartOpenTest::test_incorrect
smart_open/tests/test_smart_open.py::SmartOpenTest::test_incorrect
smart_open/tests/test_smart_open.py::SmartOpenTest::test_incorrect
smart_open/tests/test_smart_open.py::SmartOpenTest::test_incorrect
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_smart-open/build/smart_open/smart_open_lib.py:513:
 DeprecationWarning: This function is deprecated.  See 
https://github.com/RaRe-Technologies/smart_open/blob/develop/MIGRATING_FROM_OLDER_VERSIONS.rst
 for more information
    warnings.warn(message, category=DeprecationWarning)

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
===== 380 passed, 4 skipped, 4 deselected, 4 warnings in 78.15s (0:01:18) ======
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.14 
3.13" returned exit code 13
make: *** [debian/rules:15: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------

--- End Message ---
--- Begin Message ---
Source: smart-open
Source-Version: 7.5.0-1
Done: Colin Watson <[email protected]>

We believe that the bug you reported is fixed in the latest version of
smart-open, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Colin Watson <[email protected]> (supplier of updated smart-open package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Thu, 01 Jan 2026 17:44:19 +0000
Source: smart-open
Architecture: source
Version: 7.5.0-1
Distribution: unstable
Urgency: medium
Maintainer: Debian Python Team <[email protected]>
Changed-By: Colin Watson <[email protected]>
Closes: 1120121 1123344
Changes:
 smart-open (7.5.0-1) unstable; urgency=medium
 .
   * Team upload.
   * New upstream release:
     - Fix S3 tests with Python 3.14 (closes: #1123344).
   * Revert "Use compression.zstd (PEP-784)" for now, until
     python-backports.zstd is in Debian (see #1123505).
   * Make the build reproducible (closes: #1120121).
Checksums-Sha1:
 8d02a7960a8cfd5717090a77ce9989ae0c91155e 2751 smart-open_7.5.0-1.dsc
 fa40932e03c55ce08d41d6b8c30d1fad50807794 149756 smart-open_7.5.0.orig.tar.gz
 cf285647bb274e01737de55e1d4918d9a0b02514 6104 smart-open_7.5.0-1.debian.tar.xz
Checksums-Sha256:
 bbeed1e413bbe15dc0261575a9c5df54a740af153c5ea96de635b0fc6ab9c910 2751 
smart-open_7.5.0-1.dsc
 20b20c92fe538d957f05bba99477ababb64e9ceb47c7d48ea30184c0d0aefef4 149756 
smart-open_7.5.0.orig.tar.gz
 353d5d09b3bb98df602c1fcf22c068b5e32bcef67c6aa3383527b2a51e9d950f 6104 
smart-open_7.5.0-1.debian.tar.xz
Files:
 3aa0bc9a534956ac8636273bc0721716 2751 python optional smart-open_7.5.0-1.dsc
 8a2eea7e3d85dd714c136470fe388d9c 149756 python optional 
smart-open_7.5.0.orig.tar.gz
 9376978e44594d15100821e2892dded8 6104 python optional 
smart-open_7.5.0-1.debian.tar.xz

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEErApP8SYRtvzPAcEROTWH2X2GUAsFAmlWszYACgkQOTWH2X2G
UAtxCw/+PAf3JWMBzaV/fRXddRIbzujIgDAZAtUuCh2ZirMv/ge+GTWufbWrkn7b
8JFn0ssK4VCOdwsCkuiEEUAJXWcC+PJt7F1ngZdjcUYgI/GjMeOcZAXq41zlAVcp
6ZQPJQpAW+XrUGmtiGhkDY4/DDcqNKEX2Rm9e2h3NeVoIDk5VHzdFsKp+E+NWpQc
QjWl5fEcYuwcVzJAfd2a0K616y7B1OkVtjJPwMNVVTxCR37XJE3UxXJtNr0Ww4N/
VPN46XkgFxW6FOmSeGuGMNZJJsxi71pCYP3JRpwBCyzBRakQ8KGtiA1XwyzcBkIh
76FNFT5tv1JUVll+IBJEvJPX/QKYjn3ZJsvE3X6GMS5aYS4HCRtdiSJjWOlRmQYi
3FQshcuhVbI+Mj1cqOF13f3gn/esTcNavXWcOl/RWsyxUUjtspmaDBng+YzfuvZC
G2Q1v8gYoI8dx608NT+GEHC1Cgb+6eFbW3CiBQDMQVIbhgbjo1SAJzSV8Tn7O2Vo
i3mCX+Bpxphf66t8gIjbEuEL1tEBed4Cec0+0W8LmIsvK4CtVRVzzBxCf3ijpPzt
b4ICJkpiMBy2drHL/g5cLjX9zLyzUttjtkkvPkzigDVgiepnygpS3bIbvXG1N+cW
oT02UwRqQQx/WuprJE5yubZXsZkxzz1MobVcdfKQItvotV1FK58=
=zdii
-----END PGP SIGNATURE-----

Attachment: pgpBq4N35aIuZ.pgp
Description: PGP signature


--- End Message ---

Reply via email to