Skip to content

Commit

Permalink
clientv3: only block on New() when DialTimeout > 0
Browse files Browse the repository at this point in the history
Fixes #6162
  • Loading branch information
heyitsanthony authored and gyuho committed Aug 12, 2016
1 parent 69a9786 commit 8ae0f94
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 5 deletions.
12 changes: 7 additions & 5 deletions clientv3/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -138,11 +138,13 @@ func (c *Client) dialTarget(endpoint string) (proto string, host string, creds *
return
}

// dialSetupOpts gives the dial opts prioer to any authentication
func (c *Client) dialSetupOpts(endpoint string, dopts ...grpc.DialOption) []grpc.DialOption {
opts := []grpc.DialOption{
grpc.WithBlock(),
grpc.WithTimeout(c.cfg.DialTimeout),
// dialSetupOpts gives the dial opts prior to any authentication
func (c *Client) dialSetupOpts(endpoint string, dopts ...grpc.DialOption) (opts []grpc.DialOption) {
if c.cfg.DialTimeout > 0 {
opts = []grpc.DialOption{
grpc.WithTimeout(c.cfg.DialTimeout),
grpc.WithBlock(),
}
}
opts = append(opts, dopts...)

Expand Down
9 changes: 9 additions & 0 deletions clientv3/client_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,15 @@ func TestDialTimeout(t *testing.T) {
}
}

func TestDialNoTimeout(t *testing.T) {
cfg := Config{Endpoints: []string{"127.0.0.1:12345"}}
c, err := New(cfg)
if c == nil || err != nil {
t.Fatalf("new client with DialNoWait should succeed, got %v", err)
}
c.Close()
}

func TestIsHaltErr(t *testing.T) {
if !isHaltErr(nil, fmt.Errorf("etcdserver: some etcdserver error")) {
t.Errorf(`error prefixed with "etcdserver: " should be Halted by default`)
Expand Down

0 comments on commit 8ae0f94

Please sign in to comment.