golangci-lint icon indicating copy to clipboard operation
golangci-lint copied to clipboard

bodyclose: panic "interface conversion: interface {} is nil, not *buildssa.SSA"

Open vahid-sohrabloo opened this issue 1 year ago • 1 comments

Welcome

  • [X] Yes, I'm using a binary release within 2 latest major releases. Only such installations are supported.
  • [X] Yes, I've searched similar issues on GitHub and didn't find any.
  • [X] Yes, I've included all information below (version, config, etc).
  • [X] Yes, I've tried with the standalone linter if available. (https://golangci-lint.run/usage/linters/)

Description of the problem

I ran the linter on the chconn repo https://github.com/vahid-sohrabloo/chconn

ERRO [runner] Panic: bodyclose: package "column" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA: goroutine 4598 [running]:

Version of golangci-lint

$ golangci-lint --version
golangci-lint has version 1.48.0 built from 2d8fea81 on 2022-08-04T18:44:38Z

Configuration file

https://github.com/vahid-sohrabloo/chconn/blob/master/.golangci.yml

Go environment

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

Verbose output of running

$ golangci-lint cache clean
$ golangci-lint run -v
INFO [config_reader] Config search paths: [./ /home/vahid/projects/chconn /home/vahid/projects /home/vahid /home /] 
INFO [config_reader] Used config file .golangci.yml 
INFO [lintersdb] Active 34 linters: [bodyclose deadcode depguard dogsled dupl errcheck exhaustive exportloopref funlen gochecknoinits goconst gocyclo gofmt goimports goprintffuncname gosec gosimple govet ineffassign lll misspell nakedret noctx nolintlint rowserrcheck staticcheck structcheck stylecheck typecheck unconvert unparam unused varcheck whitespace] 
INFO [loader] Go packages loading at mode 575 (name|types_sizes|deps|exports_file|files|imports|compiled_files) took 179.300672ms 
INFO [runner/filename_unadjuster] Pre-built 0 adjustments in 10.870585ms 
INFO [linters context/goanalysis] analyzers took 16.87277408s with top 10 stages: buildir: 4.849183866s, buildssa: 812.739013ms, exhaustive: 546.392954ms, goimports: 339.224849ms, dupl: 337.786451ms, ctrlflow: 330.048343ms, S1038: 286.6035ms, printf: 271.590213ms, inspect: 250.197768ms, gosec: 239.14859ms 
ERRO [runner] Panic: bodyclose: package "column" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA: goroutine 4365 [running]:
runtime/debug.Stack()
	runtime/debug/stack.go:24 +0x65
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func1()
	github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:101 +0x155
panic({0xf60400, 0xc008742030})
	runtime/panic.go:884 +0x212
github.com/timakin/bodyclose/passes/bodyclose.runner.run({0xc005c0e0d0, {0x0, 0x0}, 0x0, {0x0, 0x0}, 0x0, 0x0}, 0xc005c0e0d0)
	github.com/timakin/[email protected]/passes/bodyclose/bodyclose.go:45 +0x697
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyze(0xc003058240)
	github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:187 +0x9d6
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func2()
	github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:105 +0x1d
github.com/golangci/golangci-lint/pkg/timeutils.(*Stopwatch).TrackStage(0xc001812eb0, {0x109e6c7, 0x9}, 0xc002f01748)
	github.com/golangci/golangci-lint/pkg/timeutils/stopwatch.go:111 +0x4a
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe(0xc002f017d0?)
	github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:104 +0x85
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze.func2(0xc003058240)
	github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:80 +0xb4
created by github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze
	github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:75 +0x1eb 
WARN [runner] Can't run linter goanalysis_metalinter: goanalysis_metalinter: bodyclose: package "column" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA 
WARN [linters context] rowserrcheck is disabled because of generics. You can track the evolution of the generics support by following the https://github.com/golangci/golangci-lint/issues/2649. 
WARN [linters context] structcheck is disabled because of generics. You can track the evolution of the generics support by following the https://github.com/golangci/golangci-lint/issues/2649. 
INFO [runner] processing took 3.818µs with stages: max_same_issues: 694ns, skip_dirs: 424ns, nolint: 375ns, max_from_linter: 315ns, cgo: 184ns, skip_files: 177ns, filename_unadjuster: 175ns, path_prettifier: 173ns, uniq_by_line: 170ns, max_per_file_from_linter: 164ns, autogenerated_exclude: 163ns, exclude: 162ns, sort_results: 96ns, source_code: 88ns, path_shortener: 82ns, identifier_marker: 80ns, severity-rules: 77ns, diff: 75ns, exclude-rules: 72ns, path_prefixer: 72ns 
INFO [runner] linters took 2.283858849s with stages: goanalysis_metalinter: 2.283777236s, rowserrcheck: 10.856µs, structcheck: 8.397µs 
ERRO Running error: 1 error occurred:
	* can't run linter goanalysis_metalinter: goanalysis_metalinter: bodyclose: package "column" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA
 
INFO Memory: 26 samples, avg is 302.5MB, max is 478.0MB 
INFO Execution took 2.485115988s   

Code example or link to a public repository

https://github.com/vahid-sohrabloo/chconn

vahid-sohrabloo avatar Aug 09 '22 18:08 vahid-sohrabloo

Hey, thank you for opening your first Issue ! 🙂 If you would like to contribute we have a guide for contributors.

boring-cyborg[bot] avatar Aug 09 '22 18:08 boring-cyborg[bot]

This is most likely fixed via dep bumps when I look at https://github.com/golangci/golangci-lint/blob/master/go.mod and https://github.com/timakin/bodyclose/issues/38#issuecomment-1304323617

I think it is worth to retest.

FYI @ldez

pellared avatar Nov 05 '22 09:11 pellared

We're also hitting this on v1.51.1. Let me know if I can provide anything useful here.

OUTPUT
ERRO [runner] Panic: bodyclose: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA: goroutine 236677 [running]:
runtime/debug.Stack()
	runtime/debug/stack.go:24 +0x65
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func1()
	github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:102 +0x155
panic({0xfa2540, 0xc01d6a37d0})
	runtime/panic.go:884 +0x213
github.com/timakin/bodyclose/passes/bodyclose.runner.run({0xc0677cbc20, {0x0, 0x0}, 0x0, {0x0, 0x0}, 0x0, 0x0}, 0xc0677cbc20)
	github.com/timakin/[email protected]/passes/bodyclose/bodyclose.go:45 +0x665
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyze(0xc00368af40)
	github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:188 +0x9df
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func2()
	github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:106 +0x1d
github.com/golangci/golangci-lint/pkg/timeutils.(*Stopwatch).TrackStage(0xc002cdfc70, {0x10e8b16, 0x9}, 0xc0062e6748)
	github.com/golangci/golangci-lint/pkg/timeutils/stopwatch.go:111 +0x4a
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe(0xc01cf46f38?)
	github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:105 +0x85
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze.func2(0xc00368af40)
	github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:80 +0xb4
created by github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze
	github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:75 +0x1eb 
WARN [runner] Can't run linter goanalysis_metalinter: goanalysis_metalinter: bodyclose: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA 
ERRO Running error: 1 error occurred:
	* can't run linter goanalysis_metalinter

jaredallard avatar Feb 08 '23 21:02 jaredallard

@pellared, hi!

I think there is a x/tools issue, not only bodyclose, because the other error appears if disable bodyclose:

ent.withHooks$1: cannot convert *t0 (M) to PM

I created a demo and grep the list of broken linters: https://github.com/Antonboom/golangci-vs-ent-generics/blob/main/.golangci.yml#L20

Looks like it's worth renaming the current issue (or create the new one) and making the issue in golang.org/x/tools. Or try to find some workaround on golangci-lint side.

(cc) @ldez


UPD: Issue in golang/go was created.

Antonboom avatar Feb 22 '23 07:02 Antonboom

@ldez Hello!

When to expect the new golangci-lint release? Looking forward to updated x/tools dependency 🙂

Antonboom avatar Mar 17 '23 20:03 Antonboom

@Antonboom it is coming :smile: I wanted to wait for gocritic (because I was aware of a current rework) and time to review one other PR. Now the new version of gocritic is here, and I reviewed the PR. I will prepare the new release.

ldez avatar Mar 17 '23 22:03 ldez

@ldez Hi!

I tested v1.52.0 release and faced with the strange behaviour.

Some of the broken linters now are ok, but some of the linters are still errored.

The last list of bad linters:

- asciicheck
- bodyclose
- bidichk
- contextcheck
- cyclop
- decorder
- depguard
- dupl
- dupword
- errorlint
- gocyclo
- gosec
- gosimple
- govet
- importas
- ineffassign
- nilnil
- lll
- makezero
- misspell
- nakedret
- nilerr
- noctx
- tparallel
- unparam

Current list of "bad" linters:

# Error `interface {} is nil, not *buildssa.SSA`
- bodyclose        # go 1.12, x/tools v0.2.0
- contextcheck     # go 1.20, x/tools v0.7.0
- nilerr           # go 1.15, x/tools v0.0.0-20201023174141-c8cfbd0f21e6 
- rowserrcheck     # go 1.13, x/tools v0.1.11 
- unparam          # go 1.19, x/tools v0.7.0

# Error `ent.withHooks$1: cannot convert *t0 (M) to PM`
- noctx            # go 1.20, x/tools v0.7.0
- sqlclosecheck    # go 1.19, x/tools v0.5.0
- tparallel        # go 1.20, x/tools v0.7.0
- wastedassign     # go 1.14, x/tools v0.7.0

Do you have any ideas? What unites them? Are there any patterns? Which side is the problem on?

P.S. Maybe on the golangci-lint side not to do the analysis at all for directories marked as skip-dirs?

Antonboom avatar Mar 19 '23 12:03 Antonboom

Remender that we use only one version of x/tools and we don't care about the go version inside the go.Mod of linters so your matrix is off-topic. skip-dirs is a post-process, so the directories are analyzed.

ldez avatar Mar 19 '23 12:03 ldez

so your matrix is off-topic.

yep, I just tried to find some corner cases of MVS process 🤷‍♂️

is a post-process, so the directories are analyzed.

yes, but not pre-process? :)

Antonboom avatar Mar 19 '23 12:03 Antonboom

MVS, in this simple case, cannot have a problem, it's not npm, and it's easy to validate by using a simple replace directive.

I was trapped, I was thinking that you have tried the impact of the upgrade of x/tools, so I trusted you. (I tested on the chconn repo before the release but maybe it was not the right version of chconn) The update doesn't fix this issue. You insisted on creating a new release when it was not necessary to do this to see that the bug was still present. I'm disappointed.

I already spend some time on this issue (I kept it open in my browser since it was opened). The idea of a bug inside x/tools was pleasant but for now, we don't find the exact root cause.

With your test repo:

v1.51.2
bodyclose
ERRO [runner] Panic: bodyclose: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA: goroutine 958 [running]:
runtime/debug.Stack()
        /usr/lib/go/src/runtime/debug/stack.go:24 +0x65
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func1()
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:102 +0x155
panic({0x15dac60, 0xc003472030})
        /usr/lib/go/src/runtime/panic.go:884 +0x213
github.com/timakin/bodyclose/passes/bodyclose.runner.run({0xc002cce0f0, {0x0, 0x0}, 0x0, {0x0, 0x0}, 0x0, 0x0}, 0xc002cce0f0)
        /home/ldez/sources/go/pkg/mod/github.com/timakin/[email protected]/passes/bodyclose/bodyclose.go:45 +0x665
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyze(0xc000e6baa0)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:188 +0x9df
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func2()
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:106 +0x1d
github.com/golangci/golangci-lint/pkg/timeutils.(*Stopwatch).TrackStage(0xc000c4d950, {0x1734e2a, 0x9}, 0xc001c03748)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/timeutils/stopwatch.go:111 +0x4a
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe(0xc0000bd500?)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:105 +0x85
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze.func2(0xc000e6baa0)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:80 +0xb4
created by github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:75 +0x1eb 
WARN [runner] Can't run linter bodyclose: bodyclose: bodyclose: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA 
ERRO Running error: 1 error occurred:
        * can't run linter bodyclose: bodyclose: bodyclose: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA
 
contextcheck
ERRO [runner] Panic: contextcheck: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA: goroutine 1461 [running]:
runtime/debug.Stack()
        /usr/lib/go/src/runtime/debug/stack.go:24 +0x65
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func1()
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:102 +0x155
panic({0x15dac60, 0xc004ef6030})
        /usr/lib/go/src/runtime/panic.go:884 +0x213
github.com/kkHAIKE/contextcheck.(*runner).run(0xc0078b6000, 0xc00a1fa000)
        /home/ldez/sources/go/pkg/mod/github.com/kk!h!a!i!k!e/[email protected]/contextcheck.go:133 +0x735
github.com/kkHAIKE/contextcheck.NewRun.func1(0xc00a1fa000)
        /home/ldez/sources/go/pkg/mod/github.com/kk!h!a!i!k!e/[email protected]/contextcheck.go:126 +0x108
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyze(0xc0014f6680)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:188 +0x9df
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func2()
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:106 +0x1d
github.com/golangci/golangci-lint/pkg/timeutils.(*Stopwatch).TrackStage(0xc000a44c80, {0x1771890, 0xc}, 0xc000718748)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/timeutils/stopwatch.go:111 +0x4a
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe(0xc00139baa0?)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:105 +0x85
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze.func2(0xc0014f6680)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:80 +0xb4
created by github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:75 +0x1eb 
WARN [runner] Can't run linter contextcheck: contextcheck: contextcheck: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA 
ERRO Running error: 1 error occurred:
        * can't run linter contextcheck: contextcheck: contextcheck: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA

nilerr
ERRO [runner] Panic: nilerr: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA: goroutine 1189 [running]:
runtime/debug.Stack()
        /usr/lib/go/src/runtime/debug/stack.go:24 +0x65
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func1()
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:102 +0x155
panic({0x15dac60, 0xc0018b7e00})
        /usr/lib/go/src/runtime/panic.go:884 +0x213
github.com/gostaticanalysis/nilerr.run(0xc0018a62d0)
        /home/ldez/sources/go/pkg/mod/github.com/gostaticanalysis/[email protected]/nilerr.go:28 +0x3f1
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyze(0xc000419870)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:188 +0x9df
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func2()
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:106 +0x1d
github.com/golangci/golangci-lint/pkg/timeutils.(*Stopwatch).TrackStage(0xc000400780, {0x1718141, 0x6}, 0xc0004db748)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/timeutils/stopwatch.go:111 +0x4a
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe(0xc00141e2a0?)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:105 +0x85
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze.func2(0xc000419870)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:80 +0xb4
created by github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:75 +0x1eb 
WARN [runner] Can't run linter nilerr: nilerr: nilerr: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA 
ERRO Running error: 1 error occurred:
        * can't run linter nilerr: nilerr: nilerr: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA

noctx
ERRO [runner] Panic: noctx: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA: goroutine 271 [running]:
runtime/debug.Stack()
        /usr/lib/go/src/runtime/debug/stack.go:24 +0x65
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func1()
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:102 +0x155
panic({0x15dac60, 0xc0020ba0f0})
        /usr/lib/go/src/runtime/panic.go:884 +0x213
github.com/sonatard/noctx/reqwithoutctx.NewAnalyzer(0xc0002643c0)
        /home/ldez/sources/go/pkg/mod/github.com/sonatard/[email protected]/reqwithoutctx/ssa.go:23 +0x171
github.com/sonatard/noctx/reqwithoutctx.Run(0xc00124cd38?)
        /home/ldez/sources/go/pkg/mod/github.com/sonatard/[email protected]/reqwithoutctx/main.go:8 +0x1e
github.com/sonatard/noctx.run(0x15b6200?)
        /home/ldez/sources/go/pkg/mod/github.com/sonatard/[email protected]/noctx.go:26 +0x2f
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyze(0xc00149daa0)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:188 +0x9df
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func2()
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:106 +0x1d
github.com/golangci/golangci-lint/pkg/timeutils.(*Stopwatch).TrackStage(0xc0014116d0, {0x171535b, 0x5}, 0xc0011d6748)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/timeutils/stopwatch.go:111 +0x4a
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe(0xc001108900?)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:105 +0x85
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze.func2(0xc00149daa0)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:80 +0xb4
created by github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:75 +0x1eb 
WARN [runner] Can't run linter noctx: noctx: noctx: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA 
ERRO Running error: 1 error occurred:
        * can't run linter noctx: noctx: noctx: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA

rowserrcheck
WARN [linters_context] rowserrcheck is disabled because of generics. You can track the evolution of the generics support by following the https://github.com/golangci/golangci-lint/issues/2649. 

tparallel
ERRO [runner] Panic: tparallel: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA: goroutine 349 [running]:
runtime/debug.Stack()
        /usr/lib/go/src/runtime/debug/stack.go:24 +0x65
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func1()
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:102 +0x155
panic({0x15dac60, 0xc0039be030})
        /usr/lib/go/src/runtime/panic.go:884 +0x213
github.com/moricho/tparallel.run(0xc0003be0f0)
        /home/ldez/sources/go/pkg/mod/github.com/moricho/[email protected]/tparallel.go:27 +0x4be
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyze(0xc000badaa0)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:188 +0x9df
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func2()
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:106 +0x1d
github.com/golangci/golangci-lint/pkg/timeutils.(*Stopwatch).TrackStage(0xc000b436d0, {0x173f73b, 0x9}, 0xc000346748)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/timeutils/stopwatch.go:111 +0x4a
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe(0xc000f95680?)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:105 +0x85
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze.func2(0xc000badaa0)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:80 +0xb4
created by github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:75 +0x1eb 
WARN [runner] Can't run linter tparallel: tparallel: tparallel: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA 
ERRO Running error: 1 error occurred:
        * can't run linter tparallel: tparallel: tparallel: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA
 
unparam
ERRO [runner] Panic: unparam: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA: goroutine 1170 [running]:
runtime/debug.Stack()
        /usr/lib/go/src/runtime/debug/stack.go:24 +0x65
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func1()
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:102 +0x155
panic({0x15dac60, 0xc000804030})
        /usr/lib/go/src/runtime/panic.go:884 +0x213
github.com/golangci/golangci-lint/pkg/golinters.runUnparam(0xc002ec4d20, 0xc0007fbae0)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/unparam.go:60 +0x5b7
github.com/golangci/golangci-lint/pkg/golinters.NewUnparam.func1(0x15b6200?)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/unparam.go:28 +0x33
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyze(0xc000649aa0)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:188 +0x9df
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func2()
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:106 +0x1d
github.com/golangci/golangci-lint/pkg/timeutils.(*Stopwatch).TrackStage(0xc000545130, {0x1722307, 0x7}, 0xc000307748)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/timeutils/stopwatch.go:111 +0x4a
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe(0xc001479ce0?)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:105 +0x85
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze.func2(0xc000649aa0)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:80 +0xb4
created by github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:75 +0x1eb 
WARN [runner] Can't run linter unparam: unparam: unparam: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA 
ERRO Running error: 1 error occurred:
        * can't run linter unparam: unparam: unparam: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA
 
wastedassign
WARN [linters_context] wastedassign is disabled because of generics. You can track the evolution of the generics support by following the https://github.com/golangci/golangci-lint/issues/2649. 

v1.52.0

bodyclose
ERRO [runner] Panic: bodyclose: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA: goroutine 1190 [running]:
runtime/debug.Stack()
        /usr/lib/go/src/runtime/debug/stack.go:24 +0x65
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func1()
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:102 +0x155
panic({0x15e6880, 0xc00230a030})
        /usr/lib/go/src/runtime/panic.go:884 +0x213
github.com/timakin/bodyclose/passes/bodyclose.runner.run({0xc002b0c000, {0x0, 0x0}, 0x0, {0x0, 0x0}, 0x0, 0x0}, 0xc002b0c000)
        /home/ldez/sources/go/pkg/mod/github.com/timakin/[email protected]/passes/bodyclose/bodyclose.go:45 +0x665
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyze(0xc0009b3aa0)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:188 +0xa25
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func2()
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:106 +0x1d
github.com/golangci/golangci-lint/pkg/timeutils.(*Stopwatch).TrackStage(0xc0007d1db0, {0x1741351, 0x9}, 0xc0008a8f48)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/timeutils/stopwatch.go:111 +0x4a
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe(0xc000a29860?)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:105 +0x85
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze.func2(0xc0009b3aa0)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:80 +0xb4
created by github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:75 +0x208 
WARN [runner] Can't run linter bodyclose: bodyclose: bodyclose: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA 
ERRO Running error: 1 error occurred:
        * can't run linter bodyclose: bodyclose: bodyclose: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA

contextcheck
ERRO [runner] Panic: contextcheck: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA: goroutine 1455 [running]:
runtime/debug.Stack()
        /usr/lib/go/src/runtime/debug/stack.go:24 +0x65
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func1()
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:102 +0x155
panic({0x15e6880, 0xc003aac090})
        /usr/lib/go/src/runtime/panic.go:884 +0x213
github.com/kkHAIKE/contextcheck.(*runner).run(0xc004d06060, 0xc007f220f0)
        /home/ldez/sources/go/pkg/mod/github.com/kk!h!a!i!k!e/[email protected]/contextcheck.go:133 +0x735
github.com/kkHAIKE/contextcheck.NewRun.func1(0xc007f220f0)
        /home/ldez/sources/go/pkg/mod/github.com/kk!h!a!i!k!e/[email protected]/contextcheck.go:126 +0x108
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyze(0xc0013c6680)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:188 +0xa25
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func2()
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:106 +0x1d
github.com/golangci/golangci-lint/pkg/timeutils.(*Stopwatch).TrackStage(0xc00141f9a0, {0x177dded, 0xc}, 0xc0014e9748)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/timeutils/stopwatch.go:111 +0x4a
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe(0xc00168f020?)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:105 +0x85
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze.func2(0xc0013c6680)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:80 +0xb4
created by github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:75 +0x208 
WARN [runner] Can't run linter contextcheck: contextcheck: contextcheck: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA 
ERRO Running error: 1 error occurred:
        * can't run linter contextcheck: contextcheck: contextcheck: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA
 
nilerr
ERRO [runner] Panic: nilerr: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA: goroutine 936 [running]:
runtime/debug.Stack()
        /usr/lib/go/src/runtime/debug/stack.go:24 +0x65
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func1()
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:102 +0x155
panic({0x15e6880, 0xc00327c030})
        /usr/lib/go/src/runtime/panic.go:884 +0x213
github.com/gostaticanalysis/nilerr.run(0xc0023f8690)
        /home/ldez/sources/go/pkg/mod/github.com/gostaticanalysis/[email protected]/nilerr.go:28 +0x3f1
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyze(0xc00039a870)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:188 +0xa25
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func2()
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:106 +0x1d
github.com/golangci/golangci-lint/pkg/timeutils.(*Stopwatch).TrackStage(0xc000347810, {0x1724624, 0x6}, 0xc001f02748)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/timeutils/stopwatch.go:111 +0x4a
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe(0xc00061d320?)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:105 +0x85
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze.func2(0xc00039a870)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:80 +0xb4
created by github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:75 +0x208 
WARN [runner] Can't run linter nilerr: nilerr: nilerr: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA 
ERRO Running error: 1 error occurred:
        * can't run linter nilerr: nilerr: nilerr: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA

noctx
ERRO [runner] Panic: noctx: package "ent" (isInitialPkg: true, needAnalyzeSource: true): <nil> is not *buildssa.SSA: goroutine 222 [running]:
runtime/debug.Stack()
        /usr/lib/go/src/runtime/debug/stack.go:24 +0x65
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func1()
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:102 +0x155
panic({0x1555d00, 0xc002560090})
        /usr/lib/go/src/runtime/panic.go:884 +0x213
github.com/sonatard/noctx/reqwithoutctx.NewAnalyzer(0xc003390000)
        /home/ldez/sources/go/pkg/mod/github.com/sonatard/[email protected]/reqwithoutctx/ssa.go:27 +0x1b9
github.com/sonatard/noctx/reqwithoutctx.Run(0xc00152dd28?)
        /home/ldez/sources/go/pkg/mod/github.com/sonatard/[email protected]/reqwithoutctx/main.go:8 +0x1e
github.com/sonatard/noctx.run(0x15c1f20?)
        /home/ldez/sources/go/pkg/mod/github.com/sonatard/[email protected]/noctx.go:30 +0x7c
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyze(0xc0006a5aa0)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:188 +0xa25
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func2()
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:106 +0x1d
github.com/golangci/golangci-lint/pkg/timeutils.(*Stopwatch).TrackStage(0xc0006804b0, {0x1721826, 0x5}, 0xc001536748)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/timeutils/stopwatch.go:111 +0x4a
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe(0xc0015a6e40?)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:105 +0x85
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze.func2(0xc0006a5aa0)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:80 +0xb4
created by github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:75 +0x208 
WARN [runner] Can't run linter noctx: noctx: noctx: package "ent" (isInitialPkg: true, needAnalyzeSource: true): <nil> is not *buildssa.SSA 
ERRO Running error: 1 error occurred:
        * can't run linter noctx: noctx: noctx: package "ent" (isInitialPkg: true, needAnalyzeSource: true): <nil> is not *buildssa.SSA

rowserrcheck
ERRO [runner] Panic: rowserrcheck: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA: goroutine 1102 [running]:
runtime/debug.Stack()
        /usr/lib/go/src/runtime/debug/stack.go:24 +0x65
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func1()
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:102 +0x155
panic({0x15e6880, 0xc001b56060})
        /usr/lib/go/src/runtime/panic.go:884 +0x213
github.com/jingyugao/rowserrcheck/passes/rowserr.runner.run({0xc003536000, 0x0, 0x0, {0x0, 0x0}, 0x0, {0xc001b30990, 0x1, 0x1}}, 0xc003536000, ...)
        /home/ldez/sources/go/pkg/mod/github.com/jingyugao/[email protected]/passes/rowserr/rowserr.go:54 +0x416
github.com/jingyugao/rowserrcheck/passes/rowserr.NewRun.func1(0x15c1f20?)
        /home/ldez/sources/go/pkg/mod/github.com/jingyugao/[email protected]/passes/rowserr/rowserr.go:44 +0x17d
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyze(0xc000761aa0)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:188 +0xa25
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func2()
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:106 +0x1d
github.com/golangci/golangci-lint/pkg/timeutils.(*Stopwatch).TrackStage(0xc0006ae820, {0x178594d, 0xc}, 0xc001598748)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/timeutils/stopwatch.go:111 +0x4a
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe(0xc00141e540?)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:105 +0x85
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze.func2(0xc000761aa0)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:80 +0xb4
created by github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:75 +0x208 
WARN [runner] Can't run linter rowserrcheck: rowserrcheck: rowserrcheck: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA 
ERRO Running error: 1 error occurred:
        * can't run linter rowserrcheck: rowserrcheck: rowserrcheck: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA

tparallel
ERRO [runner] Panic: tparallel: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA: goroutine 257 [running]:
runtime/debug.Stack()
        /usr/lib/go/src/runtime/debug/stack.go:24 +0x65
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func1()
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:102 +0x155
panic({0x15e6880, 0xc003a02030})
        /usr/lib/go/src/runtime/panic.go:884 +0x213
github.com/moricho/tparallel.run(0xc001f560f0)
        /home/ldez/sources/go/pkg/mod/github.com/moricho/[email protected]/tparallel.go:27 +0x4be
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyze(0xc0008225a0)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:188 +0xa25
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func2()
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:106 +0x1d
github.com/golangci/golangci-lint/pkg/timeutils.(*Stopwatch).TrackStage(0xc0006a15e0, {0x174bc62, 0x9}, 0xc0016f1748)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/timeutils/stopwatch.go:111 +0x4a
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe(0xc00091ef00?)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:105 +0x85
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze.func2(0xc0008225a0)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:80 +0xb4
created by github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:75 +0x208 
WARN [runner] Can't run linter tparallel: tparallel: tparallel: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA 
ERRO Running error: 1 error occurred:
        * can't run linter tparallel: tparallel: tparallel: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA

unparam
ERRO [runner] Panic: unparam: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA: goroutine 1195 [running]:
runtime/debug.Stack()
        /usr/lib/go/src/runtime/debug/stack.go:24 +0x65
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func1()
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:102 +0x155
panic({0x15e6880, 0xc002f6a030})
        /usr/lib/go/src/runtime/panic.go:884 +0x213
github.com/golangci/golangci-lint/pkg/golinters.runUnparam(0xc000268690, 0xc00096cae0)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/unparam.go:60 +0x5b7
github.com/golangci/golangci-lint/pkg/golinters.NewUnparam.func1(0x15c1f20?)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/unparam.go:28 +0x33
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyze(0xc001295aa0)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:188 +0xa25
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func2()
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:106 +0x1d
github.com/golangci/golangci-lint/pkg/timeutils.(*Stopwatch).TrackStage(0xc0011656d0, {0x172e80c, 0x7}, 0xc000484f48)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/timeutils/stopwatch.go:111 +0x4a
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe(0xc00078db00?)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:105 +0x85
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze.func2(0xc001295aa0)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:80 +0xb4
created by github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:75 +0x208 
WARN [runner] Can't run linter unparam: unparam: unparam: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA 
ERRO Running error: 1 error occurred:
        * can't run linter unparam: unparam: unparam: package "ent" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not *buildssa.SSA

wastedassign
ERRO [runner] Panic: wastedassign: package "ent" (isInitialPkg: true, needAnalyzeSource: true): in github.com/Antonboom/golangci-vs-ent-generics/ent.withHooks$1: cannot convert *t0 (M) to PM: goroutine 225 [running]:
runtime/debug.Stack()
        /usr/lib/go/src/runtime/debug/stack.go:24 +0x65
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func1()
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:102 +0x155
panic({0x1555d00, 0xc0028e72f0})
        /usr/lib/go/src/runtime/panic.go:884 +0x213
golang.org/x/tools/go/ssa.emitConv(0xc0028a8180, {0x199f1c0, 0xc0028f1380}, {0x1996730?, 0xc003558480})
        /home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ssa/emit.go:286 +0xdbc
golang.org/x/tools/go/ssa.emitStore(0xc0028a8180, {0x199f1c0, 0xc0028f12c0}, {0x199f1c0, 0xc0028f1380}, 0x2a9377e)
        /home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ssa/emit.go:377 +0x5f
golang.org/x/tools/go/ssa.(*address).store(0xc0028f2330, 0xc0028a8180?, {0x199f1c0?, 0xc0028f1380?})
        /home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ssa/lvalue.go:40 +0x47
golang.org/x/tools/go/ssa.(*storebuf).emit(...)
        /home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:533
golang.org/x/tools/go/ssa.(*builder).assignStmt(0xc0028a8180?, 0xc0028a8180, {0xc00331adf0, 0x1, 0x16cb940?}, {0xc00331ae00, 0x1, 0xc0026084b0?}, 0x0)
        /home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:1207 +0x43d
golang.org/x/tools/go/ssa.(*builder).stmt(0xc0026085e8?, 0xc0028a8180, {0x1999630?, 0xc003320a40?})
        /home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:2181 +0x425
golang.org/x/tools/go/ssa.(*builder).stmtList(0xc002608601?, 0xc0028f2120?, {0xc003320a80?, 0x4, 0xc000581000?})
        /home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:946 +0x45
golang.org/x/tools/go/ssa.(*builder).stmt(0xc0028a8180?, 0xc0028a8180, {0x1999750?, 0xc00331ebd0?})
        /home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:2277 +0x859
golang.org/x/tools/go/ssa.(*builder).buildFunctionBody(0x0?, 0xc0028a8180)
        /home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:2391 +0x437
golang.org/x/tools/go/ssa.(*builder).expr0(0xc002609738, 0xc0019d6000, {0x19999f0?, 0xc00331ae30?}, {0x7, {0x1996640, 0xc003423dc0}, {0x0, 0x0}})
        /home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:656 +0x4d6
golang.org/x/tools/go/ssa.(*builder).expr(0x15c4140?, 0xc0019d6000, {0x19999f0, 0xc00331ae30})
        /home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:625 +0x17b
golang.org/x/tools/go/ssa.(*builder).expr0(0xc002609738, 0xc0019d6000, {0x19997b0?, 0xc003320b00?}, {0x7, {0x19965c8, 0xc000257490}, {0x0, 0x0}})
        /home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:676 +0x705
golang.org/x/tools/go/ssa.(*builder).expr(0xc0028f0cc0?, 0xc0019d6000, {0x19997b0, 0xc003320b00})
        /home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:625 +0x17b
golang.org/x/tools/go/ssa.(*builder).assign(0xc0019d6000?, 0xc0019d6000?, {0x199c0c8?, 0xc0028f2090}, {0x19997b0?, 0xc003320b00?}, 0x8?, 0x0)
        /home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:598 +0x3db
golang.org/x/tools/go/ssa.(*builder).localValueSpec(0xc0019d6000?, 0xc0019d6000, 0xc003302780)
        /home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:1147 +0xe5
golang.org/x/tools/go/ssa.(*builder).stmt(0xc002609298?, 0xc0019d6000, {0x19998a0?, 0xc00331ae70?})
        /home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:2147 +0x17c5
golang.org/x/tools/go/ssa.(*builder).stmtList(0xc0028f09c0?, 0xc0026092e8?, {0xc0032d4b00?, 0x8, 0x8c9cc8?})
        /home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:946 +0x45
golang.org/x/tools/go/ssa.(*builder).stmt(0xc0019d6000?, 0xc0019d6000, {0x1999750?, 0xc00331ee10?})
        /home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:2277 +0x859
golang.org/x/tools/go/ssa.(*builder).buildFunctionBody(0xea2af1?, 0xc0019d6000)
        /home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:2391 +0x437
golang.org/x/tools/go/ssa.(*builder).buildFunction(0xea2b40?, 0xc0019d6000)
        /home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:2326 +0x2e
golang.org/x/tools/go/ssa.(*builder).buildCreated(0xc002609738)
        /home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:2413 +0x25
golang.org/x/tools/go/ssa.(*Package).build(0xc00378bc00)
        /home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:2606 +0xc86
sync.(*Once).doSlow(0xc000000540?, 0xc00342b310?)
        /usr/lib/go/src/sync/once.go:74 +0xc2
sync.(*Once).Do(...)
        /usr/lib/go/src/sync/once.go:65
golang.org/x/tools/go/ssa.(*Package).Build(...)
        /home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:2477
github.com/sanposhiho/wastedassign/v2.run(0xc0003ea3c0)
        /home/ldez/sources/go/pkg/mod/github.com/sanposhiho/wastedassign/[email protected]/wastedassign.go:54 +0x1b8
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyze(0xc000cbdaa0)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:188 +0xa25
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func2()
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:106 +0x1d
github.com/golangci/golangci-lint/pkg/timeutils.(*Stopwatch).TrackStage(0xc000c5d6d0, {0x1787a59, 0xc}, 0xc0006b9748)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/timeutils/stopwatch.go:111 +0x4a
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe(0xc001208de0?)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:105 +0x85
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze.func2(0xc000cbdaa0)
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:80 +0xb4
created by github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze
        /home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:75 +0x208 
WARN [runner] Can't run linter wastedassign: wastedassign: wastedassign: package "ent" (isInitialPkg: true, needAnalyzeSource: true): in github.com/Antonboom/golangci-vs-ent-generics/ent.withHooks$1: cannot convert *t0 (M) to PM 
ERRO Running error: 1 error occurred:
        * can't run linter wastedassign: wastedassign: wastedassign: package "ent" (isInitialPkg: true, needAnalyzeSource: true): in github.com/Antonboom/golangci-vs-ent-generics/ent.withHooks$1: cannot convert *t0 (M) to PM

ldez avatar Mar 19 '23 13:03 ldez

Let me add some clarity.

Remember I wrote above there are two issues:

  1. interface {} is nil, not *buildssa.SSA from res := pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA)
  2. ent.withHooks$1: cannot convert *t0 (M) to PM from mutationT, ok := m.(PM)

Pair any(m).(PM) + new x/tools should fix 2) – I tested it with local build twice (how I tested any change, please don't take me for an idiot): on x/tools master and after then they created a tag.

But I didn’t say anywhere that this update would save from problem 1), although as far as I remember, I stopped seeing it too. Anyway I was surprised when you closed this issue.

Now I surprised, confused and truly don't understand why 1) error still appears. Moreover, if I clear the cache and repeat the run, I see different results. For example, once I faced the new error <nil> is not *buildssa.SSA (different from 1)):

Trace
ERRO [runner] Panic: noctx: package "ent" (isInitialPkg: true, needAnalyzeSource: true): <nil> is not *buildssa.SSA: goroutine 5088 [running]:
runtime/debug.Stack()
        runtime/debug/stack.go:24 +0x64
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func1()
        github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:102 +0x108
panic({0x1032b96e0, 0x1400ce83360})
        runtime/panic.go:884 +0x1f4
github.com/sonatard/noctx/reqwithoutctx.NewAnalyzer(0x140046bb860)
        github.com/sonatard/[email protected]/reqwithoutctx/ssa.go:27 +0x1a8
github.com/sonatard/noctx/reqwithoutctx.Run(0x140012b4ce8?)
        github.com/sonatard/[email protected]/reqwithoutctx/main.go:8 +0x20
