From e59dc29a55d57d78a146ed7e5adb0907346da14a Mon Sep 17 00:00:00 2001 From: Anton Tolchanov Date: Mon, 20 Mar 2023 15:12:48 +0000 Subject: [PATCH] prober: log client pubkeys on derp mesh probe failures Updates https://github.com/tailscale/corp/issues/9916 Signed-off-by: Anton Tolchanov --- prober/derp.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/prober/derp.go b/prober/derp.go index 2609dba73..f342ef723 100644 --- a/prober/derp.go +++ b/prober/derp.go @@ -273,6 +273,17 @@ func derpProbeNodePair(ctx context.Context, dm *tailcfg.DERPMap, from, to *tailc time.Sleep(100 * time.Millisecond) // pretty arbitrary } + latency, err = runDerpProbeNodePair(ctx, from, to, fromc, toc) + if err != nil { + // Record pubkeys on failed probes to aid investigation. + err = fmt.Errorf("%s -> %s: %w", + fromc.SelfPublicKey().ShortString(), + toc.SelfPublicKey().ShortString(), err) + } + return latency, err +} + +func runDerpProbeNodePair(ctx context.Context, from, to *tailcfg.DERPNode, fromc, toc *derphttp.Client) (latency time.Duration, err error) { // Make a random packet pkt := make([]byte, 8) crand.Read(pkt)