You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Chris Nauroth (JIRA)" <ji...@apache.org> on 2016/06/18 06:32:05 UTC

[jira] [Commented] (HBASE-16064) delete backup command shows HDFS permission error when deleting the intended backup

    [ 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)