[prev in list] [next in list] [prev in thread] [next in thread]
List: fedora-directory-commits
Subject: =?utf-8?q?=5B389-commits=5D?= ldap/servers
From: Mark Reynolds <mreynolds () fedoraproject ! org>
Date: 2016-07-19 22:44:45
Message-ID: 20160719224445.CBA216101B () fedorahosted ! org
[Download RAW message or body]
ldap/servers/slapd/opshared.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
New commits:
commit bff1dd433f5de807ded1114e5961d66e2c0494e2
Author: Mark Reynolds <mreynolds@redhat.com>
Date: Tue Jul 19 18:28:06 2016 -0400
Ticket 48930 - Paged result search can hang the server
Bug Description: If a pages result has sent all its entry it's possible that
the connection lock/monitor is not exited. This can lead
to a deadlock when a new connection comes in.
Fix Description: Move the monitor exit to the proper location, and also set
the result to success if all the entries have been sent.
https://fedorahosted.org/389/ticket/48930
Reviewed by: nhosoi(Thanks!)
diff --git a/ldap/servers/slapd/opshared.c b/ldap/servers/slapd/opshared.c
index 7eaa19a..15207a5 100644
--- a/ldap/servers/slapd/opshared.c
+++ b/ldap/servers/slapd/opshared.c
@@ -695,11 +695,12 @@ op_shared_search (Slapi_PBlock *pb, int send_result)
/* search result could be reset in the backend/dse */
slapi_pblock_get(pb, SLAPI_SEARCH_RESULT_SET, &sr);
pagedresults_set_search_result(pb->pb_conn, operation, sr, 1/*locked*/, pr_idx);
- PR_ExitMonitor(pb->pb_conn->c_mutex);
}
} else {
pr_stat = PAGEDRESULTS_SEARCH_END;
+ rc = LDAP_SUCCESS;
}
+ PR_ExitMonitor(pb->pb_conn->c_mutex);
pagedresults_unlock(pb->pb_conn, pr_idx);
if ((PAGEDRESULTS_SEARCH_END == pr_stat) || (0 == pnentries)) {
--
389-commits mailing list
389-commits@lists.fedoraproject.org
https://lists.fedoraproject.org/admin/lists/389-commits@lists.fedoraproject.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic