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

net: intermittent TestAddFDReturnsError failure #4423

Closed
alberts opened this issue Nov 22, 2012 · 5 comments
Closed

net: intermittent TestAddFDReturnsError failure #4423

alberts opened this issue Nov 22, 2012 · 5 comments
Milestone

Comments

@alberts
Copy link
Contributor

alberts commented Nov 22, 2012

What steps will reproduce the problem?

#!/bin/bash
set -xe
go test -c net
while true; do
GOMAXPROCS=$[ 1 + $[ RANDOM % 128 ]] ./net.test -test.run=TestAddFDReturnsError
-test.timeout=30s
done

What do you see instead?

panic: test timed out

Which compiler are you using (5g, 6g, 8g, gccgo)?

6g

Which operating system are you using?

linux

Which version are you using?  (run 'go version')

go version devel +f2755950769b Wed Nov 21 14:40:50 2012 -0800
@minux
Copy link
Member

minux commented Nov 23, 2012

Comment 1:

reproduced after executing the test with random GOMAXPROCS 29292 times.
+ GOMAXPROCS=6
+ ./net.test -test.run=TestAddFDReturnsError -test.timeout=10s
panic: test timed out
goroutine 10 [running]:
testing.alarm()
        /home/minux/s/go/go.hg/src/pkg/testing/testing.go:477 +0x53
created by time.goFunc
        /home/minux/s/go/go.hg/src/pkg/time/sleep.go:96 +0x48
goroutine 1 [chan receive]:
testing.RunTests(0x400c00, 0x6e9270, 0x4e, 0x4e, 0xc20008f001, ...)
        /home/minux/s/go/go.hg/src/pkg/testing/testing.go:378 +0x891
testing.Main(0x400c00, 0x6e9270, 0x4e, 0x4e, 0x6e21c8, ...)
        /home/minux/s/go/go.hg/src/pkg/testing/testing.go:313 +0x8a
main.main()
        net/_test/_testmain.go:207 +0x9a
goroutine 2 [syscall]:
created by runtime.main
        /home/minux/s/go/go.hg/src/pkg/runtime/proc.c:225
goroutine 3 [timer goroutine (idle)]:
created by addtimer
        /home/minux/s/go/go.hg/src/pkg/runtime/ztime_linux_amd64.c:73
goroutine 4 [chan receive]:
net.(*pollServer).WaitRead(0xc20005ce40, 0xc2000b60c0, 0xc20005c600, 0xb,
0xffffffffffffff01, ...)
        /home/minux/s/go/go.hg/src/pkg/net/fd_unix.go:243 +0x63
net.(*netFD).Read(0xc2000b60c0, 0xc20008f3d0, 0x1, 0x1, 0xffffffffffffffff, ...)
        /home/minux/s/go/go.hg/src/pkg/net/fd_unix.go:430 +0x1bb
net.(*conn).Read(0xc20008f3a8, 0xc20008f3d0, 0x1, 0x1, 0xc2000a0cc0, ...)
        /home/minux/s/go/go.hg/src/pkg/net/net.go:121 +0xd3
net.TestAddFDReturnsError(0xc20008e090, 0xc216aa25ec)
       /home/minux/s/go/go.hg/src/pkg/net/fd_unix_test.go:47 +0x42c
testing.tRunner(0xc20008e090, 0x6e9348, 0x0, 0x0)
        /home/minux/s/go/go.hg/src/pkg/testing/testing.go:301 +0x6c
created by testing.RunTests
        /home/minux/s/go/go.hg/src/pkg/testing/testing.go:377 +0x86e
goroutine 5 [syscall]:
syscall.Syscall6()
        /home/minux/s/go/go.hg/src/pkg/syscall/asm_linux_amd64.s:40 +0x5
syscall.EpollWait(0x6, 0xc2000b9010, 0xa, 0xa, 0xffffffffffffffff, ...)
        /home/minux/s/go/go.hg/src/pkg/syscall/zerrors_linux_amd64.go:1846 +0x98
net.(*pollster).WaitFD(0xc2000b9000, 0xc20005ccf0, 0x0, 0x0, 0x0, ...)
        /home/minux/s/go/go.hg/src/pkg/net/fd_linux.go:146 +0x121
