From: Stephen Hemminger <stephen@networkplumber.org>
To: David Marchand <david.marchand@redhat.com>
Cc: "Juan Pablo L." <jpablolorenzetti@hotmail.com>,
"users@dpdk.org" <users@dpdk.org>,
"Burakov, Anatoly" <anatoly.burakov@intel.com>,
Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>, dev <dev@dpdk.org>,
ci@dpdk.org
Subject: Re: dpdk address sanitizer
Date: Fri, 17 Jun 2022 09:17:51 -0700 [thread overview]
Message-ID: <20220617091751.05b64e64@hermes.local> (raw)
In-Reply-To: <CAJFAV8xMkHtQfeAX6HFBH+5Ddjnr_L-fmv0fUoM+i_fTLTnFDw@mail.gmail.com>
On Fri, 17 Jun 2022 07:45:33 +0200
David Marchand <david.marchand@redhat.com> wrote:
> Hello,
>
> On Fri, Jun 17, 2022 at 6:08 AM Juan Pablo L.
> <jpablolorenzetti@hotmail.com> wrote:
> >
> > Hello, I am new to dpdk ... i would like to trace memory usage and detect memory leaks, valgrind as well as address sanitizer (gcc) report some memory loss at application end. For the life of me, i cannot figure it out ... i just write a simple program that has the rte_eal_init + rte_eal_cleanup and i get the following error (also tried helloworld from examples, with same results):
> >
> > ==3399==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7f6ca3efb480 at pc 0x7f6ca7162b61 bp 0x7f6ca3efb450 sp 0x7f6ca3efac00
> > WRITE of size 24 at 0x7f6ca3efb480 thread T-1
> > #0 0x7f6ca7162b60 in __interceptor_sigaltstack.part.0 (/lib64/libasan.so.8+0x61b60)
> > #1 0x7f6ca71d9337 in __sanitizer::UnsetAlternateSignalStack() (/lib64/libasan.so.8+0xd8337)
> > #2 0x7f6ca71c90f4 in __asan::AsanThread::Destroy() (/lib64/libasan.so.8+0xc80f4)
> > #3 0x7f6ca679b000 in __GI___nptl_deallocate_tsd (/lib64/libc.so.6+0x8a000)
> > #4 0x7f6ca679dc9d in start_thread (/lib64/libc.so.6+0x8cc9d)
> > #5 0x7f6ca68235df in __GI___clone3 (/lib64/libc.so.6+0x1125df)
> >
> > Address 0x7f6ca3efb480 is a wild pointer inside of access range of size 0x000000000018.
> > SUMMARY: AddressSanitizer: stack-buffer-overflow (/lib64/libasan.so.8+0x61b60) in __interceptor_sigaltstack.part.0
> > Shadow bytes around the buggy address:
> > 0x0fee147d7640: 00 00 00 00 00 00 00 00 f1 f1 f1 f1 00 00 00 00
> > 0x0fee147d7650: 00 00 00 00 00 00 00 00 00 06 f2 f2 f2 f2 00 00
> > 0x0fee147d7660: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > 0x0fee147d7670: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > 0x0fee147d7680: 00 00 00 00 00 00 00 00 00 00 00 04 f3 f3 f3 f3
> > =>0x0fee147d7690:[f3]f3 f3 f3 00 00 00 00 00 00 00 00 00 00 00 00
> > 0x0fee147d76a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > 0x0fee147d76b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > 0x0fee147d76c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > 0x0fee147d76d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > 0x0fee147d76e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > Shadow byte legend (one shadow byte represents 8 application bytes):
> > Addressable: 00
> > Partially addressable: 01 02 03 04 05 06 07
> > Heap left redzone: fa
> > Freed heap region: fd
> > Stack left redzone: f1
> > Stack mid redzone: f2
> > Stack right redzone: f3
> > Stack after return: f5
> > Stack use after scope: f8
> > Global redzone: f9
> > Global init order: f6
> > Poisoned by user: f7
> > Container overflow: fc
> > Array cookie: ac
> > Intra object redzone: bb
> > ASan internal: fe
> > Left alloca redzone: ca
> > Right alloca redzone: cb
> > ==3399==ABORTING
> >
> > I am not sure what I m doing wrong but it is very frustrating. On top of that, I try other scenarios and see if I can just "ignore" that and still detect other memory leaks but it does not work. I get memory from rte_malloc and don't free it and I still get the above report only, I do not get any report from the memory I leaked intentionally ... no difference what so ever .... I tried the same with the helloworld example and I get the same results ....
>
> I experienced the same issue recently on Fedora 36.
> I did not investigate.
>
> I think I waived this warning, by setting
> ASAN_OPTIONS="use_sigaltstack=0" in the environment.
> HTH.
>
Looks like the alternate signal stack allocated inside address sanitizer is not big enough.
next prev parent reply other threads:[~2022-06-17 16:17 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <AM0PR04MB66929C6A4ECBCAC57C8C9C87D9AF9@AM0PR04MB6692.eurprd04.prod.outlook.com>
2022-06-17 5:45 ` dpdk address sanitizer David Marchand
2022-06-17 16:17 ` Stephen Hemminger [this message]
2022-06-19 2:39 ` Juan Pablo L.
2022-06-17 21:24 ` Juan Pablo L.
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220617091751.05b64e64@hermes.local \
--to=stephen@networkplumber.org \
--cc=anatoly.burakov@intel.com \
--cc=ci@dpdk.org \
--cc=david.marchand@redhat.com \
--cc=dev@dpdk.org \
--cc=dmitry.kozliuk@gmail.com \
--cc=jpablolorenzetti@hotmail.com \
--cc=users@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.