Skip to content

Build failure: python3.12-mocket #400373

@freddydumont

Description

@freddydumont

Nixpkgs version

  • Unstable (25.05)

Steps to reproduce

see the build failure in Hydra. same thing happens locally. mocket is a dependency of some other package.

Can Hydra reproduce this build failure?

Yes, Hydra can reproduce this build failure.

Link to Hydra build job

https://hydra.nixos.org/build/295114163

Relevant log output

Sourcing python-remove-tests-dir-hook
Sourcing python-catch-conflicts-hook.sh
Sourcing python-remove-bin-bytecode-hook.sh
Sourcing pypa-build-hook
Using pypaBuildPhase
Sourcing python-runtime-deps-check-hook
Using pythonRuntimeDepsCheckHook
Sourcing pypa-install-hook
Using pypaInstallPhase
Sourcing python-imports-check-hook.sh
Using pythonImportsCheckPhase
Sourcing python-namespaces-hook
Sourcing python-catch-conflicts-hook.sh
Sourcing pytest-check-hook
/nix/store/l3797z8ybpgk14ara7z0ld4hsnrpnvyv-pytest-check-hook/nix-support/setup-hook: line 41: warning: command substitution: 1 unterminated here-document
Using pytestCheckPhase
Running phase: unpackPhase
unpacking source archive /nix/store/dbaaf3sc732c5n2fkmp1dv8i7amhjhnj-mocket-3.13.4.tar.gz
source root is mocket-3.13.4
setting SOURCE_DATE_EPOCH to timestamp 1580601600 of file "mocket-3.13.4/tests/tests.test_http_with_xxhash.HttpEntryTestCase.test_truesendall_with_dump_from_recording.json"
Running phase: patchPhase
Running phase: updateAutotoolsGnuConfigScriptsPhase
Running phase: configurePhase
no configure script, doing nothing
Running phase: buildPhase
Executing pypaBuildPhase
Creating a wheel...
pypa build flags: --no-isolation --outdir dist/ --wheel
* Getting build dependencies for wheel...
* Building wheel...
Successfully built mocket-3.13.4-py3-none-any.whl
Finished creating a wheel...
Finished executing pypaBuildPhase
Running phase: pythonRuntimeDepsCheckHook
Executing pythonRuntimeDepsCheck
Checking runtime dependencies for mocket-3.13.4-py3-none-any.whl
Finished executing pythonRuntimeDepsCheck
Running phase: installPhase
Executing pypaInstallPhase
Successfully installed mocket-3.13.4-py3-none-any.whl
Finished executing pypaInstallPhase
Running phase: pythonOutputDistPhase
Executing pythonOutputDistPhase
Finished executing pythonOutputDistPhase
Running phase: fixupPhase
checking for references to /private/tmp/nix-build-python3.12-mocket-3.13.4.drv-0/ in /nix/store/dqjzm0wzpramzr0g5ar3yr9al85x6i12-python3.12-mocket-3.13.4...
patching script interpreter paths in /nix/store/dqjzm0wzpramzr0g5ar3yr9al85x6i12-python3.12-mocket-3.13.4
stripping (with command strip and flags -S) in  /nix/store/dqjzm0wzpramzr0g5ar3yr9al85x6i12-python3.12-mocket-3.13.4/lib
checking for references to /private/tmp/nix-build-python3.12-mocket-3.13.4.drv-0/ in /nix/store/5l3d00kjf622l297a00l82gj4fyvilkm-python3.12-mocket-3.13.4-dist...
patching script interpreter paths in /nix/store/5l3d00kjf622l297a00l82gj4fyvilkm-python3.12-mocket-3.13.4-dist
Executing pythonRemoveTestsDir
Finished executing pythonRemoveTestsDir
Running phase: installCheckPhase
no Makefile or custom installCheckPhase, doing nothing
Running phase: pythonCatchConflictsPhase
Running phase: pythonRemoveBinBytecodePhase
Running phase: pythonImportsCheckPhase
Executing pythonImportsCheckPhase
Check whether the following modules can be imported: mocket
Running phase: pytestCheckPhase
Executing pytestCheckPhase
starting redis
waiting for redis to be ready
Could not connect to Valkey at /private/tmp/nix-build-python3.12-mocket-3.13.4.drv-0/run/redis.sock: No such file or directory
pytest flags: -m pytest -k not\ \(test_truesendall_with_dump_from_recording\)\ and\ not\ \(test_aiohttp\)\ and\ not\ \(test_asyncio_record_replay\)\ and\ not\ \(test_gethostbyname\)\ and\ not\ \(test_no_dangling_fds\)
/nix/store/vyp8vj3k51hhrghqy84x430khhck78sn-python3.12-pytest-asyncio-0.26.0/lib/python3.12/site-packages/pytest_asyncio/plugin.py:217: PytestDeprecationWarning: The configuration option "asyncio_default_fixture_loop_scope" is unset.
The event loop scope for asynchronous fixtures will default to the fixture caching scope. Future versions of pytest-asyncio will default the loop scope for asynchronous fixtures to function scope. Set the default fixture loop scope explicitly in order to avoid unexpected behavior in the future. Valid fixture loop scopes are: "function", "class", "module", "package", "session"

  warnings.warn(PytestDeprecationWarning(_DEFAULT_FIXTURE_LOOP_SCOPE_UNSET))
