-
Notifications
You must be signed in to change notification settings - Fork 86
grpc.Dial will block when using kuberesolver against a non-existing service #1
Copy link
Copy link
Closed
Description
The correct thing to do (implied by grpc/grpc-go#976) is to return an empty []Address from watcher.Next:
goroutine 1 [select]:
github.com/weaveworks/service/vendor/google.golang.org/grpc.DialContext(0x10ed6e0, 0xc420019b78, 0xc42022a8c0, 0x19, 0xc420233ff0, 0x3, 0x3, 0x0, 0x0, 0x0)
/go/src/github.com/weaveworks/service/vendor/google.golang.org/grpc/clientconn.go:373 +0x60a
github.com/weaveworks/service/vendor/google.golang.org/grpc.Dial(0xc42022a8c0, 0x19, 0xc420233ff0, 0x3, 0x3, 0xc42022a920, 0x19, 0x2)
/go/src/github.com/weaveworks/service/vendor/google.golang.org/grpc/clientconn.go:268 +0x72
github.com/weaveworks/service/vendor/github.com/weaveworks/common/httpgrpc.NewClient(0x7ffd9ed00245, 0x13, 0xc4201dd3e0, 0x10e7960, 0xc4201dd3e0)
/go/src/github.com/weaveworks/service/vendor/github.com/weaveworks/common/httpgrpc/httpgrpc.go:81 +0x395
main.routes(0x10ed5a0, 0xc4200555c0, 0xc420187780, 0xbb0c8d, 0xd, 0x1, 0x7ffd9ecffe90, 0x16, 0x0, 0x0, ...)
....
goroutine 92 [select]:
github.com/weaveworks/service/vendor/github.com/sercand/kuberesolver.(*kubeResolver).watch(0xc42022a8e0, 0xc42022a8cd, 0x7, 0xc4201df260, 0xc4201df200, 0x0, 0x0)
/go/src/github.com/weaveworks/service/vendor/github.com/sercand/kuberesolver/resolver.go:73 +0x499
github.com/weaveworks/service/vendor/github.com/sercand/kuberesolver.(*kubeResolver).Resolve.func1()
/go/src/github.com/weaveworks/service/vendor/github.com/sercand/kuberesolver/resolver.go:38 +0x52
github.com/weaveworks/service/vendor/github.com/sercand/kuberesolver.until.func1(0xc4201e92f0)
/go/src/github.com/weaveworks/service/vendor/github.com/sercand/kuberesolver/util.go:20 +0x43
github.com/weaveworks/service/vendor/github.com/sercand/kuberesolver.until(0xc4201e92f0, 0x3b9aca00, 0xc4201df260)
/go/src/github.com/weaveworks/service/vendor/github.com/sercand/kuberesolver/util.go:21 +0x73
created by github.com/weaveworks/service/vendor/github.com/sercand/kuberesolver.(*kubeResolver).Resolve
/go/src/github.com/weaveworks/service/vendor/github.com/sercand/kuberesolver/resolver.go:42 +0x1aa
...
goroutine 91 [chan receive]:
github.com/weaveworks/service/vendor/google.golang.org/grpc.DialContext.func2(0xc420236000, 0xc42022a8c0, 0x19, 0x0, 0x0, 0xc4201df1a0, 0xc4201dd99c)
/go/src/github.com/weaveworks/service/vendor/google.golang.org/grpc/clientconn.go:358 +0x12f
created by github.com/weaveworks/service/vendor/google.golang.org/grpc.DialContext
/go/src/github.com/weaveworks/service/vendor/google.golang.org/grpc/clientconn.go:372 +0x3d3
...
goroutine 93 [select]:
github.com/weaveworks/service/vendor/github.com/sercand/kuberesolver.(*watcher).Next(0xc4201df2c0, 0xc4200b9a00, 0xc420025660, 0x41365e, 0xc4201de540, 0xc420011ea0)
/go/src/github.com/weaveworks/service/vendor/github.com/sercand/kuberesolver/watcher.go:39 +0xe2f
github.com/weaveworks/service/vendor/google.golang.org/grpc.(*roundRobin).watchAddrUpdates(0xc4201df0e0, 0x0, 0x0)
/go/src/github.com/weaveworks/service/vendor/google.golang.org/grpc/balancer.go:168 +0x64
github.com/weaveworks/service/vendor/google.golang.org/grpc.(*roundRobin).Start.func1(0xc4201df0e0)
/go/src/github.com/weaveworks/service/vendor/google.golang.org/grpc/balancer.go:239 +0x2b
created by github.com/weaveworks/service/vendor/google.golang.org/grpc.(*roundRobin).Start
/go/src/github.com/weaveworks/service/vendor/google.golang.org/grpc/balancer.go:243 +0x148
Note I don't agree with this gRPC behaviour, but it doesn't seem like they're going to change that - at least, I'll take that up separately with them.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels