RETIRED, Gerrit as used by OpenStack
Go to file
Inderjot Kaur Ratol fcc90699fd Fix the missing DB entry in Gerrit DB
Due to an unknown reason (still under investigation), a few of the new
LDAP users were not able to login after first time because the Gerrit DB
was missing one of the two entries needed to authenticate the user (the
second entry is only needed for the users with non-null usernames).
The entry with external Id - "gerrit:abc" was never inserted to DB
in such cases whereas the entry with external id - "username:abc" was
created resulting in an account creation for the user.

This causes inconsistency in the DB. An account gets created in first login
attempt and second attempt fails to create missing external id because the
"username:abc" entry already exists causing the DB action to rollback.

As this bug is very infrequent and hard to replicate, this change
provides an after-fix for the issue i.e. fixes the problem when an entry
is missing in Gerrit DB. It checks if there exists an account already
for the given username and links the newly created external ID to that
account. It prevents the need to manually enter the missing entries in
DB to solve the issue.

Bug: Issue 7652
Change-Id: Icd2fbf77971f00783277f88fa085ea1bc761878f
2018-03-12 10:57:36 +09:00
.settings Enable new Eclipse 4.7 "unlikely-arg-type" warning 2017-09-21 16:39:04 +09:00
Documentation Align SSH create-project with REST API 2018-03-10 01:01:35 +00:00
ReleaseNotes Remove Buck based build 2017-01-23 12:44:58 +00:00
contrib Format all Java files with google-java-format 2017-02-07 10:04:39 +09:00
gerrit-acceptance-framework Group members can't be added as reviewers if a matched username exists 2018-02-27 15:40:15 +09:00
gerrit-acceptance-tests Fix unit test "addGroupAsReviewersWhenANotPerfectMatchedUserExist" 2018-03-12 10:32:36 +09:00
gerrit-antlr Merge branch 'stable-2.13' into stable-2.14 2018-02-08 15:38:27 +09:00
gerrit-cache-h2 Revert "Reduce chance of deadlock in account cache" 2018-02-27 21:26:11 -05:00
gerrit-common SiteLibraryLoaderUtil: Add debug log of the loaded libraries 2018-02-20 17:14:51 +09:00
gerrit-elasticsearch Remove 'flaky' tag from elasticsearch tests 2017-04-28 10:45:24 +02:00
gerrit-extension-api Set version to 2.14.7 2018-01-15 11:07:26 +09:00
gerrit-gpg PostGpgKeys: Gracefully handle malformed GPG keys input 2017-11-07 16:06:15 +09:00
gerrit-gwtdebug Format all Java files with google-java-format 2017-02-07 10:04:39 +09:00
gerrit-gwtexpui Format java files with google-java-format 2017-02-17 13:21:04 +09:00
gerrit-gwtui Fix error dialog not honoring line breaks 2018-01-30 01:09:52 +00:00
gerrit-gwtui-common RelativeDateFormatter: Simplify rounding of years and months 2017-10-13 21:33:33 +09:00
gerrit-httpd ExternalIds NoteDb migration: Avoid intermediate migration state 2018-03-07 21:35:20 +01:00
gerrit-launcher GerritLauncher: Remove unnecessary debug output 2017-10-02 13:01:22 +01:00
gerrit-lucene Merge branch stable-2.13' into stable-2.14 2018-02-08 13:19:57 -05:00
gerrit-main Format all Java files with google-java-format 2017-02-07 10:04:39 +09:00
gerrit-oauth ExternalIds NoteDb migration: Avoid intermediate migration state 2018-03-07 21:35:20 +01:00
gerrit-openid ExternalIds NoteDb migration: Avoid intermediate migration state 2018-03-07 21:35:20 +01:00
gerrit-patch-commonsnet Format all Java files with google-java-format 2017-02-07 10:04:39 +09:00
gerrit-patch-jgit Bazel: Allow to consume jgit from development tree 2017-03-22 22:27:12 +01:00
gerrit-pgm ExternalIds NoteDb migration: Avoid intermediate migration state 2018-03-07 21:35:20 +01:00
gerrit-plugin-api Revert "Reduce chance of deadlock in account cache" 2018-02-27 21:26:11 -05:00
gerrit-plugin-gwtui Set version to 2.14.7 2018-01-15 11:07:26 +09:00
gerrit-prettify Format all Java files with google-java-format 2017-02-07 10:04:39 +09:00
gerrit-reviewdb Suppress warnings about deprecated CheckedFuture 2017-11-21 10:24:26 +09:00
gerrit-server Fix the missing DB entry in Gerrit DB 2018-03-12 10:57:36 +09:00
gerrit-sshd Revert partially "Trim multi-line arguments for task name and ssh_log" 2018-03-02 13:39:35 -05:00
gerrit-test-util SitePathsTest: Convert to use Google Truth 2017-03-01 14:03:12 +09:00
gerrit-util-cli Format all Java files with google-java-format 2017-02-07 10:04:39 +09:00
gerrit-util-http Format all Java files with google-java-format 2017-02-07 10:04:39 +09:00
gerrit-util-ssl Format all Java files with google-java-format 2017-02-07 10:04:39 +09:00
gerrit-war Set version to 2.14.7 2018-01-15 11:07:26 +09:00
lib Revert "Reduce chance of deadlock in account cache" 2018-02-27 21:26:11 -05:00
plugins Update git submodules 2018-02-24 02:17:50 +00:00
polygerrit-ui Mark all "My" menu links as external 2018-02-14 20:03:07 +00:00
tools merge_jars.py: Fix for python 3 compatibility 2018-03-08 15:36:21 +09:00
website/releases Fix Diffy logo on release page by encoding the image 2015-12-29 10:36:39 -08:00
.bazelproject Remove Buck based build 2017-01-23 12:44:58 +00:00
.editorconfig Added continuation indent to editorconfig 2016-04-26 14:42:58 +02:00
.git-blame-ignore-revs Update git hyper-blame configuration 2017-02-17 16:35:50 +09:00
.gitignore Add /.bazel_path to .gitignore 2017-11-06 11:43:49 +01:00
.gitmodules Remove the cookbook-plugin submodule 2017-04-06 20:13:02 +00:00
.mailmap Update .mailmap 2017-07-19 15:32:39 +09:00
.pydevproject Update PyDev project to use Python 2.7 2014-10-02 15:16:44 +09:00
BUILD Format BUILD and WORKSPACE files with buildifier 2017-02-28 17:32:44 +09:00
COPYING Initial project setup of Gerrit 2 2008-11-14 16:59:34 -08:00
INSTALL Remove Gerrit 1.x to 2.x import tools 2009-03-27 20:20:10 -07:00
README.md Remove Buck based build 2017-01-23 12:44:58 +00:00
SUBMITTING_PATCHES Update push URL in SUBMITTING_PATCHES 2012-03-29 00:57:14 -04:00
WORKSPACE Revert "Reduce chance of deadlock in account cache" 2018-02-27 21:26:11 -05:00
version.bzl Set version to 2.14.7 2018-01-15 11:07:26 +09:00

README.md

Gerrit Code Review

Gerrit is a code review and project management tool for Git based projects.

Build Status

Objective

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.

Documentation

For information about how to install and use Gerrit, refer to the documentation.

Source

Our canonical Git repository is located on googlesource.com. There is a mirror of the repository on Github.

Reporting bugs

Please report bugs on the issue tracker.

Contribute

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.

Getting in contact

The IRC channel on freenode is #gerrit. An archive is available at: echelog.com.

The Developer Mailing list is repo-discuss on Google Groups.

License

Gerrit is provided under the Apache License 2.0.

Build

Install Bazel and run the following:

    git clone --recursive https://gerrit.googlesource.com/gerrit
    cd gerrit && bazel build release

Install binary packages (Deb/Rpm)

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>]

Use pre-built Gerrit images on Docker

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.