[ https://issues.apache.org/jira/browse/GEODE-10400?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17583483#comment-17583483 ]
ASF GitHub Bot commented on GEODE-10400: ---------------------------------------- gaussianrecurrence opened a new pull request, #982: URL: https://github.com/apache/geode-native/pull/982 - Whenever execution server functions with isHA=false, hasResult=true and optimizeForWrite=true, if the metadata is incomplete a request of type EXECUTE_REGION_FUNCTION_SINGLE_HOP is sent with an invalid bucket set partition. This causes an InternalFunctionInvocationTargetException exception - In order to solve this issue, now, whenever calling groupByServerToBuckets, if there isn't a valid location for one of the buckets, it returns nullptr, triggering the fallback mechanism which would be sending EXECUTE_REGION_FUNCTION to one of the nodes instead. > Function execution triggering internal exception > ------------------------------------------------ > > Key: GEODE-10400 > URL: https://issues.apache.org/jira/browse/GEODE-10400 > 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 at least 3 members > *AND* a partitioned region with 1 redundant-copy > *AND* a server function called *JustAFunction* with isHA=false, > hasResult=true, optimizeForWrite=true > *AND* a native client configured to connect to the above cluster with a pool > using PR-Single-Hop=true > *WHEN* *JustAFunction* is executed with onRegion and no filters > *IF* the client has partial metadata due to the cluster starting up or a > rebalance occurring > *THEN* and exception of type > *"org.apache.geode.internal.cache.execute.InternalFunctionInvocationTargetException: > Multiple target nodes found for single hop operation"* is thrown by one of > the servers > --- > *Additional information.* Currently, in geode-native whenever the metadata > information is incomplete, and the user tries to execute the server function > with onRegion and no filters, a request of type > EXECUTE_REGION_FUNCTION_SINGLE_HOP is sent to each node. > But the issue is that bucket partition used by the client is incorrect, > leading consequently to the mentioned exception. > *Potential solution.* The potential solution would be to detect that the > metadata is incomplete before actually executing the function and send a > EXECUTE_REGION_FUNCTION request to one of the cluster nodes instead. -- This message was sent by Atlassian Jira (v8.20.10#820010)