From 508b67c32ac316f1df6b48809925685e37ebe776 Mon Sep 17 00:00:00 2001 From: Pierre Souchay Date: Tue, 11 Sep 2018 18:34:09 +0200 Subject: [PATCH] Ensure that Proxies ARE always cleaned up, event with DeregisterCriticalServiceAfter (#4649) This fixes https://github.com/hashicorp/consul/issues/4648 --- agent/agent.go | 9 +++++++++ agent/agent_endpoint.go | 9 --------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/agent/agent.go b/agent/agent.go index 92b901350..6b8dabe3b 100644 --- a/agent/agent.go +++ b/agent/agent.go @@ -1818,6 +1818,15 @@ func (a *Agent) RemoveService(serviceID string, persist bool) error { } } + // Remove the associated managed proxy if it exists + for proxyID, p := range a.State.Proxies() { + if p.Proxy.TargetServiceID == serviceID { + if err := a.RemoveProxy(proxyID, true); err != nil { + return err + } + } + } + a.logger.Printf("[DEBUG] agent: removed service %q", serviceID) return nil } diff --git a/agent/agent_endpoint.go b/agent/agent_endpoint.go index 87aeae5b3..33bd610f8 100644 --- a/agent/agent_endpoint.go +++ b/agent/agent_endpoint.go @@ -682,15 +682,6 @@ func (s *HTTPServer) AgentDeregisterService(resp http.ResponseWriter, req *http. return nil, err } - // Remove the associated managed proxy if it exists - for proxyID, p := range s.agent.State.Proxies() { - if p.Proxy.TargetServiceID == serviceID { - if err := s.agent.RemoveProxy(proxyID, true); err != nil { - return nil, err - } - } - } - s.syncChanges() return nil, nil }