NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
kern/60621: panic: ufs_inactive: dirty filesystem?
>Number: 60621
>Category: kern
>Synopsis: panic: ufs_inactive: dirty filesystem?
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Thu Aug 20 03:40:00 +0000 2026
>Originator: Taylor R Campbell
>Release: 10.1
>Organization:
The NetBSD Foundation, Inc.
>Environment:
NetBSD bester.NetBSD.org 10.1 NetBSD 10.1 (WWUSERVER) #0: Wed Dec 18 12:03:42 UTC 2024 spz%franklin.NetBSD.org@localhost:/home/netbsd/10/amd64/obj/sys/arch/amd64/compile/WWUSERVER amd64
>Description:
Wed Aug 19 15:35:20 UTC 2026
Starting root file system check:
/dev/rraid0a: file system is journaled; not checking
[ 10.9232881] /: replaying log to disk
[ 22.7101747] ufs_inactive: unlinked ino 61 on "/" has non zero size 0 or blocks fffffffffffffec0 with allerror 0
[ 22.7201807] panic: ufs_inactive: dirty filesystem?
[ 22.7301867] cpu3: Begin traceback...
[ 22.7301867] vpanic() at netbsd:vpanic+0x183
[ 22.7301867] panic() at netbsd:panic+0x3c
[ 22.7401925] ufs_inactive() at netbsd:ufs_inactive+0x167
[ 22.7501979] VOP_INACTIVE() at netbsd:VOP_INACTIVE+0x3c
[ 22.7501979] vrelel() at netbsd:vrelel+0x154
[ 22.7602037] ffs_wapbl_replay_finish() at netbsd:ffs_wapbl_replay_finish+0x35
[ 22.7602037] ffs_wapbl_start() at netbsd:ffs_wapbl_start+0x4b
[ 22.7702094] ffs_mount() at netbsd:ffs_mount+0x553
[ 22.7702094] VFS_MOUNT() at netbsd:VFS_MOUNT+0x5a
[ 22.7802154] do_sys_mount() at netbsd:do_sys_mount+0x3ac
[ 22.7902217] sys___mount50() at netbsd:sys___mount50+0x33
[ 22.7902217] syscall() at netbsd:syscall+0x1fc
[ 22.8002275] --- syscall (number 410) ---
[ 22.8002275] netbsd:syscall+0x1fc:
[ 22.8002275] cpu3: End traceback...
>How-To-Repeat:
1. take and unlink an fss ffs fs-internal snapshot
(say that five times fast!)
2. create a couple very large files (~70GB), not sparse
3. rm the very large files
4. trip over wapbl_flush: current transaction too big to flush
(PR kern/54504: -9/-current WAPBL panic: current transaction
too big to flush, https://gnats.NetBSD.org/54504)
5. reboot
Not 100% sure the snapshot part is necessary -- perhaps keeping
any unlinked file open during sudden interruption (panic, power
loss, &c.) is enough.
The ffs wapbl replay logic seems to be unable to cope with the
resulting non-truncated unlinked file.
>Fix:
Yes, please! And a test case too.
I'm not clear on why the inode in question is being processed
by ffs_wapbl_replay_finish.
That means it is listed in a WAPBL_WC_INODES record, i.e., it
has been registered with wapbl_register_inode as a partially
allocated inode, which shouldn't be in use by anything else
yet; surely, if the inode allocation had completed, as I
suspect it had (since fssconfig(8) completed and I think --
though I'm not sure -- that the snapshot was even mounted),
then we should have passed through wapbl_unregister_inode.
But maybe there's some path that bypasses
wapbl_unregister_inode incorrectly under certain circumstances,
or somehow the complete inode allocation got committed in a
separate transaction from wapbl_unregister_inode.
Home |
Main Index |
Thread Index |
Old Index