Return-Path: Delivered-To: apmail-hadoop-core-dev-archive@www.apache.org Received: (qmail 57845 invoked from network); 10 Feb 2009 20:58:40 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 10 Feb 2009 20:58:40 -0000 Received: (qmail 1396 invoked by uid 500); 10 Feb 2009 20:58:24 -0000 Delivered-To: apmail-hadoop-core-dev-archive@hadoop.apache.org Received: (qmail 1370 invoked by uid 500); 10 Feb 2009 20:58:24 -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 1164 invoked by uid 99); 10 Feb 2009 20:58:23 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 10 Feb 2009 12:58:23 -0800 X-ASF-Spam-Status: No, hits=-1998.8 required=10.0 tests=ALL_TRUSTED,FS_REPLICA 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; Tue, 10 Feb 2009 20:58:20 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 9E773234C4B5 for ; Tue, 10 Feb 2009 12:57:59 -0800 (PST) Message-ID: <1823617784.1234299479648.JavaMail.jira@brutus> Date: Tue, 10 Feb 2009 12:57:59 -0800 (PST) From: "Raghu Angadi (JIRA)" To: core-dev@hadoop.apache.org Subject: [jira] Commented: (HADOOP-5192) Block reciever should not remove a finalized block when block replication fails In-Reply-To: <734077722.1233946559511.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-5192?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12672399#action_12672399 ] Raghu Angadi commented on HADOOP-5192: -------------------------------------- > Adding the lock 'unfinalizeBlockIfInvalid() is just being super cautious. umm.. I would call that 'good practice'. between : - {{'lock(p); bool cond = condition(); unlock(p); if (cond) {lock (p); destroy(); unlock(p) ;}'}} and - {{'lock (p); if (condition()) destroy(); unlock(p);'}} to me the former looks instinctively error prone (in many cases would really be a bug).. and it would be hard track in future since others wouldn't always look in this corner. There is not even comment why the multiple locking is correct. In this case you are mostly right.. only based on global knowledge of DataNode. Any one reading the code just around that, wouldn't easily see that. w.r.t deletion, it is better to err on not deleting than to err on deletion... if I am not mistaken, that is essence of the problem with HADOOP-4702, which this jira proposes to fix. Anyway, it is _not_ a -1 from me. > Block reciever should not remove a finalized block when block replication fails > ------------------------------------------------------------------------------- > > Key: HADOOP-5192 > URL: https://issues.apache.org/jira/browse/HADOOP-5192 > Project: Hadoop Core > Issue Type: Bug > Components: dfs > Affects Versions: 0.18.3 > Reporter: Hairong Kuang > Assignee: Hairong Kuang > Fix For: 0.18.4 > > Attachments: blockCleanup.patch, blockRemove.patch > > > HADOOP-4702 makes block receivers to remove the received block in case of a block replication failure. But the block should not be removed if the cause of the failure is that the block to be received already exists. The key is that a block receiver should allow to remove only partial blocks in case of block replication failures. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.