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]