hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "stack (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-5425) Punt on the timeout doesn't work in BulkEnabler#waitUntilDone (master's EnableTableHandler)
Date Fri, 17 Feb 2012 17:31:59 GMT

    [ https://issues.apache.org/jira/browse/HBASE-5425?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13210393#comment-13210393
] 

stack commented on HBASE-5425:
------------------------------

Committed to 0.92 branch too.
                
>  Punt on the timeout doesn't work in BulkEnabler#waitUntilDone (master's EnableTableHandler)
> --------------------------------------------------------------------------------------------
>
>                 Key: HBASE-5425
>                 URL: https://issues.apache.org/jira/browse/HBASE-5425
>             Project: HBase
>          Issue Type: Bug
>          Components: master
>    Affects Versions: 0.90.5, 0.92.0
>            Reporter: terry zhang
>             Fix For: 0.94.0
>
>         Attachments: HBASE-5425.patch
>
>
> please take a look at the code below in EnableTableHandler(hbase master):
> {code:title=EnableTableHandler.java|borderStyle=solid}
>     protected boolean waitUntilDone(long timeout)
>     throws InterruptedException {
>     
>       .....
>       int lastNumberOfRegions = this.countOfRegionsInTable;
>       while (!server.isStopped() && remaining > 0) {
>         Thread.sleep(waitingTimeForEvents);
>         regions = assignmentManager.getRegionsOfTable(tableName);
>         if (isDone(regions)) break;
>         // Punt on the timeout as long we make progress
>         if (regions.size() > lastNumberOfRegions) {
>           lastNumberOfRegions = regions.size();
>           timeout += waitingTimeForEvents;
>         }
>         remaining = timeout - (System.currentTimeMillis() - startTime);
>     ....
>     }
>     private boolean isDone(final List<HRegionInfo> regions) {
>       return regions != null && regions.size() >= this.countOfRegionsInTable;
>     }
> {code} 
> We can easily find out if we let lastNumberOfRegions = this.countOfRegionsInTable , the
function of punt on timeout code will never be executed. I think initlize lastNumberOfRegions
= 0 can make it work.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message