Public bug reported:

# Launchpad bug: Oops in path_is_under from complete_walk — RCU race
with dying dentries (CIFS automount / dentry shrinker)

**Summary:**
Reproducible kernel oops in `path_is_under+0x50/0x90` called from 
`complete_walk+0x9c/0xc0` during RCU path-walk revalidation; the path walk 
touches an already-freed (poisoned or NULL) dentry. With 
`kernel.panic_on_oops=1` this panics the box; kdump captures the trace. 9 
identical dumps across a week, kernels 7.3.0-5, 7.3.0-6 and 7.3.0-8.

## Environment
- Ubuntu, linux 7.3.0-5-generic, 7.3.0-6-generic, 7.3.0-8-generic (all affected)
- ASRock Z690 Steel Legend, Intel i7-14700K, 48G RAM + 48G swapfile on btrfs
- Root fs: btrfs (nvme0n1p3, compress=zstd, noatime), `/mnt/backup` = CIFS 
mount `//<lan-nas>/backup` via systemd automount (fstab), iocharset=utf8, noperm
- `kernel.panic_on_oops = 1` (deliberate — see below)

## Crash signature (identical in all dumps)
```
BUG: unable to handle page fault for address: fffffffffffffff0   (slab-poisoned 
dentry)
RIP: 0010:path_is_under+0x50/0x90
Call Trace:
 complete_walk+0x9c/0xc0
 path_lookupat+0x7c/0x2b0
 filename_lookup+0xf3/0x210
 vfs_statx+0x79/0x160
 vfs_fstatat+0x50/0xa0
 __do_sys_newfstatat+0x44/0x90
```
Victim process (Comm) is always a heavy stat() walker: kopia (5×) or syncthing 
(3×), walking trees spanning the CIFS mount.

Variant: one dump oopsed one frame deeper — `is_subdir+0x48/0x100` (NULL
dentry), called from `path_is_under+0x88` — same chain, same syscall
context.

## Occurrences (kdump dmesg files available)
- 2026-09-26 09:00, 2026-09-28 16:59, 2026-10-01 21:00, 2026-10-01 23:04 
(vmcore failed, dmesg saved), 2026-10-02 01:00, 2026-10-02 01:52, 2026-10-02 
17:00 (kernels 7.3.0-5/6)
- 2026-10-03 15:36 (kernel 7.3.0-8, syncthing, 59 s after boot)

## Notes / hypotheses
- Initially correlated with systemd automount idle-unmount of the CIFS share; 
raising `x-systemd.idle-timeout` to 10800 s did NOT stop the panics, and 
removing the idle timeout entirely did not either (the 10-03 15:36 panic hit 59 
s after boot on the fixed fstab, and other panics hit hours after the last 
logged unmount). Suspect the race is generic RCU-walk vs dentry eviction 
(unmount and/or shrink_dcache under memory pressure), landing in the same 
`complete_walk` revalidation path.
- The system comment in our sysctl config (written during earlier debugging): 
oops happens inside path walk with VFS locks held, after which all CPUs pile up 
in `native_queued_spin_lock_slowpath` and the box hangs permanently — hence 
`panic_on_oops=1`.

## Attachments
- `/var/crash/2026{0926,0928,1001,1002,1003}*/dmesg.*` (kdump vmcore-dmesg, 
collected by apport)

## Desired fix
RCU-walk revalidation in `complete_walk()` must not deref a dentry that lost 
its last reference; happy to test patches or kernels.

ProblemType: Bug
DistroRelease: Ubuntu 26.10
Package: linux-image-7.3.0-8-generic 7.3.0-8.8
ProcVersionSignature: Ubuntu 7.3.0-8.8-generic 7.3.0-rc5
Uname: Linux 7.3.0-8-generic x86_64
ApportVersion: 2.36.0-0ubuntu1
Architecture: amd64
CasperMD5CheckResult: unknown
CurrentDesktop: KDE
Date: Sat Oct  3 16:11:21 2026
InstallationDate: Installed on 2026-06-02 (123 days ago)
InstallationMedia: Kubuntu 26.04 "Resolute Raccoon" - Release amd64 (20260423)
IwDevWlp3s0f0Link: Not connected.
MachineType: ASRock Z690 Steel Legend
ProcFB: 0 nvidia-drmdrmfb
ProcKernelCmdLine: BOOT_IMAGE=/vmlinuz-7.3.0-8-generic 
root=UUID=94679966-1cae-40b2-b3c5-c09ce31d8dd2 ro rootflags=subvol=@ quiet 
splash RESUME=UUID=94679966-1cae-40b2-b3c5-c09ce31d8dd2 resume_offset=35435763 
crashkernel=2G-4G:320M,4G-32G:512M,32G-64G:1024M,64G-128G:2048M,128G-:4096M
PulseList: Error: command ['pacmd', 'list'] failed with exit code 1: No 
PulseAudio daemon running, or not running as session daemon.
SourcePackage: linux
UpgradeStatus: Upgraded to stonking on 2026-09-04 (29 days ago)
dmi.bios.date: 08/09/2024
dmi.bios.release: 5.27
dmi.bios.vendor: American Megatrends International, LLC.
dmi.bios.version: 19.02
dmi.board.name: Z690 Steel Legend
dmi.board.vendor: ASRock
dmi.chassis.asset.tag: To Be Filled By O.E.M.
dmi.chassis.type: 3
dmi.chassis.vendor: To Be Filled By O.E.M.
dmi.chassis.version: To Be Filled By O.E.M.
dmi.modalias: 
dmi:bvnAmericanMegatrendsInternational,LLC.:bvr19.02:bd08/09/2024:br5.27:svnASRock:pnZ690SteelLegend:pvrToBeFilledByO.E.M.:rvnASRock:rnZ690SteelLegend:rvr:cvnToBeFilledByO.E.M.:ct3:cvrToBeFilledByO.E.M.:skuToBeFilledByO.E.M.:pfaToBeFilledByO.E.M.:
dmi.product.family: To Be Filled By O.E.M.
dmi.product.name: Z690 Steel Legend
dmi.product.sku: To Be Filled By O.E.M.
dmi.product.version: To Be Filled By O.E.M.
dmi.sys.vendor: ASRock

** Affects: linux (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: amd64 apport-bug stonking third-party-packages wayland-session

** Attachment added: "lspci-vnvn.log"
   
https://bugs.launchpad.net/bugs/2169414/+attachment/6005251/+files/lspci-vnvn.log

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2169414

Title:
  Oops in path_is_under from complete_walk (RCU race with dying
  dentries)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2169414/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to