Bug 1210707

Summary: The default path '/etc/qemu/fsfreeze-hook' for 'fsfreeze-hook' script doesn't exist
Product: Red Hat Enterprise Linux 7 Reporter: Gu Nini <ngu>
Component: qemu-guest-agentAssignee: Miroslav Rezanina <mrezanin>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.2CC: dgibson, hhuang, huding, juzhang, michen, virt-maint, xfu, xuhan, ypu, zhengtli
Target Milestone: rc   
Target Release: ---   
Hardware: All   
OS: Unspecified   
Whiteboard:
Fixed In Version: qemu-guest-agent-2.3.0-2.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1213233 (view as bug list) Environment:
Last Closed: 2015-11-19 07:10:52 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:
Bug Depends On:    
Bug Blocks: 1213233    

Description Gu Nini 2015-04-10 12:01:25 UTC
Description of problem:
At present, on a rhel7.2 host, the default path for script 'fsfreeze-hook' is '/etc/qemu/fsfreeze-hook', which doesn't exist on the guest

Version-Release number of selected component (if applicable):
Host kernel: 3.10.0-234.el7.ppc64
Qemu-kvm: qemu-kvm-rhev-2.2.0-8.el7.ppc64
Guest kernel: 2.6.32-548.el6.ppc64/3.10.0-229.el7.ppc64
Guest agent: 0.12.1.2-2.465.el6.ppc64/2.1.0-4.el7.ppc64

How reproducible:
100%

Steps to Reproduce:
1. Start a guest with virtio serial guest agent by qemu cmd
2. In the guest, install guest agent, and set 'FSFREEZE_HOOK_ENABLE=1' in file '/etc/sysconfig/qemu-ga' for the rhel6.7 guest
3. In the guest, start the guest agent with following cmd:
# qemu-ga --method virtio-serial --path /dev/virtio-ports/org.qemu.guest_agent.0 -F
4. In the guest, issue command:
# qemu-ga --help'
# rpm -ql qemu-guest-agent
5. In the host, connect to the guest agent channel with cmd 'nc -U' and issue cmd 'fsfreeze' cmd there:
# nc -U /var/lib/libvirt/qemu/channel/target/virtioqcow-0323.qemu.guest_agent.0
{"execute":"guest-fsfreeze-freeze"}


Actual results:
In step3, the guest agent could be started;
In step4, from the help output, it can be seen that the default path for script 'fsfreeze-hook' is '/etc/qemu/fsfreeze-hook'; while from 'rpm -ql' output, there is not the path, it's '/usr/libexec/qemu-ga/fsfreeze-hook' in rhel6.7 guest and '/etc/qemu-ga/fsfreeze-hook' in rhel7.2 guest instead;
In step5, the 'fsfreeze' command fails for could not find the script path

Expected results:
The default path is the correct one, and 'qemu-ga --help' should be updated correspondingly

Additional info:

Comment 2 David Gibson 2015-05-01 02:01:13 UTC
Doesn't appear to be ppc specific, reassigning to default maintainer.

Comment 3 Marc-Andre Lureau 2015-07-05 14:43:46 UTC
see bug 1213233 for build solution, reassigning

Comment 4 Miroslav Rezanina 2015-07-13 08:16:03 UTC
Fix included in qemu-guest-agent-2.3.0-2.el7

Comment 6 huiqingding 2015-07-21 05:37:04 UTC
Reproduce this bug using the following version:
Host:
kernel-3.10.0-292.el7.x86_64
qemu-kvm-rhev-2.3.0-12.el7.x86_64

Guest:
kernel-3.10.0-295.el7.x86_64
qemu-guest-agent-2.3.0-1.el7.x86_64

Steps to reproduce:
1. Start a guest with virtio serial guest agent
/usr/libexec/qemu-kvm -cpu SandyBridge -machine pc-i440fx-rhel7.2.0 -enable-kvm -m 4096 -smp 2,sockets=1,cores=2,threads=1 -name rhel7base -drive file=/home/rhel7.2.qcow2,if=none,id=drive-virtio-disk0,format=qcow2,werror=stop,rerror=stop,aio=native,cache.direct=on -device virtio-blk-pci,drive=drive-virtio-disk0,id=virtio-disk0 -boot menu=on -monitor stdio -netdev tap,id=hostnet0,vhost=on,script=/etc/qemu-ifup -device virtio-net-pci,netdev=hostnet0,mac=52:54:00:c6:4b:15,id=test -nodefaults -nodefconfig -spice port=5910,seamless-migration=on,disable-ticketing -vga qxl -global qxl-vga.vram_size=67108864 -global PIIX4_PM.disable_s3=0 -global PIIX4_PM.disable_s4=0 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x9,disable-legacy=true,disable-modern=false -chardev socket,path=/tmp/qga.sock,server,nowait,id=qga0 -device virtserialport,bus=virtio-serial0.0,chardev=qga0,id=org.qemu.guest_agent.0,name=org.qemu.guest_agent.0 -qmp tcp:0:6666,server,nowait

2. In the guest, install guest agent

3. In the guest, start qemu-guest-agent service
# service qemu-guest-agent start

4. In the guest, list help info of qemu-ga
# qemu-ga --help'

5. In the guest, check the files of qemu-guest-agent package:
# rpm -ql qemu-guest-agent

Actual results:
after step 3, qemu-guest-agent can start normally.
after step 4, 
-F, --fsfreeze-hook ... ...(default is /etc/qemu-kvm/fsfreeze-hook)
after step 5,
/etc/qemu-ga
/etc/qemu-ga/fsfreeze-hook
/etc/qemu-ga/fsfreeze-hook.d
/etc/sysconfig/qemu-ga
... ...

Comment 7 huiqingding 2015-07-21 05:41:11 UTC
Test this bug using the following version:
Host:
kernel-3.10.0-292.el7.x86_64
qemu-kvm-rhev-2.3.0-12.el7.x86_64

Guest:
kernel-3.10.0-295.el7.x86_64
qemu-guest-agent-2.3.0-2.el7.x86_64

Steps to reproduce:
1. Start a guest with virtio serial guest agent
/usr/libexec/qemu-kvm -cpu SandyBridge -machine pc-i440fx-rhel7.2.0 -enable-kvm -m 4096 -smp 2,sockets=1,cores=2,threads=1 -name rhel7base -drive file=/home/rhel7.2.qcow2,if=none,id=drive-virtio-disk0,format=qcow2,werror=stop,rerror=stop,aio=native,cache.direct=on -device virtio-blk-pci,drive=drive-virtio-disk0,id=virtio-disk0 -boot menu=on -monitor stdio -netdev tap,id=hostnet0,vhost=on,script=/etc/qemu-ifup -device virtio-net-pci,netdev=hostnet0,mac=52:54:00:c6:4b:15,id=test -nodefaults -nodefconfig -spice port=5910,seamless-migration=on,disable-ticketing -vga qxl -global qxl-vga.vram_size=67108864 -global PIIX4_PM.disable_s3=0 -global PIIX4_PM.disable_s4=0 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x9,disable-legacy=true,disable-modern=false -chardev socket,path=/tmp/qga.sock,server,nowait,id=qga0 -device virtserialport,bus=virtio-serial0.0,chardev=qga0,id=org.qemu.guest_agent.0,name=org.qemu.guest_agent.0 -qmp tcp:0:6666,server,nowait

2. In the guest, install guest agent

3. In the guest, start qemu-guest-agent service
# service qemu-guest-agent start

4. In the guest, list help info of qemu-ga
# qemu-ga --help'

5. In the guest, check the files of qemu-guest-agent package:
# rpm -ql qemu-guest-agent

Actual results:
after step 3, qemu-guest-agent can start normally.
The path of fsfreeze-hook in step 4 is same as step 5.
after step 4, 
-F, --fsfreeze-hook ... ...(default is /etc/qemu-ga/fsfreeze-hook)
after step 5,
/etc/qemu-ga
/etc/qemu-ga/fsfreeze-hook
/etc/qemu-ga/fsfreeze-hook.d
/etc/sysconfig/qemu-ga
... ...

Comment 8 juzhang 2015-07-27 04:43:31 UTC
According to comment6 and comment7, set this issue as verified.

Comment 10 errata-xmlrpc 2015-11-19 07:10:52 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-2217.html