sunrpc: infinite unkillable console spam in xs_tcp_setup_socket

3 messages, 2 authors, 2017-11-28 · open the first message on its own page

sunrpc: infinite unkillable console spam in xs_tcp_setup_socket

From: Dmitry Vyukov <dvyukov@google.com>
Date: 2017-11-20 13:02:53

Hello,

The following program triggers infinite stream of the following output
on console. The program is unkillable and this effectively brings the
machine down:


** 16 printk messages dropped ** [12875.022917] xs_tcp_setup_socket:
connect returned unhandled error -113
** 17 printk messages dropped ** [12875.024832] xs_tcp_setup_socket:
connect returned unhandled error -113
** 17 printk messages dropped ** [12875.026765] xs_tcp_setup_socket:
connect returned unhandled error -113
** 17 printk messages dropped ** [12875.028729] xs_tcp_setup_socket:
connect returned unhandled error -113
** 17 printk messages dropped ** [12875.030648] xs_tcp_setup_socket:
connect returned unhandled error -113
** 15 printk messages dropped ** [12875.032360] xs_tcp_setup_socket:
connect returned unhandled error -113
** 16 printk messages dropped ** [12875.034197] xs_tcp_setup_socket:
connect returned unhandled error -113
** 16 printk messages dropped ** [12875.035988] xs_tcp_setup_socket:
connect returned unhandled error -113
** 15 printk messages dropped ** [12875.037718] xs_tcp_setup_socket:
connect returned unhandled error -113
** 16 printk messages dropped ** [12875.039553] xs_tcp_setup_socket:
connect returned unhandled error -113
** 16 printk messages dropped ** [12875.041392] xs_tcp_setup_socket:
connect returned unhandled error -113


Program:
https://gist.github.com/dvyukov/629543c9abc19576fec66ce8fae130c7

On upstream commit c8a0739b185d11d6e2ca7ad9f5835841d1cfc765 (Nov 19).
Config is attached.

Found by syzkaller fuzzer.

Thanks.

Re: sunrpc: infinite unkillable console spam in xs_tcp_setup_socket

From: Trond Myklebust <hidden>
Date: 2017-11-24 17:34:12

On Mon, 2017-11-20 at 14:02 +0100, Dmitry Vyukov wrote:
Hello,

The following program triggers infinite stream of the following
output
on console. The program is unkillable and this effectively brings the
machine down:


** 16 printk messages dropped ** [12875.022917] xs_tcp_setup_socket:
connect returned unhandled error -113
Does the following fix the issue?

8<-----------------------------------------------------
From f48d3f01df45f50f0145060f5272ccf1aea855ac Mon Sep 17 00:00:00 2001
From: Trond Myklebust <redacted>
Date: Fri, 24 Nov 2017 12:00:24 -0500
Subject: [PATCH] SUNRPC: Allow connect to return EHOSTUNREACH

Reported-by: Dmitry Vyukov <dvyukov@google.com>
Signed-off-by: Trond Myklebust <redacted>
---
 net/sunrpc/xprtsock.c | 1 +
 1 file changed, 1 insertion(+)
diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c
index 4dad5da388d6..8cb40f8ffa5b 100644
--- a/net/sunrpc/xprtsock.c
+++ b/net/sunrpc/xprtsock.c
@@ -2437,6 +2437,7 @@ static void xs_tcp_setup_socket(struct work_struct *work)
 	case -ECONNREFUSED:
 	case -ECONNRESET:
 	case -ENETUNREACH:
+	case -EHOSTUNREACH:
 	case -EADDRINUSE:
 	case -ENOBUFS:
 		/*
-- 
2.14.3

-- 
Trond Myklebust
Linux NFS client maintainer, PrimaryData
trond.myklebust@primarydata.com

Re: sunrpc: infinite unkillable console spam in xs_tcp_setup_socket

From: Dmitry Vyukov <dvyukov@google.com>
Date: 2017-11-28 10:01:20

On Fri, Nov 24, 2017 at 6:34 PM, Trond Myklebust
[off-list ref] wrote:
On Mon, 2017-11-20 at 14:02 +0100, Dmitry Vyukov wrote:
quoted
Hello,

The following program triggers infinite stream of the following
output
on console. The program is unkillable and this effectively brings the
machine down:


** 16 printk messages dropped ** [12875.022917] xs_tcp_setup_socket:
connect returned unhandled error -113
Does the following fix the issue?

Re-run the provided reproducer with the patch.
I don't see any kernel output and the process is perfectly killable now.

Tested-by: Dmitry Vyukov <dvyukov@google.com>




quoted hunk
8<-----------------------------------------------------
From f48d3f01df45f50f0145060f5272ccf1aea855ac Mon Sep 17 00:00:00 2001
From: Trond Myklebust <redacted>
Date: Fri, 24 Nov 2017 12:00:24 -0500
Subject: [PATCH] SUNRPC: Allow connect to return EHOSTUNREACH

Reported-by: Dmitry Vyukov <dvyukov@google.com>
Signed-off-by: Trond Myklebust <redacted>
---
 net/sunrpc/xprtsock.c | 1 +
 1 file changed, 1 insertion(+)
diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c
index 4dad5da388d6..8cb40f8ffa5b 100644
--- a/net/sunrpc/xprtsock.c
+++ b/net/sunrpc/xprtsock.c
@@ -2437,6 +2437,7 @@ static void xs_tcp_setup_socket(struct work_struct *work)
        case -ECONNREFUSED:
        case -ECONNRESET:
        case -ENETUNREACH:
+       case -EHOSTUNREACH:
        case -EADDRINUSE:
        case -ENOBUFS:
                /*
--
2.14.3

--
Trond Myklebust
Linux NFS client maintainer, PrimaryData
trond.myklebust@primarydata.com
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help