I just spent roughly 2 days trying to figure out why I could not start a rabbitmq broker on a Debian machine. To make a long story short, it was caused by snoopy. Snoopy fubars erlang. Solution is to remove snoopy (dpkg –purge snoopy, if you are on Debian).
Here are some symptoms that you might see:
- net_adm:names() returns {error,timeout} when you do it inside "erl -sname foo"
- if you run epmd -d -d -d -d -d in your terminal and launch erl -sname foo, you will get the registration (ALIVE2_REQ, ALIVE2_RESP) but there will be no more communication between epmd and foo no matter what you do, until you Ctrl+C from foo. Ideally, you should be able to see PORT2_REQ and PORT2_RESP when doing net_adm:ping.
- "erl -sname foo" and "erl -sname bar" on the same machine will not be able to ping each other with "net_adm:ping('foo@host')." or communicate with each other.
- inet:gethostbyname("any.domain.name") will return {error,timeout} for all domains, even for names in your /etc/hosts, when you do "erl -sname foo" but might work when you do just "erl" (not starting a distributed node).
RabbitMQ related symptoms:
- broker will not start using /etc/init.d/rabbitmq-server start
- rabbitmqctl status will always fail with badrpc error