diff --git a/Gopkg.lock b/Gopkg.lock index 4f39d68790..3adc4dd883 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -419,7 +419,7 @@ revision = "ee21903287393441c7bb53a0b0d39b8fa4075221" [[projects]] - digest = "1:6da9487ef0cc0cca3eeb1a24e3bb018ce2e07b7c2fc4d50975b54efdcc942118" + digest = "1:903bfb87f41dc18a533d327b5b03fd2f562f34deafcbd0db93d4be3fa8d6099c" name = "github.com/kata-containers/agent" packages = [ "pkg/types", @@ -427,7 +427,7 @@ "protocols/grpc", ] pruneopts = "NUT" - revision = "1b3628c43660cb198ec055d78e5c7b03809cba60" + revision = "686708d9a8be625f9350c925ae3f038c1530a423" [[projects]] digest = "1:58999a98719fddbac6303cb17e8d85b945f60b72f48e3a2df6b950b97fa926f1" diff --git a/Gopkg.toml b/Gopkg.toml index f0a2d5abc2..1d6c77521b 100644 --- a/Gopkg.toml +++ b/Gopkg.toml @@ -52,7 +52,7 @@ [[constraint]] name = "github.com/kata-containers/agent" - revision = "1b3628c43660cb198ec055d78e5c7b03809cba60" + revision = "686708d9a8be625f9350c925ae3f038c1530a423" [[constraint]] name = "github.com/containerd/cri-containerd" diff --git a/vendor/github.com/kata-containers/agent/protocols/client/client.go b/vendor/github.com/kata-containers/agent/protocols/client/client.go index 43b9a94525..911c252ef8 100644 --- a/vendor/github.com/kata-containers/agent/protocols/client/client.go +++ b/vendor/github.com/kata-containers/agent/protocols/client/client.go @@ -9,19 +9,16 @@ package client import ( "context" "fmt" - "io" "net" "net/url" "strconv" "strings" - "syscall" "time" "github.com/grpc-ecosystem/grpc-opentracing/go/otgrpc" "github.com/hashicorp/yamux" "github.com/mdlayher/vsock" opentracing "github.com/opentracing/opentracing-go" - "golang.org/x/sys/unix" "google.golang.org/grpc" "google.golang.org/grpc/codes" grpcStatus "google.golang.org/grpc/status" @@ -410,24 +407,12 @@ func HybridVSockDialer(sock string, timeout time.Duration) (net.Conn, error) { return nil, err } - // Receive the packet from the connection without removing it from - // the receive queue (MSG_PEEK), ensuring the connection is usable. - if uc, ok := conn.(*net.UnixConn); ok { - file, err := uc.File() - if err != nil { - conn.Close() - return nil, err - } - eot := make([]byte, 1) - n, _, err := unix.Recvfrom(int(file.Fd()), eot, syscall.MSG_PEEK) - file.Close() - if err != nil || n == 0 { - conn.Close() - if err == nil { - err = io.EOF - } - return nil, err - } + // Read EOT (End of transmission) byte + eot := make([]byte, 32) + if _, err = conn.Read(eot); err != nil { + // Just close the connection, gRPC will dial again + // without errors + conn.Close() } return conn, nil