Last Updated on 2024-10-14 by Clay
Problem Description
Today, while I was using podman to create a container (from a FastAPI image) to run my FastAPI service, I encountered an issue where the container would automatically stop if the user logged out or if there were no HTTP POST requests sent to the API for a while. After some time, the service would stop.
Using podman ps
, I found that the container had already stopped, with the final state being exit 0 — indicating that it had exited normally, without any unusual error messages.
Since my service was started using FastAPI with Python, I used logging and debug tools to trace the issue. The only message I found was:
HTTP connection lost.
Shutting down...
I searched online and found discussions on Stackoverflow, which eventually led me to two methods that successfully solved the issue of the container's service shutting down automatically.
Solutions
- Since my ASGI service was running with uvicorn, I added an extra parameter to the uvicorn command
--timeout-keep-alive 99999999
. I set a large value to prevent the service from shutting down automatically (the default is 5 seconds). This worked, and the service stopped shutting down. However, many of my colleagues criticized this as a strange solution. - Updating podman. For instance, on Ubuntu, the version might be 3.x.x, but the actual version can go up to 4.x.x. Updating podman and restarting the service resolved the issue.