From 77c6ac601f791bef45ef25c870e2d07fdaef6250 Mon Sep 17 00:00:00 2001 From: "Hana (Hyang-Ah) Kim" Date: Fri, 1 Sep 2023 15:07:52 -0400 Subject: [PATCH] gopls/internal/telemetry: don't schedule the next upload The telemetry upload package implementation queries UploadConfig only once and reuses it throughout the process lifetime. So, periodic upload doesn't work. Assume users frequently restart gopls or eventually we will move the upload logic to go which is frequently invoked, and run upload only once at the start up. It's still better to clean up the cached upload config object after upload is complete. Fixes golang/go#62405 Change-Id: I39395cf876d9f0e570a71da5284420f570dcdc6b Reviewed-on: https://go-review.googlesource.com/c/tools/+/524819 TryBot-Result: Gopher Robot Run-TryBot: Hyang-Ah Hana Kim Reviewed-by: Peter Weinberger --- gopls/internal/telemetry/telemetry.go | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/gopls/internal/telemetry/telemetry.go b/gopls/internal/telemetry/telemetry.go index a20a40f5057..db75e1a7fbf 100644 --- a/gopls/internal/telemetry/telemetry.go +++ b/gopls/internal/telemetry/telemetry.go @@ -9,7 +9,6 @@ package telemetry import ( "fmt" - "time" "golang.org/x/telemetry/counter" "golang.org/x/telemetry/upload" @@ -19,14 +18,8 @@ import ( // Start starts telemetry instrumentation. func Start() { counter.Open() - go packAndUpload() -} - -func packAndUpload() { - start := time.Now() - upload.Run(nil) - elapsed := time.Since(start) - time.AfterFunc(24*time.Hour-elapsed, packAndUpload) + // upload only once at startup, hoping that users restart gopls often. + go upload.Run(nil) } // RecordClientInfo records gopls client info.