NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

kern/53175: Panic related to PF with NET_MPSAFE enabled kernel



>Number:         53175
>Category:       kern
>Synopsis:       Panic related to PF with NET_MPSAFE enabled kernel
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Apr 11 16:25:00 +0000 2018
>Originator:     Sevan Janiyan
>Release:        NetBSD 8.99.14 built with src checkout from ~2 hours ago
>Organization:
>Environment:
NetBSD 8.99.14 amd64 x86_64
>Description:
I have a kernel based on amd64 GENERIC config with the addition of all altq options, pf & pflog as well as NET_MPSAFE enabled.

This is running on an PCengines APU2, system was running without issues for a couple of hours, reaching around 379Mbps down on a 350Mbps cable modem service, then the system started crashing.

The backtrace is as follows

login: uvm_fault(0xffffffff815b2840, 0x0, 1) -> e
fatal page fault in supervisor mode
trap type 6 code 0 rip 0xffffffff8077f83e cs 0x8 rflags 0x10206 cr2 0x30 ilevel 0x4 rsp 0xffff800067fe1f08
curlwp 0xffffe40107fe85a0 pid 0.67 lowest kstack 0xffff800067fde2c0
panic: trap
cpu2: Begin traceback...
vpanic() at netbsd:vpanic+0x152
snprintf() at netbsd:snprintf
startlwp() at netbsd:startlwp
alltraps() at netbsd:alltraps+0xc8
pf_state_tree_id_RB_REMOVE() at netbsd:pf_state_tree_id_RB_REMOVE+0xca
pf_unlink_state() at netbsd:pf_unlink_state+0x21
pf_purge_expired_states() at netbsd:pf_purge_expired_states+0x77
pf_purge_thread() at netbsd:pf_purge_thread+0x72
cpu2: End traceback...

pf.conf:
ext_if="wm0"
int_if="wm2"
foo_if="vlan0"

set skip on lo

scrub in
altq on $ext_if priq bandwidth 20Mb queue { q_pri, q_def }
queue q_pri priority 7
queue q_def priority 1 priq(default)

nat-anchor "ftp-proxy/*"
rdr-anchor "ftp-proxy/*"
nat on $ext_if from !($ext_if) -> ($ext_if:0)
rdr pass on $int_if proto tcp to port ftp -> 127.0.0.1 port 8021
rdr pass on $ext_if proto tcp from any to self port https \
        -> 192.168.0.1 port https

anchor "ftp-proxy/*"
block in
pass out queue (q_def, q_pri)

pass quick on { $int_if $foo_if } no state queue (q_def, q_pri)
antispoof quick for { lo $int_if $foo_if }

pass in on $ext_if proto tcp to self port https

I have a core dump if anyone needs it.

>How-To-Repeat:

>Fix:



Home | Main Index | Thread Index | Old Index