Skip to content

Data race in golangci-lint when using gofmt #4136

@hansgylling

Description

@hansgylling

Welcome

Description of the problem

I've found a data race in golangci-lint when using the gofmt linter.

I'm not actually using a binary release, but I was forced to click that checkbox to be able to submit the form. It's a deliberate choice not to use a binary release since I want to show a race condition. I need a build with the race detector enabled, which the binary releases don't have.

I have built gofmt from Go 1.21.3 with the race detector, but didn't manage to trigger a data race that way.

Here's the command I used to build golangci-lint with the race detector enabled:

go install -race -a -trimpath github.com/golangci/golangci-lint/cmd/golangci-lint@master

Version of golangci-lint

Details
$ golangci-lint --version
golangci-lint has version v1.54.3-0.20231017150149-f714c5d842a2 built with go1.21.3 from (unknown, mod sum: "h1:tMI2+8b7Quri3k3YPIDOIuqjZ+VjbWwJTZAJc75Ncx4=") on (unknown)

Configuration

Details
golangci-lint run -v --no-config --disable-all -E gofmt

Go environment

Details
$ go version && go env
go version go1.21.3 linux/amd64
GO111MODULE=''
GOARCH='amd64'
GOBIN='/home/hansg/go/bin'
GOCACHE='/home/hansg/.cache/go-build'
GOENV='/home/hansg/.config/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS=''
GOHOSTARCH='amd64'
GOHOSTOS='linux'
GOINSECURE=''
GOMODCACHE='/home/hansg/go/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='linux'
GOPATH='/home/hansg/go'
GOPRIVATE=''
GOPROXY='https://proxy.golang.org,direct'
GOROOT='/usr/local/go'
GOSUMDB='sum.golang.org'
GOTMPDIR=''
GOTOOLCHAIN='auto'
GOTOOLDIR='/usr/local/go/pkg/tool/linux_amd64'
GOVCS=''
GOVERSION='go1.21.3'
GCCGO='gccgo'
GOAMD64='v1'
AR='ar'
CC='gcc'
CXX='g++'
CGO_ENABLED='1'
GOMOD='/home/hansg/code/opensource/golangci-lint/go.mod'
GOWORK=''
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
PKG_CONFIG='pkg-config'
GOGCCFLAGS='-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build3318089642=/tmp/go-build -gno-record-gcc-switches'

Verbose output of running

Details
$ golangci-lint cache clean
$ golangci-lint run -v --no-config --disable-all -E gofmt
INFO [lintersdb] Active 1 linters: [gofmt]        
INFO [loader] Go packages loading at mode 575 (files|name|types_sizes|compiled_files|deps|exports_file|imports) took 317.666742ms 
INFO [runner/filename_unadjuster] Pre-built 0 adjustments in 41.039904ms 
==================
WARNING: DATA RACE
Write at 0x000003edb210 by goroutine 6213:
  github.com/golangci/gofmt/gofmt.initParserMode()
      github.com/golangci/[email protected]/gofmt/gofmt.go:75 +0x108
  github.com/golangci/gofmt/gofmt.RunRewrite()
      github.com/golangci/[email protected]/gofmt/golangci.go:37 +0xfc
  github.com/golangci/golangci-lint/pkg/golinters.runGofmt()
      github.com/golangci/[email protected]/pkg/golinters/gofmt.go:66 +0x349
  github.com/golangci/golangci-lint/pkg/golinters.NewGofmt.func1.1()
      github.com/golangci/[email protected]/pkg/golinters/gofmt.go:35 +0x66
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyze()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_action.go:195 +0x15a3
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func2()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_action.go:113 +0x2e
  github.com/golangci/golangci-lint/pkg/timeutils.(*Stopwatch).TrackStage()
      github.com/golangci/[email protected]/pkg/timeutils/stopwatch.go:111 +0x56
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_action.go:112 +0x11a
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze.func2()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_loadingpackage.go:80 +0x189
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze.func4()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_loadingpackage.go:81 +0x41

Previous write at 0x000003edb210 by goroutine 6210:
  github.com/golangci/gofmt/gofmt.initParserMode()
      github.com/golangci/[email protected]/gofmt/gofmt.go:75 +0x108
  github.com/golangci/gofmt/gofmt.RunRewrite()
      github.com/golangci/[email protected]/gofmt/golangci.go:37 +0xfc
  github.com/golangci/golangci-lint/pkg/golinters.runGofmt()
      github.com/golangci/[email protected]/pkg/golinters/gofmt.go:66 +0x349
  github.com/golangci/golangci-lint/pkg/golinters.NewGofmt.func1.1()
      github.com/golangci/[email protected]/pkg/golinters/gofmt.go:35 +0x66
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyze()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_action.go:195 +0x15a3
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func2()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_action.go:113 +0x2e
  github.com/golangci/golangci-lint/pkg/timeutils.(*Stopwatch).TrackStage()
      github.com/golangci/[email protected]/pkg/timeutils/stopwatch.go:111 +0x56
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_action.go:112 +0x11a
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze.func2()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_loadingpackage.go:80 +0x189
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze.func4()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_loadingpackage.go:81 +0x41

Goroutine 6213 (running) created at:
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_loadingpackage.go:75 +0x336
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyzeRecursive.func1()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_loadingpackage.go:48 +0x2dc
  sync.(*Once).doSlow()
      sync/once.go:74 +0xf0
  sync.(*Once).Do()
      sync/once.go:65 +0x44
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyzeRecursive()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_loadingpackage.go:37 +0x6f
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*runner).analyze.func2()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner.go:274 +0x64
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*runner).analyze.func3()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner.go:276 +0x41

Goroutine 6210 (running) created at:
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_loadingpackage.go:75 +0x336
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyzeRecursive.func1()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_loadingpackage.go:48 +0x2dc
  sync.(*Once).doSlow()
      sync/once.go:74 +0xf0
  sync.(*Once).Do()
      sync/once.go:65 +0x44
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyzeRecursive()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_loadingpackage.go:37 +0x6f
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*runner).analyze.func2()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner.go:274 +0x64
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*runner).analyze.func3()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner.go:276 +0x41
==================
==================
WARNING: DATA RACE
Write at 0x000003edb210 by goroutine 6210:
  github.com/golangci/gofmt/gofmt.initParserMode()
      github.com/golangci/[email protected]/gofmt/gofmt.go:75 +0x108
  github.com/golangci/gofmt/gofmt.RunRewrite()
      github.com/golangci/[email protected]/gofmt/golangci.go:37 +0xfc
  github.com/golangci/golangci-lint/pkg/golinters.runGofmt()
      github.com/golangci/[email protected]/pkg/golinters/gofmt.go:66 +0x349
  github.com/golangci/golangci-lint/pkg/golinters.NewGofmt.func1.1()
      github.com/golangci/[email protected]/pkg/golinters/gofmt.go:35 +0x66
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyze()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_action.go:195 +0x15a3
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func2()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_action.go:113 +0x2e
  github.com/golangci/golangci-lint/pkg/timeutils.(*Stopwatch).TrackStage()
      github.com/golangci/[email protected]/pkg/timeutils/stopwatch.go:111 +0x56
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_action.go:112 +0x11a
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze.func2()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_loadingpackage.go:80 +0x189
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze.func4()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_loadingpackage.go:81 +0x41

