diff --git a/keystonemiddleware/auth_token/_cache.py b/keystonemiddleware/auth_token/_cache.py index 8951b375..94aa7cde 100644 --- a/keystonemiddleware/auth_token/_cache.py +++ b/keystonemiddleware/auth_token/_cache.py @@ -124,7 +124,7 @@ class TokenCache(object): def __init__(self, log, cache_time=None, env_cache_name=None, memcached_servers=None, - use_advanced_pool=False, dead_retry=None, socket_timeout=None, + use_advanced_pool=True, dead_retry=None, socket_timeout=None, **kwargs): self._LOG = log self._cache_time = cache_time @@ -150,6 +150,13 @@ class TokenCache(object): **self._memcache_pool_options) else: + if not self._use_advanced_pool: + self._LOG.warning( + "Using the eventlet-unsafe cache pool is deprecated." + "It is recommended to use eventlet-safe cache pool" + "implementation from oslo.cache. This can be enabled" + "through config option memcache_use_advanced_pool = True") + return _CachePool(self._memcached_servers, self._LOG) def initialize(self, env): diff --git a/keystonemiddleware/auth_token/_opts.py b/keystonemiddleware/auth_token/_opts.py index 15dd4f64..1ddef7d3 100644 --- a/keystonemiddleware/auth_token/_opts.py +++ b/keystonemiddleware/auth_token/_opts.py @@ -145,10 +145,9 @@ _OPTS = [ help='(Optional) Number of seconds that an operation will wait ' 'to get a memcached client connection from the pool.'), cfg.BoolOpt('memcache_use_advanced_pool', - default=False, + default=True, help='(Optional) Use the advanced (eventlet safe) memcached ' - 'client pool. The advanced pool will only work under ' - 'python 2.x.'), + 'client pool.'), cfg.BoolOpt('include_service_catalog', default=True, help='(Optional) Indicate whether to set the X-Service-Catalog' diff --git a/releasenotes/notes/deprecate-eventlet-unsafe-memcacheclientpool-f8b4a6733513d73e.yaml b/releasenotes/notes/deprecate-eventlet-unsafe-memcacheclientpool-f8b4a6733513d73e.yaml new file mode 100644 index 00000000..22699940 --- /dev/null +++ b/releasenotes/notes/deprecate-eventlet-unsafe-memcacheclientpool-f8b4a6733513d73e.yaml @@ -0,0 +1,22 @@ +--- +deprecations: + - | + We no longer recommend using the eventlet unsafe keystonemiddleware's + memcacheclientpool. This implementation may result in growing connections + to memcached. + + It is recommended that the ``memcache_use_advanced_pool`` option + is set to ``True`` in the ``keystone_authtoken`` configuration section of + the various services (e.g. nova, glance, ...) when memcached is used for + token cache. +upgrade: + - | + [`bug 1892852 `_] + [`bug 1888394 `_] + [`bug 1883659 `_] + Keystonemiddleware now using eventlet-safe implementation of + ``MemcacheClientPool`` from oslo.cache's library by default. + The ``keystonemiddleware`` implementation is now deprecated. For backwards + compatibility, the ``[keystone_authtoken] memcache_use_advanced_pool`` + option can be set to ``False`` config files of the various services (e.g. + nova, glance, ...) when memcached is used for token cache.