["inet_tcp",{{badmatch,{error,econnrefused}},

Error

I installed ejabberd in a virtual machine (linux-vserver). When I try to start ejabberd, it crashes immediately and shows those errors:

{error_logger,{{2009,10,18},{23,7,5}},
  "Protocol: ~p: register error: ~p~n",
  ["inet_tcp",{{badmatch,{error,econnrefused}},
   [{inet_tcp_dist,listen,1},{net_kernel,start_protos,4},{net_kernel,start_protos,3},
   ...

Explanation

The problem is in the 'epmd' program that Erlang starts at the same time that 'beam'. You can see that the same errors appear with a simple Erlang node like this:

erl -sname testname

The reason is that under virtual systems (like linux-vserver) epmd can be launched at any IP address but it can work only at 127.0.0.1.

Solution

Run those commands in the main machine (not inside the virtual machine):

nattribute --set --nid virtual_system_name --flag ~single_ip
echo "~single_ip" > /etc/vservers/virtual_system_name/nflags

In your case, replace virtual_system_name with the name of you cirtual machine.

Thanks to Liveevil.

Syndicate content