The current code triggers the config update via the event queue after waiting for 30 seconds. It is necessary to log the change in the changelog at the start up period, but no need for the dynamic updates:
nkinder@redhat wrote: The delay was only needed for the initial startup case, as the changelog is not ready for recording operations at that time. Without the delay, I found that the add of the shared config entries was not replicated. For your proposed diff, why do we want to use the event queue thread if no delay is needed? Couldn't we just call dna_update_config_event() directly? I don't know that this would eliminate the chance for the deadlock, though it might reduce it.
nkinder@redhat wrote: The delay was only needed for the initial startup case, as the changelog is not ready for recording operations at that time. Without the delay, I found that the add of the shared config entries was not replicated.
For your proposed diff, why do we want to use the event queue thread if no delay is needed? Couldn't we just call dna_update_config_event() directly? I don't know that this would eliminate the chance for the deadlock, though it might reduce it.
Bug description: DNA config updates were always put into the event queue and executed in 30 seconds, which increased a chance to conflict with the ordinary modify operations and cause db deadlocks.
Fix description: The 30 seconds delay is necessary at the start- up time when MMR is configured to guarantee the shared config is logged in the changelog. This patch leaves the behaviour of the config update at the start-up as it is; the rest won't be queued but updated immediately.
git patch file (389-ds-base-1.2.11 branch) 0001-Ticket-576-DNA-use-event-queue-for-config-update-onl.patch
Reviewed by Rich (Thank you!!)
Pushed to master: commit 7c11ed1
Pushed to 389-ds-base-1.2.11: commit abe4a08
Metadata Update from @nhosoi: - Issue assigned to nhosoi - Issue set to the milestone: 1.2.11.19
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/576
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.