Uploaded image for project: 'Drivers'
  1. Drivers
  2. DRIVERS-2953

Fix bug in CSOT runCursorCommand test

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

      Sync spec tests to 38cbbce

      Show
      Sync spec tests to 38cbbce
    • $i18n.getText("admin.common.words.hide")
      Key Status/Resolution FixVersion
      CDRIVER-5789 Backlog
      CXX-3162 Backlog
      CSHARP-5393 Backlog
      GODRIVER-3411 Backlog
      JAVA-5685 Backlog
      NODE-6493 Needs Verification
      MOTOR-1403 Duplicate
      PYTHON-4939 Backlog 4.11
      PHPLIB-1581 Won't Do
      RUBY-3583 Backlog
      RUST-2086 Won't Do
      $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 */ } /* Center-align the first row headers */ #scriptField th { text-align: center; } Key Status/Resolution FixVersion CDRIVER-5789 Backlog CXX-3162 Backlog CSHARP-5393 Backlog GODRIVER-3411 Backlog JAVA-5685 Backlog NODE-6493 Needs Verification MOTOR-1403 Duplicate PYTHON-4939 Backlog 4.11 PHPLIB-1581 Won't Do RUBY-3583 Backlog RUST-2086 Won't Do

      Summary

      The CSOT test "Non-tailable cursor lifetime remaining timeoutMS applied to getMore if timeoutMode is unset" asserts that cursor "getMore" commands should include "maxTimeMS". However, the server returns the following error if drivers send "getMore" with "maxTimeMS":

      (BadValue) cannot set maxTimeMS on getMore command for a non-awaitData cursor

      The only time a "getMore" can include "maxTimeMS" is for a tailable awaitData cursor. The test bug is masked because the test case expects a timeout on "getMore", preventing the driver from receiving the server error.

      Motivation

      Who is the affected end user?

      Drivers engineers.

      How does this affect the end user?

      Drivers engineers may implement CSOT behavior that will prevent cursors from working correctly.

      How likely is it that this problem or use case will occur?

      Very likely. Drivers engineers who implement CSOT behavior that passes the spec test will unintentionally create a major bug in their driver.

      If the problem does occur, what are the consequences and how severe are they?

      Drivers teams may ship a driver with CSOT features that make cursors unusable in some circumstances.

      Is this issue urgent?

      No.

      Is this ticket required by a downstream team?

      No.

      Is this ticket only for tests?

      Yes.

      Acceptance Criteria

      • Remove "maxTimeMS" from the "getMore" command started event in the test "Non-tailable cursor lifetime remaining timeoutMS applied to getMore if timeoutMode is unset".
      • Add a test, or modify the above test, to assert that iterating cursors works correctly when CSOT is enabled.

            Assignee:
            preston.vasquez@mongodb.com Preston Vasquez
            Reporter:
            matt.dale@mongodb.com Matt Dale
            Shane Harvey Shane Harvey
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: