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
When you run many queries in a sequence, repeatedly, it shows up as a major slowdown of the editor (I haven't done a root cause analysis yet, so this isn't 100% confirmed as the culprit). I suspect TDM tracking the output panel, memorizing its length, and some other LSP commands try to parse the panel, or worse - the panel reaches the limit of a String's size and can no longer be parsed.
Anyway, TDM tracks the output panels and it probably shouldn't.
It's kinda messed up: TDM currently tracks all files, including output panels. Just removing them by virtue of ignoring them based on FileNames.isOutputPanel isn't enough, because files not found in TDM will be read from disk. Obviously, these ones can't.
I think the solution will be to apply a filter on a higher level, which will ensure that none of the LSP requests actually get to the language server logic if they're targeting an output panel. However, the RCA still needs to be done.
It's an old bug, likely as old as the LSP server migration, so #54. Frankly, it could've been an issue in JS world too.
The text was updated successfully, but these errors were encountered:
I'm starting to think this is a race condition: between the configuration request in formatting and the response for it, there's a textDocument/didChange from the client. I wonder if that could be why the entire server gets blocked...
Takes ~800 queries (in groups of 7) atm.
When you run many queries in a sequence, repeatedly, it shows up as a major slowdown of the editor (I haven't done a root cause analysis yet, so this isn't 100% confirmed as the culprit). I suspect TDM tracking the output panel, memorizing its length, and some other LSP commands try to parse the panel, or worse - the panel reaches the limit of a String's size and can no longer be parsed.
Anyway, TDM tracks the output panels and it probably shouldn't.
It's kinda messed up: TDM currently tracks all files, including output panels. Just removing them by virtue of ignoring them based on
FileNames.isOutputPanel
isn't enough, because files not found in TDM will be read from disk. Obviously, these ones can't.I think the solution will be to apply a filter on a higher level, which will ensure that none of the LSP requests actually get to the language server logic if they're targeting an output panel. However, the RCA still needs to be done.
It's an old bug, likely as old as the LSP server migration, so #54. Frankly, it could've been an issue in JS world too.
The text was updated successfully, but these errors were encountered: