Skip to content
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

x/tools/gopls: panic in OriginMethod #61196

Closed
mrtroian opened this issue Jun 29, 2023 · 7 comments
Closed

x/tools/gopls: panic in OriginMethod #61196

mrtroian opened this issue Jun 29, 2023 · 7 comments
Assignees
Labels
gopls Issues related to the Go language server, gopls. Tools This label describes issues relating to any tools in the x/tools repository. WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided.
Milestone

Comments

@mrtroian
Copy link

gopls version: v0.12.4 (go1.20.5)
gopls flags:
update flags: proxy
extension version: 0.39.0
go version: 1.20.5
environment: Visual Studio Code darwin
initialization error: undefined
issue timestamp: Thu, 29 Jun 2023 19:06:21 GMT
restart history:
Thu, 29 Jun 2023 19:06:09 GMT: activation (enabled: true)

ATTENTION: PLEASE PROVIDE THE DETAILS REQUESTED BELOW.

Describe what you observed.

gopls server started crashing after update. It crashes right after launching VSCode or installing Go extension.

I've tried:

  • downgrade to previous release of gopls
  • downgrade to previous of that
  • update go (1.19.8->1.20.5)
  • Go extension nightly version
  • Update/Reinstall VSCode
  • reinstall gopls via CLI
  • Checked out other issues on Github, a lot of crashes, nothing that looks like my case
panic: interface conversion: types.Object is nil, not *types.Func

goroutine 5265 [running]:
golang.org/x/tools/internal/typeparams.OriginMethod(0x14009adc240)
	  common.go:128  0x258
golang.org/x/tools/gopls/internal/lsp/source/methodsets.(*indexBuilder).build.func2(0x14009a59f00, 0x14009adc240)
	  methodsets.go:248  0x1c4
golang.org/x/tools/gopls/internal/lsp/source/methodsets.methodSetInfo({0x105076dd0, 0x14007dd6d90}, 0x140041dfb08)
	  methodsets.go:309  0x1f0
golang.org/x/tools/gopls/internal/lsp/source/methodsets.(*indexBuilder).build(0x140041dfbe0, 0x140037f9940, 0x14009a8c640)
	  methodsets.go:261  0x4f0
golang.org/x/tools/gopls/internal/lsp/source/methodsets.NewIndex(...)
	  methodsets.go:98
golang.org/x/tools/gopls/internal/lsp/cache.(*syntaxPackage).methodsets.func1()
	  pkg.go:74  0x40
sync.(*Once).doSlow(0x140040e1ca8%3F, 0x1044a7b10%3F)
	  once.go:74  0x104
sync.(*Once).Do(...)
	  once.go:65
golang.org/x/tools/gopls/internal/lsp/cache.(*syntaxPackage).methodsets(0x14007db60f0%3F)
	  pkg.go:73  0x50
golang.org/x/tools/gopls/internal/lsp/cache.(*typeCheckBatch).checkPackage.func1()
	  check.go:649  0xe4
created by golang.org/x/tools/gopls/internal/lsp/cache.(*typeCheckBatch).checkPackage
	  check.go:646  0x228
[Error - 22:06:19] 

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>

@mrtroian mrtroian changed the title gopls: automated issue report (crash) gopls: automated issue report (crash) (panic: interface conversion) (stack trace included) Jun 29, 2023
@mrtroian
Copy link
Author

I would be grateful for a tip on how to make this work on any version (except for switching to vim).

@mrtroian
Copy link
Author

To my surprise, only my "favourite" project makes gopls panic. I've created hello-world app, go.mod, go.work and everything seems fine in that window.

gopls server output (the one that's panicking):

[Info  - 22:28:13] 2023/06/29 22:28:13 go info for /Users/mr.troian/path/to/project
(go dir /Users/mr.troian/path/to/project)
(go version go version go1.20.5 darwin/arm64)
(valid build configuration = true)
(build flags: [])
(selected go env: [GO111MODULE=, GOCACHE=/Users/mr.troian/Library/Caches/go-build, GOFLAGS=, GOMODCACHE=/Users/mr.troian/go/pkg/mod, GOPATH=/Users/mr.troian/go, GOPRIVATE=github.com/workstuff/*, GOROOT=/Users/mr.troian/sdk/go1.20.5, GOWORK=/Users/mr.troian/path/to/project/go.work])


[Info  - 22:28:14] 2023/06/29 22:28:14 go/packages.Load golang/vscode-go#1
	snapshot=0
	directory=file:///Users/mr.troian/path/to/project
	query=[/Users/mr.troian/path/to/project/blocks/alpha/... /Users/mr.troian/path/to/project/omega/... /Users/mr.troian/path/to/project/data/tools/go/... builtin]
	packages=180

[Info  - 22:28:14] 2023/06/29 22:28:14 go/packages.Load golang/vscode-go#1: updating metadata for 599 packages

[Error - 22:28:15] Request textDocument/semanticTokens/range failed.
  Message: semantictokens are disabled
  Code: 0 
[Error - 22:28:15] Request textDocument/semanticTokens/full failed.
  Message: semantictokens are disabled
  Code: 0 
[Error - 22:28:16] 2023/06/29 22:28:16 tidy: diagnosing file:///Users/mr.troian/path/to/project/data/tools/go/go.mod: err: exit status 1: stderr: go: finding module for package github.com/sourcegraph/conc/pool
downloader imports
	github.com/sourcegraph/conc/pool: cannot find module providing package github.com/sourcegraph/conc/pool: module lookup disabled by GOPROXY=off


panic: interface conversion: types.Object is nil, not *types.Func

goroutine 5398 [running]:
golang.org/x/tools/internal/typeparams.OriginMethod(0x1400a90f9e0)
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools@v0.10.1-0.20230622221742-0622ad2359a7/internal/typeparams/common.go:128 +0x258
golang.org/x/tools/gopls/internal/lsp/source/methodsets.(*indexBuilder).build.func2(0x1400acb3040, 0x1400a90f9e0)
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/source/methodsets/methodsets.go:248 +0x1c4
golang.org/x/tools/gopls/internal/lsp/source/methodsets.methodSetInfo({0x102e9edd0, 0x14009f977a0}, 0x14004d51b08)
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/source/methodsets/methodsets.go:309 +0x1f0
golang.org/x/tools/gopls/internal/lsp/source/methodsets.(*indexBuilder).build(0x14004d51be0, 0x14004716d40, 0x14009fdea00)
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/source/methodsets/methodsets.go:261 +0x4f0
golang.org/x/tools/gopls/internal/lsp/source/methodsets.NewIndex(...)
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/source/methodsets/methodsets.go:98
golang.org/x/tools/gopls/internal/lsp/cache.(*syntaxPackage).methodsets.func1()
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/cache/pkg.go:74 +0x40
sync.(*Once).doSlow(0x14004d51f00?, 0x103451680?)
	/Users/mr.troian/sdk/go1.20.5/src/sync/once.go:74 +0x104
sync.(*Once).Do(...)
	/Users/mr.troian/sdk/go1.20.5/src/sync/once.go:65
golang.org/x/tools/gopls/internal/lsp/cache.(*syntaxPackage).methodsets(0x140078cc2d0?)
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/cache/pkg.go:73 +0x50
golang.org/x/tools/gopls/internal/lsp/cache.(*typeCheckBatch).checkPackage.func1()
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/cache/check.go:649 +0xe4
created by golang.org/x/tools/gopls/internal/lsp/cache.(*typeCheckBatch).checkPackage
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/cache/check.go:646 +0x228
[Info  - 22:28:16] 
true
[Info  - 22:28:16] 2023/06/29 22:28:16 go info for /Users/mr.troian/path/to/project
(go dir /Users/mr.troian/path/to/project)
(go version go version go1.20.5 darwin/arm64)
(valid build configuration = true)
(build flags: [])
(selected go env: [GO111MODULE=, GOCACHE=/Users/mr.troian/Library/Caches/go-build, GOFLAGS=, GOMODCACHE=/Users/mr.troian/go/pkg/mod, GOPATH=/Users/mr.troian/go, GOPRIVATE=github.com/workstuff/*, GOROOT=/Users/mr.troian/sdk/go1.20.5, GOWORK=/Users/mr.troian/path/to/project/go.work])


[Info  - 22:28:16] 2023/06/29 22:28:16 go/packages.Load golang/vscode-go#1
	snapshot=0
	directory=file:///Users/mr.troian/path/to/project
	query=[/Users/mr.troian/path/to/project/blocks/alpha/... /Users/mr.troian/path/to/project/omega/... /Users/mr.troian/path/to/project/data/tools/go/... builtin]
	packages=180

[Info  - 22:28:16] 2023/06/29 22:28:16 go/packages.Load golang/vscode-go#1: updating metadata for 599 packages

[Error - 22:28:16] Request textDocument/semanticTokens/range failed.
  Message: semantictokens are disabled
  Code: 0 
[Error - 22:28:16] Request textDocument/semanticTokens/full failed.
  Message: semantictokens are disabled
  Code: 0 
[Error - 22:28:18] 2023/06/29 22:28:18 tidy: diagnosing file:///Users/mr.troian/path/to/project/data/tools/go/go.mod: err: exit status 1: stderr: go: finding module for package github.com/sourcegraph/conc/pool
downloader imports
	github.com/sourcegraph/conc/pool: cannot find module providing package github.com/sourcegraph/conc/pool: module lookup disabled by GOPROXY=off


panic: interface conversion: types.Object is nil, not *types.Func

goroutine 5177 [running]:
golang.org/x/tools/internal/typeparams.OriginMethod(0x14009fdf140)
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools@v0.10.1-0.20230622221742-0622ad2359a7/internal/typeparams/common.go:128 +0x258
golang.org/x/tools/gopls/internal/lsp/source/methodsets.(*indexBuilder).build.func2(0x1400c21ea40, 0x14009fdf140)
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/source/methodsets/methodsets.go:248 +0x1c4
golang.org/x/tools/gopls/internal/lsp/source/methodsets.methodSetInfo({0x100f4add0, 0x14009fce460}, 0x140045d3b08)
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/source/methodsets/methodsets.go:309 +0x1f0
golang.org/x/tools/gopls/internal/lsp/source/methodsets.(*indexBuilder).build(0x140045d3be0, 0x14005386080, 0x1400964be50)
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/source/methodsets/methodsets.go:261 +0x4f0
golang.org/x/tools/gopls/internal/lsp/source/methodsets.NewIndex(...)
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/source/methodsets/methodsets.go:98
golang.org/x/tools/gopls/internal/lsp/cache.(*syntaxPackage).methodsets.func1()
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/cache/pkg.go:74 +0x40
sync.(*Once).doSlow(0x140045d3f00?, 0x1014fd680?)
	/Users/mr.troian/sdk/go1.20.5/src/sync/once.go:74 +0x104
sync.(*Once).Do(...)
	/Users/mr.troian/sdk/go1.20.5/src/sync/once.go:65
golang.org/x/tools/gopls/internal/lsp/cache.(*syntaxPackage).methodsets(0x14009fdc000?)
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/cache/pkg.go:73 +0x50
golang.org/x/tools/gopls/internal/lsp/cache.(*typeCheckBatch).checkPackage.func1()
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/cache/check.go:649 +0xe4
created by golang.org/x/tools/gopls/internal/lsp/cache.(*typeCheckBatch).checkPackage
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/cache/check.go:646 +0x228
[Info  - 22:28:18] 
true
[Info  - 22:28:18] 2023/06/29 22:28:18 go info for /Users/mr.troian/path/to/project
(go dir /Users/mr.troian/path/to/project)
(go version go version go1.20.5 darwin/arm64)
(valid build configuration = true)
(build flags: [])
(selected go env: [GO111MODULE=, GOCACHE=/Users/mr.troian/Library/Caches/go-build, GOFLAGS=, GOMODCACHE=/Users/mr.troian/go/pkg/mod, GOPATH=/Users/mr.troian/go, GOPRIVATE=github.com/workstuff/*, GOROOT=/Users/mr.troian/sdk/go1.20.5, GOWORK=/Users/mr.troian/path/to/project/go.work])


[Info  - 22:28:18] 2023/06/29 22:28:18 go/packages.Load golang/vscode-go#1
	snapshot=0
	directory=file:///Users/mr.troian/path/to/project
	query=[/Users/mr.troian/path/to/project/blocks/alpha/... /Users/mr.troian/path/to/project/omega/... /Users/mr.troian/path/to/project/data/tools/go/... builtin]
	packages=180

[Info  - 22:28:18] 2023/06/29 22:28:18 go/packages.Load golang/vscode-go#1: updating metadata for 599 packages

[Error - 22:28:18] Request textDocument/semanticTokens/range failed.
  Message: semantictokens are disabled
  Code: 0 
[Error - 22:28:18] Request textDocument/semanticTokens/full failed.
  Message: semantictokens are disabled
  Code: 0 
[Error - 22:28:19] 2023/06/29 22:28:19 tidy: diagnosing file:///Users/mr.troian/path/to/project/data/tools/go/go.mod: err: exit status 1: stderr: go: finding module for package github.com/sourcegraph/conc/pool
downloader imports
	github.com/sourcegraph/conc/pool: cannot find module providing package github.com/sourcegraph/conc/pool: module lookup disabled by GOPROXY=off


panic: interface conversion: types.Object is nil, not *types.Func

goroutine 5320 [running]:
golang.org/x/tools/internal/typeparams.OriginMethod(0x140092def00)
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools@v0.10.1-0.20230622221742-0622ad2359a7/internal/typeparams/common.go:128 +0x258
golang.org/x/tools/gopls/internal/lsp/source/methodsets.(*indexBuilder).build.func2(0x14009bc2740, 0x140092def00)
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/source/methodsets/methodsets.go:248 +0x1c4
golang.org/x/tools/gopls/internal/lsp/source/methodsets.methodSetInfo({0x10140edd0, 0x14007483260}, 0x14004f6db08)
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/source/methodsets/methodsets.go:309 +0x1f0
golang.org/x/tools/gopls/internal/lsp/source/methodsets.(*indexBuilder).build(0x14004f6dbe0, 0x1400770fd00, 0x14007c4cfa0)
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/source/methodsets/methodsets.go:261 +0x4f0
golang.org/x/tools/gopls/internal/lsp/source/methodsets.NewIndex(...)
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/source/methodsets/methodsets.go:98
golang.org/x/tools/gopls/internal/lsp/cache.(*syntaxPackage).methodsets.func1()
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/cache/pkg.go:74 +0x40
sync.(*Once).doSlow(0x1?, 0x140055334a0?)
	/Users/mr.troian/sdk/go1.20.5/src/sync/once.go:74 +0x104
sync.(*Once).Do(...)
	/Users/mr.troian/sdk/go1.20.5/src/sync/once.go:65
golang.org/x/tools/gopls/internal/lsp/cache.(*syntaxPackage).methodsets(0x14004f18960?)
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/cache/pkg.go:73 +0x50
golang.org/x/tools/gopls/internal/lsp/cache.(*typeCheckBatch).checkPackage.func1()
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/cache/check.go:649 +0xe4
created by golang.org/x/tools/gopls/internal/lsp/cache.(*typeCheckBatch).checkPackage
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/cache/check.go:646 +0x228
[Info  - 22:28:19] 
true
[Info  - 22:28:20] 2023/06/29 22:28:20 go info for /Users/mr.troian/path/to/project
(go dir /Users/mr.troian/path/to/project)
(go version go version go1.20.5 darwin/arm64)
(valid build configuration = true)
(build flags: [])
(selected go env: [GO111MODULE=, GOCACHE=/Users/mr.troian/Library/Caches/go-build, GOFLAGS=, GOMODCACHE=/Users/mr.troian/go/pkg/mod, GOPATH=/Users/mr.troian/go, GOPRIVATE=github.com/workstuff/*, GOROOT=/Users/mr.troian/sdk/go1.20.5, GOWORK=/Users/mr.troian/path/to/project/go.work])


[Info  - 22:28:20] 2023/06/29 22:28:20 go/packages.Load golang/vscode-go#1
	snapshot=0
	directory=file:///Users/mr.troian/path/to/project
	query=[/Users/mr.troian/path/to/project/blocks/alpha/... /Users/mr.troian/path/to/project/omega/... /Users/mr.troian/path/to/project/data/tools/go/... builtin]
	packages=180

[Info  - 22:28:20] 2023/06/29 22:28:20 go/packages.Load golang/vscode-go#1: updating metadata for 599 packages

[Error - 22:28:20] Request textDocument/semanticTokens/range failed.
  Message: semantictokens are disabled
  Code: 0 
[Error - 22:28:20] Request textDocument/semanticTokens/full failed.
  Message: semantictokens are disabled
  Code: 0 
[Error - 22:28:21] 2023/06/29 22:28:21 tidy: diagnosing file:///Users/mr.troian/path/to/project/data/tools/go/go.mod: err: exit status 1: stderr: go: finding module for package github.com/sourcegraph/conc/pool
downloader imports
	github.com/sourcegraph/conc/pool: cannot find module providing package github.com/sourcegraph/conc/pool: module lookup disabled by GOPROXY=off


panic: interface conversion: types.Object is nil, not *types.Func

goroutine 4783 [running]:
golang.org/x/tools/internal/typeparams.OriginMethod(0x14005b1f1a0)
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools@v0.10.1-0.20230622221742-0622ad2359a7/internal/typeparams/common.go:128 +0x258
golang.org/x/tools/gopls/internal/lsp/source/methodsets.(*indexBuilder).build.func2(0x14006b9c3c0, 0x14005b1f1a0)
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/source/methodsets/methodsets.go:248 +0x1c4
golang.org/x/tools/gopls/internal/lsp/source/methodsets.methodSetInfo({0x102d7add0, 0x140079d3e30}, 0x14004895b08)
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/source/methodsets/methodsets.go:309 +0x1f0
golang.org/x/tools/gopls/internal/lsp/source/methodsets.(*indexBuilder).build(0x14004895be0, 0x14004afaf00, 0x14007992f00)
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/source/methodsets/methodsets.go:261 +0x4f0
golang.org/x/tools/gopls/internal/lsp/source/methodsets.NewIndex(...)
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/source/methodsets/methodsets.go:98
golang.org/x/tools/gopls/internal/lsp/cache.(*syntaxPackage).methodsets.func1()
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/cache/pkg.go:74 +0x40
sync.(*Once).doSlow(0x140003a2ca8?, 0x1021abb10?)
	/Users/mr.troian/sdk/go1.20.5/src/sync/once.go:74 +0x104
sync.(*Once).Do(...)
	/Users/mr.troian/sdk/go1.20.5/src/sync/once.go:65
golang.org/x/tools/gopls/internal/lsp/cache.(*syntaxPackage).methodsets(0x140079961e0?)
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/cache/pkg.go:73 +0x50
golang.org/x/tools/gopls/internal/lsp/cache.(*typeCheckBatch).checkPackage.func1()
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/cache/check.go:649 +0xe4
created by golang.org/x/tools/gopls/internal/lsp/cache.(*typeCheckBatch).checkPackage
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/cache/check.go:646 +0x228
[Info  - 22:28:21] 
true
[Info  - 22:28:21] 2023/06/29 22:28:21 go info for /Users/mr.troian/path/to/project
(go dir /Users/mr.troian/path/to/project)
(go version go version go1.20.5 darwin/arm64)
(valid build configuration = true)
(build flags: [])
(selected go env: [GO111MODULE=, GOCACHE=/Users/mr.troian/Library/Caches/go-build, GOFLAGS=, GOMODCACHE=/Users/mr.troian/go/pkg/mod, GOPATH=/Users/mr.troian/go, GOPRIVATE=github.com/workstuff/*, GOROOT=/Users/mr.troian/sdk/go1.20.5, GOWORK=/Users/mr.troian/path/to/project/go.work])


[Info  - 22:28:22] 2023/06/29 22:28:22 go/packages.Load golang/vscode-go#1
	snapshot=0
	directory=file:///Users/mr.troian/path/to/project
	query=[/Users/mr.troian/path/to/project/blocks/alpha/... /Users/mr.troian/path/to/project/omega/... /Users/mr.troian/path/to/project/data/tools/go/... builtin]
	packages=180

[Info  - 22:28:22] 2023/06/29 22:28:22 go/packages.Load golang/vscode-go#1: updating metadata for 599 packages

[Error - 22:28:22] Request textDocument/semanticTokens/range failed.
  Message: semantictokens are disabled
  Code: 0 
[Error - 22:28:22] Request textDocument/semanticTokens/full failed.
  Message: semantictokens are disabled
  Code: 0 
[Error - 22:28:23] 2023/06/29 22:28:23 tidy: diagnosing file:///Users/mr.troian/path/to/project/data/tools/go/go.mod: err: exit status 1: stderr: go: finding module for package github.com/sourcegraph/conc/pool
downloader imports
	github.com/sourcegraph/conc/pool: cannot find module providing package github.com/sourcegraph/conc/pool: module lookup disabled by GOPROXY=off


panic: interface conversion: types.Object is nil, not *types.Func

goroutine 4954 [running]:
golang.org/x/tools/internal/typeparams.OriginMethod(0x14009922d20)
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools@v0.10.1-0.20230622221742-0622ad2359a7/internal/typeparams/common.go:128 +0x258
golang.org/x/tools/gopls/internal/lsp/source/methodsets.(*indexBuilder).build.func2(0x1400a042980, 0x14009922d20)
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/source/methodsets/methodsets.go:248 +0x1c4
golang.org/x/tools/gopls/internal/lsp/source/methodsets.methodSetInfo({0x103362dd0, 0x14006e1b570}, 0x14004b9db08)
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/source/methodsets/methodsets.go:309 +0x1f0
golang.org/x/tools/gopls/internal/lsp/source/methodsets.(*indexBuilder).build(0x14004b9dbe0, 0x14002046e80, 0x14006e05bd0)
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/source/methodsets/methodsets.go:261 +0x4f0
golang.org/x/tools/gopls/internal/lsp/source/methodsets.NewIndex(...)
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/source/methodsets/methodsets.go:98
golang.org/x/tools/gopls/internal/lsp/cache.(*syntaxPackage).methodsets.func1()
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/cache/pkg.go:74 +0x40
sync.(*Once).doSlow(0x14000081ca8?, 0x102793b10?)
	/Users/mr.troian/sdk/go1.20.5/src/sync/once.go:74 +0x104
sync.(*Once).Do(...)
	/Users/mr.troian/sdk/go1.20.5/src/sync/once.go:65
golang.org/x/tools/gopls/internal/lsp/cache.(*syntaxPackage).methodsets(0x14007e3e5a0?)
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/cache/pkg.go:73 +0x50
golang.org/x/tools/gopls/internal/lsp/cache.(*typeCheckBatch).checkPackage.func1()
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/cache/check.go:649 +0xe4
created by golang.org/x/tools/gopls/internal/lsp/cache.(*typeCheckBatch).checkPackage
	/Users/mr.troian/go/pkg/mod/golang.org/x/tools/gopls@v0.12.4/internal/lsp/cache/check.go:646 +0x228
[Error - 22:28:23] Connection to server got closed. Server will not be restarted.

@findleyr
Copy link
Contributor

findleyr commented Jul 6, 2023

Thank you for the stack trace. Transferring to the gopls issue tracker.

I'm not quite sure how this panic could be reached: it indicates a bug in either the type checker or importer. Is your project open-source?

We can put in a workaround for the crash, but it would be unsatisfying if we didn't understand how it is reached.

@findleyr findleyr changed the title gopls: automated issue report (crash) (panic: interface conversion) (stack trace included) x/tools/gopls: panic in OriginMethod Jul 6, 2023
@findleyr findleyr transferred this issue from golang/vscode-go Jul 6, 2023
@findleyr findleyr added this to the gopls/v0.12.5 milestone Jul 6, 2023
@gopherbot gopherbot added Tools This label describes issues relating to any tools in the x/tools repository. gopls Issues related to the Go language server, gopls. labels Jul 6, 2023
@findleyr findleyr self-assigned this Jul 11, 2023
@gopherbot
Copy link

Change https://go.dev/cl/508795 mentions this issue: internal/typeparams: temporarily avoid a panic in OriginMethod

@findleyr findleyr modified the milestones: gopls/v0.12.5, gopls/v0.13.0 Jul 13, 2023
gopherbot pushed a commit to golang/tools that referenced this issue Jul 14, 2023
Improve the panic message to help debug golang/go#61196.

Updates golang/go#61196

Change-Id: Ia3ab9583886d67b971914310e82a99a1a2b15a59
Reviewed-on: https://go-review.googlesource.com/c/tools/+/508795
Run-TryBot: Robert Findley <rfindley@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Alan Donovan <adonovan@google.com>
gopls-CI: kokoro <noreply+kokoro@google.com>
@findleyr
Copy link
Contributor

The CL above should make this panic more useful. Could you please build gopls @ master, and provide us the improved panic?

git clone https://go.googlesource.com/tools
cd tools/gopls
go install

Thank you!

@findleyr findleyr added the WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided. label Jul 14, 2023
@findleyr
Copy link
Contributor

This may be a consequence of #61561.

@findleyr
Copy link
Contributor

findleyr commented Aug 2, 2023

Closing this as I am pretty sure it is a consequence of #61561, and should have been largely mitigated by gopls@v0.13.0 (and fixed using go@master).

@findleyr findleyr closed this as completed Aug 2, 2023
@findleyr findleyr modified the milestones: gopls/v0.14.0, gopls/v0.13.0 Aug 2, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
gopls Issues related to the Go language server, gopls. Tools This label describes issues relating to any tools in the x/tools repository. WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided.
Projects
None yet
Development

No branches or pull requests

3 participants