Message300074
The problem is that socketserver.ForkinMixin doesn't wait until all children completes. It's only calls os.waitpid() in non-blocking module (using os.WNOHANG) after each loop iteration. If a child process completes after the last call to ForkingMixIn.collect_children(), the server leaks zombie processes.
The server must wait until all children completes. Attached PR implements that.
The bug was be reproduced with the attached forkingmixin_sleep.patch.
haypo@selma$ ./python -m test -v -u all test_socketserver --fail-env-changed -m '*Fork*'
(...)
Warning -- reap_children() reaped child process 17093
Warning -- reap_children() reaped child process 17094
(...) |
|
| Date |
User |
Action |
Args |
| 2017-08-10 11:30:13 | vstinner | set | recipients:
+ vstinner |
| 2017-08-10 11:30:13 | vstinner | set | messageid: <[email protected]> |
| 2017-08-10 11:30:13 | vstinner | link | issue31151 messages |
| 2017-08-10 11:30:13 | vstinner | create | |
|