-
-
Notifications
You must be signed in to change notification settings - Fork 997
Open
Description
- Initially raised as discussion
Hello, I recently testing my project in Python 3.13.9. And I got the error below.
It seems like some problem with anyio in Python 3.13. Everything works when downgrade to Python 3.12.
2025-11-04T04:21:06.180982Z [DEBUG ] httpcore.connection: connect_tcp.started host='localhost' port=9997 local_address=None timeout=5.0 socket_options=None func_name=atrace lineno=87 pathname=/Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpcore/_trace.py thread=8453398656 process=49194 app_env=dev
2025-11-04T04:21:06.181586Z [DEBUG ] httpcore.connection: connect_tcp.started host='localhost' port=9997 local_address=None timeout=5.0 socket_options=None func_name=atrace lineno=87 pathname=/Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpcore/_trace.py thread=8453398656 process=49194 app_env=dev
2025-11-04T04:21:06.182975Z [DEBUG ] httpcore.connection: connect_tcp.failed exception=RuntimeError("Attempted to exit a cancel scope that isn't the current tasks's current cancel scope") func_name=atrace lineno=87 pathname=/Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpcore/_trace.py thread=8453398656 process=49194 app_env=dev
2025-11-04T04:21:06.183217Z [DEBUG ] httpcore.connection: connect_tcp.failed exception=RuntimeError("Attempted to exit a cancel scope that isn't the current tasks's current cancel scope") func_name=atrace lineno=87 pathname=/Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpcore/_trace.py thread=8453398656 process=49194 app_env=dev
2025-11-04T04:21:06.183472Z [DEBUG ] utils.Utils: Failed to execute check_server_status.<locals>._check func_name=async_wrapper lineno=139 pathname=/Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/utils/Utils.py thread=6141276160 process=49194 app_env=dev num_attempt=0
╭──────────────────────────────────── Traceback (most recent call last) ────────────────────────────────────╮
│ in async_wrapper:132 │
│ │
│ /Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py: │
│ 781 in __aexit__ │
│ │
│ 778 │ │ │ │ │ # added to self._exceptions so it's ok to break exception │
│ 779 │ │ │ │ │ # chaining and avoid adding a "During handling of above..." │
│ 780 │ │ │ │ │ # for each nesting level. │
│ ❱ 781 │ │ │ │ │ raise BaseExceptionGroup( │
│ 782 │ │ │ │ │ │ "unhandled errors in a TaskGroup", self._exceptions │
│ 783 │ │ │ │ │ ) from None │
│ 784 │ │ │ │ elif exc_val: │
│ │
│ ╭───────────────────────────────── locals ──────────────────────────────────╮ │
│ │ exc_type = None │ │
│ │ loop = <uvloop.Loop running=True closed=False debug=False> │ │
│ │ self = <anyio._backends._asyncio.TaskGroup object at 0x10e807610> │ │
│ │ wait_scope = <anyio._backends._asyncio.CancelScope object at 0x10e7ff9b0> │ │
│ ╰───────────────────────────────────────────────────────────────────────────╯ │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯
ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
╭──────────────────────────────────────────── Sub-exception #1 ─────────────────────────────────────────────╮
│ ╭────────────────────────────────── Traceback (most recent call last) ──────────────────────────────────╮ │
│ │ in _run_in_isolation:130 │ │
│ │ │ │
│ │ /Users/hermeschen/Repo/work/stream-server/src/stream_server/internal/MediaServer.py:99 in _check │ │
│ │ │ │
│ │ 96 │ @retry(default_max_attempt=5, duration_or_func=_delay) │ │
│ │ 97 │ async def _check() -> None: │ │
│ │ 98 │ │ await LOGGER.adebug("try to call media server") │ │
│ │ ❱ 99 │ │ response: httpx.Response = await client.get("/v3/paths/list") │ │
│ │ 100 │ │ if response.status_code == 200: │ │
│ │ 101 │ │ │ await LOGGER.adebug("media server is running") │ │
│ │ 102 │ │ │ return │ │
│ │ │ │
│ │ ╭────────────────────── locals ──────────────────────╮ │ │
│ │ │ client = <httpx.AsyncClient object at 0x10e805950> │ │ │
│ │ ╰────────────────────────────────────────────────────╯ │ │
│ │ │ │
│ │ /Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpx/_client.py:1768 in │ │
│ │ get │ │
│ │ │ │
│ │ 1765 │ │ │ │
│ │ 1766 │ │ **Parameters**: See `httpx.request`. │ │
│ │ 1767 │ │ """ │ │
│ │ ❱ 1768 │ │ return await self.request( │ │
│ │ 1769 │ │ │ "GET", │ │
│ │ 1770 │ │ │ url, │ │
│ │ 1771 │ │ │ params=params, │ │
│ │ │ │
│ │ ╭───────────────────────────────── locals ──────────────────────────────────╮ │ │
│ │ │ auth = <httpx._client.UseClientDefault object at 0x10adb5fd0> │ │ │
│ │ │ cookies = None │ │ │
│ │ │ extensions = None │ │ │
│ │ │ follow_redirects = <httpx._client.UseClientDefault object at 0x10adb5fd0> │ │ │
│ │ │ headers = None │ │ │
│ │ │ params = None │ │ │
│ │ │ self = <httpx.AsyncClient object at 0x10e805950> │ │ │
│ │ │ timeout = <httpx._client.UseClientDefault object at 0x10adb5fd0> │ │ │
│ │ │ url = '/v3/paths/list' │ │ │
│ │ ╰───────────────────────────────────────────────────────────────────────────╯ │ │
│ │ │ │
│ │ /Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpx/_client.py:1540 in │ │
│ │ request │ │
│ │ │ │
│ │ 1537 │ │ │ timeout=timeout, │ │
│ │ 1538 │ │ │ extensions=extensions, │ │
│ │ 1539 │ │ ) │ │
│ │ ❱ 1540 │ │ return await self.send(request, auth=auth, follow_redirects=follow_redirects) │ │
│ │ 1541 │ │ │
│ │ 1542 │ @asynccontextmanager │ │
│ │ 1543 │ async def stream( │ │
│ │ │ │
│ │ ╭────────────────────────────────── locals ──────────────────────────────────╮ │ │
│ │ │ auth = <httpx._client.UseClientDefault object at 0x10adb5fd0> │ │ │
│ │ │ content = None │ │ │
│ │ │ cookies = None │ │ │
│ │ │ data = None │ │ │
│ │ │ extensions = None │ │ │
│ │ │ files = None │ │ │
│ │ │ follow_redirects = <httpx._client.UseClientDefault object at 0x10adb5fd0> │ │ │
│ │ │ headers = None │ │ │
│ │ │ json = None │ │ │
│ │ │ method = 'GET' │ │ │
│ │ │ params = None │ │ │
│ │ │ request = <Request('GET', 'http://localhost:9997/v3/paths/list')> │ │ │
│ │ │ self = <httpx.AsyncClient object at 0x10e805950> │ │ │
│ │ │ timeout = <httpx._client.UseClientDefault object at 0x10adb5fd0> │ │ │
│ │ │ url = '/v3/paths/list' │ │ │
│ │ ╰────────────────────────────────────────────────────────────────────────────╯ │ │
│ │ │ │
│ │ /Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpx/_client.py:1629 in │ │
│ │ send │ │
│ │ │ │
│ │ 1626 │ │ │ │
│ │ 1627 │ │ auth = self._build_request_auth(request, auth) │ │
│ │ 1628 │ │ │ │
│ │ ❱ 1629 │ │ response = await self._send_handling_auth( │ │
│ │ 1630 │ │ │ request, │ │
│ │ 1631 │ │ │ auth=auth, │ │
│ │ 1632 │ │ │ follow_redirects=follow_redirects, │ │
│ │ │ │
│ │ ╭────────────────────────────────── locals ──────────────────────────────────╮ │ │
│ │ │ auth = <httpx.Auth object at 0x10e816ba0> │ │ │
│ │ │ follow_redirects = True │ │ │
│ │ │ request = <Request('GET', 'http://localhost:9997/v3/paths/list')> │ │ │
│ │ │ self = <httpx.AsyncClient object at 0x10e805950> │ │ │
│ │ │ stream = False │ │ │
│ │ ╰────────────────────────────────────────────────────────────────────────────╯ │ │
│ │ │ │
│ │ /Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpx/_client.py:1657 in │ │
│ │ _send_handling_auth │ │
│ │ │ │
│ │ 1654 │ │ │ request = await auth_flow.__anext__() │ │
│ │ 1655 │ │ │ │ │
│ │ 1656 │ │ │ while True: │ │
│ │ ❱ 1657 │ │ │ │ response = await self._send_handling_redirects( │ │
│ │ 1658 │ │ │ │ │ request, │ │
│ │ 1659 │ │ │ │ │ follow_redirects=follow_redirects, │ │
│ │ 1660 │ │ │ │ │ history=history, │ │
│ │ │ │
│ │ ╭──────────────────────────────────── locals ─────────────────────────────────────╮ │ │
│ │ │ auth = <httpx.Auth object at 0x10e816ba0> │ │ │
│ │ │ auth_flow = <async_generator object Auth.async_auth_flow at 0x10e84b300> │ │ │
│ │ │ follow_redirects = True │ │ │
│ │ │ history = [] │ │ │
│ │ │ request = <Request('GET', 'http://localhost:9997/v3/paths/list')> │ │ │
│ │ │ self = <httpx.AsyncClient object at 0x10e805950> │ │ │
│ │ ╰─────────────────────────────────────────────────────────────────────────────────╯ │ │
│ │ │ │
│ │ /Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpx/_client.py:1694 in │ │
│ │ _send_handling_redirects │ │
│ │ │ │
│ │ 1691 │ │ │ for hook in self._event_hooks["request"]: │ │
│ │ 1692 │ │ │ │ await hook(request) │ │
│ │ 1693 │ │ │ │ │
│ │ ❱ 1694 │ │ │ response = await self._send_single_request(request) │ │
│ │ 1695 │ │ │ try: │ │
│ │ 1696 │ │ │ │ for hook in self._event_hooks["response"]: │ │
│ │ 1697 │ │ │ │ │ await hook(response) │ │
│ │ │ │
│ │ ╭────────────────────────────────── locals ──────────────────────────────────╮ │ │
│ │ │ follow_redirects = True │ │ │
│ │ │ history = [] │ │ │
│ │ │ request = <Request('GET', 'http://localhost:9997/v3/paths/list')> │ │ │
│ │ │ self = <httpx.AsyncClient object at 0x10e805950> │ │ │
│ │ ╰────────────────────────────────────────────────────────────────────────────╯ │ │
│ │ │ │
│ │ /Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpx/_client.py:1730 in │ │
│ │ _send_single_request │ │
│ │ │ │
│ │ 1727 │ │ │ ) │ │
│ │ 1728 │ │ │ │
│ │ 1729 │ │ with request_context(request=request): │ │
│ │ ❱ 1730 │ │ │ response = await transport.handle_async_request(request) │ │
│ │ 1731 │ │ │ │
│ │ 1732 │ │ assert isinstance(response.stream, AsyncByteStream) │ │
│ │ 1733 │ │ response.request = request │ │
│ │ │ │
│ │ ╭────────────────────────────── locals ───────────────────────────────╮ │ │
│ │ │ request = <Request('GET', 'http://localhost:9997/v3/paths/list')> │ │ │
│ │ │ self = <httpx.AsyncClient object at 0x10e805950> │ │ │
│ │ │ start = 264998.268840791 │ │ │
│ │ │ transport = <httpx.AsyncHTTPTransport object at 0x10e806c10> │ │ │
│ │ ╰─────────────────────────────────────────────────────────────────────╯ │ │
│ │ │ │
│ │ /Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpx/_transports/defaul │ │
│ │ t.py:394 in handle_async_request │ │
│ │ │ │
│ │ 391 │ │ │ extensions=request.extensions, │ │
│ │ 392 │ │ ) │ │
│ │ 393 │ │ with map_httpcore_exceptions(): │ │
│ │ ❱ 394 │ │ │ resp = await self._pool.handle_async_request(req) │ │
│ │ 395 │ │ │ │
│ │ 396 │ │ assert isinstance(resp.stream, typing.AsyncIterable) │ │
│ │ 397 │ │
│ │ │ │
│ │ ╭───────────────────────────────────────────── locals ──────────────────────────────────────────────╮ │ │
│ │ │ httpcore = <module 'httpcore' from │ │ │
│ │ │ '/Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpcor… │ │ │
│ │ │ req = <Request [b'GET']> │ │ │
│ │ │ request = <Request('GET', 'http://localhost:9997/v3/paths/list')> │ │ │
│ │ │ self = <httpx.AsyncHTTPTransport object at 0x10e806c10> │ │ │
│ │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │
│ │ │ │
│ │ /Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpcore/_async/connecti │ │
│ │ on_pool.py:256 in handle_async_request │ │
│ │ │ │
│ │ 253 │ │ │ │ closing = self._assign_requests_to_connections() │ │
│ │ 254 │ │ │ │ │
│ │ 255 │ │ │ await self._close_connections(closing) │ │
│ │ ❱ 256 │ │ │ raise exc from None │ │
│ │ 257 │ │ │ │
│ │ 258 │ │ # Return the response. Note that in this case we still have to manage │ │
│ │ 259 │ │ # the point at which the response is closed. │ │
│ │ │ │
│ │ ╭───────────────────────────────────────────── locals ──────────────────────────────────────────────╮ │ │
│ │ │ closing = [] │ │ │
│ │ │ connection = <AsyncHTTPConnection [CONNECTION FAILED]> │ │ │
│ │ │ pool_request = <httpcore._async.connection_pool.AsyncPoolRequest object at 0x10e816f90> │ │ │
│ │ │ request = <Request [b'GET']> │ │ │
│ │ │ scheme = 'http' │ │ │
│ │ │ self = <AsyncConnectionPool [Requests: 0 active, 0 queued | Connections: 0 active, 0 │ │ │
│ │ │ idle]> │ │ │
│ │ │ timeout = 5.0 │ │ │
│ │ │ timeouts = {'connect': 5.0, 'read': 5.0, 'write': 5.0, 'pool': 5.0} │ │ │
│ │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │
│ │ │ │
│ │ /Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpcore/_async/connecti │ │
│ │ on_pool.py:236 in handle_async_request │ │
│ │ │ │
│ │ 233 │ │ │ │ │ │
│ │ 234 │ │ │ │ try: │ │
│ │ 235 │ │ │ │ │ # Send the request on the assigned connection. │ │
│ │ ❱ 236 │ │ │ │ │ response = await connection.handle_async_request( │ │
│ │ 237 │ │ │ │ │ │ pool_request.request │ │
│ │ 238 │ │ │ │ │ ) │ │
│ │ 239 │ │ │ │ except ConnectionNotAvailable: │ │
│ │ │ │
│ │ ╭───────────────────────────────────────────── locals ──────────────────────────────────────────────╮ │ │
│ │ │ closing = [] │ │ │
│ │ │ connection = <AsyncHTTPConnection [CONNECTION FAILED]> │ │ │
│ │ │ pool_request = <httpcore._async.connection_pool.AsyncPoolRequest object at 0x10e816f90> │ │ │
│ │ │ request = <Request [b'GET']> │ │ │
│ │ │ scheme = 'http' │ │ │
│ │ │ self = <AsyncConnectionPool [Requests: 0 active, 0 queued | Connections: 0 active, 0 │ │ │
│ │ │ idle]> │ │ │
│ │ │ timeout = 5.0 │ │ │
│ │ │ timeouts = {'connect': 5.0, 'read': 5.0, 'write': 5.0, 'pool': 5.0} │ │ │
│ │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │
│ │ │ │
│ │ /Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpcore/_async/connecti │ │
│ │ on.py:101 in handle_async_request │ │
│ │ │ │
│ │ 98 │ │ │ │ │ │ ) │ │
│ │ 99 │ │ except BaseException as exc: │ │
│ │ 100 │ │ │ self._connect_failed = True │ │
│ │ ❱ 101 │ │ │ raise exc │ │
│ │ 102 │ │ │ │
│ │ 103 │ │ return await self._connection.handle_async_request(request) │ │
│ │ 104 │ │
│ │ │ │
│ │ ╭────────────────────── locals ───────────────────────╮ │ │
│ │ │ request = <Request [b'GET']> │ │ │
│ │ │ self = <AsyncHTTPConnection [CONNECTION FAILED]> │ │ │
│ │ ╰─────────────────────────────────────────────────────╯ │ │
│ │ │ │
│ │ /Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpcore/_async/connecti │ │
│ │ on.py:78 in handle_async_request │ │
│ │ │ │
│ │ 75 │ │ try: │ │
│ │ 76 │ │ │ async with self._request_lock: │ │
│ │ 77 │ │ │ │ if self._connection is None: │ │
│ │ ❱ 78 │ │ │ │ │ stream = await self._connect(request) │ │
│ │ 79 │ │ │ │ │ │ │
│ │ 80 │ │ │ │ │ ssl_object = stream.get_extra_info("ssl_object") │ │
│ │ 81 │ │ │ │ │ http2_negotiated = ( │ │
│ │ │ │
│ │ ╭────────────────────── locals ───────────────────────╮ │ │
│ │ │ request = <Request [b'GET']> │ │ │
│ │ │ self = <AsyncHTTPConnection [CONNECTION FAILED]> │ │ │
│ │ ╰─────────────────────────────────────────────────────╯ │ │
│ │ │ │
│ │ /Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpcore/_async/connecti │ │
│ │ on.py:124 in _connect │ │
│ │ │ │
│ │ 121 │ │ │ │ │ │ "socket_options": self._socket_options, │ │
│ │ 122 │ │ │ │ │ } │ │
│ │ 123 │ │ │ │ │ async with Trace("connect_tcp", logger, request, kwargs) as trace: │ │
│ │ ❱ 124 │ │ │ │ │ │ stream = await self._network_backend.connect_tcp(**kwargs) │ │
│ │ 125 │ │ │ │ │ │ trace.return_value = stream │ │
│ │ 126 │ │ │ │ else: │ │
│ │ 127 │ │ │ │ │ kwargs = { │ │
│ │ │ │
│ │ ╭──────────────────────────────── locals ─────────────────────────────────╮ │ │
│ │ │ delays = <generator object exponential_backoff at 0x10e809630> │ │ │
│ │ │ kwargs = { │ │ │
│ │ │ │ 'host': 'localhost', │ │ │
│ │ │ │ 'port': 9997, │ │ │
│ │ │ │ 'local_address': None, │ │ │
│ │ │ │ 'timeout': 5.0, │ │ │
│ │ │ │ 'socket_options': None │ │ │
│ │ │ } │ │ │
│ │ │ request = <Request [b'GET']> │ │ │
│ │ │ retries_left = 0 │ │ │
│ │ │ self = <AsyncHTTPConnection [CONNECTION FAILED]> │ │ │
│ │ │ sni_hostname = None │ │ │
│ │ │ timeout = 5.0 │ │ │
│ │ │ timeouts = {'connect': 5.0, 'read': 5.0, 'write': 5.0, 'pool': 5.0} │ │ │
│ │ │ trace = <httpcore._trace.Trace object at 0x10e817a10> │ │ │
│ │ ╰─────────────────────────────────────────────────────────────────────────╯ │ │
│ │ │ │
│ │ /Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpcore/_backends/auto. │ │
│ │ py:31 in connect_tcp │ │
│ │ │ │
│ │ 28 │ │ socket_options: typing.Iterable[SOCKET_OPTION] | None = None, │ │
│ │ 29 │ ) -> AsyncNetworkStream: │ │
│ │ 30 │ │ await self._init_backend() │ │
│ │ ❱ 31 │ │ return await self._backend.connect_tcp( │ │
│ │ 32 │ │ │ host, │ │
│ │ 33 │ │ │ port, │ │
│ │ 34 │ │ │ timeout=timeout, │ │
│ │ │ │
│ │ ╭─────────────────────────────────── locals ───────────────────────────────────╮ │ │
│ │ │ host = 'localhost' │ │ │
│ │ │ local_address = None │ │ │
│ │ │ port = 9997 │ │ │
│ │ │ self = <httpcore._backends.auto.AutoBackend object at 0x10e806e90> │ │ │
│ │ │ socket_options = None │ │ │
│ │ │ timeout = 5.0 │ │ │
│ │ ╰──────────────────────────────────────────────────────────────────────────────╯ │ │
│ │ │ │
│ │ /Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/httpcore/_backends/anyio │ │
│ │ .py:114 in connect_tcp │ │
│ │ │ │
│ │ 111 │ │ │ anyio.BrokenResourceError: ConnectError, │ │
│ │ 112 │ │ } │ │
│ │ 113 │ │ with map_exceptions(exc_map): │ │
│ │ ❱ 114 │ │ │ with anyio.fail_after(timeout): │ │
│ │ 115 │ │ │ │ stream: anyio.abc.ByteStream = await anyio.connect_tcp( │ │
│ │ 116 │ │ │ │ │ remote_host=host, │ │
│ │ 117 │ │ │ │ │ remote_port=port, │ │
│ │ │ │
│ │ ╭───────────────────────────────────────── locals ──────────────────────────────────────────╮ │ │
│ │ │ exc_map = { │ │ │
│ │ │ │ <class 'TimeoutError'>: <class 'httpcore.ConnectTimeout'>, │ │ │
│ │ │ │ <class 'OSError'>: <class 'httpcore.ConnectError'>, │ │ │
│ │ │ │ <class 'anyio.BrokenResourceError'>: <class 'httpcore.ConnectError'> │ │ │
│ │ │ } │ │ │
│ │ │ host = 'localhost' │ │ │
│ │ │ local_address = None │ │ │
│ │ │ port = 9997 │ │ │
│ │ │ self = <httpcore.AnyIOBackend object at 0x10e817b60> │ │ │
│ │ │ socket_options = [] │ │ │
│ │ │ stream = <Future finished result=None> │ │ │
│ │ │ timeout = 5.0 │ │ │
│ │ ╰───────────────────────────────────────────────────────────────────────────────────────────╯ │ │
│ │ │ │
│ │ /Users/hermeschen/.local/share/uv/python/cpython-3.13-macos-aarch64-none/lib/python3.13/contextlib.py │ │
│ │ :148 in __exit__ │ │
│ │ │ │
│ │ 145 │ def __exit__(self, typ, value, traceback): │ │
│ │ 146 │ │ if typ is None: │ │
│ │ 147 │ │ │ try: │ │
│ │ ❱ 148 │ │ │ │ next(self.gen) │ │
│ │ 149 │ │ │ except StopIteration: │ │
│ │ 150 │ │ │ │ return False │ │
│ │ 151 │ │ │ else: │ │
│ │ │ │
│ │ ╭──────────────────────────────── locals ─────────────────────────────────╮ │ │
│ │ │ self = <contextlib._GeneratorContextManager object at 0x10e7d3930> │ │ │
│ │ │ traceback = None │ │ │
│ │ │ typ = None │ │ │
│ │ │ value = None │ │ │
│ │ ╰─────────────────────────────────────────────────────────────────────────╯ │ │
│ │ │ │
│ │ /Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/anyio/_core/_tasks.py:11 │ │
│ │ 7 in fail_after │ │
│ │ │ │
│ │ 114 │ """ │ │
│ │ 115 │ current_time = get_async_backend().current_time │ │
│ │ 116 │ deadline = (current_time() + delay) if delay is not None else math.inf │ │
│ │ ❱ 117 │ with get_async_backend().create_cancel_scope( │ │
│ │ 118 │ │ deadline=deadline, shield=shield │ │
│ │ 119 │ ) as cancel_scope: │ │
│ │ 120 │ │ yield cancel_scope │ │
│ │ │ │
│ │ ╭───────────────────────────────────────────── locals ──────────────────────────────────────────────╮ │ │
│ │ │ cancel_scope = <anyio._backends._asyncio.CancelScope object at 0x10e874230> │ │ │
│ │ │ current_time = <bound method AsyncIOBackend.current_time of <class │ │ │
│ │ │ 'anyio._backends._asyncio.AsyncIOBackend'>> │ │ │
│ │ │ deadline = 529897.813 │ │ │
│ │ │ delay = 5.0 │ │ │
│ │ │ shield = False │ │ │
│ │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │
│ │ │ │
│ │ /Users/hermeschen/Repo/work/stream-server/.venv/lib/python3.13/site-packages/anyio/_backends/_asyncio │ │
│ │ .py:467 in __exit__ │ │
│ │ │ │
│ │ 464 │ │ assert self._host_task is not None │ │
│ │ 465 │ │ host_task_state = _task_states.get(self._host_task) │ │
│ │ 466 │ │ if host_task_state is None or host_task_state.cancel_scope is not self: │ │
│ │ ❱ 467 │ │ │ raise RuntimeError( │ │
│ │ 468 │ │ │ │ "Attempted to exit a cancel scope that isn't the current tasks's " │ │
│ │ 469 │ │ │ │ "current cancel scope" │ │
│ │ 470 │ │ │ ) │ │
│ │ │ │
│ │ ╭──────────────────────────────────── locals ────────────────────────────────────╮ │ │
│ │ │ exc_type = None │ │ │
│ │ │ exc_val = None │ │ │
│ │ │ host_task_state = <anyio._backends._asyncio.TaskState object at 0x10e853e90> │ │ │
│ │ │ self = <anyio._backends._asyncio.CancelScope object at 0x10e874230> │ │ │
│ │ ╰────────────────────────────────────────────────────────────────────────────────╯ │ │
│ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ RuntimeError: Attempted to exit a cancel scope that isn't the current tasks's current cancel scope │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Metadata
Metadata
Assignees
Labels
No labels