From 7d4a56c854259007d2f047564e7cd0daa2db37ea Mon Sep 17 00:00:00 2001 From: Atul Kumar Date: Sat, 5 Aug 2023 11:26:20 +0530 Subject: [PATCH] cancelling the context cancel function on error in requestOptions --- dax/internal/lru/lru_test.go | 10 ++++------ dax/service.go | 17 +++++++++-------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/dax/internal/lru/lru_test.go b/dax/internal/lru/lru_test.go index b2e65da..4a6fea2 100644 --- a/dax/internal/lru/lru_test.go +++ b/dax/internal/lru/lru_test.go @@ -18,12 +18,13 @@ package lru import ( "context" "fmt" - "github.com/aws/aws-sdk-go/aws" "reflect" "sync" "sync/atomic" "testing" "time" + + "github.com/aws/aws-sdk-go/aws" ) func TestLruGet(t *testing.T) { @@ -122,11 +123,8 @@ func TestLruEvict(t *testing.T) { func TestLruTimeout(t *testing.T) { loadFn := func(ctx aws.Context, key Key) (interface{}, error) { - select { - case <-ctx.Done(): - return nil, ctx.Err() - } - return key, nil + <-ctx.Done() + return nil, ctx.Err() } c := &Lru{ diff --git a/dax/service.go b/dax/service.go index 1b165a7..12e4a2b 100644 --- a/dax/service.go +++ b/dax/service.go @@ -115,14 +115,15 @@ func SecureDialContext(endpoint string, skipHostnameVerification bool) (func(ctx // Only configurations relevent to DAX will be used, others will be ignored. // // Example: -// mySession := session.Must(session.NewSession( -// &aws.Config{ -// Region: aws.String("us-east-1"), -// Endpoint: aws.String("dax://mycluster.frfx8h.clustercfg.dax.usw2.amazonaws.com:8111"), -// })) // -// // Create a DAX client from just a session. -// svc := dax.NewWithSession(mySession) +// mySession := session.Must(session.NewSession( +// &aws.Config{ +// Region: aws.String("us-east-1"), +// Endpoint: aws.String("dax://mycluster.frfx8h.clustercfg.dax.usw2.amazonaws.com:8111"), +// })) +// +// // Create a DAX client from just a session. +// svc := dax.NewWithSession(mySession) func NewWithSession(session session.Session) (*Dax, error) { dc := DefaultConfig() if session.Config != nil { @@ -169,6 +170,7 @@ func (c *Config) requestOptions(read bool, ctx context.Context, opts ...request. MaxRetries: r, } if err := opt.MergeFromRequestOptions(ctx, opts...); err != nil { + defer cfn() if c.Logger != nil && c.LogLevel.AtLeast(aws.LogDebug) { c.Logger.Log(fmt.Sprintf("DEBUG: Error in merging from Request Options : %s", err)) } @@ -183,7 +185,6 @@ func buildHandlersForUnimplementedOperations() *request.Handlers { Name: "dax.BuildHandler", Fn: func(r *request.Request) { r.Error = errors.New(client.ErrCodeNotImplemented) - return }}) return h }