GEODE-8688: Fix flaky C++ native client integration tests (#686)

* GEODE-8688: Fix flaky C++ native client integration tests

The following integration test cases under
integration/test (new integration tests)
ar flaky (do not
fail normally when run locally but fail very often
when run in CI).

- PartitionRegionOpsTest.getPartitionedRegionWithRedundancyServerGoesDownSingleHop
- PartitionRegionOpsTest.putPartitionedRegionWithRedundancyServerGoesDownSingleHop

There were two reasons that can make them fail.

One of them is that sometimes the connections to the server have expired
before the server is restarted and therefore, when traffic is sent
to the restarted server, no errors are found. To fix this,
the pool configuration for the test client
has been changed so that connections do not expire.

The other reason is that sometimes the error in the connection is
found by the ping thread that is invoking the
ThinClientPoolDM::sendRequestToEP() method and in this method,
when the IO error or TIMEOUT error are encountered,
the endpoint is not removed from the metadata (by means of the
removeBucketServerLocation method).
The code has been updated to remove the metadata also in this
case.

With these two changes, the test cases are not flaky anymore.
3 files changed
tree: 4d657714c8bd31c6720a51501437b7ce23cdfaac
  1. bin/
  2. clicache/
  3. cmake/
  4. cppcache/
  5. defaultSystem/
  6. dependencies/
  7. dist/
  8. docker/
  9. docs/
  10. etc/
  11. examples/
  12. executables/
  13. packer/
  14. sni-test-config/
  15. sqliteimpl/
  16. ssl_keys/
  17. templates/
  18. tests/
  19. tools/
  20. xsds/
  21. .asf.yaml
  22. .clang-format
  23. .clang-tidy
  24. .cpackignore
  25. .gitignore
  26. .lcovrc
  27. .lgtm.yml
  28. .ratignore
  29. .travis.yml
  30. BUILDING.md
  31. CMakeLists.txt
  32. CONTRIBUTING.md
  33. FindNativeClient.cmake
  34. FindNativeClientCPPCache.cmake
  35. LICENSE
  36. NOTICE
  37. README.md
README.md

Build Status License Total alerts Language grade: C/C++ Language grade: C# Language grade: JavaScript

Overview
Building from Source
Application Development

Overview

Native Client is a client implementation for Apache Geode that does not require the Java server JARs.

Building from Source

Directions to build Native Client from source can be found in the source distribution in BUILDING.md.

Application Development

Native Client applications can be written in these client technologies:

Export Control

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:

  • Apache Geode links to and uses OpenSSL ciphers.