mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 19:32:19 +00:00
qemu_agent: Bring back single sync
Historically, we had no idea whether the qemu-ga running inside the guest was running or not. Or whether it crashed in the middle of reading of a command. That's why we issued guest-sync prior any intended command, to make the agent flush any partially read JSON and reset its state machine. But with VSERPORT_CHANGE event we know when the guest agent (dis-)connects and thus can issue the sync command just once for each 'connection'. Whether the agent is synced is tracked in agent->inSync member, which used to be set to true upon successful sync. But after rework in v8.0.0-rc1~361 that line is gone, leaving us with using the historic approach basically. Fixes: cad84fd51eaac5e3bfdf441f9986e1f2639a0828 Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
d649faddb3
commit
91ef81a378
@ -869,16 +869,20 @@ qemuAgentGuestSync(qemuAgent *agent)
|
||||
return -1;
|
||||
|
||||
/* successfully sync'd */
|
||||
if (rc == 1)
|
||||
if (rc == 1) {
|
||||
agent->inSync = true;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* send another sync */
|
||||
if ((rc = qemuAgentGuestSyncSend(agent, timeout, false)) < 0)
|
||||
return -1;
|
||||
|
||||
/* successfully sync'd */
|
||||
if (rc == 1)
|
||||
if (rc == 1) {
|
||||
agent->inSync = true;
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (agent->running)
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||
|
Loading…
x
Reference in New Issue
Block a user