[ https://issues.apache.org/jira/browse/GEODE-9576?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17412733#comment-17412733 ]
ASF GitHub Bot commented on GEODE-9576: --------------------------------------- echobravopapa commented on a change in pull request #864: URL: https://github.com/apache/geode-native/pull/864#discussion_r705553536 ########## File path: cppcache/integration/test/FunctionExecutionTest.cpp ########## @@ -175,6 +181,58 @@ TEST(FunctionExecutionTest, cache.close(); } +void populateRegion(const std::shared_ptr<Region> ®ion) { + for (int i = 0; i < 113; i++) { + region->put("KEY--" + std::to_string(i), "VALUE--" + std::to_string(i)); + } +} + +TEST(FunctionExecutionTest, FunctionExecutionSingleHopNonHA) { + Cluster cluster{ + LocatorCount{1}, ServerCount{3}, + CacheXMLFiles( + {std::string(getFrameworkString(FrameworkVariable::TestCacheXmlDir)) + + "/func_cacheserver1_pool_nonHA.xml", + std::string(getFrameworkString(FrameworkVariable::TestCacheXmlDir)) + + "/func_cacheserver2_pool_nonHA.xml", + std::string(getFrameworkString(FrameworkVariable::TestCacheXmlDir)) + + "/func_cacheserver3_pool_nonHA.xml"})}; + + cluster.start([&]() { + cluster.getGfsh() + .deploy() + .jar(getFrameworkString(FrameworkVariable::JavaObjectJarPath)) + .execute(); + }); + + auto cache = CacheFactory().create(); + auto poolFactory = cache.getPoolManager().createFactory(); + + cluster.applyLocators(poolFactory); + + auto pool = + poolFactory.setPRSingleHopEnabled(true).setRetryAttempts(0).create( + "pool"); + + auto region = cache.createRegionFactory(RegionShortcut::PROXY) + .setPoolName("pool") + .create("partition_region"); + + populateRegion(region); + + for (int i = 0; i < 30; i++) { + auto functionService = FunctionService::onRegion(region); + auto rc = + functionService.withCollector(std::make_shared<TestResultCollector>()) Review comment: A similarly difficult issue was tested and fixed in recent months, regarding incorrect EventIds etc... which fixed a "fix" that was making native operate at parity with java client, but the initial fix was incomplete... I'm sure @pdxcodemonkey has more to say about this... -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: notifications-unsubscr...@geode.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org > InternalFunctionInvocationTargetException when executing single hop function > all buckets > ---------------------------------------------------------------------------------------- > > Key: GEODE-9576 > URL: https://issues.apache.org/jira/browse/GEODE-9576 > Project: Geode > Issue Type: Bug > Components: native client > Reporter: Jakov Varenina > Assignee: Jakov Varenina > Priority: Major > Labels: pull-request-available > > *InternalFunctionInvocationTargetException: Multiple target nodes found for > single hop operation* occurs on native client when executing function in a > single hop manner for all buckets during the period when client bucket > metadata doesn't contain all buckets locations. > Java client in this case executes functions in non single hop manner until it > receives locations of all buckets on servers. The solution in native client > would be to implement the same handling as in java client. -- This message was sent by Atlassian Jira (v8.3.4#803005)