Bug 834061

Summary: [RFE] RHDS: Implement SO_KEEPALIVE in network calls.
Product: Red Hat Enterprise Linux 6 Reporter: Nathan Kinder <nkinder>
Component: 389-ds-baseAssignee: Rich Megginson <rmeggins>
Status: CLOSED ERRATA QA Contact: Sankar Ramalingam <sramling>
Severity: high Docs Contact:
Priority: high    
Version: 6.4CC: cww, james.brown, jgalipea, mkubik, mreynolds, rfreire
Target Milestone: rcKeywords: FutureFeature
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: 389-ds-base-1.2.11.12-1.el6 Doc Type: Bug Fix
Doc Text:
Cause: DS did not take into account the OS TCP keepalive setting. Consequence: Connections might be not clsoed out as they should Fix: Add the keepalive setting to DS connections Result: Connections being closed out as they should be.
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-02-21 08:19:37 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 782183, 840699    

Description Nathan Kinder 2012-06-20 18:10:55 UTC
This bug is created as a clone of upstream ticket:
https://fedorahosted.org/389/ticket/191

https://bugzilla.redhat.com/show_bug.cgi?id=711207

{{{
2.  What is the nature and description of the request?
Implement SO_KEEPALIVE in network calls

3.  Why does the customer need this? (List the business requirements here)
Customer's RHDS being affected by lingering TCP connections that are not
correctly closed (refer to https://access.redhat.com/kb/docs/DOC-44459).
From RFC 1122:
 A TCP keep-alive mechanism should only be invoked in
 server applications that might otherwise hang
 indefinitely and consume resources unnecessarily if a
 client crashes or aborts a connection during a network
 failure.
With this implementation, RHDS would be more resilient to
misconfigured/problematic clients, at a minimum cost.

4.  How would the customer like to achieve this? (List the functional
requirements here)
Implement SO_KEEPALIVE in network calls.

5.  For each functional requirement listed in question 4, specify how Red Hat
and the customer can test to confirm the requirement is successfully
implemented.
# netstat -tnpo
 ...
 tcp        0      0 10.66.129.184:40223         10.64.10.12:636
ESTABLISHED 1337/ns-slapd         keepalive (2740.13/0/0)

6.  Is there already an existing RFE upstream or in Red Hat bugzilla?
No.

7.  How quickly does this need resolved? (desired target release)
9.x

8.  Does this request meet the RHEL Inclusion criteria (please review)
Yes

9.  List the affected packages
RHDS

10. Would the customer be able to assist in testing this functionality if
implemented?
Yes.
}}}

Comment 1 Nathan Kinder 2012-06-20 21:53:29 UTC
*** Bug 711207 has been marked as a duplicate of this bug. ***

Comment 2 RHEL Program Management 2012-07-10 07:10:09 UTC
This request was not resolved in time for the current release.
Red Hat invites you to ask your support representative to
propose this request, if still desired, for consideration in
the next release of Red Hat Enterprise Linux.

Comment 4 Ludek Smid 2012-07-11 11:51:02 UTC
This request was erroneously removed from consideration in
Red Hat Enterprise Linux 6.4, which is currently under
development.  This request will be evaluated for inclusion
in Red Hat Enterprise Linux 6.4.

Comment 5 Jenny Severance 2012-08-28 13:25:44 UTC
automated egression tests covered in monitor test suite. Requires netcat [nc] to run.

Comment 7 Milan KubĂ­k 2012-11-12 10:58:09 UTC
IP=192.168.122.211
PORT=389

$ nc -d $IP $PORT &

[mkubik@dstet-mkubik ~]$ sudo netstat -tnpo | grep ns-slapd | grep -i keepalive
tcp        0      0 ::1:389                     ::1:43130                   ESTABLISHED 6565/ns-slapd       keepalive (6807.66/0/0)
[mkubik@dstet-mkubik ~]$ echo $?
0
[mkubik@dstet-mkubik ~]$ rpm -qa | grep -i 389-ds-base
389-ds-base-1.2.11.15-3.el6.x86_64

Comment 8 errata-xmlrpc 2013-02-21 08:19:37 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHSA-2013-0503.html