phusion / passenger

A fast and robust web server and application server for Ruby, Python and Node.js
https://www.phusionpassenger.com/
MIT License
5.01k stars 547 forks source link

Running passenger-config system-properties results in undefined method error #2565

Closed pkarjala closed 1 month ago

pkarjala commented 2 months ago

Issue report

Question 1: What is the problem?

When running sudo passenger-config system-properties, it should return information about the system Passenger Phusion is running in.

When running this command it returns an error as follows:

$ sudo passenger-config system-properties
/usr/lib/ruby/vendor_ruby/phusion_passenger/utils/json.rb:156:in `rescue in generate_type': can't serialize PhusionPassenger::PlatformInfo::VersionComparer (ArgumentError)
    from /usr/lib/ruby/vendor_ruby/phusion_passenger/utils/json.rb:155:in `generate_type'
    from /usr/lib/ruby/vendor_ruby/phusion_passenger/utils/json.rb:191:in `block in generate_Hash'
    from /usr/lib/ruby/vendor_ruby/phusion_passenger/utils/json.rb:190:in `each'
    from /usr/lib/ruby/vendor_ruby/phusion_passenger/utils/json.rb:190:in `map'
    from /usr/lib/ruby/vendor_ruby/phusion_passenger/utils/json.rb:190:in `generate_Hash'
    from /usr/lib/ruby/vendor_ruby/phusion_passenger/utils/json.rb:155:in `generate_type'
    from /usr/lib/ruby/vendor_ruby/phusion_passenger/utils/json.rb:191:in `block in generate_Hash'
    from /usr/lib/ruby/vendor_ruby/phusion_passenger/utils/json.rb:190:in `each'
    from /usr/lib/ruby/vendor_ruby/phusion_passenger/utils/json.rb:190:in `map'
    from /usr/lib/ruby/vendor_ruby/phusion_passenger/utils/json.rb:190:in `generate_Hash'
    from /usr/lib/ruby/vendor_ruby/phusion_passenger/utils/json.rb:155:in `generate_type'
    from /usr/lib/ruby/vendor_ruby/phusion_passenger/utils/json.rb:147:in `generate'
    from /usr/lib/ruby/vendor_ruby/phusion_passenger/config/system_properties_command.rb:43:in `run'
    from /usr/lib/ruby/vendor_ruby/phusion_passenger/config/main.rb:79:in `run!'
    from /usr/bin/passenger-config:37:in `<main>'
/usr/lib/ruby/vendor_ruby/phusion_passenger/utils/json.rb:155:in `generate_type': undefined method `generate_PhusionPassenger::PlatformInfo::VersionComparer' for PhusionPassenger::Utils::JSON:Class (NoMethodError)
    from /usr/lib/ruby/vendor_ruby/phusion_passenger/utils/json.rb:191:in `block in generate_Hash'
    from /usr/lib/ruby/vendor_ruby/phusion_passenger/utils/json.rb:190:in `each'
    from /usr/lib/ruby/vendor_ruby/phusion_passenger/utils/json.rb:190:in `map'
    from /usr/lib/ruby/vendor_ruby/phusion_passenger/utils/json.rb:190:in `generate_Hash'
    from /usr/lib/ruby/vendor_ruby/phusion_passenger/utils/json.rb:155:in `generate_type'
    from /usr/lib/ruby/vendor_ruby/phusion_passenger/utils/json.rb:191:in `block in generate_Hash'
    from /usr/lib/ruby/vendor_ruby/phusion_passenger/utils/json.rb:190:in `each'
    from /usr/lib/ruby/vendor_ruby/phusion_passenger/utils/json.rb:190:in `map'
    from /usr/lib/ruby/vendor_ruby/phusion_passenger/utils/json.rb:190:in `generate_Hash'
    from /usr/lib/ruby/vendor_ruby/phusion_passenger/utils/json.rb:155:in `generate_type'
    from /usr/lib/ruby/vendor_ruby/phusion_passenger/utils/json.rb:147:in `generate'
    from /usr/lib/ruby/vendor_ruby/phusion_passenger/config/system_properties_command.rb:43:in `run'
    from /usr/lib/ruby/vendor_ruby/phusion_passenger/config/main.rb:79:in `run!'
    from /usr/bin/passenger-config:37:in `<main>'

This is the same whether the command is run with sudo or not.

This has been reliably reproduced on 6 different servers with the same environment (OS, Apache2, Passenger, Ruby)

Your answer: Set up environment with Ubuntu 22.04, Apache 2.4.52, Passenger Phusion 6.0.23, ruby 3.2.2 and run the command.

Question 2: Passenger version and integration mode:

Your answer: Open Source 6.0.23 integrated with Apache2 2.4.52 using mod_passenger

Question 3: OS or Linux distro, platform (including version):

Your answer: Ubuntu 22.04 x86_64

Question 4: Passenger installation method:

Your answer: [ ] RubyGems + Gemfile [ ] RubyGems, no Gemfile [ X ] Phusion APT repo (from https://oss-binaries.phusionpassenger.com/apt/passenger jammy Release) [ ] 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):

Your answer: Ruby 3.2.2 using Rails 7.1.3.4, though this is happening at a pre-application level. Ruby is installed using RVM.

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

Your answer: No

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

Your answer: Nothing that I can think of. We can pretty easily run any troubleshooting steps in this environment so please let us know if we can provide additional information or testing.