Skip to content

Migration specs are failing

Failures:

1) Gitlab::BackgroundMigration::BackfillLegacyProjectRepositories behaves like backfill migration for project repositories #perform creates a project_repository row for projects on legacy storage that needs one
     Failure/Error:
       execute <<-EOF.strip_heredoc
       CREATE TRIGGER #{trigger}
       BEFORE INSERT OR UPDATE
       ON #{table}
       FOR EACH ROW
       EXECUTE PROCEDURE #{trigger}()
       EOF

     StandardError:
       An error has occurred, all later migrations canceled:

       PG::DuplicateObject: ERROR:  trigger "trigger_981a520d34e5" for relation "application_settings" already exists
       : CREATE TRIGGER trigger_981a520d34e5
       BEFORE INSERT OR UPDATE
       ON "application_settings"
       FOR EACH ROW
       EXECUTE PROCEDURE trigger_981a520d34e5()
     Shared Example Group: "backfill migration for project repositories" called from ./spec/lib/gitlab/background_migration/backfill_legacy_project_repositories_spec.rb:6
     # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/connection_adapters/postgresql/database_statements.rb:75:in `async_exec'
     # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/connection_adapters/postgresql/database_statements.rb:75:in `block (2 levels) in execute'
     # ./vendor/ruby/2.6.0/gems/activesupport-5.2.3/lib/active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads'
     # ./vendor/ruby/2.6.0/gems/activesupport-5.2.3/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'
     # ./vendor/ruby/2.6.0/gems/activesupport-5.2.3/lib/active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads'
     # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/connection_adapters/postgresql/database_statements.rb:74:in `block in execute'
     # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract_adapter.rb:581:in `block (2 levels) in log'
     # /usr/local/lib/ruby/2.6.0/monitor.rb:230:in `mon_synchronize'
     # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract_adapter.rb:580:in `block in log'
     # ./vendor/ruby/2.6.0/gems/activesupport-5.2.3/lib/active_support/notifications/instrumenter.rb:23:in `instrument'
     # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract_adapter.rb:571:in `log'
     # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/connection_adapters/postgresql/database_statements.rb:73:in `execute'
     # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:871:in `block in method_missing'
     # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:840:in `block in say_with_time'
     # /usr/local/lib/ruby/2.6.0/benchmark.rb:293:in `measure'
     # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:840:in `say_with_time'
     # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:860:in `method_missing'
     # ./lib/gitlab/database/migration_helpers.rb:749:in `install_rename_triggers_for_postgresql'
     # ./lib/gitlab/database/migration_helpers.rb:497:in `install_rename_triggers'
     # ./lib/gitlab/database/migration_helpers.rb:475:in `rename_column_concurrently'
     # ./db/post_migrate/20190801114109_cleanup_allow_local_requests_from_hooks_and_services_application_setting_rename.rb:15:in `down'
     # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:817:in `exec_migration'
     # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:798:in `block (2 levels) in migrate'
     # /usr/local/lib/ruby/2.6.0/benchmark.rb:293:in `measure'
     # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:797:in `block in migrate'
     # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:416:in `with_connection'
     # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:796:in `migrate'
     # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:977:in `migrate'
     # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:1292:in `block in execute_migration_in_transaction'
     # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:1345:in `ddl_transaction'
     # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:1291:in `execute_migration_in_transaction'
     # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:1263:in `block in migrate_without_lock'
     # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:1262:in `each'
     # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:1262:in `migrate_without_lock'
     # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:1210:in `block in migrate'
     # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:1363:in `with_advisory_lock'
     # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:1210:in `migrate'
     # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:1046:in `down'
     # ./spec/support/helpers/migrations_helpers.rb:105:in `block in schema_migrate_down!'
     # ./spec/support/helpers/migrations_helpers.rb:125:in `disable_migrations_output'
     # ./spec/support/helpers/migrations_helpers.rb:104:in `schema_migrate_down!'
     # ./spec/spec_helper.rb:249:in `block (2 levels) in <top (required)>'
     # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/hooks.rb:348:in `instance_exec'
     # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/hooks.rb:348:in `run'
     # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/hooks.rb:507:in `block in run_owned_hooks_for'
     # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/hooks.rb:506:in `each'
     # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/hooks.rb:506:in `run_owned_hooks_for'
     # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/hooks.rb:458:in `run'
     # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/example_group.rb:542:in `block in run_before_context_hooks'
     # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/memoized_helpers.rb:186:in `block in isolate_for_context_hook'
     # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/memoized_helpers.rb:182:in `instance_exec'
     # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/memoized_helpers.rb:182:in `isolate_for_context_hook'
     # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/example_group.rb:541:in `run_before_context_hooks'
     # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/example_group.rb:594:in `run'
     # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/runner.rb:116:in `block (3 levels) in run_specs'
     # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/runner.rb:116:in `map'
     # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/runner.rb:116:in `block (2 levels) in run_specs'
     # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/configuration.rb:2008:in `with_suite_hooks'
     # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/runner.rb:111:in `block in run_specs'
     # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/reporter.rb:74:in `report'
     # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/runner.rb:110:in `run_specs'
     # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/runner.rb:87:in `run'
     # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/runner.rb:71:in `run'
     # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/runner.rb:45:in `invoke'
     # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/exe/rspec:4:in `<top (required)>'
     # ./vendor/ruby/2.6.0/bin/rspec:23:in `load'
     # ./vendor/ruby/2.6.0/bin/rspec:23:in `<top (required)>'
     # /usr/local/lib/ruby/2.6.0/bundler/cli/exec.rb:74:in `load'
     # /usr/local/lib/ruby/2.6.0/bundler/cli/exec.rb:74:in `kernel_load'
     # /usr/local/lib/ruby/2.6.0/bundler/cli/exec.rb:28:in `run'
     # /usr/local/lib/ruby/2.6.0/bundler/cli.rb:463:in `exec'
     # /usr/local/lib/ruby/2.6.0/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
     # /usr/local/lib/ruby/2.6.0/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
     # /usr/local/lib/ruby/2.6.0/bundler/vendor/thor/lib/thor.rb:387:in `dispatch'
     # /usr/local/lib/ruby/2.6.0/bundler/cli.rb:27:in `dispatch'
     # /usr/local/lib/ruby/2.6.0/bundler/vendor/thor/lib/thor/base.rb:466:in `start'
     # /usr/local/lib/ruby/2.6.0/bundler/cli.rb:18:in `start'
     # /usr/local/lib/ruby/gems/2.6.0/gems/bundler-1.17.2/exe/bundle:30:in `block in <top (required)>'
     # /usr/local/lib/ruby/2.6.0/bundler/friendly_errors.rb:124:in `with_friendly_errors'
     # /usr/local/lib/ruby/gems/2.6.0/gems/bundler-1.17.2/exe/bundle:22:in `<top (required)>'
     # /usr/local/bin/bundle:23:in `load'
     # /usr/local/bin/bundle:23:in `<main>'
     # ------------------
     # --- Caused by: ---
     # PG::DuplicateObject:
     #   ERROR:  trigger "trigger_981a520d34e5" for relation "application_settings" already exists
     #   ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/connection_adapters/postgresql/database_statements.rb:75:in `async_exec'

And

15) AddNotNullConstraintToProjectMirrorDataForeignKey removes every import state without an associated project_id
      Failure/Error:
        add_column(table, new, new_type,
                   limit: old_col.limit,
                   precision: old_col.precision,
                   scale: old_col.scale)

      StandardError:
        An error has occurred, all later migrations canceled:

        PG::DuplicateColumn: ERROR:  column "allow_local_requests_from_hooks_and_services" of relation "application_settings" already exists
        : ALTER TABLE "application_settings" ADD "allow_local_requests_from_hooks_and_services" boolean
      # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/connection_adapters/postgresql/database_statements.rb:75:in `async_exec'
      # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/connection_adapters/postgresql/database_statements.rb:75:in `block (2 levels) in execute'
      # ./vendor/ruby/2.6.0/gems/activesupport-5.2.3/lib/active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads'
      # ./vendor/ruby/2.6.0/gems/activesupport-5.2.3/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'
      # ./vendor/ruby/2.6.0/gems/activesupport-5.2.3/lib/active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads'
      # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/connection_adapters/postgresql/database_statements.rb:74:in `block in execute'
      # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract_adapter.rb:581:in `block (2 levels) in log'
      # /usr/local/lib/ruby/2.6.0/monitor.rb:230:in `mon_synchronize'
      # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract_adapter.rb:580:in `block in log'
      # ./vendor/ruby/2.6.0/gems/activesupport-5.2.3/lib/active_support/notifications/instrumenter.rb:23:in `instrument'
      # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract_adapter.rb:571:in `log'
      # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/connection_adapters/postgresql/database_statements.rb:73:in `execute'
      # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/schema_statements.rb:581:in `add_column'
      # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/connection_adapters/postgresql/schema_statements.rb:420:in `add_column'
      # ./config/initializers/postgresql_limit_fix.rb:6:in `add_column'
      # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:871:in `block in method_missing'
      # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:840:in `block in say_with_time'
      # /usr/local/lib/ruby/2.6.0/benchmark.rb:293:in `measure'
      # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:840:in `say_with_time'
      # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:860:in `method_missing'
      # ./lib/gitlab/database/migration_helpers.rb:465:in `rename_column_concurrently'
      # ./db/post_migrate/20190801114109_cleanup_allow_local_requests_from_hooks_and_services_application_setting_rename.rb:15:in `down'
      # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:817:in `exec_migration'
      # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:798:in `block (2 levels) in migrate'
      # /usr/local/lib/ruby/2.6.0/benchmark.rb:293:in `measure'
      # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:797:in `block in migrate'
      # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:416:in `with_connection'
      # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:796:in `migrate'
      # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:977:in `migrate'
      # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:1292:in `block in execute_migration_in_transaction'
      # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:1345:in `ddl_transaction'
      # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:1291:in `execute_migration_in_transaction'
      # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:1263:in `block in migrate_without_lock'
      # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:1262:in `each'
      # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:1262:in `migrate_without_lock'
      # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:1210:in `block in migrate'
      # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:1363:in `with_advisory_lock'
      # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:1210:in `migrate'
      # ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:1046:in `down'
      # ./spec/support/helpers/migrations_helpers.rb:105:in `block in schema_migrate_down!'
      # ./spec/support/helpers/migrations_helpers.rb:125:in `disable_migrations_output'
      # ./spec/support/helpers/migrations_helpers.rb:104:in `schema_migrate_down!'
      # ./spec/spec_helper.rb:249:in `block (2 levels) in <top (required)>'
      # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/hooks.rb:348:in `instance_exec'
      # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/hooks.rb:348:in `run'
      # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/hooks.rb:507:in `block in run_owned_hooks_for'
      # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/hooks.rb:506:in `each'
      # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/hooks.rb:506:in `run_owned_hooks_for'
      # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/hooks.rb:458:in `run'
      # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/example_group.rb:542:in `block in run_before_context_hooks'
      # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/memoized_helpers.rb:186:in `block in isolate_for_context_hook'
      # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/memoized_helpers.rb:182:in `instance_exec'
      # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/memoized_helpers.rb:182:in `isolate_for_context_hook'
      # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/example_group.rb:541:in `run_before_context_hooks'
      # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/example_group.rb:594:in `run'
      # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/runner.rb:116:in `block (3 levels) in run_specs'
      # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/runner.rb:116:in `map'
      # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/runner.rb:116:in `block (2 levels) in run_specs'
      # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/configuration.rb:2008:in `with_suite_hooks'
      # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/runner.rb:111:in `block in run_specs'
      # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/reporter.rb:74:in `report'
      # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/runner.rb:110:in `run_specs'
      # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/runner.rb:87:in `run'
      # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/runner.rb:71:in `run'
      # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/lib/rspec/core/runner.rb:45:in `invoke'
      # ./vendor/ruby/2.6.0/gems/rspec-core-3.8.2/exe/rspec:4:in `<top (required)>'
      # ./vendor/ruby/2.6.0/bin/rspec:23:in `load'
      # ./vendor/ruby/2.6.0/bin/rspec:23:in `<top (required)>'
      # /usr/local/lib/ruby/2.6.0/bundler/cli/exec.rb:74:in `load'
      # /usr/local/lib/ruby/2.6.0/bundler/cli/exec.rb:74:in `kernel_load'
      # /usr/local/lib/ruby/2.6.0/bundler/cli/exec.rb:28:in `run'
      # /usr/local/lib/ruby/2.6.0/bundler/cli.rb:463:in `exec'
      # /usr/local/lib/ruby/2.6.0/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
      # /usr/local/lib/ruby/2.6.0/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
      # /usr/local/lib/ruby/2.6.0/bundler/vendor/thor/lib/thor.rb:387:in `dispatch'
      # /usr/local/lib/ruby/2.6.0/bundler/cli.rb:27:in `dispatch'
      # /usr/local/lib/ruby/2.6.0/bundler/vendor/thor/lib/thor/base.rb:466:in `start'
      # /usr/local/lib/ruby/2.6.0/bundler/cli.rb:18:in `start'
      # /usr/local/lib/ruby/gems/2.6.0/gems/bundler-1.17.2/exe/bundle:30:in `block in <top (required)>'
      # /usr/local/lib/ruby/2.6.0/bundler/friendly_errors.rb:124:in `with_friendly_errors'
      # /usr/local/lib/ruby/gems/2.6.0/gems/bundler-1.17.2/exe/bundle:22:in `<top (required)>'
      # /usr/local/bin/bundle:23:in `load'
      # /usr/local/bin/bundle:23:in `<main>'
      # ------------------
      # --- Caused by: ---
      # PG::DuplicateColumn:
      #   ERROR:  column "allow_local_requests_from_hooks_and_services" of relation "application_settings" already exists
      #   ./vendor/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/connection_adapters/postgresql/database_statements.rb:75:in `async_exec'