Upgrade 2.0.5 to 2.1.x, can't start

Hi,

I tried to update my current 2.0.5 ejabberd to 2.1.x.

I did a uninstall of version 2.0.5 with make uninstall, and a install with ./configure --enable-tls; make; make install.

After a ejabberdctl start the port 5222 is closed and the following out put is shown in the /var/log/ejabberd/ejabberd.log:

=INFO REPORT==== 2010-01-10 12:47:12 ===
I(<0.430.0>:ejabberd_rdbms:37) : ejabberd has not been compiled with relational database support. Skipping database startup.

=INFO REPORT==== 2010-01-10 12:47:13 ===
    application: ejabberd
    exited: {bad_return,{{ejabberd_app,start,[normal,[]]},
                         {{badarg,[{erlang,system_info,[otp_release]},
                                   {ejabberd_listener,init_tcp,6},
                                   {proc_lib,init_p,5}]},
                          {child,undefined,
                                 {5222,{0,0,0,0},tcp},
                                 {ejabberd_listener,
                                     start,
                                     [{5222,{0,0,0,0},tcp},
                                      ejabberd_c2s,
                                      [{certfile,
                                           "/etc/ejabberd/tls/server.pem"},
                                       starttls,
                                       {access,c2s},
                                       {shaper,c2s_shaper},
                                       {max_stanza_size,65536}]]},
                                 transient,
                                 brutal_kill,
                                 worker,
                                 [ejabberd_listener]}}}}
    type: temporary

My server don't have IPv6 support. I guess it could be the problem

Any other suggestions?

BR

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Maybe you have very old Erlang version?

Quote:

My server don't have IPv6 support. I guess it could be the problem

If you mention lack of IPv6 because you saw this in the error: {ejabberd_listener,init_tcp,6}, don't worry: that 6 has nothing to do with IP version 6.

Maybe you are using a very old version of Erlang. ejabberd 2.1.1 (and also current SVN) requires Erlang/OTP R10B-9 or higher. The recommended version is R12B-5. Support for R13 is experimental.

If that is your case, you have at least three options:

  • If that old Erlang is the newest provided by your OS, you can try to get a more recent package from a more recent OS version. Problem: dependencies of that new package may not be available for you.
  • You can download, compile and install from source code Erlang/OTP. Problem: it will take one or two hours to compile, probably.
  • You can download and install ejabberd binary installer from ProcessOne, which includes a minimal Erlang inside, so you don't need to worry about Erlang dependency. Problem: it's a standalone package, so you would need to write the init.d script and logrotate.

Thank you for your reply, but

Thank you for your reply,

but I'm a little bit confused. You are talking about a Version R10B-9 or higher and I've got a version 5.5.2 installed (Debian etch package):

Erlang (BEAM) emulator version 5.5.2 [source] [async-threads:0] [kernel-poll:false]

Eshell V5.5.2  (abort with ^G)

Package Version:

Package: erlang
Priority: optional
Section: interpreters
Installed-Size: 68
Maintainer: Erlang Packagers <erlang-pkg-devel@lists.berlios.de>
Architecture: all
Version: 1:11.b.2-4

Doese anyone know if it is too old?

BR

Should work. Test this

Eshell V5.5.2 is included in Erlang R11B-2, as you can see. So this should be enough for running ejabberd 2.1.x.

I don't understand why you get that error message. Try this, and show what do you get:

This is what I get in R12B-5 and R13B-3 (the versions that I can try):

$ erl
Erlang (BEAM) emulator version 5.6.5 [source] [async-threads:0] [kernel-poll:false]

Eshell V5.6.5  (abort with ^G)
1> erlang:system_info(otp_release).
"R12B"
2> q().
ok
$

And:

$ erl
Erlang R13B03 (erts-5.7.4) [source] [smp:2:2] [rq:2] [async-threads:0] [hipe] [kernel-poll:false]

Eshell V5.7.4  (abort with ^G)
1> erlang:system_info(otp_release).
"R13B03"
2> q().
ok
$

unless I don't have a

unless I don't have a something wrong im my syntax, something seems to be strange:

Eshell V5.5.2  (abort with ^G)
1> erlang:system_info(otp_release).
** exited: {badarg,[{erlang,system_info,[otp_release]},
                    {erl_eval,do_apply,5},
                    {shell,exprs,6},
                    {shell,eval_loop,3}]} **

=ERROR REPORT==== 15-Jan-2010::22:34:45 ===
Error in process <0.29.0> with exit value: {badarg,[{erlang,system_info,[otp_release]},{erl_eval,do_apply,5},{shell,exprs,6},{shell,eval_loop,3}]}

Is the bad arg "opt_release" in that case?

BR

It was bug in ejabberd; try patch.

Quote:

Is the bad arg "otp_release" in that case?

Right, it seems Erlang R10 and R11 didn't implement yet that argument. So it is a bug in ejabberd for expecting all versions to support it.

I've fixed in ejabberd SVN/Git, so the next ejabberd release (planned for the next weeks) will work correctly. Or you can apply the simple patch to your source code:
http://github.com/processone/ejabberd/commit/2de9eac1e305f4ad39d31d1be59...

Thank you for that

Thank you for that information. I'll try it in an free minute.

BR

Syndicate content