Skip to content

x/tools/gopls: strange output with gopls >= 0.3.0, no actual errors detected #37046

@teeaa

Description

@teeaa

What did you do?

Made an error in code:

package main

func main() {
	asd asd asd() asd
}

What did you expect to see?

gopls to report the error (or rather, squiggly lines in vs code)

What did you see instead?

No errors, lots of strange logs in gpls output:

$ gopls -rpc.trace -v check go/src/foobar/cmd/daemon/main.go
2020/02/05 14:44:15 Info:2020/02/05 14:44:15 Build info
----------
golang.org/x/tools/gopls v0.3.1
    golang.org/x/tools/gopls@v0.3.1 h1:yNTWrf4gc4Or0UecjOas5pzOa3BL0WDDyKDV4Wz5VaM=
    github.com/BurntSushi/toml@v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
    github.com/sergi/go-diff@v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ=
    golang.org/x/mod@v0.1.1-0.20191105210325-c90efee705ee h1:WG0RUwxtNT4qqaXX3DPA8zHFNm/D9xaBpxzHt1WcA/E=
    golang.org/x/sync@v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU=
    golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7 h1:hWZVyLW37WdETuLIGQMvQIhMfXXAOANmAIEAluZMy3c=
    golang.org/x/xerrors@v0.0.0-20191011141410-1b5146add898 h1:/atklqdjdhuosWIl6AIbOeHJjicWYPqR9bpxqxYG2pA=
    honnef.co/go/tools@v0.0.1-2019.2.3 h1:3JgtbtFHMiCmsznwGVTUWbgGov+pVqnlf1dEJTNAXeM=
    mvdan.cc/xurls/v2@v2.1.0 h1:KaMb5GLhlcSX+e+qhbRJODnUUBvlw01jt4yrjFIHAuA=

Go info
-------
go version go1.13.7 linux/amd64

GO111MODULE=""
GOARCH="amd64"
GOBIN="/home/teeaa/foo/bar/go/bin"
GOCACHE="/home/teeaa/.cache/go-build"
GOENV="/home/teeaa/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/teeaa/foo/bar/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/lib/go-1.13"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/lib/go-1.13/pkg/tool/linux_amd64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
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 -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build526571037=/tmp/go-build -gno-record-gcc-switches"
2020/02/05 14:44:15 Info:2020/02/05 14:44:15 go/packages.Load
	snapshot = 0
	query = [./ builtin]
	packages = 2
2020/02/05 14:44:15 Info:2020/02/05 14:44:15 go/packages.Load
	snapshot = 1
	query = [./]
	packages = 1
2020/02/05 14:44:15 Info:2020/02/05 14:44:15 go/packages.Load
	snapshot = 0
	query = [./]
	packages = 1
2020/02/05 14:44:15 diagnose: no workspace packages: no metadata for [LOAD_INVALID_VIEW]
	snapshot = 0
	directory = 0xaf2ea0
2020/02/05 14:44:15 diagnose: no workspace packages: no metadata for [LOAD_INVALID_VIEW]
	snapshot = 1
	directory = 0xaf2ea0
2020/02/05 14:44:15 Error:2020/02/05 14:44:15 diagnose: no workspace packages: no metadata for [LOAD_INVALID_VIEW]
	snapshot = 0
	directory = 0xaf2ea0
2020/02/05 14:44:15 Error:2020/02/05 14:44:15 diagnose: no workspace packages: no metadata for [LOAD_INVALID_VIEW]
	snapshot = 1
	directory = 0xaf2ea0
/home/teeaa/foo/bar/go/src/foobar/cmd/daemon/main.go:4:6: expected ';', found asd

Build info

golang.org/x/tools/gopls v0.3.1
    golang.org/x/tools/gopls@v0.3.1 h1:yNTWrf4gc4Or0UecjOas5pzOa3BL0WDDyKDV4Wz5VaM=
    github.com/BurntSushi/toml@v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
    github.com/sergi/go-diff@v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ=
    golang.org/x/mod@v0.1.1-0.20191105210325-c90efee705ee h1:WG0RUwxtNT4qqaXX3DPA8zHFNm/D9xaBpxzHt1WcA/E=
    golang.org/x/sync@v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU=
    golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7 h1:hWZVyLW37WdETuLIGQMvQIhMfXXAOANmAIEAluZMy3c=
    golang.org/x/xerrors@v0.0.0-20191011141410-1b5146add898 h1:/atklqdjdhuosWIl6AIbOeHJjicWYPqR9bpxqxYG2pA=
    honnef.co/go/tools@v0.0.1-2019.2.3 h1:3JgtbtFHMiCmsznwGVTUWbgGov+pVqnlf1dEJTNAXeM=
    mvdan.cc/xurls/v2@v2.1.0 h1:KaMb5GLhlcSX+e+qhbRJODnUUBvlw01jt4yrjFIHAuA=

Go info

go version go1.13.7 linux/amd64

GO111MODULE=""
GOARCH="amd64"
GOBIN="/home/teeaa/foo/bar/go/bin"
GOCACHE="/home/teeaa/.cache/go-build"
GOENV="/home/teeaa/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/teeaa/foo/bar/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/lib/go-1.13"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/lib/go-1.13/pkg/tool/linux_amd64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
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 -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build187624939=/tmp/go-build -gno-record-gcc-switches"

This same error happens if I run it from "workspace" root (/home/teeaa/foo/bar) or from GOPATH root (/home/teeaa/foo/bar/go). However if I open just the "app" dir (/home/teeaa/foo/bar/go/src/foobar/cmd/daemon/) the errors appear as expected but jumping to different code points defined in packages doesn't work anymore in VS Code. If I open the src root (/home/teeaa/foo/bar/go/src) the errors in my package are displayed correctly, as well as over 1K errors in installed dependencies :( Also it takes ages to load.

On Gopls 0.2.2 everything works.

Metadata

Metadata

Assignees

No one assigned

    Labels

    FrozenDueToAgeToolsThis label describes issues relating to any tools in the x/tools repository.WaitingForInfoIssue is not actionable because of missing required information, which needs to be provided.goplsIssues related to the Go language server, gopls.

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions