A frontend-independent IDE "smartness" server for Elixir. Implements the "Language Server Protocol" standard and provides debugger support via the "Debug Adapter Protocol"
Something broke in macOS and any attempt to list files in /home would hang the process, even ls. And the process would not respond to signals, even kill -9.
Turns out macOS maps /home to autofs which dynamically mounts network shares on first access, blocking the process until the share is ready. Rebooting macOS did fix the broken automountd service but revealed a few issues.
ElixirLS
During launch the language server hung in check_elixir_sources checking the source path of /home/build/elixir/lib/elixir/lib/enum.ex .
(Elixir installed by asdf from builds.hex.pm).
A) The trio of check functions are simply axillary warnings for the user, not essential for LS init.
These could be moved out to an async task with a timeout. Mind you hanging on file access should be a rare problem (but confusing). And I’m not sure if the task would hang or the entire BEAM.
Reported on slack by @thetamind
We need to revise all cases when files outside of the project root are accessed (e.g. definition provider). We need to make sure to use raw file API. Hanging erlang file server would affect the whole beam vm
Something broke in macOS and any attempt to list files in /home would hang the process, even ls. And the process would not respond to signals, even kill -9. Turns out macOS maps /home to autofs which dynamically mounts network shares on first access, blocking the process until the share is ready. Rebooting macOS did fix the broken automountd service but revealed a few issues. ElixirLS During launch the language server hung in check_elixir_sources checking the source path of /home/build/elixir/lib/elixir/lib/enum.ex . (Elixir installed by asdf from builds.hex.pm). A) The trio of check functions are simply axillary warnings for the user, not essential for LS init. These could be moved out to an async task with a timeout. Mind you hanging on file access should be a rare problem (but confusing). And I’m not sure if the task would hang or the entire BEAM.
Reported on slack by @thetamind
We need to revise all cases when files outside of the project root are accessed (e.g. definition provider). We need to make sure to use raw file API. Hanging erlang file server would affect the whole beam vm