Presently, the wsgi server allows persist connections hence even after
the response is sent to the client, it doesn't close the client socket
connection.
Because of this problem, the green thread is not released back to the pool.
In order to close the client socket connection explicitly after the
response is sent and read successfully by the client, you simply have to
set keepalive to False when you create a wsgi server.
Add a parameter to take advantage of the new(ish) eventlet socket timeout
behaviour. Allows closing idle client connections after a period of
time, eg:
$ time nc localhost 8776
real 1m0.063s
Setting 'client_socket_timeout = 0' means do not timeout.
Note: The required unit-tests are manually added to the below path,
as new path for unit-tests is not present in stable/icehouse release.
nova/tests/compute/test_host_api.py
Reviewed: https:/ /review. openstack. org/138811 /git.openstack. org/cgit/ openstack/ nova/commit/ ?id=a657582c5cd 8a39580c44ad401 fd3e69870068b1
Committed: https:/
Submitter: Jenkins
Branch: stable/icehouse
commit a657582c5cd8a39 580c44ad401fd3e 69870068b1
Author: abhishekkekane <email address hidden>
Date: Tue Oct 21 01:37:42 2014 -0700
Eventlet green threads not released back to pool
Presently, the wsgi server allows persist connections hence even after
the response is sent to the client, it doesn't close the client socket
connection.
Because of this problem, the green thread is not released back to the pool.
In order to close the client socket connection explicitly after the
response is sent and read successfully by the client, you simply have to
set keepalive to False when you create a wsgi server.
Add a parameter to take advantage of the new(ish) eventlet socket timeout
behaviour. Allows closing idle client connections after a period of
time, eg:
$ time nc localhost 8776
real 1m0.063s
Setting 'client_ socket_ timeout = 0' means do not timeout.
DocImpact: socket_ timeout option (default=0).
Added wsgi_keep_alive option (default=True).
Added client_
Conflicts:
nova/ tests/unit/ test_wsgi. py
Note: The required unit-tests are manually added to the below path, tests/compute/ test_host_ api.py
as new path for unit-tests is not present in stable/icehouse release.
nova/
This patch is not 1:1 cherry-pick, I have changed the default value socket_ timeout to 0, as per the policy for changes to /wiki.openstack .org/wiki/ StableBranch# Appropriate_ Fixes)
of client_
stable branches.
(https:/
SecurityImpact
Closes-Bug: #1361360 26fd306c423de8d cea8520d2aa 51e73f12c5b8c98 2db9310742)
Change-Id: I399b812f6d4522
(cherry picked from commit 04d7a724fdf80db