Update git submodules
* Update plugins/replication from branch 'stable-2.14' - 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
This commit is contained in:

committed by
Gerrit Code Review

parent
8517b2b833
commit
4cb839f169