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

Re: commit: ldap/servers/slapd connection.c

hyc@OpenLDAP.org wrote:

Update of /repo/OpenLDAP/pkg/ldap/servers/slapd

Modified Files:
	connection.c  1.303 -> 1.304

Log Message:
ITS#3463 additional fix

CVS Web URLs: http://www.openldap.org/devel/cvsweb.cgi/servers/slapd/ http://www.openldap.org/devel/cvsweb.cgi/servers/slapd/connection.c

back-ldbm in HEAD appears to be rather unstable at the moment, and I'm afraid that my changes in connection management are part of the problem. I notice that if I turn the debug level up high, test002 fails. Looking at the slapd.1.log, it appears that Add operations are still in progress when the final ldapsearch is done to retrieve the full database contents. This is really puzzling, it means that the ldapadd command exited successfully already, but the operations it submitted hadn't completed yet. With lower debug levels, the Adds complete quickly enough to finish before the ldapsearch finishes. Otherwise, one to three entries from the tail of the Add are missing from the search result.

This also seems to be causing test008 to fail. Also in test008, there is garbage text appearing in the LDAP error text fields. I don't know what it's leftover from...

The big problem here seems to be that back-ldbm calls send_ldap_result() to tell the client its status before it actually finishes its internal operations. So it can be in the middle of completing a cache update by the time a new request arrives; this seems to explain what I'm seeing in test002 at least.

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