这是我从mod_mam得到的错误,我需要帮助才能理解这个
错误日志:
[error] <0.27129.40> CRASH REPORT Process <0.27129.40> with 0 neighbours exited with reason: {process_limit,{max_queue,5590}} in p1_fsm:terminate/8 line 755
2015-12-07 07:25:47.714 [error] <0.336.0> Supervisor ejabberd_c2s_sup had child undefined started with {ejabberd_c2s,start_link,undefined} at <0.27129.40> exit with reason {process_limit,{max_queue,5590}} in context child_terminated
2015-12-07 07:25:53.209 [error] <0.479.0>@gen_iq_handler:process_iq:128 {badarg,[{erlang,binary_to_atom,[null,utf8],[]},{jlib,binary_to_atom,1,[{file,"src/jlib.erl"},{line,934}]},{mod_mam,'-select/8-fun-2-',3,[{file,"src/mod_mam.erl"},{line,675}]},{lists,map,2,[{file,"lists.erl"},{line,1237}]},{mod_mam,select,8,[{file,"src/mod_mam.erl"},{line,669}]},{mod_mam,select_and_send,10,[{file,"src/mod_mam.erl"},{line,569}]},{gen_iq_handler,process_iq,6,[{file,"src/gen_iq_handler.erl"},{line,127}]},{gen_iq_handler,handle_info,2,[{file,"src/gen_iq_handler.erl"},{line,171}]}]}
这与查询归档有关,因为我对erlang缺乏了解,我无法理解。请帮助我理解这一点。
答案 0 :(得分:0)
第一个错误的原因是您的服务过载:
{process_limit,{max_queue,5590}
请注意,ejabberd process_limit错误消息是关于队列中消息数量的每个进程限制。这是为了避免进程缓慢或消息接收器占用所有服务器资源。 它与每个节点允许进程的Erlang数无关。
关于日志中的第二个错误,我想这是因为您已从旧版本升级实例并在归档中包含旧消息。我们改进了ejabberd的代码以支持旧的存储消息。 这已经在ejabberd头部提交,修复将在ejabberd 15.12发布。