INFO: Will watch for changes in these directories: ['/home/kernelci'] INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) INFO: Started reloader process [1] using WatchFiles INFO: Started server process [8] INFO: Waiting for application startup. INFO: Application startup complete. INFO: 172.20.0.1:53876 - "GET /latest/viewer HTTP/1.0" 200 OK INFO: 172.20.0.1:55922 - "GET /latest/viewer HTTP/1.0" 200 OK INFO: 172.20.0.1:55934 - "GET /latest/ HTTP/1.0" 200 OK INFO: 172.20.0.1:52398 - "GET /latest/viewer HTTP/1.0" 200 OK INFO: 172.20.0.1:50232 - "GET /latest/viewer HTTP/1.0" 200 OK INFO: 172.20.0.1:44076 - "GET /latest/viewer HTTP/1.0" 200 OK INFO: 172.20.0.1:44082 - "GET /latest/metrics HTTP/1.0" 200 OK INFO: 172.20.0.1:40010 - "GET /latest/viewer HTTP/1.0" 200 OK INFO: 172.20.0.1:47104 - "GET /latest/viewer HTTP/1.0" 200 OK INFO: 172.20.0.1:47118 - "POST /latest/subscribe/node HTTP/1.0" 200 OK INFO: 172.20.0.1:47128 - "GET /latest/listen/45363 HTTP/1.0" 200 OK INFO: 172.20.0.1:47146 - "POST /latest/subscribe/node HTTP/1.0" 200 OK INFO: 172.20.0.1:47152 - "POST /latest/subscribe/node HTTP/1.0" 200 OK INFO: 172.20.0.1:47204 - "POST /latest/subscribe/node HTTP/1.0" 200 OK INFO: 172.20.0.1:47220 - "GET /latest/whoami HTTP/1.0" 200 OK INFO: 172.20.0.1:47232 - "GET /latest/nodes?name=patchset&state=running&limit=100&offset=0 HTTP/1.0" 200 OK INFO: 172.20.0.1:47236 - "POST /latest/subscribe/node HTTP/1.0" 200 OK INFO: 172.20.0.1:47246 - "POST /latest/subscribe/node HTTP/1.0" 200 OK INFO: 172.20.0.1:47258 - "GET /latest/whoami HTTP/1.0" 200 OK INFO: 172.20.0.1:47270 - "POST /latest/subscribe/node HTTP/1.0" 200 OK INFO: 172.20.0.1:47274 - "GET /latest/nodes?state=closing&limit=100&offset=0 HTTP/1.0" 200 OK INFO: 172.20.0.1:47278 - "GET /latest/whoami HTTP/1.0" 200 OK INFO: 172.20.0.1:47282 - "GET /latest/whoami HTTP/1.0" 200 OK INFO: 172.20.0.1:47288 - "GET /latest/nodes?timeout__lt=2025-02-24T20%3A03%3A37.574745&state=running&limit=100&offset=0 HTTP/1.0" 200 OK INFO: 172.20.0.1:47308 - "POST /latest/subscribe/node HTTP/1.0" 200 OK INFO: 172.20.0.1:47318 - "GET /latest/nodes?timeout__lt=2025-02-24T20%3A03%3A37.574745&state=available&limit=100&offset=0 HTTP/1.0" 200 OK INFO: 172.20.0.1:47330 - "GET /latest/nodes?timeout__lt=2025-02-24T20%3A03%3A37.574745&state=closing&limit=100&offset=0 HTTP/1.0" 200 OK INFO: 172.20.0.1:47340 - "POST /latest/subscribe/node HTTP/1.0" 200 OK INFO: 172.20.0.1:47356 - "GET /latest/whoami HTTP/1.0" 200 OK INFO: 172.20.0.1:47366 - "GET /latest/nodes?state=available&holdoff__lt=2025-02-24T20%3A03%3A37.738624&limit=100&offset=0 HTTP/1.0" 200 OK INFO: 172.20.0.1:47378 - "POST /latest/subscribe/node?promisc=True HTTP/1.0" 200 OK INFO: 172.20.0.1:47396 - "GET /latest/viewer HTTP/1.0" 200 OK INFO: 172.20.0.1:47382 - "GET /latest/nodes/fast?state=done&processed_by_kcidb_bridge=False&created__gt=2025-02-20+20%3A03%3A38.336456&limit=20 HTTP/1.0" 200 OK INFO: 172.20.0.1:47406 - "GET /latest/node/67bca64eb5a50b72fc9c95b0 HTTP/1.0" 200 OK INFO: 172.20.0.1:47422 - "GET /latest/node/67bc9aa2b5a50b72fc9c93dc HTTP/1.0" 200 OK INFO: 172.20.0.1:47438 - "GET /latest/node/67bcca15b5a50b72fc9c970a HTTP/1.0" 200 OK INFO: 172.20.0.1:47470 - "GET /latest/viewer?node_id=67b6051b07a05f85dfbbf45b HTTP/1.0" 200 OK INFO: 172.20.0.1:47484 - "GET /latest/count?kind=checkout&data.kernel_revision.commit=86ebf1b8d1b5c6dfc98323972a7fbff223f15244&owner=staging.kernelci.org&submitter=service%3Apipeline HTTP/1.0" 200 OK INFO: 172.20.0.1:47494 - "GET /latest/count?kind=checkout&data.kernel_revision.commit=86ebf1b8d1b5c6dfc98323972a7fbff223f15244&owner=staging.kernelci.org&submitter=service%3Apipeline&result=incomplete HTTP/1.0" 200 OK INFO: 172.20.0.1:47506 - "GET /latest/viewer?node_id=66da0f35d33a8a768851f035 HTTP/1.0" 200 OK INFO: 172.20.0.1:47510 - "GET /latest/count?kind=checkout&data.kernel_revision.commit=222268be5f0026e9c7c8710818c3c28604dd8326&owner=staging.kernelci.org&submitter=service%3Apipeline HTTP/1.0" 200 OK INFO: 172.20.0.1:47526 - "GET /latest/count?kind=checkout&data.kernel_revision.commit=222268be5f0026e9c7c8710818c3c28604dd8326&owner=staging.kernelci.org&submitter=service%3Apipeline&result=incomplete HTTP/1.0" 200 OK INFO: 172.20.0.1:47528 - "GET /latest/count?kind=checkout&data.kernel_revision.commit=0e42e39a4feab8b6aa1f1f80275c745357a89c48&owner=staging.kernelci.org&submitter=service%3Apipeline HTTP/1.0" 200 OK INFO: 172.20.0.1:47540 - "GET /latest/count?kind=checkout&data.kernel_revision.commit=0e42e39a4feab8b6aa1f1f80275c745357a89c48&owner=staging.kernelci.org&submitter=service%3Apipeline&result=incomplete HTTP/1.0" 200 OK INFO: 172.20.0.1:47548 - "GET /latest/count?kind=checkout&data.kernel_revision.commit=83f0a05c4d9f4002f5db34e056af90fe0ba8344f&owner=staging.kernelci.org&submitter=service%3Apipeline HTTP/1.0" 200 OK INFO: 172.20.0.1:47560 - "GET /latest/count?kind=checkout&data.kernel_revision.commit=83f0a05c4d9f4002f5db34e056af90fe0ba8344f&owner=staging.kernelci.org&submitter=service%3Apipeline&result=incomplete HTTP/1.0" 200 OK INFO: 172.20.0.1:47568 - "GET /latest/ HTTP/1.0" 200 OK INFO: 172.20.0.1:47578 - "GET /latest/node/67b6051b07a05f85dfbbf45b HTTP/1.0" 200 OK INFO: 172.20.0.1:47592 - "GET /latest/node/66da0f35d33a8a768851f035 HTTP/1.0" 200 OK INFO: 172.20.0.1:50924 - "GET /latest/viewer HTTP/1.0" 200 OK INFO: 172.20.0.1:60654 - "GET /latest/viewer HTTP/1.0" 200 OK INFO: 172.20.0.1:54714 - "GET /latest/nodes?name=patchset&state=running&limit=100&offset=0 HTTP/1.0" 200 OK INFO: 172.20.0.1:54716 - "GET /latest/viewer HTTP/1.0" 200 OK INFO: 172.20.0.1:54728 - "GET /latest/metrics HTTP/1.0" 200 OK INFO: 172.20.0.1:40628 - "GET /latest/viewer HTTP/1.0" 200 OK INFO: 172.20.0.1:47454 - "GET /latest/listen/45372 HTTP/1.0" 200 OK INFO: 172.20.0.1:47346 - "GET /latest/listen/45371 HTTP/1.0" 200 OK INFO: 172.20.0.1:47344 - "GET /latest/listen/45370 HTTP/1.0" 200 OK INFO: 172.20.0.1:47292 - "GET /latest/listen/45369 HTTP/1.0" 200 OK INFO: 172.20.0.1:47250 - "GET /latest/listen/45368 HTTP/1.0" 200 OK INFO: 172.20.0.1:47242 - "GET /latest/listen/45367 HTTP/1.0" 200 OK INFO: 172.20.0.1:47166 - "GET /latest/listen/45365 HTTP/1.0" 200 OK INFO: 172.20.0.1:47148 - "GET /latest/listen/45364 HTTP/1.0" 200 OK INFO: 172.20.0.1:47136 - "GET /latest/listen/45363 HTTP/1.0" 200 OK INFO: 172.20.0.1:35138 - "GET /latest/viewer HTTP/1.0" 200 OK INFO: 172.20.0.1:54512 - "GET /latest/nodes?name=patchset&state=running&limit=100&offset=0 HTTP/1.0" 200 OK INFO: 172.20.0.1:54514 - "GET /latest/nodes?state=closing&limit=100&offset=0 HTTP/1.0" 200 OK INFO: 172.20.0.1:54526 - "GET /latest/nodes?timeout__lt=2025-02-24T20%3A04%3A37.645310&state=running&limit=100&offset=0 HTTP/1.0" 200 OK INFO: 172.20.0.1:54536 - "GET /latest/nodes?timeout__lt=2025-02-24T20%3A04%3A37.645310&state=available&limit=100&offset=0 HTTP/1.0" 200 OK INFO: 172.20.0.1:54538 - "GET /latest/nodes?timeout__lt=2025-02-24T20%3A04%3A37.645310&state=closing&limit=100&offset=0 HTTP/1.0" 200 OK INFO: 172.20.0.1:54552 - "GET /latest/nodes?state=available&holdoff__lt=2025-02-24T20%3A04%3A37.753250&limit=100&offset=0 HTTP/1.0" 200 OK INFO: 172.20.0.1:54558 - "GET /latest/viewer HTTP/1.0" 200 OK INFO: 172.20.0.1:54572 - "GET /latest/viewer?search=parent%3D67b6051b07a05f85dfbbf53c HTTP/1.0" 200 OK INFO: 172.20.0.1:54582 - "GET /latest/viewer?node_id=66d988b73f8f72dc6a4520c7 HTTP/1.0" 200 OK INFO: 172.20.0.1:54594 - "GET /latest/ HTTP/1.0" 200 OK INFO: 172.20.0.1:54610 - "GET /latest/nodes?parent=67b6051b07a05f85dfbbf53c&limit=250 HTTP/1.0" 200 OK INFO: 172.20.0.1:45802 - "GET /latest/node/66d988b73f8f72dc6a4520c7 HTTP/1.0" 200 OK INFO: 172.20.0.1:45810 - "GET /latest/viewer HTTP/1.0" 200 OK INFO: 172.20.0.1:35258 - "GET /latest/viewer HTTP/1.0" 200 OK INFO: 172.20.0.1:40636 - "GET /latest/listen/45372 HTTP/1.0" 200 OK INFO: 172.20.0.1:40680 - "GET /latest/listen/45371 HTTP/1.0" 200 OK INFO: 172.20.0.1:40702 - "GET /latest/listen/45370 HTTP/1.0" 200 OK INFO: 172.20.0.1:40674 - "GET /latest/listen/45369 HTTP/1.0" 200 OK INFO: 172.20.0.1:40684 - "GET /latest/listen/45368 HTTP/1.0" 200 OK INFO: 172.20.0.1:40664 - "GET /latest/listen/45367 HTTP/1.0" 200 OK INFO: 172.20.0.1:40688 - "GET /latest/listen/45365 HTTP/1.0" 200 OK INFO: 172.20.0.1:40648 - "GET /latest/listen/45364 HTTP/1.0" 200 OK INFO: 172.20.0.1:40650 - "GET /latest/listen/45363 HTTP/1.0" 200 OK INFO: 172.20.0.1:47714 - "GET /latest/nodes?name=patchset&state=running&limit=100&offset=0 HTTP/1.0" 200 OK INFO: 172.20.0.1:47730 - "GET /latest/viewer HTTP/1.0" 200 OK INFO: 172.20.0.1:47740 - "GET /latest/metrics HTTP/1.0" 200 OK INFO: 172.20.0.1:51746 - "GET /latest/viewer HTTP/1.0" 200 OK INFO: 172.20.0.1:38640 - "GET /latest/viewer HTTP/1.0" 200 OK INFO: 172.20.0.1:49698 - "GET /latest/nodes?name=patchset&state=running&limit=100&offset=0 HTTP/1.0" 200 OK INFO: 172.20.0.1:49708 - "GET /latest/viewer?node_id=67b6051b07a05f85dfbbf53e HTTP/1.0" 200 OK INFO: 172.20.0.1:49720 - "GET /latest/nodes?state=closing&limit=100&offset=0 HTTP/1.0" 200 OK INFO: 172.20.0.1:49724 - "GET /latest/nodes?timeout__lt=2025-02-24T20%3A05%3A37.728024&state=running&limit=100&offset=0 HTTP/1.0" 200 OK INFO: 172.20.0.1:49728 - "GET /latest/nodes?timeout__lt=2025-02-24T20%3A05%3A37.728024&state=available&limit=100&offset=0 HTTP/1.0" 200 OK INFO: 172.20.0.1:49740 - "GET /latest/nodes?timeout__lt=2025-02-24T20%3A05%3A37.728024&state=closing&limit=100&offset=0 HTTP/1.0" 200 OK INFO: 172.20.0.1:49748 - "GET /latest/nodes?state=available&holdoff__lt=2025-02-24T20%3A05%3A37.766874&limit=100&offset=0 HTTP/1.0" 200 OK INFO: 172.20.0.1:49762 - "GET /latest/viewer HTTP/1.0" 200 OK INFO: 172.20.0.1:49776 - "GET /latest/node/67b6051b07a05f85dfbbf53e HTTP/1.0" 200 OK INFO: 172.20.0.1:49784 - "GET /latest/ HTTP/1.0" 200 OK INFO: 172.20.0.1:52522 - "GET /latest/viewer HTTP/1.0" 200 OK INFO: 172.20.0.1:35278 - "GET /latest/listen/45372 HTTP/1.0" 200 OK INFO: 172.20.0.1:35282 - "GET /latest/listen/45371 HTTP/1.0" 200 OK INFO: 172.20.0.1:35306 - "GET /latest/listen/45370 HTTP/1.0" 200 OK INFO: 172.20.0.1:35336 - "GET /latest/listen/45369 HTTP/1.0" 200 OK INFO: 172.20.0.1:35314 - "GET /latest/listen/45368 HTTP/1.0" 200 OK INFO: 172.20.0.1:35276 - "GET /latest/listen/45367 HTTP/1.0" 200 OK INFO: 172.20.0.1:35320 - "GET /latest/listen/45365 HTTP/1.0" 200 OK INFO: 172.20.0.1:35292 - "GET /latest/listen/45364 HTTP/1.0" 200 OK INFO: 172.20.0.1:35266 - "GET /latest/listen/45363 HTTP/1.0" 200 OK INFO: 172.20.0.1:51364 - "GET /latest/viewer HTTP/1.0" 200 OK INFO: 172.20.0.1:51452 - "GET /latest/nodes?name=patchset&state=running&limit=100&offset=0 HTTP/1.0" 200 OK INFO: 172.20.0.1:51462 - "GET /latest/viewer HTTP/1.0" 200 OK INFO: 172.20.0.1:51474 - "GET /latest/metrics HTTP/1.0" 200 OK INFO: 172.20.0.1:60336 - "GET /latest/viewer HTTP/1.0" 200 OK INFO: 172.20.0.1:60346 - "POST /latest/unsubscribe/45366 HTTP/1.0" 200 OK INFO: 172.20.0.1:60350 - "POST /latest/unsubscribe/45364 HTTP/1.0" 200 OK Exception: Connection closed by server. INFO: 172.20.0.1:60360 - "POST /latest/unsubscribe/45369 HTTP/1.0" 200 OK INFO: 172.20.0.1:60358 - "POST /latest/unsubscribe/45363 HTTP/1.0" 200 OK Traceback (most recent call last): File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 165, in __call__ await self.app(scope, receive, _send) File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 62, in __call__ await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app raise exc File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app await app(scope, receive, sender) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 715, in __call__ await self.middleware_stack(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 735, in app await route.handle(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 288, in handle await self.app(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 76, in app await wrap_app_handling_exceptions(app, request)(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app raise exc File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app await app(scope, receive, sender) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 73, in app response = await f(request) ^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 301, in app raw_response = await run_endpoint_function( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 212, in run_endpoint_function return await dependant.call(**values) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/api/main.py", line 954, in listen return await pubsub.listen(sub_id, user.username) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/api/pubsub.py", line 138, in listen msg = await sub['redis_sub'].get_message( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 1032, in get_message response = await self.parse_response(block=(timeout is None), timeout=timeout) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 905, in parse_response response = await self._execute( ^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 885, in _execute return await conn.retry.call_with_retry( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/retry.py", line 62, in call_with_retry await fail(error) File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 874, in _disconnect_raise_connect raise error File "/usr/local/lib/python3.11/site-packages/redis/asyncio/retry.py", line 59, in call_with_retry return await do() ^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/connection.py", line 502, in read_response response = await self._parser.read_response( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/_parsers/resp2.py", line 82, in read_response response = await self._read_response(disable_decoding=disable_decoding) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/_parsers/resp2.py", line 90, in _read_response raw = await self._readline() ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/_parsers/base.py", line 221, in _readline raise ConnectionError(SERVER_CLOSED_CONNECTION_ERROR) redis.exceptions.ConnectionError: Connection closed by server. Traceback (most recent call last): File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 165, in __call__ await self.app(scope, receive, _send) File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 62, in __call__ await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app raise exc File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app await app(scope, receive, sender) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 715, in __call__ await self.middleware_stack(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 735, in app await route.handle(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 288, in handle await self.app(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 76, in app await wrap_app_handling_exceptions(app, request)(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app raise exc File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app await app(scope, receive, sender) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 73, in app response = await f(request) ^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 301, in app raw_response = await run_endpoint_function( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 212, in run_endpoint_function return await dependant.call(**values) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/api/main.py", line 954, in listen return await pubsub.listen(sub_id, user.username) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/api/pubsub.py", line 138, in listen msg = await sub['redis_sub'].get_message( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 1032, in get_message response = await self.parse_response(block=(timeout is None), timeout=timeout) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 905, in parse_response response = await self._execute( ^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 885, in _execute return await conn.retry.call_with_retry( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/retry.py", line 62, in call_with_retry await fail(error) File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 874, in _disconnect_raise_connect raise error File "/usr/local/lib/python3.11/site-packages/redis/asyncio/retry.py", line 59, in call_with_retry return await do() ^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/connection.py", line 502, in read_response response = await self._parser.read_response( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/_parsers/resp2.py", line 82, in read_response response = await self._read_response(disable_decoding=disable_decoding) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/_parsers/resp2.py", line 90, in _read_response raw = await self._readline() ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/_parsers/base.py", line 221, in _readline raise ConnectionError(SERVER_CLOSED_CONNECTION_ERROR) redis.exceptions.ConnectionError: Connection closed by server. Exception: Connection closed by server. Exception: Connection closed by server. INFO: 172.20.0.1:60372 - "POST /latest/unsubscribe/45365 HTTP/1.0" 200 OK Traceback (most recent call last): File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 165, in __call__ await self.app(scope, receive, _send) File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 62, in __call__ await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app raise exc File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app await app(scope, receive, sender) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 715, in __call__ await self.middleware_stack(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 735, in app await route.handle(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 288, in handle await self.app(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 76, in app await wrap_app_handling_exceptions(app, request)(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app raise exc File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app await app(scope, receive, sender) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 73, in app response = await f(request) ^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 301, in app raw_response = await run_endpoint_function( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 212, in run_endpoint_function return await dependant.call(**values) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/api/main.py", line 954, in listen return await pubsub.listen(sub_id, user.username) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/api/pubsub.py", line 138, in listen msg = await sub['redis_sub'].get_message( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 1032, in get_message response = await self.parse_response(block=(timeout is None), timeout=timeout) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 905, in parse_response response = await self._execute( ^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 885, in _execute return await conn.retry.call_with_retry( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/retry.py", line 62, in call_with_retry await fail(error) File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 874, in _disconnect_raise_connect raise error File "/usr/local/lib/python3.11/site-packages/redis/asyncio/retry.py", line 59, in call_with_retry return await do() ^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/connection.py", line 502, in read_response response = await self._parser.read_response( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/_parsers/resp2.py", line 82, in read_response response = await self._read_response(disable_decoding=disable_decoding) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/_parsers/resp2.py", line 90, in _read_response raw = await self._readline() ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/_parsers/base.py", line 221, in _readline raise ConnectionError(SERVER_CLOSED_CONNECTION_ERROR) redis.exceptions.ConnectionError: Connection closed by server. Traceback (most recent call last): File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 165, in __call__ await self.app(scope, receive, _send) File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 62, in __call__ await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app raise exc File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app await app(scope, receive, sender) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 715, in __call__ await self.middleware_stack(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 735, in app await route.handle(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 288, in handle await self.app(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 76, in app await wrap_app_handling_exceptions(app, request)(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app raise exc File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app await app(scope, receive, sender) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 73, in app response = await f(request) ^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 301, in app raw_response = await run_endpoint_function( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 212, in run_endpoint_function return await dependant.call(**values) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/api/main.py", line 954, in listen return await pubsub.listen(sub_id, user.username) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/api/pubsub.py", line 138, in listen msg = await sub['redis_sub'].get_message( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 1032, in get_message response = await self.parse_response(block=(timeout is None), timeout=timeout) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 905, in parse_response response = await self._execute( ^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 885, in _execute return await conn.retry.call_with_retry( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/retry.py", line 62, in call_with_retry await fail(error) File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 874, in _disconnect_raise_connect raise error File "/usr/local/lib/python3.11/site-packages/redis/asyncio/retry.py", line 59, in call_with_retry return await do() ^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/connection.py", line 502, in read_response response = await self._parser.read_response( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/_parsers/resp2.py", line 82, in read_response response = await self._read_response(disable_decoding=disable_decoding) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/_parsers/resp2.py", line 90, in _read_response raw = await self._readline() ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/_parsers/base.py", line 221, in _readline raise ConnectionError(SERVER_CLOSED_CONNECTION_ERROR) redis.exceptions.ConnectionError: Connection closed by server. Traceback (most recent call last): File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 165, in __call__ await self.app(scope, receive, _send) File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 62, in __call__ await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app raise exc File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app await app(scope, receive, sender) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 715, in __call__ await self.middleware_stack(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 735, in app await route.handle(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 288, in handle await self.app(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 76, in app await wrap_app_handling_exceptions(app, request)(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app raise exc File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app await app(scope, receive, sender) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 73, in app response = await f(request) ^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 301, in app raw_response = await run_endpoint_function( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 212, in run_endpoint_function return await dependant.call(**values) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/api/main.py", line 954, in listen return await pubsub.listen(sub_id, user.username) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/api/pubsub.py", line 138, in listen msg = await sub['redis_sub'].get_message( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 1032, in get_message response = await self.parse_response(block=(timeout is None), timeout=timeout) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 905, in parse_response response = await self._execute( ^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 885, in _execute return await conn.retry.call_with_retry( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/retry.py", line 62, in call_with_retry await fail(error) File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 874, in _disconnect_raise_connect raise error File "/usr/local/lib/python3.11/site-packages/redis/asyncio/retry.py", line 59, in call_with_retry return await do() ^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/connection.py", line 502, in read_response response = await self._parser.read_response( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/_parsers/resp2.py", line 82, in read_response response = await self._read_response(disable_decoding=disable_decoding) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/_parsers/resp2.py", line 90, in _read_response raw = await self._readline() ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/_parsers/base.py", line 221, in _readline raise ConnectionError(SERVER_CLOSED_CONNECTION_ERROR) redis.exceptions.ConnectionError: Connection closed by server. Traceback (most recent call last): File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 165, in __call__ await self.app(scope, receive, _send) File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 62, in __call__ await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app raise exc File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app await app(scope, receive, sender) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 715, in __call__ await self.middleware_stack(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 735, in app await route.handle(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 288, in handle await self.app(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 76, in app await wrap_app_handling_exceptions(app, request)(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app raise exc File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app await app(scope, receive, sender) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 73, in app response = await f(request) ^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 301, in app raw_response = await run_endpoint_function( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 212, in run_endpoint_function return await dependant.call(**values) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/api/main.py", line 954, in listen return await pubsub.listen(sub_id, user.username) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/api/pubsub.py", line 138, in listen msg = await sub['redis_sub'].get_message( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 1032, in get_message response = await self.parse_response(block=(timeout is None), timeout=timeout) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 905, in parse_response response = await self._execute( ^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 885, in _execute return await conn.retry.call_with_retry( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/retry.py", line 62, in call_with_retry await fail(error) File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 874, in _disconnect_raise_connect raise error File "/usr/local/lib/python3.11/site-packages/redis/asyncio/retry.py", line 59, in call_with_retry return await do() ^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/connection.py", line 502, in read_response response = await self._parser.read_response( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/_parsers/resp2.py", line 82, in read_response response = await self._read_response(disable_decoding=disable_decoding) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/_parsers/resp2.py", line 90, in _read_response raw = await self._readline() ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/_parsers/base.py", line 221, in _readline raise ConnectionError(SERVER_CLOSED_CONNECTION_ERROR) redis.exceptions.ConnectionError: Connection closed by server. Exception: Connection closed by server. INFO: 172.20.0.1:60382 - "POST /latest/unsubscribe/45370 HTTP/1.0" 200 OK Exception: Connection closed by server. INFO: 172.20.0.1:60386 - "POST /latest/unsubscribe/45368 HTTP/1.0" 200 OK Exception: Connection closed by server. INFO: 172.20.0.1:60392 - "POST /latest/unsubscribe/45367 HTTP/1.0" 200 OK Traceback (most recent call last): File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 165, in __call__ await self.app(scope, receive, _send) File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 62, in __call__ await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app raise exc File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app await app(scope, receive, sender) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 715, in __call__ await self.middleware_stack(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 735, in app await route.handle(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 288, in handle await self.app(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 76, in app await wrap_app_handling_exceptions(app, request)(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app raise exc File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app await app(scope, receive, sender) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 73, in app response = await f(request) ^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 301, in app raw_response = await run_endpoint_function( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 212, in run_endpoint_function return await dependant.call(**values) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/api/main.py", line 954, in listen return await pubsub.listen(sub_id, user.username) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/api/pubsub.py", line 138, in listen msg = await sub['redis_sub'].get_message( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 1032, in get_message response = await self.parse_response(block=(timeout is None), timeout=timeout) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 905, in parse_response response = await self._execute( ^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 885, in _execute return await conn.retry.call_with_retry( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/retry.py", line 62, in call_with_retry await fail(error) File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 874, in _disconnect_raise_connect INFO: 172.20.0.1:60390 - "POST /latest/unsubscribe/45372 HTTP/1.0" 200 OK raise error File "/usr/local/lib/python3.11/site-packages/redis/asyncio/retry.py", line 59, in call_with_retry return await do() ^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/connection.py", line 502, in read_response response = await self._parser.read_response( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/_parsers/resp2.py", line 82, in read_response response = await self._read_response(disable_decoding=disable_decoding) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/_parsers/resp2.py", line 90, in _read_response raw = await self._readline() ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/_parsers/base.py", line 221, in _readline raise ConnectionError(SERVER_CLOSED_CONNECTION_ERROR) redis.exceptions.ConnectionError: Connection closed by server. Traceback (most recent call last): File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 165, in __call__ await self.app(scope, receive, _send) File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 62, in __call__ await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app raise exc File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app await app(scope, receive, sender) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 715, in __call__ await self.middleware_stack(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 735, in app await route.handle(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 288, in handle await self.app(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 76, in app await wrap_app_handling_exceptions(app, request)(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app raise exc File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app await app(scope, receive, sender) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 73, in app response = await f(request) ^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 301, in app raw_response = await run_endpoint_function( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 212, in run_endpoint_function return await dependant.call(**values) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/api/main.py", line 954, in listen return await pubsub.listen(sub_id, user.username) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/api/pubsub.py", line 138, in listen msg = await sub['redis_sub'].get_message( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 1032, in get_message response = await self.parse_response(block=(timeout is None), timeout=timeout) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 905, in parse_response response = await self._execute( ^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 885, in _execute return await conn.retry.call_with_retry( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/retry.py", line 62, in call_with_retry await fail(error) File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 874, in _disconnect_raise_connect raise error File "/usr/local/lib/python3.11/site-packages/redis/asyncio/retry.py", line 59, in call_with_retry return await do() ^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/connection.py", line 502, in read_response response = await self._parser.read_response( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/_parsers/resp2.py", line 82, in read_response response = await self._read_response(disable_decoding=disable_decoding) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/_parsers/resp2.py", line 90, in _read_response raw = await self._readline() ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/_parsers/base.py", line 221, in _readline raise ConnectionError(SERVER_CLOSED_CONNECTION_ERROR) redis.exceptions.ConnectionError: Connection closed by server. Traceback (most recent call last): File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 165, in __call__ await self.app(scope, receive, _send) File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 62, in __call__ await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app raise exc File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app await app(scope, receive, sender) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 715, in __call__ await self.middleware_stack(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 735, in app await route.handle(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 288, in handle await self.app(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 76, in app await wrap_app_handling_exceptions(app, request)(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app raise exc File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app await app(scope, receive, sender) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 73, in app response = await f(request) ^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 301, in app raw_response = await run_endpoint_function( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 212, in run_endpoint_function return await dependant.call(**values) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/api/main.py", line 954, in listen return await pubsub.listen(sub_id, user.username) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/api/pubsub.py", line 138, in listen msg = await sub['redis_sub'].get_message( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 1032, in get_message response = await self.parse_response(block=(timeout is None), timeout=timeout) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 905, in parse_response response = await self._execute( ^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 885, in _execute return await conn.retry.call_with_retry( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/retry.py", line 62, in call_with_retry await fail(error) File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 874, in _disconnect_raise_connect raise error File "/usr/local/lib/python3.11/site-packages/redis/asyncio/retry.py", line 59, in call_with_retry return await do() ^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/asyncio/connection.py", line 502, in read_response response = await self._parser.read_response( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/_parsers/resp2.py", line 82, in read_response response = await self._read_response(disable_decoding=disable_decoding) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/_parsers/resp2.py", line 90, in _read_response raw = await self._readline() ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/redis/_parsers/base.py", line 221, in _readline raise ConnectionError(SERVER_CLOSED_CONNECTION_ERROR) redis.exceptions.ConnectionError: Connection closed by server. Exception: Connection closed by server. Exception: Connection closed by server. INFO: 172.20.0.1:60400 - "POST /latest/unsubscribe/45371 HTTP/1.0" 200 OK Exception: Connection closed by server. INFO: 172.20.0.1:35952 - "GET /latest/viewer HTTP/1.0" 200 OK INFO: Shutting down INFO: Waiting for application shutdown. INFO: Application shutdown complete. INFO: Finished server process [8] INFO: Stopping reloader process [1]