[DRE-maint] Bug#1015301: gitlab: Upgrade to 15.0.4 fails because BackgroundMigrations could not finalize
Maximilian Stein
m at steiny.biz
Tue Jul 19 10:32:07 BST 2022
Package: gitlab
Version: 15.0.4+ds1-1~fto11+2
Severity: important
Dear Maintainer,
I just tried to upgrade to Gitlab 15.0.4 on my two instances. While I
had no issues in my smaller instance, my bigger one had some issues.
First, postinst failed with the message
/etc/systemd/system/gitaly.service.d/override.conf already exist
I moved the file away and the upgrade could continue. At the end of
the upgrade, gitaly did not start anymore, so I restored the file (it
actually contains the setting of the user running gitaly).
Then, however, I stumbled upon a much more serious issue: The database
migration could not finish as there were pending background jobs that
failed to finalize:
gitlab_production database is not empty, skipping gitlab setup
Attention: used pure ruby version of MurmurHash3
/usr/share/gitlab/lib/gitlab.rb:47: warning: already initialized constant Gitlab::APP_DIRS_PATTERN
/usr/share/gitlab/lib/gitlab.rb:47: warning: previous definition of APP_DIRS_PATTERN was here
/usr/share/gitlab/lib/gitlab.rb:48: warning: already initialized constant Gitlab::VERSION
/usr/share/gitlab/lib/gitlab.rb:48: warning: previous definition of VERSION was here
/usr/share/gitlab/lib/gitlab.rb:49: warning: already initialized constant Gitlab::INSTALLATION_TYPE
/usr/share/gitlab/lib/gitlab.rb:49: warning: previous definition of INSTALLATION_TYPE was here
/usr/share/gitlab/lib/gitlab.rb:50: warning: already initialized constant Gitlab::HTTP_PROXY_ENV_VARS
/usr/share/gitlab/lib/gitlab.rb:50: warning: previous definition of HTTP_PROXY_ENV_VARS was here
== 20220213103859 RemoveIntegrationsType: migrating ===========================
rake aborted!
StandardError: An error has occurred, all later migrations canceled:
Gitlab::Database::BackgroundMigration::BatchedMigrationRunner::FailedToFinalize
…
I did some research, and found somebody else having a similar issue
[1]. Unfortunately, manually running the background jobs [2] did not
work either as they continued to fail. In the database I identified
the following stuck background migrations [3]:
gitlab_production=# select id,status,job_class_name, table_name, column_name, job_arguments from batched_background_migrations where status <> 3;
id | status | job_class_name | table_name | column_name | job_arguments
----+--------+--------------------------------------------------+--------------+-------------+---------------
17 | 4 | BackfillNamespaceIdForNamespaceRoute | routes | id | []
19 | 4 | BackfillMemberNamespaceForGroupMembers | members | id | []
20 | 4 | MigratePersonalNamespaceProjectMaintainerToOwner | members | id | []
23 | 4 | BackfillGroupFeatures | namespaces | id | [10000]
15 | 4 | BackfillIntegrationsTypeNew | integrations | id | []
16 | 4 | BackfillUserNamespace | namespaces | id | []
18 | 4 | BackfillIssueSearchData | issues | id | []
I then proceeded to simply change the status of the jobs to 3 in the
database as proposed in the issue mentioned above [1]. I could then
finish the upgrade normally with `apt upgrade`.
Afterwards, I simply undid the database change (i.e., reverted the
status of the failed background migrations to 4) and then restarted
the migrations in the web UI.
As far as I can tell, everything seems normal now. The seven
background migration jobs are still pending, but I can continue to use
Gitlab normally.
Do you need any more information on the matter?
Thanks for your investigation into the issue!
Best,
Maximilian
[1]: https://gitlab.com/gitlab-org/gitlab/-/issues/340193
[2]: https://docs.gitlab.com/ee/user/admin_area/monitoring/background_migrations.html#manually-finishing-a-batched-background-migration
[3]: https://docs.gitlab.com/ee/update/index.html#batched-background-migrations
More information about the Pkg-ruby-extras-maintainers
mailing list