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

Enabling LDAP client cache (ldap_enable_cache) causes lockup (ITS#1084)



Full_Name: Phil Bingham
Version: 2.0.7
OS: Linux & Solaris
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (195.44.58.104)


When I enable client-side caching using ldap_enable_cache, when I perform a
search,
the client locks up, until the timeout.
I have had a quick look at the code: 
In ldap_search() (search.c) ldap_check_cache seems to work, and returns the
msgid to:
ldap_search_st() which calls ldap_result() which waits for the result, until
timeout.
Now, when the result is already in the cache, do we need to do wait4msg etc?
Can't we just get the existing result out of ld somehow, and skip ldap_result?

If I set a timeout, ldap_search_st does not return -1, and I get an assertion
failure:

ldap_chkResponseList returns NULL
ldap_msgdelete
ldap_msgfree
dnsserver: getentry.c:30: ldap_first_entry: Assertion `chain != ((void *)0)'
failed.
Aborted