Description
In case a HLog file is of size 0, and it is under recovery, HLogSplitter will fail to open it since it can get the file length, therefore, master can't start.
java.io.IOException: Cannot obtain block length for LocatedBlock{...; getBlockSize()=0; corrupt=false; offset=0; locs=[...]} at org.apache.hadoop.hdfs.DFSInputStream.readBlockLength(DFSInputStream.java:238) at org.apache.hadoop.hdfs.DFSInputStream.fetchLocatedBlocksAndGetLastBlockLength(DFSInputStream.java:182) at org.apache.hadoop.hdfs.DFSInputStream.openInfo(DFSInputStream.java:124) at org.apache.hadoop.hdfs.DFSInputStream.<init>(DFSInputStream.java:117) at org.apache.hadoop.hdfs.DFSClient.open(DFSClient.java:1080)
Attachments
Attachments
Issue Links
- is related to
-
HBASE-8321 Log split worker should heartbeat to avoid timeout when the hlog is under recovery
- Closed
-
HBASE-8485 Retry to open a HLog on more exceptions
- Closed
- relates to
-
HBASE-6443 HLogSplitter should ignore 0 length files
- Closed