I’m using Elixir on Arch Linux, and a recent update destroyed the capability of iex
to retrieve earlier lines using the up arrow or the according readline command (Ctrl-P).
$ iex --version
Erlang/OTP 28 [erts-16.0] [source] [64-bit] [smp:12:12] [ds:12:12:10] [async-threads:1] [jit:ns]
IEx 1.18.4 (compiled with Erlang/OTP 27)
Is this an Arch Linux specific issue, because I’m already running Erlang/OTP 28, but IEx was built using Erlang/OTP 27?
It was an issue in Erlang/OTP 28 but it’s already fixed
opened 09:59AM - 23 May 25 UTC
closed 12:13PM - 23 May 25 UTC
### Elixir and Erlang/OTP versions
Erlang/OTP 28 [erts-16.0] [source] [64-bit] … [smp:8:8] [ds:8:8:10] [async-threads:1] [jit]
Elixir 1.17.3 (compiled with Erlang/OTP 27)
Same on v1.18 and main. No issues on OTP 27.
### Operating system
macOS
### Current behavior
"Up arrow" correctly shows "erl" history but doesn't seem to save "iex" history:
https://asciinema.org/a/w3iNyQ8jLAALvwKFix85gq4cC
### Expected behavior
IEx history works.
opened 12:28PM - 22 May 25 UTC
closed 12:50PM - 27 May 25 UTC
team:VM
bug
**Describe the bug**
Looks like there's a race condition in shell history, somet… imes it does not save the last entered command.
**To Reproduce**
```
$ erl -kernel shell_history enabled
> 1.
1
%% Ctrl+\ to quit
$ erl -kernel shell_history enabled
%% Up Arrow
%% Sometimes I see "1.", sometimes I see nothing. Consequently, If I write another command on subsequent session, sometimes I'd see it, sometimes just 1.
```
See: https://asciinema.org/a/oU60rFq4y20uU528NJPT3qoxY
**Expected behavior**
Shell history should work.
**Affected versions**
OTP 28.0. Works fine on OTP 27 and prior releases. I tested this on arm64 macOS and (via Docker) Ubuntu.
3 Likes