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

x/net/netutil: TestLimitListener failures with "Client.Timeout exceeded while awaiting headers" #22926

Closed
bradfitz opened this issue Nov 29, 2017 · 12 comments
Labels
FrozenDueToAge NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. release-blocker Testing An issue that has been verified to require only test changes, not just a test failure.
Milestone

Comments

@bradfitz
Copy link
Contributor

https://build.golang.org/log/b5964d8ee324ab1c9a0e36fd018bebe61a5ae09f

Out of fds? Timing/cancelation issues? @0intro?

ok  	golang.org/x/net/bpf	0.023s
ok  	golang.org/x/net/context	0.073s
?   	golang.org/x/net/context/ctxhttp	[no test files]
?   	golang.org/x/net/dict	[no test files]
ok  	golang.org/x/net/dns/dnsmessage	0.107s
ok  	golang.org/x/net/html	0.107s
ok  	golang.org/x/net/html/atom	0.016s
ok  	golang.org/x/net/html/charset	0.031s
ok  	golang.org/x/net/http/httpproxy	0.047s
*** Test killed: ran too long (10m0s).
FAIL	golang.org/x/net/http2	600.765s
ok  	golang.org/x/net/http2/hpack	0.023s
ok  	golang.org/x/net/icmp	0.026s
ok  	golang.org/x/net/idna	0.020s
?   	golang.org/x/net/internal/iana	[no test files]
?   	golang.org/x/net/internal/nettest	[no test files]
?   	golang.org/x/net/internal/socket	[no test files]
ok  	golang.org/x/net/internal/timeseries	0.025s
ok  	golang.org/x/net/ipv4	0.033s
ok  	golang.org/x/net/ipv6	0.027s
ok  	golang.org/x/net/lex/httplex	0.017s
ok  	golang.org/x/net/nettest	6.609s
netutil.test 567: warning: process exceeds 100 file descriptors
netutil.test 566: warning: process exceeds 200 file descriptors
--- FAIL: TestLimitListener (3.47s)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: EOF
	listen_test.go:55: Get http://127.0.0.1:44868: EOF
	listen_test.go:55: Get http://127.0.0.1:44868: EOF
	listen_test.go:55: Get http://127.0.0.1:44868: EOF
	listen_test.go:55: Get http://127.0.0.1:44868: EOF
	listen_test.go:55: Get http://127.0.0.1:44868: EOF
	listen_test.go:55: Get http://127.0.0.1:44868: EOF
	listen_test.go:55: Get http://127.0.0.1:44868: EOF
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:44868: EOF
	listen_test.go:68: 121 requests failed within 125 attempts
FAIL
FAIL	golang.org/x/net/netutil	3.514s
ok  	golang.org/x/net/proxy	0.231s
ok  	golang.org/x/net/publicsuffix	0.157s
ok  	golang.org/x/net/trace	0.035s
ok  	golang.org/x/net/webdav	3.880s
ok  	golang.org/x/net/webdav/internal/xml	0.030s
ok  	golang.org/x/net/websocket	4.551s
ok  	golang.org/x/net/xsrftoken	0.018s
@bradfitz bradfitz added help wanted NeedsFix The path to resolution is known, but the work has not been done. OS-Plan9 Testing An issue that has been verified to require only test changes, not just a test failure. labels Nov 29, 2017
@bradfitz bradfitz added this to the Unplanned milestone Nov 29, 2017
@meirf
Copy link
Contributor

meirf commented May 2, 2018

A recent x/net build failure has occurred a couple of times recently, but doesn't appear to be new. See an older one here https://build.golang.org/log/149eb7b73916520a758e84d70bc3c3ec9da16705

The output is similar to the one bradfitz included above, but lacks the file descriptor mention. Unclear if they are the exact same issue.

--- FAIL: TestLimitListener (3.23s)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:55: Get http://127.0.0.1:34629: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
	listen_test.go:68: 131 requests failed within 256 attempts
FAIL
FAIL	golang.org/x/net/netutil	3.415s

@bcmills
Copy link
Contributor

bcmills commented Feb 8, 2021

This failure mode is common on plan9, but also occurs less frequently on other builders (darwin and aix).

