= Release notes for Gerrit 2.9.1 There are no schema changes from link:ReleaseNotes-2.9.html[2.9]. Download: link:https://www.gerritcodereview.com/download/gerrit-2.9.1.war[ https://www.gerritcodereview.com/download/gerrit-2.9.1.war] *WARNING:* When upgrading from version 2.8.4 or older with a site that uses Bouncy Castle Crypto, new versions of the libraries will be downloaded. The old libraries should be manually removed from site's `lib` folder to prevent the startup failure described in link:https://code.google.com/p/gerrit/issues/detail?id=3084[Issue 3084]. == Bug Fixes * link:https://code.google.com/p/gerrit/issues/detail?id=2801[Issue 2801]: Set default for review SSH command to `notify=ALL`. + In 2.9 the default was incorrectly set to `notify=NONE`, which prevented mail notifications from being sent for review comments that were added by build jobs based on the Gerrit Trigger plugin. * link:https://code.google.com/p/gerrit/issues/detail?id=2879[Issue 2879]: Remove fixed limit of results returned by secondary index query. + The limit was hard-coded to 1000 results, which overrode the value set in the global query limit capability. * Don't require secondary index when running server in daemon mode. + The server failed to start if a secondary index was not present when starting the daemon in slave mode. + Now the daemon can be started in slave mode without requiring the index to be present. + The reindex program and the ssh query command are no longer available on a server that is running in slave mode. * Add full names for options on list groups REST API. * Add full names for options on list projects REST API. * link:https://code.google.com/p/gerrit/issues/detail?id=2878[Issue 2878]: Make `-S` an alias of `--start` in changes query REST API. * Run change hooks and ref-updated events after indexing is done. + The change hooks and ref-updated events were run parallel to the change (re)indexing. This meant that the event-stream sent events to the clients before the change indexing was finished. * link:https://code.google.com/p/gerrit/issues/detail?id=2877[Issue 2877]: Fix NullPointerException when ReviewInput's message is empty. * link:https://code.google.com/p/gerrit/issues/detail?id=2500[Issue 2500], link:https://code.google.com/p/gerrit/issues/detail?id=1748[Issue 1748]: Fix replication of tags. * Fix NullPointerException in `/projects/{name}/children?recursive` when a project has a parent project that is does not exist. * Fix NullPointerException when submitting review with inline comments via REST. * Improve error logging in MergeabilityChecker. * Gracefully skip mergeability checking on broken changes. * link:https://code.google.com/p/gerrit/issues/detail?id=2861[Issue 2861]: Replace "line" with "end_line" when range is given in inline comment. + Also update the documentation with an example of a range comment. * Fix mutual exclusivity of --delete and --submit review command options. * link:https://code.google.com/p/gerrit/issues/detail?id=2848[Issue 2848]: Add support for CSharp syntax highlighting. * link:https://code.google.com/p/gerrit/issues/detail?id=2831[Issue 2831]: Add missing call to ref-updated hook for submodule updates. * link:https://code.google.com/p/gerrit/issues/detail?id=2773[Issue 2773] Fix stale dates in committer field. * Prevent NullPointerException when trying to add an account that doesn't exist as a reviewer. * Fix potential NullPointerException in cherry-pick submit strategy. * Add `--start` option to skip changes in ssh `query` command. * Fix loading of javascript plugins when using non-root Gerrit URLs. + When Gerrit is not on the root URL path the javascript plugins failed to load because of the exact matching required on the request URL. * link:https://code.google.com/p/gerrit/issues/detail?id=2279[Issue 2279]: Display parents for all changes, not only merge commits. + In the new change screen the parent commit is now also shown for regular commits, as well as merge commits. This makes it consistent with the old change screen. * Fix handling of permissions for user-specific refs. + Push permission granted on a ref using the `${username}` placeholder, for example `refs/heads/users/${username}/*`, was not honored if this was the only ref on which the user had push permission.