From 6a69c05c0472a040a0dab3cb85c1255e02f0e2cf Mon Sep 17 00:00:00 2001 From: James Tucker Date: Fri, 24 Jan 2025 13:29:10 -0800 Subject: [PATCH] control/controlclient: add debug netmap refcount Signed-off-by: Brad Fitzpatrick Signed-off-by: James Tucker --- control/controlclient/map.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/control/controlclient/map.go b/control/controlclient/map.go index 1a54fc543..f8a8a7554 100644 --- a/control/controlclient/map.go +++ b/control/controlclient/map.go @@ -15,6 +15,7 @@ import ( "slices" "strconv" "sync" + "sync/atomic" "time" "tailscale.com/control/controlknobs" @@ -817,6 +818,8 @@ func (ms *mapSession) sortedPeers() []tailcfg.NodeView { return ret } +var numNetmaps atomic.Int64 + // netmap returns a fully populated NetworkMap from the last state seen from // a call to updateStateFromResponse, filling in omitted // information from prior MapResponse values. @@ -841,6 +844,10 @@ func (ms *mapSession) netmap() *netmap.NetworkMap { TKAEnabled: ms.lastTKAInfo != nil && !ms.lastTKAInfo.Disabled, MaxKeyDuration: ms.lastMaxExpiry, } + ms.logf("XXX NetMap++ => %v", numNetmaps.Add(1)) + runtime.SetFinalizer(nm, func(nm *netmap.NetworkMap) { + ms.logf("XXX NetMap-- => %v", numNetmaps.Add(-1)) + }) if ms.lastTKAInfo != nil && ms.lastTKAInfo.Head != "" { if err := nm.TKAHead.UnmarshalText([]byte(ms.lastTKAInfo.Head)); err != nil {