Repository: bookkeeper Updated Branches: refs/heads/master 70da24d50 -> b6dd50534
BOOKKEEPER-695: Some entry logs are not removed from the bookie storage (Matteo Merli via sijie) Project: http://git-wip-us.apache.org/repos/asf/bookkeeper/repo Commit: http://git-wip-us.apache.org/repos/asf/bookkeeper/commit/b6dd5053 Tree: http://git-wip-us.apache.org/repos/asf/bookkeeper/tree/b6dd5053 Diff: http://git-wip-us.apache.org/repos/asf/bookkeeper/diff/b6dd5053 Branch: refs/heads/master Commit: b6dd505342051f267ca6af5fba1b70637c1e3fe0 Parents: 70da24d Author: Sijie Guo <[email protected]> Authored: Tue Apr 21 00:44:52 2015 -0700 Committer: Sijie Guo <[email protected]> Committed: Tue Apr 21 00:44:52 2015 -0700 ---------------------------------------------------------------------- CHANGES.txt | 4 ++++ .../org/apache/bookkeeper/bookie/EntryLogger.java | 16 ++++++++-------- .../org/apache/bookkeeper/bookie/EntryLogTest.java | 6 +----- 3 files changed, 13 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/bookkeeper/blob/b6dd5053/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index c9842d1..e55b2d6 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -79,6 +79,10 @@ Trunk (unreleased changes) BOOKKEEPER-848: Use volatile for lastAddConfirmed (Matteo Merli via sijie) + bookkeeper-server: + + BOOKKEEPER-695: Some entry logs are not removed from the bookie storage (Matteo Merli via sijie) + Release 4.3.0 - 2014-10-03 Non-backward compatible changes: http://git-wip-us.apache.org/repos/asf/bookkeeper/blob/b6dd5053/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/EntryLogger.java ---------------------------------------------------------------------- diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/EntryLogger.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/EntryLogger.java index 0e052b5..725d5bf 100644 --- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/EntryLogger.java +++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/EntryLogger.java @@ -782,20 +782,19 @@ public class EntryLogger { break; } if (readFromLogChannel(entryLogId, bc, sizeBuff, pos) != sizeBuff.capacity()) { - throw new IOException("Short read for entry size from entrylog " + entryLogId); + LOG.warn("Short read for entry size from entrylog {}", entryLogId); + return; } long offset = pos; pos += 4; sizeBuff.flip(); int entrySize = sizeBuff.getInt(); - if (entrySize > MB) { - LOG.warn("Found large size entry of " + entrySize + " at location " + pos + " in " - + entryLogId); - } + sizeBuff.clear(); // try to read ledger id first if (readFromLogChannel(entryLogId, bc, lidBuff, pos) != lidBuff.capacity()) { - throw new IOException("Short read for ledger id from entrylog " + entryLogId); + LOG.warn("Short read for ledger id from entrylog {}", entryLogId); + return; } lidBuff.flip(); long lid = lidBuff.getLong(); @@ -810,8 +809,9 @@ public class EntryLogger { ByteBuffer buff = ByteBuffer.wrap(data); int rc = readFromLogChannel(entryLogId, bc, buff, pos); if (rc != data.length) { - throw new IOException("Short read for ledger entry from entryLog " + entryLogId - + "@" + pos + "(" + rc + "!=" + data.length + ")"); + LOG.warn("Short read for ledger entry from entryLog {}@{} ({} != {})", new Object[] { entryLogId, pos, + rc, data.length }); + return; } buff.flip(); // process the entry http://git-wip-us.apache.org/repos/asf/bookkeeper/blob/b6dd5053/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/EntryLogTest.java ---------------------------------------------------------------------- diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/EntryLogTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/EntryLogTest.java index 488f4bf..6b0ecd8 100644 --- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/EntryLogTest.java +++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/EntryLogTest.java @@ -89,11 +89,7 @@ public class EntryLogTest { EntryLogMetadata meta = new EntryLogMetadata(0L); ExtractionScanner scanner = new ExtractionScanner(meta); - try { - logger.scanEntryLog(0L, scanner); - fail("Should not reach here!"); - } catch (IOException ie) { - } + logger.scanEntryLog(0L, scanner); LOG.info("Extracted Meta From Entry Log {}", meta); assertNotNull(meta.ledgersMap.get(1L));
