• J
    qemu: Adjust EndAsyncJob for qemuDomainSaveInternal error path · 8ff38336
    John Ferlan 提交于
    Commit id '540c339a' to fix issues with reference counting and transient
    domains moved the qemuDomainObjEndAsyncJob call prior to the attempt to
    restart the guest CPU's resulting in an error:
    
        error: Failed to save domain rhel70 to /tmp/pl/rhel70.save
        error: internal error: unexpected async job 3
    
    when (ret != 0) - eg, the error path from qemuDomainSaveMemory.
    
    This patch will adjust the logic to call the EndAsyncJob only after
    we've tried to restart the guest CPUs. It also needs to adjust the
    test for qemuDomainRemoveInactive to add the ret == 0 condition.
    
    Additionally, if we get to endjob: because of some error earlier, then
    we need to save that error in the event the CPU restart logic fails.
    We don't want to return the error from CPU restart failure, rather we
    want to return the error from the failed save that caused us to fall
    into the retry to start the CPU logic.
    Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
    8ff38336
qemu_driver.c 618.1 KB