| I've managed to reproduce from scratch on a newly set up Jenkins server (Windows) configured with a single node/agent (Windows). This way I've stripped off a lot of things from our production setup as to eliminate as many possible causes for this. Here are the minimum steps I needed to repro:
- Install latest Jenkins LTS release (2.222.3) on a Windows machine with the default set of plugins
- Configure the master node with a label such as DISPATCH
- Add a new node and configure it as a new agent. Due to limited resources I configured the new node/agent to run on the same Windows machine. Configure it with its own label such as WINDOWS and make sure "Usage" configuration is set to "Only build jobs with label expressions matching the node"
- Created a new Multi-configuration project job:
- Configure this job's "Restrict where this project can run" setting so its "Label Expression" value is the one specified for master, so DISPATCH
- Configure this job's "Configuration Matrix" by adding:
- a "User-defined matrix" axis with a "Name" of "TARGET" and "Values" of "XboxOne PS4 Switch" (any strings to mimic building for various platforms)
- a "Slaves" axis with a "Name" of "TARGET_POOL" and make sure to check the "WINDOWS" checkbox - Configure this job's "Build" section by adding a dummy "Execute Windows batch command" whose content is simply an "@echo Hello world!"
If I launch this job using Jenkins 2.222.3, 2.205 or anything in between, the job is stuck waiting for an executor on master when there are 2 available and the agent using the WINDOWS label is free with at least a single executor. If I launch this job using Jenkins 2.204.6 or earlier, the job successfully launches and sequentially runs all three XboxOne, PS4 and Switch configurations on the sole agent using the WINDOWS label while the job itself "runs" on the master node (even though all it does is dispatch really). On our production server we use the "Dynamic Axis" plugin to dynamically build an axis of all platforms to build and have multiple Windows, Linux and Mac build machines using an OS-specific labels. But for the sake of keeping these repro steps simple, I've dropped all but one OS and removed the "Dynamic Axis" plugin usage. It doesn't logically make much sense but shows the behavior difference starting with the Jenkins 2.205 release. |