1
0
mirror of https://github.com/golang/go synced 2024-11-18 20:14:43 -07:00
go/internal/lsp/cache
Muir Manders 59228eac51 internal/lsp: avoid invalid state due to context cancelation
In shouldRunGopackages we would reset a goFile's metadata and pkgs in
advance of re-running go/packages. However, if we did not end up
running go/packages for whatever reason (read: we got canceled), the
goFile gets stuck in the unfortunate state of not belonging to any
packages because "pkgs" is empty. I think this leads to "no
CheckPackageHandle" errors, at least in relation to GetCachedPackage()
calls.

Fix by deferring the reset of goFile's metadata and pkgs until after
the go/packages call has succeeded.

Change-Id: I95aace85c026e1232b42cadee9e7772951c817d0
Reviewed-on: https://go-review.googlesource.com/c/tools/+/193601
Run-TryBot: Rebecca Stambler <rstambler@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
2019-09-05 23:06:12 +00:00
..
cache.go internal/lsp: remove the non context xlog path 2019-07-15 03:45:47 +00:00
check.go internal/lsp/cache: add additional spans for tracing 2019-09-05 21:33:45 +00:00
external.go internal/lsp: split the telemetry library out 2019-08-15 21:28:02 +00:00
file.go internal/lsp: fix deadlock in type-checking 2019-09-05 03:50:54 +00:00
gofile.go internal/lsp: fix deadlock between f.mu and f.handleMu 2019-09-05 22:17:16 +00:00
load.go internal/lsp: avoid invalid state due to context cancelation 2019-09-05 23:06:12 +00:00
modfile.go internal/lsp: use x/xerrors to create new errors 2019-08-06 19:46:56 +00:00
parse.go internal/lsp: unlabel context, log errors when canceled 2019-08-20 20:39:21 +00:00
pkg.go go/analysis: handle common nil pointers 2019-08-24 21:01:00 +00:00
session.go internal/lsp: start handling watched file change events 2019-08-26 19:00:32 +00:00
sumfile.go internal/lsp: use x/xerrors to create new errors 2019-08-06 19:46:56 +00:00
token.go internal/lsp: unlabel context, log errors when canceled 2019-08-20 20:39:21 +00:00
view.go internal/lsp: fix deadlock in type-checking 2019-09-05 03:50:54 +00:00
watcher.go internal/lsp: fix deadlocks loading lots of files at once 2019-07-03 17:22:52 +00:00