Skip to content

x/tools/gopls, x/tools/internal/lsp/source: data race in internal/lsp/cache.(*View).populateProcessEnv() #39865

@findleyr

Description

@findleyr

See https://storage.googleapis.com/go-build-log/b1377469/linux-amd64-race_4dd4e316.log

WARNING: DATA RACE
Write at 0x00c001586210 by goroutine 41:
  golang.org/x/tools/internal/lsp/cache.(*View).populateProcessEnv()
      /workdir/gopath/src/golang.org/x/tools/internal/lsp/cache/view.go:477 +0x31d
  golang.org/x/tools/internal/lsp/cache.(*View).RunProcessEnvFunc()
      /workdir/gopath/src/golang.org/x/tools/internal/lsp/cache/view.go:393 +0x14e
  golang.org/x/tools/internal/lsp/source.(*completer).unimportedPackages()
      /workdir/gopath/src/golang.org/x/tools/internal/lsp/source/completion.go:1124 +0x16a1
  golang.org/x/tools/internal/lsp/source.(*completer).lexical()
      /workdir/gopath/src/golang.org/x/tools/internal/lsp/source/completion.go:1075 +0x106c
  golang.org/x/tools/internal/lsp/source.Completion()
      /workdir/gopath/src/golang.org/x/tools/internal/lsp/source/completion.go:586 +0x1a6f
  golang.org/x/tools/internal/lsp/source_test.(*runner).callCompletion()
      /workdir/gopath/src/golang.org/x/tools/internal/lsp/source/source_test.go:244 +0x77d
  golang.org/x/tools/internal/lsp/source_test.(*runner).RankCompletion()
      /workdir/gopath/src/golang.org/x/tools/internal/lsp/source/source_test.go:221 +0x38a
  golang.org/x/tools/internal/lsp/tests.Tests.RankCompletion-fm()
      /workdir/gopath/src/golang.org/x/tools/internal/lsp/tests/tests.go:126 +0x10d
  golang.org/x/tools/internal/lsp/tests.Run.func1.1()
      /workdir/gopath/src/golang.org/x/tools/internal/lsp/tests/tests.go:463 +0x243
  testing.tRunner()
      /workdir/go/src/testing/testing.go:1108 +0x202

Previous read at 0x00c001586210 by goroutine 1486:
  golang.org/x/tools/internal/imports.(*ProcessEnv).mustGetEnv()
      /workdir/gopath/src/golang.org/x/tools/internal/imports/fix.go:781 +0x44
  golang.org/x/tools/internal/imports.(*ProcessEnv).goroot()
      /workdir/gopath/src/golang.org/x/tools/internal/imports/fix.go:773 +0xb3
  golang.org/x/tools/internal/imports.(*ProcessEnv).buildContext()
      /workdir/gopath/src/golang.org/x/tools/internal/imports/fix.go:847 +0xe4
  golang.org/x/tools/internal/imports.(*gopathResolver).scan()
      /workdir/gopath/src/golang.org/x/tools/internal/imports/fix.go:1272 +0x258
  golang.org/x/tools/internal/imports.getCandidatePkgs()
      /workdir/gopath/src/golang.org/x/tools/internal/imports/fix.go:643 +0xaa6
  golang.org/x/tools/internal/imports.PrimeCache()
      /workdir/gopath/src/golang.org/x/tools/internal/imports/fix.go:667 +0x14a
  golang.org/x/tools/internal/lsp/cache.(*View).refreshProcessEnv()
      /workdir/gopath/src/golang.org/x/tools/internal/lsp/cache/view.go:450 +0x1be
  golang.org/x/tools/internal/lsp/cache.(*View).refreshProcessEnv-fm()
      /workdir/gopath/src/golang.org/x/tools/internal/lsp/cache/view.go:440 +0x44

CC @heschik

Metadata

Metadata

Assignees

No one assigned

    Labels

    FrozenDueToAgeToolsThis label describes issues relating to any tools in the x/tools repository.goplsIssues related to the Go language server, gopls.

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions