mirror of https://github.com/fail2ban/fail2ban
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
parent
e57e950ef5
commit
df885586d4
|
@ -32,6 +32,7 @@ ver. 0.10.6-dev (20??/??/??) - development edition
|
||||||
IPv6-capable now.
|
IPv6-capable now.
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
* restoring a large number (500+ depending on files ulimit) of current bans when using PyPy fixed
|
||||||
|
|
||||||
### New Features
|
### New Features
|
||||||
|
|
||||||
|
|
|
@ -260,7 +260,6 @@ class Utils():
|
||||||
if stdout is not None and stdout != '' and std_level >= logSys.getEffectiveLevel():
|
if stdout is not None and stdout != '' and std_level >= logSys.getEffectiveLevel():
|
||||||
for l in stdout.splitlines():
|
for l in stdout.splitlines():
|
||||||
logSys.log(std_level, "%x -- stdout: %r", realCmdId, uni_decode(l))
|
logSys.log(std_level, "%x -- stdout: %r", realCmdId, uni_decode(l))
|
||||||
popen.stdout.close()
|
|
||||||
if popen.stderr:
|
if popen.stderr:
|
||||||
try:
|
try:
|
||||||
if retcode is None or retcode < 0:
|
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():
|
if stderr is not None and stderr != '' and std_level >= logSys.getEffectiveLevel():
|
||||||
for l in stderr.splitlines():
|
for l in stderr.splitlines():
|
||||||
logSys.log(std_level, "%x -- stderr: %r", realCmdId, uni_decode(l))
|
logSys.log(std_level, "%x -- stderr: %r", realCmdId, uni_decode(l))
|
||||||
popen.stderr.close()
|
popen.stdout.close()
|
||||||
|
popen.stderr.close()
|
||||||
|
|
||||||
success = False
|
success = False
|
||||||
if retcode in success_codes:
|
if retcode in success_codes:
|
||||||
|
|
Loading…
Reference in New Issue