commit | fafa3be8f361bf696b0804f569b890826e242c7f | [log] [tgz] |
---|---|---|
author | Jakov Varenina <62134331+jvarenina@users.noreply.github.com> | Tue Oct 12 16:32:30 2021 +0200 |
committer | GitHub <noreply@github.com> | Tue Oct 12 07:32:30 2021 -0700 |
tree | 8eed4af640f1e67ad9941eace23fd8dca9b04fe9 | |
parent | 7eed9d3868118f5f0d1d93f75c2a4b64ddb7cead [diff] |
GEODE-9591: Don't retry function when Function.isHA=false (#866) * GEODE-9591: Don't retry function when Function.isHA=false Fault: Client clears result by calling ResultCollector::clearResult and re-executes the function even thought Function.isHa() is set to false. Fix: Client will not clear result and retry the function, but it will fail with the received exception from server. Added integration test: 1.FunctionExecutionTest.testThatFunctionExecutionThrowsExceptionNonHAWithFilter 2.FunctionExecutionTest.testThatFunctionExecutionThrowsExceptionNonHA The integration test reproduces the problem in a following way: 1. Populate region so that all buckets are created 2. Shutdown one of the three available servers 3. Peforme rebalance operation, so that buckets are recovered on running servers 4. Execute the function. Function execution will fail with the InternalFunctionInvocationTargetException exception, because client will try to execute single hop function with old PR meatada information (PR metadata received before the rebalance operation). * ASSERT_THROW used instead of try-catch * Check whether isHA==false before clearing results It is possible that function exeuction fail on multiple servers, and in that case only first exception will be thrown, and any subsequent exeception will be ignored. Additionally result should not be cleared in any case when isHa==false. * Rebalance cmd was not executed Test cases are changed to do rebalance operation after new server is introduced in cluster. * Client metadata wasn't complete when function is executed Since client metadata was not complete the function was not exectued in a single hop manner, and therfore exeption is not reproduced. This commit is fixed in a way that now client is connected to only one server. This way client metadata will be updated more frequently, and client metadata will be complete when function is executed.
Native Client is a client implementation for Apache Geode that does not require the Java server JARs.
Directions to build Native Client from source can be found in the source distribution in BUILDING.md.
Native Client applications can be written in these client technologies:
Geode Native follows the Semantic Versioning 2.0.0 specification (semver). This specification only addresses the API compatibility with libraries and does not cover ABI compatibility.
ABI compatibility is not preserved similarly to the API compatibility. ABI compatibility is only guaranteed between patch releases. Recompilation is required for both minor and major releases.
ABI compatibility is preserved similarly to the API compatibility. ABI compatibility is guaranteed between patch and minor releases. Recompilation is only require for major releases or to utilize new APIs added in minor releases.
This distribution includes cryptographic software. The country in which you currently reside may have restrictions on the import, possession, use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check your country's laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted. See http://www.wassenaar.org/ for more information.
The U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), has classified this software as Export Commodity Control Number (ECCN) 5D002.C.1, which includes information security software using or performing cryptographic functions with asymmetric algorithms. The form and manner of this Apache Software Foundation distribution makes it eligible for export under the License Exception ENC Technology Software Unrestricted (TSU) exception (see the BIS Export Administration Regulations, Section 740.13) for both object code and source code.
The following provides more details on the included cryptographic software: