All of the following goroutines have a corresponding file descriptor open. 515 @ 0x434c9a 0x4301d7 0x42f819 0x536fe8 0x537054 0x5387a7 0x54c0e0 0x5d5ed8 0x5d6444 0x5da116 0x691720 0x4fdd57 0x4fecbb 0x4feea7 0x61701f 0x616e1f 0x68b895 0x692afa 0x696d7a 0x460f61 # 0x42f818 net.runtime_pollWait+0x58 /root/src/go/src/runtime/netpoll.go:164 # 0x536fe7 net.(*pollDesc).wait+0x37 /root/src/go/src/net/fd_poll_runtime.go:75 # 0x537053 net.(*pollDesc).waitRead+0x33 /root/src/go/src/net/fd_poll_runtime.go:80 # 0x5387a6 net.(*netFD).Read+0x1b6 /root/src/go/src/net/fd_unix.go:250 # 0x54c0df net.(*conn).Read+0x6f /root/src/go/src/net/net.go:180 # 0x5d5ed7 crypto/tls.(*block).readFromUntil+0x97 /root/src/go/src/crypto/tls/conn.go:488 # 0x5d6443 crypto/tls.(*Conn).readRecord+0xc3 /root/src/go/src/crypto/tls/conn.go:590 # 0x5da115 crypto/tls.(*Conn).Read+0x115 /root/src/go/src/crypto/tls/conn.go:1134 # 0x69171f net/http.(*connReader).Read+0x13f /root/src/go/src/net/http/server.go:740 # 0x4fdd56 bufio.(*Reader).fill+0x116 /root/src/go/src/bufio/bufio.go:97 # 0x4fecba bufio.(*Reader).ReadSlice+0xba /root/src/go/src/bufio/bufio.go:338 # 0x4feea6 bufio.(*Reader).ReadLine+0x36 /root/src/go/src/bufio/bufio.go:367 # 0x61701e net/textproto.(*Reader).readLineSlice+0x5e /root/src/go/src/net/textproto/reader.go:55 # 0x616e1e net/textproto.(*Reader).ReadLine+0x2e /root/src/go/src/net/textproto/reader.go:36 # 0x68b894 net/http.readRequest+0xa4 /root/src/go/src/net/http/request.go:871 # 0x692af9 net/http.(*conn).readRequest+0x219 /root/src/go/src/net/http/server.go:920 # 0x696d79 net/http.(*conn).serve+0x499 /root/src/go/src/net/http/server.go:1726
Here's the specifics for just one of these goroutines: goroutine 968618 [IO wait, 160 minutes]: net.runtime_pollWait(0x7f6a402d2770, 0x72, 0x156) /root/src/go/src/runtime/netpoll.go:164 +0x59 net.(*pollDesc).wait(0xc422f48d88, 0x72, 0xfbb160, 0xfb66d8) /root/src/go/src/net/fd_poll_runtime.go:75 +0x38 net.(*pollDesc).waitRead(0xc422f48d88, 0xc421fd4000, 0x800) /root/src/go/src/net/fd_poll_runtime.go:80 +0x34 net.(*netFD).Read(0xc422f48d20, 0xc421fd4000, 0x800, 0x800, 0x0, 0xfbb160, 0xfb66d8) /root/src/go/src/net/fd_unix.go:250 +0x1b7 net.(*conn).Read(0xc420baf018, 0xc421fd4000, 0x800, 0x800, 0x0, 0x0, 0x0) /root/src/go/src/net/net.go:180 +0x70 crypto/tls.(*block).readFromUntil(0xc4209ee270, 0x7f6a45f4d1c0, 0xc420baf018, 0x5, 0xc420baf018, 0x0) /root/src/go/src/crypto/tls/conn.go:488 +0x98 crypto/tls.(*Conn).readRecord(0xc42290a700, 0xadc817, 0xc42290a820, 0x690fda) /root/src/go/src/crypto/tls/conn.go:590 +0xc4 crypto/tls.(*Conn).Read(0xc42290a700, 0xc427867000, 0x1000, 0x1000, 0x0, 0x0, 0x0) /root/src/go/src/crypto/tls/conn.go:1134 +0x116 net/http.(*connReader).Read(0xc429001bc0, 0xc427867000, 0x1000, 0x1000, 0xc43c11f918, 0x0, 0x0) /root/src/go/src/net/http/server.go:740 +0x140 bufio.(*Reader).fill(0xc4202b7800) /root/src/go/src/bufio/bufio.go:97 +0x117 bufio.(*Reader).ReadSlice(0xc4202b7800, 0xa, 0x0, 0x0, 0x0, 0x0, 0xc43c11f9f0) /root/src/go/src/bufio/bufio.go:338 +0xbb bufio.(*Reader).ReadLine(0xc4202b7800, 0xc42b252e00, 0x100, 0xf8, 0xaa52a0, 0xc43c11fa58, 0x474652) /root/src/go/src/bufio/bufio.go:367 +0x37 net/textproto.(*Reader).readLineSlice(0xc42037d0e0, 0xc43c11fac0, 0xc43c11fac0, 0x418b88, 0x100, 0xaa52a0) /root/src/go/src/net/textproto/reader.go:55 +0x5f net/textproto.(*Reader).ReadLine(0xc42037d0e0, 0xc42b252e00, 0xc400000000, 0x0, 0x72) /root/src/go/src/net/textproto/reader.go:36 +0x2f net/http.readRequest(0xc4202b7800, 0x0, 0xc42b252e00, 0x0, 0x0) /root/src/go/src/net/http/request.go:871 +0xa5 net/http.(*conn).readRequest(0xc428b8b180, 0xfbfba0, 0xc429001b80, 0x0, 0x0, 0x0) /root/src/go/src/net/http/server.go:920 +0x21a net/http.(*conn).serve(0xc428b8b180, 0xfbfba0, 0xc429001b80) /root/src/go/src/net/http/server.go:1726 +0x49a created by net/http.(*Server).Serve /root/src/go/src/net/http/server.go:2608 +0x2ce I'm running the http.Server with ConnState: timeoutIdleConns func timeoutIdleConns(nc net.Conn, cs http.ConnState) { switch cs { case http.StateIdle, http.StateNew: nc.SetReadDeadline(time.Now().Add(time.Minute)) default: nc.SetReadDeadline(time.Time{}) } } >From what I can tell, this callback is triggered with StateNew, prior to conn.serve() being created, so the ReadDeadline should be present in the stalled goroutine calls. What's going on? -- 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. For more options, visit https://groups.google.com/d/optout.