zuul/zuul
Simon Westphahl 0b95dfd07c Lock tenants, pipelines, queues during processing
In addition to the tenant read lock, schedulers need to also acquire an
exclusive pipeline lock. In case a pipeline is already locked by another
scheduler, it is skipped and processing will continue with the next
pipeline in the tenant.

Tenant management and trigger queues are protected by a queue specific
lock and need to acquire other locks depending on the processed event
(e.g. tenant write lock for tenant reconfigurations).

This also fixes an issue with the locked context manager when an
exception is thrown inside the context. In this case the lock was not
unlocked.

Change-Id: I2e3f0feca7119908d1d13010d2e4de791f95137e
2021-07-15 13:55:05 +02:00
..
ansible Add secret_data to zuul_return 2021-06-24 06:24:23 -07:00
cmd Move tenant validation to separate method 2021-07-06 07:23:51 +02:00
connection Allow monitoring length of connection event queues 2021-05-20 07:27:27 +02:00
driver Merge "Use create_all for empty databases" 2021-07-08 00:05:21 +00:00
execution_context Add wrapper driver execution context 2017-08-18 16:35:12 -07:00
executor Merge "Log Ansible Error Lines More Lengthy" 2021-07-08 19:08:22 +00:00
lib Block connection related variables 2021-06-24 06:24:23 -07:00
manager Move parent provider determination to pipeline manager 2021-07-08 13:27:08 -07:00
merger Switch to ZooKeeper backed merge result events 2021-06-29 14:37:15 -07:00
reporter Check cycle items are mergeable before reporting 2021-03-01 18:45:29 +00:00
source Allow refreshing volatile data in canMerge check 2021-03-01 18:45:02 +00:00
sphinx docs: remove zuuldocs domain 2020-08-04 16:10:09 +10:00
trigger Filter events on event connection 2021-04-24 08:39:03 -07:00
web Improve component registry 2021-05-17 16:47:13 -07:00
zk Lock tenants, pipelines, queues during processing 2021-07-15 13:55:05 +02:00
__init__.py Initial commit. 2012-05-29 14:49:32 -07:00
_setup_hook.py Revert "Revert "Create zuul/web/static on demand"" 2020-07-07 19:53:33 +02:00
change_matcher.py Match tag items against containing branches 2020-03-06 13:29:18 -08:00
configloader.py Combine full and smart reconfiguration events 2021-07-08 09:15:18 +02:00
exceptions.py web: add tenant and project scoped, JWT-protected actions 2019-07-10 12:11:14 +02:00
model.py Merge "Move parent provider determination to pipeline manager" 2021-07-08 22:16:08 +00:00
nodepool.py Move parent provider determination to pipeline manager 2021-07-08 13:27:08 -07:00
rpcclient.py Add client_id to RPC client 2020-01-28 10:16:19 +01:00
rpclistener.py Remove layout attribute from queue items 2021-06-01 18:19:39 +02:00
scheduler.py Lock tenants, pipelines, queues during processing 2021-07-15 13:55:05 +02:00
version.py Report git sha in status page version 2018-04-27 10:21:43 -07:00