Hello list,

I am trying to get NAT working in latest VPP and occasionally VPP hits the following assert:

ASSERT (thread_index == ed_value_get_thread_index (&value0));

Here ed_value_get_thread_index (&value0) is 1  and thread_index is 2

Not sure how the packet is getting into thread 2, if it is not expected?

If any hints can be given, as to where I should be focusing, I can dig deeper and even submit a patch if I figure out whats wrong.

bt is as follows:

(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x00007ffff47b1921 in __GI_abort () at abort.c:79
#2 0x00007ffff574c1e9 in os_panic () at /root/raj/vpp_up/vpp/src/vppinfra/unix-misc.c:177 #3 0x00007ffff5690079 in debugger () at /root/raj/vpp_up/vpp/src/vppinfra/error.c:84 #4 0x00007ffff568fdf7 in _clib_error (how_to_die=2, function_name=0x0, line_number=0, fmt=0x7fff6b84b31f "%s:%d (%s) assertion `%s' fails") at /root/raj/vpp_up/vpp/src/vppinfra/error.c:143 #5 0x00007fff6b772a1c in nat44_ed_out2in_fast_path_node_fn_inline (vm=0x7fff79f6d440, node=0x7fff9020e680, frame=0x7fff79fee9c0, is_multi_worker=1) at /root/raj/vpp_up/vpp/src/plugins/nat/nat44-ed/nat44_ed_out2in.c:896 #6 0x00007fff6b77220a in nat44_ed_out2in_node_fn_hsw (vm=0x7fff79f6d440, node=0x7fff9020e680, frame=0x7fff79fee9c0)
    at /root/raj/vpp_up/vpp/src/plugins/nat/nat44-ed/nat44_ed_out2in.c:1354
#7 0x00007ffff605b586 in dispatch_node (vm=0x7fff79f6d440, node=0x7fff9020e680, type=VLIB_NODE_TYPE_INTERNAL, dispatch_state=VLIB_NODE_STATE_POLLING, frame=0x7fff79fee9c0, last_time_stamp=3626105361929035)
    at /root/raj/vpp_up/vpp/src/vlib/main.c:1217
#8 0x00007ffff605bef7 in dispatch_pending_node (vm=0x7fff79f6d440, pending_frame_index=0, last_time_stamp=3626105361929035)
    at /root/raj/vpp_up/vpp/src/vlib/main.c:1376
#9 0x00007ffff6055951 in vlib_main_or_worker_loop (vm=0x7fff79f6d440, is_main=0) at /root/raj/vpp_up/vpp/src/vlib/main.c:1904 #10 0x00007ffff60547f7 in vlib_worker_loop (vm=0x7fff79f6d440) at /root/raj/vpp_up/vpp/src/vlib/main.c:2038 #11 0x00007ffff60acfbd in vlib_worker_thread_fn (arg=0x7fff74db6fc0) at /root/raj/vpp_up/vpp/src/vlib/threads.c:1868 #12 0x00007ffff56b6c64 in clib_calljmp () at /root/raj/vpp_up/vpp/src/vppinfra/longjmp.S:123
#13 0x00007fff5fffecd0 in ?? ()
#14 0x00007ffff60a51e3 in vlib_worker_thread_bootstrap_fn (arg=0x7fff74db6fc0) at /root/raj/vpp_up/vpp/src/vlib/threads.c:585
#15 0x00007fff6f9d049a in eal_thread_loop ()
from /root/raj/vpp_up/vpp/build-root/install-vpp_debug-native/vpp/lib/vpp_plugins/dpdk_plugin.so #16 0x00007ffff7bbb6db in start_thread (arg=0x7fff5ffff700) at pthread_create.c:463 #17 0x00007ffff489271f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
(gdb) f 5
#5 0x00007fff6b772a1c in nat44_ed_out2in_fast_path_node_fn_inline (vm=0x7fff79f6d440, node=0x7fff9020e680, frame=0x7fff79fee9c0, is_multi_worker=1) at /root/raj/vpp_up/vpp/src/plugins/nat/nat44-ed/nat44_ed_out2in.c:896
896           ASSERT (thread_index == ed_value_get_thread_index (&value0));

Some more exploration with gdb:

(gdb) p thread_index
$12 = 2
(gdb) p value0
$13 = {key = {72372793148251820, 18411084712597520390}, value = 4295018919}
(gdb) p lookup.saddr
$14 = {data = "\254\036\001\003", data_u32 = 50405036, as_u8 = "\254\036\001\003", as_u16 = {7852, 769}, as_u32 = 50405036}
(gdb) p lookup.daddr
$15 = {data = "\254\036\001\001", data_u32 = 16850604, as_u8 = "\254\036\001\001", as_u16 = {7852, 257}, as_u32 = 16850604}
(gdb) p lookup.sport
$16 = 20480
(gdb) p lookup.dport
$17 = 65409
(gdb) p/x lookup.sport
$18 = 0x5000
(gdb) p/x lookup.dport
$19 = 0xff81




-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#19289): https://lists.fd.io/g/vpp-dev/message/19289
Mute This Topic: https://lists.fd.io/mt/82401959/21656
Group Owner: [email protected]
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to