EMQX5.0.25 开源版本,采用·编译方式安装,运行随机时间后自动退出

环境

  • EMQX 版本:5.0.25 开源版
  • 操作系统版本:ubuntu 20.04.06
    开源编译方式安装,不做任何操作,运行随机时间后自动退出。其中erlang.log.1显示如下信息:
    Monotonic time stepped backwards!
    Previous time: 915959833156
    Current time: 915959828533
    [os_mon] cpu supervisor port (cpu_sup): Erlang has closed
    已经设置了 node.crash_dump_file,但未生成任何dump文件,请问有什么地方可以设置跟踪这样的问题吗,或者哪里配置需要修改

重现此问题的步骤

  1. xxx
  2. xxx
  3. xxx

预期行为

实际行为

Monotonic time stepped backwards!
看起来是系统时钟有问题,请尝试检查并正确设置系统时间及硬件时间,可以参考如下命令
man7-timedatactl
man8-hwclock

时间设置正确的啊

EMQX 是在虚拟机里面么。有一个很早之前的虚拟机的 bug 可能有关。

https://www.virtualbox.org/ticket/7915

确实是在VirtualBox 7中的运行,可是这个有关时钟问题VirtualBox十几年前就解决了,真是头大。可以关闭erlang关于这个的监测吗

在相同环境下,直接采用EMQX5.0.25 开源版的安装包安装,通过service emqx start启动后一切正常。所以应该不是VirtualBox的问题

你编译用的 otp 是哪个版本。
“安装包安装” 是哪个版本,有具体链接么,也有可能是 otp 版本的问题。

编译的otp版本:Erlang/OTP 25 [erts-13.0.4]
安装包是使用 通过 Apt 源安装,curl -s https://assets.emqx.com/scripts/install-emqx-deb.sh | sudo bash
sudo apt-get install emqx
sudo service start emqx

先使用下 OTP24 编译尝试下呢
这可能是 OTP25 虚拟机的一个时间偏移相关参数导致的

使用OTP24 编译,问题解决

EMQX 5.0.26 或者 5.1.0 中修复,修复前可以在 vm.args 中增加
+C multi_time_warp

2 个赞

@JimMoen 您好,我最近也碰到了这个问题,但是没法复现出来。我在搜索解决方法的时候发现了这个帖子,这个帖子的发表时间很新,而且它里面提到了+C multi_time_warp这个选项并不管用。请问您能帮忙解惑一下吗?谢谢!

BTW,“Monotonic time stepped backwards”这个报错信息是在 OTP25 才加进去的,24 里根本没有。https://github.com/erlang/otp/commit/debc4438d4a608710b19ad867895507442f98576