Bug 969210

Summary: make listen backlog size configurable
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: unspecified Docs Contact:
Priority: unspecified    
Version: 6.4CC: jgalipea, lnovich, mkubik, nhosoi
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: 389-ds-base-1.2.11.15-22.el6 Doc Type: Bug Fix
Doc Text:
Cause: The listen backlog size (the backlog parameter to the listen(2) function) is hard coded to be 128. Consequence: Under certain conditions where the server may be processing hundreds of simultaneous connection requests, the server will drop connection requests due to the backlog being exceeded. Fix: Add a new configuration attribute - nsslapd-listen-backlog-size - that will allow the backlog size to be changed. Result: Server can queue up to the system maximum of tcp connections.
Story Points: ---
Clone Of:
: 974251 (view as bug list) Environment:
Last Closed: 2013-11-21 21:08:25 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: 995507    
Bug Blocks: 974251    

Description Nathan Kinder 2013-05-30 22:02:53 UTC
This bug is created as a clone of upstream ticket:
https://fedorahosted.org/389/ticket/47377

The listen backlog size is hardcoded at 128 - it should be configurable

Comment 1 Sankar Ramalingam 2013-05-31 00:47:07 UTC
I don't see any information about this configuration parameter either DS admin guide or in the upstream ticket.

Comment 2 Nathan Kinder 2013-05-31 15:13:48 UTC
(In reply to Sankar Ramalingam from comment #1)
> I don't see any information about this configuration parameter either DS
> admin guide or in the upstream ticket.

A documentation bug will need to be opened for the Config/Command Guide.  Details on the listen queue backlog can be found in the manpage for listen (man 2 listen):

       int listen(int sockfd, int backlog);

  DESCRIPTION
       listen()  marks  the  socket referred to by sockfd as a passive socket,
       that is, as a socket that will be used to  accept  incoming  connection
       requests using accept(2).

       The  sockfd  argument  is  a file descriptor that refers to a socket of
       type SOCK_STREAM or SOCK_SEQPACKET.

       The backlog argument defines the maximum length to which the  queue  of
       pending  connections  for  sockfd  may  grow.   If a connection request
       arrives when the queue is full, the client may receive an error with an
       indication  of  ECONNREFUSED  or,  if  the underlying protocol supports
       retransmission, the request may be ignored so that a later reattempt at
       connection succeeds.

Comment 10 errata-xmlrpc 2013-11-21 21:08:25 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/RHBA-2013-1653.html