You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Andrew Kyle Purtell (Jira)" <ji...@apache.org> on 2022/06/17 15:57:00 UTC
[jira] [Resolved] (HBASE-11191) HBase ClusterId File Empty Check Loggic
[ https://issues.apache.org/jira/browse/HBASE-11191?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andrew Kyle Purtell resolved HBASE-11191.
-----------------------------------------
Resolution: Incomplete
> HBase ClusterId File Empty Check Loggic
> ---------------------------------------
>
> Key: HBASE-11191
> URL: https://issues.apache.org/jira/browse/HBASE-11191
> Project: HBase
> Issue Type: Bug
> Environment: HBase 0.94+Hadoop2.2.0+Zookeeper3.4.5
> Reporter: sunjingtao
> Priority: Major
>
> if the clusterid file exists but empty ,then the following check logic in the MasterFileSystem.java has none effects.
> if (!FSUtils.checkClusterIdExists(fs, rd, c.getInt(
> HConstants.THREAD_WAKE_FREQUENCY, 10 * 1000))) {
> FSUtils.setClusterId(fs, rd, UUID.randomUUID().toString(), c.getInt(
> HConstants.THREAD_WAKE_FREQUENCY, 10 * 1000));
> }
> clusterId = FSUtils.getClusterId(fs, rd);
> because the checkClusterIdExists method only check the path .
> Path filePath = new Path(rootdir, HConstants.CLUSTER_ID_FILE_NAME);
> return fs.exists(filePath);
> in my case ,the file exists but is empty,so the readed clusterid is null which cause a nullPointerException:
> java.lang.NullPointerException
> at org.apache.hadoop.hbase.util.Bytes.toBytes(Bytes.java:441)
> at org.apache.hadoop.hbase.zookeeper.ClusterId.setClusterId(ClusterId.java:72)
> at org.apache.hadoop.hbase.master.HMaster.finishInitialization(HMaster.java:581)
> at org.apache.hadoop.hbase.master.HMaster.run(HMaster.java:433)
> at java.lang.Thread.run(Thread.java:745)
> is this a bug?please make sure!
--
This message was sent by Atlassian Jira
(v8.20.7#820007)