You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Duo Zhang (Jira)" <ji...@apache.org> on 2020/08/27 06:38:00 UTC
[jira] [Resolved] (HBASE-5181) Improve error message when Master
fail-over happens and ZK unassigned node contains stale znode(s)
[ https://issues.apache.org/jira/browse/HBASE-5181?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Duo Zhang resolved HBASE-5181.
------------------------------
Resolution: Won't Fix
I think the code has already been changed a lot. Resolve as won't fix.
> Improve error message when Master fail-over happens and ZK unassigned node contains stale znode(s)
> --------------------------------------------------------------------------------------------------
>
> Key: HBASE-5181
> URL: https://issues.apache.org/jira/browse/HBASE-5181
> Project: HBase
> Issue Type: Bug
> Components: master
> Affects Versions: 0.90.5, 0.92.0
> Reporter: Mubarak Seyed
> Assignee: Mubarak Seyed
> Priority: Minor
> Labels: beginner
> Attachments: HBASE-5181-v1-trunk.patch
>
>
> When master fail-over happens, if we have number of RITs under /hbase/unassigned and if we have stale znode(s) (encoded region names) under /hbase/unassigned, we are getting
> {code}
> 2011-12-30 10:27:35,623 INFO org.apache.hadoop.hbase.master.HMaster: Master startup proceeding: master failover
> 2011-12-30 10:27:36,002 INFO org.apache.hadoop.hbase.master.AssignmentManager: Failed-over master needs to process 1717 regions in transition
> 2011-12-30 10:27:36,004 FATAL org.apache.hadoop.hbase.master.HMaster: Unhandled exception. Starting shutdown.
> java.lang.ArrayIndexOutOfBoundsException: -256
> at org.apache.hadoop.hbase.executor.RegionTransitionData.readFields(RegionTransitionData.java:148)
> at org.apache.hadoop.hbase.util.Writables.getWritable(Writables.java:105)
> at org.apache.hadoop.hbase.util.Writables.getWritable(Writables.java:75)
> at org.apache.hadoop.hbase.executor.RegionTransitionData.fromBytes(RegionTransitionData.java:198)
> at org.apache.hadoop.hbase.zookeeper.ZKAssign.getData(ZKAssign.java:743)
> at org.apache.hadoop.hbase.master.AssignmentManager.processRegionInTransition(AssignmentManager.java:262)
> at org.apache.hadoop.hbase.master.AssignmentManager.processFailover(AssignmentManager.java:223)
> at org.apache.hadoop.hbase.master.HMaster.finishInitialization(HMaster.java:401)
> at org.apache.hadoop.hbase.master.HMaster.run(HMaster.java:283)
> {code}
> and there is no clue on how to clean-up the stale znode(s) from unassigned using zkCli.sh (del /hbase/unassigned/<bad region name>). It would be good if we include the bad region name in IOException from RegionTransitionData.readFields().
> {code}
> @Override
> public void readFields(DataInput in) throws IOException {
> // the event type byte
> eventType = EventType.values()[in.readShort()];
> // the timestamp
> stamp = in.readLong();
> // the encoded name of the region being transitioned
> regionName = Bytes.readByteArray(in);
> // remaining fields are optional so prefixed with boolean
> // the name of the regionserver sending the data
> if (in.readBoolean()) {
> byte [] versionedBytes = Bytes.readByteArray(in);
> this.origin = ServerName.parseVersionedServerName(versionedBytes);
> }
> if (in.readBoolean()) {
> this.payload = Bytes.readByteArray(in);
> }
> }
> {code}
> If the code execution has survived until regionName then we can include the regionName in IOException with error message to clean-up the stale znode(s) under /hbase/unassigned.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)