[ https://issues.apache.org/jira/browse/HBASE-4942?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13162591#comment-13162591 ]
Hudson commented on HBASE-4942: ------------------------------- Integrated in HBase-0.92 #170 (See [https://builds.apache.org/job/HBase-0.92/170/]) HBASE-4942 HMaster is unable to start of HFile V1 is used (honghua Zhu) tedyu : Files : * /hbase/branches/0.92/CHANGES.txt * /hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileReaderV1.java > 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