[Python-Dev] cpython: Fix closes issue #11109 (original) (raw)
[Python-Dev] cpython: Fix closes issue #11109 - socketserver.ForkingMixIn leaves zombies, also fails
Senthil Kumaran senthil at uthcode.com
Thu May 26 07:10:55 CEST 2011
- Previous message: [Python-Dev] cpython: Fix closes issue #11109 - socketserver.ForkingMixIn leaves zombies, also fails
- Next message: [Python-Dev] Python 3.3 release schedule posted
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Antoine Pitrou wrote:
>> A new method called serviceaction is made available in BaseServer, called by >> serveforever loop. This useful in cases where Mixins can use it for cleanup >> action. ForkingMixin class uses serviceaction to collect the zombie child >> processes. Initial Patch by Justin Wark. > > Is it reasonable, performance-wise, to do this at every iteration of > the loop (that is, at every incoming connection)?
If not here, the call was being done at the process_request level when creating a new child process and the wait would have been there. I am not sure, how much performance different (lag) this aggressive collection can bring.
Charles-François Natali wrote:
I haven't measured it, but it's O(N) where N is the number of children. It should be possible to optimize this by putting all the children in a process group (the other advantage is that we wouldn't wait() children not spawned by socketserver).
+1. This is definitely a good idea. The change needs to be done in the collection_children routine which tries to wait for all children to finish instead of just the ones forked by the socketserver. Shall raise ticket for this.
-- Senthil
Although the moon is smaller than the earth, it is farther away.
- Previous message: [Python-Dev] cpython: Fix closes issue #11109 - socketserver.ForkingMixIn leaves zombies, also fails
- Next message: [Python-Dev] Python 3.3 release schedule posted
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]