EMQX5.7.0社区版,正常运行一段时间后退出

EMQX版本:
$ bin/emqx_ctl status
Node ‘emqx@127.0.0.1’ 5.7.0 is started

操作系统版本:
$ cat /etc/os-release
PRETTY_NAME=“Ubuntu 22.04.3 LTS”

正常运行一段时间(十几到20多天)就退出,在erlang.log看到有如下信息:
===== Sun Jun 30 22:19:36 CST 2024
free(): double free detected in tcache 2
[os_mon] cpu supervisor port (cpu_sup): Erlang has closed
[os_mon] memory supervisor port (memsup): Erlang has closed

请问是可能是什么原因?

稍等,我们这边查下这个是哪里来的

free(): double free detected in tcache 2

你好请问 你的 EMQX 跑的什么业务?
有没有 开启 persistent storage? 或用到 QUIC ? jq, SASL auth等?
平台是 x86_64 还是 aarm64?

请勾选

  • QUIC transport
  • encode/decode json
  • auth with SASL
  • persistent session on disk
  • compress/decompress with snappy
  • jq rules
  • TLS.
  • password auth

抱歉这段时间忙别的,没有即时回复。
目前的业务就是由服务器向物联网设备发送指令,以及收集设备上报的信息,目前并没有铺开,访问量很少。大致并发的连接数就几个。
没有开启persistent storage
没有用到QUIC,jq这些。
客户端认证使用了内置数据库(直接指定用户名密码)以及外部的MongoDB
x86_64平台。

你好是否可以提供一份配置?

另外确认下,你的回复中引用了 “SASL auth” 是否意味着你们使用了 SASL 验证客户端 和 mongodb 基于 sasl scram 的验证机制?

问题能否重现?

对“SASL auth"的引用是误操作,抱歉。实际上我们都并不清楚SASL验证概念是什么。
“mongodb 基于 sasl scram 的验证机制”,应该就是指使用mongodb进行密码认证吧?我们是用了mongodb进行密码认证的。
请问相关配置文件怎么获取?目前的emqx.conf很简单,只有下面几个配置:
node {
name = “emqx@127.0.0.1
cookie = “emqxsecretcookie”
data_dir = “data”
process_limit = 2097152
max_ports = 2097152
}

cluster {
name = emqxcl
discovery_strategy = manual
}
log {
}
dashboard {
listeners.http {
bind = 18083
}
}

关于重现,这个得看运气。。目前遇到过两次异常退出,间隔时长十几到二十几天,erlang.log的错误信息相同,“double free detected in tcache 2”

老师们,这个问题可能是因为使用外部的mongodb数据库进行身份认证导致的吗?

可否上传下列命令运行结果?
cat /proc/`emqx pid`/maps | grep *.so