DragonFlyBSD Kernel Audit
DF-2550 / run.log
← back to finding ↓ download raw
[drv] DF-2550 reproduction -- baseline (unpatched) kernel
DragonFly 6.5-DEVELOPMENT #0: Thu Jul  2 06:02:54 UTC 2026
[drv] bring up local NFS server (rpcbind/mountd/nfsd, tcp+udp)
    100005    1   udp    618  mountd
    100005    3   udp    618  mountd
    100005    1   tcp    618  mountd
    100005    3   tcp    618  mountd
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100003    2   tcp   2049  nfs
    100003    3   tcp   2049  nfs
[drv] mount NFS (UDP, soft, 1s timeout, 1 retrans, no attr cache)
MOUNT_OK
-rw-r--r--  1 maxx  wheel  10 Aug  8 21:46 /mnt/nfs/f
[drv] maxx: launch fchown poll-loop trigger in background
[drv] let it reach steady state (fchown rc=0) ...
[trigger] iter 14: fchown rc=0 errno=0 (ok)
[trigger] iter 15: fchown rc=0 errno=0 (ok)
[trigger] iter 16: fchown rc=0 errno=0 (ok)
[drv] root: kill the NFS server (server-death model) -> VOP_GETATTR will fail
nfsd_dead
[drv] waiting for kernel panic (leaked lock -> next fchown self-deadlock) ...
[drv] guest STOPPED answering ssh -> PANICKED
[drv] RESULT: PANIC reproduced.
panic: lockmgr: locking against myself
lockmgr_exclusive() at lockmgr_exclusive+0x3e0
vn_lock() at vn_lock+0xc0
vget() at vget+0x3e
setfown() at setfown+0x39
sys_fchown() at sys_fchown+0x8b
(serial log also: "nfs server 127.0.0.1:/export: not responding", "nfs send error 61")

trigger leak transition (trigger.out):
  iter 17: fchown rc=0 errno=0 (ok)                       # getattr ok
  iter 18: fchown rc=-1 errno=4 (Interrupted system call) # VOP_GETATTR FAILED -> setfown leaked lock (no vput)
  iter 19: fchown -> vget -> vn_lock on leaked lock -> PANIC