Bug 1186724

Summary: numad initscript confuses daemon function
Product: Red Hat Enterprise Linux 6 Reporter: Filip Krska <fkrska>
Component: numadAssignee: Jan Synacek <jsynacek>
Status: CLOSED ERRATA QA Contact: qe-baseos-daemons
Severity: medium Docs Contact:
Priority: medium    
Version: 6.6CC: bgray, jscotka, jsynacek, mgaykar, psklenar, tlavigne
Target Milestone: rcKeywords: EasyFix, Patch, Reproducer
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-07-22 07:46:27 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:
Attachments:
Description Flags
remove quotes around daemon() parameters jsynacek: review+

Description Filip Krska 2015-01-28 12:07:56 UTC
Created attachment 985108 [details]
remove quotes around daemon() parameters

Description of problem:

/etc/init.d/numad calls

    daemon "$exec -i $INTERVAL"

upon start().

This confuses daemon() and subsequently __pids_var_run() function and leads to bogus error messages:

Starting numad: /usr/bin/dirname: extra operand `-i'
Try `/usr/bin/dirname --help' for more information.


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

numad-0.5-11.20140620git.el6.x86_64
initscripts-9.03.46-1.el6.x86_64

How reproducible:

Always

Steps to Reproduce:
1. # service numad (re)?start


Actual results:

Starting numad: /usr/bin/dirname: extra operand `-i'
Try `/usr/bin/dirname --help' for more information.
                                                           [  OK  ]

Expected results:

Starting numad:                                            [  OK  ]

Additional info:

Doesn't reproduce with initscripts-9.03.40-2.el6_5.4, bug is triggered by patch:

- init.d/functions: check parent dir of pid file for accessibility

 __pids_var_run() {
 	local base=${1##*/}
 	local pid_file=${2:-/var/run/$base.pid}
-	local pid_dir=$(/usr/bin/dirname $pid_file)
 	local binary=$3
 
-	[ -d "$pid_dir" -a ! -r "$pid_dir" ] && return 4
-
 	pid=
 	if [ -f "$pid_file" ] ; then
 	        local line p

Patch removing quotes attached. I'll check the initscripts package, daemon() and __pids_var_run() functions should be more robust IMHO as well.

Comment 1 Jan Synacek 2015-01-29 07:49:28 UTC
Sounds reasonable to me, although I don't know how daemon() should work, the added quotes are probably right.

Comment 2 Jan Synacek 2015-01-29 07:51:36 UTC
...I mean, the change that *removes* the quotes is probably right.

Comment 7 errata-xmlrpc 2015-07-22 07:46:27 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/RHBA-2015-1441.html