jabber-at/ejabberd

Problem with captcha

beherit opened this issue · 10 comments

After upgrade from ejabberd 15.11 to ejabberd 16.01 I have problem with start:

2016-01-26 13:18:24.536 [error] <0.611.0>@ejabberd_captcha:do_create_image:461 Failed to process output from "/usr/lib/ejabberd/priv/bin/captcha.sh 130278". Maybe ImageMagick's Convert program is not installed.
2016-01-26 13:18:24.536 [critical] <0.611.0>@ejabberd_captcha:check_captcha_setup:614 Captcha is enabled in the option captcha_cmd, but it can't generate images.
2016-01-26 13:18:24.537 [error] <0.611.0> CRASH REPORT Process ejabberd_captcha with 0 neighbours exited with reason: bad return value: {error,captcha_cmd_enabled_but_fails} in gen_server:init_it/6 line 334
2016-01-26 13:18:24.537 [error] <0.584.0> Supervisor ejabberd_sup had child ejabberd_captcha started with ejabberd_captcha:start_link() at undefined exit with reason bad return value: {error,captcha_cmd_enabled_but_fails} in context start_error
2016-01-26 13:18:24.540 [error] <0.37.0> CRASH REPORT Process <0.37.0> with 0 neighbours exited with reason: no such process or port in call to gen_server:call(ejabberd_sup, {start_child,{ejabberd_sm,{ejabberd_sm,start_link,[]},transient,1000,worker,[ejabberd_sm]}}, infinity) in application_master:init/4 line 133

What I see - location '/usr/lib/ejabberd/' is empty after upgrade.

I cannot reproduce this. After installing the package on jessie, I get:

root@host:~# ls /usr/lib/ejabberd/priv/bin/captcha.sh
/usr/lib/ejabberd/priv/bin/captcha.sh

/usr/lib/ejabberd is a symlink to /usr/lib/ejabberd-16.01 (which is now the default location for installation, unfortunately).

I understand but for me (on 2 machines) symlinks wasn't created.

I try to install ejabberd 16.01 many times and always symlinks isn't created...

Does it show up with dpkg -L?

root@host:~# dpkg -L ejabberd  | grep /usr/lib/ejabberd$
/usr/lib/ejabberd

What does dpkg -l ejabberd (that's the lower case letter "L") say?

I've got:

root@vps:~# dpkg -L ejabberd  | grep /usr/lib/ejabberd$
/usr/lib/ejabberd

But this is not symlink.

dpkg -L does not show symlinks - it's not the same as e.g. ls -l.

root@host:~# ls -l /usr/lib/ | grep ejabberd
lrwxrwxrwx  1 root root      14 Jan 23 23:37 ejabberd -> ejabberd-16.01
drwxr-xr-x  5 root root    4096 Jan 31 11:35 ejabberd-16.01

As I say - Your ejabberd package doesen't create symlink for me :)

root@vps54276:/# ls -l /usr/lib/ | grep ejabberd
drwxr-xr-x  2 root root         4096 Jan 31 12:55 ejabberd
drwxr-xr-x  5 root root         4096 Jan 31 08:26 ejabberd-16.01

Symlink is created ONLY when befero install I deleted /usr/lib/ejabberd BUT it's not possible when I update ejabberd from other version...

yes, that appears to be an issue strictly with upgrading. This is also an issue with the ejabberd-mod-* packages :/

ejabberd-16.01-2 (building right now) will use /usr/share/ejabberd/captcha.sh as version-independent location for the captcha script. Please use that in your config-file!