[ 
https://issues.apache.org/jira/browse/HBASE-15456?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

huaxiang sun updated HBASE-15456:
---------------------------------
    Description: 
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. 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) 


  was:
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) 



> 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. 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