Dlaczego kończę na java.lang.IllegalArgumentException dla sterownika Casbah / Java MongoDB?

Widzę dziwny problem za pomocącasbah / java driver.

W dalszym ciągu przechodzę do następującego wyjątku, gdy sterownik próbuje utworzyć odpowiedź z 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)
        ...

Wydaje się, że dzieje się to losowo, nawet w przypadkach, w których mongo nie powinno zwracać żadnych wyników z zapytania. Podany rozmiar jest niespójny i zwykle jest większy niż powinien lub mógłby być.

Zgaduję, że jest to prawdopodobnie forma korupcji w odpowiedzi. Miałem trudności z tworzeniem ogonów lub ogonów tego problemu za pomocą Wiresharka, ale konsekwentnie stwierdzam, że łańcuch żądania / odpowiedzi prowadzący do zapytania, którego odpowiedź zgłasza ten błąd, ma odpowiedź „TCP Window Full” pochodzącą z MongoDB:

Wersje, których używam:


 Casbah: 2.1.5.0
 Mongo Java Driver: 2.5.3
 MongoDB: 2.2

Byłbym bardzo wdzięczny, gdyby ktoś mógł udzielić jakiejkolwiek porady na temat tego, co potencjalnie robię źle, lub jakichkolwiek wskazówek dotyczących dalszego debugowania tego problemu

AKTUALIZACJA: Po zapoznaniu się z uwagami do wydania dlaCasbah 2.1.5.0, wygląda na to, że używana wersja sterownika java to 2.5.3, a nie 2.7.3

questionAnswers(2)

yourAnswerToTheQuestion