[jira] [Commented] (HDFS-7567) Potential null dereference in FSEditLogLoader#applyEditLogOp()
[ https://issues.apache.org/jira/browse/HDFS-7567?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15424817#comment-15424817 ] Ted Yu commented on HDFS-7567: -- Thanks for the link, [~jojochuang] > Potential null dereference in FSEditLogLoader#applyEditLogOp() > -- > > Key: HDFS-7567 > URL: https://issues.apache.org/jira/browse/HDFS-7567 > Project: Hadoop HDFS > Issue Type: Bug >Reporter: Ted Yu >Assignee: Ted Yu >Priority: Minor > Attachments: hdfs-7567.patch > > > {code} > INodeFile oldFile = INodeFile.valueOf(iip.getLastINode(), path, true); > if (oldFile != null && addCloseOp.overwrite) { > ... > INodeFile newFile = oldFile; > ... > // Update the salient file attributes. > newFile.setAccessTime(addCloseOp.atime, Snapshot.CURRENT_STATE_ID); > newFile.setModificationTime(addCloseOp.mtime, > Snapshot.CURRENT_STATE_ID); > {code} > The last two lines are not protected by null check. -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-7567) Potential null dereference in FSEditLogLoader#applyEditLogOp()
[ https://issues.apache.org/jira/browse/HDFS-7567?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14262742#comment-14262742 ] Ted Yu commented on HDFS-7567: -- [~jingzhao]: What do you think ? Potential null dereference in FSEditLogLoader#applyEditLogOp() -- Key: HDFS-7567 URL: https://issues.apache.org/jira/browse/HDFS-7567 Project: Hadoop HDFS Issue Type: Bug Reporter: Ted Yu Assignee: Ted Yu Priority: Minor Attachments: hdfs-7567.patch {code} INodeFile oldFile = INodeFile.valueOf(iip.getLastINode(), path, true); if (oldFile != null addCloseOp.overwrite) { ... INodeFile newFile = oldFile; ... // Update the salient file attributes. newFile.setAccessTime(addCloseOp.atime, Snapshot.CURRENT_STATE_ID); newFile.setModificationTime(addCloseOp.mtime, Snapshot.CURRENT_STATE_ID); {code} The last two lines are not protected by null check. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HDFS-7567) Potential null dereference in FSEditLogLoader#applyEditLogOp()
[ https://issues.apache.org/jira/browse/HDFS-7567?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14257723#comment-14257723 ] Ted Yu commented on HDFS-7567: -- Let's look at first branch where oldFile is null, we have the following assignment: {code} newFile = fsDir.addFileForEditLog(inodeId, iip.getExistingINodes(), {code} However, addFileForEditLog() would return null if IOException is encountered: {code} } catch (IOException e) { if(NameNode.stateChangeLog.isDebugEnabled()) { NameNode.stateChangeLog.debug( DIR* FSDirectory.unprotectedAddFile: exception when add + existing.getPath() + to the file system, e); } } return null; {code} I think the potential of NPE still exists. Potential null dereference in FSEditLogLoader#applyEditLogOp() -- Key: HDFS-7567 URL: https://issues.apache.org/jira/browse/HDFS-7567 Project: Hadoop HDFS Issue Type: Bug Reporter: Ted Yu Priority: Minor {code} INodeFile oldFile = INodeFile.valueOf(iip.getLastINode(), path, true); if (oldFile != null addCloseOp.overwrite) { ... INodeFile newFile = oldFile; ... // Update the salient file attributes. newFile.setAccessTime(addCloseOp.atime, Snapshot.CURRENT_STATE_ID); newFile.setModificationTime(addCloseOp.mtime, Snapshot.CURRENT_STATE_ID); {code} The last two lines are not protected by null check. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HDFS-7567) Potential null dereference in FSEditLogLoader#applyEditLogOp()
[ https://issues.apache.org/jira/browse/HDFS-7567?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14257731#comment-14257731 ] Haohui Mai commented on HDFS-7567: -- I don't see {{addFileForEditLog}} can throw an {{IOException}} unless the editlog is corrupted. [~jingzhao], can you comment on this? Potential null dereference in FSEditLogLoader#applyEditLogOp() -- Key: HDFS-7567 URL: https://issues.apache.org/jira/browse/HDFS-7567 Project: Hadoop HDFS Issue Type: Bug Reporter: Ted Yu Priority: Minor {code} INodeFile oldFile = INodeFile.valueOf(iip.getLastINode(), path, true); if (oldFile != null addCloseOp.overwrite) { ... INodeFile newFile = oldFile; ... // Update the salient file attributes. newFile.setAccessTime(addCloseOp.atime, Snapshot.CURRENT_STATE_ID); newFile.setModificationTime(addCloseOp.mtime, Snapshot.CURRENT_STATE_ID); {code} The last two lines are not protected by null check. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HDFS-7567) Potential null dereference in FSEditLogLoader#applyEditLogOp()
[ https://issues.apache.org/jira/browse/HDFS-7567?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14257735#comment-14257735 ] Ted Yu commented on HDFS-7567: -- What if QuotaExceededException is thrown ? Potential null dereference in FSEditLogLoader#applyEditLogOp() -- Key: HDFS-7567 URL: https://issues.apache.org/jira/browse/HDFS-7567 Project: Hadoop HDFS Issue Type: Bug Reporter: Ted Yu Priority: Minor {code} INodeFile oldFile = INodeFile.valueOf(iip.getLastINode(), path, true); if (oldFile != null addCloseOp.overwrite) { ... INodeFile newFile = oldFile; ... // Update the salient file attributes. newFile.setAccessTime(addCloseOp.atime, Snapshot.CURRENT_STATE_ID); newFile.setModificationTime(addCloseOp.mtime, Snapshot.CURRENT_STATE_ID); {code} The last two lines are not protected by null check. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HDFS-7567) Potential null dereference in FSEditLogLoader#applyEditLogOp()
[ https://issues.apache.org/jira/browse/HDFS-7567?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14257753#comment-14257753 ] Jing Zhao commented on HDFS-7567: - Normally we will not hit any QuotaExceededException while replaying editlog since all the checks have been done when first time serving the request (i.e., no editlog was written unless the op succeeded at that time). If the newFile is null this usually means there is corruption in the editlog. But I agree instead of throwing NPE directly maybe we can add an extra check and throw an exception containing more information here. Potential null dereference in FSEditLogLoader#applyEditLogOp() -- Key: HDFS-7567 URL: https://issues.apache.org/jira/browse/HDFS-7567 Project: Hadoop HDFS Issue Type: Bug Reporter: Ted Yu Priority: Minor {code} INodeFile oldFile = INodeFile.valueOf(iip.getLastINode(), path, true); if (oldFile != null addCloseOp.overwrite) { ... INodeFile newFile = oldFile; ... // Update the salient file attributes. newFile.setAccessTime(addCloseOp.atime, Snapshot.CURRENT_STATE_ID); newFile.setModificationTime(addCloseOp.mtime, Snapshot.CURRENT_STATE_ID); {code} The last two lines are not protected by null check. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HDFS-7567) Potential null dereference in FSEditLogLoader#applyEditLogOp()
[ https://issues.apache.org/jira/browse/HDFS-7567?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14257945#comment-14257945 ] Hadoop QA commented on HDFS-7567: - {color:red}-1 overall{color}. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12688959/hdfs-7567.patch against trunk revision 66cfe1d. {color:green}+1 @author{color}. The patch does not contain any @author tags. {color:red}-1 tests included{color}. The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch. {color:green}+1 javac{color}. The applied patch does not increase the total number of javac compiler warnings. {color:green}+1 javadoc{color}. There were no new javadoc warning messages. {color:green}+1 eclipse:eclipse{color}. The patch built with eclipse:eclipse. {color:red}-1 findbugs{color}. The patch appears to introduce 1 new Findbugs (version 2.0.3) warnings. {color:green}+1 release audit{color}. The applied patch does not increase the total number of release audit warnings. {color:red}-1 core tests{color}. The patch failed these unit tests in hadoop-hdfs-project/hadoop-hdfs: org.apache.hadoop.hdfs.util.TestByteArrayManager Test results: https://builds.apache.org/job/PreCommit-HDFS-Build/9120//testReport/ Findbugs warnings: https://builds.apache.org/job/PreCommit-HDFS-Build/9120//artifact/patchprocess/newPatchFindbugsWarningshadoop-hdfs.html Console output: https://builds.apache.org/job/PreCommit-HDFS-Build/9120//console This message is automatically generated. Potential null dereference in FSEditLogLoader#applyEditLogOp() -- Key: HDFS-7567 URL: https://issues.apache.org/jira/browse/HDFS-7567 Project: Hadoop HDFS Issue Type: Bug Reporter: Ted Yu Assignee: Ted Yu Priority: Minor Attachments: hdfs-7567.patch {code} INodeFile oldFile = INodeFile.valueOf(iip.getLastINode(), path, true); if (oldFile != null addCloseOp.overwrite) { ... INodeFile newFile = oldFile; ... // Update the salient file attributes. newFile.setAccessTime(addCloseOp.atime, Snapshot.CURRENT_STATE_ID); newFile.setModificationTime(addCloseOp.mtime, Snapshot.CURRENT_STATE_ID); {code} The last two lines are not protected by null check. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HDFS-7567) Potential null dereference in FSEditLogLoader#applyEditLogOp()
[ https://issues.apache.org/jira/browse/HDFS-7567?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14257962#comment-14257962 ] Ted Yu commented on HDFS-7567: -- TestByteArrayManager passes locally. Potential null dereference in FSEditLogLoader#applyEditLogOp() -- Key: HDFS-7567 URL: https://issues.apache.org/jira/browse/HDFS-7567 Project: Hadoop HDFS Issue Type: Bug Reporter: Ted Yu Assignee: Ted Yu Priority: Minor Attachments: hdfs-7567.patch {code} INodeFile oldFile = INodeFile.valueOf(iip.getLastINode(), path, true); if (oldFile != null addCloseOp.overwrite) { ... INodeFile newFile = oldFile; ... // Update the salient file attributes. newFile.setAccessTime(addCloseOp.atime, Snapshot.CURRENT_STATE_ID); newFile.setModificationTime(addCloseOp.mtime, Snapshot.CURRENT_STATE_ID); {code} The last two lines are not protected by null check. -- This message was sent by Atlassian JIRA (v6.3.4#6332)