You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Yu Li (JIRA)" <ji...@apache.org> on 2016/05/31 13:13:12 UTC
[jira] [Resolved] (HBASE-15922) Fix waitForMaximumCurrentTasks
logic in AsyncProcess
[ https://issues.apache.org/jira/browse/HBASE-15922?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Yu Li resolved HBASE-15922.
---------------------------
Resolution: Duplicate
Find the issue duplicates HBASE-15811 after updating my local git repository, sorry for the spam...
> Fix waitForMaximumCurrentTasks logic in AsyncProcess
> ----------------------------------------------------
>
> Key: HBASE-15922
> URL: https://issues.apache.org/jira/browse/HBASE-15922
> Project: HBase
> Issue Type: Bug
> Affects Versions: 2.0.0, 1.2.1, 1.1.4
> Reporter: Yu Li
> Assignee: Yu Li
>
> In current implementation of AsyncProcess#waitForMaximumCurrentTasks, we have below codes:
> {code}
> while ((currentInProgress = this.tasksInProgress.get()) > max) {
> ...
> try {
> synchronized (this.tasksInProgress) {
> if (tasksInProgress.get() != oldInProgress) break;
> this.tasksInProgress.wait(100);
> }
> } catch (InterruptedException e) {
> throw new InterruptedIOException("#" + id + ", interrupted." +
> " currentNumberOfTask=" + currentInProgress);
> }
> }
> {code}
> Which will cause end of while loop if there's any task done inside one loop making {{taskInProgress.get()}} no longer equals to {{oldInProgress}}
> This is a regression issue caused by HBASE-11403 and only exists in branch-1/master branch, we could easily see the difference comparing to latest 0.98 code.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)