Public bug reported: Description ===========
we are running a victoria openstack cluster (python3). and I observe that everytime when an openstack compute service list executed, nova-api will create a new connection to memcache. Actually there are several reasons to cause this behavior 1. when running natively with eventlet's wsgi server, everytime a new coroutine is created to host web request and this causes keystonemiddle auth_token which uses python-memcached to reconnect to memcahced all the time 2. os-services will trigger nova.availability_zones.set_availability_zones and it will update cache every time, since cellv2 is enabled, this method is running in an co-routine as well 3. python-memcached's Client is inheriting from threading.local which will be monkey_patched to use eventlet's implementation and thus for every co-routine context it will create a new connection Steps to reproduce ================== 1. Patch def _get_socket and print connection 2. execute openstack compute service list Expected result =============== Maintain stable connections to memcached Actual result ============= Reconnects Environment =========== 1. devstack victoria openstack ** Affects: nova Importance: Undecided Status: New -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to OpenStack Compute (nova). https://bugs.launchpad.net/bugs/1995029 Title: list os-service causing reconnects to memcached all the time Status in OpenStack Compute (nova): New Bug description: Description =========== we are running a victoria openstack cluster (python3). and I observe that everytime when an openstack compute service list executed, nova- api will create a new connection to memcache. Actually there are several reasons to cause this behavior 1. when running natively with eventlet's wsgi server, everytime a new coroutine is created to host web request and this causes keystonemiddle auth_token which uses python-memcached to reconnect to memcahced all the time 2. os-services will trigger nova.availability_zones.set_availability_zones and it will update cache every time, since cellv2 is enabled, this method is running in an co-routine as well 3. python-memcached's Client is inheriting from threading.local which will be monkey_patched to use eventlet's implementation and thus for every co-routine context it will create a new connection Steps to reproduce ================== 1. Patch def _get_socket and print connection 2. execute openstack compute service list Expected result =============== Maintain stable connections to memcached Actual result ============= Reconnects Environment =========== 1. devstack victoria openstack To manage notifications about this bug go to: https://bugs.launchpad.net/nova/+bug/1995029/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp