NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
kern/54504: -9/-current WAPBL panic: current transaction too big to flush
>Number: 54504
>Category: kern
>Synopsis: panic: kernel diagnostic assertion "(wapbl_transaction_len(wl) <= (wl->wl_circ_size - wl->wl_reserved_bytes))" failed: file ".../src/sys/kern/vfs_wapbl.c", line 1271 wapbl_end: current transaction too big to flush
>Confidential: no
>Severity: critical
>Priority: high
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Thu Aug 29 09:00:00 +0000 2019
>Originator: Frank Kardel
>Release: NetBSD 9.99.6
>Organization:
>Environment:
System: NetBSD pip.kardel.name 9.99.6 NetBSD 9.99.6 (PIPGEN) #20: Sat Aug 10 12:14:12 CEST 2019 kardel@:.../src/obj.amd64/sys/arch/amd64/compile/PIPGEN amd64
Architecture: x86_64
Machine: amd64
>Description:
WAPBL panics when attempting to delete big files as the transaction log size is insufficient.
On reboot the subsequent mount will also panic when attempting the re-play the log.
>How-To-Repeat:
Create a big file like 190000000000 bytes and rm/unlink this file in a ffs file system mounted with -o log.
watch the panic and subsequent panics when attempting to mount the file system again with -o log.
The mount panic stack trace looks like this:
#0 0xffffffff80222bd5 in cpu_reboot ()
#1 0xffffffff80a36b16 in vpanic ()
#2 0xffffffff80e759eb in kern_assert ()
#3 0xffffffff80aa2326 in wapbl_end ()
#4 0xffffffff80983ddd in ufs_truncate_retry ()
#5 0xffffffff8098406b in ufs_inactive ()
#6 0xffffffff80aa91a1 in VOP_INACTIVE ()
#7 0xffffffff80a9ae5e in vrelel ()
#8 0xffffffff80950ede in ffs_wapbl_replay_finish ()
#9 0xffffffff80951297 in ffs_wapbl_start ()
#10 0xffffffff8094cf71 in ffs_mountfs ()
#11 0xffffffff8094d859 in ffs_mount ()
#12 0xffffffff80a8ff43 in VFS_MOUNT ()
#13 0xffffffff80a8cc41 in mount_domount ()
#14 0xffffffff80a93009 in do_sys_mount ()
#15 0xffffffff80a93677 in sys___mount50 ()
#16 0xffffffff80252ba8 in syscall ()
#17 0xffffffff802096dd in handle_syscall ()
>Fix:
Workround (presumably): don't use WAPBL.
Fix: Change WAPBL logic to allow truncation/deletion of big files aka avoid running into transaction size limitations.
>Unformatted:
Home |
Main Index |
Thread Index |
Old Index