Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

runtime: TestNetpollDeadlock is failing #42500

Closed
jbpratt opened this issue Nov 11, 2020 · 5 comments
Closed

runtime: TestNetpollDeadlock is failing #42500

jbpratt opened this issue Nov 11, 2020 · 5 comments

Comments

@jbpratt
Copy link

@jbpratt jbpratt commented Nov 11, 2020

What version of Go are you using (go version)?

$ go version
go version go1.15.4 linux/amd64

Does this issue reproduce with the latest release?

Yes. It seems that the failure is happening on 1.15.4 release and dev.go2go branch

src >go test runtime -test.run TestNetpollDeadlock
--- FAIL: TestNetpollDeadlock (60.29s)
    crash_test.go:105: /tmp/go-build728907759/testprognet.exe NetpollDeadlock exit status: exit status 2
    crash_test.go:453: output does not start with "done\n":
        dialing
        SIGQUIT: quit
        PC=0x46ce01 m=0 sigcode=0

        goroutine 0 [idle]:
        runtime.futex(0x6137c8, 0x80, 0x0, 0x0, 0x0, 0xc000068d48, 0x5ede88, 0x432cbc, 0x7ffdeb59dbc8, 0x40d35f, ...)
        	/usr/lib/go/src/runtime/sys_linux_amd64.s:587 +0x21
        runtime.futexsleep(0x6137c8, 0x7ffd00000000, 0xffffffffffffffff)
        	/usr/lib/go/src/runtime/os_linux.go:45 +0x46
        runtime.notesleep(0x6137c8)
        	/usr/lib/go/src/runtime/lock_futex.go:159 +0x9f
        runtime.stoplockedm()
        	/usr/lib/go/src/runtime/proc.go:2079 +0x8d
        runtime.schedule()
        	/usr/lib/go/src/runtime/proc.go:2611 +0x48c
        runtime.park_m(0xc000000180)
        	/usr/lib/go/src/runtime/proc.go:2845 +0x9d
        runtime.mcall(0x0)
        	/usr/lib/go/src/runtime/asm_amd64.s:318 +0x5b

        goroutine 1 [select, locked to thread]:
        net.(*sysDialer).dialParallel(0xc0001b4000, 0x561c60, 0xc0000140e8, 0xc0001ac040, 0x1, 0x1, 0xc0001ac050, 0x1, 0x1, 0x0, ...)
        	/usr/lib/go/src/net/dial.go:490 +0x385
        net.(*Dialer).DialContext(0xc000077e20, 0x561c60, 0xc0000140e8, 0x5375e7, 0x3, 0x539518, 0xf, 0x0, 0x0, 0x0, ...)
        	/usr/lib/go/src/net/dial.go:423 +0x4d4
        net.(*Dialer).Dial(...)
        	/usr/lib/go/src/net/dial.go:348
        net.Dial(0x5375e7, 0x3, 0x539518, 0xf, 0x1, 0x8, 0x0, 0x0)
        	/usr/lib/go/src/net/dial.go:319 +0xad
        main.NetpollDeadlockInit()
        	/usr/lib/go/src/runtime/testdata/testprognet/net.go:19 +0xa7
        main.registerInit(...)
        	/usr/lib/go/src/runtime/testdata/testprognet/main.go:20
        main.init.0()
        	/usr/lib/go/src/runtime/testdata/testprognet/net.go:13 +0x107

        goroutine 35 [IO wait]:
        internal/poll.runtime_pollWait(0x7f600c46be88, 0x77, 0xc000102480)
        	/usr/lib/go/src/runtime/netpoll.go:222 +0x55
        internal/poll.(*pollDesc).wait(0xc000122118, 0x77, 0x561c00, 0xc000128000, 0xc000122100)
        	/usr/lib/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
        internal/poll.(*pollDesc).waitWrite(...)
        	/usr/lib/go/src/internal/poll/fd_poll_runtime.go:96
        internal/poll.(*FD).WaitWrite(...)
        	/usr/lib/go/src/internal/poll/fd_unix.go:508
        net.(*netFD).connect(0xc000122100, 0x561c20, 0xc000128000, 0x0, 0x0, 0x560a20, 0xc00012e000, 0x0, 0x0, 0x0, ...)
        	/usr/lib/go/src/net/fd_unix.go:141 +0x25c
        net.(*netFD).dial(0xc000122100, 0x561c20, 0xc000128000, 0x562040, 0x0, 0x562040, 0xc00018c360, 0x0, 0x1, 0xc000075b40)
        	/usr/lib/go/src/net/sock_posix.go:149 +0x108
        net.socket(0x561c20, 0xc000128000, 0x5375e7, 0x3, 0xa, 0x1, 0x0, 0x0, 0x562040, 0x0, ...)
        	/usr/lib/go/src/net/sock_posix.go:70 +0x1c5
        net.internetSocket(0x561c20, 0xc000128000, 0x5375e7, 0x3, 0x562040, 0x0, 0x562040, 0xc00018c360, 0x1, 0x0, ...)
        	/usr/lib/go/src/net/ipsock_posix.go:141 +0x145
        net.(*sysDialer).doDialTCP(0xc0001b4000, 0x561c20, 0xc000128000, 0x0, 0xc00018c360, 0x5159c0, 0x6427c0, 0x0)
        	/usr/lib/go/src/net/tcpsock_posix.go:65 +0xc5
        net.(*sysDialer).dialTCP(0xc0001b4000, 0x561c20, 0xc000128000, 0x0, 0xc00018c360, 0xc000060d80, 0x406e50, 0x60)
        	/usr/lib/go/src/net/tcpsock_posix.go:61 +0xd7
        net.(*sysDialer).dialSingle(0xc0001b4000, 0x561c20, 0xc000128000, 0x560d40, 0xc00018c360, 0x0, 0x0, 0x0, 0x0)
        	/usr/lib/go/src/net/dial.go:580 +0x5e5
        net.(*sysDialer).dialSerial(0xc0001b4000, 0x561c20, 0xc000128000, 0xc0001ac050, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0)
        	/usr/lib/go/src/net/dial.go:548 +0x152
        net.(*sysDialer).dialParallel.func1(0x561c20, 0xc000128000, 0xc00012a000)
        	/usr/lib/go/src/net/dial.go:468 +0x9b
        created by net.(*sysDialer).dialParallel
        	/usr/lib/go/src/net/dial.go:494 +0x5cb

        goroutine 36 [select]:
        net.(*netFD).connect.func2(0x561c20, 0xc000128000, 0xc000122100, 0xc0001201e0, 0xc000120180)
        	/usr/lib/go/src/net/fd_unix.go:118 +0xc5
        created by net.(*netFD).connect
        	/usr/lib/go/src/net/fd_unix.go:117 +0x234

        rax    0xca
        rbx    0x613680
        rcx    0x46ce03
        rdx    0x0
        rdi    0x6137c8
        rsi    0x80
        rbp    0x7ffdeb59db90
        rsp    0x7ffdeb59db48
        r8     0x0
        r9     0x0
        r10    0x0
        r11    0x286
        r12    0xc000077c60
        r13    0xc0001821e0
        r14    0xc0001ae120
        r15    0x0
        rip    0x46ce01
        rflags 0x286
        cs     0x33
        fs     0x0
        gs     0x0
FAIL
FAIL	runtime	60.293s
FAIL

What operating system and processor architecture are you using (go env)?

go env Output
$ go env
GO111MODULE="on"
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/jbpratt/.cache/go-build"
GOENV="/home/jbpratt/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/home/jbpratt/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/jbpratt/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/lib/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/lib/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/home/jbpratt/projects/goroot/src/go.mod"
CGO_CFLAGS="-g -O2 -Wno-return-local-addr"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build842127455=/tmp/go-build -gno-record-gcc-switches"

What did you do?

projects >git clone https://go.googlesource.com/go goroot
Cloning into 'goroot'...
remote: Counting objects: 22, done56 MiB ...Counting objects: 1
remote: Total 444795 (delta 334465), reused 444795 (delta 334465)
Receiving objects: 100% (444795/444795), 321.26 MiB | 10.79 MiB/s, done.
Resolving deltas: 100% (334465/334465), done.
projects >cd goroot/
goroot >git checkout dev.go2go
Branch 'dev.go2go' set up to track remote branch 'dev.go2go' from 'origin'.
Switched to a new branch 'dev.go2go'
goroot >cd src/
src >./all.bash

What did you expect to see?

A lovely go2 tool

What did you see instead?

--- FAIL: TestNetpollDeadlock (71.82s)
    crash_test.go:105: /tmp/go-build148411693/testprognet.exe NetpollDeadlock exit status: exit status 2
    crash_test.go:453: output does not start with "done\n":
        dialing
        SIGQUIT: quit
        PC=0x46c5a1 m=0 sigcode=0
goroot >git checkout dev.go2go
Branch 'dev.go2go' set up to track remote branch 'dev.go2go' from 'origin'.
Switched to a new branch 'dev.go2go'
goroot >cd src/
src >./all.bash
Building Go cmd/dist using /usr/lib/go. (go1.15.4 linux/amd64)
Building Go toolchain1 using /usr/lib/go.
Building Go bootstrap cmd/go (go_bootstrap) using Go toolchain1.
Building Go toolchain2 using go_bootstrap and Go toolchain1.
Building Go toolchain3 using go_bootstrap and Go toolchain2.
Building packages and commands for linux/amd64.

##### Testing packages.
ok  	archive/tar	0.072s
ok  	archive/zip	0.063s
ok  	bufio	0.081s
ok  	bytes	0.166s
ok  	compress/bzip2	0.059s
ok  	compress/flate	0.512s
ok  	compress/gzip	0.046s
ok  	compress/lzw	0.034s
ok  	compress/zlib	0.051s
ok  	container/heap	0.015s
ok  	container/list	0.002s
ok  	container/ring	0.006s
ok  	context	0.070s
ok  	crypto	0.030s
ok  	crypto/aes	0.017s
ok  	crypto/cipher	0.025s
ok  	crypto/des	0.041s
ok  	crypto/dsa	0.003s
ok  	crypto/ecdsa	0.193s
ok  	crypto/ed25519	0.102s
ok  	crypto/elliptic	0.062s
ok  	crypto/hmac	0.028s
ok  	crypto/internal/subtle	0.029s
ok  	crypto/md5	0.021s
ok  	crypto/rand	0.045s
ok  	crypto/rc4	0.028s
ok  	crypto/rsa	0.156s
ok  	crypto/sha1	0.047s
ok  	crypto/sha256	0.015s
ok  	crypto/sha512	0.034s
ok  	crypto/subtle	0.029s
ok  	crypto/tls	0.849s
ok  	crypto/x509	0.501s
ok  	database/sql	0.625s
ok  	database/sql/driver	0.028s
ok  	debug/dwarf	0.033s
ok  	debug/elf	0.080s
ok  	debug/gosym	0.073s
ok  	debug/macho	0.055s
ok  	debug/pe	0.006s
ok  	debug/plan9obj	0.030s
ok  	encoding/ascii85	0.043s
ok  	encoding/asn1	0.012s
ok  	encoding/base32	0.041s
ok  	encoding/base64	0.065s
ok  	encoding/binary	0.088s
ok  	encoding/csv	0.080s
ok  	encoding/gob	0.038s
ok  	encoding/hex	0.049s
ok  	encoding/json	0.260s
ok  	encoding/pem	0.010s
ok  	encoding/xml	0.033s
ok  	errors	0.077s
ok  	expvar	0.046s
ok  	flag	0.083s
ok  	fmt	0.064s
ok  	go/ast	0.025s
ok  	go/build	0.171s
ok  	go/constant	0.040s
ok  	go/doc	0.044s
ok  	go/format	0.030s
ok  	go/importer	0.100s
ok  	go/internal/gccgoimporter	0.008s
ok  	go/internal/gcimporter	0.507s
ok  	go/internal/srcimporter	5.220s
ok  	go/parser	0.038s
ok  	go/printer	0.328s
ok  	go/scanner	0.014s
ok  	go/token	0.013s
ok  	go/types	7.603s
ok  	hash	0.019s
ok  	hash/adler32	0.038s
ok  	hash/crc32	0.021s
ok  	hash/crc64	0.039s
ok  	hash/fnv	0.035s
ok  	hash/maphash	0.110s
ok  	html	0.009s
ok  	html/template	0.026s
ok  	image	0.062s
ok  	image/color	0.020s
ok  	image/draw	0.093s
ok  	image/gif	0.281s
ok  	image/jpeg	0.217s
ok  	image/png	0.040s
ok  	index/suffixarray	0.140s
ok  	internal/cpu	0.139s
ok  	internal/fmtsort	0.030s
ok  	internal/poll	0.073s
ok  	internal/profile	0.009s
ok  	internal/reflectlite	0.122s
ok  	internal/singleflight	0.030s
ok  	internal/trace	0.089s
ok  	internal/unsafeheader	0.031s
ok  	internal/xcoff	0.031s
ok  	io	0.032s
ok  	io/ioutil	0.031s
ok  	log	0.046s
ok  	log/syslog	1.254s
ok  	math	0.030s
ok  	math/big	0.784s
ok  	math/bits	0.004s
ok  	math/cmplx	0.061s
ok  	math/rand	0.170s
ok  	mime	0.087s
ok  	mime/multipart	0.231s
ok  	mime/quotedprintable	0.012s
ok  	net	3.652s
ok  	net/http	7.534s
ok  	net/http/cgi	0.456s
ok  	net/http/cookiejar	0.035s
ok  	net/http/fcgi	0.021s
ok  	net/http/httptest	0.031s
ok  	net/http/httptrace	0.084s
ok  	net/http/httputil	0.117s
ok  	net/http/internal	0.036s
ok  	net/http/pprof	5.147s
ok  	net/internal/socktest	0.007s
ok  	net/mail	0.025s
ok  	net/rpc	0.046s
ok  	net/rpc/jsonrpc	0.013s
ok  	net/smtp	0.009s
ok  	net/textproto	0.036s
ok  	net/url	0.033s
ok  	os	0.793s
ok  	os/exec	1.696s
ok  	os/signal	2.319s
ok  	os/user	0.030s
ok  	path	0.021s
ok  	path/filepath	0.040s
ok  	plugin	0.003s
ok  	reflect	0.241s
ok  	regexp	0.093s
ok  	regexp/syntax	0.213s
--- FAIL: TestNetpollDeadlock (71.82s)
    crash_test.go:105: /tmp/go-build148411693/testprognet.exe NetpollDeadlock exit status: exit status 2
    crash_test.go:453: output does not start with "done\n":
        dialing
        SIGQUIT: quit
        PC=0x46c5a1 m=0 sigcode=0

        goroutine 0 [idle]:
        runtime.futex(0x614de8, 0x80, 0x0, 0x0, 0x0, 0x7ffe7fb81628, 0x43cdfe, 0xc00006ad48, 0x7ffe7fb81648, 0x40d31f, ...)
        	/home/jbpratt/projects/goroot/src/runtime/sys_linux_amd64.s:567 +0x21
        runtime.futexsleep(0x614de8, 0x7ffe00000000, 0xffffffffffffffff)
        	/home/jbpratt/projects/goroot/src/runtime/os_linux.go:45 +0x46
        runtime.notesleep(0x614de8)
        	/home/jbpratt/projects/goroot/src/runtime/lock_futex.go:159 +0x9f
        runtime.stoplockedm()
        	/home/jbpratt/projects/goroot/src/runtime/proc.go:2038 +0x8d
        runtime.schedule()
        	/home/jbpratt/projects/goroot/src/runtime/proc.go:2570 +0x48c
        runtime.park_m(0xc000000180)
        	/home/jbpratt/projects/goroot/src/runtime/proc.go:2804 +0x9d
        runtime.mcall(0x0)
        	/home/jbpratt/projects/goroot/src/runtime/asm_amd64.s:318 +0x5b

        goroutine 1 [select, locked to thread]:
        net.(*sysDialer).dialParallel(0xc00014a000, 0x561020, 0xc000016178, 0xc000144040, 0x1, 0x1, 0xc000144050, 0x1, 0x1, 0x0, ...)
        	/home/jbpratt/projects/goroot/src/net/dial.go:490 +0x385
        net.(*Dialer).DialContext(0xc000079e20, 0x561020, 0xc000016178, 0x536607, 0x3, 0x538530, 0xf, 0x0, 0x0, 0x0, ...)
        	/home/jbpratt/projects/goroot/src/net/dial.go:423 +0x4d4
        net.(*Dialer).Dial(...)
        	/home/jbpratt/projects/goroot/src/net/dial.go:348
        net.Dial(0x536607, 0x3, 0x538530, 0xf, 0x1, 0x8, 0x0, 0x0)
        	/home/jbpratt/projects/goroot/src/net/dial.go:319 +0xad
        main.NetpollDeadlockInit()
        	/home/jbpratt/projects/goroot/src/runtime/testdata/testprognet/net.go:19 +0xa7
        main.registerInit(...)
        	/home/jbpratt/projects/goroot/src/runtime/testdata/testprognet/main.go:20
        main.init.0()
        	/home/jbpratt/projects/goroot/src/runtime/testdata/testprognet/net.go:13 +0x107

        goroutine 21 [IO wait]:
        internal/poll.runtime_pollWait(0x7f50825dcee8, 0x77, 0xc000001980)
        	/home/jbpratt/projects/goroot/src/runtime/netpoll.go:220 +0x55
        internal/poll.(*pollDesc).wait(0xc00014a118, 0x77, 0x560f00, 0xc000148080, 0xc00014a100)
        	/home/jbpratt/projects/goroot/src/internal/poll/fd_poll_runtime.go:87 +0x45
        internal/poll.(*pollDesc).waitWrite(...)
        	/home/jbpratt/projects/goroot/src/internal/poll/fd_poll_runtime.go:96
        internal/poll.(*FD).WaitWrite(...)
        	/home/jbpratt/projects/goroot/src/internal/poll/fd_unix.go:508
        net.(*netFD).connect(0xc00014a100, 0x560fe0, 0xc000148080, 0x0, 0x0, 0x55fd20, 0xc00014c000, 0x0, 0x0, 0x0, ...)
        	/home/jbpratt/projects/goroot/src/net/fd_unix.go:141 +0x25c
        net.(*netFD).dial(0xc00014a100, 0x560fe0, 0xc000148080, 0x561440, 0x0, 0x561440, 0xc00010e390, 0x0, 0x55fc01, 0xc000074b40)
        	/home/jbpratt/projects/goroot/src/net/sock_posix.go:149 +0x108
        net.socket(0x560fe0, 0xc000148080, 0x536607, 0x3, 0xa, 0x1, 0x0, 0x0, 0x561440, 0x0, ...)
        	/home/jbpratt/projects/goroot/src/net/sock_posix.go:70 +0x1c5
        net.internetSocket(0x560fe0, 0xc000148080, 0x536607, 0x3, 0x561440, 0x0, 0x561440, 0xc00010e390, 0x1, 0x0, ...)
        	/home/jbpratt/projects/goroot/src/net/ipsock_posix.go:141 +0x145
        net.(*sysDialer).doDialTCP(0xc00014a000, 0x560fe0, 0xc000148080, 0x0, 0xc00010e390, 0x514a00, 0x643d98, 0x0)
        	/home/jbpratt/projects/goroot/src/net/tcpsock_posix.go:65 +0xc5
        net.(*sysDialer).dialTCP(0xc00014a000, 0x560fe0, 0xc000148080, 0x0, 0xc00010e390, 0xc000062580, 0x406e50, 0x60)
        	/home/jbpratt/projects/goroot/src/net/tcpsock_posix.go:61 +0xd7
        net.(*sysDialer).dialSingle(0xc00014a000, 0x560fe0, 0xc000148080, 0x560040, 0xc00010e390, 0x0, 0x0, 0x0, 0x0)
        	/home/jbpratt/projects/goroot/src/net/dial.go:580 +0x5e5
        net.(*sysDialer).dialSerial(0xc00014a000, 0x560fe0, 0xc000148080, 0xc000144050, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0)
        	/home/jbpratt/projects/goroot/src/net/dial.go:548 +0x152
        net.(*sysDialer).dialParallel.func1(0x560fe0, 0xc000148080, 0xc000144000)
        	/home/jbpratt/projects/goroot/src/net/dial.go:468 +0x9b
        created by net.(*sysDialer).dialParallel
        	/home/jbpratt/projects/goroot/src/net/dial.go:494 +0x5cb

        goroutine 22 [select]:
        net.(*netFD).connect.func2(0x560fe0, 0xc000148080, 0xc00014a100, 0xc000146360, 0xc000146300)
        	/home/jbpratt/projects/goroot/src/net/fd_unix.go:118 +0xc5
        created by net.(*netFD).connect
        	/home/jbpratt/projects/goroot/src/net/fd_unix.go:117 +0x234

        rax    0xca
        rbx    0x614ca0
        rcx    0x46c5a3
        rdx    0x0
        rdi    0x614de8
        rsi    0x80
        rbp    0x7ffe7fb81610
        rsp    0x7ffe7fb815c8
        r8     0x0
        r9     0x0
        r10    0x0
        r11    0x286
        r12    0xc000079c60
        r13    0xc000146120
        r14    0xc0001221e0
        r15    0x0
        rip    0x46c5a1
        rflags 0x286
        cs     0x33
        fs     0x0
        gs     0x0
FAIL
FAIL	runtime	87.565s
ok  	runtime/debug	0.066s
ok  	runtime/internal/atomic	0.020s
ok  	runtime/internal/math	0.025s
ok  	runtime/internal/sys	0.020s
ok  	runtime/pprof	7.333s
ok  	runtime/trace	0.635s
ok  	sort	0.085s
ok  	strconv	0.295s
ok  	strings	0.180s
ok  	sync	2.536s
ok  	sync/atomic	0.075s
ok  	syscall	0.211s
ok  	testing	0.303s
ok  	testing/iotest	0.031s
ok  	testing/quick	0.050s
ok  	text/scanner	0.033s
ok  	text/tabwriter	0.013s
ok  	text/template	0.057s
ok  	text/template/parse	0.037s
ok  	time	1.825s
ok  	unicode	0.028s
ok  	unicode/utf16	0.028s
ok  	unicode/utf8	0.036s
ok  	cmd/addr2line	2.781s
ok  	cmd/api	2.316s
ok  	cmd/asm/internal/asm	0.945s
ok  	cmd/asm/internal/lex	0.100s
ok  	cmd/compile	0.070s
ok  	cmd/compile/internal/gc	6.557s
ok  	cmd/compile/internal/importer	0.572s
ok  	cmd/compile/internal/logopt	0.898s
ok  	cmd/compile/internal/ssa	0.338s
ok  	cmd/compile/internal/syntax	0.008s
ok  	cmd/compile/internal/test	0.103s [no tests to run]
ok  	cmd/compile/internal/types	0.035s
ok  	cmd/compile/internal/types2	0.823s
ok  	cmd/cover	2.697s
ok  	cmd/doc	0.113s
ok  	cmd/fix	0.872s
ok  	cmd/go	13.999s
ok  	cmd/go/internal/auth	0.029s
ok  	cmd/go/internal/cache	0.125s
ok  	cmd/go/internal/generate	0.057s
ok  	cmd/go/internal/get	0.017s
ok  	cmd/go/internal/imports	0.111s
ok  	cmd/go/internal/load	0.046s
ok  	cmd/go/internal/lockedfile	0.155s
ok  	cmd/go/internal/lockedfile/internal/filelock	0.067s
ok  	cmd/go/internal/modconv	0.093s
ok  	cmd/go/internal/modfetch	0.021s
ok  	cmd/go/internal/modfetch/codehost	0.076s
ok  	cmd/go/internal/modfetch/zip_sum_test	0.024s
ok  	cmd/go/internal/modload	0.013s
ok  	cmd/go/internal/mvs	0.006s
ok  	cmd/go/internal/par	0.088s
ok  	cmd/go/internal/renameio	0.026s
ok  	cmd/go/internal/search	0.017s
ok  	cmd/go/internal/test	0.059s
ok  	cmd/go/internal/txtar	0.039s
ok  	cmd/go/internal/web	0.054s
ok  	cmd/go/internal/work	0.030s
ok  	cmd/go2go	9.486s
ok  	cmd/gofmt	0.055s
ok  	cmd/internal/buildid	0.282s
ok  	cmd/internal/dwarf	0.027s
ok  	cmd/internal/edit	0.009s
ok  	cmd/internal/goobj	1.138s
ok  	cmd/internal/goobj2	0.024s
ok  	cmd/internal/moddeps	1.640s
ok  	cmd/internal/obj	0.019s
ok  	cmd/internal/obj/arm64	0.151s
ok  	cmd/internal/obj/ppc64	0.203s
ok  	cmd/internal/obj/riscv	0.170s
ok  	cmd/internal/obj/x86	0.417s
ok  	cmd/internal/objabi	0.039s
ok  	cmd/internal/src	0.016s
ok  	cmd/internal/test2json	0.186s
ok  	cmd/link	13.950s
ok  	cmd/link/internal/benchmark	0.107s
ok  	cmd/link/internal/ld	5.481s
ok  	cmd/link/internal/loader	0.036s
ok  	cmd/link/internal/sym	0.058s
ok  	cmd/nm	1.750s
ok  	cmd/objdump	1.565s
ok  	cmd/oldlink/internal/sym	0.073s
ok  	cmd/pack	1.226s
ok  	cmd/trace	0.114s
ok  	cmd/vet	6.119s
FAIL
go tool dist: Failed: exit status 1

Sorry if this is a duplicate, I didn't see anything open. I did find #35353 which seems to be the same failure and mentions the test is flakey, opened the issue after two successive failures. Happy to try to provide any more information, and this really may just be an issue on my side.

https://pastebin.com/raw/d70PSe9U

@jbpratt jbpratt changed the title runtime: TestNetpollDeadlock failing on dev.go2go runtime: TestNetpollDeadlock is failing Nov 11, 2020
@ianlancetaylor
Copy link
Contributor

@ianlancetaylor ianlancetaylor commented Nov 11, 2020

This test failure does not prevent you from using the go2go tool.

I think the dev.go2go branch has served its purpose, and we aren't going to be maintaining it further. If you only see this problem on the dev.go2go branch, I don't think we're going to look into this any further.

@jbpratt
Copy link
Author

@jbpratt jbpratt commented Nov 11, 2020

Hey @ianlancetaylor , thanks for the quick reply.

It seems that I am experiencing this issue on latest release on my desktop, though it does not seem to be reproducing on my laptop. We can close this if you would like or I can try to provide some more information, though this seems odd.

~ >go test runtime -test.run TestNetpollDeadlock
--- FAIL: TestNetpollDeadlock (60.27s)
    crash_test.go:105: /tmp/go-build232273148/testprognet.exe NetpollDeadlock exit status: exit status 2
    crash_test.go:453: output does not start with "done\n":
        dialing
        SIGQUIT: quit
        PC=0x46ce01 m=0 sigcode=0

        goroutine 0 [idle]:
        runtime.futex(0x6137c8, 0x80, 0x0, 0x0, 0x0, 0xc000066d48, 0x5ede88, 0x432cbc, 0x7ffd8d9e7cb8, 0x40d35f, ...)
        	/usr/lib/go/src/runtime/sys_linux_amd64.s:587 +0x21
        runtime.futexsleep(0x6137c8, 0x7ffd00000000, 0xffffffffffffffff)
        	/usr/lib/go/src/runtime/os_linux.go:45 +0x46
        runtime.notesleep(0x6137c8)
        	/usr/lib/go/src/runtime/lock_futex.go:159 +0x9f
        runtime.stoplockedm()
        	/usr/lib/go/src/runtime/proc.go:2079 +0x8d
        runtime.schedule()
        	/usr/lib/go/src/runtime/proc.go:2611 +0x48c
        runtime.park_m(0xc000000180)
        	/usr/lib/go/src/runtime/proc.go:2845 +0x9d
        runtime.mcall(0x0)
        	/usr/lib/go/src/runtime/asm_amd64.s:318 +0x5b

        goroutine 1 [select, locked to thread]:
        net.(*sysDialer).dialParallel(0xc0000c4000, 0x561c60, 0xc000124010, 0xc000078050, 0x1, 0x1, 0xc000078060, 0x1, 0x1, 0x0, ...)
        	/usr/lib/go/src/net/dial.go:490 +0x385
        net.(*Dialer).DialContext(0xc000070e20, 0x561c60, 0xc000124010, 0x5375e7, 0x3, 0x539518, 0xf, 0x0, 0x0, 0x0, ...)
        	/usr/lib/go/src/net/dial.go:423 +0x4d4
        net.(*Dialer).Dial(...)
        	/usr/lib/go/src/net/dial.go:348
        net.Dial(0x5375e7, 0x3, 0x539518, 0xf, 0x1, 0x8, 0x0, 0x0)
        	/usr/lib/go/src/net/dial.go:319 +0xad
        main.NetpollDeadlockInit()
        	/usr/lib/go/src/runtime/testdata/testprognet/net.go:19 +0xa7
        main.registerInit(...)
        	/usr/lib/go/src/runtime/testdata/testprognet/main.go:20
        main.init.0()
        	/usr/lib/go/src/runtime/testdata/testprognet/net.go:13 +0x107

        goroutine 20 [IO wait]:
        internal/poll.runtime_pollWait(0x7ffaf8742e88, 0x77, 0xc000102780)
        	/usr/lib/go/src/runtime/netpoll.go:222 +0x55
        internal/poll.(*pollDesc).wait(0xc000198018, 0x77, 0x561c00, 0xc000146080, 0xc000198000)
        	/usr/lib/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
        internal/poll.(*pollDesc).waitWrite(...)
        	/usr/lib/go/src/internal/poll/fd_poll_runtime.go:96
        internal/poll.(*FD).WaitWrite(...)
        	/usr/lib/go/src/internal/poll/fd_unix.go:508
        net.(*netFD).connect(0xc000198000, 0x561c20, 0xc000146080, 0x0, 0x0, 0x560a20, 0xc00019a000, 0x0, 0x0, 0x0, ...)
        	/usr/lib/go/src/net/fd_unix.go:141 +0x25c
        net.(*netFD).dial(0xc000198000, 0x561c20, 0xc000146080, 0x562040, 0x0, 0x562040, 0xc00009a390, 0x0, 0x7ffaf92e2f01, 0xc000192b40)
        	/usr/lib/go/src/net/sock_posix.go:149 +0x108
        net.socket(0x561c20, 0xc000146080, 0x5375e7, 0x3, 0xa, 0x1, 0x0, 0x0, 0x562040, 0x0, ...)
        	/usr/lib/go/src/net/sock_posix.go:70 +0x1c5
        net.internetSocket(0x561c20, 0xc000146080, 0x5375e7, 0x3, 0x562040, 0x0, 0x562040, 0xc00009a390, 0x1, 0x0, ...)
        	/usr/lib/go/src/net/ipsock_posix.go:141 +0x145
        net.(*sysDialer).doDialTCP(0xc0000c4000, 0x561c20, 0xc000146080, 0x0, 0xc00009a390, 0x5159c0, 0x6427c0, 0x0)
        	/usr/lib/go/src/net/tcpsock_posix.go:65 +0xc5
        net.(*sysDialer).dialTCP(0xc0000c4000, 0x561c20, 0xc000146080, 0x0, 0xc00009a390, 0xc000192d80, 0x406e50, 0x60)
        	/usr/lib/go/src/net/tcpsock_posix.go:61 +0xd7
        net.(*sysDialer).dialSingle(0xc0000c4000, 0x561c20, 0xc000146080, 0x560d40, 0xc00009a390, 0x0, 0x0, 0x0, 0x0)
        	/usr/lib/go/src/net/dial.go:580 +0x5e5
        net.(*sysDialer).dialSerial(0xc0000c4000, 0x561c20, 0xc000146080, 0xc000078060, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0)
        	/usr/lib/go/src/net/dial.go:548 +0x152
        net.(*sysDialer).dialParallel.func1(0x561c20, 0xc000146080, 0xc000118400)
        	/usr/lib/go/src/net/dial.go:468 +0x9b
        created by net.(*sysDialer).dialParallel
        	/usr/lib/go/src/net/dial.go:494 +0x5cb

        goroutine 34 [select]:
        net.(*netFD).connect.func2(0x561c20, 0xc000146080, 0xc000198000, 0xc0001960c0, 0xc000196060)
        	/usr/lib/go/src/net/fd_unix.go:118 +0xc5
        created by net.(*netFD).connect
        	/usr/lib/go/src/net/fd_unix.go:117 +0x234

        rax    0xca
        rbx    0x613680
        rcx    0x46ce03
        rdx    0x0
        rdi    0x6137c8
        rsi    0x80
        rbp    0x7ffd8d9e7c80
        rsp    0x7ffd8d9e7c38
        r8     0x0
        r9     0x0
        r10    0x0
        r11    0x286
        r12    0xc000070c38
        r13    0xc00001c180
        r14    0xc00007e240
        r15    0x0
        rip    0x46ce01
        rflags 0x286
        cs     0x33
        fs     0x0
        gs     0x0
