[erlang-bugs] Dirty schedulers and '-smp disable'

Knut Nesheim knutin@REDACTED
Tue Jun 30 16:39:22 CEST 2015


Dear list,

I ran into unexpected behaviour in the following situation:

 * OTP 18.0, compiled from the git tag with dirty schedulers enabled
 * NIF with the ERL_NIF_DIRTY_JOB_CPU_BOUND flag
 * Small machine with only one core (AWS t1.micro)
 * The first log line from startup with no explicit flags looks like
this: Erlang/OTP 18 [erts-7.0] [source] [64-bit] [async-threads:10]
[hipe] [kernel-poll:false]

When I call the NIF, the calling process hangs forever. When I call it
from the shell, I'm unable to interrupt the process (C-g, i 1 does
nothing useful).

If I explicitly use '-smp enable' as arguments to erl, the NIF runs
fine. In that case the first log line looks like this: Erlang/OTP 18
[erts-7.0] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:10]
[hipe] [kernel-poll:false]

This behaviour got me a bit confused, as there is no indication what
is happening except "something somewhere got stuck". It's not a common
case for me, as most machines have multiple cores except tiny cloud
instances or virtual machines.

Regards
Knut



More information about the erlang-bugs mailing list