[ 
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 seems 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}

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.


> 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 seems 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)

Reply via email to