FAIL
FAIL	runtime	60.278s
FAIL
~ >go version
go version go1.15.4 linux/amd64
@ianlancetaylor
Copy link
Contributor

@ianlancetaylor ianlancetaylor commented Nov 11, 2020

The test works by opening a TCP connection to port 14356 on localhost. It appears that opening that TCP connection is hanging over some reason. What happens if you run telnet localhost 14356?

@jbpratt
Copy link
Author

@jbpratt jbpratt commented Nov 11, 2020

~ >telnet localhost 14356
Trying 127.0.0.1...
Connection failed: Connection refused
Trying ::1...

Immediate refusal on ipv4, hanging on ipv6, then timed out. This may explain the hanging in the test.

~ >telnet localhost 14356
Trying 127.0.0.1...
Connection failed: Connection refused
Trying ::1...
telnet: Unable to connect to remote host: Connection timed out

I really feel like I am just wasting your time now 😅, I am very sorry and thank you for the help so far.

@ianlancetaylor
Copy link
Contributor

@ianlancetaylor ianlancetaylor commented Nov 12, 2020

Sounds like there is something wrong with the IPv6 routing to localhost on your system, and that is breaking the test. I'll close this issue, but please comment if you think there is a problem in Go.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
2 participants
You can’t perform that action at this time.