asdf-elixir icon indicating copy to clipboard operation
asdf-elixir copied to clipboard

Infinite loop in mix/elixir after installing w/o specifying a minor or OTP version

Open Deconstrained opened this issue 5 years ago • 2 comments

Steps to reproduce:

  1. Run asdf install elixir 1.9 and asdf global elixir 1.9
  2. Change into to any Elixir project directory
  3. Run mix deps.get

The command will run continuously. It happens for the following reasons:

  • The shim file for mix at ~/.asdf/plugins/elixir/shims/mix lacks 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 $PATH environment (when running the elixir shim at ~/.asdf/shims/elixir) is the full OTP version, i.e. 1.9.4-otp-22. As a result, ~/.asdf/installs/1.9/bin/elixir isn't in $PATH and 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.

Deconstrained avatar Jan 10 '20 21:01 Deconstrained

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.

Stratus3D avatar Jan 21 '20 21:01 Stratus3D

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.

garthk avatar Apr 20 '20 03:04 garthk