[
https://issues.apache.org/jira/browse/HBASE-1604?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12731601#action_12731601
]
Eugene Kirpichov commented on HBASE-1604:
-----------------------------------------
Oops. Sorry, the patch is indeed reversed; I want to throw the exception.
Should I re-upload a correct version?
I have run into this issue and traced it in a debugger: indeed, broken
connections were being returned after a regionserver restart, and this issue
disappeared when I rethrew the exception.
> HBaseClient.getConnection() may return a broken connection without throwing
> an exception
> ----------------------------------------------------------------------------------------
>
> Key: HBASE-1604
> URL: https://issues.apache.org/jira/browse/HBASE-1604
> Project: Hadoop HBase
> Issue Type: Bug
> Components: client
> Affects Versions: 0.19.2
> Reporter: Eugene Kirpichov
> Attachments: hbase-1604.patch
>
>
> Consider the code of HBaseClient.getConnection():
> {code}
> connection.setupIOstreams();
> return connection;
> }
> {code}
> Now consider the setupIOstreams() method:
> {code}
> } catch (IOException e) {
> markClosed(e);
> close(); // Removes the connection from pool
> }
> {code}
> So, if something goes wrong inside of setupIOstreams, then after its
> invocation the connection will be broken (will have its .in and .out streams
> nulls, for example) and will not be in pool, but will still be returned from
> the getConnection method and cause further harm (for example, cause a
> NullPointerException in further calls such as sendCall, which use the in and
> out streams).
> Suggested fix: make the setupIOstreams method rethrow the IOException inside
> that catch block.
> Reproduction: Restart the hbase master and/or regionserver while a client
> program is running, and put a breakpoint into that catch block.
> I actually observed a situation where the broken connection stayed in the
> pool, but I don't yet know how to reproduce it or what is the reason. I am
> investigating the issue, but for now at least the aforementioned bug should
> be fixed.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.