Ben Beuchler wrote:
On 4/7/07, Ben Beuchler <insyte(a)gmail.com> wrote:
> I'm getting a ton of these errors in a row, all on the same connection:
>
> Apr 5 11:32:48 swizzle slapd[1626]: connection_input: conn=6232680
> deferring operation: pending operations
I've upgraded the client that was triggering the above failures. That
client is still intermittently hanging on its auth attempts. The
slapd frequently logs this message on connections owned by this
client:
Apr 10 13:14:39 swizzle slapd[5944]: connection_input: conn=1696
deferring operation: binding
The client is making auth binds (anonymous search for dn, followed by
binding with that dn) for numerous users. It does all of this over a
single LDAP session that is kept open more or less until either the
client or slapd is restarted. It rarely makes more than 3 - 5
requests per second, so it seems unlikely that OpenLDAP is actually
unable to keep up.
What type of errors could the client make that would result in
repeated deferrals?
I'd note that if your client is performing search + bind on the same
connection in an asynchronous manner, then the server behavior as per
RFC4511 is undefined, since a server is not supposed to be willing to
handle operations intermixed with binds until a bind is concluded. That
is, any operation can be multiplexed on a single LDAP connection
__except__ binds, which must be serialized. A more appropriate client
for that type of operations would need to use at least 2 connections,
one for searches and one for binds, and the one for binds should take
care of either performing synchronous binds, or in any case to wait for
response to a bind before performing another. In case of failure (e.g.
timeout) while waiting for bind response, the connection should be
trashed (see ldap_unbind_ext(3)) and recreated. This is what is done,
for example, by slapd-ldap(5).
p.
Ing. Pierangelo Masarati
OpenLDAP Core Team
SysNet s.r.l.
via Dossi, 8 - 27100 Pavia - ITALIA
http://www.sys-net.it
---------------------------------------
Office: +39 02 23998309
Mobile: +39 333 4963172
Email: pierangelo.masarati(a)sys-net.it
---------------------------------------