Summary: Directory Server hangs when running VLV search and update operations simultaneously.
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=183222
There are at least two hang-up problems in the concurrent vlv search and delete. Please take a look at the attachment (id=142507) --> (https://bugzilla.redhat.com/bugzilla/attachment.cgi?id=142507&action=vie...) for details.
And the following attachment is the proposed fix based upon the analysis.
------- Additional Comments From nhosoi@redhat.com 2006-11-30 14:23 EST ------- Created an attachment (id=142508) --> (https://bugzilla.redhat.com/bugzilla/attachment.cgi?id=142508&action=vie...) cvs diffs
Files: proto-back-ldbm.h idl.c sort.c vlv.c
Changes: 1. promoted idl_delete to global to make it available in vlv_trim_candidates_byvalue. In vlv_trim_candidate_byvalue, if any id's in the idlist is found not having the corresponding entry, delete the id from the idlist and retry the binary search. 2. demoted too noisy error message: [...] - compare_entries db err -30990 [...] - compare_entries db err -30990 [...] 3. eliminated read-lock from vlv_find_index_by_filter to prevent the deadlock with the delete operation.
Thank you, --noriko
389-devel@lists.fedoraproject.org