Hi folks, An issue with the latest version of Go (1.14.1). My application panics when making concurrent http GET requests to another API.
Unfortunately it's not possible to post the code here but it should be pretty straightforward to reproduce this. My application makes concurrent GET requests to another Go API at around 280 req/sec using goroutines. This application is supposed to make about 3 million requests to that API every day. We use the latest version of Go in our deployments (1.14.1 in this case), however this application panics after 10-120 minutes of running and unfortunately the running time is not quite deterministic. Rolling back to Go 1.13.5 fixes this issue. I have seen other github threads that refer to the same issue in older versions of Go, however this seems to have re-appeared again in 1.14.1. panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x451cad] goroutine 646692 [running]: time.stopTimer(0xc00035fa48, 0x0) /usr/local/go/src/runtime/time.go:224 +0x2b time.(*Timer).Stop(...) /usr/local/go/src/time/sleep.go:78 net/http.(*http2ClientConn).roundTrip(0xc001e68780, 0xc001e8c900, 0x0, 0x0, 0x0, 0x0) /usr/local/go/src/net/http/h2_bundle.go:7480 +0x9f net/http.(*http2Transport).RoundTripOpt(0xc0001965a0, 0xc001e8c900, 0x9b3800, 0xc0001af080, 0xc000809770, 0x5) /usr/local/go/src/net/http/h2_bundle.go:6948 +0x16f net/http.(*http2Transport).RoundTrip(...) /usr/local/go/src/net/http/h2_bundle.go:6909 net/http.http2noDialH2RoundTripper.RoundTrip(0xc0001965a0, 0xc001e8c900, 0xb53460, 0xc0001965a0, 0x0) /usr/local/go/src/net/http/h2_bundle.go:9103 +0x3e net/http.(*Transport).roundTrip(0xf4e580, 0xc001e8c900, 0xc002c91e60, 0xc001080840, 0x40c7f8) /usr/local/go/src/net/http/transport.go:515 +0xd94 net/http.(*Transport).RoundTrip(0xf4e580, 0xc001e8c900, 0xf4e580, 0x0, 0x0) /usr/local/go/src/net/http/roundtrip.go:17 +0x35 net/http.send(0xc001e8c900, 0xb52420, 0xf4e580, 0x0, 0x0, 0x0, 0xc00073c2f8, 0xc00002a015, 0x1, 0x0) /usr/local/go/src/net/http/client.go:252 +0x43e net/http.(*Client).send(0xf58ba0, 0xc001e8c900, 0x0, 0x0, 0x0, 0xc00073c2f8, 0x0, 0x1, 0xc001e8c900) /usr/local/go/src/net/http/client.go:176 +0xfa net/http.(*Client).do(0xf58ba0, 0xc001e8c900, 0x0, 0x0, 0x0) /usr/local/go/src/net/http/client.go:699 +0x44a net/http.(*Client).Do(...) /usr/local/go/src/net/http/client.go:567 -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/91bf3382-8c71-481a-98e5-c9020dbd66b9%40googlegroups.com.