[ejabberd] freebsd upgrade and now auth failures

Badlop badlop at gmail.com
Thu Apr 9 14:25:08 MSD 2009

I can describe some general concepts, and probably you will then
notice what is the configuration problem in your case. Note that I
reference to file names used in the standard ejabberd source package.
If you use some binary package, the file names and locations may

2009/4/9 Randy Bush <randy at psg.com>:
> i keep thinking that the priblem is that 2.03 starts as
> ejabberd at localhost and 1.x used to be ejabberd at jabber.psg.com.  i could
> be wrong in this, of course.
> currently, with /etc/rc.conf saying
>    ejabberd_node="ejabberd at jabber.psg.com
> and /usr/local/ejabberd/ejabberd.ctl saying
>    {host, "jabber.psg.com" }.

There are two different concepts here. They are completely independent:

1. The Jabber hostnames.
This concept is common to all Jabber/XMPP programs, including ejabberd.
In ejabberd the hostnames are defined in /etc/ejabberd/ejabberd.cfg
with the option host or hosts:
{hosts, ["example.net", "example.com"]}.

2. The Erlang node name (sometimes also called 'node name', 'ejabberd
node name', ...).
This concept is common to all Erlang/OTP applications, including ejabberd.
In ejabberd the Erlang node name is by default 'ejabberd at localhost'.
In ejabberd the node name can be:
* specified at runtime:
  /sbin/ejabberdctl --name ejabberd3 at machine1
* defined in /etc/ejabberd/ejabberdctl.cfg:
  ERLANG_NODE=ejabberd3 at machine1

In your case, I think you have:

1. One Jabber hostname, you can configure in ejabberd.cfg as
{host, "jabber.psg.com"}.
or as
{hosts, ["jabber.psg.com"]}.

2. Your old ejabberd 1.1.x installation had an old node name:
'ejabberd at jabber.psg.com'
Your new ejabberd 2.0.x installation has a new node name:
'ejabberd at localhost'.
The binary files that your old Mnesia database of your old
installation left on your disk have the old node name stored. And
Mnesia in the new ejabberd installation refuses to start because the
node names do not match.

An easy solution is to define as new node name the same than you used
in old installation.
For example, put in ejabberdctl.cfg:
  ERLANG_NODE=ejabberd at jabber.psg.com


More information about the ejabberd mailing list