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: stack overflow when autocompleting #37104

Closed
infinytum opened this issue Feb 7, 2020 · 11 comments
Closed

x/tools/gopls: stack overflow when autocompleting #37104

infinytum opened this issue Feb 7, 2020 · 11 comments
Labels
Milestone

Comments

@infinytum
Copy link

@infinytum infinytum commented Feb 7, 2020

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

$ go version
go version go1.13.7 darwin/amd64

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=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/nila/Library/Caches/go-build"
GOENV="/Users/nila/Library/Application Support/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GONOPROXY="git.nts.ch"
GONOSUMDB="git.nts.ch"
GOOS="darwin"
GOPATH="/Users/nila/go"
GOPRIVATE="git.nts.ch"
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/Cellar/go/1.13.7/libexec"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/Cellar/go/1.13.7/libexec/pkg/tool/darwin_amd64"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="/Users/nila/Cloud/NTS/GoLang/bytehub/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 -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/f9/ld3vd4k50rb5zbgn8x_98t900000gn/T/go-build696997182=/tmp/go-build -gno-record-gcc-switches -fno-common"

What did you do?

I generated a SOAP service with https://github.com/hooklift/gowsdl which compiles just fine with "go build". However, if I try to use autocompletion gopls crashes with a stackoverflow. It only happens with the generated soap service. Interestingly the file is linted just fine. Its just the autocompletion

Another interesting detail is after I restart the crashed server and remove the import statement, it will autocomplete, but show everything as a variable.

What did you expect to see?

The autocompletion result of the package.

What did you see instead?

runtime: goroutine stack exceeds 1000000000-byte limit
fatal error: stack overflow

runtime stack:
runtime.throw(0x1910063, 0xe)
	/usr/local/Cellar/go/1.13.7/libexec/src/runtime/panic.go:774 +0x72
runtime.newstack()
	/usr/local/Cellar/go/1.13.7/libexec/src/runtime/stack.go:1046 +0x6e9
runtime.morestack()
	/usr/local/Cellar/go/1.13.7/libexec/src/runtime/asm_amd64.s:449 +0x8f

goroutine 17983 [running]:
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate.func1(0x0, 0x0, 0x1a489c0, 0xc00fd44570, 0x50)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1710 +0x408 fp=0xc03d98a3b8 sp=0xc03d98a3b0 pc=0x13cba78
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98a550, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1754 +0xff fp=0xc03d98a4c8 sp=0xc03d98a3b8 pc=0x1394d2f
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98a660, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98a5d8 sp=0xc03d98a4c8 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98a770, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98a6e8 sp=0xc03d98a5d8 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98a880, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98a7f8 sp=0xc03d98a6e8 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98a990, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98a908 sp=0xc03d98a7f8 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98aaa0, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98aa18 sp=0xc03d98a908 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98abb0, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98ab28 sp=0xc03d98aa18 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98acc0, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98ac38 sp=0xc03d98ab28 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98add0, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98ad48 sp=0xc03d98ac38 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98aee0, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98ae58 sp=0xc03d98ad48 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98aff0, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98af68 sp=0xc03d98ae58 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98b100, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98b078 sp=0xc03d98af68 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98b210, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98b188 sp=0xc03d98b078 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98b320, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98b298 sp=0xc03d98b188 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98b430, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98b3a8 sp=0xc03d98b298 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98b540, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98b4b8 sp=0xc03d98b3a8 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98b650, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98b5c8 sp=0xc03d98b4b8 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98b760, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98b6d8 sp=0xc03d98b5c8 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98b870, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98b7e8 sp=0xc03d98b6d8 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98b980, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98b8f8 sp=0xc03d98b7e8 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98ba90, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98ba08 sp=0xc03d98b8f8 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98bba0, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98bb18 sp=0xc03d98ba08 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98bcb0, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98bc28 sp=0xc03d98bb18 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98bdc0, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98bd38 sp=0xc03d98bc28 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98bed0, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98be48 sp=0xc03d98bd38 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98bfe0, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98bf58 sp=0xc03d98be48 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98c0f0, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98c068 sp=0xc03d98bf58 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98c200, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98c178 sp=0xc03d98c068 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98c310, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98c288 sp=0xc03d98c178 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98c420, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98c398 sp=0xc03d98c288 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98c530, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98c4a8 sp=0xc03d98c398 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98c640, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98c5b8 sp=0xc03d98c4a8 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98c750, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98c6c8 sp=0xc03d98c5b8 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98c860, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98c7d8 sp=0xc03d98c6c8 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98c970, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98c8e8 sp=0xc03d98c7d8 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98ca80, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98c9f8 sp=0xc03d98c8e8 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98cb90, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98cb08 sp=0xc03d98c9f8 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98cca0, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98cc18 sp=0xc03d98cb08 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98cdb0, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98cd28 sp=0xc03d98cc18 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98cec0, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98ce38 sp=0xc03d98cd28 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98cfd0, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98cf48 sp=0xc03d98ce38 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98d0e0, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98d058 sp=0xc03d98cf48 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98d1f0, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98d168 sp=0xc03d98d058 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98d300, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98d278 sp=0xc03d98d168 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98d410, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98d388 sp=0xc03d98d278 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98d520, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98d498 sp=0xc03d98d388 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98d630, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98d5a8 sp=0xc03d98d498 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98d740, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98d6b8 sp=0xc03d98d5a8 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98d850, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98d7c8 sp=0xc03d98d6b8 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98d960, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98d8d8 sp=0xc03d98d7c8 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98da70, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98d9e8 sp=0xc03d98d8d8 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98db80, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98daf8 sp=0xc03d98d9e8 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98dc90, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98dc08 sp=0xc03d98daf8 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98dda0, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98dd18 sp=0xc03d98dc08 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98deb0, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98de28 sp=0xc03d98dd18 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98dfc0, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98df38 sp=0xc03d98de28 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98e0d0, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98e048 sp=0xc03d98df38 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98e1e0, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98e158 sp=0xc03d98e048 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98e2f0, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98e268 sp=0xc03d98e158 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98e400, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98e378 sp=0xc03d98e268 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98e510, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98e488 sp=0xc03d98e378 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98e620, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98e598 sp=0xc03d98e488 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98e730, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98e6a8 sp=0xc03d98e598 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98e840, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98e7b8 sp=0xc03d98e6a8 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98e950, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98e8c8 sp=0xc03d98e7b8 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98ea60, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98e9d8 sp=0xc03d98e8c8 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98eb70, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98eae8 sp=0xc03d98e9d8 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98ec80, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98ebf8 sp=0xc03d98eae8 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98ed90, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98ed08 sp=0xc03d98ebf8 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98eea0, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98ee18 sp=0xc03d98ed08 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98efb0, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98ef28 sp=0xc03d98ee18 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98f0c0, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98f038 sp=0xc03d98ef28 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98f1d0, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98f148 sp=0xc03d98f038 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98f2e0, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98f258 sp=0xc03d98f148 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98f3f0, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98f368 sp=0xc03d98f258 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98f500, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98f478 sp=0xc03d98f368 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98f610, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98f588 sp=0xc03d98f478 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98f720, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98f698 sp=0xc03d98f588 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98f830, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98f7a8 sp=0xc03d98f698 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98f940, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98f8b8 sp=0xc03d98f7a8 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98fa50, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98f9c8 sp=0xc03d98f8b8 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98fb60, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98fad8 sp=0xc03d98f9c8 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98fc70, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98fbe8 sp=0xc03d98fad8 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98fd80, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98fcf8 sp=0xc03d98fbe8 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98fe90, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98fe08 sp=0xc03d98fcf8 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d98ffa0, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d98ff18 sp=0xc03d98fe08 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d9900b0, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d990028 sp=0xc03d98ff18 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d9901c0, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d990138 sp=0xc03d990028 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d9902d0, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d990248 sp=0xc03d990138 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d9903e0, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d990358 sp=0xc03d990248 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d9904f0, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d990468 sp=0xc03d990358 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d990600, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d990578 sp=0xc03d990468 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d990710, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d990688 sp=0xc03d990578 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d990820, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d990798 sp=0xc03d990688 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d990930, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d9908a8 sp=0xc03d990798 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d990a40, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d9909b8 sp=0xc03d9908a8 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d990b50, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d990ac8 sp=0xc03d9909b8 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d990c60, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d990bd8 sp=0xc03d990ac8 pc=0x1395053
golang.org/x/tools/internal/lsp/source.(*completer).matchingCandidate(0xc002e06000, 0xc03d990d70, 0xc00fd44570)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/source/completion.go:1784 +0x423 fp=0xc03d990ce8 sp=0xc03d990bd8 pc=0x1395053
...additional frames elided...
created by golang.org/x/tools/internal/jsonrpc2.(*Conn).Run
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/jsonrpc2/jsonrpc2.go:354 +0x877

goroutine 1 [syscall]:
syscall.syscall(0x10794c0, 0x0, 0xc0002dc000, 0x1000, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.13.7/libexec/src/runtime/sys_darwin.go:63 +0x2e
syscall.read(0x0, 0xc0002dc000, 0x1000, 0x1000, 0x0, 0x1a551c0, 0x1954e08)
	/usr/local/Cellar/go/1.13.7/libexec/src/syscall/zsyscall_darwin_amd64.go:1242 +0x66
syscall.Read(...)
	/usr/local/Cellar/go/1.13.7/libexec/src/syscall/syscall_unix.go:183
internal/poll.(*FD).Read(0xc0000ce000, 0xc0002dc000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.13.7/libexec/src/internal/poll/fd_unix.go:165 +0x15f
os.(*File).read(...)
	/usr/local/Cellar/go/1.13.7/libexec/src/os/file_unix.go:259
os.(*File).Read(0xc0000cc000, 0xc0002dc000, 0x1000, 0x1000, 0xe, 0x3, 0x6)
	/usr/local/Cellar/go/1.13.7/libexec/src/os/file.go:116 +0x71
bufio.(*Reader).fill(0xc0002b3260)
	/usr/local/Cellar/go/1.13.7/libexec/src/bufio/bufio.go:100 +0x103
bufio.(*Reader).ReadSlice(0xc0002b3260, 0xa, 0xb32fe42b89c08641, 0xc00023f598, 0x100ab2b, 0xc00f425310, 0xb32fe42b89c08641)
	/usr/local/Cellar/go/1.13.7/libexec/src/bufio/bufio.go:359 +0x3d
bufio.(*Reader).ReadBytes(0xc0002b3260, 0xa, 0xc00023f600, 0xc0002a07e2, 0xc0002a08b8, 0x1954e08, 0xc00023f5e0)
	/usr/local/Cellar/go/1.13.7/libexec/src/bufio/bufio.go:437 +0x73
bufio.(*Reader).ReadString(...)
	/usr/local/Cellar/go/1.13.7/libexec/src/bufio/bufio.go:477
golang.org/x/tools/internal/jsonrpc2.(*headerStream).Read(0xc00017f7e0, 0x1a551c0, 0xc0002b9830, 0xc0062b2400, 0xc0002b32c0, 0x1a551c0, 0xc00f79a090, 0x0, 0x0)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/jsonrpc2/stream.go:97 +0x92
golang.org/x/tools/internal/jsonrpc2.(*Conn).Run(0xc0002b32c0, 0x1a551c0, 0xc0002b9830, 0x3, 0xc0002b9860)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/jsonrpc2/jsonrpc2.go:316 +0xa5
golang.org/x/tools/internal/lsp.(*Server).Run(...)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/server.go:64
golang.org/x/tools/internal/lsp/cmd.(*Serve).Run(0xc0002abe30, 0x1a55140, 0xc0000ca000, 0xc0000da030, 0x0, 0x0, 0x0, 0x0)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/cmd/serve.go:101 +0x6e2
golang.org/x/tools/internal/tool.Run(0x1a55140, 0xc0000ca000, 0x1a58940, 0xc0002abe30, 0xc0000da030, 0x0, 0x0, 0x0, 0x0)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/tool/tool.go:152 +0x29d
golang.org/x/tools/internal/lsp/cmd.(*Application).Run(0xc0002abe00, 0x1a55140, 0xc0000ca000, 0xc0000da030, 0x0, 0x0, 0x0, 0x0)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/lsp/cmd/cmd.go:139 +0x3c0
golang.org/x/tools/internal/tool.Run(0x1a55140, 0xc0000ca000, 0x1a58900, 0xc0002abe00, 0xc0000da030, 0x1, 0x1, 0x0, 0x0)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/tool/tool.go:152 +0x29d
golang.org/x/tools/internal/tool.Main(0x1a55140, 0xc0000ca000, 0x1a58900, 0xc0002abe00, 0xc0000da030, 0x1, 0x1)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/tool/tool.go:91 +0x12f
main.main()
	/Users/nila/go/pkg/mod/golang.org/x/tools/gopls@v0.3.1/main.go:22 +0xdb

goroutine 20 [syscall]:
os/signal.signal_recv(0x0)
	/usr/local/Cellar/go/1.13.7/libexec/src/runtime/sigqueue.go:144 +0x96
os/signal.loop()
	/usr/local/Cellar/go/1.13.7/libexec/src/os/signal/signal_unix.go:23 +0x22
created by os/signal.init.0
	/usr/local/Cellar/go/1.13.7/libexec/src/os/signal/signal_unix.go:29 +0x41

goroutine 18190 [chan receive]:
golang.org/x/tools/internal/jsonrpc2.(*Conn).Run.func1(0xc017bd8300, 0xc0062b2400, 0xc0002b32c0, 0x1a551c0, 0xc00f79a090, 0x0, 0x0, 0xc0096b32e0)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/jsonrpc2/jsonrpc2.go:355 +0x49
created by golang.org/x/tools/internal/jsonrpc2.(*Conn).Run
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/jsonrpc2/jsonrpc2.go:354 +0x877

goroutine 18027 [chan receive]:
golang.org/x/tools/internal/jsonrpc2.(*Conn).Run.func1(0xc017bd8240, 0xc00f3ca3c0, 0xc0002b32c0, 0x1a551c0, 0xc00fe20660, 0x0, 0x0, 0xc00dd621e0)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/jsonrpc2/jsonrpc2.go:355 +0x49
created by golang.org/x/tools/internal/jsonrpc2.(*Conn).Run
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/jsonrpc2/jsonrpc2.go:354 +0x877

goroutine 18099 [chan receive]:
golang.org/x/tools/internal/jsonrpc2.(*Conn).Run.func1(0xc017a360c0, 0xc00f622480, 0xc0002b32c0, 0x1a551c0, 0xc00fe563f0, 0x0, 0x0, 0xc00d9ec140)
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/jsonrpc2/jsonrpc2.go:355 +0x49
created by golang.org/x/tools/internal/jsonrpc2.(*Conn).Run
	/Users/nila/go/pkg/mod/golang.org/x/tools@v0.0.0-20200204151227-34c67990bfe7/internal/jsonrpc2/jsonrpc2.go:354 +0x877
[Info  - 11:12:15 AM] Connection to server got closed. Server will restart.

Additional Info

VSCode Settings:

{
"git.autofetch": true,
"go.useLanguageServer": true,
"git.confirmSync": false,
"git.enableSmartCommit": true,
"files.exclude": {
// REDACTED
},
"go.autocompleteUnimportedPackages": true,
}

Gopls Version:
golang.org/x/tools/gopls v0.3.1
golang.org/x/tools/gopls@v0.3.1 h1:yNTWrf4gc4Or0UecjOas5pzOa3BL0WDDyKDV4Wz5VaM=

@gopherbot gopherbot added this to the Unreleased milestone Feb 7, 2020
@gopherbot
Copy link

@gopherbot gopherbot commented Feb 7, 2020

Thank you for filing a gopls issue! Please take a look at the Troubleshooting guide, and make sure that you have provided all of the relevant information here.

@muirdm
Copy link

@muirdm muirdm commented Feb 7, 2020

Can describe exactly where you were triggering completion to reproduce the crash?

@infinytum
Copy link
Author

@infinytum infinytum commented Feb 7, 2020

Yes. I wrote <pkgname>. and used CTRL + Space. It crashes only when the package is already imported.

@muirdm
Copy link

@muirdm muirdm commented Feb 7, 2020

What file were you in and what package were you completing?

@infinytum
Copy link
Author

@infinytum infinytum commented Feb 7, 2020

It happened in any file, the package I tried to autocomplete was the one generated by gowsdl.

I probably cannot share the file as its from a company internal Soap Service.

@stamblerre stamblerre modified the milestones: Unreleased, gopls/v0.4.0 Feb 7, 2020
@stamblerre stamblerre changed the title x/tools/gopls: Stackoverflow when autocompleting x/tools/gopls: stack overflow when autocompleting Feb 7, 2020
@muirdm
Copy link

@muirdm muirdm commented Feb 7, 2020

Okay I was able to reproduce it:

type foo *foo
@infinytum
Copy link
Author

@infinytum infinytum commented Feb 7, 2020

Will check at home if I have any of that in the generated code. But it sounds very likely to cause a stack overflow

@infinytum
Copy link
Author

@infinytum infinytum commented Feb 7, 2020

Indeed I do have such a thing

type Duration *Duration
@gopherbot
Copy link

@gopherbot gopherbot commented Feb 7, 2020

Change https://golang.org/cl/218579 mentions this issue: internal/lsp: fix crash completing recursive pointer types

@infinytum
Copy link
Author

@infinytum infinytum commented Feb 7, 2020

I tried your fixed version and can confirm that gopls works fine now.

@gopherbot
Copy link

@gopherbot gopherbot commented Feb 11, 2020

Change https://golang.org/cl/219122 mentions this issue: internal/lsp: fix crash completing recursive pointer types

gopherbot pushed a commit to golang/tools that referenced this issue Feb 12, 2020
We were recursing infinitely evaluating objects of recursive pointer
types such as "type foo *foo". Now we track named pointer types we
have already seen to avoid trying to dereference such objects forever.
I lazily initialized the "seen" map to avoid the allocation in the
normal case when you aren't dealing with named pointer types.

Fixes golang/go#37104.

Change-Id: I5f294cfc5a641e7b5fd24e1d9dc55520726ea560
Reviewed-on: https://go-review.googlesource.com/c/tools/+/218579
Run-TryBot: Muir Manders <muir@mnd.rs>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
(cherry picked from commit 61798d6)
Reviewed-on: https://go-review.googlesource.com/c/tools/+/219122
Reviewed-by: Heschi Kreinick <heschi@google.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
4 participants
You can’t perform that action at this time.