[ https://issues.apache.org/jira/browse/HBASE-16016?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15328265#comment-15328265 ]
Matteo Bertozzi commented on HBASE-16016: ----------------------------------------- +1 > AssignmentManager#waitForAssignment could have unexpected negative deadline > --------------------------------------------------------------------------- > > Key: HBASE-16016 > URL: https://issues.apache.org/jira/browse/HBASE-16016 > Project: HBase > Issue Type: Bug > Reporter: Stephen Yuan Jiang > Assignee: Stephen Yuan Jiang > Attachments: HBase-16016.v1-master.patch > > > AssignmentManager#waitForAssignment(HRegionInfo regionInfo) passes > Long.MAX_VALUE deadline and intends to wait forever. However, the deadline > would be overflowed from AssignmentManager#waitForAssignment(final > Collection<HRegionInfo> regionSet, final boolean waitTillAllAssigned, final > int reassigningRegions, final long minEndTime), which would cause no wait! > {code} > /** > * Waits until the specified region has completed assignment. > * <p> > * If the region is already assigned, returns immediately. Otherwise, > method > * blocks until the region is assigned. > * @param regionInfo region to wait on assignment for > * @return true if the region is assigned false otherwise. > * @throws InterruptedException > */ > public boolean waitForAssignment(HRegionInfo regionInfo) > throws InterruptedException { > ArrayList<HRegionInfo> regionSet = new ArrayList<HRegionInfo>(1); > regionSet.add(regionInfo); > return waitForAssignment(regionSet, true, Long.MAX_VALUE); > } > /** > * Waits until the specified region has completed assignment, or the > deadline is reached. > */ > protected boolean waitForAssignment(final Collection<HRegionInfo> regionSet, > final boolean waitTillAllAssigned, final int reassigningRegions, > final long minEndTime) throws InterruptedException { > long deadline = minEndTime + bulkPerRegionOpenTimeGuesstimate * > (reassigningRegions + 1); // ----> OVERFLOW > return waitForAssignment(regionSet, waitTillAllAssigned, deadline); > } > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)