-
Type: Task
-
Resolution: Done
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Testing Infrastructure
-
STM 2021-09-20, STM 2021-10-04, STM 2021-10-18
-
3
Write a binary search function on Evergreen version history that simulates what git bisect does, but treat Evergreen versions as git commits if the build in a version for a particular variant has valid artifacts and binaries.
0. Ask the user for the branch to bisect as a cmdline arg and find the corresponding Evergreen projects for that branch (It should just all be "mongodb-mongo-" + branch name)
1. Count all commits in the branch and store them in memory up to lookbackDays,
2. update multiversion_setup to allow users to specific a variant on the command line which supersedes the --platform, --edition, and --architecture options. Code is here. The variant name gets used here
3. Find the middle Evergreen version
4. Set up the dev environment using setup-multiversion, optionally pip install buildscripts/dev-requirements.txt if there isn't an existing python virtualenv from Evergreen (which there isn't for commits older than a few months).
5. function to run a script that checks if the commit is good or bad ("git bisect run my_script arguments")
6. based on result of function in step 4, bisect to the right or left accordingly.
7. Tell the user that the problem is within a certain commit range, where the range is contains two consecutive Evergreen runs, with the earlier one passing and later one failing.
- depends on
-
SERVER-59449 Add resmoke.py `bisect` command
- Closed
- split from
-
SERVER-57730 Resmoke.py should bisect non-multiversion fuzzer test failures for 5.0 and above
- Closed