Closed
Description
Go version
x/net v0.30.0
Output of go env
in your module/workspace:
Not important.
What did you do?
I configured http2.Server with
- ReadIdleTimeout
- PingTimeout
- CountError
and caused PING to be lost.
What did you see happen?
The newly added support for lost PING in server:
- only logs lost ping in verbose mode while closes the underlying connection - IMO should be logged always
- does not invoke CountError
if sc.pingSent {
sc.vlogf("timeout waiting for PING response")
sc.conn.Close()
return
}
https://cs.opensource.google/go/x/net/+/refs/tags/v0.30.0:http2/server.go;l=1047
vs
func (cc *ClientConn) closeForLostPing() {
err := errors.New("http2: client connection lost")
if f := cc.t.CountError; f != nil {
f("conn_close_lost_ping")
}
cc.closeForError(err)
}
https://cs.opensource.google/go/x/net/+/refs/tags/v0.30.0:http2/transport.go;l=1159
What did you expect to see?
I expect to see
ErrorLog
called with lost ping messageCountError
called withconn_close_lost_ping