【rte_malloc & free】the issue of crashing at malloc_elem_free

Stephen Hemminger stephen at networkplumber.org
Thu Jun 9 17:24:32 CEST 2022


On Thu, 9 Jun 2022 09:17:33 +0000
"halsey.pian at longsys.com" <halsey.pian at longsys.com> wrote:

> Dear All,
> 
> I am suffering an crash issue recently. My app based on SPDK/DPDK uses rte_malloc_socket and rte_free to use hugepage feature in multi-threads and async programming environment.
> 
> Unfortunately, It would crashed sometimes, and I found that it usually crashed caused by the element's size = 0 in function malloc_elem_free at line 570 in file malloc_elem.c during calling rte_free, the call stack is as the attachment.
> 
> I am not sure if I miss some information related async and multi-thread programing using DPDK rte_malloc module. 
> 
> BTW, it works fine when I switch to kernel's malloc/free.

Does it work if you enable address sanitizer and use regular glibc malloc/free?
What about with valgrind?
You can also build DPDK with RTE_MALLOC_DEBUG which adds more checks for clobbering.

I suspect your code is writing outside the allocated space or has a use after free.


More information about the dev mailing list