[ 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