Bug 1390341 - rhn-migrate-classic-to-rhsm is failing to stop and disable services
Summary: rhn-migrate-classic-to-rhsm is failing to stop and disable services
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: subscription-manager
Version: 6.9
Hardware: Unspecified
OS: Unspecified
high
medium
Target Milestone: rc
: ---
Assignee: Kevin Howell
QA Contact: John Sefler
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-10-31 18:17 UTC by John Sefler
Modified: 2017-03-21 10:56 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2017-03-21 10:56:42 UTC
Target Upstream Version:


Attachments (Terms of Use)


Links
System ID Priority Status Summary Last Updated
Github candlepin subscription-manager pull 1516 None None None 2016-11-08 20:05:41 UTC
Red Hat Product Errata RHSA-2017:0698 normal SHIPPED_LIVE Moderate: subscription-manager security, bug fix, and enhancement update 2017-03-21 12:39:12 UTC

Description John Sefler 2016-10-31 18:17:11 UTC
Description of problem:
Newly introduced by RFE Bug 1185914 is an automatic feature that stops and disables services [osad,rhnsd].  Unfortunately it appears to stop and disable services a little too aggressively which throws errors in the output...  See reproducer.

I'd propose that the logic be changed for stopping and disabling services to pseudo code like this...

for each package p in [osad,rhnsd] {
    if package $p is installed, then {
        if service $p is running, then {
            service $p stop
        }
        chkconfig $p off
    }
}


Version-Release number of selected component (if applicable):
[root@jsefler-rhel6 ~]# rpm -q subscription-manager-migration
subscription-manager-migration-1.18.3-1.el6.x86_64


How reproducible:


Steps to Reproduce:
[root@jsefler-rhel6 ~]# rhnreg_ks --serverUrl=https://rhsm-sat5.usersys.redhat.com/XMLRPC --username=rhsm-client --password=password --profilename=rhsm-automation.jsefler-rhel6.usersys.redhat.com --force --norhnsd --nohardware --nopackages --novirtinfo
[root@jsefler-rhel6 ~]# 
[root@jsefler-rhel6 ~]# 
[root@jsefler-rhel6 ~]# service osad status
osad is stopped
[root@jsefler-rhel6 ~]# service rhnsd status
rhnsd is stopped
[root@jsefler-rhel6 ~]# 
[root@jsefler-rhel6 ~]# 
[root@jsefler-rhel6 ~]# chkconfig --list osad
osad           	0:off	1:off	2:on	3:on	4:on	5:on	6:off
[root@jsefler-rhel6 ~]# chkconfig --list rhnsd
rhnsd          	0:off	1:off	2:on	3:on	4:on	5:on	6:off
[root@jsefler-rhel6 ~]# 
[root@jsefler-rhel6 ~]# rhn-migrate-classic-to-rhsm
Legacy username: rhsm-client
Legacy password: 
Destination username: testuser1 
Destination password: 
Org: admin

Retrieving existing legacy subscription information...

+-----------------------------------------------------+
System is currently subscribed to these legacy channels:
+-----------------------------------------------------+
rhel-x86_64-server-6

+-----------------------------------------------------+
Installing product certificates for these legacy channels:
+-----------------------------------------------------+
rhel-x86_64-server-6

Product certificates installed successfully to /etc/pki/product.

Preparing to unregister system from legacy server...
System successfully unregistered from legacy server.
Stopping and disabling legacy services...
Shutting down osad:                                        [FAILED]
Usage: /etc/init.d/osad {start|stop|restart|reload|status|condrestart}

Attempting to register system to destination server...
Registering to: jsefler-candlepin.usersys.redhat.com:8443/candlepin
The system has been registered with ID: bc1ab642-89f3-4f33-97c3-c791bed03796 

Installed Product Current Status:
Product Name: Red Hat Enterprise Linux Server
Status:       Not Subscribed

Unable to find available subscriptions for all your installed products.
System 'jsefler-rhel6.usersys.redhat.com' successfully registered.

[root@jsefler-rhel6 ~]# 



Actual results:
Stopping and disabling legacy services...
Shutting down osad:                                        [FAILED]
Usage: /etc/init.d/osad {start|stop|restart|reload|status|condrestart}


Expected results:
In this case since the service was already stopped, there would not have been any feedback in the rhn-migrate-classic-to-rhsm output.
Then the call to 'chkconfig osad off' would pass (also with no output)
Moreover, I think the current implementation is calling 'service osad disable' instead of 'chkconfig osad off'
[root@jsefler-rhel6 ~]# service osad disable
Usage: /etc/init.d/osad {start|stop|restart|reload|status|condrestart}


Additional info:

Comment 1 John Sefler 2016-10-31 18:28:03 UTC
Note: In the current implementation, if one of the packages is not installed, you'll get questionable feedback like this:

Preparing to unregister system from legacy server...
System successfully unregistered from legacy server.
Stopping and disabling legacy services...
osad: unrecognized service
osad: unrecognized service


Using the proposed logic in comment 0, you'll avoid the "unrecognized service".

Comment 4 Chris Snyder 2016-11-16 19:10:00 UTC
Fixed upstream. Moving to POST.

Comment 6 John Sefler 2016-12-13 20:43:44 UTC
Verifying Version...
[root@jsefler-rhel6 ~]# rpm -q subscription-manager-migration
subscription-manager-migration-1.18.6-1.el6.x86_64

With these classic packages installed...
[root@jsefler-rhel6 ~]# rpm -q osad rhnsd
osad-5.11.44-5.el6sat.noarch
rhnsd-4.9.3-5.el6.x86_64

[root@jsefler-rhel6 ~]# rhnreg_ks --serverUrl=https://rhsm-sat5.usersys.redhat.com/XMLRPC --username=rhsm-client --password=password --profilename=rhsm-automation.jsefler-rhel6.usersys.redhat.com --force --norhnsd --nohardware --nopackages --novirtinfo
[root@jsefler-rhel6 ~]# 
[root@jsefler-rhel6 ~]# 
[root@jsefler-rhel6 ~]# service osad status
osad is stopped
[root@jsefler-rhel6 ~]# service rhnsd status
rhnsd (pid  13167) is running...
[root@jsefler-rhel6 ~]# 
[root@jsefler-rhel6 ~]# 
[root@jsefler-rhel6 ~]# chkconfig --list osad
osad           	0:off	1:off	2:on	3:on	4:on	5:on	6:off
[root@jsefler-rhel6 ~]# chkconfig --list rhnsd
rhnsd          	0:off	1:off	2:on	3:on	4:on	5:on	6:off
[root@jsefler-rhel6 ~]# 
[root@jsefler-rhel6 ~]# 
[root@jsefler-rhel6 ~]# rhn-migrate-classic-to-rhsm --destination-url=subscription.rhsm.stage.redhat.com:443/subscription
Legacy username: rhsm-client
Legacy password: 
Destination username: qa@redhat.com
Destination password: 

Retrieving existing legacy subscription information...

+-----------------------------------------------------+
System is currently subscribed to these legacy channels:
+-----------------------------------------------------+
rhel-x86_64-server-6

+-----------------------------------------------------+
Installing product certificates for these legacy channels:
+-----------------------------------------------------+
rhel-x86_64-server-6

Product certificates installed successfully to /etc/pki/product.

Preparing to unregister system from legacy server...
System successfully unregistered from legacy server.
Stopping and disabling legacy services...

Attempting to register system to destination server...
Registering to: subscription.rhsm.stage.redhat.com:443/subscription
The system has been registered with ID: f8e50646-e66f-40c7-ae18-32f4ecbd1e20 

Installed Product Current Status:
Product Name: Red Hat Enterprise Linux Server
Status:       Subscribed

System 'jsefler-rhel6.usersys.redhat.com' successfully registered.

[root@jsefler-rhel6 ~]# 
[root@jsefler-rhel6 ~]# chkconfig --list rhnsd
rhnsd          	0:off	1:off	2:off	3:off	4:off	5:off	6:off
[root@jsefler-rhel6 ~]# chkconfig --list osad
osad           	0:off	1:off	2:off	3:off	4:off	5:off	6:off
[root@jsefler-rhel6 ~]# 

VERIFIED:  a FAILURE is no longer encountered when "Stopping and disabling legacy services".  In fact, both the chkconfig of rhnsd and osad were disabled after the migration was completed.


--------------------------------------------------------

Let's verify again without one of the classic packages installed (let's remove osad and verify rhn-migrate-classic-to-rhsm is successful)... 


[root@jsefler-rhel6 ~]# subscription-manager unregister 
System has been unregistered.
[root@jsefler-rhel6 ~]# 
[root@jsefler-rhel6 ~]# yum remove --quiet --assumeyes osad
[root@jsefler-rhel6 ~]# 
[root@jsefler-rhel6 ~]# chkconfig rhnsd on
[root@jsefler-rhel6 ~]# chkconfig --list rhnsd
rhnsd          	0:off	1:off	2:on	3:on	4:on	5:on	6:off
[root@jsefler-rhel6 ~]# 
[root@jsefler-rhel6 ~]# 
[root@jsefler-rhel6 ~]# rhnreg_ks --serverUrl=https://rhsm-sat5.usersys.redhat.com/XMLRPC --username=rhsm-client --password=password --profilename=rhsm-automation.jsefler-rhel6.usersys.redhat.com --force --norhnsd --nohardware --nopackages --novirtinfo
[root@jsefler-rhel6 ~]# 
[root@jsefler-rhel6 ~]# 
[root@jsefler-rhel6 ~]# service osad status
osad: unrecognized service
[root@jsefler-rhel6 ~]# service rhnsd status
rhnsd (pid  13167) is running...
[root@jsefler-rhel6 ~]# 
[root@jsefler-rhel6 ~]# 
[root@jsefler-rhel6 ~]# chkconfig --list osad
error reading information on service osad: No such file or directory
[root@jsefler-rhel6 ~]# chkconfig --list rhnsd
rhnsd          	0:off	1:off	2:on	3:on	4:on	5:on	6:off
[root@jsefler-rhel6 ~]# 
[root@jsefler-rhel6 ~]# 
[root@jsefler-rhel6 ~]# 
[root@jsefler-rhel6 ~]# rhn-migrate-classic-to-rhsm --destination-url=subscription.rhsm.stage.redhat.com:443/subscription
Legacy username: rhsm-client
Legacy password: 
Destination username: qa@redhat.com
Destination password: 

Retrieving existing legacy subscription information...

+-----------------------------------------------------+
System is currently subscribed to these legacy channels:
+-----------------------------------------------------+
rhel-x86_64-server-6

+-----------------------------------------------------+
Installing product certificates for these legacy channels:
+-----------------------------------------------------+
rhel-x86_64-server-6

Product certificates installed successfully to /etc/pki/product.

Preparing to unregister system from legacy server...
System successfully unregistered from legacy server.
Stopping and disabling legacy services...

Attempting to register system to destination server...
Registering to: subscription.rhsm.stage.redhat.com:443/subscription
The system has been registered with ID: 0ca601ae-a3ad-41ee-aa50-88378a8612d7 

Installed Product Current Status:
Product Name: Red Hat Enterprise Linux Server
Status:       Subscribed

System 'jsefler-rhel6.usersys.redhat.com' successfully registered.

[root@jsefler-rhel6 ~]# 
[root@jsefler-rhel6 ~]# chkconfig --list osad
error reading information on service osad: No such file or directory
[root@jsefler-rhel6 ~]# chkconfig --list rhnsd
rhnsd          	0:off	1:off	2:off	3:off	4:off	5:off	6:off
[root@jsefler-rhel6 ~]# 


VERIFIED: Even with one of the classic packages (osad) not installed, rhn-migrate-classic-to-rhsm was graceful "Stopping and disabling legacy services...".  No FAILURES encountered.

Comment 8 errata-xmlrpc 2017-03-21 10:56:42 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-2017-0698.html


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