Page MenuHomePhabricator

Upgrade to Gerrit 3.10
Closed, ResolvedPublic

Description

This task is to upgrade to 3.10.x series

Release notes: https://www.gerritcodereview.com/3.10.html

Notes
Gerrit 3.10 drops support for Java 11, we have already switched to Java 17 as per T364342.

H2 cache pruning is configurable! Filed as T367504

Native log deletions with log.timeToKeep. Filed as T367505

Important notes
https://www.gerritcodereview.com/3.10.html#important-notes

If you’re using the change_notes cache, the file needs to be deleted. It will be automatically regenerated

  Name                          |Entries              |  AvgGet |Hit Ratio|
                                |   Mem   Disk   Space|         |Mem  Disk|
--------------------------------+---------------------+---------+---------+
  change_notes                  |   161               |   1.6ms | 55%     |

We only have an in-memory version of it, nothing on disk.

The schema version hasn’t been updated, however, because Lucene was bumped 2 versions from 7.x to 9.8 the upgrade is supported only from Gerrit v3.9, as Lucene libraries do not support more than one version upgrade at a time.

We are already running Gerrit 3.9 and can thus do the online upgrade/reindexing

Breaking changes
https://www.gerritcodereview.com/3.10.html#breaking-changes

I haven't spotted anything concerning or ruled out the ones that could be suspicious such as:

Deprecate review command without project argument

Zuul has a single call to it and it has --project %s

PluginCommandModule requires the plugin name in its constructor, hence all plugins that expose SSH commands need amending with an explicit constructor

The only plugin I had in mind is zuul and it does not offers a PluginCommandModule.
LFS broke though with stable-3.10:

Both integrated within https://gerrit.wikimedia.org/r/c/operations/software/gerrit/+/1043813/1..2//COMMIT_MSG

Event Timeline

  • Gerrit no longer send emails to everyone when additional reviewers or CCs are added. Please note, this is also a breaking change, see more details on the change, Change 400822.

This area of changes may be a little bumpy.

Change #1043813 had a related patch set uploaded (by Hashar; author: Hashar):

[operations/software/gerrit@wmf/stable-3.10] Merge branch 'stable-3.10' into wmf/stable-3.10

https://gerrit.wikimedia.org/r/1043813

Change #1047175 had a related patch set uploaded (by Hashar; author: Hashar):

[operations/software/gerrit@deploy/wmf/stable-3.10] Gerrit 3.10.x rebuild plugins and update TypeScript API

https://gerrit.wikimedia.org/r/1047175

  • Gerrit no longer send emails to everyone when additional reviewers or CCs are added. Please note, this is also a breaking change, see more details on the change, Change 400822.

This area of changes may be a little bumpy.

Additional context in the commit: https://gerrit-review.googlesource.com/c/gerrit/+/400822

One of the sources of gerrit emails being spammy, is the fact that all
reviewers are notified when additional reviewers or CCs are added.
With this change:

  • Authors are only notified when the change is initially uploaded
  • Only reviewers being added (or removed) are notified for adding (or removing) reviewers.

400822 - Don't email existing reviewers when adding new ones, I don't think that is going to be problematic. In most case if I am solely a reviewer, I probably do not need to know some other reviewer got added.

I have scheduled the upgrade for Wednesday 26th at 8:00am UTC and announced it on wikitech-l.

Calendar entry: https://wikitech.wikimedia.org/wiki/Deployments#deploycal-item-20240626T0800

I do think it does actually move a step back - the main problem we have is that reviewers don't react to being added as a reviewer. Now we (upstream) remove even the feedback that we gave up on them reviewing and had to add others.

But of course I wouldn't block the upgrade because of this. It's just a bit unfortunate.

Change #1043813 merged by jenkins-bot:

[operations/software/gerrit@wmf/stable-3.10] Merge branch 'stable-3.10' into wmf/stable-3.10

https://gerrit.wikimedia.org/r/1043813

Change #1047175 merged by jenkins-bot:

[operations/software/gerrit@deploy/wmf/stable-3.10] Gerrit 3.10.x rebuild plugins and update TypeScript API

https://gerrit.wikimedia.org/r/1047175

Mentioned in SAL (#wikimedia-operations) [2024-06-26T08:31:40Z] <hashar@deploy1002> Started deploy [gerrit/gerrit@2fc2b03]: Gerrit to 3.10 on gerrit2002 # T367419

Mentioned in SAL (#wikimedia-operations) [2024-06-26T08:32:28Z] <hashar@deploy1002> Finished deploy [gerrit/gerrit@2fc2b03]: Gerrit to 3.10 on gerrit2002 # T367419 (duration: 00m 48s)

Mentioned in SAL (#wikimedia-operations) [2024-06-26T08:39:13Z] <hashar@deploy1002> Started deploy [gerrit/gerrit@2fc2b03]: Gerrit to 3.10 on gerrit1003 # T367419

Mentioned in SAL (#wikimedia-operations) [2024-06-26T08:39:56Z] <hashar@deploy1002> Finished deploy [gerrit/gerrit@2fc2b03]: Gerrit to 3.10 on gerrit1003 # T367419 (duration: 00m 43s)

Mentioned in SAL (#wikimedia-releng) [2024-06-26T08:54:45Z] <hashar> gerrit: changed HEAD of operations/software/gerrit from deploy/wmf/stable-3.9 to deploy/wmf/stable-3.10 # T367419