Return-Path: Delivered-To: apmail-hadoop-common-issues-archive@minotaur.apache.org Received: (qmail 83217 invoked from network); 16 Jul 2010 18:40:16 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 16 Jul 2010 18:40:16 -0000 Received: (qmail 28596 invoked by uid 500); 16 Jul 2010 18:40:16 -0000 Delivered-To: apmail-hadoop-common-issues-archive@hadoop.apache.org Received: (qmail 28556 invoked by uid 500); 16 Jul 2010 18:40:16 -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 28548 invoked by uid 99); 16 Jul 2010 18:40:15 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 16 Jul 2010 18:40: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; Fri, 16 Jul 2010 18:40:13 +0000 Received: from thor (localhost [127.0.0.1]) by thor.apache.org (8.13.8+Sun/8.13.8) with ESMTP id o6GIdpdB007099 for ; Fri, 16 Jul 2010 18:39:51 GMT Message-ID: <31180623.424261279305591868.JavaMail.jira@thor> Date: Fri, 16 Jul 2010 14:39:51 -0400 (EDT) From: "Mahadev konar (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 ] Mahadev konar updated HADOOP-6834: ---------------------------------- Status: Resolved (was: Patch Available) Hadoop Flags: [Reviewed] Fix Version/s: 0.22.0 Resolution: Fixed > 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.1, 0.20.2 > Reporter: Ahad Rana > Assignee: Hong Tang > Fix For: 0.22.0 > > 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.