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 049748045D for ; Tue, 3 Nov 2026 09:26:17 +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 6A39Oxme003325; Tue, 3 Nov 2026 12:25:00 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 6A39Oxme003325 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="bPE+X530" Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 6A39Opum003294 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Tue, 3 Nov 2026 12:24:52 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 6A39Opum003294 Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-4a210f93860so20272145e9.0 for ; Tue, 03 Nov 2026 01:24:52 -0800 (PST) X-Forwarded-Encrypted: i=2; AKwUvBxGcX2RwbiniSlKDXfSzGI7Gg4komYpHbVhi4/DivyCTI4qLf81GYOi7ap9oLxKgprnAzCLjQ==@openvz.org X-Gm-Message-State: APuU4Z9rebezvNCa6I800DhfVd4EQ5bvWiIQ+n0e2si1GIOcsHPRq2eI iH/XDmhkBl+LJClhxF/mR0lrXEZoN/MCJpPmAjLn7VD2BihLEzTrrQdQ8lWCMZak6HyJVbLV6B4 YvDrubVmJlDaBOHH1n0g46ZGJZUqckRYt9CeeyKELukZlXxT45NauDw== X-Gm-Gg: AYBFou0Ifb32+7DUnsbCOWaozmmh1KpZQz2bBRFh1EgQRPEKDTgT3ro5lu1OCNiznnW XUcpOOc0YpANT3X/kBBJgLlcMPa7xIEaF54mspDaLgJEMN7LNZWtbffSWzPa2vHyIthwOE1aI89 TtjBVXVyZUDFQvslLpWrMg/KvPSdcUfodFo7V6KFbuEjaFoXOqNzZo8CKkcCcq8GTsmcpADaSAn Y2o2Ad9kC1sQpI/IKON8IT3k8MlpsYEQyWVY9bU8Hj9hVU36jUm92cGh3rKhvVnp27SLb49ixNM 7dZdF0tuTAl2TbnhS6T6OyA/47LxMMwMSh9BVHUBsPgNrGniPWAK5tbH9f3ZavLLG1Z3k83FGI0 rmb8ixKRHJmzy7lhbltcDWRexFy9NMg== X-Received: by 2002:a05:600c:a4e:b0:4a7:76fa:87e9 with SMTP id 5b1f17b1804b1-4ac187a766bmr283230155e9.21.1793697891153; Tue, 03 Nov 2026 01:24:51 -0800 (PST) X-Received: by 2002:a05:600c:a4e:b0:4a7:76fa:87e9 with SMTP id 5b1f17b1804b1-4ac187a766bmr283229525e9.21.1793697890609; Tue, 03 Nov 2026 01:24:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1793697890; cv=none; d=google.com; s=arc-20260327; b=R16ikC6n+Ol1JfX6HQ7aJm324VLGDiac7MmLB8Rosu1k/XczksdjEHWihTQxAbno0b nalytokskzExELY9eE3sHAeT7Gm0nUflj90L4PNubrzznJXg5j2k9zlR+aijI33jRGkt RBy4HCu4udRP+2clW6lwbYy+pTxfpRonsw9HM4DS6IdalNJO2kMYbv2USbWfSbR9fJMH G3DytSS/g0eC50XqzBofaYApprR9pgMxqA93b2/ckq95ra6Qg3gSwcHAIK6AFFWnrElc Bxji7L8c37K6n/SQwr5+JxmeW+WAuGaXO/sRBt5/EeJur1PrTZjRdWgZhQjTV9j0AON9 dkjw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:content-transfer-encoding:mime-version:message-id:date :subject:from:dkim-signature; bh=OLrzxVqcaoBfTqYi9HKsXOxNBijTSzYZYlh+3bma5ds=; fh=5hQRK+XZF8m8FADH0g5yAiDkSoTAVGTSxnnvVVATGZQ=; b=KU16L4emjbmN8inw/Mn3WS2zfcvwG5crk/HGCvCFz6BV1kdul/jy3sImraAXaCj83V agcSkVsyWe2+E8L6zlkcROoheWyddpM/2FBttwljG5X4ZEF4V6v1iVqE59B3nhxvJE1k iZH5yToMfU4cNJUb1LPlRuYOt+z3qCNx/U5S2ElLP0rVZBLLUvvdg2/6C0S0hS5DEhRa NC8kv0OOk4QlumZaq4oHrHg9ogMPTCmgaqHflb9mK0fX/ogX8q913nx5hil1VIu2UQzH m+ydfFlLbT8yDra+EGQoC/LRQrNgdMQcM0CBIt0X/VWnmVKEFY4l4eqDloysHZ2lx5XK eseg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b=bPE+X530; spf=pass (google.com: domain of vladimir.riabchun@virtuozzo.com designates 130.117.225.111 as permitted sender) smtp.mailfrom=vladimir.riabchun@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com Received: from relay.virtuozzo.com (relay.virtuozzo.com. [130.117.225.111]) by mx.google.com with ESMTPS id ffacd0b85a97d-48e71bbcb9esi24135758f8f.269.2026.11.03.01.24.50 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Nov 2026 01:24:50 -0800 (PST) Received-SPF: pass (google.com: domain of vladimir.riabchun@virtuozzo.com designates 130.117.225.111 as permitted sender) client-ip=130.117.225.111; Authentication-Results: mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b=bPE+X530; spf=pass (google.com: domain of vladimir.riabchun@virtuozzo.com designates 130.117.225.111 as permitted sender) smtp.mailfrom=vladimir.riabchun@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=virtuozzo.com; s=relay; h=Content-Type:MIME-Version:Message-Id:Date:Subject :From; bh=OLrzxVqcaoBfTqYi9HKsXOxNBijTSzYZYlh+3bma5ds=; b=bPE+X530Gzl5HukyQ7n JIJhwtoOhCXB5mBYsOCZDh+0QLt4u3QunVR1Ct/WSbYMDh7ga35y7Dp1J49QDVyHsyTfh1/DBrMjE ZxfnXBcPyBQPJ/v6mtnJ1xrn7DvR5iuvtLicAhFt4rjpnZUapNvY41kQpSoZc2GSxs9lJGCcEm9Cr ofqZ1G8hIuZp7C7U9yZpmYnaZiYnAAqFFJEhKZisEFs0LGMDf+L9KWwhpvebCbdY319OeXjS+Mudc z7FRAY3l4GXrQGdoqeBUVgMh1EQ/i2MXu+xL2ThmmPWZgd4uMLmh68C8n0x5Nx3nGm3GDvsSdnCMt YTM+RP3d/SNztEA==; Received: from ch-demo-asa.virtuozzo.com ([130.117.225.8] helo=192.168.1.87) by relay.virtuozzo.com with esmtps (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1xOAhD-00A8S5-0C; Tue, 03 Nov 2026 10:24:40 +0100 From: Vladimir Riabchun Date: Tue, 03 Nov 2026 10:24:36 +0100 Message-Id: <20261103-ovl-use-orig-ve-v3-0-add042cdd087@virtuozzo.com> MIME-Version: 1.0 X-B4-Tracking: v=1; b=H4sIAFSo6WoC/2WNzQ6CMBCEX8X07Jq2SC2efA/jAZYV1ig1LTT+h He34MXIcTIz3/cWgTxTEPvVW3iKHNh1KWTrlcC27BoCrlMWWmojC2XBxSsMgcB5biAS6Bozkxc 7kxYive6ezvyYiUfRIoPdKHH6FmGoLoT9xJumLYfe+efsjmo+TBoltV5oogIJdWm3KCVaafJDZ N8P7vVyG3S32RD1L8MsGToxqKxyW51RF1j+M8Zx/ACDyPIUEQEAAA== X-Change-ID: 20260918-ovl-use-orig-ve-2dc365976202 To: ptikhomirov@virtuozzo.com, Konstantin Khorenko X-Mailer: b4 0.16.0 X-OZ-Fwd: true Cc: devel@openvz.org Subject: [Devel] [PATCH hci-8.1 v3 0/5] Fix kernel crash in overlayfs 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 When testing CRIU with containers with docker images, we found an easily reproducible kernel crash: [ 2300.870181] BUG: kernel NULL pointer dereference, address: 0000000000000005 [ 2300.871537] #PF: supervisor read access in kernel mode [ 2300.872577] #PF: error_code(0x0000) - not-present page [ 2300.873595] PGD 800000010a18f067 P4D 800000010a18f067 PUD 10730c067 PMD 0 [ 2300.874900] Oops: Oops: 0000 [#1] SMP PTI [ 2300.875742] CPU: 1 UID: 0 PID: 5419 Comm: criu ve: 0 Kdump: loaded Not tainted 6.12.0-211.39.1.16.6.vz10.x86_64 #1 16.6 PREEMPT(voluntary) [ 2300.878057] Hardware name: Acronis OpenStack Compute/Virtuozzo, BIOS 1.16.1-1.vz9.2 04/01/2014 [ 2300.879684] RIP: 0010:ovl_get_index_name_fh+0x18/0x70 [overlay] [ 2300.880859] Code: ... [ 2300.884128] RSP: 0018:ffffd32582e0f7c0 EFLAGS: 00010246 [ 2300.895807] Call Trace: [ 2300.896397] [ 2300.904435] ovl_create_index+0x82/0x260 [overlay] [ 2300.905406] ovl_copy_up_workdir+0x30a/0x330 [overlay] [ 2300.906427] ovl_do_copy_up+0x10d/0x2e0 [overlay] [ 2300.907387] ovl_copy_up_one+0x456/0x720 [overlay] [ 2300.910736] ovl_copy_up_flags+0x81/0x110 [overlay] [ 2300.911740] ovl_create_object+0x51/0x130 [overlay] [ 2300.912719] vfs_mkdir+0x194/0x250 [ 2300.913470] do_mkdirat+0x14c/0x180 [ 2300.914223] __x64_sys_mkdir+0x46/0x70 [ 2300.915019] do_syscall_64+0x7d/0x160 [ 2300.922814] entry_SYSCALL_64_after_hwframe+0x76/0x7e The cause is that overlayfs does some feature checks on superblock creation using capable/ve_capable and it stores current credentials. But ve_capable check result depends on both current creds and current VE. Later, overlayfs switches credentials only, leading to unexpected feature disappearance. This was reworked completely after v2, the approach is different now. 1. Patch 1 removes separate STOPPED state - VE goes directly to DEAD. 2. Patch 2 adds helpers for overriding tasks VE. 3. Patch 3 adds VE owner to overlay superblock. 4. Patch 4 fixes the bug by switching VE together with creds in overlayfs. v2: http://lore.virtuozzo.com/all/20260920-ovl-use-orig-ve-v1-0-b3e63f6ff80d@virtuozzo.com/ https://virtuozzo.atlassian.net/browse/VSTOR-143259 - non-CRIU repro https://virtuozzo.atlassian.net/browse/VSTOR-142405 Signed-off-by: Vladimir Riabchun --- Changes in v3: - Patch 2: added a separate field for ve_override to fix problems Pasha spotted. - Patch 3: new one, delays init_cred destroy so dead CT can still use it. - Link to v2: http://lore.virtuozzo.com/20261026-ovl-use-orig-ve-v2-0-eab58bfc29ca@virtuozzo.com Changes in v2: - Patch 1: updated description as Sashiko suggested.. - Patch 2: moved stubs outside CONFIG_X86 section, added task_lock protection in helpers. Verified via lockdep, no splats after vzctl tests, C/R and crash reproducer. - Patch 4: fixed typo in comment. - Link to v1: http://lore.virtuozzo.com/20261022-ovl-use-orig-ve-v1-0-da84c00c8065@virtuozzo.com --- Vladimir Riabchun (5): ve: Remove STOPPED state ve: Introduce override_ve/revert_ve helpers ve: Defer ve context drop until ve is completely destroyed ovl: Keep creator VE in overlayfs superblock ve/overlayfs: Override VE together with creds fs/overlayfs/copy_up.c | 4 ++-- fs/overlayfs/dir.c | 28 ++++++++++++++-------------- fs/overlayfs/file.c | 28 ++++++++++++++-------------- fs/overlayfs/inode.c | 38 +++++++++++++++++++------------------- fs/overlayfs/namei.c | 18 +++++++++--------- fs/overlayfs/overlayfs.h | 9 ++++++++- fs/overlayfs/ovl_entry.h | 1 + fs/overlayfs/params.c | 3 +++ fs/overlayfs/readdir.c | 16 ++++++++-------- fs/overlayfs/super.c | 3 +++ fs/overlayfs/util.c | 22 ++++++++++++++++------ fs/overlayfs/xattrs.c | 14 +++++++------- include/linux/sched.h | 1 + include/linux/ve.h | 27 +++++++++++++++++++++++++-- kernel/capability.c | 6 ++++-- kernel/ve/ve.c | 10 ++++++---- 16 files changed, 140 insertions(+), 88 deletions(-) --- base-commit: f5d1fdcfffe101fe2bafa7df09d95d2e811c5c5e change-id: 20260918-ovl-use-orig-ve-2dc365976202 Best regards, -- Vladimir Riabchun _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel