Uvicorn автоматически отключается

Пытаюсь запустить uvicorn на сервере виртуального хостинга (Linux Debian):

uvicorn etebase_server.asgi:application --port 8000 --host 0.0.0.0 --lifespan on

uvicorn запускается, может обработать пару HTTP GET, но затем отключается примерно через 30 секунд. Вот сообщение об ошибке:

INFO: Started server process [125907]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
INFO: Shutting down
INFO: Waiting for application shutdown.
ERROR: Exception in 'lifespan' protocol
Traceback (most recent call last):
File "/XXX/etebase/.venv/lib/python3.7/site-packages/uvicorn/lifespan/on.py", line 55, in main
await app(scope, self.receive, self.send)
File "/XXX/etebase/.venv/lib/python3.7/site-packages/uvicorn/middleware/proxy_headers.py", line 45, in call
return await self.app(scope, receive, send)
File "/XXX/etebase/.venv/lib/python3.7/site-packages/fastapi/applications.py", line 199, in call
await super().call(scope, receive, send)
File "/XXX/etebase/.venv/lib/python3.7/site-packages/starlette/applications.py", line 111, in call
await self.middleware_stack(scope, receive, send)
File "/XXX/etebase/.venv/lib/python3.7/site-packages/starlette/middleware/errors.py", line 146, in call
await self.app(scope, receive, send)
File "/XXX/etebase/.venv/lib/python3.7/site-packages/starlette/middleware/trustedhost.py", line 34, in call
await self.app(scope, receive, send)
File "/XXX/etebase/.venv/lib/python3.7/site-packages/starlette/middleware/cors.py", line 70, in call
await self.app(scope, receive, send)
File "/XXX/etebase/.venv/lib/python3.7/site-packages/starlette/exceptions.py", line 58, in call
await self.app(scope, receive, send)
File "/XXX/etebase/.venv/lib/python3.7/site-packages/starlette/routing.py", line 555, in call
await self.lifespan(scope, receive, send)
File "/XXX/etebase/.venv/lib/python3.7/site-packages/starlette/routing.py", line 526, in lifespan
async for item in self.lifespan_context(app):
File "/XXX/etebase/.venv/lib/python3.7/site-packages/starlette/routing.py", line 469, in default_lifespan
await self.shutdown()
File "/XXX/etebase/.venv/lib/python3.7/site-packages/starlette/routing.py", line 512, in shutdown
await handler()
File "./etebase_fastapi/main.py", line 71, in on_shutdown
await redisw.close()
File "./etebase_fastapi/redis.py", line 18, in close
if self.redis is not None:
AttributeError: 'RedisWrapper' object has no attribute 'redis'
INFO: Application shutdown complete.
INFO: Finished server process [125907]

Любая идея о AttributeError: 'RedisWrapper' object has no attribute 'redis' ???


person XXX    schedule 07.03.2021    source источник
comment
кажется связанным: stackoverflow.com/questions/64512286/ stackoverflow.com/questions/57036856/   -  person bonkers    schedule 08.03.2021