Previous write at 0x000003edb210 by goroutine 6213:
  github.com/golangci/gofmt/gofmt.initParserMode()
      github.com/golangci/[email protected]/gofmt/gofmt.go:82 +0x1e4
  github.com/golangci/gofmt/gofmt.RunRewrite()
      github.com/golangci/[email protected]/gofmt/golangci.go:37 +0xfc
  github.com/golangci/golangci-lint/pkg/golinters.runGofmt()
      github.com/golangci/[email protected]/pkg/golinters/gofmt.go:66 +0x349
  github.com/golangci/golangci-lint/pkg/golinters.NewGofmt.func1.1()
      github.com/golangci/[email protected]/pkg/golinters/gofmt.go:35 +0x66
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyze()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_action.go:195 +0x15a3
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func2()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_action.go:113 +0x2e
  github.com/golangci/golangci-lint/pkg/timeutils.(*Stopwatch).TrackStage()
      github.com/golangci/[email protected]/pkg/timeutils/stopwatch.go:111 +0x56
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_action.go:112 +0x11a
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze.func2()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_loadingpackage.go:80 +0x189
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze.func4()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_loadingpackage.go:81 +0x41

Goroutine 6210 (running) created at:
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_loadingpackage.go:75 +0x336
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyzeRecursive.func1()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_loadingpackage.go:48 +0x2dc
  sync.(*Once).doSlow()
      sync/once.go:74 +0xf0
  sync.(*Once).Do()
      sync/once.go:65 +0x44
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyzeRecursive()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_loadingpackage.go:37 +0x6f
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*runner).analyze.func2()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner.go:274 +0x64
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*runner).analyze.func3()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner.go:276 +0x41

Goroutine 6213 (running) created at:
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_loadingpackage.go:75 +0x336
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyzeRecursive.func1()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_loadingpackage.go:48 +0x2dc
  sync.(*Once).doSlow()
      sync/once.go:74 +0xf0
  sync.(*Once).Do()
      sync/once.go:65 +0x44
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyzeRecursive()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_loadingpackage.go:37 +0x6f
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*runner).analyze.func2()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner.go:274 +0x64
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*runner).analyze.func3()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner.go:276 +0x41
==================
==================
WARNING: DATA RACE
Read at 0x000003edb210 by goroutine 6251:
  github.com/golangci/gofmt/gofmt.initParserMode()
      github.com/golangci/[email protected]/gofmt/gofmt.go:82 +0x1c4
  github.com/golangci/gofmt/gofmt.RunRewrite()
      github.com/golangci/[email protected]/gofmt/golangci.go:37 +0xfc
  github.com/golangci/golangci-lint/pkg/golinters.runGofmt()
      github.com/golangci/[email protected]/pkg/golinters/gofmt.go:66 +0x349
  github.com/golangci/golangci-lint/pkg/golinters.NewGofmt.func1.1()
      github.com/golangci/[email protected]/pkg/golinters/gofmt.go:35 +0x66
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyze()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_action.go:195 +0x15a3
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func2()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_action.go:113 +0x2e
  github.com/golangci/golangci-lint/pkg/timeutils.(*Stopwatch).TrackStage()
      github.com/golangci/[email protected]/pkg/timeutils/stopwatch.go:111 +0x56
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_action.go:112 +0x11a
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze.func2()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_loadingpackage.go:80 +0x189
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze.func4()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_loadingpackage.go:81 +0x41

Previous write at 0x000003edb210 by goroutine 6253:
  github.com/golangci/gofmt/gofmt.initParserMode()
      github.com/golangci/[email protected]/gofmt/gofmt.go:75 +0x108
  github.com/golangci/gofmt/gofmt.RunRewrite()
      github.com/golangci/[email protected]/gofmt/golangci.go:37 +0xfc
  github.com/golangci/golangci-lint/pkg/golinters.runGofmt()
      github.com/golangci/[email protected]/pkg/golinters/gofmt.go:66 +0x349
  github.com/golangci/golangci-lint/pkg/golinters.NewGofmt.func1.1()
      github.com/golangci/[email protected]/pkg/golinters/gofmt.go:35 +0x66
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyze()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_action.go:195 +0x15a3
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func2()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_action.go:113 +0x2e
  github.com/golangci/golangci-lint/pkg/timeutils.(*Stopwatch).TrackStage()
      github.com/golangci/[email protected]/pkg/timeutils/stopwatch.go:111 +0x56
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_action.go:112 +0x11a
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze.func2()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_loadingpackage.go:80 +0x189
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze.func4()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_loadingpackage.go:81 +0x41

Goroutine 6251 (running) created at:
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_loadingpackage.go:75 +0x336
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyzeRecursive.func1()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_loadingpackage.go:48 +0x2dc
  sync.(*Once).doSlow()
      sync/once.go:74 +0xf0
  sync.(*Once).Do()
      sync/once.go:65 +0x44
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyzeRecursive()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_loadingpackage.go:37 +0x6f
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*runner).analyze.func2()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner.go:274 +0x64
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*runner).analyze.func3()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner.go:276 +0x41

Goroutine 6253 (running) created at:
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_loadingpackage.go:75 +0x336
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyzeRecursive.func1()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_loadingpackage.go:48 +0x2dc
  sync.(*Once).doSlow()
      sync/once.go:74 +0xf0
  sync.(*Once).Do()
      sync/once.go:65 +0x44
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyzeRecursive()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner_loadingpackage.go:37 +0x6f
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*runner).analyze.func2()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner.go:274 +0x64
  github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*runner).analyze.func3()
      github.com/golangci/[email protected]/pkg/golinters/goanalysis/runner.go:276 +0x41
==================
INFO [linters_context/goanalysis] analyzers took 2.289689671s with top 10 stages: gofmt: 2.289375545s, typecheck: 314.126µs 
INFO [runner] Processors filtering stat (out/in): max_from_linter: 2/2, severity-rules: 2/2, sort_results: 2/2, autogenerated_exclude: 2/2, nolint: 2/2, exclude-rules: 2/2, uniq_by_line: 2/2, diff: 2/2, max_same_issues: 2/2, path_prefixer: 2/2, skip_files: 2/2, skip_dirs: 2/2, exclude: 2/2, path_shortener: 2/2, filename_unadjuster: 2/2, identifier_marker: 2/2, max_per_file_from_linter: 2/2, source_code: 2/2, fixer: 2/2, cgo: 2/2, path_prettifier: 2/2 
INFO [runner] processing took 2.648154ms with stages: nolint: 1.751053ms, identifier_marker: 265.497µs, exclude-rules: 235.035µs, skip_dirs: 139.65µs, autogenerated_exclude: 125.425µs, source_code: 58.222µs, path_prettifier: 47.024µs, cgo: 4.772µs, max_same_issues: 4.491µs, uniq_by_line: 3.847µs, max_per_file_from_linter: 3.43µs, max_from_linter: 2.044µs, path_shortener: 1.635µs, filename_unadjuster: 1.506µs, severity-rules: 735ns, skip_files: 725ns, diff: 724ns, fixer: 656ns, exclude: 644ns, sort_results: 610ns, path_prefixer: 429ns 
INFO [runner] linters took 1.288156326s with stages: goanalysis_metalinter: 1.285298309s 
internal/renameio/renameio.go:88: File is not `gofmt`-ed with `-s` (gofmt)
//     - syscall.ERROR_ACCESS_DENIED
//     - syscall.ERROR_FILE_NOT_FOUND
//     - internal/syscall/windows.ERROR_SHARING_VIOLATION
internal/renameio/renameio_test.go:4: File is not `gofmt`-ed with `-s` (gofmt)

INFO File cache stats: 2 entries of total size 6.7KiB 
INFO Memory: 18 samples, avg is 105.9MB, max is 160.5MB 
INFO Execution took 1.66161287s                   

A minimal reproducible example or link to a public repository

Details

I'm running the golangci-lint command on the golangci-lint source code. The example is analyzing the same commit as in the version output. The source code analyzed doesn't matter much. The data race has been triggered on almost all (but not every) repo I've tried it on.

Validation

  • Yes, I've included all information above (version, config, etc.).

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingdependenciesRelates to an upstream dependency

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions