[ 
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]

Reply via email to