Reputation: 26988
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,[]]}}})
I am working fine on my local machine but not on Amazon EC2, I wonder if it is some network related problem.
How can I check it? The EPMD log keep say my connection is from non-local address and block.
This would affect my RabbitMQ start.
Upvotes: 3
Views: 4275
Reputation: 4429
This is not a bug. Newer erlang versions restrict connections to epmd to local addresses by default. Most likely you have had routing issues or the reason is to masquerade all outgoing traffic with iptables without checking if the destination is 127.0.0.0/8.
Adjust your MASQUERADE rule:
iptables -t nat -A POSTROUTING ! -d 127.0.0.0/8 -j MASQUERADE
And/Or check your routing table.
Upvotes: 8
Reputation: 26988
It seems that it is a bug for erlang R14 or above on CentOS Ec2, i am working fine on erlang R13 now
Upvotes: 0
Reputation: 4077
I think it is related to your hostname setting.
[root@ip-10-101-61-85 ec2-user]# erl -sname foo
According to your above shell information, the current host name is "ip-10-101-61-85 ec2-user"
, it may be allocated by the OS installation program.
Try to reset your hostname, and not use whitespace
in the host name and try again.
Upvotes: 0