This patch specifies a set of options required to setup the
socket keepalive of the dogpile.cache's pymemcache
backend [1][2]. This setup from those options can later on
be passed to this backend.
This patch also sets up the socket keepalive object based on
the configuration options passed via oslo.config and adds it
as an argument to be passed to the selected oslo.cache backend.
Dogpile.cache will be used as an interface between oslo.cache and
pymemcache [3].
This patch is needed to fix a TLS issue on stable branches introduced by
pymemcache (since train), where if a cluster node disappear the client
will fail without retrying to reconnect or to switch to an other node of
the cluster.
NOTE(hberaud): Conflicts are related to requirements that have been
updated in the youngest branches, however, I removed these reqs updated
to follow the same logic that have been applied by Moisès in his patches
related to TLS, namely, appending the dogpile.cache.pymemcache backend
only if the version of dogpile.cache is higher to a specific version [4].
TLS changes are at the origin of the bug fixed here.
Reviewed: https:/ /review. opendev. org/c/openstack /oslo.cache/ +/836862 /opendev. org/openstack/ oslo.cache/ commit/ 7c8cabe6d842e18 655090f37ab5bfb c6cd9b6b8c
Committed: https:/
Submitter: "Zuul (22348)"
Branch: stable/train
commit 7c8cabe6d842e18 655090f37ab5bfb c6cd9b6b8c
Author: Hervé Beraud <email address hidden>
Date: Fri Aug 6 11:49:17 2021 +0200
Add socket keepalive options to oslo.cache
This patch specifies a set of options required to setup the
socket keepalive of the dogpile.cache's pymemcache
backend [1][2]. This setup from those options can later on
be passed to this backend.
This patch also sets up the socket keepalive object based on
the configuration options passed via oslo.config and adds it
as an argument to be passed to the selected oslo.cache backend.
Dogpile.cache will be used as an interface between oslo.cache and
pymemcache [3].
This patch is needed to fix a TLS issue on stable branches introduced by
pymemcache (since train), where if a cluster node disappear the client
will fail without retrying to reconnect or to switch to an other node of
the cluster.
Conflicts: s.txt tests/unit/ test_cache_ basics. py
- requirements.txt
- doc/requirement
- oslo_cache/
NOTE(hberaud): Conflicts are related to requirements that have been cache.pymemcach e backend
updated in the youngest branches, however, I removed these reqs updated
to follow the same logic that have been applied by Moisès in his patches
related to TLS, namely, appending the dogpile.
only if the version of dogpile.cache is higher to a specific version [4].
TLS changes are at the origin of the bug fixed here.
[1] https:/ /github. com/sqlalchemy/ dogpile. cache/pull/ 205 /github. com/pinterest/ pymemcache/ commit/ b289c87bb89b3ab 477bd5d92c8951a b42c923923 /dogpilecache. sqlalchemy. org/en/ latest/ api.html? highlight= keepalive# dogpile. cache.backends. memcached. PyMemcacheBacke nd.params. socket_ keepalive /opendev. org/openstack/ oslo.cache/ commit/ 3e3037886e80219 11e10f492c05029 51bff5104e
[2]
https:/
[3]
https:/
[4] https:/
This patch also squash parts of the fix submitted with: /review. opendev. org/c/openstack /oslo.cache/ +/834267
https:/
Conflits: tests/test_ cache.py
CONFLICT (content): Merge conflict in oslo_cache/
Partial-Bug: #1959562 4e094c08046e215 0405dcf371e 3a8f4f9e63c5a57 dbcd2d1166) 9edfe3ae64cd9b7 dece5330a0) 8e5b7b76f18fcda d038490074) c901ec9dc37632a 63712c818b) 32ed976c9c35963 41479978c9)
Change-Id: I501100e1a48cdd
(cherry picked from commit f4fa6aa6fa2aca2
(cherry picked from commit 2ad2d52f4ecb63d
(cherry picked from commit 7b00cb38a6d0860
(cherry picked from commit f34ed73407b93d2
(cherry picked from commit 619413326743acb