[
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)