Bug 1142294

Summary: libvirt should report error when failed to use domtime to set a guest time
Product: Red Hat Enterprise Linux 7 Reporter: Luyao Huang <lhuang>
Component: libvirtAssignee: Peter Krempa <pkrempa>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: low Docs Contact:
Priority: low    
Version: 7.1CC: dyuan, mzhan, pkrempa, rbalakri, zhwang
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: All   
Whiteboard:
Fixed In Version: libvirt-1.2.8-3.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-03-05 07:44:39 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:

Description Luyao Huang 2014-09-16 14:07:57 UTC
Description of problem:
libvirt should report error when failed to use domtime to set a guest time

Version-Release number of selected component (if applicable):
libvirt-1.2.8-2.el7.x86_64
qemu-kvm-rhev-2.1.0-3.el7.x86_64

How reproducible:
100%

Steps to Reproduce:
1.# virsh list --all
 Id    Name                           State
----------------------------------------------------
 14    r6                             running


2.# virsh domtime r6 --now

3.we can find error from /var/log/libvirt/libvirtd.log
2014-09-15 07:00:09.530+0000: 11413: error : qemuAgentCheckError:1058 : internal error: unable to execute QEMU agent command 'guest-set-time': Failed to set time to guest: Operation not permitted

4.# virsh domtime r6 --time 1111111111111111111

5.we can find error from /var/log/libvirt/libvirtd.log
2014-09-15 07:01:33.981+0000: 11415: error : qemuAgentSetTime:1759 : invalid argument: Time '1111111111111111111' is too big for guest agent

Actual results:
no error output from libvirt when do domtime failed

Expected results:
libvirt should report error when failed to use domtime to set a guest time

Additional info:

Comment 2 Peter Krempa 2014-09-16 15:57:40 UTC
Fixed upstream:

commit 98fd3b7f0b1af179336e55ddee6163580a927d93
Author: Peter Krempa <pkrempa>
Date:   Tue Sep 16 15:37:08 2014 +0200

    qemu: time: Report errors if agent command fails
    
    Commit b606bbb4 broke reporting of errors when setting of guest time
    fails via the guest agent as the return value is not checked and later
    overwritten by the return value qemuMonitorRTCResetReinjection();
    
    Fix this by checking the return value before resetting the RTC
    reinjection.

Comment 5 Luyao Huang 2014-09-25 02:08:00 UTC
Verify with libvirt-1.2.8-3.el7.x86_64.

Steps :

1.prepare a guest with agent:
# virsh list --all
 Id    Name                           State
----------------------------------------------------
 2     r6                             running

2.# virsh domtime r6
Time: 1411610732

3.# virsh domtime r6  --time 123111111111111111
error: invalid argument: Time '123111111111111111' is too big for guest agent

4.# virsh domtime r6 --now
error: internal error: unable to execute QEMU agent command 'guest-set-time': Failed to set time to guest: Operation not permitted

5.# virsh domtime r6 --sync
error: internal error: unable to execute QEMU agent command 'guest-set-time': hwclock failed to set hardware clock to system time

Comment 7 errata-xmlrpc 2015-03-05 07:44:39 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/RHSA-2015-0323.html