Frequently Asked Questions¶
Why should we use the custom ubuntu1804-drivers-atlas-testing
distro?¶
MongoDB Atlas restricts the number of clusters in an Atlas Project to 25. Since this project runs the entire build matrix in its in evergreen configuration under a single Atlas project, it often ends up running into this limitation which causes hard-to-diagnose test failures (see #45, #46, and #48). To mitigate this issue, we need to limit the number of concurrent builds in the drivers-atlas-testing Evergreen project to less than 25. Evergreen does not currently have a way to enforce such a limit, so instead we have created this custom distro which is limited to 25 hosts. While not foolproof, this workaround helps avoid the aforementioned failures in most usage scenarios.
What is the purpose of the ASTROLABE_EXECUTOR_STARTUP_TIME
environment variable?¶
This test framework’s architecture (see Architecture Overview) delegates the responsibilities of
invoking the workload executor as well as starting the Atlas planned maintenance to astrolabe
. Since
the workload executor is run in a subprocess, there is no straightforward way for astrolabe
to ascertain
whether a workload executor is in the process of initialization or if it is, in fact, already running operations
against the test cluster. This limitation, when combined with a workload executor that runs particularly slowly
can result in failures, e.g.:
The maintenance completes and
astrolabe
terminates the workload executor before it can run any operations.The workload executor only starts running operations when cluster maintenance is already underway.
To avoid this situation, users can set the ASTROLABE_EXECUTOR_STARTUP_TIME
environment variable to a value
greater than the number of seconds it takes their workload executor to start. When this value is set, astrolabe
will wait for ASTROLABE_EXECUTOR_STARTUP_TIME
seconds before implementing the maintenance plan thereby avoiding
the aforementioned issues.