-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
Unknown
-
None
-
Affects Version/s: None
-
Component/s: 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.