Swift hard-coded socket.TCP_KEEPIDLE = 600 and that might cause some odd behavior for users

Bug #1759606 reported by John Dickinson on 2018-03-28
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
OpenStack Object Storage (swift)
Medium
Unassigned

Bug Description

The socket value for TCP_KEEPIDLE is hard-coded to 600 seconds[1], and this goes back to Swift's initial public commit. Essentially this means the kernel won't send keepalive packets on the socket for 10 minutes. Some deployment configurations with proxies or load balancers may keep connections to Swift open (ie without a user active on the other side), and this leads to sockets being closed at odd times.

We should allow the TCP_KEEPIDLE to be set via config.

[1] https://github.com/openstack/swift/blob/master/swift/common/wsgi.py#L215. Good news! Looks like we already have a server config dictionary available, so implementation shouldn't be super complicated.

Reviewed: https://review.openstack.org/602764
Committed: https://git.openstack.org/cgit/openstack/swift/commit/?id=cfeb32c66baced374a50d2dd2dd5b13b7d15888c
Submitter: Zuul
Branch: master

commit cfeb32c66baced374a50d2dd2dd5b13b7d15888c
Author: FatemaKhalid <email address hidden>
Date: Fri Sep 14 23:18:22 2018 +0200

    Adding keep_idle config value to socket

    User can cofigure KEEPIDLE time for sockets in TCP connection.
    The default value is the old value which is 600.

    Change-Id: Ib7fb166deb8a87ae4e97ba0671048b1ec079a2ef
    Closes-Bug:1759606

Changed in swift:
status: New → Fix Released

This issue was fixed in the openstack/swift 2.20.0 release.

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

Other bug subscribers