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)

Reply via email to