Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I am trying to install ejabberd 2.1.10-2 on my Ubuntu 12.04.1 server. This is a fresh install, and ejabberd is never successfully installed.

The Install

Every time, apt-get hangs on this:

Setting up ejabberd (2.1.10-2ubuntu1) ...
Generating SSL certificate /etc/ejabberd/ejabberd.pem...

Creating config file /etc/ejabberd/ejabberd.cfg with new version
Starting jabber server: ejabberd............................................................ failed.

The dots just go forever until it times out or I 'killall' beam, beam.smp, epmd, and ejabberd processes. I've turned off all firewall restrictions.

Here's the output of epmd -names while the install is hung:

epmd: up and running on port 4369 with data:
name ejabberdctl at port 42108
name ejabberd at port 39621

And after it fails:

epmd: up and running on port 4369 with data:
name ejabberd at port 39621

At the same time (during and after), the output of both netstat -atnp | grep 5222 and netstat -atnp | grep 5280 is empty.


The Crash File

A crash dump file is create at /var/log/ejabber/erl_crash.dump. The slogan (i.e. reason for the crash) is:

Slogan: Kernel pid terminated (application_controller) ({application_start_failure,kernel,{shutdown,{kernel,start,[normal,[]]}}})

It's alive?

Whenever I try to relaunch ejabberd with service ejabberd start, the same thing happens - even if I've killed all processes before doing so.

However, when I killall the processes listed above again, and run su - ejabberd -c /usr/sbin/ejabberd, this is the output I get:

Erlang R14B04 (erts-5.8.5) [source] [64-bit] [rq:1] [async-threads:0] [kernel-poll:false]

Eshell V5.8.5  (abort with ^G)
(ejabberd@ns1)1> 
=INFO REPORT==== 15-Oct-2012::12:26:13 ===
I(<0.478.0>:ejabberd_listener:166) : Reusing listening port for 5222

=INFO REPORT==== 15-Oct-2012::12:26:13 ===
I(<0.479.0>:ejabberd_listener:166) : Reusing listening port for 5269

=INFO REPORT==== 15-Oct-2012::12:26:13 ===
I(<0.480.0>:ejabberd_listener:166) : Reusing listening port for 5280

=INFO REPORT==== 15-Oct-2012::12:26:13 ===
I(<0.40.0>:ejabberd_app:72) : ejabberd 2.1.10 is started in the node ejabberd@ns1

Then, the server appears to be running. I get a login prompt when I access http://mydomain.com:5280/admin/. Of course I can't login unless I create an account.

At this time, the output of netstat -atnp | grep 5222 and netstat -atnp | grep 5280 is as follows:

tcp        0      0 0.0.0.0:5222            0.0.0.0:*               LISTEN      19347/beam      
tcp        0      0 0.0.0.0:5280            0.0.0.0:*               LISTEN      19347/beam      

ejabberdctl

Even when it appears ejabberd is running, trying to do anything with ejabberdctl fails. For example: trying to register a user:

root@ns1:~# ejabberdctl register myusername mydomain.com mypassword
Failed RPC connection to the node ejabberd@ns1: nodedown

I have no idea what I'm doing wrong. This happens on two different servers I have with identical software installed (really not much of anything). Please help. Thanks.

share|improve this question
    
Just a guess, have you tried either acquiring a binary/package from the developer web site or building from source? Also, have you tested installing it in a VM (or actual install) of 12.10? –  InkBlend Oct 24 '12 at 21:05
add comment

1 Answer 1

up vote 5 down vote accepted
+50

I had this problem one time when the daemon could not determine the ip address of the hostname I gave in the ejabber config file. My solution was to edit /etc/hosts file and make sure that there was a hostname entry for my public ip address and the domain I wanted ejabber to respond to.

0.0.0.0 hostname.domain.com hostname
1.1.1.1 ns1.yahoo.com ns1

Well, you get the picture. Hope that helps.

share|improve this answer
    
I checked, and I already have an entry in my /etc/hosts file with my domain name and public IP. However, I think you're on the right track with this. I just noticed the error message says "Failed RPC connection to the node ejabberd@ns1". ns1 is the machine's name but it is not the domain name. Should that show the domain name there? –  Andrew Oct 24 '12 at 16:34
1  
yeah for sure.. You should at least add ns1 to the hosts file as well. like 0.0.0.0 <FQDN> <hostname> –  Frank Barcenas Oct 24 '12 at 20:50
    
Holy... I don't even... Adding ns1 to my /etc/hosts file worked. Good grief. –  Andrew Oct 24 '12 at 21:17
1  
Glad to hear you got it taken care of. Good luck and may the force be with you. :-) –  Frank Barcenas Oct 25 '12 at 1:04
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.