Skip to content

Commit 5dc9fba

Browse files
sjpottertallclair
authored andcommitted
Dont block on grpc if nothing is listeing on rkt api service port (#1218)
attempt to connect to rkt api service with net before grpc
1 parent bbd05e4 commit 5dc9fba

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

container/rkt/client.go

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ package rkt
1616

1717
import (
1818
"fmt"
19+
"net"
1920
"sync"
2021
"time"
2122

@@ -27,6 +28,7 @@ import (
2728

2829
const (
2930
defaultRktAPIServiceAddr = "localhost:15441"
31+
timeout = 2 * time.Second
3032
)
3133

3234
var (
@@ -37,10 +39,19 @@ var (
3739

3840
func Client() (rktapi.PublicAPIClient, error) {
3941
once.Do(func() {
40-
apisvcConn, err := grpc.Dial(defaultRktAPIServiceAddr, grpc.WithInsecure(), grpc.WithTimeout(5*time.Second))
42+
conn, err := net.DialTimeout("tcp", defaultRktAPIServiceAddr, timeout)
4143
if err != nil {
4244
rktClient = nil
43-
rktClientErr = fmt.Errorf("rkt: cannot connect to rkt api service: %v", err)
45+
rktClientErr = fmt.Errorf("rkt: cannot tcp Dial rkt api service: %v", err)
46+
return
47+
}
48+
49+
conn.Close()
50+
51+
apisvcConn, err := grpc.Dial(defaultRktAPIServiceAddr, grpc.WithInsecure(), grpc.WithTimeout(timeout))
52+
if err != nil {
53+
rktClient = nil
54+
rktClientErr = fmt.Errorf("rkt: cannot grpc Dial rkt api service: %v", err)
4455
return
4556
}
4657

0 commit comments

Comments
 (0)