Uploaded image for project: 'Geode'
  1. Geode
  2. GEODE-10400

Function execution triggering internal exception

    XMLWordPrintableJSON

Details

    Description

      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.

      Attachments

        Issue Links

          Activity

            People

              gaussianrecurrence Mario Salazar de Torres
              gaussianrecurrence Mario Salazar de Torres
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated: