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

Executing a fire-and-forget function on all servers doesn't actually execute on all servers

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 1.1.0
    • functions
    • None

    Description

      Executing a fire-and-forget function on all servers only executes on the ones the client is currently connected to.

      The two ExecuteFunctionNoAckOp execute methods get the servers to execute against using code like:

      pool.getCurrentServers();
      

      This method just gets all the EndpointManager's endpointMap's ServerLocations.

      What should be done is more like what the ExecuteFunctionOp execute methods do:

      private static List<ServerLocation> getAllServers(PoolImpl pool) {
        List<ServerLocation> servers = null;
        if (pool.getLocators() == null || pool.getLocators().isEmpty()) {
          servers = ((ExplicitConnectionSourceImpl) pool.getConnectionSource()).getAllServers();
        } else {
          servers = ((AutoConnectionSourceImpl) pool.getConnectionSource()).findAllServers(); // n/w call on locator
        }
        return servers;
      }
      

      Attachments

        Issue Links

          Activity

            People

              abarve Amey Barve
              boglesby Barrett Oglesby
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: