Bug 1405570 - Never remove tasks with an index-search optimization. r?dustin draft
authorMike Hommey <mh+mozilla@glandium.org>
Thu, 05 Oct 2017 10:36:32 +0900
changeset 678798 8d0374b3db5bc7f41a5dd8743e74ad9311f40250
parent 678275 e897e367d3bd489422d86fbdfac54925c18329d2
child 735446 d9d2e8856fa7a3c0a6b2599a9169fa1b672f7f17
push id84049
push userbmo:mh+mozilla@glandium.org
push dateWed, 11 Oct 2017 21:35:30 +0000
reviewersdustin
bugs1405570
milestone58.0a1
Bug 1405570 - Never remove tasks with an index-search optimization. r?dustin
taskcluster/taskgraph/optimize.py
--- a/taskcluster/taskgraph/optimize.py
+++ b/taskcluster/taskgraph/optimize.py
@@ -289,19 +289,26 @@ class OnlyIfDependenciesRun(Optimization
     # should_replace_task is called, then a task has no un-optimized
     # dependencies and can be removed (indicated by returning True)
 
     def should_replace_task(self, task, params, arg):
         return True
 
 
 class IndexSearch(OptimizationStrategy):
-    def should_remove_task(self, task, params, index_paths):
-        "If this task has no dependencies, don't run it.."
-        return True
+
+    # A task with no dependencies remaining after optimization will be replaced
+    # if artifacts exist for the corresponding index_paths.
+    # Otherwise, we're in one of the following cases:
+    # - the task has un-optimized dependencies
+    # - the artifacts have expired
+    # - some changes altered the index_paths and new artifacts need to be
+    # created.
+    # In every of those cases, we need to run the task to create or refresh
+    # artifacts.
 
     def should_replace_task(self, task, params, index_paths):
         "Look for a task with one of the given index paths"
         for index_path in index_paths:
             try:
                 task_id = find_task_id(
                     index_path,
                     use_proxy=bool(os.environ.get('TASK_ID')))