Bug 681340

Summary: chkconfig stops working after installing cluster-glue package
Product: [openSUSE] openSUSE 11.4 Reporter: Giacomo Comes <comes>
Component: NetworkAssignee: Tim Serong <tserong>
Status: RESOLVED WONTFIX QA Contact: E-mail List <qa-bugs>
Severity: Minor    
Priority: P5 - None CC: comes, norm, werner
Version: Final   
Target Milestone: ---   
Hardware: PC   
OS: All   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Giacomo Comes 2011-03-21 16:51:51 UTC
User-Agent:       Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.2) Gecko/20070221 SeaMonkey/1.1.1

After installing cluster-glue package the command chkconfig <service> on
aborts with the following error:
insserv: FATAL: service network is missed in the runlevels 2 4 to use service ha_logd
insserv: FATAL: service syslog is missed in the runlevels 4 to use service ha_logd
insserv: exiting now!
/sbin/insserv failed, exit code 1

if I remove cluster-glue or if I disable the logd service (chkconfig logd off)
then chkconfig <service> on works again.

Reproducible: Always

Steps to Reproduce:
1. zypper in cluster-glue
2. chkconfig <any_service> on
3.
Actual Results:  
command chkconfig <service> on fails

Expected Results:  
command chkconfig <service> on should succeed
Comment 1 Giacomo Comes 2011-04-11 19:19:26 UTC
After upgrading insserv to version 1.14.0-20.24.1 the command 
  chkconfig <service> on 
does not abort anymore. It only prints this message:

insserv: service network is missed in the runlevels 2 4 to use service ha_logd
insserv: service syslog is missed in the runlevels 4 to use service ha_logd
Comment 2 Dr. Werner Fink 2011-08-09 08:34:53 UTC
bugowner of network:ha-clustering:Factory -- tserong@novell.com
Comment 3 Dejan Muhamedagic 2011-08-23 17:43:47 UTC
Tim, I guess that this is distribution specific, right?
Comment 4 Tim Serong 2011-08-24 03:14:10 UTC
Possibly specific to SUSE-based distros :)  AFAICT this manifested due to changes in insserv - it's now being more pedantic than it used to be.  The logd init script says:

### BEGIN INIT INFO
# Description: ha_logd is a non-blocking logging daemon.
#       It can log messages either to a file or through syslog
#       daemon.
# Short-Description: ha_logd logging daemon
# Provides: ha_logd
# Required-Start: $network $syslog $remote_fs
# Required-Stop: $network $syslog $remote_fs
# X-Start-Before: heartbeat openais corosync
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
### END INIT INFO

But, $network only runs by default in runlevels 3 and 5 (not 2), and runlevel 4 is disabled by default on *SUSE, hence the insserv warning/error.  This is all true on SLES as well, it's just that insserv doesn't complain there.

Coolo already fixed this in cluster-glue in 12.1/Factory (and in network:ha-clustering and network:ha-clustering:Factory) as follows:

Index: cluster-glue/logd/logd.in
===================================================================
--- cluster-glue.orig/logd/logd.in	2011-01-31 10:15:04.000000000 +0100
+++ cluster-glue/logd/logd.in	2011-03-11 09:04:58.627390876 +0100
@@ -28,7 +28,7 @@
 # Required-Start: $network $syslog $remote_fs
 # Required-Stop: $network $syslog $remote_fs
 # X-Start-Before: heartbeat openais corosync
-# Default-Start: 2 3 4 5
+# Default-Start: 3 5
 # Default-Stop: 0 1 6
 ### END INIT INFO

Given this is non-fatal on 11.4 when using the latest insserv, and fixed elsewhere (network:ha-clustering, 12.1/Factory), I'd suggest we leave this one alone.
Comment 5 Tim Serong 2011-08-24 04:49:42 UTC
(In reply to comment #4)
> But, $network only runs by default in runlevels 3 and 5 (not 2), and runlevel 4
> is disabled by default on *SUSE, hence the insserv warning/error.  This is all
> true on SLES as well, it's just that insserv doesn't complain there.

Correction, just for the record: SLES apparently starts network in runlevels 2, 3 and 5, so that's *not* the same.  But runlevel 4 being disabled/unused/reserved is true in all cases.