I am in the process of replacing jabber14 (1.4.3) with ejabberd 2.0.1-6 on Debian Etch virtual private server. I have ssh access only. The installation went well. However, ejabberd fails to start. "/etc/init.d/ejabberd start" continues to fail. "sudo netstat -lnp | grep 5222" shows no service. Does anybody have any experience with this? I've included some log files below:
The /var/log/ejabberd/ejabber.log file:
=INFO REPORT==== 2010-05-24 18:57:33 ===
I(<0.305.0>:mod_pubsub:152) : pubsub init "localhost" [{access_createnode,
pubsub_createnode},
{plugins,
["default","pep"]}]
=INFO REPORT==== 2010-05-24 18:57:33 ===
I(<0.305.0>:mod_pubsub:207) : ** tree plugin is nodetree_default
=INFO REPORT==== 2010-05-24 18:57:33 ===
I(<0.305.0>:mod_pubsub:211) : ** init default plugin
=INFO REPORT==== 2010-05-24 18:57:33 ===
I(<0.305.0>:mod_pubsub:211) : ** init pep plugin
A portion of the /var/log/ejabberd/sasl.log file:
=PROGRESS REPORT==== 24-May-2010::18:57:33 ===
supervisor: {local,ejabberd_sup}
started: [{pid,<0.305.0>},
{name,ejabberd_mod_pubsub_localhost},
{mfa,{mod_pubsub,
start_link,
["localhost",
[{access_createnode,pubsub_createnode},
{plugins,["default","pep"]}]]}},
{restart_type,transient},
{shutdown,1000},
{child_type,worker}]
=PROGRESS REPORT==== 24-May-2010::18:57:33 ===
application: ejabberd
started_at: ejabberd@ps25005
Re: Installation on Debian Etch
Try this:
1) See if it dropped an Erlang crash dump file (under /var/log/ejabberd).
2) Edit /etc/init.d/ejabberd, locate a line which starts the Erlang emulator -- it should look something like this:
su $EJABBERDUSER -c "$EJABBERD -noshell -detached"
and temporarily remove these
-noshell -detached
options, save and attempt to start ejabberd again, having checked that no instance is running (kill anybeam
orbeam.smp
process running).Without these options, ejabberd will run in foreground, and if it crashes, you'll be able to scroll its output up and look for error message.
So, if/when you have a crash dump and/or the error message, publish them for further analysis.
Crash Dump
Thanks for the advice on how to move forward.
This is what ejabberd spits out when running in the foreground:
/etc/init.d# ejabberd start
{error_logger,{{2010,5,27},{0,7,44}},"Protocol: ~p: register error: ~p~n",["inet_tcp",{{badmatch,{error,duplicate_name}},[{inet_tcp_dist,listen,1},{net_kernel,start_protos,4},{net_kernel,start_protos,3},{net_kernel,init_node,2},{net_kernel,init,1},{gen_server,init_it,6},{proc_lib,init_p,5}]}]}
{error_logger,{{2010,5,27},{0,7,44}},crash_report,[[{pid,<0.20.0>},{registered_name,net_kernel},{error_info,{error,badarg}},{initial_call,{gen,init_it,[gen_server,<0.17.0>,<0.17.0>,{local,net_kernel},net_kernel,{ejabberd,shortnames,15000},[]]}},{ancestors,[net_sup,kernel_sup,<0.8.0>]},{messages,[]},{links,[#Port<0.8>,<0.17.0>]},{dictionary,[{longnames,false}]},{trap_exit,true},{status,running},{heap_size,233},{stack_size,21},{reductions,412}],[]]}
{error_logger,{{2010,5,27},{0,7,44}},supervisor_report,[{supervisor,{local,net_sup}},{errorContext,start_error},{reason,{'EXIT',nodistribution}},{offender,[{pid,undefined},{name,net_kernel},{mfa,{net_kernel,start_link,[[ejabberd,shortnames]]}},{restart_type,permanent},{shutdown,2000},{child_type,worker}]}]}
{error_logger,{{2010,5,27},{0,7,44}},supervisor_report,[{supervisor,{local,kernel_sup}},{errorContext,start_error},{reason,shutdown},{offender,[{pid,undefined},{name,net_sup},{mfa,{erl_distribution,start_link,[]}},{restart_type,permanent},{shutdown,infinity},{child_type,supervisor}]}]}
{error_logger,{{2010,5,27},{0,7,44}},crash_report,[[{pid,<0.7.0>},{registered_name,[]},{error_info,{shutdown,{kernel,start,[normal,[]]}}},{initial_call,{application_master,init,[<0.5.0>,<0.6.0>,{appl_data,kernel,[application_controller,erl_reply,auth,boot_server,code_server,disk_log_server,disk_log_sup,erl_prim_loader,error_logger,file_server_2,fixtable_server,global_group,global_name_server,heart,init,kernel_config,kernel_sup,net_kernel,net_sup,rex,user,os_server,ddll_server,erl_epmd,inet_db,pg2],undefined,{kernel,[]},[application,application_controller,application_master,application_starter,auth,code,code_aux,packages,code_server,dist_util,erl_boot_server,erl_distribution,erl_prim_loader,erl_reply,erlang,error_handler,error_logger,file,file_server,file_io_server,prim_file,global,global_group,global_search,group,heart,hipe_unified_loader,inet6_tcp,inet6_tcp_dist,inet6_udp,inet_config,inet_hosts,inet_gethost_native,inet_tcp_dist,init,kernel,kernel_config,net,net_adm,net_kernel,os,ram_file,rpc,user,user_drv,user_sup,disk_log,disk_log_1,disk_log_server,disk_log_sup,dist_ac,erl_ddll,erl_epmd,erts_debug,gen_tcp,gen_udp,prim_inet,inet,inet_db,inet_dns,inet_parse,inet_res,inet_tcp,inet_udp,pg2,seq_trace,wrap_log_reader,zlib,otp_ring0],[],infinity,infinity},normal]}},{ancestors,[<0.6.0>]},{messages,[{'EXIT',<0.8.0>,normal}]},{links,[<0.6.0>,<0.5.0>]},{dictionary,[]},{trap_exit,true},{status,running},{heap_size,610},{stack_size,21},{reductions,2079}],[]]}
{error_logger,{{2010,5,27},{0,7,44}},std_info,[{application,kernel},{exited,{shutdown,{kernel,start,[normal,[]]}}},{type,permanent}]}
{"Kernel pid terminated",application_controller,"{application_start_failure,kernel,{shutdown,{kernel,start,[normal,[]]}}}"}
Crash dump was written to: /var/log/ejabberd/erl_crash.dump
Kernel pid terminated (application_controller) ({application_start_failure,kernel,{shutdown,{kernel,start,[normal,[]]}}})
And here is thegenerated crash dump .
Any advice you may have would be most appreciated.
Known error message
This is what ejabberd spits out when running in the foreground:
/etc/init.d# ejabberd start
{error_logger,{{2010,5,27},{0,7,44}},"Protocol: ~p: register error: ~p~n",["inet_tcp",{{badmatch,{error,duplicate_name}},
Any advice you may have would be most appreciated.
See http://www.ejabberd.im/error/duplicate_name
Problem Solved!
I killed epmd, ensured that only one host was configured in /etc/ejabberd/ejabberd.cfg and restarted. Everything works well! Thanks for pointing me in the right direction!