• N
    qemu: agent: cleanup agent error flag correctly · 6ba861ae
    Nikolay Shirokovskiy 提交于
    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'.
    6ba861ae
qemu_process.c 205.1 KB