Return-Path: Delivered-To: apmail-hadoop-core-dev-archive@www.apache.org Received: (qmail 38161 invoked from network); 16 Jun 2008 15:26:38 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 16 Jun 2008 15:26:38 -0000 Received: (qmail 30957 invoked by uid 500); 16 Jun 2008 15:26:38 -0000 Delivered-To: apmail-hadoop-core-dev-archive@hadoop.apache.org Received: (qmail 30930 invoked by uid 500); 16 Jun 2008 15:26:38 -0000 Mailing-List: contact core-dev-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: core-dev@hadoop.apache.org Delivered-To: mailing list core-dev@hadoop.apache.org Received: (qmail 30916 invoked by uid 99); 16 Jun 2008 15:26:38 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 16 Jun 2008 08:26:38 -0700 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.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 16 Jun 2008 15:25:56 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 1DC09234C141 for ; Mon, 16 Jun 2008 08:25:45 -0700 (PDT) Message-ID: <1784662469.1213629945120.JavaMail.jira@brutus> Date: Mon, 16 Jun 2008 08:25:45 -0700 (PDT) From: "Aaron Greenhouse (JIRA)" To: core-dev@hadoop.apache.org Subject: [jira] Commented: (HADOOP-3554) LineRecordReader needs more synchronization In-Reply-To: <1928973871.1213368166468.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/HADOOP-3554?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12605315#action_12605315 ] Aaron Greenhouse commented on HADOOP-3554: ------------------------------------------ Okay. After reevaluating in the SVN Trunk (rather than based on the 0.17.0 source code), the field maxLineLength also needs to be made final. So, in summary * If objects of the class LineRecordReader really are used by multiple threads, then the class needs to be updated: - Make the fields start, end, and maxLineLength final. - Make the method getProgress() synchronized. * Otherwise, remove the existing synchronization from methods next(), getPos(), and close() and update the class documentation to indicate that instances are not thread safe. > LineRecordReader needs more synchronization > ------------------------------------------- > > Key: HADOOP-3554 > URL: https://issues.apache.org/jira/browse/HADOOP-3554 > Project: Hadoop Core > Issue Type: Bug > Affects Versions: 0.17.0 > Environment: All java platforms > Reporter: Aaron Greenhouse > Attachments: LineRecordReader.patch > > Original Estimate: 1h > Remaining Estimate: 1h > > LineRecordReader has three index fields start, end, and pos. All of these fields are long, which means that, in general, access to them is not atomic. This can cause problems if the fields are accessed without appropriate synchronization. > I propose the following changes to the class: > - Make the fields start and end final. This requires some minor changes to the constructor LineRecordReader(Configuration, FileSplit). > - Make the method getProgress() synchronized. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.