     (constantly (-> node :config first))
     (fn [& args]
       (let [job (node-job node conf jname)]
-        (try
-          (returning true
-            (log/info "Launching job" jname)
-            (when-not (.waitForCompletion job false)
-              (throw (ex-info (str "Job " jname " failed.")
-                              {:jname jname, :job job, :node node})))
-            (log/info "Job" jname "completed successfully"))
-          (catch Throwable t
-            (ignore-errors (.killJob job))
-            (throw t)))))))
+        (returning true
+          (when-not (run-job job)
+            (throw (ex-info (str "Job " jname " failed.")
+                            {:jname jname, :job job, :node node}))))))))
 
 (defn ^:private node-id
   "Application-unique node-identifier of node `node`."

    (cstep/apply! (cstep/base jname))
    (cstep/apply! (:config node))))

(defn node-fn
  "Return a function for executing the job defined by the job node `node`, using
base configuration `conf` and job name `jname`."

             (cond
              (nil? e') e
              (not (instance? ExecutionException e')) e'
              :else (recur e'))))))
      (catch Exception e
        (ignore-errors (future-cancel outputs))
        (throw e)))))

(defn ^:private stage
  "The job stage of job node `node`."
