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 27995108DC for ; Fri, 23 Aug 2013 17:20:37 +0000 (UTC) Received: (qmail 70512 invoked by uid 500); 23 Aug 2013 17:20:37 -0000 Delivered-To: apmail-zookeeper-commits-archive@zookeeper.apache.org Received: (qmail 70429 invoked by uid 500); 23 Aug 2013 17:20:36 -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 70413 invoked by uid 99); 23 Aug 2013 17:20:35 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 23 Aug 2013 17:20:35 +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 17:20:34 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 50D5923889E0; Fri, 23 Aug 2013 17:20:14 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1516938 - in /zookeeper/bookkeeper/branches/branch-4.2: 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 17:20:14 -0000 To: commits@zookeeper.apache.org From: ivank@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20130823172014.50D5923889E0@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: ivank Date: Fri Aug 23 17:20:13 2013 New Revision: 1516938 URL: http://svn.apache.org/r1516938 Log: BOOKKEEPER-580: improve close logic (sijie & ivank via ivank) Modified: zookeeper/bookkeeper/branches/branch-4.2/CHANGES.txt zookeeper/bookkeeper/branches/branch-4.2/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java zookeeper/bookkeeper/branches/branch-4.2/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestFencing.java Modified: zookeeper/bookkeeper/branches/branch-4.2/CHANGES.txt URL: http://svn.apache.org/viewvc/zookeeper/bookkeeper/branches/branch-4.2/CHANGES.txt?rev=1516938&r1=1516937&r2=1516938&view=diff ============================================================================== --- zookeeper/bookkeeper/branches/branch-4.2/CHANGES.txt (original) +++ zookeeper/bookkeeper/branches/branch-4.2/CHANGES.txt Fri Aug 23 17:20:13 2013 @@ -68,6 +68,8 @@ Release 4.2.2 - Unreleased BOOKKEEPER-649: Race condition in sync ZKUtils.createFullPathOptimistic() (ivank) + BOOKKEEPER-580: improve close logic (sijie & ivank via ivank) + hedwig-server: BOOKKEEPER-579: TestSubAfterCloseSub was put in a wrong package (sijie via ivank) Modified: zookeeper/bookkeeper/branches/branch-4.2/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java URL: http://svn.apache.org/viewvc/zookeeper/bookkeeper/branches/branch-4.2/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java?rev=1516938&r1=1516937&r2=1516938&view=diff ============================================================================== --- zookeeper/bookkeeper/branches/branch-4.2/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java (original) +++ zookeeper/bookkeeper/branches/branch-4.2/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java Fri Aug 23 17:20:13 2013 @@ -252,6 +252,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(); @@ -261,8 +267,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/branches/branch-4.2/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestFencing.java URL: http://svn.apache.org/viewvc/zookeeper/bookkeeper/branches/branch-4.2/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestFencing.java?rev=1516938&r1=1516937&r2=1516938&view=diff ============================================================================== --- zookeeper/bookkeeper/branches/branch-4.2/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestFencing.java (original) +++ zookeeper/bookkeeper/branches/branch-4.2/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestFencing.java Fri Aug 23 17:20:13 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(); } /**