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)