#1123459 python-webob: FTBFS: AssertionError: False disconnect alert

#1123459#5
Date:
2025-12-16 20:29:24 UTC
From:
To:
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:python-webob, so that this is still
visible in the BTS web page for this package.

Thanks.
!!

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

        License :: OSI Approved :: MIT License

        See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
        ********************************************************************************

!!
  self._finalize_license_expression()
running clean
removing '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_webob/build' (and everything under it)
'build/bdist.linux-x86_64' does not exist -- can't clean it
'build/scripts-3.14' does not exist -- can't clean it
I: pybuild base:317: python3.13 setup.py clean
/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

        See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
        ********************************************************************************

!!
  self._finalize_license_expression()
running clean
removing '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_webob/build' (and everything under it)
'build/bdist.linux-x86_64' does not exist -- can't clean it
'build/scripts-3.13' does not exist -- can't clean it
   dh_autoreconf_clean -O--buildsystem=pybuild
   dh_clean -O--buildsystem=pybuild
 debian/rules binary
dh binary --buildsystem=pybuild
   dh_update_autotools_config -O--buildsystem=pybuild
   dh_autoreconf -O--buildsystem=pybuild
   dh_auto_configure -O--buildsystem=pybuild
I: pybuild base:317: python3.14 setup.py config
/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

        See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
        ********************************************************************************

!!
  self._finalize_license_expression()
running config
I: pybuild base:317: python3.13 setup.py config
/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

        See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
        ********************************************************************************

!!
  self._finalize_license_expression()
running config
   dh_auto_build -O--buildsystem=pybuild
I: pybuild base:317: /usr/bin/python3.14 setup.py build
/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

        See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
        ********************************************************************************

!!
  self._finalize_license_expression()
running build
running build_py
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_webob/build/webob
copying src/webob/cookies.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_webob/build/webob
copying src/webob/static.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_webob/build/webob
copying src/webob/dec.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_webob/build/webob
copying src/webob/response.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_webob/build/webob
copying src/webob/byterange.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_webob/build/webob
copying src/webob/util.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_webob/build/webob
copying src/webob/etag.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_webob/build/webob
copying src/webob/exc.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_webob/build/webob
copying src/webob/client.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_webob/build/webob
copying src/webob/descriptors.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_webob/build/webob
copying src/webob/multidict.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_webob/build/webob
copying src/webob/headers.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_webob/build/webob
copying src/webob/compat.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_webob/build/webob
copying src/webob/cachecontrol.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_webob/build/webob
copying src/webob/request.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_webob/build/webob
copying src/webob/datetime_utils.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_webob/build/webob
copying src/webob/acceptparse.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_webob/build/webob
copying src/webob/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_webob/build/webob
I: pybuild base:317: /usr/bin/python3 setup.py build
/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

        See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
        ********************************************************************************

!!
  self._finalize_license_expression()
running build
running build_py
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_webob/build/webob
copying src/webob/cookies.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_webob/build/webob
copying src/webob/static.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_webob/build/webob
copying src/webob/dec.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_webob/build/webob
copying src/webob/response.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_webob/build/webob
copying src/webob/byterange.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_webob/build/webob
copying src/webob/util.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_webob/build/webob
copying src/webob/etag.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_webob/build/webob
copying src/webob/exc.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_webob/build/webob
copying src/webob/client.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_webob/build/webob
copying src/webob/descriptors.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_webob/build/webob
copying src/webob/multidict.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_webob/build/webob
copying src/webob/headers.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_webob/build/webob
copying src/webob/compat.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_webob/build/webob
copying src/webob/cachecontrol.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_webob/build/webob
copying src/webob/request.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_webob/build/webob
copying src/webob/datetime_utils.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_webob/build/webob
copying src/webob/acceptparse.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_webob/build/webob
copying src/webob/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_webob/build/webob
   debian/rules override_dh_auto_test
make[1]: Entering directory '/<<PKGBUILDDIR>>'
# enable network, tests.test_in_wsgiref.test_request_reading needs it
set -e ; for vers in `py3versions -vr` ; do \
	http_proxy='' PYTHONPATH=.:/<<PKGBUILDDIR>>/src python$vers -m pytest tests ; \
done
py3versions: no X-Python3-Version in control file, using supported versions
============================= test session starts ==============================
platform linux -- Python 3.14.2, pytest-9.0.2, pluggy-1.6.0
rootdir: /<<PKGBUILDDIR>>
configfile: setup.cfg
plugins: typeguard-4.4.4
collected 2390 items

tests/test_acceptparse.py .............................................. [  1%]
........................................................................ [  4%]
........................................................................ [  7%]
........................................................................ [ 10%]
........................................................................ [ 13%]
........................................................................ [ 16%]
........................................................................ [ 20%]
........................................................................ [ 23%]
........................................................................ [ 26%]
........................................................................ [ 29%]
........................................................................ [ 32%]
........................................................................ [ 35%]
........................................................................ [ 38%]
........................................................................ [ 41%]
........................................................................ [ 44%]
........................................................................ [ 47%]
........................................................................ [ 50%]
........................................................                 [ 52%]
tests/test_byterange.py ...............                                  [ 53%]
tests/test_cachecontrol.py ...............................               [ 54%]
tests/test_client.py .............                                       [ 54%]
tests/test_client_functional.py ....                                     [ 55%]
tests/test_compat.py ...........                                         [ 55%]
tests/test_cookies.py .............................................s.s.s [ 57%]
................................................                         [ 59%]
tests/test_cookies_bw.py .                                               [ 59%]
tests/test_datetime_utils.py ......                                      [ 59%]
tests/test_dec.py .........................                              [ 61%]
tests/test_descriptors.py .............................................. [ 62%]
........................................................................ [ 65%]
.........                                                                [ 66%]
tests/test_etag.py ..........................                            [ 67%]
tests/test_etag_nose.py .......                                          [ 67%]
tests/test_exc.py ........................................               [ 69%]
tests/test_headers.py .................                                  [ 70%]
tests/test_in_wsgiref.py .F                                              [ 70%]
tests/test_misc.py ...s.........s.                                       [ 70%]
tests/test_multidict.py ................................................ [ 72%]
........................................................................ [ 75%]
                                                                         [ 75%]
tests/test_request.py .................................................. [ 77%]
........................................................................ [ 80%]
........................................................................ [ 83%]
...................................................................s.s.s [ 86%]
..............................s......................................... [ 89%]
...............................................                          [ 91%]
tests/test_response.py ................................................. [ 93%]
.........x.............................................................. [ 96%]
.......................................                                  [ 98%]
tests/test_static.py ....................                                [ 99%]
tests/test_transcode.py ......                                           [ 99%]
tests/test_util.py .......                                               [100%]

=================================== FAILURES ===================================
                   ^^^^^^^^^^^^^^^^^^^^^^^^

tests/test_in_wsgiref.py:91:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <LimitedLengthFile(<_io.BufferedReader name=-1>, maxlen=100000)>
buff = <memory at 0x7f2edea44a00>

    def readinto(self, buff):
        if not self.remaining:
            return 0
        sz0 = min(len(buff), self.remaining)
        data = self.file.read(sz0)
        sz = len(data)
        self.remaining -= sz
        if sz < sz0 and self.remaining:
src/webob/request.py:1542: DisconnectionError

During handling of the above exception, another exception occurred:

serve = <function serve.<locals>._serve at 0x7f2eddc9dd20>

    @pytest.mark.usefixtures("serve")
    def test_interrupted_request(serve):
        with serve(_test_app_req_interrupt) as server:
            for path in _test_ops_req_interrupt:
                _send_interrupted_req(server, path)
                try:
                    res = _global_res.get(timeout=1)
                except Empty:
                    raise AssertionError("Error during test %s", path)
                if res is not None:
                    print("Error during test:", path)

tests/test_in_wsgiref.py:57:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
src/webob/compat.py:78: in reraise
    raise exc
tests/test_in_wsgiref.py:74: in _test_app_req_interrupt
    op(req)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

req = <Request at 0x7f2eddc8ae40 POST http://localhost:62496/readline>

    def _req_int_readline(req):
        try:
            assert req.body_file.readline() == b'a=b\n'
        except IOError:
            # too early to detect disconnect
tests/test_in_wsgiref.py:94: AssertionError
----------------------------- Captured stdout call -----------------------------
Error during test: /readline
=============================== warnings summary ===============================
tests/test_client_functional.py::test_client
tests/test_client_functional.py::test_no_content_length
tests/test_client_functional.py::test_client_cookies
tests/test_client_functional.py::test_client_slow
tests/test_in_wsgiref.py::test_request_reading
tests/test_in_wsgiref.py::test_interrupted_request
  /<<PKGBUILDDIR>>/tests/conftest.py:53: DeprecationWarning: setDaemon() is deprecated, set the daemon attribute instead
    worker.setDaemon(True)

tests/test_cookies.py: 6 warnings
tests/test_response.py: 5 warnings
  /<<PKGBUILDDIR>>/src/webob/cookies.py:238: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
    v = datetime.utcnow() + v

tests/test_request.py::TestRequest_functional::test_request_put
  /<<PKGBUILDDIR>>/src/webob/acceptparse.py:1262: DeprecationWarning: The behavior of .__contains__ for the Accept classes is currently being maintained for backward compatibility, but it will change in the future to better conform to the RFC.
    warnings.warn(

tests/test_request.py::TestRequest_functional::test_request_put
  /<<PKGBUILDDIR>>/src/webob/acceptparse.py:645: DeprecationWarning: The behavior of AcceptValidHeader.__contains__ is currently being maintained for backward compatibility, but it will change in the future to better conform to the RFC.
    warnings.warn(

tests/test_response.py::test_set_cookie_expires_is_datetime_and_max_age_is_None
  /<<PKGBUILDDIR>>/tests/test_response.py:867: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
    then = datetime.datetime.utcnow() + datetime.timedelta(days=1)

tests/test_response.py::test_set_cookie_expires_is_datetime_and_max_age_is_None
tests/test_response.py::test_set_cookie_expires_is_timedelta_and_max_age_is_None
tests/test_response.py::test_set_cookie_expires_is_datetime_tz_and_max_age_is_None
  /<<PKGBUILDDIR>>/src/webob/response.py:1037: DeprecationWarning: Argument "expires" will be removed in a future version of WebOb, please use "max_age".
    warn_deprecation('Argument "expires" will be removed in a future '

tests/test_response.py::test_set_cookie_expires_is_datetime_and_max_age_is_None
tests/test_response.py::test_set_cookie_expires_is_datetime_tz_and_max_age_is_None
  /<<PKGBUILDDIR>>/src/webob/response.py:1054: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
    max_age = expires - datetime.utcnow()

tests/test_response.py::test_cache_expires_set
tests/test_response.py::test_cache_expires_set_zero
tests/test_response.py::test_cache_expires_set_zero_then_nonzero
  /<<PKGBUILDDIR>>/src/webob/response.py:1199: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
    self.expires = datetime.utcnow()

tests/test_response.py::test_cache_expires_set
tests/test_response.py::test_cache_expires_set_zero
tests/test_response.py::test_cache_expires_set_zero_then_nonzero
  /<<PKGBUILDDIR>>/src/webob/response.py:1201: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
    self.last_modified = datetime.utcnow()

tests/test_response.py::test_cache_expires_set_timedelta
tests/test_response.py::test_cache_expires_set_int
tests/test_response.py::test_cache_expires_set_zero_then_nonzero
  /<<PKGBUILDDIR>>/src/webob/response.py:1206: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
    self.expires = datetime.utcnow() + timedelta(seconds=seconds)

#1123459#12
Date:
2026-05-24 09:35:15 UTC
From:
To:
user debian-release@lists.debian.org
usertags

1123459

+ bsp-2026-05-in-kochi

Control: tags -1 + patch

thanks,

Hi maintainer,

Created a MR to fix the build failures of python-webob.

https://salsa.debian.org/python-team/packages/python-webob/-/merge_requests/2

Shanavas M

#1123459#17
Date:
2026-05-24 09:46:09 UTC
From:
To:
Shanavas M
#1123459#22
Date:
2026-06-24 10:57:45 UTC
From:
To:
Thank you !
#1123459#27
Date:
2026-06-24 11:19:16 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
python-webob, 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 1123459@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Alexandre Detiste <tchet@debian.org> (supplier of updated python-webob 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 ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Wed, 24 Jun 2026 12:56:11 +0200
Source: python-webob
Architecture: source
Version: 1:1.8.9-2
Distribution: unstable
Urgency: medium
Maintainer: Debian Python Team <team+python@tracker.debian.org>
Changed-By: Alexandre Detiste <tchet@debian.org>
Closes: 1123459
Changes:
 python-webob (1:1.8.9-2) unstable; urgency=medium
 .
   * Team upload.
   * Add debian/salsa-ci.yml
   * Mark build-deps as !nocheck or !nodoc
   * Remove redundant Priority: optional from source stanza.
   * Update lintian override info format
 .
   [ Shanavas M ]
   * Fix test failure (Closes: #1123459)
   * Bumped standards version to 4.7.4
Checksums-Sha1:
 03b0c0193e4c73b49eaf64a2c5847aa0382b482a 2287 python-webob_1.8.9-2.dsc
 dd652d4645ca8d46e42160a83351499236f185c9 7668 python-webob_1.8.9-2.debian.tar.xz
 fc87ab0303900fc027772eed038acaa457481ba5 7894 python-webob_1.8.9-2_source.buildinfo
Checksums-Sha256:
 733e3bacaaab6b5336b2e60c96a08fb2d6ce50ef9ed85855417c0605b77bc352 2287 python-webob_1.8.9-2.dsc
 8ce0614480d24254bef33b7df36d71b730296140dda2fd15f82ab42e161926c3 7668 python-webob_1.8.9-2.debian.tar.xz
 4eaf4db27e9df0f7b67ee799e2378f78186f58ce149d84c4784e422a4270d6e8 7894 python-webob_1.8.9-2_source.buildinfo
Files:
 b496ff2861dc69d925f91bb2e4ec1c48 2287 python optional python-webob_1.8.9-2.dsc
 cd5b51611d962ec1e8b34b0d5d66b012 7668 python optional python-webob_1.8.9-2.debian.tar.xz
 14371192e96a19da71017a0df3306402 7894 python optional python-webob_1.8.9-2_source.buildinfo
-----BEGIN PGP SIGNATURE-----

iQJFBAEBCgAvFiEEj23hBDd/OxHnQXSHMfMURUShdBoFAmo7uHMRHHRjaGV0QGRl
Ymlhbi5vcmcACgkQMfMURUShdBpnBQ/9HMDauorO/nLSCIhloimoWtZOlKiJhkbA
3UYYXyxPoTTOjSDAJfkJ3Ru2oCxxrOsJDmlp1WkdrWnkHFgCBuuAvHPPXaLoMhVy
gYMU2Wcow+vGzTV4+tODr2sKRX/SpwLSXX9ER0zyqvLZi5/OOnQKoEfhfb0hvbSo
j82iorSBruwLvqBxHwORhhdjU3xoMAFy0OTL9m7QrrGgBanx+Uhr3brEByrDGYoa
YBwThxfGrzuVX/qVKQ9jQPuZtz91nOW698g+pZAGDbbiQMsEZTJnBV3XkHQjNDM7
wRy88KCbtq++Qd9P0NYy5t5aWrQAg2M/BbQc/pSseRI4Bjbp8ISGC86IPIo2qjgw
Z9qvrxsK+Y4D2OIi10qNelt3YG35rNE/PfwPknQIlMEurtfhLoig6qz98WePD8EW
2QbPmqtdA9wXY9WKnrSXMUdeS1R5BdasIzLnAwTLg+wKrqOUENQ4n10RKxAy1i0i
G/xpyhzJHwyU6VHSRzcHYljdPqo7JhmWfTVEvq72lVBS8pHxkYkkf0YLlPO3HExh
Jk1xv+0m6sg3xkG7u37TnXvE4Shh/r9O+C7JsYaeEf9qdLD0dZSWQPu9JcDey2PJ
0wBZxjgl/3fA6Nim0h62IMmlLmcngugyCDIIyXWJoVcE823I9Ipa3TQhiLogKtpm
4/WUglUf3mM=
=yNCt
-----END PGP SIGNATURE-----