[ https://issues.apache.org/jira/browse/HIVE-24852?focusedWorklogId=597802&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-597802 ]
ASF GitHub Bot logged work on HIVE-24852: ----------------------------------------- Author: ASF GitHub Bot Created on: 17/May/21 17:29 Start Date: 17/May/21 17:29 Worklog Time Spent: 10m Work Description: ayushtkn commented on a change in pull request #2043: URL: https://github.com/apache/hive/pull/2043#discussion_r633722120 ########## File path: ql/src/java/org/apache/hadoop/hive/ql/exec/repl/util/ReplUtils.java ########## @@ -342,7 +343,12 @@ public static PathFilter getBootstrapDirectoryFilter(final FileSystem fs) { public static int handleException(boolean isReplication, Throwable e, String nonRecoverablePath, ReplicationMetricCollector metricCollector, String stageName, HiveConf conf){ - int errorCode = ErrorMsg.getErrorMsg(e.getMessage()).getErrorCode(); + int errorCode; + if (isReplication && e instanceof SnapshotException) { + errorCode = ErrorMsg.getErrorMsg("SNAPSHOT_ERROR").getErrorCode(); Review comment: Yes, It will be preserved. The entire stack trace is written here. https://github.com/apache/hive/blob/master/ql/src/java/org/apache/hadoop/hive/ql/exec/repl/util/ReplUtils.java#L353 and the exception is already set above, example: https://github.com/apache/hive/blob/master/ql/src/java/org/apache/hadoop/hive/ql/exec/repl/ReplLoadTask.java#L141 Every code that calls this sets the exception before and calls this for error code to check if it is recoverable or non-recoverable. This logic is just to get the error code, which is used to decide whether the error is recoverable or non-recoverable. And the trace is also propagated back, example from `testFailureScenarios()`: ``` Caused by: org.apache.hadoop.hdfs.protocol.SnapshotException: Nested snapshottable directories not allowed: path=/testFailureScenariossource1/tablesource, the ancestor /testFailureScenariossource1 is already a snapshottable directory. at org.apache.hadoop.hdfs.server.namenode.snapshot.SnapshotManager.checkNestedSnapshottable(SnapshotManager.java:174) at org.apache.hadoop.hdfs.server.namenode.snapshot.SnapshotManager.setSnapshottable(SnapshotManager.java:189) at org.apache.hadoop.hdfs.server.namenode.FSDirSnapshotOp.allowSnapshot(FSDirSnapshotOp.java:62) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.allowSnapshot(FSNamesystem.java:6366) at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.allowSnapshot(NameNodeRpcServer.java:1842) at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.allowSnapshot(ClientNamenodeProtocolServerSideTranslatorPB.java:1211) at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java) at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:523) ``` -- 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: 597802) Time Spent: 5h 40m (was: 5.5h) > Add support for Snapshots during external table replication > ----------------------------------------------------------- > > Key: HIVE-24852 > URL: https://issues.apache.org/jira/browse/HIVE-24852 > Project: Hive > Issue Type: Improvement > Reporter: Ayush Saxena > Assignee: Ayush Saxena > Priority: Critical > Labels: pull-request-available > Attachments: Design Doc HDFS Snapshots for External Table > Replication-01.pdf > > Time Spent: 5h 40m > Remaining Estimate: 0h > > Add support for use of snapshot diff for external table replication. -- This message was sent by Atlassian Jira (v8.3.4#803005)