This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch branch-2
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/branch-2 by this push:
     new 6641f11  HBASE-22502 Purge the logs when we reach the EOF for the last 
wal file when replication
6641f11 is described below

commit 6641f11aedd45c0a88cdcd7a6e555125fa4f090e
Author: Duo Zhang <[email protected]>
AuthorDate: Thu May 30 15:20:30 2019 +0800

    HBASE-22502 Purge the logs when we reach the EOF for the last wal file when 
replication
---
 .../hbase/regionserver/wal/ProtobufLogReader.java      | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/ProtobufLogReader.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/ProtobufLogReader.java
index 8e5eaaf..f2be93e 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/ProtobufLogReader.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/ProtobufLogReader.java
@@ -344,7 +344,7 @@ public class ProtobufLogReader extends ReaderBase {
         try {
           int firstByte = this.inputStream.read();
           if (firstByte == -1) {
-            throw new EOFException("First byte is negative at offset " + 
originalPosition);
+            throw new EOFException();
           }
           size = CodedInputStream.readRawVarint32(firstByte, this.inputStream);
           // available may be < 0 on local fs for instance.  If so, can't 
depend on it.
@@ -412,15 +412,19 @@ public class ProtobufLogReader extends ReaderBase {
           throw eof;
         }
         // If stuck at the same place and we got and exception, lets go back 
at the beginning.
-        if (inputStream.getPos() == originalPosition && resetPosition) {
-          LOG.warn("Encountered a malformed edit, seeking to the beginning of 
the WAL since "
-              + "current position and original position match at {}", 
originalPosition);
-          seekOnFs(0);
+        if (inputStream.getPos() == originalPosition) {
+          if (resetPosition) {
+            LOG.warn("Encountered a malformed edit, seeking to the beginning 
of the WAL since " +
+              "current position and original position match at {}", 
originalPosition);
+            seekOnFs(0);
+          } else {
+            LOG.info("Reached the end of file at position {}", 
originalPosition);
+          }
         } else {
           // Else restore our position to original location in hope that next 
time through we will
           // read successfully.
-          LOG.warn("Encountered a malformed edit, seeking back to last good 
position in file, "
-              + "from {} to {}", inputStream.getPos(), originalPosition, eof);
+          LOG.warn("Encountered a malformed edit, seeking back to last good 
position in file, " +
+            "from {} to {}", inputStream.getPos(), originalPosition, eof);
           seekOnFs(originalPosition);
         }
         return false;

Reply via email to