You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I managed to hit a type checking deadlock. All goroutines involved were waiting on <-e.ready in getPkg in lsp/cache/check.go, which suggests some sort of impossible circular dependency. In the debugger I found the below getPkg call chains from each goroutine:
It is a deadlock, but the encoding/json <- net/url edge jumped out as not quite right until I noticed that "net/url" imports "encoding/json" in its test. So, due to the package variant issue, we are hitting circular dependencies. In particular, in this case when "text/template" imports "net/url", we ended up importing the test variant of "net/url" that also has an import for "encoding/json".
Once the variant issue is resolved so that importer.Import only ever imports the non-test variant, this issue should be resolved as well.
I managed to hit a type checking deadlock. All goroutines involved were waiting on
<-e.ready
ingetPkg
in lsp/cache/check.go, which suggests some sort of impossible circular dependency. In the debugger I found the below getPkg call chains from each goroutine:It is a deadlock, but the
encoding/json <- net/url
edge jumped out as not quite right until I noticed that "net/url" imports "encoding/json" in its test. So, due to the package variant issue, we are hitting circular dependencies. In particular, in this case when "text/template" imports "net/url", we ended up importing the test variant of "net/url" that also has an import for "encoding/json".Once the variant issue is resolved so that importer.Import only ever imports the non-test variant, this issue should be resolved as well.
/cc @stamblerre @ianthehat
The text was updated successfully, but these errors were encountered: