Update git submodules
* Update plugins/replication from branch 'master'
- Merge "Merge branch 'stable-2.14'"
- Merge branch 'stable-2.14'
* stable-2.14:
Fix minor nits in documentation of replication.maxRetries
Use rescheduleDelay instead of replicationDelay when rescheduling
Fix race condition when scheduling a replication
Change-Id: I45c6f5a266709e2ce85d2140f13e4ece7da69341
- Fix minor nits in documentation of replication.maxRetries
Change-Id: I80e46269e12b9e7a429634dd90ce52e90cc6ad79
- Use rescheduleDelay instead of replicationDelay when rescheduling
The replicationDelay was used for two purposes:
a) initial delay to schedule a replication
b) delay when rescheduling the replication due to an in-flight push
The replicationDelay could be set to zero, which make sense for the case a) but
doesn't make sense for the case b). Actually, when replicationDelay is set to
zero, the case b) will cause an excessive number of retries (over 1K/second) and
will also fire a replication failed event for each retry. The latter is yet
another issue and will be addressed in another change.
Introduce a new config parameter rescheduleDelay and use it for the
case b). Make sure it cannot bet set to a value lower than 3 seconds to
avoid the same issue.
In order to keep backwards compabitility with using the replicationDelay
as rescheduleDelay, a plugin init step is added. For each remote section
which doesn't already define rescheduleDelay, it will set rescheduleDelay
to the current value of the replicationDelay, unless replicationDelay is
set to zero. In the latter case it will assume the default value for
the rescheduleDelay.
Change-Id: Ia78f46460b531b04ee36ec2d5ab4228dba5c0c50
- Fix race condition when scheduling a replication
The state of PushOne object was modified after the operation was scheduled.
Depending on the delay parameter the PushOne.run() could be called before (when
the delay is zero or close to zero) or after (longer delay) the current thread
calls e.addState(ref, state). Thus, the thread executing PushOne.run() may or
may not see the update of its stateMap. Further, the stateMap is a
LinkedListMultimap which is not thread safe and the PushOne doesn't synchronize
access to it.
Change-Id: Ib26a5933a7993a6d2f0501e5daaf06a7892e597f
diff --git a/plugins/replication b/plugins/replication
index 297b749..643d635 160000
--- a/plugins/replication
+++ b/plugins/replication
@@ -1 +1 @@
-Subproject commit 297b749038153527291b43cb08b162eb475adcd7
+Subproject commit 643d635a4502e2a2df6cb02edade88bad3fd953a