[
https://issues.apache.org/jira/browse/HBASE-20111?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16386200#comment-16386200
]
Josh Elser commented on HBASE-20111:
------------------------------------
{code}
diff --git
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.java
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.java
index 70ddbe5..54fb827 100644
---
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.java
+++
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.java
@@ -173,7 +173,7 @@ public class SplitTableRegionProcedure
}
if (!splittable) {
- IOException e = new IOException(regionToSplit.getShortNameToLog() + "
NOT splittable");
+ IOException e = new
DoNotRetryIOException(regionToSplit.getShortNameToLog() + " NOT splittable");
if (splittableCheckIOE != null) e.initCause(splittableCheckIOE);
throw e;
}
diff --git
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java
index 6dbced2..ba38078 100644
---
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java
+++
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java
@@ -1732,7 +1732,7 @@ public class RSRpcServices implements
HBaseRPCErrorHandler,
if (request.hasCompactionState() && request.getCompactionState()) {
builder.setCompactionState(ProtobufUtil.createCompactionState(region.getCompactionState()));
}
- builder.setSplittable(region.isSplittable());
+ builder.setSplittable(region.isSplittable() &&
region.getSplitPolicy().shouldSplit());
builder.setMergeable(region.isMergeable());
if (request.hasBestSplitRow() && request.getBestSplitRow() &&
bestSplitRow != null) {
builder.setBestSplitRow(UnsafeByteOperations.unsafeWrap(bestSplitRow));
{code}
I feel like this might incorrectly change the semantics. A region is normally
un-splittable because of something transient: not closing, not closed, has no
reference files. The Phoenix case where we are setting a RegionSplitPolicy
which always returns {{false}} is an edge case -- HBase normally expects split
policies to return varied results over time (e.g. based on size, busy-ness of
the region).
Was there another reason you switched this form IOE or DNRIOE?
> Able to split region explicitly even on shouldSplit return false from split
> policy
> ----------------------------------------------------------------------------------
>
> Key: HBASE-20111
> URL: https://issues.apache.org/jira/browse/HBASE-20111
> Project: HBase
> Issue Type: Bug
> Reporter: Rajeshbabu Chintaguntla
> Assignee: Rajeshbabu Chintaguntla
> Priority: Critical
> Fix For: 2.0.0
>
> Attachments: HBASE-20111.patch, HBASE-20111_test.patch
>
>
> Currently able to split the region explicitly even when the split policy
> returns from shouldSplit.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)