aboutsummaryrefslogtreecommitdiff
path: root/src/net/http
diff options
context:
space:
mode:
authorCherry Mui <cherryyz@google.com>2024-01-26 17:28:45 +0000
committerGopher Robot <gobot@golang.org>2024-01-26 17:51:15 +0000
commit4c394b5638cc2694b1eff6418bc3e7db8132de0e (patch)
tree2478793196189f6e0e5ba1421106b2cd43e5f44e /src/net/http
parent3e789713132be993e74b81e821a4485e83533d61 (diff)
downloadgo-4c394b5638cc2694b1eff6418bc3e7db8132de0e.tar.xz
Revert "net/http: wrap client errors"
This reverts CL 533119. Reason for revert: the test fails frequently, see #65287. Fixes #65287. Change-Id: I5bf2ee2b7ce435608ff76b892da261c0a4a189bf Reviewed-on: https://go-review.googlesource.com/c/go/+/558916 Reviewed-by: Bryan Mills <bcmills@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Cherry Mui <cherryyz@google.com>
Diffstat (limited to 'src/net/http')
-rw-r--r--src/net/http/client.go4
-rw-r--r--src/net/http/client_test.go19
-rw-r--r--src/net/http/transport.go12
3 files changed, 7 insertions, 28 deletions
diff --git a/src/net/http/client.go b/src/net/http/client.go
index 45b9b915b4..ee6de24fc1 100644
--- a/src/net/http/client.go
+++ b/src/net/http/client.go
@@ -726,7 +726,7 @@ func (c *Client) do(req *Request) (retres *Response, reterr error) {
reqBodyClosed = true
if !deadline.IsZero() && didTimeout() {
err = &httpError{
- err: fmt.Errorf("%w (Client.Timeout exceeded while awaiting headers)", err),
+ err: err.Error() + " (Client.Timeout exceeded while awaiting headers)",
timeout: true,
}
}
@@ -969,7 +969,7 @@ func (b *cancelTimerBody) Read(p []byte) (n int, err error) {
}
if b.reqDidTimeout() {
err = &httpError{
- err: fmt.Errorf("%w (Client.Timeout exceeded or context cancellation while reading body)", err),
+ err: err.Error() + " (Client.Timeout or context cancellation while reading body)",
timeout: true,
}
}
diff --git a/src/net/http/client_test.go b/src/net/http/client_test.go
index 7c71da139a..7459b9cb6e 100644
--- a/src/net/http/client_test.go
+++ b/src/net/http/client_test.go
@@ -2127,22 +2127,3 @@ func testProbeZeroLengthBody(t *testing.T, mode testMode) {
t.Fatalf("server got body %q, want %q", gotBody, content)
}
}
-
-func TestClientTimeoutReturnsContextDeadlineExceeded(t *testing.T) {
- run(t, testClientTimeoutReturnsContextDeadlineExceeded)
-}
-func testClientTimeoutReturnsContextDeadlineExceeded(t *testing.T, mode testMode) {
- doneCh := make(chan struct{})
- defer close(doneCh)
- cst := newClientServerTest(t, mode, HandlerFunc(func(w ResponseWriter, r *Request) {
- <-doneCh
- w.WriteHeader(200)
- }))
- // check that, upon exceeding Client.Timeout, the returned error is context.DeadlineExceeded.
- cst.c.Timeout = 1 * time.Millisecond
- req, _ := NewRequest("GET", cst.ts.URL, nil)
- _, err := cst.c.Do(req)
- if !errors.Is(err, context.DeadlineExceeded) {
- t.Fatalf("expected context.DeadlineExceeded, got %v", err)
- }
-}
diff --git a/src/net/http/transport.go b/src/net/http/transport.go
index 6a1234e7f2..57c70e72f9 100644
--- a/src/net/http/transport.go
+++ b/src/net/http/transport.go
@@ -2556,17 +2556,15 @@ type writeRequest struct {
}
type httpError struct {
- err error
+ err string
timeout bool
}
-func (e *httpError) Error() string { return e.err.Error() }
-func (e *httpError) Timeout() bool { return e.timeout }
-func (e *httpError) Temporary() bool { return true }
-func (e *httpError) Is(target error) bool { return errors.Is(e.err, target) }
-func (e *httpError) Unwrap() error { return e.err }
+func (e *httpError) Error() string { return e.err }
+func (e *httpError) Timeout() bool { return e.timeout }
+func (e *httpError) Temporary() bool { return true }
-var errTimeout error = &httpError{err: errors.New("net/http: timeout awaiting response headers"), timeout: true}
+var errTimeout error = &httpError{err: "net/http: timeout awaiting response headers", timeout: true}
// errRequestCanceled is set to be identical to the one from h2 to facilitate
// testing.