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)

Reply via email to