[
https://issues.apache.org/jira/browse/HBASE-3064?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
stack updated HBASE-3064:
-------------------------
Fix Version/s: 0.90.0
> Long sleeping in HConnectionManager after thread is interrupted
> ---------------------------------------------------------------
>
> Key: HBASE-3064
> URL: https://issues.apache.org/jira/browse/HBASE-3064
> Project: HBase
> Issue Type: Bug
> Components: client, ipc
> Reporter: Bruno Dumon
> Fix For: 0.90.0
>
> Attachments: connectionmgr-interruptedexc-patch.txt
>
>
> We run sometimes into the problem that when a thread running HBase client
> code is interrupted, it hangs. The problem is it is sleeping in
> HConnectionManager, in the methods locateRegionInMeta and
> getRegionServerWithRetries, where there is code like this:
> {code}
> try{
> Thread.sleep(getPauseTime(tries));
> } catch (InterruptedException e) {
> // continue
> }
> {code}
> which is located in a for-loop, so it will keep retrying even when someone
> requested the thread to stop its work.
> The attached patch proposes as fix to re-assert the interrupted status of the
> thread and to throw an IOException. Some other cases of
> InterruptedException-handling in the same class do a similar thing, though
> sometimes returning null or breaking. I found returning null causes NPE's in
> other locations so I think it is better to throw an informative exception.
> Side thought: I would not be against propagating the InterruptedException all
> the way up to the client APIs (HTable/HBaseAdmin), so that users who want to
> support interruptable threads do not have to check the interrupted flag. I'd
> need to check some more but I have the impression that now sometimes methods
> like HTable.get() simply return null when a thread is interrupted.
> Some background on good ways of handling InterruptedExceptions can be found
> here:
> http://www.ibm.com/developerworks/java/library/j-jtp05236.html
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.