Mongodb 2.2.0 Invalid BSONObj size 问题及解决

来源:互联网 发布:陈家洛喜欢谁 知乎 编辑:程序博客网 时间:2024/06/07 11:55

最近在使用Mongodb 2.2.0 的时候开启了system.profile功能,本意是要在需要的时候查看Mongodb运行慢的操作,但这个版本的Mongodb system.profile 存在一个bug,问题现象为:

/usr/local/mongodb-linux-x86_64-2.2.0/bin/mongod(_ZN5mongo16NamespaceDetails6_allocEPKci+0x27) [0x62dc57]
 /usr/local/mongodb-linux-x86_64-2.2.0/bin/mongod(_ZN5mongo16NamespaceDetails5allocEPKciRNS_7DiskLocE+0x38) [0x62dc98]
 /usr/local/mongodb-linux-x86_64-2.2.0/bin/mongod(_ZN5mongo11DataFileMgr17fast_oplog_insertEPNS_16NamespaceDetailsEPKci+0x6c) [0x73954c]
 /usr/local/mongodb-linux-x86_64-2.2.0/bin/mongod(_ZN5mongo7profileERKNS_6ClientERNS_5CurOpE+0x95f) [0x70f40f]
 /usr/local/mongodb-linux-x86_64-2.2.0/bin/mongod(_ZN5mongo16assembleResponseERNS_7MessageERNS_10DbResponseERKNS_11HostAndPortE+0xec0) [0xb5db70]
 /usr/local/mongodb-linux-x86_64-2.2.0/bin/mongod(_ZN5mongo16MyMessageHandler7processERNS_7MessageEPNS_21AbstractMessagingPortEPNS_9LastErrorE+0x82) [0x56fa52]
 /usr/local/mongodb-linux-x86_64-2.2.0/bin/mongod(_ZN5mongo3pms9threadRunEPNS_13MessagingPortE+0x411) [0x5dbf11]
 /lib64/libpthread.so.0 [0x3751e0673d]
 /lib64/libc.so.6(clone+0x6d) [0x37512d3d1d]
Sun Nov 18 13:11:33 [conn843817] AssertionException handling request, closing client connection: 10334 Invalid BSONObj size: -286331301 (0x5BEEEEEE) first element: : ?type=40

 这个问题很搞的,在客户端时不时报Mongo Server拒绝连接,而在 Mongo Serve端 集群(副本模式)正常,但数据同步延迟多达 10~12秒,很要命的(正常情况同步延迟0~3秒左右很有规律的),还产生从服务与主服务器通信异常消息。查日志一大堆错误(上文划横线部分)后来在MOngodb 官方找到答案,是 system.profile 写入了错误数据,但为什么写入错误数据却没有说明原因,解决办法为 删除profile文件,关闭system.profile功能,现在官方已经修复了这个bug(版本,2.2.1,2.2.3),希望这篇博客能如果遇到这个问题的朋友提供便捷帮助,当然你也可以去mongodb社区求助,mongodb社区很活跃,有问必答。

原创粉丝点击