In linuxapp's eal_memory.c, the map_all_hugepages function begins by declaring and initializing variables, including a nodemask (http://dpdk.org/browse/dpdk/tree/lib/librte_eal/linuxapp/eal/eal_memory.c?h=v18.02#n344). However, this initialization occurs before the numa_available function is called. According to the libnuma documentation (https://linux.die.net/man/3/numa), all other functions have undefined behavior if numa_available returns -1. The initialization of the nodemask needs to be moved after the numa_available call, and consequently its freeing at the end of the function needs to be conditional on it not being NULL.
Patch submitted: http://patches.dpdk.org/patch/43974/
Anatoly, Assigning the bug to you so that you can close it once the patch is applied. Thanks Ajit
Version 3 applied: http://patches.dpdk.org/patch/45065/