Skip to content

stack overflow on nilerr linter #6043

@chkp-davidbell

Description

@chkp-davidbell

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 typecheck section 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

How did you install golangci-lint?

Brew

Description of the problem

stack overflow when running golangci-lint

$ golangci-lint run
runtime: goroutine stack exceeds 1000000000-byte limit
runtime: sp=0x14022812390 stack=[0x14022812000, 0x14042812000]
fatal error: stack overflow

Version of golangci-lint

$ golangci-lint --version
golangci-lint has version 2.4.0 built with go1.25.0 from 43d0339 on 2025-08-13T20:45:00Z

Configuration

version: "2"

linters:
  enable:              
    - nilerr                      
 

Go environment

$ go version && go env
go version go1.25.0 darwin/arm64
AR='ar'
CC='cc'
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_ENABLED='1'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
CXX='c++'
GCCGO='gccgo'
GO111MODULE=''
GOARCH='arm64'
GOARM64='v8.0'
GOAUTH='netrc'
GOBIN=''
GOCACHE='/Users/davidbell/Library/Caches/go-build'
GOCACHEPROG=''
GODEBUG=''
GOENV='/Users/davidbell/Library/Application Support/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFIPS140='off'
GOFLAGS=''
GOGCCFLAGS='-fPIC -arch arm64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -ffile-prefix-map=/var/folders/4c/swdrzxhs2mg_jfpfs4p6pnm00000gn/T/go-build3850963633=/tmp/go-build -gno-record-gcc-switches -fno-common'
GOHOSTARCH='arm64'
GOHOSTOS='darwin'
GOINSECURE=''
GOMOD='/Users/davidbell/Documents/golang-lintbug/go.mod'
GOMODCACHE='/Users/davidbell/go/pkg/mod'
GOOS='darwin'
GOPATH='/Users/davidbell/go'
GOPRIVATE=''
GOPROXY='https://proxy.golang.org,direct'
GOROOT='/opt/homebrew/Cellar/go/1.25.0/libexec'
GOSUMDB='sum.golang.org'
GOTELEMETRY='local'
GOTELEMETRYDIR='/Users/davidbell/Library/Application Support/go/telemetry'
GOTMPDIR=''
GOTOOLCHAIN='auto'
GOTOOLDIR='/opt/homebrew/Cellar/go/1.25.0/libexec/pkg/tool/darwin_arm64'
GOVCS=''
GOVERSION='go1.25.0'
GOWORK=''
PKG_CONFIG='pkg-config'```

</details>

### Verbose output of running

<details>

```console
$ golangci-lint cache clean
$ golangci-lint run -v
davidbell@davidbell-mbp golang-lintbug % golangci-lint run -v
INFO golangci-lint has version 2.4.0 built with go1.25.0 from 43d0339 on 2025-08-13T20:45:00Z 
INFO [config_reader] Config search paths: [./ /Users/davidbell/Documents/golang-lintbug /Users/davidbell/Documents /Users/davidbell /Users /] 
INFO [config_reader] Used config file .golangci.yml 
INFO [config_reader] Module name "bug"            
INFO maxprocs: Leaving GOMAXPROCS=11: CPU quota undefined 
INFO [goenv] Read go env for 6.424333ms: map[string]string{"GOCACHE":"/Users/davidbell/Library/Caches/go-build", "GOROOT":"/opt/homebrew/Cellar/go/1.25.0/libexec"} 
INFO [lintersdb] Active 6 linters: [errcheck govet ineffassign nilerr staticcheck unused] 
INFO [loader] Go packages loading at mode 8767 (files|imports|types_sizes|name|compiled_files|deps|exports_file) took 556.866542ms 
INFO [runner/filename_unadjuster] Pre-built 0 adjustments in 2.476833ms 
runtime: goroutine stack exceeds 1000000000-byte limit
runtime: sp=0x1402d4de390 stack=[0x1402d4de000, 0x1404d4de000]
fatal error: stack overflow

runtime stack:
runtime.throw({0x1054d48de?, 0x104655080?})
        runtime/panic.go:1094 +0x34 fp=0x16cff2dd0 sp=0x16cff2da0 pc=0x10469eb34
runtime.newstack()
        runtime/stack.go:1159 +0x44c fp=0x16cff2f00 sp=0x16cff2dd0 pc=0x1046834ac
runtime.morestack()
        runtime/asm_arm64.s:392 +0x70 fp=0x16cff2f00 sp=0x16cff2f00 pc=0x1046a52f0

goroutine 879 gp=0x14004374540 m=4 mp=0x1400008f808 [running]:
runtime.newobject(0x105ad2c00?)
        runtime/malloc.go:1746 +0x44 fp=0x1402d4de390 sp=0x1402d4de390 pc=0x10463b444
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85c20?, 0x14004731880?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:83 +0x154 fp=0x1402d4de470 sp=0x1402d4de390 pc=0x105072ad4
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4de550 sp=0x1402d4de470 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4de630 sp=0x1402d4de550 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4de710 sp=0x1402d4de630 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4de7f0 sp=0x1402d4de710 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4de8d0 sp=0x1402d4de7f0 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4de9b0 sp=0x1402d4de8d0 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4dea90 sp=0x1402d4de9b0 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4deb70 sp=0x1402d4dea90 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4dec50 sp=0x1402d4deb70 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4ded30 sp=0x1402d4dec50 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4dee10 sp=0x1402d4ded30 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4deef0 sp=0x1402d4dee10 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4defd0 sp=0x1402d4deef0 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4df0b0 sp=0x1402d4defd0 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4df190 sp=0x1402d4df0b0 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4df270 sp=0x1402d4df190 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4df350 sp=0x1402d4df270 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4df430 sp=0x1402d4df350 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4df510 sp=0x1402d4df430 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4df5f0 sp=0x1402d4df510 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4df6d0 sp=0x1402d4df5f0 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4df7b0 sp=0x1402d4df6d0 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4df890 sp=0x1402d4df7b0 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4df970 sp=0x1402d4df890 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4dfa50 sp=0x1402d4df970 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4dfb30 sp=0x1402d4dfa50 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4dfc10 sp=0x1402d4dfb30 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4dfcf0 sp=0x1402d4dfc10 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4dfdd0 sp=0x1402d4dfcf0 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4dfeb0 sp=0x1402d4dfdd0 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4dff90 sp=0x1402d4dfeb0 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4e0070 sp=0x1402d4dff90 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4e0150 sp=0x1402d4e0070 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4e0230 sp=0x1402d4e0150 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4e0310 sp=0x1402d4e0230 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4e03f0 sp=0x1402d4e0310 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4e04d0 sp=0x1402d4e03f0 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4e05b0 sp=0x1402d4e04d0 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4e0690 sp=0x1402d4e05b0 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4e0770 sp=0x1402d4e0690 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4e0850 sp=0x1402d4e0770 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4e0930 sp=0x1402d4e0850 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4e0a10 sp=0x1402d4e0930 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4e0af0 sp=0x1402d4e0a10 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4e0bd0 sp=0x1402d4e0af0 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4e0cb0 sp=0x1402d4e0bd0 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4e0d90 sp=0x1402d4e0cb0 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1402d4e0e70 sp=0x1402d4e0d90 pc=0x105072b54
...2396645 frames elided...
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4db7b0 sp=0x1404d4db6d0 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4db890 sp=0x1404d4db7b0 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4db970 sp=0x1404d4db890 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4dba50 sp=0x1404d4db970 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4dbb30 sp=0x1404d4dba50 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4dbc10 sp=0x1404d4dbb30 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4dbcf0 sp=0x1404d4dbc10 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4dbdd0 sp=0x1404d4dbcf0 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4dbeb0 sp=0x1404d4dbdd0 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4dbf90 sp=0x1404d4dbeb0 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4dc070 sp=0x1404d4dbf90 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4dc150 sp=0x1404d4dc070 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4dc230 sp=0x1404d4dc150 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4dc310 sp=0x1404d4dc230 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4dc3f0 sp=0x1404d4dc310 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4dc4d0 sp=0x1404d4dc3f0 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4dc5b0 sp=0x1404d4dc4d0 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4dc690 sp=0x1404d4dc5b0 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4dc770 sp=0x1404d4dc690 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4dc850 sp=0x1404d4dc770 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4dc930 sp=0x1404d4dc850 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4dca10 sp=0x1404d4dc930 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4dcaf0 sp=0x1404d4dca10 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4dcbd0 sp=0x1404d4dcaf0 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4dccb0 sp=0x1404d4dcbd0 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4dcd90 sp=0x1404d4dccb0 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4dce70 sp=0x1404d4dcd90 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4dcf50 sp=0x1404d4dce70 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4dd030 sp=0x1404d4dcf50 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4dd110 sp=0x1404d4dd030 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4dd1f0 sp=0x1404d4dd110 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4dd2d0 sp=0x1404d4dd1f0 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4dd3b0 sp=0x1404d4dd2d0 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4dd490 sp=0x1404d4dd3b0 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4dd570 sp=0x1404d4dd490 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4dd650 sp=0x1404d4dd570 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4dd730 sp=0x1404d4dd650 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4dd810 sp=0x1404d4dd730 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2af0?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4dd8f0 sp=0x1404d4dd810 pc=0x105072b54
github.com/gostaticanalysis/nilerr.getValueLineNumbers(0x14001f177a0, {0x105d85a28?, 0x140039b2b60?})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:72 +0x1d4 fp=0x1404d4dd9d0 sp=0x1404d4dd8f0 pc=0x105072b54
github.com/gostaticanalysis/nilerr.run.func1({0x105d85a28, 0x140039b2b60}, 0x140039b2b60?, {0x105546e44, 0x28})
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:34 +0x70 fp=0x1404d4dda70 sp=0x1404d4dd9d0 pc=0x105072860
github.com/gostaticanalysis/nilerr.run(0x14001f177a0)
        github.com/gostaticanalysis/nilerr@v0.1.1/nilerr.go:51 +0x1b4 fp=0x1404d4ddb50 sp=0x1404d4dda70 pc=0x105072674
github.com/golangci/golangci-lint/v2/pkg/goanalysis.(*action).analyze.func3(...)
        github.com/golangci/golangci-lint/v2/pkg/goanalysis/runner_checker.go:182
github.com/golangci/golangci-lint/v2/pkg/goanalysis.(*action).analyze(0x14002628180)
        github.com/golangci/golangci-lint/v2/pkg/goanalysis/runner_checker.go:208 +0x978 fp=0x1404d4dde40 sp=0x1404d4ddb50 pc=0x104d03328
github.com/golangci/golangci-lint/v2/pkg/goanalysis.(*action).analyze-fm()
        <autogenerated>:1 +0x28 fp=0x1404d4dde60 sp=0x1404d4dde40 pc=0x104d0bbb8
github.com/golangci/golangci-lint/v2/pkg/timeutils.(*Stopwatch).TrackStage(0x140019aaff0, {0x105458854, 0x6}, 0x1400458f700)
        github.com/golangci/golangci-lint/v2/pkg/timeutils/stopwatch.go:111 +0x44 fp=0x1404d4ddec0 sp=0x1404d4dde60 pc=0x104b31974
github.com/golangci/golangci-lint/v2/pkg/goanalysis.(*action).analyzeSafe(0x14002628180?)
        github.com/golangci/golangci-lint/v2/pkg/goanalysis/runner_action.go:59 +0x64 fp=0x1404d4ddf20 sp=0x1404d4ddec0 pc=0x104d01c84
github.com/golangci/golangci-lint/v2/pkg/goanalysis.(*loadingPackage).analyze.func2()
        github.com/golangci/golangci-lint/v2/pkg/goanalysis/runner_loadingpackage.go:106 +0x6c fp=0x1404d4ddf60 sp=0x1404d4ddf20 pc=0x104d05b4c
golang.org/x/sync/errgroup.(*Group).Go.func1()
        golang.org/x/sync@v0.16.0/errgroup/errgroup.go:93 +0x4c fp=0x1404d4ddfd0 sp=0x1404d4ddf60 pc=0x104961fdc
runtime.goexit({})
        runtime/asm_arm64.s:1268 +0x4 fp=0x1404d4ddfd0 sp=0x1404d4ddfd0 pc=0x1046a76b4
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 149
        golang.org/x/sync@v0.16.0/errgroup/errgroup.go:78 +0x90

goroutine 1 gp=0x140000021c0 m=nil [sync.WaitGroup.Wait]:
runtime.gopark(0x106aa8840?, 0x14000bb7300?, 0x20?, 0xf9?, 0x10463b42c?)
        runtime/proc.go:460 +0xc0 fp=0x14000056c30 sp=0x14000056c10 pc=0x10469f350
runtime.goparkunlock(...)
        runtime/proc.go:466
runtime.semacquire1(0x140006c7218, 0x0, 0x1, 0x0, 0x19)
        runtime/sema.go:192 +0x204 fp=0x14000056c80 sp=0x14000056c30 pc=0x10467dbb4
sync.runtime_SemacquireWaitGroup(0x14000056ce8?, 0xcc?)
        runtime/sema.go:114 +0x38 fp=0x14000056cc0 sp=0x14000056c80 pc=0x1046a0ab8
sync.(*WaitGroup).Wait(0x140006c7210)
        sync/waitgroup.go:206 +0xa8 fp=0x14000056cf0 sp=0x14000056cc0 pc=0x1046c5158
github.com/golangci/golangci-lint/v2/pkg/goanalysis.(*runner).analyze(0x140019ab040, {0x140000573b8?, 0x9a?, 0x6?}, {0x140017ff208?, 0x140017ff208?, 0x14000771208?})
        github.com/golangci/golangci-lint/v2/pkg/goanalysis/runner.go:283 +0x4cc fp=0x140000570a0 sp=0x14000056cf0 pc=0x104d00fbc
github.com/golangci/golangci-lint/v2/pkg/goanalysis.(*runner).run(0x140019ab040, {0x140017ff208, 0xbf, 0xbf}, {0x140000573b8, 0x1, 0x4})
        github.com/golangci/golangci-lint/v2/pkg/goanalysis/runner.go:85 +0xf4 fp=0x140000570f0 sp=0x140000570a0 pc=0x104cffe14
github.com/golangci/golangci-lint/v2/pkg/goanalysis.runAnalyzers({0x105d850d0, 0x14000319e60}, 0x140004362a0)
        github.com/golangci/golangci-lint/v2/pkg/goanalysis/runners.go:50 +0x408 fp=0x140000573f0 sp=0x140000570f0 pc=0x104d085b8
github.com/golangci/golangci-lint/v2/pkg/goanalysis.MetaLinter.Run({{0x140005381c0, 0x7, 0x8}, 0x1400003c3f0}, {0x14000057508?, 0x1053e81a0?}, 0x140004362a0)
        github.com/golangci/golangci-lint/v2/pkg/goanalysis/metalinter.go:31 +0x108 fp=0x14000057480 sp=0x140000573f0 pc=0x104cff518
github.com/golangci/golangci-lint/v2/pkg/goanalysis.(*MetaLinter).Run(0x140007987b0?, {0x105d7dc20?, 0x140019aa140?}, 0x14000798d20?)
        <autogenerated>:1 +0x54 fp=0x140000574d0 sp=0x14000057480 pc=0x104d0ae34
github.com/golangci/golangci-lint/v2/pkg/lint.(*Runner).runLinterSafe(0x140000575b8?, {0x105d7dc20?, 0x140019aa140?}, 0x140004362a0, 0x1400095c230)
        github.com/golangci/golangci-lint/v2/pkg/lint/runner.go:164 +0x70 fp=0x14000057580 sp=0x140000574d0 pc=0x1053e5ef0
github.com/golangci/golangci-lint/v2/pkg/lint.(*Runner).Run.func1()
        github.com/golangci/golangci-lint/v2/pkg/lint/runner.go:132 +0x28 fp=0x140000575c0 sp=0x14000057580 pc=0x1053e5e08
github.com/golangci/golangci-lint/v2/pkg/timeutils.TrackStage[...].func1()
        github.com/golangci/golangci-lint/v2/pkg/timeutils/stopwatch.go:134 +0x34 fp=0x140000575e0 sp=0x140000575c0 pc=0x105387754
github.com/golangci/golangci-lint/v2/pkg/timeutils.(*Stopwatch).TrackStage(0x140019aafa0, {0x105505440, 0x15}, 0x14000057690)
        github.com/golangci/golangci-lint/v2/pkg/timeutils/stopwatch.go:111 +0x44 fp=0x14000057640 sp=0x140000575e0 pc=0x104b31974
