[
https://issues.apache.org/jira/browse/PHOENIX-6548?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17427291#comment-17427291
]
Geoffrey Jacoby commented on PHOENIX-6548:
------------------------------------------
Also cherry-picked to 4.16 and 5.1. Thanks for the contribution, [~jainankit]!
> Race condition when triggering index rebuilds as regionserver closes
> --------------------------------------------------------------------
>
> Key: PHOENIX-6548
> URL: https://issues.apache.org/jira/browse/PHOENIX-6548
> Project: Phoenix
> Issue Type: Bug
> Affects Versions: 4.14.3, 4.16.1
> Reporter: Geoffrey Jacoby
> Assignee: Ankit Jain
> Priority: Minor
> Fix For: 4.17.0, 5.2.0, 4.16.2, 5.1.3
>
>
> On each regionserver our coprocs keep a cache of HConnections with custom
> settings (such as short timeouts) for talking to other regionservers. They're
> used when coprocs need to make RPCs, such as during index rebuilds.
> When a regionserver is closed, these HConnections are closed as well.
> However, we've seen in our test pipelines a race condition where we may have
> just given out one of the HConnections to a coprocessor, only to have the
> connection closed just before it's used.
> This will produce an IllegalArgumentException from the HBase Table object,
> which (if the index rebuild was caused by a client Scan) will be thrown back
> to the client as a DoNotRetryIOException.
> In this case we want the client exception to be a normal retriable
> IOException, because if they try again after the region comes up again
> somewhere else, the Scan will likely succeed.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)