Could it be that the hugpages are not contiguous and reboot clears this issue, not able to confirm.
Yes, this is likely the root cause. Since you're building DPDK yourself, you can print cur->physaddr around line 900 (see the link below). In legacy mode, DPDK leaves "holes" (unused elements) in memory segment lists between pages that are not physically contiguous. Because in your case the segment list has only two elements, there is no room for two segments for two hugepages plus a hole segment between them.