tree 4d657714c8bd31c6720a51501437b7ce23cdfaac
parent 07910325960691ab6774bedbf6e1a96f693e85d1
author Alberto Gomez <alberto.gomez@est.tech> 1604699530 +0100
committer GitHub <noreply@github.com> 1604699530 -0800
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJfpcWKCRBK7hj4Ov3rIwAAdHIIAEALw1wKLGD0dUPtEIUFFhwK
 kYak4Zs5r6q7Ccm8mhIMEMRf4HjNlflQZX0wGqSPkoh0yr2Q/iJyKaM7WyBr9rET
 3IFPhrmpTtu4BL79AJh3i52eQ4DHDvQPU/2/Z+b5rIeSI4EIN5X2a8TugZcWMcHN
 tdxdzVuqUAvgbT252WJS189KDSdTjnbhH+UDGDfMceaM0tBxWBn6xQz+VXi17RKo
 TYSd1dC5BcSPzM+AdNW2EAgA43yzeAbZVqTAik2Wn5Va0sK0fPjmtNXiKeauCb6u
 1Ia6PRcq5YXmmZwYSRAMxQZeG3tfIEOBaj8vk5NmZzs96r6v0PG//fFZwvW7pxg=
 =JuDN
 -----END PGP SIGNATURE-----
 

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.
