This is an automated email from the ASF dual-hosted git repository.
sershe pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/master by this push:
new 3641e7a HBASE-22376 master can fail to start w/NPE if
lastflushedseqids file is empty
3641e7a is described below
commit 3641e7a97d1d6f460a8264fb989c821caf70bad5
Author: Sergey Shelukhin <[email protected]>
AuthorDate: Fri May 10 15:36:07 2019 -0700
HBASE-22376 master can fail to start w/NPE if lastflushedseqids file is
empty
Signed-off-by: Peter Somogyi <[email protected]>
---
.../src/main/java/org/apache/hadoop/hbase/master/HMaster.java | 2 +-
.../src/main/java/org/apache/hadoop/hbase/master/ServerManager.java | 4 ++++
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
index faa5c7d..8eb8a48 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
@@ -1007,7 +1007,7 @@ public class HMaster extends HRegionServer implements
MasterServices {
try {
this.serverManager.loadLastFlushedSequenceIds();
} catch (IOException e) {
- LOG.debug("Failed to load last flushed sequence id of regions"
+ LOG.info("Failed to load last flushed sequence id of regions"
+ " from file system", e);
}
// Set ourselves as active Master now our claim has succeeded up in zk.
diff --git
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java
index 0fb1551..88edb79 100644
---
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java
+++
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java
@@ -1126,6 +1126,10 @@ public class ServerManager {
try {
FlushedSequenceId flushedSequenceId =
FlushedSequenceId.parseDelimitedFrom(in);
+ if (flushedSequenceId == null) {
+ LOG.info(".lastflushedseqids found at {} is empty",
lastFlushedSeqIdPath);
+ return;
+ }
for (FlushedRegionSequenceId flushedRegionSequenceId : flushedSequenceId
.getRegionSequenceIdList()) {
byte[] encodedRegionName = flushedRegionSequenceId