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.