]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commit
Prevent calling waitall() inside a GreenPool's greenthread
authorElena Ezhova <eezhova@mirantis.com>
Thu, 19 Feb 2015 10:34:17 +0000 (13:34 +0300)
committerElena Ezhova <eezhova@mirantis.com>
Tue, 10 Mar 2015 10:43:24 +0000 (13:43 +0300)
commitf9b2791735863b58171ee8be46c47ef3ed2c5edd
tree1804897ff10151fba2296b98602e19d4ec12768d
parent7cd356964cb45509994c98c9933452786a485aae
Prevent calling waitall() inside a GreenPool's greenthread

When neutron-server is running with several api workers
sending it a termination signal (SIGTERM, SIGHUP or SIGINT)
leads to waitall() being called inside a GreenPool's greenthread.

The reason is that a wsgi server is started in a green thread
from the same green pool that is passed to the server itself
to be used for spawning client green threads.

To avoid it, it is reasonable to use different pools for spawning
a wsgi server and for its internal usage.

This is also the case for metadata agent running with several
metadata workers.

Change-Id: I38174396f06fcb29ac0776534ac6494dabb00df6
Closes-Bug: #1423250
neutron/agent/metadata/agent.py
neutron/tests/unit/test_metadata_agent.py
neutron/tests/unit/test_wsgi.py
neutron/wsgi.py