mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-12-15 13:54:43 -06:00
Fix parent job sync when parent reaches 100% progress (#6282)
* Fix parent job sync when parent reaches 100% progress When a child job completes and syncs its progress to a parent job, it can set the parent to 100% progress. However, there are situations where a second child job for the same parent job is created after the parent has already reached 100%. This caused a ValueError when creating a ParentJobSync for subsequent child jobs, as the validator required starting_progress < 100.0. This issue was introduced in #6207 (shipped in 2025.10.0) but only became visible in 2025.10.1 with #6195, which started using progress syncs. The bug manifests during Core update rollbacks when a second docker_interface_install job is created after the parent already reached 100% from the first install. Fix by skipping parent job sync setup when the parent is already done or at 100% progress, as there's no value in syncing progress to a completed parent. * Update comment and add debug message
This commit is contained in:
parent
a8b7923a42
commit
1657769044
@ -327,6 +327,17 @@ class JobManager(FileConfiguration, CoreSysAttributes):
|
||||
if not curr_parent.child_job_syncs:
|
||||
continue
|
||||
|
||||
# HACK: If parent trigger the same child job, we just skip this second
|
||||
# sync. Maybe it would be better to have this reflected in the job stage
|
||||
# and reset progress to 0 instead? There is no support for such stage
|
||||
# information on Core update entities today though.
|
||||
if curr_parent.done is True or curr_parent.progress >= 100:
|
||||
_LOGGER.debug(
|
||||
"Skipping parent job sync for done parent job %s",
|
||||
curr_parent.name,
|
||||
)
|
||||
continue
|
||||
|
||||
# Break after first match at each parent as it doesn't make sense
|
||||
# to match twice. But it could match multiple parents
|
||||
for sync in curr_parent.child_job_syncs:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user