CentOSサーバーでContext Brokerを実行していますが、特定の更新クエリでクラッシュしています。バージョン0.26と最新の1.0.0-1を試しましたが、結果は同じです。mongoDBのバージョンを3.0.6と3.0.7の間で変更しようとしましたが、運はありませんでした。ログは私たちに多くのことを与えてくれるわけではないので、私たちはここでそれを求めているのです。特定の更新クエリでContext Brokerがクラッシュする
私たちがやっていることは、http呼び出しからnginx経由でルーティングされた約1MBのエンティティのアップデートを送信することです。コンテキストブローカーがクラッシュし(下記のログを参照)、mongodbやその他のサービスは正常に機能し続けます。
ログファイル:/var/log/contextBroker/contextBroker.log
terminate called after throwing an instance of 'mongo::MsgAssertionException'
what(): EOO Before end of object
ログファイル:の/ 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'
それは冗長モードで実行していますcontextBrokerからの出力:
[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
何が起こっているのか、私たちはどこを見続けるべきですか?
あなたが使用しているupdateContextリクエストペイロードを見ることができれば幸いです。あなたはそれへのリンクを提供できますか?ありがとう! – fgalan
お返事ありがとうございます!今朝はもう少しテストを行い、実際のリクエストはそれほど大きくなく、問題ではないようです。 curl/cliを使用して単純なコマンドを送信するだけで、属性を削除することで手動でクラッシュさせることができます。ペイロードが制限を超えていなくても、エンティティの合計データは約1.1MBです(ペイロードの上限よりも大きいなど)。おそらくPMにエンティティデータ(xml、またはmongodbからのダンプ)を送って、ローカルで試すことができますか? – Henrik
はい、地元のテストをするためにエンティティのmongo dumpoを送ってください。さらに、属性を削除するcurl/cliを介してコマンドを含めるように質問投稿を編集することができれば嬉しいです。ありがとう! – fgalan