close Popen() pipes explicitly for PyPy

Waiting for garbage collection to close pipes opened by Popen() can
lead to "Too many open files" errors with PyPy; close them explicitly.
pull/2638/head
Christopher Gurnee 2020-02-19 15:28:12 -05:00 committed by sebres
parent e57e950ef5
commit df885586d4
2 changed files with 3 additions and 2 deletions

View File

@ -32,6 +32,7 @@ ver. 0.10.6-dev (20??/??/??) - development edition
IPv6-capable now.
### Fixes
* restoring a large number (500+ depending on files ulimit) of current bans when using PyPy fixed
### New Features

View File

@ -260,7 +260,6 @@ class Utils():
if stdout is not None and stdout != '' and std_level >= logSys.getEffectiveLevel():
for l in stdout.splitlines():
logSys.log(std_level, "%x -- stdout: %r", realCmdId, uni_decode(l))
popen.stdout.close()
if popen.stderr:
try:
if retcode is None or retcode < 0:
@ -271,7 +270,8 @@ class Utils():
if stderr is not None and stderr != '' and std_level >= logSys.getEffectiveLevel():
for l in stderr.splitlines():
logSys.log(std_level, "%x -- stderr: %r", realCmdId, uni_decode(l))
popen.stderr.close()
popen.stdout.close()
popen.stderr.close()
success = False
if retcode in success_codes: