[ https://issues.apache.org/jira/browse/HBASE-7160?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13502652#comment-13502652 ]
Hadoop QA commented on HBASE-7160: ---------------------------------- {color:red}-1 overall{color}. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12554644/HBASE-7160-V3.patch against trunk revision . {color:green}+1 @author{color}. The patch does not contain any @author tags. {color:green}+1 tests included{color}. The patch appears to include 5 new or modified tests. {color:green}+1 hadoop2.0{color}. The patch compiles against the hadoop 2.0 profile. {color:red}-1 javadoc{color}. The javadoc tool appears to have generated 98 warning messages. {color:green}+1 javac{color}. The applied patch does not increase the total number of javac compiler warnings. {color:red}-1 findbugs{color}. The patch appears to introduce 24 new Findbugs (version 1.3.9) warnings. {color:green}+1 release audit{color}. The applied patch does not increase the total number of release audit warnings. {color:green}+1 core tests{color}. The patch passed unit tests in . Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/3397//testReport/ Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/3397//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop2-compat.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/3397//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-examples.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/3397//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-protocol.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/3397//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-server.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/3397//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop1-compat.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/3397//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-common.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/3397//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop-compat.html Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/3397//console This message is automatically generated. > Improve IdLock and remove its minor defects > ------------------------------------------- > > Key: HBASE-7160 > URL: https://issues.apache.org/jira/browse/HBASE-7160 > Project: HBase > Issue Type: Improvement > Reporter: Hiroshi Ikeda > Assignee: Hiroshi Ikeda > Priority: Minor > Attachments: HBASE-7160.patch, HBASE-7160-V2.patch, > HBASE-7160-V3.patch > > > Combination of synchronizations and concurrent collections complicates the > code, and it is hard to trace the code and to confirm its correctness. We > should re-create the class and make it more understandable. > In the current code, I find the following minor defects: > (1) In the case that there is a waiting thread for a lock in getLockEntry() > and another thread is releasing the lock by calling releaseLockEntry(), > trying to get the lock with a 3rd thread by calling getLockEntry() falls into > a busy loop until the waiting thread wakes up and gets the lock. > Even if notify() wakes up the blocked thread and causes a context switch to > the waked thread immediately, synchronization might block the waked thread > and cause another context switch, and the busy loop might continue for a > while. > (2) In the same case as (1), since releasing the lock is merely notifying > without removing the lock-entry from the map, interrupting the waiting thread > might leave an unused lock-entry (entry.numWaiters == 0) in the map. This is > a memory leak unless the id of the lock is used again. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira