Certain test suites need to be run on "large" distros. These distros have extra memory needed to support certain configurations that are being tested. When we dynamically split tasks, there are two attributes used to determine if a large distro is needed. First, the task being split needs to have an expansion "use_large_distro" set in order to indicate that sub-tasks should be configured to use a large distro. Second, the build variant needs to have an expansion called "large_distro_name" to indicate what distro should be used as the "large" distro.
If a build variant does not specify the "large_distro_name" it will not be used for any of the generated tasks regardless of whether the tasks have the "use_large_distro" expansion set. Not all build variants need this set as some do not run any generated tasks that would require it. And some build variants are against configurations that do not even have the concept of a large distro. However, it is really easy to create a new build variant that should specify a large distro to use, but not. The only indication that the large distro name is needed is that tests may unreliable hit out of memory issues.
In order to handle this problem, we should fail to generate any tasks that set "use_large_distro" that are running on a build variant that does not have the "large_distro_name" expansion. We will also create a new config file, "etc/generate_subtasks_config.yml" that will contain a list of exception build variants. If we do fail due to this situation, a detailed error message should be displayed describing the situation and the options to resolve it (add a large_distro_name or include this build variant in the exception list).
As part of this ticket, we should also update existing build variants to conform to the specified convention.