On Thu, Apr 30, 2020 at 05:39:45PM +0200, Miguel Duarte de Mora Barroso wrote:
On Thu, Apr 30, 2020 at 2:15 PM Daniel P. Berrangé
<berrange(a)redhat.com> wrote:
>
> On Thu, Apr 30, 2020 at 01:52:12PM +0200, Miguel Duarte de Mora Barroso wrote:
> > Hi,
> >
> > I'm seeing the following issue when attempting to update the guest's
> > clock on a running fc32 guest (using guest agent):
> >
> > ```
> > [root@virt-launcher-vmi-masquerade-mh2xm /]# virsh domtime 1 --pretty
> > Time: 2020-04-30 23:27:29
> > [root@virt-launcher-vmi-masquerade-mh2xm /]# virsh domtime 1 --sync
> > error: internal error: unable to execute QEMU agent command
> > 'guest-set-time': hwclock failed to set hardware clock to system time
>
> This error is ultimately coming from the QEMU guest agent inside
> your guest. It spawns "hwclock" and this is failing for some reason.
> You'll probably need to debug this inside the guest - strace the
> QEMU guest agent, see where it fails, and then file a bug against
> the distro for it.
Eventually I found out that if I make the call *without* specifying
the `libvirt.DOMAIN_TIME_SYNC` flag this works
as I intend. I've read the docs and could not understand what's the
purpose of this flag .
It reads "Re-sync domain time from domain's RTC" on [0]. It begs the
question: if I'm setting it to a fixed instant in time (which I am),
why would I want it to sync with the domain's RTC ?
Is there any obvious issue that will appear from calling
`virDomainSetTime` (defined at [1]) without the DOMAIN_TIME_SYNC flag
specified ?
I'm not sure if this (removing the DOMAIN_TIME_SYNC) is a fix, an ugly
hack, or a disaster waiting to happen.
If you passing DOMAIN_TIME_SYNC, then the guest agent updates the
guest OS system time, to match the guest OS RTC time.
IOW, this assumes the guest RTC is in sync with the host time,
and we just need to resync the guest OS with the RTC.
If you don't pass DOMAIN_TIME_SYNC, then the time on the host
where you run virsh is sent to the guest OS and this is used
to set the guest OS system time. The issue here is all about
latency between when virsh reads the current time, and when
the guest OS sets this time.
IOW, I'd generally consider DOMAIN_TIME_SYNC a good thing.
Regards,
Daniel
--
|:
https://berrange.com -o-
https://www.flickr.com/photos/dberrange :|
|:
https://libvirt.org -o-
https://fstop138.berrange.com :|
|:
https://entangle-photo.org -o-
https://www.instagram.com/dberrange :|