aboutsummaryrefslogtreecommitdiff
path: root/src/html/template
diff options
context:
space:
mode:
authorBryan C. Mills <bcmills@google.com>2024-01-31 11:43:38 -0500
committerGopher Robot <gobot@golang.org>2024-02-26 22:45:28 +0000
commitfc0d9a4b7d8bfd1130b1fe8419b50fffa76b00a9 (patch)
tree9d56767a60fefd21af6910a934e8dfd5db684317 /src/html/template
parentf8b4653500744da567767b641378193638d4fcf8 (diff)
downloadgo-fc0d9a4b7d8bfd1130b1fe8419b50fffa76b00a9.tar.xz
net/http: reject client-side retries in server timeout tests
This breaks an unbounded client-side retry loop if the server's timeout happens to fire during its final read of the TLS handshake. The retry loop was observed on wasm platforms at CL 557437. I was also able to reproduce chains of dozens of retries on my linux/amd64 workstation by adjusting some timeouts and adding a couple of sleeps, as in this patch: https://gist.github.com/bcmills/d0a0a57e5f64eebc24e8211d8ea502b3 However, on linux/amd64 on my workstation the test always eventually breaks out of the retry loop due to timing jitter. I couldn't find a retry-specific hook in the http.Client, http.Transport, or tls.Config structs, so I have instead abused the Transport.Proxy hook for this purpose. Separately, we may want to consider adding a retry-specific hook, or changing the net/http implementation to avoid transparently retrying in this case. Fixes #65410. Updates #65178. Change-Id: I0e43c039615fe815f0a4ba99a8813c48b1fdc7e6 Reviewed-on: https://go-review.googlesource.com/c/go/+/559835 Reviewed-by: Damien Neil <dneil@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Bryan Mills <bcmills@google.com> Reviewed-by: Michael Pratt <mpratt@google.com>
Diffstat (limited to 'src/html/template')
0 files changed, 0 insertions, 0 deletions