Open aaalgo opened 8 years ago
@gleb-cloudius review please
The surrounding code looks like this:
auto fw = _dev->forward_dst(engine().cpu_id(), [&p, &l3, this] () {
auto hwrss = p.rss_hash();
if (hwrss) {
return hwrss.value();
} else {
forward_hash data;
if (l3.forward(data, p, sizeof(eth_hdr))) {
return toeplitz_hash(rss_key(), data);
}
return 0u;
}
});
so we know _dev is valid and, according to the trace, is equal 0x6000000ae1c0.
seastar git commit 5cffbabeafa94c3b3725b28b62bc3596b1e20f65 dpdk git commit 3b60ce8cbb959d7a6839f94ad995a3594c07801e OS: CentOS 7 NIC: Intel Corporation 82571EB Gigabit Ethernet Controller [8086:105e](rev 06) GCC is the devtoolset-3-gcc-4.9.
command: ./httpd --network-stack native --dpdk-pmd --dhcp 0 --host-ipv4-addr 10.0.0.20 --netmask-ipv4-addr 255.255.255.0 --collectd 0 --smp 2 --port 10000
Segmentation fault is triggered by another machine trying to wget http://10.0.0.20:ANY_PORT. That is, any port number, will triguer the segmentation fault.
Stack trace is this:
The variable "data" is
Other variables are optimized out.
I'm not able to build the debug version as I have trouble installing libasan.
I can get rid of the segmentation fault and make the program run normally by making the following change. So it seems to me ether this or this->_dev is not correct.
Hope this information is helpful.
Best regards.