From 64eff3ee80a7159301a8266a0da45abe57754f9a Mon Sep 17 00:00:00 2001 From: leoporoli Date: Wed, 20 Dec 2023 14:32:37 -0300 Subject: [PATCH] fix: nil pointer error found in the `kurtosis clean -a` cmd, adding remove reverse proxy container function when it already exists (#1995) ## Description: fix: nil pointer error found in the `kurtosis clean -a` cmd, adding remove reverse proxy container function when it already exists ## Is this change user-facing? YES ## References (if applicable): --- .../reverse_proxy_functions/create_reverse_proxy.go | 11 +++++++++-- .../reverse_proxy_functions/destroy_reverse_proxy.go | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/container-engine-lib/lib/backend_impls/docker/docker_kurtosis_backend/reverse_proxy_functions/create_reverse_proxy.go b/container-engine-lib/lib/backend_impls/docker/docker_kurtosis_backend/reverse_proxy_functions/create_reverse_proxy.go index 08d87d9ce2..2c29325b7b 100644 --- a/container-engine-lib/lib/backend_impls/docker/docker_kurtosis_backend/reverse_proxy_functions/create_reverse_proxy.go +++ b/container-engine-lib/lib/backend_impls/docker/docker_kurtosis_backend/reverse_proxy_functions/create_reverse_proxy.go @@ -32,9 +32,16 @@ func CreateReverseProxy( } if found { logrus.Debugf("Found existing reverse proxy; cannot start a new one.") - reverseProxyObj, _, getProxyObjErr := getReverseProxyObjectAndContainerId(ctx, dockerManager) + reverseProxyObj, proxyContainerId, getProxyObjErr := getReverseProxyObjectAndContainerId(ctx, dockerManager) if getProxyObjErr == nil { - return reverseProxyObj, nil, nil + removeProxyFunc := func() { + removeCtx := context.Background() + if err := dockerManager.RemoveContainer(removeCtx, proxyContainerId); err != nil { + logrus.Errorf("an error occurred to remove the current reverse proxy container with ID '%s' failed. Error was:\n%v", proxyContainerId, err) + logrus.Errorf("ACTION REQUIRED: You'll need to manually remove the reverse proxy server with Docker container ID '%v'!!!!!!", proxyContainerId) + } + } + return reverseProxyObj, removeProxyFunc, nil } logrus.Debugf("Something failed while trying to create the reverse proxy object using container with ID '%s'. Error was:\n%s", proxyDockerContainer.GetId(), getProxyObjErr.Error()) logrus.Debugf("Destroying the failing reverse proxy to create a new one...") diff --git a/container-engine-lib/lib/backend_impls/docker/docker_kurtosis_backend/reverse_proxy_functions/destroy_reverse_proxy.go b/container-engine-lib/lib/backend_impls/docker/docker_kurtosis_backend/reverse_proxy_functions/destroy_reverse_proxy.go index ab41947a00..16d664af59 100644 --- a/container-engine-lib/lib/backend_impls/docker/docker_kurtosis_backend/reverse_proxy_functions/destroy_reverse_proxy.go +++ b/container-engine-lib/lib/backend_impls/docker/docker_kurtosis_backend/reverse_proxy_functions/destroy_reverse_proxy.go @@ -16,7 +16,7 @@ const ( func DestroyReverseProxy(ctx context.Context, dockerManager *docker_manager.DockerManager) error { _, maybeReverseProxyContainerId, err := getReverseProxyObjectAndContainerId(ctx, dockerManager) if err != nil { - logrus.Warnf("Attempted to destroy reverse proxy but no reverse proxy container was found.") + logrus.Warnf("Attempted to destroy reverse proxy but no reverse proxy container was found. Error was:\n%s", err.Error()) return nil }