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: deadlock involving server shutdown #47170

Open
findleyr opened this issue Jul 13, 2021 · 0 comments
Open

x/tools/gopls: deadlock involving server shutdown #47170

findleyr opened this issue Jul 13, 2021 · 0 comments

Comments

@findleyr
Copy link
Contributor

@findleyr findleyr commented Jul 13, 2021

See https://build.golang.org/log/cb7ce77beb3f3eb1b6369a50ca21bb5de62fb46c

Analysis (this may be incomplete):

goroutine 144
wants snapshot.mu, while holding view.snapshotMu

goroutine 132
wants view.snapshotMu, while holding server.stateMu and session.viewMu

goroutine 113
wants session.viewMu, while holding snapshot.mu

I thought this might have been introduced by CL 309269, but I think it is actually a pre-existing problem. In general, cyclical references between server, session, view, and snapshot leave us susceptible to this type of deadlock.

CC @stamblerre

@gopherbot gopherbot added this to the Unreleased milestone Jul 13, 2021
@findleyr findleyr removed this from the Unreleased milestone Jul 13, 2021
@findleyr findleyr added this to the gopls/v0.7.1 milestone Jul 13, 2021
@stamblerre stamblerre removed this from the gopls/v0.7.1 milestone Jul 26, 2021
@stamblerre stamblerre added this to the gopls/v0.7.2 milestone Jul 26, 2021
@stamblerre stamblerre removed this from the gopls/v0.7.2 milestone Sep 9, 2021
@stamblerre stamblerre added this to the gopls/on-deck milestone Sep 9, 2021
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
3 participants