[RFC] qemu_migration: Fix virConnectOpenAuth error code

Ani Sinha ani at anisinha.ca
Thu Jan 6 12:02:49 UTC 2022



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 at nutanix.com>
> Suggested-by: John Levon <john.levon at nutanix.com>
> Signed-off-by: Raphael Norwitz <raphael.norwitz at 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;
> --
> 2.20.1
>
>
>




More information about the libvir-list mailing list