[ https://issues.apache.org/jira/browse/GEODE-1653?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15709358#comment-15709358 ]
ASF GitHub Bot commented on GEODE-1653: --------------------------------------- Github user gesterzhou commented on a diff in the pull request: https://github.com/apache/incubator-geode/pull/293#discussion_r90296214 --- Diff: geode-core/src/test/java/org/apache/geode/internal/cache/FireAndForgetFunctionOnAllServersDUnitTest.java --- @@ -92,22 +90,23 @@ public void testFireAndForgetFunctionOnAllServers() { // Step 4. Execute the function to put DistributedMemberID into above created replicated // region. - Function function = - new TestFunction(false, TestFunction.TEST_FUNCTION_FIREANDFORGET_ONALL_SERVERS); + Function function = new FireAndForgetFunctionOnAllServers(); FunctionService.registerFunction(function); + PoolImpl pool = (PoolImpl) pool1; + + await().atMost(60, SECONDS) + .until(() -> Assert.assertEquals(1, pool.getCurrentServers().size())); --- End diff -- The 2 lines should be moved to line 120. Otherwise, I wonder why the test will pass. > Executing a fire-and-forget function on all servers doesn't actually execute > on all servers > ------------------------------------------------------------------------------------------- > > Key: GEODE-1653 > URL: https://issues.apache.org/jira/browse/GEODE-1653 > Project: Geode > Issue Type: Bug > Components: functions > Reporter: Barry Oglesby > Assignee: Amey Barve > > 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: > {noformat} > pool.getCurrentServers(); > {noformat} > This method just gets all the {{EndpointManager's endpointMap's > ServerLocations}}. > What should be done is more like what the {{ExecuteFunctionOp execute}} > methods do: > {noformat} > 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; > } > {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)