[erlang-questions] Erlang Nodes can't communicate with each other
Harit Himanshu
harit.subscriptions@REDACTED
Mon Jan 19 17:56:47 CET 2015
I just caught the issue. My client was running with *-sname *(I am guessing
this is issue). Now following works for me
*Server*
root@REDACTED:/code# erl -name gru@REDACTED -setcookie abc
Erlang/OTP 17 [erts-6.0] [source] [64-bit] [smp:8:8] [async-threads:10]
[hipe] [kernel-poll:false]
Eshell V6.0 (abort with ^G)
(gru@REDACTED)1> kvs:start().
** exception error: undefined function kvs:start/0
(gru@REDACTED)2> c(kvs).
{ok,kvs}
(gru@REDACTED)3> kvs:start().
true
(gru@REDACTED)4> kvs:lookup(weather).
{ok,fine}
(gru@REDACTED)5> kvs:lookup(code).
{ok,working}
(gru@REDACTED)6>
*Client*
root@REDACTED:/code# erl -name minion1@REDACTED -setcookie abc
Erlang/OTP 17 [erts-6.0] [source] [64-bit] [smp:8:8] [async-threads:10]
[hipe] [kernel-poll:false]
Eshell V6.0 (abort with ^G)
(minion1@REDACTED)1> rpc:call('gru@REDACTED', kvs, store, [weather,
fine]).
true
(minion1@REDACTED)2> rpc:call('gru@REDACTED', kvs, lookup,
[weather]).
{ok,fine}
(minion1@REDACTED)3> rpc:call('gru@REDACTED', kvs, store, [code,
working]).
true
(minion1@REDACTED)4> rpc:call('gru@REDACTED', kvs, lookup, [code]).
{ok,working}
(minion1@REDACTED)5>
Thanks for all your help
+ Harit
On Mon, Jan 19, 2015 at 8:44 AM, Harit Himanshu <
harit.subscriptions@REDACTED> wrote:
> Thanks Daniel, I just tried that, I see different issue now
>
> *Server*
>
> root@REDACTED:/code# ifconfig
>
> eth0 Link encap:Ethernet HWaddr 02:42:ac:11:00:3e
>
> inet addr:172.17.0.62 Bcast:0.0.0.0 Mask:255.255.0.0
>
> inet6 addr: fe80::42:acff:fe11:3e/64 Scope:Link
>
> UP BROADCAST RUNNING MTU:1500 Metric:1
>
> RX packets:15 errors:0 dropped:0 overruns:0 frame:0
>
> TX packets:14 errors:0 dropped:0 overruns:0 carrier:0
>
> collisions:0 txqueuelen:0
>
> RX bytes:1260 (1.2 KB) TX bytes:1088 (1.0 KB)
>
>
> lo Link encap:Local Loopback
>
> inet addr:127.0.0.1 Mask:255.0.0.0
>
> inet6 addr: ::1/128 Scope:Host
>
> UP LOOPBACK RUNNING MTU:65536 Metric:1
>
> RX packets:30 errors:0 dropped:0 overruns:0 frame:0
>
> TX packets:30 errors:0 dropped:0 overruns:0 carrier:0
>
> collisions:0 txqueuelen:0
>
> RX bytes:1674 (1.6 KB) TX bytes:1674 (1.6 KB)
>
>
> root@REDACTED:/code# erl -name gru@REDACTED -setcookie abc
>
> Erlang/OTP 17 [erts-6.0] [source] [64-bit] [smp:8:8] [async-threads:10]
> [hipe] [kernel-poll:false]
>
>
> Eshell V6.0 (abort with ^G)
>
> (gru@REDACTED)1> kvs:start()
>
> (gru@REDACTED)1> .
>
> true
>
> (gru@REDACTED)2>
>
> *Client*
>
> (minion1@REDACTED)6> rpc:call(gru@REDACTED, kvs, store, [weather,
> fine]).
>
> * 1: syntax error before: '.'
>
> (minion1@REDACTED)6> rpc:call('gru@REDACTED', kvs, store,
> [weather, fine]).
>
> {badrpc,nodedown}
>
> (minion1@REDACTED)7>
>
> =ERROR REPORT==== 19-Jan-2015::16:42:56 ===
>
> ** System NOT running to use fully qualified hostnames **
>
> ** Hostname 172.17.0.62 is illegal **
>
>
>
>
>
> I don't understand why Host is illegal, any ideas?
> Thanks
>
> On Mon, Jan 19, 2015 at 8:22 AM, Daniel Hallin Widgren <
> daniel.widgren@REDACTED> wrote:
>
>> Hi,
>>
>> Have you tried to use -name mynode@REDACTED instead of -sname mynode? I think
>> you need long name activated to talk to each other.
>>
>> regards,
>> Daniel
>>
>> 2015-01-19 17:05 GMT+01:00 Harit Himanshu <harit.subscriptions@REDACTED>
>> :
>>
>>> Hi
>>>
>>> I am learning Distributed programming and in order to work through it, I
>>> started 2 docker containers using images provided by Mark Nijhof (
>>> https://github.com/MarkNijhof/erlang_docker)
>>>
>>> So now when I start my docker containers (on same Macbook), I observe
>>> that they are not able to talk to each other
>>>
>>> *Server*
>>>
>>> root@REDACTED:/code# erl -sname gru -setcookie abc
>>>
>>> Erlang/OTP 17 [erts-6.0] [source] [64-bit] [smp:8:8] [async-threads:10]
>>> [hipe] [kernel-poll:false]
>>>
>>>
>>> Eshell V6.0 (abort with ^G)
>>>
>>> (gru@REDACTED)1> kvs:start().
>>>
>>> true
>>>
>>> (gru@REDACTED)2>
>>>
>>> *Minion*
>>>
>>> ➜ erlang_docker git:(master) docker run -t -i erlang-build-box
>>> /bin/bash
>>>
>>> root@REDACTED:/# mkdir code
>>>
>>> root@REDACTED:/# cd code
>>>
>>> root@REDACTED:/code# vi kvs.erl
>>>
>>> root@REDACTED:/code# erl -sname minion1 -setcookie abc
>>>
>>> Erlang/OTP 17 [erts-6.0] [source] [64-bit] [smp:8:8] [async-threads:10]
>>> [hipe] [kernel-poll:false]
>>>
>>>
>>> Eshell V6.0 (abort with ^G)
>>>
>>> (minion1@REDACTED)1> rpc:call(gru@REDACTED, kvs, store,
>>> [weather, fine]).
>>>
>>> {badrpc,nodedown}
>>>
>>> (minion1@REDACTED)2> rpc:call(gru@REDACTED, kvs, store,
>>> [weather, fine]).
>>>
>>> {badrpc,nodedown}
>>>
>>> (minion1@REDACTED)3> c(kvs).
>>>
>>> {ok,kvs}
>>>
>>> (minion1@REDACTED)4> rpc:call(gru@REDACTED, kvs, store,
>>> [weather, fine]).
>>>
>>> {badrpc,nodedown}
>>>
>>> (minion1@REDACTED)5>
>>>
>>>
>>>
>>> My code looks like following and it works correctly when both server and
>>> minion are on same node
>>>
>>> -module(kvs).
>>> -author("harith").
>>>
>>> %% API
>>> -export([start/0, store/2, lookup/1]).
>>>
>>> start() ->
>>> register(kvs, spawn(fun() -> loop() end)).
>>>
>>> store(Key, Value) ->
>>> rpc({store, Key, Value}).
>>>
>>> lookup(Key) ->
>>> rpc({lookup, Key}).
>>>
>>> rpc(Q) ->
>>> kvs ! {self(), Q},
>>> receive
>>> {kvs, Reply} ->
>>> Reply
>>> end.
>>>
>>> loop() ->
>>> receive
>>> {From, {store, Key, Value}} ->
>>> put(Key, {ok, Value}),
>>> From ! {kvs, true},
>>> loop();
>>> {From, {lookup, Key}} ->
>>> From ! {kvs, get(Key)},
>>> loop()
>>> end.
>>>
>>>
>>> What am I missing here?
>>>
>>> Thanks
>>> + Harit
>>>
>>> _______________________________________________
>>> erlang-questions mailing list
>>> erlang-questions@REDACTED
>>> http://erlang.org/mailman/listinfo/erlang-questions
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20150119/2fd8c9dd/attachment.htm>
More information about the erlang-questions
mailing list