[ https://issues.apache.org/jira/browse/HBASE-8314?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13630174#comment-13630174 ]
Nicolas Liochon commented on HBASE-8314: ---------------------------------------- I would expect that if we have the lease, we will be able to get the file length. Maybe a subset of unfortunate synchronisations and caches can make this false. I would expect this to be impossible on recent hdfs versions with HBASE-7878. This said, the patch won't break anything (it's just a retry), and I have seen strange bugs on HDFS around this. May be we should add a warning in the code we don't expect it to happen? > HLogSplitter can retry to open a 0-length hlog file > --------------------------------------------------- > > Key: HBASE-8314 > URL: https://issues.apache.org/jira/browse/HBASE-8314 > Project: HBase > Issue Type: Bug > Reporter: Jimmy Xiang > Assignee: Jimmy Xiang > Attachments: region-server.log, trunk-8314.patch > > > 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. > {noformat} > 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) > {noformat} -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira