You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by iv...@apache.org on 2013/08/23 18:48:38 UTC
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
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();
}
/**