Close subprocess stdout and stderr in the ssh connection plugin
Eliminate `ResourceWarning: unclosed file` by closing all file handles of each subprocess used by the SSH connection plugin to execute commands. This change prevents Ansible from accumulating "forgotten" open file handles. PR #64785 by Julien Palard Fixes #64768
This commit is contained in:
parent
67fd17bee4
commit
81b334bcaf
1 changed files with 4 additions and 2 deletions
|
@ -1014,9 +1014,11 @@ class Connection(ConnectionBase):
|
||||||
# Otherwise there may still be outstanding data to read.
|
# Otherwise there may still be outstanding data to read.
|
||||||
finally:
|
finally:
|
||||||
selector.close()
|
selector.close()
|
||||||
# close stdin after process is terminated and stdout/stderr are read
|
# close stdin, stdout, and stderr after process is terminated and
|
||||||
# completely (see also issue #848)
|
# stdout/stderr are read completely (see also issues #848, #64768).
|
||||||
stdin.close()
|
stdin.close()
|
||||||
|
p.stdout.close()
|
||||||
|
p.stderr.close()
|
||||||
|
|
||||||
if C.HOST_KEY_CHECKING:
|
if C.HOST_KEY_CHECKING:
|
||||||
if cmd[0] == b"sshpass" and p.returncode == 6:
|
if cmd[0] == b"sshpass" and p.returncode == 6:
|
||||||
|
|
Loading…
Reference in a new issue