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 14DD08045D for ; Mon, 26 Oct 2026 14:53:45 +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 69QEqTnG011887; Mon, 26 Oct 2026 17:52:30 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69QEqTnG011887 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="tl95cgOh" Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 69QEqSRu011869 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Mon, 26 Oct 2026 17:52:28 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69QEqSRu011869 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-4a208f409ceso20096075e9.3 for ; Mon, 26 Oct 2026 07:52:28 -0700 (PDT) X-Forwarded-Encrypted: i=2; AKwUvBxk9Pp/KNtlEJY28kgEblFyz4Ivi7RYr1Eep22WUbRJUEpFYj+052w4+OuMt0KQ4rqjXhV8eg==@openvz.org X-Gm-Message-State: AFq9FYJDR/Gv0+5hnc70WAErTbw7zk+h6VlRb7R1O9pPR3f0AYiI2nDK /h/1h6+8lQsr/HDx9t2cQpnXbfKKOpidehPB/+WW9bBNgahBRAlKNvs4NPTDBURrzKAv7OfLQ+a 7ypymDuuih1WMQ75aHOLYZTrxP+XAQbiU4smfLW8WvYSZNQ3v2lbgdQ== X-Gm-Gg: AYBFou3DDGgKuWbMStozRx+GV3BMj+N5AZQPzE9bbQgoxUmrRiNvrLUDalDmkGWNGdW WXxmXOSAsj5fBJo3ScSy+aACXaeSBl4+AVlxUZST15pCjAC81ygY+PBjxfQGAe2ZYpnuE/albDb MnpLr38lB/yc9WcCfkpaDrr67h7OaJTfdyQce6d3sk7X/hY5koVuSTvowABj3rW5ZTNgRRYXm8d sOmKe78mBYc7+vv6T7xSJJ2DtWA+dg56/ltbXLIHx+hXkUpmLUdhhI02JjEt5+gBzf0Y2K6AJgc k2m0tngvdXRrSzMC6xRnTqHogAPC7JnBR1ECx+MnQHj2vVZiAhDjcdsjSEUJujKx2BdSVNu4rKN B9gRTrvCyfzWygDTNsmiWDb78/kUm X-Received: by 2002:a05:600c:3e1a:b0:4a1:e250:b191 with SMTP id 5b1f17b1804b1-4a35aca6ae2mr134035565e9.17.1793026347984; Mon, 26 Oct 2026 07:52:27 -0700 (PDT) X-Received: by 2002:a05:600c:3e1a:b0:4a1:e250:b191 with SMTP id 5b1f17b1804b1-4a35aca6ae2mr134034965e9.17.1793026347416; Mon, 26 Oct 2026 07:52:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1793026347; cv=none; d=google.com; s=arc-20260327; b=oNbJLhrX8p/JWA/7sTeR6icjBalQwJH5+eU3ZiMFAm41TOKQHZEmNIiUBj+Gvosog7 E6R2KEkfrhZZohyT9xqZaws7BBsqb5xjfrrWoXaAoCY0AWUaSASH5t7RHxaWwMidldTQ c0+FvZjw1g8ZK+zzMqxtN/9sZnaXZlTY2vihpBBzoxH0J2PzMjq7MMSxkVLaVNRbGO3n 2dSUYEElIn60ZIcb2pjYNX3H+tC+h4LnrYFmiLa08MHgEc2bepjrv6HpJ9lp/mu8FFLw cqbRSnY0xygozpxKEypZAHkuJGJI/ylWvb6AWUsqewoRa9+rElX4l+wTTX3kL0VFn7II aLxA== 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=ZmPAA3wV8U510wPf348sQ61O5fNj5jN65Mlq5w+LqVM=; fh=cWfQ0WqBv1Pw7PhINIHK2v1yyoiscNQykPdEfpvTs1g=; b=ezRJefXODbqFaVACqEJaUbawrNJnJxdBNTBCHBBpoIhPbXyX+dXpWzSkxNUobAM0R1 HUKNBR4IPt2kJ/nnwH0s6INpXofYiWtbCcXaRNGSRttGip6ebPbpC5gulq2a1JOy2inQ 4+IaWclBJ5c5RAwfk33WS8AU4AFdVjQxSPb23pKdOBCr7sHCnZivFIuRKIpfWufV/3sN NiFYpE6hhlGABQQP6ph1xwkDzRLV2gpH7ddCAwCGb/7qXcdQVBbrinAgJ1fpBQdCQSE6 pgk7Vn7wKcblHHzxq8bfGiZ3eIHtSQtSUwaLrIhZalwtUECmgaXm28eOkUMRYNO3B2rv 6l6Q==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b=tl95cgOh; 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 5b1f17b1804b1-4a35aea0592si154744445e9.1.2026.10.26.07.52.27 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Oct 2026 07:52:27 -0700 (PDT) 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=tl95cgOh; 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=ZmPAA3wV8U510wPf348sQ61O5fNj5jN65Mlq5w+LqVM=; b=tl95cgOhcauL2BoHru7 Q7oZZyGKdJ9mP79yniXlzZ5h/6IFpMXrVRuv3BEqn0YCq9DWip4oV/UEZWgAQCly2XBEbvXXk6I6t YONy88lBXQvhk1Kq6ku/kvRqPRUKM1DN1cySk4fPENaBfIbSrVbYQaPAL3laUyzV7b4U1vjxPkYKC txuxCc6OMpaeWJjc2pnbALlJVpG2PVP6jzSqc7Wv/ZMWHdOhthDcdbBAzE79DhdCySaBsmW2u6iZo F2kFEVSTpD+T0Z1NhHhubdkc0O1UhvYegu0Z8qZvXl2nm4ZYTFhSl+tx8vTvIZxXZz2yw+aM0+70e hM08Ohmu7skkl1w==; 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 1xLM03-004zLL-23; Mon, 26 Oct 2026 15:52:18 +0100 From: Vladimir Riabchun Date: Mon, 26 Oct 2026 15:52:19 +0100 Message-Id: <20261026-ovl-use-orig-ve-v2-0-eab58bfc29ca@virtuozzo.com> MIME-Version: 1.0 X-B4-Tracking: v=1; b=H4sIACNp32oC/2WNwQ6CMBBEf4Xs2SVtlVo8+R+GA5YV1ig1LTQK4 d8tePQ4mXnzZgjkmQKcshk8RQ7s+hTULgPb1X1LyE3KoITSopQGXXzgGAid5xYjoWrsXhflUac FJOrl6cbv7fECnWU0uYTqV4Txeic7rH/rtOMwOP/Z3FFuwKqRQqk/TZQosKnNwQphjdDFObIfR jdNLrfuCdWyLF8nmw6WzQAAAA== X-Change-ID: 20260918-ovl-use-orig-ve-2dc365976202 To: Konstantin Khorenko , ptikhomirov@virtuozzo.com, vasileios.almpanis@virtuozzo.com X-Mailer: b4 0.16.0 X-OZ-Fwd: true Cc: devel@openvz.org Subject: [Devel] [PATCH hci-8.1 v2 0/4] 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 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 (4): ve: Remove STOPPED state ve: Introduce override_ve/revert_ve helpers 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/ve.h | 27 +++++++++++++++++++++++++-- kernel/ve/ve.c | 6 ++---- 14 files changed, 131 insertions(+), 86 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