Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.debian.kernel > #65646

Bug#945023: Backport 'ipv4: Return -ENETUNREACH if we can't create route but saddr is valid'

From Stefan Walter <stefan.walter@inf.ethz.ch>
Newsgroups linux.debian.bugs.dist, linux.debian.kernel
Subject Bug#945023: Backport 'ipv4: Return -ENETUNREACH if we can't create route but saddr is valid'
Date 2019-11-18 17:00 +0100
Message-ID <z3RBv-6s1-5@gated-at.bofh.it> (permalink)
Organization linux.* mail to news gateway

Cross-posted to 2 groups.

Show all headers | View raw


Source: linux
Version: 4.19.67-2+deb10u1
Severity: normal
Tags: upstream patch fixed-upstream
Control: found -1 4.9.189-3+deb9u1
Control: found -1 4.19.67-2+deb10u2
Control: found -1 4.9.189-3+deb9u2

The patch 'ipv4: Return -ENETUNREACH if we can't create route but saddr 
is valid' was added in all 4.x stable kernels, e.g., 4.19.81. This patch 
fixes a nasty stability issue of NFS4. If the network goes away, active 
file operations will fail on the client with EINVAL instead of 
continuing when the server comes back.

The following is an example are for reproducing this error (client 
'muster', server 'sample'):

# Mounted file system
muster[0]:/mnt# mount | grep /mnt
sample:/local/plain on /mnt type nfs4 
(rw,relatime,vers=4.0,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=x.x.x.x,local_lock=none,addr=y.y.y.y)

# Script to simulate a network outage
muster[130]:/mnt# cat /root/net.sh
ifdown enp0s31f6
sleep 300
ifup enp0s31f6

# Start all I/O processes and simulate a network interruption
muster[0]:/mnt# for i in `seq 1 100`; do  dd if=/dev/zero of=$i bs=1M 
count=25 oflag=direct & done ; sleep 5 ; nohup sh /root/net.sh
...
26214400 bytes (26 MB) copied, 3.93894 s, 6.7 MB/s
25+0 records in
25+0 records out
26214400 bytes (26 MB) copied, 3.90155 s, 6.7 MB/s
25+0 records in
25+0 records out
26214400 bytes (26 MB) copied, 3.92334 s, 6.7 MB/s
dd: dd: dd: error writing ‘16’error writing ‘32’error writing ‘25’: 
Invalid argument: Invalid argument: Invalid argument...
21+0 records in
20+0 records out
10+0 records in
9+0 records out
19+0 records in
18+0 records out
20971520 bytes (21 MB) copied18874368 bytes (19 MB) copied9437184 bytes 
(9.4 MB) copied, 306.087 s, 68.5 kB/s
, 304.42 s, 31.0 kB/s
, 305.808 s, 61.7 kB/s
25+0 records in
25+0 records out
26214400 bytes (26 MB) copied, 306.792 s, 85.4 kB/s
25+0 records in
25+0 records out
26214400 bytes (26 MB) copied, 306.805 s, 85.4 kB/s
25+0 records in
25+0 records out
26214400 bytes (26 MB) copied, 306.665 s, 85.5 kB/s
...

muster[0]:/mnt# dmesg  | tail -5
[  667.098917] nfs: server sample not responding, still trying
[  667.098929] nfs: server sample not responding, still trying
[  695.258324] nfs: RPC call returned error 22
[  695.258333] nfs: RPC call returned error 22
[  695.258350] nfs: RPC call returned error 22


Please incorporate this single patch in all 4.x kernels of the currently 
supported Debian releases.

Back to linux.debian.kernel | Previous | NextNext in thread | Find similar | Unroll thread


Thread

Bug#945023: Backport 'ipv4: Return -ENETUNREACH if we can't create route but saddr is valid' Stefan Walter <stefan.walter@inf.ethz.ch> - 2019-11-18 17:00 +0100
  Processed: Backport 'ipv4: Return -ENETUNREACH if we can't create  route but saddr is valid' "Debian Bug Tracking System" <owner@bugs.debian.org> - 2019-11-18 17:00 +0100
  Bug#945023: Backport 'ipv4: Return -ENETUNREACH if we can't create route but saddr is valid' Salvatore Bonaccorso <carnil@debian.org> - 2019-11-18 19:20 +0100
  Processed: Re: Bug#945023: Backport 'ipv4: Return -ENETUNREACH if  we can't create route but saddr is valid' "Debian Bug Tracking System" <owner@bugs.debian.org> - 2019-11-18 19:20 +0100

csiph-web