You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "huaxiang sun (JIRA)" <ji...@apache.org> on 2016/03/14 19:00:37 UTC

[jira] [Created] (HBASE-15456) CreateTableProcedure/ModifyTableProcedure needs to fail when there is no family in descriptor

huaxiang sun created HBASE-15456:
------------------------------------

             Summary: CreateTableProcedure/ModifyTableProcedure needs to fail when there is no family in descriptor
                 Key: HBASE-15456
                 URL: https://issues.apache.org/jira/browse/HBASE-15456
             Project: HBase
          Issue Type: Improvement
          Components: master
    Affects Versions: 2.0.0
            Reporter: huaxiang sun
            Assignee: huaxiang sun
            Priority: Minor


If there is only one family in the table, DeleteColumnFamilyProcedure will fail. 
Currently, when hbase.table.sanity.checks is set to false, hbase master logs a warning and CreateTableProcedure/ModifyTableProcedure will succeed. 
This behavior is not consistent with DeleteColumnFamilyProcedure's. 

Another point, before HBASE-13145, PeriodicMemstoreFlusher will run into the following exception if there is no family in the table, lastStoreFlushTimeMap is populated for families, if there is no family in the table, there is no entry in lastStoreFlushTimeMap.

16/02/01 11:14:26 ERROR regionserver.HRegionServer$PeriodicMemstoreFlusher: Caught exception 
java.util.NoSuchElementException 
at java.util.concurrent.ConcurrentHashMap$HashIterator.nextEntry(ConcurrentHashMap.java:1354) 
at java.util.concurrent.ConcurrentHashMap$ValueIterator.next(ConcurrentHashMap.java:1384) 
at java.util.Collections.min(Collections.java:628) 
at org.apache.hadoop.hbase.regionserver.HRegion.getEarliestFlushTimeForAllStores(HRegion.java:1572) 
at org.apache.hadoop.hbase.regionserver.HRegion.shouldFlush(HRegion.java:1904) 
at org.apache.hadoop.hbase.regionserver.HRegionServer$PeriodicMemstoreFlusher.chore(HRegionServer.java:1509) 
at org.apache.hadoop.hbase.Chore.run(Chore.java:87) 
at java.lang.Thread.run(Thread.java:745) 




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