[dpdk-dev] Segmentation fault in ip_frag_find

Padam Jeet Singh padam.singh at inventum.net
Fri Apr 22 10:51:47 CEST 2016


Hello,

We are using the DPDK framework and testing the IP reassembly code.

While reassembly is working fine, the application segfaults with the following (partially shown) stack trace. The segfault is not entirely reproducible - it happens quite randomly.

Program terminated with signal 11, Segmentation fault.
#0  0x00000000004b3408 in ip_frag_find ()
(gdb) bt
#0  0x00000000004b3408 in ip_frag_find ()
#1  0x00000000004b0cde in rte_ipv4_frag_reassemble_packet ()

All the required checks before we call this function:

1. Death Row is initialised, and not null.
2. The reassemble table is initialised and not null.
3. Protect the reassembly code with a spin lock, so it’s not a thread issue.
4. Free the death row by calling rte_ip_frag_free_death_row post the reassembly call within the spin lock itself.
5. At transmit time, the reassembled packet is fragmented again to match the outbound MTU.

Version of DPDK is  1.7, however I have checked the git tree and not found any functional changes to till the stable version.

Any inputs/ideas on how the issue can be fixed?

Thanks,
Padam


More information about the dev mailing list