Database testing pipeline is failing with ArgumentError: You tried to define an enum named "whats_new_variant" on the model "ApplicationSetting"
All of the recent database testing pipelines (starting about 8 hours before this issue creation) have been failing to run migrations with this error when running rails initializers. The error happens in the run migrations step, and then the notifier fails because the files it expects don't exist.
Example pipeline: https://ops.gitlab.net/gitlab-com/database-team/gitlab-com-database-testing/-/jobs/4949890
Full traceback
ArgumentError: You tried to define an enum named "whats_new_variant" on the model "ApplicationSetting", but this will generate a instance method "whats_new_variant_all_tiers?", which is already defined by another enum.
/gitlab/vendor/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/enum.rb:296:in `raise_conflict_error'
/gitlab/vendor/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/enum.rb:291:in `detect_enum_conflict!'
/gitlab/vendor/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/enum.rb:236:in `define_enum_methods'
/gitlab/vendor/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/enum.rb:209:in `block (3 levels) in enum'
/gitlab/vendor/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/enum.rb:203:in `each_pair'
/gitlab/vendor/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/enum.rb:203:in `each'
/gitlab/vendor/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/enum.rb:203:in `block (2 levels) in enum'
/gitlab/vendor/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/enum.rb:189:in `module_eval'
/gitlab/vendor/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/enum.rb:189:in `block in enum'
/gitlab/vendor/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/enum.rb:168:in `each'
/gitlab/vendor/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/enum.rb:168:in `enum'
/gitlab/app/models/application_setting.rb:22:in `<class:ApplicationSetting>'
/gitlab/app/models/application_setting.rb:3:in `<main>'
/gitlab/vendor/ruby/2.7.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
/gitlab/vendor/ruby/2.7.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
/gitlab/vendor/ruby/2.7.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
/gitlab/vendor/ruby/2.7.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
/gitlab/vendor/ruby/2.7.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
/gitlab/vendor/ruby/2.7.0/gems/zeitwerk-2.4.2/lib/zeitwerk/kernel.rb:26:in `require'
/gitlab/lib/gitlab/current_settings.rb:76:in `fake_application_settings'
/gitlab/lib/gitlab/current_settings.rb:58:in `uncached_application_settings'
/gitlab/lib/gitlab/current_settings.rb:42:in `ensure_application_settings!'
/gitlab/lib/gitlab/current_settings.rb:15:in `block in current_application_settings'
/gitlab/lib/gitlab/null_request_store.rb:34:in `fetch'
/gitlab/lib/gitlab/safe_request_store.rb:12:in `fetch'
/gitlab/lib/gitlab/current_settings.rb:15:in `current_application_settings'
/gitlab/lib/gitlab/current_settings.rb:32:in `method_missing'
/gitlab/lib/gitlab/metrics/prometheus.rb:98:in `prometheus_metrics_enabled_unmemoized'
/gitlab/lib/gitlab/metrics/prometheus.rb:24:in `block in prometheus_metrics_enabled?'
/gitlab/lib/gitlab/utils/strong_memoize.rb:30:in `strong_memoize'
/gitlab/lib/gitlab/metrics/prometheus.rb:23:in `prometheus_metrics_enabled?'
/gitlab/lib/gitlab/metrics/prometheus.rb:90:in `provide_metric'
/gitlab/lib/gitlab/metrics/prometheus.rb:81:in `safe_provide_metric'
/gitlab/lib/gitlab/metrics/prometheus.rb:55:in `gauge'
/gitlab/lib/gitlab/database/load_balancing/host_list.rb:13:in `initialize'
/gitlab/lib/gitlab/database/load_balancing/load_balancer.rb:27:in `new'
/gitlab/lib/gitlab/database/load_balancing/load_balancer.rb:27:in `initialize'
/gitlab/config/initializers/load_balancing.rb:24:in `new'
/gitlab/config/initializers/load_balancing.rb:24:in `block in <main>'
/gitlab/config/initializers/load_balancing.rb:36:in `<main>'
/gitlab/vendor/ruby/2.7.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:55:in `load'
/gitlab/vendor/ruby/2.7.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:55:in `load'
/gitlab/vendor/ruby/2.7.0/gems/railties-6.1.3.2/lib/rails/engine.rb:681:in `block in load_config_initializer'
/gitlab/vendor/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/notifications.rb:205:in `instrument'
/gitlab/vendor/ruby/2.7.0/gems/railties-6.1.3.2/lib/rails/engine.rb:680:in `load_config_initializer'
/gitlab/vendor/ruby/2.7.0/gems/railties-6.1.3.2/lib/rails/engine.rb:634:in `block (2 levels) in <class:Engine>'
/gitlab/vendor/ruby/2.7.0/gems/railties-6.1.3.2/lib/rails/engine.rb:633:in `each'
/gitlab/vendor/ruby/2.7.0/gems/railties-6.1.3.2/lib/rails/engine.rb:633:in `block in <class:Engine>'
/gitlab/vendor/ruby/2.7.0/gems/railties-6.1.3.2/lib/rails/initializable.rb:32:in `instance_exec'
/gitlab/vendor/ruby/2.7.0/gems/railties-6.1.3.2/lib/rails/initializable.rb:32:in `run'
/gitlab/vendor/ruby/2.7.0/gems/railties-6.1.3.2/lib/rails/initializable.rb:61:in `block in run_initializers'
/gitlab/vendor/ruby/2.7.0/gems/railties-6.1.3.2/lib/rails/initializable.rb:50:in `each'
/gitlab/vendor/ruby/2.7.0/gems/railties-6.1.3.2/lib/rails/initializable.rb:50:in `tsort_each_child'
/gitlab/vendor/ruby/2.7.0/gems/railties-6.1.3.2/lib/rails/initializable.rb:60:in `run_initializers'
/gitlab/vendor/ruby/2.7.0/gems/railties-6.1.3.2/lib/rails/application.rb:384:in `initialize!'
/gitlab/config/environment.rb:7:in `<main>'
/gitlab/vendor/ruby/2.7.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
/gitlab/vendor/ruby/2.7.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
/gitlab/vendor/ruby/2.7.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
/gitlab/vendor/ruby/2.7.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
/gitlab/vendor/ruby/2.7.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
/gitlab/vendor/ruby/2.7.0/gems/zeitwerk-2.4.2/lib/zeitwerk/kernel.rb:34:in `require'
/gitlab/vendor/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/dependencies.rb:332:in `block in require'
/gitlab/vendor/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/dependencies.rb:299:in `load_dependency'
/gitlab/vendor/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/dependencies.rb:332:in `require'
/gitlab/vendor/ruby/2.7.0/gems/railties-6.1.3.2/lib/rails/application.rb:360:in `require_environment!'
/gitlab/vendor/ruby/2.7.0/gems/railties-6.1.3.2/lib/rails/application.rb:526:in `block in run_tasks_blocks'
/gitlab/vendor/ruby/2.7.0/gems/rake-13.0.6/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
Edited by Simon Tomlinson