• Tom Thorogood's avatar
    net/http: fix HTTP/2 idle pool tracing · 582d5194
    Tom Thorogood authored
    CL 140357 caused HTTP/2 connections to be put in the idle pool, but
    failed to properly guard the trace.GotConn call in getConn. dialConn
    returns a minimal persistConn with conn == nil for HTTP/2 connections.
    This persistConn was then returned from queueForIdleConn and caused the
    httptrace.GotConnInfo passed into GotConn to have a nil Conn field.
    
    HTTP/2 connections call GotConn themselves so leave it for HTTP/2 to call
    GotConn as is done directly below.
    
    Fixes #34282
    
    Change-Id: If54bfaf6edb14f5391463f908efbef5bb8a5d78e
    GitHub-Last-Rev: 2b7d66a1ce66b4424c4d0fca2b8e8b547d874136
    GitHub-Pull-Request: golang/go#34283
    Reviewed-on: https://go-review.googlesource.com/c/go/+/195237Reviewed-by: default avatarMichael Fraenkel <michael.fraenkel@gmail.com>
    Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    582d5194
transport_test.go 147 KB