summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNoriko Hosoi <nhosoi@kiki.usersys.redhat.com>2009-07-01 15:59:27 -0700
committerNoriko Hosoi <nhosoi@kiki.usersys.redhat.com>2009-07-01 15:59:27 -0700
commit281f14adb012a54d8b10c9d51dbce6f5c6f3e549 (patch)
treeb78b068865060cfb1cbb9875387fdad85b26b76a
parentcb6e4b71b5544f35414be730d89ca66a944b8bba (diff)
downloadds-281f14adb012a54d8b10c9d51dbce6f5c6f3e549.tar.gz
ds-281f14adb012a54d8b10c9d51dbce6f5c6f3e549.tar.xz
ds-281f14adb012a54d8b10c9d51dbce6f5c6f3e549.zip
509269 Simple paged result crashes/hangs the server
There was a contention between the connection table cleanup thread (main) and the search thread. The cleanup code should have been protected by the same mutex we do in the paged result code (c_mutex).
-rw-r--r--ldap/servers/slapd/conntable.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/ldap/servers/slapd/conntable.c b/ldap/servers/slapd/conntable.c
index 3a0a86ce..f4b529aa 100644
--- a/ldap/servers/slapd/conntable.c
+++ b/ldap/servers/slapd/conntable.c
@@ -312,7 +312,9 @@ connection_table_move_connection_out_of_active_list(Connection_Table *ct,Connect
connection_release_nolock (c);
+ PR_Lock(c->c_mutex);
connection_cleanup (c);
+ PR_Unlock(c->c_mutex);
PR_Unlock(ct->table_mutex);