[ 
https://issues.apache.org/jira/browse/HBASE-16064?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15337602#comment-15337602
 ] 

Chris Nauroth commented on HBASE-16064:
---------------------------------------

[~tedyu], thank you for the patch.  This looks right to me.  Deleting 
/user/hbase requires write access on /user.  In typical deployments, /user will 
be owned by the HDFS super-user, and other users won't have write access to it, 
so the delete will fail on permission checks.  Even if permissions are relaxed 
so that it does succeed, I'm pretty sure the intent was not for this tool to 
delete /user/hbase.  :-)

Question: Is there anything more needed in HBase tests to verify the change?

> delete backup command shows HDFS permission error when deleting the intended 
> backup
> -----------------------------------------------------------------------------------
>
>                 Key: HBASE-16064
>                 URL: https://issues.apache.org/jira/browse/HBASE-16064
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 2.0.0
>            Reporter: Romil Choksi
>            Assignee: Ted Yu
>              Labels: backup
>             Fix For: 2.0.0
>
>         Attachments: 16064.v1.txt
>
>
> HBase delete backup command shows error, after successfully deleting the 
> intended backup
> {code}
> hbase@cluster-name:~$ hbase backup delete backup_1465950334243
> 2016-06-15 00:36:18,883 INFO  [main] util.BackupClientUtil: No data has been 
> found in 
> hdfs://cluster-name:8020/user/hbase/backup_1465950334243/default/table_ttx7w0jgw8.
> 2016-06-15 00:36:18,894 ERROR [main] util.BackupClientUtil: Cleaning up 
> backup data of backup_1465950334243 at hdfs://cluster-name:8020/user/hbase 
> failed due to Permission denied: user=hbase, access=WRITE, 
> inode="/user/hbase":hdfs:hdfs:drwxr-xr-x
>       at 
> org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:319)
>       at 
> org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:292)
>       at 
> org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:216)
>       at 
> org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:190)
>       at 
> org.apache.hadoop.hdfs.server.namenode.FSDirectory.checkPermission(FSDirectory.java:1827)
>       at 
> org.apache.hadoop.hdfs.server.namenode.FSDirDeleteOp.delete(FSDirDeleteOp.java:92)
>       at 
> org.apache.hadoop.hdfs.server.namenode.FSNamesystem.delete(FSNamesystem.java:3822)
>       at 
> org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.delete(NameNodeRpcServer.java:1071)
>       at 
> org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.delete(ClientNamenodeProtocolServerSideTranslatorPB.java:619)
>       at 
> org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)
>       at 
> org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:640)
>       at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:969)
>       at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2313)
>       at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2309)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at javax.security.auth.Subject.doAs(Subject.java:422)
>       at 
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1724)
>       at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2307)
> .
> {code}
> Backup has been successfully deleted but the backup root dir under 
> /user/hbase dir still persists
> {code}
> hbase@cluster-name:~$ hdfs dfs -ls /user/hbase
> Found 6 items
> drwx------   - hbase hbase          0 2016-06-15 00:26 /user/hbase/.staging
> drwxr-xr-x   - hbase hbase          0 2016-06-15 00:36 
> /user/hbase/backup_1465950334243
> drwxr-xr-x   - hbase hbase          0 2016-06-15 00:26 
> /user/hbase/hbase-staging
> {code}
> /user/hbase/backup_1465950334243 is now empty though



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to