http2: avoid deadlocks in wrapped ClientConn state callback An http2.ClientConn wraps an http.ClientConn. The http.ClientConn calls back to the http2.ClientConn's state hook on certain state changes. Since the state hook acquires the http2.ClientConn's mutex, holding the mutex while calling an http.ClientConn method which can trigger a state hook call can cause a deadlock. Avoid deadlocks in two places where the http2.ClientConn held its mutex while calling http.ClientConn.Reserve. Fixes golang/go#80680 Change-Id: I9b4107e1461d451cdb2eae7b102bd9ba6a6a6964 Reviewed-on: https://go-review.googlesource.com/c/net/+/808900 LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Nicholas Husin <husin@google.com> Reviewed-by: Nicholas Husin <nsh@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Auto-Submit: Damien Neil <dneil@google.com>
This repository holds supplementary Go networking packages.
This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see https://go.dev/doc/contribute.
The git repository is https://go.googlesource.com/net.
The main issue tracker for the net repository is located at https://go.dev/issues. Prefix your issue with “x/net:” in the subject line, so it is easy to find.