On Thu, 6 Jan 2022, 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. Hmm, I am not sure if this would be the right thing. virConnectOpenInternal() fails under many conditions, two of which actiually qualifies for VIR_ERR_NO_CONNECT. This error symbolizes "no connection driver available" which to me has a much narrower scope. virConnectOpenInternal() has other failure codepaths, for example VIR_ERR_CONFIG_UNSUPPORTED. Catching all those failures as VIR_ERR_OPERATION_FAILED that has a wider scope seems to be correct thing to do in the existing code. YMMV. > > This should help libvirt consumers more intellegently retry migrations > on intermittent connection failures. > > CC: Bhuvnesh Jain <bhuvnesh.jain@xxxxxxxxxxx> > Suggested-by: John Levon <john.levon@xxxxxxxxxxx> > Signed-off-by: Raphael Norwitz <raphael.norwitz@xxxxxxxxxxx> > --- > 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; > -- > 2.20.1 > > >