[ https://issues.apache.org/jira/browse/HDFS-3848?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14038701#comment-14038701 ]
Hudson commented on HDFS-3848: ------------------------------ SUCCESS: Integrated in Hadoop-Yarn-trunk #589 (See [https://builds.apache.org/job/Hadoop-Yarn-trunk/589/]) HDFS-3848. A Bug in recoverLeaseInternal method of FSNameSystem class. Contributed by Hooman Peiro Sajjad and Chen He. (kihwal: http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1604011) * /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt * /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java * /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLeaseRecovery2.java > A Bug in recoverLeaseInternal method of FSNameSystem class > ---------------------------------------------------------- > > Key: HDFS-3848 > URL: https://issues.apache.org/jira/browse/HDFS-3848 > Project: Hadoop HDFS > Issue Type: Bug > Components: namenode > Affects Versions: 0.23.1 > Reporter: Hooman Peiro Sajjad > Assignee: Chen He > Labels: patch > Fix For: 3.0.0, 2.5.0 > > Attachments: HDFS-3848-1.patch, HDFS-3848-v2.patch > > Original Estimate: 1h > Remaining Estimate: 1h > > This is a bug in logic of the method recoverLeaseInternal. In line 1322 it > checks if the owner of the file is trying to recreate the file. The condition > of the if statement is > (leaseFile != null && leaseFile.equals(lease)) || > lease.getHolder().equals(holder) > As it can be seen, there are two operands (conditions) connected with an "or" > operator. The first operand is straight and will be true only if the holder > of the file is the new holder. But the problem is the second operand which > will be always true since the "lease" object is the one found by the "holder" > by calling "Lease lease = leaseManager.getLease(holder);" in line 1315. > To fix this I think the if statement only should contain the following the > condition: > (leaseFile != null && leaseFile.getHolder().equals(holder)) -- This message was sent by Atlassian JIRA (v6.2#6252)