Hi,

On Fri, 2017-07-28 at 08:26 +0200, Marc Haber wrote:
> On Mon, Jul 24, 2017 at 04:19:10PM +0200, Paolo Abeni wrote:
> > Once that a system enter the buggy status, do the packets reach the
> > relevant socket's queue?
> > 
> > ss -u
> > nstat |grep -e Udp -e Ip
> > 
> > will help checking that.
> 
> I now have the issue on one machine, a Xen guest acting as authoritative
> nameserver for my domains. Here are the outputs during normal use, with
> artificial queries coming in on eth0:
> 
> [9/1075]mh@impetus:~ $ ss -u
> Recv-Q Send-Q                                     Local Address:Port          
>                                             Peer Address:Port                
> 0      0                                              127.0.0.1:56547         
>                                                127.0.0.1:domain               
> 0      0                                         216.231.132.60:27667         
>                                               198.41.0.4:domain               
> 0      0                                         216.231.132.60:44121         
>                                                  8.8.8.8:domain               
> 0      0                                         216.231.132.60:29814         
>                                               198.41.0.4:domain               
> [10/1076]mh@impetus:~ $ ss -u
> Recv-Q Send-Q                                     Local Address:Port          
>                                             Peer Address:Port                
> [11/1076]mh@impetus:~ $ ss -u
> Recv-Q Send-Q                                     Local Address:Port          
>                                             Peer Address:Port                
> [12/1076]mh@impetus:~ $ ss -u
> Recv-Q Send-Q                                     Local Address:Port          
>                                             Peer Address:Port                
> [13/1076]mh@impetus:~ $ ss -u
> Recv-Q Send-Q                                     Local Address:Port          
>                                             Peer Address:Port                
> [14/1076]mh@impetus:~ $ nstat  | grep -e Udp -e Ip
> IpInReceives                    400688             0.0
> IpInAddrErrors                  18567              0.0
> IpInUnknownProtos               3                  0.0
> IpInDelivers                    330634             0.0
> IpOutRequests                   283637             0.0
> UdpInDatagrams                  145860             0.0
> UdpNoPorts                      1313               0.0
> UdpInErrors                     9356               0.0

Thanks for the info. This is compatible with what reported on:

https://bugzilla.kernel.org/show_bug.cgi?id=196469

and should be fixed by this patch:

http://marc.info/?l=linux-netdev&m=150115960024825&w=2

(approval pending)

Ad a workaround you can disable UDP early demux:

echo 0 > /proc/sys/net/ipv4/udp_early_demux

(will affect both ipv4 and ipv6).

and (if the system  is already into the bad state) increase the udp
accounted memory limit, writing in /proc/sys/net/ipv4/udp_mem greater
values than the current ones (the actual values depends on the system
total memory).

Feel free to test the above patch on your systems.

Cheers,

Paolo

Reply via email to