This is an automated email from the git hooks/post-receive script.
mreynolds pushed a commit to branch 389-ds-base-1.3.5
in repository 389-ds-base.
commit d0d8e6e38e86b0adf3f1c48179bca9cdc7a95981
Author: Mark Reynolds <mreynolds(a)redhat.com>
Date: Tue Mar 14 14:35:05 2017 -0400
Issue 49170 - sync plugin thread count not handled correctly
Bug Description: If sync repl connections get aborted the thread_count is
not properly updated which leads to the server hanging
on shutdown.
Fix Description: When connections get aborted we still need to shutdown
the result thread cleanly: remove the req, update thread
count, etc.
https://pagure.io/389-ds-base/issue/49170
Reviewed by: nhosoi(Thanks!)
(cherry picked from commit 770fcf4349ccf9e07ff0e1cf0d6991927ec9ba75)
---
ldap/servers/plugins/sync/sync_persist.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/ldap/servers/plugins/sync/sync_persist.c
b/ldap/servers/plugins/sync/sync_persist.c
index e3335c7..df59ba9 100644
--- a/ldap/servers/plugins/sync/sync_persist.c
+++ b/ldap/servers/plugins/sync/sync_persist.c
@@ -549,14 +549,14 @@ sync_send_results( void *arg )
slapi_log_error(SLAPI_LOG_FATAL, "Content Synchronization Search",
"conn=%" NSPRIu64 " op=%d Null connection - aborted\n",
connid, opid);
- return;
+ goto done;
}
conn_acq_flag = sync_acquire_connection (conn);
if (conn_acq_flag) {
slapi_log_error(SLAPI_LOG_FATAL, "Content Synchronization Search",
"conn=%" NSPRIu64 " op=%d Could not acquire the connection -
aborted\n",
connid, opid);
- return;
+ goto done;
}
PR_Lock( sync_request_list->sync_req_cvarlock );
@@ -657,15 +657,14 @@ sync_send_results( void *arg )
}
}
PR_Unlock( sync_request_list->sync_req_cvarlock );
- sync_remove_request( req );
/* indicate the end of search */
-
sync_release_connection(req->req_pblock, conn, op, conn_acq_flag == 0);
+done:
+ sync_remove_request( req );
PR_DestroyLock ( req->req_lock );
req->req_lock = NULL;
-
slapi_ch_free((void **) &req->req_pblock );
slapi_ch_free((void **) &req->req_orig_base );
slapi_filter_free(req->req_filter, 1);
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.