Comment 12 for bug 1826848

Revision history for this message
Thadeu Lima de Souza Cascardo (cascardo) wrote : Re: ip_defrag.sh in net from ubuntu_kernel_selftests failed with 5.0 / 5.3 kernel

To give more information on this issue:

ip_defrag will send a randomly-sized packet, and the result depends on that size, so we will see intermittent failures because of this reason.

But not this reason alone. The test that fails require a conntrack rule that will cause all fragments to be queued, and, then, sent all at once through the loopback interface. If the loop that sends all those packets is preempted, the problem may not show up, so there is one more cause for the failures to be intermittent. If it's not preempted, it might end up pushing more than 1000 packets, causing some of them to be dropped because of the backlog limit, which will cause the test to fail.

Raising the backlog limit or adjusting the maximum packet size on the test would fix it. The concern about raising the backlog limit is that it might affect other tests, even if it's rollbacked after the test, because some tests might run in parallel.

We could adjust the maximum size, but this would be not be upstreamable, as Eric Dumazet argues this is a real bug that should be fixed. In fact, I managed to reproduce it using veth.

On the other hand, I couldn't think of an easy way to fix this. Changing those drivers to skip the backlog doesn't seem a good idea to me.

Cascardo.