mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-07-19 15:16:33 +00:00
Explain the deadlock issue with group locks in code
This commit is contained in:
parent
39311ce3b3
commit
0eba884fb1
@ -111,7 +111,13 @@ class Job(CoreSysAttributes):
|
|||||||
JobExecutionLimit.GROUP_WAIT: (JobConcurrency.GROUP_QUEUE, None),
|
JobExecutionLimit.GROUP_WAIT: (JobConcurrency.GROUP_QUEUE, None),
|
||||||
JobExecutionLimit.GROUP_THROTTLE: (None, JobThrottle.GROUP_THROTTLE),
|
JobExecutionLimit.GROUP_THROTTLE: (None, JobThrottle.GROUP_THROTTLE),
|
||||||
JobExecutionLimit.GROUP_THROTTLE_WAIT: (
|
JobExecutionLimit.GROUP_THROTTLE_WAIT: (
|
||||||
JobConcurrency.QUEUE, # Seems a bit counter intuitive, but GROUP_QUEUE deadlocks tests/jobs/test_job_decorator.py::test_execution_limit_group_throttle_wait
|
# Seems a bit counter intuitive, but GROUP_QUEUE deadlocks
|
||||||
|
# tests/jobs/test_job_decorator.py::test_execution_limit_group_throttle_wait
|
||||||
|
# The reason this deadlocks is because when using GROUP_QUEUE and the
|
||||||
|
# throttle limit is hit, the group lock is trying to be unlocked outside
|
||||||
|
# of the job context. The current implementation doesn't allow to unlock
|
||||||
|
# the group lock when the job is not running.
|
||||||
|
JobConcurrency.QUEUE,
|
||||||
JobThrottle.GROUP_THROTTLE,
|
JobThrottle.GROUP_THROTTLE,
|
||||||
),
|
),
|
||||||
JobExecutionLimit.GROUP_THROTTLE_RATE_LIMIT: (
|
JobExecutionLimit.GROUP_THROTTLE_RATE_LIMIT: (
|
||||||
|
Loading…
x
Reference in New Issue
Block a user