Re: [ovs-discuss] ovs-dpdk conntrack assert panic

2022-10-25 Thread Plato, Michael via discuss
Hi,
it looks like I ran into the same bug 
(https://mail.openvswitch.org/pipermail/ovs-discuss/2022-September/052065.html).
 Did you find a solution for the problem?

Best regards

Michael

___
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss


[ovs-discuss] ovs-dpdk conntrack assert panic

2022-04-21 Thread Wentao Jia


Hi, ALL
A assert panic was trigger when I run ovs-dpdk tests. 
one vm is nginx server, another vm run wrk.


I guss the reason is key of default conn and rev_key of natted conn are same,
hash caculated from default conn and natted conn are same too,
and the two conns insert into the same list, the natted conn is before the 
default conn. 
when lookup connecions from conn table, natted conn is found, default conn 
cannot be found


I have 2 questions
1 since rev_key of  default conn is after natted,why create anothor  natted 
conn? 
2 if natted conn must be retained,split natted conn into anothor table?


(gdb) bt
#0  0x7f458f299377 in raise () from /lib64/libc.so.6
#1  0x7f458f29aa68 in abort () from /lib64/libc.so.6
#2  0x7f458f9e1afe in ovs_abort_valist (err_no=err_no@entry=0, 
format=format@entry=0x7f458fa80b68 "%s: assertion %s failed in %s()", 
args=args@entry=0x7f4350dfd590) at lib/util.c:444
#3  0x7f458f9e9e80 in vlog_abort_valist (module_=, 
message=0x7f458fa80b68 "%s: assertion %s failed in %s()", 
args=args@entry=0x7f4350dfd590) at lib/vlog.c:1249
#4  0x7f458f9e9f14 in vlog_abort (module=module@entry=0x7f458fd2f4c0 
, message=message@entry=0x7f458fa80b68 "%s: assertion %s failed in 
%s()") at lib/vlog.c:1263
#5  0x7f458f9e17cc in ovs_assert_failure (where=where@entry=0x7f458fa58518 
"lib/conntrack.c:1093", function=function@entry=0x7f458fa58810 <__func__.21451> 
"conn_update_state", 
condition=condition@entry=0x7f458fa58878 "conn->conn_type == 
CT_CONN_TYPE_DEFAULT") at lib/util.c:86
#6  0x7f458f8ec55f in conn_update_state (ct=, pkt=, ctx=, conn=0x7f433805b280, now=) at 
lib/conntrack.c:1093
#7  0x7f458f8ee967 in process_one (tp_id=0, helper=0x0, tp_dst=20480, 
tp_src=14624, nat_action_info=0x0, setlabel=0x0, setmark=0x0, now=1660326441, 
commit=false, force=false, zone=3, ctx=0x7f4350dfd8e0, pkt=0x1611a65a80, 
ct=0x55c41afbf0a0) at lib/conntrack.c:1370
#8  conntrack_execute (ct=, 
pkt_batch=pkt_batch@entry=0x7f4350dfe900, dl_type=, 
force=, commit=, zone=, 
setmark=setmark@entry=0x0, 
setlabel=setlabel@entry=0x0, tp_src=14624, tp_dst=20480, helper=, helper@entry=0x0, nat_action_info=nat_action_info@entry=0x0, 
now=1660326441, tp_id=0) at lib/conntrack.c:1463
#9  0x7f458f912efe in dp_execute_cb (aux_=aux_@entry=0x7f4350e05800, 
packets_=packets_@entry=0x7f4350dfe900, a=a@entry=0x7f4338015004, 
should_steal=) at lib/dpif-netdev.c:8362
#10 0x7f458f953234 in odp_execute_actions (dp=dp@entry=0x7f4350e05800, 
batch=batch@entry=0x7f4350dfe900, steal=steal@entry=true, actions=, actions_len=, 
dp_execute_action=dp_execute_action@entry=0x7f458f912d90 ) 
at lib/odp-execute.c:870
#11 0x7f458f911fcb in dp_netdev_execute_actions (actions_len=, actions=, flow=0x7f433802a5c0, should_steal=true, 
packets=0x7f4350dfe900, pmd=0x7f4350e10010) at lib/dpif-netdev.c:8407
#12 packet_batch_per_flow_execute (pmd=0x7f4350e10010, batch=0x7f4350dfe8f0) at 
lib/dpif-netdev.c:7216
#13 dp_netdev_input__ (pmd=pmd@entry=0x7f4350e10010, 
packets=packets@entry=0x7f4350e06590, md_is_valid=md_is_valid@entry=true, 
port_no=port_no@entry=0) at lib/dpif-netdev.c:7810
#14 0x7f458f913018 in dp_netdev_recirculate (packets=0x7f4350e06590, 
pmd=0x7f4350e10010) at lib/dpif-netdev.c:7827
#15 dp_execute_cb (aux_=aux_@entry=0x7f4350e0d5b0, 
packets_=packets_@entry=0x7f4350e06590, a=a@entry=0x7f4478c8, 
should_steal=) at lib/dpif-netdev.c:8222
#16 0x7f458f953234 in odp_execute_actions (dp=dp@entry=0x7f4350e0d5b0, 
batch=batch@entry=0x7f4350e06590, steal=steal@entry=true, actions=, actions_len=, 
dp_execute_action=dp_execute_action@entry=0x7f458f912d90 ) 
at lib/odp-execute.c:870
#17 0x7f458f911fcb in dp_netdev_execute_actions (actions_len=, actions=, flow=0x7f4338013e50, should_steal=true, 
packets=0x7f4350e06590, pmd=0x7f4350e10010) at lib/dpif-netdev.c:8407
#18 packet_batch_per_flow_execute (pmd=0x7f4350e10010, batch=0x7f4350e06580) at 
lib/dpif-netdev.c:7216
#19 dp_netdev_input__ (pmd=, packets=, 
md_is_valid=md_is_valid@entry=false, port_no=) at 
lib/dpif-netdev.c:7810
#20 0x7f458f91435d in dp_netdev_input (pmd=, 
packets=, port_no=) at lib/dpif-netdev.c:7819
#21 0x7f458f9144cf in dp_netdev_process_rxq_port 
(pmd=pmd@entry=0x7f4350e10010, rxq=0x55c41afc02f0, port_no=2) at 
lib/dpif-netdev.c:4767
#22 0x7f458f9148f9 in pmd_thread_main (f_=) at 
lib/dpif-netdev.c:6302
#23 0x7f458f9a70df in ovsthread_wrapper (aux_=) at 
lib/ovs-thread.c:383
#24 0x7f458f638ea5 in start_thread () from /lib64/libpthread.so.0
#25 0x7f458f3618cd in clone () from /lib64/libc.so.6
(gdb) frame 7
#7  0x7f458f8ee967 in process_one (tp_id=0, helper=0x0, tp_dst=20480, 
tp_src=14624, nat_action_info=0x0, setlabel=0x0, setmark=0x0, now=1660326441, 
commit=false, force=false, zone=3, ctx=0x7f4350dfd8e0, pkt=0x1611a65a80, 
ct=0x55c41afbf0a0) at lib/conntrack.c:1370
1370create_new_conn = conn_update_state(ct, pkt, ctx, conn, 
now);
(gdb) p ctx->key