Currently there are two steps to cleaning an entire replication environment:
[1] Run CLEANALLRUV [2] Wait for it to update all replicas - could take awhile [3] Run RELEASERUV
Should add a new thread to the CLEANALLRUV code, which does the nsds50ruv searches, and once the replicas are cleaned, then it should do the RELEASERUV process automatically.
We should also log the process in the error log, like ldif2db does.
I think you will need to lock the conn object while you are using the LDAP *ld pointer. There are some thread safety issues with multiple threads accessing the same ld at the same time.
Also, do you need the conn_cancel_linger(conn); ?
Sometimes we lock the the conn when using the ld pointer, but sometimes we don't like in conn_connect() and conn_read_entry_attribute() in repl5_connection.c.
I will lock it anyway just to be safe since it's being used in a separate thread.
As for the conn linger stuff, it's "probably" not needed in this case, but I was trying to be consistent with the rest of the repl code. If we call conn_connect(), and get an existing connection, it's possible the timer might already be in effect, and it could time out before we issue our search. The timing would have to be exact for this to happen, but I don't think it hurts to cancel/set the timer in this case.
attachment 0001-Ticket-368-Make-the-cleanAllRUV-task-one-step.patch
Updated proceedure cleanruv-proceedure
git merge ticket368 Updating c61ee8e..507b593 Fast-forward ldap/servers/plugins/replication/repl5.h | 10 + .../servers/plugins/replication/repl5_connection.c | 26 ++ .../plugins/replication/repl5_replica_config.c | 257 +++++++++++++++++--- ldap/servers/plugins/replication/repl_extop.c | 91 +++++--- 4 files changed, 316 insertions(+), 68 deletions(-)
[mareynol@localhost servers]$ git push origin master Counting objects: 19, done. Delta compression using up to 4 threads. Compressing objects: 100% (10/10), done. Writing objects: 100% (10/10), 4.64 KiB, done. Total 10 (delta 8), reused 0 (delta 0) To ssh://git.fedorahosted.org/git/389/ds.git c61ee8e..507b593 master -> master
1.2.11 branch changeset:1b4b9d5/389-ds-base
Ticket has been cloned to Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=830340
Added initial screened field value.
Metadata Update from @mreynolds: - Issue assigned to mreynolds - Issue set to the milestone: 1.2.11.5
389-ds-base is moving from Pagure to Github. This means that new issues and pull requests will be accepted only in 389-ds-base's github repository.
This issue has been cloned to Github and is available here: - https://github.com/389ds/389-ds-base/issues/368
If you want to receive further updates on the issue, please navigate to the github issue and click on subscribe button.
subscribe
Thank you for understanding. We apologize for all inconvenience.
Metadata Update from @spichugi: - Issue close_status updated to: wontfix (was: Fixed)
Login to comment on this ticket.