Skip time-sensitive CSOT tests opening change streams on 9.0+ sharded clusters

XMLWordPrintableJSON

    • $i18n.getText("admin.common.words.hide")
      Key Status/Resolution FixVersion
      CDRIVER-6361 Won't Do
      CXX-3526 Won't Do
      CSHARP-6112 Backlog
      GODRIVER-4011 Investigating
      JAVA-6247 Ready for Work
      NODE-7656 In Code Review
      PYTHON-5918 Needs Triage
      PHPLIB-1911 Won't Do
      RUBY-3910 Ready for Work
      RUST-2451 Won't Fix
      $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-6361 Won't Do CXX-3526 Won't Do CSHARP-6112 Backlog GODRIVER-4011 Investigating JAVA-6247 Ready for Work NODE-7656 In Code Review PYTHON-5918 Needs Triage PHPLIB-1911 Won't Do RUBY-3910 Ready for Work RUST-2451 Won't Fix

      The latest 9.0 release intentionally can delay opening a current-time change stream for correctness (SPM-1941). The effects of this is that a (all node) cluster change stream can't emit its initial resume token (postBatchResumeToken) until the config server's cluster time advances past the start time, and in an idle cluster the only thing that advances the cluster time is the periodic noop periodicNoopIntervalSecs which is 1 on config servers and might be tunable.

      This is causing evergreen failures for drivers that have implemented CSOT, but would be relevant to any driver capable of applying maxTimeMS < 1s (config server's periodicNoopIntervalSecs) to a changeStream aggregation command.

      Motivation

      Who is the affected end user?

      Drivers

      How does this affect the end user?

      N/A

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

      Always on 9.0+ sharded clusters

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

      C/I failures

      Is this issue urgent?

      Require to unskipped pass CSOT tests

      Is this ticket required by a downstream team?

      NA

      Is this ticket only for tests?

      Yes

      Acceptance Criteria

      Extend the unified test format to include a runner option for advancing the config server's cluster time immediately before opening a change stream. Here is an example of a possible algorithm in Go: -https://github.com/mongodb/mongo-go-driver/pull/2462/changes#diff-a80b4a3e952da51ce06961cdfb4e90b413ed2c067b0a6940c8609f1e64b69486R103-

      Skip the affected tests on 9.0+ sharded clusters.

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

              Created:
              Updated: