-
Notifications
You must be signed in to change notification settings - Fork 455
CDRIVER-5740 Use run-orchestration.sh #1742
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
The |
Latest patch reveals Ubuntu 18.04 still has some issues with killing existing processes occupying server port(s). This issue should eventually be addressed by DET scripts (not us). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Exciting! This has been a long-standing want (recalling CDRIVER-2707).
# IPV4_ONLY: off, on | ||
# SSL: openssl, darwinssl, winssl, nossl | ||
# ORCHESTRATION_FILE: <file name in orchestration_configs/ without .json> | ||
# If this is not set, the file name is constructed from other options. | ||
# ORCHESTRATION_FILE: <file name in DET configs/${TOPOLOGY}s/> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The C driver contains orchestration configs that are not in DET:
orchestration_configs/servers/basic-ipv4-only.json
orchestration_configs/servers/snappy.json
orchestration_configs/servers/zstd.json
On further look, I do not the extra configs provide much meaningful test coverage.
snappy
and zstd
may not be relevant for modern servers. The default enables all three.
Tasks specifying IPV4_ONLY
(to use basic-ipv4-only
) also specify the URI mongodb://127.0.0.1
, so I expect those tasks connect with IPv4 without extra server configuration.
Suggest:
- Remove C driver
orchestration_configs
. - Remove mention of
IPV4_ONLY
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you. Done as suggested.
I preserved the MONGOC_CHECK_IPV6
env var (formerly conditioned on "$IPV4_ONLY" != "on"
; now unconditionally defined in EVG scripts) in case there are downstream users that still depend on it. LMK if you would like this removed from the test suite as well.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I slightly prefer removing MONGOC_CHECK_IPV6
. I do not think preserving test environment variables is needed, and I expect removing MONGOC_CHECK_IPV6
would not be disruptive.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done.
Latest changes verified by this patch. |
# IPV4_ONLY: off, on | ||
# SSL: openssl, darwinssl, winssl, nossl | ||
# ORCHESTRATION_FILE: <file name in orchestration_configs/ without .json> | ||
# If this is not set, the file name is constructed from other options. | ||
# ORCHESTRATION_FILE: <file name in DET configs/${TOPOLOGY}s/> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I slightly prefer removing MONGOC_CHECK_IPV6
. I do not think preserving test environment variables is needed, and I expect removing MONGOC_CHECK_IPV6
would not be disruptive.
Summary
This PR resolves CDRIVER-5740. Verified by this patch.
Fixes the purple wall currently blocking C Driver EVG tasks.
Observed that recent updates to DET scripts (in order to keep up with updates to mongo-orchestration) were frequently breaking C Driver EVG tasks, but not C++ Driver EVG tasks. The difference appeared to be due to the C++ Driver EVG scripts using
run-orchestration.sh
to start mongo-orchestration (as intended/expected by DET scripts), whereas the C Driver is using its own manual implementation of the same initialization routines.This PR updates
integration-tests.sh
to userun-orchestration.sh
to better keep up with DET script updates in a compatible manner.run-orchestration.sh
Using the C++ Driver's implementation as reference,
run-orchestration.sh
has been updated as follows:MONGO_ORCHESTRATION_HOME
: defined as"$DRIVERS_TOOLS/.evergreen/orchestration"
(instead ofC:\data\MO
or$(pwd)/MO
depending on the distro) for consistency with DET scripts and the C++ Driver.run-orchestration.sh
.ORCHESTRATION_FILE
: defined byrun-orchestration.sh
except when an explicit config is required (i.e. versioned API tasks, Auth AWS tasks, andocsp-*
tasks)..json
file extension needed to be included for compatibility.$DRIVERS_TOOLS/.evergreen/orchestration
(the newMONGO_ORCHESTRATION_HOME
).MONGODB_BINARIES
: defined as$DRIVERS_TOOLS/mongodb/bin
for consistency with DET scripts and the C++ Driver.run-tests.sh
needed to be updated accordingly.Versioned API Tests
A currently-unaddressed issue with
run-orchestration.sh
(which is blocked on a fix to mongo-orchestration) does not allow testing Stable API with SSL/TLS enabled in mongo-orchestration due to lack of atls
URI option in the connection string.This PR uses a workaround that adds
--tls --tlsAllowInvalidCertificates
to themongosh
command used to set"requireApiVersion": 1
inrun-orchestration.sh
. This should hopefully be made unnecessary in the near future.The
test-versioned-api-*
tasks are updated to use a build with SSL/TLS support enabled, but does not utilize these features during test execution. UsingAUTH
withoutSSL
is a bit unusual for C Driver tests, so comments were added to the task definition accordingly.Other Notes
AUTHSOURCE
env var appears to be obsolete and was therefore removed.snappy-zlib-zstd
orchestration config (logs indicate thebasic
config file was being used instead...?).--max-time
to the MO wait routine's curl command.mongocryptd --fork
, but it is unclear to me what the root cause may be. It appears to be a bit flaky.