Revert bogus syntax change in database migration
-
Please check this box if this contribution uses AI-generated content (including content generated by GitLab Duo features) as outlined in the GitLab DCO & CLA
Attempting to upgrade a self hosted instance (bare metal, not omnibus) from v17.0.1 to v17.1.3 I ran into trouble running the rake db:migrate scripts. The output looks like so:
$ (cd /usr/share/webapps/gitlab && sudo -u gitlab $(cat environment | xargs) bundle exec rake db:migrate)
rake aborted!
SyntaxError: /usr/share/webapps/gitlab/lib/gitlab/database/migrations/background_migration_helpers.rb:229: syntax error, unexpected ')', expecting local variable or method
... def with_migration_context(&)
... ^
/usr/share/webapps/gitlab/lib/gitlab/database/migrations/background_migration_helpers.rb:230: syntax error, unexpected ')'
...(caller_id: self.class.to_s, &)
... ^
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/zeitwerk-2.6.7/lib/zeitwerk/kernel.rb:30:in `require'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/zeitwerk-2.6.7/lib/zeitwerk/kernel.rb:30:in `require'
/usr/share/webapps/gitlab/lib/gitlab/database/migration_helpers.rb:7:in `<module:MigrationHelpers>'
/usr/share/webapps/gitlab/lib/gitlab/database/migration_helpers.rb:5:in `<module:Database>'
/usr/share/webapps/gitlab/lib/gitlab/database/migration_helpers.rb:4:in `<module:Gitlab>'
/usr/share/webapps/gitlab/lib/gitlab/database/migration_helpers.rb:3:in `<top (required)>'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/zeitwerk-2.6.7/lib/zeitwerk/kernel.rb:30:in `require'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/zeitwerk-2.6.7/lib/zeitwerk/kernel.rb:30:in `require'
/usr/share/webapps/gitlab/lib/gitlab/database/migration.rb:53:in `<class:V1_0>'
/usr/share/webapps/gitlab/lib/gitlab/database/migration.rb:51:in `<class:Migration>'
/usr/share/webapps/gitlab/lib/gitlab/database/migration.rb:5:in `<module:Database>'
/usr/share/webapps/gitlab/lib/gitlab/database/migration.rb:4:in `<module:Gitlab>'
/usr/share/webapps/gitlab/lib/gitlab/database/migration.rb:3:in `<top (required)>'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/zeitwerk-2.6.7/lib/zeitwerk/kernel.rb:30:in `require'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/zeitwerk-2.6.7/lib/zeitwerk/kernel.rb:30:in `require'
/usr/share/webapps/gitlab/db/migrate/20211202041233_init_schema.rb:3:in `<top (required)>'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/zeitwerk-2.6.7/lib/zeitwerk/kernel.rb:38:in `require'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/zeitwerk-2.6.7/lib/zeitwerk/kernel.rb:38:in `require'
/usr/share/webapps/gitlab/lib/gitlab/database/migrations/migration_order_mixin.rb:38:in `load_migration'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/activerecord-7.0.8.4/lib/active_record/migration.rb:1099:in `migration'
/usr/share/webapps/gitlab/lib/gitlab/database/migrations/migration_order_mixin.rb:28:in `version'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/activerecord-7.0.8.4/lib/active_record/migration.rb:1218:in `each'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/activerecord-7.0.8.4/lib/active_record/migration.rb:1218:in `sort_by'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/activerecord-7.0.8.4/lib/active_record/migration.rb:1218:in `migrations'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/activerecord-7.0.8.4/lib/active_record/migration.rb:1205:in `pending_migration_versions'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/activerecord-7.0.8.4/lib/active_record/migration.rb:1201:in `needs_migration?'
/usr/share/webapps/gitlab/lib/gitlab/application_setting_fetcher.rb:45:in `uncached_application_settings'
/usr/share/webapps/gitlab/lib/gitlab/application_setting_fetcher.rb:11:in `current_application_settings'
/usr/share/webapps/gitlab/lib/gitlab/current_settings.rb:15:in `block in current_application_settings'
/usr/share/webapps/gitlab/gems/gitlab-safe_request_store/lib/gitlab/safe_request_store/null_store.rb:37:in `fetch'
/usr/share/webapps/gitlab/lib/gitlab/current_settings.rb:15:in `current_application_settings'
/usr/share/webapps/gitlab/lib/banzai/filter/asset_proxy_filter.rb:67:in `initialize_settings'
/usr/share/webapps/gitlab/config/initializers/asset_proxy_settings.rb:7:in `block in <top (required)>'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/activesupport-7.0.8.4/lib/active_support/lazy_load_hooks.rb:95:in `class_eval'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/activesupport-7.0.8.4/lib/active_support/lazy_load_hooks.rb:95:in `block in execute_hook'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/activesupport-7.0.8.4/lib/active_support/lazy_load_hooks.rb:85:in `with_execution_control'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/activesupport-7.0.8.4/lib/active_support/lazy_load_hooks.rb:90:in `execute_hook'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/activesupport-7.0.8.4/lib/active_support/lazy_load_hooks.rb:60:in `block in on_load'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/activesupport-7.0.8.4/lib/active_support/lazy_load_hooks.rb:59:in `each'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/activesupport-7.0.8.4/lib/active_support/lazy_load_hooks.rb:59:in `on_load'
/usr/share/webapps/gitlab/config/initializers/asset_proxy_settings.rb:6:in `<top (required)>'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/railties-7.0.8.4/lib/rails/engine.rb:667:in `load'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/railties-7.0.8.4/lib/rails/engine.rb:667:in `block in load_config_initializer'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/activesupport-7.0.8.4/lib/active_support/notifications.rb:208:in `instrument'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/railties-7.0.8.4/lib/rails/engine.rb:666:in `load_config_initializer'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/railties-7.0.8.4/lib/rails/engine.rb:620:in `block (2 levels) in <class:Engine>'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/railties-7.0.8.4/lib/rails/engine.rb:619:in `each'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/railties-7.0.8.4/lib/rails/engine.rb:619:in `block in <class:Engine>'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/railties-7.0.8.4/lib/rails/initializable.rb:32:in `instance_exec'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/railties-7.0.8.4/lib/rails/initializable.rb:32:in `run'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/railties-7.0.8.4/lib/rails/initializable.rb:61:in `block in run_initializers'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/railties-7.0.8.4/lib/rails/initializable.rb:50:in `each'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/railties-7.0.8.4/lib/rails/initializable.rb:50:in `tsort_each_child'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/railties-7.0.8.4/lib/rails/initializable.rb:60:in `run_initializers'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/railties-7.0.8.4/lib/rails/application.rb:372:in `initialize!'
/usr/share/webapps/gitlab/config/environment.rb:7:in `<top (required)>'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/zeitwerk-2.6.7/lib/zeitwerk/kernel.rb:38:in `require'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/zeitwerk-2.6.7/lib/zeitwerk/kernel.rb:38:in `require'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/railties-7.0.8.4/lib/rails/application.rb:348:in `require_environment!'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/railties-7.0.8.4/lib/rails/application.rb:506:in `block in run_tasks_blocks'
/usr/share/webapps/gitlab/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/exe/rake:27:in `<top (required)>'
/usr/bin/bundle:25:in `load'
/usr/bin/bundle:25:in `<main>'
Tasks: TOP => db:migrate => db:load_config => environment
(See full trace by running task with --trace)
Digging into the history of this file it looks like an unrelated commit includes this botched syntax change. Replacing it seems to have allowed me to run migrations.
Edited by 🤖 GitLab Bot 🤖