Skip to content

Fix CI regressions: OCSP TLS URI options and lint variant#3066

Open
comandeo-mongo wants to merge 6 commits into
mongodb:masterfrom
comandeo-mongo:fix-ci-again-and-again
Open

Fix CI regressions: OCSP TLS URI options and lint variant#3066
comandeo-mongo wants to merge 6 commits into
mongodb:masterfrom
comandeo-mongo:fix-ci-again-and-again

Conversation

@comandeo-mongo

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

Copy link
Copy Markdown
Contributor

Fixes two CI regressions on master.

RUBY-3472 — OCSP variants lost TLS URI options after the mlaunch→drivers-evergreen-tools migration. The fix restores tls=true, tlsCAFile, and tlsCertificateKeyFile for non-connectivity OCSP variants.

RUBY-3824 — The #unpin test introduced in RUBY-3824 called pin_to_server with a replica set primary, triggering the lint guard that requires a mongos. Fixed by setting @pinned_server via instance_variable_set since the test exercises unpin, not pin_to_server.

The legacy csfle/set-temp-creds.sh script is deprecated in
drivers-evergreen-tools (DRIVERS-3433). The main run-tests.sh path
already moved to setup-secrets.sh under RUBY-3886, and setup_secrets.py
now produces the same CSFLE_AWS_TEMP_* credentials.

The only remaining consumer was run-tests-serverless.sh, which is dead
code: serverless testing was removed in RUBY-3652 and no Evergreen task
references the script. Delete it, and fix the now-stale spec_config.rb
comments that still pointed at set-temp-creds.sh.
MongoDB 4.2 is on the EOL track (RUBY-3811 deprecated it, RUBY-3819
covers the min-version bump to 4.4). Its CI variants are also currently
broken at server bootstrap: drivers-evergreen-tools starts MongoDB >= 4.2
with mongodb-runner, which pins mongodb-runner but not its transitive
bson dependency, so the recent bson 7.3.0 release crashes startup.

Drop the 4.2 build variants: remove the 4.2 axis value and remove 4.2
from the mongo-4.x and "stress older" matrices. Regenerated config.yml
via `rake eg:build`; `rake eg:validate` passes. 4.4 coverage is kept.
Change activate: false to patchable: false so the latest-server build
variant runs automatically on mainline commits but is skipped on patches.
This keeps PRs unblocked while still catching breakage from unreleased
MongoDB builds on master.
The RUBY-3472 migration removed the mlaunch-based calculate_server_args()
call, which had added tls=true, tlsCAFile, and tlsCertificateKeyFile to
the URI when OCSP_ALGORITHM was set. The new drivers-tools orchestration
writes a plain mongodb://127.0.0.1:27017 URI, but the server is started
with sslOnNormalPorts:true via the OCSP orchestration file. The driver
could not connect because the URI lacked TLS options.

Add TLS URI options for OCSP variants that are not ocsp-connectivity
(which already had them). This restores the pre-migration behavior for
ocsp-must-staple and ocsp-unknown variants.
The #unpin double-call test was using pin_to_server(server) with a
replica set primary, triggering the lint guard that requires a mongos.
Use instance_variable_set to bypass the guard since we are testing
unpin, not pin_to_server.
@comandeo-mongo comandeo-mongo changed the title RUBY-3472 Fix TLS URI options for non-connectivity OCSP variants Fix CI regressions: OCSP TLS URI options and lint variant Jun 24, 2026
@comandeo-mongo comandeo-mongo marked this pull request as ready for review June 25, 2026 08:08
@comandeo-mongo comandeo-mongo requested a review from a team as a code owner June 25, 2026 08:08
@comandeo-mongo comandeo-mongo requested review from Copilot and jamis June 25, 2026 08:08

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR addresses CI regressions in the MongoDB Ruby driver’s Evergreen test runs by restoring missing OCSP TLS URI options after tooling migration and adjusting a session unpin spec to avoid triggering lint-only pinning checks.

Changes:

  • Restore tls=true, tlsCAFile, and tlsCertificateKeyFile URI options for non-connectivity OCSP variants in Evergreen.
  • Update Mongo::Session#unpin spec to set @pinned_server directly (avoiding pin_to_server lint guard requiring a mongos).
  • Adjust Evergreen configuration/scripts (e.g., remove MongoDB 4.2 from axes/matrices, remove a serverless runner script, update buildvariant patch behavior).

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
spec/support/spec_config.rb Updates FLE AWS temp-credential comment references to current secret setup script.
spec/mongo/session_spec.rb Avoids lint-only pin_to_server guard in the unpin idempotency test by setting @pinned_server directly.
.evergreen/run-tests.sh Restores OCSP TLS-related URI options for additional OCSP variant paths.
.evergreen/run-tests-serverless.sh Removes the serverless test runner script.
.evergreen/config/standard.yml.erb Updates CI matrix entries (e.g., MongoDB 4.2 removal) and changes latest-server patch behavior.
.evergreen/config/axes.yml.erb Removes MongoDB 4.2 from the axes definition.
.evergreen/config.yml Applies the same Evergreen matrix/axes/buildvariant changes to the generated config.

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

Comment thread .evergreen/config.yml
Comment on lines 1126 to 1130
- matrix_name: "mongo-4.x"
matrix_spec:
ruby: ["ruby-3.0", "ruby-2.7"]
mongodb-version: ['4.4', '4.2']
mongodb-version: ['4.4']
topology: ["standalone", "replica-set", "sharded-cluster"]
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