github.com/sonatard/noctx.run(0x1032fab20?)
        github.com/sonatard/[email protected]/noctx.go:30 +0x78
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyze(0x140025fe620)
        github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:188 +0x94c
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func2()
        github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:106 +0x20
github.com/golangci/golangci-lint/pkg/timeutils.(*Stopwatch).TrackStage(0x14000643630, {0x102fca49d, 0x5}, 0x140012b4f30)
        github.com/golangci/golangci-lint/pkg/timeutils/stopwatch.go:111 +0x44
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe(0x1400da39688?)
        github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_action.go:105 +0x74
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze.func2(0x140025fe620)
        github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:80 +0xb0
created by github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze
        github.com/golangci/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:75 +0x17c 
WARN [runner] Can't run linter goanalysis_metalinter: goanalysis_metalinter: noctx: package "ent" (isInitialPkg: true, needAnalyzeSource: true): <nil> is not *buildssa.SSA 
INFO [runner] processing took 2.541µs with stages: max_same_issues: 542ns, nolint: 334ns, skip_dirs: 250ns, autogenerated_exclude: 208ns, cgo: 208ns, max_from_linter: 125ns, source_code: 125ns, diff: 84ns, max_per_file_from_linter: 84ns, sort_results: 84ns, path_prefixer: 83ns, identifier_marker: 83ns, path_prettifier: 42ns, uniq_by_line: 42ns, skip_files: 42ns, exclude: 41ns, filename_unadjuster: 41ns, severity-rules: 41ns, path_shortener: 41ns, exclude-rules: 41ns 
INFO [runner] linters took 6.075075125s with stages: goanalysis_metalinter: 6.075029791s 
ERRO Running error: 1 error occurred:
        * can't run linter goanalysis_metalinter: goanalysis_metalinter: noctx: package "ent" (isInitialPkg: true, needAnalyzeSource: true): <nil> is not *buildssa.SSA

The idea of a bug inside x/tools was pleasant

Remember that https://github.com/golang/go/issues/58633 still waiting feedback from x/tools author. We needed v0.7.0 for any-cast workaround using.

but for now, we don't find the exact root cause

I'll try to debug golangci-lint run. I worry about

  1. different results with different cache status;
  2. different affected linters on different versions.

You insisted on creating a new release when it was not necessary to do this to see that the bug was still present. I'm disappointed.

Please, don't blame me for the new release:

  1. I didn't expect you to up the major version without notice (like you usually do).
  2. As I wrote above, no one guaranteed the closure of all this issue's problems at once.
  3. Anyway, release included reenabled linters and other usefulness - I see no reason to worry.

Antonboom avatar Mar 19 '23 15:03 Antonboom

I didn't expect you to up the major version without notice (like you usually do).

Remember that we have been forced, one month ago, to drop the old Team Discussion because Github drop this. We replaced it with new private Discussions. https://github.com/orgs/golangci/discussions/51

I created a private announcement 12 hours before the release as usual. https://github.com/orgs/golangci/discussions/53

Please, don't blame me for the new release

I don't want to blame you, I'm just disappointed, I should have spent more time validating the impact of the various changes, and don't let me be swayed by your calls for a release.

ldez avatar Mar 19 '23 15:03 ldez

Why did I close the issue? When I see all your PRs pointing to this issue, I was thinking that you analyzed the bug and find the root cause, it was wrong because your PRs were not really related to this issue, and it's my fault because I don't spend enough time analyzing the situation. I tested the current branch with chconn (an old local clone used to test this bug), but I was using a non-impacted chconn local clone, so I come to the wrong conclusion.

It's not the end of the world, but I don't like this kind of situation.

ldez avatar Mar 19 '23 15:03 ldez

The last point, we will be more strict with this issue:

  • we will keep the issue for the error "interface conversion: interface {} is nil, not *buildssa.SSA" only
  • you can create another issue for "cannot convert *t0 (M) to PM"

ldez avatar Mar 19 '23 15:03 ldez

I spend some to analyze once again the problem based on your project. So now I understand the link between "cannot convert *t0 (M) to PM" and this issue.

ldez avatar Mar 19 '23 17:03 ldez

@ldez, thank u for your comments.

I feel terribly stupid 🤦 . I tried to repeat my tests again and I really don't understand how I managed to NOT get the panics above.

I apologize and will try to be more careful, my desire to make golangci-lint better does not always lead to good consequences.

I will try to contribute in x/tools, if you are interested, pay attention to the comment. Thanks

Antonboom avatar Mar 19 '23 18:03 Antonboom

I created PR #3710 to improve the output when panic happens inside buildssa.

The error panic "interface conversion: interface {} is nil, not *buildssa.SSA" is not relevant to diagnose the real problem or just knowing what the problem is.

ldez avatar Mar 19 '23 18:03 ldez

I will close this issue, not because the underlying problem is fixed but just because the issue is too generic, and we will have multiple, not related, problems in this issue. This can cause confusion.

So I recommend opening dedicated issues in the future.

When my PR is merged, I will create a bugfix release (if the team agrees with that as usual)

ldez avatar Mar 19 '23 18:03 ldez

Sorry for barking in without understanding the situation.

I am having exactly this issue on new ent. Should I make it as a new issue? It seems related to #3711 .

Should I update /x/tools or something?

It is in both binary releases and if installed from git

edit: ah it seems #3711 is the "new" issue number. Will watch that one

karelbilek avatar Mar 20 '23 12:03 karelbilek