[ https://issues.apache.org/jira/browse/HIVE-10630?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14538638#comment-14538638 ]
Eugene Koifman commented on HIVE-10630: --------------------------------------- The rename operation ends up in {noformat} HiveAlterHandler.alterTable(RawStore msdb, Warehouse wh, String dbname, String name, Table newt, boolean cascade) {noformat} which performs the metadata part of the operation and in the finally block tires {noformat} if (srcFs.exists(srcPath) && !srcFs.rename(srcPath, destPath)) { throw new IOException("Renaming " + srcPath + " to " + destPath + " has failed"); } {noformat} FileSystem.rename() only returns the status but the namenode log has {noformat} 2015-05-11 13:00:45,352 INFO org.apache.hadoop.ipc.Server: IPC Server handler 2 on 9000, call org.apache.hadoop.hdfs.protocol.ClientProtocol.rename from 127.0.0.1:61916 Call#34\ Retry#0 java.io.IOException: /user/hive/warehouse/testdb256.db/abc can't be moved from an encryption zone. at org.apache.hadoop.hdfs.server.namenode.EncryptionZoneManager.checkMoveValidity(EncryptionZoneManager.java:256) at org.apache.hadoop.hdfs.server.namenode.FSDirRenameOp.unprotectedRenameTo(FSDirRenameOp.java:187) at org.apache.hadoop.hdfs.server.namenode.FSDirRenameOp.renameTo(FSDirRenameOp.java:474) at org.apache.hadoop.hdfs.server.namenode.FSDirRenameOp.renameToInt(FSDirRenameOp.java:73) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.renameTo(FSNamesystem.java:3665) at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.rename(NameNodeRpcServer.java:864) at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.rename(ClientNamenodeProtocolServerSideTranslatorPB.java:575) at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java) at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:616) at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:969) at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2049) at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2045) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:415) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657) at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2043) {noformat} Then the code in HiveAlterHandler.alterTable() attempts to undo the metadata operation which (due to a bug not related to TDE) fails and we get a bunch errors in hive.log like "Reverting metadata by HDFS operation failure failed During HDFS operation failed" that don't indicate the real issue and end with "rename" operation partially completed. > Renaming tables across encryption zones renames table even though the > operation throws error > -------------------------------------------------------------------------------------------- > > Key: HIVE-10630 > URL: https://issues.apache.org/jira/browse/HIVE-10630 > Project: Hive > Issue Type: Sub-task > Components: Security > Reporter: Deepesh Khandelwal > Assignee: Eugene Koifman > > Create a table with data in an encrypted zone 1 and then rename it to > encrypted zone 2. > {noformat} > hive> alter table encdb1.testtbl rename to encdb2.testtbl; > FAILED: Execution Error, return code 1 from > org.apache.hadoop.hive.ql.exec.DDLTask. Unable to alter table. Unable to > access old location > hdfs://node-1.example.com:8020/apps/hive/warehouse/encdb1.db/testtbl for > table encdb1.testtbl > {noformat} > Even though the command errors out the table is renamed. I think the right > behavior should be to not rename the table at all including the metadata. -- This message was sent by Atlassian JIRA (v6.3.4#6332)