[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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



Control: fixed -1 5.3.9-1
Control: tags -1 + confirmed

Hi Stefan,

On Mon, Nov 18, 2019 at 04:37:10PM +0100, Stefan Walter wrote:
> 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.

Thanks for the report.

We likely will update both buster and stretch branches to newer stable
release version for upcoming point releases, adressing this as well.
But will already commit next for both branches the cherry-picked
commits to adress it, just in case.

5.3.9-1 does already include the fix.

Regards,
Salvatore


Reply to: