Skip to content

Conversation

@sanych-sun
Copy link
Member

The test is flaky on 4.2 variants, as investigation shows even though that the documentation says blockTimeMS for failPoints was introduced in 4.2.9, it does not look like it really works properly on the 4.2 variants:
image
Test took only 60ms, even though there is failPoint that should block the connection for entire 1s. I've checked multiple 4.2 variants, the test is always takes less then 100ms to complete (both failed and succeeded), when on another versions it took 1s for the test, because of failPoint blocking the connection.

@sanych-sun sanych-sun requested a review from a team as a code owner February 10, 2026 03:10
Copilot AI review requested due to automatic review settings February 10, 2026 03:10
@sanych-sun sanych-sun added the chore Non–user-facing code changes (tests, build scripts, etc.). label Feb 10, 2026
@sanych-sun sanych-sun requested review from BorisDog and rstam and removed request for rstam February 10, 2026 03:10
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adjusts feature gating to avoid flaky retryable reads prose tests on MongoDB 4.2 where failPoint connection blocking (blockTimeMS) appears unreliable.

Changes:

  • Updates the minimum supported wire version for FailPointsBlockConnection from MongoDB 4.2 to 4.4.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@@ -61,7 +61,7 @@ public class Feature
private static readonly Feature __directConnectionSetting = new Feature("DirectConnectionSetting", WireVersion.Server44);
private static readonly Feature __electionIdPriorityInSDAM = new Feature("ElectionIdPriorityInSDAM ", WireVersion.Server60);
private static readonly Feature __eval = new Feature("Eval", WireVersion.Zero, WireVersion.Server42);
Copy link

Copilot AI Feb 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change intentionally diverges from the documented introduction of failPoint blockTimeMS in 4.2.x by gating the feature at 4.4. Please add a short comment (or a reference to the related ticket/server behavior) explaining why 4.2 is excluded, so future readers don’t “fix” this back to Server42 and reintroduce flakiness.

Suggested change
private static readonly Feature __eval = new Feature("Eval", WireVersion.Zero, WireVersion.Server42);
private static readonly Feature __eval = new Feature("Eval", WireVersion.Zero, WireVersion.Server42);
// Note: although the server documentation lists failPoint blockTimeMS as available in 4.2.x,
// the 4.2 implementation caused test flakiness. We intentionally require 4.4+ here.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore Non–user-facing code changes (tests, build scripts, etc.).

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant