Bug 1711171

Summary: `alternatives --set python /usr/bin/python2` fails with ecode 2 and no explanation on stderr
Product: Red Hat Enterprise Linux 7 Reporter: Jiri Danek <jdanek>
Component: chkconfigAssignee: Jan Macku <jamacku>
Status: CLOSED ERRATA QA Contact: Daniel Rusek <drusek>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 7.7CC: drusek, jamacku, pematous, pviktori, rkubis
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: chkconfig-1.7.6-1.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 1820089 (view as bug list) Environment:
Last Closed: 2020-09-29 19:43:47 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1820089    

Description Jiri Danek 2019-05-17 07:12:56 UTC
Description of problem:

When I spin up fresh RHEL-7.7-20190514.2 qcow image in OpenStack and run

alternatives --set python /usr/bin/python2

I get no error message printed and the return value of the above command is 2.

This is a bug because of the following promise from the man page of alternatives

"
DIAGNOSTICS
       alternatives chatters incessantly about its activities on its standard output channel.  If problems occur, alternatives outputs  error  messages
       on its standard error channel and returns an exit status of 2.  These diagnostics should be self-explanatory; if you do not find them so, please
       report this as a bug.
"

If I run with --verbose, I get

[root@host-10-0-132-192 ~]#   alternatives --set python /usr/bin/python2 --verbose
reading /var/lib/alternatives/python

[root@host-10-0-132-192 ~]# ls /var/lib/alternatives/python
ls: cannot access /var/lib/alternatives/python: No such file or directory

I can fix this by issuing

/usr/sbin/alternatives --install /usr/bin/python python /usr/bin/python2 1

Version-Release number of selected component (if applicable):

[root@host-10-0-132-192 ~]# alternatives --version
alternatives version 1.7.4

How reproducible:

Always
Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

Comment 2 Petr Viktorin (pviktori) 2019-05-17 09:40:33 UTC
In RHEL 7, there are no alternatives for python; /usr/bin/python is always Python 2. The same issue happens with any missing alternative:

    alternatives --set foo /bar

Changing component to chkconfig.

Comment 3 Jan Macku 2020-04-02 08:55:23 UTC
Upstream PR: https://github.com/fedora-sysv/chkconfig/pull/36

This bug will be fixed in RHEL 7.9

Comment 9 errata-xmlrpc 2020-09-29 19:43:47 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 (chkconfig bug fix and enhancement update), 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://access.redhat.com/errata/RHBA-2020:3890