From 21df0dc92650d7a2d720c71663771c5795827a87 Mon Sep 17 00:00:00 2001 From: adamstruck Date: Fri, 1 Jun 2018 13:56:44 -0700 Subject: [PATCH 1/2] dynamodb: fix potential panic in tableIsAlive method --- database/dynamodb/util.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/database/dynamodb/util.go b/database/dynamodb/util.go index a80d60816..f01198615 100644 --- a/database/dynamodb/util.go +++ b/database/dynamodb/util.go @@ -196,11 +196,13 @@ func (db *DynamoDB) tableIsAlive(ctx context.Context, name string) error { case <-ctx.Done(): return ctx.Err() case <-ticker: - r, _ := db.client.DescribeTable(&dynamodb.DescribeTableInput{ + r, err := db.client.DescribeTable(&dynamodb.DescribeTableInput{ TableName: aws.String(name), }) - if *r.Table.TableStatus == "ACTIVE" { - return nil + if err == nil { + if *r.Table.TableStatus == "ACTIVE" { + return nil + } } } } From f9ef21810b5ec01e3b18a24af8427984a31dfe07 Mon Sep 17 00:00:00 2001 From: adamstruck Date: Fri, 1 Jun 2018 14:06:20 -0700 Subject: [PATCH 2/2] dynamodb: check err type in tableIsAlive method --- database/dynamodb/util.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/database/dynamodb/util.go b/database/dynamodb/util.go index f01198615..51cfef34c 100644 --- a/database/dynamodb/util.go +++ b/database/dynamodb/util.go @@ -199,10 +199,16 @@ func (db *DynamoDB) tableIsAlive(ctx context.Context, name string) error { r, err := db.client.DescribeTable(&dynamodb.DescribeTableInput{ TableName: aws.String(name), }) - if err == nil { - if *r.Table.TableStatus == "ACTIVE" { - return nil + if err != nil { + if aerr, ok := err.(awserr.Error); ok { + if aerr.Code() == dynamodb.ErrCodeResourceNotFoundException { + continue + } } + return err + } + if *r.Table.TableStatus == "ACTIVE" { + return nil } } }