You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2022/08/23 09:53:00 UTC

[jira] [Commented] (GEODE-10400) Function execution triggering internal exception

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