golang / vscode-go

Go extension for Visual Studio Code

Home Page:https://marketplace.visualstudio.com/items?itemName=golang.Go

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

gopls: automated issue report (crash)

neversi opened this issue · comments

gopls version: v0.15.3/go1.21.5
gopls flags:
update flags: proxy
extension version: 0.41.4
environment: Visual Studio Code darwin
initialization error: undefined
issue timestamp: Fri, 31 May 2024 13:25:07 GMT
restart history:
Wed, 29 May 2024 09:19:08 GMT: activation (enabled: true)

ATTENTION: PLEASE PROVIDE THE DETAILS REQUESTED BELOW.

Describe what you observed.

While changing the variable name (globally in all project), there was instant crash of gopls

panic: instantiated ident not found

goroutine 6707 [running]:
go/types.(*Checker).handleBailout(0x14006440780, 0x14005475838)
	  check.go:336  0x9c
panic({0x10514b880%3F, 0x1052c0b40%3F})
	  panic.go:914  0x218
go/types.instantiatedIdent(...)
	  check.go:594
go/types.(*Checker).recordInstance(0x1400546f7f8%3F, {0x1052c93d0%3F, 0x140058688c0%3F}, {0x14005dec9d0%3F, 0x14005dec9d0%3F, 0x1%3F}, {0x1052c62c8%3F, 0x14004e6fb00%3F})
	  check.go:570  0x1e4
go/types.(*Checker).instantiateSignature(0x14006440780, 0xcdfbf, {0x1052c93d0, 0x140058688c0}, 0x14004e6fac0, {0x14005dec9d0, 0x1, 0x1}, {0x0, 0x0, ...})
	  call.go:153  0x244
go/types.(*Checker).arguments(0x14006440780, 0x14005868900, 0x14004e6f940, {0x0, 0x0, 0x0}, {0x0, 0x0, 0x0}, {0x14000b8bfc0%3F, ...}, ...)
	  call.go:643  0x10bc
go/types.(*Checker).callExpr(0x14006440780, 0x14004e6f740, 0x14005868900)
	  call.go:302  0x6a4
go/types.(*Checker).exprInternal(0x14006440780, {0x0, 0x0}, 0x14004e6f740, {0x1052c93d0, 0x14005868900%3F}, {0x0%3F, 0x0%3F})
	  expr.go:1359  0x12e0
go/types.(*Checker).rawExpr(0x14006440780, {0x0, 0x0}, 0x14004e6f740, {0x1052c93d0%3F, 0x14005868900%3F}, {0x0%3F, 0x0%3F}, 0x0)
	  expr.go:965  0x134
go/types.(*Checker).stmt(0x14006440780, 0x3, {0x1052c9790%3F, 0x1400585ba40%3F})
	  stmt.go:397  0x144
go/types.(*Checker).stmtList(0x14006440780%3F, 0x3, {0x140054b3700%3F, 0x104e0c7a3%3F, 0x5%3F})
	  stmt.go:124  0x88
go/types.(*Checker).stmt(0x14006440780, 0x3, {0x1052c9430%3F, 0x1400585f560%3F})
	  stmt.go:565  0x1250
go/types.(*Checker).stmt(0x14006440780, 0x3, {0x1052c9760%3F, 0x1400583c8a0%3F})
	  stmt.go:936  0x24e4
go/types.(*Checker).stmtList(0x14006440780%3F, 0x3, {0x140054b3780%3F, 0x104e0c7a3%3F, 0x5%3F})
	  stmt.go:124  0x88
go/types.(*Checker).stmt(0x14006440780, 0x3, {0x1052c9430%3F, 0x1400585f5f0%3F})
	  stmt.go:565  0x1250
go/types.(*Checker).stmt(0x14006440780, 0x0, {0x1052c9760%3F, 0x1400583c900%3F})
	  stmt.go:936  0x24e4
go/types.(*Checker).stmtList(0x14007c1aa20%3F, 0x0, {0x14005868c40%3F, 0x0%3F, 0x14006684a98%3F})
	  stmt.go:124  0x88
go/types.(*Checker).funcBody(0x14006440780, 0x14007abe0c0, {0x14005851dd0%3F, 0x1400004ecd0%3F}, 0x14004e4e200, 0x1400585f620, {0x0, 0x0})
	  stmt.go:44  0x244
go/types.(*Checker).funcDecl.func1()
	  decl.go:826  0x44
go/types.(*Checker).processDelayed(0x14006440780, 0x0)
	  check.go:439  0x12c
go/types.(*Checker).checkFiles(0x14006440780, {0x14005a5fd80, 0xd, 0x10})
	  check.go:383  0x1fc
go/types.(*Checker).Files(...)
	  check.go:341
golang.org/x/tools/gopls/internal/cache.(*typeCheckBatch).checkPackage(0x140069d20c0, {0x1052cace8, 0x140057de870}, 0x140067277a0)
	  check.go:1532  0x850
golang.org/x/tools/gopls/internal/cache.(*typeCheckBatch).handleSyntaxPackage(0x140069d20c0, {0x1052cace8%3F, 0x140057de870}, 0x14000ae94c0%3F, {0x14000ccbd50, 0x67})
	  check.go:563  0x55c
golang.org/x/tools/gopls/internal/cache.(*Snapshot).forEachPackageInternal.func2()
	  check.go:414  0x34
golang.org/x/sync/errgroup.(*Group).Go.func1()
	  errgroup.go:78  0x58
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 165
	  errgroup.go:75  0x98
gopls stats -anon { "DirStats": { "Files": 8872, "TestdataFiles": 0, "GoFiles": 4338, "ModFiles": 2, "Dirs": 1115 }, "GOARCH": "arm64", "GOOS": "darwin", "GOPACKAGESDRIVER": "", "GOPLSCACHE": "", "GoVersion": "go1.21.5", "GoplsVersion": "v0.15.3", "InitialWorkspaceLoadDuration": "1.142580125s", "MemStats": { "HeapAlloc": 89678560, "HeapInUse": 142385152, "TotalAlloc": 1244250888 }, "WorkspaceStats": { "Files": { "Total": 3967, "Largest": 9586483, "Errs": 0 }, "Views": [ { "GoCommandVersion": "go1.22.3", "AllPackages": { "Packages": 741, "LargestPackage": 155, "CompiledGoFiles": 4077, "Modules": 115 }, "WorkspacePackages": { "Packages": 119, "LargestPackage": 22, "CompiledGoFiles": 416, "Modules": 1 }, "Diagnostics": 6 } ] } }

OPTIONAL: If you would like to share more information, you can attach your complete gopls logs.

NOTE: THESE MAY CONTAIN SENSITIVE INFORMATION ABOUT YOUR CODEBASE.
DO NOT SHARE LOGS IF YOU ARE WORKING IN A PRIVATE REPOSITORY.

<OPTIONAL: ATTACH LOGS HERE>

Thanks @neversi
This is a duplicate of golang/go#63933
Can you use go1.22 to build the gopls? It is mitigated in 1.22.

The easiest way to rebuild the gopls with go1.22 is (since you are already with go1.21)

GOTOOLCHAIN=go1.22.3+auto go install golang.org/x/tools/gopls@latest 

You can still use go1.21 for your project with the gopls built with go1.22.