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.
Added 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.
Reviewed: https:/ /review. openstack. org/144708 /git.openstack. org/cgit/ openstack/ neutron/ commit/ ?id=a89ae1bd93d ea2dd1902c1d495 72329f6646abcc
Committed: https:/
Submitter: Jenkins
Branch: stable/juno
commit a89ae1bd93dea2d d1902c1d4957232 9f6646abcc
Author: abhishekkekane <email address hidden>
Date: Tue Oct 21 04:15:15 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.
Added 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=900).
Added wsgi_keep_alive option (default=True).
Added client_
SecurityImpact
Closes-Bug: #1361360 0b85791f23ac1cd fd79815341b 159d98a4628fb8a 6fcd05e95a)
Change-Id: I3a361d6590d180
(cherry picked from commit 8e7a0dbb12082f6