net.(*pollServer).Run(0xc20005ccf0, 0x0)
        /home/minux/s/go/go.hg/src/pkg/net/fd_unix.go:211 +0xef
created by net.newPollServer
        /home/minux/s/go/go.hg/src/pkg/net/newpollserver_unix.go:33 +0x367
goroutine 6 [chan receive]:
net.(*pollServer).WaitRead(0xc20005ccf0, 0xc2000b6000, 0xc20005c600, 0xb, 0xc20005c601,
...)
        /home/minux/s/go/go.hg/src/pkg/net/fd_unix.go:243 +0x63
net.(*netFD).accept(0xc2000b6000, 0x44e210, 0x0, 0xc20005c0f0, 0xc20008f0b0, ...)
        /home/minux/s/go/go.hg/src/pkg/net/fd_unix.go:620 +0x1c1
net.(*TCPListener).AcceptTCP(0xc20008f340, 0xc20008f430, 0x0, 0x0, 0x18, ...)
        /home/minux/s/go/go.hg/src/pkg/net/tcpsock_posix.go:237 +0x62
net.(*TCPListener).Accept(0xc20008f340, 0x0, 0x0, 0x0, 0x0, ...)
        /home/minux/s/go/go.hg/src/pkg/net/tcpsock_posix.go:247 +0x49
net.func·025(0xc20008de00, 0x0)
        /home/minux/s/go/go.hg/src/pkg/net/fd_unix_test.go:24 +0x2d
created by net.TestAddFDReturnsError
        /home/minux/s/go/go.hg/src/pkg/net/fd_unix_test.go:30 +0x173
goroutine 7 [syscall]:
syscall.Syscall6()
        /home/minux/s/go/go.hg/src/pkg/syscall/asm_linux_amd64.s:40 +0x5
syscall.EpollWait(0xa, 0xc2000b90c0, 0xa, 0xa, 0xffffffffffffffff, ...)
        /home/minux/s/go/go.hg/src/pkg/syscall/zerrors_linux_amd64.go:1846 +0x98
net.(*pollster).WaitFD(0xc2000b90b0, 0xc20005cdb0, 0x0, 0x0, 0x0, ...)
        /home/minux/s/go/go.hg/src/pkg/net/fd_linux.go:146 +0x121
net.(*pollServer).Run(0xc20005cdb0, 0x0)
        /home/minux/s/go/go.hg/src/pkg/net/fd_unix.go:211 +0xef
created by net.newPollServer
        /home/minux/s/go/go.hg/src/pkg/net/newpollserver_unix.go:33 +0x367
goroutine 8 [syscall]:
syscall.Syscall6()
        /home/minux/s/go/go.hg/src/pkg/syscall/asm_linux_amd64.s:40 +0x5
syscall.EpollWait(0x10, 0xc2000b9170, 0xa, 0xa, 0xffffffffffffffff, ...)
        /home/minux/s/go/go.hg/src/pkg/syscall/zerrors_linux_amd64.go:1846 +0x98
net.(*pollster).WaitFD(0xc2000b9160, 0xc20005ce40, 0x0, 0x0, 0x0, ...)
        /home/minux/s/go/go.hg/src/pkg/net/fd_linux.go:146 +0x121
net.(*pollServer).Run(0xc20005ce40, 0x0)
        /home/minux/s/go/go.hg/src/pkg/net/fd_unix.go:211 +0xef
created by net.newPollServer
        /home/minux/s/go/go.hg/src/pkg/net/newpollserver_unix.go:33 +0x367
goroutine 9 [syscall]:
syscall.Syscall6()
        /home/minux/s/go/go.hg/src/pkg/syscall/asm_linux_amd64.s:40 +0x5
syscall.EpollWait(0x10, 0xc2000e3010, 0xa, 0xa, 0xffffffffffffffff, ...)
        /home/minux/s/go/go.hg/src/pkg/syscall/zerrors_linux_amd64.go:1846 +0x98
net.(*pollster).WaitFD(0xc2000e3000, 0xc2000d2660, 0x0, 0x0, 0x0, ...)
        /home/minux/s/go/go.hg/src/pkg/net/fd_linux.go:146 +0x121
net.(*pollServer).Run(0xc2000d2660, 0x0)
        /home/minux/s/go/go.hg/src/pkg/net/fd_unix.go:211 +0xef
created by net.newPollServer
        /home/minux/s/go/go.hg/src/pkg/net/newpollserver_unix.go:33 +0x367

Status changed to Accepted.

@davecheney
Copy link
Contributor

Comment 2:

Confirmed, darwin/amd64
=== RUN TestAddFDReturnsError-85
^\SIGQUIT: quit
pc: 0xfb390
syscall.Syscall6()
    /Users/dfc/go/src/pkg/syscall/asm_darwin_amd64.s:48 +0x30
syscall.kevent(0x6, 0x0, 0x0, 0xc20009f008, 0xa, ...)
    /Users/dfc/go/src/pkg/syscall/zsyscall_darwin_amd64.go:199 +0x86
syscall.Kevent(0x6, 0x0, 0x0, 0x0, 0xc20009f008, ...)
    /Users/dfc/go/src/pkg/syscall/syscall_bsd.go:551 +0x9b
net.(*pollster).WaitFD(0xc20009f000, 0xc200088d20, 0x0, 0x0, 0x0, ...)
    /Users/dfc/go/src/pkg/net/fd_darwin.go:96 +0x178
net.(*pollServer).Run(0xc200088d20, 0x0)
    /Users/dfc/go/src/pkg/net/fd_unix.go:209 +0xef
created by net.newPollServer
    /Users/dfc/go/src/pkg/net/newpollserver_unix.go:33 +0x367
goroutine 1 [chan receive]:
testing.RunTests(0x2000, 0x2ef978, 0x55, 0x55, 0xc20008a001, ...)
    /Users/dfc/go/src/pkg/testing/testing.go:378 +0x891
testing.Main(0x2000, 0x2ef978, 0x55, 0x55, 0x2e8028, ...)
    /Users/dfc/go/src/pkg/testing/testing.go:313 +0x8a
main.main()
    net/_test/_testmain.go:221 +0x9a
goroutine 2 [syscall]:
created by runtime.main
    /Users/dfc/go/src/pkg/runtime/proc.c:225
goroutine 17 [chan receive]:
net.(*pollServer).WaitRead(0xc2000cd060, 0xc200119e40, 0xc200088540, 0x23,
0xffffffffffffff01, ...)
    /Users/dfc/go/src/pkg/net/fd_unix.go:241 +0x63
net.(*netFD).Read(0xc200119e40, 0xc20008a430, 0x1, 0x1, 0x0, ...)
    /Users/dfc/go/src/pkg/net/fd_unix.go:430 +0x34c
net.(*conn).Read(0xc20008a450, 0xc20008a430, 0x1, 0x1, 0xc2000b9000, ...)
    /Users/dfc/go/src/pkg/net/net.go:121 +0xd3
net.TestAddFDReturnsError(0xc200100f30, 0x155384cd)
    /Users/dfc/go/src/pkg/net/fd_unix_test.go:47 +0x42c
testing.tRunner(0xc200100f30, 0x2efa50, 0x0, 0x0)
    /Users/dfc/go/src/pkg/testing/testing.go:301 +0x6c
created by testing.RunTests
    /Users/dfc/go/src/pkg/testing/testing.go:377 +0x86e
goroutine 11 [syscall]:
syscall.Syscall6()
    /Users/dfc/go/src/pkg/syscall/asm_darwin_amd64.s:38 +0x5
syscall.kevent(0xb, 0x0, 0x0, 0xc20009f188, 0xa, ...)
    /Users/dfc/go/src/pkg/syscall/zsyscall_darwin_amd64.go:199 +0x86
syscall.Kevent(0xb, 0x0, 0x0, 0x0, 0xc20009f188, ...)
    /Users/dfc/go/src/pkg/syscall/syscall_bsd.go:551 +0x9b
net.(*pollster).WaitFD(0xc20009f180, 0xc2000cdae0, 0x0, 0x0, 0x0, ...)
    /Users/dfc/go/src/pkg/net/fd_darwin.go:96 +0x178
net.(*pollServer).Run(0xc2000cdae0, 0x0)
    /Users/dfc/go/src/pkg/net/fd_unix.go:209 +0xef
created by net.newPollServer
    /Users/dfc/go/src/pkg/net/newpollserver_unix.go:33 +0x367
goroutine 6 [timer goroutine (idle)]:
created by addtimer
    /Users/dfc/go/src/pkg/runtime/ztime_darwin_amd64.c:73
goroutine 18 [chan receive]:
net.(*pollServer).WaitRead(0xc2000cdae0, 0xc200119f00, 0xc200088540, 0x23, 0xc200088501,
...)
    /Users/dfc/go/src/pkg/net/fd_unix.go:241 +0x63
net.(*netFD).accept(0xc200119f00, 0x4f6c0, 0x0, 0xc200088540, 0x23, ...)
    /Users/dfc/go/src/pkg/net/fd_unix.go:633 +0x194
net.(*TCPListener).AcceptTCP(0xc20008a4a0, 0xc20008a2c0, 0x0, 0x0, 0x18, ...)
    /Users/dfc/go/src/pkg/net/tcpsock_posix.go:237 +0x62
net.(*TCPListener).Accept(0xc20008a4a0, 0x0, 0x0, 0x0, 0x0, ...)
    /Users/dfc/go/src/pkg/net/tcpsock_posix.go:247 +0x49
net.func·025(0xc2000b7010, 0x0)
    /Users/dfc/go/src/pkg/net/fd_unix_test.go:24 +0x2d
created by net.TestAddFDReturnsError
    /Users/dfc/go/src/pkg/net/fd_unix_test.go:30 +0x173
goroutine 19 [syscall]:
syscall.Syscall6()
    /Users/dfc/go/src/pkg/syscall/asm_darwin_amd64.s:38 +0x5
syscall.kevent(0x10, 0x0, 0x0, 0xc20009fd88, 0xa, ...)
    /Users/dfc/go/src/pkg/syscall/zsyscall_darwin_amd64.go:199 +0x86
syscall.Kevent(0x10, 0x0, 0x0, 0x0, 0xc20009fd88, ...)
    /Users/dfc/go/src/pkg/syscall/syscall_bsd.go:551 +0x9b
net.(*pollster).WaitFD(0xc20009fd80, 0xc2000cd060, 0x0, 0x0, 0x0, ...)
    /Users/dfc/go/src/pkg/net/fd_darwin.go:96 +0x178
net.(*pollServer).Run(0xc2000cd060, 0x0)
    /Users/dfc/go/src/pkg/net/fd_unix.go:209 +0xef
created by net.newPollServer
    /Users/dfc/go/src/pkg/net/newpollserver_unix.go:33 +0x367
goroutine 20 [syscall]:
syscall.Syscall6()
    /Users/dfc/go/src/pkg/syscall/asm_darwin_amd64.s:38 +0x5
syscall.kevent(0x10, 0x0, 0x0, 0xc2000ef008, 0xa, ...)
    /Users/dfc/go/src/pkg/syscall/zsyscall_darwin_amd64.go:199 +0x86
syscall.Kevent(0x10, 0x0, 0x0, 0x0, 0xc2000ef008, ...)
    /Users/dfc/go/src/pkg/syscall/syscall_bsd.go:551 +0x9b
net.(*pollster).WaitFD(0xc2000ef000, 0xc2000cd510, 0x0, 0x320, 0x320, ...)
    /Users/dfc/go/src/pkg/net/fd_darwin.go:96 +0x178
net.(*pollServer).Run(0xc2000cd510, 0x0)
    /Users/dfc/go/src/pkg/net/fd_unix.go:209 +0xef
created by net.newPollServer
    /Users/dfc/go/src/pkg/net/newpollserver_unix.go:33 +0x367

@davecheney
Copy link
Contributor

Comment 3:

Ahh, this looks familiar
--- FAIL: TestAddFDReturnsError-95 (0.00 seconds)
fd_unix_test.go:26:     accept tcp 127.0.0.1:59525: use of closed network connection

Owner changed to @davecheney.

@davecheney
Copy link
Contributor

Comment 4:

http://golang.org/cl/6854102/ has been reviewed favourably, I will submit it
today.

@davecheney
Copy link
Contributor

Comment 5:

This issue was closed by revision d244dd0.

Status changed to Fixed.

@rsc rsc added this to the Go1.1 milestone Apr 14, 2015
@rsc rsc removed the go1.1 label Apr 14, 2015
@golang golang locked and limited conversation to collaborators Jun 24, 2016
This issue was closed.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

5 participants