From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <010701a19be2987f-0e4c23ae-d103-4eec-b53c-857db3e0698c-000000@eu-central-1.amazonses.com> Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11022116.outbound.protection.outlook.com [52.101.66.116]) by lore.virtuozzo.com (Postfix) with ESMTPS id 9785B80E7E for ; Mon, 2 Nov 2026 10:51:27 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=lvV37GXxl75hwi6wKFHQ6OL/Lr+PRhh4KB0Un7rfIWDHJGLt1SX6NbUNZFH7ujDy9i2fB8n2x0erdd12LU66zg5fpCiaR50fDk8DLi03GvEyPnNegrAFpXiORzuCdNW1SNFLlOC/zTc9ZYCL5GzV/e+LP00izA7FrepIWeHLIAhEGIM76FElhplS/j+Rk4atlzCp5zKAhlqWOnFhIkAWkW/5SejuLYlPXL9Stt3lf0BHBs8S/8cnViiQRM8baqJ6WIBxPLSWbAyTvK5KSPWlVRDQJFkCYmAz4Rtqybk+J++4VZX5rHWzm0h77JkkRXNyL6GI4G0oNIlprJ0f+5OscQ== 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=mEM5RCR80AZjcUjK5OFM21CP6E1G9ip2kxrIJ3GuRRQ=; b=yo2dvd+mOgJ5zHNH7EqR/nkQxO7w1LurzuhFiRi1S4Tvh3ksyo3f9EWJDPXJxLau70i+pqhummqhKHJG+f0XC90FQdH1Lcc27zHgOMykBVwh8cbFXix14IiheOPv6tty/SDMRCVUZy4OAMG1JknOGl4CUllbqedfjbUsCMOMj8T6JuYcS3zBpy2Sl/GSDahFJarIM8PUeRw7Hk0xQ4FYe0sm1MhAqI2FgHT+ePU7e5NQs6XPIGTtQbx6hTiVLd8oJib45KcMkHHnLoh7KgkxiTQNmmjyhNw+i8rNdT2EpkMTW+hy4o2J1wMuevcMkd6yAgFh8kUYt9aHhXOggokDUA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 69.169.224.1) 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=mEM5RCR80AZjcUjK5OFM21CP6E1G9ip2kxrIJ3GuRRQ=; b=NUwXlKVfmOcQDnU8POYT6nav5DB948thcCJF0bdV7BPg9pN601aYaos7vPiPwcGcd2E9IPrm8wRYz6U+Y//WbQCPcmC2kXKbWIBpezmSxZdrC70EAPjdYHlkvpWerLFWfsnB+r/qQWlSRQ7n6LRKkSpikznNDMVRUH3YVAnXwHc= Received: from CPBP307CA0019.DNKP307.PROD.OUTLOOK.COM (2603:10a6:380:2::7) by AS2PR08MB9046.eurprd08.prod.outlook.com (2603:10a6:20b:5fc::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.569.12; Mon, 2 Nov 2026 10:51:21 +0000 Received: from CPH1EPF0000051D.eurprd04.prod.outlook.com (2603:10a6:380:2:cafe::55) by CPBP307CA0019.outlook.office365.com (2603:10a6:380:2::7) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.569.12 via Frontend Transport; Mon, 2 Nov 2026 10:51:21 +0000 Authentication-Results: mx.microsoft.com 1; spf=pass (sender IP is 69.169.224.1) 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.1 as permitted sender) receiver=protection.outlook.com; client-ip=69.169.224.1; helo=b224-1.smtp-out.eu-central-1.amazonses.com; pr=C Received: from b224-1.smtp-out.eu-central-1.amazonses.com (69.169.224.1) by CPH1EPF0000051D.mail.protection.outlook.com (10.167.241.232) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.592.5 via Frontend Transport; Mon, 2 Nov 2026 10:51:21 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=23yjbh4k34hwzfubhuiim7m4inbd3ick; d=sashiko.virtuozzo.com; t=1793616681; h=Message-ID:From:Subject:To:In-Reply-To:References:Content-Type:Content-Transfer-Encoding:Date; bh=TU9Eyc2547/gMDDTXB1PESgZzLiw+wF2vdF4UbBEqg4=; b=dYl50PFQ9xjqnGNL22AJH5KXTHNIX2RfJZDzVSSYbNaqvVTyFDxGUhMqnvMVrfL8 3oD/jvJXcv1eT2+GuCWAuBqEeF/1HQoXo6Qdff1srqn06ltCpeXG2D3VTGOy2fH+H6R NH3is++vjqr0zlKaj6XOCXPZPCP5pCUT6tpP8CHqWpn6L2Snf/cH/YbEYB09jkhUER6 RMdA96XkxAjOAYRQ6a38aG0K1E099/b4UJOSZGJxWbg2SbH9l+omTQN1t116dHtJKVk yUFpO4DD8YUv0PFVyMnMhUnincLatiUja+yC1zleTcYqKRYp6d3e0JLG0Fn6ntHNrr2 v/XPZ1G4Og== DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=qftdzk2dqsatjnlrq4r5brjbihpfcrsh; d=amazonses.com; t=1793616681; h=Message-ID:From:Subject:To:In-Reply-To:References:Content-Type:Content-Transfer-Encoding:Date:Feedback-ID; bh=TU9Eyc2547/gMDDTXB1PESgZzLiw+wF2vdF4UbBEqg4=; b=Jj5rcrgtv5p1uLkReeyL5mHyhE6vDjL5QkZJDtULvgXfanVghCVCeHkPOP9DDO8g hE2/8fpsWB30ecr53O3sl7gVRqI4vp3CDk8cdoacd9+Mq6iTAADYmpbvEPj3Y8/n1PP rnUk3A6eqSqHfPSRdn5qIo/lwO0hTih/s7QOvgww= Message-ID: <010701a19be2987f-0e4c23ae-d103-4eec-b53c-857db3e0698c-000000@eu-central-1.amazonses.com> From: no-reply@sashiko.virtuozzo.com Subject: Re: [PATCH QEMU HCI-8.1 v6 16/34] migration: Fix regression of passing error_fatal into vmstate_load_state() To: Andrey Drobyshev , svt-core@virtuozzo.com In-Reply-To: <20261102-vfio_v1-v6-16-9bc7cabc850d@virtuozzo.com> References: <20261102-vfio_v1-v6-0-9bc7cabc850d@virtuozzo.com> <20261102-vfio_v1-v6-16-9bc7cabc850d@virtuozzo.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Mon, 2 Nov 2026 10:51:21 +0000 Feedback-ID: ::1.eu-central-1.2wRQJBpg9g1fGRYexx3dUuYGS25Bux+2TEOx72/m6U4=:AmazonSES X-SES-Outgoing: 2026.11.02-69.169.224.1 X-EOPAttributedMessage: 0 X-EOPTenantAttributedMessage: 0bc7f26d-0264-416e-a6fc-8352af79c58f:0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CPH1EPF0000051D:EE_|AS2PR08MB9046:EE_ MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: f7c07be1-9803-40b9-4117-08df38cf3b78 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|704161411799003|376014|61400799027|48200799018|9140799003|32142699015|4143699003|5063699009|56012099006|261009223027099003|261028144727099003|261021121427099003|261026121527099003|261022105027099003|261026140227099003|10067099003|18002099003|55112099003|22082099003|16102099003|5113699003|4113699003|13003099007; X-Microsoft-Antispam-Message-Info: jvXZeKM8mMVs/w69CqUbKj00BrWd+NqLIxwAJX4IvVpTs3oyuDWyw1fNDd8/rIqH1g0KCsLdqPg94TsDmb++W5g1lmTXEPbPy7OzwMraNGXzbOBvULe+Iy7hrx3eHyfQYCbdxhFKYFA24osUG6IxOBk6Q0wz/ZHt0+L7mDtZxI5CXZdy5fzgHiGwKo96BPZGcSbVs0MGG3Q1UayE2KPvixtIs9BRGB/vc3I3CD4c5i0ERw+4aHk6quB69ugAa2Max5tEx6L4biDHDL9mH62zJcUfbWSjToZ765v4GCX8B5TP25D88GtDH/p9zrgp3UiCJKrPwMhEKSsdUbEEV37OdDf2rsXljraf4Fn3ZKcfI9fO6XHU12O4ZCC9PIwtWCex/vebOjEKiG/1BJqUFLDDey+bzu+ztHXkjwEKBpd+QvB3ZjAkr0YicG0j+aF1hWG3v/22ZQI8Co8xg4FFr+JV3DGH5XA8rTM9xvm/+mmH46BQdeETmBUhNzg1wh5NZeRPLjO5aKoiumixdxaynbAOOL1A+jHaQc8ttVkfbK1W7kHSZtm4yjSVW3zTHnRubiKfeRchQpcOn9ciYcU1oNxwOMxo7BlpJLMdFMBx43+8CecMzIdRgGmLPjVeKdP2vtvZYirnPut6POoficdpDNhDOWkjmxg798eEkA1iWCyDe6HQr0xnaofegfVm4qiF6bIRDDHr2bMGj/FLTg3vvZVIGBi73FzWkoWiUfOJhnSXoy0auCO0iHxeVtGMGUsB0aoj+TtYueYyjneksPS9cfTc5mlI4Ek1QZiZlL/qtW3hAUZOoPxFZc3KfGY/lwiLql+Y X-Forefront-Antispam-Report: CIP:69.169.224.1;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:b224-1.smtp-out.eu-central-1.amazonses.com;PTR:b224-1.smtp-out.eu-central-1.amazonses.com;CAT:NONE;SFS:(13230040)(704161411799003)(376014)(61400799027)(48200799018)(9140799003)(32142699015)(4143699003)(5063699009)(56012099006)(261009223027099003)(261028144727099003)(261021121427099003)(261026121527099003)(261022105027099003)(261026140227099003)(10067099003)(18002099003)(55112099003)(22082099003)(16102099003)(5113699003)(4113699003)(13003099007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ZBbwLqCs9iHYJcKoIv4EqvRrvW6vPCUvKe82L8MYfsvG+EL9zio0ZmvI/IKFNGP9KsjcJv+v1aI9WVdoZdBphx5ewU0cy9G7qeLVAsICAnKnxB+8+tBH0SmHGGvDxBuwjqpCszzzklLfIKL9IUkqUJgA8M29VjTvGYuelwQZjf8ahsNmxs/f0hxG5bwB6C9auBQtwP5BkdW9DobXMX1r8Go5hLchTajaJTf/844GtBpMmnqtDVZ0mjgO43fLmB0c+3F1fo/4icCGLyN4lIUhFUvQVwb9qdjl1TEBM8msDRMPmNfsrS3J/abTDYMa7X1T9blhv9KQw+4tD1LarvS3dqe5QHfS+kgOrHd0OdRPuB3Ycj0DNUxN+2BP6c/j7lZzdboVdze+dXtuj4qhTEhW3Egi+DFAxnX7mE/bVqPdAzVvTRRzv1gbVg2hteVpuDwo X-ExternalRecipientOutboundConnectors: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2026 10:51:21.6165 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f7c07be1-9803-40b9-4117-08df38cf3b78 X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-AuthSource: CPH1EPF0000051D.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9046 Thank you for your contribution! Sashiko AI review found 1 potential issue(= s) to consider: - [Low] migration: void vmstate save helpers log failure but do not fail th= e stream -- commit d292a4854a94c2740197418260667f472e5aac86 Author: Arun Menon migration: Fix regression of passing error_fatal into vmstate_load_state() This replaces error_fatal in several vmstate_save_state() and vmstate_load_state() callers with a local Error object. Failures are now reported with error_report_err() and, where the function returns an int, propagated 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: Low] Can a vmstate_save_state() failure here go unnoticed by the migration core? pci_device_save() is void, so on ret < 0 the error is only printed and the function carries on to pci_update_irq_status(). Looking at vmstate_save_state_v() in migration/vmstate.c, the failure paths only call error_setg() and return ret: if (ret) { error_setg(errp, "Save of field %s/%s failed", vmsd->name, field->name); if (vmsd->post_save) { vmsd->post_save(opaque); } return ret; } It never calls qemu_file_set_error() on the QEMUFile. Before this patch, error_fatal made QEMU exit(1) in this case. Now the save continues and the stream is not marked failed. Could the destination then receive truncated or inconsistent device state? Would it make sense to call qemu_file_set_error(f, ret) in these void callers? The same applies to the other void callers changed here: virtio_ccw_save_config(), virtio_mmio_save_extra_state(), and virtio_pci_save_extra_state(). In the last one, virtio_save() keeps writing the stream after the failure because the save_extra_state callback cannot report one. [ ... ] > 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 [ ... ] > static void vscsi_save_request(QEMUFile *f, SCSIRequest *sreq) > { > vscsi_req *req =3D sreq->hba_private; > - assert(req->active); > + Error *local_err =3D NULL; > + int rc; > =20 > - vmstate_save_state(f, &vmstate_spapr_vscsi_req, req, NULL, &error_fa= tal); > + assert(req->active); > =20 > + 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] Similarly, in vscsi_save_request(), the failure is reported and then swallowed with a bare return. Can the request end up partly or wholly missing from the stream while the migration is not failed? The later series patch "migration: vmstate_save_state_v: fix double error_setg" only changes the error message text. It does not set an error on the QEMUFile, so this still looks present at the end of the series. --=20 Sashiko AI review =C2=B7 https://sashiko.vzint.dev/#/patchset/20261102-vfio= _v1-v6-0-9bc7cabc850d@virtuozzo.com?part=3D16