sameersbn / sameersbn/docker-gitlab

Migration from 13.10.2 to 13.12.1 causes "ERROR: duplicate key value violates unique constraint"

Open
#2,364 11 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Shell
Stars
8.1k
Forks
2.1k
Avg merge
17h 47m
Merged PRs (30d)
7

Description

Hello,

While updating GitLab I encountered a duplicate key error:

PG::UniqueViolation: ERROR:  duplicate key value violates unique constraint "pg_constraint_conrelid_contypid_conname_index"

...

Caused by:
gitlab_1    | ActiveRecord::RecordNotUnique: PG::UniqueViolation: ERROR:  duplicate key value violates unique constraint "pg_constraint_conrelid_contypid_conname_index"
gitlab_1    | DETAIL:  Key (conrelid, contypid, conname)=(1927909, 0, fk_rails_bb3355782d) already exists.

Do you think that I should rebuild the indexes?

Thanks for the help. Here is the detailed log:


2021-06-02 10:43:35,604 INFO success: sshd entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
gitlab_1 | 2021-06-02 10:43:35,604 INFO success: nginx entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
gitlab_1 | 2021-06-02 10:43:35,605 INFO success: cron entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
gitlab_1 | Missing Rails.application.secrets.openid_connect_signing_key for production environment. The secret will be generated and stored in config/s ecrets.yml.
gitlab_1 | rake aborted!
gitlab_1 | StandardError: An error has occurred, all later migrations canceled:
gitlab_1 |
gitlab_1 | PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "pg_constraint_conrelid_contypid_conname_index"
gitlab_1 | DETAIL: Key (conrelid, contypid, conname)=(1927909, 0, fk_rails_bb3355782d) already exists.
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/postgresql/database_statements.rb: 92:in exec' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/postgresql/database_statements.rb: 92:in block (2 levels) in execute'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/dependencies/interlock.rb:48:in block in permit_con current_loads' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/share_lock.rb:187:in yield_shares'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/dependencies/interlock.rb:47:in permit_concurrent_l oads' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/postgresql/database_statements.rb: 91:in block in execute'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract_adapter.rb:722:in block (2 levels) in log' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in b lock (2 levels) in synchronize'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in h andle_interrupt' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in b lock in synchronize'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in h andle_interrupt' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in s ynchronize'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract_adapter.rb:721:in block in log' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/notifications/instrumenter.rb:24:in instrument'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract_adapter.rb:712:in log' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/postgresql/database_statements.rb: 90:in execute'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/marginalia-1.10.0/lib/marginalia.rb:71:in execute_with_marginalia' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract/schema_statements.rb:998: in add_foreign_key'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:890:in block in method_missing' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:858:in block in say_with_time'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:858:in say_with_time' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:879:in method_missing'
gitlab_1 | /home/git/gitlab/lib/gitlab/database/partitioning_migration_helpers/foreign_key_helpers.rb:66:in block in add_concurrent_partitioned_foreig n_key' gitlab_1 | /home/git/gitlab/lib/gitlab/database/with_lock_retries.rb:121:in run_block'
gitlab_1 | /home/git/gitlab/lib/gitlab/database/with_lock_retries.rb:130:in block in run_block_with_lock_timeout' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract/database_statements.rb:28 0:in block in transaction'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract/transaction.rb:280:in bl ock in within_new_transaction' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in b lock (2 levels) in synchronize'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in h andle_interrupt' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in b lock in synchronize'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in h andle_interrupt' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in s ynchronize'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract/transaction.rb:278:in wi thin_new_transaction' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract/database_statements.rb:28 0:in transaction'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/transactions.rb:212:in transaction' gitlab_1 | /home/git/gitlab/lib/gitlab/database.rb:371:in block in transaction'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/notifications.rb:182:in instrument' gitlab_1 | /home/git/gitlab/lib/gitlab/database.rb:370:in transaction'
gitlab_1 | /home/git/gitlab/lib/gitlab/database/with_lock_retries.rb:125:in run_block_with_lock_timeout' gitlab_1 | /home/git/gitlab/lib/gitlab/database/with_lock_retries.rb:95:in run'
gitlab_1 | /home/git/gitlab/lib/gitlab/database/migration_helpers.rb:397:in with_lock_retries' gitlab_1 | /home/git/gitlab/lib/gitlab/database/partitioning_migration_helpers/foreign_key_helpers.rb:65:in add_concurrent_partitioned_foreign_key'
gitlab_1 | /home/git/gitlab/db/post_migrate/20210413130011_add_partitioned_web_hook_log_fk.rb:11:in up' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:831:in exec_migration'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:812:in block (2 levels) in migrate' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:811:in block in migrate'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:471:in with_connection' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:810:in migrate'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:1002:in migrate' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:1310:in block in execute_migration_in_tr ansaction'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:1363:in ddl_transaction' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:1309:in execute_migration_in_transaction '
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:1281:in block in migrate_without_lock' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:1280:in each'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:1280:in migrate_without_lock' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:1229:in block in migrate'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:1382:in with_advisory_lock' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:1229:in migrate'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:1061:in up' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:1036:in migrate'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/tasks/database_tasks.rb:238:in migrate' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/railties/databases.rake:86:in block (3 levels) in <to p (required)>'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/railties/databases.rake:84:in each' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/railties/databases.rake:84:in block (2 levels) in <to p (required)>'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/exe/rake:27:in <top (required)>' gitlab_1 | gitlab_1 | Caused by: gitlab_1 | ActiveRecord::RecordNotUnique: PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "pg_constraint_conrelid_contypid_ conname_index" gitlab_1 | DETAIL: Key (conrelid, contypid, conname)=(1927909, 0, fk_rails_bb3355782d) already exists. gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/postgresql/database_statements.rb: 92:in exec'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/postgresql/database_statements.rb: 92:in block (2 levels) in execute' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/dependencies/interlock.rb:48:in block in permit_con current_loads'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/share_lock.rb:187:in yield_shares' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/dependencies/interlock.rb:47:in permit_concurrent_l oads'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/postgresql/database_statements.rb: 91:in block in execute' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract_adapter.rb:722:in block (2 levels) in log'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in b lock (2 levels) in synchronize' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in h andle_interrupt'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in b lock in synchronize' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in h andle_interrupt'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in s ynchronize' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract_adapter.rb:721:in block in log'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/notifications/instrumenter.rb:24:in instrument' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract_adapter.rb:712:in log'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/postgresql/database_statements.rb: 90:in execute' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/marginalia-1.10.0/lib/marginalia.rb:71:in execute_with_marginalia'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract/schema_statements.rb:998: in add_foreign_key' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:890:in block in method_missing'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:858:in block in say_with_time' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:858:in say_with_time'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:879:in method_missing' gitlab_1 | /home/git/gitlab/lib/gitlab/database/partitioning_migration_helpers/foreign_key_helpers.rb:66:in block in add_concurrent_partitioned_foreig n_key'
gitlab_1 | /home/git/gitlab/lib/gitlab/database/with_lock_retries.rb:121:in run_block' gitlab_1 | /home/git/gitlab/lib/gitlab/database/with_lock_retries.rb:130:in block in run_block_with_lock_timeout'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract/database_statements.rb:28 0:in block in transaction' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract/transaction.rb:280:in bl ock in within_new_transaction'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in b lock (2 levels) in synchronize' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in h andle_interrupt'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in b lock in synchronize' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in h andle_interrupt'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in s ynchronize' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract/transaction.rb:278:in wi thin_new_transaction'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract/database_statements.rb:28 0:in transaction' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/transactions.rb:212:in transaction'
gitlab_1 | /home/git/gitlab/lib/gitlab/database.rb:371:in block in transaction' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/notifications.rb:182:in instrument'
gitlab_1 | /home/git/gitlab/lib/gitlab/database.rb:370:in transaction' gitlab_1 | /home/git/gitlab/lib/gitlab/database/with_lock_retries.rb:125:in run_block_with_lock_timeout'
gitlab_1 | /home/git/gitlab/lib/gitlab/database/with_lock_retries.rb:95:in run' gitlab_1 | /home/git/gitlab/lib/gitlab/database/migration_helpers.rb:397:in with_lock_retries'
gitlab_1 | /home/git/gitlab/lib/gitlab/database/partitioning_migration_helpers/foreign_key_helpers.rb:65:in add_concurrent_partitioned_foreign_key' gitlab_1 | /home/git/gitlab/db/post_migrate/20210413130011_add_partitioned_web_hook_log_fk.rb:11:in up'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:831:in exec_migration' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:812:in block (2 levels) in migrate'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:811:in block in migrate' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:471:in with_connection'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:810:in migrate' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:1002:in migrate'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:1310:in block in execute_migration_in_tr ansaction' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:1363:in ddl_transaction'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:1309:in execute_migration_in_transaction ' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:1281:in block in migrate_without_lock'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:1280:in each' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:1280:in migrate_without_lock'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:1229:in block in migrate' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:1382:in with_advisory_lock'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:1229:in migrate' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:1061:in up'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:1036:in migrate' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/tasks/database_tasks.rb:238:in migrate'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/railties/databases.rake:86:in block (3 levels) in <to p (required)>' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/railties/databases.rake:84:in each'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/railties/databases.rake:84:in block (2 levels) in <to p (required)>' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/exe/rake:27:in <top (required)>'
gitlab_1 |
gitlab_1 | Caused by:
gitlab_1 | PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "pg_constraint_conrelid_contypid_conname_index"
gitlab_1 | DETAIL: Key (conrelid, contypid, conname)=(1927909, 0, fk_rails_bb3355782d) already exists.
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/postgresql/database_statements.rb: 92:in exec' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/postgresql/database_statements.rb: 92:in block (2 levels) in execute'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/dependencies/interlock.rb:48:in block in permit_con current_loads' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/share_lock.rb:187:in yield_shares'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/dependencies/interlock.rb:47:in permit_concurrent_l oads' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/postgresql/database_statements.rb: 91:in block in execute'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract_adapter.rb:722:in block (2 levels) in log' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in b lock (2 levels) in synchronize'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in h andle_interrupt' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in b lock in synchronize'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in h andle_interrupt' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in s ynchronize'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract_adapter.rb:721:in block in log' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/notifications/instrumenter.rb:24:in instrument'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract_adapter.rb:712:in log' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/postgresql/database_statements.rb: 90:in execute'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/marginalia-1.10.0/lib/marginalia.rb:71:in execute_with_marginalia' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract/schema_statements.rb:998: in add_foreign_key'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:890:in block in method_missing' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:858:in block in say_with_time'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:858:in say_with_time' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:879:in method_missing'
gitlab_1 | /home/git/gitlab/lib/gitlab/database/partitioning_migration_helpers/foreign_key_helpers.rb:66:in block in add_concurrent_partitioned_foreig n_key' gitlab_1 | /home/git/gitlab/lib/gitlab/database/with_lock_retries.rb:121:in run_block'
gitlab_1 | /home/git/gitlab/lib/gitlab/database/with_lock_retries.rb:130:in block in run_block_with_lock_timeout' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract/database_statements.rb:28 0:in block in transaction'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract/transaction.rb:280:in bl ock in within_new_transaction' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in b lock (2 levels) in synchronize'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in h andle_interrupt' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in b lock in synchronize'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in h andle_interrupt' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in s ynchronize'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract/transaction.rb:278:in wi thin_new_transaction' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract/database_statements.rb:28 0:in transaction'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/transactions.rb:212:in transaction' gitlab_1 | /home/git/gitlab/lib/gitlab/database.rb:371:in block in transaction'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/notifications.rb:182:in instrument' gitlab_1 | /home/git/gitlab/lib/gitlab/database.rb:370:in transaction'
gitlab_1 | /home/git/gitlab/lib/gitlab/database/with_lock_retries.rb:125:in run_block_with_lock_timeout' gitlab_1 | /home/git/gitlab/lib/gitlab/database/with_lock_retries.rb:95:in run'
gitlab_1 | /home/git/gitlab/lib/gitlab/database/migration_helpers.rb:397:in with_lock_retries' gitlab_1 | /home/git/gitlab/lib/gitlab/database/partitioning_migration_helpers/foreign_key_helpers.rb:65:in add_concurrent_partitioned_foreign_key'
gitlab_1 | /home/git/gitlab/db/post_migrate/20210413130011_add_partitioned_web_hook_log_fk.rb:11:in up' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:831:in exec_migration'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:812:in block (2 levels) in migrate' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:811:in block in migrate'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:471:in with_connection' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:810:in migrate'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:1002:in migrate' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:1310:in block in execute_migration_in_tr ansaction'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:1363:in ddl_transaction' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:1309:in execute_migration_in_transaction '
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:1281:in block in migrate_without_lock' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:1280:in each'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:1280:in migrate_without_lock' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:1229:in block in migrate'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:1382:in with_advisory_lock' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:1229:in migrate'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:1061:in up' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/migration.rb:1036:in migrate'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/tasks/database_tasks.rb:238:in migrate' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/railties/databases.rake:86:in block (3 levels) in <to p (required)>'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/railties/databases.rake:84:in each' gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/railties/databases.rake:84:in block (2 levels) in <to p (required)>'
gitlab_1 | /home/git/gitlab/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/exe/rake:27:in `<top (required)>'
gitlab_1 | Tasks: TOP => db:migrate
gitlab_1 | (See full trace by running task with --trace)
pegasus_gitlab_1 exited with code 1

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with db/post_migrate/20210413130011_add_partitioned_web_hook_log_fk.rb and the called helpers in lib/gitlab/database/partitioning_migration_helpers/foreign_key_helpers.rb. Reproduce the 13.10.2-to-13.12.1 migration failure and trace the duplicate constraint reported in the log. Done means the migration completes without the duplicate-key error.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, postgresql, ruby
Domain
databases, devops
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.