Flaky CSOT "maxTimeMS is ignored if timeoutMS is set" deprecated-options unified tests

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Unresolved
    • Priority: Unknown
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Ruby Drivers
    • None
    • None
    • None
    • None
    • None
    • None

      Summary

      The CSOT unified tests named "maxTimeMS is ignored if timeoutMS is set — <op> on <object>" in spec/spec_tests/data/client_side_operations_timeout/deprecated-options.yml flake intermittently on CI.

      Observed failures

      • patch 69e6112c…: findOneAndReplace on collection on CSOT single-node rapid ruby-4.0
      • patch 69e734ce…: aggregate on database on CSOT single-node 8.0 ruby-4.0

      Both tests have the same shape: set timeoutMS: 1000 and maxTimeMS: 5000 on the operation, then assert that the observed commandStartedEvent has {{maxTimeMS:

      { $$lte: 1000 }

      }}. No failpoint is involved. The surrounding log excerpts show the CSOT suite hitting dozens of Mongo::Error::TimeoutError / ETIMEDOUT / HostNotFound events in nearby tests — consistent with a loaded CI host that occasionally trips the wire-level assertion (e.g. retry emits an unexpected event).

      Mitigation

      spec/runners/unified/test.rb now matches the test description pattern maxTimeMS is ignored if timeoutMS is set in Unified::Test#retry?, so on CI the unified runner retries these tests up to 3 times via retry_test.

      Follow-up

      If retries don't stabilize these tests, consider raising timeoutMS in the spec fixtures upstream, or skipping the whole "maxTimeMS is ignored" family on single-node/sharded.

            Assignee:
            Unassigned
            Reporter:
            Dmitry Rybakov
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: