-
Notifications
You must be signed in to change notification settings - Fork 48
Open
Description
I'm assuming that fixing #710 would also fix this one but this is where it began
Assuming the following
loader: taskgraph.loader.transform:loader
transforms:
- taskgraph.transforms.task
task-defaults:
worker-type: succeed
tasks:
task-a:
label: task-a
optimization:
skip-unless-changed: ["world"]
description: task-a
task-apush-a:
label: task-apush-a
dependencies:
task-a: task-a
if-dependencies:
- task-a
description: task-push-a
task-b:
label: task-b
description: task-b
final:
label: final
dependencies:
task-push-a: task-apush-a
task-b: task-b
if-dependencies:
- task-push-a
- task-b
description: final2025-06-23 17:49:11,994 - INFO - Generating optimized task graph
2025-06-23 17:49:11,994 - DEBUG - no files found matching a pattern in `skip-unless-changed` for "task-a"
2025-06-23 17:49:11,994 - DEBUG - optimize: final kept because of never
2025-06-23 17:49:11,994 - DEBUG - optimize: task-apush-a kept because of dependent tasks
2025-06-23 17:49:11,994 - DEBUG - optimize: task-b kept because of never
2025-06-23 17:49:11,994 - DEBUG - optimize: task-a removed because of if-dependencies pruning
2025-06-23 17:49:11,994 - INFO - Removed 1 tasks by if-dependencies pruning during optimization.
...
File "/home/eijemoz/code/taskgraph/src/taskgraph/optimize/base.py", line 110, in optimize_task_graph
get_subgraph(
~~~~~~~~~~~~^
target_task_graph,
^^^^^^^^^^^^^^^^^^
...<3 lines>...
decision_task_id,
^^^^^^^^^^^^^^^^^
),
^
File "/home/eijemoz/code/taskgraph/src/taskgraph/optimize/base.py", line 396, in get_subgraph
raise Exception("Optimization error: " + probs)
Exception: Optimization error: task-apush-a depends on task-a as task-a but it has been removed
If you rename task-apush-a to task-push-a then instead you run into #710 and the whole graph gets pulled in. This optimization error only happens when the label of the task getting optimized gets ordered before the other tasks in the prune_candidates set in remove_tasks.
Metadata
Metadata
Assignees
Labels
No labels