-
Type: Bug
-
Resolution: Done
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Internal Client
-
Fully Compatible
-
ALL
-
Service Arch 2020-03-09
dbclientcursor.cpp
DBClientCursor::dataReceived() has different behavior when the server replies that the cursor is not found. For nontailable cursors, it clears the client cursorId and throws an exception. For tailable cursors, it only clears the client cursorId, so the consumer must check it in order to discover that calling more() will never return more data.
There does not appear to be a good reason for this, so we should unify the behavior and make all cursor types throw an exception in dataReceived() when the server returns CursorNotFound.