From nobody Sun Nov 16 09:18:43 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1741853020; cv=none; d=zohomail.com; s=zohoarc; b=Y0ZSVUD6d8YAmxDM7beL5m9vdz07WHvoofkcWeG5iyRz8XZdxxPgyer9gGORW3YpW7ybiFmEPi7EPzaw10B7GZ8+zJcipqjlM9KSjvMXlzH+Ek+aQ/s3TuvKUwO4e7B1LSl3oqnFPXf/lKbmOnPhG8zWPQQQnScGiQ6JjvTVros= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741853020; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=GK09BF3/euIWU9pkP2gpzT9/ok5OVwK5KYCEivXHKjk=; b=h+g8979GS+c+nfH7yrNJ7MBCfwHIXJt2Gh/Yco5sU4XvnUodF/SYy1eeTAZKasSZljsnN0blNvMzcQpFaWKPwXTu1IbkT10AMZXUJ69oop1Z1G1tZFxrN0PS0fUPzu6s4mkw47/gXioWVkE4lKzk+Eeo86g/dw+8gu1LnruMq+I= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741853020592107.57564148406777; Thu, 13 Mar 2025 01:03:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tsdW8-0004Cp-CU; Thu, 13 Mar 2025 04:02:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tsdW1-00048k-HO for qemu-devel@nongnu.org; Thu, 13 Mar 2025 04:02:05 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tsdVz-0007ir-N2 for qemu-devel@nongnu.org; Thu, 13 Mar 2025 04:02:05 -0400 Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-612-G5W9hqCJM6SkQwvxZTzr7A-1; Thu, 13 Mar 2025 04:01:56 -0400 Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id DD35B19560B8; Thu, 13 Mar 2025 08:01:55 +0000 (UTC) Received: from thuth-p1g4.redhat.com (unknown [10.45.224.26]) by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id F2DB61955F2D; Thu, 13 Mar 2025 08:01:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1741852922; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=GK09BF3/euIWU9pkP2gpzT9/ok5OVwK5KYCEivXHKjk=; b=b6NwcNORU1cRz9hPN/Fk+09ixeGLPeWUI+ef25GDD6lmOuixIQCxO1Qc9581FMNW5X1JIt W3XDFz4konKG6cN7fi4z160VdiLmZfWAUNqNL08USQWl/PwUSSQXyNMH2DATKWhT55pIcv Cii0Gv2vkZDiV4MfKtx2xnCFNNy8Dzo= X-MC-Unique: G5W9hqCJM6SkQwvxZTzr7A-1 X-Mimecast-MFC-AGG-ID: G5W9hqCJM6SkQwvxZTzr7A_1741852916 From: Thomas Huth To: qemu-devel@nongnu.org Cc: Stefan Hajnoczi , Nicholas Piggin , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= Subject: [PULL 6/8] tests/functional/asset: Verify downloaded size Date: Thu, 13 Mar 2025 09:01:30 +0100 Message-ID: <20250313080132.1467625-7-thuth@redhat.com> In-Reply-To: <20250313080132.1467625-1-thuth@redhat.com> References: <20250313080132.1467625-1-thuth@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=thuth@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1741853022057019100 From: Nicholas Piggin If the server provides a Content-Length header, use that to verify the size of the downloaded file. This catches cases where the connection terminates early, and gives the opportunity to retry. Without this, the checksum will likely mismatch and fail without retry. Reviewed-by: Daniel P. Berrang=C3=A9 Signed-off-by: Nicholas Piggin Message-ID: <20250312130002.945508-3-npiggin@gmail.com> Signed-off-by: Thomas Huth --- tests/functional/qemu_test/asset.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/functional/qemu_test/asset.py b/tests/functional/qemu_te= st/asset.py index 27dd839e705..6bbfb9e1cad 100644 --- a/tests/functional/qemu_test/asset.py +++ b/tests/functional/qemu_test/asset.py @@ -121,6 +121,20 @@ def fetch(self): with tmp_cache_file.open("xb") as dst: with urllib.request.urlopen(self.url) as resp: copyfileobj(resp, dst) + length_hdr =3D resp.getheader("Content-Length") + + # Verify downloaded file size against length metadata, if + # available. + if length_hdr is not None: + length =3D int(length_hdr) + fsize =3D tmp_cache_file.stat().st_size + if fsize !=3D length: + self.log.error("Unable to download %s: " + "connection closed before " + "transfer complete (%d/%d)", + self.url, fsize, length) + tmp_cache_file.unlink() + continue break except FileExistsError: self.log.debug("%s already exists, " --=20 2.48.1