[ https://issues.apache.org/jira/browse/HBASE-10497?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13899422#comment-13899422 ]
Nicolas Liochon commented on HBASE-10497: ----------------------------------------- I've submitted the patch, to see what hadoop-qa says. The patch is big. It touches some scaring part. I would propose to split it: - some parts are in the mini cluster: even if we do something wrong here it's not a big deal - some parts seems good: RpcClient (I can +1 this) - some parts are more complex: MemStoreFlusher: I'm not sure. It's a runnable, restoring the status seems meaningless; SplitLogWorker seems wrong, it's a runnable ;Leases. I don't know. Could be wrong again; HRegionServer - some parts, imho, should not be managed by restoring the status but by throwing an exception or even explaining why we do nothing. That's the case here. {code} public TableListModel getTableList() throws IOException { StringBuilder path = new StringBuilder(); path.append('/'); if (accessToken != null) { path.append(accessToken); path.append('/'); } int code = 0; for (int i = 0; i < maxRetries; i++) { // Response response = client.get(path.toString(), // Constants.MIMETYPE_XML); Response response = client.get(path.toString(), Constants.MIMETYPE_PROTOBUF); code = response.getCode(); switch (code) { case 200: TableListModel t = new TableListModel(); return (TableListModel) t.getObjectFromMessage(response.getBody()); case 404: throw new IOException("Table list not found"); case 509: try { Thread.sleep(sleepTime); } catch (InterruptedException e) { thrown new InterruptedIOException(); } break; default: throw new IOException("get request to " + path.toString() + " request returned " + code); } } throw new IOException("get request to " + path.toString() + " request timed out"); } {code} So at the end, we could have a few sub jiras: - the ones with a high level of confidence - the less confident ones bug not very risky - the ones when we don't restore the status but we properly manage the exception - a set of small ones per area for the others. They will be easier to review. > Add standard handling for swallowed InterruptedException thrown by > Thread.sleep under HBase-Client/HBase-Server folders systematically > -------------------------------------------------------------------------------------------------------------------------------------- > > Key: HBASE-10497 > URL: https://issues.apache.org/jira/browse/HBASE-10497 > Project: HBase > Issue Type: Improvement > Components: Client, regionserver > Reporter: Feng Honghua > Assignee: Feng Honghua > Priority: Minor > Attachments: HBASE-10497-trunk_v1.patch, HBASE-10497-trunk_v2.patch > > > There are many places where InterruptedException thrown by Thread.sleep are > swallowed silently (which are neither declared in the caller method's throws > clause nor rethrown immediately) under HBase-Client/HBase-Server folders. > It'd be better to add standard 'log and call currentThread.interrupt' for > such cases. -- This message was sent by Atlassian JIRA (v6.1.5#6160)