microsoft / vscode-go

An extension for VS Code which provides support for the Go language. We have moved to https://github.com/golang/vscode-go
Other
5.93k stars 648 forks source link

Suspicion that vscode-go or gopls does not support test subpackages for current package #3164

Closed wtask closed 4 years ago

wtask commented 4 years ago

What version of Go, VS Code & VS Code Go extension are you using?

Version: 1.43.2 (user setup) Commit: 0ba0ca52957102ca3527cf479571617f0de6ed50 Date: 2020-03-24T07:38:38.248Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.18363

go version go1.14.1 windows/amd64

golang.org/x/tools/gopls v0.3.4 golang.org/x/tools/gopls@v0.3.4 h1:4GC7q/pXQ/tsxHBGVdsMdlB4gCxVC06m/7rIXg1Px4E=

Describe the bug

There is the go package, for example 'path/internal/foo' (package foo) and also package foo_test in the same directory. Foo test package is represented by 2 files: init_test.go with common init() and foo_test.go with tests. The init_test.go contains global variable declaration, for example var Admin = true. This var is used in the foo_test.go, which is run without errors. But inside vscode, this var is indicated as undeclared for foo_test.go. The gopls log in my case contains (for AdminClient which is initialized in init_test.go)

[Error - 20:21:14] Request textDocument/definition failed.
  Message: no object for ident AdminClient
  Code: 0 
wtask commented 4 years ago

After upgrading to

go version go1.14.2 windows/amd64

golang.org/x/tools/gopls 0.4.0
    golang.org/x/tools/gopls@v0.4.0 h1:G4+YP9kaV4dJb79J5MobyApxX493Qa6VoiTceUmxqik=

got the same error in log, but now only syntax highlighting is present for the _test package, all other features is unavailable - outline, ctrl-click, hovers... :(

[Error - 02:44:49] Request textDocument/definition failed.
  Message: getting file for Identifier: no PackageHandles
  Code: 0 
[Info  - 02:44:49] 2020/04/09 02:44:49 go/packages.Load
    snapshot=2
    directory=D:\Users\webta\Development\XXX\repos\XXX\auth
    query=[file=D:\Users\webta\Development\XXX\repos\XXX\auth\internal\XXX\admin_test.go]
    packages=0
[Trace - 02:44:49.995 AM] Sending request 'textDocument/hover - (57)'.
Params: {"textDocument":{"uri":"file:///d%3A/Users/webta/Development/XXX/repos/XXX/auth/internal/XXX/admin_test.go"},"position":{"line":31,"character":19}}
wtask commented 4 years ago

After several minutes of waiting and making some edit to the problem file I see the features partially start to work, except the issue itself is persist..

stamblerre commented 4 years ago

Can you share the output of gopls -rpc.trace -v check path/to/file.go? That will give me a bit more insight on what's going on.

wtask commented 4 years ago

@stamblerre

mike@MSI:/mnt/d/Users/webta/Development/XXX/repos/yyy-zzz/auth/internal/keycloak$ gopls.exe -rpc.trace -v check ./admin_test.go 
2020/04/10 20:19:36 Info:2020/04/10 20:19:36 Build info
----------
golang.org/x/tools/gopls 0.4.0
    golang.org/x/tools/gopls@v0.4.0 h1:G4+YP9kaV4dJb79J5MobyApxX493Qa6VoiTceUmxqik=
    github.com/BurntSushi/toml@v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
    github.com/sergi/go-diff@v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=
    golang.org/x/mod@v0.2.0 h1:KU7oHjnv3XNWfa5COkzUifxZmxp1TyI7ImMXqFxLwvQ=
    golang.org/x/sync@v0.0.0-20190911185100-cd5d95a43a6e h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY=   
    golang.org/x/tools@v0.0.0-20200407041343-bf15fae40dea h1:DUwLyMDMUauGMd9kSLIlhhYJNELm06HuxeBdkFkeax4=  
    golang.org/x/xerrors@v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
    honnef.co/go/tools@v0.0.1-2020.1.3 h1:sXmLre5bzIR6ypkjXCDI3jHPssRhc8KD/Ome589sc3U=
    mvdan.cc/xurls/v2@v2.1.0 h1:KaMb5GLhlcSX+e+qhbRJODnUUBvlw01jt4yrjFIHAuA=

Go info
-------
go version go1.14.2 windows/amd64

2020/04/10 20:19:37 Info:2020/04/10 20:19:37 go env for D:\Users\webta\Development\XXX\repos\yyy-zzz\auth\internal\keycloak
(valid build configuration = true)
(build flags: [-modfile=C:\Users\webta\AppData\Local\Temp\go.keycloak.473622723.mod])
set GO111MODULE=on
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\webta\AppData\Local\go-build
set GOENV=C:\Users\webta\AppData\Roaming\go\env
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GONOPROXY=XXX.YYY
set GONOSUMDB=XXX.YYY
set GOOS=windows
set GOPATH=C:\dev\go
set GOPRIVATE=XXX.YYY
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=c:\go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=c:\go\pkg\tool\windows_amd64
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=D:\Users\webta\Development\XXX\repos\yyy-zzz\auth\go.mod
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\webta\AppData\Local\Temp\go-build717248438=/tmp/go-build -gno-record-gcc-switches
2020/04/10 20:19:37 Info:2020/04/10 20:19:37 go/packages.Load
        snapshot=0
        directory=D:\Users\webta\Development\XXX\repos\yyy-zzz\auth\internal\keycloak
        query=[./... builtin]
        packages=6
2020/04/10 20:19:38 Info:2020/04/10 20:19:38 go/packages.Load
        snapshot=1
        directory=D:\Users\webta\Development\XXX\repos\yyy-zzz\auth\internal\keycloak
        query=[XXX.YYY/gopkgs/service/auth/internal/keycloak]
        packages=1
2020/04/10 20:19:38 Info:2020/04/10 20:19:38 go/packages.Load
        snapshot=1
        package_path="XXX.YYY/gopkgs/service/auth/internal/keycloak"
        files=[D:\Users\webta\Development\XXX\repos\yyy-zzz\auth\internal\keycloak\auth_service.go D:\Users\webta\Development\XXX\repos\yyy-zzz\auth\internal\keycloak\auth_service_auth.go D:\Users\webta\Development\XXX\repos\yyy-zzz\auth\internal\keycloak\auth_service_login.go D:\Users\webta\Development\XXX\repos\yyy-zzz\auth\internal\keycloak\auth_service_logout.go D:\Users\webta\Development\XXX\repos\yyy-zzz\auth\internal\keycloak\auth_service_refresh.go D:\Users\webta\Development\XXX\repos\yyy-zzz\auth\internal\keycloak\auth_service_register.go D:\Users\webta\Development\XXX\repos\yyy-zzz\auth\internal\keycloak\auth_service_update.go D:\Users\webta\Development\XXX\repos\yyy-zzz\auth\internal\keycloak\jwt_helper.go]
2020/04/10 20:19:39 Info:2020/04/10 20:19:39 go/packages.Load
        snapshot=1
        directory=D:\Users\webta\Development\XXX\repos\yyy-zzz\auth\internal\keycloak
        query=[file=D:\Users\webta\Development\XXX\repos\yyy-zzz\auth\internal\keycloak\admin_test.go]
        packages=0
2020/04/10 20:19:39 Info:2020/04/10 20:19:39 go/packages.Load
        snapshot=1
        directory=D:\Users\webta\Development\XXX\repos\yyy-zzz\auth\internal\keycloak
        query=[file=D:\Users\webta\Development\XXX\repos\yyy-zzz\auth\internal\keycloak\admin_test.go]
        packages=0
fatal error: all goroutines are asleep - deadlock!

goroutine 1 [chan receive]:
golang.org/x/tools/internal/lsp/cmd.(*connection).diagnoseFiles(0xc0003a6160, 0xe32f20, 0xc000397a70, 0xc0001ce510, 0x1, 0x1, 0x0, 0x0)
        C:/dev/go/pkg/mod/golang.org/x/tools@v0.0.0-20200407041343-bf15fae40dea/internal/lsp/cmd/cmd.go:485 +0x2f9
golang.org/x/tools/internal/lsp/cmd.(*check).Run(0xc000214658, 0xe32f20, 0xc000397a70, 0xc000118040, 0x1, 0x4, 0x0, 0x0)
        C:/dev/go/pkg/mod/golang.org/x/tools@v0.0.0-20200407041343-bf15fae40dea/internal/lsp/cmd/check.go:59 +0x359
golang.org/x/tools/internal/tool.Run(0xe32f20, 0xc000397a70, 0xe36fe0, 0xc000214658, 0xc000118040, 0x1, 0x4, 0x0, 0x0)
        C:/dev/go/pkg/mod/golang.org/x/tools@v0.0.0-20200407041343-bf15fae40dea/internal/tool/tool.go:152 +0x2a4
golang.org/x/tools/internal/lsp/cmd.(*Application).Run(0xc00039e280, 0xe32f20, 0xc000397a70, 0xc000118040, 0x2, 0x5, 0x0, 0x0)
        C:/dev/go/pkg/mod/golang.org/x/tools@v0.0.0-20200407041343-bf15fae40dea/internal/lsp/cmd/cmd.go:146 +0x2d6
golang.org/x/tools/internal/tool.Run(0xe32ea0, 0xc000030018, 0xe36f20, 0xc00039e280, 0xc000118010, 0x4, 0x7, 0x0, 0x0)
        C:/dev/go/pkg/mod/golang.org/x/tools@v0.0.0-20200407041343-bf15fae40dea/internal/tool/tool.go:152 +0x2a4
golang.org/x/tools/internal/tool.Main(0xe32ea0, 0xc000030018, 0xe36f20, 0xc00039e280, 0xc000118010, 0x4, 0x7)
        C:/dev/go/pkg/mod/golang.org/x/tools@v0.0.0-20200407041343-bf15fae40dea/internal/tool/tool.go:91 +0x136
main.main()
        C:/dev/go/pkg/mod/golang.org/x/tools/gopls@v0.4.0/main.go:25 +0xe2
stamblerre commented 4 years ago

Oh wow, I have not seen that happen before. Can you run this command with the environment variable GOTRACEBACK=crash so that it produces a goroutine dump?

Something definitely seems to be going wrong with the loading of your test file, as you can see in your logs, it's not being associated with any packages. Another command you can try running is go list -e -json -compiled -test ./... from your module root to see what output it produces.

wtask commented 4 years ago

... But nothing wrong for golang:

Test files that declare a package with the suffix "_test" will be compiled as a separate package, and then linked and run with the main test binary.

https://golang.org/pkg/cmd/go/internal/test/

wtask commented 4 years ago

@stamblerre

mike@MSI:/mnt/d/Users/webta/Development/XXX/repos/yyy-zzz/auth/internal/keycloak$ GOTRACEBACK=crash WSLENV=GOTRACEBACK/w gopls.exe -rpc.trace -v check ./admin_test.go
2020/04/10 22:37:30 Info:2020/04/10 22:37:30 Build info
----------
golang.org/x/tools/gopls 0.4.0
    golang.org/x/tools/gopls@v0.4.0 h1:G4+YP9kaV4dJb79J5MobyApxX493Qa6VoiTceUmxqik=
    github.com/BurntSushi/toml@v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
    github.com/sergi/go-diff@v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=
    golang.org/x/mod@v0.2.0 h1:KU7oHjnv3XNWfa5COkzUifxZmxp1TyI7ImMXqFxLwvQ=
    golang.org/x/sync@v0.0.0-20190911185100-cd5d95a43a6e h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY=
    golang.org/x/tools@v0.0.0-20200407041343-bf15fae40dea h1:DUwLyMDMUauGMd9kSLIlhhYJNELm06HuxeBdkFkeax4=
    golang.org/x/xerrors@v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
    honnef.co/go/tools@v0.0.1-2020.1.3 h1:sXmLre5bzIR6ypkjXCDI3jHPssRhc8KD/Ome589sc3U=
    mvdan.cc/xurls/v2@v2.1.0 h1:KaMb5GLhlcSX+e+qhbRJODnUUBvlw01jt4yrjFIHAuA=

Go info
-------
go version go1.14.2 windows/amd64

2020/04/10 22:37:30 Info:2020/04/10 22:37:30 go env for D:\Users\webta\Development\XXX\repos\yyy-zzz\auth\internal\keycloak
(valid build configuration = true)
(build flags: [-modfile=C:\Users\webta\AppData\Local\Temp\go.keycloak.451634123.mod])
set GO111MODULE=on
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\webta\AppData\Local\go-build
set GOENV=C:\Users\webta\AppData\Roaming\go\env
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GONOPROXY=gitlab.company.com
set GONOSUMDB=gitlab.company.com
set GOOS=windows
set GOPATH=C:\dev\go
set GOPRIVATE=gitlab.company.com
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=c:\go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=c:\go\pkg\tool\windows_amd64
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=D:\Users\webta\Development\XXX\repos\yyy-zzz\auth\go.mod
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\webta\AppData\Local\Temp\go-build586215894=/tmp/go-build -gno-record-gcc-switches
2020/04/10 22:37:31 Info:2020/04/10 22:37:31 go/packages.Load
        snapshot=0
        directory=D:\Users\webta\Development\XXX\repos\yyy-zzz\auth\internal\keycloak
        query=[./... builtin]
        packages=6
2020/04/10 22:37:35 Info:2020/04/10 22:37:35 go/packages.Load
        snapshot=1
        directory=D:\Users\webta\Development\XXX\repos\yyy-zzz\auth\internal\keycloak
        query=[gitlab.company.com/gopkgs/service/auth/internal/keycloak]
        packages=1
2020/04/10 22:37:35 Info:2020/04/10 22:37:35 go/packages.Load
        snapshot=1
        package_path="gitlab.company.com/gopkgs/service/auth/internal/keycloak"
        files=[D:\Users\webta\Development\XXX\repos\yyy-zzz\auth\internal\keycloak\auth_service.go D:\Users\webta\Development\XXX\repos\yyy-zzz\auth\internal\keycloak\auth_service_auth.go D:\Users\webta\Development\XXX\repos\yyy-zzz\auth\internal\keycloak\auth_service_login.go D:\Users\webta\Development\XXX\repos\yyy-zzz\auth\internal\keycloak\auth_service_logout.go D:\Users\webta\Development\XXX\repos\yyy-zzz\auth\internal\keycloak\auth_service_refresh.go D:\Users\webta\Development\XXX\repos\yyy-zzz\auth\internal\keycloak\auth_service_register.go D:\Users\webta\Development\XXX\repos\yyy-zzz\auth\internal\keycloak\auth_service_update.go D:\Users\webta\Development\XXX\repos\yyy-zzz\auth\internal\keycloak\jwt_helper.go]
2020/04/10 22:37:35 Info:2020/04/10 22:37:35 go/packages.Load
        snapshot=1
        directory=D:\Users\webta\Development\XXX\repos\yyy-zzz\auth\internal\keycloak
        query=[file=D:\Users\webta\Development\XXX\repos\yyy-zzz\auth\internal\keycloak\admin_test.go]
        packages=0
2020/04/10 22:37:36 Info:2020/04/10 22:37:36 go/packages.Load
        snapshot=1
        directory=D:\Users\webta\Development\XXX\repos\yyy-zzz\auth\internal\keycloak
        query=[file=D:\Users\webta\Development\XXX\repos\yyy-zzz\auth\internal\keycloak\admin_test.go]
        packages=0
fatal error: all goroutines are asleep - deadlock!

runtime stack:
runtime.throw(0xcfbee5, 0x25)
        c:/go/src/runtime/panic.go:1116 +0x79 fp=0x27a4fce8 sp=0x27a4fcb8 pc=0x438039
runtime.checkdead()
        c:/go/src/runtime/proc.go:4442 +0x2c0 fp=0x27a4fd48 sp=0x27a4fce8 pc=0x444fc0
runtime.mput(...)
        c:/go/src/runtime/proc.go:4818
runtime.stopm()
        c:/go/src/runtime/proc.go:1826 +0xa3 fp=0x27a4fd70 sp=0x27a4fd48 pc=0x43e313
runtime.findrunnable(0xc000044000, 0x0)
        c:/go/src/runtime/proc.go:2360 +0xa22 fp=0x27a4fe58 sp=0x27a4fd70 pc=0x43f9c2
runtime.schedule()
        c:/go/src/runtime/proc.go:2520 +0x30a fp=0x27a4fec0 sp=0x27a4fe58 pc=0x44053a
runtime.goexit0(0xc002bfc300)
        c:/go/src/runtime/proc.go:2849 +0x1eb fp=0x27a4ff00 sp=0x27a4fec0 pc=0x4415bb
runtime.mcall(0x0)
        c:/go/src/runtime/asm_amd64.s:318 +0x5e fp=0x27a4ff10 sp=0x27a4ff00 pc=0x466d9e

goroutine 1 [chan receive]:
runtime.gopark(0xd28878, 0xc002ac2e38, 0x170e, 0x2)
        c:/go/src/runtime/proc.go:304 +0xf5 fp=0xc00059d480 sp=0xc00059d460 pc=0x43aad5
runtime.chanrecv(0xc002ac2de0, 0x0, 0xe20d01, 0xc0096835c0)
        c:/go/src/runtime/chan.go:525 +0x2f5 fp=0xc00059d510 sp=0xc00059d480 pc=0x406265
runtime.chanrecv1(0xc002ac2de0, 0x0)
        c:/go/src/runtime/chan.go:407 +0x2b fp=0xc00059d540 sp=0xc00059d510 pc=0x405f1b
golang.org/x/tools/internal/lsp/cmd.(*connection).diagnoseFiles(0xc0001613a0, 0xe32f20, 0xc000178150, 0xc000282130, 0x1, 0x1, 0x0, 0x0)
        C:/dev/go/pkg/mod/golang.org/x/tools@v0.0.0-20200407041343-bf15fae40dea/internal/lsp/cmd/cmd.go:485 +0x2f9 fp=0xc00059d608 sp=0xc00059d540 pc=0xb15a99
golang.org/x/tools/internal/lsp/cmd.(*check).Run(0xc000006a28, 0xe32f20, 0xc000178150, 0xc000096040, 0x1, 0x4, 0x0, 0x0)
        C:/dev/go/pkg/mod/golang.org/x/tools@v0.0.0-20200407041343-bf15fae40dea/internal/lsp/cmd/check.go:59 +0x359 fp=0xc00059da78 sp=0xc00059d608 pc=0xb10e99
golang.org/x/tools/internal/tool.Run(0xe32f20, 0xc000178150, 0xe36fe0, 0xc000006a28, 0xc000096040, 0x1, 0x4, 0x0, 0x0)
        C:/dev/go/pkg/mod/golang.org/x/tools@v0.0.0-20200407041343-bf15fae40dea/internal/tool/tool.go:152 +0x2a4 fp=0xc00059dc28 sp=0xc00059da78 pc=0xb09204
golang.org/x/tools/internal/lsp/cmd.(*Application).Run(0xc00006dcc0, 0xe32f20, 0xc000178150, 0xc000096040, 0x2, 0x5, 0x0, 0x0)
        C:/dev/go/pkg/mod/golang.org/x/tools@v0.0.0-20200407041343-bf15fae40dea/internal/lsp/cmd/cmd.go:146 +0x2d6 fp=0xc00059dcd0 sp=0xc00059dc28 pc=0xb12156
golang.org/x/tools/internal/tool.Run(0xe32ea0, 0xc000030018, 0xe36f20, 0xc00006dcc0, 0xc000096010, 0x4, 0x7, 0x0, 0x0)
        C:/dev/go/pkg/mod/golang.org/x/tools@v0.0.0-20200407041343-bf15fae40dea/internal/tool/tool.go:152 +0x2a4 fp=0xc00059de80 sp=0xc00059dcd0 pc=0xb09204
golang.org/x/tools/internal/tool.Main(0xe32ea0, 0xc000030018, 0xe36f20, 0xc00006dcc0, 0xc000096010, 0x4, 0x7)
        C:/dev/go/pkg/mod/golang.org/x/tools@v0.0.0-20200407041343-bf15fae40dea/internal/tool/tool.go:91 +0x136 fp=0xc00059df28 sp=0xc00059de80 pc=0xb08d96
main.main()
        C:/dev/go/pkg/mod/golang.org/x/tools/gopls@v0.4.0/main.go:25 +0xe2 fp=0xc00059df88 sp=0xc00059df28 pc=0xb2f582
runtime.main()
        c:/go/src/runtime/proc.go:203 +0x212 fp=0xc00059dfe0 sp=0xc00059df88 pc=0x43a702
runtime.goexit()
        c:/go/src/runtime/asm_amd64.s:1373 +0x1 fp=0xc00059dfe8 sp=0xc00059dfe0 pc=0x468f31

goroutine 2 [force gc (idle)]:
runtime.gopark(0xd28a88, 0x1357cb0, 0x1411, 0x1)
        c:/go/src/runtime/proc.go:304 +0xf5 fp=0xc000051fb0 sp=0xc000051f90 pc=0x43aad5
runtime.goparkunlock(...)
        c:/go/src/runtime/proc.go:310
runtime.forcegchelper()
        c:/go/src/runtime/proc.go:253 +0xc5 fp=0xc000051fe0 sp=0xc000051fb0 pc=0x43a975
runtime.goexit()
        c:/go/src/runtime/asm_amd64.s:1373 +0x1 fp=0xc000051fe8 sp=0xc000051fe0 pc=0x468f31
created by runtime.init.6
        c:/go/src/runtime/proc.go:242 +0x3c

goroutine 3 [GC sweep wait]:
runtime.gopark(0xd28a88, 0x1357ec0, 0x140c, 0x1)
        c:/go/src/runtime/proc.go:304 +0xf5 fp=0xc000053fa8 sp=0xc000053f88 pc=0x43aad5
runtime.goparkunlock(...)
        c:/go/src/runtime/proc.go:310
runtime.bgsweep(0xc000034070)
        c:/go/src/runtime/mgcsweep.go:89 +0x13f fp=0xc000053fd8 sp=0xc000053fa8 pc=0x4240bf
runtime.goexit()
        c:/go/src/runtime/asm_amd64.s:1373 +0x1 fp=0xc000053fe0 sp=0xc000053fd8 pc=0x468f31
created by runtime.gcenable
        c:/go/src/runtime/mgc.go:214 +0x63

goroutine 4 [GC scavenge wait]:
runtime.gopark(0xd28a88, 0x1357e80, 0x140d, 0x1)
        c:/go/src/runtime/proc.go:304 +0xf5 fp=0xc00005ff78 sp=0xc00005ff58 pc=0x43aad5
runtime.goparkunlock(...)
        c:/go/src/runtime/proc.go:310
runtime.bgscavenge(0xc000034070)
        c:/go/src/runtime/mgcscavenge.go:285 +0x21d fp=0xc00005ffd8 sp=0xc00005ff78 pc=0x42270d
runtime.goexit()
        c:/go/src/runtime/asm_amd64.s:1373 +0x1 fp=0xc00005ffe0 sp=0xc00005ffd8 pc=0x468f31
created by runtime.gcenable
        c:/go/src/runtime/mgc.go:215 +0x85

goroutine 5 [finalizer wait]:
runtime.gopark(0xd28a88, 0x1388b40, 0xc000511410, 0x1)
        c:/go/src/runtime/proc.go:304 +0xf5 fp=0xc000055f58 sp=0xc000055f38 pc=0x43aad5
runtime.goparkunlock(...)
        c:/go/src/runtime/proc.go:310
runtime.runfinq()
        c:/go/src/runtime/mfinal.go:175 +0xb1 fp=0xc000055fe0 sp=0xc000055f58 pc=0x419981
runtime.goexit()
        c:/go/src/runtime/asm_amd64.s:1373 +0x1 fp=0xc000055fe8 sp=0xc000055fe0 pc=0x468f31
created by runtime.createfing
        c:/go/src/runtime/mfinal.go:156 +0x68

goroutine 72 [GC worker (idle)]:
runtime.gopark(0xd28908, 0xc000206f10, 0x401418, 0x0)
        c:/go/src/runtime/proc.go:304 +0xf5 fp=0xc000297f60 sp=0xc000297f40 pc=0x43aad5
runtime.gcBgMarkWorker(0xc00003f000)
        c:/go/src/runtime/mgc.go:1873 +0x114 fp=0xc000297fd8 sp=0xc000297f60 pc=0x41d434
runtime.goexit()
        c:/go/src/runtime/asm_amd64.s:1373 +0x1 fp=0xc000297fe0 sp=0xc000297fd8 pc=0x468f31
created by runtime.gcBgMarkStartWorkers
        c:/go/src/runtime/mgc.go:1821 +0x7e

goroutine 89 [GC worker (idle)]:
runtime.gopark(0xd28908, 0xc000187540, 0x401418, 0x0)
        c:/go/src/runtime/proc.go:304 +0xf5 fp=0xc000293f60 sp=0xc000293f40 pc=0x43aad5
runtime.gcBgMarkWorker(0xc000044000)
        c:/go/src/runtime/mgc.go:1873 +0x114 fp=0xc000293fd8 sp=0xc000293f60 pc=0x41d434
runtime.goexit()
        c:/go/src/runtime/asm_amd64.s:1373 +0x1 fp=0xc000293fe0 sp=0xc000293fd8 pc=0x468f31
created by runtime.gcBgMarkStartWorkers
        c:/go/src/runtime/mgc.go:1821 +0x7e

goroutine 74 [GC worker (idle)]:
runtime.gopark(0xd28908, 0xc000286280, 0x401418, 0x0)
        c:/go/src/runtime/proc.go:304 +0xf5 fp=0xc000295f60 sp=0xc000295f40 pc=0x43aad5
runtime.gcBgMarkWorker(0xc00004b800)
        c:/go/src/runtime/mgc.go:1873 +0x114 fp=0xc000295fd8 sp=0xc000295f60 pc=0x41d434
runtime.goexit()
        c:/go/src/runtime/asm_amd64.s:1373 +0x1 fp=0xc000295fe0 sp=0xc000295fd8 pc=0x468f31
created by runtime.gcBgMarkStartWorkers
        c:/go/src/runtime/mgc.go:1821 +0x7e

goroutine 39 [GC worker (idle)]:
runtime.gopark(0xd28908, 0xc000187550, 0x401418, 0x0)
        c:/go/src/runtime/proc.go:304 +0xf5 fp=0xc0001a3f60 sp=0xc0001a3f40 pc=0x43aad5
runtime.gcBgMarkWorker(0xc000046800)
        c:/go/src/runtime/mgc.go:1873 +0x114 fp=0xc0001a3fd8 sp=0xc0001a3f60 pc=0x41d434
runtime.goexit()
        c:/go/src/runtime/asm_amd64.s:1373 +0x1 fp=0xc0001a3fe0 sp=0xc0001a3fd8 pc=0x468f31
created by runtime.gcBgMarkStartWorkers
        c:/go/src/runtime/mgc.go:1821 +0x7e

goroutine 88 [GC worker (idle)]:
runtime.gopark(0xd28908, 0xc000187530, 0x401418, 0x0)
        c:/go/src/runtime/proc.go:304 +0xf5 fp=0xc00019ff60 sp=0xc00019ff40 pc=0x43aad5
runtime.gcBgMarkWorker(0xc00003a000)
        c:/go/src/runtime/mgc.go:1873 +0x114 fp=0xc00019ffd8 sp=0xc00019ff60 pc=0x41d434
runtime.goexit()
        c:/go/src/runtime/asm_amd64.s:1373 +0x1 fp=0xc00019ffe0 sp=0xc00019ffd8 pc=0x468f31
created by runtime.gcBgMarkStartWorkers
        c:/go/src/runtime/mgc.go:1821 +0x7e

goroutine 73 [GC worker (idle)]:
runtime.gopark(0xd28908, 0xc00051b480, 0x401418, 0x0)
        c:/go/src/runtime/proc.go:304 +0xf5 fp=0xc00015df60 sp=0xc00015df40 pc=0x43aad5
runtime.gcBgMarkWorker(0xc000041800)
        c:/go/src/runtime/mgc.go:1873 +0x114 fp=0xc00015dfd8 sp=0xc00015df60 pc=0x41d434
runtime.goexit()
        c:/go/src/runtime/asm_amd64.s:1373 +0x1 fp=0xc00015dfe0 sp=0xc00015dfd8 pc=0x468f31
created by runtime.gcBgMarkStartWorkers
        c:/go/src/runtime/mgc.go:1821 +0x7e

goroutine 105 [GC worker (idle)]:
runtime.gopark(0xd28908, 0xc000206f00, 0x1418, 0x0)
        c:/go/src/runtime/proc.go:304 +0xf5 fp=0xc0001a5f60 sp=0xc0001a5f40 pc=0x43aad5
runtime.gcBgMarkWorker(0xc00003c800)
        c:/go/src/runtime/mgc.go:1873 +0x114 fp=0xc0001a5fd8 sp=0xc0001a5f60 pc=0x41d434
runtime.goexit()
        c:/go/src/runtime/asm_amd64.s:1373 +0x1 fp=0xc0001a5fe0 sp=0xc0001a5fd8 pc=0x468f31
created by runtime.gcBgMarkStartWorkers
        c:/go/src/runtime/mgc.go:1821 +0x7e

goroutine 106 [GC worker (idle)]:
runtime.gopark(0xd28908, 0xc000187560, 0x1418, 0x0)
        c:/go/src/runtime/proc.go:304 +0xf5 fp=0xc00034ff60 sp=0xc00034ff40 pc=0x43aad5
runtime.gcBgMarkWorker(0xc000049000)
        c:/go/src/runtime/mgc.go:1873 +0x114 fp=0xc00034ffd8 sp=0xc00034ff60 pc=0x41d434
runtime.goexit()
        c:/go/src/runtime/asm_amd64.s:1373 +0x1 fp=0xc00034ffe0 sp=0xc00034ffd8 pc=0x468f31
created by runtime.gcBgMarkStartWorkers
        c:/go/src/runtime/mgc.go:1821 +0x7e
stamblerre commented 4 years ago

Yeah, looks like the command is stuck waiting for diagnostics. Do you mind sharing the output of the go list command I mentioned above (go list -e -json -compiled -test ./...)?

wtask commented 4 years ago

@stamblerre It's a nightmare, I forgot I use // +build integration for these tests 🤦‍♂️ So the issue is resolved after temporary disabling build tag // -build integration in all test sources. I know gopls doesn't support build tags on the fly and there is no complete happiness, but the issue can be closed.

stamblerre commented 4 years ago

Ah, ok glad you were able to figure it out!