Skip to content

LSP stucked and goes 100% CPU for idris2-lsp.so #240

@e1turin

Description

@e1turin

I use idris2-lsp from vscode extension running remotely in my devcontainer. It uses image from Dockerfile.idris2-pack-lsp. While programming, LSP spontaneously (after some action for example like show type hint on hover) stops responding, and I see that it takes 100% CPU. It can happen not quickly but after some actions it always appears, and I could not determine what special action triggers it. Logs for LSP in VSCode end on last action (with verbose level of logging). Full container stop and restart helps only.

The code which I was editing: itmo-fp-data-structures/bt-bag/src/BinTreeBag.idr in submodule of main repo.

For reproducing, you can clone main repo and open it in VSCode with devcontainer (needed extension is included). The problem may appear on the start or else you can try to edit file somehow, for example comment rows with %name. You can make pack clean bt-bag and left only single tab with opened BinTreeBag.idr, so after forcing VSCode to "Rebuild container" it will show following logs.

Image

Image

And again...
Image

VSCode shows such logs: logs/Idris 2 LSP Server.log

I tried strace -p <idris2-lsp.so PID> and it says same

...
write(2, "LOG INFO:Request.CodeAction.Make"..., 142) = 142
write(2, "LOG DEBUG:Request.CodeAction.Mak"..., 52) = 52
write(2, "LOG DEBUG:Request.CodeAction.Mak"..., 63) = 63
write(2, "LOG INFO:Request.CodeAction.AddC"..., 143) = 143

As temporary solution, moved to Neovim running in Docker, it doesn't lag almost all the time, but still sometimes LSP stuck.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions