List of fixes and improvements for evergreen timeout calculation:
- Normalize test file names that are returned from resmoke.
We are getting normalized test file names for historic runtime data, but not for the list of tests from resmoke. Therefore test names does not match when running on Windows, timeout calculation assumes that there is no historic runtime data and basically timeout calculation doesn't work there.
https://github.com/mongodb/mongo/blob/9fb9d210409c00e69ec40179330fee0b28f62aec/buildscripts/timeouts/timeout_service.py#L56-L68 - With the fix above we probably can remove default timeouts for windows variants from https://github.com/mongodb/mongo/blob/9fb9d210409c00e69ec40179330fee0b28f62aec/etc/evergreen_timeouts.yml
Make sure than nothing is timing out on windows variants after this change. - Fix passing evg-alias to the script. We always passing a string `${alias}`, even in the commit-queue, therefore timeout calculation never handles commit-queue case.
https://github.com/mongodb/mongo/blob/9fb9d210409c00e69ec40179330fee0b28f62aec/evergreen/functions/task_timeout_determine.sh#L35 - After the change above, we can consider reducing the default commit-queue timeout from 40 minutes to 20-25 minutes.
https://github.com/mongodb/mongo/blob/9fb9d210409c00e69ec40179330fee0b28f62aec/buildscripts/evergreen_task_timeout.py#L39 - After fixing the commit-queue case we can drop run_unittests specific case.
https://github.com/mongodb/mongo/blob/9fb9d210409c00e69ec40179330fee0b28f62aec/buildscripts/evergreen_task_timeout.py#L228-L231
It was introduced specifically for the commit-queue, because at that time run_unittests task was timing out and blocking the queue. With reducing the default commit-queue this will be no more needed. - Remove overrides for run_unittests task for all build variants from https://github.com/mongodb/mongo/blob/9fb9d210409c00e69ec40179330fee0b28f62aec/etc/evergreen_timeouts.yml
- Remove default timeouts for config_fuzzer_replica_sets_jscore_passthrough.
We switched all existing such tasks to generated tasks and the current 2.5 hours default timeout is too large. - Remove default timeouts for replica_sets_large_txns_format. We don't run this task on any variant anymore.
- Remove default timeouts for linux-64-debug variant. I assume we renamed the build variant. And since there are no complaints I think we can just remove it.
- Remove default timeouts for sharded_collections_jscore_passthrough. I've reviewed all variants and timeout calculation works fine for them.
- Remove default timeouts for sharding_update_v1_oplog_jscore_passthrough. Such task doesn't exist anymore.