[GODRIVER-2917] Aggregation cursor timeouts cause the cursor to stop iteration with no error reported Created: 20/Jul/23  Updated: 27/Oct/23  Resolved: 20/Jul/23

Status: Closed
Project: Go Driver
Component/s: Aggregation
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Major - P3
Reporter: Patrick Meredith Assignee: Unassigned
Resolution: Works as Designed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: File timeout.go     File timeout.py    
Documentation Changes Summary:

1. What would you like to communicate to the user about this feature?
2. Would you like the user to see examples of the syntax and/or executable code and its output?
3. Which versions of the driver/connector does this apply to?


 Description   

Note: This is affecting the BI Connector so the fix will need to be backported.

Included are my go and python programs that illustrate the difference in behavior.

I have created a collection in test named tenkdocs. Just make sure it contains 10k docs (really, more than 100 is fine, since that is where both the python and go driver stop).

Start mongod with the following parameters:
`--setParameter internalDocumentSourceCursorBatchSizeBytes=1 --setParameter cursorTimeoutMillis=2000 --setParameter clientCursorMonitorFrequencySecs=1 --setParameter enableTimeoutOfInactiveSessionCursors=true`

As the title hints, the python program raises a CursorNotFoundError, while the go program reports no error, resulting in users thinking there are fewer results than there are.



 Comments   
Comment by Patrick Meredith [ 20/Jul/23 ]

I was incorrect, this is a problem in our error checking

Generated at Thu Feb 08 08:39:38 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.