上下文代理崩溃,出现某些更新查询

问题描述:

我们在CentOS服务器上运行上下文代理,但它一直在崩溃,某些更新查询崩溃。我们已经尝试过版本0.26和最新的1.0.0-1,但结果是一样的,我们也尝试在3.0.6和3.0.7之间更改mongoDB版本,但没有运气。日志并没有给我们太多的东西,所以这就是我们在这里问的原因。上下文代理崩溃,出现某些更新查询

我们正在做的是发送一个约1MB大小的实体的更新,通过nginx从http调用路由。上下文代理崩溃(请参阅下面的日志),但mongodb和其他服务继续正常工作。

日志文件:/var/log/contextBroker/contextBroker.log

terminate called after throwing an instance of 'mongo::MsgAssertionException' 
    what(): EOO Before end of object 

日志文件:从contextBroker在/ var/log/messages中

Apr 28 07:15:50 gl abrt[11457]: Saved core dump of pid 11426 (/usr/bin/contextBroker) to /var/spool/abrt/ccpp-2016-04-28-07:15:49-11426 (63606784 bytes) 
Apr 28 07:15:50 gl abrtd: Directory 'ccpp-2016-04-28-07:15:49-11426' creation detected 
Apr 28 07:15:50 gl abrtd: Package 'contextBroker' isn't signed with proper key 
Apr 28 07:15:50 gl abrtd: 'post-create' on '/var/spool/abrt/ccpp-2016-04-28-07:15:49-11426' exited with 1 
Apr 28 07:15:50 gl abrtd: Deleting problem directory '/var/spool/abrt/ccpp-2016-04-28-07:15:49-11426' 

输出时,它运行在详细模式:

[email protected]:05:27 logMsg.h[1792]: Starting transaction from 127.0.0.1:51245/v1/updateContext 
[email protected]:05:27 connectionOperations.cpp[78]: Database Operation Successful (query: { id.id: "8a55c32500dfad.....06be56709b75b31c1f9beb7d2", id.type: "House", _id.servicePath: /^\/$/ }) 
terminate called after throwing an instance of 'mongo::MsgAssertionException' 
    what(): BSONElement: bad type 100 

任何有关可能导致这种情况或我们应该继续寻找的想法?

+0

如果我们可以看一下您正在使用的updateContext请求负载,那将会很棒。你能提供一个链接吗?谢谢! – fgalan

+0

感谢您的回复!今天早上我们做了一些更多的测试,看到实际的请求不是那么大,似乎不是问题。我们现在只需通过curl/cli发送一个简单的命令来删除一个属性,就可以使其立即崩溃。即使有效负载没有超过限制,实体中的总数据大约是1.1MB(例如大于有效负载限制)可能会成为问题吗?我是否可能会在PM中向您发送实体数据(如xml或从mongodb转储),以便您可以在本地尝试它? – Henrik

+0

是的,请给我一个实体的mongo dumpo做一个本地测试。另外,如果你可以编辑你的问题帖子来包含通过curl/cli删除属性的命令,那将是非常好的。谢谢! – fgalan

这次崩溃是由于在Orion检测到a bug。修正为on the way,所以我们希望它合并,并准备纳入下一个Orion发行版(Orion 1.2.0)。