Hi,
I have started an implementation of SSS/VLV in slapd (not really a
complete implementation... just so that Outlook can display the content
of the directory without using the search dialog). By now, the server
can parse the request controls. Now, I am modifying back-bdb (the only
backend I plan to use) so that search entries are stored instead of being
sent as soon as they are found.
By now, instead of calling send_search_entry(...), I call
store_vlv_entry(e) that should put the entry in a queue (sorted, if
possible) and set e to NULL; then, before calling send_search_result(), I
do some computations on the stored entries and send some of them using
send_search_entry(), with the corrects response controls.
Could you tell me how the reader lock is(are?) managed? As you can see, I set
e to NULL so that bdb_cache_return_entry_r() is not called before the
entry is sent to the client. Once the entry is sent, I call
bdb_cache_return_entry_r() but in the log I get this message (only
once):
bdb(dc=raoul,dc=freeskop,dc=net): DB_LOCK->lock_put: Lock is no longer valid
Before going deeper in the reader lock management, I would like to know
if there are some documentations or some threads on this list that I
could read to learn about it?
Regards,