[Bug 280554] unmounting tmpfs when swap is 100% full causes kernel panic
Date: Thu, 01 Aug 2024 13:11:37 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=280554
Bug ID: 280554
Summary: unmounting tmpfs when swap is 100% full causes kernel
panic
Product: Base System
Version: Unspecified
Hardware: Any
OS: Any
Status: New
Severity: Affects Only Me
Priority: ---
Component: bin
Assignee: bugs@FreeBSD.org
Reporter: admin@support.od.ua
FreeBSD 12.3-STABLE #0 r372170M: Mon Jun 27 19:29:31 EEST 2022
I only have textdump.tar.1 file, but there is kernel.debug in the system.
How to repeat:
Have a ZFS system and a 2-3 GB disk partition for swap.
Have synth with the following settings:
cat << EOF >> synth.ini
[Global Configuration]
profile_selected= LiveSystem
[LiveSystem]
Operating_system= FreeBSD
Directory_packages= /var/synth/live_packages
Directory_repository= /var/synth/live_packages/All
Directory_portsdir= /usr/ports
Directory_options= /var/db/ports
Directory_distfiles= /usr/ports/distfiles
Directory_buildbase= /usr/obj/synth-live
Directory_logs= /var/log/synth
Directory_ccache= /ccache
Directory_system= /
Number_of_builders= 2
Max_jobs_per_builder= 1
Tmpfs_workdir= true
Tmpfs_localbase= true
leverage_prebuilt= false
EOF
Have a large list of packages to build, including lang/rust
For example:
cat << EOF >> synth-update.txt
lang/rust
mail/spamassassin
security/py-openssl@py39
security/p5-Net-SSLeay
www/lynx
ftp/curl
net-mgmt/flowd
net/libpcap
sysutils/py-ansible-core@py39
sysutils/ansible@py39
sysutils/py-ansible-compat@py39
sysutils/ansible-sysrc
sysutils/py-ansible-lint@py39
misc/mc
net/samba413
sysutils/nut
security/gnutls
sysutils/tracker
sysutils/monit
ports-mgmt/synth
ports-mgmt/pkg_tree
ports-mgmt/pkg
dns/unbound
sysutils/py-ansible-core@py39
sysutils/ansible@py39
sysutils/py-ansible-compat@py39
sysutils/ansible-sysrc
sysutils/py-ansible-lint@py39
dns/nsd
devel/cmake
devel/cmake-core
benchmarks/siege
archivers/unrar
sysutils/sanoid
EOF
Run synth with these parameters:
synth build /full/path/synth-update.txt
When the swap is 100% full, type the Control-Q combination.
The second build queue will finish building the current package and unmount the
readninly tmps partitions.
Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address = 0x20000
fault code = supervisor write data, page not present
instruction pointer = 0x20:0xffffffff810c5d54
stack pointer = 0x28:0xfffffe00468187d0
frame pointer = 0x28:0xfffffe00468187d0
code segment = base 0x0, limit 0xfffff, type 0x1b
= DPL 0, pres 1, long 1, def32 0, gran 1
processor eflags = interrupt enabled, resume, IOPL = 0
current process = 3286 (umount)
trap number = 12
panic: page fault
cpuid = 0
time = 1722461598
KDB: stack backtrace:
db_trace_self_wrapper() at 0xffffffff80497d0b =
db_trace_self_wrapper+0x2b/frame 0xfffffe0046818590
vpanic() at 0xffffffff80c92688 = vpanic+0x178/frame 0xfffffe00468185e0
panic() at 0xffffffff80c92503 = panic+0x43/frame 0xfffffe0046818640
trap_fatal() at 0xffffffff812d0e9f = trap_fatal+0x38f/frame 0xfffffe00468186a0
trap_pfault() at 0xffffffff812d0eef = trap_pfault+0x4f/frame 0xfffffe0046818700
calltrap() at 0xffffffff812a9438 = calltrap+0x8/frame 0xfffffe0046818700
--- trap 0xc, rip = 0xffffffff810c5d54, rsp = 0xfffffe00468187d0, rbp =
0xfffffe00468187d0 ---
mac_labelzone_dtor() at 0xffffffff810c5d54 = mac_labelzone_dtor+0x4/frame
0xfffffe00468187d0
uma_zfree_arg() at 0xffffffff8112acc6 = uma_zfree_arg+0x56/frame
0xfffffe0046818830
mac_vnode_destroy() at 0xffffffff810d1451 = mac_vnode_destroy+0xa1/frame
0xfffffe0046818890
_vdrop() at 0xffffffff80d622b6 = _vdrop+0x266/frame 0xfffffe00468188c0
vflush() at 0xffffffff80d6385b = vflush+0x38b/frame 0xfffffe0046818a10
tmpfs_unmount() at 0xffffffff82d2af26 = tmpfs_unmount+0x76/frame
0xfffffe0046818a60
dounmount() at 0xffffffff80d59ff8 = dounmount+0x588/frame 0xfffffe0046818ad0
sys_unmount() at 0xffffffff80d59903 = sys_unmount+0x383/frame
0xfffffe0046818c00
amd64_syscall() at 0xffffffff812d1a57 = amd64_syscall+0x387/frame
0xfffffe0046818d30
fast_syscall_common() at 0xffffffff812a9d5e = fast_syscall_common+0xf8/frame
0xfffffe0046818d30
--- syscall (22, FreeBSD ELF64, sys_unmount), rip = 0x8002deaaa, rsp =
0x7fffffffd258, rbp = 0x7fffffffd780 ---
KDB: enter: panic
db:1:lockinfo> show lockedvnods
Locked vnodes
db:0:kdb.enter.panic> show pcpu
cpuid = 0
dynamic pcpu = 0xdddcc0
curthread = 0xfffff801dc549740: pid 3286 tid 102095 "umount"
curpcb = 0xfffff801dc549ce0
fpcurthread = 0xfffff801dc549740: pid 3286 "umount"
idlethread = 0xfffff8000318c000: tid 100003 "idle: cpu0"
curpmap = 0xfffff801de4a2138
tssp = 0xffffffff821e60a0
commontssp = 0xffffffff821e60a0
rsp0 = 0xfffffe0046818e00
kcr3 = 0xffffffffffffffff
ucr3 = 0xffffffffffffffff
scr3 = 0x0
gs32p = 0xffffffff821ec8b8
ldt = 0xffffffff821ec8f8
tss = 0xffffffff821ec8e8
tlb gen = 2425508
curvnet = 0
db:0:kdb.enter.panic> bt
Tracing pid 3286 tid 102095 td 0xfffff801dc549740
kdb_enter() at 0xffffffff80cdb937 = kdb_enter+0x37/frame 0xfffffe0046818590
vpanic() at 0xffffffff80c926a4 = vpanic+0x194/frame 0xfffffe00468185e0
panic() at 0xffffffff80c92503 = panic+0x43/frame 0xfffffe0046818640
trap_fatal() at 0xffffffff812d0e9f = trap_fatal+0x38f/frame 0xfffffe00468186a0
trap_pfault() at 0xffffffff812d0eef = trap_pfault+0x4f/frame 0xfffffe0046818700
calltrap() at 0xffffffff812a9438 = calltrap+0x8/frame 0xfffffe0046818700
--- trap 0xc, rip = 0xffffffff810c5d54, rsp = 0xfffffe00468187d0, rbp =
0xfffffe00468187d0 ---
mac_labelzone_dtor() at 0xffffffff810c5d54 = mac_labelzone_dtor+0x4/frame
0xfffffe00468187d0
uma_zfree_arg() at 0xffffffff8112acc6 = uma_zfree_arg+0x56/frame
0xfffffe0046818830
mac_vnode_destroy() at 0xffffffff810d1451 = mac_vnode_destroy+0xa1/frame
0xfffffe0046818890
_vdrop() at 0xffffffff80d622b6 = _vdrop+0x266/frame 0xfffffe00468188c0
vflush() at 0xffffffff80d6385b = vflush+0x38b/frame 0xfffffe0046818a10
tmpfs_unmount() at 0xffffffff82d2af26 = tmpfs_unmount+0x76/frame
0xfffffe0046818a60
dounmount() at 0xffffffff80d59ff8 = dounmount+0x588/frame 0xfffffe0046818ad0
sys_unmount() at 0xffffffff80d59903 = sys_unmount+0x383/frame
0xfffffe0046818c00
amd64_syscall() at 0xffffffff812d1a57 = amd64_syscall+0x387/frame
0xfffffe0046818d30
fast_syscall_common() at 0xffffffff812a9d5e = fast_syscall_common+0xf8/frame
0xfffffe0046818d30
--- syscall (22, FreeBSD ELF64, sys_unmount), rip = 0x8002deaaa, rsp =
0x7fffffffd258, rbp = 0x7fffffffd780 ---
--
You are receiving this mail because:
You are the assignee for the bug.