You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Guangxu Cheng (JIRA)" <ji...@apache.org> on 2017/09/13 07:59:01 UTC

[jira] [Created] (HBASE-18804) Sanity check the number of regions when creating a table

Guangxu Cheng created HBASE-18804:
-------------------------------------

             Summary: Sanity check the number of regions when creating a table
                 Key: HBASE-18804
                 URL: https://issues.apache.org/jira/browse/HBASE-18804
             Project: HBase
          Issue Type: Bug
          Components: master
    Affects Versions: 2.0.0, 1.5.0
            Reporter: Guangxu Cheng
            Assignee: Guangxu Cheng


A few days ago, a table was erroneously created with NUMREGIONS set to 200k which resulted in the master down. 
I got exceptions like:
{code:java}
2017-08-17 11:10:17,970 WARN  [main-SendThread(localhost:2181)] zookeeper.ClientCnxn: Session 0x45c9d4132c547f1 for server localhost/localhost:2181, unexpected error, closing socket connection and attempting reconnect
java.io.IOException: Packet len6842180 is out of range!
        at org.apache.zookeeper.ClientCnxnSocket.readLength(ClientCnxnSocket.java:112)
        at org.apache.zookeeper.ClientCnxnSocketNIO.doIO(ClientCnxnSocketNIO.java:79)
        at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:366)
        at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)
{code}
That's because a lot of regions need to assign in a short interval, and the size of the node /hbase/region-in-transition exceeds the default value.
We solved this problem by setting "jute.maxbuffer".

But we can sanity check the number of regions when creating a table and reject the requests.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)