Hi
I don't think this is a bug, but maybe a configuration problem. We were running 17.06 and as per the wanring on the ProcessOne blog, upgraded to 17.07. Now, ejabberd just won't start:
2017-07-19 17:43:30.352 [critical] <0.214.0>@gen_mod:start_module:211 Problem starting the module mo
d_private for host example.net
options: []
error: {{badarg,[{ets,insert,
[ets_cache_options,{{max_size,private_cache},1000}],
[]},
{p1_options,insert,4,
[{file,"src/p1_options.erl"},{line,63}]},
{ets_cache,do_setopts,2,
[{file,"src/ets_cache.erl"},{line,482}]},
{ets_cache,init,1,[{file,"src/ets_cache.erl"},{line,317}]},
{gen_server,init_it,6,[{file,"gen_server.erl"},{line,328}]},
{proc_lib,init_p_do_apply,3,
[{file,"proc_lib.erl"},{line,247}]}]},
{child,undefined,private_cache,
{ets_cache,start_link,
[private_cache,
[{max_size,1000},
{cache_missed,true},
{life_time,3600000}]]},
transient,5000,worker,
[ets_cache]}}
[{ets_cache,new,2,[{file,"src/ets_cache.erl"},{line,84}]},
{mod_private,start,2,[{file,"src/mod_private.erl"},{line,60}]},
{gen_mod,start_module,4,[{file,"src/gen_mod.erl"},{line,199}]},
{lists,foreach,2,[{file,"lists.erl"},{line,1338}]},
{gen_mod,start_link,0,[{file,"src/gen_mod.erl"},{line,78}]},
{supervisor,do_start_child,2,[{file,"supervisor.erl"},{line,365}]},
{supervisor,start_children,3,[{file,"supervisor.erl"},{line,348}]},
{supervisor,init_children,2,[{file,"supervisor.erl"},{line,314}]}]
2017-07-19 17:43:30.352 [critical] <0.214.0>@gen_mod:maybe_halt_ejabberd:293 ejabberd initialization
was aborted because a module start failed.
We did a number of things at this point:
1) disabling the module in question came up with another set of errors to further disable other modules and on. This didn't resolve startup problems
2) Reverting back to the 17.06 we encountered the same thing.
We're running erlang 19.3 so switched to erlang 19.2 in case that was a problem, but neither action resolved this.
We were running fine with erlang 19.3 and 17.06, but the 17.07 upgrade killed the jabber server . :-/
Between 17.06 and 17.07 there
Between 17.06 and 17.07 there is a single patch of a single file changing a single line. So this is not version upgrade related.
I see you have problem initializing cache table, try to disable cache globally: set
use_cache: false
. Does it work?Thanks. That didn't work.
Thanks. That didn't work. Still getting the same error. So I tried a few things:
- Downgraded from erlang 19.3 to 19.2 and rebuilt the ejabberd software. No difference
- Looked very carefully at what was installed and discovered a number of supporting modules installed along with ejabberd in /usr/local/lib/. rm -rf the various directories in that tree.
- Downgraded to 17.04 by building and installing against erlang 19.2
Voila, it works.
I suspect that there was an intermixing of erlang-compiled modules, and ejabberd was getting confused by this. Another thing I had noticed as well is there were version-specific ejabberd-17.xx directories alongside an ejabberd directory. I'm wondering if the ejabberd application may have picked up mismatched versions of ejabberd support libs/binaries and that's what created the problem in the first place? In any case, back in business with the original database.
In short, I think it's best to remove any and all support binaries installed by ejabberd before upgrading as a precaution.