2021-01-19T19:43:25-5f4716e/plan9-386-0intro
2021-01-19T19:43:25-5f4716e/plan9-amd64-9front
2020-12-24T01:40:10-6772e93/plan9-386-0intro
2020-12-16T05:46:12-986b41b/plan9-386-0intro
2020-12-16T05:46:12-986b41b/plan9-amd64-9front
2020-12-09T12:38:23-ac852fb/plan9-386-0intro
2020-12-09T12:38:23-ac852fb/plan9-amd64-9front
2020-12-07T22:46:15-747e238/plan9-386-0intro
2020-12-07T22:46:15-747e238/plan9-amd64-9front
2020-12-02T16:19:06-c7110b5/plan9-386-0intro
2020-12-02T16:19:06-c7110b5/plan9-amd64-9front
2020-12-01T19:55:09-5d6afe9/plan9-amd64-9front
2020-11-10T03:11:24-69a7880/plan9-386-0intro
2020-11-10T03:11:24-69a7880/plan9-amd64-9front
2020-10-31T05:49:03-ff519b6/plan9-386-0intro
2020-10-31T05:49:03-ff519b6/plan9-amd64-9front
2020-10-29T22:17:08-28c70e6/darwin-amd64-10_12
2020-10-26T09:15:29-146b70c/plan9-386-0intro
2020-10-24T04:28:10-be3efd7/plan9-386-0intro
2020-10-21T03:54:29-f585440/plan9-386-0intro
2020-10-21T03:54:29-f585440/plan9-amd64-9front
2020-10-20T06:53:57-d65d470/plan9-386-0intro
2020-10-20T06:53:57-d65d470/plan9-amd64-9front
2020-10-16T16:51:38-7b1cca2/plan9-386-0intro
2020-10-16T16:51:38-7b1cca2/plan9-amd64-9front
2020-10-10T22:47:23-4f7140c/plan9-386-0intro
2020-10-10T22:47:23-4f7140c/plan9-amd64-9front
2020-10-09T03:24:41-dbdefad/plan9-386-0intro
2020-10-06T15:34:59-a7d1128/plan9-386-0intro
2020-10-02T20:24:02-0a1ea39/plan9-386-0intro
2020-09-30T14:50:03-4acb6c0/plan9-386-0intro
2020-09-04T19:48:48-62affa3/plan9-386-0intro
2020-08-22T12:43:28-c890458/plan9-386-0intro
2020-08-13T13:45:08-3edf25e/plan9-386-0intro
2020-06-25T00:16:55-4c52546/plan9-386-0intro
2020-06-02T11:40:24-627f964/plan9-386-0intro
2020-06-02T11:40:24-627f964/plan9-amd64-9front
2020-05-28T22:51:25-3c3fba1/plan9-386-0intro
2020-05-20T18:23:14-0ba52f6/plan9-386-0intro
2020-05-19T11:38:04-d87ec0c/plan9-386-0intro
2020-05-19T11:38:04-d87ec0c/plan9-amd64-9front
2020-05-13T18:57:01-a91f071/plan9-386-0intro
2020-05-13T18:57:01-a91f071/plan9-amd64-9front
2020-05-06T14:57:44-7e3656a/plan9-386-0intro
2020-05-05T04:18:28-1ed2336/plan9-386-0intro
2020-05-05T04:18:28-1ed2336/plan9-amd64-9front
2020-05-01T05:30:45-e0ff5e5/plan9-386-0intro
2020-05-01T05:30:45-e0ff5e5/plan9-amd64-9front
2020-04-25T23:01:54-ff2c4b7/plan9-386-0intro
2020-03-20T22:07:50-118fecf/plan9-386-0intro
2020-03-20T18:12:08-1c781a1/plan9-386-0intro
2020-03-01T02:21:30-244492d/plan9-386-0intro
2020-02-25T22:33:29-5d076fc/plan9-386-0intro
2020-02-22T03:33:25-078779b/plan9-386-0intro
2020-02-22T03:33:25-078779b/plan9-amd64-9front
2020-02-02T09:46:26-1617124/plan9-386-0intro
2020-01-14T15:54:13-6afb519/plan9-386-0intro
2019-12-09T16:08:50-c0dbc17/plan9-386-0intro
2019-11-24T23:23:54-b954d4e/plan9-386-0intro
2019-11-24T23:18:49-4163a4d/plan9-386-0intro
2019-11-19T07:31:36-fc4aabc/plan9-386-0intro
2019-11-18T18:34:10-d06c31c/plan9-386-0intro
2019-11-16T16:09:21-f9c8255/plan9-amd64-9front
2019-11-12T18:23:07-2180aed/plan9-386-0intro
2019-11-12T18:23:07-2180aed/plan9-amd64-9front
2019-11-01T17:50:33-0deb692/aix-ppc64
2019-10-28T08:55:09-fe3aa8a/aix-ppc64
2019-10-21T14:45:47-ec77196/darwin-amd64-10_14
2019-03-27T21:43:58-63eda1e/plan9-amd64-9front
2019-03-24T22:39:53-e3b2ff5/plan9-amd64-9front
2019-03-22T12:03:37-addf6b3/plan9-amd64-9front
2019-03-20T06:40:53-1272bf9/plan9-amd64-9front
2019-03-13T22:02:15-9f648a6/plan9-amd64-9front
2019-01-25T09:10:13-d26f9f9/plan9-386
2019-01-25T00:28:52-4b62a64/plan9-386
2019-01-19T20:41:37-ed066c8/plan9-386
2019-01-10T20:02:30-915654e/plan9-386
2019-01-10T04:46:37-be1c187/plan9-386
2019-01-08T22:56:52-1e06a53/plan9-386
2019-01-08T15:50:00-395948e/plan9-386
2019-01-08T15:08:41-be88a9a/plan9-386
2019-01-07T21:02:23-45ffb0c/plan9-386
2019-01-07T15:51:00-1a61f44/plan9-386
2019-01-07T15:50:40-a67830c/plan9-386
2018-12-20T20:33:05-927f977/plan9-386
2018-12-17T02:32:33-e147a91/plan9-386
2018-12-13T20:27:11-891ebc4/plan9-386
2018-12-07T15:40:23-6105869/plan9-386
2018-12-01T00:20:55-351d144/plan9-386
2018-11-29T05:56:19-fae4c4e/plan9-386
2018-11-14T22:03:01-adae6a3/plan9-386
2018-11-13T16:55:02-88d92db/plan9-386

@bcmills bcmills changed the title x/net/netutil: TestLimitListener fails on plan9 x/net/netutil: TestLimitListener failures with "Client.Timeout exceeded while awaiting headers" Feb 8, 2021
@bcmills bcmills added NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. and removed OS-Plan9 labels Feb 8, 2021
@bcmills bcmills modified the milestones: Unplanned, Backlog Feb 8, 2021
@gopherbot gopherbot removed the NeedsFix The path to resolution is known, but the work has not been done. label Feb 8, 2021
@bcmills
Copy link
Contributor

bcmills commented Dec 3, 2021

Looks like this is exclusively a plan9 failure mode at this point.

greplogs --dashboard -md -l -e 'FAIL: TestLimitListener .*\n(?:\s+.+\n)*.*Client\.Timeout exceeded while awaiting headers' --since=2021-03-23

2021-12-01T06:03:27-d83791d-a412b5f/plan9-386-0intro
2021-11-30T20:04:58-d83791d-7ccbcc9/plan9-386-0intro
2021-11-29T16:08:23-d83791d-a59ab29/plan9-386-0intro
2021-11-29T00:58:50-d83791d-1ea4d3b/plan9-386-0intro
2021-11-27T23:29:50-d83791d-0fa53e4/plan9-386-0intro
2021-11-27T19:49:32-d83791d-a142d65/plan9-386-0intro
2021-11-27T01:14:21-d83791d-fad67f8/plan9-386-0intro
2021-11-27T01:14:21-d83791d-fad67f8/plan9-amd64-0intro
2021-11-23T20:29:08-fe8b969-0f64c21/plan9-386-0intro
2021-11-23T20:28:48-9e5a297-0f64c21/plan9-386-0intro
2021-11-22T23:51:43-6a13c67-83bfed9/plan9-386-0intro
2021-11-22T23:51:43-6a13c67-83bfed9/plan9-amd64-0intro
2021-11-22T20:34:40-6a13c67-f13fcd9/plan9-amd64-0intro
2021-11-22T12:30:26-6a13c67-b2aa138/plan9-386-0intro
2021-11-20T01:00:16-6a13c67-be18cd5/plan9-386-0intro
2021-11-20T00:37:28-6a13c67-d2f4c93/plan9-386-0intro
2021-11-19T22:35:28-6a13c67-b31dda8/plan9-386-0intro
2021-11-19T21:59:14-6a13c67-5e774b0/plan9-386-0intro
2021-11-19T21:41:33-6a13c67-ba9f0f6/plan9-386-0intro
2021-11-18T20:11:45-6a13c67-24898d6/plan9-386-0intro
2021-11-18T16:18:50-6a13c67-feb330d/plan9-386-0intro
2021-11-18T02:53:02-47ca1ff-d8f7a64/plan9-386-0intro
2021-11-18T02:19:50-47ca1ff-f1cc529/plan9-386-0intro
2021-11-17T21:26:25-47ca1ff-0440fb8/plan9-386-0intro
2021-11-17T19:51:32-47ca1ff-9a33945/plan9-386-0intro
2021-11-08T14:49:56-b53810d-ab31dbc/plan9-386-0intro
2021-11-07T04:57:22-b53810d-9e6ad46/plan9-386-0intro
2021-11-07T04:57:22-b53810d-9e6ad46/plan9-amd64-0intro
2021-11-04T07:05:31-4a448f8-2622235/plan9-386-0intro
2021-11-04T07:05:31-4a448f8-2622235/plan9-amd64-0intro
2021-10-26T17:10:45-d418f37-76cef81/plan9-386-0intro
2021-10-23T16:18:19-d418f37-16318df/plan9-386-0intro
2021-10-16T16:27:40-4f30a5c-640a49b/plan9-386-0intro
2021-10-16T14:50:21-4f30a5c-680caf1/plan9-386-0intro
2021-10-15T21:46:06-4f30a5c-ed1c8db/plan9-amd64-0intro
2021-10-11T12:53:11-3b03d30-34f7b1f/plan9-386-0intro
2021-10-10T15:11:26-3b03d30-d2d21d9/plan9-386-0intro
2021-10-05T01:30:56-d4b1ae0-123393a/plan9-386-0intro
2021-10-04T17:17:11-cedda3a-cc5e3de/plan9-386-0intro
2021-09-25T17:12:41-3ad01bb-aeea5ba/plan9-386-0intro
2021-09-24T21:42:31-3ad01bb-d60ad1e/plan9-386-0intro
2021-09-24T18:21:14-3ad01bb-f6b5ffb/plan9-386-0intro
2021-09-03T01:38:54-8d99171-9f69a44/plan9-386-0intro
2021-09-02T19:56:24-8d99171-065f380/plan9-386-0intro
2021-08-04T15:26:45-c6fcb2d-6e73886/plan9-386-0intro
2021-07-22T20:47:59-853a461-052da57/plan9-386-0intro
2021-07-13T21:57:39-04defd4-d8f348a/plan9-386-0intro
2021-07-12T20:58:00-04defd4-a985897/plan9-386-0intro
2021-07-08T17:53:43-04defd4-296ddf2/plan9-386-0intro
2021-06-11T16:09:15-84b48f8-e2dc6dd/plan9-386-0intro
2021-06-08T22:35:56-abc4532-bcecae2/plan9-386-0intro
2021-05-21T03:21:56-37e1c6a-831573c/plan9-386-0intro
2021-05-20T20:37:02-37e1c6a-baa934d/plan9-386-0intro
2021-05-20T17:40:58-37e1c6a-7c692cc/plan9-386-0intro
2021-05-20T17:08:46-37e1c6a-ce9a3b7/plan9-386-0intro
2021-05-09T17:07:22-16afe75-c14ecac/plan9-386-0intro
2021-05-07T02:17:32-0714010-d2b0311/plan9-386-0intro
2021-05-07T01:42:23-0714010-a11a171/plan9-386-0intro
2021-05-06T20:30:00-0714010-4dbad79/plan9-386-0intro
2021-05-05T02:47:14-0287a6f-caf4c94/plan9-386-0intro
2021-05-04T23:35:34-bbd867f-137be77/plan9-386-0intro
2021-05-03T12:26:15-7fd8e65-9ed736a/plan9-386-0intro
2021-05-02T21:27:08-e590880-abb110b/plan9-386-0intro
2021-05-02T20:59:26-e590880-bb09f8a/plan9-386-0intro
2021-05-02T18:22:19-e590880-0d32d9e/plan9-386-0intro
2021-05-02T03:00:24-e590880-053fe2f/plan9-386-0intro
2021-05-02T03:00:24-e590880-053fe2f/plan9-amd64-0intro
2021-04-27T23:12:57-85d9c07-983dea9/plan9-386-0intro
2021-04-27T22:46:28-5f58ad6-983dea9/plan9-386-0intro
2021-04-21T16:46:52-798c215-35806ef/plan9-386-0intro
2021-04-21T16:26:01-798c215-b8a359d/plan9-386-0intro
2021-04-21T14:16:01-798c215-e5bc4f2/plan9-386-0intro
2021-04-21T14:16:01-798c215-e5bc4f2/plan9-amd64-0intro
2021-04-20T16:44:18-d25e304-109d758/plan9-386-0intro
2021-04-20T16:00:27-d25e304-60ab197/plan9-386-0intro
2021-04-20T07:25:03-d25e304-fe26dfa/plan9-386-0intro
2021-04-14T16:59:24-afb366f-4480c82/plan9-386-0intro
2021-04-14T15:02:11-afb366f-c98026c/plan9-386-0intro
2021-04-04T20:04:37-0fccb6f-4230a6e/plan9-386-0intro
2021-04-03T01:45:17-0fccb6f-0182113/plan9-386-0intro
2021-03-31T16:39:16-cb1fcc7-46fa8af/plan9-386-0intro
2021-03-31T14:10:11-cb1fcc7-ca3aefc/plan9-386-0intro
2021-03-29T08:11:13-61e0566-565e70f/plan9-386-0intro
2021-03-26T19:40:37-6b15177-359f449/plan9-386-0intro
2021-03-26T06:03:20-6b15177-98a9023/plan9-386-0intro
2021-03-26T06:03:20-6b15177-98a9023/plan9-amd64-9front
2021-03-24T20:56:11-3061449-dade83a/plan9-386-0intro

@gopherbot
Copy link

Change https://golang.org/cl/369054 mentions this issue: netutil: skip TestLimitListener on plan9

gopherbot pushed a commit to golang/net that referenced this issue Dec 3, 2021
This may be a platform bug, but nobody has investigated it since the
issue was filed in 2017. Skip it to reduce noise from flakes.

For golang/go#22926

Change-Id: I8f310a539992c4552abb50fea3c7adc2149818ef
Reviewed-on: https://go-review.googlesource.com/c/net/+/369054
Trust: Bryan Mills <bcmills@google.com>
Run-TryBot: Bryan Mills <bcmills@google.com>
Reviewed-by: David du Colombier <0intro@gmail.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
@bcmills
Copy link
Contributor

bcmills commented Dec 15, 2021

Curiously, the failures on non-plan9 builders have returned!

greplogs --dashboard -md -l -e 'FAIL: TestLimitListener .*\n(?:\s+.+\n)*.*Client\.Timeout exceeded while awaiting headers' --since=2021-12-03

2021-12-15T06:06:38-4ddde0e-de690c2/windows-arm64-10
2021-12-08T16:50:04-db4efeb-f5b5939/netbsd-amd64-9_0-n2d

@bcmills bcmills removed the OS-Plan9 label Dec 15, 2021
@gopherbot
Copy link

Change https://golang.org/cl/372495 mentions this issue: netutil: streamline and simplify LimitListener tests

@bcmills bcmills modified the milestones: Backlog, Go1.18 Dec 15, 2021
@bcmills
Copy link
Contributor

bcmills commented Dec 15, 2021

This is a release-blocker via #11811. (It also has a fix CL pending.)

@bcmills bcmills self-assigned this Dec 15, 2021
@gopherbot
Copy link

Change https://golang.org/cl/372714 mentions this issue: netutil: make LimitListener tests more robust

@bcmills
Copy link
Contributor

bcmills commented Dec 16, 2021

Still needs some tuning to work around #50216, and to make the tests a bit more robust.

gopherbot pushed a commit to golang/net that referenced this issue Jan 5, 2022
In CL 372495 I cleaned up TestLimitListener so that it would not fail
spuriously. However, upon further thought I realized that the original
test was actually checking two different properties (steady-state
saturation, and actual overload), and the cleaned-up test was only
checking one of those (overload).

This change adds a separate test for steady-state saturation, and
makes the overload test more robust to spurious connections (which
could occur, for example, if another test running on the machine
accidentally dials this test's open port).

The test cleanup also revealed a bad interaction with an existing bug
in the js/wasm net.TCPListener implementation (filed as
golang/go#50216), for which I have added a workaround in
(*limitListener).Accept.

For golang/go#22926

Change-Id: I727050a8254f527c7455de296ed3525b6dc90141
Reviewed-on: https://go-review.googlesource.com/c/net/+/372714
Trust: Bryan Mills <bcmills@google.com>
Run-TryBot: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
@bcmills
Copy link
Contributor

bcmills commented Jan 6, 2022

Should be fixed as of CL 372714.

@bcmills bcmills closed this as completed Jan 6, 2022
@gopherbot
Copy link

Change https://golang.org/cl/380155 mentions this issue: netutil: in TestLimitListenerSaturation, allow some connections to fail to dial

gopherbot pushed a commit to golang/net that referenced this issue Jan 21, 2022
…il to dial

When the listener saturates, the kernel will typically buffer the
remaining pending connections (so they will eventually succeed in
dialing). However, that behavior is not guaranteed, and it empirically
doesn't always hold: a failure was observed in
https://build.golang.org/log/5ac7312814bcff4841563be043f28aaefa9b3c90.

We do expect to be able to dial at least as many connections as the
listener will accept, and we expect every connection that is accepted
to be served to completion.

Updates golang/go#22926

Change-Id: I4cb39c8f39fda0dcb905f548612ccdf1856f2a66
Reviewed-on: https://go-review.googlesource.com/c/net/+/380155
Trust: Bryan Mills <bcmills@google.com>
Run-TryBot: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
@rsc rsc unassigned bcmills Jun 23, 2022
WeiminShang added a commit to WeiminShang/net that referenced this issue Nov 16, 2022
TestLimitListener had made a lot of assumptions about the kernel's
willingness to queue unaccepted connections, and relied on arbitrary
timeouts to shed load if the queue saturates.

This change eliminates the arbitrary timeouts, replacing them with
synchronization and cancellation and leaving only a couple of
arbitrary sleeps (that can be exceeded by arbitrary amounts without
causing the test to fail).

Fixes golang/go#22926

Change-Id: Ibecff6254ec966e1cc98cf96c71493f18d3aaebe
Reviewed-on: https://go-review.googlesource.com/c/net/+/372495
Trust: Bryan Mills <bcmills@google.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
WeiminShang added a commit to WeiminShang/net that referenced this issue Nov 16, 2022
In CL 372495 I cleaned up TestLimitListener so that it would not fail
spuriously. However, upon further thought I realized that the original
test was actually checking two different properties (steady-state
saturation, and actual overload), and the cleaned-up test was only
checking one of those (overload).

This change adds a separate test for steady-state saturation, and
makes the overload test more robust to spurious connections (which
could occur, for example, if another test running on the machine
accidentally dials this test's open port).

The test cleanup also revealed a bad interaction with an existing bug
in the js/wasm net.TCPListener implementation (filed as
golang/go#50216), for which I have added a workaround in
(*limitListener).Accept.

For golang/go#22926

Change-Id: I727050a8254f527c7455de296ed3525b6dc90141
Reviewed-on: https://go-review.googlesource.com/c/net/+/372714
Trust: Bryan Mills <bcmills@google.com>
Run-TryBot: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
WeiminShang added a commit to WeiminShang/net that referenced this issue Nov 16, 2022
…il to dial

When the listener saturates, the kernel will typically buffer the
remaining pending connections (so they will eventually succeed in
dialing). However, that behavior is not guaranteed, and it empirically
doesn't always hold: a failure was observed in
https://build.golang.org/log/5ac7312814bcff4841563be043f28aaefa9b3c90.

We do expect to be able to dial at least as many connections as the
listener will accept, and we expect every connection that is accepted
to be served to completion.

Updates golang/go#22926

Change-Id: I4cb39c8f39fda0dcb905f548612ccdf1856f2a66
Reviewed-on: https://go-review.googlesource.com/c/net/+/380155
Trust: Bryan Mills <bcmills@google.com>
Run-TryBot: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
@golang golang locked and limited conversation to collaborators Jun 23, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
FrozenDueToAge NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. release-blocker Testing An issue that has been verified to require only test changes, not just a test failure.
Projects
None yet
Development

No branches or pull requests

5 participants