[
https://issues.apache.org/jira/browse/HDFS-17892?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18065890#comment-18065890
]
ASF GitHub Bot commented on HDFS-17892:
---------------------------------------
dParikesit opened a new pull request, #8345:
URL: https://github.com/apache/hadoop/pull/8345
JIRA: [HDFS-17892](https://issues.apache.org/jira/browse/HDFS-17892)
### Description of PR
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.
### How was this patch tested?
```
mvn -pl hadoop-hdfs-project/hadoop-hdfs-rbf -am
-Dtest=TestRouterHandlersFairness#testReleasedWhenExceptionOccurs test
```
### For code changes:
- [X] Does the title or this PR starts with the corresponding JIRA issue id
(e.g. 'HADOOP-17799. Your PR title ...')?
- [ ] Object storage: have the integration tests been executed and the
endpoint declared according to the connector-specific documentation?
- [ ] If adding new dependencies to the code, are these dependencies
licensed in a way that is compatible for inclusion under [ASF
2.0](http://www.apache.org/legal/resolved.html#category-a)?
- [ ] If applicable, have you updated the `LICENSE`, `LICENSE-binary`,
`NOTICE-binary` files?
### AI Tooling
If an AI tool was used:
- [ ] The PR includes the phrase "Contains content generated by <tool>"
where <tool> is the name of the AI tool used.
- [ ] My use of AI contributions follows the ASF legal policy
https://www.apache.org/legal/generative-tooling.html
> 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
> Priority: Critical
>
> 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]