Ben Beuchler wrote:
On 4/7/07, Ben Beuchler insyte@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@sys-net.it ---------------------------------------