
On Thu, 6 Jan 2022, Michal Prívozník wrote:
On 1/6/22 02:33, Raphael Norwitz wrote:
Today if virConnectOpenAuth fails, qemuMigrationSrcPerformPeer2Peer() returns VIR_ERR_OPERATION_FAILED. This change switches that error code to VIR_ERR_NO_CONNECT, which is more accurate.
This should help libvirt consumers more intellegently retry migrations on intermittent connection failures.
CC: Bhuvnesh Jain <bhuvnesh.jain@nutanix.com> Suggested-by: John Levon <john.levon@nutanix.com> Signed-off-by: Raphael Norwitz <raphael.norwitz@nutanix.com> --- src/qemu/qemu_migration.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index b9d7d582f5..f7ced209a4 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -5145,7 +5145,7 @@ qemuMigrationSrcPerformPeer2Peer(virQEMUDriver *driver, goto cleanup;
if (dconn == NULL) { - virReportError(VIR_ERR_OPERATION_FAILED, + virReportError(VIR_ERR_NO_CONNECT, _("Failed to connect to remote libvirt URI %s: %s"), dconnuri, virGetLastErrorMessage()); return -1;
I'm not exactly sure why we need this virReportError() in the first place. Basically, we are just overwriting a more accurate error with this generic one. Doesn't removing this virReportError() fix the problem?
Not all failure scenarios in virConnectOpenInternal() are caught with a virReportError(). Hence, we do need this.