Por que acabo com java.lang.IllegalArgumentException para Casbah / Java MongoDB Driver?

Estou vendo um problema estranho usando ocasbah / java driver.

Eu continuo correndo na seguinte exceção quando o driver tenta criar uma resposta do 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)
        ...

Isso parece estar acontecendo aleatoriamente, mesmo nos casos em que o mongo não deveria retornar nenhum resultado da consulta. O tamanho relatado é inconsistente e normalmente muito maior do que deveria ou poderia ser.

Eu estou supondo que isso é provavelmente alguma forma de corrupção com a resposta. Eu tive um tempo difícil fazendo cara ou coroa deste problema usando o Wireshark, mas eu consistentemente descobri que a cadeia de requisição / resposta que leva à consulta cuja resposta lança esse erro tem a resposta "TCP Window Full" vindo do MongoDB:

As versões que estou usando:


 Casbah: 2.1.5.0
 Mongo Java Driver: 2.5.3
 MongoDB: 2.2

Eu agradeceria muito se alguém pudesse dar algum conselho sobre o que eu posso potencialmente estar fazendo errado ou quaisquer dicas sobre como depurar ainda mais esse problema

ATUALIZAR: Depois de olhar as notas de lançamento paraCasbah 2.1.5.0, parece que a versão do driver java sendo usado é 2.5.3, não 2.7.3

questionAnswers(2)

yourAnswerToTheQuestion