On 3/5/2018 4:42 PM, Reshma Pattan wrote:
Inside test_reorder_insert()
rte_mempool_get_bulk() and rte_mempool_put_bulk() are used
to allocate and free the mbufs and then rte_reorder_free()
is called which again freeing the mbufs using rte_pktmbuf_free().
The mixed use of rte_mempool_put_bulk() and rte_pktmbuf_free()
causing duplicate mbufs to be created when rte_mempool_get_bulk()
is called next in test_reorder_drain().
Since reorder library is taking care of freeing the mbufs
using rte_pktmbuf_free() change UT to allocate mbufs using
rte_pktmbuf_alloc().
Do not mix and match the bulk get/put APIs with
alloc/free APIs which can cause undefined behavior.
Fixes: d0c9b58d71 ("app/test: new reorder unit test")
--snip--
Could I also suggest the following text for the commit message:
app/test: fix reorder test failure
mbufs are being freed twice in error, once in rte_mempool_put_bulk()
and then in rte_reorder_free(). Refactor the code so that we use
rte_reorder_free() to free mbufs in the reorder buffer, and
use rte_pktmbuf_free() to free any unused or drained mbufs.
Rgds,
Dave.