Skip to content

[Zed Editor] XPEngine.Build crashes while typing and stops working until workspace reload #477

@dabaer

Description

@dabaer
  • Server: expert (id 0)
  • Version: 0.1.0-rc.5-44a43e2
  • Editor: Zed 0.225.10
  • Ecto: 3.13.5
  • Elixir 1.19.5-otp-28
  • Erlang 28.3.1

When typing out Ecto schema definitions, I find Expert will often crash in the middle of typing a field (specifically right after I type the first letter of the field data type atom). I get a diagnostic message like this:

Image

And in the LSP logs this error occurs:

handled notification client -> server textDocument/didChange in 962µs
Node port message: 
14:08:55.914 [error] GenServer XPEngine.Build terminating
** (stop) exited in: GenServer.call(Mix.ProjectStack, {:update_state, #Function<18.71857876/1 in Mix.ProjectStack.post_config/1>}, :infinity)
    ** (EXIT) no process: the process is not alive or there's no process currently associated with the given name, possibly because its application isn't started
    (elixir 1.19.5) lib/gen_server.ex:1135: GenServer.call/3
    (xp_engine 0.1.0-rc.5-44a43e2) lib/engine/mix.ex:20: anonymous fn/3 in XPEngine.Mix.in_project/2
    (kernel 10.5) global.erl:703: :global.trans/4
    (stdlib 7.2) timer.erl:599: :timer.tc/2
    (xp_engine 0.1.0-rc.5-44a43e2) lib/engine/build/state.ex:153: anonymous fn/3 in XPEngine.Build.State.compile_file/2
    (kernel 10.5) global.erl:703: :global.trans/4
    (xp_engine 0.1.0-rc.5-44a43e2) lib/engine/build/state.ex:146: XPEngine.Build.State.compile_file/2
    (stdlib 7.2) maps.erl:894: :maps.fold_1/4
Last message: :timeout
State: %XPEngine.Build.State{project: %XPForge.Project{root_uri: "file:///.../edi-sender", mix_exs_uri: "file:///.../edi-sender/mix.exs", mix_project?: true, mix_env: nil, mix_target: nil, env_variables: %{}, project_module: EdiSender.MixProject, entropy: 26199}, build_number: 0, uri_to_document: %{"file:///.../edi-sender/lib/edi_sender/edi/customer.ex" => #XPForge.Document<path: "/.../edi-sender/lib/edi_sender/edi/customer.ex", version: 152, dirty?: true, lines: %Lines<"defmodule EdiSender.Edi.Customer do..."(22 lines)>, ...>}, project_compile: :none}

This error repeats if I try to change any document further and Expert will no longer provide diagnostics or cmd-click to go to module functionality until I reload the entire Zed workspace.

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