From 12e1911aabc35128548bdcf0be03cc03eb56f11f Mon Sep 17 00:00:00 2001 From: Jose Carlos Venegas Munoz Date: Thu, 26 Jul 2018 01:02:41 +0000 Subject: [PATCH 1/2] kata-agent: Improve error message. If the grpc connection check fails we only return the grpc error. To make more clear what failed add more information to the error. Signed-off-by: Jose Carlos Venegas Munoz --- virtcontainers/kata_agent.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/virtcontainers/kata_agent.go b/virtcontainers/kata_agent.go index 831862af22..4d6ecfb82d 100644 --- a/virtcontainers/kata_agent.go +++ b/virtcontainers/kata_agent.go @@ -1229,8 +1229,12 @@ func (k *kataAgent) disconnect() error { return nil } +// check grpc server is serving func (k *kataAgent) check() error { _, err := k.sendReq(&grpc.CheckRequest{}) + if err != nil { + err = fmt.Errorf("Failed to check if grpc server is working: %s", err) + } return err } From 5fc721931583c3d01e4f2aaeba05bef03d56840f Mon Sep 17 00:00:00 2001 From: Jose Carlos Venegas Munoz Date: Thu, 26 Jul 2018 01:22:19 +0000 Subject: [PATCH 2/2] agent: check: Increase timeout check request. In some slow enviroments the agent is taking more than 5 seconds to start to serve grpc request. This was reproducible in a Centos VM with 4 cpus running 8 pods in parallel. Fixes: #516 Signed-off-by: Jose Carlos Venegas Munoz --- virtcontainers/kata_agent.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/virtcontainers/kata_agent.go b/virtcontainers/kata_agent.go index 4d6ecfb82d..f442aabc1d 100644 --- a/virtcontainers/kata_agent.go +++ b/virtcontainers/kata_agent.go @@ -34,6 +34,7 @@ import ( ) var ( + checkRequestTimeout = 30 * time.Second defaultKataSocketName = "kata.sock" defaultKataChannel = "agent.channel.0" defaultKataDeviceID = "channel0" @@ -1278,7 +1279,7 @@ type reqFunc func(context.Context, interface{}, ...golangGrpc.CallOption) (inter func (k *kataAgent) installReqFunc(c *kataclient.AgentClient) { k.reqHandlers = make(map[string]reqFunc) k.reqHandlers["grpc.CheckRequest"] = func(ctx context.Context, req interface{}, opts ...golangGrpc.CallOption) (interface{}, error) { - ctx, cancel := context.WithTimeout(ctx, 5*time.Second) + ctx, cancel := context.WithTimeout(ctx, checkRequestTimeout) defer cancel() return k.client.Check(ctx, req.(*grpc.CheckRequest), opts...) }