You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Junegunn Choi (Jira)" <ji...@apache.org> on 2019/12/04 05:04:00 UTC

[jira] [Updated] (HBASE-22529) Sanity check for in-memory compaction policy

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

Junegunn Choi updated HBASE-22529:
----------------------------------
    Attachment: HBASE-22529-v3.patch

> Sanity check for in-memory compaction policy
> --------------------------------------------
>
>                 Key: HBASE-22529
>                 URL: https://issues.apache.org/jira/browse/HBASE-22529
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 2.1.4
>            Reporter: Junegunn Choi
>            Assignee: Junegunn Choi
>            Priority: Minor
>         Attachments: HBASE-22529-v2.patch, HBASE-22529-v3.patch, HBASE-22529.patch
>
>
> Currently, if a column family is altered with an invalid in-memory compaction policy via {{Admin}} API, the regions for the table get stuck indefinitely.
> {noformat}
> Failed open of region=######
> java.io.IOException: java.lang.IllegalArgumentException: No enum constant org.apache.hadoop.hbase.MemoryCompactionPolicy.INVALID
>         at org.apache.hadoop.hbase.regionserver.HRegion.initializeStores(HRegion.java:1081)
>         at org.apache.hadoop.hbase.regionserver.HRegion.initializeRegionInternals(HRegion.java:942)
>         at org.apache.hadoop.hbase.regionserver.HRegion.initialize(HRegion.java:898)
>         at org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7241)
>         at org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7200)
>         at org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7172)
>         at org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7130)
>         at org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7081)
>         at org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.openRegion(OpenRegionHandler.java:283)
>         at org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.process(OpenRegionHandler.java:108)
>         at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:104)
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>         at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.IllegalArgumentException: No enum constant org.apache.hadoop.hbase.MemoryCompactionPolicy.INVALID
>         at java.lang.Enum.valueOf(Enum.java:238)
>         at org.apache.hadoop.hbase.MemoryCompactionPolicy.valueOf(MemoryCompactionPolicy.java:26)
>         at org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder$ModifyableColumnFamilyDescriptor.lambda$getInMemoryCompaction$4(ColumnFamilyDescriptorBuilder.java:869)
>         at org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder$ModifyableColumnFamilyDescriptor.lambda$getStringOrDefault$0(ColumnFamilyDescriptorBuilder.java:703)
>         at org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder$ModifyableColumnFamilyDescriptor.getOrDefault(ColumnFamilyDescriptorBuilder.java:711)
>         at org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder$ModifyableColumnFamilyDescriptor.getStringOrDefault(ColumnFamilyDescriptorBuilder.java:703)
>         at org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder$ModifyableColumnFamilyDescriptor.getInMemoryCompaction(ColumnFamilyDescriptorBuilder.java:868)
>         at org.apache.hadoop.hbase.regionserver.HStore.getMemstore(HStore.java:350)
>         at org.apache.hadoop.hbase.regionserver.HStore.<init>(HStore.java:278)
>         at org.apache.hadoop.hbase.regionserver.HRegion.instantiateHStore(HRegion.java:5728)
>         at org.apache.hadoop.hbase.regionserver.HRegion$1.call(HRegion.java:1045)
>         at org.apache.hadoop.hbase.regionserver.HRegion$1.call(HRegion.java:1042)
>         at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>         at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>         ... 3 more
> {noformat}
> This patch adds a sanity check for the value so that such alter operation should not proceed.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)