Return-Path: X-Original-To: apmail-hadoop-common-dev-archive@www.apache.org Delivered-To: apmail-hadoop-common-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 378D2D1E8 for ; Fri, 17 Aug 2012 02:13:43 +0000 (UTC) Received: (qmail 21832 invoked by uid 500); 17 Aug 2012 02:13:40 -0000 Delivered-To: apmail-hadoop-common-dev-archive@hadoop.apache.org Received: (qmail 21065 invoked by uid 500); 17 Aug 2012 02:13:39 -0000 Mailing-List: contact common-dev-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: common-dev@hadoop.apache.org Delivered-To: mailing list common-dev@hadoop.apache.org Received: (qmail 20746 invoked by uid 99); 17 Aug 2012 02:13:38 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 17 Aug 2012 02:13:38 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id 499052C5BE2 for ; Fri, 17 Aug 2012 02:13:38 +0000 (UTC) Date: Fri, 17 Aug 2012 13:13:38 +1100 (NCT) From: "Hiroshi Ikeda (JIRA)" To: common-dev@hadoop.apache.org Message-ID: <884628975.22276.1345169618302.JavaMail.jiratomcat@arcas> Subject: [jira] [Resolved] (HADOOP-8685) Deadlock between WritableComparator and WritableComparable MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/HADOOP-8685?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Hiroshi Ikeda resolved HADOOP-8685. ----------------------------------- Resolution: Duplicate Duplicated with HADOOP-8684 > Deadlock between WritableComparator and WritableComparable > ---------------------------------------------------------- > > Key: HADOOP-8685 > URL: https://issues.apache.org/jira/browse/HADOOP-8685 > Project: Hadoop Common > Issue Type: Bug > Components: io > Affects Versions: 1.0.3 > Reporter: Hiroshi Ikeda > Priority: Minor > > 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. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira