Bug in ejabberdctl using different node names and different NIC IP address on the same box

I'm using ejabberdctl of ejabberd 2.1.11, so this may no longer apply. We have installed two ejabberd nodes on the same box using different IP addresses (2 NICs on the same box) and the nodes are each uniquely named. One is "ejabberd" and the other is "ejabberd2". When starting the second one, we get the response from ejabberdctl start of

ejabberd node is registered, but no ejabberd process has been found.
can not kill epmd as other erlang nodes are running.
please stop all erlang nodes, and call 'epmd -kill'.

I discovered a slight bug of inclusiveness in the ejabberdctl check_start function where ejabberd is found inside of ejabberd2. The line of code that needs to be changed is

epmd -names 2>/dev/null | grep -q ${ERLANG_NODE%@*} && {

And needs to be changed to

epmd -names 2>/dev/null | grep -q " ${ERLANG_NODE%@*} " && {

since the return of epmd -names reads like

name ejabberd2 at port 39387

Forcing the space addition on each end to the regex guarantees a full match of the node name.

The problematic code is in

The problematic code is in the Binary installer script. I've submitted the bugfix to a ticket here: https://support.process-one.net/browse/EJAB-1611

Syndicate content