Gerrit 2.11.1 is now available:

Gerrit 2.11.1 includes the bug fixes done with Gerrit 2.10.4 and Gerrit 2.10.5. These bug fixes are not listed in these release notes.

There are no schema changes from 2.11.

New Features

  • Issue 321: Use in-memory Lucene index for a better reviewer suggestion.

    Instead of a linear full text search through a list of accounts, use an in-memory Lucene index. The index is periodically refreshed. The refresh period is configurable via the suggest.fullTextSearchRefresh parameter.

Bug Fixes


  • Issue 3363: Fix performance degrade in background mergeability checks.

    When neither index.batchThreads nor changeMerge.threadPoolSize was defined, the background mergeability check fell back to using an interactive executor.

    This led to a severe performance degradation during git push operations because the ref-update listener was reindexing all open changes on the target branch interactively. The degradation increased linearly with number of open changes on the target branch.

    Now, instead of indexing interactively, it falls back to a batch thread pool with the number of available logical CPUs.

  • Reduce unnecessary database access when querying changes.

    Searching for changes was retrieving more information than necessary from the database. This has been optimized to reduce database access and make better use of the secondary index.

  • Remove unnecessary REST API call when opening the Patch Sets drop down.

    The change edit information was being loaded twice.


  • Fix PatchLineCommentsUtil.draftByChangeAuthor.

    There is not a native index for this, and the ReviewDb case was not properly filtering a result by change.

  • Don’t show stack trace when failing to build BloomFilter during reindex.


  • Require View Plugins capability to list plugins through SSH.

    The View Plugins capability was required to list plugins through the REST API, but not through SSH.

  • Fix project creation with plugin config if user is not project owner.

    On project creation it is possible to specify plugin configuration values that should be stored in the project.config file. This failed if the calling user was not becoming owner of the created project, because only project owners can edit the project.config file.

Change Screen / Diff / Inline Edit

  • Issue 3191: Always show Not Current as state when looking at old patch set.

    For merged changes it was confusing for users to see the status as Merged when they look at an old patch set.

  • Issue 3337: Reenable Revert button when revert is cancelled.

  • Issue 3378: Improve the cursor style in side-by-side diff and inline editor.

    The cursor style is changed from an underscore to a solid vertical bar.

    In the side-by-side diff, the cursor is placed on the first column of the diff, rather than at the end.

Web Container

  • Fix gc_log when running in a web container.

    All logs supposed to be in the gc_log file were ending up in the main log instead when deploying Gerrit in a web container.

  • Fix binding of SecureStore modules.

    The SecureStore modules were not correctly added when Gerrit was deployed in a web container with the site path configured using the gerrit.site_path property.


  • Issue 3310: Fix disabling plugins when Gerrit is running on Windows.

    When running Gerrit on Windows it was not possible to disable a plugin due to an error renaming the plugin’s JAR file.

  • Replication

    • Fix creation of missing repositories.

      Missing projects were not being created on the destination.

    • Emit replication status events after initial full sync.

      When replicateOnStartup is enabled, the plugin was not emitting the status events after the initial sync.


  • Issue 3328: Allow to push a tag that points to a non-commit object.

    When pushing a tag that points to a non-commit object, like v2.6.11 on linux-stable which points to a tree, or spearce-gpg-pub on jgit which points to a blob, Gerrit rejected the push with the error message missing object(s).

  • Issue 3323: Fix internal server error when cloning from a slave while hiding some refs.

  • Issue 3342: Log IOException on failure to update project configuration.

    Without logging these exceptions it’s hard to guess why the update of the project configuration is failing.

  • Remove temporary GitWeb config on Gerrit exit.

    A temporary directory was being created but not removed.

  • Issue 2791: Fix email validation for new TLDs such as .systems.

  • Assume change kind is rework if LargeObjectException occurs.



  • Update CodeMirror to 5.0.

  • Update commons-validator to 1.4.1.