From 6a860cfb3514e8d423ef1fac4b7205a4f53ef394 Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Wed, 20 Mar 2024 21:02:33 -0700 Subject: [PATCH] ipn/ipnlocal: add c2n pprof option to force a GC Like net/http/pprof has. Updates tailscale/corp#18514 Change-Id: I264adb6dcf5732d19707783b29b7273b4ca69cf4 Signed-off-by: Brad Fitzpatrick --- ipn/ipnlocal/c2n_pprof.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ipn/ipnlocal/c2n_pprof.go b/ipn/ipnlocal/c2n_pprof.go index 9341548ee..aacdbbc02 100644 --- a/ipn/ipnlocal/c2n_pprof.go +++ b/ipn/ipnlocal/c2n_pprof.go @@ -7,11 +7,17 @@ package ipnlocal import ( "net/http" + "runtime" "runtime/pprof" + "strconv" ) func init() { c2nLogHeap = func(w http.ResponseWriter, r *http.Request) { + // Support same optional gc parameter as net/http/pprof: + if gc, _ := strconv.Atoi(r.FormValue("gc")); gc > 0 { + runtime.GC() + } pprof.WriteHeapProfile(w) } }