From nobody Fri May 3 06:55:43 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=virtuozzo.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1544698943084551.1787748020242; Thu, 13 Dec 2018 03:02:23 -0800 (PST) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id E7AFB30DDBD1; Thu, 13 Dec 2018 11:02:20 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 477065C221; Thu, 13 Dec 2018 11:02:20 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 3E9CA1808872; Thu, 13 Dec 2018 11:02:17 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id wBDB2F72004677 for ; Thu, 13 Dec 2018 06:02:15 -0500 Received: by smtp.corp.redhat.com (Postfix) id A554460A9C; Thu, 13 Dec 2018 11:02:15 +0000 (UTC) Received: from mx1.redhat.com (ext-mx20.extmail.prod.ext.phx2.redhat.com [10.5.110.49]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 9BC8E614C4 for ; Thu, 13 Dec 2018 11:02:13 +0000 (UTC) Received: from relay.sw.ru (relay.sw.ru [185.231.240.75]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id DA330307CDC9 for ; Thu, 13 Dec 2018 11:02:08 +0000 (UTC) Received: from [10.94.3.220] (helo=dim-vz7.qa.sw.ru) by relay.sw.ru with esmtp (Exim 4.91) (envelope-from ) id 1gXOko-0003hq-V4 for libvir-list@redhat.com; Thu, 13 Dec 2018 14:02:07 +0300 From: Nikolay Shirokovskiy To: libvir-list@redhat.com Date: Thu, 13 Dec 2018 14:02:04 +0300 Message-Id: <1544698925-965336-2-git-send-email-nshirokovskiy@virtuozzo.com> In-Reply-To: <1544698925-965336-1-git-send-email-nshirokovskiy@virtuozzo.com> References: <1544698925-965336-1-git-send-email-nshirokovskiy@virtuozzo.com> X-Greylist: Sender passed SPF test, ACL 238 matched, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.49]); Thu, 13 Dec 2018 11:02:09 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.49]); Thu, 13 Dec 2018 11:02:09 +0000 (UTC) for IP:'185.231.240.75' DOMAIN:'relay.sw.ru' HELO:'relay.sw.ru' FROM:'nshirokovskiy@virtuozzo.com' RCPT:'' X-RedHat-Spam-Score: -0.002 (RCVD_IN_MSPIKE_H2, SPF_PASS) 185.231.240.75 relay.sw.ru 185.231.240.75 relay.sw.ru X-Scanned-By: MIMEDefang 2.84 on 10.5.110.49 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH v2 1/2] qemu: don't log error for missing optional storage sources on stats X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.49]); Thu, 13 Dec 2018 11:02:21 +0000 (UTC) Content-Type: text/plain; charset="utf-8" Every time we call all domain stats for inactive domain with unavailable storage source we get error message in logs [1]. It's a bit noi= sy. While it's arguable whether we need such message or not for mandatory disks we would like not to see messages for optional disks. Let's filter at least for cases of local files. Fixing other cases would require passing flag down the stack to .backendInit of storage which is ugly. Stats for active domain are fine because we either drop disks with unavailable sources or clean source which is handled by virStorageSourceIsEmpty in qemuDomainGetStatsOneBlockFallback. We have these logs for successful stats since 25aa7035d (version 1.2.15) which in turn fixes 596a13713 (version 1.2.12 )which added substantial stats for offline disks. [1] error message example: qemuOpenFileAs:3324 : Failed to open file '/path/to/optional/disk': No such= file or directory Signed-off-by: Nikolay Shirokovskiy Reviewed-by: John Ferlan --- src/qemu/qemu_domain.c | 9 +++++++++ src/qemu/qemu_domain.h | 3 +++ src/qemu/qemu_driver.c | 14 ++++++++++++++ 3 files changed, 26 insertions(+) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 1eb0e31..6f8df23 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -13696,3 +13696,12 @@ qemuDomainIsUsingNoShutdown(qemuDomainObjPrivatePt= r priv) { return priv->monJSON && priv->allowReboot =3D=3D VIR_TRISTATE_BOOL_YES; } + + +bool +qemuDomainDiskIsMissingLocalOptional(virDomainDiskDefPtr disk) +{ + return disk->startupPolicy =3D=3D VIR_DOMAIN_STARTUP_POLICY_OPTIONAL && + virStorageSourceIsLocalStorage(disk->src) && disk->src->path && + !virFileExists(disk->src->path); +} diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index 53b5ea1..b57fa19 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -1094,4 +1094,7 @@ qemuDomainRunningReasonToResumeEvent(virDomainRunning= Reason reason); bool qemuDomainIsUsingNoShutdown(qemuDomainObjPrivatePtr priv); =20 +bool +qemuDomainDiskIsMissingLocalOptional(virDomainDiskDefPtr disk); + #endif /* __QEMU_DOMAIN_H__ */ diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index d0cf2c1..c2f3b74 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -20722,6 +20722,20 @@ qemuDomainGetStatsBlockExportDisk(virDomainDiskDef= Ptr disk, const char *backendstoragealias; int ret =3D -1; =20 + /* + * This helps to keep logs clean from error messages on getting stats + * for optional disk with nonexistent source file. We won't get any + * stats for such a disk anyway in below code. + */ + if (!virDomainObjIsActive(dom) && + qemuDomainDiskIsMissingLocalOptional(disk)) { + VIR_INFO("optional disk '%s' source file is missing, " + "skip getting stats", disk->dst); + + return qemuDomainGetStatsBlockExportHeader(disk, disk->src, *recor= dnr, + records, nrecords); + } + for (n =3D disk->src; virStorageSourceIsBacking(n); n =3D n->backingSt= ore) { if (blockdev) { frontendalias =3D QEMU_DOMAIN_DISK_PRIVATE(disk)->qomName; --=20 1.8.3.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri May 3 06:55:43 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=virtuozzo.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1544698943049117.2726569487977; Thu, 13 Dec 2018 03:02:23 -0800 (PST) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 3A55931524D7; Thu, 13 Dec 2018 11:02:21 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D2B20600C5; Thu, 13 Dec 2018 11:02:20 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id BED081808855; Thu, 13 Dec 2018 11:02:18 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id wBDB2GVh004682 for ; Thu, 13 Dec 2018 06:02:16 -0500 Received: by smtp.corp.redhat.com (Postfix) id BD32417B3B; Thu, 13 Dec 2018 11:02:16 +0000 (UTC) Received: from mx1.redhat.com (ext-mx04.extmail.prod.ext.phx2.redhat.com [10.5.110.28]) by smtp.corp.redhat.com (Postfix) with ESMTPS id B5A9A1974F for ; Thu, 13 Dec 2018 11:02:14 +0000 (UTC) Received: from relay.sw.ru (relay.sw.ru [185.231.240.75]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id BE42796E9 for ; Thu, 13 Dec 2018 11:02:08 +0000 (UTC) Received: from [10.94.3.220] (helo=dim-vz7.qa.sw.ru) by relay.sw.ru with esmtp (Exim 4.91) (envelope-from ) id 1gXOkp-0003hq-7I for libvir-list@redhat.com; Thu, 13 Dec 2018 14:02:07 +0300 From: Nikolay Shirokovskiy To: libvir-list@redhat.com Date: Thu, 13 Dec 2018 14:02:05 +0300 Message-Id: <1544698925-965336-3-git-send-email-nshirokovskiy@virtuozzo.com> In-Reply-To: <1544698925-965336-1-git-send-email-nshirokovskiy@virtuozzo.com> References: <1544698925-965336-1-git-send-email-nshirokovskiy@virtuozzo.com> X-Greylist: Sender passed SPF test, ACL 238 matched, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Thu, 13 Dec 2018 11:02:09 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Thu, 13 Dec 2018 11:02:09 +0000 (UTC) for IP:'185.231.240.75' DOMAIN:'relay.sw.ru' HELO:'relay.sw.ru' FROM:'nshirokovskiy@virtuozzo.com' RCPT:'' X-RedHat-Spam-Score: -0.002 (RCVD_IN_MSPIKE_H2, SPF_PASS) 185.231.240.75 relay.sw.ru 185.231.240.75 relay.sw.ru X-Scanned-By: MIMEDefang 2.78 on 10.5.110.28 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH v2 2/2] qemu: don't log error for missing optional storage sources on start X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.41]); Thu, 13 Dec 2018 11:02:21 +0000 (UTC) Content-Type: text/plain; charset="utf-8" Because missing optional storage source is not error. The patch address only local files. Fixing other cases is a bit ugly. Below is example of error notice in log now: error: virStorageFileReportBrokenChain:427 : Cannot access storage file '/path/to/missing/optional/disk': No such file or directory Signed-off-by: Nikolay Shirokovskiy Reviewed-by: John Ferlan --- src/qemu/qemu_process.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 2f8e19d..d754f09 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -6118,7 +6118,15 @@ qemuProcessPrepareHostStorage(virQEMUDriverPtr drive= r, if (!blockdev) virStorageSourceBackingStoreClear(disk->src); =20 - if (qemuDomainDetermineDiskChain(driver, vm, disk, true) >=3D 0) + /* + * Go to applying startup policy for optional disk with nonexistent + * source file immediately as detemining chain will surely fail + * and we don't want noisy error notice in logs for this case. + */ + if (qemuDomainDiskIsMissingLocalOptional(disk) && cold_boot) + VIR_INFO("optional disk '%s' source file is missing, " + "skip checking disk chain", disk->dst); + else if (qemuDomainDetermineDiskChain(driver, vm, disk, true) >=3D= 0) continue; =20 if (qemuDomainCheckDiskStartupPolicy(driver, vm, idx, cold_boot) >= =3D 0) --=20 1.8.3.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list