Skip to content

gopls: type checker crash with v0.15.0+ #3219

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
kikihakiem opened this issue Mar 2, 2024 · 3 comments
Closed

gopls: type checker crash with v0.15.0+ #3219

kikihakiem opened this issue Mar 2, 2024 · 3 comments
Assignees
Labels
FrozenDueToAge NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.
Milestone

Comments

@kikihakiem
Copy link

kikihakiem commented Mar 2, 2024

gopls version: v0.15.1/go1.21.0
gopls flags:
update flags: proxy
extension version: 0.41.1
environment: Visual Studio Code darwin
initialization error: undefined
issue timestamp: Sat, 02 Mar 2024 18:06:16 GMT
restart history:
Sat, 02 Mar 2024 18:06:08 GMT: activation (enabled: true)

ATTENTION: PLEASE PROVIDE THE DETAILS REQUESTED BELOW.

Describe what you observed.

gopls crashed a few seconds after opening a project with go.work in VS Code. No issue when I open a normal Go project (without go.work).

Please attach the stack trace from the crash.
A window with the error message should have popped up in the lower half of your screen.
Please copy the stack trace and error messages from that window and paste it in this issue.

Output/stacktrace
[Info  - 1:06:08 AM] 2024/03/03 01:06:08 go info for /Users/backendengineer/workspace/reference/jetstream-transport
(view type GoWorkView)
(root dir /Users/backendengineer/workspace/reference/jetstream-transport)
(go version go version go1.21.6 darwin/arm64)
(build flags: [-tags=unit,integration])
(go env: {GOOS:darwin GOARCH:arm64 GOCACHE:/Users/backendengineer/Library/Caches/go-build GOMODCACHE:/Users/backendengineer/sdk/go1.21.6/pkg/mod GOPATH:/Users/backendengineer/sdk/go1.21.6 GOPRIVATE: GOFLAGS: GO111MODULE: GoVersion:21 GoVersionOutput:go version go1.21.6 darwin/arm64
 GOWORK: GOPACKAGESDRIVER:})
(env overlay: map[])


[Info  - 1:06:08 AM] 2024/03/03 01:06:08 go/packages.Load #1
	snapshot=0
	directory=file:///Users/backendengineer/workspace/reference/jetstream-transport
	query=[/Users/backendengineer/workspace/reference/jetstream-transport/core/... /Users/backendengineer/workspace/reference/jetstream-transport/example/... /Users/backendengineer/workspace/reference/jetstream-transport/transport/http/... /Users/backendengineer/workspace/reference/jetstream-transport/transport/jetstream/... builtin]
	packages=15

[Info  - 1:06:08 AM] 2024/03/03 01:06:08 go/packages.Load #1: updating metadata for 245 packages

panic: runtime error: index out of range [4] with length 4 [recovered]
	panic: runtime error: index out of range [4] with length 4

goroutine 2822 [running]:
go/types.(*Checker).handleBailout(0x140022db680, 0x14005229838)
	/Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:336 +0x9c
panic({0x1058241c0?, 0x1400451c708?})
	/Users/backendengineer/sdk/go1.21.0/src/runtime/panic.go:914 +0x218
go/types.(*Checker).arguments(0x140022db680, 0x140050c0140, 0x14003580500, {0x0, 0x0, 0x0}, {0x0, 0x0, 0x0}, {0x140020b8cc0?, ...}, ...)
	/Users/backendengineer/sdk/go1.21.0/src/go/types/call.go:648 +0x11ac
go/types.(*Checker).callExpr(0x140022db680, 0x14000a8f400, 0x140050c0140)
	/Users/backendengineer/sdk/go1.21.0/src/go/types/call.go:302 +0x6a4
go/types.(*Checker).exprInternal(0x140022db680, {0x0, 0x0}, 0x14000a8f400, {0x105889848, 0x140050c0140?}, {0x0?, 0x0?})
	/Users/backendengineer/sdk/go1.21.0/src/go/types/expr.go:1359 +0x12dc
go/types.(*Checker).rawExpr(0x140022db680, {0x0, 0x0}, 0x14000a8f400, {0x105889848?, 0x140050c0140?}, {0x0?, 0x0?}, 0x0)
	/Users/backendengineer/sdk/go1.21.0/src/go/types/expr.go:965 +0x134
go/types.(*Checker).multiExpr(0x3?, {0x105889848?, 0x140050c0140}, 0x0)
	/Users/backendengineer/sdk/go1.21.0/src/go/types/expr.go:1517 +0x68
go/types.(*Checker).initVars(0x105750ea0?, {0x1400433c710?, 0x1, 0x1}, {0x140050b6b50?, 0x1, 0x1}, {0x0, 0x0})
	/Users/backendengineer/sdk/go1.21.0/src/go/types/assignments.go:398 +0x100
go/types.(*Checker).shortVarDecl(0x140022db680, {0x105883b40, 0x1400451c6f0}, {0x140050b6840, 0x1, 0x140050a9dd0?}, {0x140050b6b50?, 0x1, 0x1})
	/Users/backendengineer/sdk/go1.21.0/src/go/types/assignments.go:546 +0x8ac
go/types.(*Checker).stmt(0x140022db680, 0x0, {0x1058899f8?, 0x140050c0180?})
	/Users/backendengineer/sdk/go1.21.0/src/go/types/stmt.go:476 +0xb70
go/types.(*Checker).stmtList(0x14003d9e300?, 0x0, {0x14004ec0680?, 0x0?, 0x14003a8b5a8?})
	/Users/backendengineer/sdk/go1.21.0/src/go/types/stmt.go:124 +0x88
go/types.(*Checker).funcBody(0x140022db680, 0x14003d2e5a0, {0x140022dd800?, 0x1400007ec80?}, 0x140050f3ec0, 0x140050be300, {0x0, 0x0})
	/Users/backendengineer/sdk/go1.21.0/src/go/types/stmt.go:44 +0x244
go/types.(*Checker).funcDecl.func1()
	/Users/backendengineer/sdk/go1.21.0/src/go/types/decl.go:826 +0x44
go/types.(*Checker).processDelayed(0x140022db680, 0x0)
	/Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:439 +0x12c
go/types.(*Checker).checkFiles(0x140022db680, {0x140050f48e0, 0x4, 0x4})
	/Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:383 +0x1fc
go/types.(*Checker).Files(...)
	/Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:341
golang.org/x/tools/gopls/internal/cache.(*typeCheckBatch).checkPackage(0x140034616e0, {0x10588b168, 0x140026b42a0}, 0x14002dde240)
	/Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/tools/[email protected]/internal/cache/check.go:1522 +0x850
golang.org/x/tools/gopls/internal/cache.(*typeCheckBatch).handleSyntaxPackage(0x140034616e0, {0x10588b168?, 0x140026b42a0}, 0x1050fd930?, {0x14000846e40, 0x5f})
	/Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/tools/[email protected]/internal/cache/check.go:553 +0x55c
golang.org/x/tools/gopls/internal/cache.(*Snapshot).forEachPackageInternal.func2()
	/Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/tools/[email protected]/internal/cache/check.go:404 +0x34
golang.org/x/sync/errgroup.(*Group).Go.func1()
	/Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/[email protected]/errgroup/errgroup.go:78 +0x58
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 2487
	/Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/[email protected]/errgroup/errgroup.go:75 +0x98
[Info  - 1:06:09 AM] 
true
[Info  - 1:06:09 AM] 2024/03/03 01:06:09 go info for /Users/backendengineer/workspace/reference/jetstream-transport
(view type GoWorkView)
(root dir /Users/backendengineer/workspace/reference/jetstream-transport)
(go version go version go1.21.6 darwin/arm64)
(build flags: [-tags=unit,integration])
(go env: {GOOS:darwin GOARCH:arm64 GOCACHE:/Users/backendengineer/Library/Caches/go-build GOMODCACHE:/Users/backendengineer/sdk/go1.21.6/pkg/mod GOPATH:/Users/backendengineer/sdk/go1.21.6 GOPRIVATE: GOFLAGS: GO111MODULE: GoVersion:21 GoVersionOutput:go version go1.21.6 darwin/arm64
 GOWORK: GOPACKAGESDRIVER:})
(env overlay: map[])


[Info  - 1:06:09 AM] 2024/03/03 01:06:09 go/packages.Load #1
	snapshot=0
	directory=file:///Users/backendengineer/workspace/reference/jetstream-transport
	query=[/Users/backendengineer/workspace/reference/jetstream-transport/core/... /Users/backendengineer/workspace/reference/jetstream-transport/example/... /Users/backendengineer/workspace/reference/jetstream-transport/transport/http/... /Users/backendengineer/workspace/reference/jetstream-transport/transport/jetstream/... builtin]
	packages=15

[Info  - 1:06:09 AM] 2024/03/03 01:06:09 go/packages.Load #1: updating metadata for 245 packages

[Error - 1:06:10 AM] Request textDocument/semanticTokens/range failed.
  Message: semantictokens are disabled
  Code: 0 
panic: runtime error: index out of range [4] with length 4 [recovered]
	panic: runtime error: index out of range [4] with length 4

goroutine 2889 [running]:
go/types.(*Checker).handleBailout(0x14001f0a1e0, 0x14002541838)
	/Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:336 +0x9c
panic({0x1012801c0?, 0x14002ada000?})
	/Users/backendengineer/sdk/go1.21.0/src/runtime/panic.go:914 +0x218
go/types.(*Checker).arguments(0x14001f0a1e0, 0x1400020e540, 0x140021a9780, {0x0, 0x0, 0x0}, {0x0, 0x0, 0x0}, {0x14002a9f230?, ...}, ...)
	/Users/backendengineer/sdk/go1.21.0/src/go/types/call.go:648 +0x11ac
go/types.(*Checker).callExpr(0x14001f0a1e0, 0x140021e4540, 0x1400020e540)
	/Users/backendengineer/sdk/go1.21.0/src/go/types/call.go:302 +0x6a4
go/types.(*Checker).exprInternal(0x14001f0a1e0, {0x0, 0x0}, 0x140021e4540, {0x1012e5848, 0x1400020e540?}, {0x0?, 0x0?})
	/Users/backendengineer/sdk/go1.21.0/src/go/types/expr.go:1359 +0x12dc
go/types.(*Checker).rawExpr(0x14001f0a1e0, {0x0, 0x0}, 0x140021e4540, {0x1012e5848?, 0x1400020e540?}, {0x0?, 0x0?}, 0x0)
	/Users/backendengineer/sdk/go1.21.0/src/go/types/expr.go:965 +0x134
go/types.(*Checker).multiExpr(0x3?, {0x1012e5848?, 0x1400020e540}, 0x0)
	/Users/backendengineer/sdk/go1.21.0/src/go/types/expr.go:1517 +0x68
go/types.(*Checker).initVars(0x1011acea0?, {0x14002a9c2f0?, 0x1, 0x1}, {0x140005d40f0?, 0x1, 0x1}, {0x0, 0x0})
	/Users/backendengineer/sdk/go1.21.0/src/go/types/assignments.go:398 +0x100
go/types.(*Checker).shortVarDecl(0x14001f0a1e0, {0x1012dfb40, 0x14002ae5fe0}, {0x14002481d80, 0x1, 0x140023883f0?}, {0x140005d40f0?, 0x1, 0x1})
	/Users/backendengineer/sdk/go1.21.0/src/go/types/assignments.go:546 +0x8ac
go/types.(*Checker).stmt(0x14001f0a1e0, 0x0, {0x1012e59f8?, 0x1400020e5c0?})
	/Users/backendengineer/sdk/go1.21.0/src/go/types/stmt.go:476 +0xb70
go/types.(*Checker).stmtList(0x140027fe240?, 0x0, {0x14004221900?, 0x0?, 0x140008c75a8?})
	/Users/backendengineer/sdk/go1.21.0/src/go/types/stmt.go:124 +0x88
go/types.(*Checker).funcBody(0x14001f0a1e0, 0x140028d09c0, {0x14002d103a8?, 0x1400007ec80?}, 0x140020f2e00, 0x14002388b10, {0x0, 0x0})
	/Users/backendengineer/sdk/go1.21.0/src/go/types/stmt.go:44 +0x244
go/types.(*Checker).funcDecl.func1()
	/Users/backendengineer/sdk/go1.21.0/src/go/types/decl.go:826 +0x44
go/types.(*Checker).processDelayed(0x14001f0a1e0, 0x0)
	/Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:439 +0x12c
go/types.(*Checker).checkFiles(0x14001f0a1e0, {0x14001e44ee0, 0x4, 0x4})
	/Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:383 +0x1fc
go/types.(*Checker).Files(...)
	/Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:341
golang.org/x/tools/gopls/internal/cache.(*typeCheckBatch).checkPackage(0x1400235de00, {0x1012e7168, 0x140025219e0}, 0x140036730e0)
	/Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/tools/[email protected]/internal/cache/check.go:1522 +0x850
golang.org/x/tools/gopls/internal/cache.(*typeCheckBatch).handleSyntaxPackage(0x1400235de00, {0x1012e7168?, 0x140025219e0}, 0x14000592b60?, {0x1400066e4e0, 0x5f})
	/Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/tools/[email protected]/internal/cache/check.go:553 +0x55c
golang.org/x/tools/gopls/internal/cache.(*Snapshot).forEachPackageInternal.func2()
	/Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/tools/[email protected]/internal/cache/check.go:404 +0x34
golang.org/x/sync/errgroup.(*Group).Go.func1()
	/Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/[email protected]/errgroup/errgroup.go:78 +0x58
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 2569
	/Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/[email protected]/errgroup/errgroup.go:75 +0x98
[Info  - 1:06:11 AM] 
true
[Info  - 1:06:11 AM] 2024/03/03 01:06:11 go info for /Users/backendengineer/workspace/reference/jetstream-transport
(view type GoWorkView)
(root dir /Users/backendengineer/workspace/reference/jetstream-transport)
(go version go version go1.21.6 darwin/arm64)
(build flags: [-tags=unit,integration])
(go env: {GOOS:darwin GOARCH:arm64 GOCACHE:/Users/backendengineer/Library/Caches/go-build GOMODCACHE:/Users/backendengineer/sdk/go1.21.6/pkg/mod GOPATH:/Users/backendengineer/sdk/go1.21.6 GOPRIVATE: GOFLAGS: GO111MODULE: GoVersion:21 GoVersionOutput:go version go1.21.6 darwin/arm64
 GOWORK: GOPACKAGESDRIVER:})
(env overlay: map[])


[Info  - 1:06:11 AM] 2024/03/03 01:06:11 go/packages.Load #1
	snapshot=0
	directory=file:///Users/backendengineer/workspace/reference/jetstream-transport
	query=[/Users/backendengineer/workspace/reference/jetstream-transport/core/... /Users/backendengineer/workspace/reference/jetstream-transport/example/... /Users/backendengineer/workspace/reference/jetstream-transport/transport/http/... /Users/backendengineer/workspace/reference/jetstream-transport/transport/jetstream/... builtin]
	packages=15

[Info  - 1:06:11 AM] 2024/03/03 01:06:11 go/packages.Load #1: updating metadata for 245 packages

[Error - 1:06:11 AM] Request textDocument/semanticTokens/range failed.
  Message: semantictokens are disabled
  Code: 0 
[Error - 1:06:11 AM] Request textDocument/semanticTokens/full failed.
  Message: semantictokens are disabled
  Code: 0 
panic: runtime error: index out of range [4] with length 4 [recovered]
	panic: runtime error: index out of range [4] with length 4

goroutine 2800 [running]:
go/types.(*Checker).handleBailout(0x14000144960, 0x1400424f838)
	/Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:336 +0x9c
panic({0x1057d41c0?, 0x14003e7f3e0?})
	/Users/backendengineer/sdk/go1.21.0/src/runtime/panic.go:914 +0x218
go/types.(*Checker).arguments(0x14000144960, 0x140020e0900, 0x1400216c780, {0x0, 0x0, 0x0}, {0x0, 0x0, 0x0}, {0x140043c6180?, ...}, ...)
	/Users/backendengineer/sdk/go1.21.0/src/go/types/call.go:648 +0x11ac
go/types.(*Checker).callExpr(0x14000144960, 0x14002173b40, 0x140020e0900)
	/Users/backendengineer/sdk/go1.21.0/src/go/types/call.go:302 +0x6a4
go/types.(*Checker).exprInternal(0x14000144960, {0x0, 0x0}, 0x14002173b40, {0x105839848, 0x140020e0900?}, {0x0?, 0x0?})
	/Users/backendengineer/sdk/go1.21.0/src/go/types/expr.go:1359 +0x12dc
go/types.(*Checker).rawExpr(0x14000144960, {0x0, 0x0}, 0x14002173b40, {0x105839848?, 0x140020e0900?}, {0x0?, 0x0?}, 0x0)
	/Users/backendengineer/sdk/go1.21.0/src/go/types/expr.go:965 +0x134
go/types.(*Checker).multiExpr(0x3?, {0x105839848?, 0x140020e0900}, 0x0)
	/Users/backendengineer/sdk/go1.21.0/src/go/types/expr.go:1517 +0x68
go/types.(*Checker).initVars(0x105700ea0?, {0x140043a6570?, 0x1, 0x1}, {0x14003e6ab50?, 0x1, 0x1}, {0x0, 0x0})
	/Users/backendengineer/sdk/go1.21.0/src/go/types/assignments.go:398 +0x100
go/types.(*Checker).shortVarDecl(0x14000144960, {0x105833b40, 0x14003e7f3c8}, {0x14003e6a840, 0x1, 0x14003e636b0?}, {0x14003e6ab50?, 0x1, 0x1})
	/Users/backendengineer/sdk/go1.21.0/src/go/types/assignments.go:546 +0x8ac
go/types.(*Checker).stmt(0x14000144960, 0x0, {0x1058399f8?, 0x140020e0940?})
	/Users/backendengineer/sdk/go1.21.0/src/go/types/stmt.go:476 +0xb70
go/types.(*Checker).stmtList(0x14002ca7a40?, 0x0, {0x14003e11280?, 0x0?, 0x14003e8b5a8?})
	/Users/backendengineer/sdk/go1.21.0/src/go/types/stmt.go:124 +0x88
go/types.(*Checker).funcBody(0x14000144960, 0x14002ca47e0, {0x1400301fdb8?, 0x14000118c30?}, 0x14002109840, 0x14003e63bc0, {0x0, 0x0})
	/Users/backendengineer/sdk/go1.21.0/src/go/types/stmt.go:44 +0x244
go/types.(*Checker).funcDecl.func1()
	/Users/backendengineer/sdk/go1.21.0/src/go/types/decl.go:826 +0x44
go/types.(*Checker).processDelayed(0x14000144960, 0x0)
	/Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:439 +0x12c
go/types.(*Checker).checkFiles(0x14000144960, {0x1400421eac0, 0x4, 0x4})
	/Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:383 +0x1fc
go/types.(*Checker).Files(...)
	/Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:341
golang.org/x/tools/gopls/internal/cache.(*typeCheckBatch).checkPackage(0x14001f92300, {0x10583b168, 0x14002d44840}, 0x1400233d0e0)
	/Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/tools/[email protected]/internal/cache/check.go:1522 +0x850
golang.org/x/tools/gopls/internal/cache.(*typeCheckBatch).handleSyntaxPackage(0x14001f92300, {0x10583b168?, 0x14002d44840}, 0x1050ad930?, {0x140006eb200, 0x5f})
	/Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/tools/[email protected]/internal/cache/check.go:553 +0x55c
golang.org/x/tools/gopls/internal/cache.(*Snapshot).forEachPackageInternal.func2()
	/Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/tools/[email protected]/internal/cache/check.go:404 +0x34
golang.org/x/sync/errgroup.(*Group).Go.func1()
	/Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/[email protected]/errgroup/errgroup.go:78 +0x58
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 2529
	/Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/[email protected]/errgroup/errgroup.go:75 +0x98
[Info  - 1:06:12 AM] 
true
[Info  - 1:06:12 AM] 2024/03/03 01:06:12 go info for /Users/backendengineer/workspace/reference/jetstream-transport
(view type GoWorkView)
(root dir /Users/backendengineer/workspace/reference/jetstream-transport)
(go version go version go1.21.6 darwin/arm64)
(build flags: [-tags=unit,integration])
(go env: {GOOS:darwin GOARCH:arm64 GOCACHE:/Users/backendengineer/Library/Caches/go-build GOMODCACHE:/Users/backendengineer/sdk/go1.21.6/pkg/mod GOPATH:/Users/backendengineer/sdk/go1.21.6 GOPRIVATE: GOFLAGS: GO111MODULE: GoVersion:21 GoVersionOutput:go version go1.21.6 darwin/arm64
 GOWORK: GOPACKAGESDRIVER:})
(env overlay: map[])


[Info  - 1:06:12 AM] 2024/03/03 01:06:12 go/packages.Load #1
	snapshot=0
	directory=file:///Users/backendengineer/workspace/reference/jetstream-transport
	query=[/Users/backendengineer/workspace/reference/jetstream-transport/core/... /Users/backendengineer/workspace/reference/jetstream-transport/example/... /Users/backendengineer/workspace/reference/jetstream-transport/transport/http/... /Users/backendengineer/workspace/reference/jetstream-transport/transport/jetstream/... builtin]
	packages=15

[Info  - 1:06:12 AM] 2024/03/03 01:06:12 go/packages.Load #1: updating metadata for 245 packages

[Error - 1:06:12 AM] Request textDocument/semanticTokens/range failed.
  Message: semantictokens are disabled
  Code: 0 
[Error - 1:06:12 AM] Request textDocument/semanticTokens/full failed.
  Message: semantictokens are disabled
  Code: 0 
panic: runtime error: index out of range [4] with length 4 [recovered]
	panic: runtime error: index out of range [4] with length 4

goroutine 3483 [running]:
go/types.(*Checker).handleBailout(0x140030b43c0, 0x1400516f838)
	/Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:336 +0x9c
panic({0x101b841c0?, 0x14005172fc0?})
	/Users/backendengineer/sdk/go1.21.0/src/runtime/panic.go:914 +0x218
go/types.(*Checker).arguments(0x140030b43c0, 0x1400206cec0, 0x1400214d340, {0x0, 0x0, 0x0}, {0x0, 0x0, 0x0}, {0x1400579b080?, ...}, ...)
	/Users/backendengineer/sdk/go1.21.0/src/go/types/call.go:648 +0x11ac
go/types.(*Checker).callExpr(0x140030b43c0, 0x14002166840, 0x1400206cec0)
	/Users/backendengineer/sdk/go1.21.0/src/go/types/call.go:302 +0x6a4
go/types.(*Checker).exprInternal(0x140030b43c0, {0x0, 0x0}, 0x14002166840, {0x101be9848, 0x1400206cec0?}, {0x0?, 0x0?})
	/Users/backendengineer/sdk/go1.21.0/src/go/types/expr.go:1359 +0x12dc
go/types.(*Checker).rawExpr(0x140030b43c0, {0x0, 0x0}, 0x14002166840, {0x101be9848?, 0x1400206cec0?}, {0x0?, 0x0?}, 0x0)
	/Users/backendengineer/sdk/go1.21.0/src/go/types/expr.go:965 +0x134
go/types.(*Checker).multiExpr(0x12928fa48?, {0x101be9848?, 0x1400206cec0}, 0x0)
	/Users/backendengineer/sdk/go1.21.0/src/go/types/expr.go:1517 +0x68
go/types.(*Checker).initVars(0x101ab0ea0?, {0x14004e7d7f0?, 0x1, 0x1}, {0x14004140960?, 0x1, 0x1}, {0x0, 0x0})
	/Users/backendengineer/sdk/go1.21.0/src/go/types/assignments.go:398 +0x100
go/types.(*Checker).shortVarDecl(0x140030b43c0, {0x101be3b40, 0x14005172fa8}, {0x14004140650, 0x1, 0x1400413e690?}, {0x14004140960?, 0x1, 0x1})
	/Users/backendengineer/sdk/go1.21.0/src/go/types/assignments.go:546 +0x8ac
go/types.(*Checker).stmt(0x140030b43c0, 0x0, {0x101be99f8?, 0x1400206cf00?})
	/Users/backendengineer/sdk/go1.21.0/src/go/types/stmt.go:476 +0xb70
go/types.(*Checker).stmtList(0x140051460c0?, 0x0, {0x14000398900?, 0x0?, 0x140042555a8?})
	/Users/backendengineer/sdk/go1.21.0/src/go/types/stmt.go:124 +0x88
go/types.(*Checker).funcBody(0x140030b43c0, 0x1400513e300, {0x14004110318?, 0x1400007ec80?}, 0x140020b3340, 0x1400413eba0, {0x0, 0x0})
	/Users/backendengineer/sdk/go1.21.0/src/go/types/stmt.go:44 +0x244
go/types.(*Checker).funcDecl.func1()
	/Users/backendengineer/sdk/go1.21.0/src/go/types/decl.go:826 +0x44
go/types.(*Checker).processDelayed(0x140030b43c0, 0x0)
	/Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:439 +0x12c
go/types.(*Checker).checkFiles(0x140030b43c0, {0x1400458a9e0, 0x4, 0x4})
	/Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:383 +0x1fc
go/types.(*Checker).Files(...)
	/Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:341
golang.org/x/tools/gopls/internal/cache.(*typeCheckBatch).checkPackage(0x1400283fe00, {0x101beb168, 0x140013dfaa0}, 0x1400212b9e0)
	/Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/tools/[email protected]/internal/cache/check.go:1522 +0x850
golang.org/x/tools/gopls/internal/cache.(*typeCheckBatch).handleSyntaxPackage(0x1400283fe00, {0x101beb168?, 0x140013dfaa0}, 0x1012963dc?, {0x1400070d1a0, 0x5f})
	/Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/tools/[email protected]/internal/cache/check.go:553 +0x55c
golang.org/x/tools/gopls/internal/cache.(*Snapshot).forEachPackageInternal.func2()
	/Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/tools/[email protected]/internal/cache/check.go:404 +0x34
golang.org/x/sync/errgroup.(*Group).Go.func1()
	/Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/[email protected]/errgroup/errgroup.go:78 +0x58
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 3177
	/Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/[email protected]/errgroup/errgroup.go:75 +0x98
[Info  - 1:06:14 AM] 
true
[Info  - 1:06:14 AM] 2024/03/03 01:06:14 go info for /Users/backendengineer/workspace/reference/jetstream-transport
(view type GoWorkView)
(root dir /Users/backendengineer/workspace/reference/jetstream-transport)
(go version go version go1.21.6 darwin/arm64)
(build flags: [-tags=unit,integration])
(go env: {GOOS:darwin GOARCH:arm64 GOCACHE:/Users/backendengineer/Library/Caches/go-build GOMODCACHE:/Users/backendengineer/sdk/go1.21.6/pkg/mod GOPATH:/Users/backendengineer/sdk/go1.21.6 GOPRIVATE: GOFLAGS: GO111MODULE: GoVersion:21 GoVersionOutput:go version go1.21.6 darwin/arm64
 GOWORK: GOPACKAGESDRIVER:})
(env overlay: map[])


[Info  - 1:06:14 AM] 2024/03/03 01:06:14 go/packages.Load #1
	snapshot=0
	directory=file:///Users/backendengineer/workspace/reference/jetstream-transport
	query=[/Users/backendengineer/workspace/reference/jetstream-transport/core/... /Users/backendengineer/workspace/reference/jetstream-transport/example/... /Users/backendengineer/workspace/reference/jetstream-transport/transport/http/... /Users/backendengineer/workspace/reference/jetstream-transport/transport/jetstream/... builtin]
	packages=15

[Info  - 1:06:14 AM] 2024/03/03 01:06:14 go/packages.Load #1: updating metadata for 245 packages

[Error - 1:06:14 AM] Request textDocument/semanticTokens/range failed.
  Message: semantictokens are disabled
  Code: 0 
[Error - 1:06:15 AM] Request textDocument/semanticTokens/full failed.
  Message: semantictokens are disabled
  Code: 0 
panic: runtime error: index out of range [4] with length 4 [recovered]
	panic: runtime error: index out of range [4] with length 4

goroutine 3835 [running]:
go/types.(*Checker).handleBailout(0x140026aa780, 0x14004a35838)
	/Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:336 +0x9c
panic({0x10563c1c0?, 0x14004be00c0?})
	/Users/backendengineer/sdk/go1.21.0/src/runtime/panic.go:914 +0x218
go/types.(*Checker).arguments(0x140026aa780, 0x14001f47640, 0x14001fb1740, {0x0, 0x0, 0x0}, {0x0, 0x0, 0x0}, {0x14004bdc3c0?, ...}, ...)
	/Users/backendengineer/sdk/go1.21.0/src/go/types/call.go:648 +0x11ac
go/types.(*Checker).callExpr(0x140026aa780, 0x14001fba680, 0x14001f47640)
	/Users/backendengineer/sdk/go1.21.0/src/go/types/call.go:302 +0x6a4
go/types.(*Checker).exprInternal(0x140026aa780, {0x0, 0x0}, 0x14001fba680, {0x1056a1848, 0x14001f47640?}, {0x0?, 0x0?})
	/Users/backendengineer/sdk/go1.21.0/src/go/types/expr.go:1359 +0x12dc
go/types.(*Checker).rawExpr(0x140026aa780, {0x0, 0x0}, 0x14001fba680, {0x1056a1848?, 0x14001f47640?}, {0x0?, 0x0?}, 0x0)
	/Users/backendengineer/sdk/go1.21.0/src/go/types/expr.go:965 +0x134
go/types.(*Checker).multiExpr(0x3?, {0x1056a1848?, 0x14001f47640}, 0x0)
	/Users/backendengineer/sdk/go1.21.0/src/go/types/expr.go:1517 +0x68
go/types.(*Checker).initVars(0x105568ea0?, {0x14004117610?, 0x1, 0x1}, {0x14003eb41b0?, 0x1, 0x1}, {0x0, 0x0})
	/Users/backendengineer/sdk/go1.21.0/src/go/types/assignments.go:398 +0x100
go/types.(*Checker).shortVarDecl(0x140026aa780, {0x10569bb40, 0x14004be00a8}, {0x14003e71ea0, 0x1, 0x14003eab5f0?}, {0x14003eb41b0?, 0x1, 0x1})
	/Users/backendengineer/sdk/go1.21.0/src/go/types/assignments.go:546 +0x8ac
go/types.(*Checker).stmt(0x140026aa780, 0x0, {0x1056a19f8?, 0x14001f47680?})
	/Users/backendengineer/sdk/go1.21.0/src/go/types/stmt.go:476 +0xb70
go/types.(*Checker).stmtList(0x140041152c0?, 0x0, {0x140009e2a00?, 0x0?, 0x14003b9b5a8?})
	/Users/backendengineer/sdk/go1.21.0/src/go/types/stmt.go:124 +0x88
go/types.(*Checker).funcBody(0x140026aa780, 0x14004111500, {0x140046af7b8?, 0x1400007ec80?}, 0x14001f6ea00, 0x14003eabb00, {0x0, 0x0})
	/Users/backendengineer/sdk/go1.21.0/src/go/types/stmt.go:44 +0x244
go/types.(*Checker).funcDecl.func1()
	/Users/backendengineer/sdk/go1.21.0/src/go/types/decl.go:826 +0x44
go/types.(*Checker).processDelayed(0x140026aa780, 0x0)
	/Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:439 +0x12c
go/types.(*Checker).checkFiles(0x140026aa780, {0x14002be9020, 0x4, 0x4})
	/Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:383 +0x1fc
go/types.(*Checker).Files(...)
	/Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:341
golang.org/x/tools/gopls/internal/cache.(*typeCheckBatch).checkPackage(0x140030c4480, {0x1056a3168, 0x14001970000}, 0x140026e7680)
	/Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/tools/[email protected]/internal/cache/check.go:1522 +0x850
golang.org/x/tools/gopls/internal/cache.(*typeCheckBatch).handleSyntaxPackage(0x140030c4480, {0x1056a3168?, 0x14001970000}, 0x104f15930?, {0x140006df0e0, 0x5f})
	/Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/tools/[email protected]/internal/cache/check.go:553 +0x55c
golang.org/x/tools/gopls/internal/cache.(*Snapshot).forEachPackageInternal.func2()
	/Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/tools/[email protected]/internal/cache/check.go:404 +0x34
golang.org/x/sync/errgroup.(*Group).Go.func1()
	/Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/[email protected]/errgroup/errgroup.go:78 +0x58
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 3588
	/Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/[email protected]/errgroup/errgroup.go:75 +0x98
[Error - 1:06:16 AM] 

Failed to auto-collect gopls trace: incomplete panic trace.

gopls stats -anon gopls stats -anon failed after running for 389ms

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>

@gopherbot gopherbot added this to the Untriaged milestone Mar 2, 2024
@findleyr findleyr added the NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. label Mar 3, 2024
@findleyr
Copy link
Member

findleyr commented Mar 3, 2024

Thanks very much for the report. If this is reproducible, we should be able to fix.

I'll look into this more during work hours tomorrow, but could you try installing [email protected] to see if the issue disappears? That will isolate the regression to [email protected]+

go install golang.org/x/tools/[email protected]

Thanks.

@kikihakiem
Copy link
Author

Thank you for following up my report. Yes, I can confirm gopls v0.14.2 works properly.

@findleyr findleyr changed the title gopls: automated issue report (crash) gopls: type checker crash with v0.15.0+ Mar 4, 2024
@adonovan adonovan self-assigned this Mar 4, 2024
@adonovan
Copy link
Member

adonovan commented Mar 4, 2024

This is a dup of golang/go#61931, fixed by https://go.dev/cl/519456.

Rebuilding gopls with go1.22 should fix the problem.

@adonovan adonovan closed this as completed Mar 4, 2024
@golang golang locked and limited conversation to collaborators Mar 4, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
FrozenDueToAge NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.
Projects
None yet
Development

No branches or pull requests

4 participants