Way to time-limit keep-alive connections

Bug #1390087 reported by Brian Cline
6
This bug affects 1 person
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.

Tags: ops eventlet
Revision history for this message
Samuel Merritt (torgomatic) wrote :

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.

Revision history for this message
Tim Burke (1-tim-z) wrote :

Agree with Sam that this will probably require an upstream eventlet patch, but will keep this open as we're the most likely group to drive such a patch.

Changed in swift:
importance: Undecided → Medium
status: New → Confirmed
tags: added: eventlet
Revision history for this message
Matthew Oliver (matt-0) wrote :

The patch partially solves this issue.. sorry I approved it before we got a chance to add the tag to the gerrit patch: https://review.opendev.org/c/openstack/swift/+/873744

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.