Project

General

Profile

Bug #8392

passenger-status broken on EL7

Added by Dominic Cleal about 6 years ago. Updated over 2 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
RPMs
Target version:
Difficulty:
Triaged:
Bugzilla link:
Pull request:
Fixed in Releases:
Found in Releases:

Description

Cloned from https://bugzilla.redhat.com/show_bug.cgi?id=1163380
Description of problem:
passenger-status command does not display expected output on Satellite 6 on RHEL7. This works on Satellite 6 on RHEL6.

Version-Release number of selected component (if applicable):
Sat6-GA-Post-Release-Compose3
candlepin-0.9.23.1-1.el7.noarch
candlepin-common-1.0.1-1.el7.noarch
candlepin-guice-3.0-2_redhat_1.el7.noarch
candlepin-scl-1-5.el7.noarch
candlepin-scl-quartz-2.1.5-6.el7.noarch
candlepin-scl-rhino-1.7R3-3.el7.noarch
candlepin-scl-runtime-1-5.el7.noarch
candlepin-selinux-0.9.23.1-1.el7.noarch
candlepin-tomcat-0.9.23.1-1.el7.noarch
elasticsearch-0.90.10-6.el7sat.noarch
katello-1.5.0-30.el7sat.noarch
katello-certs-tools-1.5.6-1.el7sat.noarch
katello-default-ca-1.0-1.noarch
katello-installer-0.0.64-1.el7sat.noarch
katello-server-ca-1.0-1.noarch
perfc-380g8-01.perf.lab.eng.rdu.redhat.com-qpid-broker-1.0-1.noarch
perfc-380g8-01.perf.lab.eng.rdu.redhat.com-qpid-client-cert-1.0-1.noarch
pulp-katello-0.3-4.el7sat.noarch
pulp-nodes-common-2.4.3-0.1.beta.el7sat.noarch
pulp-nodes-parent-2.4.3-0.1.beta.el7sat.noarch
pulp-puppet-plugins-2.4.3-1.el7sat.noarch
pulp-puppet-tools-2.4.3-1.el7sat.noarch
pulp-rpm-plugins-2.4.3-1.el7sat.noarch
pulp-selinux-2.4.3-1.el7sat.noarch
pulp-server-2.4.3-1.el7sat.noarch
python-gofer-qpid-1.3.0-1.el7sat.noarch
python-isodate-0.5.0-1.pulp.el7sat.noarch
python-kombu-3.0.15-12.pulp.el7sat.noarch
python-pulp-bindings-2.4.3-1.el7sat.noarch
python-pulp-common-2.4.3-1.el7sat.noarch
python-pulp-puppet-common-2.4.3-1.el7sat.noarch
python-pulp-rpm-common-2.4.3-1.el7sat.noarch
python-qpid-0.22-15.el7.noarch
python-qpid-qmf-0.22-37.el7.x86_64
qpid-cpp-client-0.22-42.el7.x86_64
qpid-cpp-server-0.22-42.el7.x86_64
qpid-cpp-server-linearstore-0.22-42.el7.x86_64
qpid-java-client-0.22-7.el7.noarch
qpid-java-common-0.22-7.el7.noarch
qpid-proton-c-0.7-2.el7.x86_64
qpid-qmf-0.22-37.el7.x86_64
qpid-tools-0.22-13.el7.noarch
ruby193-rubygem-katello-1.5.0-92.el7sat.noarch
rubygem-hammer_cli_katello-0.0.4-14.el7sat.noarch
rubygem-smart_proxy_pulp-1.0.1-1.1.el7sat.noarch

ruby193-rubygem-passenger-4.0.18-19.el7sat.x86_64
rubygem-passenger-native-4.0.18-19.el7sat.x86_64
rubygem-passenger-native-libs-4.0.18-19.el7sat.x86_64
ruby193-rubygem-passenger-native-4.0.18-19.el7sat.x86_64
rubygem-passenger-4.0.18-19.el7sat.x86_64
ruby193-rubygem-passenger-native-libs-4.0.18-19.el7sat.x86_64
mod_passenger-4.0.18-19.el7sat.x86_64

How reproducible:
Always on this machine

Steps to Reproduce:
1. Run passenger-status on a Sat6 machine on RHEL7
2.
3.

Actual results:
  1. passenger-status
    • Phusion Passenger: no passenger_native_support.so found for the current Ruby interpreter. Compiling one (set PASSENGER_COMPILE_NATIVE_SUPPORT_BINARY=0 to disable)...
  2. mkdir -p /root/.passenger/native_support/4.0.18/ruby-2.0.0-x86_64-linux
  3. cd /root/.passenger/native_support/4.0.18/ruby-2.0.0-x86_64-linux
  4. /usr/bin/ruby '/usr/share/gems/gems/passenger-4.0.18/ruby_extension_source/extconf.rb'
    /usr/bin/ruby: No such file or directory -- /usr/share/gems/gems/passenger-4.0.18/ruby_extension_source/extconf.rb (LoadError)
    Compilation failed.
    -------------------------------
    Ruby native_support extension not loaded. Continuing without native_support.
    ERROR: Phusion Passenger doesn't seem to be running.
