-
Type:
Bug
-
Resolution: Done
-
Priority:
Critical - P2
-
Affects Version/s: 1.8.1
-
Component/s: None
-
None
-
Environment:OSX, Mono 3.2.1
-
None
-
Fully Compatible
-
None
-
None
-
None
-
None
-
None
-
None
When executing the code:
List<TDmo> items = cursor.ToList();
An error occurs deserializing a document. Code in the finally block of MongoDB.Bson/Serialization/Serializers/BsonClassMapSerializer.cs, DeserializeMemberValue(BsonReader, BsonMemberMap) throws a nice exception.
Then, while unwinding the stack the finally block in MongoCSharp/MongoDB.Driver/Operations/QueryOperation.cs, Execute(IConnectionProvider) calls KillCursor() which calls AcquireConnection(). This appears to acquire the connection that is in the process of being closed from the exception above.
If you step through the code in the debugger (MonoDevelop or Xamarin Studio), you slow things down enough so that a FileFormatException is throw. In production, you typically just the InvalidOperationException.