Skip to content

Upgrade from 15.6.8 to 15.7.0 Failed db migration - ValidateNotNullContraintOnIssuesWorkItemTypeId

Summary

I am trying to upgrade Gitlab Omnibus from version 15.6.8 to 15.7.0 There is no Pending or failed Background migrations.

Steps to reproduce

Upgrade from version 15.6.8 to 15.7.0

What is the current bug behavior?

One DB migration fails

What is the expected correct behavior?

Upgrade to a new version without any errors

Relevant logs

Relevant logs

Logs from the upgrade process:

Caused by: PG::CheckViolation: ERROR: check constraint "check_2addf801cd" is violated by some row /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/migrations/constraints_helpers.rb:115:in block in validate_check_constraint' /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/migrations/timeout_helpers.rb:26:in disable_statement_timeout' /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/migrations/constraints_helpers.rb:112:in validate_check_constraint' /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/migrations/constraints_helpers.rb:102:in add_check_constraint' /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/migrations/constraints_helpers.rb:211:in add_not_null_constraint' /opt/gitlab/embedded/service/gitlab-rails/db/post_migrate/20221121184931_validate_not_null_contraint_on_issues_work_item_type_id.rb:7:in up' /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/migration_helpers/restrict_gitlab_schema.rb:33:in block in exec_migration' /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/query_analyzer.rb:37:in within' /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/migration_helpers/restrict_gitlab_schema.rb:30:in exec_migration' /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in ddl_transaction' /opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/db.rake:115:in configure_database' /opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/db.rake:95:in block (3 levels) in <top (required)>' /opt/gitlab/embedded/bin/bundle:23:in load' /opt/gitlab/embedded/bin/bundle:23:in '

main: == 20221121184931 ValidateNotNullContraintOnIssuesWorkItemTypeId: migrating === main: -- current_schema() main: -> 0.0007s main: -- transaction_open?() main: -> 0.0000s main: -- current_schema() main: -> 0.0006s main: -- transaction_open?() main: -> 0.0000s main: -- execute("ALTER TABLE issues\nADD CONSTRAINT check_2addf801cd\nCHECK ( work_item_type_id IS NOT NULL )\nNOT VALID;\n") main: -> 0.0012s main: -- current_schema() main: -> 0.0006s main: -- execute("ALTER TABLE issues VALIDATE CONSTRAINT check_2addf801cd;") STDERR: ---- End output of "bash" ---- Ran "bash" returned 1

Details of package version

Provide the package version installation details

gitlab_rails['env'] = { 'PLANTUML_ENCODING' => 'deflate' } nginx['listen_port'] = 80 nginx['listen_https'] = false nginx['hsts_max_age'] = 0 nginx['hsts_include_subdomains'] = false gitlab_rails['shared_path'] = '/gitlab/shared' high_availability['mountpoint'] = ["/gitlab"] gitlab_rails['db_adapter'] = "postgresql" gitlab_rails['db_encoding'] = "unicode" gitlab_rails['db_port'] = 5432 gitlab_rails['database_reindexing']['hour'] = '21,22,23,3,4,5,6' gitlab_rails['database_reindexing']['minute'] = 0 gitlab_rails['database_reindexing']['month'] = '' gitlab_rails['database_reindexing']['day_of_month'] = '' gitlab_rails['database_reindexing']['day_of_week'] = '' gitlab_rails['db_tcp_user_timeout'] = 120 gitlab_rails['registry_enabled'] = false puma['enable'] = true puma['worker_timeout'] = 600 puma['worker_processes'] = 7 puma['min_threads'] = 1 puma['max_threads'] = 1 puma['per_worker_max_memory_mb'] = 2048 postgresql['enable'] = false nginx['enable'] = true nginx['client_max_body_size'] = '5000m' gitlab_pages['enable'] = true gitlab_pages['status_uri'] = "/@status" gitlab_pages['listen_proxy'] = "0.0.0.0:8090" gitlab_pages['use_http2'] = true gitlab_pages['access_control'] = true gitlab_ci['builds_directory'] = '/gitlab/builds' prometheus['enable'] = true prometheus['listen_address'] = 'localhost:9090' grafana['enable'] = true grafana['log_directory'] = '/gitlab/shared/grafana' gitlab_rails['packages_enabled'] = true sidekiq['queue_groups'] = [ "", "*" ]