hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Heng Chen (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-16190) IntegrationTestDDLMasterFailover failed with IllegalArgumentException: n must be positive
Date Thu, 07 Jul 2016 03:37:11 GMT

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

Heng Chen commented on HBASE-16190:
-----------------------------------

check the code on master.  There is one race condition for below code
{code}
private abstract class TableAction extends  MasterAction{
    protected HTableDescriptor selectTable(ConcurrentHashMap<TableName, HTableDescriptor>
tableMap)
    {
      if (tableMap.isEmpty()){
        return null;
      }
      synchronized (tableMap){   //Notice:  the tableMap maybe cleared by other threads
        ArrayList<TableName> tableList = new ArrayList<TableName>(tableMap.keySet());
        TableName randomKey = tableList.get(RandomUtils.nextInt(tableList.size()));
        HTableDescriptor randomHtd = tableMap.get(randomKey);
        tableMap.remove(randomKey);
        return randomHtd;
      }
    }
  }
{code}

So i think we should do double check tableMap in sync scope.

> IntegrationTestDDLMasterFailover failed with IllegalArgumentException: n must be positive
> -----------------------------------------------------------------------------------------
>
>                 Key: HBASE-16190
>                 URL: https://issues.apache.org/jira/browse/HBASE-16190
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Romil Choksi
>            Priority: Minor
>              Labels: integration-test
>
> IntegrationTestDDLMasterFailover failed with IllegalArgumentException: n must be positive
> {code}
> 2016-07-05 12:19:22,154|beaver.machine|INFO|4569|140080276555584|MainThread|2016-07-05
12:19:21,661 INFO  [main] hbase.IntegrationTestDDLMasterFailover: Runtime is up
> 2016-07-05 12:19:22,154|beaver.machine|INFO|4569|140080276555584|MainThread|2016-07-05
12:19:22,026 ERROR [main] hbase.IntegrationTestDDLMasterFailover: Found exception in thread:
Thread-11
> 2016-07-05 12:19:22,154|beaver.machine|INFO|4569|140080276555584|MainThread|2016-07-05
12:19:21,384 INFO  [Thread-16] hbase.IntegrationTestDDLMasterFailover: Performing Action:
CREATE_TABLE
> 2016-07-05 12:19:22,154|beaver.machine|INFO|4569|140080276555584|MainThread|2016-07-05
12:19:22,027 INFO  [Thread-16] hbase.IntegrationTestDDLMasterFailover: Thread-16 stopped
> 2016-07-05 12:19:22,154|beaver.machine|INFO|4569|140080276555584|MainThread|2016-07-05
12:19:20,506 INFO  [Thread-30] hbase.IntegrationTestDDLMasterFailover: Performing Action:
ADD_COLUMNFAMILY
> 2016-07-05 12:19:22,154|beaver.machine|INFO|4569|140080276555584|MainThread|java.lang.IllegalArgumentException:
n must be positive
> 2016-07-05 12:19:22,154|beaver.machine|INFO|4569|140080276555584|MainThread|at java.util.Random.nextInt(Random.java:300)
> 2016-07-05 12:19:22,155|beaver.machine|INFO|4569|140080276555584|MainThread|at org.apache.commons.lang.math.JVMRandom.nextInt(JVMRandom.java:118)
> 2016-07-05 12:19:22,155|beaver.machine|INFO|4569|140080276555584|MainThread|at org.apache.commons.lang.math.RandomUtils.nextInt(RandomUtils.java:88)
> 2016-07-05 12:19:22,155|beaver.machine|INFO|4569|140080276555584|MainThread|at org.apache.commons.lang.math.RandomUtils.nextInt(RandomUtils.java:74)
> 2016-07-05 12:19:22,155|beaver.machine|INFO|4569|140080276555584|MainThread|at org.apache.hadoop.hbase.IntegrationTestDDLMasterFailover$TableAction.selectTable(IntegrationTestDDLMasterFailover.java:212)
> 2016-07-05 12:19:22,155|beaver.machine|INFO|4569|140080276555584|MainThread|at org.apache.hadoop.hbase.IntegrationTestDDLMasterFailover$AddColumnFamilyAction.perform(IntegrationTestDDLMasterFailover.java:421)
> 2016-07-05 12:19:22,155|beaver.machine|INFO|4569|140080276555584|MainThread|at org.apache.hadoop.hbase.IntegrationTestDDLMasterFailover$Worker.run(IntegrationTestDDLMasterFailover.java:695)
> {code}



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

Mime
View raw message