⬢ DragonFlyBSD Kernel Audit
DF-3208 / run.log
← back to finding ↓ download raw
# DF-3208 run log (decisive runs; guest serial captured via vm.sh)
# Baseline: stock kernel #0, 6 vCPU, df3208.iso (80KB device, CL lba=0x1000)

## sanity: in-device CL (2GB-sparse image, -S 2048 attached) -> vget SUCCEEDS
root# su -m nobody -c "stat /mnt/df3208/X/PWN"
504432647 8388608 -r-xr-xr-x 1 root wheel 4294967295 0 "Jan  1 00:00:00 1970" ... /mnt/df3208/X/PWN
rc=0
# (ino 8388608 = 0x1000<<11 = the CL-derived ino: rrip_pclink -> vget_internal
#  relocated=1 -> devblkatoff read of the CL target succeeded -> node built)

## sanity: beyond-device CL (80KB device, no -S) -> vget fails on :837-838
root# su -m nobody -c "stat /mnt/df3208/X/PWN"
stat: /mnt/df3208/X/PWN: stat: Invalid argument
rc=1
# (EINVAL from devblkatoff's bread of 0x800000 via dscheck -> vfsops.c:838
#  vx_put with the node still published in the ihash -- the poison window,
#  executed ~45k times/second by the hammer below)

## race run 1: 4 threads x 50k (idle guest)
t0..t3 hammering /mnt/df3208/{X,Y}/PWN
done: 50000 iters/thread, ok=0 err=200000
RESULT: no-hit (no zombie handoff observed)          [guest up]

## race run 2: 6 threads x 10M + ping flood + 3 cat churn readers
(ssh view timed out locally; remote run completed)
... no panic; guest up afterwards; boot.log clean

## race run 3: rate measurement, 2 threads x 200k
done: 200000 iters/thread, ok=0 err=400000
        8.86 real  -> ~45,000 attempts/s

## race run 4: kern.nbuf=1024, 4 threads x 300k
done: 300000 iters/thread, ok=0 err=1200000
RESULT: no-hit

## race run 5: kern.nbuf=1024 + 8 x dd(1MB) churn readers, 6 threads x 1M
(ssh view timeout; run completed in background; no panic; guest up)

## race run 6: kern.nbuf=256 + 40 x dd(1MB) churn readers, 6 threads x 2M
t5: 1048575 iters ok=0 err=1048576
t4: 1048575 iters ok=0 err=1048576
t1: 1048575 iters ok=0 err=1048576
... no panic; guest up

# Total ~80M raced attempts, no zombie handoff, no panic, no vnode leak.
# (see VERDICT.md: window closed by non-MPSAFE mp_token; no voluntary
#  block inside any reachable failure path; preemption does not release
#  LWKT tokens)