Upgrade from 14.0.12 to 14.3.6 ce fails because of missing table
Hi !
Summary
Upgrade from 14.0.12 to 14.3.6 ce fails because of missing table
relation "events_id_seq" does not exist
Seems exactly the same issue as #345593 (closed) (Closed without explanation)
Steps to reproduce
With docker-compose.yml:
version: '3.7'
services:
gitlab:
image: gitlab/gitlab-ce:14.3.6-ce.0
container_name: gitlab
hostname: gitlab.me.lan
environment:
- GITLAB_OMNIBUS_CONFIG=external_url 'https://gitlab.me.lan:30002';
volumes:
- /volume1/docker/gitlab/config:/etc/gitlab
- /volume1/docker/gitlab/logs:/var/log/gitlab
- /volume1/docker/gitlab/data:/var/opt/gitlab
ports:
- "30002:30002"
privileged: true
restart: always
- Stop the Docker Container
- Change the version from 14.0.12 to 14.3.6
- Restarted (docker-compose up -d)
- Upgrade fails
Example Project
What is the current bug behavior?
The container restart in loops and never finish the database migration/upgrade
What is the expected correct behavior?
The container should start correctly
Relevant logs and/or screenshots
2022-06-27T08:54:20.484953693Z,stdout,Recipe: gitlab::database_migrations[0m
2022-06-27T08:54:20.485384200Z,stdout, * ruby_block[check remote PG version] action nothing (skipped due to action :nothing)
2022-06-27T08:54:20.490515854Z,stdout, * rails_migration[gitlab-rails] action run
2022-06-27T08:55:33.261372246Z,stdout, * bash[migrate gitlab-rails database] action run
2022-06-27T08:55:33.262053408Z,stdout, [execute] rake aborted!
"
2022-06-27T08:55:33.262396739Z,stdout," StandardError: An error has occurred, all later migrations canceled:
2022-06-27T08:55:33.262532391Z,stdout,
2022-06-27T08:55:33.262593867Z,stdout, PG::UndefinedTable: ERROR: relation "events_id_seq" does not exist
2022-06-27T08:55:33.262667069Z,stdout, /opt/gitlab/embedded/service/gitlab-rails/db/post_migrate/20210622045705_finalize_events_bigint_conversion.rb:67:in `block in swap'
2022-06-27T08:55:33.262759095Z,stdout, /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/with_lock_retries.rb:123:in `run_block'
2022-06-27T08:55:33.262832909Z,stdout, /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/with_lock_retries.rb:134:in `block in run_block_with_lock_timeout'
2022-06-27T08:55:33.262907210Z,stdout, /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/with_lock_retries.rb:129:in `run_block_with_lock_timeout'
2022-06-27T08:55:33.262981712Z,stdout, /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/with_lock_retries.rb:97:in `run'
2022-06-27T08:55:33.263052150Z,stdout, /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/migration_helpers.rb:422:in `with_lock_retries'
2022-06-27T08:55:33.263122989Z,stdout, /opt/gitlab/embedded/service/gitlab-rails/db/post_migrate/20210622045705_finalize_events_bigint_conversion.rb:44:in `swap'
2022-06-27T08:55:33.263193253Z,stdout, /opt/gitlab/embedded/service/gitlab-rails/db/post_migrate/20210622045705_finalize_events_bigint_conversion.rb:18:in `up'
2022-06-27T08:55:33.263262229Z,stdout, /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/migrations/lock_retry_mixin.rb:31:in `ddl_transaction'
2022-06-27T08:55:33.263631423Z,stdout, /opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/db.rake:61:in `block (3 levels) in <top (required)>'
2022-06-27T08:55:33.263772438Z,stdout, /opt/gitlab/embedded/bin/bundle:23:in `load'
2022-06-27T08:55:33.263842627Z,stdout, /opt/gitlab/embedded/bin/bundle:23:in `<main>'
2022-06-27T08:55:33.263907916Z,stdout,
2022-06-27T08:55:33.263962679Z,stdout, Caused by:
2022-06-27T08:55:33.264037243Z,stdout, ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR: relation "events_id_seq" does not exist
2022-06-27T08:55:33.264175058Z,stdout, /opt/gitlab/embedded/service/gitlab-rails/db/post_migrate/20210622045705_finalize_events_bigint_conversion.rb:67:in `block in swap'
2022-06-27T08:55:33.264252597Z,stdout, /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/with_lock_retries.rb:123:in `run_block'
2022-06-27T08:55:33.264339573Z,stdout, /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/with_lock_retries.rb:134:in `block in run_block_with_lock_timeout'
2022-06-27T08:55:33.264410650Z,stdout, /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/with_lock_retries.rb:129:in `run_block_with_lock_timeout'
2022-06-27T08:55:33.264479288Z,stdout, /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/with_lock_retries.rb:97:in `run'
2022-06-27T08:55:33.264683117Z,stdout, /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/migration_helpers.rb:422:in `with_lock_retries'
2022-06-27T08:55:33.264752806Z,stdout, /opt/gitlab/embedded/service/gitlab-rails/db/post_migrate/20210622045705_finalize_events_bigint_conversion.rb:44:in `swap'
2022-06-27T08:55:33.264821157Z,stdout, /opt/gitlab/embedded/service/gitlab-rails/db/post_migrate/20210622045705_finalize_events_bigint_conversion.rb:18:in `up'
2022-06-27T08:55:33.264890646Z,stdout, /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/migrations/lock_retry_mixin.rb:31:in `ddl_transaction'
2022-06-27T08:55:33.264958072Z,stdout, /opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/db.rake:61:in `block (3 levels) in <top (required)>'
2022-06-27T08:55:33.265029323Z,stdout, /opt/gitlab/embedded/bin/bundle:23:in `load'
2022-06-27T08:55:33.265096737Z,stdout, /opt/gitlab/embedded/bin/bundle:23:in `<main>'
2022-06-27T08:55:33.265163313Z,stdout,
2022-06-27T08:55:33.265217664Z,stdout, Caused by:
2022-06-27T08:55:33.265274590Z,stdout, PG::UndefinedTable: ERROR: relation "events_id_seq" does not exist
2022-06-27T08:55:33.265423255Z,stdout, /opt/gitlab/embedded/service/gitlab-rails/db/post_migrate/20210622045705_finalize_events_bigint_conversion.rb:67:in `block in swap'
2022-06-27T08:55:33.265492156Z,stdout, /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/with_lock_retries.rb:123:in `run_block'
2022-06-27T08:55:33.265558470Z,stdout, /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/with_lock_retries.rb:134:in `block in run_block_with_lock_timeout'
2022-06-27T08:55:33.265630171Z,stdout, /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/with_lock_retries.rb:129:in `run_block_with_lock_timeout'
2022-06-27T08:55:33.265699860Z,stdout, /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/with_lock_retries.rb:97:in `run'
2022-06-27T08:55:33.265766261Z,stdout, /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/migration_helpers.rb:422:in `with_lock_retries'
2022-06-27T08:55:33.265832150Z,stdout, /opt/gitlab/embedded/service/gitlab-rails/db/post_migrate/20210622045705_finalize_events_bigint_conversion.rb:44:in `swap'
2022-06-27T08:55:33.265900151Z,stdout, /opt/gitlab/embedded/service/gitlab-rails/db/post_migrate/20210622045705_finalize_events_bigint_conversion.rb:18:in `up'
2022-06-27T08:55:33.265968827Z,stdout, /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/migrations/lock_retry_mixin.rb:31:in `ddl_transaction'
2022-06-27T08:55:33.266039129Z,stdout, /opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/db.rake:61:in `block (3 levels) in <top (required)>'
2022-06-27T08:55:33.266112067Z,stdout, /opt/gitlab/embedded/bin/bundle:23:in `load'
2022-06-27T08:55:33.266174131Z,stdout, /opt/gitlab/embedded/bin/bundle:23:in `<main>'
2022-06-27T08:55:33.266240107Z,stdout, Tasks: TOP => db:migrate
2022-06-27T08:55:33.266332171Z,stdout, (See full trace by running task with --trace)
2022-06-27T08:55:33.306990532Z,stdout, == 20210622045705 FinalizeEventsBigintConversion: migrating ===================
2022-06-27T08:55:33.307207848Z,stdout, -- transaction_open?()
2022-06-27T08:55:33.307289937Z,stdout, -> 0.0001s
"
2022-06-27T08:55:33.307370551Z,stdout," -- index_exists?(\"events\", :id_convert_to_bigint, {:unique=>true, :name=>\"index_events_on_id_convert_to_bigint\", :algorithm=>:concurrently})
2022-06-27T08:55:33.307507841Z,stdout, -> 0.0256s
2022-06-27T08:55:33.307569280Z,stdout, -- transaction_open?()
2022-06-27T08:55:33.307627631Z,stdout, -> 0.0000s
"
2022-06-27T08:55:33.307687532Z,stdout," -- index_exists?(\"events\", [:project_id, :id_convert_to_bigint], {:name=>\"index_events_on_project_id_and_id_convert_to_bigint\", :algorithm=>:concurrently})
2022-06-27T08:55:33.307763146Z,stdout, -> 0.0201s
2022-06-27T08:55:33.307823209Z,stdout, -- transaction_open?()
2022-06-27T08:55:33.307880835Z,stdout, -> 0.0000s
"
2022-06-27T08:55:33.307941124Z,stdout," -- index_exists?(\"events\", [:project_id, :id_convert_to_bigint], {:order=>{:id_convert_to_bigint=>:desc}, :where=>\"action = 7\", :name=>\"index_events_on_project_id_and_id_bigint_desc_on_merged_action\", :algorithm=>:concurrently})
2022-06-27T08:55:33.308028363Z,stdout, -> 0.0204s
2022-06-27T08:55:33.308088727Z,stdout, -- transaction_open?()
2022-06-27T08:55:33.308155178Z,stdout, -> 0.0000s
2022-06-27T08:55:33.308216254Z,stdout, -- foreign_keys(:push_event_payloads)
2022-06-27T08:55:33.308276705Z,stdout, -> 0.0184s
2022-06-27T08:55:33.308347931Z,stdout, -- execute("SET statement_timeout TO 0")
2022-06-27T08:55:33.308413432Z,stdout, -> 0.0007s
2022-06-27T08:55:33.308476896Z,stdout, -- execute("ALTER TABLE push_event_payloads VALIDATE CONSTRAINT fk_36c74129da_tmp;")
2022-06-27T08:55:33.308547585Z,stdout, -> 0.0013s
2022-06-27T08:55:33.308607036Z,stdout, -- execute("RESET statement_timeout")
2022-06-27T08:55:33.308667674Z,stdout, -> 0.0006s
"
2022-06-27T08:55:33.308727450Z,stdout," -- execute(\"LOCK TABLE events, push_event_payloads IN ACCESS EXCLUSIVE MODE\")
2022-06-27T08:55:33.308798014Z,stdout, -> 0.0010s
2022-06-27T08:55:33.308856065Z,stdout, -- quote_table_name("events")
2022-06-27T08:55:33.308918041Z,stdout, -> 0.0001s
2022-06-27T08:55:33.308975180Z,stdout, -- quote_column_name(:id)
2022-06-27T08:55:33.309034156Z,stdout, -> 0.0000s
2022-06-27T08:55:33.309090182Z,stdout, -- quote_column_name("id_tmp")
2022-06-27T08:55:33.309148308Z,stdout, -> 0.0000s
2022-06-27T08:55:33.309214234Z,stdout, -- execute("ALTER TABLE \"events\" RENAME COLUMN \"id\" TO \"id_tmp\"")
2022-06-27T08:55:33.309284073Z,stdout, -> 0.0012s
2022-06-27T08:55:33.309358749Z,stdout, -- quote_table_name("events")
2022-06-27T08:55:33.309422075Z,stdout, -> 0.0000s
2022-06-27T08:55:33.309478814Z,stdout, -- quote_column_name(:id_convert_to_bigint)
2022-06-27T08:55:33.309536552Z,stdout, -> 0.0000s
2022-06-27T08:55:33.309593341Z,stdout, -- quote_column_name(:id)
2022-06-27T08:55:33.309650242Z,stdout, -> 0.0000s
2022-06-27T08:55:33.309707130Z,stdout, -- execute("ALTER TABLE \"events\" RENAME COLUMN \"id_convert_to_bigint\" TO \"id\"")
2022-06-27T08:55:33.309774744Z,stdout, -> 0.0012s
2022-06-27T08:55:33.309831945Z,stdout, -- quote_table_name("events")
2022-06-27T08:55:33.309890384Z,stdout, -> 0.0000s
2022-06-27T08:55:33.309950685Z,stdout, -- quote_column_name("id_tmp")
2022-06-27T08:55:33.310014886Z,stdout, -> 0.0000s
2022-06-27T08:55:33.310071899Z,stdout, -- quote_column_name(:id_convert_to_bigint)
2022-06-27T08:55:33.310129613Z,stdout, -> 0.0000s
2022-06-27T08:55:33.310186314Z,stdout, -- execute("ALTER TABLE \"events\" RENAME COLUMN \"id_tmp\" TO \"id_convert_to_bigint\"")
2022-06-27T08:55:33.310256590Z,stdout, -> 0.0010s
2022-06-27T08:55:33.310326904Z,stdout, -- quote_table_name("trigger_69523443cc10")
2022-06-27T08:55:33.310387505Z,stdout, -> 0.0001s
2022-06-27T08:55:33.310474719Z,stdout, -- execute("ALTER FUNCTION \"trigger_69523443cc10\" RESET ALL")
2022-06-27T08:55:33.310542295Z,stdout, -> 0.0012s
2022-06-27T08:55:33.310599309Z,stdout, -- execute("ALTER SEQUENCE events_id_seq OWNED BY events.id")
2022-06-27T08:55:33.406130483Z,stdout, [0m
2022-06-27T08:55:33.408545376Z,stdout, ================================================================================[0m
2022-06-27T08:55:33.408630940Z,stdout, [31mError executing action `run` on resource 'bash[migrate gitlab-rails database]'[0m
2022-06-27T08:55:33.408750405Z,stdout, ================================================================================[0m
2022-06-27T08:55:33.408809806Z,stdout,
2022-06-27T08:55:33.408863532Z,stdout,[0m Mixlib::ShellOut::ShellCommandFailed[0m
2022-06-27T08:55:33.408933558Z,stdout, ------------------------------------[0m
"
2022-06-27T08:55:33.408991847Z,stdout," Expected process to exit with [0], but received '1'
2022-06-27T08:55:33.409059873Z,stdout,[0m ---- Begin output of "bash" "/tmp/chef-script20220627-32-ubli1e" ----
2022-06-27T08:55:33.409140787Z,stdout,[0m STDOUT: rake aborted!
"
2022-06-27T08:55:33.409203850Z,stdout,"[0m StandardError: An error has occurred, all later migrations canceled:
Output of checks
Results of GitLab environment info
Expand for output related to GitLab environment info
(For installations with omnibus-gitlab package run and paste the output of: `sudo gitlab-rake gitlab:env:info`) (For installations from source run and paste the output of: `sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production`)
System information
System:
Current User: git
Using RVM: no
Ruby Version: 2.7.5p203
Gem Version: 3.1.4
Bundler Version:2.1.4
Rake Version: 13.0.6
Redis Version: 6.0.16
Git Version: 2.33.0.
Sidekiq Version:5.2.9
Go Version: unknown
GitLab information
Version: 14.3.6
Revision: e522118155e
Directory: /opt/gitlab/embedded/service/gitlab-rails
DB Adapter: PostgreSQL
DB Version: 12.7
URL: https://gitlab.me.lan:30002
HTTP Clone URL: https://gitlab.me.lan:30002/some-group/some-project.git
SSH Clone URL: git@gitlabe.me.lan-group/some-project.git
Using LDAP: no
Using Omniauth: yes
Omniauth Providers:
GitLab Shell
Version: 13.21.1
Repository storage paths:
- default: /var/opt/gitlab/git-data/repositories
GitLab Shell path: /opt/gitlab/embedded/service/gitlab-shell
Git: /opt/gitlab/embedded/bin/git
Results of GitLab application Check
Expand for output related to the GitLab application check
(For installations with omnibus-gitlab package run and paste the output of:
sudo gitlab-rake gitlab:check SANITIZE=true
)(For installations from source run and paste the output of:
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production SANITIZE=true
)(we will only investigate if the tests are passing)
Complex to do that on a container that stop quickly
root@gitlab:/# gitlab-rake gitlab:check SANITIZE=true
Checking GitLab subtasks ...
Checking GitLab Shell ...
GitLab Shell: ... GitLab Shell version >= 13.21.1 ? ... OK (13.21.1)
Running /opt/gitlab/embedded/service/gitlab-shell/bin/check
Internal API available: FAILED - Internal API unreachable
gitlab-shell self-check failed
Try fixing it:
Make sure GitLab is running;
Check the gitlab-shell configuration file:
sudo -u git -H editor /opt/gitlab/embedded/service/gitlab-shell/config.yml
Please fix the error above and rerun the checks.
Checking GitLab Shell ... Finished
Checking Gitaly ...
Gitaly: ... default ... OK
Checking Gitaly ... Finished
Checking Sidekiq ...
Sidekiq: ... Running? ... no
Try fixing it:
sudo -u git -H RAILS_ENV=production bin/background_jobs start
For more information see:
doc/install/installation.md in section "Install Init Script"
see log/sidekiq.log for possible errors
Please fix the error above and rerun the checks.
Checking Sidekiq ... Finished
Checking Incoming Email ...
Incoming Email: ... Reply by email is disabled in config/gitlab.yml
Checking Incoming Email ... Finished
Checking LDAP ...
LDAP: ... LDAP is disabled in config/gitlab.yml
Checking LDAP ... Finished
Checking GitLab App ...
Git configured correctly? ... yes
Database config exists? ... yes
Possible fixes
Thanks a lot!
Edited by Pierre PINON