Stephen Yuan Jiang created HBASE-16016: ------------------------------------------
Summary: 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 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)