经测试验证,5.1.1版本的emqx 集群脑裂后只要大于105秒后没法治愈,
但把版本降到5.0.17版本发生脑裂后可以治愈,这应该是属于5.1.1版本的一个bug吧?
这个基本百分百可以复现的,比如5个节点,然后把其中一个节点断网超过2分钟,基本百不百可以复现出来的。
能分享一下:
集群是如何配置的么?全是core节点,还是core+replicant,
还有相关集群配置,是静态集群,还是etcd/dns ?
最好能传一下emqx.conf文件,这样才方便重现哈
您好,我们在github上也遇到一个类似的问题,
https://github.com/emqx/emqx/issues/11593
请问,这个报错你那环境里有么,
我们这边暂时没法复现,能帮忙加上EMQX_NODE__dist_net_ticktime=10s
及ERL_FLAGS=“-kernel prevent_overlapping_partitions false” 启动再测试一下么?
也欢迎加入Github 讨论哈。
但我把版本升级到5.2.0发现断网10分钟脑裂能自动治愈,感觉跟版本有关。
你说的部分修复,是否还存在问题呢?因为我们打算更新版本,怕又出现其它末知的脑裂问题。
推荐更新 v5.2.1(还要等待发布)
520可能在极端的情况下还会有问题.
请问你可以说下哪种极端情况下呢?我这边也可以测一下,因为目前需要一个稳定的版本进行项目进行下去。
具体的场景我们还没有验证过,原因是Erlang OTP 25 采取了更激进的网络分片方式,导致emqx使用的global 组件不能像以前我们用的OTP 24 那样,少量的网络抖动可能就会引起global组件判定为脑裂,所以我们在最新的PR里面,把这个行为还原为了OTP 24一样的机制。
关于OTP 25 的改动更新可以见。
https://www.erlang.org/doc/man/global.html#description
不太确定,没看到引起脑裂的完整日志,帖子里面都是脑裂后如何表现的日志。