[Bug 275470] Kernel Panic in IPFW when adding entries to table
Date: Fri, 01 Dec 2023 12:46:35 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=275470
Bug ID: 275470
Summary: Kernel Panic in IPFW when adding entries to table
Product: Base System
Version: 14.0-RELEASE
Hardware: amd64
OS: Any
Status: New
Severity: Affects Only Me
Priority: ---
Component: kern
Assignee: bugs@FreeBSD.org
Reporter: thierry.dussuet@protonmail.com
Hi everyone when adding entries to an ipfw table through a cron job, after a
few days (8-9 days) it triggers a kernel panic:
Fatal trap 12: page fault while in kernel mode
cpuid = 11; apic id = 0b
fault virtual address = 0x2c
fault code = supervisor write data, page not present
instruction pointer = 0x20:0xffffffff81f5daf2
stack pointer = 0x28:0xfffffe016860c800
frame pointer = 0x28:0xfffffe016860c900
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 = 78144 (ipfw)
rdi: fffff800050f8000 rsi: 0000000000000000 rdx: 0000000000001000
rcx: 0000000000000040 r8: fffffe01c1a59000 r9: 0000000000000b40
rax: 000000000000f4fd rbx: fffff800050f8000 rbp: fffffe016860c900
r10: 4000000000000000 r11: fffffe0167fcd540 r12: fffff802f021d700
r13: 0000000000000002 r14: fffffe016860c958 r15: fffffe016860c888
trap number = 12
panic: page fault
cpuid = 11
time = 1701385226
KDB: stack backtrace:
#0 0xffffffff80b9002d at kdb_backtrace+0x5d
#1 0xffffffff80b43132 at vpanic+0x132
#2 0xffffffff80b42ff3 at panic+0x43
#3 0xffffffff8100c85c at trap_fatal+0x40c
#4 0xffffffff8100c8af at trap_pfault+0x4f
#5 0xffffffff80fe3828 at calltrap+0x8
#6 0xffffffff81f530bb at add_table_entry+0x54b
#7 0xffffffff81f572e0 at manage_table_ent_v1+0x1c0
#8 0xffffffff81f4d069 at ipfw_ctl3+0x689
#9 0xffffffff80beadc3 at sogetopt+0xd3
#10 0xffffffff80bef79f at kern_getsockopt+0xaf
#11 0xffffffff80bef6c2 at sys_getsockopt+0x52
#12 0xffffffff8100d119 at amd64_syscall+0x109
#13 0xffffffff80fe413b at fast_syscall_common+0xf8
Uptime: 8d23h59m54s
# uname -v
FreeBSD 14.0-RELEASE #0 releng/14.0-n265380-f9716eee8ab4: Fri Nov 10 05:57:23
UTC 2023
root@releng1.nyi.freebsd.org:/usr/obj/usr/src/amd64.amd64/sys/GENERIC
The cron job does:
rsync -aqz rsync-mirrors.uceprotect.net::RBLDNSD-ALL /tmp/dnsbl/
awk '/^[0-9]/ && !/127.0.0/ {print $1}' /tmp/dnsbl/dnsbl-1.uceprotect.net |
xargs -n10 -P1 ipfw -q table 53 add
# wc -l /tmp/dnsbl/dnsbl-1.uceprotect.net
99568 /tmp/dnsbl/dnsbl-1.uceprotect.net
The ipfw tables in use:
00001 deny ip from table(1) to me
00002 deny ip from table(22) to me
00003 deny ip from table(42) to me
00004 deny ip from table(53) to me
(and then other rules including nat)
# ipfw table 53 detail
--- table(53), set(0) ---
kindex: 4, type: addr
references: 1, valtype: legacy
algorithm: addr:radix
items: 49760, size: 5971496
IPv4 algorithm radix info
items: 49760 itemsize: 120
IPv6 algorithm radix info
items: 0 itemsize: 128
The -n10 and -P1 arguments for xargs were a try to reduce parallel calls to
ipfw, it seems to have delayed the panics by a few days but I can not say for
certain.
Is there any missing information, or action, which could help track down what
is happening? Also willing to switch to -CURRENT and try any patches if that
might help.
(Found #272073 with the workaround of setting sysctl kern.ipc.mb_use_ext_pgs=0
for what seems like a similar kernel panic reason, although from a different
path inside ipfw)
--
You are receiving this mail because:
You are the assignee for the bug.