Erlang 存档查询错误(Mod_mam)

Erlang 存档查询错误(Mod_mam),erlang,xmpp,ejabberd,Erlang,Xmpp,Ejabberd,这是我从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&

这是我从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}]}]}
[error]具有0个邻居的崩溃报告进程退出,原因为:p1_fsm中的{Process_limit,{max_queue,5590}}终止/8行755
2015-12-07 07:25:47.714[错误]主管ejabberd_c2s_sup的子项未定义从出口处的{ejabberd_c2s,start_link,undefined}开始,原因是{process_limit,{max_queue,5590}上下文中的子项已终止
2015-12-07-07-07-25:25:25-12-12-07-07-07-07-07-07-07-07-25-25-25-25:25:25:25:25-25-25-25-25:25:25:53.58[错误][错误]@gen-gen-iq处理者:处理者:处理者:过程智商:128{badarArArArArArArArArg,[{{{{erlang erlang,二进制,二进制,二进制,二进制,原子,二进制,二进制,二进制,原子原子,原子,[零,零,零零,utf8[[[[[[[[[零,UTF88,[零,空,utf8,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,]},]},},,,,,,,,,{,,,,,,{,,{,{,,,mam,select,8,[{file,“src/mod_mam.erl”},{line,669}]},{mod_-mam,选择_和_-send,10,[{file,“src/mod_-mam.erl”},{line,569}},{gen_-iq_-handler,process_-iq,6,[{file,“src/gen_-iq_-handler.erl”},{line,127},{gen gen iq_-handler,handler\u-info,2,[{file,“src/gen iq_-iq-handler.erl”},{line,171}}}

这与查询存档有关,因为我不了解erlang。请帮助我了解这一点。

第一个错误的原因是您的服务过载:

{process_limit,{max_queue,5590}
请注意,ejabberd process_limit错误消息是关于队列中消息数量的每个进程的限制。这是为了避免缓慢的进程或消息接收器占用所有服务器资源。 它与每个节点允许的进程数无关

关于日志中的第二个错误,我想这是因为您从旧版本升级了实例,并且存档了旧消息。我们改进了ejabberd的代码以支持旧存储的消息。
这已经在ejabberd head中提交,修复程序将在ejabberd 15.12版本中发布。

没有这样描述的问题。你能用你的脚本和ejabberd配置更新你所做的,以便你能得到一些帮助吗?我正在使用ejabberd 15.11最近更新的mod_mam:default:always db_type:odbc…很好。你能吗请更新您的脚本以了解您到底在做什么?以及您的ejabberd mod_mam配置?我没有外部脚本来执行此操作,我只是按照此链接进行查询,我发现erlang节点的进程限制约为32767。是否需要增加队列大小来纠正此问题?我不理解您的问题,因为大小为of队列与进程限制无关。队列没有理由达到该大小。您应该首先了解消息排队的原因。可能您的系统错误地配置了您试图部署的平台的大小。这不是MAM问题,而是整个消息传递解决方案的一般设计问题。ple在给BadaArg[错误]@gen\u iq的iq的处理者:处理过程,iq:128{badaArg,[{{erlang,二进制的,二进制的,二进制的,原子原子,[零,utf8,utf8,,,,{6.1,在其中它给BadadaArg[错误]的日志,在给它的日志中,它是给BadarArArArArArArArArArArg[错误的,错误,错误,错误,错误,错误,错误,错误,错误,错误,错误,错误,错误的原因,看到看到看到,看到,在日志,看到的日志,在日志,在日志中看到,它的日志,它是,在给给的日志中,它是给给它的日志,它是给它是给给给BadaArArArArArArArArArArArArArArArArArArArArArArArArArArArArArArArArArArArArArArArArArArAr,选择,8,[{文件,“src/mod_mam.erl”},{line,669}]},{mod_-mam,选择_和_-send,10,[{file,“src/mod_-mam.erl”},{line,569}},{gen_-iq_-handler,process_-iq,6,[{file,“src/gen iq_-handler.erl”},{line,127},{gen gen iq-handler,handler-info,2,{file,“src/gen iq-iq-erl-handler.erl,{line,171}}}是的,我看到了。您的原始日志条目显示进程自行退出,因为已达到该进程队列中的消息数。感谢Mickeel,但我认为mod_mam中的badarg错误与队列大小或导致崩溃无关。