[ 
https://issues.apache.org/jira/browse/GOBBLIN-2082?focusedWorklogId=922885&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-922885
 ]

ASF GitHub Bot logged work on GOBBLIN-2082:
-------------------------------------------

                Author: ASF GitHub Bot
            Created on: 10/Jun/24 22:21
            Start Date: 10/Jun/24 22:21
    Worklog Time Spent: 10m 
      Work Description: Will-Lo commented on code in PR #3966:
URL: https://github.com/apache/gobblin/pull/3966#discussion_r1633903207


##########
gobblin-data-management/src/main/java/org/apache/gobblin/util/commit/CreateAndSetDirectoryPermissionCommitStep.java:
##########
@@ -66,9 +68,13 @@ public void execute() throws IOException {
     for (Map.Entry<String, OwnerAndPermission> entry : 
pathAndPermissions.entrySet()) {
       Path path = new Path(entry.getKey());
       try {
-        log.info("Setting permission {} on path {}", 
entry.getValue().getFsPermission(), path);
-        fs.setPermission(path, entry.getValue().getFsPermission());
-        // TODO : we can also set owner and group here.
+        if (!fs.exists(path)) {
+          log.info("Creating path {} with permission {}", path, 
entry.getValue().getFsPermission());
+          fs.mkdirs(path, entry.getValue().getFsPermission());

Review Comment:
   It sets the owner and group when you add permissions right 
https://hadoop.apache.org/docs/r2.6.4/api/org/apache/hadoop/fs/permission/FsPermission.html





Issue Time Tracking
-------------------

    Worklog Id:     (was: 922885)
    Time Spent: 0.5h  (was: 20m)

> Manifest distcp creates extra folders when publishing files
> -----------------------------------------------------------
>
>                 Key: GOBBLIN-2082
>                 URL: https://issues.apache.org/jira/browse/GOBBLIN-2082
>             Project: Apache Gobblin
>          Issue Type: Bug
>          Components: gobblin-core
>            Reporter: William Lo
>            Assignee: Abhishek Tiwari
>            Priority: Major
>          Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> Manifest distcp often creates large file directory structures when copying 
> files from one location to another. There is a risk when concurrently 
> publishing files from a directory structure where the folders may not exist 
> before renaming files, described by the javadoc:
> {code:java}
> * Renames a src {@link Path} on fs {@link FileSystem} to a dst {@link Path}. 
> If fs is a {@link LocalFileSystem} and
> * src is a directory then {@link File#renameTo} is called directly to avoid a 
> directory rename race condition where
> * {@link org.apache.hadoop.fs.RawLocalFileSystem#rename} copies the 
> conflicting src directory into dst resulting in
> * an extra nested level, such as /root/a/b/c/e/e where e is repeated. {code}
> Given that on HDFS it does not use a RawLocalFileSystem in many 
> implementations, we want to pre-create the folders copied sequentially to 
> safely create the folders before publishing the files.



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

Reply via email to