3113: Remove qsequence assignment shim. Clarify "do not load tasks
authorTom Clegg <tom@curoverse.com>
Wed, 9 Jul 2014 16:58:31 +0000 (12:58 -0400)
committerBrett Smith <brett@curoverse.com>
Mon, 14 Jul 2014 17:27:19 +0000 (13:27 -0400)
queued by a failed task" logic in crunch-job.

sdk/cli/bin/crunch-job
services/api/app/models/job_task.rb

index ca2e8c49a5b66048c0918f8725a95c50f2365a86..a4951e7321513eab54e1d37e79bc42697a4e932d 100755 (executable)
@@ -985,27 +985,29 @@ sub reapchildren
   push @freeslot, $proc{$pid}->{slot};
   delete $proc{$pid};
 
-  # Load new tasks
-  my $newtask_list = [];
-  my $newtask_results;
-  do {
-    $newtask_results = $arv->{'job_tasks'}->{'list'}->execute(
-      'where' => {
-        'created_by_job_task_uuid' => $Jobstep->{'arvados_task'}->{uuid}
-      },
-      'order' => 'qsequence',
-      'offset' => scalar(@$newtask_list),
-    );
-    push(@$newtask_list, @{$newtask_results->{items}});
-  } while (@{$newtask_results->{items}});
-  foreach my $arvados_task (@$newtask_list) {
-    my $jobstep = {
-      'level' => $arvados_task->{'sequence'},
-      'failures' => 0,
-      'arvados_task' => $arvados_task
-    };
-    push @jobstep, $jobstep;
-    push @jobstep_todo, $#jobstep;
+  if ($task_success) {
+    # Load new tasks
+    my $newtask_list = [];
+    my $newtask_results;
+    do {
+      $newtask_results = $arv->{'job_tasks'}->{'list'}->execute(
+        'where' => {
+          'created_by_job_task_uuid' => $Jobstep->{'arvados_task'}->{uuid}
+        },
+        'order' => 'qsequence',
+        'offset' => scalar(@$newtask_list),
+      );
+      push(@$newtask_list, @{$newtask_results->{items}});
+    } while (@{$newtask_results->{items}});
+    foreach my $arvados_task (@$newtask_list) {
+      my $jobstep = {
+        'level' => $arvados_task->{'sequence'},
+        'failures' => 0,
+        'arvados_task' => $arvados_task
+      };
+      push @jobstep, $jobstep;
+      push @jobstep_todo, $#jobstep;
+    }
   }
 
   $progress_is_dirty = 1;
index d5d2eddf7d3b382353dab2b10e08e505f4e3d2b3..89328ded046858accf70f179e6af9ae00f9e6fd4 100644 (file)
@@ -4,7 +4,6 @@ class JobTask < ArvadosModel
   include CommonApiTemplate
   serialize :parameters, Hash
   after_update :delete_created_job_tasks_if_failed
-  after_update :assign_created_job_tasks_qsequence_if_succeeded
 
   api_accessible :user, extend: :common do |t|
     t.add :job_uuid
@@ -24,13 +23,4 @@ class JobTask < ArvadosModel
       JobTask.delete_all ['created_by_job_task_uuid = ?', self.uuid]
     end
   end
-
-  def assign_created_job_tasks_qsequence_if_succeeded
-    if self.success == false and self.success != self.success_was
-      # xxx qsequence should be sequential as advertised; for now at
-      # least it's non-decreasing.
-      JobTask.update_all(['qsequence = ?', (Time.now.to_f*10000000).to_i],
-                         ['created_by_job_task_uuid = ?', self.uuid])
-    end
-  end
 end