From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.openvz.org (mail.openvz.org [69.168.225.77]) by lore.virtuozzo.com (Postfix) with ESMTPS id 030EC8017D for ; Mon, 2 Nov 2026 10:42:44 +0000 (UTC) Received: from mail.openvz.org (localhost [127.0.0.1]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 6A2AfRaN023575; Mon, 2 Nov 2026 13:41:28 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 6A2AfRaN023575 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="F/LFeUI/" Received: from mail-pf1-f198.google.com (mail-pf1-f198.google.com [209.85.210.198]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 6A2AfPSl023571 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Mon, 2 Nov 2026 13:41:26 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 6A2AfPSl023571 Received: by mail-pf1-f198.google.com with SMTP id d2e1a72fcca58-89e6ddd4554so1984779b3a.3 for ; Mon, 02 Nov 2026 02:41:26 -0800 (PST) X-Gm-Message-State: AFq9FYK7084OaebYu9+qPv+gG6fbsASDgmXfK60SfHuzenf7wMZpINIH XqYhSa07cEmB4zUagJqTKDfnAC9NxSmv7/Q+s1Y/cHV2VKI7/k45q2ApJKtATmzlyaanygkpK/J EKJB9p7kb3Ec9gYUv/JEF2y7vzIDOsI/sedzh2+qoXn3iaqqTqJJ8Ww== X-Gm-Gg: AYBFou1RQyp95b3mQfocWfk3hwnCLUOtcjfoDNDD4zSEkiALlhCp0yijuQEm9GO63KR iFXFvyz/Bc5NfJSIfpLqVDuQlfrxCKu51yXkryGVLGG4G/MUSfNJLV4IST0mScMuhjR+vpiPZ7Y cx9PFzB1GeDPdDd5bX7KW91uNXSPOyojPsjZT66nRJ/fDFoIwkMLGe8MjO2yGD4yYR/v/j/PFq3 ft4wQNiPnV10nK9LhRudTym6fyPpBNAKG3irGblqwaBh2uryxSh4K9RHPIQqR8N1n9nQnrMFuON wMc8JOwFlcPMGjmzKzktW7b/hedxHShf40QzDj3IZpr3r7WvC700OabHFQbxy7hiGt6uts23gYH 0TbbYALO+EHlhjBMrFIBgftQ6Kts3rHVyJaNeP8ffiXZJJnHXsFPDoCbY0LeeIIVRDONpyu4PbB bzSPx43mXc4x7z/QdDkdE4jA== X-Received: by 2002:a05:6a21:d82:b0:3e0:c3f8:4821 with SMTP id adf61e73a8af0-3e928fdbb37mr8668029637.41.1793616084939; Mon, 02 Nov 2026 02:41:24 -0800 (PST) X-Received: by 2002:a05:6a21:d82:b0:3e0:c3f8:4821 with SMTP id adf61e73a8af0-3e928fdbb37mr8668002637.41.1793616084268; Mon, 02 Nov 2026 02:41:24 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1793616084; cv=pass; d=google.com; s=arc-20260327; b=CeaXRqtlajUNshIC9t/rUuThNIj/EkD5bL72t49ifgKpka3UyKzFCHG/1YZi4B18nn F8TStom44xtp1Si5UMIkN6p/MyYJJLVPap5uUVoIAI9DFdTGPy8+Hre/mhyIGZfY28cB y29A776E+2TYBo2hSi8P0HCK/5mL3zaPHMgVtVQIj1N9OStgp45WlrqJI5ZU/JZzA/ly OU9NbuSPqe59UfwzUstE4jFbXzGzmnk6h5YiXXus1ChgDo+fpg4JHGw1Q02FiCqH2BBV 4nuxhVa4lxgk1RupAg1yy0JghAmFbkIDfXlv4MpyKjhosO599juI6152eIBt6HJMXkMX iP6Q== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=mime-version:content-transfer-encoding:in-reply-to:from :content-language:references:cc:to:subject:user-agent:date :message-id:dkim-signature; bh=Z54D8bM/+5HeZ5yCMBy+SKDgQ7Pfx0vrHc2dPQJbgrg=; fh=zvRp4uAsnmVqzc23fSNUG5mYQnBMN2QTZsnz+0a2jGU=; b=BpHCzK5DZ6orWF3wZQOU2awzUtrX+HvEMZbbTgVaU566TFuXc8ImQTNtBWys+YzWM0 HFu1OjslAZKTOoj582qnshMX0kvwxZ5FmJPzDxgU/phyi4OPy4fQJh8as2RUh+BLresm YwB6YxbFYPto22DbQlPt1oMVD0xgO/J7lg+4hAkDNg7vIFUo8Ir1l0S/N1ikbTT3Jr+d 5UWSBLP+M1/wydQRUmzKWr09AbjvSWIzdCVoOkFTWxFV/tV8Ey6qLPIpKmru9CEeoHvB 76V97GVGYWu9D47aAjGOJBXO5SzL6skSWQzx72Q2PrdxHpJ1WSYO3iVCqrNgZRyCN4Bs kEtQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=selector2 header.b="F/LFeUI/"; arc=pass (i=1 spf=pass spfdomain=virtuozzo.com dkim=pass dkdomain=virtuozzo.com dmarc=pass fromdomain=virtuozzo.com); spf=pass (google.com: domain of khorenko@virtuozzo.com designates 2a01:111:f403:c200::3 as permitted sender) smtp.mailfrom=khorenko@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazlp170110003.outbound.protection.outlook.com. [2a01:111:f403:c200::3]) by mx.google.com with ESMTPS id d2e1a72fcca58-8aadc01893esi13284101b3a.165.2026.11.02.02.41.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 Nov 2026 02:41:24 -0800 (PST) Received-SPF: pass (google.com: domain of khorenko@virtuozzo.com designates 2a01:111:f403:c200::3 as permitted sender) client-ip=2a01:111:f403:c200::3; Authentication-Results: mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=selector2 header.b="F/LFeUI/"; arc=pass (i=1 spf=pass spfdomain=virtuozzo.com dkim=pass dkdomain=virtuozzo.com dmarc=pass fromdomain=virtuozzo.com); spf=pass (google.com: domain of khorenko@virtuozzo.com designates 2a01:111:f403:c200::3 as permitted sender) smtp.mailfrom=khorenko@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=IrJ+8xEMUnTmXDZfC3A2ZZpRgYFDmzI8QjQQQMMtJz9x4vLOKBbeUeyW+5ysRKrB3ALZgTe9y6bmOZo5Q2CD6BX26zp1I0jXyOyKDcpN7pFLveHhvw+QFmDMKhLK9fKJds21Vkbdfj3/qstEh6IYKiUEguj6F69TMbMluHcGORUhILtw6ZfZMEceEsBKVGfWewVibm6oNw9pCvICSeXUqN+9alXtCBeSjOmUVXElz2y0FDWhsI5+6vSMw/E7usSMoARuwXl/Jj0xqZL9lh0bwDrUfbIhSsvRspzReNmogy+JtNWPfuhU6KCKT/RT9iOEI8CVionHIaeg3mDjcItzMw== 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=Z54D8bM/+5HeZ5yCMBy+SKDgQ7Pfx0vrHc2dPQJbgrg=; b=Bc2XyEnBXpk5nt8l99nHgqFbRifb7VzCwwD3/MeJNwzVvGF3S+SfwP3eT0TTTspPaVL190Ue4DZ9gJ1Q6CP75SkxJkHC0s+Bj/ZZefk7r5LsDQYIL5w5HDoZ7QFJIxNsGiY516W6tca7zeRzqhnu5OEQJLQD6gWW8V8wf3TAtuCz4iXZJCArWtY4MWyqCaOILb1PWvoNrnk+XR9uG3hh105zRwBEP6qQmET+CuLua6BOKNMKmGYwtvs6Gm13KwNoV+AbZwQUvMip5Iir9REqfyuijsEPqbA0QoJVxHwBYZmdoQqvo3OqnKUQU5kE7uQDRlxhUEsZYG/z7AFW7VY0MQ== 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=Z54D8bM/+5HeZ5yCMBy+SKDgQ7Pfx0vrHc2dPQJbgrg=; b=F/LFeUI/FMVz7UFP1617hucz+KuwSy/joPNV/O9UH2Gu70S0qRHNEBufmuZB10O7BQKAJ5llmnHoDl62zne/Gt6G9WsWmZb2CQVupD5z6lb7PRcsovktZSQm+1gqCeRqfgsRIcVMblWOubDZzqbjQaqLY6f+4GSMQdxq7dXi1yZ3lfBPAvYmLxOxy0UC96NepaI9ZqrUgFmpwzyTDTITfgV8+F3k4ZnAhdtvsZf5Y1pW2gy6eC5pJcjZh6R+tKUgl2zykWe32K4DPM5pYMNh6kUkWwlxnk/5AcfdZzELKWQrdHi/i6a5/+asABgWEW3hutMWR1VQzeorKOwdFg/1vw== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; Received: from AS2PR08MB9075.eurprd08.prod.outlook.com (2603:10a6:20b:5ff::9) by AM8PR08MB5793.eurprd08.prod.outlook.com (2603:10a6:20b:1d8::16) 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:41:21 +0000 Received: from AS2PR08MB9075.eurprd08.prod.outlook.com ([fe80::3f57:9ced:7a37:1bd8]) by AS2PR08MB9075.eurprd08.prod.outlook.com ([fe80::3f57:9ced:7a37:1bd8%4]) with mapi id 15.21.0569.011; Mon, 2 Nov 2026 10:41:21 +0000 Message-ID: <229a1b70-97de-44c4-9aae-7c3ee84aad50@virtuozzo.com> Date: Mon, 2 Nov 2026 11:41:19 +0100 User-Agent: Mozilla Thunderbird To: "Denis V. Lunev" , eva.kurchatova@virtuozzo.com, vasileios.almpanis@virtuozzo.com References: <20261029223502.1437160-1-den@openvz.org> Content-Language: en-US, ru, sr From: Konstantin Khorenko In-Reply-To: <20261029223502.1437160-1-den@openvz.org> X-ClientProxiedBy: AS9PR06CA0106.eurprd06.prod.outlook.com (2603:10a6:20b:465::14) To AS2PR08MB9075.eurprd08.prod.outlook.com (2603:10a6:20b:5ff::9) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS2PR08MB9075:EE_|AM8PR08MB5793:EE_ X-MS-Office365-Filtering-Correlation-Id: bbf11f23-2584-40d8-76d8-08df38cdd55a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|376014|23010399003|1800799024|366016|5023799004|56012099006|261009223027099003|261028144727099003|261021123027099003|261021121427099003|261026121527099003|261022105027099003|261026140227099003|10067099003|18002099003|22082099003|6133799003; X-Microsoft-Antispam-Message-Info: aNlQQyeYTh+kJR0u7c4SZoy38MznfMU0AKK7136gOh4a3XciGMAwgYdHNDvqzOTe1TkK07jK5wmlB4r4Ipfe0wH3RRKS86ekgu20ox2DET1b61hfMHGC0t/XCUszU5fNCbfIdhKi73DEpqXojr6e65QS9R8RHHwCtxC9H3s2oSdekm9IgKpdPgZREEAI3Zf9thCIqxSWN2Yg+L6dj6siMfEnzI3LRCn6/0vZ41HfeLLmUDV50uYEFHdTQx5ozsxWhtDcuI9VDO2jSHt2W0w6CZOINE/tM1LL5oFm8KjsozbU/y01hMkVqkFarmVmLIBQajjD1A48Hvt4L/0vjgei6HrgumR2n6ZoerNcQG8tRqGRO7twaljY7Y734mIKv3A55tRSJRBF/8w/UsgrDG5wLoxPaiEfXhHBu+bdt9jWn3wGXBQHcEBPqhFDWIKI5sMw+eRasWmKibup8bj5XEAl7wBIYlB0KCvGG5+yRRmZbakIB9srHRY2bAX8tJjXystr3kLkqjtOiZmqVp5d3VE2aKShljHkrAbzP1TIJiR+ZmR2B8PYHh66kpWOPmOr4d8ua1qY6lomzyp3hxYqxJ7MJIAwKPpT37DGC0910AqHpY1AHABOZeE/03qk+sn2TRVC X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS2PR08MB9075.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(23010399003)(1800799024)(366016)(5023799004)(56012099006)(261009223027099003)(261028144727099003)(261021123027099003)(261021121427099003)(261026121527099003)(261022105027099003)(261026140227099003)(10067099003)(18002099003)(22082099003)(6133799003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Y0U1YTBwUHVQUHl3MjZYRWZhWkFsSnNMTWZHTkhOeU9rMDd6OGxOZHhVWTF6?= =?utf-8?B?VlovZ0pIN2hWeGxGRUcvbzB0U2NFQzdSVXFNRVRKeEZYTWsyMWpkUlpJVnhq?= =?utf-8?B?dnUvblFBSWJMekllMTE3aHdvMU1sTVJ1amdZMnNZZVlIeFRyb0VpTmM3SkYw?= =?utf-8?B?am9oZ05kV050dm5ZTGVBcFhidEwvYUhyNlk4QTNaVyt6bWN0bGlqSmlWTTZB?= =?utf-8?B?L1JvWDR2ZGdTdlBJeitXSDJEWW1yOFVNR3NxQ1pPRE5GNWZxUDd3eGdFdUdi?= =?utf-8?B?ZElVUE1XZW5ZTkppcUNKRENBSVEyTUdDSnZtNGxNSStucGhZdkRRa0ZWcVdo?= =?utf-8?B?SHRxbWlhZXVlaDJJUzl3anVoRGwzU01NMWlGbVV2OHhlRnNNbXlJWlpLNHZD?= =?utf-8?B?QzBveWFXVjVxb3FFWitxb2RyRzlyL3ZINlZkSGkrWTJMRUhxZmliQnQ4dzNL?= =?utf-8?B?blZqMnphN1ltc3N4UzdtTU9zWFR3dENNTjUxN0ltNTFEY3V1TGt2QU5xK1lv?= =?utf-8?B?U2k0WXV5aUdLQkVFb3UyaW53L3JZd3FBZy8vaTJkZWZTT09YQjNQWGQzemNU?= =?utf-8?B?UjRSNi80RGNRQkxyTXUveW5jMzFXSFRUWDVDeTdLc0lEUmUwSDJ0Q2g0RVl6?= =?utf-8?B?RHExLzB2ckpKdHVHcUF0dUNXOHdSWHpsb1NyK0FiTWpUT0pvLzE5Ly9aNG9Z?= =?utf-8?B?cHNvWFhCUTNXeDk3Tk1CMm02Rm50bi9oL1BFbHEvMzF2NjVwRGtFOUkwOW96?= =?utf-8?B?QVR6aU5xdWFoYzJraEZtcFl1bHluM1VZSVc1TzVLSkZISXVHTVgvOTU4MWhL?= =?utf-8?B?TVR1Ym1CQVpPMEM5WFFRZWxsY2ZaWEwvcFhxTDdFVDBsbzV1OXYvVHAvd3JS?= =?utf-8?B?ZzhJMmVuOFVPY2ZqVkVLN1FCK0Q0TDFRa0Z3d3p0d25TdE16ZThwYXAxNit6?= =?utf-8?B?azZnU0pjRWhUMzJ0ck55SWxDRk83QkFQMjVmeDVPNlppZnRSM1IzM29NUE04?= =?utf-8?B?MnN6REl6MElubnM0K1JxMWxCMGVwanRRTFlQV3NXeVBibFZ3Q0J1V25qV1F2?= =?utf-8?B?TGpPU3VmL1c2Qy9BR0liNHB5aVc4UHQ1ejM3NEh5TDUzcnFYeGxKK1RFNjhG?= =?utf-8?B?WVZ5eFhMenZhVDdsMkpEYVNwTEgxSkhmRFdjS1ZwdXUzZXJZclhBeXVEckhS?= =?utf-8?B?cmU4bGU2NVF4QkxESDFobUlHVHkwS1VPY3VWdEJBelQ5Zzh2cGR5RWpJV1Er?= =?utf-8?B?UGFtdGVrY1p5RGtTQksrWFlWdWtXeXR5L3FRL1VXb1RIcjJXN2gxWjBuY0Q5?= =?utf-8?B?d1Irc0tyOVJweGVLbk90Tm5YNUVFSExNYUYvOXQ3SU4wd003cDUxd0tVanJ0?= =?utf-8?B?ME55T1FtbjBvblVGWVVYcm5rWFBLdXdTNnY3SlYySERNbW42UDdiME5LQm10?= =?utf-8?B?WjlRa0JpL2FhU1BsT1FtWGJPMFVmNUFwdDQya2xCb2l3UEswNlZtV01STG4r?= =?utf-8?B?VTE0aGZocENZWWpZWWltMXQxMUxGYlQwT2NUdjVJUUpXMy9QQm8vOWtRb2FD?= =?utf-8?B?R0NQdGtKY2JjWStuT2hJNkR1UlZlSzU3bzk5dnJVOUgwcEd1US9aYUdiaTBD?= =?utf-8?B?MnpxTDFHS1RaQTVod3ZBQk92NTJKZk52VTBKdkNUc3hDVllSV1N2cmJSbXgv?= =?utf-8?B?Qys1TzR3eXlFSWM2dithN1pzdlhza2xSSVBvd2xjUS9pNll1L0ZBYk0zWlZh?= =?utf-8?B?U1JYS216YzhNQWRwVkIvRFB1TXU4UHFXSTgwbnRONE5YWElwMElvRHJiSnQy?= =?utf-8?B?bmdNMkFKOUVEOVJmVElPQTZGclBCdGh6bGw4ZHlDN2FzTWRFaWQvRkNwVGNw?= =?utf-8?B?OW13M292dDc2T21PSEFVVm1PLzRhMHB6dTl6TFhEVEdPdzhoU0tZR2lQaFlV?= =?utf-8?B?SE16bU1nLy9uSStxYndhV1Q0VVpyMEx2U0I2OFNzYy9CUWdKYUlpeWxreFpK?= =?utf-8?B?RzJtZmo0L1UzSUtWQWl4TnRUNFhsTjMxOERqTzFYc0JLMjR6UnVXVk1pMjkz?= =?utf-8?B?YTJPWXZGQlprWXNyVkpHeERQR1lwc25OZXVqVWpRa1RJS1BqRTE2Q1ErVDk2?= =?utf-8?B?UXpFamV0ZzdpaDUzM2dRd1c5c1JDQS9hNDhYYyt0SWNhZ3dEWkRzUnlxZEQw?= =?utf-8?B?WUFOaVF2bkJqQlduSmp5NmNYRVpNSlBnbGp6a3hic2YwK3RaRUdrbHNJalVR?= =?utf-8?B?Ulp5K0dvdmYyamRrVW1Eb3NUQjFyNmRtRmhJN2hpUWl4OFdRQ3ZDdDRzOXBk?= =?utf-8?B?UW5BWWEwMXc4c2krd1Y2NSs4dTM2UkFGODFYMDdHbE5ZNm9Xb3NGUT09?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: bbf11f23-2584-40d8-76d8-08df38cdd55a X-MS-Exchange-CrossTenant-AuthSource: AS2PR08MB9075.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2026 10:41:21.0429 (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: RmTqu4doNdGJlFpGIFG+7/U01xhEEnzhRZZ8u6eU7GPRcYQPpl0LnesfG7bs+TsqjuXnohXrECJ+yo5unruLgA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB5793 X-OZ-Fwd: true Cc: devel@openvz.org Subject: Re: [Devel] [PATCH hci-8.1] ve/vtty: fix console attach failing with EBUSY while the CT closes the tty X-BeenThere: devel@openvz.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: OpenVZ development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: devel-bounces@openvz.org Errors-To: devel-bounces@openvz.org committing without review -- Best regards, Konstantin Khorenko, Virtuozzo Linux Kernel Team On 10/29/26 23:35, Denis V. Lunev wrote: > From: Denis V. Lunev > > Since commit 23abb203a41a ("ve/vtty: fix use-after-free on concurrent > tty close and reopen") vtty_open_master() refuses a pair whose slave > count has dropped to zero: the last CT-side close has committed to the > final close, and the pair stays in the vtty map only until > release_tty() runs. The refusal is -EBUSY, the errno which already > means a console is attached, so userspace cannot tell a pair that is > about to go from one that is taken, and vzctl gives up: > > Error opening CT tty: Device or resource busy > > The window opens whenever the last process in the CT closes its tty: > getty respawn, login with autologin, SAK. "vzctl console" run right > after "vzctl start --wait" hits it. > > Return -EAGAIN for the dying pair. Nothing else on the > VE_CONFIGURE_OPEN_TTY path returns -EAGAIN, so it can only mean "try > again", which is what vzctl will do. An in-CT open of such a pair gets > -EAGAIN from tty_reopen() and tty_open() retries it the same way. > Retrying inside vtty_open_master() instead would have to drop tty_mutex > for release_tty() to progress, and the global vtty context with it. > > Let ve_vtty_stress accept -EAGAIN as an expected open error. > > Fixes: 23abb203a41a ("ve/vtty: fix use-after-free on concurrent tty close and reopen") > > https://virtuozzo.atlassian.net/browse/VSTOR-152365 > Feature: tty: virtual Container console > Signed-off-by: Denis V. Lunev > --- > vzctl needs a matching change, "vzctl console: retry opening a CT tty > the CT is still closing", which goes to the vzctl repository. Without > it vzctl fails the same race with "Resource temporarily unavailable" > instead of "Device or resource busy", so the two should land together. > > Tested on sqvm4-1002, hci-8.1 6.12.0-211.52.1.22.12 with this patch: > - a host loop opening and closing the console via VE_CONFIGURE_OPEN_TTY > while a loop inside the CT opens and closes the same tty: about two > thirds of the host opens fail with EBUSY before the patch, none > after, they get EAGAIN instead; > - vzctl console with the vzctl change under the same race: every > attach succeeds, after at most four retries; > - vzctl test_vzctl_console.py passes, including the "tty already in > use" case, which still gets EBUSY; > - ve_vtty_stress passes; without the selftest hunk it bails out on the > first EAGAIN; > - nothing in dmesg. > > drivers/tty/pty.c | 5 +++-- > tools/testing/selftests/ve/ve_vtty_stress.c | 2 +- > 2 files changed, 4 insertions(+), 3 deletions(-) > > diff --git a/drivers/tty/pty.c b/drivers/tty/pty.c > index 14d46bb9c293..6f6dabba96e2 100644 > --- a/drivers/tty/pty.c > +++ b/drivers/tty/pty.c > @@ -1100,14 +1100,15 @@ int vtty_open_master(envid_t veid, int idx) > * user is gone and tty_release() has already committed to the final > * close, release_tty() is only waiting for tty_mutex to free it. > * Never hand out a reference to a tty which is about to be freed, > - * report -EBUSY so that the next attempt allocates a fresh pair. > + * report -EAGAIN so that the caller retries and allocates a fresh > + * pair. -EBUSY above means a console is really attached. > * > * A pair we've just created above is exempt: it is not reachable by > * anyone else yet and its zero count is merely the initial state, > * vtty_install() gives its reference away to the master peer below. > */ > if (!created && slave->count == 0) { > - ret = -EBUSY; > + ret = -EAGAIN; > goto err_unlock; > } > > diff --git a/tools/testing/selftests/ve/ve_vtty_stress.c b/tools/testing/selftests/ve/ve_vtty_stress.c > index f4bdd81133b8..d8d92ae54718 100644 > --- a/tools/testing/selftests/ve/ve_vtty_stress.c > +++ b/tools/testing/selftests/ve/ve_vtty_stress.c > @@ -44,7 +44,7 @@ > */ > static bool expected_errno(int err) > { > - return err == EBUSY || err == EIO || err == ENXIO; > + return err == EAGAIN || err == EBUSY || err == EIO || err == ENXIO; > } > > /* A runner timeout must still reach the cleanup */ _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel