Files
system-config/playbooks/roles/gerrit/templates/gerrit.config.j2
Clark Boylan 5728811e1f Revert "Set h2.maxCompactTime to 15 seconds"
This reverts commit 5b5f94d764.

Since switching to Noble and Podman using sigint to gracefully request
Gerrit shutdown we've run into shutdowns that hit our 5 minute timeout
causing podman to issue a sigkill which does stop gerrit. In manual
testing in April and in our CI jobs sigint typically works for shutting
down Gerrit in a reasonable amount of time just like sighup did before
moving to podman. This makes me wonder if there are other shutdown tasks
that are simply taking longer than the time allotted.

One such shutdown task is the h2 compaction which we set to a 15000ms
timeout in the reverted change. There are 17 h2 cache DBs which comes
out to a max of 255 seconds if performed serially. This is less than 300
seconds but close enough that if there are other shutdown tasks taht
need at least 45 seconds we could be hitting the podman shutdown
timeout.

Since we're typically deleting these large cache files on disk anyway as
part of the gerrit restart process lets go ahead and pull this
configuration out of our gerrit install. It is redundant and may be
contributing to slow shutdowns.

Change-Id: I7d4a09251f7e86b26a4a5cf7aa1081ede58aa5ab
2025-05-21 11:21:56 -07:00

215 lines
5.5 KiB
Django/Jinja

# This file is managed by ansible.
# https://opendev.org/opendev/system-config
[gerrit]
basePath = git
canonicalWebUrl = https://{{ gerrit_vhost_name }}/
reportBugText = Get Help
reportBugUrl = "https://docs.openstack.org/infra/system-config/project.html#contributing"
gitHttpUrl = https://{{ gerrit_vhost_name }}/
serverId = {{ gerrit_serverid }}
[auth]
# We have a long history of case sensitive usernames and need
# to preserve that behavior.
userNameCaseInsensitive = false
{% if not gerrit_run_init_dev_mode %}
contributorAgreements = true
type = OPENID_SSO
cookieSecure = true
enableRunAs = true
openIdSsoUrl = https://login.ubuntu.com/+openid
{% else %}
type = DEVELOPMENT_BECOME_ANY_ACCOUNT
# In dev mode it's very useful to be able to reload plugins
[plugins]
allowRemoteAdmin = true
{% endif %}
[sendemail]
smtpServer = localhost
from = MIXED
includeDiff = false
threadPoolSize = 4
[container]
user = gerrit2
startupTimeout = 300
{% if gerrit_heap_limit is defined %}
heapLimit = {{ gerrit_heap_limit }}
{% endif %}
# TODO(clarkb) javaHome and possibly javaOptions may be candidates
# for cleanup. The upstream gerrit.sh init script fetches these
# values to configure Gerrit startup, but we we a very simple
# startup script in our containers now.
javaHome = /usr/lib/jvm/java-17-openjdk-amd64
javaOptions = "-Dflogger.backend_factory=com.google.common.flogger.backend.log4j.Log4jBackendFactory#getInstance"
javaOptions = "-Dflogger.logging_context=com.google.gerrit.server.logging.LoggingContext#getInstance"
[log]
rotate = true
compress = true
timeToKeep = 30d
[gc]
[core]
packedGitOpenFiles = {{ gerrit_packed_git_open_files }}
packedGitLimit = 400m
packedGitWindowSize = 16k
[sshd]
listenAddress = *:29418
threads = 100
# batchThreads = 0 means share the 100 thread pool set above.
batchThreads = 0
idleTimeout = 3600
maxConnectionsPerUser = 96
[httpd]
listenUrl = proxy-https://*:8081/
minThreads = 20
maxThreads = 150
maxQueued = 200
requestLog = true
[tracing]
performanceLogging = false
[cache]
directory = cache
[cache "accounts"]
memoryLimit = 32768
[cache "accounts_byemail"]
memoryLimit = 32768
[cache "accounts_byname"]
memoryLimit = 32768
[cache "changeid_project"]
memoryLimit = 32768
[cache "groups_bysubgroup"]
memoryLimit = 2048
[cache "groups_byuuid"]
memoryLimit = 32768
[cache "permission_sort"]
memoryLimit = 2048
[cache "projects"]
memoryLimit = 4096
[cache "web_sessions"]
maxAge = 7days
[cache "git_modified_files"]
memoryLimit = 128m
diskLimit = 512m
[cache "modified_files"]
memoryLimit = 128m
diskLimit = 512m
[cache "git_file_diff"]
memoryLimit = 256m
diskLimit = 2g
[cache "gerrit_file_diff"]
memoryLimit = 256m
diskLimit = 3g
# Set to @openstack.org because @opendev.org lacks a valid MX
[user]
email = review@openstack.org
[change]
allowDrafts = false
disablePrivateChanges = true
move = false
# Keep pre-3.4 behavior
mergeabilityComputationBehavior = API_REF_UPDATED_AND_CHANGE_REINDEX
# Explicitly enable this to avoid problems if the default changes
conflictsPredicateEnabled = true
[receive]
maxObjectSizeLimit = 100 m
enableSignedPush = false
[commentlink "bugheader"]
match = "([Cc]loses|[Pp]artial|[Rr]elated)-[Bb]ug:\\s*#?(\\d+)"
link = https://launchpad.net/bugs/$2
[commentlink "bug"]
match = "\\b[Bb]ug:? #?(\\d+)"
link = https://launchpad.net/bugs/$1
[commentlink "story"]
match = "\\b[Ss]tory:? #?(\\d+)"
link = "{{ gerrit_storyboard_url }}/#!/story/$1"
[commentlink "task"]
match = "\\b[Tt]ask:? #?(\\d+)"
link = "{{ gerrit_storyboard_url }}/#!/task/$1"
[commentlink "its-storyboard"]
match = "\\b[Tt]ask:? #?(\\d+)"
link = task: $1
[commentlink "blueprint"]
match = "(\\b[Bb]lue[Pp]rint\\b|\\b[Bb][Pp]\\b)[ \\t#:]*([A-Za-z0-9\\-]+)"
link = https://blueprints.launchpad.net/openstack/?searchtext=$2
[commentlink "changeid"]
match = (I[0-9a-f]{8,40})
link = "/#/q/$1"
[commentlink "gitsha"]
match = "(<p>|[\\s(])([0-9a-f]{40})(</p>|[\\s.,;:)])"
link = "/#/q/$2"
prefix = $1
text = $2
suffix = $3
[its-storyboard]
url = {{ gerrit_storyboard_url }}
[trackingid "launchpad-bug"]
match = "\\#?(\\d+)"
footer = closes-bug:
footer = partial-bug:
footer = related-bug:
system = Launchpad
[trackingid "storyboard-story"]
match = "\\#?(\\d+)"
footer = story:
system = Storyboard
[trackingid "storyboard-task"]
match = "\\#?(\\d+)"
footer = task:
system = Storyboard
[plugin "javamelody"]
allowTopMenu = false
# Custom code browser linking for Gitea.
[gitweb]
branch = ${project}/src/branch/${branch}
file = ${project}/src/commit/${hash}/${file}
filehistory = ${project}/commits/branch/${branch}/${file}
linkname = gitea
project = ${project}
revision = ${project}/commit/${commit}
roottree = ${project}/src/commit/${commit}
type = custom
urlEncode = false
tag = ${project}/src/tag/${tag}
url = https://opendev.org/
[index]
maxTerms = 1536
type = LUCENE
threads = 8
[download]
command = checkout
command = cherry_pick
command = pull
command = format_patch
scheme = ssh
scheme = anon_http
archive = tar
archive = tbz2
archive = tgz
archive = txz
# Plugin commit-message-length-validator config
[commitmessage]
maxLineLength = 72
[groups]
newGroupsVisibleToAll = true
[mimetype "image/*"]
safe = true
[mimetype "text/x-yaml"]
safe = true
[mimetype "text/xml"]
safe = true
[mimetype "application/xml"]
safe = true
[mimetype "text/x-rst"]
safe = true
[mimetype "text/plain"]
safe = true
[mimetype "text/x-puppet"]
safe = true
[mimetype "text/x-ini"]
safe = true
[mimetype "text/x-properties"]
safe = true
[mimetype "text/x-markdown"]
safe = true
[mimetype "text/css"]
safe = true