[erlang-questions] has anyone else seen Erlang 19 break 'bash' after exit?
Igor Clark
igor.clark@REDACTED
Tue Mar 14 13:35:43 CET 2017
Hello Matthias,
Not sure if it's related, but I see bash v4.4.5 terminal I/O get really
messed up on Mac OSX after the erlang runtime aborts. It happens whether
through a NIF segfault during dev, or just by doing ^C and 'abort'. The
terminal input becomes unusable, vim buffers don't display roughly half
the text; 'reset' makes no difference, I have to close the Terminal.app
window and start over. Haven't had time to dig into it at all, just kind
of got used to it.
I thought it might be R19, but I switched back to R18 and it still
happened. Which made me wonder if it's anything to do with tmux, but I
tried it in a standard Terminal window without tmux, and it happened
then too. So I tried using the default OSX /bin/bash (which is v3.2.57)
instead of the homebrew version (4.4.5) - and it didn't happen at all.
Which is a long-winded way of saying, maybe this might also be a "recent
bash" issue, rather than an erlang issue?
Cheers,
Igor
On 13/03/2017 20:32, Matthias Lang wrote:
> Hi,
>
> Erlang 19.1 and 19.2 seems to break something to do with terminal
> input on some but not all of my Debian x86-64 machines. I took a quick
> look through the recent mailing list archives and haven't seen any
> mention of this. Maybe I missed it. Maybe it's just me.
>
> Example:
>
> | ~ >uname -a
> | Linux hec 4.9.0-2-amd64 #1 SMP Debian 4.9.13-1 (2017-02-27) x86_64 GNU/Linux
> | ~ >read x
> | hello world
> | ~ >erl
> | Erlang/OTP 19 [erts-8.1] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]
> |
> | Eshell V8.1 (abort with ^G)
> | 1>
> | BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded
> | (v)ersion (k)ill (D)b-tables (d)istribution
> | a
> | ~ >read x
> | bash: read: read error: 0: Resource temporarily unavailable
>
> The "read error: 0: Resource temporarily unavailable" part is unexpected.
> Using 'cat' instead of 'read' produces a similar error:
>
> | cat: -: Resource temporarily unavailable
>
> 'strace' tells me something is screwy about stdin:
>
> | read(0, 0x7f1010dbb000, 131072) = -1 EAGAIN (Resource temporarily unavailable)
>
> read(2) tells me EAGAIN suggests that stdin has been left in with O_NONBLOCK.
> Is that Erlang's problem to clean up, or is that supposed to happen on
> program exit? I haven't read up on that.
>
> Doing the same thing on 17.4 works fine.
>
> Debian 3.16.39-1 and erts-8.2.1 produces a related by different strangeness:
>
> | 1>
> | BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded
> | (v)ersion (k)ill (D)b-tables (d)istribution
> | a
> | $ sh: turning off NDELAY mode
>
> Can anyone else see this? Any idea what's up?
>
> Matt
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
More information about the erlang-questions
mailing list