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.

Reply via email to