You are not logged in.

#1 2016-01-28 18:32:45

gonX
Member
From: Denmark
Registered: 2009-08-16
Posts: 112

ejabberd epam not working after latest update (15.11 -> 16.01)

After the latest update, ejabberd has started throwing crash messages like these:

2016-01-23 18:27:53 =ERROR REPORT====
Can't open file "/usr/lib/ejabberd/priv/bin/epam": enoent
2016-01-23 18:27:53 =CRASH REPORT====
  crasher:
    initial call: epam:init/1
    pid: <0.368.0>
    registered_name: epam
    exception exit: {{bad_return_value,error},[{gen_server,init_it,6,[{file,"gen_server.erl"},{line,356}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,240}]}]}
    ancestors: [epam_sup,<0.366.0>]
    messages: []
    links: [<0.367.0>]
    dictionary: []
    trap_exit: false
    status: running
    heap_size: 376
    stack_size: 27
    reductions: 196
  neighbours:
2016-01-23 18:27:53 =SUPERVISOR REPORT====
     Supervisor: {local,epam_sup}
     Context:    start_error
     Reason:     {bad_return_value,error}
     Offender:   [{pid,undefined},{id,epam},{mfargs,{epam,start_link,[]}},{restart_type,permanent},{shutdown,brutal_kill},{child_type,worker}]

2016-01-23 18:27:53 =CRASH REPORT====
  crasher:
    initial call: application_master:init/4
    pid: <0.365.0>
    registered_name: []
    exception exit: {{{shutdown,{failed_to_start_child,epam,{bad_return_value,error}}},{epam_app,start,[normal,[]]}},[{application_master,init,4,[{file,"application_master.erl"},{line,134}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,240}]}]}
    ancestors: [<0.364.0>]
    messages: [{'EXIT',<0.366.0>,normal}]
    links: [<0.364.0>,<0.7.0>]
    dictionary: []
    trap_exit: true
    status: running
    heap_size: 376
    stack_size: 27
    reductions: 115
  neighbours:

The error is pretty obvious:

Can't open file "/usr/lib/ejabberd/priv/bin/epam": enoent

After the latest update, a lot of stuff was changed in the packaging:

[2016-01-20 23:44] [ALPM] warning: /etc/ejabberd/ejabberd.yml installed as /etc/ejabberd/ejabberd.yml.pacnew
[2016-01-20 23:44] [ALPM] upgraded ejabberd (15.11-1 -> 16.01-2)
[2016-01-20 23:44] [ALPM-SCRIPTLET] !!! ejabberd user changed to predefined jabber(uid=17)
[2016-01-20 23:44] [ALPM-SCRIPTLET] !!! check file permission and ownership in
[2016-01-20 23:44] [ALPM-SCRIPTLET] !!!   /etc/ejabberd/
[2016-01-20 23:44] [ALPM-SCRIPTLET] !!!   /var/{lib,log}/ejabberd/

I did go ahead and fix all those things, however another unmentioned change is that the path of ejabberd changed to /usr/lib/ejabberd-16.01 from /usr/lib/ejabberd - so perhaps the internal database (Mnesia) has a reference to the file on this old location? I see no reference to /usr/lib/ejabberd in any of the configuration files in /etc/ejabberd.

Since I'm no Erlang expert, I'm not sure how to fix this the right way. However, as a band-aid, I've just symlinked the old directory to the new directory:

# ln -s /usr/lib/ejabberd-16.01 /usr/lib/ejabberd

Of course this too much of a hack and too little "Arch", so I would like to have some advise on how to fix this issue the right way.


since 2009

Offline

Board footer

Powered by FluxBB