From b5a489a2701972a7889c485ed35992e183c53751 Mon Sep 17 00:00:00 2001 From: Martin Tournoij Date: Wed, 20 Nov 2024 12:28:11 +0000 Subject: [PATCH 1/2] Check error in BaseClient.Perform The http.Resonse will be nil on errors, so return early. Fixes #913 --- elasticsearch.go | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/elasticsearch.go b/elasticsearch.go index c736ded991..02331795e6 100644 --- a/elasticsearch.go +++ b/elasticsearch.go @@ -21,7 +21,6 @@ import ( "encoding/base64" "errors" "fmt" - "go.opentelemetry.io/otel/trace" "net/http" "net/url" "os" @@ -32,13 +31,12 @@ import ( "sync" "time" - "github.com/elastic/go-elasticsearch/v8/typedapi" - - "github.com/elastic/go-elasticsearch/v8/esapi" - "github.com/elastic/go-elasticsearch/v8/internal/version" - "github.com/elastic/elastic-transport-go/v8/elastictransport" tpversion "github.com/elastic/elastic-transport-go/v8/elastictransport/version" + "github.com/elastic/go-elasticsearch/v8/esapi" + "github.com/elastic/go-elasticsearch/v8/internal/version" + "github.com/elastic/go-elasticsearch/v8/typedapi" + "go.opentelemetry.io/otel/trace" ) const ( @@ -341,9 +339,12 @@ func (c *BaseClient) Perform(req *http.Request) (*http.Response, error) { // Retrieve the original request. res, err := c.Transport.Perform(req) + if err != nil { + return nil, err + } // ResponseCheck, we run the header check on the first answer from ES. - if err == nil && (res.StatusCode >= 200 && res.StatusCode < 300) { + if res.StatusCode >= 200 && res.StatusCode < 300 { checkHeader := func() error { return genuineCheckHeader(res.Header) } if err := c.doProductCheck(checkHeader); err != nil { res.Body.Close() @@ -351,7 +352,7 @@ func (c *BaseClient) Perform(req *http.Request) (*http.Response, error) { } } - return res, err + return res, nil } // InstrumentationEnabled propagates back to the client the Instrumentation provided by the transport. From d606b5a30c42e9658c1e667ca108d965d7b4045e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laurent=20Saint-F=C3=A9lix?= Date: Wed, 27 Nov 2024 13:45:35 +0100 Subject: [PATCH 2/2] revert reordering of imports --- elasticsearch.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/elasticsearch.go b/elasticsearch.go index 02331795e6..8434bd3f52 100644 --- a/elasticsearch.go +++ b/elasticsearch.go @@ -21,6 +21,7 @@ import ( "encoding/base64" "errors" "fmt" + "go.opentelemetry.io/otel/trace" "net/http" "net/url" "os" @@ -31,12 +32,13 @@ import ( "sync" "time" - "github.com/elastic/elastic-transport-go/v8/elastictransport" - tpversion "github.com/elastic/elastic-transport-go/v8/elastictransport/version" + "github.com/elastic/go-elasticsearch/v8/typedapi" + "github.com/elastic/go-elasticsearch/v8/esapi" "github.com/elastic/go-elasticsearch/v8/internal/version" - "github.com/elastic/go-elasticsearch/v8/typedapi" - "go.opentelemetry.io/otel/trace" + + "github.com/elastic/elastic-transport-go/v8/elastictransport" + tpversion "github.com/elastic/elastic-transport-go/v8/elastictransport/version" ) const (