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: add a debug endpoint to download diagnostic information #45602

Open
findleyr opened this issue Apr 16, 2021 · 0 comments
Open
Labels
FeatureRequest gopls Issues related to the Go language server, gopls. NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. Tools This label describes issues relating to any tools in the x/tools repository.
Milestone

Comments

@findleyr
Copy link
Contributor

findleyr commented Apr 16, 2021

A few patterns have emerged related to troubleshooting gopls issues:

  • Someone files a gopls issue, and our first response is to ask them to attach logs. More than half the time (I'd guess), we don't get a follow up response from the person filing the issue.
  • Someone encounters a bug, but can't repro in a fresh session and it's too late to capture logs in their current session.
  • Someone has memory problems, and they have to grab a heap dump / profile. Again, this is a burden on users that often leads to disengagement.

With #45518, we'll be able to dynamically start the gopls debug server. This means that users should always be able to access a user interface into internals of the running gopls process. We should leverage this to make it easier to collect diagnostic information.

This is the idea we've discussed:

  1. add a new endpoint to the debug server that provides a form allowing the user to select different types of diagnostic information (off the top of my head: RPC logs, heap dump, profile, execution traces), and specify a collection period.
  2. when this form is submitted, start collecting this information for the specified period.
  3. after collection completes, redirect the user to download a zipped payload that they can send to us.
@findleyr findleyr added NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. gopls Issues related to the Go language server, gopls. labels Apr 16, 2021
@findleyr findleyr added this to the gopls/v1.0.0 milestone Apr 16, 2021
@gopherbot gopherbot added the Tools This label describes issues relating to any tools in the x/tools repository. label Apr 16, 2021
@stamblerre stamblerre added this to To Do in gopls on-deck Jul 15, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
FeatureRequest gopls Issues related to the Go language server, gopls. NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. Tools This label describes issues relating to any tools in the x/tools repository.
Projects
No open projects
Development

No branches or pull requests

3 participants