github.com/golangci/golangci-lint/v2/pkg/timeutils.TrackStage[...](0x0?, {0x105505440?, 0x2?}, 0x2?)
        github.com/golangci/golangci-lint/v2/pkg/timeutils/stopwatch.go:133 +0x58 fp=0x140000576c0 sp=0x14000057640 pc=0x1053876d8
github.com/golangci/golangci-lint/v2/pkg/lint.(*Runner).Run(0x140007af6e0, {0x105d7dc20, 0x140019aa140}, {0x14001186490, 0x1, 0x140006250e0?})
        github.com/golangci/golangci-lint/v2/pkg/lint/runner.go:131 +0x1c8 fp=0x140000578a0 sp=0x140000576c0 pc=0x1053e5918
github.com/golangci/golangci-lint/v2/pkg/commands.(*runCommand).runAnalysis(0x14001114d80, {0x105d7dc20, 0x140019aa140})
        github.com/golangci/golangci-lint/v2/pkg/commands/run.go:396 +0x160 fp=0x14000057920 sp=0x140000578a0 pc=0x1053fd270
github.com/golangci/golangci-lint/v2/pkg/commands.(*runCommand).runAndPrint(0x14001114d80, {0x105d7dc20, 0x140019aa140})
        github.com/golangci/golangci-lint/v2/pkg/commands/run.go:353 +0x1ac fp=0x14000057a20 sp=0x14000057920 pc=0x1053fce1c
github.com/golangci/golangci-lint/v2/pkg/commands.(*runCommand).execute(0x14001114d80, 0x338947130c2b92f5?, {0x14000057a20?, 0x0?, 0x0?})
        github.com/golangci/golangci-lint/v2/pkg/commands/run.go:259 +0x178 fp=0x14000057ae0 sp=0x14000057a20 pc=0x1053fc628
github.com/golangci/golangci-lint/v2/pkg/commands.(*runCommand).execute-fm(0x140004f8800?, {0x1400118c450?, 0x4?, 0x1054545d9?})
        <autogenerated>:1 +0x40 fp=0x14000057b20 sp=0x14000057ae0 pc=0x1054017c0
github.com/spf13/cobra.(*Command).execute(0x1400111c908, {0x1400118c440, 0x1, 0x1})
        github.com/spf13/cobra@v1.9.1/command.go:1019 +0x7bc fp=0x14000057cd0 sp=0x14000057b20 pc=0x104837e9c
github.com/spf13/cobra.(*Command).ExecuteC(0x1400111c008)
        github.com/spf13/cobra@v1.9.1/command.go:1148 +0x350 fp=0x14000057dc0 sp=0x14000057cd0 pc=0x1048386b0
github.com/spf13/cobra.(*Command).Execute(...)
        github.com/spf13/cobra@v1.9.1/command.go:1071
github.com/golangci/golangci-lint/v2/pkg/commands.(*rootCommand).Execute(0x1400111a960)
        github.com/golangci/golangci-lint/v2/pkg/commands/root.go:86 +0x40 fp=0x14000057de0 sp=0x14000057dc0 pc=0x1053faa20
github.com/golangci/golangci-lint/v2/pkg/commands.Execute({{0x1059a33c8, 0x8}, {0x1059a087c, 0x5}, {0x1059a1050, 0x7}, {0x1059a34b0, 0x14}, 0x0})
        github.com/golangci/golangci-lint/v2/pkg/commands/root.go:17 +0x40 fp=0x14000057e40 sp=0x14000057de0 pc=0x1053fa400
main.main()
        github.com/golangci/golangci-lint/v2/cmd/golangci-lint/main.go:27 +0x78 fp=0x14000057f40 sp=0x14000057e40 pc=0x105403b38
runtime.main()
        runtime/proc.go:285 +0x278 fp=0x14000057fd0 sp=0x14000057f40 pc=0x104668be8
runtime.goexit({})
        runtime/asm_arm64.s:1268 +0x4 fp=0x14000057fd0 sp=0x14000057fd0 pc=0x1046a76b4

goroutine 2 gp=0x14000002c40 m=nil [force gc (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
        runtime/proc.go:460 +0xc0 fp=0x14000088f90 sp=0x14000088f70 pc=0x10469f350
runtime.goparkunlock(...)
        runtime/proc.go:466
runtime.forcegchelper()
        runtime/proc.go:373 +0xb4 fp=0x14000088fd0 sp=0x14000088f90 pc=0x104668f34
runtime.goexit({})
        runtime/asm_arm64.s:1268 +0x4 fp=0x14000088fd0 sp=0x14000088fd0 pc=0x1046a76b4
created by runtime.init.7 in goroutine 1
        runtime/proc.go:361 +0x24

goroutine 3 gp=0x14000003500 m=nil [GC sweep wait]:
runtime.gopark(0x1?, 0x0?, 0x0?, 0x0?, 0x0?)
        runtime/proc.go:460 +0xc0 fp=0x14000089760 sp=0x14000089740 pc=0x10469f350
runtime.goparkunlock(...)
        runtime/proc.go:466
runtime.bgsweep(0x14000050080)
        runtime/mgcsweep.go:323 +0x104 fp=0x140000897b0 sp=0x14000089760 pc=0x104650b44
runtime.gcenable.gowrap1()
        runtime/mgc.go:212 +0x28 fp=0x140000897d0 sp=0x140000897b0 pc=0x104644468
runtime.goexit({})
        runtime/asm_arm64.s:1268 +0x4 fp=0x140000897d0 sp=0x140000897d0 pc=0x1046a76b4
created by runtime.gcenable in goroutine 1
        runtime/mgc.go:212 +0x6c

goroutine 4 gp=0x140000036c0 m=nil [GC scavenge wait]:
runtime.gopark(0x10000?, 0x7017fb7b?, 0x0?, 0x0?, 0x0?)
        runtime/proc.go:460 +0xc0 fp=0x14000089f60 sp=0x14000089f40 pc=0x10469f350
runtime.goparkunlock(...)
        runtime/proc.go:466
runtime.(*scavengerState).park(0x106a965c0)
        runtime/mgcscavenge.go:425 +0x5c fp=0x14000089f90 sp=0x14000089f60 pc=0x10464e52c
runtime.bgscavenge(0x14000050080)
        runtime/mgcscavenge.go:658 +0xac fp=0x14000089fb0 sp=0x14000089f90 pc=0x10464eaec
runtime.gcenable.gowrap2()
        runtime/mgc.go:213 +0x28 fp=0x14000089fd0 sp=0x14000089fb0 pc=0x104644408
runtime.goexit({})
        runtime/asm_arm64.s:1268 +0x4 fp=0x14000089fd0 sp=0x14000089fd0 pc=0x1046a76b4
created by runtime.gcenable in goroutine 1
        runtime/mgc.go:213 +0xac

goroutine 18 gp=0x14000102700 m=nil [finalizer wait]:
runtime.gopark(0x140000885c8?, 0x10467a848?, 0xc8?, 0x85?, 0x12d90dfe8?)
        runtime/proc.go:460 +0xc0 fp=0x14000088580 sp=0x14000088560 pc=0x10469f350
runtime.runFinalizers()
        runtime/mfinal.go:210 +0x104 fp=0x140000887d0 sp=0x14000088580 pc=0x104643454
runtime.goexit({})
        runtime/asm_arm64.s:1268 +0x4 fp=0x140000887d0 sp=0x140000887d0 pc=0x1046a76b4
created by runtime.createfing in goroutine 1
        runtime/mfinal.go:172 +0x78

goroutine 19 gp=0x14000102c40 m=nil [GC worker (idle)]:
runtime.gopark(0x4f453eb90fff?, 0x1?, 0xf2?, 0x7e?, 0x0?)
        runtime/proc.go:460 +0xc0 fp=0x1400278ff10 sp=0x1400278fef0 pc=0x10469f350
runtime.gcBgMarkWorker(0x140001100e0)
        runtime/mgc.go:1463 +0xe0 fp=0x1400278ffb0 sp=0x1400278ff10 pc=0x104646ae0
runtime.gcBgMarkStartWorkers.gowrap1()
        runtime/mgc.go:1373 +0x28 fp=0x1400278ffd0 sp=0x1400278ffb0 pc=0x1046469c8
runtime.goexit({})
        runtime/asm_arm64.s:1268 +0x4 fp=0x1400278ffd0 sp=0x1400278ffd0 pc=0x1046a76b4
created by runtime.gcBgMarkStartWorkers in goroutine 1
        runtime/mgc.go:1373 +0x140

goroutine 5 gp=0x14000003880 m=nil [GC worker (idle)]:
runtime.gopark(0x4f454147867a?, 0x3?, 0x36?, 0xdd?, 0x0?)
        runtime/proc.go:460 +0xc0 fp=0x14002682f10 sp=0x14002682ef0 pc=0x10469f350
runtime.gcBgMarkWorker(0x140001100e0)
        runtime/mgc.go:1463 +0xe0 fp=0x14002682fb0 sp=0x14002682f10 pc=0x104646ae0
runtime.gcBgMarkStartWorkers.gowrap1()
        runtime/mgc.go:1373 +0x28 fp=0x14002682fd0 sp=0x14002682fb0 pc=0x1046469c8
runtime.goexit({})
        runtime/asm_arm64.s:1268 +0x4 fp=0x14002682fd0 sp=0x14002682fd0 pc=0x1046a76b4
created by runtime.gcBgMarkStartWorkers in goroutine 1
        runtime/mgc.go:1373 +0x140

goroutine 34 gp=0x140004e4000 m=nil [GC worker (idle)]:
runtime.gopark(0x4f453eb90088?, 0x1?, 0x41?, 0x8f?, 0x0?)
        runtime/proc.go:460 +0xc0 fp=0x1400278bf10 sp=0x1400278bef0 pc=0x10469f350
runtime.gcBgMarkWorker(0x140001100e0)
        runtime/mgc.go:1463 +0xe0 fp=0x1400278bfb0 sp=0x1400278bf10 pc=0x104646ae0
runtime.gcBgMarkStartWorkers.gowrap1()
        runtime/mgc.go:1373 +0x28 fp=0x1400278bfd0 sp=0x1400278bfb0 pc=0x1046469c8
runtime.goexit({})
        runtime/asm_arm64.s:1268 +0x4 fp=0x1400278bfd0 sp=0x1400278bfd0 pc=0x1046a76b4
created by runtime.gcBgMarkStartWorkers in goroutine 1
        runtime/mgc.go:1373 +0x140

goroutine 20 gp=0x14000102e00 m=nil [GC worker (idle)]:
runtime.gopark(0x4f453eb901ac?, 0x3?, 0x56?, 0xd4?, 0x0?)
        runtime/proc.go:460 +0xc0 fp=0x14002681f10 sp=0x14002681ef0 pc=0x10469f350
runtime.gcBgMarkWorker(0x140001100e0)
        runtime/mgc.go:1463 +0xe0 fp=0x14002681fb0 sp=0x14002681f10 pc=0x104646ae0
runtime.gcBgMarkStartWorkers.gowrap1()
        runtime/mgc.go:1373 +0x28 fp=0x14002681fd0 sp=0x14002681fb0 pc=0x1046469c8
runtime.goexit({})
        runtime/asm_arm64.s:1268 +0x4 fp=0x14002681fd0 sp=0x14002681fd0 pc=0x1046a76b4
created by runtime.gcBgMarkStartWorkers in goroutine 1
        runtime/mgc.go:1373 +0x140

goroutine 35 gp=0x140004e41c0 m=nil [GC worker (idle)]:
runtime.gopark(0x4f453eb91246?, 0x3?, 0xe6?, 0xd3?, 0x0?)
        runtime/proc.go:460 +0xc0 fp=0x140004eaf10 sp=0x140004eaef0 pc=0x10469f350
runtime.gcBgMarkWorker(0x140001100e0)
        runtime/mgc.go:1463 +0xe0 fp=0x140004eafb0 sp=0x140004eaf10 pc=0x104646ae0
runtime.gcBgMarkStartWorkers.gowrap1()
        runtime/mgc.go:1373 +0x28 fp=0x140004eafd0 sp=0x140004eafb0 pc=0x1046469c8
runtime.goexit({})
        runtime/asm_arm64.s:1268 +0x4 fp=0x140004eafd0 sp=0x140004eafd0 pc=0x1046a76b4
created by runtime.gcBgMarkStartWorkers in goroutine 1
        runtime/mgc.go:1373 +0x140

goroutine 6 gp=0x14000003a40 m=nil [GC worker (idle)]:
runtime.gopark(0x4f453eb911c9?, 0x1?, 0x3a?, 0xd?, 0x0?)
        runtime/proc.go:460 +0xc0 fp=0x14002684f10 sp=0x14002684ef0 pc=0x10469f350
runtime.gcBgMarkWorker(0x140001100e0)
        runtime/mgc.go:1463 +0xe0 fp=0x14002684fb0 sp=0x14002684f10 pc=0x104646ae0
runtime.gcBgMarkStartWorkers.gowrap1()
        runtime/mgc.go:1373 +0x28 fp=0x14002684fd0 sp=0x14002684fb0 pc=0x1046469c8
runtime.goexit({})
        runtime/asm_arm64.s:1268 +0x4 fp=0x14002684fd0 sp=0x14002684fd0 pc=0x1046a76b4
created by runtime.gcBgMarkStartWorkers in goroutine 1
        runtime/mgc.go:1373 +0x140

goroutine 36 gp=0x140004e4380 m=nil [GC worker (idle)]:
runtime.gopark(0x4f454147811b?, 0x1?, 0x48?, 0xf0?, 0x0?)
        runtime/proc.go:460 +0xc0 fp=0x1400009af10 sp=0x1400009aef0 pc=0x10469f350
runtime.gcBgMarkWorker(0x140001100e0)
        runtime/mgc.go:1463 +0xe0 fp=0x1400009afb0 sp=0x1400009af10 pc=0x104646ae0
runtime.gcBgMarkStartWorkers.gowrap1()
        runtime/mgc.go:1373 +0x28 fp=0x1400009afd0 sp=0x1400009afb0 pc=0x1046469c8
runtime.goexit({})
        runtime/asm_arm64.s:1268 +0x4 fp=0x1400009afd0 sp=0x1400009afd0 pc=0x1046a76b4
created by runtime.gcBgMarkStartWorkers in goroutine 1
        runtime/mgc.go:1373 +0x140

goroutine 21 gp=0x14000102fc0 m=nil [GC worker (idle)]:
runtime.gopark(0x4f453eb9136a?, 0x3?, 0x6?, 0x75?, 0x0?)
        runtime/proc.go:460 +0xc0 fp=0x14000597f10 sp=0x14000597ef0 pc=0x10469f350
runtime.gcBgMarkWorker(0x140001100e0)
        runtime/mgc.go:1463 +0xe0 fp=0x14000597fb0 sp=0x14000597f10 pc=0x104646ae0
runtime.gcBgMarkStartWorkers.gowrap1()
        runtime/mgc.go:1373 +0x28 fp=0x14000597fd0 sp=0x14000597fb0 pc=0x1046469c8
runtime.goexit({})
        runtime/asm_arm64.s:1268 +0x4 fp=0x14000597fd0 sp=0x14000597fd0 pc=0x1046a76b4
created by runtime.gcBgMarkStartWorkers in goroutine 1
        runtime/mgc.go:1373 +0x140

goroutine 7 gp=0x14000003c00 m=nil [GC worker (idle)]:
runtime.gopark(0x106acd200?, 0x1?, 0x22?, 0x56?, 0x0?)
        runtime/proc.go:460 +0xc0 fp=0x14000099f10 sp=0x14000099ef0 pc=0x10469f350
runtime.gcBgMarkWorker(0x140001100e0)
        runtime/mgc.go:1463 +0xe0 fp=0x14000099fb0 sp=0x14000099f10 pc=0x104646ae0
runtime.gcBgMarkStartWorkers.gowrap1()
        runtime/mgc.go:1373 +0x28 fp=0x14000099fd0 sp=0x14000099fb0 pc=0x1046469c8
runtime.goexit({})
        runtime/asm_arm64.s:1268 +0x4 fp=0x14000099fd0 sp=0x14000099fd0 pc=0x1046a76b4
created by runtime.gcBgMarkStartWorkers in goroutine 1
        runtime/mgc.go:1373 +0x140

goroutine 37 gp=0x140004e4540 m=nil [GC worker (idle)]:
runtime.gopark(0x4f453eb910f9?, 0x3?, 0x78?, 0x98?, 0x0?)
        runtime/proc.go:460 +0xc0 fp=0x1400009bf10 sp=0x1400009bef0 pc=0x10469f350
runtime.gcBgMarkWorker(0x140001100e0)
        runtime/mgc.go:1463 +0xe0 fp=0x1400009bfb0 sp=0x1400009bf10 pc=0x104646ae0
runtime.gcBgMarkStartWorkers.gowrap1()
        runtime/mgc.go:1373 +0x28 fp=0x1400009bfd0 sp=0x1400009bfb0 pc=0x1046469c8
runtime.goexit({})
        runtime/asm_arm64.s:1268 +0x4 fp=0x1400009bfd0 sp=0x1400009bfd0 pc=0x1046a76b4
created by runtime.gcBgMarkStartWorkers in goroutine 1
        runtime/mgc.go:1373 +0x140

goroutine 22 gp=0x14000103180 m=nil [GC worker (idle)]:
runtime.gopark(0x4f4541408fec?, 0x1?, 0x7d?, 0x7d?, 0x0?)
        runtime/proc.go:460 +0xc0 fp=0x14000592f10 sp=0x14000592ef0 pc=0x10469f350
runtime.gcBgMarkWorker(0x140001100e0)
        runtime/mgc.go:1463 +0xe0 fp=0x14000592fb0 sp=0x14000592f10 pc=0x104646ae0
runtime.gcBgMarkStartWorkers.gowrap1()
        runtime/mgc.go:1373 +0x28 fp=0x14000592fd0 sp=0x14000592fb0 pc=0x1046469c8
runtime.goexit({})
        runtime/asm_arm64.s:1268 +0x4 fp=0x14000592fd0 sp=0x14000592fd0 pc=0x1046a76b4
created by runtime.gcBgMarkStartWorkers in goroutine 1
        runtime/mgc.go:1373 +0x140

goroutine 108 gp=0x14000583500 m=nil [cleanup wait]:
runtime.gopark(0x14000087fa8?, 0x105270374?, 0x1?, 0x0?, 0x0?)
        runtime/proc.go:460 +0xc0 fp=0x14000087f40 sp=0x14000087f20 pc=0x10469f350
runtime.goparkunlock(...)
        runtime/proc.go:466
runtime.(*cleanupQueue).dequeue(0x106a97660)
        runtime/mcleanup.go:439 +0x110 fp=0x14000087f80 sp=0x14000087f40 pc=0x1046400d0
runtime.runCleanups()
        runtime/mcleanup.go:635 +0x40 fp=0x14000087fd0 sp=0x14000087f80 pc=0x1046408e0
runtime.goexit({})
        runtime/asm_arm64.s:1268 +0x4 fp=0x14000087fd0 sp=0x14000087fd0 pc=0x1046a76b4
created by runtime.(*cleanupQueue).createGs in goroutine 1
        runtime/mcleanup.go:589 +0x108

goroutine 132 gp=0x14000583dc0 m=nil [select]:
runtime.gopark(0x14001c8df10?, 0x2?, 0x0?, 0x20?, 0x14001c8de9c?)
        runtime/proc.go:460 +0xc0 fp=0x14001c8dd10 sp=0x14001c8dcf0 pc=0x10469f350
runtime.selectgo(0x14001c8df10, 0x14001c8de98, 0x1400008b708?, 0x0, 0x106acd201?, 0x1)
        runtime/select.go:351 +0x670 fp=0x14001c8de50 sp=0x14001c8dd10 pc=0x10467cc80
github.com/golangci/golangci-lint/v2/pkg/commands.watchResources({0x105d7dc20, 0x140019aa140}, 0x14000110150, {0x105d87430, 0x1400111b170}, 0x105d5b0c0)
        github.com/golangci/golangci-lint/v2/pkg/commands/run.go:569 +0x178 fp=0x14001c8df90 sp=0x14001c8de50 pc=0x1053fe158
github.com/golangci/golangci-lint/v2/pkg/commands.(*runCommand).execute.gowrap1()
        github.com/golangci/golangci-lint/v2/pkg/commands/run.go:256 +0x30 fp=0x14001c8dfd0 sp=0x14001c8df90 pc=0x1053fc7b0
runtime.goexit({})
        runtime/asm_arm64.s:1268 +0x4 fp=0x14001c8dfd0 sp=0x14001c8dfd0 pc=0x1046a76b4
created by github.com/golangci/golangci-lint/v2/pkg/commands.(*runCommand).execute in goroutine 1
        github.com/golangci/golangci-lint/v2/pkg/commands/run.go:256 +0x15c

goroutine 149 gp=0x14000503340 m=nil [sync.WaitGroup.Wait]:
runtime.gopark(0x106aa1040?, 0x106dad418?, 0xe0?, 0xa1?, 0x12e193b68?)
        runtime/proc.go:460 +0xc0 fp=0x14001c8bbe0 sp=0x14001c8bbc0 pc=0x10469f350
runtime.goparkunlock(...)
        runtime/proc.go:466
runtime.semacquire1(0x14002506e50, 0x0, 0x1, 0x0, 0x19)
        runtime/sema.go:192 +0x204 fp=0x14001c8bc30 sp=0x14001c8bbe0 pc=0x10467dbb4
sync.runtime_SemacquireWaitGroup(0x14000503340?, 0x70?)
        runtime/sema.go:114 +0x38 fp=0x14001c8bc70 sp=0x14001c8bc30 pc=0x1046a0ab8
sync.(*WaitGroup).Wait(0x14002506e48)
        sync/waitgroup.go:206 +0xa8 fp=0x14001c8bca0 sp=0x14001c8bc70 pc=0x1046c5158
golang.org/x/sync/errgroup.(*Group).Wait(0x14002506e40)
        golang.org/x/sync@v0.16.0/errgroup/errgroup.go:56 +0x28 fp=0x14001c8bcc0 sp=0x14001c8bca0 pc=0x104961e98
github.com/golangci/golangci-lint/v2/pkg/goanalysis.(*loadingPackage).analyze(0x1400265a180, {0x105d7dc20, 0x140019ab4a0}, 0x14000bb7300, 0x2, 0x140026489a0)
        github.com/golangci/golangci-lint/v2/pkg/goanalysis/runner_loadingpackage.go:112 +0x254 fp=0x14001c8bdc0 sp=0x14001c8bcc0 pc=0x104d059c4
github.com/golangci/golangci-lint/v2/pkg/goanalysis.(*loadingPackage).analyzeRecursive.func1()
        github.com/golangci/golangci-lint/v2/pkg/goanalysis/runner_loadingpackage.go:61 +0x19c fp=0x14001c8beb0 sp=0x14001c8bdc0 pc=0x104d0568c
sync.(*Once).doSlow(0x120200a3e656c75?, 0x583?)
        sync/once.go:78 +0xe0 fp=0x14001c8bf00 sp=0x14001c8beb0 pc=0x1046c3790
sync.(*Once).Do(...)
        sync/once.go:69
github.com/golangci/golangci-lint/v2/pkg/goanalysis.(*loadingPackage).analyzeRecursive(0x5f2a5d5f5e5b5f22?, {0x105d7dc20?, 0x140019ab4a0?}, 0x6d45636972656e65?, 0x722f3c3e2f226870?, 0x2020200a3e656c75?)
        github.com/golangci/golangci-lint/v2/pkg/goanalysis/runner_loadingpackage.go:45 +0x54 fp=0x14001c8bf60 sp=0x14001c8bf00 pc=0x104d054b4
github.com/golangci/golangci-lint/v2/pkg/goanalysis.(*runner).analyze.func2(0x1400000e948?)
        github.com/golangci/golangci-lint/v2/pkg/goanalysis/runner.go:276 +0x30 fp=0x14001c8bfb0 sp=0x14001c8bf60 pc=0x104d010d0
github.com/golangci/golangci-lint/v2/pkg/goanalysis.(*runner).analyze.gowrap1()
        github.com/golangci/golangci-lint/v2/pkg/goanalysis/runner.go:279 +0x2c fp=0x14001c8bfd0 sp=0x14001c8bfb0 pc=0x104d0106c
runtime.goexit({})
        runtime/asm_arm64.s:1268 +0x4 fp=0x14001c8bfd0 sp=0x14001c8bfd0 pc=0x1046a76b4
created by github.com/golangci/golangci-lint/v2/pkg/goanalysis.(*runner).analyze in goroutine 1
        github.com/golangci/golangci-lint/v2/pkg/goanalysis/runner.go:275 +0x4c0
davidbell@davidbell-mbp golang-lintbug % 

A minimal reproducible example or link to a public repository

package bug_golangci

import (
	"context"
)

type RequestData1 struct {
	URL       string
	URLPath   string
	Host      string
	IP        string
	TenantID  string
	SessionID string
	IsIOC     bool
}

type ReputationScore1 struct {
	RiskScore       int32
	SeverityLevel   string
	ConfidenceLevel float64
	Resource        string
	Indicator       string
}

type Handler2 struct {
	reputationService ReputationService1
}

// ReputationService handles all reputation checks including caching and deduplication.
type ReputationService1 interface {
	// EvaluateURL checks the reputation of a URL (handles caching internally)
	EvaluateURL(ctx context.Context, url string, tenantID string) (*ReputationScore1, error)

	// EvaluateIP checks the reputation of an IP address (handles caching internally)
	EvaluateIP(ctx context.Context, ip string, urlPath string, tenantID string) (*ReputationScore1, error)
}

func (h *Handler2) evaluateConcurrent(ctx context.Context, data *RequestData1) (*ReputationScore1, error) {
	urlResultChan := make(chan *ReputationScore1, 1)
	ipResultChan := make(chan *ReputationScore1, 1)
	urlErrChan := make(chan error, 1)
	ipErrChan := make(chan error, 1)

	// Start URL reputation check
	go func() {
		score, err := h.reputationService.EvaluateURL(ctx, data.URL, data.TenantID)
		if err != nil {
			urlErrChan <- err
		} else {
			urlResultChan <- score
		}
	}()

	// Start IP reputation check
	go func() {
		score, err := h.reputationService.EvaluateIP(ctx, data.IP, data.URLPath, data.TenantID)
		if err != nil {
			ipErrChan <- err
		} else {
			ipResultChan <- score
		}
	}()

	// Collect results
	var urlScore, ipScore *ReputationScore1
	var urlErr, ipErr error

	for i := 0; i < 2; i++ {
		select {
		case score := <-urlResultChan:
			urlScore = score
		case score := <-ipResultChan:
			ipScore = score
		case err := <-urlErrChan:
			urlErr = err
		case err := <-ipErrChan:
			ipErr = err
		case <-ctx.Done():
			return nil, ctx.Err()
		}
	}

	if urlErr != nil && ipErr != nil {
		return nil, urlErr
	}

	if urlErr != nil {
		return ipScore, nil
	}
	if ipErr != nil {
		return urlScore, nil
	}

	if urlScore != nil && ipScore != nil {
		if urlScore.RiskScore >= ipScore.RiskScore {
			return urlScore, nil
		}
		return ipScore, nil
	}

	if urlScore != nil {
		return urlScore, nil
	}

	return ipScore, nil

}

Validation

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

Supporter

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