HI,

Thanks for the bug report. Here’s the patch:
  https://gerrit.fd.io/r/c/vpp/+/27270

/neale

From: <vpp-dev@lists.fd.io> on behalf of "chu.penghong" <javin...@163.com>
Date: Monday 25 May 2020 at 05:06
To: "vpp-dev@lists.fd.io" <vpp-dev@lists.fd.io>
Subject: [vpp-dev] vpp crashes on configuring ip6 route

Hello Everyone!
       When I add/delete ip6 route through cli when ipv6 packets are 
forwarding, the crash below may occur:

(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x00007fdfe0b16801 in __GI_abort () at abort.c:79
#2  0x0000564c45de83ee in os_panic () at 
/home/pml/vpp/vpp_new/src/vpp/vnet/main.c:366
#3  0x00007fdfe0ef9940 in debugger () at 
/home/pml/vpp/vpp_new/src/vppinfra/error.c:84
#4  0x00007fdfe0ef9d15 in _clib_error (how_to_die=2, function_name=0x0, 
line_number=0, fmt=0x7fdfe26a6740 "%s:%d (%s) assertion `%s' fails") at 
/home/pml/vpp/vpp_new/src/vppinfra/error.c:143
#5  0x00007fdfe1a81ba6 in ip6_fib_table_fwding_lookup (fib_index=0, 
dst=0x1002725d66) at /home/pml/vpp/vpp_new/src/vnet/fib/ip6_fib.h:100
#6  0x00007fdfe1a82751 in ip6_lookup_inline (vm=0x7fdfa2bbf680, 
node=0x7fdfa3c07e40, frame=0x7fdfa39b3e00) at 
/home/pml/vpp/vpp_new/src/vnet/ip/ip6_forward.h:238
#7  0x00007fdfe1a8502b in ip6_lookup_node_fn_avx2 (vm=0x7fdfa2bbf680, 
node=0x7fdfa3c07e40, frame=0x7fdfa39b3e00) at 
/home/pml/vpp/vpp_new/src/vnet/ip/ip6_forward.c:725
#8  0x00007fdfe145abbb in dispatch_node (vm=0x7fdfa2bbf680, 
node=0x7fdfa3c07e40, type=VLIB_NODE_TYPE_INTERNAL, 
dispatch_state=VLIB_NODE_STATE_POLLING, frame=0x7fdfa39b3e00, 
last_time_stamp=2587675900683492)
    at /home/pml/vpp/vpp_new/src/vlib/main.c:1238
#9  0x00007fdfe145b37c in dispatch_pending_node (vm=0x7fdfa2bbf680, 
pending_frame_index=2, last_time_stamp=2587675900683492) at 
/home/pml/vpp/vpp_new/src/vlib/main.c:1406
#10 0x00007fdfe145d01a in vlib_main_or_worker_loop (vm=0x7fdfa2bbf680, 
is_main=0) at /home/pml/vpp/vpp_new/src/vlib/main.c:1865
#11 0x00007fdfe145da71 in vlib_worker_loop (vm=0x7fdfa2bbf680) at 
/home/pml/vpp/vpp_new/src/vlib/main.c:1999
#12 0x00007fdfe149d13b in vlib_worker_thread_fn (arg=0x7fdf9fdec800) at 
/home/pml/vpp/vpp_new/src/vlib/threads.c:1799
#13 0x00007fdfe0f18334 in clib_calljmp () at 
/home/pml/vpp/vpp_new/src/vppinfra/longjmp.S:123
#14 0x00007fde27ffece0 in ?? ()
#15 0x00007fdfe1497363 in vlib_worker_thread_bootstrap_fn (arg=0x7fdf9fdec800) 
at /home/pml/vpp/vpp_new/src/vlib/threads.c:588
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

I read  the  code and found that the vector 'prefix_lengths_in_search_order' is 
modified  in funtion ip6_fib_table_fwding_dpo_update  when ip6 route is 
configured in main thread but accessed by function ip6_fib_table_fwding_lookup 
when ip6 packets are forwarding in worker thread without lock to proctect it . 
It may be the reason to the crash.
Thanks









-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#16498): https://lists.fd.io/g/vpp-dev/message/16498
Mute This Topic: https://lists.fd.io/mt/74450068/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to