On 2019/07/05 17:09, YASUOKA Masahiko wrote:
> Hi,
>
> Previous diff made src-node have a reference for the kif. My
> colleague pointed out that incrementing the reference count of the kif
> is required.
>
> ok?
>
> Fix previous commit which made src-node have a reference for the kif.
> Src-node should use the reference counter since it might live longer
> than its table entry, rule or the associated states.
I'm seeing crashes soon after starting network which must be related
to this.
I have a few rules with standard "max-src-conn-rate" options, e.g.
"keep state (max-src-conn-rate 5/8 overload <BADHOSTS> flush global)"
If I remove the max-src-conn-rate things are stable again.
starting early daemons: syslogd unbounduvm_fault(0xffffffff81d9cb00, 0xe4, 0,
2) -> e
^Mkernel: page fault trap, code=0
^MStopped at pfi_kif_ref+0x3f [/sys/net/pf_if.c:151]: addl
$0x1,0x
^Me4(%rdi)
^Mddb{3}> tr
^Mpfi_kif_ref(ffff80001f806d98,ffff80000060d010,0,2,fffffd805f66e424,0) at
pfi_ki
^Mf_ref+0x3f [/sys/net/pf_if.c:151]
^Mpf_test_rule(ffff80001f806eb8,ffff80001f806fa8,ffff80001f806fc0,ffff80001f806f9
^M0,ffff80001f806f80,ffff80001f806fce) at pf_test_rule+0x812
[/sys/net/pf.c:3886]
^M
^Mpf_test(2,1,ffff800000184000,ffff80001f8070d8,1c23766404077ddd,ffff800000184000
^M) at pf_test+0x794 [/sys/net/pf.c:0]
^Mip_input_if(ffff80001f8070d8,ffff80001f8070e4,4,0,ffff800000184000,ffff80001f80
^M70d8) at ip_input_if+0x3d6 [/sys/netinet/ip_input.c:356]
^Mipv4_input(ffff800000184000,fffffd8060dc8f00,159191501168ecca,1f807122,fffffd80
^M60dc8f00,ffff800000184000) at ipv4_input+0x39 [/sys/netinet/ip_input.c:256]
^Msppp_input(ffff800000184000,fffffd8060dc8f00,2269ff70e5351674,30,fffffd8060dc8f
^M00,ffff800000022040) at sppp_input+0x2b3 [/sys/net/if_spppsubr.c:505]
^Mpppoeintr(b3d67ef4c5ba913d,0,40000000,ffff800000022040,ffffffff816acdb0,0) at
p
^Mppoeintr+0xa04 [/sys/net/if_pppoe.c:734]
^Mif_netisr(0,0,ffff80001f807230,ffff800000022040,ffffffff81581a7d,ffff80001f8072
^M20) at if_netisr+0xbd [/sys/net/if.c:1028]
^Mtaskq_thread(ffff800000022040,ffff800000022040,0,0,ffffffff816acdb0,0) at
taskq
^M_thread+0x4d [/sys/kern/kern_task.c:369]
^Mend trace frame: 0x0, count: -9
^Mddb{3}> ps /o
^M TID PID UID PRFLAGS PFLAGS CPU COMMAND
^M 359291 82145 0 0x3 0 0 pgrep
^M 439451 16713 0 0x3 0 2 unbound-checkcon
^M*169187 90314 0 0x14000 0x200 3K softnet
^Mddb{3}> sh reg
^Mrdi 0
^Mrsi 0x4
^Mrbp 0xffff80001f806d20
^Mrbx 0
^Mrdx 0x1388 __ALIGN_SIZE+0x388
^Mrcx 0xfffffd805f5d1ed8
^Mrax 0xfffffd805f5d1ed8
^Mr8 0
^Mr9 0
^Mr10 0x4a4f63677d822114
^Mr11 0x1c6ef5dd3e707ef4
^Mr12 0xffff80000060d010
^Mr13 0xffffffff
^Mr14 0xffff80001f806d98
^Mr15 0xfffffd805f66e424
^Mrip 0xffffffff8157d10f pfi_kif_ref+0x3f
^Mcs 0x8
^Mrflags 0x10246 __ALIGN_SIZE+0xf246
^Mrsp 0xffff80001f806c08
^Mss 0x10
^Mpfi_kif_ref+0x3f [/sys/net/pf_if.c:151]: addl $0x1,0xe4(%rdi)