[libvirt-users] libvirt prepare and start hooks not callled

Sundar Nadathur snadathu at altera.com
Mon Nov 16 12:43:21 UTC 2015

Hello Jirka,
   The script is not even invoked for prepare/start calls, not that it is invoking libvirt APIs or is hanging. When it is invoked for 'started', it runs to completion.

I did notice the warning about talking to libvirt from the hooks. However, if the script were to be invoked, I will only be writing the modified xml to stdout. This is based on:
For migrate and restore calls, "the script acts as a filter and is supposed to modify the domain XML and print it out on its standard output".

I am hoping the same method will work for prepare or start calls. If there is a better way to update the VM's xml before it is launched, please let me know.

Thank you for the response.


-----Original Message-----
From: Jiri Denemark [mailto:jdenemar at redhat.com]
Sent: Monday, November 16, 2015 4:27 AM
To: Sundar Nadathur
Cc: libvirt-users at redhat.com
Subject: Re: [libvirt-users] libvirt prepare and start hooks not callled


On Fri, Nov 13, 2015 at 20:44:15 +0000, Sundar Nadathur wrote:
>    I am using RHEL 7.1 and libvirt 1.2.8. My intention is to intercept
>    the prepare and start hooks of libvirt during VM placement to
>    inject a virtio PCI device into the VM's domain xml.

You are not supposed to talk to libvirtd from any hooks.

> I placed a python script with execute permissions in
> /etc/libvirt/hooks/qemu. In there, I opened a log file to record the
> arguments received:
> log.write("avfd called with args: %s\n" % sys.argv)
> But all I get in the log file is:
> avfd called with args: ['/etc/libvirt/hooks/qemu', 'vm1', 'started',
> 'begin', '-']
> There are no prepare or start calls. Can somebody explain what it takes to fix this?

If you're trying to update the domain's configuration from the hook, you caused a deadlock between libvirt and your hook. Thus your hook script will never finish and libvirtd will be waiting for the hook to finish and it will never start the domain.



Confidentiality Notice.
This message may contain information that is confidential or otherwise protected from disclosure. If you are not the intended recipient, you are hereby notified that any use, disclosure, dissemination, distribution, or copying of this message, or any attachments, is strictly prohibited. If you have received this message in error, please advise the sender by reply e-mail, and delete the message and any attachments. Thank you.

More information about the libvirt-users mailing list