3
Erlang R14B04 (erts-5.8.5) [source] [64-bit] [rq:1] [async-threads:0 [kernel-poll:false]

Eshell V5.8.5  (abort with ^G)

[root@ip-10-101-61-85 ec2-user]# erl -sname foo
{error_logger,{{2012,12,7},{3,17,8}},"Protocol: ~p: register error: ~p~n",["inet_tcp",{{badmatch,{error,epmd_close}},[{inet_tcp_dist,listen,1},{net_kernel,start_protos,4},{net_kernel,start_protos,3},{net_kernel,init_node,2},{net_kernel,init,1},{gen_server,init_it,6},{proc_lib,init_p_do_apply,3}]}]}
{error_logger,{{2012,12,7},{3,17,8}},crash_report,[[{initial_call,{net_kernel,init,['Argument__1']}},{pid,<0.20.0>},{registered_name,[]},{error_info,{exit,{error,badarg},[{gen_server,init_it,6},{proc_lib,init_p_do_apply,3}]}},{ancestors,[net_sup,kernel_sup,<0.9.0>]},{messages,[]},{links,[#Port<0.55>,<0.17.0>]},{dictionary,[{longnames,false}]},{trap_exit,true},{status,running},{heap_size,377},{stack_size,24},{reductions,453}],[]]}
{error_logger,{{2012,12,7},{3,17,8}},supervisor_report,[{supervisor,{local,net_sup}},{errorContext,start_error},{reason,{'EXIT',nodistribution}},{offender,[{pid,undefined},{name,net_kernel},{mfargs,{net_kernel,start_link,[[foo,shortnames]]}},{restart_type,permanent},{shutdown,2000},{child_type,worker}]}]}
{error_logger,{{2012,12,7},{3,17,8}},supervisor_report,[{supervisor,{local,kernel_sup}},{errorContext,start_error},{reason,shutdown},{offender,[{pid,undefined},{name,net_sup},{mfargs,{erl_distribution,start_link,[]}},{restart_type,permanent},{shutdown,infinity},{child_type,supervisor}]}]}
{error_logger,{{2012,12,7},{3,17,8}},std_info,[{application,kernel},{exited,{shutdown,{kernel,start,[normal,[]]}}},{type,permanent}]}
{"Kernel pid terminated",application_controller,"{application_start_failure,kernel,{shutdown,{kernel,start,[normal,[]]}}}"}

Crash dump was written to: erl_crash.dump
Kernel pid terminated (application_controller) ({application_start_failure,kernel,{shutdown,{kernel,start,[normal,[]]}}})

ローカルマシンでは正常に動作していますが、Amazon EC2では動作していません。これは、ネットワーク関連の問題ではないかと思います。

どうすれば確認できますか?EPMDログは、私の接続が非ローカルアドレスとブロックからのものであると言い続けます。

これは私のRabbitMQの開始に影響します。

4

3 に答える 3

8

これはバグではありません。新しいerlangバージョンでは、デフォルトでepmdへの接続がローカルアドレスに制限されています。ルーティングの問題が発生したか、宛先が127.0.0.0/8であるかどうかを確認せずに、すべての発信トラフィックをiptablesでマスカレードすることが原因である可能性があります。

MASQUERADEルールを調整します。

iptables -t nat -A POSTROUTING ! -d 127.0.0.0/8 -j MASQUERADE

および/またはルーティングテーブルを確認します。

于 2013-06-14T19:16:29.270 に答える
0

ホスト名の設定に関係していると思います。

[root@ip-10-101-61-85 ec2-user]# erl -sname foo

上記のシェル情報によると、現在のホスト名は"ip-10-101-61-85 ec2-user"、OSインストールプログラムによって割り当てられている可能性があります。ホスト名をリセットwhitespaceし、ホスト名に使用しないで再試行してください。

于 2012-12-07T12:31:33.897 に答える
0

CentOSEc2のerlangR14以降のバグのようです。現在、erlangR13で正常に動作しています。

于 2012-12-28T03:03:18.967 に答える