Skip to content

Commit 856ea23

Browse files
committed
wgengine/magicsock: log home DERP changes with latency
This adds additional logging on DERP home changes to allow better troubleshooting. Updates tailscale/corp#18095 Signed-off-by: Tim Walters <[email protected]>
1 parent aecb0ab commit 856ea23

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

wgengine/magicsock/derp.go

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -158,10 +158,10 @@ func (c *Conn) maybeSetNearestDERP(report *netcheck.Report) (preferredDERP int)
158158
} else {
159159
connectedToControl = c.health.GetInPollNetMap()
160160
}
161+
c.mu.Lock()
162+
myDerp := c.myDerp
163+
c.mu.Unlock()
161164
if !connectedToControl {
162-
c.mu.Lock()
163-
myDerp := c.myDerp
164-
c.mu.Unlock()
165165
if myDerp != 0 {
166166
metricDERPHomeNoChangeNoControl.Add(1)
167167
return myDerp
@@ -178,6 +178,11 @@ func (c *Conn) maybeSetNearestDERP(report *netcheck.Report) (preferredDERP int)
178178
// one.
179179
preferredDERP = c.pickDERPFallback()
180180
}
181+
if preferredDERP != myDerp {
182+
c.logf(
183+
"magicsock: home DERP changing from derp-%d [%dms] to derp-%d [%dms]",
184+
c.myDerp, report.RegionLatency[myDerp].Milliseconds(), preferredDERP, report.RegionLatency[preferredDERP].Milliseconds())
185+
}
181186
if !c.setNearestDERP(preferredDERP) {
182187
preferredDERP = 0
183188
}

0 commit comments

Comments
 (0)