Return-Path: Delivered-To: apmail-hadoop-common-issues-archive@minotaur.apache.org Received: (qmail 60027 invoked from network); 15 Jul 2010 21:38:16 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 15 Jul 2010 21:38:16 -0000 Received: (qmail 76171 invoked by uid 500); 15 Jul 2010 21:38:16 -0000 Delivered-To: apmail-hadoop-common-issues-archive@hadoop.apache.org Received: (qmail 76125 invoked by uid 500); 15 Jul 2010 21:38:15 -0000 Mailing-List: contact common-issues-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: common-issues@hadoop.apache.org Delivered-To: mailing list common-issues@hadoop.apache.org Received: (qmail 76117 invoked by uid 99); 15 Jul 2010 21:38:15 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 15 Jul 2010 21:38:15 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.22] (HELO thor.apache.org) (140.211.11.22) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 15 Jul 2010 21:38:12 +0000 Received: from thor (localhost [127.0.0.1]) by thor.apache.org (8.13.8+Sun/8.13.8) with ESMTP id o6FLbpCl024791 for ; Thu, 15 Jul 2010 21:37:51 GMT Message-ID: <29638809.404411279229870988.JavaMail.jira@thor> Date: Thu, 15 Jul 2010 17:37:50 -0400 (EDT) From: "Hong Tang (JIRA)" To: common-issues@hadoop.apache.org Subject: [jira] Updated: (HADOOP-6834) TFile.append compares initial key against null lastKey In-Reply-To: <10707501.8491277191496663.JavaMail.jira@thor> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/HADOOP-6834?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Hong Tang updated HADOOP-6834: ------------------------------ Status: Patch Available (was: Open) > TFile.append compares initial key against null lastKey > -------------------------------------------------------- > > Key: HADOOP-6834 > URL: https://issues.apache.org/jira/browse/HADOOP-6834 > Project: Hadoop Common > Issue Type: Bug > Components: io > Affects Versions: 0.20.2, 0.20.1 > Reporter: Ahad Rana > Assignee: Hong Tang > Attachments: hadoop-6834-20100715.patch > > > The following code in TFile.KeyReigster.close: > byte[] lastKey = lastKeyBufferOS.getBuffer(); > int lastLen = lastKeyBufferOS.size(); > if (tfileMeta.getComparator().compare(key, 0, len, lastKey, 0, > lastLen) < 0) { > throw new IOException("Keys are not added in sorted order"); > } > compares the initial key (passed in via TFile.Writer.append) against a technically NULL lastKey. lastKey is not initialized until after the first call to TFile.Writer.append. The underlying RawComparator interface used for comparisons does not stipulate the proper behavior when either length 1 or length 2 is zero. In the case of LongWritable, its WritableComparator implementation does an unsafe read on the passed in byte arrays b1 and b2. Since TFile pre-allocates the buffer used for storing lastKey, this passes a valid buffer with zero count to LongWritable's comparator, which ignores length and thus produces incorrect results. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.