Project

General

Profile

Actions

Bug #14793

closed

Clean install on CentOS 7.2.1511, foreman 1.11.1 will not run, problem with passenger_native_support.so

Added by Scott Worthington almost 8 years ago. Updated almost 8 years ago.

Status:
Duplicate
Priority:
Normal
Assignee:
-
Category:
RPMs
Target version:
-
Difficulty:
Triaged:
Fixed in Releases:
Found in Releases:

Description

Steps to reproduce:
1. Install CentOS 7.2.1511 base install
2. Install the latest puppet version

yum -y install http://yum.puppetlabs.com/puppetlabs-release-el-7.noarch.rpm

3. Enable the EPEL (Extra Packages for Enterprise Linux) and the Foreman repos:

yum -y install epel-release

4. Install foreman release

yum -y install http://yum.theforeman.org/releases/1.11/el7/x86_64/foreman-release.rpm

5. Install additional channels

yum -y install foreman-release-scl

6. Install installer

yum -y install foreman-installer

7. Grab addons

yum -y install \
foreman-ec2 \
tfm-rubygem-foreman_ansible \
tfm-rubygem-foreman_ansible-doc \
tfm-rubygem-foreman_docker \
tfm-rubygem-foreman_docker-doc

8. Install screen & run installer

yum install -y screen ; screen
foreman-installer

9. Install completes with error, /var/log/httpd/error_log contains:

App 4480 stderr:  --> passenger_native_support was compiled for Ruby API version 2.0.0, but you're currently running a Ruby interpreter with API version 2.2.0.
App 4480 stderr:      Refusing to load existing passenger_native_support.
App 4480 stderr:  --> No passenger_native_support.so found for current Ruby interpreter.
App 4480 stderr:      This library provides various optimized routines that make
App 4480 stderr:      Phusion Passenger faster. Please run 'sudo yum install passenger-devel-4.0.53'
App 4480 stderr:      so that Phusion Passenger can compile one on the next run.
App 4480 stderr:  --> Continuing without passenger_native_support.so.
App 4480 stderr: Log file /usr/share/foreman/log/production.log cannot be opened. Falling back to STDOUT
App 4480 stdout:  WARN  root : No appender set, logging to STDOUT

The 1.11.1 EL7 updates posted to http://yum.theforeman.org/releases/1.11/el7/x86_64/ on 2016-04-19 are breaking all previously working installs.


Files

2016-04-26_latest_passenger_from_epel7.txt 2016-04-26_latest_passenger_from_epel7.txt 7.5 KB command line log of the installation of the EPEL7-based new passenger RPMs Scott Worthington, 04/26/2016 11:30 AM

Related issues 1 (0 open1 closed)

Is duplicate of SELinux - Bug #14811: Passenger paths changed once again (RHEL7)ClosedLukas Zapletal04/26/2016Actions
Actions #1

Updated by Scott Worthington almost 8 years ago

It appears that is an EPEL passenger and mod_passenger upgrade that is trumping the version in the foreman's 1.11 repo.
Disabling EPEL during installation solves the install problem.

Actions #2

Updated by Scott Worthington almost 8 years ago

To get a successful clean install, add to the [epel] section in /etc/yum.repos.d/epel.repo, "exclude=passenger* mod_passenger"

Do not disable EPEL.

The new passenger and mod_passenger are taking precident over the correct ones in theforeman repo.

Actions #3

Updated by Greg Sutcliffe almost 8 years ago

  • Project changed from Foreman to Packaging
Actions #4

Updated by Dominic Cleal almost 8 years ago

  • Category set to RPMs

Could you provide the output from rpm -qa \*passenger\* please? I've been testing the updates in EPEL and haven't managed to hit this problem yet - I'm not quite sure either why the Ruby 2.0.0 native support would be loaded under 2.2.0.

Actions #5

Updated by Dominic Cleal almost 8 years ago

Also, does the web UI work? If not, any error displayed? If it does work, what's the error from the installer you're getting?

Please also try with SELinux set to permission (setenforce 0).

Actions #6

Updated by Marek Hulán almost 8 years ago

  • Description updated (diff)
Actions #7

Updated by Scott Worthington almost 8 years ago

Dominic Cleal wrote:

Could you provide the output from rpm -qa \*passenger\* please? I've been testing the updates in EPEL and haven't managed to hit this problem yet - I'm not quite sure either why the Ruby 2.0.0 native support would be loaded under 2.2.0.

The problem is these two packages got pushed up to EPEL7 over the weekend:

https://dl.fedoraproject.org/pub/epel/7/x86_64/m/mod_passenger-4.0.53-4.el7.x86_64.rpm
https://dl.fedoraproject.org/pub/epel/7/x86_64/p/passenger-4.0.53-4.el7.x86_64.rpm

EPEL7 is required to install Foreman. The two packages trump the passenger packages that are in the Foreman 1.11.1 repo.

I do not believe the Jenkins clean build of Foreman happens every day (unlike the nighly Foreman builds). My understanding is, due to Rackspace cost, the clean builds in Jenkins ( http://ci.theforeman.org/ ) do not happen daily. If possible, please fire up a EL7 clean install/build of 1.11.1 and it should fail due to the passenger/mod_passenger newer versions from EPEL7

Actions #8

Updated by Dominic Cleal almost 8 years ago

Yes, I'm quite aware, thanks. We've run multiple tests today successfully.

Could you please check my questions above, particularly the one about SELinux?

Actions #9

Updated by Scott Worthington almost 8 years ago

Dominic Cleal wrote:

Also, does the web UI work? If not, any error displayed? If it does work, what's the error from the installer you're getting?

Please also try with SELinux set to permission (setenforce 0).

No, the web UI does not work.

Actions #10

Updated by Dominic Cleal almost 8 years ago

  • Status changed from New to Need more information
  • Priority changed from Urgent to Normal
Actions #11

Updated by Scott Worthington almost 8 years ago

Dominic Cleal wrote:

Could you provide the output from rpm -qa \*passenger\* please? I've been testing the updates in EPEL and haven't managed to hit this problem yet - I'm not quite sure either why the Ruby 2.0.0 native support would be loaded under 2.2.0.

These are the packages when it DOESN'T work.

  1. rpm -qa | grep passenger
    mod_passenger-4.0.53-4.el7.x86_64
    tfm-rubygem-passenger-4.0.18-9.10.el7.x86_64
    passenger-4.0.53-4.el7.x86_64
    tfm-rubygem-passenger-native-libs-4.0.18-9.10.el7.x86_64
    tfm-rubygem-passenger-native-4.0.18-9.10.el7.x86_64

To make it work:
yum remove passenger-4.0.53-4.el7.x86_64 mod_passenger-4.0.53-4.el7.x86_64

Then in /etc/yum.repos.d/epel.repo in the [epel] section add
exclude=passenger* mod_passenger*

Then reinstall passenger and mod_passenger (which then pulls from theforeman repo)
yum install passenger mod_passenger

Actions #12

Updated by Dominic Cleal almost 8 years ago

Scott Worthington wrote:

Dominic Cleal wrote:

Also, does the web UI work? If not, any error displayed? If it does work, what's the error from the installer you're getting?

No, the web UI does not work.

Same questions.. is any error displayed when you access the web UI? Any logging? What's the error from the installer? There isn't enough information here to know what the problem you're experiencing is caused by.

Please also try with SELinux set to permission (setenforce 0).

Which mode is SELinux in (sestatus, getenforce)? There is a bug report for AVCs due to a mislabel when it is enforcing (#14811).

Actions #13

Updated by David Gersting almost 8 years ago

I just came across this myself in RHEL 7.2. Though I got some weird results. Will work to isolate here in a minute.

Web UI:
Web UI comes up, and can login with default admin credentials shown during foreman-install
No Apache error logs are updated when trying to hit the web ui.
Web UI looks ok, but no Smart Proxies are registered

SELinux:
Initial install was performed in enforcing more. Switching to permissive and re-running foreman-install reported no errors, and smart proxy appears in web UI?
Will reset lab VM and re-install w/ SELinux in permissive...

Errors during Install

[root@deploy foreman-installer]# grep ERROR foreman.*
foreman.1.log:[DEBUG 2016-04-26 08:45:32 main] calling :function_validate_re with [["ERROR", "^(UNKNOWN|FATAL|ERROR|WARN|INFO|DEBUG)$"]]
foreman.1.log:[ERROR 2016-04-26 08:46:00 main]  /Stage[main]/Foreman_proxy::Register/Foreman_smartproxy[deploy.lab]: Could not evaluate: Proxy deploy.lab cannot be registered (Could not load data from https://deploy.lab
foreman.1.log:[ERROR 2016-04-26 08:46:05 main] Errors encountered during run:
foreman.1.log:[ERROR 2016-04-26 08:46:05 main]  /Stage[main]/Foreman_proxy::Register/Foreman_smartproxy[deploy.lab]: Could not evaluate: Proxy deploy.lab cannot be registered (Could not load data from https://deploy.lab
foreman.2.log:[DEBUG 2016-04-25 16:58:32 main] calling :function_validate_re with [["ERROR", "^(UNKNOWN|FATAL|ERROR|WARN|INFO|DEBUG)$"]]
foreman.2.log:[ INFO 2016-04-25 17:09:33 main]  # WARN, DEBUG, ERROR, FATAL, INFO, UNKNOWN
foreman.2.log:[ INFO 2016-04-25 17:09:33 main] -#:log_level: ERROR
foreman.2.log:[ INFO 2016-04-25 17:09:33 main] +:log_level: ERROR
foreman.2.log:[ERROR 2016-04-25 17:12:54 main]  /Stage[main]/Foreman_proxy::Register/Foreman_smartproxy[deploy.lab]: Could not evaluate: Proxy deploy.lab cannot be registered (Could not load data from https://deploy.lab
foreman.2.log:[ERROR 2016-04-25 17:12:58 main]  /Stage[main]/Foreman_proxy::Register/Foreman_smartproxy[deploy.lab]: Failed to call refresh: Proxy deploy.lab cannot be registered (Could not load data from https://deploy.lab
foreman.2.log:[ERROR 2016-04-25 17:12:58 main]  /Stage[main]/Foreman_proxy::Register/Foreman_smartproxy[deploy.lab]: Proxy deploy.lab cannot be registered (Could not load data from https://deploy.lab
foreman.log:[DEBUG 2016-04-26 08:46:25 main] calling :function_validate_re with [["ERROR", "^(UNKNOWN|FATAL|ERROR|WARN|INFO|DEBUG)$"]]
foreman.log:[ERROR 2016-04-26 08:46:52 main]  /Stage[main]/Foreman_proxy::Register/Foreman_smartproxy[deploy.lab]: Could not evaluate: Proxy deploy.lab cannot be registered (Could not load data from https://deploy.lab


RPM Package Versions:

[root@deploy httpd]# rpm -qa | grep passenger
passenger-4.0.53-4.el7.x86_64
mod_passenger-4.0.53-4.el7.x86_64
tfm-rubygem-passenger-4.0.18-9.10.el7.x86_64
tfm-rubygem-passenger-native-4.0.18-9.10.el7.x86_64
tfm-rubygem-passenger-native-libs-4.0.18-9.10.el7.x86_64

Is there any other logging you need?

Actions #14

Updated by Dominic Cleal almost 8 years ago

David Gersting wrote:

SELinux:
Initial install was performed in enforcing more. Switching to permissive and re-running foreman-install reported no errors, and smart proxy appears in web UI?
Will reset lab VM and re-install w/ SELinux in permissive...

Thanks, your problem is almost certainly ticket #14811. A fix is in progress.

As you found, changing SELinux to permissive will fix it or perhaps prioritising the Foreman repo over EPEL (our repo has an older version of Passenger that has SELinux support).

Actions #15

Updated by Scott Worthington almost 8 years ago

Dominic Cleal wrote:

As you found, changing SELinux to permissive will fix it or perhaps prioritising the Foreman repo over EPEL (our repo has an older version of Passenger that has SELinux support).

On CentOS 7.2.1511, changing /etc/selinux/config from SELINUX=enforcing to SELINUX=permissive seems to have corrected the problem of the new passenger and mod_passenger RPMs.

My steps:

  1. I changed the SELINUX setting to permissive.
  2. Re-enabled passenger & mod_passenger to be updated from EPEL (previously excluded)
  3. Ran a yum update
  4. Rebooted

The /var/log/httpd/error_log contains the following entry, however apache DOES start and I am able to log into theforeman web ui:

App 2058 stderr:  --> passenger_native_support was compiled for Ruby API version 2.0.0, but you're currently running a Ruby interpreter with API version 2.2.0.
App 2058 stderr:      Refusing to load existing passenger_native_support.
App 2058 stderr:  --> No passenger_native_support.so found for current Ruby interpreter.
App 2058 stderr:      This library provides various optimized routines that make
App 2058 stderr:      Phusion Passenger faster. Please run 'sudo yum install passenger-devel-4.0.53'
App 2058 stderr:      so that Phusion Passenger can compile one on the next run.
App 2058 stderr:  --> Continuing without passenger_native_support.so.
App 2130 stdout: 

It does appear to be a SELINUX blocking issue with the new EPEL-based passenger & mod_passenger RPMs.

Actions #16

Updated by David Gersting almost 8 years ago

I see the same. I just reset my lab VM, and foreman-install runs cleanly when SELinux is in Permissive mode. There's still the errors about the Ruby version in Apache's error_log, but the daemon starts and nothing seems broken. (but I've also not tested anything other than the install itself)

Actions #17

Updated by Dominic Cleal almost 8 years ago

  • Is duplicate of Bug #14811: Passenger paths changed once again (RHEL7) added
Actions #18

Updated by Dominic Cleal almost 8 years ago

  • Status changed from Need more information to Duplicate

Thanks for confirming it's SELinux, we'll handle this under the other ticket.

Actions

Also available in: Atom PDF