aws / aws-dax-go

AWS DAX SDK for the Go programming language. https://aws.amazon.com/dynamodb/dax
Apache License 2.0
47 stars 49 forks source link

nil pointer dereference in internal/client #12

Closed ccbrown closed 5 years ago

ccbrown commented 5 years ago

We've been seeing a few occasional panics while our system is under load:

runtime error: invalid memory address or nil pointer dereference: goroutine 9430 [running]:
panic(0x16cbc80, 0xd21fae0)
  /usr/local/go/src/runtime/panic.go:513 +0x1b9
theproject/vendor/github.com/aws/aws-dax-go/dax/internal/client.(*tube).setDeadline(0x0, 0xbf08a153284f8695, 0x3f89c397be, 0xd2abd60, 0x1, 0xbd7d6a0)
  /go/src/theproject/vendor/github.com/aws/aws-dax-go/dax/internal/client/tube.go:103 +0x22
theproject/vendor/github.com/aws/aws-dax-go/dax/internal/client.(*tubePool).setDeadline(0xc0009a44e0, 0x0, 0xbd7d6a0, 0xc02136dd40, 0xc02136dd40, 0x0)
  /go/src/theproject/vendor/github.com/aws/aws-dax-go/dax/internal/client/tubepool.go:211 +0xe4
theproject/vendor/github.com/aws/aws-dax-go/dax/internal/client.(*SingleDaxClient).executeWithContext(0xc000826730, 0x7f34e9724728, 0xc02136dd40, 0x1968d2c, 0x7, 0xc02136dda0, 0xc020733ab0, 0xc009b3bb80, 0x203008)
  /go/src/theproject/vendor/github.com/aws/aws-dax-go/dax/internal/client/single.go:638 +0x17e
theproject/vendor/github.com/aws/aws-dax-go/dax/internal/client.(*SingleDaxClient).executeWithRetries(0xc000826730, 0x1968d2c, 0x7, 0x0, 0xbd6cf60, 0xc00000e020, 0x0, 0x0, 0x0, 0x7f34e9724728, ...)
  /go/src/theproject/vendor/github.com/aws/aws-dax-go/dax/internal/client/single.go:612 +0x16d
theproject/vendor/github.com/aws/aws-dax-go/dax/internal/client.(*SingleDaxClient).GetItemWithOptions(0xc000826730, 0xc0167bd950, 0xc014b44c10, 0x0, 0xbd6cf60, 0xc00000e020, 0x0, 0x0, 0x0, 0x7f34e9724728, ...)
  /go/src/theproject/vendor/github.com/aws/aws-dax-go/dax/internal/client/single.go:286 +0x1ed
theproject/vendor/github.com/aws/aws-dax-go/dax/internal/client.(*ClusterDaxClient).GetItemWithOptions.func1(0xbd8c740, 0xc000826730, 0x0, 0xbd6cf60, 0xc00000e020, 0x0, 0x0, 0x0, 0x7f34e9724728, 0xc02136dd40, ...)
  /go/src/theproject/vendor/github.com/aws/aws-dax-go/dax/internal/client/cluster.go:208 +0xa0
theproject/vendor/github.com/aws/aws-dax-go/dax/internal/client.(*ClusterDaxClient).retry(0xc0009a4660, 0x1968d2c, 0x7, 0xc02113c9a0, 0x0, 0xbd6cf60, 0xc00000e020, 0x0, 0x0, 0x0, ...)
  /go/src/theproject/vendor/github.com/aws/aws-dax-go/dax/internal/client/cluster.go:309 +0x430
theproject/vendor/github.com/aws/aws-dax-go/dax/internal/client.(*ClusterDaxClient).GetItemWithOptions(0xc0009a4660, 0xc0167bd950, 0xc014b44c10, 0x0, 0xbd6cf60, 0xc00000e020, 0x0, 0x2, 0x0, 0x7f34e9724728, ...)
  /go/src/theproject/vendor/github.com/aws/aws-dax-go/dax/internal/client/cluster.go:211 +0x124
theproject/vendor/github.com/aws/aws-dax-go/dax.(*Dax).GetItemWithContext(0xc0004063f0, 0x0, 0x0, 0xc0167bd950, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
  /go/src/theproject/vendor/github.com/aws/aws-dax-go/dax/api.go:116 +0x201
theproject/vendor/github.com/aws/aws-dax-go/dax.(*Dax).GetItem(0xc0004063f0, 0xc0167bd950, 0x0, 0x0, 0x0)
  /go/src/theproject/vendor/github.com/aws/aws-dax-go/dax/api.go:105 +0x4b

Sorry I don't have more info at the moment. I'm hoping the error will be apparent to someone familiar with the codebase before I dig deeper.