MongoDB3.6.3版本增加分片副本集的小bug

2021-01-27 11:12:56 浏览数 (1)

//

MongoDB3.6.3版本增加分片副本集的小bug

//

昨天的文章中分享了MongoDB给集群中新增分片的过程。之前的测试是在自己的环境上,用MongoDB4.0.4的版本做的测试,整个测试过程都没有问题。

今天下午在线上用MongoDB3.6.3版本如法炮制的时候,发现了一个内存的报错,报错内容大概如下:

代码语言:javascript复制
[thread74] Invalid access at address: 0x18
[thread74] Got signal: 11 (Segmentation fault).

现象就是,在一个副本集群中,修改每个副本的配置文件,添加:

sharding:

clusterRole:shardsvr

之后,重启MongoDB实例,发现副本集中的实例会一个一个的退出整个集群,每个实例的报错信息都是上面的样子。

经过了一天的排查,结果让我大吃一惊,原来是MongoDB在3.6.3这个版本特有的一个bug,翻墙看到MongoDB的官方解释如下:

https://jira.mongodb.org/browse/SERVER-34746

https://jira.mongodb.org/browse/SERVER-32677

官方给的建议是不要使用这种方式修改副本集的属性,在初始化一个集群的时候,就要想要到底是需要初始化一个副本集,还是分片副本集,提前设置好对应的参数。

排查的过程中,一度想要放弃了,但是最后还是比较执拗的找到了结果,虽然结果也没有解决这个问题。整个过程中的感触是:

1、遇到问题,不要着急,冷静下来去分析,去查找答案

2、有问题最好去官方网站论坛去查,很有可能别人和你遇到了一样的问题

3、有些问题确实没有好的解决方案。真是应了那句:用最新的技术、最新的版本,可以解决很多问题。升级版本确实能够解决一部分版本带来的不知名问题。

好吧,又是一事无成的一天。

有帮助的话还希望点下再看哈

0 人点赞