From 431df859b2ed8f60441231ff10e04f1c89d15d4a Mon Sep 17 00:00:00 2001 From: Paul Lorenz Date: Mon, 20 Mar 2023 09:48:44 -0400 Subject: [PATCH] Handle duplicate tunnel terminator creation gracefully. Fixes #1355 --- .../handler_edge_ctrl/create_tunnel_terminator.go | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/controller/handler_edge_ctrl/create_tunnel_terminator.go b/controller/handler_edge_ctrl/create_tunnel_terminator.go index 21f871521..99fac2977 100644 --- a/controller/handler_edge_ctrl/create_tunnel_terminator.go +++ b/controller/handler_edge_ctrl/create_tunnel_terminator.go @@ -127,10 +127,17 @@ func (self *createTunnelTerminatorHandler) CreateTerminator(ctx *CreateTunnelTer n := self.appEnv.GetHostController().GetNetwork() err := n.Terminators.Create(terminator) if err != nil { - self.returnError(ctx, internalError(err)) - return + // terminator might have been created while we were trying to create. + terminator, _ = self.getNetwork().Terminators.Read(ctx.req.Address) + if terminator != nil { + logger.Info("terminator already exists") + } else { + self.returnError(ctx, internalError(err)) + return + } + } else { + logger.Info("created terminator") } - logger.Info("created terminator") } response := &edge_ctrl_pb.CreateTunnelTerminatorResponse{