From ed5f478b9b5add2032a71d6d95bebf88390c61b8 Mon Sep 17 00:00:00 2001 From: Brian Goff Date: Mon, 22 Apr 2019 10:31:06 -0700 Subject: [PATCH] Don't set cancel function to nil on error (#579) When setting up the http server we return a cancel function to close all the listeners down. The issue here is we set the cancel function to nil and thereby cause a panic when there is an error and the `defer` attempts to call cancel. This fix just don't set a named return value for the cancel function to make sure we don't overwrite it with a `return nil, err`. This ensures that the `defer` can still call `cancel()`. --- virtual-kubelet/commands/root/http.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/virtual-kubelet/commands/root/http.go b/virtual-kubelet/commands/root/http.go index c716373..b61013f 100644 --- a/virtual-kubelet/commands/root/http.go +++ b/virtual-kubelet/commands/root/http.go @@ -57,9 +57,9 @@ func loadTLSConfig(certPath, keyPath string) (*tls.Config, error) { }, nil } -func setupHTTPServer(ctx context.Context, p providers.Provider, cfg *apiServerConfig) (cancel func(), retErr error) { +func setupHTTPServer(ctx context.Context, p providers.Provider, cfg *apiServerConfig) (_ func(), retErr error) { var closers []io.Closer - cancel = func() { + cancel := func() { for _, c := range closers { c.Close() }