我的Ejabberd服务器运行良好,直到我做了基准testing使用Jabsimul在这里提到https://www.ejabberd.im/benchmark
Jabsimul以150个用户/秒的速度注册用户,并且在我的configuration文件中设置的最大注册限制仅为每秒100个用户。
我能够成功地停止/启动基准testing后的服务器,但随后每当我试图将我的客户端连接到我的Ejabberd服务器我得到以下错误:
[error] gen_server <0.547.0> terminated with reason: bad arithmetic expression in shaper:update/2 line 140 [error] CRASH REPORT Process <0.547.0> with 0 neighbours crashed with reason: bad arithmetic expression in shaper:update/2 line 140
下面是我的crash.log
=ERROR REPORT==== ** Generic server <0.547.0> terminating ** Last message in was {tcp,#Port<0.14324>,<<"<starttls xmlns=\"urn:ietf:params:xml:ns:xmpp-tls\"/>">>} ** When Server state == {state,#Port<0.14324>,gen_tcp,{maxrate,[{maxrate,10000}],0.0,1501504312553182},<0.548.0>,65536,#Ref<0.347039508.4057333$ ** Reason for termination == ** {badarith,[{shaper,update,2,[{file,"src/shaper.erl"},{line,140}]},{ejabberd_receiver,process_data,2,[{file,"src/ejabberd_receiver.erl"},{lin$ =CRASH REPORT==== crasher: initial call: ejabberd_receiver:init/1 pid: <0.547.0> registered_name: [] exception error: {badarith,[{shaper,update,2,[{file,"src/shaper.erl"},{line,140}]},{ejabberd_receiver,process_data,2,[{file,"src/ejabberd_r$ ancestors: [<0.333.0>,ejabberd_listener,ejabberd_sup,<0.67.0>] message_queue_len: 1 messages: [{'$gen_call',{<0.548.0>,#Ref<0.347039508.4057202689.16086>},{starttls,{tlssock,#Port<0.14324>,#Ref<0.347039508.4057333761.16085>$ links: [] dictionary: [] trap_exit: false status: running heap_size: 987 stack_size: 27 reductions: 707 neighbours:
错误指出在Shaper.erl行140中发生了一个错误的exceptionexception,但是我从来没有编辑过这个文件,所有这些都是在注册限制超过最大设定值(即100
在我的ejabberd.yml中,我将Shaper“normal”maxrate设置为10000,Shaper“fast”设置为50000。
我正在运行ejabberd 17.07.30。
提前致谢!