[ https://issues.apache.org/jira/browse/HADOOP-9261?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Steve Loughran updated HADOOP-9261: ----------------------------------- Attachment: HADOOP-9261-2.patch There's enough changes here that we do need rigorous review. The previous patch saw copy-onto-self and bailed out early -but these checks were made before the destination path was fully generated -because if you specify a destination directory, the source goes in under there. Which means you could set the dest dir to be the parent of the source file, so generating a rename(src, src) after the equality check had taken place -a rename that would return false. Now the value is checked once up front -for fast exit without talking to S3, and then just before the operation actually takes place. I also added lots of inline comments to make it clearer what is going on. > S3n filesystem can move a directory under itself -and so lose data > ------------------------------------------------------------------ > > Key: HADOOP-9261 > URL: https://issues.apache.org/jira/browse/HADOOP-9261 > Project: Hadoop Common > Issue Type: Bug > Components: fs/s3 > Affects Versions: 1.1.1, 2.0.2-alpha > Environment: Testing against S3 bucket stored on US West (Read after > Write consistency; eventual for read-after-delete or write-after-write) > Reporter: Steve Loughran > Assignee: Steve Loughran > Attachments: HADOOP-9261-2.patch, HADOOP-9261.patch > > > The S3N filesystem {{rename()}} doesn't make sure that the destination > directory is not a child or other descendant of the source directory. The > files are copied to the new destination, then the source directory is > recursively deleted, so losing data. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira