emqx 日志报idle_timeout异常

生产环境

  • EMQX 版本:3.1.0
  • 操作系统版本:linux

实际行为

java端检测到有大量设备超时断开的日志,设备端日志断开原因为空,未查询到原因。打开emqx日志有下面的报错,不知道是否有关
ps:总连接数为1000左右
emqx日志

2023-11-10 14:17:36.595 [error] 10.39.90.80:36662 ** State machine <0.12631.41> terminating
** Last event = {timeout,15000}
** When server state = {idle,
{state,esockd_transport,#Port<0.400465>,
{{10,39,90,80},36662},
undefined,running,100,
{pstate,external,
#Fun<emqx_connection.0.73284863>,…},
{none,#{…}},
{…},…}}
** Reason for termination = exit:idle_timeout
** Callback mode = [state_functions,state_enter]
** Stacktrace =
** [{gen_statem,loop_event_result,9,[{file,“gen_statem.erl”},{line,1158}]},
{proc_lib,init_p_do_apply,3,[{file,“proc_lib.erl”},{line,249}]}]
2023-11-10 14:17:36.596 [error] 10.39.90.80:36662 crasher:
initial call: emqx_connection:init/1
pid: <0.12631.41>
registered_name:
exception exit: idle_timeout
in function gen_statem:loop_event_result/9 (gen_statem.erl, line 1158)
ancestors: [<0.1617.0>,<0.1616.0>,esockd_sup,<0.1356.0>]
message_queue_len: 0
messages:
links: [<0.1617.0>]
dictionary: [{‘$logger_metadata$’,#{peername => “10.39.90.80:36662”}},
{force_shutdown_policy,
#{max_heap_size => 0,message_queue_len => 0}}]
trap_exit: false
status: running
heap_size: 6772
stack_size: 27
reductions: 64268
neighbours:

idle_timeout 意思是设备建立了 TCP 连接之后,规定时间内(15s) 一直没有等到设备发来的 CONNECT 报文。