[ https://issues.apache.org/jira/browse/GOBBLIN-1071?focusedWorklogId=399435&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-399435 ]
ASF GitHub Bot logged work on GOBBLIN-1071: ------------------------------------------- Author: ASF GitHub Bot Created on: 07/Mar/20 00:06 Start Date: 07/Mar/20 00:06 Worklog Time Spent: 10m Work Description: autumnust commented on pull request #2909: [GOBBLIN-1071] Retry task initialization URL: https://github.com/apache/incubator-gobblin/pull/2909#discussion_r389198832 ########## File path: gobblin-cluster/src/main/java/org/apache/gobblin/cluster/GobblinHelixTask.java ########## @@ -97,28 +105,35 @@ public GobblinHelixTask(TaskRunnerSuiteBase.Builder builder, builder.getAppWorkPath(), this.jobId); - Config dynamicConfig = builder.getDynamicConfig() - .withValue(GobblinClusterConfigurationKeys.TASK_RUNNER_HOST_NAME_KEY, ConfigValueFactory.fromAnyRef(builder.getHostName())) - .withValue(GobblinClusterConfigurationKeys.CONTAINER_ID_KEY, ConfigValueFactory.fromAnyRef(builder.getContainerId())) - .withValue(GobblinClusterConfigurationKeys.HELIX_INSTANCE_NAME_KEY, ConfigValueFactory.fromAnyRef(builder.getInstanceName())) - .withValue(GobblinClusterConfigurationKeys.HELIX_JOB_ID_KEY, ConfigValueFactory.fromAnyRef(this.helixJobId)) - .withValue(GobblinClusterConfigurationKeys.HELIX_TASK_ID_KEY, ConfigValueFactory.fromAnyRef(this.helixTaskId)); - Integer partitionNum = getPartitionForHelixTask(taskDriver); - if (partitionNum == null) { throw new IllegalStateException(String.format("Task %s, job %s on instance %s has no partition assigned", this.helixTaskId, builder.getInstanceName(), this.helixJobId)); } - dynamicConfig = dynamicConfig.withValue(GobblinClusterConfigurationKeys.HELIX_PARTITION_ID_KEY, ConfigValueFactory.fromAnyRef(partitionNum)); - this.task = new SingleTask(this.jobId, - this.workUnitFilePath, - jobStateFilePath, - builder.getFs(), - taskAttemptBuilder, - stateStores, - dynamicConfig); + final Config taskLevelConfig = builder.getConfig() + .withValue(GobblinClusterConfigurationKeys.TASK_RUNNER_HOST_NAME_KEY, ConfigValueFactory.fromAnyRef(builder.getHostName())) + .withValue(GobblinClusterConfigurationKeys.CONTAINER_ID_KEY, ConfigValueFactory.fromAnyRef(builder.getContainerId())) + .withValue(GobblinClusterConfigurationKeys.HELIX_INSTANCE_NAME_KEY, ConfigValueFactory.fromAnyRef(builder.getInstanceName())) + .withValue(GobblinClusterConfigurationKeys.HELIX_JOB_ID_KEY, ConfigValueFactory.fromAnyRef(this.helixJobId)) + .withValue(GobblinClusterConfigurationKeys.HELIX_TASK_ID_KEY, ConfigValueFactory.fromAnyRef(this.helixTaskId)) + .withValue(GobblinClusterConfigurationKeys.HELIX_PARTITION_ID_KEY, ConfigValueFactory.fromAnyRef(partitionNum)); + + Retryer<SingleTask> retryer = RetryerFactory.newInstance(taskLevelConfig); Review comment: I added some other components into SingleTask's constructor including `getJobState` and `getWorkunits`. I actually have no strong opinion on whether we should do retry here, but since `getJobState` is still an "external" call ie keep `getWorkunits` called lazily, I think it is still good to have ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking ------------------- Worklog Id: (was: 399435) Time Spent: 1h (was: 50m) > Retry Task Initialization > ------------------------- > > Key: GOBBLIN-1071 > URL: https://issues.apache.org/jira/browse/GOBBLIN-1071 > Project: Apache Gobblin > Issue Type: Improvement > Reporter: Lei Sun > Priority: Major > Time Spent: 1h > Remaining Estimate: 0h > -- This message was sent by Atlassian Jira (v8.3.4#803005)