[ https://issues.apache.org/jira/browse/HIVE-25195?focusedWorklogId=606006&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-606006 ]
ASF GitHub Bot logged work on HIVE-25195: ----------------------------------------- Author: ASF GitHub Bot Created on: 03/Jun/21 15:36 Start Date: 03/Jun/21 15:36 Worklog Time Spent: 10m Work Description: pvary commented on a change in pull request #2347: URL: https://github.com/apache/hive/pull/2347#discussion_r644899593 ########## File path: iceberg/iceberg-handler/src/main/java/org/apache/iceberg/mr/hive/HiveIcebergMetaHook.java ########## @@ -459,35 +454,35 @@ public void rollbackInsertTable(org.apache.hadoop.hive.metastore.api.Table table throws MetaException { String tableName = TableIdentifier.of(table.getDbName(), table.getTableName()).toString(); JobContext jobContext = getJobContextForCommitOrAbort(tableName, overwrite); - OutputCommitter committer = new HiveIcebergOutputCommitter(); - try { - LOG.info("rollbackInsertTable: Aborting job for jobID: {} and table: {}", jobContext.getJobID(), tableName); - committer.abortJob(jobContext, JobStatus.State.FAILED); - } catch (IOException e) { - LOG.error("Error while trying to abort failed job. There might be uncleaned data files.", e); - // no throwing here because the original commitInsertTable exception should be propagated - } finally { - // avoid config pollution with prefixed/suffixed keys - cleanCommitConfig(tableName); + if (jobContext != null) { + OutputCommitter committer = new HiveIcebergOutputCommitter(); + try { + LOG.info("rollbackInsertTable: Aborting job for jobID: {} and table: {}", jobContext.getJobID(), tableName); + committer.abortJob(jobContext, JobStatus.State.FAILED); + } catch (IOException e) { + LOG.error("Error while trying to abort failed job. There might be uncleaned data files.", e); + // no throwing here because the original commitInsertTable exception should be propagated + } } } - private void cleanCommitConfig(String tableName) { - conf.unset(TezTask.HIVE_TEZ_COMMIT_JOB_ID_PREFIX + tableName); - conf.unset(TezTask.HIVE_TEZ_COMMIT_TASK_COUNT_PREFIX + tableName); - conf.unset(InputFormatConfig.SERIALIZED_TABLE_PREFIX + tableName); - conf.unset(InputFormatConfig.OUTPUT_TABLES); - } - private JobContext getJobContextForCommitOrAbort(String tableName, boolean overwrite) { Review comment: Maybe Optional? -- 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: 606006) Time Spent: 40m (was: 0.5h) > Store Iceberg write commit and ctas information in QueryState > -------------------------------------------------------------- > > Key: HIVE-25195 > URL: https://issues.apache.org/jira/browse/HIVE-25195 > Project: Hive > Issue Type: Improvement > Reporter: Marton Bod > Assignee: Marton Bod > Priority: Major > Labels: pull-request-available > Time Spent: 40m > Remaining Estimate: 0h > > We should replace the current method of passing Iceberg write commit-related > information (jobID, task num) and CTAS info via the session conf using > prefixed keys. We have a new way of doing that more cleanly, using the > QueryState object. This should make the code easier to maintain and guard > against accidental session conf pollution. -- This message was sent by Atlassian Jira (v8.3.4#803005)