Re: kern/60531: looping "vflushbuf: dirty" message
"Taylor R Campbell via gnats" <[email protected]> Sun, 2 Aug 2026 22:20:01 +0000 (UTC)
| Newsgroups | gmane.os.netbsd.bugs |
|---|---|
| Message-ID | <[email protected]> |
The following reply was made to PR kern/60531; it has been noted by GNATS. From: Taylor R Campbell <[email protected]> To: [email protected], [email protected] Cc: [email protected], [email protected] Subject: Re: kern/60531: looping "vflushbuf: dirty" message Date: Sun, 2 Aug 2026 20:20:48 +0000 Found another path to reassignbuf called without the vnode lock, this time for a VREG vnode instead of VBLK -- this one is definitely snapshot-related (presumably the vnode is the snapshot backing store, since it's marked VV_SYSTEM), and could cause the vflushbuf warning message and/or almost unbounded running time for the vflushbuf loop (really, bounded by the file system size; once the whole fs is backed up, there won't be any more writes to it): # mount /dev/dk1 on / type ffs (log, local) ptyfs on /dev/pts type ptyfs (local) tmpfs on /tmp type tmpfs (local) tmpfs on /var/run type tmpfs (local) tmpfs on /var/shm type tmpfs (local) /dev/vio9p0 on /mnt type puffs|9p /dev/ld4a on /mnt type ffs (local) # dump -X -0ant -f - / | gzip -nc >/mnt/var/tmp/dump.0 [20:10:11 UTC] DUMP: Found /dev/rdk1 on / in /etc/fstab [20:10:11 UTC] DUMP: Date of this level 0 dump: Sun Aug 2 20:10:11 2026 [20:10:11 UTC] DUMP: Date of last level 0 dump: the epoch [20:10:11 UTC] DUMP: Dumping a snapshot of /dev/rdk1 (/) to standard outp= ut [20:10:11 UTC] DUMP: Label: none [20:10:13 UTC] DUMP: mapping (Pass I) [regular files] [20:10:19 UTC] DUMP: mapping (Pass II) [directories] [20:10:19 UTC] DUMP: estimated 3140383 tape blocks. [20:10:19 UTC] DUMP: Volume 1 started at: Sun Aug 2 20:10:19 2026 [20:10:19 UTC] DUMP: dumping (Pass III) [directories] [ 479.4390328] panic: kernel diagnostic assertion "vp->v_type =3D=3D VBLK |= | VOP_ISLOCKED(vp)" failed: file "/home/riastradh/netbsd/current/src/sys/ke= rn/vfs_subr.c", line 562 vp=3D0xffff00007cf02800 state=3D3 [ 479.4577654] cpu0: Begin traceback... [ 479.4577654] trace fp ffffc000c63c78f0 [ 479.4790797] fp ffffc000c63c7920 vpanic() at ffffc0000061f864 netbsd:vpan= ic+0x1bc [ 479.5110599] fp ffffc000c63c7980 kern_assert() at ffffc000008c6958 netbsd= :kern_assert+0x58 [ 479.5425878] fp ffffc000c63c7a10 reassignbuf() at ffffc00000686434 netbsd= :reassignbuf+0x2d4 [ 479.5740262] fp ffffc000c63c7a40 bdwrite() at ffffc000006743e8 netbsd:bdw= rite+0x128 [ 479.5961369] fp ffffc000c63c7a70 ffs_balloc() at ffffc0000053c240 netbsd:= ffs_balloc+0x15e0 [ 479.6380279] fp ffffc000c63c7bd0 wrsnapblk() at ffffc000005401c4 netbsd:w= rsnapblk+0x44 [ 479.6800518] fp ffffc000c63c7c10 ffs_copyonwrite() at ffffc00000540b50 ne= tbsd:ffs_copyonwrite+0x1a4 [ 479.7140520] fp ffffc000c63c7ca0 fscow_run() at ffffc0000069236c netbsd:f= scow_run+0xbc [ 479.7349917] fp ffffc000c63c7ce0 bread() at ffffc00000676278 netbsd:bread= +0x58 [ 479.7680479] fp ffffc000c63c7d10 ffs_update() at ffffc0000053ed94 netbsd:= ffs_update+0x128 [ 479.8000553] fp ffffc000c63c7d70 ffs_sync() at ffffc00000548ae8 netbsd:ff= s_sync+0x1e8 [ 479.8209946] fp ffffc000c63c7df0 VFS_SYNC() at ffffc000006874e4 netbsd:VF= S_SYNC+0x24 [ 479.8540963] fp ffffc000c63c7e20 sched_sync() at ffffc00000687670 netbsd:= sched_sync+0x110 [ 479.8860508] tf ffffc000c63c7ed0 el0_trap() at ffffc000000c0ff0 netbsd:el= 1_trap_exit+0x68 [ 479.8960548] cpu0: End traceback... Stopped in pid 0.124 (system) at netbsd:cpu_Debugger+0xc: ldp x29, x30, [sp],#16 db{0}> show vnode ffff00007cf02800 OBJECT 0xffff00007cf02800: locked=3D0, pgops=3D0xffffc00000aebb48, npages= =3D0, refs=3D1 vnode 0xffff00007cf02800 flags 0x12<SYSTEM,MPSAFE> tag VT_UFS(1) type VREG(1) mount 0xffff00007daf2000 typedata 0x0 usecount 1 writecount 0 holdcount 410 size f9c00050 writesize f9c00050 numoutput 0 data 0xffff00007d0d94c0 lock 0xffff00007cf02a80 state LOADED key(0xffff00007daf2000 8) 67 1f 00 00 00 00 00 00 lrulisthd 0xffffc00001265e10 db{0}> call vprint(0,ffff00007cf02800) vnode 0xffff00007cf02800 flags 0x12<SYSTEM,MPSAFE> [ 479.8960548] tag VT_UFS(1) type VREG(1) mount 0xffff00007daf2000 typedat= a 0x0 [ 479.8960548] usecount 1 writecount 0 holdcount 410 [ 479.8960548] size f9c00050 writesize f9c00050 numoutput 0 [ 479.8960548] data 0xffff00007d0d94c0 lock 0xffff00007cf02a80 [ 479.8960548] state LOADED key(0xffff00007daf2000 8) 67 1f 00 00 00 00 00= 00 [ 479.8960548] lrulisthd 0xffffc00001265e10 [ 479.8960548] tag VT_UFS, ino 8039, on dev 168, 1 flags 0x6, nlink 0 [ 479.8960548] mode 0100600, owner 0, group 0, size 4190109776 0