You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@helix.apache.org by jx...@apache.org on 2018/07/25 00:48:49 UTC

helix git commit: [HELIX-746] Fix removeJob so its behavior is more consistent with removeWorkflow

Repository: helix
Updated Branches:
  refs/heads/master 0af6e8c19 -> ae23842d2


[HELIX-746] Fix removeJob so its behavior is more consistent with removeWorkflow

Change the behavior of removeJob() so that it's more consistent with removeWorkflow(). This RB addresses the scenario: suppose config deletion failed (so config still exists) and context deletion succeeded. Then the Controller has no way of knowing whether this job has ever been scheduled or it was meant to be deleted (although failed due to partial deletion). Returning as soon as config deletion fails can prevent this scenario.

Changelist:
1. Make removeJob() return early as soon as a ZNode write failure is detected


Project: http://git-wip-us.apache.org/repos/asf/helix/repo
Commit: http://git-wip-us.apache.org/repos/asf/helix/commit/ae23842d
Tree: http://git-wip-us.apache.org/repos/asf/helix/tree/ae23842d
Diff: http://git-wip-us.apache.org/repos/asf/helix/diff/ae23842d

Branch: refs/heads/master
Commit: ae23842d24409e26c67f5c99113762bd0eb714b0
Parents: 0af6e8c
Author: Hunter Lee <na...@gmail.com>
Authored: Tue Jul 24 14:11:50 2018 -0700
Committer: Hunter Lee <na...@gmail.com>
Committed: Tue Jul 24 17:48:32 2018 -0700

----------------------------------------------------------------------
 .../java/org/apache/helix/task/TaskUtil.java     | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/helix/blob/ae23842d/helix-core/src/main/java/org/apache/helix/task/TaskUtil.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/task/TaskUtil.java b/helix-core/src/main/java/org/apache/helix/task/TaskUtil.java
index 9ca0062..496b351 100644
--- a/helix-core/src/main/java/org/apache/helix/task/TaskUtil.java
+++ b/helix-core/src/main/java/org/apache/helix/task/TaskUtil.java
@@ -662,26 +662,29 @@ public class TaskUtil {
     return expiredJobs;
   }
 
-  /* remove IS/EV, config and context of a job */
-  // Jobname is here should be NamespacedJobName.
+  /**
+   * Remove Job Config, IS/EV, and Context in order. Job name here must be a namespaced job name.
+   * @param accessor
+   * @param propertyStore
+   * @param job namespaced job name
+   * @return
+   */
   protected static boolean removeJob(HelixDataAccessor accessor, HelixPropertyStore propertyStore,
       String job) {
-    boolean success = true;
     if (!removeJobConfig(accessor, job)) {
       LOG.warn(String.format("Error occurred while trying to remove job config for %s.", job));
-      success = false;
+      return false;
     }
     if (!cleanupJobIdealStateExtView(accessor, job)) {
       LOG.warn(String.format(
           "Error occurred while trying to remove job idealstate/externalview for %s.", job));
-      success = false;
+      return false;
     }
     if (!removeJobContext(propertyStore, job)) {
       LOG.warn(String.format("Error occurred while trying to remove job context for %s.", job));
-      success = false;
+      return false;
     }
-
-    return success;
+    return true;
   }
 
   /** Remove the job name from the DAG from the queue configuration */