[ 
https://issues.apache.org/jira/browse/HBASE-16627?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15487829#comment-15487829
 ] 

Stephen Yuan Jiang commented on HBASE-16627:
--------------------------------------------

That is true, {{isTableState()}} 'eats' the TableNotFoundException exception 
from {{getTableState()}} and log an ERROR.  

{noformat}
  @NonNull
  public TableState.State getTableState(TableName tableName) throws IOException 
{
    TableState currentState = readMetaState(tableName);
    if (currentState == null) {
      throw new TableNotFoundException(tableName);
    }
    return currentState.getState();
  }
{noformat}

Now, I think we should lower the log level to WARN - this is not error, as 
caller could legally ask for a non-existing table.

> AssignmentManager#isDisabledorDisablingRegionInRIT should check whether table 
> exists
> ------------------------------------------------------------------------------------
>
>                 Key: HBASE-16627
>                 URL: https://issues.apache.org/jira/browse/HBASE-16627
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Ted Yu
>            Assignee: Stephen Yuan Jiang
>            Priority: Minor
>
> [~stack] first reported this issue when he played with backup feature.
> The following exception can be observed in backup unit tests:
> {code}
> 2016-09-13 16:21:57,661 ERROR [ProcedureExecutor-3] 
> master.TableStateManager(134): Unable to get table hbase:backup state
> org.apache.hadoop.hbase.TableNotFoundException: hbase:backup
>         at 
> org.apache.hadoop.hbase.master.TableStateManager.getTableState(TableStateManager.java:174)
>         at 
> org.apache.hadoop.hbase.master.TableStateManager.isTableState(TableStateManager.java:131)
>         at 
> org.apache.hadoop.hbase.master.AssignmentManager.isDisabledorDisablingRegionInRIT(AssignmentManager.java:1221)
>         at 
> org.apache.hadoop.hbase.master.AssignmentManager.assign(AssignmentManager.java:739)
>         at 
> org.apache.hadoop.hbase.master.AssignmentManager.assign(AssignmentManager.java:1567)
>         at 
> org.apache.hadoop.hbase.master.AssignmentManager.assign(AssignmentManager.java:1546)
>         at 
> org.apache.hadoop.hbase.util.ModifyRegionUtils.assignRegions(ModifyRegionUtils.java:254)
>         at 
> org.apache.hadoop.hbase.master.procedure.CreateTableProcedure.assignRegions(CreateTableProcedure.java:430)
>         at 
> org.apache.hadoop.hbase.master.procedure.CreateTableProcedure.executeFromState(CreateTableProcedure.java:127)
>         at 
> org.apache.hadoop.hbase.master.procedure.CreateTableProcedure.executeFromState(CreateTableProcedure.java:57)
>         at 
> org.apache.hadoop.hbase.procedure2.StateMachineProcedure.execute(StateMachineProcedure.java:119)
>         at 
> org.apache.hadoop.hbase.procedure2.Procedure.doExecute(Procedure.java:452)
>         at 
> org.apache.hadoop.hbase.procedure2.ProcedureExecutor.execProcedure(ProcedureExecutor.java:1066)
>         at 
> org.apache.hadoop.hbase.procedure2.ProcedureExecutor.execLoop(ProcedureExecutor.java:855)
>         at 
> org.apache.hadoop.hbase.procedure2.ProcedureExecutor.execLoop(ProcedureExecutor.java:808)
> {code}
> AssignmentManager#isDisabledorDisablingRegionInRIT should take table 
> existence into account.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to