Dimas Shidqi Parikesit created HDFS-17892:
---------------------------------------------

             Summary: RBF: permit not released during invokeConcurrent if 
getOrderedNamenodes throws an exception
                 Key: HDFS-17892
                 URL: https://issues.apache.org/jira/browse/HDFS-17892
             Project: Hadoop HDFS
          Issue Type: Bug
          Components: rbf
    Affects Versions: 3.4.3
            Reporter: Dimas Shidqi Parikesit


After [HDFS-17265|https://issues.apache.org/jira/browse/HDFS-17265], we either 
move acquirePermit after getOrderedNamenodes or wrap getOrderedNamenodes in a 
try-finally block so that the permit can be released if getOrderedNamenodes 
throws an exception.

However, the behavior of the latest trunk (a178eb7) has regressed, where we 
don't handle the permit release anymore.

The test failed to detect this problem because it only use 1 locations. In 
invokeConcurrent, the execution flows into invokeSingle where the exception is 
correctly handled using this branch

```

else if (locations.size() == 1 && timeOutMs <= 0) {
      // Shortcut, just one call
      return invokeSingle(locations.iterator().next(), method);
    }

```

In this patch, I've fixed the invokeConcurrent and the test to reflect this 
behavior.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to