Skip to content

RUBY-3922 Skip interruptInUse-pool-clear tests broken by SERVER-128517#3093

Merged
Jibola merged 2 commits into
mongodb:masterfrom
comandeo-mongo:3922-skip-interruptinuse-server-128517
Jul 24, 2026
Merged

RUBY-3922 Skip interruptInUse-pool-clear tests broken by SERVER-128517#3093
Jibola merged 2 commits into
mongodb:masterfrom
comandeo-mongo:3922-skip-interruptinuse-server-128517

Conversation

@comandeo-mongo

@comandeo-mongo comandeo-mongo commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

The three sdam_unified/interruptInUse-pool-clear.yml tests started failing on master (green 2026-07-22, red 2026-07-24) with no driver change. The same server change also breaks two RTT-dependent client_side_operations_timeout/command-execution.yml tests.

Root cause

SERVER-128517 "Add configurable minimum timeout for pre-auth streamable hello" introduces the server parameter minWaitForStreamingHelloMillis (default 10000 ms), flooring the wait for pre-auth streamable hello commands. The monitor's streamable hello is pre-auth, so it is now held up to 10 s. The scenario relies on the monitor detecting the failpoint-induced failure and clearing the pool with interruptInUseConnections=true quickly; with the floor it no longer reacts in time, so the in-use operation hits its own ~5 s socket timeout (Mongo::Error::SocketTimeoutError) before the interrupt-driven pool clear fires.

The same floor also changes RTT measurement: the command-execution.yml tests use a blockConnection/blockTimeMS failpoint on hello to inflate the measured RTT, then assert the driver reduces maxTimeMS (or short-circuits) accordingly. With the floor the inflated RTT is no longer observed, so:

  • "maxTimeMS value in the command is less than timeoutMS" fails with maxTimeMS ~499 instead of <= 450.
  • "command is not sent if RTT is greater than timeoutMS" no longer short-circuits, so the expected client-side timeout is not raised.

This is a server-side change, not a driver regression.

Evidence

  • Fails only on replica-set AND server >= 7.0. Sharded passes; standalone skips; replica-set on 4.4/5.0/6.0 passes.
  • Matches SERVER-128517 fix versions exactly: 7.0.39, 8.0.28, 8.2.12, 8.3.7 (rapid), 9.0.0-rc1 (not 6.0).
  • Local bisect: 8.0.4 PASS, 8.0.26 PASS, 8.0.28 FAIL.
  • Reproduces on driver code from before the recent SDAM commits (RUBY-3909, RUBY-3822).

Change

Skip the affected tests via skipReason in the fixtures, referencing RUBY-3922 (same pattern as the existing RUBY-3781 skip in hello-network-error.yml):

  • three interruptInUse-pool-clear.yml tests
  • two RTT-dependent command-execution.yml tests

RUBY-3922 tracks the long-term fix (set minWaitForStreamingHelloMillis: 0 in the test environment and/or update the upstream spec fixtures; coordinate across drivers).

Verified locally against server 8.0.28:

  • bundle exec rspec spec/spec_tests/sdam_unified_spec.rb -e "interruptInUseConnections" -> 3 examples, 0 failures, 3 pending.
  • CSOT_SPEC_TESTS=1 bundle exec rspec spec/spec_tests/client_side_operations_timeout_spec.rb -> 531 examples, 0 failures, 12 pending.

The three sdam_unified/interruptInUse-pool-clear.yml tests fail on
server 7.0.39+/8.0.28+ (and 8.2.12+, rapid). SERVER-128517 added
minWaitForStreamingHelloMillis (default 10s), flooring the pre-auth
streamable hello wait. The monitor no longer detects the failpoint
failure fast enough, so the in-use operation hits its own socket
timeout before the interruptInUseConnections pool clear fires.

This is a server-side change, not a driver regression. Skip the
tests to unblock master; RUBY-3922 tracks the long-term fix.
@comandeo-mongo
comandeo-mongo requested a review from a team as a code owner July 24, 2026 11:41
@comandeo-mongo
comandeo-mongo requested review from Copilot and jamis and removed request for Copilot July 24, 2026 11:41
The two RTT-dependent command-execution.yml tests fail on server
7.0.39+/8.0.28+ for the same reason as the interruptInUse tests:
SERVER-128517's pre-auth streamable hello floor removes the inflated
RTT the failpoint used to induce, so maxTimeMS is no longer reduced
(499 > 450) and the RTT-too-high short-circuit no longer fires.
Copilot AI review requested due to automatic review settings July 24, 2026 17:30
@jamis
jamis removed the request for review from Copilot July 24, 2026 17:32
@Jibola
Jibola merged commit a725d15 into mongodb:master Jul 24, 2026
218 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants