[
https://issues.apache.org/jira/browse/PHOENIX-4993?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16717431#comment-16717431
]
Geoffrey Jacoby commented on PHOENIX-4993:
------------------------------------------
[~kiran.maturi] - Thanks for the patch. A few initial thoughts:
1. Looks like your new test class is missing an Apache license, and this is
generating a release audit warning.
2. Please use a logger rather than writing out to System.out directly.
3. Rather than commenting out the call to ConnectionFactory.shutdown(), please
just remove the line. It's good though that you include a comment about why you
don't need it.
> Data table region should not close RS level shared/cached connections like
> IndexWriter, RecoveryIndexWriter
> -----------------------------------------------------------------------------------------------------------
>
> Key: PHOENIX-4993
> URL: https://issues.apache.org/jira/browse/PHOENIX-4993
> Project: Phoenix
> Issue Type: Bug
> Affects Versions: 4.14.0
> Reporter: Kiran Kumar Maturi
> Assignee: Kiran Kumar Maturi
> Priority: Major
> Attachments: PHOENIX-4993-4.x-HBase-1.3.01.patch
>
>
> Issue is related to Region Server being killed when one region is closing and
> another region is trying to write index updates.
> When the data table region closes it will close region server level
> cached/shared connections and it could interrupt other region
> index/index-state update.
> -- Region1: Closing
> {code:java}
> TrackingParallellWriterIndexCommitter#stop() {
> this.retryingFactory.shutdown();
> this.noRetriesFactory.shutdown();
> }{code}
> closes the cached connections calling
> CoprocessorHConnectionTableFactory#shutdown() in ServerUtil.java
>
> --Region2: Writing index updates
> Index updates fail as connections are closed, which leads to
> RejectedExecutionException/Connection being null. This triggers
> PhoenixIndexFailurePolicy#handleFailureWithExceptions that tries to get the
> the syscat table using the cached connections. Here it will not be able to
> reach to SYSCAT , so we will trigger KillServreFailurePolicy.
> CoprocessorHConnectionTableFactory#getTable()
>
>
> {code:java}
> if (connection == null || connection.isClosed()) {
> throw new IllegalArgumentException("Connection is null or closed.");
> }{code}
>
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)