Yes we are aware of it, still working on the correct fix though.
In the meantime you can try to apply https://gerrit.fd.io/r/c/vpp/+/32765 which 
should workaround that for now.

Best
ben

> -----Original Message-----
> From: chetan bhasin <chetan.bhasin...@gmail.com>
> Sent: lundi 6 septembre 2021 14:21
> To: Benoit Ganne (bganne) <bga...@cisco.com>
> Cc: vpp-dev <vpp-dev@lists.fd.io>
> Subject: Re: [vpp-dev] VPP 2106 with Sanitizer enabled
> 
> Hi,
> 
> The below crash is coming as we involved VPP TCP host stack.
> 
> 
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 0x7ffb527f9700 (LWP 2013)]
> 0x00007ffff71db5c1 in __asan::FakeStack::AddrIsInFakeStack(unsigned long,
> unsigned long*, unsigned long*) () from /lib64/libasan.so.5
> (gdb) bt
> #0  0x00007ffff71db5c1 in __asan::FakeStack::AddrIsInFakeStack(unsigned
> long, unsigned long*, unsigned long*) () from /lib64/libasan.so.5
> #1  0x00007ffff72c2a11 in
> __asan::ThreadStackContainsAddress(__sanitizer::ThreadContextBase*, void*)
> () from /lib64/libasan.so.5
> #2  0x00007ffff72dcdc2 in
> __sanitizer::ThreadRegistry::FindThreadContextLocked(bool
> (*)(__sanitizer::ThreadContextBase*, void*), void*) () from
> /lib64/libasan.so.5
> #3  0x00007ffff72c3e5a in __asan::FindThreadByStackAddress(unsigned long)
> () from /lib64/libasan.so.5
> #4  0x00007ffff71d5fb6 in __asan::GetStackAddressInformation(unsigned
> long, unsigned long, __asan::StackAddressDescription*) () from
> /lib64/libasan.so.5
> #5  0x00007ffff71d73f9 in
> __asan::AddressDescription::AddressDescription(unsigned long, unsigned
> long, bool) () from /lib64/libasan.so.5
> #6  0x00007ffff71d9e51 in __asan::ErrorGeneric::ErrorGeneric(unsigned int,
> unsigned long, unsigned long, unsigned long, unsigned long, bool, unsigned
> long) () from /lib64/libasan.so.5
> #7  0x00007ffff72bdc2a in __asan::ReportGenericError(unsigned long,
> unsigned long, unsigned long, unsigned long, bool, unsigned long, unsigned
> int, bool) () from /lib64/libasan.so.5
> #8  0x00007ffff72bf194 in __asan_report_load_n () from /lib64/libasan.so.5
> #9  0x00007ffff3f45463 in clib_mask_compare_u16_x64 (v=2,
> a=0x7fff89fd6150, n_elts=2) at  src/vppinfra/vector_funcs.h:24
> #10 0x00007ffff3f4571e in clib_mask_compare_u16 (v=2, a=0x7fff89fd6150,
> mask=0x7ffb51fe2310, n_elts=2)
>     at  src/vppinfra/vector_funcs.h:79
> #11 0x00007ffff3f45b81 in enqueue_one (vm=0x7fff7314ec40,
> node=0x7fff89fe1e00, used_elt_bmp=0x7ffb51fe2440, next_index=2,
> buffers=0x7fff7045a9e0, nexts=0x7fff89fd6150, n_buffers=2, n_left=2,
>     tmp=0x7ffb51fe2480) at  src/vlib/buffer_funcs.c:30
> #12 0x00007ffff3f6bdae in vlib_buffer_enqueue_to_next_fn_skx
> (vm=0x7fff7314ec40, node=0x7fff89fe1e00, buffers=0x7fff7045a9e0,
> nexts=0x7fff89fd6150, count=2)
>     at  src/vlib/buffer_funcs.c:110
> #13 0x00007ffff58cd2b6 in vlib_buffer_enqueue_to_next (vm=0x7fff7314ec40,
> node=0x7fff89fe1e00, buffers=0x7fff7045a9e0, nexts=0x7fff89fd6150,
> count=2)
>     at  src/vlib/buffer_node.h:344
> #14 0x00007ffff58e4cf1 in session_flush_pending_tx_buffers
> (wrk=0x7fff8912b780, node=0x7fff89fe1e00)
>     at  src/vnet/session/session_node.c:1654
> #15 0x00007ffff58e844f in session_queue_node_fn (vm=0x7fff7314ec40,
> node=0x7fff89fe1e00, frame=0x0)
>     at  src/vnet/session/session_node.c:1812
> #16 0x00007ffff3e0402f in dispatch_node (vm=0x7fff7314ec40,
> node=0x7fff89fe1e00, type=VLIB_NODE_TYPE_INPUT,
> dispatch_state=VLIB_NODE_STATE_POLLING, frame=0x0,
> last_time_stamp=2463904994699296)
>     at  src/vlib/main.c:1024
> #17 0x00007ffff3e132a2 in vlib_main_or_worker_loop (vm=0x7fff7314ec40,
> is_main=0) at  src/vlib/main.c:2949
> #18 0x00007ffff3e14ec6 in vlib_worker_loop (vm=0x7fff7314ec40) at
> src/vlib/main.c:3114
> #19 0x00007ffff3eac7ff in vlib_worker_thread_fn (arg=0x7fff7050ef40) at
> src/vlib/threads.c:1560
> #20 0x00007ffff34d9504 in clib_calljmp () at  src/vppinfra/longjmp.S:123
> #21 0x00007ffb527f8230 in ?? ()
> #22 0x00007ffff3ea004f in vlib_worker_thread_bootstrap_fn
> (arg=0x7fff7050ef40) at  src/vlib/threads.c:431
> #23 0x00007fff6d41971b in eal_thread_loop () from
> /opt/opwv/integra/99.9/tools/vpp_2106_asan/bin/../lib/dpdk_plugin.so
> #24 0x00007ffff38abea5 in start_thread () from /lib64/libpthread.so.0
> #25 0x00007ffff2e328cd in clone () from /lib64/libc.so.6
> (gdb) :q
> 
> On Mon, Sep 6, 2021 at 1:52 PM chetan bhasin <chetan.bhasin...@gmail.com
> <mailto:chetan.bhasin...@gmail.com> > wrote:
> 
> 
>       Hi Ben,
> 
>       Thanks for the direction. Looks like it will fix both the issues as
> mentioned above. I will update you with the results after applying the
> patch.
> 
>       Is there any ASAN related patch inside the TCP host stack code. I
> will be sharing the issue shortly with you.
> 
>       Thanks,
>       Chetan
> 
>       On Mon, Sep 6, 2021 at 1:22 PM Benoit Ganne (bganne)
> <bga...@cisco.com <mailto:bga...@cisco.com> > wrote:
> 
> 
>               It should be fixed in master by
> https://gerrit.fd.io/r/c/vpp/+/32643
> 
>               ben
> 
>               > -----Original Message-----
>               > From: vpp-dev@lists.fd.io <mailto:vpp-dev@lists.fd.io>
> <vpp-dev@lists.fd.io <mailto:vpp-dev@lists.fd.io> > On Behalf Of chetan
> bhasin
>               > Sent: lundi 6 septembre 2021 09:36
>               > To: vpp-dev <vpp-dev@lists.fd.io <mailto:vpp-
> d...@lists.fd.io> >
>               > Subject: [vpp-dev] VPP 2106 with Sanitizer enabled
>               >
>               > Hi
>               >
>               >
>               > We are facing two errors with vpp2106 and Address Sanitizer
> enabled.
>               >
>               > make V=1 -j4 build VPP_EXTRA_CMAKE_ARGS=-
> DVPP_ENABLE_SANITIZE_ADDR=ON
>               >
>               >
>               > Work-around - After adding the two api’s string_key_sum and
>               > strnlen_s_inline  to ASAN suppression, vpp2106 comes up
> fine.
>               >
>               >
>               > Error 1:
>               > ----------
>               > Program received signal SIGSEGV, Segmentation fault.
>               > 0x00007ffff71db5c1 in
> __asan::FakeStack::AddrIsInFakeStack(unsigned long,
>               > unsigned long*, unsigned long*) ()
>               >    from /lib64/libasan.so.5
>               > (gdb) bt
>               > #0  0x00007ffff71db5c1 in
> __asan::FakeStack::AddrIsInFakeStack(unsigned
>               > long, unsigned long*, unsigned long*) ()
>               >    from /lib64/libasan.so.5
>               > #1  0x00007ffff72c2a11 in
>               >
> __asan::ThreadStackContainsAddress(__sanitizer::ThreadContextBase*, void*)
>               > ()
>               >    from /lib64/libasan.so.5
>               > #2  0x00007ffff72dcdc2 in
>               > __sanitizer::ThreadRegistry::FindThreadContextLocked(bool
>               > (*)(__sanitizer::ThreadContextBase*, void*), void*) () from
>               > /lib64/libasan.so.5
>               > #3  0x00007ffff72c3e5a in
> __asan::FindThreadByStackAddress(unsigned long)
>               > () from /lib64/libasan.so.5
>               > #4  0x00007ffff71d5fb6 in
> __asan::GetStackAddressInformation(unsigned
>               > long, unsigned long, __asan::StackAddressDescription*) ()
> from
>               > /lib64/libasan.so.5
>               > #5  0x00007ffff71d73f9 in
>               > __asan::AddressDescription::AddressDescription(unsigned
> long, unsigned
>               > long, bool) ()
>               >    from /lib64/libasan.so.5
>               > #6  0x00007ffff71d9e51 in
> __asan::ErrorGeneric::ErrorGeneric(unsigned int,
>               > unsigned long, unsigned long, unsigned long, unsigned long,
> bool, unsigned
>               > long) () from /lib64/libasan.so.5
>               > #7  0x00007ffff72bdc2a in
> __asan::ReportGenericError(unsigned long,
>               > unsigned long, unsigned long, unsigned long, bool, unsigned
> long, unsigned
>               > int, bool) () from /lib64/libasan.so.5
>               > #8  0x00007ffff720ef9c in __interceptor_strlen.part.0 ()
> from
>               > /lib64/libasan.so.5
>               > #9  0x00007ffff34ce2ec in string_key_sum (h=0x7fff6ff6e970,
>               > key=140735097062688)
>               >     at  src/vppinfra/hash.c:947
>               > #10 0x00007ffff34caf15 in key_sum (h=0x7fff6ff6e970,
> key=140735097062688)
>               >     at  src/vppinfra/hash.c:333
>               > #11 0x00007ffff34cbf76 in lookup (v=0x7fff6ff6e9b8,
> key=140735097062688,
>               > op=GET, new_value=0x0, old_value=0x0)
>               >     at  src/vppinfra/hash.c:557
>               > #12 0x00007ffff34cc59d in _hash_get_pair (v=0x7fff6ff6e9b8,
>               > key=140735097062688)
>               >     at  src/vppinfra/hash.c:653
>               > #13 0x000000000042e885 in lookup_hash_index
> (name=0x7fff7177c520
>               > "/mem/stat segment")
>               >     at  src/vpp/stats/stat_segment.c:69
>               > #14 0x0000000000431790 in stat_segment_new_entry
> (name=0x7fff7177c520
>               > "/mem/stat segment",
>               >     t=STAT_DIR_TYPE_COUNTER_VECTOR_SIMPLE)
>               >     at  src/vpp/stats/stat_segment.c:402
>               > #15 0x00000000004401fb in vlib_stats_register_mem_heap
>               > (heap=0x7ffb67e00000)
>               >     at  src/vpp/stats/stat_segment_provider.c:96
>               > #16 0x00000000004327fa in vlib_map_stat_segment_init ()
>               >     at  src/vpp/stats/stat_segment.c:493
>               > ---Type <return> to continue, or q <return> to quit---
>               > #17 0x00007ffff3e15d19 in vlib_main (vm=0x7fff6eeff680,
>               > input=0x7fff6a0a9f70)
>               >     at  src/vlib/main.c:3272
>               > #18 0x00007ffff3f0d924 in thread0 (arg=140735054608000)
>               >     at  src/vlib/unix/main.c:671
>               > #19 0x00007ffff34d9504 in clib_calljmp ()
>               >     at  src/vppinfra/longjmp.S:123
>               > #20 0x00007fffffffc940 in ?? ()
>               > #21 0x00007ffff3f0e67e in vlib_unix_main (argc=282,
> argv=0x61d00001a480)
>               >     at  src/vlib/unix/main.c:751
>               > #22 0x000000000040b482 in main (argc=282,
> argv=0x61d00001a480)
>               >     at  src/vpp/vnet/main.c:336
>               > (gdb) q
>               >
>               >
>               >
>               >
>               > Error 2:
>               > -----------
>               > Program received signal SIGSEGV, Segmentation fault.
>               > 0x00007ffff71db5c1 in
> __asan::FakeStack::AddrIsInFakeStack(unsigned long,
>               > unsigned long*, unsigned long*) ()
>               >    from /lib64/libasan.so.5
>               > (gdb) bt
>               > #0  0x00007ffff71db5c1 in
> __asan::FakeStack::AddrIsInFakeStack(unsigned
>               > long, unsigned long*, unsigned long*) ()
>               >    from /lib64/libasan.so.5
>               > #1  0x00007ffff72c2a11 in
>               >
> __asan::ThreadStackContainsAddress(__sanitizer::ThreadContextBase*, void*)
>               > ()
>               >    from /lib64/libasan.so.5
>               > #2  0x00007ffff72dcdc2 in
>               > __sanitizer::ThreadRegistry::FindThreadContextLocked(bool
>               > (*)(__sanitizer::ThreadContextBase*, void*), void*) () from
>               > /lib64/libasan.so.5
>               > #3  0x00007ffff72c3e5a in
> __asan::FindThreadByStackAddress(unsigned long)
>               > () from /lib64/libasan.so.5
>               > #4  0x00007ffff71d5fb6 in
> __asan::GetStackAddressInformation(unsigned
>               > long, unsigned long, __asan::StackAddressDescription*) ()
> from
>               > /lib64/libasan.so.5
>               > #5  0x00007ffff71d73f9 in
>               > __asan::AddressDescription::AddressDescription(unsigned
> long, unsigned
>               > long, bool) ()
>               >    from /lib64/libasan.so.5
>               > #6  0x00007ffff71d9e51 in
> __asan::ErrorGeneric::ErrorGeneric(unsigned int,
>               > unsigned long, unsigned long, unsigned long, unsigned long,
> bool, unsigned
>               > long) () from /lib64/libasan.so.5
>               > #7  0x00007ffff72bdc2a in
> __asan::ReportGenericError(unsigned long,
>               > unsigned long, unsigned long, unsigned long, bool, unsigned
> long, unsigned
>               > int, bool) () from /lib64/libasan.so.5
>               > #8  0x00007ffff721252c in __interceptor_strnlen.part.0 ()
> from
>               > /lib64/libasan.so.5
>               > #9  0x00007ffff3595a0c in strnlen_s_inline (s=0x7fff7177c520
> "/mem/stat
>               > segment", maxsize=128)
>               >     at  src/vppinfra/string.h:800
>               > #10 0x00007ffff3595f63 in strcpy_s_inline
> (dest=0x7fff6a0a9ab0 "",
>               > dmax=128, src=0x7fff7177c520 "/mem/stat segment")
>               >     at  src/vppinfra/string.h:960
>               > #11 0x00007ffff3597e1c in strcpy_s (dest=0x7fff6a0a9ab0 "",
> dmax=128,
>               > src=0x7fff7177c520 "/mem/stat segment")
>               >     at  src/vppinfra/string.c:274
>               > #12 0x0000000000431820 in stat_segment_new_entry
> (name=0x7fff7177c520
>               > "/mem/stat segment",
>               >     t=STAT_DIR_TYPE_COUNTER_VECTOR_SIMPLE)
>               >     at  src/vpp/stats/stat_segment.c:408
>               > #13 0x00000000004401fb in vlib_stats_register_mem_heap
>               > (heap=0x7ffb67e00000)
>               >     at  src/vpp/stats/stat_segment_provider.c:96
>               > #14 0x00000000004327fa in vlib_map_stat_segment_init ()
>               >     at  src/vpp/stats/stat_segment.c:493
>               > #15 0x00007ffff3e15d19 in vlib_main (vm=0x7fff6eeff680,
>               > input=0x7fff6a0a9f70)
>               >     at  src/vlib/main.c:3272
>               > #16 0x00007ffff3f0d924 in thread0 (arg=140735054608000)
>               >     at  src/vlib/unix/main.c:671
>               > ---Type <return> to continue, or q <return> to quit---
>               > #17 0x00007ffff34d9504 in clib_calljmp ()
>               >     at  src/vppinfra/longjmp.S:123
>               > #18 0x00007fffffffc940 in ?? ()
>               > #19 0x00007ffff3f0e67e in vlib_unix_main (argc=282,
> argv=0x61d00001a480)
>               >     at  src/vlib/unix/main.c:751
>               > #20 0x000000000040b482 in main (argc=282,
> argv=0x61d00001a480)
>               >     at  src/vpp/vnet/main.c:336
>               > (gdb)
>               >
>               >
>               > Thanks,
>               > Chetan
> 
> 

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#20080): https://lists.fd.io/g/vpp-dev/message/20080
Mute This Topic: https://lists.fd.io/mt/85407456/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