You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2022/09/07 17:52:00 UTC

[jira] [Commented] (HADOOP-18444) Add Support for localized trash for ViewFileSystem in Trash.moveToAppropriateTrash

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

ASF GitHub Bot commented on HADOOP-18444:
-----------------------------------------

xinglin opened a new pull request, #4869:
URL: https://github.com/apache/hadoop/pull/4869

   <!--
     Thanks for sending a pull request!
       1. If this is your first time, please read our contributor guidelines: https://cwiki.apache.org/confluence/display/HADOOP/How+To+Contribute
       2. Make sure your PR title starts with JIRA issue id, e.g., 'HADOOP-17799. Your PR title ...'.
   -->
   
   ### Description of PR
   Trash.moveToAppropriateTrash is used by hadoop cli -rm and hive, to move files to trash. However, its current implementation does not support localized trash policy we added to ViewFileSystem in [HADOOP-18144](https://issues.apache.org/jira/browse/HADOOP-18144).
   
   The reason is in moveToAppropriateTrash, it first resolves a path and then uses the resolvedFs, to initialize the trash. As a result, it uses getTrashRoot() implementation from targetFs, not ViewFileSystem. The new localized trash policy we implemented in ViewFileSystem is not used.
   
   With this patch, we check whether the FileSystem object is a ViewFileSystem object and whether the localized trash policy flag is set. If both conditions are true, we initialize the Trash object with the ViewFileSystem FS object and call moveToTrash() with the logical path directly. 
   
   ### How was this patch tested?
   
   Passed a new test added to TestViewFsTrash
   
   `mvn test -Dtest="TestViewFsTrash"`
   
   
   




> Add Support for localized trash for ViewFileSystem in Trash.moveToAppropriateTrash
> ----------------------------------------------------------------------------------
>
>                 Key: HADOOP-18444
>                 URL: https://issues.apache.org/jira/browse/HADOOP-18444
>             Project: Hadoop Common
>          Issue Type: Bug
>            Reporter: Xing Lin
>            Assignee: Xing Lin
>            Priority: Major
>
> Trash.moveToAppropriateTrash is used by _hadoop cli -rm_ and hive, to move files to trash. However, its current implementation does not support localized trash policy we added to ViewFileSystem in HADOOP-18144.
> The reason is in moveToAppropriateTrash, it first resolves a path and then uses the resolvedFs, to initialize the trash. As a result, it uses getTrashRoot() implementation from targetFs, not ViewFileSystem. The new localized trash policy we implemented in ViewFileSystem is not invoked.
> With the new localized trash policy for ViewFileSystem, the trash root would be local to a mount point, thus, for ViewFileSystem with this flag turned on, there is no need to resolve the path in moveToAppropriateTrash. Rename in ViewFileSystem can resolve the logical paths correctly and be able to move a file to trash within a mount point. 
> Code section of current moveToAppropriateTrash implementation.
> {code:java}
> public static boolean moveToAppropriateTrash(FileSystem fs, Path p,
>     Configuration conf) throws IOException {
>   Path fullyResolvedPath = fs.resolvePath(p);
>   FileSystem fullyResolvedFs =
>       FileSystem.get(fullyResolvedPath.toUri(), conf);
>   ...
>   Trash trash = new Trash(fullyResolvedFs, conf);
>   return trash.moveToTrash(fullyResolvedPath);
> }{code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: common-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-issues-help@hadoop.apache.org