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

ASF GitHub Bot logged work on HDFS-15578:
-----------------------------------------

                Author: ASF GitHub Bot
            Created on: 15/Sep/20 15:12
            Start Date: 15/Sep/20 15:12
    Worklog Time Spent: 10m 
      Work Description: umamaheswararao commented on pull request #2305:
URL: https://github.com/apache/hadoop/pull/2305#issuecomment-692781129


   @ayushtkn Thanks a lot for the review!
   
   >Just want to confirm, In rename, do we need to avoid any scenario like 
HDFS-15444? Or that is guarded already.
   
   I actually considered that case, the first time is without last component. 
If that resolve result indicates it as InternalDir, then we are again resolving 
with including lastComponent ( means with children ).  In this case if it again 
indicates internalDir or lastDirAsLink, then we are throwing exception as we 
can not rename to any internal dir/link path.
   
   
    ```
      InodeTree.ResolveResult<FileSystem> resDst =
           fsState.resolve(getUriPath(dst), false);
   
       if (resDst.isInternalDir() && fsState.getRootFallbackLink() != null) {
         InodeTree.ResolveResult<FileSystem> resDstWithLastComp =
             fsState.resolve(getUriPath(dst), true);
         // resolveLastComponent with true is to check if the target already
         // exist in internalDir/InternalDirLink itself.
         if (resDstWithLastComp.isInternalDir() || resDstWithLastComp
             .isLastInternalDirLink()) {
           throw readOnlyMountTable("rename", dst);
   ```
   
   There is one condition without fallback, we may attempt to rename. Probably 
we need else, as we are combining if check with fsState.getRootFallbackLink() 
!= null as well. I will update patch. Thanks 


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


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

            Worklog Id:     (was: 484551)
    Remaining Estimate: 0h
            Time Spent: 10m

> Fix the rename issues with fallback fs enabled
> ----------------------------------------------
>
>                 Key: HDFS-15578
>                 URL: https://issues.apache.org/jira/browse/HDFS-15578
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: viewfs, viewfsOverloadScheme
>    Affects Versions: 3.4.0
>            Reporter: Uma Maheswara Rao G
>            Assignee: Uma Maheswara Rao G
>            Priority: Major
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> When we enable fallback, rename should success if the src.parent or 
> dst.parent on inernalDir.
> {noformat}
> org.apache.hadoop.security.AccessControlException: InternalDir of 
> ViewFileSystem is readonly, operation rename not permitted on path 
> /newFileOnRoot.org.apache.hadoop.security.AccessControlException: InternalDir 
> of ViewFileSystem is readonly, operation rename not permitted on path 
> /newFileOnRoot.
>  at 
> org.apache.hadoop.fs.viewfs.ViewFileSystem.readOnlyMountTable(ViewFileSystem.java:95)
>  at 
> org.apache.hadoop.fs.viewfs.ViewFileSystem.readOnlyMountTable(ViewFileSystem.java:101)
>  at 
> org.apache.hadoop.fs.viewfs.ViewFileSystem.rename(ViewFileSystem.java:683) at 
> org.apache.hadoop.hdfs.ViewDistributedFileSystem.rename(ViewDistributedFileSystem.java:533)
>  at 
> org.apache.hadoop.hdfs.TestViewDistributedFileSystemWithMountLinks.verifyRename(TestViewDistributedFileSystemWithMountLinks.java:114)
>  at 
> org.apache.hadoop.hdfs.TestViewDistributedFileSystemWithMountLinks.testRenameOnInternalDirWithFallback(TestViewDistributedFileSystemWithMountLinks.java:90)
>  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>  at java.lang.reflect.Method.invoke(Method.java:498) at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
>  at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
>  at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
>  at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
>  at 
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) 
> at 
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) 
> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
>  at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
>  at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at 
> org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at 
> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at 
> org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at 
> org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at 
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) 
> at 
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) 
> at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at 
> org.junit.runner.JUnitCore.run(JUnitCore.java:137) at 
> com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
>  at 
> com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
>  at 
> com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:230)
>  at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:58){noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org

Reply via email to