[ https://issues.apache.org/jira/browse/HBASE-10472?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13894331#comment-13894331 ]
Nicolas Liochon commented on HBASE-10472: ----------------------------------------- bq. I guess we need this for checking the meta location from zk right? Yes. bq. Do we need that to be interruptible as well? If the API is synchronous, it needs to be interruptible... bq. I guess we might need it if we ever want to go meta replicas. Actually, we need it already, for example because a split task can be interrupted. Some HBase code relies on being interruptible already. With replicas, or without replica, you may want to rely on this to free the handlers (for example, if we get stuck on a region, we may use all the handlers of the region server today: if the client cancels the query interrupting the call does help). bq. We are not setting the interrupted flag for the thread in ReplicationPeersZKImpl, ZKLeaderManager If we throw an exception, it means that we took care of the interruption, so we don't need to reset the interrupt flag (and should not). If we abort the server, we can consider that we took care of the interruption. Keeping the thread interrupted could mean interrupting the abort, which may not be what was expected. bq. Can we get away with some of the changes, if we keep the original ZKUtil.getData() and have ZKUtil.getDataInterruptible() ? Not really, imho: we need the code to be clean when there are interruptions. ZooKeeper API is clean. Our wrapping is not clean today. > Manage the interruption in ZKUtil#getData > ----------------------------------------- > > Key: HBASE-10472 > URL: https://issues.apache.org/jira/browse/HBASE-10472 > Project: HBase > Issue Type: Bug > Components: Client, master, regionserver > Affects Versions: 0.98.0, 0.99.0 > Reporter: Nicolas Liochon > Assignee: Nicolas Liochon > Fix For: 0.98.1, 0.99.0 > > Attachments: 10472.v1.patch, 10472.v2.patch > > > Many, but not all, methods in ZKUtil partly hides the interruption: they > return null or something like that. Many times, this will result in a NPE, or > something undefined. > This jira is limited to the getData to keep things small enough (it's used in > hbase-client code). > The code is supposed to behave at least 'as well as before', or better > (hopefully). > It could be included in a later .98 release (98.1) and in .99 -- This message was sent by Atlassian JIRA (v6.1.5#6160)