Bug 771454

Summary: install_initd fails to install services with dependencies
Product: Red Hat Enterprise Linux 6 Reporter: Bill Nottingham <notting>
Component: chkconfigAssignee: Bill Nottingham <notting>
Status: CLOSED ERRATA QA Contact: Martin Cermak <mcermak>
Severity: high Docs Contact:
Priority: medium    
Version: 6.2CC: azelinka, mcermak, rvokal
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
If a LSB init script had Required-Start dependencies, but was not configured to start in any runlevel, the dependencies would be incorrectly applied and script installation could fail. chkconfig has been fixed to not strictly enforce Required-Start dependencies for installation if the service is not configured to start in any runlevel, and now such scripts install correctly.
Story Points: ---
Clone Of: 750446 Environment:
Last Closed: 2012-06-20 14:04:03 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Bill Nottingham 2012-01-03 19:57:35 UTC
+++ This bug was initially created as a clone of Bug #750446 +++

Description of problem:
Running '/usr/lib/lsb/install_initd <service>' fails silently when installing services which have Required-Start dependencies.

Version-Release number of selected component (if applicable):
chkconfig-1.3.52-1.fc15.x86_64

How reproducible:
Always

Steps to Reproduce:
Run (for example) /usr/lib/lsb/install_initd openvpn.

Actual results:
chkconfig returns non-zero without installing the service

Expected results:
Service should be able to be installed using this method, as per LSB spec.

Additional info:
Removing the Required-Start line from the service script seems to allow things to be installed. Similar bug reports have been made multiple times previously (bug #632294, bug #508213, bug #647200) but the problem still persists in F15.

--- Additional comment from notting on 2011-11-01 11:26:06 EDT ---

This particular issue is related to openvpn being disabled by default:

http://git.fedorahosted.org/git/?p=chkconfig.git;a=commitdiff;h=b65befc48af6c2b1e20717ac015d9dc7cafffbef

should fix it. (There are other issues with systemd integration looming, though.)

--- Additional comment from aaron+rh on 2011-11-02 05:04:08 EDT ---

I'm not sure this resolves things completely. After applying the patch, I still have the same problem with init scripts which specify Default-Start/Default-Stop. For example, '/usr/lib/lsb/install_initd pcscd' still fails in the same way.

When you say the service is 'disabled by default', do you mean disabled in systemd, or just that the init script is missing the Default-Start/Default-Stop directives?

--- Additional comment from notting on 2011-11-02 14:06:40 EDT ---

(In reply to comment #2)
> I'm not sure this resolves things completely. After applying the patch, I still
> have the same problem with init scripts which specify
> Default-Start/Default-Stop. For example, '/usr/lib/lsb/install_initd pcscd'
> still fails in the same way.

I can't reproduce this here, as long as I'm running a version of rsyslog with SysV start links in /etc/rc*.d. (See my second comment about other issues with systemd integration). It properly enables the service assuming all of rsyslog, netfs, and haldaemon are enabled.

> When you say the service is 'disabled by default', do you mean disabled in
> systemd, or just that the init script is missing the Default-Start/Default-Stop
> directives?

With no Default-Start line, it's presumed to not start in any runlevels, aka, disabled by default. In this case, strictly enforcing Required-Start dependencies is pointless.

If I may ask, why are you using install_initd? The fact that the LSB specification requires failure on any dependency issues is one of the things that makes using that as the interface problematic.

--- Additional comment from aaron+rh on 2011-11-04 04:51:55 EDT ---

>With no Default-Start line, it's presumed to not start in any runlevels, aka,
>disabled by default. In this case, strictly enforcing Required-Start
>dependencies is pointless.

Okay, makes sense.

>If I may ask, why are you using install_initd? The fact that the LSB
>specification requires failure on any dependency issues is one of the things
>that makes using that as the interface problematic.

We are using it as part of an RPM %post script to install a service. This service only requires that $network is available, but seems to fail on systems that use systemd.

--- Additional comment from notting on 2011-11-04 12:28:28 EDT ---

If it's using the default setup, where NetworkManager is a systemd service, and /etc/init.d/network is disabled, chkconfig won't see anything providing $network, and therefore it will throw an error. This is a bug (chkconfig can't/won't find provides from systemd services), but it's not a quick fix.

--- Additional comment from aaron+rh on 2011-11-07 03:04:07 EST ---

I see. Is there already a bug open for this?

--- Additional comment from notting on 2011-11-07 11:33:28 EST ---

There is now! (751811)

Comment 2 Bill Nottingham 2012-02-24 19:36:50 UTC
Built as 1.3.49.3-1.

Comment 4 Bill Nottingham 2012-03-14 19:38:22 UTC
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
If a LSB init script had Required-Start dependencies, but was not configured to start in any runlevel, the dependencies would be incorrectly applied and script installation could fail. chkconfig has been fixed to not strictly enforce Required-Start dependencies for installation if the service is not configured to start in any runlevel, and now such scripts install correctly.

Comment 7 errata-xmlrpc 2012-06-20 14:04:03 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.

http://rhn.redhat.com/errata/RHBA-2012-0873.html