virajjasani commented on a change in pull request #2047:
URL: https://github.com/apache/hbase/pull/2047#discussion_r453701827
##########
File path:
hbase-client/src/main/java/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.java
##########
@@ -3000,7 +3001,12 @@ private void getProcedureResult(long procId,
CompletableFuture<Void> future, int
// If any region compaction state is MAJOR_AND_MINOR
// the table compaction state is MAJOR_AND_MINOR, too.
if (err2 != null) {
-
future.completeExceptionally(unwrapCompletionException(err2));
+ // api can throw NSRE when the region is not online(split,
splitting, merge,
+ // merging, etc). Those regions will not be filtered above
so it's better to skip
+ // regions which throw NSRE.
+ if (!(err2.getCause() instanceof NotServingRegionException))
{
Review comment:
> the patch doesn't aim to fix this, patch is only for
`getCompactionState()` and not for `compact()`
If we can fix `compact()` i.e asynchronous compaction to consider waiting
for region to come online and then proceed for the table, that will be really
great. If we can maintain offline regions of a table, and retry compacting them
when they come online, that would be much better.
If region doesn't come online in some configurable time (~30/60 s), we can
fail compaction with proper error message and even indicate how many regions of
this table are offline for long time and hence, the request failed.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]