-
Notifications
You must be signed in to change notification settings - Fork 183
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
Add custom request to return LSP internal state #3194
Add custom request to return LSP internal state #3194
Conversation
How to use the Graphite Merge QueueAdd the label graphite-merge to this PR to add it to the merge queue. You must have a Graphite account in order to use the merge queue. Sign up using this link. An organization admin has enabled the Graphite Merge Queue in this repository. Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue. This stack of pull requests is managed by Graphite. Learn more about stacking. |
139c44a
to
2afdeb7
Compare
Merge activity
|
2afdeb7
to
cf32d6a
Compare
cf32d6a
to
2fd31fd
Compare
### Motivation Diagnosing concurrency issues in the LSP tends to be very difficult and without more detailed information about the state of the language server, it becomes extra challenging to understand what's going on. Let's add a command to surface internal state information, which we can hook to a command in the extension. When users manage to reproduce the problem, they can invoke the command and provide richer details. ### Implementation The idea is to return internal state information that may be relevant to diagnose a corrupt state or crash. For now, I included the state of the worker, backtrace, size of the incoming queue and all stored documents. This should hopefully help us understand the following things: 1. Is the worker dead or just stuck? 2. If it's stuck, where is it stuck? Is the queue increasing causing the worker to get backlogged? 3. Why did we get stuck? Are the documents we stored in an out of sync state with the client? ### Automated Tests Added a test.
2fd31fd
to
632113a
Compare
Motivation
Diagnosing concurrency issues in the LSP tends to be very difficult and without more detailed information about the state of the language server, it becomes extra challenging to understand what's going on.
Let's add a command to surface internal state information, which we can hook to a command in the extension. When users manage to reproduce the problem, they can invoke the command and provide richer details.
Implementation
The idea is to return internal state information that may be relevant to diagnose a corrupt state or crash. For now, I included the state of the worker, backtrace, size of the incoming queue and all stored documents.
This should hopefully help us understand the following things:
Automated Tests
Added a test.