Summary
The following tests have assertions that either contradict the CSOT spec or enforce requirements that are not written into the spec.
- Non-tailable cursor iteration timeoutMS is refreshed for getMore if timeoutMode is iteration - failure
- Wrongly asserts that an ITERATION mode cursor should time out when it should not since the timeout should be refreshed according to the Cursor CSOT spec.
- Tailable cursor awaitData iteration timeoutMS is refreshed for getMore - failure
- Wrongly expects second iteration of tailable cursor (batchSize=1) against capped collection with 2 documents to timeout when it should expect the third iteration to timeout
- Tailable cursor iteration timeoutMS is refreshed for getMore - failure
- Wrongly expects second iteration of tailable cursor (batchSize=1) against capped collection with 2 documents to timeout when it should expect the third iteration to timeout
- Asserts on incorrect number of getMores being sent to server, which does not account for drivers which implement their tailable cursor iteration as a loop over sending getMores to the server until a response is returned
- command is not sent if RTT is greater than timeoutMS
- Asserts that driver does not emit CommandStartedEvent for commands that timeout due to RTT being greater than remainingTimeMS when this is not part of the CSOT or command monitoring specs. Maybe should be converted to prose test to assert that command is not written to socket.
- Non-tailable cursor lifetime remaining timeoutMS applied to getMore if timeoutMode is unset
- Checks that getMore has a maxTimeMS field despite all language in the CSOT cursor spec requiring that maxTimeMS is never added to getMore when CSOT is enabled.
- timeoutMS behaves correctly for tailable awaitData cursors timeoutMS is refreshed for getMore - failure
- Checks that only the commandStarted events for find and getMore are emitted, fails if killCursors is also started
- timeoutMS behaves correctly for tailable non-awaitData cursors timeoutMS is refreshed for getMore - failure
- Checks that only the commandStarted events for find and getMore are emitted, fails if killCursors is also started
Motivation
Who is the affected end user?
Driver engineers/CSOT implementers
How does this affect the end user?
N/A
How likely is it that this problem or use case will occur?
Will present problem for drivers implementing CSOT as speced
If the problem does occur, what are the consequences and how severe are they?
Minor testing issue
Is this issue urgent?
No
Is this ticket required by a downstream team?
No
Is this ticket only for tests?
Yes
Acceptance Criteria
Determine and implement correct assertions for the tests mentioned in the Summary