From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <010701a169bcd4c0-b8430a73-965a-4819-8656-84e173f581fc-000000@eu-central-1.amazonses.com> Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazon11023102.outbound.protection.outlook.com [52.101.72.102]) by lore.virtuozzo.com (Postfix) with ESMTPS id B87C38017D for ; Fri, 23 Oct 2026 17:09:12 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SegDVoAjSh6hQsse/Yf0YFgiiBo4P1ayzO1HhI0GXbb1AdgAz+LKGdSGlua8IbwOQxAgUo+Kl2MXjLBvV4CJl8ZRePIHnqxU5WyTMyps97S8j+KTAb7IGAYgJmwJGgbacyu6ajquGQhntr6teoyv1asz8KyO+2g9CY9PL5URz0zG/n2pRZtxjFpzSQG+o4BR5OT5iKJiAjxBFO/m6lupb+NgUGJIydFu5YENkkeDg2a481ZmVBLzKe+2Ka4H3DVyP0LKeE1D0AcpoCpLqLaoApbZelWO/+t8yWn2ffwiu4QQO3unqQH/veJoit5wJXhnsbREksvbZZwXLSw4n27/bg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=opL2vUptq9p9N7Pokdd20cgOAyHwmbDipccdPLwXpmg=; b=vfiKcLFdg/VG+PITlsPa8vaylgZiF8o1ozr/HFNPb0N3XDl5le0sczu5rPUu5muIM6xqgjUdZBx+DuQRQS2nP/tW478lGVeILQAVNEscWBjpIr/5E9R4x9CxrCCW/yOFwD9YFdp9wqhxBuJ5yRyefvtf97A1/LlcXpSLZu7IfTVBGk8IXFcIOYp3G7fnwsNSoULwHR+CgsIvXx91Q9VMOt7nh6d6IDuKcfP7CBI/4hVWT9FtoE1tN+DgmEhvClXLIhmT7oiyQE8J/AY8rOPxHbppz/rgsx1A3vJVRSalpZ6DuuIdBD+Zuucn3HPAEYKU3/7pEmUxYpaT4lXDRkjOag== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 69.169.224.5) smtp.rcpttodomain=virtuozzo.com smtp.mailfrom=eu-central-1.amazonses.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=sashiko.virtuozzo.com; dkim=pass (signature was verified) header.d=sashiko.virtuozzo.com; dkim=pass (signature was verified) header.d=amazonses.com; arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.onmicrosoft.com; s=selector2-virtuozzo-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=opL2vUptq9p9N7Pokdd20cgOAyHwmbDipccdPLwXpmg=; b=pZ333Bf1ZvOazglyIKxekx2UJjbKT7Ctw8LZDdb28Hqz9avm3eOizdHxM1WtwHMfE9FeQDi/UT9+IAmf7Ik/OBa6oO89oekruFV+Db8j2nBLYwWZMCYAeMYac1PkwSrBpZ21H2uOLpPcw1Ct4hj+Jr2STaVAJjJmmCo8EREJuO8= Received: from AS9PR06CA0278.eurprd06.prod.outlook.com (2603:10a6:20b:45a::18) by PA4PR08MB6205.eurprd08.prod.outlook.com (2603:10a6:102:e6::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.546.19; Fri, 23 Oct 2026 17:09:06 +0000 Received: from AMS0EPF0000056C.eurprd02.prod.outlook.com (2603:10a6:20b:45a:cafe::32) by AS9PR06CA0278.outlook.office365.com (2603:10a6:20b:45a::18) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.546.20 via Frontend Transport; Fri, 23 Oct 2026 17:09:05 +0000 Authentication-Results: mx.microsoft.com 1; spf=pass (sender IP is 69.169.224.5) smtp.mailfrom=eu-central-1.amazonses.com; dkim=pass (signature was verified) header.d=sashiko.virtuozzo.com;dkim=pass (signature was verified) header.d=amazonses.com;dmarc=pass action=none header.from=sashiko.virtuozzo.com; Received-SPF: Pass (protection.outlook.com: domain of eu-central-1.amazonses.com designates 69.169.224.5 as permitted sender) receiver=protection.outlook.com; client-ip=69.169.224.5; helo=b224-5.smtp-out.eu-central-1.amazonses.com; pr=C Received: from b224-5.smtp-out.eu-central-1.amazonses.com (69.169.224.5) by AMS0EPF0000056C.mail.protection.outlook.com (10.167.242.122) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.569.4 via Frontend Transport; Fri, 23 Oct 2026 17:09:05 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=23yjbh4k34hwzfubhuiim7m4inbd3ick; d=sashiko.virtuozzo.com; t=1792775345; h=Message-ID:From:Subject:To:In-Reply-To:References:Content-Type:Content-Transfer-Encoding:Date; bh=8LK3UBCevHWH0dG6A7GWvXuFpAHVPKqFF/U4/uTC0bs=; b=szzPNeTgASU/2c3xOltF0TRbxTUb8Auij2l17eF0y+00gHw8kqkdh7bCkt/xeHgM 0lP0pABF7UH9lbptb7YNBQ39g3Bf/X4KEQUx74LsHOZRZcVvKQGlhwsL817Ahn5xV4y Rnw0nZleruTWLcFho2zCFrHJvnJdtm/6j9sW7KwG+p1FXPkuzWOzdhut7xnyXJxXYu+ IRUJKmicOnCH6el3EUdexWGDubd7z+xMwqq/pcSJJc0wjWD+go3JIxDXY9Pu01BJlu4 gBY+XUtnnZ+NUVwTrJWHdKjCA4NtOKNPaC8EpJSLLCdmfaxnQ2lOEWDQSOUKoRSO9oN v8mFoDfffQ== DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=qftdzk2dqsatjnlrq4r5brjbihpfcrsh; d=amazonses.com; t=1792775345; h=Message-ID:From:Subject:To:In-Reply-To:References:Content-Type:Content-Transfer-Encoding:Date:Feedback-ID; bh=8LK3UBCevHWH0dG6A7GWvXuFpAHVPKqFF/U4/uTC0bs=; b=FYrMaN7kyPlw3XoIovpuYQd9T9SQciKFheRbtGpGbcOVZAiL2LrtMdO3igLyt3f/ /LlpKI8oKBKQA43XI7RHiy+wDqAl694aMQQfywawgOB5UCfgzoahL8DvFZtVT7lqTUp ec3iO+kLKhchiD+xGC3bRAGLN0Nu70T5ZKmgk5xw= Message-ID: <010701a169bcd4c0-b8430a73-965a-4819-8656-84e173f581fc-000000@eu-central-1.amazonses.com> From: no-reply@sashiko.virtuozzo.com Subject: Re: [PATCH QEMU HCI-8.1 v5 16/36] migration: Fix regression of passing error_fatal into vmstate_load_state() To: Andrey Drobyshev , svt-core@virtuozzo.com In-Reply-To: <20261023-vfio_v1-v5-16-ba0bf3c6d122@virtuozzo.com> References: <20261023-vfio_v1-v5-0-ba0bf3c6d122@virtuozzo.com> <20261023-vfio_v1-v5-16-ba0bf3c6d122@virtuozzo.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Fri, 23 Oct 2026 17:09:05 +0000 Feedback-ID: ::1.eu-central-1.2wRQJBpg9g1fGRYexx3dUuYGS25Bux+2TEOx72/m6U4=:AmazonSES X-SES-Outgoing: 2026.10.23-69.169.224.5 X-EOPAttributedMessage: 0 X-EOPTenantAttributedMessage: 0bc7f26d-0264-416e-a6fc-8352af79c58f:0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AMS0EPF0000056C:EE_|PA4PR08MB6205:EE_ MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 2e0f6211-5080-463e-aafd-08df31285834 X-LD-Processed: 0bc7f26d-0264-416e-a6fc-8352af79c58f,ExtAddr X-MS-Exchange-AtpMessageProperties: SA List-Id: svt-core@virtuozzo.com X-MS-Exchange-Transport-Rules-Loop: 1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|48200799018|376014|32142699015|9140799003|61400799027|55112099003|4113699003|5113699003|13003099007|10067099003|22082099003|18002099003|16102099003|5063699009|56012099006|4143699003|261022105027099003|261009223027099003; X-Microsoft-Antispam-Message-Info: tp4nBv4KI8HJ8yEGWju0lB0Mxi2raUNa5ZZ7s+20AV5VF7rPsJ/Vbi/ImaoLfUADMQlV8udHJpKk0X6fRHuHUEDaFBEKEg4lNrPPvKDJJr1nFABzse3YNYKw29fxkttysneIqBSALtoXBi/maj+1wheoFkIapJLnxdzdb8l+8TXUzcvGOIqtv2KajSwK3f8QnVO716POf4A7SFR4WJauh5f4u90WLtAylD4MLZoDmNznngbmts+WjP/EAkdJYxkIzghZ6vb3YXH5udCUIRIPHTMVjKyJg1E3qQun91DPf3iY7J/U/k6Y7SG1pp3Z0nEr6BQE9Y4ht4SVRTtGm0rDuiBHYKwHxCQPPTCJZhswIWd6htDwEpyGaqGL+hxqI223tzVucL5GISAR6NHFEj/lVCN+69xQ4AW8qlPp1IjZuicuFYVrTymebTyCDi5nQFgYaEnn4m8Dpvfoh0GJzIQ6VFbTaO7pQBzVFre29RWnY5+i9Fq63u0BpUfwUJjVj0GOHclNk5eu4aUU8S4NfEA3D/R8qqyVY1mOMYi7PnrcJ0JEizmciLlV3v8JkNPHDLipBpT3ZXgFdA9uH2qLZ7EL8dfjgyB9Qc3YcyAFtWXeqO69S2eqaL5T8fSimQlmukt0O8S6tnzSCmFzcrlX70//CPW+m+nrh2tNrbS9d9zwzcgfcxRE9dqZRX9r7bCEwQlAUQftJ7WCmTij6tYHBYdzkk8R5H+xU0urctdezrztKEnthQjOVFwHdxSP1Jkdv4yr7tS/Zkm3yAAYG44mDzg39Cx7G0p4XycJAUlP0pSCs4i2LIMBVKfI0EgbMF82J1+o X-Forefront-Antispam-Report: CIP:69.169.224.5;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:b224-5.smtp-out.eu-central-1.amazonses.com;PTR:b224-5.smtp-out.eu-central-1.amazonses.com;CAT:NONE;SFS:(13230040)(48200799018)(376014)(32142699015)(9140799003)(61400799027)(55112099003)(4113699003)(5113699003)(13003099007)(10067099003)(22082099003)(18002099003)(16102099003)(5063699009)(56012099006)(4143699003)(261022105027099003)(261009223027099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: jdzfnXouUPKudO0KWIPZRq7FiDBQGwzePK2YTTgcCH3R5NBgZ2reMm4vht/Bw6XMewE5UxaayuPuZPikCQRdItfwZ/6SOjkUq8Q65p+dIMDxFyH8gx9W1Sx2iSwvnUcYbO5HKM08RizMvKXBS2ySvCgE5uLq3xz7DtW+yPxHDoNsMGWebFQqUWQj6OKQLkc4bK4MLtut7CVda/IWU2pgJgJDi8W2J56igMpEondpXya09tQu+0ov093UZFBo4PO1N92J0Ei0WzvtNQ5mvIQA71KE8P8cX4Hev3cFJnxq/4btOmtD5NL3V+6Sm8gC3Us0o853cEz/iZ8gssX9hZ/7qTHB5GgKO+ooAnw19dREEghC4WbjY1HjUG/c3i3srkn3pACqqpuBdMxKyvTFCZo+UYDyvkFx9jUx6tVXK6ZS3NJyQfCH0gUYbJezkUywHWut X-ExternalRecipientOutboundConnectors: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Oct 2026 17:09:05.7515 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2e0f6211-5080-463e-aafd-08df31285834 X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-AuthSource: AMS0EPF0000056C.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB6205 Thank you for your contribution! Sashiko AI review found 1 potential issue(= s) to consider: - [Medium] migration: void save helpers swallow vmstate_save_state() errors -- commit b01216a0ff02c1cecda9723eaf8284b060c9fe21 Author: Arun Menon migration: Fix regression of passing error_fatal into vmstate_load_state() This commit replaces error_fatal with a local Error object in the callers of vmstate_load_state() and vmstate_save_state(). On failure it reports the error with error_report_err() and, where the function returns a value, propagates that value to the caller. This is a cherry-pick of upstream commit 986c3292c6b8. Link: https://lore.kernel.org/r/20251028-solve_error_fatal_regression-v2-1-= dab24c808a28@redhat.com > diff --git a/hw/pci/pci.c b/hw/pci/pci.c > --- a/hw/pci/pci.c > +++ b/hw/pci/pci.c [ ... ] > void pci_device_save(PCIDevice *s, QEMUFile *f) > { > + Error *local_err =3D NULL; > + int ret; > + > /* Clear interrupt status bit: it is implicit > * in irq_state which we are saving. > * This makes us compatible with old devices > * which never set or clear this bit. */ > s->config[PCI_STATUS] &=3D ~PCI_STATUS_INTERRUPT; > - vmstate_save_state(f, &vmstate_pci_device, s, NULL, &error_fatal); > + ret =3D vmstate_save_state(f, &vmstate_pci_device, s, NULL, &local_e= rr); > + if (ret < 0) { > + error_report_err(local_err); > + } > /* Restore the interrupt status bit. */ > pci_update_irq_status(s); > } [Severity: Medium] If vmstate_save_state() fails here, pci_device_save() is a void function, so the failure is only printed and then dropped. Can the source keep writing the stream and carry on with the migration or savevm? Previously error_fatal would exit the process. Now the caller has no way to learn of the error. Looking at vmstate_save_state_v(), the put path only calls error_setg() and returns ret: migration/vmstate.c:vmstate_save_state_v() { ... ret =3D inner_field->info->put(f, curr_elem, size, inner_field, vmdesc_loop); if (ret < 0) { error_setg(errp, "put failed"); } ... } It never calls qemu_file_set_error(), so the QEMUFile does not record the failure either. Is anything downstream able to detect the failed save? The destination may later fail, or it may load inconsistent device state. The commit message says the goal is "either propagating the error to the caller or reporting it". For this void helper the failure is only reported. Should the commit message mention that the process no longer exits on a failed save? The same pattern appears in virtio_ccw_save_config(), virtio_mmio_save_extra_state() and virtio_pci_save_extra_state(). Their save_config and save_extra_state callbacks return void, so virtio_save() cannot see the failure. > diff --git a/hw/scsi/spapr_vscsi.c b/hw/scsi/spapr_vscsi.c > --- a/hw/scsi/spapr_vscsi.c > +++ b/hw/scsi/spapr_vscsi.c [ ... ] > + rc =3D vmstate_save_state(f, &vmstate_spapr_vscsi_req, req, NULL, &l= ocal_err); > + if (rc < 0) { > + error_report_err(local_err); > + return; > + } > trace_spapr_vscsi_save_request(req->qtag, req->cur_desc_num, > req->cur_desc_offset); [Severity: Low] In vscsi_save_request(), the failure is not propagated to the caller because the function returns void. Is that intended? The early return also skips trace_spapr_vscsi_save_request() on the error path. --=20 Sashiko AI review =C2=B7 https://sashiko.vzint.dev/#/patchset/20261023-vfio= _v1-v5-0-ba0bf3c6d122@virtuozzo.com?part=3D16