[ https://issues.apache.org/jira/browse/GEODE-10012?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17487523#comment-17487523 ]
ASF GitHub Bot commented on GEODE-10012: ---------------------------------------- gaussianrecurrence opened a new pull request #920: URL: https://github.com/apache/geode-native/pull/920 - Currently, in the native client, if you configure retryAttemps to be >0 for your pool, non-HA function executions are retried. This happens as retry are coded in the network layer. - Geode documentation states that retries should happen for functions which isHA=true and in the function execution logic. And this is how it works in the Java client API. - If a function is retried at the network layer, it could happen that - So, this commit changes the behavior, so non-HA functions are not retried. - Also, FunctionAttributes were introduced in order to improve code readability. - Moved function execution classes to a file of its own, in order to improve readability and modularity. - Solved a bug in which there could not exist 2 functions with the same name, defined on different clusters and with different function attributes. - Implemented several new ITs to test that non-HA function executions are not retried by the API. - These are the cases being tested: * Function execution with PR enabled: - A timeout is forced from the server-side, so the server closes the connection towards the client. - A timeout is forced in the client. * Function execution with PR disabled. Co-authored-by: Jakov Varenina <jakov.varen...@est.tech> -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: notifications-unsubscr...@geode.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Avoid retries for non-HA function execution > ------------------------------------------- > > Key: GEODE-10012 > URL: https://issues.apache.org/jira/browse/GEODE-10012 > Project: Geode > Issue Type: Bug > Components: native client > Reporter: Mario Salazar de Torres > Assignee: Mario Salazar de Torres > Priority: Major > Labels: needsTriage > > *GIVEN* a cluster with 3 servers and 1 locator > *AND* a PartitionedRegion with redundant-copies="1" > *AND* a user-defined Function with isHA=false > *AND* a geode-native client with a pool with single-hop enabled and retry > attempts set to 2 > *WHEN* execution fails due to a connectivity issue/connection > timeout/internal cluster error > *THEN* function is retried twice > ---- > *Additional information.* The function is retried at the network code layer, > and given whenever there is a timeout/connectivity error, the BSL is removed > from the ClientMetadataService, whenever retries happen, you might get a > *InternalFunctionInvocationTargetException* exception thrown indicating: > {code:java} > Multiple target nodes found for single hop operation {code} > Also, have into account that Java client API behaviour never retries a > Function Execution if isHA=false for that function, and whenever isHA=true, > the function is retried but on the function execution logic and not at the > networking layer. > -- This message was sent by Atlassian Jira (v8.20.1#820001)