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: unit test failure #3057
Labels
Milestone
Comments
Tracing the problem: - selfConnect is getting a *netFD with a nil raddr field. - that fd is coming from internetSocket, which must be returning no error. From the other end: - DialTCP checks for raddr==nil, so raddr.toAddr() must be a non-nil sockaddr. - internetSocket must call raddr.sockaddr (*TCPAddr.sockaddr), which only returns a non-nil syscall.Sockaddr with nil error (and so ra is non-nil). - This means that the problem must be socket returning an fd with a nil raddr even if its ra argument is non-nil. - That, in turn, means the toAddr func passed to socket (and internetSocket) must be doing that. - This fingers sockaddrToTCP, which will return nil if the syscall.Sockaddr is not one of {*syscall.SockaddrInet4,*syscall.SockaddrInet6}. - However, ipToSockaddr never returns a different type than those two, except with an error. Here the trail runs cold. I can't see what is going wrong without a way to reproduce this and scattering some logging throughout. All I can think of is that it slipped in with 002f08814913 (Russ' "net: avoid TCP self-connect"), so assigning it to him for further diagnosis. Labels changed: added priority-later, removed priority-triage. Owner changed to @rsc. |
I notice that the Linux ARM builder is reproducibly giving the same failure, every time it seems. for instance, http://build.golang.org/log/5fd6fdde31381ed018fbaa55af7132cc72fbda8b goroutine 236 [running]: net.selfConnect(0x107ab9a0, 0x3, 0x0) /mnt/work2/tmp/gobuilder/linux-arm-minux-2c15f43065c1/go/src/pkg/net/tcpsock_posix.go:263 +0x84 net.DialTCP(0x15ad68, 0x3, 0x0, 0x1079c6d0, 0x10732801, ...) /mnt/work2/tmp/gobuilder/linux-arm-minux-2c15f43065c1/go/src/pkg/net/tcpsock_posix.go:250 +0x218 net.dialAddr(0x15ad68, 0x3, 0x107805f0, 0xf, 0x10732860, ...) /mnt/work2/tmp/gobuilder/linux-arm-minux-2c15f43065c1/go/src/pkg/net/dial.go:102 +0x1fc net._func_001(0x107838a8, 0x107838b0, 0x107838b8, 0x107838c0, 0x0, ...) /mnt/work2/tmp/gobuilder/linux-arm-minux-2c15f43065c1/go/src/pkg/net/dial.go:140 +0x1ac created by net.DialTimeout /mnt/work2/tmp/gobuilder/linux-arm-minux-2c15f43065c1/go/src/pkg/net/dial.go:142 +0x194 |
This issue was closed by revision 152d806. Status changed to Fixed. |
This issue was closed.
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Attachments:
The text was updated successfully, but these errors were encountered: