[erlang-questions] Cluster Functional test using Slave Nodes

Ignas Vyšniauskas <>
Wed Aug 20 18:52:52 CEST 2014


Hi Marcos,

I see you dug up an ancient email I wrote. Spawning slave nodes is
notoriously horrible and unfortunately I already forgot how I fixed the
issue in question.

A shot in the dark: have you tried adding something like this:

    net_kernel:start(['', longnames])

before performing `slave:start(..)`? I remember that occasionally the issue
was that `net_kernel` was not running. Also make sure you have `epmd`
running in the OS.

--
Ignas



On Wed, Aug 20, 2014 at 7:03 PM, marcos quesada <>
wrote:

> Thin i've found something related: "slave:start/3 time out when EUnit
> started with ERL_FLAGS"
>
> http://erlang.org/pipermail/erlang-questions/2011-September/061010.html
>
>
> Makefile is:
>
> start:   *(it works)*
>  @$(ERL) -config test/conf/app.eunit.config -args_file
> test/conf/vm.eunit.args \
> -pa $PWD ebin deps/*/ebin -rsh ssh -boot start_sasl -s cluster
>
> quicktests: *(it fails)*
> rm -rf .eunit/
> ERL_AFLAGS="-config test/conf/app.eunit.config -args_file
> test/conf/vm.eunit.args  -pa $PWD ebin deps/*/ebin -rsh ssh" \
>  ./rebar skip_deps=true compile eunit --verbose
>
>
> 2014-08-20 17:16 GMT+02:00 marcos quesada <>:
>
> Hi there!
>>
>>  Adding more debug to understand what is happening, I've found that
>> there's somehting wrong from the included path, so that, using make
>> quicktests (that fires the whole  testsuite), executing path:
>> filename:absname("") equals ~/cluster/.eunit  .  Executinng
>> eunit:test(cluster_test) manually the execution path belongs to cluster
>> app, so that, now its completed succesfully.
>>
>>  So, now i'm able to pass eunit:test(cluster_test), but if I try to
>> execute from the whole suite test, it fails (undefined , timeout), at least
>> the problem seems to belong to some missconfigured path.
>>
>>
>>
>>
>> 2014-08-20 16:05 GMT+02:00 marcos quesada <>:
>>
>> Hi there!
>>>
>>>  Sorry about the delay, summertime....
>>>
>>>  I've tests *to append or substitute -pa to -pz*, without any positive
>>> results, if i've check which paths are loaded, using: code:get_path().
>>> there's no difference between pa or pz, as a result,still getting the same
>>> error:
>>>
>>>    {value,
>>>          {badrpc,
>>>              {'EXIT',
>>>             *     {undef,*
>>> *                     [{cluster,join,[...],...},*
>>> *                      {rpc,'-handle_call_call/6-fun-0-',...}]}}}}]}*
>>>
>>> Anyone coould give me any clue?
>>> If i'm not worng, this error is answering that join function is
>>> undefined on cluster module, as you see all those methods are exported, in
>>> fact, if join wasn't exported * cluster_test:cluster_formation() * will
>>> ever fail.
>>>
>>>
>>> -export([start/0, stop/0, join/1, leave/0, status/0, get_ring/0,
>>> get_timestamp/0]).
>>> -export([ping/1, get/1, set/2, register/2]).
>>>
>>>
>>>  Thank you!
>>>
>>>
>>>
>>> 2014-08-04 23:51 GMT+02:00 T Ty <>:
>>>
>>> -pa adds to front of the path. -pz to the end of the path.
>>>>
>>>>
>>>> On Mon, Aug 4, 2014 at 4:14 PM, marcos quesada <
>>>> > wrote:
>>>>
>>>>> Nop, didn't find it. Maybe i'm missing something, but I think that
>>>>> slaves nodes are getting right the path to find all required beams. All
>>>>> slaves are initialized using:
>>>>> Args = " -pa apps/*/ebin deps/*/ebin -setcookie secret -rsh ssh",
>>>>>  In fact when I execute cluster_test:cluster_formation() works fine.
>>>>>
>>>>> What's the difference to use -pz from -pa?
>>>>>
>>>>>  Thank you!
>>>>>
>>>>> El lunes, 4 de agosto de 2014 03:01:06 UTC+2, Scott Lystig Fritchie
>>>>>  escribió:
>>>>> > marcos quesada <> wrote:
>>>>> >
>>>>> >
>>>>> >
>>>>> > mq> **error:{assertEqual_failed,
>>>>> >
>>>>> > mq>     [{module,cluster_test},
>>>>> >
>>>>> > mq>      {line,43},
>>>>> >
>>>>> > mq>      {expression,"Result1"},
>>>>> >
>>>>> > mq>      {expected,ok},
>>>>> >
>>>>> > mq>      {value,
>>>>> >
>>>>> > mq>          {badrpc,
>>>>> >
>>>>> > mq>              {'EXIT',
>>>>> >
>>>>> > mq>                  {undef,
>>>>> >
>>>>> > mq>                      [{cluster,join,[...],...},
>>>>> >
>>>>> > mq>
>>>>> {rpc,'-handle_call_call/6-fun-0-',...}]}}}}]}
>>>>> >
>>>>> >
>>>>> >
>>>>> > Have you found the cause of this error?  If I had to guess, the slave
>>>>> >
>>>>> > node's code_server doesn't know the path to your cluster.beam module.
>>>>> >
>>>>> > If that's true, then appending ["-pz", PathToYourModule] to the Args
>>>>> >
>>>>> > list of slave:start/3 can correct it.
>>>>> >
>>>>> >
>>>>> >
>>>>> > -Scott
>>>>> >
>>>>> > _______________________________________________
>>>>> >
>>>>> > erlang-questions mailing list
>>>>> >
>>>>> > 
>>>>> >
>>>>> > http://erlang.org/mailman/listinfo/erlang-questions
>>>>>
>>>>> _______________________________________________
>>>>> erlang-questions mailing list
>>>>> 
>>>>> http://erlang.org/mailman/listinfo/erlang-questions
>>>>>
>>>>>
>>>>
>>>
>>
>
> _______________________________________________
> erlang-questions mailing list
> 
> http://erlang.org/mailman/listinfo/erlang-questions
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20140820/e01d329a/attachment.html>


More information about the erlang-questions mailing list