From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazon11023104.outbound.protection.outlook.com [52.101.72.104]) by lore.virtuozzo.com (Postfix) with ESMTPS id 9E7BB80E7E for ; Tue, 3 Nov 2026 14:16:13 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=syVWcYT2h3vEu01qbxEOLg/aLvoqiWkM95ItzaLtm8gR5Vxpgae7lDug87izjIMr9VUwUe9rHk6pNmKVKNPri5TX4e4wUxXSJNYc4R729HIPprd0UtmuPcimkXCtLtv+qnUfC8LOSWhzCpsfZZwLzaW5LC96qoyy8U4MtDkKoW4zk4YmNNzq1khYkRiCJPZDrRCD/Zocdd+KqMMhu8rfEK3eWeIzC9pMSiX0jReoGrqWU6+RIkV4JIYwA0cTfenMbzUOQr/gcVZb1EyRKY1NHTNn72h1ssEDjPKVDyUYYgrFXnIkXzew5USISXsywHwnwcylEnXGtd8XU0Go6VsvJQ== 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=YKIvQlNxA6WNvu3ZYMK+DZNT1oCn3/QlVpAsjJkz9C0=; b=DzBohopdn9KuSJCu9WA6ChWnpS80roDSVtJM/+iYt0F/6R71MwLvRMGiF+8PLfMcVJRKz8KvYtRopHItdO8vuFBeKaPtpqASA3b5QWUrEv65U16Iq9+KOHKVrGRMQNPW2GemzEy2dI9DZVqbW0IYV2uC5Ka3nVAUQxPmc6gvYlXUwYntYkBO1Ba1tf6Ehk1Ja/2rvaoD11LH0rPCceY8f60VjDIA0HxRQzsBCjcZdiOIOhaOZPuTolwgUE7VHCGYKeliJtootf/tdoo0bt7s4GcTTnrRy+OhrmmZaZnYdh8I2EI0NzcexMGRkNGjVi42mRJaQ+RZtxdZCvCy8Gt6fw== 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=YKIvQlNxA6WNvu3ZYMK+DZNT1oCn3/QlVpAsjJkz9C0=; b=WKp7c+okGMcerKW9LpdeCMCy3ER2hpYX1JLWqikncpfduw08KuKOJnbY/u29Z3j6QZ7oYUhAlBDBMfDrJtFjH0F+ItXBBJUkSio3ijSRUup6a0tdfRUtelENzxLkpAhhMMJjgk1J66WA7J7hxLD7S0iQQ2dsXoD2nMtYBCz5QgA= Received: from DU2PR04CA0164.eurprd04.prod.outlook.com (2603:10a6:10:2b0::19) by VI0PR08MB11514.eurprd08.prod.outlook.com (2603:10a6:800:2fd::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.569.12; Tue, 3 Nov 2026 14:16:09 +0000 Received: from DB3PEPF00008859.eurprd02.prod.outlook.com (2603:10a6:10:2b0:cafe::3d) by DU2PR04CA0164.outlook.office365.com (2603:10a6:10:2b0::19) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.569.12 via Frontend Transport; Tue, 3 Nov 2026 14:16:08 +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 DB3PEPF00008859.mail.protection.outlook.com (10.167.242.4) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.592.5 via Frontend Transport; Tue, 3 Nov 2026 14:16:08 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=23yjbh4k34hwzfubhuiim7m4inbd3ick; d=sashiko.virtuozzo.com; t=1793715368; h=Message-ID:From:Subject:To:Cc:In-Reply-To:References:Content-Type:Content-Transfer-Encoding:Date; bh=TBChosBFt2+6XpG54X/rVwNzJd18B/Mg/Ezpl0rRRrM=; b=jV6GLanpC09ChxxV8OphZkGolKNvE8kY8ZFJgp1LIXbNoP6W+ZCub0StiaVckcgw YxPH6pWR2oF5QHUM88MiPytco8KeKoN7i4xWJCO4drSgG9oFTqZ0lWTBIu+v9NNXOPu HQqi2ho76WJdtii2FmX789BJq2pmL4RE0URevdZcFqPGJuDLYAmvfWmcQEkD6LDxYGc gTAA93VWqad7lpc1TcUEMK6VtTu3NqvIBkpudrmJ00DOV3gJeEL7JJaSIjPCz+fcFBi mnRYTuidaTc7+JFm3VdxoprwzyDzGsEIzHfYaYlRVi6rFtrnPLL/JX14TP1J2+59/Sh gRCCTdz2tw== DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=qftdzk2dqsatjnlrq4r5brjbihpfcrsh; d=amazonses.com; t=1793715368; h=Message-ID:From:Subject:To:Cc:In-Reply-To:References:Content-Type:Content-Transfer-Encoding:Date:Feedback-ID; bh=TBChosBFt2+6XpG54X/rVwNzJd18B/Mg/Ezpl0rRRrM=; b=hZHnGinWt4ZP9/DKCQkvQ38cbSijHew0avVvZlBmGVk9w4uEcDID3TVVh730fCIS cXwlBhqYRYFd444jdBmhP4VNJvXVQ7CNCzovnHrLsOHThzWcO53yjX4VsCLtYQcD3eh a97vBpKjiMlGaFnnswfi5QLxHvCI2KIHRFAqgrdI= Message-ID: <010701a1a1c470a1-8a847883-5c16-48ed-a0cf-78f8d2d5662f-000000@eu-central-1.amazonses.com> From: no-reply@sashiko.virtuozzo.com Subject: Re: [PATCH QEMU HCI-8.1 v7 19/35] migration: yank: Move register instance earlier To: svt-core@virtuozzo.com, Andrey Drobyshev Cc: andrey.drobyshev@virtuozzo.com In-Reply-To: <20261103-vfio_v1-v7-19-4467fdccbbe6@virtuozzo.com> References: <20261103-vfio_v1-v7-0-4467fdccbbe6@virtuozzo.com> <20261103-vfio_v1-v7-19-4467fdccbbe6@virtuozzo.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Tue, 3 Nov 2026 14:16:08 +0000 Feedback-ID: ::1.eu-central-1.2wRQJBpg9g1fGRYexx3dUuYGS25Bux+2TEOx72/m6U4=:AmazonSES X-SES-Outgoing: 2026.11.03-69.169.224.5 X-EOPAttributedMessage: 0 X-EOPTenantAttributedMessage: 0bc7f26d-0264-416e-a6fc-8352af79c58f:0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB3PEPF00008859:EE_|VI0PR08MB11514:EE_ MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 5d324dd6-96d7-4388-96f8-08df39b50187 X-LD-Processed: 0bc7f26d-0264-416e-a6fc-8352af79c58f,ExtAddr X-MS-Exchange-AtpMessageProperties: SA List-Id: svt-core@virtuozzo.com X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|61400799027|48200799018|32142699015|376014|9140799003|56012099006|4143699003|5063699009|261009223027099003|261028144727099003|261022105027099003|261026121527099003|261026140227099003|261022075727099003|10067099003|22082099003|16102099003|18002099003|55112099003|4113699003|5113699003|13003099007; X-Microsoft-Antispam-Message-Info: 76yeLuK4izQzPjgtThtydUf26k7gaO+VAZSXE0aiyWkwdtClTuatrQzveptP+N6P/+EJ5lzEr9c03CeGa45yujjRpMHKDbhvvyrxK8Z0NWE7EsMXBkTGwQ2QcLyhb5fGpCAfqhypjH2go53UfdWRSBTZisymz+RLAxEy18XMPa4gtIcxe+08OQdKV4igvzNhf5KILOm2zepr9I4K8GzOXJhEHzoMdnNbeuJwbsVn3vYeXffMi+lVSTUc7wYJs5zcUvsWOqjwPlsv/d+nyJYNO3a1TRKr13qhMeF9gkJWNoCgm0XIpjsMXRcVR4VEyBvCGmw7l1PwV+YVvN2qp7yJvyZHQmJWSSDfJa5j5ZlAjn+sE2WCccV7oZi2mH9/SXZQo80lNBvLPnq/N/xUXqVQ+SK15iET0vOq+0BvRalpFQxN8Fg2g/OaaePQUavTDR4C4pbbGr2VlFnTNjiWNYom7nDYvs7QkIqHfRe8BiWkngvLhVkdbXAMKJ9knE/2to7RC3KWKITWzUZLkKNgZeImpRzkuDuQqSrsGY+55VHfzJoGl15Lxr+4cpKtSaiF4hcRS7SC+GYO20kN+CiudQctaA3DJA5JsfZNCLNRul6+YLgynCihzk6lKgZ3WlbDes4z5vTj7uZQ/BSKH8Eg1ftmXkG7J4mfVL54zbnJI0yAeWxpsLkQ3a6PbdqxCLIZq3MbibuxqRncl2zjrCoin1MHIb4/ToSHHM/wQNUG2Yrr/Zh6JDNTfDC5cdUM/bG2BUAcmyD1AQVNM4NBxmI5kQlfHl2ZzYiEPwMd8rvvKHKqZMUacr1SzSeLntj2u8NGYFLdFQSpEHWfTLdjHNU9+ZheYFvG0tKiCZQeRvwcZxdW3Yna5EZuqR7zZm0jaGNK7/cudYLPqIgy+IHM8Hyc/pzHQ9maoFA+yDt7mEHd5A4fQZw= 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)(61400799027)(48200799018)(32142699015)(376014)(9140799003)(56012099006)(4143699003)(5063699009)(261009223027099003)(261028144727099003)(261022105027099003)(261026121527099003)(261026140227099003)(261022075727099003)(10067099003)(22082099003)(16102099003)(18002099003)(55112099003)(4113699003)(5113699003)(13003099007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 2EHju08XLlie9Y5PvbuWLo5WmVaclCLasv/9gm2CmyNGOZ8BLO0kRsAIa8d9aPtkHVA/y08jEi6ZOfDU43Bo/AP2ulWnOPBFHNCV0e/J39TNu7Am9haRsrPcRwPVG4n8/GTdVxtTAZLZMr1KndjrJucrwA9Oz5dFMLV2qHgn7Z/PtIyiRVi8992DzymFQcbZVoOzjoNBA9CMSwVBEHQ6cu0gJLIIdBuwSut47zsK0C7stDmAelJX9satxNhQoJAtBdkRFKxUF589Egy+tXMoN2fiW2yJFbtaREZpm9e5If0k4doeHvpMOApRBnObX2z8qfxvKa/OPIvh+COYhZz3x8i4csc6S9UxVqB2NZg1OnQyOWHAOwjMBka9wxstPqYwa8cKJThiI3p2Tux0EYNA40FLroKSNyuxMnW5cr7rAIMxLN1JqFc509t19sAKzJst X-ExternalRecipientOutboundConnectors: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-Auto-Response-Suppress: DR, OOF, AutoReply X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2026 14:16:08.6541 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5d324dd6-96d7-4388-96f8-08df39b50187 X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-AuthSource: DB3PEPF00008859.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR08MB11514 Thank you for your contribution! Sashiko AI review found 1 potential issue(= s) to consider: - [Low] migration: qmp_migrate() error path after migrate_init() leaks s->v= mdesc -- commit 1e8fe270d4e6c35191003521d0feb94edc80e4c3 Author: Fabiano Rosas migration: yank: Move register instance earlier This patch moves yank_register_instance() from qmp_migrate_finish() into migrate_prepare(), so it is registered before cpr_state_save(). It also adds unregister calls on the qmp_migrate() out: path and in qmp_migrate_finish() failure handling, and refuses migrate during incoming postcopy. Link: https://lore.kernel.org/qemu-devel/20260123141656.6765-11-farosas@sus= e.de > diff --git a/migration/migration.c b/migration/migration.c > --- a/migration/migration.c > +++ b/migration/migration.c [ ... ] > out: > if (local_err) { > + /* A resume didn't register it, see migrate_prepare() */ > + if (s->state !=3D MIGRATION_STATUS_POSTCOPY_RECOVER_SETUP) { > + yank_unregister_instance(MIGRATION_YANK_INSTANCE); > + } > migration_connect_set_error(s, local_err); > error_propagate(errp, local_err); > } > } [Severity: Low] Can this error path leak s->vmdesc? In qmp_migrate(), migrate_prepare() calls migrate_init(), which does the following when should_send_vmdesc() is true: if (should_send_vmdesc()) { s->vmdesc =3D json_writer_new(false); } If cpr_state_save() then fails and control reaches the out: label, only the yank instance is unregistered and migration_connect_set_error() is called, which just updates the state and the error. migration_cleanup() is never called from here, and it is the only caller of migration_cleanup_json_writer() that frees s->vmdesc after a failed setup. The next migrate_init() then assigns a new json_writer_new() to s->vmdesc without freeing the old one, so the old writer would be leaked. The same shape appears in qmp_migrate_finish() when the connect fails, since that path also ends at migration_connect_set_error() without running migration_cleanup(). The commit message says the goal is to pair the registration with migration_cleanup(), but this out: block still does not free s->vmdesc. Should the failure paths release it, for example via migration_cleanup_json_writer()? --=20 Sashiko AI review =C2=B7 https://sashiko.vzint.dev/#/patchset/20261103-vfio= _v1-v7-0-4467fdccbbe6@virtuozzo.com?part=3D19