passenger icon indicating copy to clipboard operation
passenger copied to clipboard

Uninitialized constant Rackup::Handler::Rack (NameError) [Rack 3]

Open GhaniyKie opened this issue 1 year ago • 6 comments

Issue report

Are you sure this is a bug in Passenger? Yes, i sure this from Passenger.

Please try with the newest version of Passenger to avoid issues that have already been fixed My Gemfile has already pointing to the latest Passenger gem

Question 1: What is the problem? I actually install this gem to my fresh Rails application, since i wanna change it's default development Web Server from Puma to Passenger. rails s, passenger start, or rails c command return this error:

Rack::Handler is deprecated and replaced by Rackup::Handler
/home/kaanoy/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/passenger-6.0.18/src/ruby_supportlib/phusion_passenger/rack_handler.rb:96: warning: Calling Rackup::Handler.register with a string is deprecated, use the class/module itself.
/home/kaanoy/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rackup-2.1.0/lib/rackup/handler.rb:22:in `const_get': uninitialized constant Rackup::Handler::Rack (NameError)

        klass = self.const_get(klass, false)
                    ^^^^^^^^^^
Did you mean?  Racc
        from /home/kaanoy/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rackup-2.1.0/lib/rackup/handler.rb:22:in `register'
        from /home/kaanoy/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/passenger-6.0.18/src/ruby_supportlib/phusion_passenger/rack_handler.rb:96:in `<module:Handler>'
        from /home/kaanoy/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/passenger-6.0.18/src/ruby_supportlib/phusion_passenger/rack_handler.rb:40:in `<module:Rack>'
        from /home/kaanoy/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/passenger-6.0.18/src/ruby_supportlib/phusion_passenger/rack_handler.rb:39:in `<main>'
        from <internal:/home/kaanoy/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
        from <internal:/home/kaanoy/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
        from /home/kaanoy/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bootsnap-1.17.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
        from /home/kaanoy/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/zeitwerk-2.6.12/lib/zeitwerk/kernel.rb:38:in `require'
        from /home/kaanoy/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.21/lib/bundler/runtime.rb:60:in `block (2 levels) in require'
        from /home/kaanoy/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.21/lib/bundler/runtime.rb:55:in `each'
        from /home/kaanoy/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.21/lib/bundler/runtime.rb:55:in `block in require'
        from /home/kaanoy/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.21/lib/bundler/runtime.rb:44:in `each'
        from /home/kaanoy/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.21/lib/bundler/runtime.rb:44:in `require'
        from /home/kaanoy/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.21/lib/bundler.rb:187:in `require'
        from /home/kaanoy/app/config/application.rb:7:in `<main>'
        from <internal:/home/kaanoy/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
        from <internal:/home/kaanoy/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
        from /home/kaanoy/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bootsnap-1.17.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
        from /home/kaanoy/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/railties-7.1.1/lib/rails/commands/server/server_command.rb:139:in `block in perform'
        from <internal:kernel>:90:in `tap'
        from /home/kaanoy/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/railties-7.1.1/lib/rails/commands/server/server_command.rb:136:in `perform'
        from /home/kaanoy/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/thor-1.3.0/lib/thor/command.rb:28:in `run'
        from /home/kaanoy/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/thor-1.3.0/lib/thor/invocation.rb:127:in `invoke_command'
        from /home/kaanoy/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/railties-7.1.1/lib/rails/command/base.rb:178:in `invoke_command'
        from /home/kaanoy/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/thor-1.3.0/lib/thor.rb:527:in `dispatch'
        from /home/kaanoy/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/railties-7.1.1/lib/rails/command/base.rb:73:in `perform'
        from /home/kaanoy/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/railties-7.1.1/lib/rails/command.rb:71:in `block in invoke'
        from /home/kaanoy/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/railties-7.1.1/lib/rails/command.rb:149:in `with_argv'
        from /home/kaanoy/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/railties-7.1.1/lib/rails/command.rb:69:in `invoke'
        from /home/kaanoy/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/railties-7.1.1/lib/rails/commands.rb:18:in `<main>'
        from <internal:/home/kaanoy/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
        from <internal:/home/kaanoy/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
        from /home/kaanoy/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bootsnap-1.17.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
        from bin/rails:4:in `<main>'

Question 2: Passenger version and integration mode: Passenger Gem v6.0.18 Standalone

Question 3: OS or Linux distro, platform (including version): WSL2 Linux (Ubuntu-22.04)

Question 4: Passenger installation method:

  • [x] RubyGems + Gemfile
  • [x] RubyGems, no Gemfile
  • [ ] Phusion APT repo
  • [ ] Phusion YUM repo
  • [ ] OS X Homebrew
  • [ ] source tarball
  • [ ] Other, please specify:

Question 5: Your app's programming language (including any version managers) and framework (including versions):

  • Rbenv 1.2.0-70-g4fec76f
  • Ruby 3.2.2
  • Rails 7.1.1
  • Bundler v2.4.21

Question 6: Are you using a PaaS and/or containerization? If so which one? No

Question 7: Anything else about your setup that we should know? Nope.

GhaniyKie avatar Nov 03 '23 14:11 GhaniyKie

I'm getting this same issue:

  • Macos chip M1. Ventura 13.2.1
  • ruby 3.1.0p0
  • Phusion Passenger(R) 6.0.19

EDIT

Even down to version 6.0.0 or even 5.3.7

cesc1989 avatar Jan 18 '24 22:01 cesc1989

I'm getting this on Ruby 3.2, Rails 7.1 and latest Passenger 6.0.20.

AlexVPopov avatar Apr 04 '24 13:04 AlexVPopov

Any update on this?

emilsosa avatar May 09 '24 01:05 emilsosa

Yes, I've investigated this, and unfortunately it won't be fixable in the upcoming release. It'll have to wait for the one after that. The situation is that recent rack versions now require us to depend on both the rack and rackup gems. However, the rackup gem requires ruby 2.4 and we have to support Ruby 2.0 until June when CentOS 7 goes EOL. The last piece of the puzzle is that rubygems & bundler do not allow a gem to have conditional dependencies so we can't exclude rackup on earlier rubies. It's a really unfortunate situation.

CamJN avatar May 09 '24 05:05 CamJN

CentOS 7 is now EOL 💀 https://endoflife.date/centos

jcoyne avatar Jul 05 '24 16:07 jcoyne

6.0.23 is out with better rack3 support. Please try it out.

CamJN avatar Aug 09 '24 16:08 CamJN