[ https://issues.apache.org/jira/browse/HDFS-16764?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17641934#comment-17641934 ]
ASF GitHub Bot commented on HDFS-16764: --------------------------------------- ZanderXu commented on code in PR #4872: URL: https://github.com/apache/hadoop/pull/4872#discussion_r1037138461 ########## hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java: ########## @@ -3095,12 +3095,12 @@ LocatedBlock getAdditionalDatanode(String src, long fileId, final byte storagePolicyID; final List<DatanodeStorageInfo> chosen; final BlockType blockType; - checkOperation(OperationCategory.READ); + checkOperation(OperationCategory.WRITE); final FSPermissionChecker pc = getPermissionChecker(); FSPermissionChecker.setOperationType(null); readLock(); try { - checkOperation(OperationCategory.READ); + checkOperation(OperationCategory.WRITE); Review Comment: Sir, sorry for the late update. Please help me review it again, thanks. > ObserverNamenode handles addBlock rpc and throws a FileNotFoundException > ------------------------------------------------------------------------- > > Key: HDFS-16764 > URL: https://issues.apache.org/jira/browse/HDFS-16764 > Project: Hadoop HDFS > Issue Type: Bug > Reporter: ZanderXu > Assignee: ZanderXu > Priority: Critical > Labels: pull-request-available > > ObserverNameNode currently can handle the addBlockLocation RPC, but it may > throw a FileNotFoundException when it contains stale txid. > * AddBlock is not a coordinated method, so Observer will not check the > statId. > * AddBlock does the validation with checkOperation(OperationCategory.READ) > So the observer can handle the addBlock rpc. If this observer cannot replay > the edit of create file, it will throw a FileNotFoundException during doing > validation. > The related code as follows: > {code:java} > checkOperation(OperationCategory.READ); > final FSPermissionChecker pc = getPermissionChecker(); > FSPermissionChecker.setOperationType(operationName); > readLock(); > try { > checkOperation(OperationCategory.READ); > r = FSDirWriteFileOp.validateAddBlock(this, pc, src, fileId, clientName, > previous, onRetryBlock); > } finally { > readUnlock(operationName); > } {code} -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org