Gitlab 13.6 and later are no longer compatible with Ruby 2.6

Summary

Gitlab 13.6 and later are no longer compatible with Ruby 2.6 - despite the documentation saying it is supported.

Steps to reproduce

  1. Deploy a Gitlab CE setup using Ruby 2.6 as a from source install, starting at 13.5.
  2. Attempt to upgrade to Gitlab 13.6, upgrade steps will complete successfully
  3. Try to start Gitlab, note that Sidekiq and Puma both fail to start - and if Puma does succeed, it cannot successfully serve any requests

Example Project

Not relevant

What is the current bug behavior?

Gitlab is completely broken when trying to run with Ruby 2.6.

What is the expected correct behavior?

Gitlab can run with Ruby 2.6.

Relevant logs and/or screenshots

ArgumentError (wrong number of arguments (given 1, expected 0)):
  /home/git/gitlab/app/finders/events_finder.rb:35:in `execute'
  /home/git/gitlab/app/finders/concerns/finder_with_cross_project_access.rb:37:in `block in execute'
  /home/git/gitlab/app/finders/concerns/finder_with_cross_project_access.rb:40:in `execute'
  /home/git/gitlab/lib/api/helpers/events_helpers.rb:27:in `find_events'
  /home/git/gitlab/lib/api/events.rb:27:in `block (2 levels) in <class:Events>'
  /home/git/gitlab/vendor/bundle/ruby/2.6.0/gems/grape-1.4.0/lib/grape/endpoint.rb:59:in `call'
  /home/git/gitlab/vendor/bundle/ruby/2.6.0/gems/grape-1.4.0/lib/grape/endpoint.rb:59:in `block (2 levels) in generate_api_method'
  /home/git/gitlab/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.3/lib/active_support/notifications.rb:182:in `instrument'
  /home/git/gitlab/vendor/bundle/ruby/2.6.0/gems/grape-1.4.0/lib/grape/endpoint.rb:58:in `block in generate_api_method'
  /home/git/gitlab/vendor/bundle/ruby/2.6.0/gems/grape-1.4.0/lib/grape/endpoint.rb:341:in `execute'
  /home/git/gitlab/vendor/bundle/ruby/2.6.0/gems/grape-1.4.0/lib/grape/endpoint.rb:267:in `block in run'
  /home/git/gitlab/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.3/lib/active_support/notifications.rb:180:in `block in instrument'
  /home/git/gitlab/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.3/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
  /home/git/gitlab/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.3/lib/active_support/notifications.rb:180:in `instrument'
  /home/git/gitlab/vendor/bundle/ruby/2.6.0/gems/grape-1.4.0/lib/grape/endpoint.rb:247:in `run'
  /home/git/gitlab/vendor/bundle/ruby/2.6.0/gems/grape-1.4.0/lib/grape/endpoint.rb:322:in `block in build_stack'
  /home/git/gitlab/vendor/bundle/ruby/2.6.0/gems/grape-1.4.0/lib/grape/middleware/base.rb:35:in `call!'
  /home/git/gitlab/vendor/bundle/ruby/2.6.0/gems/grape-1.4.0/lib/grape/middleware/base.rb:28:in `call'
  /home/git/gitlab/vendor/bundle/ruby/2.6.0/gems/grape-1.4.0/lib/grape/middleware/base.rb:35:in `call!'
  /home/git/gitlab/vendor/bundle/ruby/2.6.0/gems/grape-1.4.0/lib/grape/middleware/base.rb:28:in `call'
  /home/git/gitlab/vendor/bundle/ruby/2.6.0/gems/grape-1.4.0/lib/grape/middleware/base.rb:35:in `call!'
  /home/git/gitlab/vendor/bundle/ruby/2.6.0/gems/grape-1.4.0/lib/grape/middleware/base.rb:28:in `call'
  /home/git/gitlab/lib/api/api_guard.rb:208:in `call'
ArgumentError (wrong number of arguments (given 1, expected 0)):
  /home/git/gitlab/app/finders/issuable_finder.rb:100:in `execute'
  /home/git/gitlab/app/finders/concerns/finder_with_cross_project_access.rb:37:in `block in execute'
  /home/git/gitlab/app/finders/concerns/finder_with_cross_project_access.rb:40:in `execute'
  /home/git/gitlab/app/finders/concerns/finder_methods.rb:6:in `find_by!'
  /home/git/gitlab/app/finders/concerns/finder_with_cross_project_access.rb:54:in `block in find_by!'
  /home/git/gitlab/app/finders/concerns/finder_with_cross_project_access.rb:72:in `skip_cross_project_check'
  /home/git/gitlab/app/finders/concerns/finder_with_cross_project_access.rb:54:in `find_by!'
  /home/git/gitlab/lib/api/helpers.rb:197:in `find_project_issue'
  /home/git/gitlab/lib/api/issues.rb:377:in `block (2 levels) in <class:Issues>'
  /home/git/gitlab/vendor/bundle/ruby/2.6.0/gems/grape-1.4.0/lib/grape/endpoint.rb:59:in `call'
  /home/git/gitlab/vendor/bundle/ruby/2.6.0/gems/grape-1.4.0/lib/grape/endpoint.rb:59:in `block (2 levels) in generate_api_method'
  /home/git/gitlab/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.3/lib/active_support/notifications.rb:182:in `instrument'
  /home/git/gitlab/vendor/bundle/ruby/2.6.0/gems/grape-1.4.0/lib/grape/endpoint.rb:58:in `block in generate_api_method'
  /home/git/gitlab/vendor/bundle/ruby/2.6.0/gems/grape-1.4.0/lib/grape/endpoint.rb:341:in `execute'
  /home/git/gitlab/vendor/bundle/ruby/2.6.0/gems/grape-1.4.0/lib/grape/endpoint.rb:267:in `block in run'
ArgumentError (wrong number of arguments (given 1, expected 0)):
  
app/finders/issuable_finder.rb:100:in `execute'
app/finders/concerns/finder_with_cross_project_access.rb:37:in `block in execute'
app/finders/concerns/finder_with_cross_project_access.rb:40:in `execute'
app/finders/concerns/finder_methods.rb:6:in `find_by!'
app/finders/concerns/finder_with_cross_project_access.rb:54:in `block in find_by!'
app/finders/concerns/finder_with_cross_project_access.rb:72:in `skip_cross_project_check'
app/finders/concerns/finder_with_cross_project_access.rb:54:in `find_by!'
app/controllers/projects/issue_links_controller.rb:26:in `issue'
app/controllers/projects/issue_links_controller.rb:31:in `list_service'
app/controllers/concerns/issuable_links.rb:23:in `issuables'
app/controllers/concerns/issuable_links.rb:5:in `index'
app/controllers/application_controller.rb:499:in `set_current_admin'
lib/gitlab/session.rb:11:in `with_session'

It should be noted that getting it this far required reverting 7adee358

Output of checks

Not relevant, checks will pass either way.

Assignee Loading
Time tracking Loading