Package: src:python-aiohttp-session Version: 2.12.1-4 Severity: serious Tags: ftbfs forky sid User: [email protected] Usertags: aiohttp-3.14
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/202606/ 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-aiohttp-session, 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 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 dh_auto_build -O--buildsystem=pybuild I: pybuild plugin_pyproject:142: Building wheel for python3.14 with "build" module I: pybuild base:385: python3.14 -m build --skip-dependency-check --no-isolation --wheel --outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_aiohttp_session [... snipped ...] async def test_max_age_session_reset(aiohttp_client: AiohttpClient) -> None: async def handler(request: web.Request, n: Optional[str] = None) -> web.Response: session = await get_session(request) if n: session[n] = True return web.json_response(session._mapping) app = create_app(handler) app.router.add_route("GET", "/a", partial(handler, n="a")) app.router.add_route("GET", "/b", partial(handler, n="b")) app.router.add_route("GET", "/c", partial(handler, n="c")) client = await aiohttp_client(app) with mock.patch("time.time") as m_clock: m_clock.return_value = 0.0 # Initialise the session (with a 10 second max_age). async with client.get("/a") as resp: > c = resp.cookies["AIOHTTP_SESSION"] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E KeyError: 'AIOHTTP_SESSION' aiohttp_client = <function aiohttp_client.<locals>.go at 0x7fb6ca54d850> app = <Application 0x7fb6caac1810> client = <aiohttp.test_utils.TestClient object at 0x7fb6caac2ad0> handler = <function test_max_age_session_reset.<locals>.handler at 0x7fb6ca54cca0> m_clock = <MagicMock name='time' id='140423062239088'> resp = <ClientResponse(http://127.0.0.1:40605/a) [500 Internal Server Error]> <CIMultiDictProxy('Content-Type': 'text/plain; ...ength': '55', 'Date': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Server': 'Python/3.14 aiohttp/3.14.1', 'Connection': 'close')> tests/test_abstract_storage.py:63: KeyError ------------------------------ Captured log call ------------------------------- ERROR aiohttp.server:web_protocol.py:546 Error handling request from 127.0.0.1 Traceback (most recent call last): File "/usr/lib/python3/dist-packages/aiohttp/web_protocol.py", line 575, in _handle_request resp = await request_handler(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/aiohttp/web_app.py", line 559, in _handle return await handler(request) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/aiohttp/web_middlewares.py", line 117, in impl return await handler(request) ^^^^^^^^^^^^^^^^^^^^^^ File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_aiohttp_session/build/aiohttp_session/__init__.py", line 191, in factory response = await handler(request) ^^^^^^^^^^^^^^^^^^^^^^ File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_aiohttp_session/build/tests/test_abstract_storage.py", line 48, in handler session = await get_session(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_aiohttp_session/build/aiohttp_session/__init__.py", line 158, in get_session request[SESSION_KEY] = session ~~~~~~~^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/aiohttp/web_request.py", line 314, in __setitem__ warnings.warn( ~~~~~~~~~~~~~^ "It is recommended to use web.RequestKey instances for keys.\n" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<3 lines>... stacklevel=2, ^^^^^^^^^^^^^ ) ^ aiohttp.web_exceptions.NotAppKeyWarning: It is recommended to use web.RequestKey instances for keys. https://docs.aiohttp.org/en/stable/web_advanced.html#request-s-storage ============================= slowest 10 durations ============================= 5.00s call tests/test_nacl_storage.py::test_load_session_dont_load_expired_session 3.00s call tests/test_nacl_storage.py::test_load_expired_session 2.00s call tests/test_encrypted_cookie_storage.py::test_fernet_ttl (7 durations < 0.005s hidden. Use -vv to show these durations.) =========================== short test summary info ============================ FAILED tests/test_abstract_storage.py::test_max_age_also_returns_expires - As... FAILED tests/test_abstract_storage.py::test_max_age_session_reset - KeyError:... ================= 2 failed, 50 passed, 27 deselected in 10.25s ================= E: pybuild pybuild:485: test: plugin pyproject failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_aiohttp_session/build; python3.14 -m pytest --no-cov -k 'not test_memcached_storage and not test_redis_storage' I: pybuild base:385: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_aiohttp_session/build; python3.13 -m pytest --no-cov -k 'not test_memcached_storage and not test_redis_storage' ============================= test session starts ============================== platform linux -- Python 3.13.12, pytest-9.0.3, pluggy-1.6.0 -- /usr/bin/python3.13 cachedir: .pytest_cache rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_aiohttp_session/build configfile: pytest.ini testpaths: tests/ plugins: mock-3.15.1, asyncio-1.4.0, sugar-1.1.1, aiohttp-1.1.0, cov-5.0.0, typeguard-4.4.4 asyncio: mode=Mode.AUTO, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function collecting ... collected 79 items / 27 deselected / 52 selected tests/test_abstract_storage.py::test_max_age_also_returns_expires FAILED [ 1%] tests/test_abstract_storage.py::test_max_age_session_reset FAILED [ 3%] tests/test_cookie_storage.py::test_create_new_session PASSED [ 5%] tests/test_cookie_storage.py::test_load_existing_session PASSED [ 7%] tests/test_cookie_storage.py::test_change_session PASSED [ 9%] tests/test_cookie_storage.py::test_clear_cookie_on_session_invalidation PASSED [ 11%] tests/test_cookie_storage.py::test_dont_save_not_requested_session PASSED [ 13%] tests/test_encrypted_cookie_storage.py::test_invalid_key PASSED [ 15%] tests/test_encrypted_cookie_storage.py::test_str_key PASSED [ 17%] tests/test_encrypted_cookie_storage.py::test_create_new_session_broken_by_format PASSED [ 19%] tests/test_encrypted_cookie_storage.py::test_load_existing_session PASSED [ 21%] tests/test_encrypted_cookie_storage.py::test_load_existing_session_with_fernet PASSED [ 23%] tests/test_encrypted_cookie_storage.py::test_change_session PASSED [ 25%] tests/test_encrypted_cookie_storage.py::test_clear_cookie_on_session_invalidation PASSED [ 26%] tests/test_encrypted_cookie_storage.py::test_encrypted_cookie_session_fixation PASSED [ 28%] tests/test_encrypted_cookie_storage.py::test_fernet_ttl PASSED [ 30%] tests/test_get_session.py::test_get_stored_session PASSED [ 32%] tests/test_get_session.py::test_session_is_not_stored PASSED [ 34%] tests/test_get_session.py::test_storage_returns_not_session_on_load_session PASSED [ 36%] tests/test_get_session.py::test_get_new_session PASSED [ 38%] tests/test_get_session.py::test_get_new_session_no_storage PASSED [ 40%] tests/test_get_session.py::test_get_new_session_bad_return PASSED [ 42%] tests/test_http_exception.py::test_exceptions PASSED [ 44%] tests/test_nacl_storage.py::test_invalid_key PASSED [ 46%] tests/test_nacl_storage.py::test_create_new_session PASSED [ 48%] tests/test_nacl_storage.py::test_load_existing_session PASSED [ 50%] tests/test_nacl_storage.py::test_change_session PASSED [ 51%] tests/test_nacl_storage.py::test_del_cookie_on_session_invalidation PASSED [ 53%] tests/test_nacl_storage.py::test_nacl_session_fixation PASSED [ 55%] tests/test_nacl_storage.py::test_load_session_dont_load_expired_session PASSED [ 57%] tests/test_nacl_storage.py::test_load_corrupted_session PASSED [ 59%] tests/test_nacl_storage.py::test_load_session_different_key PASSED [ 61%] tests/test_nacl_storage.py::test_load_expired_session PASSED [ 63%] tests/test_path_domain.py::test_with_same_path_domain PASSED [ 65%] tests/test_path_domain.py::test_with_different_path PASSED [ 67%] tests/test_path_domain.py::test_with_different_domain PASSED [ 69%] tests/test_path_domain.py::test_invalidate_with_same_path_domain PASSED [ 71%] tests/test_response_types.py::test_stream_response PASSED [ 73%] tests/test_response_types.py::test_bad_response_type PASSED [ 75%] tests/test_response_types.py::test_prepared_response_type PASSED [ 76%] tests/test_session_dict.py::test_create PASSED [ 78%] tests/test_session_dict.py::test_create2 PASSED [ 80%] tests/test_session_dict.py::test_create3 PASSED [ 82%] tests/test_session_dict.py::test_set_new_identity_ok PASSED [ 84%] tests/test_session_dict.py::test_set_new_identity_for_not_new_session PASSED [ 86%] tests/test_session_dict.py::test__repr__ PASSED [ 88%] tests/test_session_dict.py::test__repr__2 PASSED [ 90%] tests/test_session_dict.py::test_invalidate PASSED [ 92%] tests/test_session_dict.py::test_invalidate2 PASSED [ 94%] tests/test_session_dict.py::test_operations PASSED [ 96%] tests/test_session_dict.py::test_change PASSED [ 98%] tests/test_session_middleware.py::test_session_middleware_bad_storage PASSED [100%] =================================== FAILURES =================================== ______________________ test_max_age_also_returns_expires _______________________ aiohttp_client = <function aiohttp_client.<locals>.go at 0x7f651b8971a0> async def test_max_age_also_returns_expires(aiohttp_client: AiohttpClient) -> None: async def handler(request: web.Request) -> web.Response: session = await get_session(request) session["c"] = 3 return web.Response(body=b"OK") with mock.patch("time.time") as m_clock: m_clock.return_value = 0.0 client = await aiohttp_client(create_app(handler)) make_cookie(client, {"a": 1, "b": 2}) async with client.get("/") as resp: > assert resp.status == 200 E AssertionError: assert 500 == 200 E + where 500 = <ClientResponse(http://127.0.0.1:32955/) [500 Internal Server Error]>\n<CIMultiDictProxy('Content-Type': 'text/plain; charset=utf-8', 'Content-Length': '55', 'Date': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Server': 'Python/3.13 aiohttp/3.14.1', 'Connection': 'close')>\n.status aiohttp_client = <function aiohttp_client.<locals>.go at 0x7f651b8971a0> client = <aiohttp.test_utils.TestClient object at 0x7f651bef8590> handler = <function test_max_age_also_returns_expires.<locals>.handler at 0x7f651b896e80> m_clock = <MagicMock name='time' id='140072237447696'> resp = <ClientResponse(http://127.0.0.1:32955/) [500 Internal Server Error]> <CIMultiDictProxy('Content-Type': 'text/plain; c...ength': '55', 'Date': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Server': 'Python/3.13 aiohttp/3.14.1', 'Connection': 'close')> tests/test_abstract_storage.py:42: AssertionError ------------------------------ Captured log call ------------------------------- ERROR aiohttp.server:web_protocol.py:546 Error handling request from 127.0.0.1 Traceback (most recent call last): File "/usr/lib/python3/dist-packages/aiohttp/web_protocol.py", line 575, in _handle_request resp = await request_handler(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/aiohttp/web_app.py", line 559, in _handle return await handler(request) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/aiohttp/web_middlewares.py", line 117, in impl return await handler(request) ^^^^^^^^^^^^^^^^^^^^^^ File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_aiohttp_session/build/aiohttp_session/__init__.py", line 185, in factory request[STORAGE_KEY] = storage ~~~~~~~^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/aiohttp/web_request.py", line 314, in __setitem__ warnings.warn( ~~~~~~~~~~~~~^ "It is recommended to use web.RequestKey instances for keys.\n" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<3 lines>... stacklevel=2, ^^^^^^^^^^^^^ ) ^ aiohttp.web_exceptions.NotAppKeyWarning: It is recommended to use web.RequestKey instances for keys. https://docs.aiohttp.org/en/stable/web_advanced.html#request-s-storage __________________________ test_max_age_session_reset __________________________ aiohttp_client = <function aiohttp_client.<locals>.go at 0x7f651b897100> async def test_max_age_session_reset(aiohttp_client: AiohttpClient) -> None: async def handler(request: web.Request, n: Optional[str] = None) -> web.Response: session = await get_session(request) if n: session[n] = True return web.json_response(session._mapping) app = create_app(handler) app.router.add_route("GET", "/a", partial(handler, n="a")) app.router.add_route("GET", "/b", partial(handler, n="b")) app.router.add_route("GET", "/c", partial(handler, n="c")) client = await aiohttp_client(app) with mock.patch("time.time") as m_clock: m_clock.return_value = 0.0 # Initialise the session (with a 10 second max_age). async with client.get("/a") as resp: > c = resp.cookies["AIOHTTP_SESSION"] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E KeyError: 'AIOHTTP_SESSION' aiohttp_client = <function aiohttp_client.<locals>.go at 0x7f651b897100> app = <Application 0x7f651bfa20d0> client = <aiohttp.test_utils.TestClient object at 0x7f651bfa3110> handler = <function test_max_age_session_reset.<locals>.handler at 0x7f651b897ba0> m_clock = <MagicMock name='time' id='140072237446688'> resp = <ClientResponse(http://127.0.0.1:37113/a) [500 Internal Server Error]> <CIMultiDictProxy('Content-Type': 'text/plain; ...ength': '55', 'Date': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Server': 'Python/3.13 aiohttp/3.14.1', 'Connection': 'close')> tests/test_abstract_storage.py:63: KeyError ------------------------------ Captured log call ------------------------------- ERROR aiohttp.server:web_protocol.py:546 Error handling request from 127.0.0.1 Traceback (most recent call last): File "/usr/lib/python3/dist-packages/aiohttp/web_protocol.py", line 575, in _handle_request resp = await request_handler(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/aiohttp/web_app.py", line 559, in _handle return await handler(request) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/aiohttp/web_middlewares.py", line 117, in impl return await handler(request) ^^^^^^^^^^^^^^^^^^^^^^ File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_aiohttp_session/build/aiohttp_session/__init__.py", line 191, in factory response = await handler(request) ^^^^^^^^^^^^^^^^^^^^^^ File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_aiohttp_session/build/tests/test_abstract_storage.py", line 48, in handler session = await get_session(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_aiohttp_session/build/aiohttp_session/__init__.py", line 158, in get_session request[SESSION_KEY] = session ~~~~~~~^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/aiohttp/web_request.py", line 314, in __setitem__ warnings.warn( ~~~~~~~~~~~~~^ "It is recommended to use web.RequestKey instances for keys.\n" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<3 lines>... stacklevel=2, ^^^^^^^^^^^^^ ) ^ aiohttp.web_exceptions.NotAppKeyWarning: It is recommended to use web.RequestKey instances for keys. https://docs.aiohttp.org/en/stable/web_advanced.html#request-s-storage ============================= slowest 10 durations ============================= 5.01s call tests/test_nacl_storage.py::test_load_session_dont_load_expired_session 3.00s call tests/test_nacl_storage.py::test_load_expired_session 2.00s call tests/test_encrypted_cookie_storage.py::test_fernet_ttl (7 durations < 0.005s hidden. Use -vv to show these durations.) =========================== short test summary info ============================ FAILED tests/test_abstract_storage.py::test_max_age_also_returns_expires - As... FAILED tests/test_abstract_storage.py::test_max_age_session_reset - KeyError:... ================= 2 failed, 50 passed, 27 deselected in 10.26s ================= E: pybuild pybuild:485: test: plugin pyproject failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_aiohttp_session/build; python3.13 -m pytest --no-cov -k 'not test_memcached_storage and not test_redis_storage' dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.14 3.13" --parallel=2 returned exit code 13 make: *** [debian/rules:13: binary] Error 25 dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2 --------------------------------------------------------------------------------

