[erlang-questions] slave:start/3 time out when EUnit started with ERL_FLAGS

Ignas Vyšniauskas <>
Wed Sep 7 10:14:13 CEST 2011


Hi fellow Erlangers,

I believe there might be a bug in EUnit.

Consider this module:

foo.erl
-----------------------------------------------------------
-module(foo).
-compile(export_all).

works_ok() ->
    {ok, Host} = inet:gethostname(),
    {ok, _Node} = slave:start(Host, slavefoo, []).

bug_test() ->
        error_logger:info_msg("Node ~p is alive? ~p~n", [node(),
is_alive()]),
        {ok, _Node} = works_ok().
-----------------------------------------------------------

and a Makefile:
-----------------------------------------------------------
compile:
    erlc foo.erl

nobug: compile
    EUNIT="verbose" erl -sname foobar -s eunit test foo

bug: compile
    EUNIT="verbose" ERL_FLAGS="-sname foobar" erl -s eunit test foo

works: compile
    ERL_FLAGS="-sname foobar" erl -s foo works_ok

works_too: compile
    erl -sname foobar -s foo works_ok
-----------------------------------------------------------

Now if you run 'make nobug', everything is ok:

=INFO REPORT==== 7-Sep-2011::11:00:33 ===
Node  is alive? true
[0.197 s] ok
======================================================

However if you 'make bug' you get the following:

=INFO REPORT==== 7-Sep-2011::11:00:19 ===
Node  is alive? true
*timed out*
undefined
=======================================================


As you can see from the info reports, the node is alive in both cases.
The slave:start/3 also works fine when EUnit is not involved.

Can someone confirm that this is indeed a bug or explain this behaviour
please?

I am running Erlang R14B-2 on Linux and this has also been tested on
another machine.

Kind regards,
Ignas



More information about the erlang-questions mailing list