mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
Fix reporting of errors for p2p migration
Starting/ending jobs when closing the connection may reset any error which was reported earlier in p2p migration. We must save the original error before doing so. This means we can also just call virConnectClose as normal, instead of virUnrefConnect * src/qemu/qemu_migration.c: Preserve errors in p2p migration
This commit is contained in:
parent
e06c8ede42
commit
789fc4ae90
@ -2141,6 +2141,8 @@ static int doPeer2PeerMigrate(struct qemud_driver *driver,
|
||||
int ret = -1;
|
||||
virConnectPtr dconn = NULL;
|
||||
bool p2p;
|
||||
virErrorPtr orig_err = NULL;
|
||||
|
||||
VIR_DEBUG("driver=%p, sconn=%p, vm=%p, xmlin=%s, dconnuri=%s, "
|
||||
"uri=%s, flags=%lx, dname=%s, resource=%lu",
|
||||
driver, sconn, vm, NULLSTR(xmlin), NULLSTR(dconnuri),
|
||||
@ -2191,10 +2193,14 @@ static int doPeer2PeerMigrate(struct qemud_driver *driver,
|
||||
dconnuri, flags, dname, resource);
|
||||
|
||||
cleanup:
|
||||
/* don't call virConnectClose(), because that resets any pending errors */
|
||||
orig_err = virSaveLastError();
|
||||
qemuDomainObjEnterRemoteWithDriver(driver, vm);
|
||||
virUnrefConnect(dconn);
|
||||
virConnectClose(dconn);
|
||||
qemuDomainObjExitRemoteWithDriver(driver, vm);
|
||||
if (orig_err) {
|
||||
virSetError(orig_err);
|
||||
virFreeError(orig_err);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user