]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
tests/functional: retry when seeing ConnectionError exception
authorDaniel P. Berrangé <berrange@redhat.com>
Thu, 18 Sep 2025 12:57:45 +0000 (13:57 +0100)
committerThomas Huth <thuth@redhat.com>
Wed, 24 Sep 2025 06:26:11 +0000 (08:26 +0200)
This base class is used for many different socket connection
errors, corresponding to ECONNRESET, ECONNREFUSED, ECONNABORTED
and more. Most of these are things you might expect to see every
now and then as transient flaws. We should thus retry the asset
download when seeing them.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-ID: <20250918125746.1165658-2-berrange@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
tests/functional/qemu_test/asset.py

index 2dd32bf28d95773a7aaba736d3e9754d74a33a33..f8b87d21538aa3725902bf15301c382c53bacca5 100644 (file)
@@ -179,6 +179,13 @@ class Asset:
                                self.url, e.reason)
                 raise AssetError(self, "Unable to download: URL error %s" %
                                  e.reason, transient=True)
+            except ConnectionError as e:
+                # A socket connection failure, such as dropped conn
+                # or refused conn
+                tmp_cache_file.unlink()
+                self.log.error("Unable to download %s: Connection error %s",
+                               self.url, e)
+                continue
             except Exception as e:
                 tmp_cache_file.unlink()
                 raise AssetError(self, "Unable to download: %s" % e)