[ https://issues.apache.org/jira/browse/HBASE-4942?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13162546#comment-13162546 ]
Ted Yu commented on HBASE-4942: ------------------------------- Integrated to 0.92 branch and TRUNK. Thanks for the patch, Honghua. Thanks for the review Andy. > HMaster is unable to start of HFile V1 is used > ---------------------------------------------- > > Key: HBASE-4942 > URL: https://issues.apache.org/jira/browse/HBASE-4942 > Project: HBase > Issue Type: Bug > Components: io > Affects Versions: 0.92.0 > Reporter: Ted Yu > Assignee: honghua zhu > Fix For: 0.92.0, 0.94.0 > > Attachments: HBase_0.92.0_HBASE-4942, HBase_0.94.0_HBASE-4942 > > > This was reported by HH Zhu (zhh200...@gmail.com) > If the following is specified in hbase-site.xml: > {code} > <property> > <name>hfile.format.version</name> > <value>1</value> > </property> > {code} > Clear the hdfs directory "hbase.rootdir" so that MasterFileSystem.bootstrap() > is executed. > You would see: > {code} > java.lang.NullPointerException > at > org.apache.hadoop.hbase.io.hfile.HFileReaderV1.close(HFileReaderV1.java:358) > at > org.apache.hadoop.hbase.regionserver.StoreFile$Reader.close(StoreFile.java:1083) > at > org.apache.hadoop.hbase.regionserver.StoreFile.closeReader(StoreFile.java:570) > at org.apache.hadoop.hbase.regionserver.Store.close(Store.java:441) > at org.apache.hadoop.hbase.regionserver.HRegion.doClose(HRegion.java:782) > at org.apache.hadoop.hbase.regionserver.HRegion.close(HRegion.java:717) > at org.apache.hadoop.hbase.regionserver.HRegion.close(HRegion.java:688) > at > org.apache.hadoop.hbase.master.MasterFileSystem.bootstrap(MasterFileSystem.java:390) > at > org.apache.hadoop.hbase.master.MasterFileSystem.checkRootDir(MasterFileSystem.java:356) > at > org.apache.hadoop.hbase.master.MasterFileSystem.createInitialFileSystemLayout(MasterFileSystem.java:128) > at > org.apache.hadoop.hbase.master.MasterFileSystem.<init>(MasterFileSystem.java:113) > at > org.apache.hadoop.hbase.master.HMaster.finishInitialization(HMaster.java:435) > at org.apache.hadoop.hbase.master.HMaster.run(HMaster.java:314) > at java.lang.Thread.run(Thread.java:619) > {code} > The above exception would lead to: > {code} > java.lang.RuntimeException: HMaster Aborted > at > org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.java:152) > at > org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:103) > at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65) > at > org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:76) > at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:1512) > {code} > In org.apache.hadoop.hbase.master.HMaster.HMaster(Configuration conf), we > have: > {code} > this.conf.setFloat(CacheConfig.HFILE_BLOCK_CACHE_SIZE_KEY, 0.0f); > {code} > When CacheConfig is instantiated, the following is called: > {code} > org.apache.hadoop.hbase.io.hfile.CacheConfig.instantiateBlockCache(Configuration > conf) > {code} > Since "hfile.block.cache.size" is 0.0, instantiateBlockCache() would return > null, resulting in blockCache field of CacheConfig to be null. > When master closes Root region, > org.apache.hadoop.hbase.io.hfile.HFileReaderV1.close(boolean evictOnClose) > would be called. cacheConf.getBlockCache() returns null, leading to master > abort. > The following should be called in HFileReaderV1.close(), similar to the code > in HFileReaderV2.close(): > {code} > if (evictOnClose && cacheConf.isBlockCacheEnabled()) > {code} -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira