[
https://issues.apache.org/jira/browse/HBASE-26370?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
May updated HBASE-26370:
------------------------
Description:
There is a table {{mytable}} in a HBase cluster with two HMasters and two
RegionServers.
1. Current active HMaster is HMaster1;
2. Client disabled the table {{mytable}};
3. {{mytable}} is in disabled state;
4. Client request to truncate {{mytable}};
5. HMaster1 tries to truncate {{mytable}}. For the TruncateTableState
{{TRUNCATE_TABLE_ASSIGN_REGIONS}}, HMaster1 assigns the regions of the table
and mark the table as Enabling;
6. HMaster1 crashes;
7. HMaster2 becomes active;
8. Client gets info that the truncate operation failed due to
{{TableNotDisabledException}}, while the table has already be truncated.
In HMaster2, we got following info:
{code:java}
INFO [ProcedureExecutor-12] procedure2.ProcedureExecutor: Rolledback procedure
TruncateTableProcedure (table=mytable preserveSplits=true) id=9 owner=myhbase
state=ROLLEDBACK exec-time=4.6030 sec
exception=org.apache.hadoop.hbase.TableNotDisabledException: mytable
{code}
It sees that the client receives such error message due to HMaster's recovery
process is recovering the truncate table process. But for client, it should not
get this error message caused by HMaster failover. Similarly, for create table,
disable table request, client can get java.util.concurrent.TimeoutException
caused by HMaster failover.
was:
There is a table {{mytable}} in a HBase cluster with two HMasters and two
RegionServers.
1. Current active HMaster is HMaster1;
2. Client disabled the table {{mytable}};
3. {{mytable}} is in disabled state;
4. Client request to truncate {{mytable}};
5. HMaster1 tries to truncate {{mytable}}. For the TruncateTableState
{{TRUNCATE_TABLE_ASSIGN_REGIONS}}, HMaster1 assigns the regions of the table
and mark the table as Enabling;
6. HMaster1 crashes;
7. HMaster2 becomes active;
8. Client gets info that the truncate operation failed due to
{{TableNotDisabledException}}, while the table has already be truncated.
In HMaster2, we got following info:
{code:java}
INFO [ProcedureExecutor-12] procedure2.ProcedureExecutor: Rolledback procedure
TruncateTableProcedure (table=mytable preserveSplits=true) id=9 owner=myhbase
state=ROLLEDBACK exec-time=4.6030 sec
exception=org.apache.hadoop.hbase.TableNotDisabledException: mytable
{code}
> Unexpected crash makes client receive error exception
> -----------------------------------------------------
>
> Key: HBASE-26370
> URL: https://issues.apache.org/jira/browse/HBASE-26370
> Project: HBase
> Issue Type: Bug
> Affects Versions: 1.7.1, 2.4.8
> Reporter: May
> Priority: Major
>
> There is a table {{mytable}} in a HBase cluster with two HMasters and two
> RegionServers.
> 1. Current active HMaster is HMaster1;
> 2. Client disabled the table {{mytable}};
> 3. {{mytable}} is in disabled state;
> 4. Client request to truncate {{mytable}};
> 5. HMaster1 tries to truncate {{mytable}}. For the TruncateTableState
> {{TRUNCATE_TABLE_ASSIGN_REGIONS}}, HMaster1 assigns the regions of the table
> and mark the table as Enabling;
> 6. HMaster1 crashes;
> 7. HMaster2 becomes active;
> 8. Client gets info that the truncate operation failed due to
> {{TableNotDisabledException}}, while the table has already be truncated.
> In HMaster2, we got following info:
> {code:java}
> INFO [ProcedureExecutor-12] procedure2.ProcedureExecutor: Rolledback
> procedure TruncateTableProcedure (table=mytable preserveSplits=true) id=9
> owner=myhbase state=ROLLEDBACK exec-time=4.6030 sec
> exception=org.apache.hadoop.hbase.TableNotDisabledException: mytable
> {code}
> It sees that the client receives such error message due to HMaster's recovery
> process is recovering the truncate table process. But for client, it should
> not get this error message caused by HMaster failover. Similarly, for create
> table, disable table request, client can get
> java.util.concurrent.TimeoutException caused by HMaster failover.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)