Hi Sudhir, Yes Asan is pretty picky about compiler version (probably issue 1), how you link your plugins (issue 3 is ASan complaining about your private plugin librtbvpp.so redefining an already defined global symbol, issue 2 might be linked to that too). Anyway, using GCC, LD_PRELOAD and ASAN_OPTIONS are valid workarounds 😊 Regarding not detecting leaks, this is something we do not support unfortunately: only memory violations (use-after-free etc) should be detected.
Best ben > -----Original Message----- > From: vpp-dev@lists.fd.io <vpp-dev@lists.fd.io> On Behalf Of Sudhir CR via > lists.fd.io > Sent: mardi 15 mars 2022 06:49 > To: Sudhir CR <sud...@rtbrick.com> > Cc: Benoit Ganne (bganne) <bga...@cisco.com>; vpp-dev@lists.fd.io > Subject: Re: [vpp-dev] VPP 2110 with AddressSanitizer enabled > > Hi Ben, > > I tried to run ASAN on vpp version 21.10 in debug mode.But It's not > working for me. > > > Issue 1: > I compiled vpp code with below build command (with clang) > sudo make rebuild VPP_EXTRA_CMAKE_ARGS=-DVPP_ENABLE_SANITIZE_ADDR=ON > After compilation starting vpp is failing with below error > sed: symbol lookup error: /home/supervisor/libvpp/build-root/install- > vpp_debug-native/vpp/lib/libvppinfra.so.1.0.1: undefined symbol: > __asan_option_detect_stack_use_after_return > > > Issue 2: > since compiling with clang is not working i tried compiling with GCC. i > used below command for compilation > > > sudo make rebuild VPP_EXTRA_CMAKE_ARGS=-DVPP_ENABLE_SANITIZE_ADDR=ON > CC=gcc-8 > > > with this vpp startup is failing with below error > ==908==ASan runtime does not come first in initial library list; you > should either link runtime to your application or manually preload it with > LD_PRELOAD. > I resolved above issue with below configuration > LD_PRELOAD=/usr/lib/gcc/x86_64-linux-gnu/8/libasan.so > export LD_PRELOAD > Issue 3: > once issue 2 is resolved vpp crashed with below backtrace > ``` > Thread 1 (Thread 0x7ffff7fce400 (LWP 678)): > #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51 > #1 0x00007ffff75917f1 in __GI_abort () at abort.c:79 > #2 0x00007fffe99f39ce in ?? () from /usr/lib/x86_64-linux- > gnu/libasan.so.5 > #3 0x00007fffe99fc088 in ?? () from /usr/lib/x86_64-linux- > gnu/libasan.so.5 > #4 0x00007fffe99d3a39 in ?? () from /usr/lib/x86_64-linux- > gnu/libasan.so.5 > #5 0x00007fffe99e1ee9 in ?? () from /usr/lib/x86_64-linux- > gnu/libasan.so.5 > #6 0x00007ffff7de38d3 in call_init (env=0x7fffffffe308, > argv=0x7fffffffe2e8, argc=3, l=<optimized out>) at dl-init.c:72 > #7 _dl_init (main_map=main_map@entry=0x5555583cf670, argc=3, > argv=0x7fffffffe2e8, env=0x7fffffffe308) at dl-init.c:119 > #8 0x00007ffff7de839f in dl_open_worker (a=a@entry=0x7fffffffcf40) at dl- > open.c:522 > #9 0x00007ffff76b816f in __GI__dl_catch_exception > (exception=0x7fffffffcf20, operate=0x7ffff7de7f60 <dl_open_worker>, > args=0x7fffffffcf40) > at dl-error-skeleton.c:196 > #10 0x00007ffff7de796a in _dl_open (file=0x7fffffffd1b0 > "/usr/local/lib/librtbvpp.so", mode=-2147483391, > caller_dlopen=0x7ffff794b73d <cmd_open_plugin+86>, nsid=<optimized > out>, argc=3, argv=<optimized out>, env=0x7fffffffe308) at dl-open.c:605 > #11 0x00007ffff70c9f96 in dlopen_doit (a=a@entry=0x7fffffffd170) at > dlopen.c:66 > #12 0x00007ffff76b816f in __GI__dl_catch_exception > (exception=exception@entry=0x7fffffffd110, operate=0x7ffff70c9f40 > <dlopen_doit>, > args=0x7fffffffd170) at dl-error-skeleton.c:196 > #13 0x00007ffff76b81ff in __GI__dl_catch_error (objname=0x55555779df30, > errstring=0x55555779df38, mallocedp=0x55555779df28, operate=<optimized > out>, > args=<optimized out>) at dl-error-skeleton.c:215 > #14 0x00007ffff70ca745 in _dlerror_run > (operate=operate@entry=0x7ffff70c9f40 <dlopen_doit>, > args=args@entry=0x7fffffffd170) at dlerror.c:162 > #15 0x00007ffff70ca051 in __dlopen (file=file@entry=0x7fffffffd1b0 > "/usr/local/lib/librtbvpp.so", mode=mode@entry=257) at dlopen.c:87 > ``` > I resolved this issue by exporting below ASAN options > export ASAN_OPTIONS=verify_asan_link_order=0:detect_odr_violation=0 > Once issue 3 is resolved vpp is up but it's not catching/reporting any > memory leaks > (I induced one leak in our code to verify the same). > we are starting our fib process (vpp) by executing below script > supervisor@dev1_sudhir>srv2:~ $ cat fib.sh > LD_PRELOAD=/usr/lib/gcc/x86_64-linux-gnu/8/libasan.so > export LD_PRELOAD > export ASAN_OPTIONS=verify_asan_link_order=0:detect_odr_violation=0 > sudo -E gdb --args bd -i /etc/rtbrick/bd/config/fibd.json > > ./fib.sh > > Can you please let me know if you find any issue in the procedure i > followed or > any pointers to solve the issue i am facing. > > Thanks and Regards, > Sudhir > > On Thu, Feb 24, 2022 at 6:39 PM Sudhir CR via lists.fd.io > <http://lists.fd.io> <sudhir=rtbrick....@lists.fd.io > <mailto:rtbrick....@lists.fd.io> > wrote: > > > Hi Ben, > Thanks for the update. > > Regards, > Sudhir > > On Thu, Feb 24, 2022 at 6:37 PM Benoit Ganne (bganne) > <bga...@cisco.com <mailto:bga...@cisco.com> > wrote: > > > Hi Sudhir, > > I am working on a few bugfixes for ASan. > Right now, I'd recommend to use ASan in debug builds only, > there are several issues that need to be fixed in release mode. > > Best > 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 Sudhir CR > via > > lists.fd.io <http://lists.fd.io> > > Sent: jeudi 24 février 2022 14:03 > > To: vpp-dev@lists.fd.io <mailto:vpp-dev@lists.fd.io> > > Subject: [vpp-dev] VPP 2110 with AddressSanitizer enabled > > > > Hi Team, > > > > > > We compiled vpp code with AddressSanitizer enabled. We used > the below > > command to compile code. > > > > > > sudo make rebuild-release VPP_EXTRA_CMAKE_ARGS=- > > DVPP_ENABLE_SANITIZE_ADDR=ON > > > > > > > > we are starting vpp with below command > > > > > > sudo ./vpp -c /etc/vpp/startup.conf > > > > > > > > But vpp startup is failed with below AddressSanitizer error > > > > > > AddressSanitizer:DEADLYSIGNAL > > > ================================================================= > > ==1442028==ERROR: AddressSanitizer: SEGV on unknown address > 0x0200255e3b3e > > (pc 0x7fe59ae338f7 bp 0x7ffc128b1c40 sp 0x7ffc128b1480 T0) > > ==1442028==The signal is caused by a READ memory access. > > #0 0x7fe59ae338f6 in sanitizer_unpoison_push__ > > > /home/supervisor/development/libvpp/src/vppinfra/sanitizer.h:54:17 > > #1 0x7fe59ae338f6 in hash_memory64 > > > /home/supervisor/development/libvpp/src/vppinfra/hash.c:157:15 > > #2 0x7fe59ae338f6 in hash_memory > > > /home/supervisor/development/libvpp/src/vppinfra/hash.c:280:10 > > #3 0x7fe59ae34b4e in key_sum > > /home/supervisor/development/libvpp/src/vppinfra/hash.c > > #4 0x7fe59ae34b4e in lookup.llvm.8926505759877686271 > > > /home/supervisor/development/libvpp/src/vppinfra/hash.c:557:7 > > #5 0x7fe59aeb203f in _hash_set3 > > > /home/supervisor/development/libvpp/src/vppinfra/hash.c:848:10 > > #6 0x7fe59c4edc8e in config_one_plugin > > > /home/supervisor/development/libvpp/src/vlib/unix/plugin.c:710:3 > > #7 0x7fe59c4edc8e in vlib_plugin_config > > > /home/supervisor/development/libvpp/src/vlib/unix/plugin.c:775:12 > > #8 0x7fe59c49c3f6 in vlib_unix_main > > > /home/supervisor/development/libvpp/src/vlib/unix/main.c:764:12 > > #9 0x55a040ce2e40 in main > > > /home/supervisor/development/libvpp/src/vpp/vnet/main.c:344:14 > > #10 0x7fe59a29ebf6 in __libc_start_main /build/glibc- > S9d2JN/glibc- > > 2.27/csu/../csu/libc-start.c:310 > > #11 0x55a040c41479 in _start > > (/home/supervisor/development/libvpp/build-root/install-vpp- > > native/vpp/bin/vpp+0x41479) > > > > AddressSanitizer can not provide additional info. > > SUMMARY: AddressSanitizer: SEGV > > > /home/supervisor/development/libvpp/src/vppinfra/sanitizer.h:54:17 in > > sanitizer_unpoison_push__ > > ==1442028==ABORTING > > Aborted > > > > > > > > contents of startup.conf looks like below > > > > > > > > unix { > > nodaemon > > log /var/log/vpp/vpp.log > > full-coredump > > cli-listen localhost:5003 > > runtime-dir /shm/run/vpp/ > > } > > > > api-trace { > > on > > } > > > > cpu { > > main-core 2 > > corelist-workers 3,4 > > } > > > > heapsize 600M > > > > statseg { > > size 150M > > } > > plugin_path /usr/local/lib/vpp_plugins/ > > plugins { > > plugin rtbrick_bcm_plugin.so { disable } > > plugin dpdk_plugin.so { disable } > > } > > > > > > > > Please let me know any suggestions on how to resolve this > Error. > > > > > > Thanks in Advance, > > > > Sudhir > > > > > > NOTICE TO RECIPIENT This e-mail message and any attachments > are > > confidential and may be privileged. If you received this e- > mail in error, > > any review, use, dissemination, distribution, or copying of > this e-mail is > > strictly prohibited. Please notify us immediately of the > error by return > > e-mail and please delete this message from your system. For > more > > information about Rtbrick, please visit us at > www.rtbrick.com <http://www.rtbrick.com> > > <http://www.rtbrick.com> > > > > NOTICE TO RECIPIENT This e-mail message and any attachments are > confidential and may be privileged. If you received this e-mail in error, > any review, use, dissemination, distribution, or copying of this e-mail is > strictly prohibited. Please notify us immediately of the error by return > e-mail and please delete this message from your system. For more > information about Rtbrick, please visit us at www.rtbrick.com > <http://www.rtbrick.com> > > > > > > NOTICE TO RECIPIENT This e-mail message and any attachments are > confidential and may be privileged. If you received this e-mail in error, > any review, use, dissemination, distribution, or copying of this e-mail is > strictly prohibited. Please notify us immediately of the error by return > e-mail and please delete this message from your system. For more > information about Rtbrick, please visit us at www.rtbrick.com > <http://www.rtbrick.com>
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#21025): https://lists.fd.io/g/vpp-dev/message/21025 Mute This Topic: https://lists.fd.io/mt/89364107/21656 Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-