From b3d141ddef4a8019b885aacb9d478ae21995c78f Mon Sep 17 00:00:00 2001 From: Rebecca Stambler Date: Tue, 21 Jul 2020 20:08:27 -0400 Subject: [PATCH] internal/lsp/cache: copy *packages.Config environment completely I noticed a race in these logs: https://build.golang.org/log/ec2915e97319de219284ed022338f2ebc549aff6. We need to copy the environment and build flags for each config, since we're treating the config as single use. Change-Id: I9e717e688def088cb60f2b23b71d731e2b20b259 Reviewed-on: https://go-review.googlesource.com/c/tools/+/244118 Run-TryBot: Rebecca Stambler TryBot-Result: Gobot Gobot Reviewed-by: Robert Findley --- internal/lsp/cache/snapshot.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/internal/lsp/cache/snapshot.go b/internal/lsp/cache/snapshot.go index bbc7c7bc32..c4ac260ba2 100644 --- a/internal/lsp/cache/snapshot.go +++ b/internal/lsp/cache/snapshot.go @@ -107,10 +107,10 @@ func (s *snapshot) config(ctx context.Context) *packages.Config { s.view.optionsMu.Unlock() cfg := &packages.Config{ - Env: env, - Dir: s.view.folder.Filename(), Context: ctx, - BuildFlags: buildFlags, + Dir: s.view.folder.Filename(), + Env: append([]string{}, env...), + BuildFlags: append([]string{}, buildFlags...), Mode: packages.NeedName | packages.NeedFiles | packages.NeedCompiledGoFiles |