Skip to content

x/tools/gopls: no diagnostics received for initially empty files (sometimes) #39646

Closed
govim/govim
#908
@myitcv

Description

@myitcv

What version of Go are you using (go version)?

$ go version
go version devel +d286e61b67 Mon Jun 15 23:29:23 2020 +0000 linux/amd64
$ go list -m golang.org/x/tools
golang.org/x/tools v0.0.0-20200617042924-7f3f4b10a808
$ go list -m golang.org/x/tools/gopls
golang.org/x/tools/gopls v0.0.0-20200617042924-7f3f4b10a808

Does this issue reproduce with the latest release?

Yes

What operating system and processor architecture are you using (go env)?

go env Output
$ go env
GO111MODULE="on"
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/myitcv/.cache/go-build"
GOENV="/home/myitcv/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/home/myitcv/gostuff/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/myitcv/gostuff"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/home/myitcv/gos"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/home/myitcv/gos/pkg/tool/linux_amd64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/home/myitcv/gostuff/src/github.com/myitcv/govim/go.mod"
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-build538522998=/tmp/go-build -gno-record-gcc-switches"

What did you do?

govim has a test that verifies we receive expected diagnostics in the case where files are initially empty on disk, but subsequently get populated with content in the editor.

https://github.com/govim/govim/blob/e2a1802131f331832d667736aa27f023636f0c3a/cmd/govim/testdata/scenario_default/quickfix_empty_files.txt

Recently (apologies, I can't be any more specific than saying "in the last 2-3 weeks) we have started to see, and continue to see, a small number of flakes in this test.

In a normal run of this test we expect a set of diagnostics; when we see these flakes, we don't see any diagnostics.

Here is a gopls log file from a passing test run. Notice the DidChange notifications, as well as the PublishDiagnostics notifications: gopls.log

And here is the gopls log from a failing test run. Notice the DidChange notifications, but no PublishDiagnostics notifications: gopls.log

What did you expect to see?

A consistently passing test.

What did you see instead?

Flakes as described above.


cc @stamblerre @findleyr

FYI @leitzler

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

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions