You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Zhihong Yu (Assigned) (JIRA)" <ji...@apache.org> on 2012/02/22 22:43:48 UTC

[jira] [Assigned] (HBASE-5425) Punt on the timeout doesn't work in BulkEnabler#waitUntilDone (master's EnableTableHandler)

     [ https://issues.apache.org/jira/browse/HBASE-5425?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Zhihong Yu reassigned HBASE-5425:
---------------------------------

    Assignee: terry zhang
    
>  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
>            Assignee: 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