Bug 786865

Summary: aeolus-conductor initscript doesn't report proper status after a failed exit
Product: [Retired] CloudForms Cloud Engine Reporter: James Laska <jlaska>
Component: aeolus-conductorAssignee: Angus Thomas <athomas>
Status: CLOSED CURRENTRELEASE QA Contact: wes hayutin <whayutin>
Severity: low Docs Contact:
Priority: unspecified    
Version: 1.0.0CC: akarol, deltacloud-maint, jguiditt, jturner, ssachdev
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-08-30 17:13:46 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 James Laska 2012-02-02 15:41:11 UTC
Description of problem:

The aeolus-conductor initscript doesn't report the proper status if thin has failed for some reason.


Additionally, the initscript does not make use of a LOCKFILE (expected for proper service shutdown on system reboot/halt).

I have submitted a pull request upstream to resolve this issue https://github.com/aeolusproject/conductor/pull/1

Version-Release number of selected component (if applicable):
 * aeolus-conductor-0.8.0-17.el6.noarch

How reproducible:
 * easy

Steps to Reproduce:
1. Start aeolus-conductor
2. Wait for thin to fail for some reason, or kill it
3. service aeolus-conductor status
  
Actual results:

# service aeolus-conductor status
 is stopped

Expected results:

# service aeolus-conductor status
aeolus-conductor dead but subsys locked

Additional info:

 * While the impact of this issue is low, I'm escalating as a nice-to-have fix for cloudforms 1.0.  A tested fix is available.

Comment 1 James Laska 2012-02-03 15:11:45 UTC
Easy to recreate and test, I'm adding a qa_ack+ for cloudforms-1.0.0

Comment 2 James Laska 2012-02-03 15:24:59 UTC
Patches POSTed for review at https://fedorahosted.org/pipermail/aeolus-devel/2012-February/008619.html

Comment 3 Jason Guiditta 2012-02-03 20:49:40 UTC
commit 86c1cbe423400d63ca35c96cc1a0bb8bbb745720
Author: James Laska <jlaska>
Date:   Fri Feb 3 12:31:22 2012 -0500

    BZ 786865: Add THIN_LOCKFILE for improved service shutdown and status
    
    https://bugzilla.redhat.com/show_bug.cgi?id=786865
    
    In the event that the thin process has died for some reason, service
    status will report:
    
    > # service aeolus-conductor status
    > is stopped
    
    The use of a LOCKFILE corrects the output, in addition to improved
    handling during system shutdown (/etc/init.d/killall):
    
    > # service aeolus-conductor status
    > aeolus-conductor dead but subsys locked

Comment 4 wes hayutin 2012-02-10 20:03:47 UTC
[root@qeblade32 yum.repos.d]# /etc/init.d/aeolus-conductor status
thin (pid  4268) is running...
[root@qeblade32 yum.repos.d]# ps -ef |grep thin
nobody    3983     1  0 11:52 ?        00:00:39 thin server (localhost:3002) [deltacloud-mock]                                                                                                                 
aeolus    4268     1  0 11:52 ?        00:00:34 thin server (127.0.0.1:3000)                                                                                                                                                                                                                                         
root      9079 16622  0 15:02 pts/0    00:00:00 grep thin
[root@qeblade32 yum.repos.d]# kill -9 4268
[root@qeblade32 yum.repos.d]# /etc/init.d/aeolus-conductor status
thin dead but pid file exists
[root@qeblade32 yum.repos.d]# 

root@qeblade32 yum.repos.d]# /etc/init.d/aeolus-conductor restart
Shutting down thin: [FAILED]
Starting thin: [  OK  ]
[root@qeblade32 yum.repos.d]# ps -ef | grep thin
nobody    3983     1  0 11:52 ?        00:00:39 thin server (localhost:3002) [deltacloud-mock]                                                                                                                 
aeolus    9093     1 59 15:03 ?        00:00:07 thin server (127.0.0.1:3000)                                                                                                                                                                                                                                         
root      9114 16622  0 15:03 pts/0    00:00:00 grep thin

[root@qeblade32 yum.repos.d]# rpm -qa | grep aeolus
aeolus-conductor-daemons-0.8.0-25.el6.noarch
aeolus-conductor-doc-0.8.0-25.el6.noarch
aeolus-configure-2.5.0-12.el6.noarch
rubygem-aeolus-image-0.3.0-7.el6.noarch
aeolus-conductor-0.8.0-25.el6.noarch
rubygem-aeolus-cli-0.3.0-8.el6.noarch
aeolus-all-0.8.0-25.el6.noarch
[root@qeblade32 yum.repos.d]#