Return-Path: X-Original-To: apmail-zookeeper-commits-archive@www.apache.org Delivered-To: apmail-zookeeper-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 4D47410769 for ; Fri, 23 Aug 2013 16:49:09 +0000 (UTC) Received: (qmail 95947 invoked by uid 500); 23 Aug 2013 16:49:09 -0000 Delivered-To: apmail-zookeeper-commits-archive@zookeeper.apache.org Received: (qmail 95611 invoked by uid 500); 23 Aug 2013 16:49:04 -0000 Mailing-List: contact commits-help@zookeeper.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ Delivered-To: mailing list commits@zookeeper.apache.org Received: (qmail 95603 invoked by uid 99); 23 Aug 2013 16:49:02 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 23 Aug 2013 16:49:02 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 23 Aug 2013 16:48:59 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 50538238888A; Fri, 23 Aug 2013 16:48:38 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1516929 - in /zookeeper/bookkeeper/trunk: CHANGES.txt bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestFencing.java Date: Fri, 23 Aug 2013 16:48:38 -0000 To: commits@zookeeper.apache.org From: ivank@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20130823164838.50538238888A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: ivank Date: Fri Aug 23 16:48:37 2013 New Revision: 1516929 URL: http://svn.apache.org/r1516929 Log: BOOKKEEPER-580: improve close logic (sijie & ivank via ivank) Modified: zookeeper/bookkeeper/trunk/CHANGES.txt zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestFencing.java Modified: zookeeper/bookkeeper/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/zookeeper/bookkeeper/trunk/CHANGES.txt?rev=1516929&r1=1516928&r2=1516929&view=diff ============================================================================== --- zookeeper/bookkeeper/trunk/CHANGES.txt (original) +++ zookeeper/bookkeeper/trunk/CHANGES.txt Fri Aug 23 16:48:37 2013 @@ -96,6 +96,8 @@ Trunk (unreleased changes) BOOKKEEPER-649: Race condition in sync ZKUtils.createFullPathOptimistic() (ivank) + BOOKKEEPER-580: improve close logic (sijie & ivank via ivank) + hedwig-server: BOOKKEEPER-601: readahead cache size isn't updated correctly (sijie via fpj) Modified: zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java URL: http://svn.apache.org/viewvc/zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java?rev=1516929&r1=1516928&r2=1516929&view=diff ============================================================================== --- zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java (original) +++ zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java Fri Aug 23 16:48:37 2013 @@ -248,6 +248,12 @@ public class LedgerHandle { final State prevState; synchronized(LedgerHandle.this) { + // if the metadata is already closed, we don't need to proceed the process + // otherwise, it might end up encountering bad version error log messages when updating metadata + if (metadata.isClosed()) { + cb.closeComplete(BKException.Code.OK, LedgerHandle.this, ctx); + return; + } prevState = metadata.getState(); prevLastEntryId = metadata.getLastEntryId(); prevLength = metadata.getLength(); @@ -257,8 +263,6 @@ public class LedgerHandle { // is closed. metadata.setLength(length); - // Close operation is idempotent, so no need to check if we are - // already closed metadata.close(lastAddConfirmed); errorOutPendingAdds(rc); lastAddPushed = lastAddConfirmed; Modified: zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestFencing.java URL: http://svn.apache.org/viewvc/zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestFencing.java?rev=1516929&r1=1516928&r2=1516929&view=diff ============================================================================== --- zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestFencing.java (original) +++ zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestFencing.java Fri Aug 23 16:48:37 2013 @@ -292,12 +292,7 @@ public class TestFencing extends BaseTes } readlh.close(); - try { - writelh.close(); - fail("Should fail trying to update metadata"); - } catch (BKException.BKMetadataVersionException e) { - // correct behaviour - } + writelh.close(); } /** @@ -338,13 +333,7 @@ public class TestFencing extends BaseTes } readlh.close(); - - try { - writelh.close(); - fail("Should fail trying to update metadata"); - } catch (BKException.BKMetadataVersionException e) { - // correct behaviour - } + writelh.close(); } /**