----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/41158/ -----------------------------------------------------------
(Updated Dec. 9, 2015, 3:15 p.m.) Review request for mesos, Ian Downes and Jie Yu. Bugs: MESOS-4105 https://issues.apache.org/jira/browse/MESOS-4105 Repository: mesos Description ------- We noticed that in some cases we delivered some corrupt packets to applications running in our containers. This is clearly wrong. Here is what happens: 1) We receive a corrupt packet externally 2) The hardware driver is able to checksum it and notices it has a bad checksum 3) The driver delivers this packet anyway to wait for TCP layer to checksum it again and then drop it 4) This packet is moved to a veth interface because it is for a container 5) Both sides of the veth pair have RX checksum offloading by default 6) The veth_xmit() marks the packet's checksum as UNNECESSARY since its peer device has rx checksum offloading 7) Packet is moved into the container TCP/IP stack 8) TCP layer is not going to checksum it since it is not necessary 9) The packet gets delivered to application layer Diffs ----- src/slave/containerizer/mesos/isolators/network/port_mapping.cpp 89bb36f936417de8169a2442729fbd7c9d60acb7 Diff: https://reviews.apache.org/r/41158/diff/ Testing ------- 1) Turn rx checksum off manually and the bug is gone 2) Test this patch and verify rx checksum is turned off as expected. 3) I don't see any noticable performance issue after turning this off Thanks, Cong Wang