Issue 2264: Bookie cannot perform Garbage Collection in case of corrupted EntryLogger file

- in case of corrupted entry log file the bookie cannot perform GC
- handle the case of an unexpected negative entrysize

### Changes

Stop scanning the file

Master Issue: #2264


Reviewers: Jia Zhai <zhaijia@apache.org>, Rajan Dhabalia <rdhabalia@apache.org>

This closes #2373 from eolivelli/fix/issue2264-corruptedfile
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 0d7c861..bc16a19 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
@@ -1011,6 +1011,11 @@
                 // read the entry
 
                 data.clear();
+                if (entrySize < 0) {
+                    LOG.warn("bad read for ledger entry from entryLog {}@{} (entry size {})",
+                            entryLogId, pos, entrySize);
+                    return;
+                }
                 data.capacity(entrySize);
                 int rc = readFromLogChannel(entryLogId, bc, data, pos);
                 if (rc != entrySize) {