============================= test session starts ==============================
platform darwin -- Python 3.12.9, pytest-8.3.5, pluggy-1.5.0 -- /nix/store/xzjghvsg4fhr2vv6h4scihsdrgk4i76w-python3-3.12.9/bin/python3.12
cachedir: .pytest_cache
rootdir: /private/tmp/nix-build-python3.12-mocket-3.13.4.drv-0/mocket-3.13.4
configfile: pyproject.toml
testpaths: tests, mocket
plugins: anyio-4.9.0, asyncio-0.26.0, cov-nixpkgs-stub-1.0.0, pook-2.1.3
asyncio: mode=Mode.STRICT, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function
collected 170 items / 8 deselected / 162 selected                              

tests/test_compat.py::test_unknown_binary PASSED                         [  0%]
tests/test_http.py::TrueHttpEntryTestCase::test_truesendall SKIPPED      [  1%]
tests/test_http.py::TrueHttpEntryTestCase::test_truesendall_with_chunk_recording SKIPPED [  1%]
tests/test_http.py::TrueHttpEntryTestCase::test_truesendall_with_gzip_recording SKIPPED [  2%]
tests/test_http.py::TrueHttpEntryTestCase::test_truesendall_with_recording SKIPPED [  3%]
tests/test_http.py::TrueHttpEntryTestCase::test_wrongpath_truesendall SKIPPED [  3%]
tests/test_http.py::HttpEntryTestCase::test_does_not_fail_because_all_entries_are_served PASSED [  4%]
tests/test_http.py::HttpEntryTestCase::test_fail_because_entry_not_served PASSED [  4%]
tests/test_http.py::HttpEntryTestCase::test_file_object PASSED           [  5%]
tests/test_http.py::HttpEntryTestCase::test_mockhttp_entry_collect_duplicates PASSED [  6%]
tests/test_http.py::HttpEntryTestCase::test_multi_register PASSED        [  6%]
tests/test_http.py::HttpEntryTestCase::test_multipart PASSED             [  7%]
tests/test_http.py::HttpEntryTestCase::test_post_file_object PASSED      [  8%]
tests/test_http.py::HttpEntryTestCase::test_raise_exception_from_register PASSED [  8%]
tests/test_http.py::HttpEntryTestCase::test_raise_exception_from_single_register PASSED [  9%]
tests/test_http.py::HttpEntryTestCase::test_register PASSED              [  9%]
tests/test_http.py::HttpEntryTestCase::test_request_bodies PASSED        [ 10%]
tests/test_http.py::HttpEntryTestCase::test_same_url_different_methods PASSED [ 11%]
tests/test_http.py::HttpEntryTestCase::test_sendall PASSED               [ 11%]
tests/test_http.py::HttpEntryTestCase::test_sendall_double PASSED        [ 12%]
tests/test_http.py::HttpEntryTestCase::test_sendall_json PASSED          [ 12%]
tests/test_http.py::HttpEntryTestCase::test_sockets PASSED               [ 13%]
tests/test_http.py::HttpEntryTestCase::test_suggestion_for_register_and_body PASSED [ 14%]
tests/test_http.py::HttpEntryTestCase::test_suggestion_for_register_and_status PASSED [ 14%]
tests/test_http_gevent.py::HttpEntryTestCase::test_does_not_fail_because_all_entries_are_served PASSED [ 15%]
tests/test_http_gevent.py::HttpEntryTestCase::test_fail_because_entry_not_served PASSED [ 16%]
tests/test_http_gevent.py::HttpEntryTestCase::test_file_object PASSED    [ 16%]
tests/test_http_gevent.py::HttpEntryTestCase::test_mockhttp_entry_collect_duplicates PASSED [ 17%]
tests/test_http_gevent.py::HttpEntryTestCase::test_multi_register PASSED [ 17%]
tests/test_http_gevent.py::HttpEntryTestCase::test_multipart PASSED      [ 18%]
tests/test_http_gevent.py::HttpEntryTestCase::test_post_file_object PASSED [ 19%]
tests/test_http_gevent.py::HttpEntryTestCase::test_raise_exception_from_register PASSED [ 19%]
tests/test_http_gevent.py::HttpEntryTestCase::test_raise_exception_from_single_register PASSED [ 20%]
tests/test_http_gevent.py::HttpEntryTestCase::test_register PASSED       [ 20%]
tests/test_http_gevent.py::HttpEntryTestCase::test_request_bodies PASSED [ 21%]
tests/test_http_gevent.py::HttpEntryTestCase::test_same_url_different_methods PASSED [ 22%]
tests/test_http_gevent.py::HttpEntryTestCase::test_sendall PASSED        [ 22%]
tests/test_http_gevent.py::HttpEntryTestCase::test_sendall_double PASSED [ 23%]
tests/test_http_gevent.py::HttpEntryTestCase::test_sendall_json PASSED   [ 24%]
tests/test_http_gevent.py::HttpEntryTestCase::test_sockets PASSED        [ 24%]
tests/test_http_gevent.py::HttpEntryTestCase::test_suggestion_for_register_and_body PASSED [ 25%]
tests/test_http_gevent.py::HttpEntryTestCase::test_suggestion_for_register_and_status PASSED [ 25%]
tests/test_http_gevent.py::GeventHttpEntryTestCase::test_does_not_fail_because_all_entries_are_served PASSED [ 26%]
tests/test_http_gevent.py::GeventHttpEntryTestCase::test_fail_because_entry_not_served PASSED [ 27%]
tests/test_http_gevent.py::GeventHttpEntryTestCase::test_file_object PASSED [ 27%]
tests/test_http_gevent.py::GeventHttpEntryTestCase::test_mockhttp_entry_collect_duplicates PASSED [ 28%]
tests/test_http_gevent.py::GeventHttpEntryTestCase::test_multi_register PASSED [ 29%]
tests/test_http_gevent.py::GeventHttpEntryTestCase::test_multipart PASSED [ 29%]
tests/test_http_gevent.py::GeventHttpEntryTestCase::test_post_file_object PASSED [ 30%]
tests/test_http_gevent.py::GeventHttpEntryTestCase::test_raise_exception_from_register PASSED [ 30%]
tests/test_http_gevent.py::GeventHttpEntryTestCase::test_raise_exception_from_single_register PASSED [ 31%]
tests/test_http_gevent.py::GeventHttpEntryTestCase::test_register PASSED [ 32%]
tests/test_http_gevent.py::GeventHttpEntryTestCase::test_request_bodies PASSED [ 32%]
tests/test_http_gevent.py::GeventHttpEntryTestCase::test_same_url_different_methods PASSED [ 33%]
tests/test_http_gevent.py::GeventHttpEntryTestCase::test_sendall PASSED  [ 33%]
tests/test_http_gevent.py::GeventHttpEntryTestCase::test_sendall_double PASSED [ 34%]
tests/test_http_gevent.py::GeventHttpEntryTestCase::test_sendall_json PASSED [ 35%]
tests/test_http_gevent.py::GeventHttpEntryTestCase::test_sockets PASSED  [ 35%]
tests/test_http_gevent.py::GeventHttpEntryTestCase::test_suggestion_for_register_and_body PASSED [ 36%]
tests/test_http_gevent.py::GeventHttpEntryTestCase::test_suggestion_for_register_and_status PASSED [ 37%]
tests/test_http_httpx.py::HttpxEntryTestCase::test_httprettish_httpx_session FAILED [ 37%]

=================================== FAILURES ===================================
______________ HttpxEntryTestCase.test_httprettish_httpx_session _______________

    @contextlib.contextmanager
    def map_httpcore_exceptions() -> typing.Iterator[None]:
        global HTTPCORE_EXC_MAP
        if len(HTTPCORE_EXC_MAP) == 0:
            HTTPCORE_EXC_MAP = _load_httpcore_exceptions()
        try:
>           yield

/nix/store/y4cxzr9m3rwfqjmzb1nnpglkhr9nkqm5-python3.12-httpx-0.28.1/lib/python3.12/site-packages/httpx/_transports/default.py:101: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/nix/store/y4cxzr9m3rwfqjmzb1nnpglkhr9nkqm5-python3.12-httpx-0.28.1/lib/python3.12/site-packages/httpx/_transports/default.py:394: in handle_async_request
    resp = await self._pool.handle_async_request(req)
/nix/store/kj1160b6s9mgh3lz53029lfi1r54las0-python3.12-httpcore-1.0.7/lib/python3.12/site-packages/httpcore/_async/connection_pool.py:256: in handle_async_request
    raise exc from None
/nix/store/kj1160b6s9mgh3lz53029lfi1r54las0-python3.12-httpcore-1.0.7/lib/python3.12/site-packages/httpcore/_async/connection_pool.py:236: in handle_async_request
    response = await connection.handle_async_request(
/nix/store/kj1160b6s9mgh3lz53029lfi1r54las0-python3.12-httpcore-1.0.7/lib/python3.12/site-packages/httpcore/_async/connection.py:101: in handle_async_request
    raise exc
/nix/store/kj1160b6s9mgh3lz53029lfi1r54las0-python3.12-httpcore-1.0.7/lib/python3.12/site-packages/httpcore/_async/connection.py:78: in handle_async_request
    stream = await self._connect(request)
/nix/store/kj1160b6s9mgh3lz53029lfi1r54las0-python3.12-httpcore-1.0.7/lib/python3.12/site-packages/httpcore/_async/connection.py:124: in _connect
    stream = await self._network_backend.connect_tcp(**kwargs)
/nix/store/kj1160b6s9mgh3lz53029lfi1r54las0-python3.12-httpcore-1.0.7/lib/python3.12/site-packages/httpcore/_backends/auto.py:31: in connect_tcp
    return await self._backend.connect_tcp(
/nix/store/kj1160b6s9mgh3lz53029lfi1r54las0-python3.12-httpcore-1.0.7/lib/python3.12/site-packages/httpcore/_backends/anyio.py:113: in connect_tcp
    with map_exceptions(exc_map):
/nix/store/xzjghvsg4fhr2vv6h4scihsdrgk4i76w-python3-3.12.9/lib/python3.12/contextlib.py:158: in __exit__
    self.gen.throw(value)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

map = {<class 'TimeoutError'>: <class 'httpcore.ConnectTimeout'>, <class 'OSError'>: <class 'httpcore.ConnectError'>, <class 'anyio.BrokenResourceError'>: <class 'httpcore.ConnectError'>}

    @contextlib.contextmanager
    def map_exceptions(map: ExceptionMapping) -> typing.Iterator[None]:
        try:
            yield
        except Exception as exc:  # noqa: PIE786
            for from_exc, to_exc in map.items():
                if isinstance(exc, from_exc):
>                   raise to_exc(exc) from exc
E                   httpcore.ConnectTimeout

/nix/store/kj1160b6s9mgh3lz53029lfi1r54las0-python3.12-httpcore-1.0.7/lib/python3.12/site-packages/httpcore/_exceptions.py:14: ConnectTimeout

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

self = <tests.test_http_httpx.HttpxEntryTestCase testMethod=test_httprettish_httpx_session>

    @async_httprettified
    async def test_httprettish_httpx_session(self):
        expected_response = {"origin": "127.0.0.1"}
    
        HTTPretty.register_uri(
            HTTPretty.GET,
            self.target_url,
            body=json.dumps(expected_response),
        )
    
        async with httpx.AsyncClient() as client:
>           response = await client.get(self.target_url)

tests/test_http_httpx.py:23: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/nix/store/y4cxzr9m3rwfqjmzb1nnpglkhr9nkqm5-python3.12-httpx-0.28.1/lib/python3.12/site-packages/httpx/_client.py:1768: in get
    return await self.request(
/nix/store/y4cxzr9m3rwfqjmzb1nnpglkhr9nkqm5-python3.12-httpx-0.28.1/lib/python3.12/site-packages/httpx/_client.py:1540: in request
    return await self.send(request, auth=auth, follow_redirects=follow_redirects)
/nix/store/y4cxzr9m3rwfqjmzb1nnpglkhr9nkqm5-python3.12-httpx-0.28.1/lib/python3.12/site-packages/httpx/_client.py:1629: in send
    response = await self._send_handling_auth(
/nix/store/y4cxzr9m3rwfqjmzb1nnpglkhr9nkqm5-python3.12-httpx-0.28.1/lib/python3.12/site-packages/httpx/_client.py:1657: in _send_handling_auth
    response = await self._send_handling_redirects(
/nix/store/y4cxzr9m3rwfqjmzb1nnpglkhr9nkqm5-python3.12-httpx-0.28.1/lib/python3.12/site-packages/httpx/_client.py:1694: in _send_handling_redirects
    response = await self._send_single_request(request)
/nix/store/y4cxzr9m3rwfqjmzb1nnpglkhr9nkqm5-python3.12-httpx-0.28.1/lib/python3.12/site-packages/httpx/_client.py:1730: in _send_single_request
    response = await transport.handle_async_request(request)
/nix/store/y4cxzr9m3rwfqjmzb1nnpglkhr9nkqm5-python3.12-httpx-0.28.1/lib/python3.12/site-packages/httpx/_transports/default.py:393: in handle_async_request
    with map_httpcore_exceptions():
/nix/store/xzjghvsg4fhr2vv6h4scihsdrgk4i76w-python3-3.12.9/lib/python3.12/contextlib.py:158: in __exit__
    self.gen.throw(value)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

    @contextlib.contextmanager
    def map_httpcore_exceptions() -> typing.Iterator[None]:
        global HTTPCORE_EXC_MAP
        if len(HTTPCORE_EXC_MAP) == 0:
            HTTPCORE_EXC_MAP = _load_httpcore_exceptions()
        try:
            yield
        except Exception as exc:
            mapped_exc = None
    
            for from_exc, to_exc in HTTPCORE_EXC_MAP.items():
                if not isinstance(exc, from_exc):
                    continue
                # We want to map to the most specific exception we can find.
                # Eg if `exc` is an `httpcore.ReadTimeout`, we want to map to
                # `httpx.ReadTimeout`, not just `httpx.TimeoutException`.
                if mapped_exc is None or issubclass(to_exc, mapped_exc):
                    mapped_exc = to_exc
    
            if mapped_exc is None:  # pragma: no cover
                raise
    
            message = str(exc)
>           raise mapped_exc(message) from exc
E           httpx.ConnectTimeout

/nix/store/y4cxzr9m3rwfqjmzb1nnpglkhr9nkqm5-python3.12-httpx-0.28.1/lib/python3.12/site-packages/httpx/_transports/default.py:118: ConnectTimeout
------------------------------ Captured log call -------------------------------
WARNING  asyncio:base_events.py:1994 Executing <Task pending name='Task-2' coro=<HttpxEntryTestCase.test_httprettish_httpx_session() running at /nix/store/qzn6xjw89nmzyys6n03kawdhlvvdw5wb-python3.12-decorator-5.2.1/lib/python3.12/site-packages/decorator.py:224> cb=[_run_until_complete_cb() at /nix/store/xzjghvsg4fhr2vv6h4scihsdrgk4i76w-python3-3.12.9/lib/python3.12/asyncio/base_events.py:181] created at /nix/store/xzjghvsg4fhr2vv6h4scihsdrgk4i76w-python3-3.12.9/lib/python3.12/asyncio/runners.py:100> took 0.130 seconds
WARNING  asyncio:base_events.py:1994 Executing <Task pending name='anyio._core._sockets.connect_tcp.<locals>.try_connect' coro=<connect_tcp.<locals>.try_connect() running at /nix/store/68siaj6pmi6mada8r5kgz9x1wfh3x8hg-python3.12-anyio-4.9.0/lib/python3.12/site-packages/anyio/_core/_sockets.py:175> wait_for=<Future pending cb=[Task.task_wakeup()] created at /nix/store/xzjghvsg4fhr2vv6h4scihsdrgk4i76w-python3-3.12.9/lib/python3.12/asyncio/base_events.py:448> cb=[TaskGroup._spawn.<locals>.task_done() at /nix/store/68siaj6pmi6mada8r5kgz9x1wfh3x8hg-python3.12-anyio-4.9.0/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:794] created at /nix/store/xzjghvsg4fhr2vv6h4scihsdrgk4i76w-python3-3.12.9/lib/python3.12/asyncio/tasks.py:420> took 5.015 seconds
=========================== short test summary info ============================
FAILED tests/test_http_httpx.py::HttpxEntryTestCase::test_httprettish_httpx_session - httpx.ConnectTimeout
!!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 1 failures !!!!!!!!!!!!!!!!!!!!!!!!!!!
============ 1 failed, 55 passed, 5 skipped, 8 deselected in 9.32s =============

Additional context

looks like an http-related test that could be disabled

System metadata

  • system: "aarch64-darwin"
  • host os: Darwin 23.6.0, macOS 14.6.1
  • multi-user?: yes
  • sandbox: no
  • version: nix-env (Nix) 2.24.13
  • nixpkgs: /nix/store/inbabfz8n7fxflkis0a05zcli4a1q2bp-source

Notify maintainers


Note for maintainers: Please tag this issue in your pull request description. (i.e. Resolves #ISSUE.)

I assert that this issue is relevant for Nixpkgs

Is this issue important to you?

Add a 👍 reaction to issues you find important.

Metadata

Metadata

Assignees

No one assigned

    Labels

    0.kind: build failureA package fails to build6.topic: darwinRunning or building packages on Darwin6.topic: pythonPython is a high-level, general-purpose programming language.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions