]> xenbits.xensource.com Git - libvirt.git/commit
qemu: agent: cleanup agent error flag correctly
authorNikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
Wed, 16 Nov 2016 13:43:03 +0000 (16:43 +0300)
committerMaxim Nestratov <mnestratov@virtuozzo.com>
Wed, 23 Nov 2016 08:14:44 +0000 (11:14 +0300)
commit6ba861ae361168337828430f85fb8c6b6b5b7c7d
tree12b42331d861d08bfbf9236d668f418265298a8d
parentf5109f20ff02f45168c02c04d41cd5e5cb82c07e
qemu: agent: cleanup agent error flag correctly

Sometimes after domain restart agent is unavailabe even
if it is up and running in guest. Diagnostic message is
"QEMU guest agent is not available due to an error"
that is 'priv->agentError' is set. Investiagion shows that
'priv->agent' is not NULL, so error flag is set probably
during domain shutdown process and not cleaned up eventually.

The patch is quite simple - just clean up error flag unconditionally
upon domain stop.

Other hunks address other cases when error flag is not cleaned up.

1. processSerialChangedEvent. We need to clean error flag
unconditionally here too. For example if upon first 'connected' event we
fail to connect and set error flag and then connect on second
'connected' event then error flag will remain set erroneously
and make agent unavailable.

2. qemuProcessHandleAgentEOF. If error flag is set and we get
EOF we need to change state (and diagnostic) from 'error' to
'not connected'.
src/qemu/qemu_driver.c
src/qemu/qemu_process.c