[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: >1024 connections in slapd / select->poll

Kurt D. Zeilenga wrote:

At 05:18 AM 11/14/2004, Volker Lendecke wrote:

In http://www.openldap.org/faq/index.cgi?file=1126 you mention a workaround for
the problem that slapd does not allow more than about 1000 concurrent client
connections. Recompiling glibc is not an option for me,

Note that recompiling glibc and/or kernel is not needed if
you are using modern versions of glibc and kernel. We've
been running with OPENLDAP_FD_SETSIZE set as high as 8192
without problem on Linux without problem (and without
touching anything other than OpenLDAP Software).

Hmmm. I just wrote a small test client which opens a large number of connections to the LDAP server and then closes them again. (It issues an anonymous search as well.) I encountered a server hang at around 2050 connections, stuck in the WAKE_LISTENER macro. Apparently when a large number of connections closes in rapid succession like this the pipe that's used for waking the listener gets full.

I note that our definition of WAKE_LISTENER has an #if case for NO_THREADS / GNU_PTH in which case it doesn't write anything into the pipe if a flag "waking" is already set. When I use this version on the pthreads build, the hang at 2050 closes disappears. It seems we need this waking test by default.

 -- Howard Chu
 Chief Architect, Symas Corp.       Director, Highland Sun
 http://www.symas.com               http://highlandsun.com/hyc
 Symas: Premier OpenSource Development and Support