You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@gobblin.apache.org by hu...@apache.org on 2018/08/01 20:21:41 UTC
incubator-gobblin git commit: [GOBBLIN-550] Fix the alwaysDelete
issue when runtime exception is thrown
Repository: incubator-gobblin
Updated Branches:
refs/heads/master 85202fab2 -> dcdf7cacd
[GOBBLIN-550] Fix the alwaysDelete issue when runtime exception is thrown
Closes #2411 from yukuai518/chen
Project: http://git-wip-us.apache.org/repos/asf/incubator-gobblin/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-gobblin/commit/dcdf7cac
Tree: http://git-wip-us.apache.org/repos/asf/incubator-gobblin/tree/dcdf7cac
Diff: http://git-wip-us.apache.org/repos/asf/incubator-gobblin/diff/dcdf7cac
Branch: refs/heads/master
Commit: dcdf7cacd678854951bc007656bc6bed5c29dc88
Parents: 85202fa
Author: Kuai Yu <ku...@linkedin.com>
Authored: Wed Aug 1 13:21:36 2018 -0700
Committer: Hung Tran <hu...@linkedin.com>
Committed: Wed Aug 1 13:21:36 2018 -0700
----------------------------------------------------------------------
.../cluster/GobblinHelixJobScheduler.java | 25 +++++++++++++-------
1 file changed, 16 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-gobblin/blob/dcdf7cac/gobblin-cluster/src/main/java/org/apache/gobblin/cluster/GobblinHelixJobScheduler.java
----------------------------------------------------------------------
diff --git a/gobblin-cluster/src/main/java/org/apache/gobblin/cluster/GobblinHelixJobScheduler.java b/gobblin-cluster/src/main/java/org/apache/gobblin/cluster/GobblinHelixJobScheduler.java
index 3f53c23..e29fe61 100644
--- a/gobblin-cluster/src/main/java/org/apache/gobblin/cluster/GobblinHelixJobScheduler.java
+++ b/gobblin-cluster/src/main/java/org/apache/gobblin/cluster/GobblinHelixJobScheduler.java
@@ -402,8 +402,20 @@ public class GobblinHelixJobScheduler extends JobScheduler implements StandardMe
this.creationTimeInMillis = System.currentTimeMillis();
}
+ private void deleteJobSpec(boolean alwaysDelete, boolean isDeleted) {
+ if (alwaysDelete && !isDeleted) {
+ try {
+ GobblinHelixJobScheduler.this.jobCatalog.remove(new URI(jobUri));
+ } catch (URISyntaxException e) {
+ LOGGER.error("Always delete " + jobUri + ". Failed to remove job with bad uri " + jobUri, e);
+ }
+ }
+ }
+
@Override
public void run() {
+ boolean alwaysDelete = PropertiesUtils
+ .getPropAsBoolean(this.jobConfig, GobblinClusterConfigurationKeys.JOB_ALWAYS_DELETE, "false");
boolean isDeleted = false;
try {
((MetricsTrackingListener)jobListener).metrics.updateTimeBeforeJobLaunching(this.jobConfig);
@@ -420,16 +432,11 @@ public class GobblinHelixJobScheduler extends JobScheduler implements StandardMe
}
}
} catch (JobException je) {
- boolean alwaysDelete = PropertiesUtils
- .getPropAsBoolean(this.jobConfig, GobblinClusterConfigurationKeys.JOB_ALWAYS_DELETE, "false");
- if (alwaysDelete && !isDeleted) {
- try {
- GobblinHelixJobScheduler.this.jobCatalog.remove(new URI(jobUri));
- } catch (URISyntaxException e) {
- LOGGER.error("Always delete " + jobUri + ". Failed to remove job with bad uri " + jobUri, e);
- }
- }
+ deleteJobSpec(alwaysDelete, isDeleted);
LOGGER.error("Failed to run job " + this.jobConfig.getProperty(ConfigurationKeys.JOB_NAME_KEY), je);
+ } catch (Exception e) {
+ deleteJobSpec(alwaysDelete, isDeleted);
+ throw e;
}
}
}