Hadoop Common
  1. Hadoop Common
  2. HADOOP-8684

Deadlock between WritableComparator and WritableComparable

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 1.0.3, 3.0.0
    • Fix Version/s: 3.0.0, 0.23.4, 2.0.3-alpha
    • Component/s: io
    • Labels:
      None
    • Hadoop Flags:
      Reviewed

      Description

      Classes implementing WriableComparable in Hadoop call the method WritableComparator.define() in their static initializers. This means, the classes call the method define() while thier class loading, under locking their class objects. And, the method WritableComparator.define() locks the WritableComaprator class object.

      On the other hand, WritableComparator.get() also locks the WritableComparator class object, and the method may create instances of the targeted comparable class, involving loading the targeted comparable class if any. This means, the method might try to lock the targeted comparable class object under locking the WritableComparator class object.

      There are reversed orders of locking objects, and you might fall in deadlock.

      1. Hadoop-8684.patch
        2 kB
        Jing Zhao
      2. Hadoop-8684.patch
        3 kB
        Jing Zhao
      3. Hadoop-8684.patch
        3 kB
        Jing Zhao
      4. Hadoop-8684.patch
        3 kB
        Jing Zhao
      5. Hadoop-8684.patch
        3 kB
        Jing Zhao
      6. WritableComparatorDeadLockTestApp.java
        2 kB
        Hiroshi Ikeda

        Activity

        Hide
        Hudson added a comment -

        Integrated in Hadoop-Hdfs-0.23-Build #387 (See https://builds.apache.org/job/Hadoop-Hdfs-0.23-Build/387/)
        svn merge -c 1379506 FIXES: HADOOP-8684. Deadlock between WritableComparator and WritableComparable. Contributed by Jing Zhao (Revision 1390677)

        Result = UNSTABLE
        bobby : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1390677
        Files :

        • /hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/CHANGES.txt
        • /hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/WritableComparator.java
        Show
        Hudson added a comment - Integrated in Hadoop-Hdfs-0.23-Build #387 (See https://builds.apache.org/job/Hadoop-Hdfs-0.23-Build/387/ ) svn merge -c 1379506 FIXES: HADOOP-8684 . Deadlock between WritableComparator and WritableComparable. Contributed by Jing Zhao (Revision 1390677) Result = UNSTABLE bobby : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1390677 Files : /hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/CHANGES.txt /hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/WritableComparator.java
        Hide
        Robert Joseph Evans added a comment -

        I pulled this into branch-2, and branch-0.23

        Show
        Robert Joseph Evans added a comment - I pulled this into branch-2, and branch-0.23
        Hide
        Hudson added a comment -

        Integrated in Hadoop-Mapreduce-trunk #1183 (See https://builds.apache.org/job/Hadoop-Mapreduce-trunk/1183/)
        HADOOP-8684. Deadlock between WritableComparator and WritableComparable. Contributed by Jing Zhao (Revision 1379506)

        Result = SUCCESS
        suresh : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1379506
        Files :

        • /hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt
        • /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/WritableComparator.java
        Show
        Hudson added a comment - Integrated in Hadoop-Mapreduce-trunk #1183 (See https://builds.apache.org/job/Hadoop-Mapreduce-trunk/1183/ ) HADOOP-8684 . Deadlock between WritableComparator and WritableComparable. Contributed by Jing Zhao (Revision 1379506) Result = SUCCESS suresh : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1379506 Files : /hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/WritableComparator.java
        Hide
        Hudson added a comment -

        Integrated in Hadoop-Hdfs-trunk #1152 (See https://builds.apache.org/job/Hadoop-Hdfs-trunk/1152/)
        HADOOP-8684. Deadlock between WritableComparator and WritableComparable. Contributed by Jing Zhao (Revision 1379506)

        Result = SUCCESS
        suresh : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1379506
        Files :

        • /hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt
        • /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/WritableComparator.java
        Show
        Hudson added a comment - Integrated in Hadoop-Hdfs-trunk #1152 (See https://builds.apache.org/job/Hadoop-Hdfs-trunk/1152/ ) HADOOP-8684 . Deadlock between WritableComparator and WritableComparable. Contributed by Jing Zhao (Revision 1379506) Result = SUCCESS suresh : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1379506 Files : /hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/WritableComparator.java
        Hide
        Hudson added a comment -

        Integrated in Hadoop-Mapreduce-trunk-Commit #2687 (See https://builds.apache.org/job/Hadoop-Mapreduce-trunk-Commit/2687/)
        HADOOP-8684. Deadlock between WritableComparator and WritableComparable. Contributed by Jing Zhao (Revision 1379506)

        Result = FAILURE
        suresh : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1379506
        Files :

        • /hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt
        • /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/WritableComparator.java
        Show
        Hudson added a comment - Integrated in Hadoop-Mapreduce-trunk-Commit #2687 (See https://builds.apache.org/job/Hadoop-Mapreduce-trunk-Commit/2687/ ) HADOOP-8684 . Deadlock between WritableComparator and WritableComparable. Contributed by Jing Zhao (Revision 1379506) Result = FAILURE suresh : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1379506 Files : /hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/WritableComparator.java
        Hide
        Hudson added a comment -

        Integrated in Hadoop-Common-trunk-Commit #2658 (See https://builds.apache.org/job/Hadoop-Common-trunk-Commit/2658/)
        HADOOP-8684. Deadlock between WritableComparator and WritableComparable. Contributed by Jing Zhao (Revision 1379506)

        Result = SUCCESS
        suresh : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1379506
        Files :

        • /hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt
        • /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/WritableComparator.java
        Show
        Hudson added a comment - Integrated in Hadoop-Common-trunk-Commit #2658 (See https://builds.apache.org/job/Hadoop-Common-trunk-Commit/2658/ ) HADOOP-8684 . Deadlock between WritableComparator and WritableComparable. Contributed by Jing Zhao (Revision 1379506) Result = SUCCESS suresh : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1379506 Files : /hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/WritableComparator.java
        Hide
        Hudson added a comment -

        Integrated in Hadoop-Hdfs-trunk-Commit #2721 (See https://builds.apache.org/job/Hadoop-Hdfs-trunk-Commit/2721/)
        HADOOP-8684. Deadlock between WritableComparator and WritableComparable. Contributed by Jing Zhao (Revision 1379506)

        Result = SUCCESS
        suresh : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1379506
        Files :

        • /hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt
        • /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/WritableComparator.java
        Show
        Hudson added a comment - Integrated in Hadoop-Hdfs-trunk-Commit #2721 (See https://builds.apache.org/job/Hadoop-Hdfs-trunk-Commit/2721/ ) HADOOP-8684 . Deadlock between WritableComparator and WritableComparable. Contributed by Jing Zhao (Revision 1379506) Result = SUCCESS suresh : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1379506 Files : /hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/WritableComparator.java
        Hide
        Suresh Srinivas added a comment -

        I committed the change to Trunk. This change has been tested using the test written by Hiroshi manually.

        Thank you Hiroshi and Jing.

        Show
        Suresh Srinivas added a comment - I committed the change to Trunk. This change has been tested using the test written by Hiroshi manually. Thank you Hiroshi and Jing.
        Hide
        Hiroshi Ikeda added a comment -

        +1. I think it works well.

        Show
        Hiroshi Ikeda added a comment - +1. I think it works well.
        Hide
        Suresh Srinivas added a comment -

        Hiroshi, given you have done a better job reviewing this than me, I will commit this if you +1 this.

        Show
        Suresh Srinivas added a comment - Hiroshi, given you have done a better job reviewing this than me, I will commit this if you +1 this.
        Hide
        Hadoop QA added a comment -

        -1 overall. Here are the results of testing the latest attachment
        http://issues.apache.org/jira/secure/attachment/12543207/Hadoop-8684.patch
        against trunk revision .

        +1 @author. The patch does not contain any @author tags.

        -1 tests included. 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.

        +1 javac. The applied patch does not increase the total number of javac compiler warnings.

        +1 javadoc. The javadoc tool did not generate any warning messages.

        +1 eclipse:eclipse. The patch built with eclipse:eclipse.

        +1 findbugs. The patch does not introduce any new Findbugs (version 1.3.9) warnings.

        +1 release audit. The applied patch does not increase the total number of release audit warnings.

        +1 core tests. The patch passed unit tests in hadoop-common-project/hadoop-common.

        +1 contrib tests. The patch passed contrib unit tests.

        Test results: https://builds.apache.org/job/PreCommit-HADOOP-Build/1390//testReport/
        Console output: https://builds.apache.org/job/PreCommit-HADOOP-Build/1390//console

        This message is automatically generated.

        Show
        Hadoop QA added a comment - -1 overall. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12543207/Hadoop-8684.patch against trunk revision . +1 @author. The patch does not contain any @author tags. -1 tests included. 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. +1 javac. The applied patch does not increase the total number of javac compiler warnings. +1 javadoc. The javadoc tool did not generate any warning messages. +1 eclipse:eclipse. The patch built with eclipse:eclipse. +1 findbugs. The patch does not introduce any new Findbugs (version 1.3.9) warnings. +1 release audit. The applied patch does not increase the total number of release audit warnings. +1 core tests. The patch passed unit tests in hadoop-common-project/hadoop-common. +1 contrib tests. The patch passed contrib unit tests. Test results: https://builds.apache.org/job/PreCommit-HADOOP-Build/1390//testReport/ Console output: https://builds.apache.org/job/PreCommit-HADOOP-Build/1390//console This message is automatically generated.
        Hide
        Jing Zhao added a comment -

        Hiroshi, you're right! The synchronized is not necessary and since in forceInit something has been already added into the comparators. I will remove the synchronized from the patch.

        Show
        Jing Zhao added a comment - Hiroshi, you're right! The synchronized is not necessary and since in forceInit something has been already added into the comparators. I will remove the synchronized from the patch.
        Hide
        Jing Zhao added a comment -

        In the WritableComparator#get() a double check is used to replace the original synchronized static method. So I keep the synchronized in the double check to make sure there is no put operation happening during the second check and the construction of a generic comparator. But the synchronized can be omitted if we do not need to keep this semantic.

        Show
        Jing Zhao added a comment - In the WritableComparator#get() a double check is used to replace the original synchronized static method. So I keep the synchronized in the double check to make sure there is no put operation happening during the second check and the construction of a generic comparator. But the synchronized can be omitted if we do not need to keep this semantic.
        Hide
        Hiroshi Ikeda added a comment -

        I'm not sure why the synchronized is needed.
        Do you mean, it is possible that someone locks the WritableComparator class object in other places in order to interfere in the define/get methods?

        Show
        Hiroshi Ikeda added a comment - I'm not sure why the synchronized is needed. Do you mean, it is possible that someone locks the WritableComparator class object in other places in order to interfere in the define/get methods?
        Hide
        Hadoop QA added a comment -

        -1 overall. Here are the results of testing the latest attachment
        http://issues.apache.org/jira/secure/attachment/12543033/Hadoop-8684.patch
        against trunk revision .

        +1 @author. The patch does not contain any @author tags.

        -1 tests included. 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.

        +1 javac. The applied patch does not increase the total number of javac compiler warnings.

        +1 javadoc. The javadoc tool did not generate any warning messages.

        +1 eclipse:eclipse. The patch built with eclipse:eclipse.

        +1 findbugs. The patch does not introduce any new Findbugs (version 1.3.9) warnings.

        +1 release audit. The applied patch does not increase the total number of release audit warnings.

        -1 core tests. The patch failed these unit tests in hadoop-common-project/hadoop-common:

        org.apache.hadoop.ha.TestZKFailoverController

        +1 contrib tests. The patch passed contrib unit tests.

        Test results: https://builds.apache.org/job/PreCommit-HADOOP-Build/1387//testReport/
        Console output: https://builds.apache.org/job/PreCommit-HADOOP-Build/1387//console

        This message is automatically generated.

        Show
        Hadoop QA added a comment - -1 overall. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12543033/Hadoop-8684.patch against trunk revision . +1 @author. The patch does not contain any @author tags. -1 tests included. 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. +1 javac. The applied patch does not increase the total number of javac compiler warnings. +1 javadoc. The javadoc tool did not generate any warning messages. +1 eclipse:eclipse. The patch built with eclipse:eclipse. +1 findbugs. The patch does not introduce any new Findbugs (version 1.3.9) warnings. +1 release audit. The applied patch does not increase the total number of release audit warnings. -1 core tests. The patch failed these unit tests in hadoop-common-project/hadoop-common: org.apache.hadoop.ha.TestZKFailoverController +1 contrib tests. The patch passed contrib unit tests. Test results: https://builds.apache.org/job/PreCommit-HADOOP-Build/1387//testReport/ Console output: https://builds.apache.org/job/PreCommit-HADOOP-Build/1387//console This message is automatically generated.
        Hide
        Jing Zhao added a comment -

        Suresh and Hiroshi: thanks for the comments! I changed from reentrantlock to synchronized (I use the synchronized here to keep the same semantic with the original version). And the test program runs well with the patch.

        Show
        Jing Zhao added a comment - Suresh and Hiroshi: thanks for the comments! I changed from reentrantlock to synchronized (I use the synchronized here to keep the same semantic with the original version). And the test program runs well with the patch.
        Hide
        Suresh Srinivas added a comment -

        Yes,I forgot to include that - we could just use synchronized.

        Once you address Hiroshi's comments, I will commit the patch.

        Show
        Suresh Srinivas added a comment - Yes,I forgot to include that - we could just use synchronized. Once you address Hiroshi's comments, I will commit the patch.
        Hide
        Hiroshi Ikeda added a comment -

        I think the reentrant lock is not needed.
        In each of the sections guraded by the reentrant lock, the concurrent map is accessed only once.

        Incidentally, I think it is better to make the concurrent map to be final.

        Show
        Hiroshi Ikeda added a comment - I think the reentrant lock is not needed. In each of the sections guraded by the reentrant lock, the concurrent map is accessed only once. Incidentally, I think it is better to make the concurrent map to be final.
        Hide
        Hadoop QA added a comment -

        -1 overall. Here are the results of testing the latest attachment
        http://issues.apache.org/jira/secure/attachment/12543008/Hadoop-8684.patch
        against trunk revision .

        +1 @author. The patch does not contain any @author tags.

        -1 tests included. 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.

        +1 javac. The applied patch does not increase the total number of javac compiler warnings.

        +1 javadoc. The javadoc tool did not generate any warning messages.

        +1 eclipse:eclipse. The patch built with eclipse:eclipse.

        +1 findbugs. The patch does not introduce any new Findbugs (version 1.3.9) warnings.

        +1 release audit. The applied patch does not increase the total number of release audit warnings.

        +1 core tests. The patch passed unit tests in hadoop-common-project/hadoop-common.

        +1 contrib tests. The patch passed contrib unit tests.

        Test results: https://builds.apache.org/job/PreCommit-HADOOP-Build/1386//testReport/
        Console output: https://builds.apache.org/job/PreCommit-HADOOP-Build/1386//console

        This message is automatically generated.

        Show
        Hadoop QA added a comment - -1 overall. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12543008/Hadoop-8684.patch against trunk revision . +1 @author. The patch does not contain any @author tags. -1 tests included. 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. +1 javac. The applied patch does not increase the total number of javac compiler warnings. +1 javadoc. The javadoc tool did not generate any warning messages. +1 eclipse:eclipse. The patch built with eclipse:eclipse. +1 findbugs. The patch does not introduce any new Findbugs (version 1.3.9) warnings. +1 release audit. The applied patch does not increase the total number of release audit warnings. +1 core tests. The patch passed unit tests in hadoop-common-project/hadoop-common. +1 contrib tests. The patch passed contrib unit tests. Test results: https://builds.apache.org/job/PreCommit-HADOOP-Build/1386//testReport/ Console output: https://builds.apache.org/job/PreCommit-HADOOP-Build/1386//console This message is automatically generated.
        Hide
        Suresh Srinivas added a comment -

        Very interesting problem! Nice solution Jing.

        Did you run the test code with this patch?
        One thing I do notice is with your solution an extra call to forceInit() may be made. I believe this should not be an issue.

        Show
        Suresh Srinivas added a comment - Very interesting problem! Nice solution Jing. Did you run the test code with this patch? One thing I do notice is with your solution an extra call to forceInit() may be made. I believe this should not be an issue.
        Hide
        Jing Zhao added a comment -

        We do not need the "volatile" so switch back to the original version. Now in the patch, the locking sequence corresponding to WritableComparator#define() is 1) lock L1 of the targeted comparable class object, and 2) lock L2 in WritableComparator, and 3) lock L3 in WritableComparator#comparators (which is a ConcurrentHashMap), and 4) release lock L3, and 5) release lock L2, and 6) release lock in L1. The lock sequence of get: lock L3 --> unlock L3 --> lock L1 of targeted comparable class object --> unlock L1 --> lock L2 --> unlock L2. So we should be able to avoid the deadlock now.

        Show
        Jing Zhao added a comment - We do not need the "volatile" so switch back to the original version. Now in the patch, the locking sequence corresponding to WritableComparator#define() is 1) lock L1 of the targeted comparable class object, and 2) lock L2 in WritableComparator, and 3) lock L3 in WritableComparator#comparators (which is a ConcurrentHashMap), and 4) release lock L3, and 5) release lock L2, and 6) release lock in L1. The lock sequence of get: lock L3 --> unlock L3 --> lock L1 of targeted comparable class object --> unlock L1 --> lock L2 --> unlock L2. So we should be able to avoid the deadlock now.
        Hide
        Hadoop QA added a comment -

        -1 overall. Here are the results of testing the latest attachment
        http://issues.apache.org/jira/secure/attachment/12542965/Hadoop-8684.patch
        against trunk revision .

        +1 @author. The patch does not contain any @author tags.

        -1 tests included. 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.

        +1 javac. The applied patch does not increase the total number of javac compiler warnings.

        +1 javadoc. The javadoc tool did not generate any warning messages.

        +1 eclipse:eclipse. The patch built with eclipse:eclipse.

        +1 findbugs. The patch does not introduce any new Findbugs (version 1.3.9) warnings.

        +1 release audit. The applied patch does not increase the total number of release audit warnings.

        -1 core tests. The patch failed these unit tests in hadoop-common-project/hadoop-common:

        org.apache.hadoop.ha.TestZKFailoverController

        +1 contrib tests. The patch passed contrib unit tests.

        Test results: https://builds.apache.org/job/PreCommit-HADOOP-Build/1382//testReport/
        Console output: https://builds.apache.org/job/PreCommit-HADOOP-Build/1382//console

        This message is automatically generated.

        Show
        Hadoop QA added a comment - -1 overall. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12542965/Hadoop-8684.patch against trunk revision . +1 @author. The patch does not contain any @author tags. -1 tests included. 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. +1 javac. The applied patch does not increase the total number of javac compiler warnings. +1 javadoc. The javadoc tool did not generate any warning messages. +1 eclipse:eclipse. The patch built with eclipse:eclipse. +1 findbugs. The patch does not introduce any new Findbugs (version 1.3.9) warnings. +1 release audit. The applied patch does not increase the total number of release audit warnings. -1 core tests. The patch failed these unit tests in hadoop-common-project/hadoop-common: org.apache.hadoop.ha.TestZKFailoverController +1 contrib tests. The patch passed contrib unit tests. Test results: https://builds.apache.org/job/PreCommit-HADOOP-Build/1382//testReport/ Console output: https://builds.apache.org/job/PreCommit-HADOOP-Build/1382//console This message is automatically generated.
        Hide
        Jing Zhao added a comment -

        seems the comparators should be declared as volatile.

        Show
        Jing Zhao added a comment - seems the comparators should be declared as volatile.
        Hide
        Hadoop QA added a comment -

        -1 overall. Here are the results of testing the latest attachment
        http://issues.apache.org/jira/secure/attachment/12542865/Hadoop-8684.patch
        against trunk revision .

        +1 @author. The patch does not contain any @author tags.

        -1 tests included. 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.

        +1 javac. The applied patch does not increase the total number of javac compiler warnings.

        +1 javadoc. The javadoc tool did not generate any warning messages.

        +1 eclipse:eclipse. The patch built with eclipse:eclipse.

        +1 findbugs. The patch does not introduce any new Findbugs (version 1.3.9) warnings.

        +1 release audit. The applied patch does not increase the total number of release audit warnings.

        +1 core tests. The patch passed unit tests in hadoop-common-project/hadoop-common.

        +1 contrib tests. The patch passed contrib unit tests.

        Test results: https://builds.apache.org/job/PreCommit-HADOOP-Build/1378//testReport/
        Console output: https://builds.apache.org/job/PreCommit-HADOOP-Build/1378//console

        This message is automatically generated.

        Show
        Hadoop QA added a comment - -1 overall. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12542865/Hadoop-8684.patch against trunk revision . +1 @author. The patch does not contain any @author tags. -1 tests included. 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. +1 javac. The applied patch does not increase the total number of javac compiler warnings. +1 javadoc. The javadoc tool did not generate any warning messages. +1 eclipse:eclipse. The patch built with eclipse:eclipse. +1 findbugs. The patch does not introduce any new Findbugs (version 1.3.9) warnings. +1 release audit. The applied patch does not increase the total number of release audit warnings. +1 core tests. The patch passed unit tests in hadoop-common-project/hadoop-common. +1 contrib tests. The patch passed contrib unit tests. Test results: https://builds.apache.org/job/PreCommit-HADOOP-Build/1378//testReport/ Console output: https://builds.apache.org/job/PreCommit-HADOOP-Build/1378//console This message is automatically generated.
        Hide
        Jing Zhao added a comment -

        Try to switch the locking sequence in WritableComparator#get in this patch.

        Show
        Jing Zhao added a comment - Try to switch the locking sequence in WritableComparator#get in this patch.
        Hide
        Hiroshi Ikeda added a comment -

        Sample application for the deadlock.

        Show
        Hiroshi Ikeda added a comment - Sample application for the deadlock.

          People

          • Assignee:
            Jing Zhao
            Reporter:
            Hiroshi Ikeda
          • Votes:
            0 Vote for this issue
            Watchers:
            9 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development