-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Closed
Labels
questionFurther information is requestedFurther information is requested
Description
Welcome
- Yes, I'm using a binary release within 2 latest releases. Only such installations are supported.
- Yes, I've searched similar issues on GitHub and didn't find any.
- Yes, I've read the
typechecksection of the FAQ. - Yes, I've tried with the standalone linter if available (e.g., gocritic, go vet, etc.).
- I agree to follow this project's Code of Conduct
Description of the problem
Running golangci-lint run -v --timeout=5m --tests=false --max-issues-per-linter=0 --max-same-issues=0 --disable staticcheck using go1.23.2 on alpine linux fails with
[linters_context/goanalysis] buildir: panic during analysis: Cannot range over: func(yield func(K, V) bool), goroutine 5095 [running]:
runtime/debug.Stack()
/usr/local/go/src/runtime/debug/stack.go:26 +0x5e
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func1()
/go/pkg/mod/github.com/golangci/golangci-lint@v1.52.2/pkg/golinters/goanalysis/runner_action.go:105 +0x5a
...
Version of golangci-lint
$ golangci-lint --version
# Paste output here
golangci-lint has version v1.60.1 built with go1.23.2 from (unknown, modified: ?, mod sum: "h1:DRKNqNTQRLBJZ1il5u4fvgLQCjQc7QFs0DbhksJtVJE=") on (unknown)I have also tried with the latest v1.61.0
Configuration
Go environment
go version go1.23.2 linux/amd64
GO111MODULE=''
GOARCH='amd64'
GOBIN='/mnt/c/builds/.go/bin'
GOCACHE='/home/andrew/.cache/go-build'
GOENV='/home/andrew/.config/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS=''
GOHOSTARCH='amd64'
GOHOSTOS='linux'
GOINSECURE=''
GOMODCACHE='<private info>'
GONOPROXY='<private info>'
GONOSUMDB='<private info>'
GOOS='linux'
GOPATH='/mnt/c/builds/.go'
GOPRIVATE='bitbucket.org/inindca/*'
GOPROXY='<private info>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.23.2'
GODEBUG=''
GOTELEMETRY='local'
GOTELEMETRYDIR='/home/andrew/.config/go/telemetry'
GCCGO='gccgo'
GOAMD64='v1'
AR='ar'
CC='gcc'
CXX='g++'
CGO_ENABLED='1'
GOMOD='<private info>'
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 -ffile-prefix-map=/tmp/go-build3096209031=/tmp/go-build -gno-record-gcc-switches'
Verbose output of running
16:12:59 level=info msg="[config_reader] Config search paths: [./ /var/build/build-purescale-apiconscript/master-1938 /var/build/build-purescale-apiconscript /var/build /var /]"
16:12:59 level=info msg="[lintersdb] Active 6 linters: [errcheck gosimple govet ineffassign typecheck unused]"
16:13:01 level=info msg="[loader] Go packages loading at mode 575 (name|imports|types_sizes|compiled_files|deps|exports_file|files) took 2.467707586s"
16:13:01 level=info msg="[runner/filename_unadjuster] Pre-built 0 adjustments in 61.952196ms"
16:13:07 level=error msg="[linters_context/goanalysis] buildir: panic during analysis: Cannot range over: func(yield func(K, V) bool), goroutine 5079 [running]:\nruntime/debug.Stack()\n\t/usr/local/go/src/runtime/debug/stack.go:26 +0x5e\ngithub.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func1()\n\t/go/pkg/mod/github.com/golangci/golangci-lint@v1.52.2/pkg/golinters/goanalysis/runner_action.go:105 +0x5a\npanic({0xf93c00?, 0xc009805230?})\n\t/usr/local/go/src/runtime/panic.go:785 +0x132\nhonnef.co/go/tools/go/ir.(*builder).rangeStmt(0xc0064ad968, 0xc00c969b80, 0xc00aff6d80, 0x0, {0x13a0c28, 0xc00aff6d80})\n\t/go/pkg/mod/honnef.co/go/tools@v0.4.3/go/ir/builder.go:2181 +0x894\nhonnef.co/go/tools/go/ir.(*builder).stmt(0xc0064ad968, 0xc00c969b80, {0x13a5790?, 0xc00aff6d80?})\n\t/go/pkg/mod/honnef.co/go/tools@v0.4.3/go/ir/builder.go:2394 +0x20a\nhonnef.co/go/tools/go/ir.(*builder).stmtList(...)\n\t/go/pkg/mod/honnef.co/go/tools@v0.4.3/go/ir/builder.go:847\nhonnef.co/go/tools/go/ir.(*builder).stmt(0xc0064ad968, 0xc00c969b80, {0x13a5610?, 0xc0065b8600?})\n\t/go/pkg/mod/honnef.co/go/tools@v0.4.3/go/ir/builder.go:2352 +0x1415\nhonnef.co/go/tools/go/ir.(*builder).buildFunction(0xc0064ad968, 0xc00c969b80)\n\t/go/pkg/mod/honnef.co/go/tools@v0.4.3/go/ir/builder.go:2464 +0x417\nhonnef.co/go/tools/go/ir.(*builder).buildFuncDecl(0xc0064ad968, 0xc00997e510, 0xc0065b8660)\n\t/go/pkg/mod/honnef.co/go/tools@v0.4.3/go/ir/builder.go:2501 +0x189\nhonnef.co/go/tools/go/ir.(*Package).build(0xc00997e510)\n\t/go/pkg/mod/honnef.co/go/tools@v0.4.3/go/ir/builder.go:2605 +0xb46\nsync.(*Once).doSlow(0xc009377ea0?, 0xc00aff7380?)\n\t/usr/local/go/src/sync/once.go:76 +0xb4\nsync.(*Once).Do(...)\n\t/usr/local/go/src/sync/once.go:67\nhonnef.co/go/tools/go/ir.(*Package).Build(...)\n\t/go/pkg/mod/honnef.co/go/tools@v0.4.3/go/ir/builder.go:2523\nhonnef.co/go/tools/internal/passes/buildir.run(0xc005e773b0)\n\t/go/pkg/mod/honnef.co/go/tools@v0.4.3/internal/passes/buildir/buildir.go:86 +0x18b\ngithub.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyze(0xc001259480)\n\t/go/pkg/mod/github.com/golangci/golangci-lint@v1.52.2/pkg/golinters/goanalysis/runner_action.go:195 +0x967\ngithub.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func2()\n\t/go/pkg/mod/github.com/golangci/golangci-lint@v1.52.2/pkg/golinters/goanalysis/runner_action.go:113 +0x17\ngithub.com/golangci/golangci-lint/pkg/timeutils.(*Stopwatch).TrackStage(0xc00023d450, {0x11401e3, 0x7}, 0xc0013e8f48)\n\t/go/pkg/mod/github.com/golangci/golangci-lint@v1.52.2/pkg/timeutils/stopwatch.go:111 +0x44\ngithub.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe(0xc0008a7500?)\n\t/go/pkg/mod/github.com/golangci/golangci-lint@v1.52.2/pkg/golinters/goanalysis/runner_action.go:112 +0x6e\ngithub.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze.func2(0xc001259480)\n\t/go/pkg/mod/github.com/golangci/golangci-lint@v1.52.2/pkg/golinters/goanalysis/runner_loadingpackage.go:80 +0xa5\ncreated by github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze in goroutine 457\n\t/go/pkg/mod/github.com/golangci/golangci-lint@v1.52.2/pkg/golinters/goanalysis/runner_loadingpackage.go:75 +0x1e9\n"
16:13:07 level=error msg="[linters_context/goanalysis] buildir: panic during analysis: Cannot range over: func(yield func(E) bool), goroutine 5064 [running]:\nruntime/debug.Stack()\n\t/usr/local/go/src/runtime/debug/stack.go:26 +0x5e\ngithub.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func1()\n\t/go/pkg/mod/github.com/golangci/golangci-lint@v1.52.2/pkg/golinters/goanalysis/runner_action.go:105 +0x5a\npanic({0xf93c00?, 0xc00a1cd110?})\n\t/usr/local/go/src/runtime/panic.go:785 +0x132\nhonnef.co/go/tools/go/ir.(*builder).rangeStmt(0xc000eeb968, 0xc00d5a7b80, 0xc00ca8e060, 0x0, {0x13a0c28, 0xc00ca8e060})\n\t/go/pkg/mod/honnef.co/go/tools@v0.4.3/go/ir/builder.go:2181 +0x894\nhonnef.co/go/tools/go/ir.(*builder).stmt(0xc000eeb968, 0xc00d5a7b80, {0x13a5790?, 0xc00ca8e060?})\n\t/go/pkg/mod/honnef.co/go/tools@v0.4.3/go/ir/builder.go:2394 +0x20a\nhonnef.co/go/tools/go/ir.(*builder).stmtList(...)\n\t/go/pkg/mod/honnef.co/go/tools@v0.4.3/go/ir/builder.go:847\nhonnef.co/go/tools/go/ir.(*builder).stmt(0xc000eeb968, 0xc00d5a7b80, {0x13a5610?, 0xc00917c4e0?})\n\t/go/pkg/mod/honnef.co/go/tools@v0.4.3/go/ir/builder.go:2352 +0x1415\nhonnef.co/go/tools/go/ir.(*builder).buildFunction(0xc000eeb968, 0xc00d5a7b80)\n\t/go/pkg/mod/honnef.co/go/tools@v0.4.3/go/ir/builder.go:2464 +0x417\nhonnef.co/go/tools/go/ir.(*builder).buildFuncDecl(0xc000eeb968, 0xc00aa97dd0, 0xc00917c510)\n\t/go/pkg/mod/honnef.co/go/tools@v0.4.3/go/ir/builder.go:2501 +0x189\nhonnef.co/go/tools/go/ir.(*Package).build(0xc00aa97dd0)\n\t/go/pkg/mod/honnef.co/go/tools@v0.4.3/go/ir/builder.go:2605 +0xb46\nsync.(*Once).doSlow(0xc00c9a48c0?, 0xc00ca9b320?)\n\t/usr/local/go/src/sync/once.go:76 +0xb4\nsync.(*Once).Do(...)\n\t/usr/local/go/src/sync/once.go:67\nhonnef.co/go/tools/go/ir.(*Package).Build(...)\n\t/go/pkg/mod/honnef.co/go/tools@v0.4.3/go/ir/builder.go:2523\nhonnef.co/go/tools/internal/passes/buildir.run(0xc00a1c0000)\n\t/go/pkg/mod/honnef.co/go/tools@v0.4.3/internal/passes/buildir/buildir.go:86 +0x18b\ngithub.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyze(0xc0012553d0)\n\t/go/pkg/mod/github.com/golangci/golangci-lint@v1.52.2/pkg/golinters/goanalysis/runner_action.go:195 +0x967\ngithub.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func2()\n\t/go/pkg/mod/github.com/golangci/golangci-lint@v1.52.2/pkg/golinters/goanalysis/runner_action.go:113 +0x17\ngithub.com/golangci/golangci-lint/pkg/timeutils.(*Stopwatch).TrackStage(0xc00023d450, {0x11401e3, 0x7}, 0xc00042c748)\n\t/go/pkg/mod/github.com/golangci/golangci-lint@v1.52.2/pkg/timeutils/stopwatch.go:111 +0x44\ngithub.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe(0xc0008dc480?)\n\t/go/pkg/mod/github.com/golangci/golangci-lint@v1.52.2/pkg/golinters/goanalysis/runner_action.go:112 +0x6e\ngithub.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze.func2(0xc0012553d0)\n\t/go/pkg/mod/github.com/golangci/golangci-lint@v1.52.2/pkg/golinters/goanalysis/runner_loadingpackage.go:80 +0xa5\ncreated by github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze in goroutine 142\n\t/go/pkg/mod/github.com/golangci/golangci-lint@v1.52.2/pkg/golinters/goanalysis/runner_loadingpackage.go:75 +0x1e9\n"
16:13:19 level=info msg="[linters_context/goanalysis] analyzers took 10.91121069s with top 10 stages: buildir: 5.767393099s, printf: 1.722034344s, ctrlflow: 1.6379284s, inspect: 1.272151741s, fact_purity: 351.344527ms, S1038: 22.964301ms, S1039: 20.505695ms, bools: 16.094347ms, errorsas: 16.06442ms, S1035: 16.041157ms"
16:13:19 level=error msg="[runner] Panic: buildir: package \"slices\" (isInitialPkg: false, needAnalyzeSource: true): Cannot range over: func(yield func(E) bool): goroutine 5064 [running]:\nruntime/debug.Stack()\n\t/usr/local/go/src/runtime/debug/stack.go:26 +0x5e\ngithub.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func1()\n\t/go/pkg/mod/github.com/golangci/golangci-lint@v1.52.2/pkg/golinters/goanalysis/runner_action.go:109 +0x277\npanic({0xf93c00?, 0xc00a1cd110?})\n\t/usr/local/go/src/runtime/panic.go:785 +0x132\nhonnef.co/go/tools/go/ir.(*builder).rangeStmt(0xc000eeb968, 0xc00d5a7b80, 0xc00ca8e060, 0x0, {0x13a0c28, 0xc00ca8e060})\n\t/go/pkg/mod/honnef.co/go/tools@v0.4.3/go/ir/builder.go:2181 +0x894\nhonnef.co/go/tools/go/ir.(*builder).stmt(0xc000eeb968, 0xc00d5a7b80, {0x13a5790?, 0xc00ca8e060?})\n\t/go/pkg/mod/honnef.co/go/tools@v0.4.3/go/ir/builder.go:2394 +0x20a\nhonnef.co/go/tools/go/ir.(*builder).stmtList(...)\n\t/go/pkg/mod/honnef.co/go/tools@v0.4.3/go/ir/builder.go:847\nhonnef.co/go/tools/go/ir.(*builder).stmt(0xc000eeb968, 0xc00d5a7b80, {0x13a5610?, 0xc00917c4e0?})\n\t/go/pkg/mod/honnef.co/go/tools@v0.4.3/go/ir/builder.go:2352 +0x1415\nhonnef.co/go/tools/go/ir.(*builder).buildFunction(0xc000eeb968, 0xc00d5a7b80)\n\t/go/pkg/mod/honnef.co/go/tools@v0.4.3/go/ir/builder.go:2464 +0x417\nhonnef.co/go/tools/go/ir.(*builder).buildFuncDecl(0xc000eeb968, 0xc00aa97dd0, 0xc00917c510)\n\t/go/pkg/mod/honnef.co/go/tools@v0.4.3/go/ir/builder.go:2501 +0x189\nhonnef.co/go/tools/go/ir.(*Package).build(0xc00aa97dd0)\n\t/go/pkg/mod/honnef.co/go/tools@v0.4.3/go/ir/builder.go:2605 +0xb46\nsync.(*Once).doSlow(0xc00c9a48c0?, 0xc00ca9b320?)\n\t/usr/local/go/src/sync/once.go:76 +0xb4\nsync.(*Once).Do(...)\n\t/usr/local/go/src/sync/once.go:67\nhonnef.co/go/tools/go/ir.(*Package).Build(...)\n\t/go/pkg/mod/honnef.co/go/tools@v0.4.3/go/ir/builder.go:2523\nhonnef.co/go/tools/internal/passes/buildir.run(0xc00a1c0000)\n\t/go/pkg/mod/honnef.co/go/tools@v0.4.3/internal/passes/buildir/buildir.go:86 +0x18b\ngithub.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyze(0xc0012553d0)\n\t/go/pkg/mod/github.com/golangci/golangci-lint@v1.52.2/pkg/golinters/goanalysis/runner_action.go:195 +0x967\ngithub.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func2()\n\t/go/pkg/mod/github.com/golangci/golangci-lint@v1.52.2/pkg/golinters/goanalysis/runner_action.go:113 +0x17\ngithub.com/golangci/golangci-lint/pkg/timeutils.(*Stopwatch).TrackStage(0xc00023d450, {0x11401e3, 0x7}, 0xc00042c748)\n\t/go/pkg/mod/github.com/golangci/golangci-lint@v1.52.2/pkg/timeutils/stopwatch.go:111 +0x44\ngithub.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe(0xc0008dc480?)\n\t/go/pkg/mod/github.com/golangci/golangci-lint@v1.52.2/pkg/golinters/goanalysis/runner_action.go:112 +0x6e\ngithub.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze.func2(0xc0012553d0)\n\t/go/pkg/mod/github.com/golangci/golangci-lint@v1.52.2/pkg/golinters/goanalysis/runner_loadingpackage.go:80 +0xa5\ncreated by github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze in goroutine 142\n\t/go/pkg/mod/github.com/golangci/golangci-lint@v1.52.2/pkg/golinters/goanalysis/runner_loadingpackage.go:75 +0x1e9\n"
16:13:19 level=warning msg="[runner] Can't run linter goanalysis_metalinter: goanalysis_metalinter: buildir: package \"slices\" (isInitialPkg: false, needAnalyzeSource: true): Cannot range over: func(yield func(E) bool)"
16:13:19 level=info msg="[runner] processing took 3.158µs with stages: skip_dirs: 397ns, max_same_issues: 378ns, nolint: 338ns, max_from_linter: 220ns, cgo: 175ns, autogenerated_exclude: 160ns, exclude-rules: 159ns, identifier_marker: 150ns, filename_unadjuster: 149ns, skip_files: 146ns, source_code: 145ns, path_prettifier: 130ns, exclude: 78ns, path_shortener: 77ns, diff: 72ns, sort_results: 70ns, fixer: 68ns, severity-rules: 67ns, max_per_file_from_linter: 62ns, uniq_by_line: 60ns, path_prefixer: 57ns"
16:13:19 level=info msg="[runner] linters took 15.937283496s with stages: goanalysis_metalinter: 15.937235644s"
16:13:19 level=error msg="Running error: 1 error occurred:\n\t* can't run linter goanalysis_metalinter: goanalysis_metalinter: buildir: package \"slices\" (isInitialPkg: false, needAnalyzeSource: true): Cannot range over: func(yield func(E) bool)\n\n"
16:13:19 level=info msg="Memory: 186 samples, avg is 203.1MB, max is 438.6MB"
16:13:19 level=info msg="Execution took 18.483158s"
A minimal reproducible example or link to a public repository
Unfortunately, I can only reproduce this running a docker container using alpine linux on our companies private jenkins servers.
Validation
- Yes, I've included all information above (version, config, etc.).
Supporter
- I am a sponsor/backer through GitHub or OpenCollective
Metadata
Metadata
Assignees
Labels
questionFurther information is requestedFurther information is requested