mirror of
https://git.centos.org/rpms/389-ds-base.git
synced 2025-02-24 00:32:54 +00:00
42 lines
1.4 KiB
Diff
42 lines
1.4 KiB
Diff
From 765520fa7bf49f2de542d619b0fce99e13e4d53a Mon Sep 17 00:00:00 2001
|
|
From: Thierry Bordaz <tbordaz@redhat.com>
|
|
Date: Tue, 4 Apr 2017 10:44:55 +0200
|
|
Subject: [PATCH] Ticket 49209 - Hang due to omitted replica lock release
|
|
|
|
Bug Description:
|
|
When an operation is canceled (failure), its csn is aborted
|
|
and removed from the pending list.
|
|
If at that time the pending list is empty or the csn is not found
|
|
in that list, the cancel callback forgots to release the replica lock
|
|
|
|
Fix Description:
|
|
Release replica lock systematically, whether cnsplRemove fails or not
|
|
|
|
https://pagure.io/389-ds-base/issue/49209
|
|
|
|
Reviewed by: Mark Reynolds (thanks Mark !!)
|
|
|
|
Platforms tested: F23
|
|
|
|
Flag Day: no
|
|
|
|
Doc impact: no
|
|
---
|
|
ldap/servers/plugins/replication/repl5_replica.c | 1 +
|
|
1 file changed, 1 insertion(+)
|
|
|
|
diff --git a/ldap/servers/plugins/replication/repl5_replica.c b/ldap/servers/plugins/replication/repl5_replica.c
|
|
index 7beef50..5718a98 100644
|
|
--- a/ldap/servers/plugins/replication/repl5_replica.c
|
|
+++ b/ldap/servers/plugins/replication/repl5_replica.c
|
|
@@ -3662,6 +3662,7 @@ abort_csn_callback(const CSN *csn, void *data)
|
|
int rc = csnplRemove(r->min_csn_pl, csn);
|
|
if (rc) {
|
|
slapi_log_err(SLAPI_LOG_ERR, repl_plugin_name, "abort_csn_callback - csnplRemove failed");
|
|
+ replica_unlock(r->repl_lock);
|
|
return;
|
|
}
|
|
}
|
|
--
|
|
2.9.3
|
|
|