emqx日志显示链接崩溃,客户端尝试不断重连

环境

  • EMQX 版本:容器3.2.2
  • 操作系统版本:centos7 docker18.1

重现此问题的步骤

  1. 创建20000个链接
  2. 建立完成后,断开链接
  3. 在尝试建立20000个链接,这时候有几率链接被拒绝,重启容器后正常

预期行为

实际行为

2023-04-11 11:22:13.390 [error] CLIENT_ID_JLK099999999@10.27.9.175:46682 crasher:
initial call: emqx_channel:init/1
pid: <0.23292.2>
registered_name: []
exception exit: {{timeout,
{gen_server,call,
[emqx_shared_sub,
{subscribe,<<“$queue”>>,
<<“mqtt/tbox/CLIENT_ID_JLK014370/#”>>,
<0.23308.2>}]}},
{gen_server,call,
[<0.23308.2>,
{register_publish_packet_id,3,{1681,212130,320639}},
infinity]}}
in function gen_server:call/3 (gen_server.erl, line 223)
in call from emqx_session:publish/3 (/emqx_rel/_build/emqx/lib/emqx/src/emqx_session.erl, line 271)
in call from emqx_protocol:do_publish/2 (/emqx_rel/_build/emqx/lib/emqx/src/emqx_protocol.erl, line 568)
in call from emqx_channel:handle_incoming/3 (/emqx_rel/_build/emqx/lib/emqx/src/emqx_channel.erl, line 433)
in call from gen_statem:call_state_function/5 (gen_statem.erl, line 1586)
in call from gen_statem:loop_event_state_function/6 (gen_statem.erl, line 967)
ancestors: [<0.1661.0>,<0.1660.0>,esockd_sup,<0.1355.0>]
message_queue_len: 2
messages: [{‘EXIT’,<0.23308.2>,
{timeout,
{gen_server,call,
[emqx_shared_sub,
{subscribe,<<“$queue”>>,
<<“mqtt/tbox/CLIENT_ID_JLK014370/#”>>,
<0.23308.2>}]}}},
{‘EXIT’,#Port<0.10873>,normal}]
links: [<0.1661.0>]
dictionary: [{{publish,<<“mqtt/server/topic/schedule_status”>>},
{allow,1681212130320}},
{acl_cache_size,2},
{{subscribe,<<“mqtt/tbox/CLIENT_ID_JLK014370/#”>>},
{allow,1681212128360}},
{incoming_pubs,1},
{acl_keys_q,
{[{publish,<<“mqtt/server/topic/schedule_status”>>}],
[{subscribe,<<“mqtt/tbox/CLIENT_ID_JLK014370/#”>>}]}},
{force_shutdown_policy,
#{max_heap_size => 838860800,message_queue_len => 8000}},
{guid,{1681212133368711,182381524835068,2}},
{incoming_bytes,249},
{rand_seed,
{#{bits => 58,jump => #Fun<rand.8.10897371>,
next => #Fun<rand.5.10897371>,type => exrop,
uniform => #Fun<rand.6.10897371>,
uniform_n => #Fun<rand.7.10897371>,
weak_low_bits => 1},
[219929457963484840|247585679738916468]}},
{‘$logger_metadata$’,
#{client_id => <<“CLIENT_ID_JLK099999999”>>,
peername => “10.27.9.175:46682”}}]
trap_exit: true
status: running
heap_size: 28690
stack_size: 27
reductions: 462712
neighbours:

你这个错误日志看起来是订阅太快导致的。3.x 以及 4.3 的订阅性能不是很好,4.4.x 稍有改善,你用4.4.16 试试吧。

好的 已经使用5.0.20版本 。现在单机链接数达到6万。