Ensure Driver Errors for Tailable AwaitData Cursors on Invalid maxAwaitTimeMS

XMLWordPrintableJSON

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

      Summary of necessary driver changes

      •  Update the tailable awaitData unified tests to enforce the CSOT rule that drivers must return a non-timeout error when timeoutMS is non-zero and maxAwaitTimeMS ≥ timeoutMS

      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  Update the tailable awaitData unified tests to enforce the CSOT rule that drivers must return a non-timeout error when timeoutMS is non-zero and maxAwaitTimeMS ≥ timeoutMS Commits for syncing spec/prose tests (and/or refer to an existing language POC if needed)   mongodb/specifications@a93fa90f Context for other referenced/linked tickets  
    • $i18n.getText("admin.common.words.hide")
      Key Status/Resolution FixVersion
      CDRIVER-6082 Backlog
      CXX-3330 Backlog
      CSHARP-5704 Ready for Work
      GODRIVER-3641 Backlog
      JAVA-5946 Fixed 5.6.0
      NODE-7111 Ready for Work
      PYTHON-5499 Backlog
      PHPLIB-1706 Backlog
      RUBY-3698 Backlog
      RUST-2261 Backlog
      $i18n.getText("admin.common.words.show")
      #scriptField, #scriptField *{ border: 1px solid black; } #scriptField{ border-collapse: collapse; } #scriptField td { text-align: center; /* Center-align text in table cells */ } #scriptField td.key { text-align: left; /* Left-align text in the Key column */ } #scriptField a { text-decoration: none; /* Remove underlines from links */ border: none; /* Remove border from links */ } /* Add green background color to cells with FixVersion */ #scriptField td.hasFixVersion { background-color: #00FF00; /* Green color code */ } #scriptField td.willNotDo { background-color: #FF0000; /* Red color code */ } /* Center-align the first row headers */ #scriptField th { text-align: center; } Key Status/Resolution FixVersion CDRIVER-6082 Backlog CXX-3330 Backlog CSHARP-5704 Ready for Work GODRIVER-3641 Backlog JAVA-5946 Fixed 5.6.0 NODE-7111 Ready for Work PYTHON-5499 Backlog PHPLIB-1706 Backlog RUBY-3698 Backlog RUST-2261 Backlog

      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
            Shane Harvey Shane Harvey
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: