VERSION.sh | 2 +-
ldap/servers/plugins/replication/repl5_replica_config.c | 9 +++++++--
ldap/servers/plugins/replication/repl_extop.c | 2 +-
3 files changed, 9 insertions(+), 4 deletions(-)
New commits:
commit db6b3544755a109bed20a9c680f00ff777dcd42a
Author: Mark Reynolds <mreynolds(a)redhat.com>
Date: Wed Aug 15 11:27:47 2012 -0400
bumped version to 1.2.11.10
diff --git a/VERSION.sh b/VERSION.sh
index e96107e..e724679 100644
--- a/VERSION.sh
+++ b/VERSION.sh
@@ -10,7 +10,7 @@ vendor="389 Project"
# PACKAGE_VERSION is constructed from these
VERSION_MAJOR=1
VERSION_MINOR=2
-VERSION_MAINT=11.9
+VERSION_MAINT=11.10
# if this is a PRERELEASE, set VERSION_PREREL
# otherwise, comment it out
# be sure to include the dot prefix in the prerel
commit c40902c872fab29922d8dca8f32dc18dabc7d936
Author: Mark Reynolds <mreynolds(a)redhat.com>
Date: Wed Aug 15 10:54:00 2012 -0400
Ticket 403 - CLEANALLRUV revisions
Addressed two issues:
[1] Need to handle case where rid was already cleaned
[2] Needed to improve closing sequence when repl agmts are not present
Reviewed by richm and noriko(Thanks!)
https://fedorahosted.org/389/ticket/403
diff --git a/ldap/servers/plugins/replication/repl5_replica_config.c
b/ldap/servers/plugins/replication/repl5_replica_config.c
index a03740b..b408809 100644
--- a/ldap/servers/plugins/replication/repl5_replica_config.c
+++ b/ldap/servers/plugins/replication/repl5_replica_config.c
@@ -1451,6 +1451,7 @@ replica_cleanallruv_thread(void *arg)
int found_dirty_rid = 1;
int agmt_not_notified = 1;
int interval = 10;
+ int aborted = 0;
int free_obj = 0;
int rc = 0;
@@ -1491,7 +1492,7 @@ replica_cleanallruv_thread(void *arg)
ruv_obj = replica_get_ruv(data->replica);
ruv = object_get_data (ruv_obj);
while(data->maxcsn && !is_task_aborted(data->rid) &&
!is_cleaned_rid(data->rid) && !slapi_is_shutting_down()){
- if(csn_get_replicaid(data->maxcsn) == 0 ||
ruv_covers_csn(ruv,data->maxcsn)){
+ if(csn_get_replicaid(data->maxcsn) == 0 ||
ruv_covers_csn_strict(ruv,data->maxcsn)){
/* We are caught up, now we can clean the ruv's */
break;
}
@@ -1504,6 +1505,7 @@ replica_cleanallruv_thread(void *arg)
cleanruv_log(data->task, CLEANALLRUV_ID,"Waiting for all the replicas to be
online...");
if(check_agmts_are_alive(data->replica, data->rid, data->task)){
/* error, aborted or shutdown */
+ aborted = 1;
goto done;
}
/*
@@ -1512,6 +1514,7 @@ replica_cleanallruv_thread(void *arg)
cleanruv_log(data->task, CLEANALLRUV_ID,"Waiting for all the replicas to
receive all the deleted replica updates...");
if(check_agmts_are_caught_up(data->replica, data->rid, csnstr,
data->task)){
/* error, aborted or shutdown */
+ aborted = 1;
goto done;
}
/*
@@ -1545,6 +1548,7 @@ replica_cleanallruv_thread(void *arg)
}
if(is_task_aborted(data->rid)){
+ aborted = 1;
goto done;
}
if(agmt_not_notified == 0){
@@ -1597,6 +1601,7 @@ replica_cleanallruv_thread(void *arg)
}
/* If the task is abort or everyone is cleaned, break out */
if(is_task_aborted(data->rid)){
+ aborted = 1;
goto done;
}
if(found_dirty_rid == 0){
@@ -1622,7 +1627,7 @@ done:
/*
* If the replicas are cleaned, release the rid, and trim the changelog
*/
- if(!found_dirty_rid){
+ if(!aborted){
trigger_cl_trimming(data->rid);
delete_cleaned_rid(data->replica, data->rid, data->maxcsn);
cleanruv_log(data->task, CLEANALLRUV_ID, "Successfully cleaned
rid(%d).", data->rid);
diff --git a/ldap/servers/plugins/replication/repl_extop.c
b/ldap/servers/plugins/replication/repl_extop.c
index db94ba7..ecf1f93 100644
--- a/ldap/servers/plugins/replication/repl_extop.c
+++ b/ldap/servers/plugins/replication/repl_extop.c
@@ -1618,7 +1618,7 @@ multimaster_extop_cleanruv(Slapi_PBlock *pb)
break;
}
slapi_log_error(SLAPI_LOG_FATAL, repl_plugin_name, "cleanAllRUV_task: checking if
we're caught up...\n");
- if(ruv_covers_csn(ruv,maxcsn) || csn_get_replicaid(maxcsn) == 0){
+ if(ruv_covers_csn_strict(ruv,maxcsn) || csn_get_replicaid(maxcsn) == 0){
/* We are caught up */
break;
} else {