Update git submodules
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
    
WANdisco/gerrit,WANdisco/gerrit,gerrit-review/gerrit,GerritCodeReview/gerrit,qtproject/qtqa-gerrit,WANdisco/gerrit,qtproject/qtqa-gerrit,GerritCodeReview/gerrit,WANdisco/gerrit,WANdisco/gerrit,GerritCodeReview/gerrit,GerritCodeReview/gerrit,WANdisco/gerrit,gerrit-review/gerrit,gerrit-review/gerrit,WANdisco/gerrit,qtproject/qtqa-gerrit,GerritCodeReview/gerrit,gerrit-review/gerrit,qtproject/qtqa-gerrit,qtproject/qtqa-gerrit,gerrit-review/gerrit,qtproject/qtqa-gerrit,gerrit-review/gerrit,GerritCodeReview/gerrit,GerritCodeReview/gerrit,GerritCodeReview/gerrit,gerrit-review/gerrit,qtproject/qtqa-gerrit