Way to time-limit keep-alive connections
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Object Storage (swift) |
Confirmed
|
Medium
|
Unassigned |
Bug Description
Since the proxy-server will know how long a connection has been idle between keep-alive requests, it would be ideal if a setting could specify how long a single connection can remain idle between two requests in the same keep-alive connection before it is disconnected (off by default), as well as the maximum amount of time the connection is allowed to remain open, allowing it to disconnect upon expiration of that period after finishing any in-flight requests (also defaulted off).
This would be immensely helpful in cases where proxy-server reloads (not restarts) allow prior connections to close out -- however if someone has a keep-alive connection open for a number of days, the reload won't *really* be finished until that older worker can die out.
Right now with the available tooling it's possible to just find oldies and orphans and just kill them, but they could be in the middle of a long transfer.
Sounds like a useful thing. I think it'd have to be implemented in eventlet.wsgi, though. Swift code doesn't really get to handle TCP connections from clients; it's only invoked once an HTTP request has come in.