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

Uma Maheswara Rao G commented on HDFS-11695:
--------------------------------------------

Well spotted [~surendrasingh]
I want you to fix few more related issues here if you can:
# .
{code}
      XAttr satisfyXAttr = unprotectedSatisfyStoragePolicy(iip, bm, fsd);
      xAttrs.add(satisfyXAttr);
    } finally {
      fsd.writeUnlock();
    }
    fsd.getEditLog().logSetXAttrs(src, xAttrs, logRetryCache);
{code}
Here I see we are logging outside fed lock. We should do inside fsd lock.
# . Also there is no logSync. We should have a logSync here. LogSync can be 
outside fsdLock but inside fsnamesystem lock.
# . Move the code related to SatisfyStoragePolicyXattrs to 
FSDirSatisfyStoragePolicyOp. For your reference, look at FSDirErasureCodingOp.
# . I think we should have one protected removeSPSXattr API which should do log 
sync as well. When replaying from editlogs/fsimage, may be its ok to use 
unprotected. But when calling from SPS#postBlockStorageMovementCleanup, we 
should do logSync as well right.
# . Also as you said, we should not throw exception out may be valid case as I 
explained one scenario in my previous comment. DO you want to handle that as 
well? To do that, we should just make API as idempotent instead of AtMostOnce.
# . Please move the test case to TestPersistentStoragePolicySatisfier

Feel free to ask me if you need any help.


> [SPS]: Namenode failed to start while loading SPS xAttrs from the edits log.
> ----------------------------------------------------------------------------
>
>                 Key: HDFS-11695
>                 URL: https://issues.apache.org/jira/browse/HDFS-11695
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: namenode
>    Affects Versions: HDFS-10285
>            Reporter: Surendra Singh Lilhore
>            Assignee: Surendra Singh Lilhore
>            Priority: Blocker
>         Attachments: fsimage.xml, HDFS-11695-HDFS-10285.001.patch
>
>
> {noformat}
> 2017-04-23 13:27:51,971 ERROR 
> org.apache.hadoop.hdfs.server.namenode.NameNode: Failed to start namenode.
> java.io.IOException: Cannot request to call satisfy storage policy on path 
> /ssl, as this file/dir was already called for satisfying storage policy.
>         at 
> org.apache.hadoop.hdfs.server.namenode.FSDirAttrOp.unprotectedSatisfyStoragePolicy(FSDirAttrOp.java:511)
>         at 
> org.apache.hadoop.hdfs.server.namenode.FSDirXAttrOp.unprotectedSetXAttrs(FSDirXAttrOp.java:284)
>         at 
> org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader.applyEditLogOp(FSEditLogLoader.java:918)
>         at 
> org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader.loadEditRecords(FSEditLogLoader.java:241)
>         at 
> org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader.loadFSEdits(FSEditLogLoader.java:150)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
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