Ensure Driver Errors for Tailable AwaitData Cursors on Invalid maxAwaitTimeMS

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Unresolved
    • Priority: Unknown
    • None
    • Component/s: CSOT
    • None
    • Not Needed
    • Hide

      Summary of necessary driver changes

      •  

      Commits for syncing spec/prose tests
      (and/or refer to an existing language POC if needed)

      •  

      Context for other referenced/linked tickets

      •  
      Show
      Summary of necessary driver changes   Commits for syncing spec/prose tests (and/or refer to an existing language POC if needed)   Context for other referenced/linked tickets  

      Summary

      The CSOT specifications for tailable awaitData cursors specifies the following:

      Drivers MUST error if this option is set, timeoutMS is set to a non-zero value, and maxAwaitTimeMS is greater than or equal to timeoutMS

      Currently the tailable-awaitData unified spec tests attempt to validate this behavior:

      • error if maxAwaitTimeMS is greater than timeoutMS
      • error if maxAwaitTimeMS is equal to timeoutMS

      However, these tests only verify the occurrence of a client-side error, which may include a client-side timeout. For instance, the Go Driver does not perform the specific validation but rather produces an error due to a client-side timeout.

      Acceptance Criteria

      The unified spec tests for tailableAwait data cursor should verify that when maxAwaitTime >= timeoutMS the error is not a timeout error. Additionally, more tests should be added for other collection helpers that can construct a tailable awaitData cursors: collection.Watch() and collection.Aggregate().

              Assignee:
              Preston Vasquez
              Reporter:
              Preston Vasquez
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated: