From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from GVXPR05CU001.outbound.protection.outlook.com (mail-swedencentralazon11023123.outbound.protection.outlook.com [52.101.83.123]) by lore.virtuozzo.com (Postfix) with ESMTPS id 724868045D for ; Fri, 23 Oct 2026 16:54:34 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=PcvafAB2OWWaAI33DKooXtWEKJde+Q1TvnbFBb6CopJoD3m0JfSphG4jgiMvreK4A3TfjLO/FgfLJbu+uA1ByUWfvfBHMnqUICPC8T0n7ACONypDre1w/G6F9vnkC6OEhraXK9I/ZgeUS74QJYwNBrJ7IZ6VcMtEvdtJikObaqjjG1XYA5IoF0a4B+l3fkt9nxvdNW8kY0AjNeQBLhhEKpHaXCVj1MgT+uqHUC5/jqmNiPUur806ifTpRCmMk8HgV+TS9FBGR0WUypqXNTIj0SpkkecPSqOZe5SNwxVL06NBxKtpD7lRJPKm9wL4DNQY0ZDQ05Zy0u+QELu0fvmsrw== 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=wG3ajVUjQj3kBVQEpUmW6raBI6ng966539Lvg6czc+4=; b=Kz5xNE29lVx6d/n116s8SLEf5GPDxmVEN0Z46golVS44EpWaUnlC7iIMhaeURKQSK+9PVxo3oVggLkRmO8pcxaopU1GIJppzuJZqnf2xjE335j3YZbRbML2m6aRgpsgHXMQnDwZ3C2iBQQZMyaLNwhHSVcMT/imYtzbLIsgZCk7Ndl/Tor1Sf3KXjE24ajqt29v+Q2aVAtfU6TgbfPXPXfxlzSoZc+XRcY1dNDvZxKGQmQfKJ8Ha5PudDp3l5qVs80t4Pak0LE/hpqWjf2fKjAlY20xnUSJFOZNTzfXizbyqeboJ1wMlPI51SrnJ3zHfLHrFxn3Kp12gvkD+9rfRGg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=virtuozzo.com; dmarc=pass action=none header.from=virtuozzo.com; dkim=pass header.d=virtuozzo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wG3ajVUjQj3kBVQEpUmW6raBI6ng966539Lvg6czc+4=; b=A/BLKpkm9glCSyzTrLTuYepmfZG1ilLI7eFv0VIBA/dE5xz3ep03dQkMyvzVzLKjUm/s6g2rGeqi+mywPbEv1mJIQkckQkB4eayHasTWljrD6N8NnchT8PPPG4ImNL8NAFAVZV8dF06HQ+TDXXtuXynKd+JmLGarpM6++dcarpwIUqXEBnN/IksFDdrG1RBc2m6ewH6pRccwY2uMJ8KbTse0pm19KY4DpQF6lKbmhnagJyGEMhU7Y+38ZASzvOjzLF7m4UCHwAlz4tNwqVhyczWO15o+e9PaOOdxCnAsfNWyeTJBh5rzdvRGCKd/PYaKTZwlP7CQe+a1ncO6EjRXYg== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; Received: from VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) by DU2PR08MB10065.eurprd08.prod.outlook.com (2603:10a6:10:497::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.546.15; Fri, 23 Oct 2026 16:54:32 +0000 Received: from VI0PR08MB10656.eurprd08.prod.outlook.com ([fe80::4e37:b189:ddcd:3dd8]) by VI0PR08MB10656.eurprd08.prod.outlook.com ([fe80::4e37:b189:ddcd:3dd8%7]) with mapi id 15.21.0546.017; Fri, 23 Oct 2026 16:54:31 +0000 From: Andrey Drobyshev Date: Fri, 23 Oct 2026 19:53:43 +0300 Subject: [PATCH QEMU HCI-8.1 v5 06/36] migration/cpr-exec: close the persisted state if the channel fails to open Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20261023-vfio_v1-v5-6-ba0bf3c6d122@virtuozzo.com> References: <20261023-vfio_v1-v5-0-ba0bf3c6d122@virtuozzo.com> In-Reply-To: <20261023-vfio_v1-v5-0-ba0bf3c6d122@virtuozzo.com> To: svt-core@virtuozzo.com Cc: Andrey Drobyshev X-Mailer: b4 0.16.0 X-ClientProxiedBy: VI1PR0902CA0027.eurprd09.prod.outlook.com (2603:10a6:802:1::16) To VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI0PR08MB10656:EE_|DU2PR08MB10065:EE_ X-MS-Office365-Filtering-Correlation-Id: 07a6a958-5396-4c99-d99d-08df3126472d X-LD-Processed: 0bc7f26d-0264-416e-a6fc-8352af79c58f,ExtAddr 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|376014|366016|52116014|1800799024|23010399003|261021123027099003|261022105027099003|38350700014|261022075727099003|56012099006|5023799004|261009223027099003|22082099003|18002099003|10067099003|261021121427099003|5113699003; X-Microsoft-Antispam-Message-Info: KiOdroZEpAnjZOWIZNrOn5DRCSWurU8bFuALnx7ZE7z6dflxbJZlFmhKtdftZSPJ+dbonfA2XXVWxx+VhvPfL+qSaXct0tntcPQYskaRlozVqoHM+CS8EOZqef+iDqOtvJ6sad4ilBHutjxyRN7SXkbUz5wV78mIHSAgufWGXV4T40rQDP9NOxBZjfgpj+doNvIwazmyXNg8/rX0kFpo2CAs4dGdebpx5df+LZ32QktskHJlu+rM5jcoyeD3msCdFqDDV4C2qLKejYKWIYBOVlSNGJ/P2BJvjNKKh3JX/mMuIrVe1dH497qKQgaac+IEgBep0Vsa4SWmVXv0KaeKv+FfTLIFjK2o380bvNtyJiW3UiHljSOt0ugl4CbqoQllxxCYQBi9RE4F9di77yKF3O0jd3iZk9riiOYjYp0M0bymu4V4nC0ncmWFnzldJ5qR2MTYwMLQv8yVge6U/mYu2JH6QSFGoP3jCOmb+fxbcR0sqHdfIgZ4NuwouCPSFxAZFUPKZxaX5VSYw462YkQPA7U7u4iqIU77FpkYv5zN9tgQKF8ifGBrUehnGELCmC0p3IXUQ6r2BBaZiQrCfVCqNBJt74RaYCAGpAA7uOqHYtn3UT5t4Zxjbg6fGebMel0SfODobT8BaRt44tretU8aDKFzH4Y2IY87Du763PIwWtAeTCBpzPbUjMF0ooLin0nujgWJZOa42kdvapSE6a/OhSewo10S8UyK1bQP/QP2W4s= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI0PR08MB10656.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(52116014)(1800799024)(23010399003)(261021123027099003)(261022105027099003)(38350700014)(261022075727099003)(56012099006)(5023799004)(261009223027099003)(22082099003)(18002099003)(10067099003)(261021121427099003)(5113699003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dGtjWmpTZGthdFkzRVg1M0NaK2pHVzB0dXFHOGV1MlFSTFlXRy95cEN5TVFr?= =?utf-8?B?SEtkTXBQdFdwUkxEaEd5eC9xZ1ZFVGlyTklYYXl1cCtQeHR2dk41RWNzUU84?= =?utf-8?B?YlZDb0RwQnpITWkyalhxRXpxUW00UkVhOUhnM1FhSmFsNTdBT0xyWTZ3d29p?= =?utf-8?B?NnEvRWdBU1R4d0VwMzhBVFI5aWkwWmx1WERMdkg2aU16d09FaUVXMm1OSWEx?= =?utf-8?B?V0hTUVFyVmVHWDRvYklxdUhIdHZIbW5KYmtiaTVsTTNKWjRHTDFoME1GOTZm?= =?utf-8?B?TDRkVzR5Tlg1cmVGVXYrQzR2Q1JKdndFWER5Y2t2LzhyOHRvNGVxeDZoSnQ0?= =?utf-8?B?clh0NzdvbTJpN0lyL3ZuYTZEY1JtWERGMFN5MzBXd2JueXRrQzJ0Vjl6TC9q?= =?utf-8?B?TWFORksvWlY0eU5aSDU1RGxRc1NySnBaL3A4VFN1YlZaVjcvNHJWaHVIWWtZ?= =?utf-8?B?N25mVGx5VnNwRElONWliTGlZVytERkRlaFNROTJsNzBpVzdKSk1kZ0U4cUJp?= =?utf-8?B?NzBwYjY0UkVnSllBZVRjWklqam9GMStZVzlPTXBjTHRKN2ZhQnRsQzU1VGdX?= =?utf-8?B?WnpieWovYWFUOGlWaXI0cXZQSzJpN1lNcFZIZlNFdmtSdzFMOVF4YWlLWmhH?= =?utf-8?B?K2hKOFN1M2RHVkNJOTUvSlBhVFhWUmZaOW5ZWkhFQ29hVm1FMzZ1ZTlwcWFi?= =?utf-8?B?T1FJdHNUa0U4TFVkbEZSZHJpalRLSEVSUXdpVzZTamllUTNjYmppakpzcXJH?= =?utf-8?B?NFg0VjBIMWszb1o4dG5tbi9JQkRKRmViZGZVNExjWENSZ3Baa0piMVRrd1Mr?= =?utf-8?B?MkFmbFcreERFK08wV3duVVRydlRJK2J2cEFhdmxjTWVpa2gwUGgyc2lvWG82?= =?utf-8?B?UFFQTzdWTVo4ak9McUMxcVdQbkFqMlVFU3JYcjdYSTlZZGZvRERXSzdoallJ?= =?utf-8?B?eEJqalpvQUtIdWdVTThIZmw2VUFDRmZDdnJ4YjVSdUVaekN1UEdaSkNDUHJj?= =?utf-8?B?eDhsbUxlU1FFWDNTY1hRTzNRNDZnUlB5OS9XTkNwRnZMVzNjL3lYYmxIT1ZH?= =?utf-8?B?MkNIRzVudDlnUzE3UkdtTTVValZHSGxEZHlOcGtpYjBhVVRuS28rN2xwU04x?= =?utf-8?B?VXVYTDJNUFUwUTNYR2JNQlo5SWQzWnFYMm80cXM1U1RCM201dzlkZjFRMFVh?= =?utf-8?B?cHhaTWNkYjlPbVlvWFhKY3F5eWhKV1B4OGVNQlQ2QmluTW8wajhDaDFZcENQ?= =?utf-8?B?cURGQUxnRmFmK3NsalhHbW9haTVZeFVrS3V4MnhSdXIzY1ZMVDBtUDM4RE0x?= =?utf-8?B?TnBkRXdESEhuUklFUmZiSkRzVEdhY25LYWhKWFQ0RDA1WE8zYlJCNWo3VTNF?= =?utf-8?B?c0FvQkJJMkIyenRtZkV5dVhUZmxaMmxiSHlkV1A1YllOV01WVGY5bzJrNG1x?= =?utf-8?B?Q2hRNXBFZWFJUm1UU0FrV3RxbW5ZaytUcUdOS3lOcWl5VW0yWHVialhSVisr?= =?utf-8?B?VmNVTy9FT0V2ZzI2WFUzNkFRUVJiNVVvWGtoTDl4UTNUQVVjVjk0bTZVRlBh?= =?utf-8?B?Mm5ndHBZZkxLRWdONTZvcml5S201REYzU1l5YVFVU01NVm1selR0ekdHazht?= =?utf-8?B?OXg0ZDhTVStRNWtGYzZHZGJkQXlBSlkxQzRPeCt1Q1JlVDBCS0xwYTdlZGR4?= =?utf-8?B?ZlJNS00rSGxZZUtpMTM1a1VZU2xBVWZZZnRZSVVZVFBYa2JaWkkwbU43bkJm?= =?utf-8?B?VldTVVRTZzlpbEZXVUt6MkFyRDhLVVFOdTdCUnprRmpsVnlrSVRkSzFuZjJ6?= =?utf-8?B?T1J4a3lBVnppM3l2RTVza2xyV3hHZkl3TDRaaVlJOFIxUk9KUDgrK2Uxakpq?= =?utf-8?B?SWFsNEgycEM2M2IzNlVjd2k1L1ZMTTNlVG5Dd0ZaT09pMTd6Ynk1cWZoUG85?= =?utf-8?B?NnBvUGFqVmw3OCtHZE5oNFAraHhpVWZYT05URkNFUkp3NG9iN0Vsb2ZYOGNY?= =?utf-8?B?cWNsaE1SZDk4SExpd0VCM1haMjVwSjFvbnFURTcxK3IvbzFPRERnbW5Nejdp?= =?utf-8?B?S0FSdk92MXAyRmhRQ1orcTdmNlY5L21kUDVSNXBoSTZYMWRaWllvd3JXREk2?= =?utf-8?B?d0h5RENHTXBVbytjWll1OWFSRHJkamdJcVZBU0JseDJMdDZlSm14OUlvRWRP?= =?utf-8?B?UzZwbkh5YWQ2WDBpUGNtQTIvdm11VzJ4SW5MSDRUdnl0YUpENmt4aXEzUW5m?= =?utf-8?B?QlBSSytMUkxMdDdxN0ZqMVVGdVJza25kSFZEbzJVaUhSQ0U2UHBwQjdoTXpG?= =?utf-8?B?b0JrdXdLblJQWTc4UnUvRUFxSkFaUVFwdzRWdHFXWStndnVqV3dqWm1XT2ow?= =?utf-8?Q?SeZcFj23bD9L7sc8=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 07a6a958-5396-4c99-d99d-08df3126472d X-MS-Exchange-CrossTenant-AuthSource: VI0PR08MB10656.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Oct 2026 16:54:18.5326 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Xytv+VrjKnJUBS6+WgZq/fFtvFiXQLaEbltFLz3zcvlmWPK3NPJTx06qjZbe3xSSH9UVufYvp0+u6CsrnFYFIpUb7ZNYWXCcEN0ygi/Re/I= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR08MB10065 cpr_exec_persist_state() dups the memfd holding the CPR state so that the dup survives exec(), and remembers it in the environment. Both are released by cpr_exec_unpersist_state() alone, which runs only on MIG_EVENT_PRECOPY_FAILED. The migration channel failing to open doesn't raise it, so the dup is leaked and the stale environment variable is left behind, once per attempt. Release them there, next to the CPR state. That path runs in any migration mode, so make cpr_exec_unpersist_state() a no-op if there's nothing to release. Fixes: a3eae205c60 ("migration: cpr-exec mode") Signed-off-by: Andrey Drobyshev --- migration/cpr-exec.c | 4 +++- migration/migration.c | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/migration/cpr-exec.c b/migration/cpr-exec.c index c4bdf2cb99f..d4214e6b379 100644 --- a/migration/cpr-exec.c +++ b/migration/cpr-exec.c @@ -83,8 +83,10 @@ void cpr_exec_unpersist_state(void) int mfd; const char *val = g_getenv(CPR_EXEC_STATE_NAME); + if (!val) { + return; + } g_unsetenv(CPR_EXEC_STATE_NAME); - assert(val); assert(!qemu_strtoi(val, NULL, 10, &mfd)); close(mfd); } diff --git a/migration/migration.c b/migration/migration.c index 132f0d403b7..7c2fd704890 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -2413,6 +2413,7 @@ static void qmp_migrate_finish(MigrationAddress *addr, bool resume_requested, yank_unregister_instance(MIGRATION_YANK_INSTANCE); } cpr_state_close(); + cpr_exec_unpersist_state(); migration_connect_set_error(s, local_err); error_propagate(errp, local_err); return; -- 2.47.1