go icon indicating copy to clipboard operation
go copied to clipboard

x/tools/internal/jsonrpc2_v2: test failures with "connection reset by peer"

Open bcmills opened this issue 4 years ago • 11 comments

#!watchflakes
post <- pkg == "golang.org/x/tools/internal/jsonrpc2_v2" && `connection reset by peer`

2021-05-20T18:25:17-2275bb5/darwin-amd64-10_12

--- FAIL: TestServe (0.29s)
    --- FAIL: TestServe/tcp (0.28s)
        serve_test.go:104: dial tcp 127.0.0.1:49317: connect: connection reset by peer
FAIL
FAIL	golang.org/x/tools/internal/jsonrpc2_v2	0.515s

2021-04-12T17:45:26-2140cce/openbsd-amd64-68

--- FAIL: TestIdleTimeout (0.20s)
    serve_test.go:50: conn2.Close failed with error: failed reading header line: read tcp 127.0.0.1:25126->127.0.0.1:44239: read: connection reset by peer
FAIL
FAIL	golang.org/x/tools/internal/jsonrpc2_v2	0.532s

CC @ianthehat @findleyr

bcmills avatar Jun 02 '21 16:06 bcmills

I don't think we're going to make progress on root causing these, but we can perhaps add a retry.

findleyr avatar Nov 05 '21 15:11 findleyr

Change https://go.dev/cl/388134 mentions this issue: internal/jsonrpc_v2: rework Connection concurrency

gopherbot avatar Feb 26 '22 08:02 gopherbot

Change https://go.dev/cl/388598 mentions this issue: internal/jsonrpc2_v2: eliminate arbitrary timeouts in tests

gopherbot avatar Mar 01 '22 03:03 gopherbot

Change https://go.dev/cl/388594 mentions this issue: internal/jsonrpc2_v2: clarify documentation

gopherbot avatar Mar 01 '22 03:03 gopherbot

Change https://go.dev/cl/388597 mentions this issue: internal/jsonrpc2_v2: refactor concurrency in idleListener

gopherbot avatar Mar 01 '22 03:03 gopherbot

Change https://go.dev/cl/388600 mentions this issue: internal/lsp/protocol: avoid replying with non-nil interface values in case of error

gopherbot avatar Mar 01 '22 05:03 gopherbot

Change https://go.dev/cl/388775 mentions this issue: internal/jsonrpc2_v2: error out in-flight client calls when the reader breaks

gopherbot avatar Mar 01 '22 22:03 gopherbot

Change https://go.dev/cl/400054 mentions this issue: internal/lsp/protocol: ignore reply values with non-nil errors in jsonrpc2_v2 adapters

gopherbot avatar Apr 12 '22 20:04 gopherbot

Found new matching dashboard test flakes for:

#!watchflakes
post <- pkg == "golang.org/x/tools/internal/jsonrpc2_v2" && `connection reset by peer`
2022-07-14 01:47 openbsd-386-68 tools@db8f89b3 go@558785a0 x/tools/internal/jsonrpc2_v2.TestIdleTimeout (log)
--- FAIL: TestIdleTimeout (0.22s)
    serve_test.go:50: conn2.Close failed with error: failed reading header line: read tcp 127.0.0.1:4019->127.0.0.1:26562: read: connection reset by peer
2022-07-27 16:29 openbsd-386-68 tools@b3b5c13b go@ed50277f x/tools/internal/jsonrpc2_v2.TestIdleTimeout (log)
--- FAIL: TestIdleTimeout (1.25s)
    serve_test.go:50: conn2.Close failed with error: failed reading header line: read tcp 127.0.0.1:29771->127.0.0.1:17026: read: connection reset by peer
    stacktest.go:48: goroutine leak detected:
        [chan send]: $182
        /tmp/workdir/gopath/src/golang.org/x/tools/internal/jsonrpc2_v2/serve.go:242: (*idleListener).Accept
        /tmp/workdir/gopath/src/golang.org/x/tools/internal/jsonrpc2_v2/serve.go:90:  (*Server).run
        /tmp/workdir/gopath/src/golang.org/x/tools/internal/jsonrpc2_v2/serve.go:72:  Serve

        1 goroutines, 1 unique
2022-07-28 19:37 freebsd-amd64-race tools@d01bb2ff go@d9242f7a x/tools/internal/jsonrpc2_v2.TestIdleTimeout (log)
--- FAIL: TestIdleTimeout (0.24s)
    serve_test.go:50: conn2.Close failed with error: failed reading header line: read tcp 127.0.0.1:47929->127.0.0.1:47927: read: connection reset by peer
2022-08-03 20:00 openbsd-386-70 tools@371fc67d go@43456202 x/tools/internal/jsonrpc2_v2.TestIdleTimeout (log)
--- FAIL: TestIdleTimeout (0.24s)
    serve_test.go:50: conn2.Close failed with error: failed reading header line: read tcp 127.0.0.1:44270->127.0.0.1:30055: read: connection reset by peer
2022-08-11 16:19 openbsd-386-68 tools@37a81b68 go@133c0e90 x/tools/internal/jsonrpc2_v2.TestIdleTimeout (log)
--- FAIL: TestIdleTimeout (1.20s)
    serve_test.go:38: dial tcp 127.0.0.1:34338: connect: connection reset by peer
    stacktest.go:48: goroutine leak detected:
        [chan send]: $119
        /tmp/workdir/gopath/src/golang.org/x/tools/internal/jsonrpc2_v2/serve.go:242: (*idleListener).Accept
        /tmp/workdir/gopath/src/golang.org/x/tools/internal/jsonrpc2_v2/serve.go:90:  (*Server).run
        /tmp/workdir/gopath/src/golang.org/x/tools/internal/jsonrpc2_v2/serve.go:72:  Serve

        1 goroutines, 1 unique
2022-08-11 18:06 openbsd-386-68 tools@c4ec74a5 go@9e4638ad x/tools/internal/jsonrpc2_v2.TestIdleTimeout (log)
--- FAIL: TestIdleTimeout (1.55s)
    serve_test.go:38: dial tcp 127.0.0.1:25239: connect: connection reset by peer
    stacktest.go:48: goroutine leak detected:
        [IO wait]: $107
        /tmp/workdir/go/src/runtime/netpoll.go:305:                                   runtime_pollWait
        /tmp/workdir/go/src/internal/poll/fd_poll_runtime.go:84:                      (*pollDesc).wait
        /tmp/workdir/go/src/internal/poll/fd_poll_runtime.go:89:                      (*pollDesc).waitRead
        /tmp/workdir/go/src/internal/poll/fd_unix.go:167:                             (*FD).Read
        /tmp/workdir/go/src/net/fd_posix.go:55:                                       (*netFD).Read
        /tmp/workdir/go/src/net/net.go:183:                                           (*conn).Read
...
        /tmp/workdir/gopath/src/golang.org/x/tools/internal/jsonrpc2_v2/conn.go:399: (*Connection).deliverMessages
        /tmp/workdir/gopath/src/golang.org/x/tools/internal/jsonrpc2_v2/conn.go:114: newConnection

        [chan receive]: $105
        /tmp/workdir/gopath/src/golang.org/x/tools/internal/jsonrpc2_v2/jsonrpc2.go:113: (*async).wait
        /tmp/workdir/gopath/src/golang.org/x/tools/internal/jsonrpc2_v2/conn.go:270:     (*Connection).Wait
        /tmp/workdir/gopath/src/golang.org/x/tools/internal/jsonrpc2_v2/serve.go:115:    (*Server).run
        /tmp/workdir/gopath/src/golang.org/x/tools/internal/jsonrpc2_v2/serve.go:72:     Serve

        7 goroutines, 5 unique
2022-09-07 22:05 openbsd-amd64-70 tools@a6307518 go@2b6ff908 x/tools/internal/jsonrpc2_v2.TestIdleTimeout (log)
--- FAIL: TestIdleTimeout (0.25s)
    serve_test.go:50: conn2.Close failed with error: failed reading header line: read tcp 127.0.0.1:27484->127.0.0.1:42017: read: connection reset by peer
2022-09-11 21:08 openbsd-amd64-68 tools@e71c338b go@00ece11b x/tools/internal/jsonrpc2_v2.TestIdleTimeout (log)
--- FAIL: TestIdleTimeout (0.80s)
    serve_test.go:38: dial tcp 127.0.0.1:16849: connect: connection reset by peer
2022-09-19 15:32 openbsd-386-70 tools@0e011a0e go@31d06b58 x/tools/internal/jsonrpc2_v2.TestIdleTimeout (log)
--- FAIL: TestIdleTimeout (0.38s)
    serve_test.go:50: conn2.Close failed with error: failed reading header line: read tcp 127.0.0.1:30925->127.0.0.1:10059: read: connection reset by peer
2022-09-19 18:18 openbsd-386-68 tools@fdf581fd go@31d06b58 x/tools/internal/jsonrpc2_v2.TestIdleTimeout (log)
--- FAIL: TestIdleTimeout (0.35s)
    serve_test.go:38: dial tcp 127.0.0.1:36135: connect: connection reset by peer
2022-09-19 18:40 linux-s390x-ibm tools@15782446 go@e283473e x/tools/internal/jsonrpc2_v2.TestIdleTimeout (log)
--- FAIL: TestIdleTimeout (0.88s)
    serve_test.go:38: dial tcp 127.0.0.1:44017: connect: connection reset by peer

watchflakes

gopherbot avatar Sep 20 '22 19:09 gopherbot

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "golang.org/x/tools/internal/jsonrpc2_v2" && `connection reset by peer`
2022-09-28 14:34 linux-s390x-ibm tools@4dd4ddb9 go@f6d84451 x/tools/internal/jsonrpc2_v2.TestIdleTimeout (log)
--- FAIL: TestIdleTimeout (0.20s)
    serve_test.go:38: dial tcp 127.0.0.1:34831: connect: connection reset by peer

watchflakes

gopherbot avatar Sep 28 '22 19:09 gopherbot

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "golang.org/x/tools/internal/jsonrpc2_v2" && `connection reset by peer`
2022-09-29 22:28 openbsd-386-70 tools@d49f960b go@66165739 x/tools/internal/jsonrpc2_v2.TestIdleTimeout (log)
--- FAIL: TestIdleTimeout (0.54s)
    serve_test.go:50: conn2.Close failed with error: failed reading header line: read tcp 127.0.0.1:33845->127.0.0.1:11215: read: connection reset by peer

watchflakes

gopherbot avatar Oct 04 '22 18:10 gopherbot

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "golang.org/x/tools/internal/jsonrpc2_v2" && `connection reset by peer`
2022-10-06 14:25 openbsd-amd64-68 tools@bd8c28ff go@9dfadf91 x/tools/internal/jsonrpc2_v2.TestIdleTimeout (log)
--- FAIL: TestIdleTimeout (0.13s)
    serve_test.go:38: dial tcp 127.0.0.1:45940: connect: connection reset by peer

watchflakes

gopherbot avatar Oct 13 '22 12:10 gopherbot

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "golang.org/x/tools/internal/jsonrpc2_v2" && `connection reset by peer`
2022-10-15 19:01 linux-s390x-ibm tools@9b5e55b1 go@947091d3 x/tools/internal/jsonrpc2_v2.TestIdleTimeout (log)
--- FAIL: TestIdleTimeout (0.33s)
    serve_test.go:50: conn2.Close failed with error: failed reading header line: read tcp 127.0.0.1:60952->127.0.0.1:46349: read: connection reset by peer

watchflakes

gopherbot avatar Oct 15 '22 19:10 gopherbot

Change https://go.dev/cl/443355 mentions this issue: internal/jsonrpc2_v2: remove “Box” suffix from channel field names

gopherbot avatar Oct 17 '22 15:10 gopherbot

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "golang.org/x/tools/internal/jsonrpc2_v2" && `connection reset by peer`
2022-10-17 17:58 openbsd-386-68 tools@bc4e384f go@947091d3 x/tools/internal/jsonrpc2_v2.TestIdleTimeout (log)
--- FAIL: TestIdleTimeout (0.62s)
    serve_test.go:38: dial tcp 127.0.0.1:36551: connect: connection reset by peer

watchflakes

gopherbot avatar Oct 17 '22 18:10 gopherbot

Change https://go.dev/cl/446315 mentions this issue: internal/jsonrpc2_v2: initiate shutdown when the Writer breaks

gopherbot avatar Oct 31 '22 18:10 gopherbot

This should be fixed as of CL 443678 or earlier.

bcmills avatar Oct 31 '22 18:10 bcmills

Change https://go.dev/cl/447035 mentions this issue: internal/jsonrpc2_v2: initiate shutdown when the Writer breaks

gopherbot avatar Nov 01 '22 19:11 gopherbot