x/net/http2: discrepancies in lost PING handling between Server and Transport · Issue #69963 · golang/go (original) (raw)
Navigation Menu
- Explore
- Pricing
Provide feedback
Saved searches
Use saved searches to filter your results more quickly
Description
Go version
x/net v0.30.0
Output of go env
in your module/workspace:
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