Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
BB V1.02
-
None
-
Sprint 3 (10.02.2025)
Description
Currently locks.py doesn't work in BuildBot because the script is checking if the runtime worker_name is in LOCKS dictionary by the full name of the worker which is composed by a worker_base + OS.
Examples:
- runtime worker_name: s390x-bbw4-docker-ubuntu-2204
- worker_name (base) in worker_locks.yaml: s390x-bbw4-docker
Bug:
Playground setup:
- restrict s390x master to use only 1 worker: s390x-bbw1
- the s390x-bbw1-docker lock is set to maxCounts = 1 in worker_locks.yaml
- trigger 6 s390x builders
Eventually all builders will start on s390x-bbw1 roughly at the same time << preparing worker status disappears in just a few seconds when container is up >> which is wrong and doesn't acquire any lock.
Fix
In the fixed version, see Pull request in comment, we do the opposite, check if the base name is in the runtime worker_name string.
Tested this scenario already in buildbot.dev.mariadb.org and it works.
In this setup:
- restrict s390x master to use only 1 worker: s390x-bbw1
- the s390x-bbw1-docker lock is set to maxCount = 1 worker_locks.yaml
- trigger 6 s390x builders
- check that 1 builder is running and the rest of them are waiting on the lock to be released
Tested also the same scenario above with maxCount=2 for s390x-bbw1 and it works. See screenshot below:
Attachments
Issue Links
- blocks
-
MDBF-967 Lower the number of parallel builds on s390x
-
- Closed
-