You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by fp...@apache.org on 2012/05/08 09:35:47 UTC
svn commit: r1335367 - in /zookeeper/bookkeeper/trunk: CHANGES.txt
bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/GarbageCollectorThread.java
bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/EntryLogTest.java
Author: fpj
Date: Tue May 8 07:35:47 2012
New Revision: 1335367
URL: http://svn.apache.org/viewvc?rev=1335367&view=rev
Log:
BOOKKEEPER-229: Deleted entry log files would be garbage collected again and again. (sijie via fpj)
Modified:
zookeeper/bookkeeper/trunk/CHANGES.txt
zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/GarbageCollectorThread.java
zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/EntryLogTest.java
Modified: zookeeper/bookkeeper/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/zookeeper/bookkeeper/trunk/CHANGES.txt?rev=1335367&r1=1335366&r2=1335367&view=diff
==============================================================================
--- zookeeper/bookkeeper/trunk/CHANGES.txt (original)
+++ zookeeper/bookkeeper/trunk/CHANGES.txt Tue May 8 07:35:47 2012
@@ -94,6 +94,8 @@ Trunk (unreleased changes)
BOOKKEEPER-232: AsyncBK tests failing (umamaheswararao via ivank)
+ BOOKKEEPER-229: Deleted entry log files would be garbage collected again and again. (sijie via fpj)
+
hedwig-client/
BOOKKEEPER-217: NPE in hedwig client when enable DEBUG (sijie via ivank)
Modified: zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/GarbageCollectorThread.java
URL: http://svn.apache.org/viewvc/zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/GarbageCollectorThread.java?rev=1335367&r1=1335366&r2=1335367&view=diff
==============================================================================
--- zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/GarbageCollectorThread.java (original)
+++ zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/GarbageCollectorThread.java Tue May 8 07:35:47 2012
@@ -186,11 +186,7 @@ public class GarbageCollectorThread exte
// Extract all of the ledger ID's that comprise all of the entry logs
// (except for the current new one which is still being written to).
- try {
- entryLogMetaMap = extractMetaFromEntryLogs(entryLogMetaMap);
- } catch (IOException ie) {
- LOG.warn("Exception when extracting entry log meta from entry logs : ", ie);
- }
+ entryLogMetaMap = extractMetaFromEntryLogs(entryLogMetaMap);
// gc inactive/deleted ledgers
doGcLedgers();
@@ -457,8 +453,7 @@ public class GarbageCollectorThread exte
* Existing EntryLogs to Meta
* @throws IOException
*/
- protected Map<Long, EntryLogMetadata> extractMetaFromEntryLogs(Map<Long, EntryLogMetadata> entryLogMetaMap)
- throws IOException {
+ protected Map<Long, EntryLogMetadata> extractMetaFromEntryLogs(Map<Long, EntryLogMetadata> entryLogMetaMap) {
// Extract it for every entry log except for the current one.
// Entry Log ID's are just a long value that starts at 0 and increments
// by 1 when the log fills up and we roll to a new one.
@@ -470,9 +465,14 @@ public class GarbageCollectorThread exte
}
LOG.info("Extracting entry log meta from entryLogId: " + entryLogId);
- // Read through the entry log file and extract the entry log meta
- entryLogMetaMap.put(entryLogId,
- extractMetaFromEntryLog(entryLogger, entryLogId));
+ try {
+ // Read through the entry log file and extract the entry log meta
+ EntryLogMetadata entryLogMeta = extractMetaFromEntryLog(entryLogger, entryLogId);
+ entryLogMetaMap.put(entryLogId, entryLogMeta);
+ } catch (IOException e) {
+ LOG.warn("Premature exception when processing " + entryLogId +
+ "recovery will take care of the problem", e);
+ }
}
return entryLogMetaMap;
}
@@ -481,16 +481,10 @@ public class GarbageCollectorThread exte
throws IOException {
EntryLogMetadata entryLogMeta = new EntryLogMetadata(entryLogId);
ExtractionScanner scanner = new ExtractionScanner(entryLogMeta);
- try {
- // Read through the entry log file and extract the entry log meta
- entryLogger.scanEntryLog(entryLogId, scanner);
- LOG.info("Retrieved entry log meta data entryLogId: "
- + entryLogId + ", meta: " + entryLogMeta);
- } catch(IOException e) {
- LOG.warn("Premature exception when processing " + entryLogId +
- "recovery will take care of the problem", e);
- }
-
+ // Read through the entry log file and extract the entry log meta
+ entryLogger.scanEntryLog(entryLogId, scanner);
+ LOG.info("Retrieved entry log meta data entryLogId: "
+ + entryLogId + ", meta: " + entryLogMeta);
return entryLogMeta;
}
}
Modified: zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/EntryLogTest.java
URL: http://svn.apache.org/viewvc/zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/EntryLogTest.java?rev=1335367&r1=1335366&r2=1335367&view=diff
==============================================================================
--- zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/EntryLogTest.java (original)
+++ zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/EntryLogTest.java Tue May 8 07:35:47 2012
@@ -30,6 +30,7 @@ import java.util.HashMap;
import junit.framework.TestCase;
import org.apache.bookkeeper.bookie.GarbageCollectorThread.EntryLogMetadata;
+import org.apache.bookkeeper.bookie.GarbageCollectorThread.ExtractionScanner;
import org.apache.bookkeeper.conf.ServerConfiguration;
import org.junit.After;
import org.junit.Before;
@@ -71,8 +72,14 @@ public class EntryLogTest extends TestCa
// now see which ledgers are in the log
logger = new EntryLogger(conf);
- EntryLogMetadata meta =
- GarbageCollectorThread.extractMetaFromEntryLog(logger, 0L);
+ EntryLogMetadata meta = new EntryLogMetadata(0L);
+ ExtractionScanner scanner = new ExtractionScanner(meta);
+
+ try {
+ logger.scanEntryLog(0L, scanner);
+ fail("Should not reach here!");
+ } catch (IOException ie) {
+ }
LOG.info("Extracted Meta From Entry Log {}", meta);
assertNotNull(meta.ledgersMap.get(1L));