389-ds-base-1.3.0.a1
tagged this
08 Oct 16:49
https://bugzilla.redhat.com/show_bug.cgi?id=863576 Bug Description: Abandon of a Simple Paged Results request causes the self deadlock. When abandoning a simple paged result request, the mutex for the connection object c_mutex is locked in do_abandon. But to free a pagedresult massage id, pagedresults_free_one_msgid called from do_abandon tries to acquire lock on c_mutex again. The NSPR lock function PR_Lock is not self re-entrant. Thus the server hangs there due to the self-deadlock. Fix Description: This patch is removing to call PR_Lock(c_mutex) in pagedresults_free_one_msgid and renamed it to pagedresults_free_ one_msgid_nolock. To maintain the consistency, "_nolock" is added to other pagedresults apis which do not call PR_Lock in it. Also, stricter locking on c_mutex is being added to pagedresults_ parse_control_value to protect the pagedresults related field in the connection object.