Почему я получаю исключение java.lang.IllegalArgumentException для драйвера Casbah / Java MongoDB?

Я вижу странную проблему, используяcasbah / java driver.

Я продолжаю сталкиваться со следующим исключением, когда драйвер пытается создать ответ от Монго:


  Oct 16, 2012 10:45:07 AM com.mongodb.DBTCPConnector$MyPort error
  SEVERE: MyPort.error called
  java.lang.IllegalArgumentException: response too long: 1634610484
    at com.mongodb.Response.(Response.java:40)
    at com.mongodb.DBPort.go(DBPort.java:110)
    at com.mongodb.DBPort.go(DBPort.java:75)
    at com.mongodb.DBPort.call(DBPort.java:65)
    at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:201)
    at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:295)
    at com.mongodb.DBCursor._check(DBCursor.java:354)
    at com.mongodb.DBCursor._hasNext(DBCursor.java:484)
    at com.mongodb.DBCursor.hasNext(DBCursor.java:509)
    at com.mongodb.casbah.MongoCursorBase$class.hasNext(MongoCursor.scala:73)
    at com.mongodb.casbah.MongoCursor.hasNext(MongoCursor.scala:497)
    at scala.collection.Iterator$class.foreach(Iterator.scala:660)
    at com.mongodb.casbah.MongoCursor.foreach(MongoCursor.scala:497)
        ...

Кажется, это происходит случайным образом, даже в тех случаях, когда монго не должно возвращать никаких результатов запроса. Указанный размер является непоследовательным и обычно намного больше, чем он должен или мог бы быть.

Я предполагаю, что это, вероятно, какая-то форма коррупции с ответом. Мне было трудно решить эту проблему с помощью Wireshark, но я постоянно обнаруживаю, что цепочка запросов / ответов, приводящая к запросу, ответ которого выдает эту ошибку, имеет ответ «TCP Window Full», поступающий из MongoDB:

Версии, которые я использую:


 Casbah: 2.1.5.0
 Mongo Java Driver: 2.5.3
 MongoDB: 2.2

Я был бы очень признателен, если бы кто-нибудь мог дать какой-либо совет о том, что я, возможно, делаю неправильно, или какие-либо указания о том, как продолжить отладку этой проблемы

ОБНОВИТЬ: После просмотра замечаний к выпуску дляCasbah 2.1.5.0, похоже, что версия используемого драйвера java - 2.5.3, а не 2.7.3

Ответы на вопрос(2)

Ваш ответ на вопрос