Expected results:
  1. passenger-status
    Version : 4.0.18
    Date : Tue Nov 11 08:43:23 0500 2014
    Instance: 10483
    ----------
    General information -----------
    Max pool size : 6
    Processes : 6
    Requests in top-level queue : 0

----------- Application groups -----------
/usr/share/foreman#default:
App root: /usr/share/foreman
Requests in queue: 26 * PID: 49317 Sessions: 1 Processed: 71987 Uptime: 3h 0m 3s
CPU: 71% Memory : 259M Last used: 0s ago * PID: 48350 Sessions: 1 Processed: 47138 Uptime: 1h 49m 51s
CPU: 77% Memory : 263M Last used: 0s ago * PID: 26517 Sessions: 1 Processed: 18807 Uptime: 39m 15s
CPU: 88% Memory : 115M Last used: 0s ago * PID: 26544 Sessions: 1 Processed: 18673 Uptime: 39m 14s
CPU: 88% Memory : 114M Last used: 0s ago * PID: 26563 Sessions: 1 Processed: 18822 Uptime: 39m 14s
CPU: 88% Memory : 110M Last used: 0s ago

/etc/puppet/rack#default:
App root: /etc/puppet/rack
Requests in queue: 0 * PID: 15785 Sessions: 0 Processed: 535 Uptime: 53h 23m 14s
CPU: 0% Memory : 84M Last used: 23m 10s

Additional info:
This command allows you to view the status of the processes and queue within passenger.

passenger-status.patch passenger-status.patch 1.08 KB Klaas D, 09/13/2017 11:16 AM

Related issues

Related to Packaging - Bug #10001: [Foreman] Rubygem-passenger 4.0.18Closed2015-04-02
Related to SELinux - Bug #13041: selinux context on /var/run/rubygem-passenger/passenger.*/generation-0/request issue after log rotation.Closed2016-01-07
Has duplicate Foreman - Bug #9821: passenger-status reports passenger not running when it is on CentOS 7Duplicate2015-03-18

Associated revisions

Revision a66b3677 (diff)
Added by Dominic Cleal over 5 years ago

fixes #8392 - change Passenger temp dir to /run for cross-process status to work

History

#1 Updated by Dominic Cleal about 6 years ago

  • Subject changed from passenger-status broken on sat6 on rhel7 to passenger-status broken on EL7
  • Category set to RPMs

Library loading error fixed in 4.0.18-9.6 (https://github.com/theforeman/foreman-packaging/commit/84a741b819fb1dbce115413f4430698324a468d8), however functionality is still broken due to use of PrivateTmp in the httpd unit file, preventing communication between Passenger and external processes.

I'm thinking I might patch Passenger to set the temp directory to /run, so its sockets are accessible, and then set the buffer directory back to /tmp as it's actually used for large files.

https://www.phusionpassenger.com/documentation/Users%20guide%20Apache.html#PassengerTempDir

The Fedora rawhide packages have the same issue, so will submit a patch there first.

#2 Updated by Dominic Cleal about 6 years ago

  • Status changed from New to Assigned
  • Assignee set to Dominic Cleal

#3 Updated by Dominic Cleal over 5 years ago

  • Has duplicate Bug #9821: passenger-status reports passenger not running when it is on CentOS 7 added

#4 Updated by Dominic Cleal over 5 years ago

https://github.com/theforeman/foreman-packaging/compare/theforeman:rpm/develop...domcleal:rpm/develop-8392-passenger-tmpdir uses a patch that the RHSCL Passenger maintainer developed. Currently got a FTBFS in our Koji instance with EL7 as our EPEL7 mirror's out of date (tag's using epel7-beta), so resolving that first.

#5 Updated by Dominic Cleal over 5 years ago

  • Status changed from Assigned to Closed
  • % Done changed from 0 to 100
  • Legacy Backlogs Release (now unused) set to 28

#6 Updated by Dominic Cleal over 5 years ago

  • Related to Bug #10001: [Foreman] Rubygem-passenger 4.0.18 added

#7 Updated by Dominic Cleal almost 5 years ago

  • Related to Bug #13041: selinux context on /var/run/rubygem-passenger/passenger.*/generation-0/request issue after log rotation. added

#8 Updated by Klaas D about 3 years ago

This is still an issue on current foreman installs with the epel passenger. https://bugzilla.redhat.com/show_bug.cgi?id=1450315
As a workaround you can link your passenger dir to /tmp so it can be found by passenger-status:

ln -s `ls -d /tmp/systemd-private-*httpd*/tmp/passenger*` /tmp/

this only works while you have httpd running and if you restart httpd you'll need to create a new link

#9 Updated by Klaas D about 3 years ago

I've made a little more generic patch for current passenger-status, it will not look inside the privatetmp dirs if run as root.
Apply passenger-status.patch in /usr/share/passenger/phusion_passenger

patch -p0 < /path/to/passenger-status.patch

#10 Updated by Klaas D about 3 years ago

cd /usr/share/passenger/phusion_passenger
patch -p0 < /path/to/passenger-status.patch

is what I meant

Also available in: Atom PDF