• J
    qemu: Don't report false error from MigrateFinish · 44c42b56
    Jiri Denemark 提交于
    virDomainMigrateFinish* APIs were unfortunately designed to return the
    pointer to the domain on destination and NULL on error. This looks OK in
    normal cases but the same API is also called when we know migration
    failed and thus we expect Finish to return NULL even if it actually did
    all it was supposed to do without any error. The call is defined to
    return nonnull domain pointer over RPC, which means returning NULL will
    always result in an error being send. If this was not in fact an error,
    the API itself wouldn't set anything to the thread local virError, which
    makes the RPC layer come up with it's own "Library function returned
    error but did not set virError" error.
    
    This is quite confusing and also hard to detect by the caller. This
    patch adds a special error code which can be used to check that Finish
    successfully aborted migration.
    Signed-off-by: NJiri Denemark <jdenemar@redhat.com>
    44c42b56
qemu_migration.c 201.8 KB