java mongodb mongodb-java casbah

¿Por qué acabo con java.lang.IllegalArgumentException para Casbah/Java MongoDB Driver?



mongodb-java (2)

¿Qué tan grande es tu objeto JSON? Vea si ese gran objeto es compatible con la versión de mongodb.

Estoy viendo un problema extraño con el casbah / java driver.

Me sigo encontrando con la siguiente excepción cuando el controlador intenta crear una respuesta de mongo:

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) ...

Esto parece estar sucediendo al azar, incluso en los casos en que mongo no debería devolver ningún resultado de la consulta. El tamaño informado es inconsistente y normalmente mucho más grande de lo que debería o podría ser.

Supongo que esta es probablemente una forma de corrupción con la respuesta. He tenido dificultades para entender este problema usando Wireshark, pero de forma consistente encuentro que la cadena de solicitud / respuesta que conduce a la consulta cuya respuesta arroja este error tiene la respuesta "TCP Window Full" proveniente de MongoDB:

Las versiones que estoy usando:

Casbah: 2.1.5.0 Mongo Java Driver: 2.5.3 MongoDB: 2.2

Le agradecería mucho si alguien pudiera darme algún consejo sobre lo que potencialmente podría estar haciendo mal o cualquier sugerencia sobre cómo depurar aún más este problema

ACTUALIZACIÓN: después de mirar las notas de la versión de Casbah 2.1.5.0, parece que la versión del controlador de Java que se utiliza es 2.5.3, no 2.7.3