Bug 1154471 - OSE install failed due to wrong incompatible rsyslog7-7.4.10-3.el6_6.x86_64 installation
Summary: OSE install failed due to wrong incompatible rsyslog7-7.4.10-3.el6_6.x86_64 i...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: OpenShift Container Platform
Classification: Red Hat
Component: Installer
Version: 2.1.0
Hardware: x86_64
OS: Linux
high
medium
Target Milestone: ---
: ---
Assignee: Brenton Leanhardt
QA Contact:
URL:
Whiteboard:
: 1156108 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-10-20 01:51 UTC by Kenjiro Nakayama
Modified: 2018-12-09 18:54 UTC (History)
9 users (show)

Fixed In Version: rsyslog7-mmopenshift-7.4.10-3.el6op openshift-enterprise-upgrade-2.2.0.4-1.el6op
Doc Type: Bug Fix
Doc Text:
Cause: OSE 2.1 wsa released originally on RHEL 6.5. In order for the mmopenshift plugin to work the rsyslog7 package was shipped from RHEL7. Later RHEL 6.6 shipped it's own rsyslog7 package that was incompatible with the one from OSE. Consequence: Lots of edge cases for rpm conflicts and confusing configuration. Fix: The rsyslog7-mmopenshift package in OSE 2.2 was updated for compatibility with RHEL 6.6. The openshift.sh installer and the OSE 2.1 to 2.2 upgrade tooling have been updated as well. Result: The installer and upgrade tooling handle the configuration changes. The rsyslog7 package from RHEL 6.6 conflicts with the base rsyslog package. Once this fix is shipped to OSE 2.2 a manual upgrade can be done with the following steps: cp -f /etc/rsyslog7.d/* /etc/rsyslog.d/ yum shell --disableplugin=priorities -y <<YUM erase rsyslog rsyslog7-7.4.7 rsyslog7-mmopenshift-7.4.7 install rsyslog7 rsyslog7-mmopenshift transaction run YUM sed -i 's/rsyslog7.d/rsyslog.d/' /etc/rsyslog.conf service rsyslog start
Clone Of:
Environment:
Last Closed: 2014-11-03 19:55:41 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
openshift-deploy.log failed due to wrong rsyslog7 (338.86 KB, text/plain)
2014-10-20 12:25 UTC, Kenjiro Nakayama
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2014:1796 0 normal SHIPPED_LIVE Moderate: Red Hat OpenShift Enterprise 2.2 Release Advisory 2014-11-04 00:52:02 UTC

Description Kenjiro Nakayama 2014-10-20 01:51:54 UTC
Description of problem:
===
- OSE Node host installation by "sh <(curl -s https://install.openshift.com/ose)" is failed.
- Please see the attached log file.


Version-Release number of selected component (if applicable):
===
- OSE 2.1
- RHEL 6.5

How reproducible:
===
- Steps to Reproduce:
 1. Install node host by sh <(curl -s https://install.openshift.com/ose)


Actual results:
===
- Please see attached log file.


Expected results:
===
- Install successfully without error.


Additional info:
===
- I attached the whole log file. Please check it.

Comment 1 Kenjiro Nakayama 2014-10-20 01:54:34 UTC
FYI:

[root@node ~]# yum info rsyslog7
Loaded plugins: priorities, product-id, security, subscription-manager
jb-eap-6-for-rhel-6-server-rpms                                                                                                | 3.7 kB     00:00     
jb-ews-2-for-rhel-6-server-rpms                                                                                                | 3.7 kB     00:00     
rhel-6-server-ose-2.1-infra-rpms                                                                                               | 3.1 kB     00:00     
rhel-6-server-ose-2.1-jbosseap-rpms                                                                                            | 3.1 kB     00:00     
rhel-6-server-ose-2.1-node-rpms                                                                                                | 3.1 kB     00:00     
rhel-6-server-ose-2.1-rhc-rpms                                                                                                 | 3.1 kB     00:00     
rhel-6-server-rpms                                                                                                             | 3.8 kB     00:00     
rhel-server-rhscl-6-rpms                                                                                                       | 3.1 kB     00:00     
Available Packages
Name        : rsyslog7
Arch        : x86_64
Version     : 7.4.10
Release     : 3.el6_6
Size        : 1.3 M
Repo        : rhel-6-server-rpms
Summary     : Enhanced system logging and kernel message trapping daemon
URL         : http://www.rsyslog.com/
License     : (GPLv3+ and ASL 2.0)
Description : Rsyslog is an enhanced, multi-threaded syslog daemon. It supports MySQL,
            : syslog/TCP, RFC 3195, permitted sender lists, filtering on any message part,
            : and fine grain output format control. It is compatible with stock sysklogd
            : and can be used as a drop-in replacement. Rsyslog is simple to set up, with
            : advanced features suitable for enterprise-class, encryption-protected syslog
            : relay chains.

[root@node ~]# yum repolist
Loaded plugins: priorities, product-id, security, subscription-manager
repo id                                               repo name                                                                                 status
jb-eap-6-for-rhel-6-server-rpms                       JBoss Enterprise Application Platform 6 (RHEL 6 Server) (RPMs)                             1,735
jb-ews-2-for-rhel-6-server-rpms                       JBoss Enterprise Web Server 2 (RHEL 6 Server) (RPMs)                                         258
rhel-6-server-ose-2.1-infra-rpms                      Red Hat OpenShift Enterprise 2.1 Infrastructure (RPMs)                                       216
rhel-6-server-ose-2.1-jbosseap-rpms                   Red Hat OpenShift Enterprise 2.1 JBoss EAP add-on (RPMs)                                       7
rhel-6-server-ose-2.1-node-rpms                       Red Hat OpenShift Enterprise 2.1 Application Node (RPMs)                                     466
rhel-6-server-ose-2.1-rhc-rpms                        Red Hat OpenShift Enterprise 2.1 Client Tools (RPMs)                                          17
rhel-6-server-rpms                                    Red Hat Enterprise Linux 6 Server (RPMs)                                                  14,157
rhel-server-rhscl-6-rpms                              Red Hat Software Collections RPMs for Red Hat Enterprise Linux 6 Server                    1,269
repolist: 18,125

Comment 4 Luke Meyer 2014-10-20 12:01:23 UTC
Customers should always be setting priorities on yum repositories. There is a tool and process for it as described in the documentation at https://access.redhat.com/documentation/en-US/OpenShift_Enterprise/2/html-single/Deployment_Guide/index.html#Configuring_Yum_on_Broker_Hosts

If you try to install without doing this, your chances of success are not good. If you specify that oo-install or openshift.sh should set up your subscriptions for you (any subscription type except "none"), it will do all this for you, but otherwise you must do it as specified in the documentation.

Comment 5 Kenjiro Nakayama 2014-10-20 12:25:42 UTC
Created attachment 948527 [details]
openshift-deploy.log failed due to wrong rsyslog7

Comment 6 Kenjiro Nakayama 2014-10-20 13:58:14 UTC
Yes, you are right.

I have been installed with this steps until now...

** This will hit error **
1. I set registered subscription with rhsm
2. run "sh <(curl -s https://install.openshift.com/ose)".
3. I choose "n" with following prompt.. (Because I set it in #1)
 ~~~
 Do you want to make any changes to the subscription info in the
 configuration file? (y/n/q/?) n
 ~~~

After I set subscription info, I got no error. And the repo priority is set correctly.

Comment 9 Luke Meyer 2014-10-23 18:35:49 UTC
*** Bug 1156108 has been marked as a duplicate of this bug. ***

Comment 15 Anping Li 2014-10-26 13:46:07 UTC
For new installation, the result is as below:

1) set CONF_SYSLOG true
rsyslog was removed and rsyslog-5.8.10-9.el6_6.x86_64 was installed

================================================================================
 Package                Arch     Version          Repository               Size
================================================================================
Installing:
 rsyslog7               x86_64   7.4.10-3.el6_6   rhel6                   1.3 M
 rsyslog7-mmopenshift   x86_64   7.4.10-3.el6op   openshift_node_puddle   146 k
Removing:
 rsyslog                x86_64   5.8.10-9.el6_6   @rhel6                  2.1 M

[root@dhcp-128-178 ~]# rpm -qa|grep syslog
rsyslog7-7.4.10-3.el6_6.x86_64
rsyslog7-mmopenshift-7.4.10-3.el6op.x86_64

2) set CONF_SYSLOG false

[root@dhcp-128-178 ~]# rpm -qa|grep syslog
rsyslog-5.8.10-9.el6_6.x86_64

Comment 16 Johnny Liu 2014-10-28 08:45:14 UTC
For upgrade testing:
> * A 2.2 upgrade where rsyslog7 was never actually used in 2.1.  Meaning, rsyslog7.conf was never modified to use the mmopenshift plugin.  The upgrade should ignore it

Upgrade would remove rsyslog7 and rsyslog7-mmopenshift installed in ose-2.1

# ose-upgrade all
<--snip-->
INFO: Next step is 'rpms'
INFO: Setting node step 'rpms' status to UPGRADING
WARN: run_upgrade_step_rpms
This may take a while.
INFO: Running upgrade scripts in /usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms
INFO: running /usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms/01-rsyslog7-update:
INFO: --BEGIN OUTPUT--
+ rpm -q rsyslog7-mmopenshift-7.4.7
+ rpm -V rsyslog7
+ yum erase -y rsyslog7-7.4.7 rsyslog7-mmopenshift-7.4.7
Loaded plugins: priorities, product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package rsyslog7.x86_64 0:7.4.7-5.7.el6op will be erased
---> Package rsyslog7-mmopenshift.x86_64 0:7.4.7-5.7.el6op will be erased
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package                Arch     Version            Repository             Size
================================================================================
Removing:
 rsyslog7               x86_64   7.4.7-5.7.el6op    @openshift_node_cdn   1.8 M
 rsyslog7-mmopenshift   x86_64   7.4.7-5.7.el6op    @openshift_node_cdn   386 k

Transaction Summary
================================================================================
Remove        2 Package(s)

Installed size: 2.2 M
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Erasing    : rsyslog7-mmopenshift-7.4.7-5.7.el6op.x86_64                  1/2 
  Erasing    : rsyslog7-7.4.7-5.7.el6op.x86_64                              2/2 
73 packages excluded due to repository priority protections
  Verifying  : rsyslog7-mmopenshift-7.4.7-5.7.el6op.x86_64                  1/2 
  Verifying  : rsyslog7-7.4.7-5.7.el6op.x86_64                              2/2 

Removed:
  rsyslog7.x86_64 0:7.4.7-5.7.el6op                                             
  rsyslog7-mmopenshift.x86_64 0:7.4.7-5.7.el6op                                 

Complete!
INFO: --END /usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms/01-rsyslog7-update OUTPUT--
INFO: /usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms/01-rsyslog7-update ran without error.
<--snip-->

For other upgrade scenario, will verify soon.

Comment 17 Johnny Liu 2014-10-28 09:55:47 UTC
When user did modified rsyslog7, but not chkconfig it on, found there are some syntax in the fix patch.

[root@node ~]# rpm -V rsyslog7; echo $?
S.5....T.  c /etc/rsyslog7.conf
1
[root@node ~]# chkconfig rsyslog7 --list | grep -v ':on'; echo $?
rsyslog7       	0:off	1:off	2:off	3:off	4:off	5:off	6:off
0


According to the fix patch, ose-upgrade should remove rsyslog installed in ose-2.1, but actually ose-upgrade did not.

INFO: Running upgrade scripts in /usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms
INFO: running /usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms/01-rsyslog7-update:
INFO: --BEGIN OUTPUT--
+ rpm -q rsyslog7-mmopenshift-7.4.7
+ rpm -V rsyslog7
+ chkconfig rsyslog7 --list
+ grep -v :on /dev/null
+ '[' -d /etc/rsyslog7.d ']'
+ command cp -f '/etc/rsyslog7.d/*' /etc/rsyslog.d/
+ cp -f '/etc/rsyslog7.d/*' /etc/rsyslog.d/
cp: cannot stat `/etc/rsyslog7.d/*': No such file or directory
INFO: --END /usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms/01-rsyslog7-update OUTPUT--
ERROR: run_script
/usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms/01-rsyslog7-update had errors:
--BEGIN OUTPUT--
+ rpm -q rsyslog7-mmopenshift-7.4.7
+ rpm -V rsyslog7
+ chkconfig rsyslog7 --list
+ grep -v :on /dev/null
+ '[' -d /etc/rsyslog7.d ']'
+ command cp -f '/etc/rsyslog7.d/*' /etc/rsyslog.d/
+ cp -f '/etc/rsyslog7.d/*' /etc/rsyslog.d/
cp: cannot stat `/etc/rsyslog7.d/*': No such file or directory

--END /usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms/01-rsyslog7-update OUTPUT--
INFO: Setting node step 'rpms' status to FAILED


The root cause is the following:
if rpm -V rsyslog7 >/dev/null 2>&1 ||
 chkconfig rsyslog7 --list | grep -v ':on' /dev/null 2>&1; then
 yum erase -y rsyslog7-7.4.7 rsyslog7-mmopenshift-7.4.7
else


"chkconfig rsyslog7 --list | grep -v ':on' /dev/null 2>&1;" should be changed to "chkconfig rsyslog7 --list | grep -v ':on' >/dev/null 2>&1;", miss ">".

Comment 18 Johnny Liu 2014-10-28 10:31:47 UTC
For upgrade testing:
> * A 2.2 upgrade where rsyslog7 was installed from RHEL6.6.  The upgrade should ignore it.

Firstly rsyslog7-mmopenshift-7.4.7-5.7.el6op.x86_64 would never be installed together with rsyslog7 from rhel6 repo, because rsyslog7-mmopenshift-7.4.7-5.7.el6op.x86_64 have dependency with rsyslog7-7.4.7-5.7. So this scenarios is a little meaningless.

Whatever, for check the logic of ose-upgrade, so here I have to uninstall rsyslog7 and rsyslog7-mmopenshift installed in ose-2.1, then install rsyslog7 from rhel6.

# yum shell --disableplugin=priorities -y <<YUM
erase rsyslog
install rsyslog7
transaction run
YUM

# rpm -qa|grep syslog
rsyslog7-7.4.10-3.el6_6.x86_64

Due to rsyslog7-mmopenshift is not installed, so ose-upgrade would ignore it.
<--snip-->
INFO: Running upgrade scripts in /usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms
INFO: running /usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms/01-rsyslog7-update:
INFO: --BEGIN OUTPUT--
+ rpm -q rsyslog7-mmopenshift-7.4.7
INFO: --END /usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms/01-rsyslog7-update OUTPUT--
INFO: /usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms/01-rsyslog7-update ran without error.
<--snip-->

Comment 19 Brenton Leanhardt 2014-10-28 12:18:07 UTC
(In reply to Johnny Liu from comment #18)
> For upgrade testing:
> > * A 2.2 upgrade where rsyslog7 was installed from RHEL6.6.  The upgrade should ignore it.
> 
> Firstly rsyslog7-mmopenshift-7.4.7-5.7.el6op.x86_64 would never be installed
> together with rsyslog7 from rhel6 repo, because
> rsyslog7-mmopenshift-7.4.7-5.7.el6op.x86_64 have dependency with
> rsyslog7-7.4.7-5.7. So this scenarios is a little meaningless.

In this test I was actually referring to not having rsyslog7-mmopenshift installed at all.  Let's say they had a host where RHEL 6.6's rsyslog7 was in the default image.  If the later installed OpenShift 2.1 and desided to upgrade we wouldn't want anything bad to happen.  The rsyslog7 upgrade logic should simply ignore it.

> 
> Whatever, for check the logic of ose-upgrade, so here I have to uninstall
> rsyslog7 and rsyslog7-mmopenshift installed in ose-2.1, then install
> rsyslog7 from rhel6.
> 
> # yum shell --disableplugin=priorities -y <<YUM
> erase rsyslog
> install rsyslog7
> transaction run
> YUM
> 
> # rpm -qa|grep syslog
> rsyslog7-7.4.10-3.el6_6.x86_64
> 
> Due to rsyslog7-mmopenshift is not installed, so ose-upgrade would ignore it.
> <--snip-->
> INFO: Running upgrade scripts in
> /usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms
> INFO: running
> /usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms/01-rsyslog7-
> update:
> INFO: --BEGIN OUTPUT--
> + rpm -q rsyslog7-mmopenshift-7.4.7
> INFO: --END
> /usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms/01-rsyslog7-
> update OUTPUT--
> INFO:
> /usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms/01-rsyslog7-
> update ran without error.
> <--snip-->

Comment 20 Brenton Leanhardt 2014-10-28 13:24:13 UTC
(In reply to Johnny Liu from comment #17)
> When user did modified rsyslog7, but not chkconfig it on, found there are
> some syntax in the fix patch.
> 
> [root@node ~]# rpm -V rsyslog7; echo $?
> S.5....T.  c /etc/rsyslog7.conf
> 1
> [root@node ~]# chkconfig rsyslog7 --list | grep -v ':on'; echo $?
> rsyslog7       	0:off	1:off	2:off	3:off	4:off	5:off	6:off
> 0
> 
> 
> According to the fix patch, ose-upgrade should remove rsyslog installed in
> ose-2.1, but actually ose-upgrade did not.
> 
> INFO: Running upgrade scripts in
> /usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms
> INFO: running
> /usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms/01-rsyslog7-
> update:
> INFO: --BEGIN OUTPUT--
> + rpm -q rsyslog7-mmopenshift-7.4.7
> + rpm -V rsyslog7
> + chkconfig rsyslog7 --list
> + grep -v :on /dev/null
> + '[' -d /etc/rsyslog7.d ']'
> + command cp -f '/etc/rsyslog7.d/*' /etc/rsyslog.d/
> + cp -f '/etc/rsyslog7.d/*' /etc/rsyslog.d/
> cp: cannot stat `/etc/rsyslog7.d/*': No such file or directory

I viewed this as minor and choose the path I believed was the safest.  I was going to add a check for /etc/rsyslog7.d/ however I decided to simply check  rpm -V rsyslog7.

If they are using the rsyslog7 from OpenShift Enterprise repositories then they are _only_ allowed to use it for OpenShift Enterprise.  Our 2.1 documentation says to create /etc/rsyslog7.d.

I preferred to fail fast since I would rather the upgrade stop and have them call support than have things appear to succeed and then they only find out (weeks later) that they aren't getting logs.

The challenge we're going to have is that when 2.2 goes out we'll update our documentation to tell admins to create /etc/rsyslog7.d.  Therefore if someone in the future installs 2.1 following the new method of updating we're going to have a problem.  I haven't decided what to do with that yet.  However, given all the problems with rsyslog7 on 2.1 I would almost say it's totally broken unless you _really_ know how it all works.  My hope is that we can get the current users to 2.2 as fast a possible and that new installs will be on 2.2.

> INFO: --END
> /usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms/01-rsyslog7-
> update OUTPUT--
> ERROR: run_script
> /usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms/01-rsyslog7-
> update had errors:
> --BEGIN OUTPUT--
> + rpm -q rsyslog7-mmopenshift-7.4.7
> + rpm -V rsyslog7
> + chkconfig rsyslog7 --list
> + grep -v :on /dev/null
> + '[' -d /etc/rsyslog7.d ']'
> + command cp -f '/etc/rsyslog7.d/*' /etc/rsyslog.d/
> + cp -f '/etc/rsyslog7.d/*' /etc/rsyslog.d/
> cp: cannot stat `/etc/rsyslog7.d/*': No such file or directory
> 
> --END
> /usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms/01-rsyslog7-
> update OUTPUT--
> INFO: Setting node step 'rpms' status to FAILED
> 
> 
> The root cause is the following:
> if rpm -V rsyslog7 >/dev/null 2>&1 ||
>  chkconfig rsyslog7 --list | grep -v ':on' /dev/null 2>&1; then
>  yum erase -y rsyslog7-7.4.7 rsyslog7-mmopenshift-7.4.7
> else
> 
> 
> "chkconfig rsyslog7 --list | grep -v ':on' /dev/null 2>&1;" should be
> changed to "chkconfig rsyslog7 --list | grep -v ':on' >/dev/null 2>&1;",
> miss ">".

Comment 21 Brenton Leanhardt 2014-10-28 13:26:38 UTC
> 
> "chkconfig rsyslog7 --list | grep -v ':on' /dev/null 2>&1;" should be
> changed to "chkconfig rsyslog7 --list | grep -v ':on' >/dev/null 2>&1;",
> miss ">".

This part is definitely a bug!

Comment 22 Brenton Leanhardt 2014-10-28 13:53:32 UTC
Looking again at Comment #17 I see I did add a check for /etc/rsyslog7.d.  My opinion on that was similar though.  If they knew to create rsyslog7.d it was because they read the OSE docs.  If there are no *.conf files in that directory something is wrong and someone will need to investigate before the upgrade continues.

I think the syntax error Jianlin found is likely the cause for all the confusion.  I'll have that fixed shortly!

Comment 24 Johnny Liu 2014-10-29 06:06:41 UTC
For upgrade testing:
> * A 2.2 upgrade where rsyslog7 was originally setup according to the 2.1 documentation.  The upgrade will port it to the new packages.

Verified this scenario with ose-21z-22-upgrade-2014-10-28, and PASS.
Before upgrade, the following packages are installed on node:
rsyslog-5.8.10-9.el6_6.x86_64
rsyslog7-7.4.7-5.7.el6op.x86_64
rsyslog7-mmopenshift-7.4.7-5.7.el6op.x86_64

Enabled SYSCONF=node,gears,frontend, logging functionality is working well.

Start ose-upgrade on node:
<--snip-->
<--snip-->
<--snip-->
INFO: Next step is 'rpms'
INFO: Setting node step 'rpms' status to UPGRADING
WARN: run_upgrade_step_rpms
This may take a while.
INFO: Running upgrade scripts in /usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms
INFO: running /usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms/01-rsyslog7-update:
INFO: --BEGIN OUTPUT--
+ rpm -q rsyslog7-mmopenshift-7.4.7
+ rpm -V rsyslog7
+ chkconfig rsyslog7 --list
+ grep -v :on
+ '[' -d /etc/rsyslog7.d ']'
+ command cp -f /etc/rsyslog7.d/imuxsock-and-openshift-gears.conf /etc/rsyslog7.d/openshift-node-platform.conf /etc/rsyslog.d/
+ cp -f /etc/rsyslog7.d/imuxsock-and-openshift-gears.conf /etc/rsyslog7.d/openshift-node-platform.conf /etc/rsyslog.d/
+ yum shell --disableplugin=priorities -y
Loaded plugins: product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Setting up Yum Shell
> Setting up Remove Process
> Setting up Install Process
> --> Running transaction check
---> Package rsyslog.x86_64 0:5.8.10-9.el6_6 will be erased
---> Package rsyslog7.x86_64 0:7.4.7-5.7.el6op will be updated
---> Package rsyslog7.x86_64 0:7.4.10-3.el6_6 will be an update
--> Processing Dependency: libjson-c.so.2()(64bit) for package: rsyslog7-7.4.10-3.el6_6.x86_64
---> Package rsyslog7-mmopenshift.x86_64 0:7.4.7-5.7.el6op will be updated
---> Package rsyslog7-mmopenshift.x86_64 0:7.4.10-3.el6op will be an update
--> Running transaction check
---> Package json-c.x86_64 0:0.10-3.el6op will be updated
---> Package json-c.x86_64 0:0.11-11.el6 will be an update
--> Finished Dependency Resolution

================================================================================
 Package                Arch     Version           Repository              Size
================================================================================
Updating:
 rsyslog7               x86_64   7.4.10-3.el6_6    rhel6                  1.3 M
 rsyslog7-mmopenshift   x86_64   7.4.10-3.el6op    openshift_node_extra   146 k
Removing:
 rsyslog                x86_64   5.8.10-9.el6_6    @rhel6                 2.1 M
Updating for dependencies:
 json-c                 x86_64   0.11-11.el6       rhel6                   51 k

Transaction Summary
================================================================================
Upgrade       3 Package(s)
Remove        1 Package(s)

Total download size: 1.5 M
Downloading Packages:
--------------------------------------------------------------------------------
Total                                           564 kB/s | 1.5 MB     00:02     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating   : json-c-0.11-11.el6.x86_64                                    1/7 
  Updating   : rsyslog7-7.4.10-3.el6_6.x86_64                               2/7 
  Updating   : rsyslog7-mmopenshift-7.4.10-3.el6op.x86_64                   3/7 
  Cleanup    : rsyslog7-mmopenshift-7.4.7-5.7.el6op.x86_64                  4/7 
  Cleanup    : rsyslog7-7.4.7-5.7.el6op.x86_64                              5/7 
warning: /etc/rsyslog7.conf saved as /etc/rsyslog7.conf.rpmsave
  Cleanup    : json-c-0.10-3.el6op.x86_64                                   6/7 
  Erasing    : rsyslog-5.8.10-9.el6_6.x86_64                                7/7 
  Verifying  : json-c-0.11-11.el6.x86_64                                    1/7 
  Verifying  : rsyslog7-7.4.10-3.el6_6.x86_64                               2/7 
  Verifying  : rsyslog7-mmopenshift-7.4.10-3.el6op.x86_64                   3/7 
  Verifying  : rsyslog-5.8.10-9.el6_6.x86_64                                4/7 
  Verifying  : rsyslog7-7.4.7-5.7.el6op.x86_64                              5/7 
  Verifying  : rsyslog7-mmopenshift-7.4.7-5.7.el6op.x86_64                  6/7 
  Verifying  : json-c-0.10-3.el6op.x86_64                                   7/7 

Removed:
  rsyslog.x86_64 0:5.8.10-9.el6_6                                               

Updated:
  rsyslog7.x86_64 0:7.4.10-3.el6_6 rsyslog7-mmopenshift.x86_64 0:7.4.10-3.el6op

Dependency Updated:
  json-c.x86_64 0:0.11-11.el6                                                   

Finished Transaction
> Leaving Shell
+ rpm -q rsyslog7-mmopenshift-7.4.7
package rsyslog7-mmopenshift-7.4.7 is not installed
+ conf=/etc/rsyslog.conf
++ date +%Y-%m-%d-%H:%M:%S
+ command cp -f /etc/rsyslog.conf /etc/rsyslog.conf.ugsave.2014-10-29-13:18:43
+ cp -f /etc/rsyslog.conf /etc/rsyslog.conf.ugsave.2014-10-29-13:18:43
+ command cp -f /etc/rsyslog7.conf.rpmsave /etc/rsyslog.conf
+ cp -f /etc/rsyslog7.conf.rpmsave /etc/rsyslog.conf
+ sed -i s/rsyslog7.d/rsyslog.d/ /etc/rsyslog.conf
+ service rsyslog start
Starting system logger:                                    [  OK  ]
INFO: --END /usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms/01-rsyslog7-update OUTPUT--
INFO: /usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms/01-rsyslog7-update ran without error.
<--snip-->
<--snip-->
<--snip-->

Comment 25 Johnny Liu 2014-10-29 06:32:50 UTC
Following comment 24, though log functionality is working well after upgrade, but an issue still exists.

After ose-upgrade, rsyslog is not added into "chkconfig --list", that means once node is reboot, all log functionality would does not work.

That is caused by the following:
    yum shell --disableplugin=priorities -y <<YUM
erase rsyslog rsyslog7-7.4.7 rsyslog7-mmopenshift-7.4.7
install rsyslog7 rsyslog7-mmopenshift
transaction run
YUM

In yum shell, "install rsyslog7" would NOT run post install script of rsyslog7.
# rpm -q --scripts rsyslog7
postinstall scriptlet (using /bin/sh):
/sbin/chkconfig --add rsyslog
for n in /var/log/{messages,secure,maillog,spooler}
do
	[ -f $n ] && continue
	umask 066 && touch $n
done
preuninstall scriptlet (using /bin/sh):
if [ $1 = 0 ]; then
	service rsyslog stop >/dev/null 2>&1 ||:
	/sbin/chkconfig --del rsyslog
fi
postuninstall scriptlet (using /bin/sh):
if [ "$1" -ge "1" ]; then
	service rsyslog condrestart > /dev/null 2>&1 ||:
fi

If I yum reinstall rsyslog7, rsyslog would be added into "chkconfig --list"

Comment 26 Johnny Liu 2014-10-29 09:13:34 UTC
Retest the failure in comment 17 with ose-21z-22-upgrade-2014-10-28, and PASS.

When user did modified rsyslog7, but not chkconfig it on, ose-upgrade would remove rsyslog7 and rsyslog7-mmopenshift installed in ose-2.1.

# rpm -V rsyslog7
S.5....T.  c /etc/rsyslog7.conf
# chkconfig rsyslog7 off
# chkconfig rsyslog7 --list | grep -v ':on'; echo $?
rsyslog7       	0:off	1:off	2:off	3:off	4:off	5:off	6:off
0

# ose-upgrade all
<--snip-->
INFO: Next step is 'rpms'
INFO: Setting node step 'rpms' status to UPGRADING
WARN: run_upgrade_step_rpms
This may take a while.
INFO: Running upgrade scripts in /usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms
INFO: running /usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms/01-rsyslog7-update:
INFO: --BEGIN OUTPUT--
+ rpm -q rsyslog7-mmopenshift-7.4.7
+ rpm -V rsyslog7
+ grep -v :on
+ chkconfig rsyslog7 --list
+ yum erase -y rsyslog7-7.4.7 rsyslog7-mmopenshift-7.4.7
Loaded plugins: priorities, product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package rsyslog7.x86_64 0:7.4.7-5.7.el6op will be erased
---> Package rsyslog7-mmopenshift.x86_64 0:7.4.7-5.7.el6op will be erased
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package                Arch     Version            Repository             Size
================================================================================
Removing:
 rsyslog7               x86_64   7.4.7-5.7.el6op    @openshift_node_cdn   1.8 M
 rsyslog7-mmopenshift   x86_64   7.4.7-5.7.el6op    @openshift_node_cdn   386 k

Transaction Summary
================================================================================
Remove        2 Package(s)

Installed size: 2.2 M
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Erasing    : rsyslog7-mmopenshift-7.4.7-5.7.el6op.x86_64                  1/2 
  Erasing    : rsyslog7-7.4.7-5.7.el6op.x86_64                              2/2 
warning: /etc/rsyslog7.conf saved as /etc/rsyslog7.conf.rpmsave
  Verifying  : rsyslog7-mmopenshift-7.4.7-5.7.el6op.x86_64                  1/2 
  Verifying  : rsyslog7-7.4.7-5.7.el6op.x86_64                              2/2 

Removed:
  rsyslog7.x86_64 0:7.4.7-5.7.el6op                                             
  rsyslog7-mmopenshift.x86_64 0:7.4.7-5.7.el6op                                 

Complete!
INFO: --END /usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms/01-rsyslog7-update OUTPUT--
INFO: /usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms/01-rsyslog7-update ran without error.
<--snip-->

Comment 27 Johnny Liu 2014-10-29 10:40:25 UTC
For upgrade testing:
> * A broker+node host 2.2 upgrade (this isn't nearly as important to test but it's important to know it is an edge case)

Install ose-2.1 all-in-one env, and enable CONF_SYSLOG="broker,console,node,frontend,gears", create app, control app, log functionality is working well.

Before upgrade:
# rpm -qa|grep rsyslog
rsyslog7-7.4.7-5.7.el6op.x86_64
rsyslog7-mmopenshift-7.4.7-5.7.el6op.x86_64
rsyslog-5.8.10-9.el6_6.x86_64


Following ose-21z-22-upgrade-2014-10-28 to test this scenarios.
<--snip-->
INFO: Next step is 'rpms'
INFO: Setting node step 'rpms' status to UPGRADING
WARN: run_upgrade_step_rpms
This may take a while.
INFO: Running upgrade scripts in /usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms
INFO: running /usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms/01-rsyslog7-update:
INFO: --BEGIN OUTPUT--
+ rpm -q rsyslog7-mmopenshift-7.4.7
+ rpm -V rsyslog7
+ chkconfig rsyslog7 --list
+ grep -v :on
+ '[' -d /etc/rsyslog7.d ']'
+ command cp -f /etc/rsyslog7.d/imuxsock-and-openshift-gears.conf /etc/rsyslog7.d/openshift-node-platform.conf /etc/rsyslog.d/
+ cp -f /etc/rsyslog7.d/imuxsock-and-openshift-gears.conf /etc/rsyslog7.d/openshift-node-platform.conf /etc/rsyslog.d/
+ yum shell --disableplugin=priorities -y
Loaded plugins: product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Setting up Yum Shell
> Setting up Remove Process
> Setting up Install Process
> --> Running transaction check
---> Package rsyslog.x86_64 0:5.8.10-9.el6_6 will be erased
---> Package rsyslog7.x86_64 0:7.4.7-5.7.el6op will be updated
---> Package rsyslog7.x86_64 0:7.4.10-3.el6_6 will be an update
--> Processing Dependency: libjson-c.so.2()(64bit) for package: rsyslog7-7.4.10-3.el6_6.x86_64
---> Package rsyslog7-mmopenshift.x86_64 0:7.4.7-5.7.el6op will be updated
---> Package rsyslog7-mmopenshift.x86_64 0:7.4.10-3.el6op will be an update
--> Running transaction check
---> Package json-c.x86_64 0:0.10-3.el6op will be updated
---> Package json-c.x86_64 0:0.11-11.el6 will be an update
--> Finished Dependency Resolution

================================================================================
 Package                Arch     Version          Repository               Size
================================================================================
Updating:
 rsyslog7               x86_64   7.4.10-3.el6_6   rhel6                   1.3 M
 rsyslog7-mmopenshift   x86_64   7.4.10-3.el6op   openshift_infra_extra   146 k
Removing:
 rsyslog                x86_64   5.8.10-9.el6_6   @rhel6                  2.1 M
Updating for dependencies:
 json-c                 x86_64   0.11-11.el6      rhel6                    51 k

Transaction Summary
================================================================================
Upgrade       3 Package(s)
Remove        1 Package(s)

Total download size: 1.5 M
Downloading Packages:
--------------------------------------------------------------------------------
Total                                            20 MB/s | 1.5 MB     00:00     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating   : json-c-0.11-11.el6.x86_64                                    1/7 
  Updating   : rsyslog7-7.4.10-3.el6_6.x86_64                               2/7 
  Updating   : rsyslog7-mmopenshift-7.4.10-3.el6op.x86_64                   3/7 
  Cleanup    : rsyslog7-mmopenshift-7.4.7-5.7.el6op.x86_64                  4/7 
  Cleanup    : rsyslog7-7.4.7-5.7.el6op.x86_64                              5/7 
warning: /etc/rsyslog7.conf saved as /etc/rsyslog7.conf.rpmsave
  Cleanup    : json-c-0.10-3.el6op.x86_64                                   6/7 
  Erasing    : rsyslog-5.8.10-9.el6_6.x86_64                                7/7 
  Verifying  : json-c-0.11-11.el6.x86_64                                    1/7 
  Verifying  : rsyslog7-7.4.10-3.el6_6.x86_64                               2/7 
  Verifying  : rsyslog7-mmopenshift-7.4.10-3.el6op.x86_64                   3/7 
  Verifying  : rsyslog-5.8.10-9.el6_6.x86_64                                4/7 
  Verifying  : rsyslog7-7.4.7-5.7.el6op.x86_64                              5/7 
  Verifying  : rsyslog7-mmopenshift-7.4.7-5.7.el6op.x86_64                  6/7 
  Verifying  : json-c-0.10-3.el6op.x86_64                                   7/7 

Removed:
  rsyslog.x86_64 0:5.8.10-9.el6_6                                               

Updated:
  rsyslog7.x86_64 0:7.4.10-3.el6_6 rsyslog7-mmopenshift.x86_64 0:7.4.10-3.el6op

Dependency Updated:
  json-c.x86_64 0:0.11-11.el6                                                   

Finished Transaction
> Leaving Shell
+ rpm -q rsyslog7-mmopenshift-7.4.7
package rsyslog7-mmopenshift-7.4.7 is not installed
+ conf=/etc/rsyslog.conf
++ date +%Y-%m-%d-%H:%M:%S
+ command cp -f /etc/rsyslog.conf /etc/rsyslog.conf.ugsave.2014-10-29-18:13:51
+ cp -f /etc/rsyslog.conf /etc/rsyslog.conf.ugsave.2014-10-29-18:13:51
+ command cp -f /etc/rsyslog7.conf.rpmsave /etc/rsyslog.conf
+ cp -f /etc/rsyslog7.conf.rpmsave /etc/rsyslog.conf
+ sed -i s/rsyslog7.d/rsyslog.d/ /etc/rsyslog.conf
+ service rsyslog start
Starting system logger:                                    [  OK  ]
INFO: --END /usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms/01-rsyslog7-update OUTPUT--
INFO: /usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms/01-rsyslog7-update ran without error.
<--snip-->

old rsyslog7 and rsyslog7-mmopenshift would be upgraded to new packages, rsyslog7 is from rhel6, rsyslog7-mmopenshift is from ose-2.2 repo.

The log functionality is also work well after upgrade.
The only issue is the same as what mentioned in Comment 25, so I would treat all-in-one upgrade as PASS.
# chkconfig |grep syslog
After reboot,
# /etc/init.d/rsyslog status
rsyslogd is stopped

Comment 28 Brenton Leanhardt 2014-10-29 13:09:23 UTC
(In reply to Johnny Liu from comment #25)
> Following comment 24, though log functionality is working well after
> upgrade, but an issue still exists.
> 
> After ose-upgrade, rsyslog is not added into "chkconfig --list", that means
> once node is reboot, all log functionality would does not work.
> 

I'm going to add 'chkconfig rsyslog on' right after the spot where we start the service.  Seriously, amazing job testing all this.

Comment 30 Johnny Liu 2014-10-30 05:23:40 UTC
About failure mentioned in comment 25, verified it with ose-21z-22-upgrade-2014-10-29, and PASS.

Before upgrade:
# chkconfig |grep rsyslog
rsyslog        	0:off	1:off	2:off	3:off	4:off	5:off	6:off
rsyslog7       	0:off	1:off	2:on	3:on	4:on	5:on	6:off

# ose-upgrade all
<--snip-->
INFO: Next step is 'rpms'
INFO: Setting node step 'rpms' status to UPGRADING
WARN: run_upgrade_step_rpms
This may take a while.
INFO: Running upgrade scripts in /usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms
INFO: running /usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms/01-rsyslog7-update:
INFO: --BEGIN OUTPUT--
+ rpm -q rsyslog7-mmopenshift-7.4.7
+ rpm -V rsyslog7
+ grep -v :on
+ chkconfig rsyslog7 --list
+ '[' -d /etc/rsyslog7.d ']'
+ command cp -f /etc/rsyslog7.d/imuxsock-and-openshift-gears.conf /etc/rsyslog7.d/openshift-node-platform.conf /etc/rsyslog.d/
+ cp -f /etc/rsyslog7.d/imuxsock-and-openshift-gears.conf /etc/rsyslog7.d/openshift-node-platform.conf /etc/rsyslog.d/
+ yum shell --disableplugin=priorities -y
Loaded plugins: product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Setting up Yum Shell
> Setting up Remove Process
> Setting up Install Process
> --> Running transaction check
---> Package rsyslog.x86_64 0:5.8.10-9.el6_6 will be erased
---> Package rsyslog7.x86_64 0:7.4.7-5.7.el6op will be updated
---> Package rsyslog7.x86_64 0:7.4.10-3.el6_6 will be an update
--> Processing Dependency: libjson-c.so.2()(64bit) for package: rsyslog7-7.4.10-3.el6_6.x86_64
---> Package rsyslog7-mmopenshift.x86_64 0:7.4.7-5.7.el6op will be updated
---> Package rsyslog7-mmopenshift.x86_64 0:7.4.10-3.el6op will be an update
--> Running transaction check
---> Package json-c.x86_64 0:0.10-3.el6op will be updated
---> Package json-c.x86_64 0:0.11-11.el6 will be an update
--> Finished Dependency Resolution

================================================================================
 Package                Arch     Version           Repository              Size
================================================================================
Updating:
 rsyslog7               x86_64   7.4.10-3.el6_6    rhel6                  1.3 M
 rsyslog7-mmopenshift   x86_64   7.4.10-3.el6op    openshift_node_extra   146 k
Removing:
 rsyslog                x86_64   5.8.10-9.el6_6    @rhel6                 2.1 M
Updating for dependencies:
 json-c                 x86_64   0.11-11.el6       rhel6                   51 k

Transaction Summary
================================================================================
Upgrade       3 Package(s)
Remove        1 Package(s)

Total download size: 1.5 M
Downloading Packages:
--------------------------------------------------------------------------------
Total                                           791 kB/s | 1.5 MB     00:01     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating   : json-c-0.11-11.el6.x86_64                                    1/7 
  Updating   : rsyslog7-7.4.10-3.el6_6.x86_64                               2/7 
  Updating   : rsyslog7-mmopenshift-7.4.10-3.el6op.x86_64                   3/7 
  Cleanup    : rsyslog7-mmopenshift-7.4.7-5.7.el6op.x86_64                  4/7 
  Cleanup    : rsyslog7-7.4.7-5.7.el6op.x86_64                              5/7 
warning: /etc/rsyslog7.conf saved as /etc/rsyslog7.conf.rpmsave
  Cleanup    : json-c-0.10-3.el6op.x86_64                                   6/7 
  Erasing    : rsyslog-5.8.10-9.el6_6.x86_64                                7/7 
  Verifying  : json-c-0.11-11.el6.x86_64                                    1/7 
  Verifying  : rsyslog7-7.4.10-3.el6_6.x86_64                               2/7 
  Verifying  : rsyslog7-mmopenshift-7.4.10-3.el6op.x86_64                   3/7 
  Verifying  : rsyslog-5.8.10-9.el6_6.x86_64                                4/7 
  Verifying  : rsyslog7-7.4.7-5.7.el6op.x86_64                              5/7 
  Verifying  : rsyslog7-mmopenshift-7.4.7-5.7.el6op.x86_64                  6/7 
  Verifying  : json-c-0.10-3.el6op.x86_64                                   7/7 

Removed:
  rsyslog.x86_64 0:5.8.10-9.el6_6                                               

Updated:
  rsyslog7.x86_64 0:7.4.10-3.el6_6 rsyslog7-mmopenshift.x86_64 0:7.4.10-3.el6op

Dependency Updated:
  json-c.x86_64 0:0.11-11.el6                                                   

Finished Transaction
> Leaving Shell
+ rpm -q rsyslog7-mmopenshift-7.4.7
package rsyslog7-mmopenshift-7.4.7 is not installed
+ conf=/etc/rsyslog.conf
++ date +%Y-%m-%d-%H:%M:%S
+ command cp -f /etc/rsyslog.conf /etc/rsyslog.conf.ugsave.2014-10-30-11:24:52
+ cp -f /etc/rsyslog.conf /etc/rsyslog.conf.ugsave.2014-10-30-11:24:52
+ command cp -f /etc/rsyslog7.conf.rpmsave /etc/rsyslog.conf
+ cp -f /etc/rsyslog7.conf.rpmsave /etc/rsyslog.conf
+ sed -i s/rsyslog7.d/rsyslog.d/ /etc/rsyslog.conf
+ service rsyslog start
Starting system logger:                                    [  OK  ]
+ chkconfig rsyslog on
INFO: --END /usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms/01-rsyslog7-update OUTPUT--
INFO: /usr/lib/ruby/site_ruby/1.8/ose-upgrade/node/upgrades/4/rpms/01-rsyslog7-update ran without error.
<--snip-->

After upgrade, rsyslog7-mmopenshift and rsyslog7 installed in ose-2.1 are ported to the new packages. and rsyslog is added into "chkconfig --list", after reboot, log functionality is working well.
# chkconfig |grep rsyslog
rsyslog        	0:off	1:off	2:on	3:on	4:on	5:on	6:off

Comment 32 errata-xmlrpc 2014-11-03 19:55:41 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHSA-2014-1796.html


Note You need to log in before you can comment on or make changes to this bug.