diff --git a/edgediscovery/edgediscovery.go b/edgediscovery/edgediscovery.go index 9f76b6fa..df9c42cc 100644 --- a/edgediscovery/edgediscovery.go +++ b/edgediscovery/edgediscovery.go @@ -114,7 +114,8 @@ func (ed *Edge) GetDifferentAddr(connIndex int) (*allregions.EdgeAddr, error) { // note: if oldAddr were not nil, it will become available on the next iteration return nil, errNoAddressesLeft } - log.Debug().Msg("edgediscovery - GetDifferentAddr: Giving connection its new address") + log.Debug().Msgf("edgediscovery - GetDifferentAddr: Giving connection its new address: %v from the address list: %v", + addr, ed.regions.AvailableAddrs()) return addr, nil } diff --git a/supervisor/tunnel.go b/supervisor/tunnel.go index 36fcbb5c..d6a588f4 100644 --- a/supervisor/tunnel.go +++ b/supervisor/tunnel.go @@ -171,17 +171,15 @@ func ServeTunnelLoop( protocolFallback.protocol, gracefulShutdownC, ) - if !recoverable { - return err - } - config.Observer.SendReconnect(connIndex) - - duration, ok := protocolFallback.GetMaxBackoffDuration(ctx) - if !ok { - return err + if recoverable { + duration, ok := protocolFallback.GetMaxBackoffDuration(ctx) + if !ok { + return err + } + config.Observer.SendReconnect(connIndex) + connLog.Logger().Info().Msgf("Retrying connection in up to %s seconds", duration) } - connLog.Logger().Info().Msgf("Retrying connection in up to %s seconds", duration) select { case <-ctx.Done(): @@ -189,6 +187,10 @@ func ServeTunnelLoop( case <-gracefulShutdownC: return nil case <-protocolFallback.BackoffTimer(): + if !recoverable { + return err + } + if !selectNextProtocol( connLog.Logger(), protocolFallback,