Bug 677209 - hooks daemon script can not be executed when first shutdown libvirtd service
Summary: hooks daemon script can not be executed when first shutdown libvirtd service
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: libvirt
Version: 6.1
Hardware: x86_64
OS: Linux
medium
medium
Target Milestone: rc
: ---
Assignee: Osier Yang
QA Contact: Virtualization Bugs
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-02-14 03:03 UTC by weizhang
Modified: 2014-03-27 01:02 UTC (History)
7 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-02-14 07:22:38 UTC
Target Upstream Version:


Attachments (Terms of Use)

Description weizhang 2011-02-14 03:03:58 UTC
Description of problem:
when first add hooks daemon script on /etc/libvirt/hooks/ and then shutdown the libvirtd service, hooks daemon script can not be executed.
# cat /etc/libvirt/hooks/daemon 
#! /bin/bash
echo "$0" "$@" \
>> /tmp/daemon.log
exit 0
 
After shutdown, no message like "/etc/libvirt/hooks/daemon - shutdown - shutdown" exists on /tmp/daemon.log

I find it comes from the function virHookCall()
...
    if ((virHooksFound == -1) ||
        ((driver == VIR_HOOK_DRIVER_DAEMON) &&
         (op == VIR_HOOK_DAEMON_OP_RELOAD)))
        virHookInitialize();
...

when libvirtd started, the virHookInitialize() has already changed the virHooksFound to 0, so here it should be 
...
if ((virHooksFound == 0) ||
        ((driver == VIR_HOOK_DRIVER_DAEMON) &&
         (op == VIR_HOOK_DAEMON_OP_RELOAD)))
        virHookInitialize();
...
Version-Release number of selected component (if applicable):
libvirt-0.8.7-6.el6.x86_64

How reproducible:
always

Steps to Reproduce:
1.start libvirtd service with no daemon script writting
2.writting /etc/libvirt/hooks/daemon with
#! /bin/bash
echo "$0" "$@" \
>> /tmp/daemon.log
exit 0

3.run #service libvirtd stop
  
Actual results:
no log in /tmp/daemon.log 

Expected results:
has log in /tmp/daemon.log
/etc/libvirt/hooks/daemon - shutdown - shutdown

Additional info:

Comment 2 Osier Yang 2011-02-14 07:22:38 UTC
It's expectd by design. You need to "restart" or "reload" libvirtd so that it could known there are new hook script. Otherwise libvirtd won't known.


Note You need to log in before you can comment on or make changes to this bug.