From 3d8ffe41200dcc64264ab2fff8bab6e479ad7684 Mon Sep 17 00:00:00 2001 From: Penny Zheng Date: Mon, 25 Nov 2019 23:39:18 -0800 Subject: [PATCH] cache-factory: fix nil pointer runtime panic For now, when we're using cache factory to launch kata containers, we would encounter nil pointer runtime panic. Fixes: #2272 Signed-off-by: Penny Zheng --- cli/factory.go | 2 +- virtcontainers/agent.go | 2 +- virtcontainers/kata_agent.go | 4 ++-- virtcontainers/noop_agent.go | 2 +- virtcontainers/vm.go | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cli/factory.go b/cli/factory.go index f9bed62460..7155c93aed 100644 --- a/cli/factory.go +++ b/cli/factory.go @@ -88,7 +88,7 @@ func (s *cacheServer) Quit(ctx context.Context, empty *types.Empty) (*types.Empt time.Sleep(time.Second) s.quit() }() - return nil, nil + return &types.Empty{}, nil } func (s *cacheServer) Status(ctx context.Context, empty *types.Empty) (*pb.GrpcStatus, error) { diff --git a/virtcontainers/agent.go b/virtcontainers/agent.go index 77e5c683c9..32163dbf99 100644 --- a/virtcontainers/agent.go +++ b/virtcontainers/agent.go @@ -222,7 +222,7 @@ type agent interface { configure(h hypervisor, id, sharePath string, builtin bool, config interface{}) error // configureFromGrpc will update agent settings based on provided arguments which from Grpc - configureFromGrpc(id string, builtin bool, config interface{}) error + configureFromGrpc(h hypervisor, id string, builtin bool, config interface{}) error // getVMPath will return the agent vm socket's directory path getVMPath(id string) string diff --git a/virtcontainers/kata_agent.go b/virtcontainers/kata_agent.go index 161ebe3fe5..d4249898e8 100644 --- a/virtcontainers/kata_agent.go +++ b/virtcontainers/kata_agent.go @@ -416,8 +416,8 @@ func (k *kataAgent) configure(h hypervisor, id, sharePath string, builtin bool, return h.addDevice(sharedVolume, fsDev) } -func (k *kataAgent) configureFromGrpc(id string, builtin bool, config interface{}) error { - return k.internalConfigure(nil, id, "", builtin, config) +func (k *kataAgent) configureFromGrpc(h hypervisor, id string, builtin bool, config interface{}) error { + return k.internalConfigure(h, id, "", builtin, config) } func (k *kataAgent) createSandbox(sandbox *Sandbox) error { diff --git a/virtcontainers/noop_agent.go b/virtcontainers/noop_agent.go index 6d926f4067..914dbb719f 100644 --- a/virtcontainers/noop_agent.go +++ b/virtcontainers/noop_agent.go @@ -181,7 +181,7 @@ func (n *noopAgent) configure(h hypervisor, id, sharePath string, builtin bool, return nil } -func (n *noopAgent) configureFromGrpc(id string, builtin bool, config interface{}) error { +func (n *noopAgent) configureFromGrpc(h hypervisor, id string, builtin bool, config interface{}) error { return nil } diff --git a/virtcontainers/vm.go b/virtcontainers/vm.go index 4b77c22de0..cdfbb703d7 100644 --- a/virtcontainers/vm.go +++ b/virtcontainers/vm.go @@ -264,7 +264,7 @@ func NewVMFromGrpc(ctx context.Context, v *pb.GrpcVM, config VMConfig) (*VM, err } agent := newAgent(config.AgentType) - agent.configureFromGrpc(v.Id, isProxyBuiltIn(config.ProxyType), config.AgentConfig) + agent.configureFromGrpc(hypervisor, v.Id, isProxyBuiltIn(config.ProxyType), config.AgentConfig) proxy, err := newProxy(config.ProxyType) if err != nil {