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

Wei-Chiu Chuang commented on HDFS-12485:
----------------------------------------

Hi [~shahrs87] thanks for the review!

Existing tests in TestTrashWithSecureEncryptionZones already cover this case. 
The problem is that the test's initialization code overrides the System 
properties, so the tests did not catch it. My patch removes that override.

FYI HDFS-12484 is also a bug related to encryption zone trash directories. 
Would you please also take a look?

> expunge may not remove trash from encryption zone
> -------------------------------------------------
>
>                 Key: HDFS-12485
>                 URL: https://issues.apache.org/jira/browse/HDFS-12485
>             Project: Hadoop HDFS
>          Issue Type: Bug
>    Affects Versions: 2.8.0, 3.0.0-alpha1
>            Reporter: Wei-Chiu Chuang
>            Assignee: Wei-Chiu Chuang
>         Attachments: HDFS-12485.001.patch
>
>
> This is related to HDFS-12484, but turns out that even if I have super user 
> permission, -expunge may not remove trash either.
> If I log into Linux as root, and then login as the superuser [email protected]
> {noformat}
> [root@nightly511-1 ~]# hdfs dfs -rm /scale/b
> 17/09/18 15:21:32 INFO fs.TrashPolicyDefault: Moved: 'hdfs://ns1/scale/b' to 
> trash at: hdfs://ns1/scale/.Trash/hdfs/Current/scale/b
> [root@nightly511-1 ~]# hdfs dfs -expunge
> 17/09/18 15:21:59 INFO fs.TrashPolicyDefault: 
> TrashPolicyDefault#deleteCheckpoint for trashRoot: hdfs://ns1/user/hdfs/.Trash
> 17/09/18 15:21:59 INFO fs.TrashPolicyDefault: 
> TrashPolicyDefault#deleteCheckpoint for trashRoot: hdfs://ns1/user/hdfs/.Trash
> 17/09/18 15:21:59 INFO fs.TrashPolicyDefault: Deleted trash checkpoint: 
> /user/hdfs/.Trash/170918143916
> 17/09/18 15:21:59 INFO fs.TrashPolicyDefault: 
> TrashPolicyDefault#createCheckpoint for trashRoot: hdfs://ns1/user/hdfs/.Trash
> [root@nightly511-1 ~]# hdfs dfs -ls 
> hdfs://ns1/scale/.Trash/hdfs/Current/scale/b
> -rw-r--r--   3 hdfs systest          0 2017-09-18 15:21 
> hdfs://ns1/scale/.Trash/hdfs/Current/scale/b
> {noformat}
> expunge does not remove trash under /scale, because it does not know I am 
> 'hdfs' user.
> {code:title=DistributedFileSystem#getTrashRoots}
> Path ezTrashRoot = new Path(it.next().getPath(),
>             FileSystem.TRASH_PREFIX);
>         if (!exists(ezTrashRoot)) {
>           continue;
>         }
>         if (allUsers) {
>           for (FileStatus candidate : listStatus(ezTrashRoot)) {
>             if (exists(candidate.getPath())) {
>               ret.add(candidate);
>             }
>           }
>         } else {
>           Path userTrash = new Path(ezTrashRoot, System.getProperty(
>               "user.name")); --> bug
>           try {
>             ret.add(getFileStatus(userTrash));
>           } catch (FileNotFoundException ignored) {
>           }
>         }
> {code}
> It should use UGI for user name, rather than system login user name.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to