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 2012/07/04 16:17:30 UTC
svn commit: r1357277 - in /zookeeper/bookkeeper/trunk: CHANGES.txt
bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Bookie.java
bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/LedgerCacheImpl.java
Author: ivank
Date: Wed Jul 4 14:17:30 2012
New Revision: 1357277
URL: http://svn.apache.org/viewvc?rev=1357277&view=rev
Log:
BOOKKEEPER-324: Flakeyness in LedgerCreateDeleteTest (ivank)
Modified:
zookeeper/bookkeeper/trunk/CHANGES.txt
zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Bookie.java
zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/LedgerCacheImpl.java
Modified: zookeeper/bookkeeper/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/zookeeper/bookkeeper/trunk/CHANGES.txt?rev=1357277&r1=1357276&r2=1357277&view=diff
==============================================================================
--- zookeeper/bookkeeper/trunk/CHANGES.txt (original)
+++ zookeeper/bookkeeper/trunk/CHANGES.txt Wed Jul 4 14:17:30 2012
@@ -30,6 +30,8 @@ Trunk (unreleased changes)
BOOKKEEPER-280: LedgerHandle.addEntry() should return an entryId (mmerli via ivank)
+ BOOKKEEPER-324: Flakeyness in LedgerCreateDeleteTest (ivank)
+
hedwig-client:
BOOKKEEPER-274: Hedwig cpp client library should not link to cppunit which is just used for test. (sijie via ivank)
Modified: zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Bookie.java
URL: http://svn.apache.org/viewvc/zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Bookie.java?rev=1357277&r1=1357276&r2=1357277&view=diff
==============================================================================
--- zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Bookie.java (original)
+++ zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Bookie.java Wed Jul 4 14:17:30 2012
@@ -410,9 +410,10 @@ public class Bookie extends Thread {
LOG.debug("I'm starting a bookie with journal directory " + journalDirectory.getName());
// start bookie thread
super.start();
- syncThread.start();
ledgerStorage.start();
+
+ syncThread.start();
// set running here.
// since bookie server use running as a flag to tell bookie server whether it is alive
// if setting it in bookie thread, the watcher might run before bookie thread.
@@ -595,9 +596,6 @@ public class Bookie extends Thread {
// mark bookie as in shutting down progress
shuttingdown = true;
- // Shutdown the EntryLogger which has the GarbageCollector Thread running
- ledgerStorage.shutdown();
-
// Shutdown the ZK client
if(zk != null) zk.close();
// Shutdown journal
@@ -605,6 +603,9 @@ public class Bookie extends Thread {
this.join();
syncThread.shutdown();
+ // Shutdown the EntryLogger which has the GarbageCollector Thread running
+ ledgerStorage.shutdown();
+
// close Ledger Manager
try {
activeLedgerManager.close();
Modified: zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/LedgerCacheImpl.java
URL: http://svn.apache.org/viewvc/zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/LedgerCacheImpl.java?rev=1357277&r1=1357276&r2=1357277&view=diff
==============================================================================
--- zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/LedgerCacheImpl.java (original)
+++ zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/LedgerCacheImpl.java Wed Jul 4 14:17:30 2012
@@ -692,11 +692,13 @@ public class LedgerCacheImpl implements
// evict file info if necessary
private void evictFileInfoIfNecessary() throws IOException {
- if (openLedgers.size() > openFileLimit) {
- long ledgerToRemove = openLedgers.removeFirst();
- LOG.info("Ledger {} is evicted from file info cache.",
- ledgerToRemove);
- fileInfoCache.remove(ledgerToRemove).close(true);
+ synchronized (fileInfoCache) {
+ if (openLedgers.size() > openFileLimit) {
+ long ledgerToRemove = openLedgers.removeFirst();
+ LOG.info("Ledger {} is evicted from file info cache.",
+ ledgerToRemove);
+ fileInfoCache.remove(ledgerToRemove).close(true);
+ }
}
}
@@ -778,11 +780,14 @@ public class LedgerCacheImpl implements
@Override
public void close() throws IOException {
- for (Entry<Long, FileInfo> fileInfo : fileInfoCache.entrySet()) {
- FileInfo value = fileInfo.getValue();
- if (value != null) {
- value.close(true);
+ synchronized (fileInfoCache) {
+ for (Entry<Long, FileInfo> fileInfo : fileInfoCache.entrySet()) {
+ FileInfo value = fileInfo.getValue();
+ if (value != null) {
+ value.close(true);
+ }
}
+ fileInfoCache.clear();
}
}
}