asdf-elixir
asdf-elixir copied to clipboard
Infinite loop in mix/elixir after installing w/o specifying a minor or OTP version
Steps to reproduce:
- Run
asdf install elixir 1.9andasdf global elixir 1.9 - Change into to any Elixir project directory
- Run
mix deps.get
The command will run continuously. It happens for the following reasons:
- The shim file for
mixat~/.asdf/plugins/elixir/shims/mixlacks executable permission. This causes the shell to default to the next available executable, which is the wrapper shim (and the cycle repeats) - Moreover, the version number in paths to installs that show up in the
$PATHenvironment (when running theelixirshim at~/.asdf/shims/elixir) is the full OTP version, i.e.1.9.4-otp-22. As a result,~/.asdf/installs/1.9/bin/elixirisn't in$PATHand the shell defaults to the next available executable, which is the shim, and the cycle repeats.
The latter of these was discovered by making the mix script in this plugin executable.
I am not able to reproduce this on OSX 10.15.1. Elixir installs just fine and mix works as expected. Look in the Elixir 1.9 installation's bin directory (~/.asdf/installs/elixir/1.9/bin for me) I see the mix file has execute permission.
Reproduced by accident on 10.15.4. ~/.asdf/installs/elixir/1.10.2-otp-22/bin/iex and mix had execute permissions. Problem resolved around when asdf install of erlang 22.1.8.1 finished in another console tab, though I'm not sure that's cause and effect.