Uploaded image for project: 'Go Driver'
  1. Go Driver
  2. GODRIVER-2917

Aggregation cursor timeouts cause the cursor to stop iteration with no error reported

    • Type: Icon: Bug Bug
    • Resolution: Works as Designed
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Aggregation
    • None
    • Hide

      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?

      Show
      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?

      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.

        1. timeout.go
          1.0 kB
        2. timeout.py
          0.4 kB

            Assignee:
            Unassigned Unassigned
            Reporter:
            patrick.meredith@mongodb.com Patrick Meredith
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: