Remove index defaultMaxClauseCount config setting while reusing maxTerms

When browsing Related Changes that are ready to be submitted, the Submit
buttons used to disappear from the UI. That was caused by TooManyClauses
exceptions being thrown while trying to query the secondary index. And,
that exception was caused by either an index.defaultMaxClauseCount value
that was too low or just a naturally deep history of related changes.

The likelihood of this case increased when index.maxTerms was either not
set (thus no limit) or set to a value higher than defaultMaxClauseCount.
User experience through the UI should not have suffered from such
missing -or challenging- index config tuning.

Fix this issue by using index.maxTerms at all levels, leading to proper
fallback on the database if that query size limit is reached. Also,
change maxTerms default to 1024 (from no-limit), to match that late
defaultMaxClauseCount default of 1024. This is so that the original
default at index level (former defaultMaxClauseCount) is preserved, to
keep default index querying efficient.

Update the related Documentation accordingly.

Test:
- push at least a few Related Changes
- vote on them so they become Ready to Submit
- before this fix: set index.defaultMaxClauseCount to e.g. 3, to provoke
- index.maxTerms needs to be unset => default: no limit before, 1024 now
- browse those Related Changes (click on each)
- after this fix: Submit buttons should all still show
- after this fix: Change tab headers should all look fine.

Bug: Issue 3771
Change-Id: If2222d14d7b0345327c9bf9f28a7c1038d9b5a8b
3 files changed
tree: 92a4ef58da32ede96979b768ff6faa7156b13657
  1. .settings/
  2. bucklets/
  3. contrib/
  4. Documentation/
  5. gerrit-acceptance-framework/
  6. gerrit-acceptance-tests/
  7. gerrit-antlr/
  8. gerrit-cache-h2/
  9. gerrit-common/
  10. gerrit-extension-api/
  11. gerrit-gpg/
  12. gerrit-gwtdebug/
  13. gerrit-gwtexpui/
  14. gerrit-gwtui/
  15. gerrit-gwtui-common/
  16. gerrit-httpd/
  17. gerrit-launcher/
  18. gerrit-lucene/
  19. gerrit-main/
  20. gerrit-oauth/
  21. gerrit-openid/
  22. gerrit-patch-commonsnet/
  23. gerrit-patch-jgit/
  24. gerrit-pgm/
  25. gerrit-plugin-api/
  26. gerrit-plugin-archetype/
  27. gerrit-plugin-gwt-archetype/
  28. gerrit-plugin-gwtui/
  29. gerrit-plugin-js-archetype/
  30. gerrit-prettify/
  31. gerrit-reviewdb/
  32. gerrit-server/
  33. gerrit-sshd/
  34. gerrit-util-cli/
  35. gerrit-util-http/
  36. gerrit-util-ssl/
  37. gerrit-war/
  38. lib/
  39. plugins/
  40. ReleaseNotes/
  41. tools/
  42. website/
  43. .buckconfig
  44. .buckversion
  45. .editorconfig
  46. .gitignore
  47. .gitmodules
  48. .mailmap
  49. .pydevproject
  50. .watchmanconfig
  51. BUCK
  52. COPYING
  53. INSTALL
  54. README.md
  55. SUBMITTING_PATCHES
  56. VERSION
README.md

Gerrit Code Review

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

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 Buck and run the following:

    git clone --recursive https://gerrit.googlesource.com/gerrit
    cd gerrit && buck 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>]

NOTE: release is optional. Last released package of the version is installed if the release number is omitted.

Events

  • November 7-8 2015: Gerrit User Conference, Mountain View. (Register).
  • November 9-13 2015: Gerrit Hackathon, Mountain View. (Invitation Only).
  • March 2016: Gerrit Hackathon, Berlin. (Details to be confirmed).