commit | 36a9b824137dd1a57ee8d5e23dc6f3bd57ee243f | [log] [tgz] |
---|---|---|
author | David Pursehouse <dpursehouse@collab.net> | Wed Sep 06 11:41:54 2017 +0000 |
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | Wed Sep 06 09:40:53 2017 +0000 |
tree | 66cc19fbb7151e29a180f16c525f842ba8668f05 | |
parent | 886c5c9fa56abac081bf5094c64f314a49e36062 [diff] |
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
Gerrit is a code review and project management tool for Git based projects.
Gerrit makes reviews easier by showing changes in a side-by-side display, and allowing inline comments to be added by any reviewer.
Gerrit simplifies Git based project maintainership by permitting any authorized user to submit changes to the master Git repository, rather than requiring all approved changes to be merged in by hand by the project maintainer.
For information about how to install and use Gerrit, refer to the documentation.
Our canonical Git repository is located on googlesource.com. There is a mirror of the repository on Github.
Please report bugs on the issue tracker.
Gerrit is the work of hundreds of contributors. We appreciate your help!
Please read the contribution guidelines.
Note that we do not accept Pull Requests via the Github mirror.
The IRC channel on freenode is #gerrit. An archive is available at: echelog.com.
The Developer Mailing list is repo-discuss on Google Groups.
Gerrit is provided under the Apache License 2.0.
Install Bazel and run the following:
git clone --recursive https://gerrit.googlesource.com/gerrit cd gerrit && bazel build release
The instruction how to configure GerritForge/BinTray repositories is here
On Debian/Ubuntu run:
apt-get update & apt-get install gerrit=<version>-<release>
NOTE: release is a counter that starts with 1 and indicates the number of packages that have been released with the same version of the software.
On CentOS/RedHat run:
yum clean all && yum install gerrit-<version>[-<release>]
On Fedora run:
dnf clean all && dnf install gerrit-<version>[-<release>]
Docker images of Gerrit are available on DockerHub
To run a CentOS 7 based Gerrit image:
docker run -p 8080:8080 gerritforge/gerrit-centos7[:version]
To run a Ubuntu 15.04 based Gerrit image:
docker run -p 8080:8080 gerritforge/gerrit-ubuntu15.04[:version]
NOTE: release is optional. Last released package of the version is installed if the release number is omitted.